CN100459705C - 处理接收多个频道的统计再复用器中数据的方法及其装置 - Google Patents

处理接收多个频道的统计再复用器中数据的方法及其装置 Download PDF

Info

Publication number
CN100459705C
CN100459705C CNB018194133A CN01819413A CN100459705C CN 100459705 C CN100459705 C CN 100459705C CN B018194133 A CNB018194133 A CN B018194133A CN 01819413 A CN01819413 A CN 01819413A CN 100459705 C CN100459705 C CN 100459705C
Authority
CN
China
Prior art keywords
frame
code conversion
bit rate
video
video frequency
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.)
Expired - Lifetime
Application number
CNB018194133A
Other languages
English (en)
Other versions
CN1504051A (zh
Inventor
胡少伟
R·S·罗伯特
V·刘
A·卢沙
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.)
Arris Technology Inc
Original Assignee
General Instrument 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 General Instrument Corp filed Critical General Instrument Corp
Publication of CN1504051A publication Critical patent/CN1504051A/zh
Application granted granted Critical
Publication of CN100459705C publication Critical patent/CN100459705C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime 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/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
    • H04N19/166Feedback from the receiver or from the transmission channel concerning the amount of transmission errors, e.g. bit error rate [BER]
    • 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/23608Remultiplexing multiplex streams, e.g. involving modifying time stamps or remapping the packet identifiers
    • 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/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • 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/15Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
    • 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/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • 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/176Methods 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 block, e.g. a macroblock
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • H04N19/197Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including determination of the initial value of an encoding parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • 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

Abstract

本发明揭示一种用来处理包含视频数据的数个频道的高效率统计再复用器。在一项观点中,当从该数据采集统计信息时,会延迟视频数据的代码转换。数据的位速率需求参数依据该统计信息来决定,并且视频数据的代码转换依据延迟之后的各自位速率需求参数。在另一项观点中,于连续时间间隔的多个时段期间会更新视频帧的代码转换位速率,以允许更密切监控位速率。于每段时间间隔也会更新代码转换位速率的最小及最大界限,例如,缓冲器溢位及下溢保护。在另一项观点中,会按比例换算帧中宏区块的预先代码转换量化比例(quantization scale),以依据帧中的预先代码转换数据量与该帧的目标后置代码转换数据量的比例,提供对应的新代码转换量化比例。随着代码转换的进展,会针对帧的不同部份来调整量化比例,以确保将最低代码转换带宽量配置给每个宏区块。

Description

处理接收多个频道的统计再复用器中数据的方法及其装置
发明背景
本发明与一种用来代码转换数字视频信号的统计再复用器有关。
通常需要调整提供给(例如)有线电视网络等等的用户终端机的数字视频节目的位速率。例如,可经由卫星传输于头端接收第一群信号。当增加节目(例如商业或其它内容)时,头端业者可能想要将所选节目从本地来源(如储存媒体或本地现场转播)发送给用户。此外,通常需要在整个可用的频道带宽内提供节目。
因此,已发展出统计再复用器(缩写为:stat remux)或多频道代码转换器,其以特定位速率重新压缩已经过预先压缩的视频比特流的方式来处理已经过预先压缩的视频比特流。
在此类系统中,由并联排列的处理器来处理数个频道。每个处理器通常都可处理多重频道数据。然而,在某些情况下(如需要许多计算的HDTV),可能会在多重处理器之中配置单一频道的数据部份。另外,通常会将固定代码转换带宽配置给一组或一组以上频道(统计再复用器群组)。
但是,需要有一种改良的统计再复用系统,其提供每个频道的位速率需求参数,使针对代码转换频道来配置位的原则为,最佳化已编码数据的影像品质,并且仍然符合有限总处理能力的限制条件。
系统应利用自比特流所导出的统计信息来评估位速率需求参数,如帧位计数及原始比特流的平均量化比例值。系统应兼容于MPEG-2比特流。系统应依据利用原始比特流的统计信息所评估的编码复杂度,以配置I、P及B帧的目标输出帧位计数。
另外,系统应提供帧内的MPEG-2宏区块处理,其方式是利用宏区块位计数及原始比特流的平均量化比例值以支配传输率控制处理,以符合输出的目标帧位计数。
在视频帧中的一些时间,系统提供配置代码转换位速率的周期调整。
此外,系统应依据原始、预先代码转换量化比例值,导出用来代
此外,系统应依据原始、预先代码转换量化比例值,导出用来代码转换帧中宏区块的量化比例值。随着帧的代码转换进展,应调整量化比例值,以确保以将最少数量的位配置给要代码转换的每个宏区块。
本发明提供一种具有前述及其它优点的系统。
发明内容
本发明与一种用来代码转换数字视频信号的统计再复用器有关。
在本发明的一项观点中,会利用帧位计数及原始比特流(如MPEG-2比特流)的平均量化比例值(整个帧的平均值)所导出的统计信息来评估位速率需求参数。提供(例如)五帧的预览。
本发明在代码转换频道之中配置总可用带宽。
本发明依据利用帧位计数及原始比特流的平均量化比例值(整个每一输入帧的平均值)所评估的编码复杂度,以配置I、P及B帧的输出帧位计数目标。
另外,在本发明的另一项观点中,于帧内的MPEG-2宏区块处理期间,会使用宏区块位计数及原始比特流的平均量化比例值来支配传输率控制处理,以符合输出的目标帧位计数。
因此,本发明揭示一种用来处理包含视频数据的数个频道的高效率统计再复用器。在本发明的一项观点中,当从该数据采集统计信息时,会延迟视频数据的代码转换。数据的位速率需求参数依据该统计信息来决定,并且视频数据的代码转换依据延迟之后的各自位速率需求参数。
在本发明的另一项观点中,于连续时间间隔的多个时段期间会在统计再复用器更新视频帧的代码转换位速率,以允许更密切监控位速率。另外,于每段时间间隔会更新代码转换位速率的最小及最大界限。因此,在第一时间间隔会代码转换帧的一部份,然后更新代码转换位速率,接着在第二时间间隔会代码转换帧的第二部份,然后更新代码转换位速率,以此类推。
在本发明还有一项观点中,会按比例换算帧中宏区块的预先代码转换量化度量(quantization scale),以依据帧中的预先代码转换数据量与该帧的目标后置代码转换数据量的比例,提供对应的新代码转换量化度量。另外,随着代码转换的进展,会针对帧的不同部份来调整量化比例,以确保将最低代码转换带宽量配置给每个宏区块。
揭示对应的方法及装置。
本发明提供一种用以处理一接收编码数据的多个频道的统计再复用器中数据的方法,该方法包括下列步骤:自这些编码数据重新获取视频帧;当自这些视频帧获取统计信息时,将这些视频帧储存于预览缓冲器中,用以延迟这些视频帧的代码转换;通过使用复杂度的一个或多个临时平均值和非线性函数,依据自这些视频帧的获取统计信息,决定这些视频帧的各自位速率需求参数;以及在延迟这些视频帧之后,依据各自位速率需求参数,代码转换各自的这些视频帧。
本发明提供一种接收编码数据的多个频道的统计再复用器,该统计再复用器包括:装置,用以自这些编码数据重新获取视频帧;装置,用以当自这些视频帧获取统计信息时,存储这些视频帧用以延迟这些视频帧的代码转换;装置,用以通过使用复杂度的一个或多个临时平均值和非线性函数,依据自这些视频帧的获取统计信息,决定这些视频帧的各自位速率需求参数;以及装置,用以在延迟这些视频帧之后,依据各自位速率需求参数,代码转换各自的这些视频帧。
本发明提供一种用以处理一接收包含编码视频帧的多个频道的统计再复用器中数据的方法,该方法包括下列步骤:在代码转换一特定视频帧的过程中,通过使用复杂度的一个或多个临时平均值和非线性函数,以连续时间间隔的多个时段,更新该特定视频帧的代码转换位速率;通过于每个连续时间间隔也会更新的最小及最大级别的至少一级别来限制该更新的代码转换位速率,以提供对应的限制性及更新代码转换位速率;针对于连续时间间隔期间代码转换该特定视频帧的对应部份,配置该限制性及更新代码转换位速率;计算该特定视频帧的目标帧大小,用以指示代码转换该特定视频帧所产生的预期的数据量;其中:通过连续时间间隔中更新的最小及最大预测值的至少一个来限制该目标帧大小;根据该目标帧大小决定连续时间间隔中该特定视频帧的代码转换位速率。
本发明提供一种用以处理一包括编码视频帧的多个频道的统计再复用器中数据的方法,该方法包括下列步骤:在代码转换一特定视频帧的过程中,通过使用复杂度的一个或多个临时平均值和非线性函数,以连续时间间隔的多个时段,至少更新该特定视频帧的代码转换位速率;通过于每个连续时间间隔也会更新的最小及最大级别的至少一级别来限制该更新的代码转换位速率,以提供对应的限制性及更新代码转换位速率;针对于连续时间间隔期间代码转换该特定视频帧的对应部分,配置该限制性及更新代码转换位速率;以及计算每个视频帧的目标帧大小,用以指示代码转换该视频帧所产生的预期的数据量;其中与这些视频帧的关联目标帧大小在与这些视频帧略过代码转换的预先代码转换位数量的预先决定差值范围内。本发明提供一种用以处理一包括编码视频帧的多个频道的统计再复用器中数据的方法,该方法包括下列步骤:在代码转换一特定视频帧的过程中,通过使用复杂度的一个或多个临时平均值和非线性函数,以连续时间间隔的多个时段,至少更新该特定视频帧的代码转换位速率;通过于每个连续时间间隔也会更新的最小及最大级别的至少一级别来限制该更新的代码转换位速率,以提供对应的限制性及更新代码转换位速率;针对于连续时间间隔期间代码转换该特定视频帧的对应部分,配置该限制性及更新代码转换位速率;以及计算每个特定视频帧的目标帧大小,用以指示代码转换该特定视频帧所产生的预期的数据量;以及依据该目标帧大小,评估将时钟参考数据播入包含该特定视频帧的代码转换数据的至少一封包所需的时间;其中根据该目标帧大小决定连续时间间隔中该特定视频帧的代码转换位速率
本发明提供一种接收包括编码视频帧的多个频道的统计再复用器,该统计再复用器包括:装置,用以在代码转换一特定视频帧的过程中,通过使用复杂度的一个或多个临时平均值和非线性函数,以连续时间间隔的多个时段,更新该特定视频帧的代码转换位速率;装置,用以通过于每个连续时间间隔也会更新的最小及最大级别的至少一级别来限制该更新的代码转换位速率,以提供对应的限制及更新代码转换位速率;以及装置,用以针对于连续时间间隔期间代码转换该特定视频帧的对应部份,配置该限制性及更新代码转换位速率;装置,用以计算该特定视频帧的目标帧大小,用以指示代码转换该特定视频帧所产生的预期的数据量;其中:通过连续时间间隔中更新的最小及最大预测值的至少一个来限制该目标帧大小;根据该目标帧大小决定连续时间间隔中该特定视频帧的代码转换位速率。
本发明提供一种用以处理用来接收包括编码视频帧的多个频道的统计再复用器中的数据的方法,其中这些视频帧包含一特定视频帧,在该特定视频帧的关联部份中包括多个宏区块,当将该特定视频帧输入至该统计再复用器时,每个宏块均具有一关联的旧量化比例,该方法包括下列步骤:计算代码转换该特定视频帧所产生的预期的目标数据量;以及依据下列条件来决定新的量化比例,以在代码转换该特定视频帧中一第一部份中的对应宏区块时使用:(a)对应的旧量化比例,以及(b)该特定视频帧中预先代码转换数据量与(c)该目标数据量的比例;以及通过使用复杂度的一个或多个临时平均值和非线性函数,依据统计信息,决定这些视频帧在代码转换中的各自位速率需求参数。
本发明提供一种接收包括编码视频帧的多个频道的统计再复用器,其中这些视频帧包含一特定视频帧,在该特定视频帧的关联部份中包括多个宏区块,当将该特定视频帧输入至该统计再复用器时,每个宏区块均具有一关联的旧量化比例,该统计再复用器包括:装置,用以计算代码转换该特定视频帧所产生的预期的目标数据量;以及装置,用以依据下列条件来决定新的量化比例,以在代码转换该特定视频帧中一第一部份中的对应宏区块时使用:(a)对应的旧量化比例,以及(b)该特定视频帧中预先代码转换数据量与(c)该目标数据量的比例;以及装置,通过使用复杂度的一个或多个临时平均值和非线性函数,依据自这些视频帧的统计信息,决定这些视频帧的各自位速率需求参数。
附图说明
图1显示根据本发明的统计再复用,以及数据流入及流出量化级别处理器(quantization level processor;QLP)。
图2显示用来根据本发明使用的简化型代码转换器的附图。
图3显示用来根据本发明使用的简化型代码转换器的附图,用以执行重新量化,而不需要进行运动补偿。
图4显示根据本发明的端对端统计再复用器处理延迟的附图。
图5显示根据本发明的代码转换器视频缓冲核验器(video bufferingverifier;VBV)模型简化型代码转换器的附图。
图6显示根据本发明的代码转换器传输率时序的附图。
图7显示根据本发明QLP与代码转换器处理组件(transcoderprocessing element;TPE)之间通信时序的附图。
具体实施方式
本发明与一种用来代码转换数字视频信号的统计再复用器有关。下列是使用的缩写与术语:
BW-带宽(Bandwidth)
DCT-离散余弦转换(Discrete Cosine Transform)
DTS-译码时戳(Decoding Time Stamp)
ES-基本数据流(Elementary Stream)
FIFO-先进先出(First-In,First-Out)
KP-核心处理器(Kernel Processor)
MTS-MPEG传输数据流(MPEG Transport Stream)
PCI-周边组件互连(Peripheral Component Interconnect)
PCR-节目时钟参考(Program Clock Reference)
PES-封包化基本数据流(Packetized Elementary Stream)
PID-节目识别项(Program Identifier)
Q-量化(Quantization)
QLP-量化级别处理器(Quantization Level Processor)
SDRAM-静态动态随机存取存储器(Static Dynamic RandomAccess Memory)
TP-传输封包(Transport Packet)
TPE-代码转换器核心处理组件(Transcoder core ProcessingElement)
VLD-可变长度型译码(Variable-Length Decoding)
VLE-可变长度型编码(Variable-Length Encoding)
图1显示根据本发明的统计再复用,以及数据流入及流出量化级别处理器(quantization level processor;QLP)。
统计再复用器100包括准备器(groomer)105,用来接收一些输入运输数据流。不同视频服务中的对应输入运输数据流会提供数个代码转换器110,…,112,或TPE(transcoding engine;代码转换引擎)的其中一个代码转换器。通常每个代码转换器均可处理一个或一个以上视频服务(频道)。经代码转换的数据会经由PCI总线115提供给复用器(mux)120,其负责组合对应的输出传输数据流。
核心处理器(KP)设定准备器105、TPE 110,…,112、QLP 130及Mux 120。
具体而言,Mux 120响应QLP 130(其具有如SDRAM之类的存储器132)所提供的传输位速率。QLP可使用媒体处理器实施,如EquatorTechnologies公司销售的MAPCA2000(300MHz)。QLP 130执行下列功能:
·将可用的带宽配置给输出视频服务,以最佳化视频品质,并决定要代码转换的每个帧的目标帧大小。
·接收来自于核心处理器的配置设定参数。
·向核心处理器报告运作状态及统计数据。
QLP经由PCI总线(32位@66MHz)来与KP和TPE通信。配置QLP的SDRAM上的存储器区块,以供处理器间通信使用。QLP与其它处理器「共享」这个存储器区块。
输入至QLP 130
·配置设定参数及命令(来源:KP 140)
·视频与关联的音讯和数据输入封包传输率信息(来源:TPE110,…,112)
·要代码转换的输入帧的统计数据(来源:TPE)
·输入帧的时序信息(来源:TPE)
·刚才代码转换的输出帧的统计数据(来源:TPE)
·输出帧的时序信息(来源:TPE)
·代码转换器FIFO级别(来源:TPE)
·非视频(数据)输入封包传输率信息(来源:Mux 120)
自QLP 130输出
·状态及统计数据(目的地:KP)
·TPE服务指派信息(目的地:KP)
·传输位速率(目的地:Mux)
·代码转换目标帧大小(目的地:TPE)
·缓冲器保护的最大及最小帧大小(目的地:TPE)
·要插入帧中的最少PCR数量(目的地:TPE)
·命令TPE通过帧的旗标(目的地:TPE)
1.概览
虽然代码转换器100不一定要译码及重新编码视频数据流,但是代码转换功能可仿真全译码及重新编码。下列步骤概述根据本发明的传输率控制及统计再复用系统。下一部份会说明细节。
1.每个TPE 110,…,112输入其正在处理的所有视频频道的传输数据流。然后,将传输数据流解封包化,并且仿真视频译码器缓冲器。每个TPE均使用一个预览缓冲器来储存数个未来的帧,并且从这些帧获得统计信息。具体而言,针对要代码转换的所有输入帧,TPE计算平均量化比例值及输入帧中的位数量。在输入帧之后被代码转换之前的至少1.5NTSC帧周期(frame time)的排定时间,QLP 130利用这些参数来计算输入帧的位速率需求参数。具体而言,因为视频频道中可能使用3:2折叠式(pulldown)格式,所以已编码帧可能是一个NTSC帧周期(33.3ms)或1.5帧周期(50ms)。此处使用较长的时间,以确保能够在实际代码转换开始之前,决定出帧的代码转换速率配置。
2.QLP 130执行带宽配置处理程序,以便以周期时间间隔Tq将代码转换位速率配置给TPE。在每个Tq时间间隔,QLP 130计算所有视频频道的代码转换位速率。代码转换位速率储存在QLP 130的队列中,并且延迟(0.5秒+3NTSC帧周期)=0.6秒,调整为最近的Tq周期。一个NTSC帧周期是1/30秒。视频频道的代码转换位速率的延迟值变成传输位速率,并且供Mux 120使用。
3.虽然帧位于TPE的预览缓冲器中,但是会使用整个帧的平均代码转换位速率,以导出目标帧大小的初始值,这是代码转换之后的帧预测大小。初始目标帧大小值储存在QLP 130的输出帧大小队列中(例如,储存在存储器132中),并且当关联的TPE准备要代码转换帧时撷取该值。QLP可在存储器132中实施队列。
4.当代码转换器准备要代码转换新帧时,会从输出帧大小队列撷取先前决定的初始目标帧大小值。依据代码转换器缓冲器的当前状态(全满),会计算出用来界定初始目标帧大小的最大和最小帧大小,以防止译码器缓冲器下溢或溢满。
5.如果目标位数量(目标帧大小)大于(或接近、在预先决定容限内-请参阅第6.3节)输入帧中的位数,由于代码转换的用途是降低帧中的位数量,所以这个帧以通过模式绕过代码转换。当输入比特流已经过紧密压缩时,则会发生这个情况。当略过一个帧时,会重新封包化关联的输入基本数据流。如果目标位数量小于输入帧中的位数,则帧会经过位缩减过程(代码转换)。例如,可透过简化的代码转换器架构(图2)或重新量化(图3)来执行位缩减。
6.依据每帧的目标位数量及原量化比例选取要代码转换的每个宏区块的量化比例。必须符合输出量化比例高于(较粗略)输入量化比例的条件。
7.于代码转换期间,在TPE输出的封包中,TPE必须配置PCR字段的某些时隙。避免配置超过需要的时隙非常重要,因为这会浪费位。因此,外传封包在TPE上建立并储存于存储器中,例如,TPEFIFO缓冲器中。另外,QLP 130使用目标帧大小来评估传输帧所使用的时间,并由此评估插入PCR的时间。
另外,至少每隔0.1秒建立PCR时隙,以符合MPEG2系统标准的需求。
8.于每个n*Tq期间,Mux 120经由PCI总线115从TPE 110,…,112读取指派给每个频道的封包数量。「n」是Mux 120的设计参数,并且可能是任何正整数。这个封包指派相当于传输位速率配置,接着是代码转换位速率配置的延迟版本。也就是说,会将位速率转换成每Tq期间传送至Mux的封包数量。
9.Mux 120每隔27MHz时钟的m个刻度(tick)接收一个传输刻度。如果传输的封包含有PCR,则Mux会执行PCR校正,以提供与代码转换器主时钟适当同步的PCR值。如R.Nemiroff,V.Liu与S.Wu,于20009月22日提出的共同转让、共同申请美国专利申请案号09/667,734,标题为「Regeneration Of Program Clock Reference DataFor Mpeg Transport Streams」中说明,可实现这项功能。传输封包经由PCI总线115自Mux处理器送出。传输刻度表示输入一个传输封包的时序时间间隔。
图2显示用来根据本发明使用的简化型代码转换器的附图。
虽然简单的代码转换器可能仅仅是串联的MPEG译码器及编码器,但是代码转换器200提供减少计算的简化设计。代码转换器架构200执行DCT领域中的大部份作业,所以可减少反相-DCT及运动补偿作业的数量。另外,由于不会重新计算运动向量,所以会显著减少所需的计算。这个简化的架构提供低计算复杂度及高弹性的理想组合。
具体而言,将预先压缩视频比特流输入至可变长度型译码器(Variable Length Decoder(VLD)215.解量化天能(反向量化器)220使用第一量化级大小Q1来处理VLD 215的输出。
将运动向量(MV)数据从VLD 215提供给运动补偿功能235,以响应像素领域数据的前一帧缓冲器250及/或当前帧缓冲器245。DCT功能270将MC功能235的输出转换成频率领域,并将结果提供给加法器230。开关231将加法器230或Q1 -1功能220的输出传送至量化功能Q2275,其量化数据,通常以较粗略等级,以降低位速率。然后,在反向量化功能Q2 -1 282将输出反向量化,以在加法器286与开关231的输出相加。将在加法器286的输出提供给IDCT功能284,并将其输出提供给帧缓冲器245和250。
可变长度编码器(Variable Length Encoder;VLE)280编码量化功能275的输出,以降低的位速率提供输出比特流。以此方式,通过变更Q2来调整代码转换器的位输出速度。
图3显示用来根据本发明使用的简化型代码转换器300的附图,用以执行重新量化,而不需要进行运动补偿。
此处,帧只会经过重新量化处理,而不会运动补偿。一般而言,避免IDCT和DCT作业。这个策略能够降低复杂度,但是需要对输出数据进行一些人工处理。DCT系数被解量化,然后重新量化。
具体而言,使用VLD 410、反向量化器420、量化器430及VLE440。
2.端对端处理延迟
图4显示根据本发明的端对端统计再复用器处理延迟的附图。
代码转换器或TPE 110的实例包括用以缓冲输入传输数据流的MTS缓冲器405、用以离析传输数据流中不同服务的基本数据流的解复用器410以及用以储存ES数据流的ES缓冲器415。在VLD功能420将ES数据经过可变长度译码,并将结果提供给具有(例如)五个帧容量的预览延迟缓冲器425。于缓冲器435延迟一个帧之后,在代码转换功能440将帧经过代码转换,并将结果储存于代码转换缓冲器445中。重新复用器(remux)450组合来自于代码转换缓冲器445的数据与(若有)来自于传输数据流延迟缓冲器430的数据,并且将产生的传输数据流传送至译码器452,如宽频通信网路中的视频转接器(set-top box)。传输数据流延迟缓冲器430用来略过不经过代码转换的帧,如上文所述。略过的帧会被延迟,以维持与被代码转换的其它频道同步。
请注意,实际上,会将来自于代码转换器110的输出数据流与来自于其它代码转换器的传输数据流组合在一起,以构成要传送至典型译码器452的传输复用。译码器452包括用以缓冲传入数据的FIFO缓冲器455,以及用以译码数据的译码功能460,以提供(例如)要显示在电视上的输出。
例如,视频封包会经过0.5秒的缓冲器延迟,这可视不同实施而异。这是介于代码转换(编码)时间与译码时间之间的延迟。代码转换器(输出)视频FIFO 445及译码器FIFO 455中都会发生这个延迟。缓冲器延迟是固定值。如果延迟代码转换时间,则会缩短译码时间的实际代码转换时间,但是缓冲器延迟会使译码时间的代码转换「刻度」维持固定。
3.缓冲器模型
图5显示根据本发明的代码转换器VBV模型的附图。
译码器452的VBV模型用来在代码转换新帧之前,先限制最大及最小帧大小。代码转换器的比特流输出FIFO的级别可用来导出就在新帧DTS之前的译码缓冲器状态(请参阅图7)。具体而言,会以下列方式来给定未来译码缓冲器状态(vbv_fullness):
vbv_fullness=(从当前时间到新帧DTS时间所要传输的位数量)-(编码器FIFO中的位数量)。图5显示vbv_fullness计算,其中于500显示代码转换器FIFO的构成,于550显示译码器FIFO的构成。
另外,我们可计算已传输的位数量,其方式是将从t秒到QLP所发出的最后编码速率的所有编码速率相加(其中t是整个编码加译码缓冲器的总延迟,即,系统延迟)。QLP以Tq时间期间要输出的封包数量提供位速率。
另外,由于从QLP发出速率变更时间至新速率在代码转换器上实际生效时间的可变等待时间所造成的不确定性,导致必须加入边缘。新位速率在固定期间Tq变更。Tq与视频帧时间(译码器的DTS)不同步。
如图6所示,于虚线(例如,602,604,606,…)计算代码转换速率。这个实例假设系统延迟是三个帧,并且必须计算P1-1至P1-3的传输率。运用这个标记法,P1-1标示节目(比特流#1)帧#1、P1-2标示节目(比特流#1)帧#2,以此类推。由于帧DTS时间未校准于速率变更,所以造成代码转换速率与传输速率之间的差异。另外,由于Tq期间横跨两个帧,所以将第二(后项)帧指派给封包。
代码转换与传输之间最糟的速率错误情况是,于当前时间配置的封包数量与系统延迟时间之后(当前帧的DTS)的封包数量之间的差异。图6的下方显示两种极端的案例。在第一案例(650)中,就在Tq之前发生帧DTS。在第二案例670中,就在Tq +发生帧DTS。A到AA代表指派给每个Tq期间的封包数量。这两个案例都具有相同的编码封包指派Sum(B到X)。案例1的传输封包数量是Sum(C,D,E,…,W,X,Y);而案例2是Sum(B,C,D,…,V,W,X)。案例2没有编码速率与传输速率之间的差异,所以是最理想的案例(DTS对准Tq)。案例1是最槽的情况,其具有B个封包的差异。
因此,评估从当前时间至DTS时间要传输的位数量是:
∑transcoding_packets(n)±packet_count_error,
packet_count_error=(于DTS时间指派的封包数量)-(于当前时间指派的封包数量)。正封包计数错误及负封包计数错误会对帧大小计算造成不同的影响。
请注意,系统延迟应是Tq的倍数。
运用下列等式所给定的评估vbv fullness
vbv_fullness=(要传输的位数量)-(代码转换器FIFO中的位数量);
这个数值可用来限制代码转换的帧大小,所以它不会超过vbv_fullness。为了确保当译码当前帧(即,将要被代码转换的帧)时,译码器缓冲器不会下溢,一定要符合这个需求。
可从传输位速率序列、代码转换器缓冲器级别的快照及前一代码转换帧的大小导出最大帧大小及最小帧大小,如下所示:
假设B(t)=于时间t的缓冲器级别。
tc=当前帧进入代码转换器FIFO的时间。
t0=最后读取代码转换器FIFO级别的时间。
T(t)=于时间t进入FIFO的帧数量。
R(t)=于时间t的传输位速率。
dts=当前帧的DTS。
nextDts=下一帧的DTS。
D=译码器缓冲器大小。
Figure C0181941300221
= Σ t = t 0 dts R ( t ) - Σ t = t 0 tc R ( t ) - [ B ( t 0 ) + Σ t = t 0 tc T ( t ) - Σ t = t 0 tc R ( t ) ]
= Σ t = t 0 dts R ( t ) - B ( t 0 ) + Σ t = t 0 tc T ( t )
Figure C0181941300233
图7显示根据本发明量化级别处理器(quantization level processor;QLP)与代码转换器处理组件(transcoder processing element;TPE)之间通信时序的附图。
于时间705,TPE将当前帧「N」的统计信息传送至QLP。于时间710,TPE传送关于TPE输出缓冲器全满的信息,其中包括来自于前一代码转换帧的数据及N-k指数,其中k=1。前一编码帧通常是N-1,即,前一帧。但是,有时候代码转换帧可能会花费一个以上帧时间,使得时序有误差。在此情况下,「当前帧」与刚刚代码转换的帧之间的距离可能会超过一个以上帧,例如,k=2。于时间715,使用从关联统计信息所计算而得的需求参数,开始帧「N」的代码转换。针对每个Tq期间计算代码转换位速率,例如于实例时间720。
时间725标示开始下一帧的代码转换,其具有指数N-1。
于实例时间730,TPE将关于其输出缓冲器(现在含有来自于帧N的数据)全满的信息传送给QLP。为了响应,于时间735,QLP将目标帧大小及代码转换位速率的最大及最小界限提供给TPE。
时间740及745分别标示帧N和N+1的译码时戳时间。
于时间750,QLP将传输位速率传送至复用器,以告知复用器TPE的输出缓冲器中有多少数据封包要在传输数据流中输出。时间750经过延迟期间接在代码转换时间720之后。
4.需求参数
依据预期的帧复杂度,以决定每个帧的位速率需求参数。QLP130依据该需求参数及可用的带宽,将代码转换位速率配置给每个TPE。
请再次参考图4,可变长度译码器420会先将输入帧位经过局部译码,并且计算平均量化比例及帧中的位数量。于提供对应预览延迟的预览缓冲器425中储存每个视频频道的局部译码帧数量(例如,五个帧)系数及标题。处理器SDRAM存储器132的大小会限制预览缓冲器的长度。每个系数占用两个字节,结果是720x480x1.5x2=1Mbyte/帧。
于目标译码器452依据预定帧译码时间所决定特定时间TframeStart,计算预览缓冲器425中最旧帧的需求参数。译码时间由帧的DTS指定,这是27MHz时钟刻度单元。TframeStart被定义为:
(帧的译码时间-缓冲器延迟-1.5NTSC帧时间)。
需求参数从平均量化比例及输入帧的位计数计算而得,如下所示:
NeedParameter=MbResolutionAdjust*AvgQR*(CurrentQR+Alpha*PastQR)/(Beta*CurrentQR+PastQR)
,其中
AvgQR=(在最近15P或B帧及过去最近I帧期间(avgInQuant*inFrameSize)的总和)*900,000/(当前帧的DTS-过去第16个帧的DTS)。900,000是一个帧期间(1/30秒)中的27MHz单元数量。27MHz是MPEG时钟速率。
如果过去(例如)45帧内没有I帧,则会使用过去的16P或B帧。
针对I帧,
CurrentQR=avgInQuant*当前帧的inFrameSize。
PastQR=avgInQuant*最后I帧的inFrameSize。如果过去45帧内没有I帧,则会将PastQR设定等于CurrentQR值。
针对P或B帧,
CurrentQR=在当前帧及同一图片类型的预览缓冲器425中所有帧期间(avgInQuant*inFrameSize)的平均值。
PastQR=同一图片类型的过去四个帧期间(avgInQuant*inFrameSize)的平均值。如果过去同一图片类型的帧少于4个帧,则会将PastQR设定等于CurrentQR值。
Alpha及Beta是可调整的参数,以控制需求参数对量化比例与位计数乘积变化的反应。默认值是Alpha=256、Beta=256。
MbResolutionAdjust是可调整的参数,不同分辨率失真方面的感知差异。分辨率愈低,愈容易发现失真。因此针对较低的分辨率提高需求参数。全分辨率的MbResolutionAdjust默认值是1.0,四分之三分辨率的默认值是1.2以及半分辨率的默认值是1.5。或者,或此外,可依据宏区块分辨率来调整需求参数,这是帧中的宏区块数量。
5.输入位速率信息
在所有的Tq时隙中,TPE 110,…,112及Mux 120计数输入传输封包的数量,并将这个封包计数信息储存在QLP 130中的环形缓冲器中。TPE处理的每个视频节目/频道都有一个输入位速率的环形缓冲器,并且会将所有数据流的位速率信息环形缓冲器直接传送至Mux120,而不需要通常TPE(即,以通过模式)。每个环形缓冲都具有(例如)1024个输入项,并且每个输入项储存一个Tq时隙的位速率信息。1024个输入项仅仅是可针对不同实施改变的设计参数。环形缓冲器的大小应足以保存0.6秒延迟的数据。QLP 130可从封包计数计算出每个Tq时隙的瞬间输入位速率,如下所示:
BitRate(每秒位数量)=PktCount*188*8/TqPeriod.
Mux 120计算每个数据服务中的传输封包数量(空封包除外),这可包含一个或一个以上MPEG节目。QLP 130使用封包计数来计算出每个Tq时隙的瞬间数据服务输入位速率。Mux将封包计数储存在QLP上的环形缓冲器中,其方式与储存来自于TPE的封包计数信息一样。
Mux 120和TPEs将封包计数信息写入至QLP环形缓冲器中的处理程序与Tq刻度同步。与封包计数信息一起储存的Tq指数用来于初始化期间,使QLP与封包计数信息同步。
Tq指数由QLP维护。在初始化时,QLP将Tq指数设定为0,并且在每个Tq中断将Tq指数递增1。QLP将Tq指数及关联的时间定期广播至TPE 110,…,112及Mux 120。
于代码转换位速率配置处理程序期间,QLP 130撤销纯粹通过视频频道及非视频频道的带宽。由于这些通过频道中封包的传输位速率必须符合输入端对应封包的位速率,所以针对每个通过视频频道撤销的位速率等于下列时间的瞬间输入位速率:
PacketCountDelay=PassThroughDelay-TcrToTxrDelay
在当前时间之前,其中PassThroughDelay是通过视频频道中封包的延迟(从解复用器410至重新复用器450),在示范性实施中,其固定在(0.5秒+6NTSC帧期间)=0.7秒。非视频PID具有相同的延迟数量。
TcrToTxrDelay是从代码转换速率计算(当前Tq刻度)至传输位速率实施的延迟(图7)。这个延迟固定在(0.5秒+1.5NTSC帧期间+1.5NTSC帧期间)=0.6秒。
因此,PacketCountDelay是等于0.7秒-0.6秒=0.1秒的常数。同等于这个延迟的Tq刻度数量是:PacketCountDelayIndex=(PacketCountDelay/TqPeriod)。
QLP 130使输入封包计数信息与当前Tq中断同步,如下所示。
针对每个环形缓冲器,QLP维持10位读取指针。首先,QLP搜寻环形缓冲器中的输入项,其tqIndex符合(CurrentTqIndex-PacketCountDelayIndex)值。之后,每隔Tq刻度,QLP以壹为增量递增读取指针值。QLP也检查环形缓冲器中与封包计数一起储存的TqIndex的连续性。如果有中断,则QLP会设定KP 140警示旗标,并且通过搜寻符合(CurrentTqIndex-PacketCountDelayIndex)的TqIndex来初始化读取指针值。
针对所有的输入帧,QLP计算帧期间的平均输入位速率。在计算帧的需求参数时会同时执行这项计算。平均输入位速率用来计算目标帧大小。
首先,QLP计算帧所横跨的整数Tq期间数量。
FrameTqCount=(下一帧译码时间与当前帧译码时间之间的差值)/TqPeriod,调整为下一个较高的整数。
QLP从FrameTqCount计算帧的持续时间:
FrameDuration=FrameTqCount*TqPeriod.
然后,QLP计算平均输入位速率:
AvgInBitrate=InPacketCount*188*8*/FrameDuration,
其中InPacketCount是从当前读取指针开始,整个视频封包计数环形缓冲器的FrameTqCount输入项的PacketCount总和。
6.带宽配置
于所有的Tq时隙,QLP执行带宽配置程序。QLP先将带宽指派给不需要经过代码转换处理的纯粹通过视频节目,及数据及音讯节目。
然后,依据频道的需求参数值,将剩余的带宽配置给剩余的频道,并且受限于最大及最小位速率限制条件。
6.1.通过视频及数据频道
QLP 130将代码转换位速率指派给纯粹通过频道,如下所示:
if(purePassThrough)
TcodeBitrate=VideoInBitrate
其中VideoInBitrate是瞬间输入视频位速率,其计算方式如下:
VideoInBitrate=(于当前读取指针,储存在对应视频节目环形缓冲器输入项中的PacketCount值)*188*8/TqPeriod。
针对每个统计复用器群组,QLP计算可供动态配置使用的带宽数量,即,扣除纯粹通过频道的带宽及PES校准添加信号(overhead)位之后可用的带宽数量。统计再复用器群组代表于代码转换器100互相竞争带宽的一组频道。在代码转换器100可使用一个或一个以上统计再复用器群组。
AvailableVideoBitrate=TotalOutputBandwidth-(所有频道的NonVideoInBitrate总和)-(所有纯粹通过频道的TcodeBitrate总和)-(非纯粹通过频道数量*PesOverheadBitrate)。
在这个方程式中,TotalOutputBandwidth是可供输入数据流中视频、音讯及数据服务(包括系统信息)使用的总输出传输(有效负载(payload))带宽。这是使用者设定的统计复用器群组参数。
PesOverheadBitrate是PES校准的平均添加信号位速率,这是如下的常数:
PesOverheadBitrate=1/2*184*8*30=22.08Kbps。
计算瞬间非视频位速率(NonVideoInBitrate)的方式类似于VideoInBitrate,如下所示:
NonVideoInBitrate=(于当前读取指针,储存在对应非视频PID环形缓冲器输入项中的PacketCount值)*188*8/TqPeriod。
6.2.代码转换位速率配置
针对每个统计复用器群组,QLP依据下列限制条件,在非通过视频频道之间配置AvailableVideoBitrate:
1.代码转换位速率的总和=GroupBandwidth。由于可供动态配置使用的带宽是变量,并且受到传输数据流中通过组件(例如,非视频数据)所占用的带宽影响,所以当有一个以上统计复用器被建构来输出传输复用,则群组会陈述为总可用带宽的百分比。
2.任何单一TPE上所有非纯綷通过视频频道的平均代码转换位速率总和必须小于TPE上可变长度型编码器(380,440)最大总处理能力的上限。
3.针对纯綷通过频道,输入位速率应等于输入位速率。可将频道当作纯綷通过频道处理,例如,维持品质。
4.针对任何视频频道,输出目标帧大小不可大于输入帧大小。这解释成平均代码转换位速率不可超过平均输入位速率的限制条件。
5.目标帧大小不可大于最大值,也不可小于最小值,这是为了保护视频缓冲器的规定。
以下概述代码转换位速率配置的程序。
6.2.1.计算最大帧大小的近似值
给定最大目标帧大小,以防止译码器缓冲器下溢的方式如下:
maxFrameSize=(从代码转换帧第一个位进入代码转换器FIFO 445的时间至帧译码时间期间要传输至译码器452的位数量)-(代码转换帧第一个位进入FIFO时,代码转换器FIFO的级别)。
然而,在计算代码转换位速率时,不知道代码转换帧第一个位进入FIFO时的代码转换器FIFO的级别。因此,计算最大代码转换帧大小近似值的方式如下:
maxFrameSizeEstimate=delayBitsMax-FifoLevel-offsetBitsMax。
delayBitsMax值是最后一次读取FIFO级别至帧译码时间要传输至译码器452的位数量,并且通过下列方式计算:
delayBitsMax=TqPeriod*从FrameMarker开始的Ndelay期限,传输位速率队列中传输位速率值的总和,其中:
Ndelay=从读取FifoLevel的时间到译码帧的时间所计数的Tq时隙数量。
FifoLevel值是最近代码转换器的输出FIFO级别。
offsetBitsMax值是最后一次读取FIFO级别时间至目标代码转换帧第一位进入FIFO时间,进入代码转换器FIFO的近似位数量。给定这个近似值的方式为:等待代码转换的帧的最初(无限)目标帧大小。这等于:
offsetBitsMax=最近输出帧的大小+目前正在代码转换的目标帧大小+目前正在等待代码转换的帧之前的帧的目标帧大小总和。
在最大帧大小的近似值中,假设之后代码转换的帧所产生的位数量等合帧目标,并且QLP的输出队列132中的起始帧目标值未到达最大帧大小,也未到达最小帧大小。
6.2.2.计算最小帧大小的估计值
给定最小目标帧大小,以防止译码器452溢位的方式如下:
MinFrameSize=(从代码转换帧第一个位进入代码转换器FIFO的时间至下一帧译码时间期间要传输至译码器的位数量)-(译码器缓冲器的大小)-(代码转换帧第一个位进入FIFO时,代码转换器FIFO的级别)。
MinFrameSize与MaxFrameSize之间的关系如下所示:
MinFrameSize=MaxFrameSize+(从当前帧译码时间至下一帧译码时间期间要传输至译码器的位数量)-(译码器缓冲器的大小)。
因此,
MinFrameSizeEstimate=MaxFrameSizeEstimate+DeltaBitsMin-DecoderBufferSize
其中DeltaBitsMin=从当前帧译码时间至下一帧译码时间期间要传输至译码器的位数量,其计算方式是计算传输位速率队列中对应项的总和。
在示范性实施中,DecoderBufferSize是MPEG2主描述主级别(MPEG2Main Profile,Main Level)缓冲器大小,为1.835Mbits。
6.2.3.计算保护缓冲器的最大代码转换位速率
必须设定最大代码转换位速率,以避免译码器缓冲器溢位。帧的目标帧大小被计算为按照平均代码转换位速率与平均输入位速率的比例所比例换算的输入帧大小。因此,从最大帧大小来计算最大代码转换位速率的方式如下,假设代码转换位速率维持固定,直到帧时间结束:
MaxTcodeBitrate=((MaxFrameSize/OrigFrameSize*AvgInBitrate*FrameTqCount-(从帧开始至当前Tq中断的代码转换位速率的总和)*FrameTqIndex)/(FrameTqCount-FrameTqIndex),
其中OrigFrameSize是输入帧中的位数量,FrameTqCount是帧时间中的Tq时隙数量,而FrameTqIndex是从帧开始(TframeStart)的Tq时隙数量。
6.2.4.计算保护缓冲器的最小代码转换位速率
必须设定最小码转换位速率,以避免译码器缓冲器下溢。针对每个视频服务,计算最小代码转换位速率的方式类似于计算最大代码转换位速率的方式:
MinTcodeBitrate=((MinFrameSize/OrigFrameSize*AvgInBitrate*FrameTqCount-(从帧开始至当前Tq中断的代码转换位速率的总和)*FrameTqIndex)/(FrameTqCount-FrameTqIndex)。
6.2.5.计算每个TPE可处理的最大累积位速率
在整个窗口(例如,3个帧期间),任何单一TPE上所有视频服务之间的平均输出位速率会受到TPE中VLE处理能力的限制,例如,在3个帧窗口期间,限制总处理能力不得超过12Mbits/秒扩展(spread)(与处理器有关的值)的平均值。在任何Tq期间,计算TPE支持的最大位速率的方式如下:
MaxTpeBitrate=(NTq*VleThroughput)-(在过去NTq-1Tq中断期间,在TPE上的所有视频频道的代码转换位速率的总和),
其中NTq=在平均窗口(例如3NTSC帧时间(100ms))中的Tq时隙数量;VleThroughput是就平均位速率(例如,12Mbits/秒)而言,VLE的总处理能力。
6.2.6.在视频频道之间分配可用的位速率
下列程序适用于每个统计再复用器群组。
1.在没有最小及最大位速率限制条件情况下,QLP决定理想的带宽配置。
NominalBitrate=AvailableVideoBitrate/统计复用器群组中的视频频道数量
TotalNeed=所有视频频道的NeedParameter总和
if(TotalNeed>0)
    for(所有视频频道)
    {
        NeedBitrate[channel]=AvailableVideoBitrate*
    NeedParameter[channel]/TotalNeed
    }
}else{
    for(所有视频频道)
        NeedBitrate[channel]=NominalBitrate
}
2.将频道的MinTcodeBitrate指派给每个视频频道。如果MinTcodeBitrate的总和超过AvailabeVideoBitrate,则会与MinTcodeBitrate成正例来分配带宽。
    TotalMinBitrate=整个统计复用器的MinTcodeBitrate总和
    if(TotalMinBitrate>AvailableVideoBitrate)
    {
        for(所有视频频道)
        {
    TcodeTcodeBitrate[channel]=MinTcodeTcodeBitrate[channel]
*AvailableVideoBitrate/TotalMinBitrate
    }
    AvailableVideoBitrate=0
    处理代码转换位速率配置。
}else{
    for(所有视频频道){
        TcodeBitrate[channel]=MinTcodeBitrate[channel]
        NeedBitrate[channel]=Max(0,NeedBitrate[channel]
        -MinTcodeBitrate[channel])
    }
    AvailableVideoBitrate=AvailableVideoBitrate-
TotalMinBitrate
}
3.然后,QLP尝试满足使用者最小位速率需求。在应用使用者最小位速率之后,QLP通过MaxTcodeBitrate来限制使用者最小
    位速率。
        for(所有视频频道)
        {
             if(UserMinBitrate[channel]>MaxTcodeBitrate[c])
             minBitrate[channel]=MaxTcodeBitrate[channel]
             else
             minBitrate[channel]=UserMinBitrate[channel]
    }
    ExtraMinBitrate=UserMinBitrate大于MinTcodeBitrate的所有频道
的(minBitrate-MinTcodeBitrate)总和。
        if(ExtraMinBitrate>AvailableVideoBitrate)
        {
             for(所有视频频道)
             {
             if(minBitrate[channel]>MinTcodeBitrate[channel])
             {
    extraBitrate=(minBitrate[channel]-MinTcodeBitrate[channel])*
AvailableVideoBitrate/ExtraMinBitrate
              TcodeBitrate[channel]=TcodeBitrate[channel]+
         extraBitrate
              needBitrate[channel]=Max(0,needBitrate[channel]-
         extraBitrate)
         }
         }
         AvailableVideoBitrate=0
    }else{
         for(所有视频频道)
         {
              if(minBitrate[channel]>MinTcodeBitrate[channel])
              {
                extraBitrate=minBitrate[channel]-
            MinTcodeBitrate[channel]
                TcodeBitrate[channel]=TcodeBitrate[channel]+
            extraBitrate
        needBitrate[channel]=Max(0,needBitrate[channel]-
    extraBitrate)
        AvailableVideoBitrate=AvailableVideoBitrate-
    extraBitrate
        }
    }
}
4.QLP依据使用者最大位速率、保护译码器缓冲器的最大和最小代码转换位率以及每个TTPE可支持的最大处理位速率,以计算每个频道的最大位速率。
    for(所有TPE)
    {
    tpeAvailableBitrate=MaxTpeBitrate[tpeIndex]-整个TPE的
TcodeBitrate总和
    tpeNeedBitrate=整个TPE的NeedBitrate总和
    for(TPE处理的所有频道)
    MaxBitrate[channel]=Min MaxTcodeBitrate
[channel],(tpeAvailableBitrate*NeedBitrate[channel]/
tpeNeedBitrate)+TcodeBitrate[channel],Max
(UserMaxBitrate[channel],MinTcodeBitrate[channel]))
}
5.QLP按照剩余NeedBitrate值的比例来指派剩余的带宽
    TotalNeedBitrate=所有视频频道的needBitrate总和
for(所有视频频道){
    TcodeBitrate[channel]=TcodeBitrate[channel]
+(AvailableVideoBitrate*NeedBitrate[channel]/
TotalNeedBitrate)
}
AvailableVideoBitrate=0
6.QLP针对位速率配置套用最大位速率限制条件
for(所有视频频道)
{
    if(TcodeBitrate[channel]>MaxBitrate[channel])
        {
        TcodeBitrate[channel]=MaxBitrate[channel]
        AvailableVideoBitrate=AvailableVideoBitrate+
    TcodeBitrate[channel]-MaxBitrate[channel]
        NeedBitrate[channel]=0
    }
}
7.QLP配置从超过最大位速率的频道所收集来的额外带宽
    TotalNeedBitrate=所有频道的NeedBitrate总和
    if(AvailableVideoBitrate>0)
    {
        for(所有视频频道)
        {
    extraBitrate=AvailableVideoBitrate*NeedBitrate[channel]/
TotalNeedBitrate
    if(extraBitrate+TcodeBitrate[channel]>MaxBitrate[channel])
    extraBitrate=MaxBitrate[channel]-TcodeBitrate[channel]
    TcodeBitrate[channel]=TcodeBitrate[channel]+extraBitrate
    AvailableVideoBitrate=AvailableVideoBitrate-extraBitrate
    }
}
8.QLP按照当前配置的位速率与最大位速率之间差值的比例,配置剩余的带宽。
    if(AvailableVideoBitrate>0)
    {
        TotalHeadroom=所有频道的(MaxBitrate[channel]-
    TcodeBitrate[channel])总和
        for(所有频道)
        {
    TcodeBitrate[channel]=TcodeBitrate[channel]+
AvailableVideoBitrate*(MaxBitrate[channel]-
TcodeBitrate[channel])/TotalHeadroom
        }
    }
QLP维护每个视频频道的代码转换位速率队列在每个Tq中断中,计算而得的代码转换位速率值储存在队列中,并且于0.5秒后撷取,以当作传输位速率值使用。
6.2.7.起始目标帧大小计算
于帧的最后Tq时隙,QLP计算目标帧大小起始值的方式如下。
InitialTargetFrameSize=OrigFrameSize*AvgInBitrate/AvgTcodeBitrate,
其中AvgTcodeBitrate是帧的平均代码转换位速率,定义为帧所占用的所有Tq时隙期间的TcodeBitrate总和。
此时,TPE可能尚末准备好要代码转换新的帧,因此QLP维护每个视频频道的目标帧大小队列。InitialTargetFrameSize值储存在对应频道的队列中,并且当TPE准备要代码转换帧时撷取该值。
6.3.通过决策
在帧的第一个Tq中断,QLP决定是否通过帧。通过决策依据在新帧开始时,每个频道的帧第一Tq时隙时计算的代码转换位速率,如下所示。
PassThroughBitrate=PassThroughMargin*OrigFrameSize/FrameTqCount;
其中PassThroughMargin是小于但接近1.0的参数,例如0.95;OrigFrameSize是输入帧中的位数量;而FrameTqCount是帧中的Tq时隙数量。使用PassThroughMargin可允许帧大小稍微高于目标帧大小的输入帧通过,藉此维持帧品质,并且也节省代码转换器处理周期。
if(TcodeBitrate>PassThroughBitrate)
{
通过整个帧。
}else{
代码转换帧。
}
6.4.目标帧大小计算
一旦QLP接收到TPE发出TPE准备好代码转换新帧的信号的讯息,QLP随即依据最新缓冲器级别信息来计算最大帧大小值及最小帧大小值。然后,QLP从目标帧大小队列132提取目标帧大小,并且使用最大和最小帧大小限制条件来计算目标帧大小的最后值。
6.4.1.计算最大帧大小
QLP计算最大帧大小,以防止译码器缓冲器下溢。计算方式类似于在Tq中断期间计算最大帧大小近似值的方式(6.2.1):
MaxFrameSize=DelayBits-FifoLevel-LastOutputFrameSize
DelayBits值是从读取FIFO级别时间至帧译码时间期间要传输至译码器的位数量,其计算方式是计算传输位速率队列中目前对应传输位速率值的总和。
FifoLevel值是代码转换器锁定的代码转换器FIFO级别。即,代码转换器会读取FifoLevel并传送至QLP。
6.4.2.计算最小帧大小
QLP计算最小帧大小,以防止译码器缓冲器下溢。计算方式类似于在Tq中断期间计算最小帧大小近似值的方式(6.2.2)。最小帧大小与最大帧大小之间的关系如下:
MinFrameSize=MaxFrameSize+(从当前帧译码时间至下一帧译码时间期间要传输至译码器的位数量)-(译码器缓冲器的大小)。
如上文所述,就MPEG2主描述主级别(MPEG2Main Profile MainLevel)而言,译码器的缓冲器大小为1.835Mbits。
6.4.3.计算前一帧的进位(carryover)
代码转换器可能无法产生完全等于目标帧大小的位数量。出自代码转换前一帧的过剩或不足位会被并入当前帧的目标帧大小。计算这个误差(过剩或不足)的方式如下:
FrameCarryOver=LastOutputFrameSize-(前一帧的TargetFrameSize)。
6.4.4.计算目标帧大小
QLP从对应视频频道的目标帧大小队列提取InitialTargetFrameSize值,并且通过最大值和最小值来限制目标帧大小:
TargetFrameSize=Min(MaxFrameSize,(Max MinFrameSize,InitialTargetFrameSize+FrameCarryOver)).
然后,QLP将MinFrameSize值、MaxFrameSize值和TargetFrameSize值传送至TPE。这些值用来引导代码转换处理程序的速率控制。
6.5.量化控制
在帧内,下列算法用来计算要代码转换的所有宏区块的量化比例值。计算新量化比例QNew的方式是,通过目标位缩减比率RNew/ROld,按比例换算输入宏区块QOld的量化比例。通常,每个宏区块都具有一个量化比例。然而,如切片(slice)或其它编组之类的宏区块群组可与通用量化比例关联。在此情况下,会针对群组决定新的量化比例。
初始化:
ROld=帧中的原始位数量。
RNew=TargetFrameSize=代码转换/重新量化帧所产生的目标位数量。
针对所有切片(slice),请执行下列步骤:
{
QNew=QOld*ROld/RNew
/*重新量化切片(slice)后更新ROld和RNew:*/
ROld=ROld-切片(slice)中的原始位数量。
RNew=RNew-代码转换(例如,包括重新量化)切片(slice)所产生的新位数量。
}
针对QNew,可使用调整成下一个较高的整数,或调整成最接近的整数。前面的公式应导致将帧代码转换成目标帧大小。代码转换器的帧大小可超过目标,但不应超过最大帧大小。
然而,如果帧开始的量化比例较低,藉此产生大量的位,则可能会发生帧中很早就到达最大帧大小,在此情况下,将量化比例设定为最大级别(粗量化),并且其余帧的品质必然会非常不佳。为了避免此情况,配置每宏区块的最小位数量mb_budget。当代码转换帧时,如果使用的位数量运行计数增加太大(即,使用的位数量到达特定级别,其被调整为帧重新量化的进展),则会设定短时间使用的应急量化器,直到为剩余的宏区块留下足够的位可接受mb_budget位数量。也就是说,panic_level尝试MB接受mb_budget或较小位数量的量化比级别。以此方式在整个帧期间扩展应急量化器,使得只有帧的一部份可进入应急模式。为了实现此目的,于每个帧开始时,初始化下列变量:
mb _ budget = T arg etFrameSize number _ mbs · ξ
panic_level=MaxFrameSize-mb_budget*number_mbs
ξ使用目标帧大小来决定配置给每个宏区块的最小位数量,作为每宏区块平均位量的分数。范围是0<ξ<1。1/4-1/2的ξ可能适用于大部份的案例。如果ξ太大,则可能会太早触发应急状况;如果ξ是零,则会太晚触发应急状况,使得其余帧陷于应急模式中。
编码每个宏区块之后,
panic_level=panic_level-bits_used_mb+mb_budget
if(panic_level<0)
QNew=MAX_QL;
其中MAX_QL=112(例如,系统可应用的最大QL)。
如果帧大小小于最小帧大小,则会在比特流结尾附加零,使得帧大小等于或大于最小帧大小。
6.6.PCR时隙
MPEG标准要求以100ms最大时间间隔传送PCR(Program ClockReference;节目时钟参考)。在传输时间之前不知道实际的PCR值,所以代码转换器建立PCR的预留位置(placeholder)时隙。
QLP从目标帧大小估计传输帧的时间,因此会在帧中插入必要的最小PCR数量,以满足最大PCR时间间隔需求。请注意,在满足这个需求过程中,虽然未编码的图片具有固定持续时间(1/30秒),但是每个帧的已编码比特流可具有可变持续时间。例如,如果帧具有100,000位并且以1Mbps传输,则持续时间为0.1秒。如果帧以2Mbps传输,则持续时间为0.05秒。评估传输帧所需的总时间(或者,确切而言,从代码转换帧第一个位离开代码转换器输输出缓冲器(FIFO)445的时间至帧最后个位离开FIFO的时间所经过的时间)的方式如下:
TxFrameDuration=TargetFrameSize/(传输位速率队列中的最小值)。
于帧期间要插入的最小PCR数量为:
MinPcrCount=TxFrameDuration/MaxPcrSeparation,调整为最接近的整数,
其中MaxPcrSeparation是按照MPEG(100ms)要求的PCR之间的最大分隔。MaxPcrSeparation=80ms值用来提供20ms边缘。
因此,可得知,本发明揭示一种用来处理包含视频数据的数个频道的高效率统计再复用器。在本发明的一项观点中,当从该数据采集统计信息时,会延迟视频数据的代码转换。数据的位传输率需求参数依据该统计信息来决定,并且视频数据的代码转换依据延迟之后的各自位传输率需求参数。
在本发明的另一项观点中,于连续时间间隔的多个时段期间会在统计再复用器更新视频帧的代码转换位传输率,以允许更密切监控位传输率。另外,于每段时间间隔会更新代码转换位传输率的最小及最大界限。因此,在第一时间间隔会代码转换帧的一部份,然后更新代码转换位传输率,接着在第二时间间隔会代码转换帧的第二部份,以此类推。
在本发明还有一项观点中,会按比例换算帧中宏区块的预先代码转换量化度量(quantization scale),以依据帧中的预先代码转换数据量与该帧的目标后置代码转换数据量的比例,提供对应的新代码转换量化度量。另外,随着代码转换的进展,会针对帧的不同部份来调整量化比例,以确保将最低代码转换带宽量配置给每个宏区块。
虽然已配合各种较佳具体实施例来说明本发明,但是应明白可对本发明进行各种修及调整,而不会脱离本发明权利要求所提出的本发明的范畴。

Claims (38)

1.一种用以处理一接收编码数据的多个频道的统计再复用器中数据的方法,该方法包括下列步骤:
自这些编码数据重新获取视频帧;
当自这些视频帧获取统计信息时,将这些视频帧储存于预览缓冲器中,用以延迟这些视频帧的代码转换;
通过使用复杂度的一个或多个临时平均值和非线性函数,依据自这些视频帧的获取统计信息,决定这些视频帧的各自位速率需求参数;以及
在延迟这些视频帧之后,依据各自位速率需求参数,代码转换各自的这些视频帧。
2.如权利要求1所述的方法,该方法进一步包括下列步骤:
于一储存装置中储存各自的位速率需求参数;以及
自该储存装置重新获取各自视频帧的位速率需求参数,以在代码转换这些视频帧时使用。
3.如权利要求1所述的方法,其中:
用来决定各自位速率需求参数的各自视频帧的统计信息包括各自视频帧的平均量化比例值。
4.如权利要求1所述的方法,其中:
用来决定各自位速率需求参数的各自视频帧的统计信息包括各自视频帧中的位数量。
5.如权利要求1所述的方法,其中:
用来决定各自位速率需求参数的各自视频帧的统计信息包括与各自视频帧关联的平均位速率。
6.如权利要求1所述的方法,其中:
用来决定各自位速率需求参数的各自视频帧的统计信息包括各自视频帧中的宏区块数量。
7.如权利要求1所述的方法,其中:
用来决定各自位速率需求参数的各自视频帧的统计信息包括各自视频帧的宏区块分辨率。
8.一种接收编码数据的多个频道的统计再复用器,该统计再复用器包括:
装置,用以自这些编码数据重新获取视频帧;
装置,用以当自这些视频帧获取统计信息时,存储这些视频帧用以延迟这些视频帧的代码转换;
装置,用以通过使用复杂度的一个或多个临时平均值和非线性函数,依据自这些视频帧的获取统计信息,决定这些视频帧的各自位速率需求参数;以及
装置,用以在延迟这些视频帧之后,依据各自位速率需求参数,代码转换各自的这些视频帧。
9.一种用以处理一接收包含编码视频帧的多个频道的统计再复用器中数据的方法,该方法包括下列步骤:
在代码转换一特定视频帧的过程中,通过使用复杂度的一个或多个临时平均值和非线性函数,以连续时间间隔的多个时段,更新该特定视频帧的代码转换位速率;
通过于每个连续时间间隔也会更新的最小及最大级别的至少一级别来限制该更新的代码转换位速率,以提供对应的限制性及更新代码转换位速率;
针对于连续时间间隔期间代码转换该特定视频帧的对应部份,配置该限制性及更新代码转换位速率;
计算该特定视频帧的目标帧大小,用以指示代码转换该特定视频帧所产生的预期的数据量;其中:
通过连续时间间隔中更新的最小及最大预测值的至少一个来限制该目标帧大小;
根据该目标帧大小决定连续时间间隔中该特定视频帧的代码转换位速率。
10.如权利要求9所述的方法,其中:
该连续时间间隔期间为周期性的。
11.如权利要求9所述的方法,其中:
通过于每个连续时间间隔更新的最小及最大级别来限制该更新的代码转换位速率,以提供对应的限制性及更新代码转换位速率。
12.如权利要求9所述的方法,其中与这些视频帧的关联目标帧大小大于这些视频帧略过代码转换的预先代码转换位数量。
13.如权利要求9所述的方法,该方法进一步包括下列步骤:
为多个频道的通过数据配置可变传输带宽量;以及
依据该配置步骤,调整一传输带宽量,以供代码转换多个频道的视频帧使用。
14.如权利要求9所述的方法,其中:
该统计再复用器输出一包含多个统计再复用频道群组的传输数据流;以及
一总可用传输带宽的各自部份用来设定这些统计再复用器群组的各自统计再复用器群组。
15.如权利要求9所述的方法,该方法进一步包括下列步骤:
依据一与关联代码转换引擎相关的延迟,于这些连续时间间隔延迟该更新及限制性代码转换位速率;以及
在延迟该更新及限制性代码转换位速率之后,依据该更新及限制性代码转换位速率配置传输位速率,以供在代码转换特定视频帧之后传输该特定视频帧时使用。
16.如权利要求15所述的方法,该方法进一步包括下列步骤:
在代码转换该特定视频帧之后,将该特定视频帧的封包数量提供给一复用器,用以依据该配置的传输位速率,与该频道的至少一其它频道的封包一起复用传输。
17.一种用以处理一包括编码视频帧的多个频道的统计再复用器中数据的方法,该方法包括下列步骤:
在代码转换一特定视频帧的过程中,通过使用复杂度的一个或多个临时平均值和非线性函数,以连续时间间隔的多个时段,至少更新该特定视频帧的代码转换位速率;
通过于每个连续时间间隔也会更新的最小及最大级别的至少一级别来限制该更新的代码转换位速率,以提供对应的限制性及更新代码转换位速率;
针对于连续时间间隔期间代码转换该特定视频帧的对应部分,配置该限制性及更新代码转换位速率;以及
计算每个视频帧的目标帧大小,用以指示代码转换该视频帧所产生的预期的数据量;
其中与这些视频帧的关联目标帧大小在与这些视频帧略过代码转换的预先代码转换位数量的预先决定差值范围内。
18.如权利要求17所述的方法,其中在连续时间间隔中该特定视频帧的代码转换位速率依据该目标帧大小来决定。
19.如权利要求18所述的方法,其中:
该目标帧大小受到于连续时间间隔更新的最小预测值及最大预测值的至少一值的限制。
20.如权利要求19所述的方法,其中:
这些最小值及最大值的至少一值依据关联代码转换引擎缓冲器的当前全满所决定。
21.如权利要求19所述的方法,其中:
决定这些最小值及最大值的至少一值,以防止关联的译码器缓冲器下溢或溢位。
22.如权利要求18所述的方法,该方法进一步包括下列步骤:
依据该目标帧大小,评估传输包含该特定视频帧的代码转换数据的至少一封包所需的时间。
23.一种用以处理一包括编码视频帧的多个频道的统计再复用器中数据的方法,该方法包括下列步骤:
在代码转换一特定视频帧的过程中,通过使用复杂度的一个或多个临时平均值和非线性函数,以连续时间间隔的多个时段,至少更新该特定视频帧的代码转换位速率;
通过于每个连续时间间隔也会更新的最小及最大级别的至少一级别来限制该更新的代码转换位速率,以提供对应的限制性及更新代码转换位速率;
针对于连续时间间隔期间代码转换该特定视频帧的对应部分,配置该限制性及更新代码转换位速率;以及
计算每个特定视频帧的目标帧大小,用以指示代码转换该特定视频帧所产生的预期的数据量;以及
依据该目标帧大小,评估将时钟参考数据播入包含该特定视频帧的代码转换数据的至少一封包所需的时间;
其中根据该目标帧大小决定连续时间间隔中该特定视频帧的代码转换位速率。
24.如权利要求23所述的方法,其中:
该目标帧大小受到于连续时间间隔更新的最小值及最大值的至少一值的限制。
25.一种接收包括编码视频帧的多个频道的统计再复用器,该统计再复用器包括:
装置,用以在代码转换一特定视频帧的过程中,通过使用复杂度的一个或多个临时平均值和非线性函数,以连续时间间隔的多个时段,更新该特定视频帧的代码转换位速率;
装置,用以通过于每个连续时间间隔也会更新的最小及最大级别的至少一级别来限制该更新的代码转换位速率,以提供对应的限制及更新代码转换位速率;
装置,用以针对于连续时间间隔期间代码转换该特定视频帧的对应部份,配置该限制性及更新代码转换位速率;
装置,用以计算该特定视频帧的目标帧大小,用以指示代码转换该特定视频帧所产生的预期的数据量;以及
装置,用以依据目标帧大小,评估将时钟参考数据插入包含该特定视频帧的代码转换数据的至少一封包所需的时间;
其中根据该目标帧大小决定连续时间间隔中该特定视频帧的代码转换位速率。
26.一种用以处理用来接收包括编码视频帧的多个频道的统计再复用器中的数据的方法,其中这些视频帧包含一特定视频帧,在该特定视频帧的关联部份中包括多个宏区块,当将该特定视频帧输入至该统计再复用器时,每个宏块均具有一关联的旧量化比例,该方法包括下列步骤:
计算代码转换该特定视频帧所产生的预期的目标数据量;以及
依据下列条件来决定新的量化比例,以在代码转换该特定视频帧中一第一部份中的对应宏区块时使用:(a)对应的旧量化比例,以及(b)该特定视频帧中预先代码转换数据量与(c)该目标数据量的比例;以及
通过使用复杂度的一个或多个临时平均值和非线性函数,依据统计信息,决定这些视频帧在代码转换中的各自位速率需求参数。
27.如权利要求26所述的方法,该方法进一步包括下列步骤:
将新量化比例调整为一的整数。
28.如权利要求26所述的方法,其中:
这些部份包含该特定视频帧的各自切片(slice)。
29如权利要求26所述的方法,其中:
若需要,将这些新量化比例调整为比对应的旧量化比例更粗略。
30.如权利要求26所述的方法,其中:
若需要,调整这些新量化比例,以确保对应宏区块接受代码转换这些宏区块的最小位数量。
31.如权利要求26所述的方法,该方法进一步包括下列步骤:
依据下列条件来决定新的量化比例,以在代码转换该特定视频帧中一第一部份中的宏区块时使用:(a)对应的旧量化比例,以及(b)该特定视频帧中预先代码转换数据量与(c)代码转换这些剩余部份所产生的预期的目标数据量的比例。
32.如权利要求31所述的方法,其中:
决定代码转换这些剩余部份所产生的预期目标数据量的方式为,将代码转换该特定视频帧所产生的预期目标数据量扣减代码转换该第一部份所产生的数据量。
33.如权利要求31所述的方法,其中:
决定这些剩余部份中的预先代码转换数据量的方式为,将该特定视频帧中的预先代码转换数据量扣减该第一部份中的预先代码转换数据量。
34.如权利要求26所述的方法,该方法进一步包括下列步骤:
维护一数据量运行计数,以供代码转换这些部份时使用;
其中,如果运行计算超过一最大级别,则会设定一应急量化比例,直到留下足够的位供剩余部份中的宏区块使用,以接受代码转换这些宏区块的最小位数量。
35.如权利要求34所述的方法,其中:
在代码转换每个部份之后,会将最大级别向下调整。
36.如权利要求26所述的方法,其中:
每个宏区块都具有自己关联的旧量化比例。
37.如权利要求26所述的方法,其中:
一组宏区块群组都具有自己关联的旧量化比例。
38.一种接收包括编码视频帧的多个频道的统计再复用器,其中这些视频帧包含一特定视频帧,在该特定视频帧的关联部份中包括多个宏区块,当将该特定视频帧输入至该统计再复用器时,每个宏区块均具有一关联的旧量化比例,该统计再复用器包括:
装置,用以计算代码转换该特定视频帧所产生的预期的目标数据量;以及
装置,用以依据下列条件来决定新的量化比例,以在代码转换该特定视频帧中一第一部份中的对应宏区块时使用:(a)对应的旧量化比例,以及(b)该特定视频帧中预先代码转换数据量与(c)该目标数据量的比例;以及
装置,通过使用复杂度的一个或多个临时平均值和非线性函数,依据自这些视频帧的统计信息,决定这些视频帧的各自位速率需求参数。
CNB018194133A 2000-09-25 2001-09-04 处理接收多个频道的统计再复用器中数据的方法及其装置 Expired - Lifetime CN100459705C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/669,517 US6847656B1 (en) 2000-09-25 2000-09-25 Statistical remultiplexing with bandwidth allocation among different transcoding channels
US09/669,517 2000-09-25

Publications (2)

Publication Number Publication Date
CN1504051A CN1504051A (zh) 2004-06-09
CN100459705C true CN100459705C (zh) 2009-02-04

Family

ID=24686625

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB018194133A Expired - Lifetime CN100459705C (zh) 2000-09-25 2001-09-04 处理接收多个频道的统计再复用器中数据的方法及其装置

Country Status (9)

Country Link
US (2) US6847656B1 (zh)
EP (1) EP1320997A2 (zh)
KR (1) KR20030061809A (zh)
CN (1) CN100459705C (zh)
AU (1) AU2001290599A1 (zh)
CA (1) CA2421794C (zh)
MX (1) MXPA03002527A (zh)
TW (1) TW529308B (zh)
WO (1) WO2002028108A2 (zh)

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19946267C2 (de) * 1999-09-27 2002-09-26 Harman Becker Automotive Sys Digitales Transcodiersystem
US7054362B1 (en) * 2001-05-29 2006-05-30 Cisco Technology, Inc. Methods and apparatus for updating a reduction ratio
US7675972B1 (en) 2001-07-30 2010-03-09 Vixs Systems, Inc. System and method for multiple channel video transcoding
US7403564B2 (en) * 2001-11-21 2008-07-22 Vixs Systems, Inc. System and method for multiple channel video transcoding
US7356079B2 (en) 2001-11-21 2008-04-08 Vixs Systems Inc. Method and system for rate control during video transcoding
US7173947B1 (en) * 2001-11-28 2007-02-06 Cisco Technology, Inc. Methods and apparatus to evaluate statistical remultiplexer performance
KR100430525B1 (ko) * 2001-12-17 2004-05-10 한국전자통신연구원 디지털 케이블 방송 시스템에서의 전송 스트림 처리장치와방법 및 그것을 위한 지연제어장치
US7292602B1 (en) * 2001-12-27 2007-11-06 Cisco Techonology, Inc. Efficient available bandwidth usage in transmission of compressed video data
US7418037B1 (en) * 2002-07-15 2008-08-26 Apple Inc. Method of performing rate control for a compression system
US8837605B2 (en) * 2006-09-26 2014-09-16 Onmobile Global Limited Method and apparatus for compressed video bitstream conversion with reduced-algorithmic-delay
US7529276B1 (en) 2002-09-03 2009-05-05 Cisco Technology, Inc. Combined jitter and multiplexing systems and methods
US7804897B1 (en) * 2002-12-16 2010-09-28 Apple Inc. Method for implementing an improved quantizer in a multimedia compression and encoding system
US7940843B1 (en) 2002-12-16 2011-05-10 Apple Inc. Method of implementing improved rate control for a multimedia compression and encoding system
US20040193289A1 (en) * 2002-12-31 2004-09-30 Shi Chen Decoding system and method
US7925770B1 (en) * 2003-01-29 2011-04-12 Realnetworks, Inc. Systems and methods for selecting buffering time for media data
US7352809B2 (en) * 2003-02-21 2008-04-01 Polycom, Inc. System and method for optimal transmission of a multitude of video pictures to one or more destinations
US20050005304A1 (en) * 2003-05-07 2005-01-06 Ajai Kaul Superframe planning technique for DVB-RCS networks
US7274740B2 (en) * 2003-06-25 2007-09-25 Sharp Laboratories Of America, Inc. Wireless video transmission system
WO2005011255A2 (en) * 2003-06-26 2005-02-03 Thomson Licensing S.A. Multipass video rate control to match sliding window channel constraints
US7453852B2 (en) * 2003-07-14 2008-11-18 Lucent Technologies Inc. Method and system for mobility across heterogeneous address spaces
US20050094965A1 (en) * 2003-09-05 2005-05-05 Chen Jing Y. Methods and apparatus to improve the rate control during splice transitions
US9325998B2 (en) * 2003-09-30 2016-04-26 Sharp Laboratories Of America, Inc. Wireless video transmission system
US8018850B2 (en) 2004-02-23 2011-09-13 Sharp Laboratories Of America, Inc. Wireless video transmission system
US7784076B2 (en) * 2004-10-30 2010-08-24 Sharp Laboratories Of America, Inc. Sender-side bandwidth estimation for video transmission with receiver packet buffer
US8356327B2 (en) * 2004-10-30 2013-01-15 Sharp Laboratories Of America, Inc. Wireless video transmission system
US7797723B2 (en) * 2004-10-30 2010-09-14 Sharp Laboratories Of America, Inc. Packet scheduling for video transmission with sender queue control
US9462333B2 (en) 2010-09-27 2016-10-04 Intel Corporation Method for processing multimedia streams
US20060133513A1 (en) * 2004-12-22 2006-06-22 Kounnas Michael K Method for processing multimedia streams
JP2006203682A (ja) * 2005-01-21 2006-08-03 Nec Corp 動画像圧縮符号化ビットストリームシンタックス変換装置及び動画像通信システム
CA2878766C (en) * 2005-03-14 2017-10-03 The Nielsen Company (Us), Llc Compressed domain encoding apparatus and methods for use with media signals
US7668914B2 (en) * 2005-03-28 2010-02-23 Alcatel Lucent Milestone synchronization in broadcast multimedia streams
US20070067480A1 (en) * 2005-09-19 2007-03-22 Sharp Laboratories Of America, Inc. Adaptive media playout by server media processing for robust streaming
US7707485B2 (en) * 2005-09-28 2010-04-27 Vixs Systems, Inc. System and method for dynamic transrating based on content
US9544602B2 (en) * 2005-12-30 2017-01-10 Sharp Laboratories Of America, Inc. Wireless video transmission system
CA2633778C (en) * 2006-01-05 2016-03-15 Anisse Taleb Media content management
US20070177519A1 (en) * 2006-01-30 2007-08-02 Thomsen Jan H Systems and methods for transcoding bit streams
US8068541B2 (en) * 2006-01-30 2011-11-29 Jan Harding Thomsen Systems and methods for transcoding bit streams
US7652994B2 (en) * 2006-03-31 2010-01-26 Sharp Laboratories Of America, Inc. Accelerated media coding for robust low-delay video streaming over time-varying and bandwidth limited channels
EP2013997A1 (en) * 2006-04-28 2009-01-14 National ICT Australia Limited Packet based communications
JP4624321B2 (ja) 2006-08-04 2011-02-02 株式会社メガチップス トランスコーダおよび符号化画像変換方法
US8861597B2 (en) * 2006-09-18 2014-10-14 Sharp Laboratories Of America, Inc. Distributed channel time allocation for video streaming over wireless networks
US7885189B2 (en) * 2006-09-20 2011-02-08 Rgb Networks, Inc. Methods and apparatus for rate estimation and predictive rate control
US20080101405A1 (en) * 2006-10-26 2008-05-01 General Instrument Corporation Method and Apparatus for Dynamic Bandwidth Allocation of Video Over a Digital Subscriber Line
US7652993B2 (en) * 2006-11-03 2010-01-26 Sharp Laboratories Of America, Inc. Multi-stream pro-active rate adaptation for robust video transmission
US7843824B2 (en) 2007-01-08 2010-11-30 General Instrument Corporation Method and apparatus for statistically multiplexing services
GB2454168A (en) * 2007-10-24 2009-05-06 Cambridge Silicon Radio Ltd Estimating the number of bits required to compress a plurality of samples using a given quantisation parameter by calculating logarithms of quantised samples
US8594191B2 (en) * 2008-01-03 2013-11-26 Broadcom Corporation Video processing system and transcoder for use with layered video coding and methods for use therewith
JP5098043B2 (ja) * 2008-02-26 2012-12-12 株式会社メガチップス トランスコーダ
JP5550032B2 (ja) * 2008-08-05 2014-07-16 株式会社メガチップス トランスコーダ
US8798150B2 (en) * 2008-12-05 2014-08-05 Motorola Mobility Llc Bi-directional video compression for real-time video streams during transport in a packet switched network
FR2945697B1 (fr) * 2009-05-18 2016-06-03 Actimagine Procede et dispositif de compression d'une sequence video
US20100333149A1 (en) * 2009-06-24 2010-12-30 Rgb Networks, Inc. Delivery of pre-statistically multiplexed streams in a vod system
US8422859B2 (en) * 2010-03-23 2013-04-16 Vixs Systems Inc. Audio-based chapter detection in multimedia stream
WO2012025139A1 (en) * 2010-08-23 2012-03-01 Telefonaktiebolaget L M Ericsson (Publ) Improved program clock reference insertion
US9118939B2 (en) 2010-12-20 2015-08-25 Arris Technology, Inc. SVC-to-AVC rewriter with open-loop statistical multiplexer
US8885050B2 (en) * 2011-02-11 2014-11-11 Dialogic (Us) Inc. Video quality monitoring
US9185424B2 (en) * 2011-07-05 2015-11-10 Qualcomm Incorporated Image data compression
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
CN104835167B (zh) * 2015-05-15 2017-05-24 张立华 一种基于空间影响域覆盖最大的航标自动选取方法
WO2017168206A1 (en) * 2016-03-29 2017-10-05 Huawei Technologies Canada Co., Ltd. Systems and methods for performing traffic engineering in a communications network
US10812550B1 (en) * 2016-08-03 2020-10-20 Amazon Technologies, Inc. Bitrate allocation for a multichannel media stream
US20220248041A1 (en) * 2021-02-01 2022-08-04 Facebook Technologies, Llc Pixel Block Encoder
CN114221870B (zh) * 2021-12-16 2023-01-20 北京达佳互联信息技术有限公司 用于服务器的带宽分配方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5805220A (en) * 1995-02-22 1998-09-08 U.S. Philips Corporation System for transmitting a plurality of video programs simultaneously through a transmission channel
WO2000041398A1 (en) * 1999-01-08 2000-07-13 Scientific-Atlanta, Inc. Method and apparatus for detecting and preventing bandwidth overflow in a statistical multiplexer

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5887115A (en) 1993-01-13 1999-03-23 Hitachi America, Ltd. Method and apparatus for implementing a video tape recorder for recording digital video signals having either a fixed or variable data transmission rate
US5477397A (en) 1993-02-23 1995-12-19 Matsushita Electric Corporation Of America Digital high definition television receiver with features that facilitate trick-play modes on a digital VCR
KR950014858B1 (ko) 1993-06-04 1995-12-16 대우전자주식회사 디지탈 영상 기록장치
US5566208A (en) * 1994-03-17 1996-10-15 Philips Electronics North America Corp. Encoder buffer having an effective size which varies automatically with the channel bit-rate
JPH0837662A (ja) 1994-07-22 1996-02-06 Hitachi Ltd 画像符号化復号化装置
US5617142A (en) 1994-11-08 1997-04-01 General Instrument Corporation Of Delaware Method and apparatus for changing the compression level of a compressed digital signal
US5619733A (en) 1994-11-10 1997-04-08 International Business Machines Corporation Method and apparatus for synchronizing streaming and non-streaming multimedia devices by controlling the play speed of the non-streaming device in response to a synchronization signal
US5623312A (en) 1994-12-22 1997-04-22 Lucent Technologies Inc. Compressed-domain bit rate reduction system
US5694170A (en) 1995-04-06 1997-12-02 International Business Machines Corporation Video compression using multiple computing agents
JP4223571B2 (ja) 1995-05-02 2009-02-12 ソニー株式会社 画像符号化方法及び装置
US5650860A (en) 1995-12-26 1997-07-22 C-Cube Microsystems, Inc. Adaptive quantization
US5686963A (en) 1995-12-26 1997-11-11 C-Cube Microsystems Method for performing rate control in a video encoder which provides a bit budget for each frame while employing virtual buffers and virtual buffer verifiers
WO1997039584A1 (en) 1996-04-12 1997-10-23 Imedia Corporation Video transcoder
US5933500A (en) 1996-05-31 1999-08-03 Thomson Consumer Electronics, Inc. Adaptive decoding system for processing encrypted and non-encrypted broadcast, cable or satellite video data
EP0851656A1 (en) 1996-12-23 1998-07-01 HE HOLDINGS, INC. dba HUGHES ELECTRONICS System and method for high resolution video compression by tiling
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
US6052384A (en) * 1997-03-21 2000-04-18 Scientific-Atlanta, Inc. Using a receiver model to multiplex variable-rate bit streams having timing constraints
US5949490A (en) 1997-07-08 1999-09-07 Tektronix, Inc. Distributing video buffer rate control over a parallel compression architecture
US6275507B1 (en) * 1997-09-26 2001-08-14 International Business Machines Corporation Transport demultiplexor for an MPEG-2 compliant data stream
JPH11196414A (ja) 1997-11-06 1999-07-21 Thomson Broadcast Syst コード化されたビデオデータを処理する装置及びその装置を使用したプログラムを配布するシステム
US6351474B1 (en) * 1998-01-14 2002-02-26 Skystream Networks Inc. Network distributed remultiplexer for video program bearing transport streams
US6327275B1 (en) * 1998-05-19 2001-12-04 General Instrument Corporation Remultiplexing variable rate bitstreams using a delay buffer and rate estimation
US6483543B1 (en) * 1998-07-27 2002-11-19 Cisco Technology, Inc. System and method for transcoding multiple channels of compressed video streams using a self-contained data unit
JP2000059793A (ja) * 1998-08-07 2000-02-25 Sony Corp 画像復号装置及び画像復号方法
US6167084A (en) 1998-08-27 2000-12-26 Motorola, Inc. Dynamic bit allocation for statistical multiplexing of compressed and uncompressed digital video signals
EP1118225A1 (en) 1998-10-02 2001-07-25 General Instrument Corporation Method and apparatus for providing rate control in a video encoder
AU762996B2 (en) 1999-02-09 2003-07-10 Motorola Australia Pty Ltd An image compression system and method of determining quantisation parameters therefor
US6643327B1 (en) * 2000-05-05 2003-11-04 General Instrument Corporation Statistical multiplexer and remultiplexer that accommodates changes in structure of group of pictures
US6724825B1 (en) * 2000-09-22 2004-04-20 General Instrument Corporation Regeneration of program clock reference data for MPEG transport streams
US7292602B1 (en) * 2001-12-27 2007-11-06 Cisco Techonology, Inc. Efficient available bandwidth usage in transmission of compressed video data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5805220A (en) * 1995-02-22 1998-09-08 U.S. Philips Corporation System for transmitting a plurality of video programs simultaneously through a transmission channel
WO2000041398A1 (en) * 1999-01-08 2000-07-13 Scientific-Atlanta, Inc. Method and apparatus for detecting and preventing bandwidth overflow in a statistical multiplexer

Also Published As

Publication number Publication date
WO2002028108A3 (en) 2002-10-31
EP1320997A2 (en) 2003-06-25
CA2421794C (en) 2013-06-25
TW529308B (en) 2003-04-21
WO2002028108A2 (en) 2002-04-04
CN1504051A (zh) 2004-06-09
AU2001290599A1 (en) 2002-04-08
US6847656B1 (en) 2005-01-25
CA2421794A1 (en) 2002-04-04
KR20030061809A (ko) 2003-07-22
US20050041689A1 (en) 2005-02-24
MXPA03002527A (es) 2003-10-06

Similar Documents

Publication Publication Date Title
CN100459705C (zh) 处理接收多个频道的统计再复用器中数据的方法及其装置
CA2422131C (en) Method and apparatus for determining a transmission bit rate in a statistical multiplexer
US6411602B2 (en) Method and apparatus for detecting and preventing bandwidth overflow in a statistical multiplexer
CA2361047C (en) Method and apparatus for assuring sufficient bandwidth of a statistical multiplexer
US6654421B2 (en) Apparatus, method and computer program product for transcoding a coded multiplexed sound and moving picture sequence
US7826530B2 (en) Use of out of order encoding to improve video quality
US20020094031A1 (en) Distributed control strategy for dynamically encoding multiple streams of video data in parallel for multiplexing onto a constant bit rate channel
KR20000069473A (ko) 비디오 데이터 다중화 장치, 비디오 데이터 다중화 제어 방법,부호화 스트림 다중화 장치 및 방법과 부호화 장치 및 방법
TW527836B (en) Processing mode selection for channels in a video multi-processor system
US6215824B1 (en) Transcoding method for digital video networking
EP1327359B1 (en) Processor allocation for channels in a video multi-processor system
US7173947B1 (en) Methods and apparatus to evaluate statistical remultiplexer performance
WO2000072601A2 (en) Method and system for transmitting media streams over a variable bandwidth network
EP1531628A2 (en) Scalable video coding
KR19990082486A (ko) 영상 데이터 부호화 장치와 방법 및 영상 데이터 전송 방법
JP2005072995A (ja) レート変換装置
JP2002152047A (ja) マルチプログラム圧縮符号化信号変換方法、装置および変換プログラムを記録した媒体
KR0180174B1 (ko) Mpeg2 pat의 역패킷화기
Drury et al. Picture quality and multiplex management in digital video broadcasting systems
KR0185831B1 (ko) Mpeg2 pmt의 역패킷화기
JPH11289532A (ja) 画像データ多重化装置および画像データ多重化制御方法
JPH1127665A (ja) 映像データ符号化装置及び方法並びに映像データ伝送方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CX01 Expiry of patent term

Granted publication date: 20090204

CX01 Expiry of patent term