CN112715028A - 传送控制的视频编码 - Google Patents

传送控制的视频编码 Download PDF

Info

Publication number
CN112715028A
CN112715028A CN201880095095.6A CN201880095095A CN112715028A CN 112715028 A CN112715028 A CN 112715028A CN 201880095095 A CN201880095095 A CN 201880095095A CN 112715028 A CN112715028 A CN 112715028A
Authority
CN
China
Prior art keywords
target frame
prediction
frame size
encoding
channel
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.)
Pending
Application number
CN201880095095.6A
Other languages
English (en)
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN112715028A publication Critical patent/CN112715028A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/164Feedback from the receiver or from the transmission channel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • 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/23418Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
    • 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/23439Processing 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 for generating different versions
    • 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/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/2365Multiplexing of several video streams
    • 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/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/2365Multiplexing of several video streams
    • H04N21/23655Statistical multiplexing, e.g. by controlling the encoder to alter its bitrate to optimize the bandwidth utilization
    • 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/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • 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/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/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44209Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64723Monitoring of network processes or resources, e.g. monitoring of network load

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

实施例大体上针对传送控制的视频编码。一种装置的实施例包括:一个或多个处理器,用于处理数据;存储器,用于存储包括用于视频流传输的数据在内的数据;以及视频处理机构,其包括编码器和传送机构,其中该视频处理机构用于进行以下操作:生成对网络信道的信道吞吐量的预测;基于该预测对一个或多个比特流进行编码,其包括在该预测指示信道吞吐量的增加或减少的情况下对包括第一比特流和第二比特流在内的多个比特流进行编码以及在该预测指示稳定的信道吞吐量的情况下对单个比特流进行编码;以及针对当前帧选择一个或多个比特流中的比特流。

Description

传送控制的视频编码
技术领域
本文描述的实施例大体上涉及数据处理领域,并且更具体地涉及传送控制的视频编码。
背景技术
实况视频流传输已被用于视频会议多年,并且对该技术的使用随着其已经适应手持设备而继续增长。随着该技术已经实现云视频游戏,对实况视频流传输的使用在普及度和重要性方面已经激增。
视频流传输依赖于网络数据吞吐量,因为数据的延迟可能极大地损害用户在利用流传输操作时的体验。网络吞吐量(其也可称为网络带宽)可能随着网络状况和使用情况而快速改变,因此视频应用被要求对这些状况做出快速响应,以避免数据延迟对用户而言变得明显。
然而,常规技术假定将存在网络吞吐量的逐渐变化,因此当带宽迅速下降时会因为视频流传输结构没有足够快速地做出响应而发生较大的数据延迟。常规技术还将针对其中带宽正在快速提高的相反情况提供缓慢的响应,因此将不能足够快地实现视频流传输质量的改进以充分利用提高的带宽。
已经提出对视频流传输的改进以解决迅速的带宽变化,但是所提出的技术遭受诸如编码复杂度、极大的存储器需求、以及对即时信道反馈的需求之类的缺陷,因此这些概念尚未被证明对于实现到现实世界应用中是实用的。
附图说明
在附图的各图中,以示例而非限制的方式示出了本文描述的实施例,在附图中,相似的附图标记指代类似的元件。
图1和图2示出了由迅速带宽变化引起的视频流服务的延迟;
图3是根据一些实施例的允许传送控制视频编码的系统或装置的图示;
图4是根据一些实施例的传送控制视频编码操作的图示;
图5是根据一些实施例的利用了传送控制的视频编码过程的图示;
图6示出了根据一些实施例的包括传送控制视频编码的新颖处理系统;并且
图7示出了根据一些实施例的计算设备。
具体实施方式
本文描述的实施例大体上涉及传送控制视频编码。
在一些实施例中,一种装置、系统或过程允许了传送控制的视频编码,以在变化的网络吞吐量状况下改善视频流传输性能。在一些实施例中,基于信道反馈来估计未来的信道带宽变化,其中如果检测到网络带宽增加或减少,则两个比特流基于估计的带宽被生成,其中传送将基于即时信道变化来选择用于传输的比特流。
从早期的视频会议系统(诸如
Figure BDA0002860213930000021
)到当今的流行资源(例如MicrosoftSkype,Google Hangouts,
Figure BDA0002860213930000022
以及WebRTC),实时视频流传输已成为最重要的因特网视频应用之一。随着近来新兴的云视频游戏市场,实时视频流传输在市场中正变得甚至更重要。云游戏市场据估计在2019年将超过200亿美元,并将继续增长。
在所有这些应用中,以极低的等待时间来编码和发送(传输)视频的能力是确保用户体验积极的最重要因素,尤其是对于需要用户交互的应用来说。任何信号延迟对于用户来说都是立即显而易见的,并且这样的延迟可能会大大降低用户在游戏环境或其他实况视频系统中的体验。
在常规解决方案中,视频编码器负责以平均比特率对视频进行编码,该平均比特率反映估计的网络带宽。传送然后负责在分组内发送经编码的视频,处理网络通信和带宽变化,以及向视频编码器提供估计的网络带宽。尽管视频编码器根据传送反馈被调整,但是视频编码器和传送是松耦合的。常规的视频编码器速率控制继续依赖于假定网络带宽以逐渐速率变化的模型,其中视频编码器基于平均信道容量选择保守的目标比特率。如果信道带宽改变,则编码器通常将重置到新的目标比特率,以从某个重置点进行编码。在重置点之间,传送在网络吞吐量突然降低的情况下将要么延迟传输要么简单地丢弃帧。一般而言,这种常规的面向目标比特率的编码无法足够快地适应以应对迅速的网络吞吐量变化。
图1和图2示出了由迅速带宽变化引起的视频流服务的延迟。在常规的视频处理结构中,如果存在迅速的网络吞吐量下降,则可能发生巨大的延迟和帧丢失。图1示出了具有实际测试场景的视频会议服务的特定示例,从而提供了随着时间推移的吞吐量的图,该图包括网络容量(实线)和视频会议服务的视频编码比特率要求(虚线)。图2是在同一时段内在视频服务中发生的信号延迟的图示。如可以在图1和图2中看到的,当网络容量快速下降时,产生极大的延迟。对于诸如实时游戏流传输之类的应用而言,图2所示的延迟将是不可接受的。
在相反的场景下,当网络吞吐量随时间推移而迅速提高时,现有的解决方案同样无法足够快速地做出响应以提供可以用可用带宽实现的服务质量。本质上,常规的装置或系统将不会足够快速地做出响应以允许提高服务质量来利用可用的吞吐量。
已经开发出可伸缩视频编码(诸如用于H.264(H.264/MPEG-4AVC视频压缩标准的附件G扩展)的SVC(可伸缩视频编码)和用于H.265视频压缩的SHVC(高效视频编码(HEVC)的可伸缩扩展))来处理可变的信道状况。尽管可伸缩视频编码在足够大数量的层被使用的情况下在理论上可以提供对网络变化的快速响应,但是可伸缩视频编码由于其高编码复杂度和其对于稳定网络状况的低压缩效率而通常尚未被接受用于商业采用。
最近,Sajed Fouladi等人在论文“Salsify:Low-Latency Network Videothrough Tighter Integration between a Video Codec and a Transport Protocol(通过视频编解码器与传输协议之间的更紧密集成的低等待时间网络视频)”中提出了一种建议的解决方案。Salsify解决方案基本上针对每个帧生成两个比特流(使用两个编码器同时对每个帧进行编码,或者对每个帧进行两次编码并缓冲所有编码状态),并且根据传送反馈仅发送一个比特流。该解决方案显示出对于抖动信道状况的改善,但是与常规结构相比至少需要两倍的编码复杂度。另外,Salsify的存储器需求极大,并且需要即时信道反馈用于操作。由于这些原因,将该技术集成到产品中目前是不实际的。
在一些实施例中,一种装置、系统或过程提供了一种用于提供对迅速变化的网络状况的快速视频编码响应的新颖技术,从而大大降低了所产生的信号延迟。在一些实施例中,该装置、系统或过程提供操作以实现类似于Salsify技术的低等待时间和质量改进,同时使关于编码复杂度、存储器需求和信道反馈的缺点最小化。
图3是根据一些实施例的允许传送控制的视频编码的系统或装置的图示。在一些实施例中,诸如图6中所示的处理系统600之类的处理系统300包括一个或多个处理器核心。在一些实施例中,处理系统300被构造为包括一个或多个处理器305(其可以例如包括具有一个或多个处理器核心的一个或多个CPU(中央处理单元)(其可以用作主机处理器),诸如图6中的中央处理单元612),以及具有一个或多个图形处理器核心的一个或多个图形处理单元(GPU)310(诸如图6中的图形处理单元614),其中GPU可被包括在一个或多个处理器305内或与之分开。GPU可包括但不限于通用图形处理单元(GPGPU)。处理系统300还包括用于数据的存储的存储器315,该数据包括用于实况视频流传输处理的数据。
如图3所示,处理系统300提供视频处理320以产生实况视频流传输,其中实况视频处理包括传送控制的视频流传输以提供对迅速变化的网络吞吐量的快速响应。视频处理包括但不限于视频编码器325和传送机构330。视频编码器提供可伸缩的视频编码,并且包括对视频压缩标准的应用,该视频压缩标准可包括H.264、H.265、或未来的视频压缩标准。
在一些实施例中,视频处理300用于允许传送控制的视频编码,在该传送控制的视频编码中,关于网络的当前带宽的估计被做出。在一些实施例中,如果该估计指示增加或减少的带宽,则视频编码器325将基于带宽估计来对诸如第一比特流和第二比特流之类的多个比特流进行编码,其中,例如,第一比特流基于稳定的带宽并且第二比特流基于增加或减少的带宽。在一些实施例中,如果即时信道反馈可用,则视频处理300将基于即时信道反馈来选择所生成的比特流之一。
图4是根据一些实施例的传送控制的视频编码操作的图示。在一些实施例中,传送控制的视频编码的操作包括:基于信道反馈进行的未来信道带宽估计410。在一些实施例中,基于信道反馈来估计未来信道带宽变化,其中,例如,该估计可以是对稳定的信道带宽、增加的信道带宽、或减少的信道带宽的估计。
在一些实施例中,传送控制的视频编码还包括基于未来信道带宽估计进行的对一个或多个量化参数(QP)的生成420。在一些实施例中,对一个或多个QP的生成可包括:当未来信道带宽估计预测增加的信道带宽或减少的信道带宽时对多个QP的生成。
在一些实施例中,操作还包括用于基于所生成的QP值来生成一个或多个比特流的适应性量化430。在一些实施例中,基于估计的带宽来生成多个比特流(诸如第一比特流和第二比特流),其中针对每个帧进行一遍编码。在一些实施例中,基于稳定的信道带宽来生成第一比特流,并且可以基于增加的信道带宽或减少的信道带宽来另外生成第二比特流。
在一些实施例中,如果即时信道变化可用,则操作还包括基于这样的即时信道变化信息来针对传送选择比特流440。在一些实施例中,在编码过程中没有设置目标比特率,并且该编码过程紧密地耦合到传送并且根据实时信道状况进行调整。可以将实施例无缝地集成到当前视频编解码器中,因为不需要进行重大修改来用它替换市场上可用的当前流传输解决方案。可以应用实施例以在云游戏、无线显示和视频会议中提供帮助,云游戏、无线显示和视频会议中的每一个都需要极低的等待时间以实现积极的用户体验。
在一些实施例中,传送信道可以用于生成对编码器的网络状况反馈。信道以分组为基础提供反馈,并且可以用来快速地提供信道吞吐量变化(上移、稳定、或下移)。
在一些实施例中,如果信道预测示出信道吞吐量正在上移,则生成两个目标帧大小。基于不存在网络吞吐量变化的假设来得出第一目标帧大小。因此,第一目标帧大小基于先前帧,并且可以是与先前帧的大小相同的大小(除非视频流中存在干扰性变化(例如突然移动)或视频流中存在场景变化)。第二目标帧大小大于先前帧的大小,并且它是基于预计的吞吐量增加而得出的。在一些实施例中,为了避免一个用户使用太多的网络容量,可以通过动态阈值来限制第二目标帧大小,该动态阈值基于滑动窗口的平均比特率消耗。然后,基于第一目标帧大小得出第一QP,并基于第二目标帧大小得出第二QP。在一些实施例中,如果第二QP小于阈值,则可以提高视频分辨率,从而提高信号质量。否则,第一QP被用于帧内/帧间预测和编码模式决策。在变换之后,量化被执行两次,以便针对当前帧生成两组比特流。在一些实施例中,如果即时信道反馈可用,则估计新目标帧大小,并且选择更接近该新目标帧大小(其在本文中可以称为即时目标帧大小)的比特流大小。否则,选择并发出基于第二目标帧大小的比特流,即,基于增加的信道带宽的比特流。
在一些实施例中,如果信道预测反而示出信道吞吐量是稳定的,则仅生成一个目标帧大小,并相应地得出单个QP。该单个QP被用于整个接下来的编码过程。在生成比特流之后,发出该比特流(因为在稳定吞吐量的情况下没有要在多个比特流之间做出选择)。在这种情况下,仅生成单个比特流。因为最常见的情况是稳定的信道带宽,因此在大多数时间不需要生成第二比特流。
在一些实施例中,如果信道预测预测信道吞吐量正在下移,则生成两个目标帧大小。在这种情况下,第一目标帧大小使用与先前帧相同或类似的目标帧大小,而第二目标帧大小小于先前帧的大小并且是基于预计的吞吐量减少来得出的。基于第一目标帧大小得出第一QP,并且基于第二目标帧大小得出第二QP。在一些实施例中,如果第二QP大于阈值,则发送跳过信号,使得将整个帧编码为跳过并节省了整个编码过程;或者可降低视频分辨率,从而降低带宽要求。否则,第一QP被用于帧内/帧间预测和编码模式决策。在变换之后,量化被执行两次,以便针对当前帧生成两个比特流。在一些实施例中,如果即时信道反馈可用,则估计新的目标帧大小,并选择更接近新的即时目标帧大小的比特流大小。否则,选择并发出基于第二目标帧大小的比特流,即,基于增加的信道带宽的比特流。
在一些实施例中,一种装置、系统或过程包括适应性量化。与仅使用一个QP来执行量化的常规方法相比,实施例可以使用多个QP值(诸如两个QP)来同时生成两组量化系数。随后应用熵编码以生成两个比特流,这些比特流是基于稳定信道带宽的第一比特流和基于增加的信道带宽的第二比特流。
图5是根据一些实施例的利用了传送控制的视频编码过程的图示。在一些实施例中,视频编码过程500可以如图5所示,其中网络信道的信道反馈505被用于未来信道带宽预测(或估计)510。未来信道带宽预测510基于来自传送(诸如图3中所示的传送机构330)的信道吞吐量反馈,其中预测的吞吐量/带宽被提供给多个速率控制组件(或模块)之一以用于接下来的帧。在一些实施例中,这些组件是针对增加带宽的速率控制组件515,针对稳定带宽的速率控制组件520,以及针对减少带宽的速率控制组件525。如图所示,过程500还包括帧内/帧间预测模式决策和变换530,适应性量化535,以及用于生成比特流bs1 550和bs2555中的一个或多个的熵编码。
因此,如果未来信道带宽预测510指示网络吞吐量/带宽正在上移,则触发针对增加带宽的速率控制组件515。组件515将生成两个目标帧大小,即,基于先前帧的第一目标帧大小和基于估计的带宽增加的第二目标帧大小。该组件还将生成并输出两个QP(基于第一目标帧大小的QP1和基于第二目标帧大小的QP2)。在一些实施例中,如果QP2小于阈值,则可以提高视频分辨率,从而提高视频质量。否则,将一个QP(QP1)用于常规的帧内/帧间预测、模式决策和变换530,并将两个QP(QP1和QP2)用于适应性量化535以在熵编码540中生成两个比特流(图示为bs1550和bs2 555),这些比特流是基于稳定信道带宽的第一比特流和基于增加的信道带宽的第二比特流。
如果未来信道带宽预测510指示网络吞吐量/带宽是稳定的,则触发针对稳定带宽的速率控制组件520。组件520将基于先前帧生成单个目标帧大小,并且将基于该单个目标帧大小输出单个QP(QP0),其中QP0被用于当前帧的完整编码过程。以这种方式,当存在指示稳定信道带宽的估计时,仅需要和生成单个比特流。
如果未来信道带宽预测510指示网络吞吐量/带宽正在下移,则触发针对减少带宽的速率控制组件525。组件525将生成两个目标帧大小,即,基于先前帧的第一目标帧大小和基于信道带宽减少的第二目标帧大小。组件525还将生成两个QP(基于第一目标帧大小的QP3和基于第二目标帧大小的QP4)和跳帧决策。在一些实施例中,如果QP4大于阈值,则跳帧可以被设置,并且接下来的编码过程被跳过并且整个帧被编码为跳过;或者,可替代地,可以降低视频分辨率以降低带宽要求。否则,将一个QP(QP3)用于帧内/帧间预测、模式决策和变换530,并将两个QP(QP3和QP4)用于适应性量化535以在熵编码540中生成两个比特流(图示为bs1550和bs2 555),这些比特流是基于稳定信道带宽的第一比特流和基于减少的信道带宽的第二比特流。
在一些实施例中,过程500还包括基于即时(当前)信道反馈进行的比特流选择560。当两个比特流可用时(bs1 550和bs2 555),仅选择一个比特流并将其发出到传送,该比特流被示出为所选择的比特流565。在一些实施例中,如果即时信道反馈可用,则估计新的即时目标帧大小,并且比特流选择560将选择更接近该即时目标帧大小的比特流大小。如果即时信道反馈不可用,则选择并发出基于第二目标帧大小的比特流,即,基于增加的信道带宽或减少的信道带宽的比特流。对所选择的比特流应用本地解码和重构570,以生成用于后续帧的参考帧。
尽管本文中的讨论大体上描述了一个或两个目标帧大小,但是实施例不限于该特定实现方式。在一些实施例中,装置、系统或过程被扩展为生成更多的目标帧大小,以提供与信道变化相对应的更精确的控制。例如,在预测到较大的信道吞吐量增加或减少的情况下,组件或模块可生成三个帧大小,即,针对稳定信道带宽的第一目标帧大小、针对中等带宽增加或减少的第二目标帧大小、以及针对估计的带宽增加或减少(即,作为更大的增加或减少)的第三目标帧大小。在一些实施例中,组件或模块可以基于这三个目标帧大小来生成三个QP,并且编码可以使用这三个值来生成三个比特流。以这种方式,如果存在显著信道变化的可能性,则装置、系统或过程准备有要从中针对当前帧进行选择的三个(或任何其他数量的)比特流。
在一些实施例中,装置、系统或过程可以利用基于传送的视频编码来提供低等待时间和质量改进,而无需巨大的复杂度或存储器需求。在一些实施例中,该装置、系统或过程包括对未来网络变化的自动预测,并相应地调整对QP形式的视频编码的生成。
另外,如果网络状况是平滑的(即,具有稳定的带宽),则不需要实施例对多个比特流进行编码,其中仅当吞吐量状况急剧地上移和下移时才发生对多个比特流的生成。另外,不需要实施例对两个比特流进行两次编码,而是将两个QP应用于适应性量化和熵编码阶段。因为这大致不到编码时间的30%,因此这不需要加倍的存储器占用和存储器带宽,而是需要更少量的。
图6示出了根据一些实施例的包括传送控制视频编码的新颖处理系统。例如,在一个实施例中,图6的传送控制视频编码机构610可被诸如图7的计算设备700之类的计算设备600采用或托管。计算设备600表示通信和数据处理设备,其包括或表示任何数量和类型的智能设备,诸如(但不限于)智能命令设备或智能个人助理,家庭/办公室自动化系统,家用电器(例如,安全系统,洗衣机,电视机,等等),移动设备(例如,智能电话,平板计算机,等等),游戏设备,手持设备,可穿戴设备(例如,智能手表,智能手环,等等),虚拟现实(VR)设备,头戴式显示器(HMD),物联网(IoT)设备,膝上型计算机,台式计算机,服务器计算机,机顶盒(例如,基于因特网的有线电视机顶盒等),基于全球定位系统(GPS)的设备,等等。
在一些实施例中,计算设备600可包括(但不限于)自主机器或人工智能代理,诸如,机械代理或机器,电子代理或机器,虚拟代理或机器,机电代理或机器等。自主机器或人工智能代理的示例可包括(但不限于)机器人、自主载具(例如,自行驾驶的汽车、自行飞行的飞机,自行航行的帆船或轮船等)、自主设备(自行操作的建筑载具、自行操作的医疗设备等)和/或类似物。另外,“自主载具”不限于汽车,并且可包括任何数量和类型的自主机器(诸如机器人、自主设备、家用自主设备和/或类似物),并且与这样的自主机器有关的任何一项或多项任务或操作可以与自主驾驶互换引用。
另外,例如,计算设备600可包括由多个服务器计算机组成的云计算平台,其中每个服务器计算机采用或托管多功能感知器机构。例如,可以使用在本文档中早些时候描述的组件、系统和体系结构设置来执行自动ISP(图像信号处理器)调谐。例如,上述类型的设备中的某些可用于实现自定义学习过程,诸如使用现场可编程门阵列(FPGA)等。
另外,例如,计算设备600可包括托管集成电路(“IC”)的计算机平台,诸如在单个芯片上集成了计算设备600的各种硬件和/或软件组件的片上系统(“SoC”或“SOC”)。
如图所示,在一个实施例中,计算设备600可包括任何数量和类型的硬件和/或软件组件,诸如(但不限于)图形处理单元614(“GPU”或简称为“图形处理器”)、图形驱动程序(driver)616(也称为“GPU驱动程序”、“图形驱动程序逻辑”、“驱动程序逻辑”、用户模式驱动程序(UMD)、用户模式驱动程序框架(UMDF)、或简称为“驱动程序”)、中央处理单元612(“CPU”或简称为“应用处理器”)、存储器604、网络设备、驱动程序等,以及输入/输出(IO)源608(诸如触摸屏、触摸面板、触摸板、虚拟或常规的键盘、虚拟或常规的鼠标、端口、连接器等)。计算设备600可包括操作系统(OS),该操作系统(OS)用作计算设备600的硬件和/或物理资源与用户之间的接口。
将会认识到,对于某些实现方式,比上述示例更少或更多装备的系统可以是优选的。因此,取决于诸如价格约束、性能要求、技术改进或其他情况之类的许多因素,计算设备600的配置可因实现方式而异。
实施例可被实现为以下各项中的任一项或其组合:使用系统板互连的一个或多个微芯片或集成电路,硬连线逻辑,由存储器设备存储并由微处理器执行的软件,固件,专用集成电路(ASIC),和/或现场可编程门阵列(FPGA)。术语“逻辑”、“模块”、“组件”、“引擎”和“机构”例如可包括软件或硬件和/或其组合,诸如固件。
在一个实施例中,传送控制视频编码机构610可以由计算设备600的存储器604托管。在另一实施例中,传送控制视频编码机构610可以由计算设备600的操作系统606托管或作为其一部分。在另一实施例中,传送控制视频编码机构610可以由图形驱动程序616托管或促进。在又一实施例中,传送控制视频编码机构610可以由图形处理单元614(“GPU”或简称为“图形处理器”)或图形处理器614的固件托管或作为其一部分。例如,传送控制视频编码机构610可被嵌入到图形处理器614的处理硬件中或被实现为图形处理器614的处理硬件的一部分。类似地,在又一实施例中,传送控制视频编码机构610可以由中央处理单元612(“CPU”或简称为“应用处理器”)托管或作为其一部分。例如,传送控制视频编码机构610可被嵌入到应用处理器612的处理硬件中或被实现为应用处理器612的处理硬件的一部分。
在又一实施例中,传送控制视频编码机构610可以由计算设备600的任何数量和类型的组件托管或作为其一部分,例如,传送控制视频编码机构610的一部分可以由操作系统606托管或作为其一部分,另一部分可以由图形处理器614托管或作为其一部分,另一部分可以由应用处理器612托管或作为其一部分,而传送控制视频编码机构610的一个或多个部分可以由操作系统606和/或计算设备600的任何数量和类型的设备托管或作为其一部分。预期到的是,实施例不限于传送控制视频编码机构610的某实现方式或托管方式,并且传送控制视频编码机构610的一个或多个部分或组件可被采用或实现为硬件、软件或其任何组合,诸如固件。
计算设备600可以托管(一个或多个)网络接口,以提供对网络(诸如LAN,广域网(WAN),城域网(MAN),个人区域网(PAN),蓝牙,云网络,移动网络(例如,第3代(3G),第4代(4G),第5代(5G),等等),内联网,因特网,等等)的访问。(一个或多个)网络接口可以例如包括具有天线的无线网络接口,该天线可以表示一个或多个天线(或antennae)。(一个或多个)网络接口还可以例如包括有线网络接口,以经由网络电缆与远程设备进行通信,该网络电缆可以例如是以太网电缆、同轴电缆、光纤线缆、串行电缆、或并行电缆。
例如,实施例可作为计算机程序产品被提供,该计算机程序产品可包括其上存储有机器可执行指令的一个或多个机器可读介质(包括非暂时性机器可读或计算机可读存储介质),这些机器可执行指令当被一个或多个机器(诸如计算机、计算机的网络、或其他电子设备)执行时可导致这一个或多个机器执行根据本文描述的实施例的操作。机器可读介质可包括但不限于:软盘,光盘,CD-ROM(光盘只读存储器),和磁光盘,ROM,RAM,EPROM(可擦可编程只读存储器),EEPROM(电可擦可编程只读存储器),磁带,磁卡或光卡,闪速存储器,或者适用于存储机器可执行指令的其他类型的介质/机器可读介质。
此外,实施例可作为计算机程序产品被下载,其中可以经由通信链路(例如,调制解调器和/或网络连接)通过体现在载波或其他传播介质中和/或由载波或其他传播介质调制的一个或多个数据信号将该程序从远程计算机(例如,服务器)传递到请求计算机(例如,客户端)。
在整个文档中,术语“用户”可以可互换地称为“观看者”、“观察者”、“发言人”、“人”、“个人”、“最终用户”和/或类似者。要注意的是,在该整个文档中,如“图形域”的术语可以与“图形处理单元”、“图形处理器”或简称“GPU”可互换地引用,并且类似地,“CPU域”或“主机域”可以与“计算机处理单元”、“应用处理器”或简称“CPU”可互换地引用。
要注意的是,在该整个文档中可以可互换地使用如“节点”、“计算节点”、“服务器”、“服务器设备”、“云计算机”、“云服务器”、“云服务器计算机”、“机器”、“主机”、“设备”、“计算设备”、“计算机”、“计算系统”等的术语。还要注意的是,在该整个文档中可以可互换地使用如“应用”、“软件应用”、“程序”、“软件程序”、“包”、“软件包”等的术语。同样,在该整个文档中可以可互换地使用如“工作”、“输入”、“请求”、“消息”等的术语。
图7示出了根据一些实施例的计算设备。预期到的是,计算设备700的细节可以与图6的处理系统600的细节相同或类似,因此为了简洁起见,以下不讨论或重复参考图6的处理系统600讨论的某些细节。计算设备700容纳系统板702(其也可以称为主板、主电路板或其他术语)。系统板702可包括多个组件,包括但不限于处理器704和至少一个通信封装或芯片706。通信封装706耦合到一个或多个天线716。处理器704物理和电气地耦合到板702。
根据其应用,计算设备700可包括可以或可以不物理和电气地耦合到系统板702的其他组件。这些其他组件包括但不限于:易失性存储器(例如,DRAM)708,非易失性存储器(例如,ROM)709,闪速存储器(未示出),图形处理器712,数字信号处理器(未示出),密码处理器(未示出),芯片组714,天线716,诸如触摸屏显示器之类的显示器718,触摸屏控制器720,电池722,音频编解码器(未示出),视频编解码器(未示出),功率放大器724,全球定位系统(GPS)设备726,指南针728,加速度计(未示出),陀螺仪(未示出),扬声器或其他音频元件730,一个或多个摄像头732,麦克风阵列734,以及大容量存储设备710(诸如硬盘驱动器),光盘(CD)(未示出),数字通用盘(DVD)(未示出),等等。这些组件可以连接到系统板702,安装到系统板,或者与任何其他组件组合。
通信封装706使得能够进行无线通信和/或有线通信以用于对去往和来自计算设备700的数据的传递。术语“无线”及其派生词可以用于描述可以通过使用经过非固体介质的调制电磁辐射来传达数据的电路、设备、系统、方法、技术、通信信道等。该术语并不意味着关联的设备不包含任何电线,不过在一些实施例中它们可能不包含。通信封装706可以实现多种无线或有线标准或协议中的任何一种,包括但不限于Wi-Fi(IEEE 802.11家族)、WiMAX(IEEE 802.16家族)、IEEE 802.20、长期演进(LTE)、Ev-DO(演进数据最优化)、HSPA+、HSDPA+、HSUPA+、EDGE(用于GSM演进的增强数据速率)、GSM(全球移动通信系统)、GPRS(通用分组无线电服务)、CDMA(码分多址)、TDMA(时分多址)、DECT(数字增强型无绳电信)、蓝牙、其以太网衍生物以及被指定为3G、4G、5G及更高的任何其他无线和有线协议。计算设备700可包括多个通信封装706。例如,第一通信封装706可以专用于诸如Wi-Fi和蓝牙之类的较短范围的无线通信,并且第二通信封装706可以专用于较长范围的无线通信(诸如GSM、EDGE、GPRS、CDMA、WiMAX、LTE、Ev-DO等)。
包括任何深度传感器或接近传感器的摄像头732耦合到可选择的图像处理器736,以执行转换、分析、降噪、比较、深度或距离分析、图像理解、以及本文描述的其他过程。处理器704耦合到图像处理器736以利用中断、设置参数以及对图像处理器和摄像头的控制操作来驱动该过程。可以改为在处理器704、图形处理器712、摄像头732中或在任何其他设备中执行图像处理。
在各种实现方式中,计算设备700可以是膝上型计算机,上网本,笔记本计算机,超级本,智能电话,平板计算机,个人数字助理(PDA),超移动PC,移动电话,台式计算机,服务器,机顶盒,娱乐控制单元,数码相机,便携式音乐播放器,或者数字视频录像机。该计算设备可以是固定的、便携式的、或可穿戴的。在进一步的实现方式中,计算设备700可以是处理数据或记录数据以在其他地方进行处理的任何其他电子设备。
实施例可以使用一个或多个存储器芯片、控制器、CPU(中央处理单元)、微芯片或集成电路来实现,其中该一个或多个存储器芯片、控制器、CPU、微芯片或集成电路是使用主板、专用集成电路(ASIC)和/或现场可编程门阵列(FPGA)而互连的。术语“逻辑”可以例如包括软件或硬件和/或软件和硬件的组合。
以下条款和/或示例涉及进一步的实施例或示例。在一个或多个实施例中的任何地方都可以使用示例中的细节。不同实施例或示例的各种特征可以在包括一些特征并排除其他特征的情况下进行各种组合,以适合各种不同的应用。示例可包括主题,诸如一种方法、用于执行该方法的动作的构件、至少一种包括指令的机器可读介质,这些指令当被机器执行时使该机器执行该方法的动作,或者执行用于根据本文描述的实施例和示例促进混合通信的装置或系统的动作。
在一些实施例中,一种装置包括:一个或多个处理器,用于处理数据;存储器,用于存储包括用于视频流传输的数据在内的数据;以及视频处理机构,其包括编码器和传送机构,其中视频处理机构用于进行以下操作:生成对网络信道的信道吞吐量的预测;基于该预测对一个或多个比特流进行编码,其包括在该预测指示信道吞吐量的增加或减少的情况下对包括第一比特流和第二比特流在内的多个比特流进行编码以及在该预测指示稳定的信道吞吐量的情况下对单个比特流进行编码;以及针对当前帧选择一个或多个比特流中的比特流。
在一些实施例中,对一个或多个比特流进行编码包括:视频处理机构用于在预测指示信道吞吐量的增加或减少的情况下生成多个目标帧大小,并且用于在预测指示稳定的信道吞吐量的情况下生成单个目标帧大小。
在一些实施例中,多个目标帧大小包括基于先前帧大小的第一目标帧大小和基于预测的第二目标帧大小,并且其中,单个目标帧大小基于先前帧大小。
在一些实施例中,对一个或多个比特流进行编码包括:视频处理机构用于针对指示信道吞吐量的增加或减少的预测而基于第一目标帧大小来生成第一量化参数并基于第二目标帧大小来生成第二量化参数,以及视频处理机构用于针对指示稳定信道吞吐量的预测而基于单个目标帧大小来生成单个量化参数。
在一些实施例中,视频处理机构包括用于提供帧内/帧间预测、模式决策和变换的第一组件,并且其中该第一组件用于接收第一量化参数或者用于接收单个量化参数。
在一些实施例中,视频处理机构包括用于提供适应性量化的第二组件,并且其中第二组件用于接收第一量化参数和第二量化参数两者以分别生成第一比特流和第二比特流,或者用于接收单个量化参数以生成单个比特流。
在一些实施例中,当即时信道反馈可用时,针对当前帧在第一比特流和第二比特流之间进行选择包括视频处理机构用于进行以下操作:基于即时信道反馈来估计即时目标帧大小,以及选择第一比特流和第二比特流中更接近即时目标帧大小的任何一个。
在一些实施例中,当即时信道反馈不可用时,针对当前帧在第一比特流和第二比特流之间进行选择包括:视频处理机构用于选择第二比特流。
在一些实施例中,对一个或多个比特流进行编码不包括对目标比特率的生成。
在一些实施例中,一种方法包括:生成对网络信道的信道吞吐量的预测;基于该预测对一个或多个比特流进行编码,其包括在该预测指示信道吞吐量的增加或减少的情况下对包括第一比特流和第二比特流在内的多个比特流进行编码以及在该预测指示稳定的信道吞吐量的情况下对单个比特流进行编码;以及针对当前帧选择一个或多个比特流中的比特流。
在一些实施例中,对一个或多个比特流进行编码包括:在预测指示信道吞吐量的增加或减少的情况下生成多个目标帧大小,以及在预测指示稳定的信道吞吐量的情况下生成单个目标帧大小。
在一些实施例中,其中,多个目标帧大小包括基于先前帧大小的第一目标帧大小和基于预测的第二目标帧大小,并且其中,单个目标帧大小基于先前帧大小。
在一些实施例中,对一个或多个比特流进行编码包括:针对指示信道吞吐量的增加或减少的预测,基于第一目标帧大小来生成第一量化参数并且基于第二目标帧大小来生成第二量化参数;以及针对指示稳定信道吞吐量的预测,基于单个目标帧大小来生成单个量化参数。
在一些实施例中,该方法还包括:利用第一量化参数或单个量化参数来执行帧内/帧间预测、模式决策和变换。
在一些实施例中,该方法还包括通过以下操作来执行适应性量化:利用第一量化参数和第二量化参数两者来分别生成第一比特流和第二比特流,或者利用单个量化参数来生成单个比特流。
在一些实施例中,当即时信道反馈可用时,针对当前帧在第一比特流和第二比特流之间进行选择包括:基于即时信道反馈来估计即时目标帧大小,以及选择第一比特流和第二比特流中更接近即时目标帧大小的任何一个。
在一些实施例中,当即时信道反馈不可用时,针对当前帧在第一比特流和第二比特流之间进行选择包括:选择第二比特流。
在一些实施例中,针对指示信道吞吐量增加的预测,该方法还包括:在确定第二量化参数小于第一阈值时,提高视频分辨率。
在一些实施例中,针对指示信道吞吐量减少的预测,该方法还包括:在确定第二量化参数大于第二阈值时,或者跳过帧或者降低视频分辨率。
在一些实施例中,一种非暂时性计算机可读存储介质,其上存储有表示指令序列的数据,这些指令序列当被一个或多个处理器执行时使这一个或多个处理器执行包括以下各项的操作:生成对网络信道的信道吞吐量的预测;基于该预测对一个或多个比特流进行编码,其包括在该预测指示信道吞吐量的增加或减少的情况下对包括第一比特流和第二比特流在内的多个比特流进行编码以及在该预测指示稳定的信道吞吐量的情况下对单个比特流进行编码;以及针对当前帧选择一个或多个比特流中的比特流。
在一些实施例中,对一个或多个比特流进行编码包括:在预测指示信道吞吐量的增加或减少的情况下生成多个目标帧大小,以及在预测指示稳定的信道吞吐量的情况下生成单个目标帧大小。
在一些实施例中,多个目标帧大小包括基于先前帧大小的第一目标帧大小和基于预测的第二目标帧大小,并且其中单个目标帧大小基于先前帧大小。
在一些实施例中,对一个或多个比特流进行编码包括:针对指示信道吞吐量的增加或减少的预测,基于第一目标帧大小来生成第一量化参数并且基于第二目标帧大小来生成第二量化参数;以及针对指示稳定信道吞吐量的预测,基于单个目标帧大小来生成单个量化参数。
在上面的描述中,出于解释的目的,阐述了许多具体细节以便提供对所描述的实施例的透彻理解。然而,对本领域技术人员将显而易见的是,可以在没有这些具体细节中的一些的情况下实践实施例。在其他情况下,以框图形式示出了公知的结构和设备。在所示出的组件之间可能存在中间结构。本文中描述或示出的组件可具有未被示出或描述的附加输入或输出。
各种实施例可包括各种过程。这些过程可以由硬件组件执行,或者可以被体现在计算机程序或机器可执行指令中,这些计算机程序或机器可执行指令可以用于使通用处理器或专用处理器或用这些指令编程的逻辑电路执行这些过程。或者,可以由硬件和软件的组合来执行这些过程。
各种实施例的部分可作为计算机程序产品被提供,其可包括其上存储有计算机程序指令的计算机可读介质,这些计算机程序指令可以用于对计算机(或其他电子设备)进行编程以供一个或多个处理器执行来执行根据某些实施例的过程。该计算机可读介质可包括但不限于:磁盘,光盘,只读存储器(ROM),随机存取存储器(RAM),可擦可编程只读存储器(EPROM),电可擦可编程读只读存储器(EEPROM),磁卡或光卡,闪速存储器,或者适用于存储电子指令的其他类型的计算机可读介质。此外,实施例也可以作为计算机程序产品被下载,其中程序可以被从远程计算机传递到请求计算机。在一些实施例中,一种非暂时性计算机可读存储介质在其上存储有表示指令序列的数据,这些指令序列当被处理器执行时使该处理器执行某些操作。
以其最基本的形式描述了许多方法,但是在不脱离本实施例的基本范围的情况下,可以向这些方法中的任何方法添加过程或从这些方法中的任何方法中删除过程,并且可以从所描述的消息中的任何消息中添加或减去信息。对于本领域技术人员将显而易见的是,可以做出许多进一步的修改和改编。提供特定实施例不是为了限制概念而是为了对其进行说明。实施例的范围不由上面提供的具体示例确定,而仅由下面的权利要求确定。
如果说元素“A”耦合到元素“B”或与元素“B”耦合,则元素A可以直接耦合到元素B或通过例如元素C间接耦合。当说明书或权利要求声明组件、特征、结构、过程或特性A“导致”组件、特征、结构、过程或特性B时,这意味着“A”至少是“B”的部分原因,但也可以存在帮助导致“B”的至少一个其他组件、特征、结构、过程或特性。如果说明书指示组件、特征、结构、过程或特性“可”、“可能”或“可以”被包括,则该特定组件、特征、结构、过程或特性不要求被包括。如果说明书或权利要求提及“一”或“一种”元件,则这并不表示仅存在一个所描述的元件。
实施例是实现方式或示例。说明书中对“实施例”、“一个实施例”、“一些实施例”或“其他实施例”的引用意味着结合这些实施例描述的特定特征、结构或特性被包括在至少一些实施例但不一定是所有实施例中。“实施例”、“一个实施例”或“一些实施例”的各种出现不一定都指相同的实施例。应当认识到,在对示例性实施例的前述描述中,出于简化本公开和帮助理解各种新颖方面中的一个或多个方面的目的,有时在单个实施例、附图或其描述中将各种特征分组在一起。然而,该公开方法不应被解释为反映这样一种意图,即要求保护的实施例需要比在每个权利要求中明确叙述的特征更多的特征。而是,如所附权利要求所反映的,新颖方面在于少于单个前述公开实施例的所有特征。因此,权利要求特此明确地被并入到本说明书中,其中每个权利要求作为单独实施例而独立存在。

Claims (23)

1.一种装置,包括:
一个或多个处理器,用于处理数据;
存储器,用于存储数据,该数据包括用于视频流传输的数据;和
视频处理机构,包括编码器和传送机构,其中所述视频处理机构用于进行以下操作:
生成对网络信道的信道吞吐量的预测,
基于所述预测对一个或多个比特流进行编码,包括:在所述预测指示信道吞吐量的增加或减少的情况下对包括第一比特流和第二比特流的多个比特流进行编码,以及在所述预测指示稳定的信道吞吐量的情况下对单个比特流进行编码,以及
针对当前帧选择所述一个或多个比特流中的比特流。
2.如权利要求1所述的装置,其中,对一个或多个比特流进行编码包括:所述视频处理机构用于在所述预测指示信道吞吐量的增加或减少的情况下生成多个目标帧大小,以及用于在所述预测指示稳定的信道吞吐量的情况下生成单个目标帧大小。
3.如权利要求2所述的装置,其中,所述多个目标帧大小包括基于先前帧大小的第一目标帧大小和基于所述预测的第二目标帧大小,并且其中所述单个目标帧大小基于所述先前帧大小。
4.如权利要求3所述的装置,其中,对一个或多个比特流进行编码包括:针对指示信道吞吐量的增加或减少的预测,所述视频处理机构用于基于所述第一目标帧大小来生成第一量化参数并基于所述第二目标帧大小来生成第二量化参数;以及针对指示稳定的信道吞吐量的预测,所述视频处理机构用于基于所述单个目标帧大小来生成单个量化参数。
5.如权利要求4所述的装置,其中,所述视频处理机构包括第一组件,用于提供帧内/帧间预测、模式决策、和变换,并且其中所述第一组件用于接收所述第一量化参数或者用于接收所述单个量化参数。
6.如权利要求4所述的装置,其中,所述视频处理机构包括用于提供适应性量化的第二组件,并且其中所述第二组件用于接收所述第一量化参数和所述第二量化参数两者以分别生成所述第一比特流和所述第二比特流,或者用于接收所述单个量化参数以生成所述单个比特流。
7.如权利要求6所述的装置,其中,当即时信道反馈可用时,针对当前帧在所述第一比特流和所述第二比特流之间进行选择包括所述视频处理机构用于进行以下操作:基于所述即时信道反馈来估计即时目标帧大小,以及选择所述第一比特流和第二比特流中更接近所述即时目标帧大小的任何一个。
8.如权利要求6所述的装置,其中,当即时信道反馈不可用时,针对当前帧在所述第一比特流和所述第二比特流之间进行选择包括:所述视频处理机构用于选择所述第二比特流。
9.如权利要求1所述的装置,其中,对一个或多个比特流进行编码不包括对目标比特率的生成。
10.一种方法,包括:
生成对网络信道的信道吞吐量的预测;
基于所述预测对一个或多个比特流进行编码,包括:在所述预测指示信道吞吐量的增加或减少的情况下对包括第一比特流和第二比特流的多个比特流进行编码,以及在所述预测指示稳定的信道吞吐量的情况下对单个比特流进行编码;以及
针对当前帧选择所述一个或多个比特流中的比特流。
11.如权利要求10所述的方法,其中,对一个或多个比特流进行编码包括:在所述预测指示信道吞吐量的增加或减少的情况下生成多个目标帧大小,以及在所述预测指示稳定的信道吞吐量的情况下生成单个目标帧大小。
12.如权利要求11所述的方法,其中,所述多个目标帧大小包括基于先前帧大小的第一目标帧大小和基于所述预测的第二目标帧大小,并且其中所述单个目标帧大小基于所述先前帧大小。
13.如权利要求12所述的方法,其中,对一个或多个比特流进行编码包括:针对指示信道吞吐量的增加或减少的预测,基于所述第一目标帧大小来生成第一量化参数并且基于所述第二目标帧大小来生成第二量化参数;以及针对指示稳定的信道吞吐量的预测,基于所述单个目标帧大小来生成单个量化参数。
14.如权利要求13所述的方法,还利用所述第一量化参数或所述单个量化参数来执行帧内/帧间预测、模式决策、和变换。
15.如权利要求13所述的方法,还包括通过以下操作来执行适应性量化:利用所述第一量化参数和所述第二量化参数两者来分别生成所述第一比特流和所述第二比特流,或者利用所述单个量化参数来生成所述单个比特流。
16.如权利要求15所述的方法,其中,当即时信道反馈可用时,针对当前帧在所述第一比特流和所述第二比特流之间进行选择包括:基于所述即时信道反馈来估计即时目标帧大小,以及选择所述第一比特流和第二比特流中更接近所述即时目标帧大小的任何一个。
17.如权利要求15所述的方法,其中,当即时信道反馈不可用时,针对当前帧在所述第一比特流和所述第二比特流之间进行选择包括:选择所述第二比特流。
18.如权利要求13所述的方法,针对指示信道吞吐量的增加的预测,还包括:在确定所述第二量化参数小于第一阈值时,提高视频分辨率。
19.如权利要求13所述的方法,针对指示信道吞吐量的减少的预测,还包括:在确定所述第二量化参数大于第二阈值时,或者跳过帧或者降低视频分辨率。
20.一种非暂时性计算机可读存储介质,在其上存储有表示指令序列的数据,这些指令序列当被一个或多个处理器执行时使这一个或多个处理器执行包括以下各项的操作:
生成对网络信道的信道吞吐量的预测;
基于所述预测对一个或多个比特流进行编码,包括:在所述预测指示信道吞吐量的增加或减少的情况下对包括第一比特流和第二比特流的多个比特流进行编码,以及在所述预测指示稳定的信道吞吐量的情况下对单个比特流进行编码;以及
针对当前帧选择所述一个或多个比特流中的比特流。
21.如权利要求20所述的介质,其中,对一个或多个比特流进行编码包括:在所述预测指示信道吞吐量的增加或减少的情况下生成多个目标帧大小,以及在所述预测指示稳定的信道吞吐量的情况下生成单个目标帧大小。
22.如权利要求21所述的介质,其中,所述多个目标帧大小包括基于先前帧大小的第一目标帧大小和基于所述预测的第二目标帧大小,并且其中所述单个目标帧大小基于所述先前帧大小。
23.如权利要求22所述的介质,其中,对一个或多个比特流进行编码包括:针对指示信道吞吐量的增加或减少的预测,基于所述第一目标帧大小来生成第一量化参数并且基于所述第二目标帧大小来生成第二量化参数;以及针对指示稳定的信道吞吐量的预测,基于所述单个目标帧大小来生成单个量化参数。
CN201880095095.6A 2018-09-28 2018-09-28 传送控制的视频编码 Pending CN112715028A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/108208 WO2020061990A1 (en) 2018-09-28 2018-09-28 Transport controlled video coding

Publications (1)

Publication Number Publication Date
CN112715028A true CN112715028A (zh) 2021-04-27

Family

ID=69950900

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880095095.6A Pending CN112715028A (zh) 2018-09-28 2018-09-28 传送控制的视频编码

Country Status (5)

Country Link
US (1) US11627307B2 (zh)
EP (1) EP3857869A4 (zh)
KR (1) KR20210064116A (zh)
CN (1) CN112715028A (zh)
WO (1) WO2020061990A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11627307B2 (en) 2018-09-28 2023-04-11 Intel Corporation Transport controlled video coding

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023224300A1 (ko) * 2022-05-16 2023-11-23 현대자동차주식회사 예측-변환 생략을 이용하는 비디오 코딩을 위한 방법 및 장치
CN115209189B (zh) * 2022-09-15 2023-03-10 广州迈聆信息科技有限公司 一种视频流传输方法、系统、服务器及存储介质

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1638333A1 (en) 2004-09-17 2006-03-22 Mitsubishi Electric Information Technology Centre Europe B.V. Rate adaptive video coding
US7797723B2 (en) * 2004-10-30 2010-09-14 Sharp Laboratories Of America, Inc. Packet scheduling for video transmission with sender queue control
CN100444637C (zh) * 2005-04-14 2008-12-17 中兴通讯股份有限公司 一种在网络中传输视频流的方法
US9544602B2 (en) * 2005-12-30 2017-01-10 Sharp Laboratories Of America, Inc. Wireless video transmission system
US8983397B2 (en) 2008-10-10 2015-03-17 Qualcomm Incorporated Method and apparatus for channel feedback by multiple description coding in a wireless communication system
US9210436B2 (en) * 2010-01-11 2015-12-08 Sungkyunkwan University Foundation For Corporate Collaboration Distributed video coding/decoding method, distributed video coding/decoding apparatus, and transcoding apparatus
EP2658167A1 (en) * 2010-12-16 2013-10-30 Beihang University Transmission control method of video-stream based on dual time scale
US20120307886A1 (en) * 2011-05-31 2012-12-06 Broadcom Corporation Adaptive Video Encoding Based on Predicted Wireless Channel Conditions
CN102427531B (zh) 2011-10-18 2013-10-09 东南大学 跨层交互式图像质量连续可调的实时视频编解码方法
US20130322516A1 (en) 2012-05-31 2013-12-05 Broadcom Corporation Systems and methods for generating multiple bitrate streams using a single encoding engine
KR102091138B1 (ko) * 2013-09-12 2020-03-19 삼성전자주식회사 무선 네트워크 환경에서 데이터를 전송하는 방법 및 데이터 전송 장치
US10097828B2 (en) * 2014-12-11 2018-10-09 Intel Corporation Rate control for parallel video encoding
US9807391B2 (en) 2014-12-22 2017-10-31 Arris Enterprises Llc Multiple stream video compression in multiple bitrate video encoding
US10531135B2 (en) 2016-01-04 2020-01-07 Telefonaktiebolaget Lm Ericsson (Publ) Network recording apparatus
CN107078852B (zh) * 2017-01-18 2019-03-08 深圳市大疆创新科技有限公司 传输编码数据的方法、装置、计算机系统和移动设备
US11272189B2 (en) * 2018-02-20 2022-03-08 Netgear, Inc. Adaptive encoding in security camera applications
EP3857869A4 (en) 2018-09-28 2022-07-13 INTEL Corporation TRANSPORT ORDERED VIDEO CODING

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11627307B2 (en) 2018-09-28 2023-04-11 Intel Corporation Transport controlled video coding

Also Published As

Publication number Publication date
EP3857869A4 (en) 2022-07-13
WO2020061990A1 (en) 2020-04-02
EP3857869A1 (en) 2021-08-04
US20210218954A1 (en) 2021-07-15
US11627307B2 (en) 2023-04-11
KR20210064116A (ko) 2021-06-02

Similar Documents

Publication Publication Date Title
KR101634500B1 (ko) 미디어 작업부하 스케줄러
EP3167616B1 (en) Adaptive bitrate streaming for wireless video
CN107258086B (zh) 针对汇显示器的静态帧图像质量改进的方法、装置及系统
US10951914B2 (en) Reliable large group of pictures (GOP) file streaming to wireless displays
US9918094B2 (en) Compressing and representing multi-view video
CN110121114B (zh) 发送流数据的方法及数据发送设备
CN106713915B (zh) 对视频数据进行编码的方法
US11627307B2 (en) Transport controlled video coding
CN107211116B (zh) 用于无线装置中的多视图视频的系统和方法
US20180184089A1 (en) Target bit allocation for video coding
US20100309984A1 (en) Dual-mode compression of images and videos for reliable real-time transmission
US10873752B2 (en) Adaptive camera resolution for compression matching
US10200437B2 (en) Device and method for streaming service
US10171804B1 (en) Video frame encoding scheme selection
CN113132728B (zh) 编码方法及编码器
US11284074B2 (en) Cross-channel look ahead rate control for multi-channel video encoding
WO2021092821A1 (en) Adaptively encoding video frames using content and network analysis
US10313675B1 (en) Adaptive multi-pass video encoder control
CN115702562A (zh) 使用长期参考、深度学习和负载均衡的视频吞吐量改进
US20230010681A1 (en) Bit-rate-based hybrid encoding on video hardware assisted central processing units
US20230031245A1 (en) Encoder changes
CN117501695A (zh) 用于基于深度学习的视频处理的增强体系结构
KR102265419B1 (ko) 클라우드 스트리밍 서비스 시스템, 선택적 인코딩 처리 유닛을 이용한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination