CN102986211B - 视频编码中的速率控制 - Google Patents
视频编码中的速率控制 Download PDFInfo
- Publication number
- CN102986211B CN102986211B CN201180019076.3A CN201180019076A CN102986211B CN 102986211 B CN102986211 B CN 102986211B CN 201180019076 A CN201180019076 A CN 201180019076A CN 102986211 B CN102986211 B CN 102986211B
- Authority
- CN
- China
- Prior art keywords
- picture
- sequence
- video
- coding
- quantization step
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 claims abstract description 59
- 238000013139 quantization Methods 0.000 claims abstract description 36
- 238000007906 compression Methods 0.000 claims abstract description 16
- 230000006835 compression Effects 0.000 claims abstract description 15
- 238000004364 calculation method Methods 0.000 claims abstract description 7
- 230000008859 change Effects 0.000 description 21
- 230000006870 function Effects 0.000 description 13
- 238000006243 chemical reaction Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000005259 measurement Methods 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 230000015556 catabolic process Effects 0.000 description 3
- 238000006731 degradation reaction Methods 0.000 description 3
- 230000005055 memory storage Effects 0.000 description 3
- 230000000717 retained effect Effects 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- 239000013598 vector Substances 0.000 description 3
- 150000001875 compounds Chemical class 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 241000256844 Apis mellifera Species 0.000 description 1
- 101100099843 Arabidopsis thaliana TMN5 gene Proteins 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000010835 comparative analysis Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- NUHSROFQTUXZQQ-UHFFFAOYSA-N isopentenyl diphosphate Chemical compound CC(=C)CCO[P@](O)(=O)OP(O)(O)=O NUHSROFQTUXZQQ-UHFFFAOYSA-N 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000005022 packaging material Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/189—Methods 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/196—Methods 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/198—Methods 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 smoothing of a sequence of encoding parameters, e.g. by averaging, by choice of the maximum, minimum or median value
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/124—Quantisation
- H04N19/126—Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/142—Detection of scene cut or scene change
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/146—Data rate or code amount at the encoder output
- H04N19/152—Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/177—Methods 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/189—Methods 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/196—Methods 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
提供了一种在对视频序列的编码中的速率控制以产生压缩比特流的方法,所述方法包括:针对所述视频序列中的画面序列,计算序列基本量化步长大小(402);针对所述画面序列中的一画面,基于所述序列基本量化步长大小、所述画面的类型和所述画面在速率控制层级中的级别,计算画面基本量化步长大小(404);以及使用所述画面基本量化步长大小,对所述画面编码以产生所述压缩比特流的一部分(406)。
Description
技术领域
本发明涉及用于视频信号的编码/解码的设备、系统和方法。
背景技术
对数字视频产品的需求继续增加。数字视频的应用的一些示例包括视频通信、安全和监视、工业自动化和娱乐(例如,DV、HDTV、卫星TV、机顶盒、因特网视频流、数字相机、蜂窝电话、视频游戏机、高端显示器和个人视频记录器)。此外,作为手持设备中的计算能力更高、电池技术进步和高速无线连接的结果,视频应用变得更加具有移动性。
视频压缩是数字视频产品的重要的使能技术。压缩/解压缩(CODEC)算法使能数字视频的存储和发射。CODEC例如可以是诸如MPEG-2、MPEG-4、H.264/AVC等的工业标准以及当前在开发的标准,HEVC。在全部这些标准的核心是分块运动补偿(预测)加上预测误差的变换编码的复合视频编码技术。分块运动补偿被使用以通过从先前画面的预测去除连续画面帧或者场之间的时域冗余,而变换编码被使用以去除每个画面块内的空间冗余。
这种基于块的编码技术固有地有损耗,因为它们通过去除冗余信息和进行在经解码的视频序列中被最少感知的小的质量妥协两者来实现压缩。具体地,量化步长大小(Qs)调整在经压缩的编码块中保留多少空间细节。Qs越小,越多的细节被保留,并且质量越好,但是是在更高的比特率的成本下。随着Qs增加,越少的细节被保留并且比特率降低,但是是在变形增加以及质量下降的代价下。
速率控制是任何视频编码器的重要部分。速率控制尝试当通过管理对每一个画面编码使用的比特数量来解码时使经编码的视频的感知质量最大化。也就是说,速率控制鉴于输出缓冲器的当前充实度,动态地调整各个编码器参数,例如Qs,以在经压缩的比特流中实现目标比特率。
附图说明
下面参照附图描述用于实现本发明的原理的示例实施方式。
图1A到图1E示出根据一个或者更多个实施方式的示例;
图2示出根据一个或者更多个实施方式的数字系统的框图;
图3示出根据一个或者更多个实施方式的视频编码器的框图;
图4A和图4B示出根据一个或者更多个实施方式的用于速率控制的方法的流程图;以及
图5到图7示出根据一个或者更多个实施方式的示例性数字系统。
具体实施方式
如这里所用的,术语“画面”是指一帧或者一帧的一场。帧是在已知的时间间隔期间拍摄的完整图像。当视频序列处于时逐行格式时,术语画面是指完整帧。当视频序列处于隔行格式时,每一个帧由奇数扫描线的场以及跟随的偶数线的场组成。这些场的每一个是画面。此外,I画面是帧内(或画面内)编码画面,P画面是从另一个I画面或者P画面,例如,先前的I画面或者P画面,预测的帧间(或画面间)编码画面,并且B画面是使用两个画面例如,先前I画面或者P画面和随后的I画面或者P画面预测的帧间(或画面间)编码画面。一般地,画面组(GOP)是视频序列连续画面的组,并且GOP结构规定GOP中的每一个画面如何被编码,即,给定画面将被编码为I画面、P画面还是B画面。
如果GOP结构是无层级的,则每一个GOP开始于I画面并且包括全部画面直至下一个I画面为止。依赖于具体GOP结构,这两个I画面之间的画面可以是一些定义的P画面和/或B画面的序列。图1A到图1C示出这些GOP的示例。如果GOP结构是分层级的,例如,层级-B,则GOP被定义为关键画面和时域上在该关键画面和先前关键画面之间的全部画面。关键画面可以被帧内编码,即,I画面或者是使用先前关键画面帧间编码,即P画面。GOP中的其它画面被分层级地预测。在带有层级-B编码结构的GOP中,GOP中的其它画面是B画面。在带有层级-P编码结构的GOP中,GOP中的其它画面是P画面。图1D和图1E分别示出带有层级-P和层级-B编码结构的GOP的示例。
在视频编码中使用的很多速率控制技术,例如,基于H.263近期5试验模型(TMN5)的速率控制技术,假定在视频序列中仅仅出现I画面和P画面。此外,这些技术可以以画面级别调制基本量化步长(Qs)。也就是说,针对P画面的基本Qs被设定为在先前的P画面的编码中使用的平均Qs。在对画面编码之前,接着基于在对先前的P画面的编码中使用的比特的数量是在目标比特数量以上还是以下来调制该基本Qs。得到的基本Qs接着被用作开始点,该开始点用于确定在画面中的每一个编码块中使用的实际Qs。此外,在画面的编码期间,基于估计的画面编码大小多么接近针对画面的目标编码大小,Qs可以周期性地增大或者减小。
这种速率控制技术对于逐行编码(画面是视频序列的帧)可以提供良好的结果,在逐行编码中画面组(GOP)具有I帧随后是一些数量的P画面的结构,并且从画面到画面的复杂度没有多少变化。然而,这种速率控制技术对于包括B画面和/或具有层级编码结构的GOP结构可能不充分。
本发明的实施方式提供在画面序列的开始处而不是在每一个画面的开始处确定并且调制基本Qs的速率控制。此外,基于画面序列中的初始画面的类型(例如,I画面或者P画面)不同地确定并且调制序列基本Qs。序列基本Qs接着被使用以确定针对该序列中的每一个画面的基本Qs。可以基于画面类型和速率控制层级中的画面的级别从序列基本Qs采用针对每一个画面的画面基本Qs。此外,在一个或者更多个实施方式中,在对画面编码之前,基于不同判据计算出针对画面的最小和最大编码大小。接着,子画面级别的速率控制,即,针对画面中的编码块的序列的速率控制,基于画面基本Qs和最小编码大小和最大编码大小,确定针对画面中的编码块的序列例如行的基本Qs。更具体地,在编码块的序列的开始处估计画面的编码大小,并且如果画面的估计的编码大小违反最小编码大小或者最大编码大小,则这个子画面基本Qs可以适当地增大或者减小。不要求具体的GOP结构,并且GOP可以包括B画面和/或可以具有层级编码结构。
为了减轻当视频序列中出现场景变化时可能的质量退化,一些实施方式识别何时出现场景变化并且采取步骤来管理检测到场景变化之后的初始的无场景变化的画面中的Qs。如这里更详细描述的,当在先前画面中检测到场景变化并且在该时刻被编码的画面中没有检测到场景变化时,速率控制可以在每一个编码块序列的开始处调整最小编码大小和最大编码大小。用于来自这个无场景变化的画面的编码块序列的平均Qs接着被设定到包含无场景变化的画面的画面序列的序列基本Qs。
被速率控制的实施方式使用的帧序列在此称为subGOP(画面子组)。为了确定subGOP,视频序列中的帧被视为在速率控制层级中的不同级别。速率控制层级中的级别定义如下所述。级别0帧,还称为关键帧,可以用于其它级别0帧的预测。此外,预测的级别0帧可以仅仅使用其它级别0帧作为基准帧。可以从处于级别n-1和以下(n>0)的帧预测处于级别n(n>0)的画面,并且可以用于预测处于级别n+1和以上(n>0)的帧。subGOP是开始于级别0帧即关键帧并且结束于下一个级别0画面之前的最后帧的帧的序列。这确保在subGOP中仅仅存在一个级别0帧,并且该级别0帧是subGOP中的第一帧(按编码顺序,不是显示顺序)。
图1A到图1E示出各个GOP结构的示例并且标识subGOP相对于GOP结构。图1A到图1C是无层级GOP结构的示例,图1D和图1E是层级GOP结构的示例。更具体地,图1A是IPPP编码结构的示例,图1B是IBP编码结构的示例,图1C是IBBP编码结构的示例,图1D是层级P编码结构的示例,以及图1E是层级B编码结构的示例。在每一个附图中,以显示顺序示出画面,并且每一个画面上方或者下方的数字标识画面的编码顺序。
在速率控制层级中,存在两种类型的subGOP,即I-subGOP和P-subGOP。I-subGOP是其中初始画面是I画面的subGOP,并且P-subGOP是其中初始画面是P画面的subGOP。如这里更详细描述的,在一个或者更多个实施方式中,不同于P-subGOP的序列基本Qs确定针对I-subGOP的序列基本Qs。
图2示出根据一个或者更多个实施方式的数字系统的框图。该系统包括源数字系统200,其经过通信信道216向目的地数字系统202传送编码的视频序列。源数字系统200包括视频拍摄部件204、视频编码器部件206和传送器部件208。视频拍摄部件204被配置为提供要被视频编码器部件206编码的视频序列。视频拍摄部件204可以是例如视频相机、视频档案或者来自视频内容提供商的视频馈送。在一些实施方式中,视频拍摄部件204可以产生计算机图形作为视频序列,或者现场视频和计算机产生的视频的组合。
视频编码器部件206从视频拍摄部件204接收视频序列并且将其编码以便被传送器部件208传送和/或以便存储在存储部件(未示出)中。一般地,视频编码器部件206从视频拍摄部件204接收视频序列作为画面的序列,将画面划分为编码块,该编码块可以是画面的一部分或者整个画面,将编码块划分为预测块,并且基于预测块对编码块中的视频数据编码。在编码处理期间,可以进行这里描述的用于速率控制的方法。以下参照图3A和图3B更详细描述视频编码器部件206的实施方式的功能。
传送器部件208经过通信信道216向目的地数字系统202传送经编码的视频数据。通信信道216可以是任意通信介质,或者适用于传送经编码的视频序列的通信介质的组合,诸如,例如有线或者无线通信介质、局域网或者广域网。
目的地数字系统202包括接收器部件210、视频解码器部件212和显示部件214。接收器部件210经过通信信道216从源数字系统200接收经编码的视频数据,并且向视频解码器212提供经编码的视频数据以便解码。一般地,视频解码器部件212反转由视频编码器部件206进行的编码处理以重构视频序列的编码块。可以接着在显示部件214上显示经重构的视频序列。显示部件214可以是任意适当的显示设备,诸如,例如,等离子体显示器、液晶显示器(LCD)、发光二极管(LED)显示器等。
在一些实施方式中,源数字系统200还可以包括接收器部件和视频解码器部件和/或目的地数字系统202可以包括传送器部件和视频编码器部件用于针对视频流、视频广播和视频电话的双向视频序列传送。此外,根据一个或者更多个视频压缩标准,诸如,例如,动态图像专家组(MPEG)视频压缩标准,例如,MPEG-1、MPEG-2和MPEG-4;ITU-T视频压缩标准,例如,H.263、H.264和HEVC;电影电视工程师协会(SMPTE)421M视频CODEC标准(统称为“VC-1”);由中国音频视频编码工作组定义的视频压缩标准(统称为“AVS”);ITU-T/ISO高效率视频编码(HEVC)标准等,视频编码器部件206和视频解码器部件212可以进行编码和解码。视频编码器部件206和视频解码器部件212可以以软件、固件和硬件的任意适当组合实现,硬件诸如,例如,一个或者更多个数字信号处理器(DSP)、微处理器、分立逻辑器件、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等。
图3示出视频编码器例如图2的视频编码器部件206的框图,被配置以进行根据一个或者更多个实施方式的速率控制。为了例示,所示出的块编码架构是H.264视频编码器的架构。如图3所示,用于编码的输入画面300被划分为编码块,例如,宏块,并且编码块被提供作为运动估计部件320的一个输入,作为帧内预测部件324的一个输入,以及到组合器302(例如,加法器或者减法器等)的正输入。此外,尽管未具体示出,针对每一个输入帧的预测模式,即,帧间预测或者帧内预测,被选择并且提供到模式选择器部件和熵编码器334。
存储部件318向运动估计部件320和运动补偿部件322提供基准数据。基准数据可以包括一个或者更多个先前编码和解码的画面,即,重构的画面。在一些实施方式中,存储部件318是外部存储器,即,片外存储器。
运动估计部件320向运动补偿部件322和熵编码器334提供运动估计信息。更具体地,运动估计部件320使用来自存储器318的基准数据基于多个时域预测模式对编码块进行测试以基于编码成本选择最佳运动向量/预测模式。为了测试预测模式,运动估计部件320可以根据预测模式的块大小将编码块划分为预测块。运动估计部件320向运动补偿部件322提供所选择的运动向量(MV)和所选择的预测模式,并且向熵编码器334提供所选择的运动向量(MV)。运动补偿部件322向选择器开关326提供经运动补偿的帧间预测信息,该帧间预测信息包括经运动补偿的帧间预测块和所选择的时域预测模式。还向模式选择器部件提供帧间预测块的编码成本。
帧内预测部件324向选择器开关326提供帧内预测信息,该帧内预测信息包括帧内预测块和对应的空间预测模式。也就是说,帧内预测部件324进行空间预测,其中使用来自缓冲器328的先前编码的相邻的帧块对编码块进行基于多个空间预测模式的测试,以基于编码成本选择用于产生帧内预测块的最佳空间预测模式。为了测试空间预测模式,帧内预测部件324可以根据预测模式的块大小将编码块划分为预测块。尽管未具体示出,但是向选择器开关326提供的每一个帧内预测块的空间预测模式还被提供到变换部件304。此外,尽管未具体示出,但是还向模式选择器部件提供帧内预测块的编码成本。
选择器开关326基于块的差度量和由模式选择器部件提供的帧预测模式,在来自运动补偿部件322的经运动补偿的帧间预测块和来自帧内预测部件324的帧内预测块之间进行选择。选择器开关326的输出,即,所预测的预测块,被提供到组合器302的负输入以及到延迟部件330。延迟部件330的输出被提供到另一个组合器(即,加法器)338。组合器302从当前编码块的当前预测块减去所预测的预测块以向变换部件304提供残留预测块。得到的残留预测块是像素差值的集合,该像素差值量化原始预测块的像素值和所预测的预测块的像素值之间的差。
变换部件304对残留预测块进行块变换以将残留像素值转换为变换系数并且输出这些变换系数。来自变换部件304的变换系数被提供到量化部件306,量化部件306输出经量化的变换系数。更具体地,量化部件306将残留预测块的变换系数的值除以从由速率控制部件338提供的量化参数(Qp)导出的量化标尺(Qs)。一般地,量化部件306通过使用期望数量的量化步长表出这些系数,所使用的步长的数量(或者相应地,Qs的值或者缩放矩阵中的值)确定用于代表该残留的比特的数量。
速率控制部件338根据如此处所述的速率控制的方法计算针对每一个编码块的基本Qs,并且将此基本Qs转换到适当Qp值以便被量化部件306使用。如以下参照图4A和图4B更详细地描述,速率控制方法的一些实施方式通过鉴于多种因素包括视频缓冲器336的当前充实度,对目标比特率调整针对包含编码块的subGOP的基本Qs,来产生针对该编码块的基本Qs。
因为DCT变换将残留信号能量重分布到频率域中,所以经量化的变换系数被从排序扫描部件308取出它们的光栅扫描排序,并且被按照显著度排列,诸如,例如从更显著的系数开始随后是较不显著的系数。经过扫描部件308提供的经排序的量化的变换系数与报头信息一起被熵编码器334编码,熵编码器334向视频缓冲器336提供经压缩的比特流336以便传送或者存储。熵编码器334进行的熵编码可以是任何适当的熵编码技术,诸如,例如,上下文适应性可变长度编码(CAVLC)、上下文适应性二进制算术编码(CABAC)、行程长度编码等。
每一个编码器内有嵌入的解码器。由于任何兼容解码器被期待从压缩比特流重构图像,嵌入的解码器向视频编码器提供相同功能。对重构的输入的知识允许视频编码器传送适当的残留能量以组成随后的帧。为了确定重构的输入,即,基准数据,经过扫描部件308提供的经排序的量化的变换系数通过逆扫描部件310而被返回到原始转换后排列,逆扫描部件310的输出被提供到反量化部件(dequantizer)312,反量化部件312输出估计的变换信息,即,来自变换部件304的变换结果的估计或者重构版本。估计的变化信息被提供到逆变换部件314,逆变换部件314输出代表残留预测块的重构版本的估计的残留信息。重构的残留预测块被提供到组合器338。
组合器338将经延迟的所选择的预测块加到重构的残留预测块以产生未滤波的重构的预测块,其变为重构的帧信息的一部分。重构的帧信息经过缓冲器328提供到帧内预测部件324以及到滤波器部件316。滤波器部件316是环内滤波器,对重构的帧信息滤波,并且向存储部件318提供经滤波的重构的编码块,即,基准数据。
图4A和图4B示出根据一个或者更多个实施方式的用于速率控制的方法的流程图。为了简化说明,假定子画面级别的速率控制是基于编码块的行来描述这些方法。本领域技术人员将理解的是实施方式,其中子画面级别的速率控制是基于小于或者大于画面的行的编码块序列,并且可以在画面内在长度上改变。
在402,速率控制方法的一个或者更多个实施方式在视频序列中的每一个subGOP的开始处计算基本Qs。在404,这个subGOP基本Qs接着被使用以计算针对subSOP中的每一个画面的基本Qs。在420,还计算针对每一个画面的最小编码大小和最大编码大小。在430-438,画面基本Qs和最小画面大小和最大画面大小接着被使用以确定针对画面中的编码块的每一个行的基本Qs。更具体地,在430-434,如果估计的画面的编码大小违反最小画面大小或者最大画面大小,则针对行的行基本Qs可以按照需要增大或者减小。此外,如果在画面的编码期间检测到场景变化,则针对检测到场景变化之后的第一无场景变化画面424-428中的每一个行调整最小画面大小和最大画面大小以实现特别大小限制,在此这可以称为对该画面的场景变化大小限制。在无场景变化画面被编码之后,在对下一画面408编码之前,subGOP基本Qs被设定到针对该画面的平均行基本Qs。
进行对场景变化的特定处理是因为场景变化之前和之后的画面的复杂度可能明显不同,这将负面影响场景变化之后的经编码的画面的质量达一定时间段,除非采取措施来减轻复杂度变化的影响。例如,如果在场景变化之前画面复杂度非常低,但是在场景变化之后非常高,则针对新场景中的前几个画面的Qs值将非常低。这是因为场景变化之前的Qs值将是非常低,以满足由于在前的画面的非常低的复杂度引起的目标比特率。因此,与目标比特率相比,新场景中的前几个画面的编码将消耗很大量的比特。因而,随后一些数量的画面的Qs值将增大到很大的值来满足目标比特率。这将导致在新场景的开始处几个很好质量的画面,随后是很多差质量的画面。
在另一个示例中,如果在场景变化之前画面复杂度非常高,但是在场景变化之后非常低,则针对新场景中的前几个画面的Qs值将非常高。这是因为场景变化之前的Qs值将是非常高,以满足由于在前的画面的非常高的复杂度引起的目标比特率。因此,与针对画面的目标比特数量相比,新场景中的前几个画面的编码将消耗很少量的比特。这将导致新场景的开始处的很多画面具有差质量。
进行在场景变化之后的第一个无场景变化画面中以行级别调整最小画面大小和最大画面大小以施加场景变化限制,以产生针对subGOP基本Qs的新值,其提供场景变化之后的迅速稳定。如以下更详细描述的,特定调整是基于针对产生subGOP基本Qs的新值而凭经验导出的最小大小阈值和最大大小阈值。
下面更详细描述图4A和图4B的方法的步骤。在对方法的步骤的描述中,提供了伪码形式的示例,描述方法的实施方式的示例实现的方面。伪码仅仅是示例目的,不理解为限制。本领域技术人员将理解的是可以按照不同方式实现速率控制方法。该伪码按照C编程语言的句法表示,并且是涉及的各种变量和常量,在本说明书的末尾提供的表10中定义。因此,伪码应被本领域技术人员理解而没有特定指令的详细说明和进行操作。
一些示例伪码在量化参数(Qp)域操作,并接着将Qp值转换到Qs值或者基于Qp的增量变化调整Qs值。这些操作分别在伪码中作为子例程Qp2Qs和addDelta2Quant中引用。在一些视频编码标准中,量化步长大小与具有整数值的整数值量化参数相关联。用于Qp值到Qs值的转换以及基于增量Qp变化调整Qs值的技术是本领域已知的。例如,可以使用查找表和/或通过计算推导来确定针对Qp值的Qs。
如图4A所示,在视频序列的开始处,计算针对视频序列中的第一画面的初始Qs400。理想地,初始Qs应接近Qs的稳态值,以减少否则将在视频序列的开始处,即,在冷启动处出现的视频质量退化。也就是说,如果不被适当设定,则在冷启动处使用的Qs可以要求在进入稳定状态之前在很多画面的编码上的调整。例如,在初始斜坡时段(上升时间),如果在开始处的Qs高于达到稳态时的Qs,则在斜坡时段感知/测量的质量将比稳定之后更差。并且,如果在开始处的Qs低于达到稳态时的Qs,则在斜坡时段比必要更多的比特将被消耗以便对画面编码,并且斜坡时段之后的画面的视频质量可能退化一段时间以弥补在斜坡时段的比特的过度消耗。
因此,基于目标比特率计算针对视频序列的初始Qs从而较高的初始Qs用于较低的目标比特率并且较低的初始Qs用于较高的目标比特率。在一些实施方式中,基于针对视频序列的目标比特率、凭经验确定的针对低比特率的默认Qs值以及较高比特率的一个或者更多个凭经验确定的阈值代表来确定初始Qs。阈值的数量可以依赖于由给定的视频编码器提供的比特率的范围。如果视频序列的目标比特率低于代表较高比特率的阈值,则初始Qs被设定为默认Qs。否则,依赖于其超过的最高比特率阈值,默认Qs值减小一定量,从而目标比特率越高,默认Qs值减小的越多。还可以基于视频编码器中使用实现编码效率的特定编码技术确定初始Qs值。
表1中的伪码示出初始Qs seqlnitQs的动态确定的示例。在此示例中,两个凭经验确定的阈值被使用,一个代表高比特率另一个代表中比特率。此外,目标比特率对高和中比特率的比较分析是基于从目标比特率导出的宏块(MB)目标比特率targetBitsMB。请注意此伪码确定初始量化参数(Qp)接着将该Qp转换为Qs值(Qp2Qs)。默认Qp值是凭经验确定的并且将用于确定初始Qs除非宏块目标比特率高于多个阈值中的一个。
表1
视频序列中的每一个subGOP接着被编码402-412。在subGOP的开始处,计算针对subGOP的基本Qs 402。此外,基于subGOP是I-subGOP还是P-subGOP确定针对subGOP的基本Qs。如果subGOP是I-subGOP,则基于视频序列中的每一个先前编码的画面的平均行基本Qs计算subGOP基本Qs。也就是说,视频序列中的在当前subGOP之前被编码的每一个画面的平均行基本Qs贡献于针对当前subGOP的基本Qs的值。在一些实施方式中,subGOP基本Qs被计算为先前画面的平均行基本Qs值的行程加权平均。可以在每一个画面被编码之后计算该行程加权平均作为:
curQsI=wcightcdAvg(modQs,curQsI)
其中weightedAvg(qa,qb)=qa*wl+qb*w2,modQs=fun(avgQsCurPic)。可以凭经验确定这两个加权的值。在一些实施方式中,wl=0.75并且w2=0.25。
如果subGOP是P-subGOP,则基于来自对视频序列中的先前P-subGOP的编码的各个速率控制统计信息计算subGOP基本Qs。在一些实施方式中,subGOP基本Qs是通过针对先前P-subGOP中的画面消耗的平均比特数量和每一画面的目标比特之间的偏差的调整参数调整的,先前P-subGOP中的初始画面的平均Qs。
在一些实施方式中,针对P-subGOP的subGOP基本Qs的计算还基于视频缓冲器的充实度。更具体地,速率控制尝试管理视频缓冲器的充实度,以通过保持缓冲器充实度接近标称缓冲器级别,来减少跳帧并且避免缓冲器下溢。如果在P-subGOP的开始处,缓冲器充实度在该标称缓冲器级别以上,则subGOP基本Qs的计算可以被偏置以增大Qs。并且,如果缓冲器充实度过低,则计算可以被偏置以减小Qs。
针对P-subGOP的subGOP基本Qs的计算还可以考虑是否进行了VBR或者CBR编码。此外,计算可以限制subGOP基本Qs在连续的subGOP之间如何变化。
表2中的伪码示出确定针对subGOP的基本Qs的示例。在这个伪码中,subGOP基本QsbaseQsCurSubGop针对I-subGOP被设定为curQsI,并且针对P-subGOP通过对先前P-subGOP中的初始画面的平均Qs baseQsAvePrevPSubGop应用调整参数globalAdj来计算。基于先前P-subGOP中的画面消耗的平均比特数量prevPtypeSubGopBits和每一画面的目标比特targetBitsPerPic之间的偏差以及基于视频缓冲器的充实度的当前级别vbLevel与期望充实度级别vbUseLevel相比而确定的偏置值vbconverge,来计算调整参数globalAdj的值。subGOP基本QsbaseQsCurSubGop的值还不允许增加到依赖于是否在使用VBR或者CBR的最大Qs maxQsLimit以上。
curQsI、baseQsPrevPSubGo、baseQsCurSubGop和baseQsAvePrevPSubGop的值被初始化以便基于针对视频序列的初始Qs、seqlnitQs计算针对视频序列中的第一subGOP的subGOP基本Qs。更具体地,baseQsPrevPSubGop=baseQsCurSubGop=baseQsAvePrevPSubGop=addDelta2Quant(seqInitQs,+rcIQPBoost并且curQsI=baseQsPrevPSubGop。可以基于得到的视频质量凭经验确定rclQPBoost的值。prevPtypeSubGopBits的值也被初始化。
表2
再次参照图4A,一旦在402计算了subGOP基本Qs,在404-410使用subGOP基本Qs对subGOP中的每一个画面编码。在画面的开始处,使用subGOP基本Qs计算针对画面的基本Qs404。通过基于画面的类型和速率控制层级中的画面的级别调整subGOP基本Qs来计算画面基本Qs。一般地,I画面将具有比subGOP基本Qs更小的基本Qs,处于速率控制层级的级别0的P画面将具有等于subGOP基本Qs的画面基本Qs,并且处于速率控制层级的更高级别的画面将具有比subGOP基本Qs更高的画面基本Qs。此外,处于速率控制层级的级别n的画面将具有比处于速率控制层级的级别n-1的画面更高的画面基本Qs。
表3中的伪码示出使用subGOP基本Qs确定基本Qs的示例。如果画面是I画面,则将subGOP基本Qs提高固定量-rclQPBoost。如果画面是处于速率控制层级的级别0的P画面,则subGOP基本Qs不变化。对于处于速率控制层级的级别0以下的画面,将subGOP基本Qs减小固定量deltaQpPB,并且根据画面的速率控制层级级别gopLevel进一步减小。
表3
在404,计算了画面基本Qs时,在406,使用画面基本Qs对画面编码。以下参照图4B更详细说明画面的编码。在对画面编码之后,如果检测到了场景变化并且刚刚被编码的画面是场景变化之后的第一无场景变化画面,则在408,可以在计算针对下一画面的画面基本Qs之前调整subGOP基本Qs。如先前说明的,该调整是为了减轻如果场景变化之前和之后的画面的复杂度明显不同则可能出现的编码质量退化而进行的。如果上述条件被满足,则基于针对无场景变化画面的平均行基本Qs调整subGOP基本Qs。可以通过对画面编码中使用的行基本Qs值之和除以画面中的行数来计算平均行基本Qs。
在计算针对无场景变化画面之后的下一画面的画面基本Qs之前进行该调整。此外,调整可以依赖于无场景变化画面的类型。在一些实施方式中,如果无场景变化画面是P画面,则subGOP基本Qs被设定到该无场景变化画面的平均行基本Qs。此外,如果无场景变化画面是B画面,则subGOP基本Qs被设定到经过针对画面在速率控制层级中的级别调整的平均行基本Qs,即,从而subGOP基本Qs高于平均行基本Qs,并且针对速率控制层级中的每一个连续级别,到平均行基本Qs的增量变化更高。针对P-subGOP的subGOP基本Qs的计算中使用的各个统计信息也被按照需要调整。
表4中的伪码示出如果需要则针对场景变化调整subGOP基本QS的示例。标记updateBaseQsAfterSceneChange用于指示subGOP基本Qs baseQsCurSubGop是否应因为场景变化而被更新。标记isNewScene指示刚刚编码的画面中是否存在场景变化。通过与速率控制并行操作的场景检测技术更新值isNewScene。任何适当的速率控制技术可以被使用。应注意的是在subGOP基本Qs的计算中使用的其它变量也被更新从而针对subGOP当前的基本Qs中的变化将被反映在针对下一P-subGOP的基本Qs的计算中。
在此伪码中,如果updateBaseQsAfterSceneChange是真,则在当前subGOP中的先前编码的画面中检测到场景变化。如果isNewScene为假,则在刚刚编码的画面中没有检测到场景变化,即,刚刚编码的画面是无场景变化画面。仅仅如果这些条件都满足,baseQsCurSubGop的值才改变。如果sugGOP中的无场景变化画面是P画面,则baseQsCurSubGop被设定为在无场景变化画面的编码中使用的平均行QsbaseQsAvgCurPic。如果无场景变化画面是B画面,则baseQsCurSubGop被设定为baseQsAvgCurPic减小了固定量deltaQpPB,并且进一步根据画面的速率控制层级级别gopLevel进一步减小。
表4
在410,subGOP中的全部画面被编码之后,如果当前subGOP是P-sbuGOP,则在针对P-subGOP的subGOP基本Qs的计算中使用的各个统计信息被更新。例如,可以存储subGOP中的初始画面的平均Qs并且可以计算在对画面的编码中使用的平均比特数量。表5总的伪码示出在针对P-subGOP的subGOP基本Qs的计算中使用的统计信息的更新的示例。
表5
图4B示出进行图4B的步骤406的方法,即在使用subQOP基本Qs计算了画面基本Qs之后对画面编码的方法。在画面的开始处,计算针对画面的最大画面大小和最小画面大小420。最大画面大小指示对画面编码使用的最大比特数量,最小画面大小指示对画面编码使用的最小比特数量。一般地,最大画面大小被设定为比每一画面的目标比特更大。最大画面大小还可能针对VBR和CBR编码不同,因为针对VBR编码更期望更大的最大画面大小,而针对CBR编码更期望更小的最大画面大小。在计算最大画面大小时还可以考虑其它因素,诸如底层的硬件的性能。在一些实施方式中,最大画面大小被计算为每一画面的目标比特的倍数,其中用于VBR编码的倍数参数大于用于CBR编码的倍数参数。倍数参数可以凭经验确定。
对于VBR编码,最小画面大小通常是0。对于CBR编码,最小画面大小被设定以减小比特消耗随着时间可能的变化。此外,最小画面大小和最大画面大小不应非常接近,因为这可能导致在画面内Qs的不应有的振荡。为了实现该目标,在一些实施方式中,最小画面大小被设定到每一画面的目标比特的一半或者最大画面大小的四分之一中的较小一个。
表6中的伪码示出计算最大画面大小maxPicSize的示例,以及表7中的伪码示出计算最小画面大小minPicSize的示例。
表6
表7
再次参照图4B,在420计算最小画面大小和最大画面大小之后,在422-438使用画面基本Qs和最小画面大小和最大画面大小编码画面中的编码块的每一行。首先,行基本Qs被设定为画面基本Qs 422。如果在424先前画面中没有场景变化,则如果行基本Qs的当前值被使用,则估计在此时间点对画面编码需要的比特的数量430。如果估计大小在最大画面大小以上或者最小画面大小以下432,则调整行基本Qs 434。更具体地,针对当前行的行基本Qs按照需要增大或者减小以满足画面大小限制。如果估计的大小不违反画面大小限制432,则行级别Qs不变化。接着使用行基本Qs对行中的编码块编码。
如果先前画面中存在场景变化424,则检查在当前画面中是否检测到场景变化426。场景变化检测与速率控制并行地进行,并且在画面被编码时可以通过设定场景变化指示符来用信号通知场景变化。如果检测到场景变化426,则使用最大画面大小和最小画面大小的当前值将行编码430-436。这些值可以与在画面420的开始处计算的值不同,因为在画面中检测到场景变化之前已经调整开始处计算的值428。
如果没有检测到场景变化426,则针对行调整最大画面大小和最小画面大小428。此调整根据所选择的大小阈值限制最大画面大小和最小画面大小,以产生适于随着画面前进而使用的针对画面的平均行基本Qs作为subGOP基本Qs,即,以产生导致在画面变化之后更快稳定的针对subGOP基本Qs的新值。基于当前画面的类型选择用于调整最大画面大小和最小画面大小的具体大小阈值。更具体地,调整的针对I画面的最大画面大小将大于调整的针对P画面的最大画面大小,调整的针对P画面的最大画面大小将大于调整的针对B画面的最大画面大小。类似地,调整的针对I画面的最小画面大小将大于调整的针对P画面的最小画面大小,调整的针对P画面的最大画面大小将大于调整的针对B画面的最小画面大小。
此外,在一些实施方式中,调整的最大画面大小是每一画面的目标比特的倍数,而与画面类型无关。也就是说,最大大小阈值是为了计算调整的最大画面大小而应用于每一画面的目标比特的凭经验确定的倍数参数。类似地,调整的最小画面大小是基于每一画面的目标比特,与画面类型无关。对于I画面,调整的最小画面大小是每一画面的目标比特除以基于GOP中的P画面和/或B画面的数量确定的参数。对于P画面,调整的最小画面大小是每一画面的目标比特。对于B画面,调整的最小画面大小是每一画面的目标比特的一半。
表8中的伪码示出以行级别计算最大画面大小maxPicSize的示例,表9中的伪码示出以行级别计算最小画面大小minPicSize的示例。
表8
表9
再次参照图4B,在调整最小画面大小和最大画面大小428之后,使用最大画面大小和最小画面大小的调整值将行编码430-436。
在画面中的全部行被编码438之后,用在画面的编码中使用的平均Qs更新在设定针对I-subGOP的subGOP基本Qs中使用的行程加权平均值(running weighted average)。还在此级别管理用于用信号通知在先前画面中检测到场景变化的指示符。如果在当前画面的编码中检测到场景变化,则指示符被设定为用信号通知检测到场景变化。此外,画面是检测到场景变化之后的第一无场景变化画面,则指示符被设定为用信号通知没有检测到场景变化。应注意的是,如果指示符用信号通知当画面的编码开始时先前画面中的场景变化并且在对画面编码时没有检测到画面变化,则画面是第一无场景变化画面。此指示符在伪码示例中被称为updateBaseQsAfterSceneChange。
应理解的是由于类似于以上针对画面变化描述的原因,在视频序列的开始处即,在冷启动时,还可能有视频质量退化。也就是说,除非减轻了,在冷启动处使用的Qs可以要求在进入稳定状态之前在很多画面的编码上的调整。在一些实施方式中,通过速率控制的初始化以将视频序列中的第一画面作为新场景的第一画面对待即发生了场景变化的画面,来处理在视频序列的开始处的冷启动。因而,速率控制还采取步骤来如上所述管理在第一画面之后的初始无场景变化画面中的Qs。
本公开中描述的速率控制技术可以在硬件、软件、固件或者其组合来实现。如果任何部分或者全部速率控制技术是在软件中,则该软件可以在一个或者更多个处理器中执行,诸如微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者数字信号处理器(DSP)。软件可以初始地存储在计算机可读介质中,诸如致密盘(CD)、存储盘、存储带、文件、存储器或者任何其它计算机可读存储装置中并且被加载在处理器中并且执行。在一些情况下,软件还可以在计算机程序产品中销售,其中包括计算机可读介质和用于计算机介质的包装材料。在一些情况下,软件指令可以从另一个数字系统上的计算机可读介质等经过可移除的计算机可读介质(例如,软片、光盘、闪存、USB钥匙),经过传输路径分配。
此处描述的速率控制的方法和系统可以实现几乎任何类型的数字系统(例如,桌上型计算机、膝上型计算机、诸如移动(即,蜂窝)电荷或者MP3播放器这样的手持设备、个人数字助理、数字视频相机、机顶盒、数字录像机(DVR)等,具有拍摄或者产生数字视频序列的功能。图5到图7示出示例性的数字系统的框图。
图5示出根据一个或者更多个实施方式的适用于嵌入式系统(例如,数字相机)的数字系统,包括可以被配置以进行此处描述的速率控制方法的基于DSP的图像协处理器(ICP)502、RISC处理器504和视频处理引擎(VPE)506等部件。RISC处理器504可以是任何适当配置的RISC处理器。VPE 506包括用于从诸如图像传感器、视频解码器等的成像外围设备视频拍摄的可配置的视频处理前端(视频FE)508输入接口、用于诸如SDTV显示器、数字LCD面板、HDTV视频编码器等的显示设备的可配置的视频处理后端(视频BE)510输出接口以及被视频FE 508和视频BE 510共享的存储器接口524。该数字系统还包括用于各种外围设备的外围接口512,外围设备可以包括多媒体卡、音频串行端口、通用串行总线(USB)控制器、串行端口接口等。
视频FE 508包括图像信号处理器(ISP)516和3A统计信息产生器3A)518。ISP 516提供对图像传感器和数字视频源的接口。更具体地,ISP 516可以从传感器(CMOS或者LCD)接受原始图像/视频数据并且可以接受多种格式的YUV视频数据。ISP 516还包括具有从原始CCD/CMOS数据产生彩色格式(例如,RGB)的图像数据的功能的参数化的图像处理模块。ISP 516是针对每一个传感器类型定制的并且支持用于所拍摄的视频图像的预览显示和视频记录模式的视频帧率。ISP 516还包括图像缩放器、统计信息收集功能和边界信号计算器等功能。3A模块518包括支持用于通过收集对来自SIP 516或者外部存储器的原始图像数据的度量自动聚焦、自动白平衡和自动曝光的控制回路的功能。
视频BE 510包括屏幕上显示引擎(OSD)520和视频模拟编码器(VAC)522。OSD引擎520包括针对多种不同类型的硬件显示窗口管理各种格式的显示数据的功能,并且还否则在以YCbCr格式提供数据到VAC 522之前,采集和复合视频数据和显示/比特图数据混合为单个显示窗口。VAC 522包括从OSD引擎520提取显示帧并且将其格式化为期望的输出格式并且向对显示设备的接口输出要求的信号。VAC 522可以接口到复合NTSC/PAL视频设备、S视频设备、数字LCD设备、高清视频编码器、设备DVI7HDMI等。
存储器接口524用作主源并且沉入到向/从高外部存储器请求和/或传送数据的视频FE 508和视频BE 510中的模块。存储器接口524包括读缓冲器和写缓冲器以及仲裁逻辑。
ICP 502包括对拍摄的图像进行视频编码要求的计算操作的功能。所支持的视频编码标准可以包括例如JPEG标准、MPEG标准和H.26x标准中的一个或者更多个。在一个或者更多个实施方式中,ICP 502被配置为在视频编码期间进行此处描述的速率控制方法的计算操作。
图6是可以被配置为进行此处描述的速率控制的数字系统(例如,移动蜂窝电话)600的框图。信号处理单元(SPU)602包括数字处理处理器系统(DSP),该系统包括嵌入式存储器和安全装置。模拟基带单元604从手持机麦克风613a接收话音数据流并且向手持机单声道扬声器613b发送话音数据流。模拟基带单元604还从麦克风614a)接收话音数据流并且向单声道耳机614b发送话音数据流。模拟基带单元604和SPU 602可以是分立的IC。在很多实施方式中,模拟基带单元604不嵌入可编程处理器核心,但是基于在SPU 602上运行的软件设定的音频路径、滤波器、增益等构造进行处理。在一些实施方式中,模拟基带处理被在相同处理器上进行并且可以向其发送信息以便在呼叫处理或者其它处理期间与数字系统600的用户交互。
显示器620还可以显示从网络、从本地相机628或者从诸如USB626或者存储器612这样的其它源接收的画面和编码的视频流。SPU602还可以向显示器620发送经过RF收发机606从诸如蜂窝网络或者相机628接收到的各个源接收到的视频流。SPU 602还可以经过复合输出端子624上的编码器622向外部视频显示单元发送视频流。编码器单元622可以根据PAL/SECAM/NTSC视频标准提供编码。
SPU 602包括视频编码和解码要求的计算操作的功能。所支持的视频编码标准可以包括例如JPEG标准、MPEG标准、H.26x标准和正在出现的HEVC标准中的一个或者更多个。在一个或者更多个实施方式中,SPU 602被配置为在此处所述的视频编码期间进行速率控制的计算操作。实现速率控制的全部或者一部分的软件指令可以被存储在存储器612中并且被SPU 602执行作为数字图像数据例如,画面和视频流的编码的一部分。
图7示出包括处理器702、相关联的存储器704、存储装置706和数字系统的通常的多个其它元件和功能(未示出)的数字系统700(例如,个人计算机)。在一个或者更多个实施方式中,数字系统可以包括多个处理器和/或这些处理器中的一个或者更多个可以是数字信号处理器。数字系统700还可以包括输入装置,诸如键盘708和鼠标710(或者其它光标控制装置),以及输出装置,诸如监视器712(或者其它显示装置)。本领域技术人员将理解输入装置和输出装置可以采取其它形式。数字系统700还可以包括图像拍摄装置(未示出),其中包括用于拍摄视频序列的回路(例如,光学装置、传感器、读取电子装置)。数字系统700可以包括具有进行如此处描述的速率控制的功能的视频编码器。
数字系统700可以经过网络接口连接(未示出)连接到网络(未示出)(例如,局域网(LAN)、诸如因特网这样的广域网(WAN)、蜂窝网络、任何其它类似类型的网络和/或其任何组合)。数字系统1500可以包括从存储装置1506和/或从可移除的存储介质经过网络接口连接接收编码的视频序列的功能。
此外,本领域技术人员理解上述数字系统700的一个或者更多个元件可以位于远程位置并且通过网络连接到其它元件。此外,可以在具有多个节点的分布式系统上实现实施方式,其中系统和软件指令的每一个部分可以位于分布式系统的不同节点上。在一个实施方式中,节点可以是数字系统。另选地,节点可以是带有相关联的物理存储器的处理器。节点可以另选地是带有共享存储器和/或资源的处理器。
用于进行如此处描述的速率控制的计算操作的软件指令可以被存储在计算机可读介质上。诸如致密盘(CD)、存储盘、存储带、文件、存储器或者任何其它计算机可读存储装置中并且被加载在处理器中并且执行。软件指令可以从另一个数字系统等上的计算机可读介质等经过可移除的计算机可读介质(例如,软盘、光盘、闪存、USB钥匙),经过传输路径分配到数字系统700。
具有在具有全部或者仅仅一些这些特征或者步骤的示例实施方式的上下文中描述的一个或者更多个特征或者步骤的不同组合的实施方式旨在在此被覆盖。本领域技术人员将理解的是很多其它实施方式和变型也可能在要求保护的发明的范围内。
表10
Claims (8)
1.一种在对视频序列的编码中的速率控制以产生压缩比特流的方法,所述方法包括:
针对所述视频序列中的画面序列,利用一个或更多个处理器,至少部分基于所述视频序列中的先前画面序列中的每个画面消耗的平均比特数量,计算序列基本量化步长大小值,所述画面序列是所述视频序列中的连续画面组的子集;
针对所述画面序列中的多个画面中的每个画面:
基于针对所述画面序列的所述序列基本量化步长大小值、相应画面的类型和所述相应画面在速率控制层级中的级别,利用所述一个或更多个处理器,计算针对所述相应画面的画面基本量化步长大小;以及
使用针对所述相应画面的所述画面基本量化步长大小,利用所述一个或更多个处理器,对所述相应画面编码以产生所述压缩比特流的一部分。
2.根据权利要求1所述的方法,其中,计算序列基本量化步长大小值还包括:
当所述画面序列中的初始画面是帧内编码的画面时,将所述序列基本量化步长大小值计算为所述视频序列中的先前编码画面的平均量化步长大小的加权平均。
3.根据权利要求2所述的方法,其中,对所述相应画面编码还包括:
计算在对所述相应画面编码中要使用的最小比特数量和在对所述相应画面编码中要使用的最大比特数量;以及
使用比所述最小比特数量大并且比所述最大比特数量小的比特数量对所述相应画面编码。
4.根据权利要求3所述的方法,其中,使用比特数量对所述相应 画面编码还包括:
在对所述相应画面中的编码块序列进行编码之前,估计对所述相应画面编码需要的比特数量;
当估计的比特数量大于所述最大比特数量时,增大所述编码块序列的量化步长大小;以及
当估计的比特数量小于所述最小比特数量时,减小所述编码块序列的量化步长大小。
5.根据权利要求3所述的方法,其中,对所述相应画面编码还包括:
当在所述画面序列中紧接着所述画面之前的一画面中检测到场景变化时,针对所述相应画面中的编码块序列的速率控制,调整所述最小比特数量和所述最大比特数量。
6.根据权利要求1所述的方法,还包括:
响应于所述视频序列中的场景变化,基于在对所述场景变化之后初始无场景变化画面的编码中使用的量化步长大小的平均,调整所述序列基本量化步长大小值。
7.一种用于对视频序列编码以产生压缩比特流的编码器,所述编码器包括一个或更多个处理器,所述一个或更多个处理器被配置用于:
针对所述视频序列中的画面序列,至少部分基于所述视频序列中的先前画面序列中的每个画面消耗的平均比特数量,计算序列基本量化步长大小值,所述画面序列是所述视频序列中的连续画面组的子集;
针对所述画面序列中的多个画面中的每个画面:
基于针对所述画面序列的所述序列基本量化步长大小值、相应画面的类型和所述相应画面在速率控制层级中的级别,计算针对所述画面序列中的所述相应画面的画面基本量化步长大小;以及
使用针对所述相应画面的所述画面基本量化步长大小,对所述相应画面编码以产生所述压缩比特流的一部分。
8.一种用于视频序列的编码中的速率控制以产生压缩比特流的系统,包括:
用于针对所述视频序列中的画面序列,至少部分基于所述视频序列中的先前画面序列中的每个画面消耗的平均比特数量,计算序列基本量化步长大小值的装置,所述画面序列是所述视频序列中的连续画面组的子集;
用于基于针对所述画面序列的所述序列基本量化步长大小值、相应画面的类型和所述相应画面在速率控制层级中的级别,计算针对所述相应画面的画面基本量化步长大小的装置;以及
用于使用针对所述相应画面的所述相应画面基本量化步长大小,对所述画面编码以产生所述压缩比特流的一部分的装置。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US32442510P | 2010-04-15 | 2010-04-15 | |
US61/324,425 | 2010-04-15 | ||
US13/084,572 | 2011-04-12 | ||
US13/084,572 US20110255594A1 (en) | 2010-04-15 | 2011-04-12 | Rate Control in Video Coding |
PCT/US2011/032753 WO2011130680A2 (en) | 2010-04-15 | 2011-04-15 | Rate control in video coding |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102986211A CN102986211A (zh) | 2013-03-20 |
CN102986211B true CN102986211B (zh) | 2017-06-13 |
Family
ID=44788177
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180019076.3A Active CN102986211B (zh) | 2010-04-15 | 2011-04-15 | 视频编码中的速率控制 |
Country Status (4)
Country | Link |
---|---|
US (3) | US20110255594A1 (zh) |
JP (1) | JP5893002B2 (zh) |
CN (1) | CN102986211B (zh) |
WO (1) | WO2011130680A2 (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9854275B2 (en) * | 2011-06-25 | 2017-12-26 | Qualcomm Incorporated | Quantization in video coding |
JP6265414B2 (ja) * | 2011-06-28 | 2018-01-24 | 日本電気株式会社 | 映像符号化装置及び映像復号装置 |
US9237352B2 (en) | 2011-10-05 | 2016-01-12 | Texas Instruments Incorporated | Methods and systems for encoding pictures associated with video data |
US9014027B2 (en) * | 2012-02-29 | 2015-04-21 | Cisco Technology, Inc. | Multi-interface adaptive bit rate session management |
US20140078249A1 (en) * | 2012-09-20 | 2014-03-20 | Qualcomm Incorporated | Indication of frame-packed stereoscopic 3d video data for video coding |
US9491461B2 (en) * | 2012-09-27 | 2016-11-08 | Qualcomm Incorporated | Scalable extensions to HEVC and temporal motion vector prediction |
US9560361B2 (en) * | 2012-12-05 | 2017-01-31 | Vixs Systems Inc. | Adaptive single-field/dual-field video encoding |
BR112015015575A2 (pt) * | 2013-01-30 | 2020-02-04 | Intel Corp | particionamento adaptativo ao conteúdo para a previsão e codificação para vídeo da próxima geração |
KR20140110221A (ko) * | 2013-03-06 | 2014-09-17 | 삼성전자주식회사 | 비디오 인코더, 장면 전환 검출 방법 및 비디오 인코더의 제어 방법 |
US9609336B2 (en) * | 2013-04-16 | 2017-03-28 | Fastvdo Llc | Adaptive coding, transmission and efficient display of multimedia (acted) |
US20140321532A1 (en) * | 2013-04-26 | 2014-10-30 | Devadutta Ghat | Techniques for coordinating parallel video transcoding |
JP6267929B2 (ja) * | 2013-10-31 | 2018-01-24 | 日本放送協会 | 画像符号化装置及び画像符号化プログラム |
CN104104951B (zh) * | 2014-07-30 | 2017-05-03 | 北京邮电大学 | Hevc中屏幕内容编码的码率控制方法 |
US20160360206A1 (en) * | 2015-06-04 | 2016-12-08 | Microsoft Technology Licensing, Llc | Rate controller for real-time encoding and transmission |
CN107170460B (zh) | 2017-06-30 | 2020-12-08 | 深圳Tcl新技术有限公司 | 音质调整方法、系统、主机端、及存储介质 |
CN109218724B (zh) | 2017-07-06 | 2020-08-04 | 腾讯科技(深圳)有限公司 | 一种数据编码方法、装置及存储设备和终端设备 |
CN110800298A (zh) * | 2018-08-21 | 2020-02-14 | 深圳市大疆创新科技有限公司 | 码率分配方法、码率控制方法、编码器和记录介质 |
CN110545434B (zh) * | 2019-09-20 | 2022-12-02 | 深圳市梦网视讯有限公司 | 一种转码片源gop层率控调整方法及系统 |
CN111953983B (zh) * | 2020-07-17 | 2024-07-23 | 西安万像电子科技有限公司 | 视频编码方法及装置 |
CN112312136B (zh) * | 2020-09-25 | 2024-05-17 | 西安万像电子科技有限公司 | 码流控制方法及装置 |
US12087020B2 (en) * | 2021-09-15 | 2024-09-10 | Synaptics Incorporated | Image compression method and apparatus |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101069432A (zh) * | 2004-12-02 | 2007-11-07 | 汤姆逊许可公司 | 用于视频编码器速率控制的量化参数的确定 |
CN101461248A (zh) * | 2006-06-09 | 2009-06-17 | 汤姆森许可贸易公司 | 自适应地确定用于视频图像编码的比特预算的方法和设备 |
CN101562497A (zh) * | 2008-04-17 | 2009-10-21 | 华为技术有限公司 | 一种分级b帧的帧层速率控制方法及装置 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5317397A (en) * | 1991-05-31 | 1994-05-31 | Kabushiki Kaisha Toshiba | Predictive coding using spatial-temporal filtering and plural motion vectors |
JPH08163554A (ja) * | 1994-12-02 | 1996-06-21 | Electron & Telecommun Res Inst | ビデオビット率制御方法 |
US5872598A (en) | 1995-12-26 | 1999-02-16 | C-Cube Microsystems | Scene change detection using quantization scale factor rate control |
JPH1079948A (ja) * | 1996-09-03 | 1998-03-24 | Mitsubishi Electric Corp | 画像符号化装置 |
US6532262B1 (en) * | 1998-07-22 | 2003-03-11 | Matsushita Electric Industrial Co., Ltd. | Coding method and apparatus and recorder |
JP3748717B2 (ja) * | 1998-08-31 | 2006-02-22 | シャープ株式会社 | 動画像符号化装置 |
JP3259702B2 (ja) * | 1998-12-24 | 2002-02-25 | 日本電気株式会社 | 動画像可変ビットレート符号化装置および方法 |
US6493388B1 (en) * | 2000-04-19 | 2002-12-10 | General Instrument Corporation | Rate control and buffer protection for variable bit rate video programs over a constant rate channel |
JP2002084544A (ja) * | 2000-09-06 | 2002-03-22 | Mitsubishi Electric Corp | 動画像符号化装置および動画像符号化方法 |
WO2004025943A2 (en) * | 2002-04-23 | 2004-03-25 | Nokia Corporation | Method and device for indicating quantizer parameters in a video coding system |
US7095784B2 (en) * | 2003-04-14 | 2006-08-22 | Silicon Intergrated Systems Corp. | Method and apparatus for moving picture compression rate control using bit allocation with initial quantization step size estimation at picture level |
US7308029B2 (en) | 2003-12-23 | 2007-12-11 | International Business Machines Corporation | Method and apparatus for implementing B-picture scene changes |
FR2864865A1 (fr) * | 2004-01-07 | 2005-07-08 | Thomson Licensing Sa | Procede de codage d'une sequence d'images |
US20060056508A1 (en) | 2004-09-03 | 2006-03-16 | Phillippe Lafon | Video coding rate control |
US7474701B2 (en) | 2004-09-23 | 2009-01-06 | International Business Machines Corporation | Single pass variable bit rate control strategy and encoder for processing a video frame of a sequence of video frames |
US8340172B2 (en) * | 2004-11-29 | 2012-12-25 | Qualcomm Incorporated | Rate control techniques for video encoding using parametric equations |
GB0428160D0 (en) * | 2004-12-22 | 2005-01-26 | British Telecomm | Variable bit rate processing |
US7403562B2 (en) * | 2005-03-09 | 2008-07-22 | Eg Technology, Inc. | Model based rate control for predictive video encoder |
US20070025441A1 (en) * | 2005-07-28 | 2007-02-01 | Nokia Corporation | Method, module, device and system for rate control provision for video encoders capable of variable bit rate encoding |
US9113147B2 (en) * | 2005-09-27 | 2015-08-18 | Qualcomm Incorporated | Scalability techniques based on content information |
US8165202B1 (en) * | 2006-03-31 | 2012-04-24 | Texas Instruments Incorporated | Video compression rate |
US7773672B2 (en) * | 2006-05-30 | 2010-08-10 | Freescale Semiconductor, Inc. | Scalable rate control system for a video encoder |
TW200837663A (en) * | 2007-03-13 | 2008-09-16 | Univ Nat Taiwan | Constant picture quality bit rate control system for a multiple-video encoder in single video signal source and the method |
US8331438B2 (en) * | 2007-06-05 | 2012-12-11 | Microsoft Corporation | Adaptive selection of picture-level quantization parameters for predicted video pictures |
JP4609457B2 (ja) * | 2007-06-14 | 2011-01-12 | ソニー株式会社 | 画像処理装置、及び、画像処理方法 |
JP5427785B2 (ja) * | 2007-09-28 | 2014-02-26 | ドルビー ラボラトリーズ ライセンシング コーポレイション | ビデオ圧縮技法及びビデオ伝達技法 |
US8879623B2 (en) | 2009-09-02 | 2014-11-04 | Sony Computer Entertainment Inc. | Picture-level rate control for video encoding a scene-change I picture |
-
2011
- 2011-04-12 US US13/084,572 patent/US20110255594A1/en not_active Abandoned
- 2011-04-15 CN CN201180019076.3A patent/CN102986211B/zh active Active
- 2011-04-15 JP JP2013505193A patent/JP5893002B2/ja active Active
- 2011-04-15 WO PCT/US2011/032753 patent/WO2011130680A2/en active Application Filing
-
2020
- 2020-10-20 US US17/075,053 patent/US11228772B2/en active Active
-
2021
- 2021-12-08 US US17/545,146 patent/US20220248038A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101069432A (zh) * | 2004-12-02 | 2007-11-07 | 汤姆逊许可公司 | 用于视频编码器速率控制的量化参数的确定 |
CN101461248A (zh) * | 2006-06-09 | 2009-06-17 | 汤姆森许可贸易公司 | 自适应地确定用于视频图像编码的比特预算的方法和设备 |
CN101562497A (zh) * | 2008-04-17 | 2009-10-21 | 华为技术有限公司 | 一种分级b帧的帧层速率控制方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US11228772B2 (en) | 2022-01-18 |
JP5893002B2 (ja) | 2016-03-23 |
US20220248038A1 (en) | 2022-08-04 |
JP2013524740A (ja) | 2013-06-17 |
US20110255594A1 (en) | 2011-10-20 |
CN102986211A (zh) | 2013-03-20 |
WO2011130680A2 (en) | 2011-10-20 |
US20210037252A1 (en) | 2021-02-04 |
WO2011130680A3 (en) | 2012-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102986211B (zh) | 视频编码中的速率控制 | |
US20200336743A1 (en) | Image decoding device, image encoding device, and method thereof | |
US8160136B2 (en) | Probabilistic bit-rate and rate-distortion cost estimation for video coding | |
US10284849B2 (en) | Quantization parameter (QP) calculation for display stream compression (DSC) based on complexity measure | |
US11743475B2 (en) | Advanced video coding method, system, apparatus, and storage medium | |
US20150312575A1 (en) | Advanced video coding method, system, apparatus, and storage medium | |
US20110268180A1 (en) | Method and System for Low Complexity Adaptive Quantization | |
JP2006519565A (ja) | ビデオ符号化 | |
KR20110045026A (ko) | 압축 도메인에서 유사성 메트릭에 기초한 비디오 코딩의 지능형 프레임 스키핑 | |
JP2011130410A (ja) | 符号化方法、復号化方法及び装置 | |
CN101247524A (zh) | 图像编码方法 | |
KR20170016849A (ko) | 디스플레이 스트림 압축 (dsc) 을 위한 엔트로피 코딩 기법들 | |
US20110255597A1 (en) | Method and System for Reducing Flicker Artifacts | |
CN101984665A (zh) | 一种视频传输质量评测的方法与系统 | |
KR20170137090A (ko) | 디스플레이 스트림 압축을 위한 레이트 제약형 폴백 모드 | |
JP2018515016A (ja) | 表示ストリーム圧縮のための複雑領域検出 | |
KR20050074286A (ko) | 화상 부호화 장치, 화상 부호화 방법 및 화상 부호화프로그램 | |
KR20170137093A (ko) | 디스플레이 스트림 압축 (dsc) 을 위한 양자화 파라미터 (qp) 업데이트 분류 | |
US20130077674A1 (en) | Method and apparatus for encoding moving picture | |
JP4561701B2 (ja) | 動画像符号化装置 | |
JP4100067B2 (ja) | 画像情報変換方法及び画像情報変換装置 | |
WO2016193949A1 (en) | Advanced video coding method, system, apparatus and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |