CN101194518A - 用于预测性视频编码器的基于模型的速率控制 - Google Patents

用于预测性视频编码器的基于模型的速率控制 Download PDF

Info

Publication number
CN101194518A
CN101194518A CN200680015464.3A CN200680015464A CN101194518A CN 101194518 A CN101194518 A CN 101194518A CN 200680015464 A CN200680015464 A CN 200680015464A CN 101194518 A CN101194518 A CN 101194518A
Authority
CN
China
Prior art keywords
picture
cost
classification
gop
bit number
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN200680015464.3A
Other languages
English (en)
Inventor
K·H·杨
H·J·金
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EG Tech Inc
Original Assignee
EG Tech Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by EG Tech Inc filed Critical EG Tech Inc
Publication of CN101194518A publication Critical patent/CN101194518A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/192Methods 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 the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • H04N19/194Methods 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 the adaptation method, adaptation tool or adaptation type being iterative or recursive involving only two passes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/142Detection of scene cut or scene change
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/177Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a group of pictures [GOP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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

Abstract

提供一种实时单向可变比特率控制策略,以在视频压缩系统(图1)中实现可变比特率(VBR)MPEG-2编码。对于一序列帧,视频区间(即图片组(GOP))的编码难度的级别由知觉速率量化(C-Q)模型(图1的101)来确定。该模型对每个视频区间指派一个合成的(C-Q)曲线,从该曲线估计用于该视频区间的比特数。该估计依赖于因果预测模型,该因果预测模型利用了从先前编码的视频区间获取的参数。基于被分析的视频区间的总速率(图1的103),更新每个图片的R-Q关系以及指派图片比特。在整个场景变换和不稳定中,可变比特率控制策略的粗糙度分别通过应用,例如一非线性中值滤波器,和低通滤波器(图1的101)得以确保。

Description

用于预测性视频编码器的基于模型的速率控制
技术领域
本发明涉及视频编码器,并且更具体而言涉及速率受控的预测性视频编码器。
背景技术
速率控制是多数视频编码器的基本功能。这部分是由于下面的事实:尽管许多编码器将视频作为可变比特率流进行编码,但是很多应用要求恒定的比特率流。然而,多数视频标准并没有规定如何控制比特率。
常规编码器通过改变量化步骤的粗糙度来控制输出比特率。量化标度(quantization scale)的改变直接影响输出的大小。尽管粗糙的量化显著降低比特率,但是它也降低了图片的质量。因此,为了以避免显示图片中出现可见伪像的方式来分布可用的比特,需要更高级的速率控制算法。
已经提出了许多速率控制算法,诸如那些所公开的ISOIEC/JTC1/SC29/SG11的“MPEG2:Test Model5,”草案,1993年4月,以及Zhihai He和Sanjit K.Mitra的“Optimum Bit Allocationand Accurate Rate Control for Video Coding via ρ-domain SourceModeling”,IEEE Transactions on Circuits and System for VideoTechnology,2002年10月。先行方法也已经被引入速率控制,用于在由于诸如场景变化而引起图片特征明显变化的情况下稳定速率控制。这样的速率控制方案通常包括两个步骤。第一个步骤是向给定图片集合中的每个图片分配比特以最小化总失真。第二个步骤是找到符合所分配的比特数的量化参数以对当前图片进行编码。上述速率控制方案用于第二步骤中(即,选择量化参数)。然而,该两步方法使得速率控制复杂化了。
发明内容
因此,本发明的目的是提供用于预测性视频编码器的基于模型的速率控制算法,该速率控制算法基本消除了一个或多个由相关技术的限制和缺点导致的问题。
本发明的一个优点是它提供了精确的速率控制,而只需要比已知的速率控制方案低许多的复杂度。这可以通过使用适应视频序列的局部特性的速率模型,以及通过以在给定的图片集合GOP中尽可能地将量化参数保持恒定作为目标来实现,而不是两步方法。
本发明的另一个优点是它提供了适应视频序列的局部特性的图片成本的函数的速率模型。
本发明的其它特征和优点将在随后的描述中阐述,其中部分将通过描述而变得显而易见,或可以通过实施本发明来获知。通过书面说明书及其权利要求和附图中特别指出的结构将实现并获得本发明的目的和其他优点。
为了实现这些以及其他优点,并且根据本发明的目的,如所具体化并广泛描述的,一种用于在预测性视频编码器中提供速率控制的方法包括将视频序列中的图片分类、估计第一量化参数、基于所估计的量化参数计算视频序列中每个图片的图片成本(picture cost)、初始化速率控制、基于图片成本执行比特分配和量化参数选择以及编码该视频序列。
应理解上述总体描述以及下面的详细描述是示例性和解释性的,并且意在提供对所请求保护的发明的进一步解释。
附图说明
附图图解了本发明的实施方案并且与说明书一起用于解释本发明的原理,附图被包括用于提供对本发明的进一步理解并且被纳入和构成本说明书的一部分。
在附图中:
图1是根据本发明的实施方案的视频编码器的方框图;
图2图解了根据本发明的实施方案的用于估计量化参数的示例伪C代码;
图3图解了根据本发明的实施方案的示例图片分类。
具体实施方式
现在详细参考本发明的实施方案,其例子在附图中进行了说明。
本发明提供了一种基于预测性视频编码器的速率模型的自适应速率控制算法。该速率模型是称为图片成本的成本的函数,其被表示为预测成本和剩余成本的加权总和,并且适应视频序列的局部特征。如在此所使用的预测成本表示产生误差图片所需的比特的估计数,并且如在此所使用的剩余成本描述对产生的误差图片进行编码的难度。自适应模型用于估计编码图片所需的比特数。此外,该模型可以包括场景变化检测器、静止图片检测器和动画(flash)检测器以更精确地适应图片的特征。
出于示例的目的,关于利用GOP结构中的I、P和B图片在H.264视频编码器中的实现描述根据本发明的自适应模型。然而,本领域技术人员将很容易理解本发明的自适应模型可以应用于其他视频编码系统标准,诸如任何MPEG标准。
如图1中所示,示例编码器100具有两个功能模块:预处理器101以及主处理器103。预处理器101读取一系列的输入视频帧,检测场景变化、动画和/或静止图片,以及基于视频帧内的信息确定GOP的大小。预处理器101还估计被用于计算GOP中图片的预测和剩余成本的量化参数(QP)。主处理器103通过执行速率控制、运动估计、模式选择以及熵编码来处理每个图片。
预处理器101的第一个步骤是分类场景以使速率控制稳定。预处理器101通过确定场景变换、动画图片以及静止图片来分类场景。图片n和先前图片n-1之间的场景变化是基于M×N大小的共址块的平均值的差别和这些块的绝对差的总和(SAD)来确定的。
例如可以通过将当前图片的平均值和先前图片的平均值之间的差别与预定阈值进行比较以及比较当前图片像素和先前图片中对应像素之间的差别的平均值来确定当前图片和先前图片之间的改变数量,来检测场景的变化。如果变化的数量大于阈值,那么就已经有场景变化。
接着,预处理器确定所检测的场景变化是否是真实的场景变化或相反是动画图片。如果当前图片n被确定为场景变化,但是下一个图片n+1类似于先前的图片n-1,那么当前的图片就被认为是动画图片而不是场景变化图片,并且该动画标志被设置为打开,而场景变化标志被设置为关闭。
当检测到静止图片时,标志与图片中静止宏块的数量(num_still_mb)一起被转发到主处理器。检测静止图片的示例方法通过确定图片中静止宏块的数量而开始。例如,这可以通过将宏块的绝对差的总和(SAD)与指定的阈值StillMBthres进行比较来实现。如果图片中静止宏块的百分比大于指定的值,例如96%,并且成本预测小于指定的阈值,那么就认为图片是静止的。
预处理器还基于场景变化的位置来设置GOP大小GOPSIZE,或者如果在例如15个的指定图片数量内没有发生场景变化,该预处理器则设置最大的GOP大小。GOP通常具有不超过一个设置有场景变化标志的图片,并且开始于I图片。
接着,预处理器估计将被用于计算GOP中图片的预测成本和剩余成本的量化参数QP1。随着量化参数的下降,预测成本和剩余成本都趋向于增加。因此,用于成本计算的量化参数(QP1)和用于实际编码的量化参数(QP2)之间的明显差别将导致主处理器不能精确估计每个图片所要求的比特数,并且因此处理器不能提供精确的速率控制。为了使得图片的预测成本和剩余成本对主处理器中的速率控制更有用,基于图片的时空复杂度、目标比特率以及每秒的宏块数量来估计QP1。由于对邻近的GOP使用不同的QP使得成本更少相关,所以来自先前GOP的QP保持不变,除非发生场景变化,或者场景复杂度有很大改变。图2图解了用于估计QP1的示例伪C代码算法。
基于对量化参数QP1的估计,预处理器计算成本。对当前GOP中的每个图片计算预测成本和剩余成本,predCost[i]和resiCost[i],在场编码模式中i=0,1,...,2*GOPSIZE-1,而在帧编码模式中i=0,2,...,2*GOPSIZE-2。这些成本是图片中所有宏模块的成本的总和,并且用于主处理器中的比特分配和速率控制。预测成本predCost[i]表示产生误差图片(场或帧)所需的比特的估计数。这些比特多数来自图片间的预测和/或图片内的预测。剩余成本resiCost[i]表示编码预测误差图片的成本。这可能是例如绝对差的总和(SAD)、绝对转换差别的总和(SATD)或描述编码误差图片的难度的任何其他测量。为了更精确地计算成本,预处理器还可以执行简单运动估计以及粗编码模式决定。
主处理器103通过执行例如速率控制、次像素运动估计、模式选择以及熵编码来编码每个图片。
在主处理器中通过查看缓冲器状态以及当前GOP中的所有剩余图片来执行当前图片的比特分配以及QP估计。根据本发明的基于模型的速率控制算法的目的在于满足被分配给不同图片的这些QP之间的给定关系。该关系可以取决于另一个处理单元以及每个图片的复杂度和/或图片类型。例如,对于当前的  GOP,QP尽可能地保持为稍大一点的常数,例如,对于B图片是+2。由于B图片不用作预测其它图片中的参考图片,所以指定较大的QP来编码B图片。使用从预处理器接收的预测成本predCost[i]和剩余成本resiCost[i]以及每个图片所属的分类的特征来估计编码每个图片所需要的比特数。
根据本发明的示例实施方案,GOP内的图片被分到分类中,以精确地表征不同的编码方案以及一定参考图片的可用性。例如,可以将图片分到以下九个分类的一个分类中:P帧(P_Frame)、P顶场(P_Top)、具有多于一个参考场的P底场(P_Bottom)、B帧(B_Frame)、编码有离开一个场的参考场的B场(B_Close)、未编码有离开一个场的参考场的B场(B_Far)、I帧(I_Frame)、I场(I_Field)和仅编码有一个参考场的P底场(PI_Field)。PI_Field用于当场不允许参照先前GOP中的图片时每个GOP中的首帧的底场。图3图示了根据本发明的示例实施方案的图片分类。
每个分类通过诸如下面所示的结构来表征,其包括下面:用于编码特定分类中的图片的平均QP;用于该分类的平均预测成本;用于该分类的平均剩余成本,预测成本和所用的实际比特数之间的关系;剩余成本和编码转换系数所用的实际比特数之间的关系;用于编码图片的实际比特数;和总的图片成本。
图片的第j分类是通过结构RefRCda ta[j]来表征的,该结构包括:
RefRCda ta[j].QP2:表示用于编码该分类中的图片的平均QP;
RefRCda ta[j].predCost:表示平均预测成本;
RefRCda ta[j].resiCost:表示平均剩余成本;
RefRCda ta[j].pred_cw.表示predCost和预测中实际使用的比特数之间的关系,被计算为预测所用的实际比特数除以平均预测成本;
RefRCda ta[j].resi_cw:表示resiCost和编码转换系数的实际比特数之间的关系,被计算为剩余成本的实际比特数除以平均剩余成本;
RefRCda ta[j].outBits:表示用于编码图片的实际比特数;以及
RefRCda ta[j].pictureCost:=pred_cw*predCost+resi_cw*resiCost公式.(1)
给定GOP的大小以及成本信息,主处理器的速率控制算法执行三个主要功能:初始化速率控制;比特分配和QP选择以及更新参考数据。
在处理每个GOP之前如下初始化速率控制。
首先,读取GOP中所有图片的预测成本predCost[i]和剩余成本resiCost[i]以及用于预处理器中的量化参数QP1。使用下面的公式(2)设置编码GOP中的剩余图片的目标比特数target_bits_gop:target_bits_gop=average_bits_gop-bufferStatus/2.公式(2)
如果设置了场景变化标志,那么就重新设置RefRCDa ta[j],j=0,...,8中的信息。为了精确地重新设置RefRCDa ta[j],通过离线训练(off-line training)来确定init_actual_pred_bits对predCost的关系和init_actual_resi_bits对resiCost的关系。
为了精确地重新设置RefRCDa ta[j],利用分别用于三个不同图片类型(I,P,&B)的很多序列、QP1(来自预处理器)以及QP2(在编码当前图片中要使用)通过离线训练,获得init_actual_pred_bits对predCost的关系和init_actual_resi_bits对resiCost的关系。使用分段线性近似方法执行曲线拟合技术。使用这些功能,如下重新设置RefRCData[j]:
使用来自预处理器的成本信息和图片编码类型,以及QP1的初始化函数,找出提供最接近于公式(2)中给出的target_bits_gop的QP2。接着,计算由j索引的每个分类的GOP上的predCost和resiCost的平均值,并且分别存储在RefRCda ta[j].predCost和RefRCda ta[j].resiCost中。使用QP1和QP2的初始化函数获得分别对应于predCost和resiCost的平均值的init_actual_pred_bits和init_actual_resi_bits。然后使用下面的公式计算pred_cw和resi_cw:
RefRCda ta[j].pred_cw=init_actual_pred_bits/RefRCdata[j].predCost,以及
RefRCda ta[j].resi_cw=init_actual_resi_bits/RefRCda ta[j].resiCost
最后,使用公式(1)计算RefRCda ta[j].pictureCost,并且将相同的值存储在RefRCda ta[j].outBits中。
在初始化速率控制之后,主处理器执行比特分配和QP选择。根据本发明的实施方案,主处理器使用从预处理器接收的信息以及存储在RefRCda ta[j]中的更新的参考数据来如下估计编码由k索引的当前图片的比特数和QP(QP2)。
步骤1:对于第k个图片,用于GOP的量化参数gopQP被计算为存储在RefRCda ta中的QP的加权平均:
gopQP=∑i≥kRefRCda ta[j=ref_index[i]].QP2/∑i≥kI(i),公式(3)其中,ref_index[i]是第i个图片所属的分类,并且如果由i索引的图片属于当前GOP,则I(i)=1,否则I(i)为0。用于B图片的QP2在被相加之前被-2调整。
步骤2:使用公式(1)计算GOP中的图片的图片成本pictureCost[i](i≥k)。
步骤3:使用公式(4)计算用于编码QP=gopQP的第i个图片的比特数out_bits(i,gopQP)。
out_bits(i,gopQP)=RefRCdata[j].outBits*(pictureCost[i]/refRCdata[j].pictureCost)β[j]RefRCdata[j].QP2-gopQP,公式(4)其中j=ref_index[i],β[j]分别表示QP减少或增加1比特的增加或降低。β[j]可以通过离线训练获得。公式(4)假设输出比特的总量与通过公式(1)获得的pictureCost成正比。然后,计算编码QP=gopQP的所有剩余图片所需的比特数:
bits_total(gopQP)=∑i≥kout_bits(i,gopQP)公式(5)
步骤4:通过根据bits_total(QP)和target_bits_gop之间的差别适当调整QP,发现产生最接近于target_bits_gop的bits_total(QP)的QP2:
out_bits(i,QP2)=out_bits(i,gopQP)*β[j]gopQP-QP2公式(6)
bits_total(QP2)=∑i≥kout_bits(i,QP2)公式(7)
步骤5:如果图片k属于B_Frame、B_Close或B_Far,就将QP2增加2。
在编码图片k之后,如下更新参考数据RefRCdata[j=ref_index[k]]和用于速率控制的参数:
步骤1:如下更新target_bits_gop:
errorBits=actualOutBits-out_bits(k,QP2),
target_bits_gop=target_bits_gop-actualOutBits+errorBits/2公式(8)
在当前的图片估计误差稍大的情况下,公式(8)有效地分配编码下一图片的比特。
步骤2:设置图片k所属的分类j=ref_index[k]。
步骤3:如果图片k是当前场景中分类j中的第一个图片,那么设置γ为1。否则,如下计算γ:
pCost_c=RefRCDa ta[j].pred_cw*predCost[k]+RefRCDa ta[j].resi_cw*resiCost[k]
pCost_r=RefRCDa ta[j].pred_cw*RefRCDa ta[j].predCost+RefRCDa ta[j].resi_cw*RefRCDa ta[j].resiCost[k]
γ=f(|pCost_c-pCost_r|/max(pCost_c,pCost_r))公式(9)
该γ是用于更新公式(10)-(14)中的RefRCData[j]的加权因子,并且表示图片k与在相同分类中的先前编码的图片的差别程度。如在公式中可以看到的,如果该图片看起来非常不同于先前的图片,那么可以在刚编码的图片的特征上给出更多的权重。
步骤4:更新分类j的QP2:
QP2_ref=RefRCDa ta[j].QP2
RefRCDa ta[j].QP2=γ*QP2+(1-γ)*QP2_ref(10)
步骤5:从实际编码统计获得分别为actual_pred_bits[k]/predCost[k]如actual_resi_bits[k]/resiCost[k]的图片k的pred_cw[k]如resi_cw[k]。
target_bits_gop=target_bits_gop-actualOutBits+errorBits/2公式(8)
在当前的图片估计误差稍大的情况下,公式(8)有效地分配编码下一图片的比特。
步骤2:设置图片k所属的分类j=ref_index[k]。
步骤3:如果图片k是当前场景中分类j中的第一个图片,那么设置γ为1。否则,如下计算γ:
pCost_c=RefRCDa ta[j].pred_cw*predCost[k]+RefRCDa ta[j].resi_cw*resiCost[k]
pCost_r=RefRCDa ta[j].pred_cw*RefRCDa ta[j].predCost+RefRCDa ta[j].resi_cw*RefRCDa ta[j].resiCost[k]
γ=f(|pCost_c-pCost_r|/max(pCost_c,pCost_r))公式(9)
该γ是用于更新公式(10)-(14)中的RefRCDa ta[j]的加权因子,并且表示图片k与在相同分类中的先前编码的图片的差别程度。如在公式中可以看到的,如果该图片看起来非常不同于先前的图片,那么可以在刚编码的图片的特征上给出更多的权重。
步骤4:更新分类j的QP2:
QP2_ref=RefRCDa ta[j].QP2
RefRCDa ta[j].QP2=γ*QP2+(1-γ)*QP2_ref(10)
步骤5:从实际编码统计获得分别为actual_pred_bits[k]/predCost[k]和actual_resi_bits[k]/resiCost[k]的图片k的pred_cw[k]和resi_cw[k]。
步骤6:调整pred_cw和resi_cw并且然后更新RefRCDa ta[j].pred_cw和RefRCDa ta[j].resi_cw:
pred_cw_ref=RefRCDa ta[j].pred_cw*β[j]QP2_ref-RefRCda ta[j].QP2
resi_cw_ref=RefRCDa ta[j].resi_cw*β[j]QP2_ref-RefRCda ta[j].QP2
pred_cw_k=pred_cw[k]*β[j]QP2_ref-QP2
resi_cw_k=resi_cw[k]*β[j]QP2_ref-QP2
RefRCDa ta[j].pred_cw=γ*pred_cw_k+(1-γ)*pred_cw_ref
RefRCDa ta[j].resi_cw=γ*resi_cw_k+(1-γ)*resi_cw_ref公式(11)
步骤7:调整outBits并且然后更新RefRCDa ta[j].outBits为:
outBits_ref=RefRCDa ta[j].outBits*β[j]QP2_ref-RefRCda ta[j].QP2
outBits_k=actualOutBits*β[j]QP2_ref-QP2
RefRCData[j].outBits=γ*outBits_k+(1-γ)*outBits_ref公式(12)
步骤8:更新RefRCDa ta[j].predCost和RefRCDa ta[j].resiCost为:
RefRCDa ta[j].predCost=γ*predCost[k]+(1-γ)*RefRCDa ta[j].predCost公式(13)
RefRCDa ta[j].resiCost=γ*resiCost[k]+(1-γ)*RefRCDa ta[j].resiCost公式(14)
步骤9:使用公式(1)更新RefRCDa ta[j].pictureCost。
利用分配给当前图片k的比特数out_bits(k,QP2)以及如上所述获得的每个宏块的成本信息,可以很容易地将速率控制扩展到宏块层速率控制。例如,宏块可以被分成5类(由j索引,0-4):
MB_Normal_H(j=0):具有人类眼睛十分敏感的数据的正常MB;MB_Normal_M(j=1):具有人类眼睛不太敏感的数据的正常MB;MB_Normal_L(j=2):具有人类眼睛不敏感的数据的正常MB;MB_Random(j=3):具有随机信号或类似于随机信号的MB;以及MB_Still(j=4):根本没有移动;
MB的第j个分类由包含下列内容的结构RefMBda ta[j]来表征:
RefMBda ta[j].QP2:用于编码分类中的MB的平均QP
RefMBda ta[j].predCost:平均预测成本
RefMBda ta[j].resiCost:平均剩余成本
RefMBda ta[j].pred_cw:predCost和预测中使用的实际比特数之间的关系。它被计算为actual_number_of_bits_for_prediction/predCost。
RefMBda ta[j].resi_cw:resiCost和编码转换系数的实际比特数之间的关系。它被计算为actual_number_of_bits_for_residual/resiCost。
RefMBda ta[j].outBits:用于编码MB的实际比特数
RefMBda ta[j].MBCost:=pred_cw*predCost+resi_cw*resiCost公式(15)
在编码第1个MB的时候,目的是发现用于编码当前MB的QP以及符合比特预算要求的所有相继发生的宏块。QP的小差别可以被应用到每个分类j,如公式(16):
QPMB[j]=QP+d[j]公式(16)
该方法非常类似于上述B图片的情况,其中B图片的QP被增加2。d[j]的例子如下:
d[0]=-2,d[1]=0,d[2]=2,d[3]=5,d[4]=0公式(17)
公式(17)向人类的眼睛对之较不敏感的MB分配了较大的QP,并且向人类的眼睛对之更敏感的MB分配了较小的QP。
然后,如果图片层速率控制中的GOP被图片替代,并且图片被MB替代,那么就提供了MB层速率控制算法。
类似地,该发明的速率控制模型可以被扩展到切片层速率控制的情况。
对本领域技术人员来说显而易见的是,在不偏离本发明的精神或范围的情况下可以在本发明中进行各种修改和变化。因此,本发明意在覆盖本发明的修改和变化,只要它们落在所附权利要求及其等同物的范围之内。
尽管所提出的算法还可以应用于切片层速率控制和/或MB层速率控制,但是我们仅详细描述了图片层速率控制算法,并且简要解释我们如何将其扩展到切片或宏块之后的速率控制。
尽管速率控制方法仅仅描述了使用被称为GOP的固定窗口的情况,其中窗口中剩余图片的数量降低直到检测到下一个GOP开始为止,但是该方法可以很容易被修改为使用包括固定数量的帧的滑动窗口,例如15个帧。在这种情况下,窗口中的一些帧可以与其他帧属于不同的GOP。
该方法还可以被修改成具有包括多个连续GOP而不是一个GOP的固定窗口,以通过预见更多帧来更好地控制速率。在使用两个GOP并且每个GOP有15个帧的情况下,窗口中帧的数量在每个GOP的开始变为30,并且在每个GOP的结束降低至15。

Claims (12)

1.一种在预测性视频编码器中执行速率控制的方法,包括:
将视频序列中的图片分类;
估计第一量化参数;
基于估计的量化参数计算视频序列中每个图片的图片成本;
初始化速率控制数据;
基于图片成本和速率控制数据执行比特分配和量化参数选择;
编码视频序列;以及
更新速率控制数据。
2.根据权利要求1所述的方法,其中所述图片成本是预测成本和剩余成本的加权总和。
3.根据权利要求2所述的方法,其中所述预测成本是产生误差图片所需的比特数的估计,以及所述剩余成本描述了编码所得误差图片的难度。
4.根据权利要求1所述的方法,其中将视频序列中的图片分类包括:
检测视频序列中的场景变化;以及
基于所检测的场景变化设置图片组(GOP)的大小。
5.根据权利要求1所述的方法,进一步包括:
将GOP中的每个图片分类,其中分类表征不同的编码方案以及一定参考图片的可用性。
6.根据权利要求5所述的方法,其中通过用于编码具体分类中的图片的平均量化参数、用于该分类的平均预测成本、用于该分类的平均剩余成本、预测成本和所用的实际比特数之间的关系、剩余成本和编码图片所用的实际比特数之间的关系以及总图片成本来表征每个分类。
7.根据权利要求1所述的方法,其中所述速率控制数据包括:
表示用于编码分类中的图片的量化参数的数据;
表示平均预测成本的数据;
表示平均剩余成本的数据;
表示预测成本和预测中所用的实际比特数之间的关系的数据;
表示剩余成本和编码转换系数所用的实际比特数之间的关系的数据;以及
表示编码图片所用的实际比特数的数据。
8.根据权利要求1所述的方法,其中更新所述控制数据包括:
将GOP的量化参数计算为存储在控制数据中的量化参数的加权平均;
计算GOP中的图片的图片成本;
计算用于编码第i个图片的比特数;以及
计算产生最接近于目标比特数的比特数的量化参数。
9.一种预测性视频编码器,包括:
预处理器,其被配置为计算与视频序列中的每个图片相关的图片成本;以及
主处理器,其被配置为基于该图片成本编码视频序列。
10.根据权利要求9所述的编码器,其中所述图片成本是预测成本和剩余成本的加权总和。
11.根据权利要求10所述的编码器,其中预测成本是产生误差图片所需的比特数的估计,以及所述剩余成本描述了编码所得误差图片的难度。
12.根据权利要求9所述的编码器,其中所述预处理器进一步被配置为:
通过确定视频序列中的场景变化、动画图片以及静止图片来分类场景;以及
基于场景的分类设置GOP的大小。
CN200680015464.3A 2005-03-09 2006-03-09 用于预测性视频编码器的基于模型的速率控制 Pending CN101194518A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/074,661 US7403562B2 (en) 2005-03-09 2005-03-09 Model based rate control for predictive video encoder
US11/074,661 2005-03-09

Publications (1)

Publication Number Publication Date
CN101194518A true CN101194518A (zh) 2008-06-04

Family

ID=36954063

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200680015464.3A Pending CN101194518A (zh) 2005-03-09 2006-03-09 用于预测性视频编码器的基于模型的速率控制

Country Status (3)

Country Link
US (1) US7403562B2 (zh)
CN (1) CN101194518A (zh)
WO (1) WO2006096869A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102202220A (zh) * 2010-03-25 2011-09-28 佳能株式会社 编码设备及其控制方法
CN104754361A (zh) * 2013-12-28 2015-07-01 同济大学 图像编码、解码方法及装置
CN111757107A (zh) * 2020-06-29 2020-10-09 北京百度网讯科技有限公司 一种视频编码方法、装置、设备及介质

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9667999B2 (en) * 2005-04-25 2017-05-30 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for encoding video data
US20060256857A1 (en) * 2005-05-16 2006-11-16 Douglas Chin Method and system for rate control in a video encoder
US20060256858A1 (en) * 2005-05-16 2006-11-16 Douglas Chin Method and system for rate control in a video encoder
US8503520B2 (en) * 2006-09-01 2013-08-06 Thomson Licensing Method and apparatus for encoding a flash picture occurring in a video sequence, and for decoding corresponding data for a flash picture
EP2120461B1 (en) 2007-03-14 2011-07-06 Nippon Telegraph and Telephone Corporation Code quantity estimating method and device, their program, and recording medium
WO2008111458A1 (ja) 2007-03-14 2008-09-18 Nippon Telegraph And Telephone Corporation 符号化ビットレート制御方法及び装置、そのプログラム並びにプログラムを記録した記録媒体
KR101083379B1 (ko) 2007-03-14 2011-11-14 니폰덴신뎅와 가부시키가이샤 움직임 벡터 탐색 방법 및 장치 그리고 프로그램을 기록한 기록매체
WO2008111454A1 (ja) 2007-03-14 2008-09-18 Nippon Telegraph And Telephone Corporation 量子化制御方法及び装置、そのプログラム並びにプログラムを記録した記録媒体
US8582652B2 (en) * 2007-10-30 2013-11-12 General Instrument Corporation Method and apparatus for selecting a coding mode
KR101369161B1 (ko) 2008-09-05 2014-03-05 에스케이 텔레콤주식회사 예측 방향 전환 장치 및 방법과 그를 이용한 영상 부호화/복호화 장치 및 방법
WO2010027170A2 (ko) * 2008-09-03 2010-03-11 에스케이텔레콤 주식회사 예측 방향 전환과 선택적 부호화를 이용한 영상 부호화/복호화 장치 및 방법
CN101527846B (zh) * 2008-12-19 2010-11-03 无锡云视界科技有限公司 一种基于马太效应的h.264可变码率控制方法
US8588296B2 (en) * 2009-07-02 2013-11-19 Dialogic Corporation Bitrate control algorithm for video transcoding systems
US20110255594A1 (en) * 2010-04-15 2011-10-20 Soyeb Nagori Rate Control in Video Coding
JP5871602B2 (ja) * 2011-12-19 2016-03-01 キヤノン株式会社 符号化装置
US10003803B1 (en) 2012-04-18 2018-06-19 Matrox Graphics Inc. Motion-based adaptive quantization
US10003802B1 (en) 2012-04-18 2018-06-19 Matrox Graphics Inc. Motion-based adaptive quantization
US9300984B1 (en) 2012-04-18 2016-03-29 Matrox Graphics Inc. Independent processing of data streams in codec
US9210381B2 (en) * 2013-06-24 2015-12-08 Dialogic Corporation Resource-adaptive video encoder sharing in multipoint control unit
US9426475B2 (en) * 2013-06-25 2016-08-23 VIXS Sytems Inc. Scene change detection using sum of variance and estimated picture encoding cost
US9565440B2 (en) * 2013-06-25 2017-02-07 Vixs Systems Inc. Quantization parameter adjustment based on sum of variance and estimated picture encoding cost
CN106961603B (zh) * 2017-03-07 2018-06-15 腾讯科技(深圳)有限公司 帧内编码帧码率分配方法和装置
US10360695B1 (en) 2017-06-01 2019-07-23 Matrox Graphics Inc. Method and an apparatus for enabling ultra-low latency compression of a stream of pictures
CN109413427B (zh) * 2017-08-17 2022-04-08 腾讯科技(深圳)有限公司 一种视频帧编码方法及终端
US10721471B2 (en) * 2017-10-26 2020-07-21 Intel Corporation Deep learning based quantization parameter estimation for video encoding

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5134476A (en) * 1990-03-30 1992-07-28 At&T Bell Laboratories Video signal encoding with bit rate control
JP2699703B2 (ja) * 1991-07-31 1998-01-19 松下電器産業株式会社 動き補償予測方法とそれを用いた画像信号符号化方法
US5231484A (en) * 1991-11-08 1993-07-27 International Business Machines Corporation Motion video compression system with adaptive bit allocation and quantization
KR100355375B1 (ko) * 1995-11-01 2002-12-26 삼성전자 주식회사 영상부호화장치에있어서양자화간격결정방법및회로
CA2208950A1 (en) * 1996-07-03 1998-01-03 Xuemin Chen Rate control for stereoscopic digital video encoding
JPH1079948A (ja) * 1996-09-03 1998-03-24 Mitsubishi Electric Corp 画像符号化装置
KR100297830B1 (ko) * 1996-11-09 2001-08-07 윤종용 영상단위별 비트발생량 조절 장치 및 방법
US6023296A (en) * 1997-07-10 2000-02-08 Sarnoff Corporation Apparatus and method for object based rate control in a coding system
US6690833B1 (en) * 1997-07-14 2004-02-10 Sarnoff Corporation Apparatus and method for macroblock based rate control in a coding system
US6192075B1 (en) * 1997-08-21 2001-02-20 Stream Machine Company Single-pass variable bit-rate control for digital video coding
US6434196B1 (en) * 1998-04-03 2002-08-13 Sarnoff Corporation Method and apparatus for encoding video information
US6275614B1 (en) * 1998-06-26 2001-08-14 Sarnoff Corporation Method and apparatus for block classification and adaptive bit allocation
EP2278817B1 (en) * 2001-09-12 2012-05-23 Panasonic Corporation Transmitting and receiving apparatus
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

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102202220A (zh) * 2010-03-25 2011-09-28 佳能株式会社 编码设备及其控制方法
CN102202220B (zh) * 2010-03-25 2015-05-13 佳能株式会社 编码设备及其控制方法
CN104754361A (zh) * 2013-12-28 2015-07-01 同济大学 图像编码、解码方法及装置
WO2015096822A1 (zh) * 2013-12-28 2015-07-02 同济大学 图像编码、解码方法及装置
CN104754361B (zh) * 2013-12-28 2018-01-23 同济大学 图像编码、解码方法及装置
US10194150B2 (en) 2013-12-28 2019-01-29 Tongji University Method and device for coding image, and method and device for decoding image
CN111757107A (zh) * 2020-06-29 2020-10-09 北京百度网讯科技有限公司 一种视频编码方法、装置、设备及介质
US11700373B2 (en) 2020-06-29 2023-07-11 Beijing Baidu Netcom Science And Technology Co., Ltd. Method for coding video and related device
CN111757107B (zh) * 2020-06-29 2024-03-05 北京百度网讯科技有限公司 一种视频编码方法、装置、设备及介质

Also Published As

Publication number Publication date
US7403562B2 (en) 2008-07-22
WO2006096869A3 (en) 2007-06-21
US20060203907A1 (en) 2006-09-14
WO2006096869A2 (en) 2006-09-14

Similar Documents

Publication Publication Date Title
CN101194518A (zh) 用于预测性视频编码器的基于模型的速率控制
CN100518329C (zh) 动态改变视频编码的分辨率的系统和方法
CN102006471B (zh) 视频编码的图片级速率控制
KR100468726B1 (ko) 실시간 가변 비트율 제어를 수행하는 부호화 장치 및 방법
US7720145B2 (en) Model based bit rate control for a macroblock encoder
JP3166716B2 (ja) フェード画像対応動画像符号化装置及び符号化方法
US7035334B2 (en) Device and method for controlling image encoding, encoding system, transmission system and broadcast system
JP2004166183A (ja) 動画像符号化装置及び方法、動画像符号化方式変換装置及び方法
KR19990087265A (ko) 블록 바탕 비디오 코딩 시스템에서 동적 코딩 비율 제어
JP2003018603A (ja) 動画像符号化方法及び装置
US8090029B2 (en) Dynamic image encoding device and method
JPH0865677A (ja) 動画像符号化装置
GB2459671A (en) Scene Change Detection For Use With Bit-Rate Control Of A Video Compression System
US6879632B1 (en) Apparatus for and method of variable bit rate video coding
JP2001008215A (ja) 動画像符号化装置及びその方法
US20070104271A1 (en) Moving picture encoding system
US20050254576A1 (en) Method and apparatus for compressing video data
KR100742762B1 (ko) 움직임 예측 정보 검출장치
US8780977B2 (en) Transcoder
WO2008079353A1 (en) Scaling the complexity of video encoding
JPH11205796A (ja) 画像情報のエンコード方法
Yu et al. A perceptual bit allocation scheme for H. 264
JP2001526850A (ja) 画像符号化器における量子化値の最適化方法及び装置
KR101168007B1 (ko) 실시간 비디오 부호화를 위한 적응적인 유닛-레벨 비트율 제어방법
KR20030009575A (ko) 신경망 분류기를 이용한 동영상 전송률 제어 장치 및 그방법

Legal Events

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

Open date: 20080604