CN105677270B - 用于视频流的后处理的方法及设备 - Google Patents

用于视频流的后处理的方法及设备 Download PDF

Info

Publication number
CN105677270B
CN105677270B CN201510883470.1A CN201510883470A CN105677270B CN 105677270 B CN105677270 B CN 105677270B CN 201510883470 A CN201510883470 A CN 201510883470A CN 105677270 B CN105677270 B CN 105677270B
Authority
CN
China
Prior art keywords
processing
video flowing
equipment
video
client device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510883470.1A
Other languages
English (en)
Other versions
CN105677270A (zh
Inventor
袁松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Axis AB
Original Assignee
Axis AB
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Axis AB filed Critical Axis AB
Publication of CN105677270A publication Critical patent/CN105677270A/zh
Application granted granted Critical
Publication of CN105677270B publication Critical patent/CN105677270B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234345Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements the reformatting operation being performed only on part of the stream, e.g. a region of the image or a time segment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25808Management of client data
    • H04N21/25833Management of client data involving client hardware characteristics, e.g. manufacturer, processing or storage capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/414Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
    • H04N21/41407Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a portable device, e.g. video client on a mobile phone, PDA, laptop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • H04N21/4318Generation of visual interfaces for content selection or interaction; Content or additional data rendering by altering the content in the rendering process, e.g. blanking, blurring or masking an image region
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Human Computer Interaction (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)
  • Studio Devices (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)

Abstract

本发明公开了一种用于视频流的后处理的方法及设备。本发明涉及处理视频流的领域,并且更具体地,涉及使用着色器的视频流的后处理领域。在视频流处理设备和客户端设备之间分配视频流的处理。

Description

用于视频流的后处理的方法及设备
技术领域
本发明涉及处理视频流的领域,并且更具体地,涉及使用着色器的视频流的后处理的领域。
背景技术
如今,许多视频处理系统遵循一种标准的体系结构,该体系结构通常包括服务器,该服务器接收视频流、处理视频流以及随后经由网络向远程客户端传输处理的视频流。
针对计算的原因以及用于提高性能,使用服务器和远程客户端两者的处理能力可能是有利的。
一些处理涉及由图形处理单元(GPU)进行的处理。GPU创建打算输出到显示器的图像。GPU还可适于控制视频流中的图像。在服务器-客户端系统中,能够在服务器以及在客户端两者上使用用于实施图形处理的GPU可能是有利的。
US 2013/0016107(CHNOW INC.)涉及一种用于能够使用服务器侧渲染以及客户端侧渲染两者渲染图形的方法。该文档中的主要想法是决定应在服务器上进行渲染还是在客户端上进行渲染。如果在服务器上进行渲染,则从服务器向客户端发送视频数据(即,像素数据),并且随后显示视频数据。如果在客户端上进行渲染,则向客户端发送图形数据(即,矢量数据),并且随后使用客户端的GPU将图形数据渲染到视频数据中。基于客户端和服务器中的GPU的可用的处理能力并且基于网络带宽来进行选择。
在处理图形数据并且图形数据渲染到视频数据(例如,计算机游戏)中的应用中,US 2013/0016107的方法可能是有利的。为了在服务器以及在客户端两者上处理视频数据,需要不同的方法,例如,通过应用特殊效果的着色器以及视频后处理。
发明内容
据此,本发明的一个目的是解决或至少减少上面讨论的缺陷中的一个或几个。通常,通过所附的独立的专利权利要求实现上述目的。
根据第一方面,通过一种用于在系统中处理视频流的方法实现本发明,所述系统包括视连接到客户端设备的视频流处理设备,所述方法包括:设置要应用到所述视频流的一个或多个着色器,在所述视频流处理设备处通过第一处理将所述一个或多个着色器中的至少一个着色器应用到所述视频流中的至少一子集,在所述客户端设备处通过第二处理将所述一个或多个着色器中的至少一个着色器应用到所述视频流中的至少一子集,其中所述第二处理中应用的所述一个或多个着色器中的所述至少一个着色器被从所述视频流处理设备传输到所述客户端设备。
着色器是计算机图形中使用的计算机程序。着色器例如用于特殊效果以及视频后处理。存在各种类型的着色器,例如,可用于透视变换的顶点着色器,可用于改变像素颜色和位置的像素着色器,以及可用于视频分析计算的计算着色器。着色器要求要执行的兼容的图形处理单元(GPU)。例如,所有GPU不支持计算着色器。GPU可支持OpenGL,其是用于渲染2D和3D矢量图形的多平台应用程序接口(API)。
在本说明书的上下文中,术语“处理”应理解为对所述处理涉及的视频流中的至少一子集的着色器的执行。
客户端设备可以是具有GPU、运行来自web服务器的web应用程序以及显示处理的视频流的设备,例如,平板电脑或智能电话。客户端设备还可指使用其GPU处理视频流并且随后为了观看目的将处理的视频流发送到显示器的设备。这种设备的一种示例可以是具有连接的显示器的PC,连接的显示器将以与平板电脑或智能电话同样的方式显示处理的视频流,但在连接到计算机的显示器上的情况下,平板电脑或智能电话将为了同样的目的使用其嵌入的显示器。客户端设备还可用在视频管理系统(VMS)中,用于管理及观看来自监控系统的视频,监控系统包括一个或多个摄像机。VMS可基于各种技术,例如,包括基于云的系统(例如,通过各种基于云的视频托管服务)、基于中央服务器的系统(例如,安讯士网络通讯有限公司AB生产的“安迅士摄像机站(Axis Camera Station)”)、或无服务器系统,在无服务器系统中,安装在系统的摄像机上的软件处理视频管理(例如,安讯士网络通讯有限公司AB生产的“安迅士摄像机伴侣(Axis Camera Companion)”)。在此情况下,客户端设备将连接到VMS。
在本说明书的上下文中,术语“视频流的子集”将理解为在视频流处理设备和/或客户端设备不需要处理整个视频流。在视频流处理设备处的处理以及在客户端设备处的处理可涉及帧的(不同的)部分(例如,半个帧),或帧的(不同的)子集(例如,视频流中每隔一个帧),或两者的混合。根据其他实施例,第一处理和第二处理两者都处理整个视频流。
本发明是基于通过在视频流处理设备处提供所有着色器、以及使视频流处理设备传输客户端设备的处理需要的着色器来实现的,实现了第一处理和第二处理增加的灵活性。换句话说,可基于例如网络拓扑、视频流处理设备和客户端设备两者的能力和负载、以及用例的特性,在运行时动态地分配着色器的执行。可替代地,执行的分配可以是静态的。
根据一些实施例,所述第一处理不同于所述第二处理。这可有利地在视频流处理设备和客户端设备之间的视频流上分配一个或多个着色器的执行需要的处理。
根据一些实施例,所述第一处理中应用的所述至少一个着色器不同于所述第二处理中应用的所述至少一个着色器。例如,可在视频流处理设备上执行任何顶点着色器并且可在客户端设备上执行任何像素着色器。
根据一些实施例,所述第一处理涉及的所述视频流中的所述至少一子集不同于所述第二处理涉及的所述视频流中的所述至少一子集。如上所述的,在视频流处理设备处的处理以及在客户端设备处的处理可涉及帧的不同部分(例如,在视频流处理设备中处理帧的一半,在客户端设备上处理帧的剩余一半)、或帧的不同子集(例如,在视频流处理设备上视频流中的每隔一个帧被处理,在客户端设备上其余帧被处理)。
然而,应注意,根据一些实施例,第一处理和第二处理不是彼此不同的,即,在视频流处理设备和客户端设备两者上同一着色器应用到视频流的同一部分。在第一处理和第二处理涉及增量过滤时,这是有利的。在这种情况下,由于增量过滤的第一部分在视频流处理设备上执行并且增量过滤的第二部分在客户端设备上执行,因此着色器的执行仍在视频流处理设备和客户端设备之间分配。
根据一些实施例,所述第一处理和/或所述第二处理取决于以下类型构成的组中的至少之一:所述客户端设备的图形处理单元GPU的类型,以及所述视频流处理设备的图形处理单元GPU的类型。如上面提到的,不同类型的GPU可支持不同类型的着色器。例如,通常,仅客户端设备中的GPU支持细分曲面(Tessellation)着色器或几何着色器。由于需要在细分曲面着色器和/或几何着色器之前执行顶点着色器,因此可进行执行的分配使得在视频流处理设备上执行顶点着色器并且在客户端设备上执行细分曲面着色器和几何着色器。
根据一些实施例,所述第一处理和/或所述第二处理在所述视频流的持续期间改变。由于可针对视频流的每个时间段独立地确定着色器视频流处理设备和客户端设备之间的着色器执行的分配,并且因此有利地遵循网络拓扑中的改变、视频流处理设备和客户端设备两者的负载和其他重要属性的改变以及改变的用例(例如,执行的延迟需求),因而这可进一步提高本发明的方法的灵活性。
例如,所述第一处理和/或所述第二处理基于关于以下构成的组中的至少之一的信息在所述视频流的持续期间动态地改变:所述视频流处理设备和所述客户端设备之间的连接的带宽,所述客户端设备的电池水平,所述视频流处理设备的电池水平,所述客户端设备的GPU的处理能力以及所述视频流处理设备的GPU的处理能力。
如上面提到的,客户端设备可以是电池驱动的设备,例如,平板电脑。由于着色器的执行可耗尽客户端设备的电池,在客户端设备正运行电量不足的电池的情况下,如果视频流处理设备运行用于对视频流执行的一个或多个着色器需要的处理的较大部分,则可能是有利的。
根据一些实施例,所述视频流作为编码的视频流从所述视频流处理设备传输到所述客户端设备,在所述客户端设备处,所述视频流在所述第二处理之前被解码。由于无论在视频流处理设备处应用什么处理,都将编码视频流并且将编码的视频流传输到客户端设备,因此这是有利的。例如,在编码并且传输到客户端设备时,视频流可以是半处理的。此外,本实施例是有利的,因为视频流处理设备中的编码器(以及客户端设备上对应的解码器)不断地运行,因此可容易地建立和维护着色器的执行流。进一步的优势可以是:具有视频流处理设备中的编码器以及客户端设备中的解码器的基本系统布局不会根据此实施例改变。进一步,无论视频流处理设备和客户端设备之间分配一个或多个着色器如何执行,网络负载可以是相对稳定的。
根据一些实施例,所述视频流的传输具有第一优先级,其中所述第二处理中应用的所述一个或多个着色器中的所述至少一个着色器从所述视频流处理设备到所述客户端设备的传输具有低于所述第一优先级的第二优先级。因此,实施所述传输的顺序是基于所述传输各自的优先级的。根据此实施例,视频流的传输总是优先于客户端设备中要应用的着色器的传输。在连接到客户端设备的显示器或客户端设备中的显示器显示视频流时,这可减少不顺畅的风险。根据此实施例,在第二处理的着色器传送之前,第二处理中的着色器将不应用到已传输的视频流的各帧。
根据一些实施例,所述视频流的传输经由第一网络连接实施,并且其中所述第二处理中应用的所述一个或多个着色器中的所述至少一个着色器从所述视频流处理设备到所述客户端设备的传输经由不同于所述第一网络连接的第二网络连接实施。例如,可经由实时流传输协议(RTSP)连接或超文本传输协议(HTTP)连接来传输视频流,同时可经由套接字或HTTP连接来传输着色器。
根据一些实施例,视频流处理设备包括多个执行线程,并且其中通过执行第一线程实施视频流的传输,并且其中通过执行不同于第一线程的第二线程实施第二处理中应用的一个或多个着色器中的至少一个着色器的传输。这可进一步促进优先于第二处理的着色器的传输而传输视频流。
根据一些实施例,所述方法进一步包括步骤:在所述视频流处理设备处从所述客户端设备接收要从所述视频流处理设备向所述客户端设备传输的视频流的请求,在所述视频流处理设备处从所述请求中提取关于所述客户端设备的信息,关于所述客户端设备的信息包括至少所述客户端设备的GPU的类型的信息,其中所述第一处理和/或所述第二处理取决于所提取的信息。
通过已从来自客户端设备的视频流的请求提取着色器执行的分配需要的信息,可提前实施第一处理和第二处理的确定。
根据一些实施例,视频流处理可包括对由客户端设备发送的视频流的请求的响应中关于客户端设备的信息的请求。视频流处理设备可例如经由包括在响应中的JavaScript来请求该信息。在客户端设备接收此响应时,可在发送到视频处理设备的进一步通信中提供请求的信息。
在第二方面,本发明提供了一种用于处理视频流的视频流处理设备,包括:存储器,用于存储要应用到所述视频流的一个或多个着色器,着色器操作单元,用于确定:涉及要应用所述一个或多个着色器中的至少一个着色器的所述视频流中的至少一子集的第一处理,以及涉及要应用所述一个或多个着色器中的至少一个着色器的所述视频流中的至少一子集的第二处理。所述视频流处理设备进一步包括:图形处理单元GPU,用于实施所述第一处理,以及数字网络模块,所述数字网络模块被配置成传输所述第二处理中要应用的所述一个或多个着色器中的所述至少一个着色器和关于所述第二处理涉及的所述视频流中的至少一子集的数据。
所述视频处理设备可有利地是数字视频摄像机的部分,其中所述视频流由所述数字视频摄像机获取。这可减少连接到摄像机的进一步电子设备的需要,并且例如针对组装原因和针对减少安装视频流处理设备和摄像机需要的空间是有利的。
在第三方面,本发明提供了一种用于处理视频流的系统,包括:视频流处理设备,包括:存储器,用于存储要应用到视频流的一个或多个着色器,着色器操作单元,用于确定:涉及要应用所述一个或多个着色器中的至少一个着色器的所述视频流中的至少一子集的第一处理,以及涉及要应用所述一个或多个着色器中的至少一个着色器的所述视频流中的至少一子集的第二处理。所述视频处理设备进一步包括:图形处理单元GPU,用于实施所述第一处理,编码器,被配置成将所述视频流编码成编码的视频流,以及数字网络模块,所述数字网络模块被配置成经由数字网络传输所述第二处理中要应用的所述一个或多个着色器中的所述至少一个着色器、关于所述第二处理涉及的所述视频流中的至少一子集的数据和所编码的视频流。所述系统进一步包括客户端设备,所述客户端设备包括:数字网络模块,被配置成经由所述数字网络接收所述第二处理中要应用的所述一个或多个着色器中的所述至少一个着色器、关于所述第二处理涉及的所述视频流中的至少一子集的数据和编码的视频流,解码器,被配置成将所述编码的视频流解码成一视频流,以及GPU,用于使用所接收的所述一个或多个着色器中的所述至少一个着色器和所接收的关于所述第二处理涉及的所述视频流中的至少一子集的数据,实施所述第二处理。
在第四方面,本发明提供了一种计算机程序产品,包括具有指令的计算机可读存储介质,所述指令在由具有处理能力的设备执行时,适于执行根据第一方面的方法。
第二、第三和第四方面通常可具有与第一方面相同的特征和优势。
附图说明
参照附图,通过下面本发明的实施例的说明性以及非限制性的详细描述,将更好地理解本发明的上述内容以及其他目的、特征和优势,其中,相同的附图标记将用于相似的元件,其中:
图1描述使用着色器的视频流的处理的流程图,其中该处理在视频处理设备和客户端设备之间分配,
图2通过示例示出为了在视频流处理设备和客户端设备之间分配使用着色器的视频流的处理而在视频流处理设备和客户端设备之间发送的消息和数据,
图3a描述使用着色器的视频流的处理的一种场景,
图3b-图3c示出在视频流处理设备和客户端设备之间分配图3a中描述的处理的不同的方式,
图4a描述使用着色器的视频流的处理的一种场景,
图4b-图4c描述视频流处理设备和客户端设备之间动态地改变图4a中描述的处理的分配,
图5描述包括视频流处理设备和客户端设备的系统。
具体实施方式
图1通过示例描述使用着色器的视频流的处理的流程图。在该流程图中,第一步是设置S102要应用到视频流102的一个或多个着色器105的步骤。如图1中描述的,可在视频流处理设备之外获取视频流102,并向视频流处理设备传输视频流102。根据一些实施例,视频流处理设备是数字视频摄像机。在这种情况下,如图1中描述的,由数字视频摄像机获取视频流102,并且因此不传输到视频流处理设备中。然而,根据其他实施例,视频流处理设备是与获取视频流102的摄像机分离的设备。在这种情况下,视频流处理设备和摄像机之间的连接可以是有线连接或无线连接。
此外,设置S102着色器105的步骤在图1中是在视频流处理设备之外进行的,例如在预处理步骤中,在该预处理步骤中分析视频流102并且在该预处理步骤中基于该分析确定要被应用的着色器105。在其他实施例中,在视频流处理设备中实施设置S102着色器105的步骤。根据又一个实施例,一个或多个着色器是始终被应用到视频流的固定着色器,并且因此可硬编码到视频流处理设备中。
到视频流102的一个或多个着色器105的应用被分成第一处理步骤和第二处理步骤。分成两个处理步骤将在下面进一步描述。将由视频流处理设备实施第一处理,并且将由连接到视频流处理设备的客户端设备实施第二处理。视频流处理设备和客户端设备之间的连接可以是有线连接或无线连接。
图1中描述的流程图中,下一个步骤是在视频流处理设备处通过第一处理将一个或多个着色器105(之前在S102中设置的)中的至少一个着色器107应用S104到视频流102中的至少一子集。如将在下面更详细地描述的,使用视频流处理设备的GPU实施此步骤。
进一步,将第二处理需要的着色器108从视频流处理设备传输到客户端设备。应注意,如果第二处理包括使用纹理的纹理映射,则还可将纹理作为第二处理需要的着色器108的传输S106的部分或者作为单独的传输(未示出)进行传输。
如图1中清楚地看到的,流程图包括两条单独的路线。一条路线用于视频流102、102’上的一个或多个着色器105的应用以及来自视频流处理设备和客户端设备的一个或多个着色器105的任何传输,并且一条路线用于在视频流处理设备处编码S108视频流102、将编码的视频流106传输S109到客户端设备以及在客户端设备处解码S110编码的视频流106。换句话说,视频流作为编码的视频流106从视频流处理设备传输S109到客户端设备,其中在第二处理S112之前解码S110视频流。因此,第二处理涉及一个或多个着色器105中的至少一个着色器108传输到视频流102’中的至少一子集的应用。
视频流102’可随后由显示器104显示。如果一个或多个着色器中的所有着色器已应用到全部视频流,则充分处理了由显示器104显示的视频流102’。然而,由于流程的双路线设计促进用于传输S109编码的视频和用于传输S106客户端设备处的第二处理中要应用的一个或多个着色器105中的至少一个着色器108的不同的优先级别,因此可使得在显示器104显示的视频流102’的至少一部分仅是半处理或是根本未处理的。例如,可由之前在S102中设置的一个或多个着色器105的子集仅处理视频流102’的第一帧,和/或已应用到视频流的第一帧的着色器可仅已应用到视频流的第一帧的子集。换句话说,已向客户端设备传输S106第二处理需要的着色器108之前,第二处理将还未应用到已显示的视频流的帧。在实时应用中,即,实时获取、处理及显示视频时,赋予视频流的传输S109高于第二处理的着色器108的传输S106的优先级是有利的。
图2通过示例描述视频流处理设备和客户端设备之间发生的传输。第一传输是从客户端设备和视频流处理设备发送S202的视频的请求,例如,http请求。在视频流处理设备接收到请求时,视频流处理设备可立即开始向客户端设备传输视频202。根据视频的请求,视频流处理设备可提取关于客户端设备的信息,例如客户端设备是否具有GPU、GPU的类型、客户端设备的操作系统(OS)等。此信息可用于决定是否应在视频流处理设备和客户端设备之间分配一个或多个着色器的执行,以及在该情况下,应如何分配着色器的执行。
然而,如果需要作出处理的分配的进一步信息,则该视频流处理设备可在其向客户端设备发送S204的响应消息中请求关于客户端设备的更多信息。例如,进一步信息的请求可嵌入包括在http响应中的JavaScrip代码中。
如果请求了这种进一步信息,则客户端设备可在向视频流处理设备传输S206的消息中提供请求的信息。
无论是否由视频流处理设备请求S204进一步信息以及随后进一步信息是否向视频流处理设备传输S206,或者来自客户端设备的视频的请求中提供的信息是否被认为是足够的,在进行了着色器的处理的分配之后,都向客户端设备传输S208在客户端设备处的第二处理中要应用的一个或多个着色器中的至少一个着色器以及关于第二处理涉及的视频流中的至少一子集的数据。
根据一些实施例,第一处理和/或第二处理在视频流202的持续期间动态地改变。可通过从客户端设备向视频流处理设备传输S212该进一步信息来促进此改变。此进一步信息可例如与客户端设备的电池水平和/或客户端设备的GPU的处理能力有关。此类型的信息可已在视频的请求中传输S202或已存在于具有从客户端设备传输S206的进一步信息的第一消息中,但由于该信息与可在一时段期间动态地改变的客户端设备的属性有关,因此在分配视频流处理设备和客户端设备之间的着色器的处理时,考虑更新的信息是有利的。可由客户端设备自己主动传输S212这种进一步信息,或作为对视频流处理设备的进一步信息的请求的传输S210的响应而传输S212这种进一步信息。此外,第一处理和/或第二处理可基于视频流处理设备处直接可用的信息动态地改变,例如,视频流处理设备和客户端设备之间的连接的带宽、视频流处理设备的GPU的处理能力和/或视频流处理设备的电池水平。
根据上述内容,如果第二处理基于新的信息改变,则向客户端设备传输S214在客户端设备处的改变的第二处理中要应用的一个或多个着色器中的至少一个着色器和关于改变的第二处理涉及的视频流中的至少一子集的数据。
根据一些实施例,如果第二处理基于新的信息改变,但是,与原先的第二处理相比,在改变的第二处理中应用一个或多个着色器中的相同的至少一个着色器,则可仅向客户端设备传输S214关于改变的第二处理涉及的视频流中的至少一子集的数据。如果仅一个或多个着色器中的至少一个着色器改变,则进行相同的应用,在此情况下,可仅向客户端传输S214要在客户端设备处的改变的第二处理中应用的一个或多个着色器中的至少一个着色器。
此外,如果第二处理因为例如之前在第二处理中应用的着色器中的一个着色器不再是第二处理的部分而改变,则视频流处理设备可仅向客户端设备发送命令,以停止应用该移除的着色器。
应注意,视频流处理可同时向几个客户端设备传输视频流202。在这种情况下,针对不同的客户端设备,可取决于它们的能力和性能有区别地进行第一处理和第二处理之间的全部处理的分配。由于视频流处理设备的GPU可处理并行执行的几个不同的着色器(例如,顶点着色器、像素着色器、计算着色器),因此进行这种设备专有分配是可能的。此外,应注意,不同的客户端设备可请求不同的视频流(例如,具有不同的分辨率、帧速率和/或视场的部分中的数字缩放等)。
图3a描述使用着色器的视频流的处理的一种场景。在此场景中,设置三个着色器S1、S2、S3以应用到包括三个帧#1、#2、#3的视频流。在图3b中,三个帧的处理如下面所述在视频流处理设备和客户端设备之间分配。
针对第一处理和第二处理两者,处理帧#1、#2、#3中的每个帧中的所有像素,通过表示图3b中的充满点的帧#1、#2、#3的区域表示。然而,第一处理包括对帧#1、#2、#3应用两个着色器S1、S2,而第二处理包括对帧#1、#2、#3应用第三个着色器S3。因此,第一处理中应用的至少一个着色器S1、S2不同于第二处理中应用的至少一个着色器S3。
在图3c中,进行不同类型着色器的处理的分配。根据此实施例,所有三个着色器S1、S2、S3被应用到第一处理和第二处理两者中。而不是第一处理和第二处理涉及视频流的帧#1、#2、#3的不同的子集。在图3c中,第一处理涉及每个帧#1、#2、#3中的一半像素,而第二处理涉及每个帧#1、#2、#3的另一半像素。因此,第一处理涉及的视频流的子集不同于第二处理涉及的视频流的子集。分配帧的其他方式同样是可能的,例如,每隔一个帧,可在视频流处理设备处理,而客户端设备上的处理负责其他帧。其他可能性包括:在视频流处理设备处理2/3的像素,并且在客户端设备处理其余1/3的像素,或者分配要处理的像素的任何其他合适的方式。
图4a描述使用着色器的视频流的处理的另一种场景。在此场景中,设置三个着色器S1、S2、S3以应用到包括六个帧#1、#2、#3、#4、#5、#6的视频流。
图4b描述最先的三个帧#1、#2、#3的处理。针对图4b中的第一处理和第二处理两者,处理帧#1、#2、#3的每个帧中的所有像素。然而,第一处理包括对帧#1、#2、#3应用两个着色器S1、S2,而第二处理包括对帧#1、#2、#3应用第三个着色器S3。
如上所述,第一处理和/或第二处理可在视频流的持续期间动态地改变。这在图4c中描述,图4c描述最后的三个帧#4、#5、#6的处理。在图4c中,由于已移动了第二着色器S2的执行,并且第二着色器S2的执行现在是客户端设备处的第二处理的部分,因此与图4b中的第一处理和第二处理相比,第一处理和第二处理已经改变。
当在视频处理设备和客户端设备之间分配着色器的处理时,除了上面描述的考虑,可进行进一步考虑。例如,在一个或多个着色器中的一个着色器在视频流上生成隐私遮蔽的情况下,如果隐私遮蔽作为一个整体在第一处理中生成,则可能是有利的。由于在向客户端设备发送的编码的视频中已经应用了隐私遮蔽,因此这减少了向观看者显示敏感视频数据的风险。
此外,针对需要低延迟的着色器,以及针对涉及客户端设备处或连接到客户端设备的显示器处的交互用户界面的着色器,在客户端设备处方便地实施这些着色器的执行。
在图3b-图3c以及图4b-图4c中,第一处理不同于第二处理。然而,如之前提到的,第一处理和第二处理可能是一样的,例如,在着色器实施视频流的增量过滤时。
图5描述用于处理视频流的系统500。系统500包括连接到客户端设备516的视频流处理设备502。
视频流处理设备包括存储器504,用于存储要被应用到视频流的一个或多个着色器。存储器504可包括但不限于:RAM、ROM、EEPROM、闪存或其他存储技术、CD-ROM、数字通用光盘(DVD)或其他光盘存储器、磁带盒、磁带、磁盘存储器或其他磁存储设备、或可用于存储期望的信息并且可由计算机访问的任何其他介质。
视频流处理设备502进一步包括着色器操作单元506,可用于确定涉及一个或多个着色器中的至少一个着色器要应用的视频流中的至少一子集的第一处理,以及涉及一个或多个着色器中的至少一个着色器将应用的视频流中的至少一子集的第二处理。在确定第一处理和第二处理时,着色器操作单元506可考虑关于视频流处理设备、客户端设备和/或视频流处理设备与客户端设备之间的连接的信息。着色器操作单元506还可考虑视频流的内容,即,通过使用视频分析算法或被提供有来自另一个设备的视频分析数据。例如,如果确定视频流包括需要遮盖的人脸,例如,通过隐私遮蔽遮盖,则着色器操作单元可确定第一处理应包括对视频流应用这种隐私遮蔽的着色器。根据一些实施例,远离视频流处理设备来提供着色器操作单元。根据此实施例,第一处理和第二处理被提供到视频流处理设备,而不是在视频流处理设备中确定。
视频流处理设备进一步包括GPU 508和编码器512,GPU 508用于实施第一处理,编码器512被配置成将视频流编码成编码的视频流106。编码的视频流106随后由数字网络模块510经由数字网络514传输到客户端设备516。数字网络模块510还将传输第二处理中要应用的一个或多个着色器中的至少一个着色器108和关于第二处理涉及的视频流中的至少一子集的数据524。例如,在图3c中示出的实施例中,关于第二处理涉及的视频流中的至少一子集的数据524描述每帧的右半帧应在第二处理中被处理。着色器操作单元506和编码器512可在软件中实现,并且可由视频流处理设备502中的一个或多个处理器执行。
如上所述,可优先于第二处理中要应用的一个或多个着色器中的至少一个着色器108的传输和关于第二处理涉及的视频流中的至少一子集的数据524的传输而考虑编码的视频流106的传输。此特征在图5中通过表示视频流106的传输的线比表示着色器108和数据524的传输的线粗来描述。可以以多种方式获得此优先级。例如,可经由第一网络连接实施视频流106的传输,并且可经由不同于第一网络连接的第二网络连接实施着色器108和数据524的传输。在这种情况下,用于视频流106的传输的连接可具有比用于着色器108和数据524的传输的连接更高的带宽。根据其他实施例,视频流处理设备502包括多个执行线程,并且其中通过执行第一线程实施视频流106的传输,并且其中通过执行不同于第一线程的第二线程实施第二处理中应用的着色器108和数据524的传输。
编码的视频流106、着色器108和数据524由客户端设备中的数字网络模块522接收。客户端设备516中的数字网络模块522因此被配置成经由数字网络514接收第二处理中要应用的一个或多个着色器中的至少一个着色器108、关于第二处理涉及的视频流中的至少一子集的数据524和编码的视频流106。客户端设备516进一步包括解码器520和GPU 518,解码器520被配置成将编码的视频流106解码成视频流,并且GPU 518用于使用接收的一个或多个着色器中的至少一个着色器108和接收的关于第二处理涉及的视频流中的至少一子集的数据524来实施第二处理。最后,客户端设备可连接到用于显示处理的视频流526的显示器104。

Claims (13)

1.一种用于在系统中处理视频流的方法,所述系统包括连接到客户端设备的视频流处理设备,所述方法包括:
设置要应用到所述视频流的一个或多个着色器,
在所述视频流处理设备处通过第一处理将所述一个或多个着色器中的至少一个着色器应用到所述视频流中的至少一子集,
在所述客户端设备处通过第二处理将所述一个或多个着色器中的至少一个着色器应用到所述视频流中的至少一子集,
其中所述第二处理中应用的所述一个或多个着色器中的所述至少一个着色器被从所述视频流处理设备传输到所述客户端设备,并且
其中所述视频流作为编码的视频流从所述视频流处理设备传输到所述客户端设备,在所述客户端设备处,所述视频流在所述第二处理之前被解码。
2.根据权利要求1所述的方法,其中所述第一处理不同于所述第二处理。
3.根据权利要求2所述的方法,其中所述第一处理中应用的所述至少一个着色器不同于所述第二处理中应用的所述至少一个着色器。
4.根据权利要求2所述的方法,其中所述第一处理涉及的所述视频流中的所述至少一子集不同于所述第二处理涉及的所述视频流中的所述至少一子集。
5.根据权利要求1所述的方法,其中所述第一处理和/或所述第二处理取决于由以下类型构成的组中的至少之一:
所述客户端设备的图形处理单元GPU的类型,以及
所述视频流处理设备的图形处理单元GPU的类型。
6.根据权利要求1所述的方法,其中所述第一处理和/或所述第二处理在所述视频流的持续期间改变。
7.根据权利要求6所述的方法,其中所述第一处理和/或所述第二处理基于关于以下构成的组中的至少之一的信息在所述视频流的持续期间动态地改变:
所述视频流处理设备和所述客户端设备之间的连接的带宽,
所述客户端设备的电池水平,
所述视频流处理设备的电池水平,
所述客户端设备的GPU的处理能力,以及
所述视频流处理设备的GPU的处理能力。
8.根据权利要求1所述的方法,其中所述视频流的传输具有第一优先级,其中所述第二处理中应用的所述一个或多个着色器中的所述至少一个着色器从所述视频流处理设备到所述客户端设备的传输具有低于所述第一优先级的第二优先级,并且其中实施所述传输的顺序是基于所述传输各自的优先级的。
9.根据权利要求8所述的方法,其中所述视频流的传输经由第一网络连接实施,并且其中所述第二处理中应用的所述一个或多个着色器中的所述至少一个着色器从所述视频流处理设备到所述客户端设备的传输经由不同于所述第一网络连接的第二网络连接实施。
10.根据权利要求1所述的方法,进一步包括步骤:
在所述视频流处理设备处从所述客户端设备接收要从所述视频流处理设备向所述客户端设备传输视频流的请求,
在所述视频流处理设备处从所述请求中提取关于所述客户端设备的信息,关于所述客户端设备的信息包括至少所述客户端设备的GPU的类型的信息,其中所述第一处理和/或所述第二处理取决于所提取的信息。
11.一种用于处理视频流的系统,包括:
视频流处理设备,所述视频流处理设备包括:
存储器,用于存储要应用到所述视频流的一个或多个着色器,
着色器操作单元,用于确定:
涉及要应用所述一个或多个着色器中的至少一个着色器的所述视频流中的至少一子集的第一处理,以及
涉及要应用所述一个或多个着色器中的至少一个着色器的所述视频流中的至少一子集的第二处理,
图形处理单元GPU,用于实施所述第一处理,
编码器,被配置成将所述视频流编码成编码的视频流,以及
数字网络模块,所述数字网络模块被配置成经由数字网络传输所述第二处理中要应用的所述一个或多个着色器中的所述至少一个着色器、关于所述第二处理涉及的所述视频流中的至少一子集的数据,和所述编码的视频流客户端设备,包括:
数字网络模块,被配置成经由所述数字网络接收所述第二处理中要应用的所述一个或多个着色器中的所述至少一个着色器、关于所述第二处理涉及的所述视频流中的至少一子集的数据和所述编码的视频流,
解码器,被配置成将所述编码的视频流解码成一视频流,以及
GPU,用于使用所接收的所述一个或多个着色器中的所述至少一个着色器和所接收的关于所述第二处理涉及的所述视频流中的至少一子集的数据,实施所述第二处理,
其中所述视频流作为编码的视频流从所述视频流处理设备传输到所述客户端设备,在所述客户端设备处,所述视频流在所述第二处理之前被解码。
12.根据权利要求11所述的系统,所述视频流处理设备是数字视频摄像机,其中所述视频流由所述数字视频摄像机获取。
13.一种包括指令的计算机可读存储介质,所述指令在由具有处理能力的设备执行时,适于执行根据权利要求1所述的方法。
CN201510883470.1A 2014-12-04 2015-12-04 用于视频流的后处理的方法及设备 Active CN105677270B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP14196324.9A EP3029940B1 (en) 2014-12-04 2014-12-04 Method and device for post processing of a video stream
EP14196324.9 2014-12-04

Publications (2)

Publication Number Publication Date
CN105677270A CN105677270A (zh) 2016-06-15
CN105677270B true CN105677270B (zh) 2018-06-26

Family

ID=52015919

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510883470.1A Active CN105677270B (zh) 2014-12-04 2015-12-04 用于视频流的后处理的方法及设备

Country Status (6)

Country Link
US (1) US10049424B2 (zh)
EP (1) EP3029940B1 (zh)
JP (1) JP6804191B2 (zh)
KR (1) KR102417055B1 (zh)
CN (1) CN105677270B (zh)
TW (1) TWI699116B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2520334B (en) * 2013-11-18 2015-11-25 Helen Bradley Lennon A video broadcast system and a method of disseminating video content
RU2744982C2 (ru) * 2017-04-21 2021-03-17 Зенимакс Медиа Инк. Системы и способы для отложенных процессов постобработки при кодировании видеоинформации
JP7389602B2 (ja) * 2019-09-30 2023-11-30 株式会社ソニー・インタラクティブエンタテインメント 画像表示システム、画像処理装置、および動画配信方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1702692A (zh) * 2004-05-03 2005-11-30 微软公司 提供增强的图形流水线的系统和方法
CN102959517A (zh) * 2010-06-10 2013-03-06 Otoy公司 在并行的多个客户端之间的gpu资源的分配

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7570267B2 (en) * 2004-05-03 2009-08-04 Microsoft Corporation Systems and methods for providing an enhanced graphics pipeline
US8098256B2 (en) * 2005-09-29 2012-01-17 Apple Inc. Video acquisition with integrated GPU processing
US8723951B2 (en) 2005-11-23 2014-05-13 Grandeye, Ltd. Interactive wide-angle video server
US7873229B2 (en) * 2006-02-08 2011-01-18 Moxair, Inc. Distributed processing for video enhancement and display power management
EP2523192B1 (en) * 2006-03-07 2015-08-19 Sony Computer Entertainment America LLC Dynamic replacement of cinematic stage props in program content
KR100960164B1 (ko) * 2006-08-01 2010-05-26 엔비디아 코포레이션 표시 목적으로 네트워크를 통해 통신되는 콘텐츠를처리하기 위한 멀티그래픽 프로세서 시스템 및 방법
TW201114250A (en) * 2009-10-15 2011-04-16 Avermedia Information Inc IP camera and image output method applied thereto
US8681162B2 (en) * 2010-10-15 2014-03-25 Via Technologies, Inc. Systems and methods for video processing
US9007432B2 (en) 2010-12-16 2015-04-14 The Massachusetts Institute Of Technology Imaging systems and methods for immersive surveillance
EP2663925B1 (en) 2011-01-14 2016-09-14 Google, Inc. A method and mechanism for performing both server-side and client-side rendering of visual data
US9250966B2 (en) 2011-08-11 2016-02-02 Otoy, Inc. Crowd-sourced video rendering system
JP2013055454A (ja) * 2011-09-02 2013-03-21 Toshiba Corp 映像再生装置及び映像再生方法
WO2013153787A1 (ja) * 2012-04-12 2013-10-17 株式会社スクウェア・エニックス・ホールディングス 動画配信サーバ、動画再生装置、制御方法、プログラム、及び記録媒体
US9378582B2 (en) * 2012-07-31 2016-06-28 Siemens Product Lifecycle Management Software Inc. Rendering of design data
US9264749B2 (en) * 2012-12-13 2016-02-16 Microsoft Technology Licensing, Llc Server GPU assistance for mobile GPU applications
US9069568B2 (en) 2012-12-19 2015-06-30 International Business Machines Corporation Compilation dependency resolution from a diverse group of candidate resources
US20150087414A1 (en) * 2013-09-26 2015-03-26 Cellco Partnership D/B/A Verizon Wireless Cloud gaming implemented using a mobile device and a display device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1702692A (zh) * 2004-05-03 2005-11-30 微软公司 提供增强的图形流水线的系统和方法
CN102959517A (zh) * 2010-06-10 2013-03-06 Otoy公司 在并行的多个客户端之间的gpu资源的分配

Also Published As

Publication number Publication date
CN105677270A (zh) 2016-06-15
KR102417055B1 (ko) 2022-07-05
TW201622426A (zh) 2016-06-16
US10049424B2 (en) 2018-08-14
US20160165282A1 (en) 2016-06-09
TWI699116B (zh) 2020-07-11
JP2016111705A (ja) 2016-06-20
EP3029940A1 (en) 2016-06-08
EP3029940B1 (en) 2017-03-15
JP6804191B2 (ja) 2020-12-23
KR20160067798A (ko) 2016-06-14

Similar Documents

Publication Publication Date Title
CN111681167B (zh) 画质调整方法和装置、存储介质及电子设备
TWI590662B (zh) 解碼器及解碼方法
KR102500761B1 (ko) 영상의 ai 부호화 및 ai 복호화 방법, 및 장치
CN109309842B (zh) 直播数据处理方法和装置、计算机设备和存储介质
CN112887739A (zh) 电子设备、系统及其控制方法
DE102020108357A1 (de) Umkodieren vorhergesagter bilder in live-videostream-anwendungen
EP3161965A1 (en) Encoder and decoder
CN108400956A (zh) 视频数据流的分配方法、装置和系统
CN105677270B (zh) 用于视频流的后处理的方法及设备
WO2024037137A1 (zh) 一种沉浸媒体的数据处理方法、装置、设备、介质和产品
CN104782119B (zh) 带宽降低系统和方法
JP7332605B2 (ja) ビデオビットストリームの復号化、生成方法および装置、記憶媒体、電子機器
CN115190345A (zh) 用于显示媒体的协调控制
US20230034937A1 (en) Media file encapsulating method, media file decapsulating method, and related devices
US20230082784A1 (en) Point cloud encoding and decoding method and apparatus, computer-readable medium, and electronic device
Laghari et al. The state of art and review on video streaming
CN108174084A (zh) 全景视频处理方法及终端设备
WO2023226504A1 (zh) 一种媒体数据处理方法、装置、设备以及可读存储介质
CN110753243A (zh) 图像处理方法、图像处理服务器及图像处理系统
CN117440160A (zh) 一种视频处理方法、装置、设备及存储介质
CN112541858A (zh) 视频图像的增强方法、装置、设备、芯片及存储介质
Kammachi‐Sreedhar et al. Omnidirectional video delivery with decoder instance reduction
CN114640849B (zh) 直播视频编码方法、装置、计算机设备及可读存储介质
US20240244229A1 (en) Systems and methods for predictive coding
CN113160342A (zh) 基于反馈的编码方法及装置、存储介质、电子设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant