使用运动估计失真的帧级率控制的制作方法
【专利摘要】本发明为使用运动估计失真的帧级率控制。这里描述的是与视频编码中的帧级量化参数(QP)调整相关的技术。具体地,描述一种实现比特率控制(BRC)算法的方法,以在视频编码过程中动态地控制QP。
【专利说明】使用运动估计失真的帧级率控制
[0001]相关申请
[0002]本申请要求2012年4月23日提交的美国临时专利申请N0.61/637,021的优先权的权益。
【背景技术】
[0003]视频编码是准备视频(视频数据)的过程,其中,视频被编码以满足对于记录和重放来说合适的格式和规范。在视频编码和视频压缩中,运动估计是一项重要的并且计算量繁重的任务。
[0004]视频编码专家组(VCEG)联合国际标准化组织(ISO)/国际电工委员会(IEC)联合工作组、运动图像专家组(MPEG),已经研发了先进视频编码(AVC)标准。AVC标准,或AVC,也称为H.264。AVC是视频编码标准的一个例子,并且是用于高清晰度视频的记录、压缩和分配的最惯用格式的一种。其他标准包括但不限于:运动图像专家组2(MPEG2),可分级视频编码(SVC),和高效视频编码(HEVC)等。
[0005]在典型的视频编码过程中,第一阶段是分析帧以找到空间和时间冗余,该冗余可被开发用来减少描述视频的给定帧的比特数。具体地,可从空间相邻或时间相邻预测每个宏块,其中编码器的目标是预测具有最小数量的误差的当前宏块,这是因为误差校正术语代表在最终比特流的比特中的最大成本。该典型视频编码过程的第二阶段可基于第一阶段,要求编码的第二通道。
【专利附图】
【附图说明】
[0006]图1示出了用于实现视频编码的示例性系统。
[0007]图2示出了在单一通道中用于实现比特率控制(BRC)算法的示例性视频编码器。
[0008]图3示出了用于动态调整量化参数(QP)的示例性查找表。
[0009]图4示出了用于在视频编码中实现比特率控制(BRC)的示例性方法。
[0010]图5是示例性系统的示意图。
[0011]图6是示例性设备的示意图,均为依照本公开的至少一些实施例而布置。
[0012]参考附图,提供后续的详细描述。在这些图中,首次出现附图标记的图中,附图标记的最左侧数字通常标识该图。在不同图中,使用相同的附图标记表示类似或相同的项目。
【具体实施方式】
[0013]本文件公开了一个或多个系统、装置、方法等,用于实现比特率控制(BRC)算法,以在单一通道中执行视频压缩。在一个实施例中,BRC算法可在视频编码中实现量化参数(QP)的动态调整。QP可调节多少空间细节被保留。例如,当QP相对小时,几乎所有的空间细节被保留。随着QP的增加,一些空间细节被集中,这样比特率下降,代价为增大失真和质量损失。在一个实现中,基于内部(I)帧、预测(P)帧和/或双向(B)帧编码方式,使用BRC算法来计算失真率。在该实现中,失真率包括在调整当前帧失真上的调整平均失真的比率。该调整平均失真可包括对于给定数量的帧的I帧、P帧或B帧失真的历史平均,而调整当前帧失真包括当前图像帧的帧级失真,或该调整当前帧失真包括限定所述当前图像帧的宏块失真的和。在一个实现中,所述失真率与用于特定的I帧、P帧或B帧类型的阈值比较,这些类型包括不同的阈值。如果所计算出的失真率大于用于特定的I帧、P帧或B帧类型的阈值,那么场景变化被声明。在场景变化声明的情形下,BRC算法可重新设置所有统计、系数、历史QP,并进一步将用于当前帧的QP设置为其初始QP值。否则,如果没有场景变化被声明,那么BRC算法可相应于所述计算出的失真率的范围调整QP。在一个实现中,实现查找表以基于如上所推导的计算出的失真率来确定QP调整的数量。
[0014]图1示出可用于实现各种描述实施例的示例性系统。但是,很容易理解,这里公开的技术可在其他计算设备、系统和环境中实现。图1所示的计算设备100是计算设备的一个例子,且并不意图建议对计算机和网络结构的使用或功能范围的任何限制。
[0015]在至少一个实现中,计算设备100包括至少一个处理单元102和系统存储器104。依赖于计算设备的精确配置和类型,系统存储104可以是易失性的(诸如RAM),非易失性的(诸如ROM,闪存等),或它们的一些组合。系统存储104可包括操作系统106, —个或多个程序模块108,在某些实现中,其可实现这里描述的BRC算法的方法和技术。系统存储器104可进一步包括程序数据110,其可包括在本文件后面将被描述的宏块/形状数据库。此外,编码器112也包含在本例中。编码器112可用于实现如这里所述的视频编码、运动估计、运动补偿等。编码器112可操作地耦合到处理单元102、系统存储器104和这里进一步描述的其他存储器、输入/输出、设备和其他未示出的部件/设备,并与它们进行通信。计算设备100的基本实现由虚线114标定出。例如,在某些实现中,编码器112可以是设在中央处理单元(CPU)中的集成图形芯片的一部分,其包括3D和媒体,具有包括视频(尤其是视频解码/编码)的媒体功能。在某些实现中,专用集成电路或ASIC可包括编码器112,其作为固定功能的编码器。
[0016]可以预期的是,具有视频编码的设备可利用所描述的技术、方法和设备。这些设备的例子包括媒体播放器、视频会议设备等。
[0017]在某些实现中,程序模块108可包括具体模块(未示出),诸如编码解码器或基于软件/固件的编码器,其被配置为实现这里描述的视频编码技术和方法。例如,在某些实现中,这些模块可执行编码器112的处理。示例性编码解码器包括AVC、VCUATVC和SVC。
[0018]计算设备100可具有附加特征或功能。例如,计算设备100还可包括附加数据存储设备,诸如可移动储存器116和不可移动储存器118。在某些实现中,可移动储存器116和不可移动储存器118是计算机可存取媒介,用于存储可由处理单元102执行从而实现上述的各种功能的指令。一般地,可使用软件、硬件(例如固定逻辑电路)或使用这些实现的组合实现参考附图描述的任何功能。程序代码可存储在一个或多个计算机可存取媒介,或其他计算机可读存储设备中。因此,这里描述的过程和部件可由计算机程序产品来实现。如上所提到的,计算机可存取媒介包括易失性和非易失性的,可移动和不可移动的媒介,这些媒介可以用于信息存储的任何方法或技术实现,诸如计算机可读指令、数据结构、程序模块、或其他数据。术语“计算机可存取介质”和“计算机可存取媒介”涉及非暂时性存储设备,包括但并不限于:RAM、ROM、EEPR0M、闪存或其他存储技术、CD-ROM、数字通用光盘(DVD)或其他光学储存器、盒式磁带、磁带、磁盘储存器或其他磁性储存设备,或任何其他非暂时性存储介质,其可用于存储由例如计算设备100的计算设备存取的信息。任何这样的计算机可存取媒介可以是计算设备100的一部分。
[0019]在一个实现中,可移动储存器116是计算机可存取介质,其上存储有一组指令。当处理单元102执行该组指令时,该组指令使得处理单元102执行如这里所述的操作、任务、功能和/或方法和其任何变型。
[0020]计算设备100还可包括一个或多个输入设备120,诸如键盘、鼠标、笔、语音输入设备、触屏输入设备等。计算设备100可附加地包括一个或多个输出设备122,诸如显示器、扬声器、打印机等。
[0021]计算设备100还可包括一个或多个通信连接124,其允许计算设备100通过连接126与一个或多个其他设备(未示出)有线或无线通信。可以理解,所示的计算设备100是一个合适设备的例子,而非意图建议任何对于各种所述的实施例的使用范围或功能的限制。
[0022]图2示出示例性视频编码器112,其实现BRC算法,以在单一通道中执行视频压缩。换言之,通过动态地调整QP来执行单一通道视频压缩,以在编码和比特率传输期间保持质量。在某些实现中,视频编码器112可实现为中央处理单元的一部分、集成电路芯片组的一部分,或单个部件/设备。如上所述,在某些实现中,视频编码器112可实现为固件或软件,诸如编码解码器。进一步地,图2仅仅是示意性的,并且可包含附加的块或部件,和/或块或部件的不同排列。
[0023]在一个实现中,视频编码器112可接收来自视频输入200的待编码的图像帧,以产生编码比特流形式的相应编码帧,该比特流包括1、P和/或B帧的序列或组合。在该实现中,视频编码器112的一个或多个块可被配置为执行符合诸如MPEG、H.264等的一个或多个标准的视频编码。在一个实现中,可由运动估计部件202处理从视频输入200接收到的图像帧,从而将接收到的图像帧编码为I帧(即,静止帧)和/或帧间编码帧(即P帧或B帧)编码方式。该I帧编码涉及一种编码方式,其中基于相同帧的宏块呈现图像帧的宏块(即,不参考除其本身之外的任何其他图像帧对图像帧进行编码)。运动估计部件202可使用空间压缩技术来编码I帧。空间压缩技术可按照之上注明的标准执行。相应地,运动估计部件202可操作以确定图像帧中的宏块间的相关性,以产生用于I帧的宏块的压缩或未压缩的呈现。此外,运动估计部件202可产生代表P帧或B帧中的宏块间的位移的运动矢量,其包括在编码方式中的参考帧。运动估计部件202可使用之前存储的图像帧(未示出),其作为P帧和B帧的编码方式的基础。
[0024]在一种实现中,失真估计器部件204被配置为计算在“调整平均失真”和“调整当前帧失真”之间的失真率“a”。对于失真率“a”,配置的计算如以下公式中所示:
【权利要求】
1.一种设备,包括: 一个或多个处理器; 配置到所述处理器的存储器; 配置到所述处理器和所述存储器的视频编码器,其包括: 视频输入,用于提供图像帧; 运动估计器部件,用于接收用于编码的所述图像帧,所述编码包括内部(I)帧、预测(P)帧和/或双向⑶帧编码方式; 失真估计器部件,用于基于所述I帧、P帧和/或B帧编码方式计算失真率; 比特率控制(BRC)部件,用于基于所述失真率动态调整量化参数(QP);以及模式决策部件,用于生成代表所述I帧、P帧和/或B帧编码方式的编码比特流,其中使用所述动态调整的QP传送所述编码比特流。
2.根据权利要求1所述的设备,其中所述视频编码器在单个通道中执行编码。
3.根据权利要求1或2所述的设备,其中所述失真率包括在调整当前帧上的调整平均失真的比率,其中所述调整平均失真包括对于给定数量帧的I帧、P帧或B帧失真的历史均值,其中所述调整当前帧包括当前图像帧的帧级失真或限定所述当前图像帧的宏块失真之和。
4.根据权利要求1或2所述 的设备,其中所述失真率包括在调整当前帧上的调整平均失真的比率,其中所述调整平均失真包括对于所述I帧的按经验定义的阈值;以及对于P帧和B帧的估计历史失真。
5.根据权利要求1或2所述的设备,其中所述失真率与用于所述QP的动态调整的阈值进行比较,其中对于包括不同阈值的不同的I帧、P帧或B帧类型分别执行所述比较。
6.根据权利要求1或2所述的设备,其中所述失真率的计算基于降低的分辨率。
7.根据权利要求1或2所述的设备,其中在所述模式决策部件处的所述QP的最终值被反馈到所述BRC部件,以用于下一图像帧中对QP的动态调整。
8.根据权利要求1或2所述的设备,其中,如果所述失真率大于用于特定的I帧、P帧或B帧类型的阈值,则所述BRC部件声明场景变化,其中在场景变化声明的情形下,所述QP被重新设定为初始值。
9.根据权利要求1或2所述的设备,其中,如果所述失真率小于用于特定的I帧、P帧或B帧类型的阈值,则所述BRC部件声明没有场景变化,其中相应于所述计算出的失真率的数量来维持、减少或增加所述QP的值。
10.根据权利要求1或2所述的设备,其中,如果所述失真率小于用于特定的I帧、P帧或B帧类型的阈值,则所述BRC部件包括用于所述QP的动态调整的查找表。
11.一种实现比特率控制(BRC)算法的视频编码器,包括: 视频输入,用于提供图像帧; 运动估计器部件,用于接收并处理用于编码的所述图像帧; 失真估计器部件,用于基于内部(I)帧、预测(P)帧或双向(B)帧失真的调整平均失真和用于所述图像帧的帧级失真来计算失真率; BRC部件,用于基于所述失真率动态调整量化参数(QP);以及 模式决策部件,用于基于所述动态调整的QP生成编码比特流。
12.根据权利要求11所述的视频编码器,其中所述运动估计器部件确定所述图像帧的宏块间的相关性,以生成用于I帧编码方式的宏块的表示,其中所述运动估计器部件生成表示帧间编码方式中宏块之间的位移的运动矢量。
13.根据权利要求11或12所述的视频编码器,其中所述调整平均失真包括对于给定数量帧的I帧、P帧或B帧失真的历史均值,其中所述图像帧的所述帧级失真包括限定所述当前图像帧的宏块失真之和。
14.根据权利要求11或12所述的视频编码器,其中所述失真率与用于所述QP的动态调整的阈值进行比较,其中对于包括不同阈值的不同的I帧、P帧或B帧类型分别执行所述比较。
15.根据权利要求11或12所述的视频编码器,其中所述帧级失真基于所述图像帧的降低的分辨率。
16.根据权利要求11或12所述的视频编码器,其中所述模式决策部件所使用的所述QP的最终值被反馈到所述BRC部件,作为在下一图像帧中所述QP的动态调整过程中的参考QP0
17.根据权利要求11或12所述的视频编码器,其中,如果所述失真率大于用于特定的I帧、P帧或B帧类型的阈值,则所述BRC部件声明场景变化,其中在场景变化声明的情形下,至少所述QP被重新设定为初始值。
18.根据权利要求11或12所述的视频编码器,其中,如果所述失真率小于用于特定的I帧、P帧或B帧类型的阈值,则所述BRC部件声明没有场景变化,其中相应于所述计算出的失真率的数量来维持、减少或增加所述QP的参考值。
19.根据权利要求11或12所述的视频编码器,其中,如果所述失真率小于用于特定的I中贞、P帧或B帧类型的阈值, 则所述BRC部件包括用于所述QP的动态调整的查找表。
20.根据权利要求11或12所述的视频编码器,其中所述模式决策部件在单个通道中生成所述编码比特流。
21.一种在视频编码中实现比特率控制(BRC)算法的方法,包括: 接收图像帧; 计算所述图像帧的帧级失真; 对于内部(I)帧类型、预测(P)帧类型或双向(B)帧类型计算平均失真; 基于所计算出的帧级失真和所计算出的平均失真计算失真率; 将所述失真率与配置的阈值进行比较,所述阈值包括用于I帧、P帧或B帧类型的单独且不同的阈值; 基于所述失真率调整量化参数(QP)。
22.根据权利要求21所述的方法,其中计算帧级失真包括限定当前图像帧的计算出的宏块失真之和。
23.根据权利要求21或22所述的方法,其中计算帧级失真包括用作参考帧的同一图像帧。
24.根据权利要求21或22所述的方法,其中计算平均失真包括对于给定数量的帧的I帧、P帧或B帧失真的历史均值。
25.根据权利要求21或22所述的方法,其中计算失真率基于所接收到的图像帧的降低的分辨率。
26.根据权利要求21或22所述的方法,其中比较所述失真率包括:如果所述失真率小于用于特定的I帧、P帧或B帧类型的所述配置的阈值,则声明没有场景变化,其中相应于所计算出的失真率的数量来维持、减少或增加所述QP的值。
27.根据权利要求21或22所述的方法,其中比较所述失真率包括:如果所述失真率大于用于特定的I帧、P帧或B帧类型的所述配置的阈值,则声明场景变化,其中在场景变化声明的情形下,所述QP被重新设定为初始值。
28.根据权利要求21或22所述的方法,其中所述调整QP包括:如果所述失真率小于用于特定的I帧、P帧或B帧类型的所述配置的阈值,则使用查找表用于所述QP的动态调整。
29.根据权利要求21或22所述的方法,其中所述调整QP包括:如果所述失真率小于所述配置的阈值,则调整在先前的I帧、P帧或B帧类型上的所述QP的最终值。
30.根据权利要求21或22所述的方法,进一步包括:在单一通道中编码并传送比特流,其中比特流代表1帧、P帧或 B 帧编码方式的序列和/或组合。
【文档编号】H04N19/159GK103501439SQ201310216690
【公开日】2014年1月8日 申请日期:2013年4月23日 优先权日:2012年4月23日
【发明者】I·V·布赖洛夫斯基, J·D·坦纳, J·M·霍兰 申请人:英特尔公司