CN101432981A - 用于信道组的最优速率分配 - Google Patents

用于信道组的最优速率分配 Download PDF

Info

Publication number
CN101432981A
CN101432981A CN200580036831.3A CN200580036831A CN101432981A CN 101432981 A CN101432981 A CN 101432981A CN 200580036831 A CN200580036831 A CN 200580036831A CN 101432981 A CN101432981 A CN 101432981A
Authority
CN
China
Prior art keywords
frame
channel
complexity
time
interval
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
CN200580036831.3A
Other languages
English (en)
Inventor
J·W·莫纳克
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.)
EG Tech Inc
Original Assignee
EG Tech Inc
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 EG Tech Inc filed Critical EG Tech Inc
Publication of CN101432981A publication Critical patent/CN101432981A/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
    • 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/115Selection of the code volume for a coding unit prior to 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • 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/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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
    • H04N19/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • 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/177Methods 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 a group of pictures [GOP]
    • 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
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/37Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability with arrangements for assigning different transmission priorities to video input data or to video coded data
    • 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/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/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4347Demultiplexing 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/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Abstract

本发明总体涉及在多个多媒体数据信道中最优分配固定数目的位的系统、方法和计算机程序产品。该位的最优数目是通过预处理每个信道以计算复杂度数据而确定的,然后使用该复杂度数据来确定分配给每个信道的位的最优数目。该位的最优数目可以通过与一个或多个信道编码器(402-404)通信的闭环控制器(401)确定,并且多媒体信道可以包含符合MPEG-2视频格式的视频数据。

Description

用于信道组的最优速率分配
相关专利申请的相互参引
根据35 U.S.C.§119,本申请要求于2004年10月27日提交的标题为"OPTIMAL RATE ALLOCATION FOR A GROUP OF CHANNELS"的序列号No.60/622,051的美国临时专利申请的优先权,其全部内容在此通过引证的方式纳入本说明书。
技术领域
本发明涉及在要由多个编码器编码的多个数据信道中最优分配位。本发明利用闭环控制器,通过解析每个编码器生成的复杂度数据流,并使用该复杂度数据来确定分配给每个信道的位的最佳数目而在多个信道中最优分配位。本发明的复杂度数据包括关于每帧的定时、帧类型以及位要求的信息。
背景技术
过去的十年已看到通过网络传送多媒体数据的快速上升,尤其是数字视频的传输,以提供诸如视频点播、数字电视广播以及视频内容分发等服务。然而,数字视频在其原始或未压缩状态包括庞大数量的数据,这使视频压缩成为必要以及使能够传递视频内容。此外,内容提供商、出版商或广播商常常需要实时或接近实时将多个信道的已压缩视频数据结合并发送或多路复用到具有固定位速率的单一输出流中。因此,在本领域中需要在多媒体数据的多个信道中最优分配固定数目位的系统、方法以及计算机程序产品。
多媒体数据采用本领域中已知的许多形式,包括音频、图片和视频数据。例如,图片数据被存储为使用包括GIF、JPEG、TIFF、BMP以及PDF的各种原始或压缩格式的二进制数据文件。音频数据包括音频波形(WAV)、MP3、音频交换文件格式(AIFF)、音乐设备数字接口(MIDI)以及声音文件(SND)。视频数据包括QuickTime以及运动图像专家组(MPEG)格式。在Video Communication(1)Image and VideoCompressionS tandards,V.Bhaskaran and K.Konstantinides,Kluwer Academic,1995的书中提供了该主题的进一步论述,其内容在此完整纳入本说明书。
图1是图解用于使用网络化计算机系统传递多媒体数据的示例系统的图。计算机系统101、102、103和网络105可以是图3的实施方案中描述的类型,下面将更详细地讨论该实施方案。在网络105上,在称为客户端设备的一个计算机上运行的称为客户端处理(此后,简称为“客户端”)的处理向称为服务器处理(此后,称为“服务器”)的另一处理发出请求,该服务器处理是在连接到网络105的称为服务器设备103的计算机上执行的。服务器103执行该服务,通常将信息发送回该客户端。
服务器设备103包括多媒体数据和媒体传输处理104,媒体传输处理104通过网络105向媒体服务器设备102传送数据。媒体服务器设备102包括媒体服务器处理107,媒体服务器处理107制约通过网络105向媒体客户端设备101上的媒体显示处理112传送的数据。媒体显示处理112向用户显示该多媒体数据。
在一些实施方案中,局域网105可以包括媒体客户端设备101和媒体服务器设备103之间的直接连接。在其它实施方案中,网络105包括:一个或多个将信号从一种类型转换到另一种类型的转码机、用于压缩数据的编码器或将多个数据信道结合到一个输出信道的多路复用器。在各种实施方案中,网络105包括一个或多个有线、无线或光链路。
在多种实施方案中,网络105可以是使用互联网协议(IP)的网络。在其它实施方案中,网络105也是非IP网络,诸如卫星通信链路网络或有线电视链路网络。在有线电视链路上,媒体服务器设备102是在电缆头端,而媒体客户端设备101可以是电视机顶盒或个人计算机。
可以根据诸如实时或接近实时编码和传递的计算资源需要、存储限制、带宽限制或媒体设备101显示限制等因素,将视频数据编码或转码成各种格式。
在一些实施方案中,视频数据被编码成兼容MPEG的数据流。MPEG是定义MPEG视频解码器的操作和MPEG流的合成的视频压缩标准。MPEG流内的视频数据表示视频图片或帧的序列。MPEG中用于表示视频帧的信息量根据下面因素变化很大,诸如包括色彩空间等的可视内容、时间可变性、空间可变性、人类视觉系统以及压缩视频数据的技术等。
可以使用三类图片或帧数据编码MPEG数据:帧内(“I帧”)数据、前向预测帧(“P帧”)数据以及双向预测帧(“B帧”)数据。I帧数据包括完全重建帧所需要的全部信息。P帧数据包含表示帧和相应于在前I帧或P帧数据的帧之间的差别的信息。B帧数据包含表示在前I帧数据或P帧数据以及随后I帧数据或P帧数据之间的相对移动的信息。MPEG包括各种编码标准,所述编码标准包括MPEG1、MPEG2以及MPEG4。在国际标准ISO/IEC 138181,2和3中定义了MPEG2,并且这些标准的内容在此通过引证的方式纳入本说明书。。
MPEG通过除去视频帧(帧内编码)内的空间冗余以及除去连续视频帧(帧内编码)之间的时间冗余而降低了表示视频数据所需要的位的数目。每个帧是由两个隔行扫描场组成的,所述的隔行扫描场是像素行的交替组。每个场是由多个宏块(MB)组成的。每个MB是二维像素阵列,典型地是16行,每行16个像素。每个MB包括:四个亮度块,典型地是每块8行,每行8个像素;以及两个色度块,也是每块8行,每行8个像素。运动补偿是用于降低时间冗余,典型地以宏块为基础降低。使用离散余弦变换(DCT)降低空间冗余,典型地以块为基础降低。在运动补偿期间,计算表示在参考帧上的像素位置的运动向量,所述参考帧是不同的、当前帧上的具体宏块的基础。然后使用DCT计算参考宏块和具体宏块之间的差别。
每个MPEG视频序列是由一系列图片组(GOP)组成的。每个GOP是由一系列I、P和B帧组成的,并且每个GOP以I帧开始。如本领域内所公知的,“片”是一系列宏块,并可以组成场或场的一部分。
为了解码和显示,MPEG流中的数据被发送到诸如图3的实施方案中的计算机系统的客户端计算机系统。例如,MPEG流是通过网络105被发送到媒体设备110。
MPEG流必须符合MPEG标准中阐述的特定规范。例如,MPEG流可以每秒提供30帧,但是每秒不应提供使客户端计算机的缓冲器溢出的那么多位。通过要求所接收的MPEG流是恒定或固定的位速率可以减轻缓冲器的溢出。MPEG数据信道也可以包括可变的位速率流,其中使用可变的总位数编码诸如GOP等帧集。
通常,诸如内容提供商、分发商以及出版商等实体需要结合多个MPEG兼容流,并通过固定带宽信道发送该输出。这种情况下,信道的各自位速率是自由改变的,只要总位速率是固定的。图2提供了将输入流编码以产生多个可变位速率(VBR)输出流的编码器201、202、203组的逻辑概述,然后所述多个可变位速率(VBR)输出流的每一个被输入到多路复用器204(“mux”)。多路复用器204接受输入流,对数据进行缓冲,并发送出期望的恒定位速率(CBR)数据流。因此,现有技术存在下面的挑战:向每个编码器最优分配位速率,使得多路复用器可以以恒定位速率传递输出流而不发生缓冲器溢出,而同时向每个信道最优分配位,以提供最佳可能的输出质量。
发明内容
本发明提供了在包含要通过多个编码器编码的数据的多个信道中最优分配位的总数的方法、系统以及计算机程序产品。本发明利用闭环控制器,通过解析每个编码器生成的复杂度数据流,并且使用该复杂度数据来最优确定分配给每个编码信道的位的数目而在多个信道中最优分配位。本发明的复杂度数据包括关于每帧的定时、帧类型以及位要求的信息。
本发明的附加优点将部分地在下面的说明书中进行阐述,或可以从本发明的实践中了解到。本发明的优点将通过所附权利要求中具体指出的元件以及结合来实现和获得。应理解上述概要描述以及下面的详细说明都只是示意性和解释性的,而不是限制所要求保护的本发明。
附图说明
纳入本说明书中并组成本说明书的一部分的附图图解了本发明的实施方案,并且与说明书一起来解释本发明的原理。本附图和说明书中描述的实施方案决不限制和限定本发明的范围。
图1是图解用于通过网络使用计算机硬件传递多媒体数据的系统的框图。
图2是图解向多路复用器发送数据的多个编码器的框图。
图3是图解本发明的一个实施方案的计算机系统的框图。
图4图解向输出单一恒定位速率流的多路复用器发送数据的多个可变位速率编码器。
图5图解根据本发明的一个实施方案中的更新间隔分割的多个MPEG信道GOP。
图6是图解用于使用固定数目的位来编码多个数据信道的本发明的一个实施方案的流程图。
图7是图解用于确定分配给多个视频信道中的一个视频信道的位的数目的本发明的一个实施方案的流程图。
具体实施方式
在公开和描述本发明方法、系统以及计算机程序产品之前,应该理解本发明不限于具体的方法、具体的组件或特定的组合,因为这些当然是可变的。也应该理解这里所使用的技术术语只是为了描述特定的实施方案,而不是用于限制。
如说明书和所附权利要求中使用的,单数形式“一”、“一个”以及“该”包括复数对象,除非上下文中另有明确指出。因而,例如,提到“一编码器”包括编码器的混合物,提到“一编码器”包括两个或更多个这样的编码器的混合物等。
范围在这里可以表达为从“约”一个具体值,和/或到“约”另一具体值。当表达这样的范围时,另一实施方案包括从该一个具体值,和/或到该另一个具体值。类似地,当使用先行词“约”将值表达为近似值时,应该理解,该具体值构成另一实施方案。还应理解,每一个范围的端值,不管是与另一端值相联系,还是与另一端值不相联系,都是有意义的。
“任选的”或“任选地”意思是指接下来描述的事件或情况可能发生也可能不发生,而且该描述包括了所述事件或情况发生的情形及没有发生的情形。
除非另有明确表示,不应将这里所阐述的任何方法或实施方案解释为需要以具体顺序执行其步骤。因此,当方法权利要求在权利要求书或说明书中没有明确声明这些步骤限于具体的次序时,绝不意旨在任何方面推断次序。这适用于任何可能的用于解释的非表述基础,包括关于步骤或操作流程的安排的逻辑主题,从语法组织或标点符号推出的明显意义,或说明书中描述的实施方案的数目或类型。此外,尽管当前申请中提供的各种实施方案涉及方法、系统或计算机程序产品的法定类别,但是应注意到可以以任何法定类别执行、具体化或要求保护本发明。
本发明的系统、方法和计算机程序产品涉及通过使用信道复杂度数据来确定分配给每个信道的位数而在多个信道中分配固定数目的位的新颖方法,并且在这里被称为本发明的“方法”或“多种方法”。因而,可以使用被编程为执行本发明的各个实施方案的处理器执行本发明的方法。图3是图解用于执行所公开的方法的示例操作环境的框图。本示例操作环境只是操作环境的实例,而不意旨暗示对操作环境体系结构的使用范围或功能性的任何限制。也不应将操作环境解释为对示例操作环境中图解的组件中的任何一个或组合有任何依赖性或要求。
可以利用许多其它通用或专用计算系统环境或配置运行该方法。适合该方法使用的已知计算系统、环境和/或配置的实例包括但不限于个人计算机、服务器计算机、便携计算机设备以及微处理器系统。另外的实例包括机顶盒、可编程消费者电子产品、网络PC、微型计算机、主机计算机、包括任何上述系统或设备的分布式计算环境等。
本方法可以描述在由计算机执行的诸如程序模块等的计算机指令的一般上下文中。通常,程序模块包括执行具体任务或实现具体抽象数据类型的例程、程序、对象、组件、数据结构等。本方法也可以实践在由通过通信网络连接的远程处理设备执行任务的分布式计算环境中。在分布式计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机存储媒介中。
这里所公开的方法可以通过计算机301形式的通用计算设备实现。计算机301的组件可以包括但不限于一个或多个处理器或处理单元303、系统存储器312以及系统总线313,该系统总线313将包括处理器303的各种系统组件连接到系统存储器312上。
图3中的处理器303可以是x-86兼容处理器,包括因特尔公司制造的奔腾IV或超微半导体设备(Advanced Micro Device)公司制造的速龙(ATHLON)64处理器。也可以使用利用其它指令集的处理器,包括苹果、IBM或NEC制造的处理器。
系统总线313表示总线结构的几种可能类型中的一种或多种,包括存储器总线或存储控制器、外围总线、图形加速端口以及使用各种总线体系结构中任何一种的处理器或局部总线。作为实例,这样的体系结构可以包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线以及也被称为Mezzanine总线的外围部件互联(PCI)总线。该总线以及本说明书中规定的所有总线也可以是通过有线或无线网络连接实现的。总线313以及本说明书中规定的所有总线也可以是通过有线或无线网络连接实现的,并且每个子系统可以包括在处于物理上分离位置的一个或多个远程计算设备314a、b、c内,所述子系统包括处理器303、大容量存储设备304、操作系统305、应用软件306、数据307、网络适配器308、系统存储器312、输入/输出接口310、显示适配器309、显示设备311以及人机接口302,所述一个或多个远程计算设备314a、b、c是通过有效实现完全分布系统的所述形式的总线连接。
图3中的操作系统305包括诸如MICROSOFT WINDOWS XP、WINDOWS2000、WINDOWS NT或WINDOWS 98,以及REDHAT LINUX、FREE BSD或SUN MICROSYSTEMS SOLARIS等操作系统。此外,应用软件306可以包括诸如MICROSOFT INTERNET EXPLORER或MOZILLA FIREFOX等网页浏览软件,以使用户能够在显示设备311上查看HTML、SGML、XML或任何其它适当构建的文档语言。
计算机301典型地包括各种计算机可读媒介。这样的媒介可以是计算机301可访问的任何可获得的媒介,并且包括易失性和非易失性媒介、可移动和不可移动媒介。系统存储器312包括诸如随机访问存储器(RAM)的易失性存储器形式的计算机可读媒介,和/或诸如只读存储器(ROM)的非易失性存储器形式的计算机可读媒介。系统存储器312典型地包括诸如数据307之类的数据,和/或诸如由处理单元303可立即访问的和/或当前操作的操作系统305以及应用软件306之类的程序模块。
计算机301也可以包括其它可移动/不可移动、易失性/非易失性计算机存储媒介。作为实例,图3图解了大容量存储设备304,其可以为计算机301提供计算机代码、计算机可读指令、数据结构、程序模块以及其它数据的非易失性存储。例如,大容量存储设备304可以是硬盘、可移动磁盘、可移动光盘、磁盒或其它磁存储设备、闪存卡、CD-ROM、数字多用途光盘(DVD)或其它光存储、随机访问存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)等。
可以将任何数目的程序模块存储在大容量存储设备304上,作为实例包括操作系统305和应用软件306。操作系统305和应用软件306的每一个(或它们的结合)可以包括编程元件和应用软件306。数据307也可以存储在大容量存储设备304上。数据304可以存储在本领域公知的任何一个或多个数据库中。这样数据库的实例包括
Figure A200580036831D00131
Figure A200580036831D00132
Access、
Figure A200580036831D00133
 SQL Server、mySQL、PostgreSQL等。该数据库可以是集中式的或分布在多个系统中。
用户可以通过输入设备(未示出)将命令和信息输入到计算机301中。这样的输入设备的实例包括但不限于键盘、指示设备(例如,“鼠标”)、麦克风、控制手柄、串行端口、扫描仪、触摸屏装置等。这些和其它输入装置可以通过连接到系统总线313的人机接口302连接到处理单元303,但是也可以通过诸如并行端口、串行端口、游戏端口或通用串行总线(USB)等其它接口和总线体系结构连接。
显示设备311也可以通过诸如显示适配器309等接口连接到系统总线313。例如,显示设备可以是阴极射线管(CRT)监控器或液晶显示器(LCD)。除了显示设备311外,其它外围输出设备可以包括诸如扬声器(未示出)以及打印机(未示出)等组件,这些组件可以通过输入/输出接口310连接到计算机301。
计算机301可以使用到一个或多个远程计算设备314a、b、c的逻辑连接而在网络环境中运行。作为实例,远程计算设备可以是个人计算机、便携计算机、服务器、路由器、网络计算机、对等设备或其它公共网络节点等。计算机301和远程计算设备314a、b、c之间的逻辑连接可以是通过诸如局域网(LAN)、普通的广域网(WAN)或因特网等网络而进行连接的。这样的网络连接可以是通过网络适配器308。
尽管公认的是应用程序和其它可执行程序组件,诸如操作系统305,在不同的时间可以位于计算设备301的不同存储组件中,并且可以由计算机的数据处理器执行,但是为了图解的目的,这样的程序和组件在这里图解为分离的块。应用软件306的实现可以存储在某种形式的计算机可读媒介上,或在某种形式的计算机可读媒介之间传送。所公开的方法的实现也可以存储在某种形式的计算机可读媒介上,或在某种形式的计算机可读媒介之间传送。计算机可读媒介可以是计算机可访问的任何可获得的媒介。作为实例,而不是为了限制,计算机可读媒介可以包括“计算存储媒介”和“通信媒介”。“计算机存储媒介”包括以任何方法或技术实现的易失性和非易失性、可移动和不可移动的媒介,用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。计算机存储媒介包括但不限于RAM、ROM、EEPROM、闪存或其它存储技术、CD-ROM、数字多用途光盘(DVD)或其它光存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以用于存储期望的信息并可以被计算机访问的任何其它介质。
闭环控制器描述
在本发明的一个实施方案中,图4的闭环控制器401(CLx)用于在多个信道中最优分配位速率。可以在图3的实施方案中描述的计算机系统上执行CLx 401。CLx 401是中央带宽监控和分配方法,与适当配置的编码器402、403、404联合工作,以管理单个的带宽分配并将从多路复用器405输出的视频质量最优化。也可以在图3的计算机系统上以各种实施方案执行编码器402、403、404。
闭环控制器(CLx)401通过解析复杂度数据(C0-Cn-1)的流而分配位速率,该复杂度数据可以由各个实施方案中的每个编码器402、403、404生成。
复杂度数据可以作为编码之前每个编码器中的预处理和运动估计的副产品产生。复杂度数据包括关于每帧的定时、帧类型以及位要求的信息。
在一个实施方案中的CLx401通过向前查找如图5中所示的两个等距的时间间隔而执行位速率分配。图5图解了多个MPEG信道,每个信道包括GOP 501的流,并且GOP 501是关于更新间隔Tu分割的。在图5中,每条线上的椭圆表示GOP 501的边界。这些边界可以落在彼此相关的任何点和更新间隔Tu上。
在周期性间隔Tu,CLx401检查所有复杂度数据,并且服从下列约束向编码器402、403、404分配速率:
1.速率仅在GOP边界改变;
2.最大的GOP大小是TN s;
3.CLx401必须至少考虑来自每个编码器的复杂度数据的TR≥TN s性能;
4.CLx401利用Tu的时间段更新速率。
给定这些约束,本领域内的普通技术人员将看到TL≥TN+TR是每个编码器402、403、404复杂度估计处理必须在编码处理前的最小时间量。
在时间t0+2TU,当前实施方案中的每个编码器402、403、404编码时间t0 -(或更早)时的帧,并且估计时间t0+2Tu +(或更迟)的复杂度。闭环控制器401必须在时间t0+2Tu计算时间间隔(t0,t0+Tu)内开始的所有GOP 501的速率。同时,CLx 401将为间隔(t0+Tu,t0+2Tu)中所有帧分配目标数目的位。
最优位分配
本发明使用模型分配位。一个模型通过下面等式给出:
S B = K 1 D + K 2
等式1:位产生模型
其中S是复杂度测量,D是重构帧的失真,B是帧所需要的位数,K1和K2是常数。当在多个帧中分配位时,本模型提供了适合的准确性。
在当前的实施方案中,通过在间隔(t0,t0+Tu)和(t0+Tu,t0+Tu)期间分割这些帧,并且对每个间隔内的单个表示为Ci的帧复杂度求和来计算S。可以以各种方法计算帧复杂度Ci。一种方法是使用直接从预处理产生的复杂度测量。预处理包括诸如图像缩放、场景变化检测、底片检测、噪音过滤、转换帧编码次序以及粗糙的运动估计等任务。这些操作一起提供了复杂度测量的充足资源。在本发明的一个实施方案中,计算下面类型的度量:
1.通过下面等式给出宏块内的复杂度:
C int ra = Σ b = 1 6 Σ x = 0 7 Σ y = 0 7 | p [ b ] [ x ] [ y ] - μ [ b ] |
其中p[b][x][y]是在系数b表示的8×8块中的位置(x,y)的像素值。对于4:2:0视频,每个宏块包括六个8×8块。而且μ[b]是具有系数b的8×8块中的p[b][x][y]的平均值。
2.通过下面等式给出宏块间的复杂度(用于P和B帧):
C int er = Σ b = 1 6 Σ x = 0 7 Σ y = 0 7 | p [ b ] [ x ] [ y ] - r [ b ] [ x ] [ y ] |
其中r[b][x][y]是在系数b表示的8×8块中的位置(x,y)最佳预测的宏块的像素值。
注意,对于B帧,每个宏块存在向前和向后预测的两个间测量。
3.通过利用MPEG2 VLC表编码当前块和之前块之间的最优预测向量中的差别而计算估计的运动向量位(用于P和B帧)。
然后,通过对该帧中每个宏块的Cinter和Cintra的最小值进行求和而计算Ci。实验结果表明对于多帧,该复杂度足够准确地符合等式1。在本发明的一个实施方案中,通过使用反馈可以获得更好的准确度,也可以用于计算每个信道的k1和k2的精确值。这种情况下,我们假定k1和k2对于所有信道是相同的,以简化最优化过程。
上述的最终宏块度量是估计的运动向量位。如同复杂度一样,这些宏块值可以被求和,以获得每帧所需要的运动向量位的总数的估计。这些位可以以点对点(ad-hoc)的方式被因子化包括到复杂度估计中,或它们可以直接用于下述的分配策略中。具体而言,所估计的位可以简单地在分配前从所分配的总位中减去,然后在分配完所有的位后添加回总位中。
然后将间隔(t0+Tu,t0+2Tu)中的帧分成M组,两种可能的分组是:
(1)M=N并且Si=间隔(t0+Tu,t0+2Tu)中信道i的所有复杂度的和。
(2)M=在间隔期间所有或部分GOP的数目
Figure A200580036831D00163
不管间隔(t0+Tu,t0+2Tu)中的帧的分割,我们具有用于速率的M模型。在所有情况下,我们需要:
Σ i = 1 M B i = R T T u
其中RT是总目标速率,Tu是更新时间,Bi是分配给分割i的位数。
至少存在两个对当前实施方案的模型有用的解决方案。在第一解决方案中,我们最小化
Figure A200580036831D00171
换句话说,我们设法最小化时间间隔(t0+Tu,t0+2Tu)内所有信道上的总失真。使用拉格朗日乘子的方案给出:
B i = ( S i Σ j = 1 M S j ) R T T μ
等式2:最小化总误差的最优位分配
如果我们希望最小化最大失真,那么会获得第二解决方案。这种情况下,所有失真必须相等,使得Di=D。用约束条件一起解出该等式给出:
B i = ( S i Σ j = 1 M S j ) R T T μ
等式3:最小化最大误差的最优位分配
本领域内的普通技术人员可以用其它位产生模型来替代,以使用上面公开的CLx 401最优分配位,而不背离本发明的精神和范围。
考虑到上文所述,已公开了在多个数据信道中最优分配位的许多方法。在图6的实施方案中图解了在多个多媒体信道中分配位数的一种方法。首先,在编码之前处理或预处理每个信道601,以通过分析每个信道而产生复杂度数据。第二,将所生成的复杂度数据聚集在闭环控制器602,所述闭环控制器用于确定分配给每个信道的位数。第三,闭环控制器基于复杂度数据计算分配给每个信道的位速率603。第四,将所计算的每个信道的位速率从闭环控制器传送到编码器604。最后,使用所传送的位速率编码每个信道605。
本发明的另一实施方案可以在图7中看到,其图解了用于确定分配给视频信道中的帧组的位数的方法。首先,在图7的实施方案中,在对信道编码前将视频信道分割成两个时间间隔701,其中时间间隔包括第一间隔和第二间隔。第二,对第一间隔计算第一帧复杂度,以及对第二间隔计算第二帧复杂度702。然后,对第一帧复杂度求和703,以及对第二帧复杂度求和704。
然后,在图7的实施方案中,将第二间隔分割成若干帧组705。第六,模型化第二间隔中的帧组的位速率706。最后,使用模型确定分配给信道中的每个帧组的位数707。
闭环控制器实现
在本发明的另一实施方案中,闭环控制器,诸如图4的控制器,被实现为在使用Linux操作系统的计算机系统上执行的CLx主机控制器处理,不需要CLx主机和编码器一起位于相同的系统上。编码器运行为网络服务器,在已知端口上监听来自CLx主机的连接。CLx主机是网络客户端,创建到编码器的UDP/IP(数据报)连接,以传送控制信息和复杂度估计。适当的操作需要整个系统的各个时间组件同步。操作信息是分布式的,具有CLx主机管理的信息和单个编码器管理的其它信息。闭环控制器和编码器都可以在图3中描述的示例计算机系统上运行。该方法按下面部分中描述的阶段运行。
启动阶段
在一个实施方案中,在正常系统启动期间,开始CLx多线程处理。在启动时获得的基本配置信息包括:
激活主机(确定CLx过程当前是否正控制编码器)。
所管理的编码器共享的聚集带宽。
所管理的编码器的IP地址的列表。
由于其它配置信息也是分布式的,所以CLx主机在启动阶段获得基线(baseline)信息。此外,创建用于分配算法的适当操作的时基关联。除非可以从当时配置的所有编码器获得所需要的信息,否则CLx主机将不完成初始启动阶段。如果所有编码器都不响应,则主机发出警报,并连续地尝试获得启动所需要的信息。需要时间关联,以将编码器加到管理的组中。在启动阶段获得初始的关联。
对于每个管理的编码器,成功的启动包括下面这些步骤:
1.创建CLx主机和编码器之间的UDP连接。
2.创建系统时钟和PCR时间关联。
3.获得每个编码器闭环配置信息。
4.向编码器发送开始命令。
5.从编码器请求复杂度估计。
稳定状态
在正常的稳定状态操作期间,CLx控制器:
处理来自管理的编码器的复杂度估计。
向管理的编码器发出速率目标。
维护时间关联。
在一个实施方案中,以帧速率从编码器发送复杂度估计,并积聚在CLx控制器。以大致的GOP速率,CLx控制器处理产生每个编码器的目标编码速率的复杂度估计。传递到编码器的每个目标速率包括发送复杂度估计的新份额的授权。
误差检测和恢复阶段
在一个实施方案中,检测到的和自动恢复的主要非运营商引起的误差是缺少及时的复杂度估计,这导致不能计算出错编码器的目标速率,或不能计算是否发生分配算法的未检测到的失败。
时间相互关系阶段
控制器使用加到系统之间传送的消息中的时间戳而将本地系统时钟与远程编码器系统时钟同步。下面所指的所有时域信息是在多路复用器的时域内。
速率分配算法
在本发明的一个实施方案中,速率分配算法以规则的间隔执行,所述规则的间隔是通过所有编码器的最大GOP大小设置的。当分配算法执行时,其分析最后两个时间间隔接收的所有复杂度,并且分配在最早的时间间隔中开始的每个编码器上的每个GOP的目标位数。在一个实施方案中,计算分配给每个GOP的目标位,以最优化质量度量,而同时满足在该间隔中分配的总位数的约束条件。可以根据系统的应用设置所用的质量度量和约束条件。速率分配算法的输出是每个编码器中的每个GOP的目标位速率。该输出被发送回该组中的每个编码器,以完成环路。
通过以规则的间隔分配位而满足整个信道约束条件。选择在每个间隔中分配的位的和,使得准确满足总目标速率。然而,在任何具体短的时间段内,编码器的组的总平均速率可以相对目标明显变化。可以应用约束条件来降低该可变性,但是缺省的操作模式选择速率分配,以最小化失真并满足简单的最小化/最大化位速率约束条件。
可以通过使用几个逻辑函数执行一个实施方案的位分配方法,将更详细地描述该逻辑函数。首先,分配速率(AssignRate)函数是向用于在时间段[Tcur-2Tu,Tcur-Tu)内开始的GOP的所有CLx参与方分配和返回最终速率(RATE)的顶级例程。该例程也向用于时间段[Tcur-Tu,Tcur)的所有组分配初始位(BIT)。该初始位可以在下一调用分配速率(函数)中改变。下面,在本发明的一个实施方案中,详细描述分配速率调用的函数。分配速率函数调用各种其它函数,以最优地确定每个信道的位速率,包括收集概要(CollectSummaries)、界线位(BoundBits)、计算位(ComputeBits)、设置位(SetBits)、片段位(ClipBits)、重复(Repeat)以及计算速率(CalculateRates)。
对于某些步骤,本说明书也包括伪码,本领域内的普通技术人员可以使用该伪码来更容易地实现本发明的速率分配算法。所提供的伪码的变量、方法、函数、逻辑和流程绝不意味着限制或限定该算法如何在各个实施方案中执行。
将使用下面的伪码变量,并且只用于说明目的:
N=信道数;
S[1][x]=在时间段[Tcur-Tu,Tcur)中的复杂度概要数x。x的最大值依赖数据和N;
S[1][x]=Si如果目标是最小化总失真;
S[1][x]=sqrt(Si)如果目标是最小化最大失真;
S[0][x]=时间段[Tcur-2*Tu,Tcur-Tu)中的复杂度概要数x;
T[y][x]=很短时间内组S[y][x]的长度;
B[y][x]=分配给组S[y][x]的位;
C0=S[0][x]中x的最大数;
C1=S[1][x]中x的最大数;
Tcur=当前时间;
Ba=调整位;
K=迭代数;
Bt=目标位;
M1[i]=编码器i在时间段[Tcur-Tu,Tcur)中全部或部分GOP的数目;以及
M0[i]=编码器i在时间段[Tcur-2Tu,Tcur-Tu)中全部或部分GOP的数目。
CollectSummaries函数聚集输入的帧复杂度,以形成时间段[Tcur-T,Tcur)中所有帧的组复杂度。组开始于I帧或该时间段中任何类型的第一帧。类似地,组结束于I帧或任何时间段中的最后帧。在一个实施方案中,利用点对点因素修改下面的复杂度S[y][x],以给出特殊环境中的较好结果。例如,当发现衰减、亮度闪烁或非常短的GOP时增加S[y][x]。所有这些条件将降低位产生模型的准确度,所以改变S[y][x]的值有时是有根据的。然而,这些调整只是短暂的现象。
CollectSummaries伪码:
C0=C1;//时隙时移一位
S[0][*]=S[1][*];
M0[*]=M1[*];
C1=0;
ResetS[1][*];
解析帧类型并定时来计算M1[*]
for(i=0;i<N;i++){
  for(j=0;j<M1[i];j++){
    S[1][C1]=来自编码器i的组j的复杂度概要;
     C1++;
     }
    }
BoundBits函数计算在[Tcur-2Tu,Tcur)中每个组的最小/最大位分配约束条件。在一些实施方案中,可以限制可分配给每个GOP的位的数目。至少,每个编码器具有最小和最大的位速率。这是可以应用下行流设备或编码器的约束条件的算法部分。可以包括任何导致限制分配给GOP的位的数目的约束。也可以在本步骤应用信道约束条件。
BoundBits伪码:
Bmin[1][x]=可以分配给S[1][x]的位的最小数目
Bmin[0][x]=可以分配给S[0][x]的位的最小数目
Bmax[1][x]=可以分配给S[1][x]的位的最大数目
Bmax[0][x]=可以分配给S[0][x]的位的最大数目
for(i=0;i<2;i++){
  for(j=0;j<Ci;j++){
    基于当前分配的位计算Bmin[i][j]
    基于当前分配的位计算Bmax[i][j]
    }
在上述的循环中,本领域内的普通技术人员将意识到可以发生Bmin[i][j]=Bmax[i][j]的情况,这对属于跨Tcur-2 Tu的GOP、在[Tcur-2Tu,Tcur-Tu)中的所有组为真。
ComputeBits函数计算要分配的目标位数并设置位分配方案。在第一次通过该循环时,目标简单地是Rt*Tu(即,在时间间隙[Tcur-Tu,Tcur)中可获得的位的总数)。通过我们已处理多少迭代(即,K)确定分配方案。最初,分配方案是最优的,并且重新分配所有位;然而,该方案可能不收敛。最后,分配方案转换到添加模式(additive mode),以强制收敛。
 ComputeBits伪码:
 if(Ba==0){
 Bt=Rt*Tu;//第一次通过该循环
}else{
 Bt=Ba;
 if(K>Kopt){
 break;//跳出循环以强制收敛
 }
 for(i=0;i<2;i++){
     for(j=0;j<Ci;j++){
      if(Bmin[i][j]==Bmax[i][j]){
      继续;
      }
 if(B[i][j]==Bmin[i][j]&&Ba>0){
 Bt+=B[i][j];
继续;
  }
  if(B[i][j]==Bmax[i][j]&&Ba<0){
  Bt+=B[i][j];
  继续;
  }
  if(B[i][j]!=Bmax[i][j]&&B[i][j]!=Bmin[i][j]){
  Bt+=B[i][j];
  继续;
  }
 }
}
SetBits函数使用ComputeBits提供的目标在时间段[Tcur-2Tu,Tcur)中分配位。这是有效应用等式2和等式3的步骤。
SetBits伪码:
St=0;
for(i=0;i<2;i++){
   for(j=0;j<Ci;j++){
    if(Bmin[i][j]==Bmax[i][j]){
     继续;
    }
    if(B[i][j]==Bmin[i][j]&&Ba>0){
     St+=S[i][j];
     继续;
     }
     if(B[i][j]==Bmax[i][j]&&Ba<0){
       St+=S[i][j];
      继续;
     }
if(B[i][j]!=Bmax[i][j]&&B[i][j]!=Bmin[i][j]){
   St+=S[i][j];
   继续;
   }
}
if(St==0){
    达到收敛,不能满足约束条件。跳到CalculateRates
}
for(i=0;i<2;i++){
   for(j=0;j<Ci;j++){
  if(Bmin[i][j]==Bmx[i][j]){
   继续;
   }
   if(B[i][j]==Bmin[i][j]&&Ba>0){
     if(K<Kopt){
       B[i][j]=(S[i][j]/St)*Rt;
     }else{
      B[i][j]+=(S[i][j]/St)*Rt;
     }
     继续;
    }
    if(B[i][j]==Bmax[i][j]&&Ba<0){
       if(K<Kopt){
       B[i][j]==(S[i][j]/St)*Rt;
      }else{
        B[i][j]+=(S[i][j]/St)*Rt;
       }
      继续;
     }
     if(B[i][j]!=Bmax[i][j]&&B[i][j]!=Bmin[i][j])
       {if(K<Kopt){
   B[i][j]=(S[i][j]/St)*Rt;
   }else{
   B[i][j]+=(S[i][j]/St)*Rt;
 }
   继续;
 }
}
ClipBits函数强制最小/最大位分配满足约束条件。
ClipBits伪码:
Ba=0;
for(i=0;i<2;i++){
   for(j=0;j<Ci;j++){
    if(B[i][j]>Bmax[i][j]){
      Ba+=B[i][j]-Bmax[i][j];
       B[i][j]=Bmax[i][j];
       }
       if(B[i][j]<Bmin[i][j]){
          Ba-=Bmin[i][j]-B[i][j];
          B[i][j]=Bmin[i][j];
          }
      }
    }
Repeat函数重复CollectSummaries、BoundBits、ComputeBits、SetBits以及ClipBits函数,直到达到收敛或直到该方法已运行完迭代。
Repeat伪码:
K++;
if(K>Kmax||Ba==0){
  跳到CalculateRates;
}
跳到BoundBits;
CalculateRates函数计算和返回在时间段[Tcur-2Tu,Tcur-Tu)中开始的所有GOP的速率。GOP可以跨越多于上述计算定义的1组,这当GOP在Tcur-Tu越过分配界限时发生。在这种情况下,GOP的总位进而速率来自两个分离的B[x][y]。
 CalculateRates伪码
 for(i=0;i<2;i++){
    for(j=0;j<Ci;j++){
      if(S[i][j]与在[Tcur-2Tu,Tcur-Tu)开始的GOP相一致){
       使[i′][j′]表示包含S[i][j]的GOP的开始的组
      if(i==I′&&j=j′){
       R[i][j]==(B[i][j])/(T[i][j];
       }else{
       R[i][j]==(B[i][j]+B[I’][j’])/(T[i][j]+T[i′][j′];
       }
    }
 }
}
如上所示,本发明的算法现在已确定分配给多媒体数据的每个信道的位的最优数目,假定总位数和多个数据信道的数目固定。已相对于实施方案阐明了本发明的位分配算法,这些实施方案在任何方面都是说明性的,而不是限制性的。本领域内的普通技术人员将意识到,本发明可以有许多修改和变化,而不背离本发明的范围。

Claims (32)

1.一种使用固定数目的总位实时编码多个数据信道的方法,包括步骤:
a.通过在编码前分析每个信道而预处理每个信道,以产生复杂度数据;
b.将所产生的复杂度数据聚集在闭环控制器;
c.通过闭环控制器基于所产生的复杂度数据而计算分配给每个信道的位速率;
d.将为每个信道计算的位速率从闭环控制器传送到编码器;以及
e.使用所传送的位速率编码每个信道。
2.根据权利要求1的方法,其中,每个信道包含多媒体数据。
3.根据权利要求2的方法,其中,所述多媒体数据是视频数据。
4.根据权利要求3的方法,其中,复杂度数据包括关于每个视频帧的定时、帧类型以及位要求的信息。
5.根据权利要求4的方法,其中,视频数据具有可变的位速率。
6.根据权利要求5的方法,其中预处理步骤包括预处理每个信道以通过在编码处理之前对第一时间段和第二时间段的每个信道进行分析而产生复杂度数据的步骤。
7.根据权利要求6的方法,其中该第一时间段跨过时间零前进到更新时间,第二时间段紧接该第一时间段,并且从该更新时间跨过前进到两倍该更新时间,并且其中当当前时间是两倍该更新时间时从时间零或更早的视频帧被编码。
8.根据权利要求7的方法,其中,分配给每个信道的位速率是通过最优化信道失真模型确定的。
9.根据权利要求8的方法,其中,该信道失真模型是通过将信道复杂度求和计算的复杂度测量Si的函数,是该第一时间段的时间段界限的函数,以及该第二时间段的时间段界限的函数。
10.根据权利要求9的方法,其中Bi是位的数目,K1和K2是常数,并且该失真模型通过下面关系定义:
S i B i = K 1 D i + K 2 .
11.根据权利要求10的方法,其中Si是通过在该第一时间段和该第二时间段分割帧并将每个分割中的帧复杂度Ci求和而计算的。
12.根据权利要求11的方法,其中该帧复杂度Ci是使用帧间和帧内统计计算的。
13.根据权利要求12的方法,其中该第二时间段中的帧被分成M个组。
14.根据权利要求13的方法,其中组的数目M等于信道的数目,并且信道复杂度Si是该第二时间段中用于该信道的所有复杂度的和。
15.根据权利要求13的方法,其中组的数目M等于该第二时间段中用于该信道的全部或部分图片组(GOP)的数目。
16.根据权利要求13的方法,其中对于速率、总目标速率RT、更新时间Tu有M个模型,分配给组Mi的位的数目Bi通过下面关系表示:
&Sigma; i = 1 M B i = R T T u
17.根据权利要求16的方法,其中该失真模型是用于最小化在该第二时间段中所有信道上的最大失真。
18.根据权利要求16的方法,其中该失真模型是用于通过使用下列关系解出失真模型而最小化在该第二时间段中所有信道上的最大失真:
B i = ( S i &Sigma; j = 1 M S j ) R T T &mu; .
19.根据权利要求16的方法,其中该失真模式是用于最小化在该第二时间段中所有信道上的最大误差。
20.根据权利要求16的方法,其中该失真模型是用于通过使用下列关系解出失真模型而最小化在该第二时间段中所有信道上的最大误差:
B i = ( S i &Sigma; j = 1 M S j ) R T T &mu; .
21.一种用于确定在多个视频信道中的视频信道中分配给帧组的位的数目的方法,包括步骤:
a.在编码之前将该视频信道分割成两个时间间隔,所述时间间隔包括第一间隔和第二间隔;
b.计算该第一间隔内第一帧复杂度,以及该第二间隔内第二帧复杂度;
c.求和该第一帧复杂度;
d.求和该第二帧复杂度;
e.将该第二间隔分割成若干帧组;
f.将该第二间隔中的帧组的位速率模型化;
g.基于该模型确定分配给每个帧组的位的数目。
22.根据权利要求21的方法,其中分割步骤包括在编码前将该视频信道分割成两个时间间隔的步骤,其中该第一间隔跨过时间零前进到更新时间,该第二间隔跨过该更新时间前进到两倍该更新时间,并且其中当当前时间是两倍该更新时间时,从时间零或更早的视频帧被编码。
23.根据权利要求21的方法,其中计算步骤包括通过预处理该第一间隔中的帧以计算第一帧复杂度,以及通过预处理该第二间隔中的帧以计算第二帧复杂度的步骤。
24.根据权利要求23的方法,其中复杂度数据包括帧间统计和帧内统计。
25.根据权利要求24的方法,其中该帧间统计和帧内统计包括宏块帧内复杂度、宏块帧间复杂度以及估计的运动向量信息。
26.根据权利要求21的方法,其中分割步骤包括将该第二间隔分割成等于多个视频信道中的视频信道的数目的帧组数的步骤。
27.根据权利要求21的方法,其中分割步骤包括将该第二间隔分割成等于该第二间隔中的全部或部分图片组的数目的帧组数的步骤。
28.根据权利要求21的方法,其中模型化步骤包括模型化帧组的位速率从而最小化多个信道上的总失真的步骤。
29.根据权利要求21的方法,其中模型化步骤包括模型化帧组的位速率从而最小化多个信道上的最大失真的步骤。
30.根据权利要求21的方法,还包括步骤:
a.向编码器发送所确定的位的数目;以及
b.使用所确定的位的数目对该第二间隔中的帧组编码。
31.一种使用固定数目的总位实时编码多个数据信道的系统,该系统包括:
a.用于通过在编码前分析每个信道而预处理每个信道以产生复杂度数据的装置;
b.用于聚集所产生的复杂度数据的装置;
c.用于基于所产生的复杂度数据而计算分配给每个信道的位速率的装置;
d.用于将所计算的每个信道的位速率传送到编码器的装置;以及
e.用于使用所传送的位速率编码每个信道的装置。
32.一种用于确定在多个视频信道中的视频信道中分配给帧组的位的数目的系统,该系统包括:
a.用于在编码之前将视频信道分割成两个时间间隔的装置,所述时间间隔包括第一间隔和第二间隔;
b.用于计算该第一间隔内第一帧复杂度以及该第二间隔内第二帧复杂度的装置;
c.用于求和该第一帧复杂度的装置;
d.用于求和该第二帧复杂度的装置;
e.用于将该第二间隔分割成若干帧组的装置;
f.用于将该第二间隔中的帧组的位速率模型化的装置;以及
g.用于基于该模型确定分配给每个帧组的位的数目的装置。
CN200580036831.3A 2004-10-27 2005-10-27 用于信道组的最优速率分配 Pending CN101432981A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US62205104P 2004-10-27 2004-10-27
US60/622,051 2004-10-27

Publications (1)

Publication Number Publication Date
CN101432981A true CN101432981A (zh) 2009-05-13

Family

ID=36228498

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200580036831.3A Pending CN101432981A (zh) 2004-10-27 2005-10-27 用于信道组的最优速率分配

Country Status (3)

Country Link
US (2) US7643553B2 (zh)
CN (1) CN101432981A (zh)
WO (1) WO2006047727A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107750456A (zh) * 2015-04-13 2018-03-02 V-诺瓦国际有限公司 利用依赖于复杂性信息的一个信号的数据速率目标对多个信号进行编码

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007122232A (ja) * 2005-10-26 2007-05-17 Casio Comput Co Ltd 画像処理装置及びプログラム
US20080098447A1 (en) * 2006-10-19 2008-04-24 Moshe Yannai Programming of informational channels for digital video broadcasting
JP4831351B2 (ja) * 2007-02-01 2011-12-07 日本電気株式会社 映像音声帯域制御システム及び映像音声帯域制御方法
JP5253571B2 (ja) * 2008-06-20 2013-07-31 ドルビー ラボラトリーズ ライセンシング コーポレイション 複数の歪抑制下のビデオ圧縮
FR2946820B1 (fr) * 2009-06-16 2012-05-11 Canon Kk Procede de transmission de donnees et dispositif associe.
EP2285112A1 (en) * 2009-08-07 2011-02-16 Canon Kabushiki Kaisha Method for sending compressed data representing a digital image and corresponding device
US20140112386A1 (en) * 2012-10-22 2014-04-24 General Instrument Corporation Algorithms for determining bitrate for a statistical multiplexing system to account for signal complexity including film mode and gop structural changes
FR3013933A1 (fr) * 2013-11-22 2015-05-29 Orange Diffusion adaptative de contenus multimedia
US9967558B1 (en) 2013-12-17 2018-05-08 Google Llc Adaptive motion search control for variable block size partitions in video coding
US10735719B2 (en) * 2014-05-22 2020-08-04 Comcast Cable Communications, Llc Selecting content transmissions based on encoding parameters
US9392272B1 (en) * 2014-06-02 2016-07-12 Google Inc. Video coding using adaptive source variance based partitioning
TWI826387B (zh) * 2017-09-08 2023-12-21 美商開放電視股份有限公司 用於內容呈現之位元率及管線保留技術
US10523978B1 (en) 2018-02-27 2019-12-31 Amazon Technologies, Inc. Dynamic quality adjustments for media transport
WO2021033234A1 (ja) * 2019-08-19 2021-02-25 日本電信電話株式会社 制御装置、制御方法、及びプログラム
EP4274225A1 (en) * 2022-05-04 2023-11-08 MK Systems USA Inc. Systems and methods for multiple channel video encoding in a shared resource environment

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5650860A (en) * 1995-12-26 1997-07-22 C-Cube Microsystems, Inc. Adaptive quantization
US6038256A (en) * 1996-12-31 2000-03-14 C-Cube Microsystems Inc. Statistical multiplexed video encoding using pre-encoding a priori statistics and a priori and a posteriori statistics
US6040861A (en) 1997-10-10 2000-03-21 International Business Machines Corporation Adaptive real-time encoding of video sequence employing image statistics
KR19990042668A (ko) 1997-11-27 1999-06-15 정선종 다중 비디오 전송을 위한 비디오 부호화 장치 및 방법
US6859496B1 (en) 1998-05-29 2005-02-22 International Business Machines Corporation Adaptively encoding multiple streams of video data in parallel for multiplexing onto a constant bit rate channel
US6606040B2 (en) 2001-02-13 2003-08-12 Mosaid Technologies, Inc. Method and apparatus for adaptive data compression

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107750456A (zh) * 2015-04-13 2018-03-02 V-诺瓦国际有限公司 利用依赖于复杂性信息的一个信号的数据速率目标对多个信号进行编码
US11159799B2 (en) 2015-04-13 2021-10-26 V-Nova International Limited Encoding a plurality of signals

Also Published As

Publication number Publication date
WO2006047727A3 (en) 2008-12-11
US7643553B2 (en) 2010-01-05
US20090232224A1 (en) 2009-09-17
US20060215760A1 (en) 2006-09-28
US8331442B2 (en) 2012-12-11
WO2006047727A2 (en) 2006-05-04

Similar Documents

Publication Publication Date Title
CN101432981A (zh) 用于信道组的最优速率分配
TW519834B (en) Method and apparatus for determining a transmission bit rate in a statistical multiplexer
US8654849B2 (en) Integrated transcoding
US6493388B1 (en) Rate control and buffer protection for variable bit rate video programs over a constant rate channel
US6542549B1 (en) Method and model for regulating the computational and memory requirements of a compressed bitstream in a video decoder
EP1137289B1 (en) Supplying, generating, converting and reading video content
US6522693B1 (en) System and method for reencoding segments of buffer constrained video streams
EP2123040B1 (en) An improved video rate control for video coding standards
KR20000069473A (ko) 비디오 데이터 다중화 장치, 비디오 데이터 다중화 제어 방법,부호화 스트림 다중화 장치 및 방법과 부호화 장치 및 방법
EP2426923A1 (en) Adaptive streaming of video at different quality levels
US20020094031A1 (en) Distributed control strategy for dynamically encoding multiple streams of video data in parallel for multiplexing onto a constant bit rate channel
EP2589223B1 (en) Video streaming
Kokkonis et al. Efficient algorithm for transferring a real-time HEVC stream with haptic data through the internet
EP2403248A1 (en) Moving picture encoding device, moving picture encoding method, and moving picture encoding computer program
EP1088454A1 (en) Video encoder and encoding method with buffer control
CN1476727A (zh) 用于生成具有恒定质量的可缩放编码视频比特流的方法
JP2008011538A (ja) マルチメディアコンテンツへのリモートアクセスに対するリクエストを管理する方法
Lazaris et al. Modeling multiplexed traffic from H. 264/AVC videoconference streams
Saw Rate-quality optimized video coding
JP4534106B2 (ja) 動画像符号化システム及び方法
US20090185620A1 (en) Video encoding apparatus and method for the same
Xu et al. Rate control for consistent visual quality of H. 264/AVC encoding
CN101984667A (zh) 码率控制方法及码率控制器
GB2540204B (en) Rate control of streaming modules sharing a communication channel
Bhattacharyya et al. Burstiness minimized rate control for high resolution H. 264 video conferencing

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20090513