首页> 中国专利> 使用运动估计失真的帧级率控制

使用运动估计失真的帧级率控制

摘要

本发明为使用运动估计失真的帧级率控制。这里描述的是与视频编码中的帧级量化参数(QP)调整相关的技术。具体地,描述一种实现比特率控制(BRC)算法的方法,以在视频编码过程中动态地控制QP。

著录项

  • 公开/公告号CN103501439A

    专利类型发明专利

  • 公开/公告日2014-01-08

    原文格式PDF

  • 申请/专利权人 英特尔公司;

    申请/专利号CN201310216690.X

  • 申请日2013-04-23

  • 分类号H04N19/147;H04N19/176;H04N19/159;H04N19/50;

  • 代理机构永新专利商标代理有限公司;

  • 代理人张晰

  • 地址 美国加利福尼亚

  • 入库时间 2024-02-19 21:23:12

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-08-17

    授权

    授权

  • 2014-02-12

    实质审查的生效 IPC(主分类):H04N19/147 申请日:20130423

    实质审查的生效

  • 2014-01-08

    公开

    公开

说明书

相关申请

本申请要求2012年4月23日提交的美国临时专利申请 NO.61/637,021的优先权的权益。

背景技术

视频编码是准备视频(视频数据)的过程,其中,视频被编码以满 足对于记录和重放来说合适的格式和规范。在视频编码和视频压缩中, 运动估计是一项重要的并且计算量繁重的任务。

视频编码专家组(VCEG)联合国际标准化组织(ISO)/国际电工委 员会(IEC)联合工作组、运动图像专家组(MPEG),已经研发了先进 视频编码(AVC)标准。AVC标准,或AVC,也称为H.264。AVC是视 频编码标准的一个例子,并且是用于高清晰度视频的记录、压缩和分配 的最惯用格式的一种。其他标准包括但不限于:运动图像专家组2 (MPEG2),可分级视频编码(SVC),和高效视频编码(HEVC)等。

在典型的视频编码过程中,第一阶段是分析帧以找到空间和时间冗 余,该冗余可被开发用来减少描述视频的给定帧的比特数。具体地,可 从空间相邻或时间相邻预测每个宏块,其中编码器的目标是预测具有最 小数量的误差的当前宏块,这是因为误差校正术语代表在最终比特流的 比特中的最大成本。该典型视频编码过程的第二阶段可基于第一阶段, 要求编码的第二通道。

附图说明

图1示出了用于实现视频编码的示例性系统。

图2示出了在单一通道中用于实现比特率控制(BRC)算法的示例 性视频编码器。

图3示出了用于动态调整量化参数(QP)的示例性查找表。

图4示出了用于在视频编码中实现比特率控制(BRC)的示例性方 法。

图5是示例性系统的示意图。

图6是示例性设备的示意图,均为依照本公开的至少一些实施例而 布置。

参考附图,提供后续的详细描述。在这些图中,首次出现附图标记 的图中,附图标记的最左侧数字通常标识该图。在不同图中,使用相同 的附图标记表示类似或相同的项目。

具体实施方式

本文件公开了一个或多个系统、装置、方法等,用于实现比特率控 制(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调整的数量。

图1示出可用于实现各种描述实施例的示例性系统。但是,很容易 理解,这里公开的技术可在其他计算设备、系统和环境中实现。图1所 示的计算设备100是计算设备的一个例子,且并不意图建议对计算机和 网络结构的使用或功能范围的任何限制。

在至少一个实现中,计算设备100包括至少一个处理单元102和系 统存储器104。依赖于计算设备的精确配置和类型,系统存储104可以是 易失性的(诸如RAM),非易失性的(诸如ROM,闪存等),或它们的 一些组合。系统存储104可包括操作系统106,一个或多个程序模块108, 在某些实现中,其可实现这里描述的BRC算法的方法和技术。系统存储 器104可进一步包括程序数据110,其可包括在本文件后面将被描述的宏 块/形状数据库。此外,编码器112也包含在本例中。编码器112可用于 实现如这里所述的视频编码、运动估计、运动补偿等。编码器112可操 作地耦合到处理单元102、系统存储器104和这里进一步描述的其他存储 器、输入/输出、设备和其他未示出的部件/设备,并与它们进行通信。计 算设备100的基本实现由虚线114标定出。例如,在某些实现中,编码 器112可以是设在中央处理单元(CPU)中的集成图形芯片的一部分, 其包括3D和媒体,具有包括视频(尤其是视频解码/编码)的媒体功能。 在某些实现中,专用集成电路或ASIC可包括编码器112,其作为固定功 能的编码器。

可以预期的是,具有视频编码的设备可利用所描述的技术、方法和 设备。这些设备的例子包括媒体播放器、视频会议设备等。

在某些实现中,程序模块108可包括具体模块(未示出),诸如编码 解码器或基于软件/固件的编码器,其被配置为实现这里描述的视频编码 技术和方法。例如,在某些实现中,这些模块可执行编码器112的处理。 示例性编码解码器包括AVC、VC1、ATVC和SVC。

计算设备100可具有附加特征或功能。例如,计算设备100还可包 括附加数据存储设备,诸如可移动储存器116和不可移动储存器118。在 某些实现中,可移动储存器116和不可移动储存器118是计算机可存取 媒介,用于存储可由处理单元102执行从而实现上述的各种功能的指令。 一般地,可使用软件、硬件(例如固定逻辑电路)或使用这些实现的组 合实现参考附图描述的任何功能。程序代码可存储在一个或多个计算机 可存取媒介,或其他计算机可读存储设备中。因此,这里描述的过程和 部件可由计算机程序产品来实现。如上所提到的,计算机可存取媒介包 括易失性和非易失性的,可移动和不可移动的媒介,这些媒介可以用于 信息存储的任何方法或技术实现,诸如计算机可读指令、数据结构、程 序模块、或其他数据。术语“计算机可存取介质”和“计算机可存取媒 介”涉及非暂时性存储设备,包括但并不限于:RAM、ROM、EEPROM、 闪存或其他存储技术、CD-ROM、数字通用光盘(DVD)或其他光学储 存器、盒式磁带、磁带、磁盘储存器或其他磁性储存设备,或任何其他 非暂时性存储介质,其可用于存储由例如计算设备100的计算设备存取 的信息。任何这样的计算机可存取媒介可以是计算设备100的一部分。

在一个实现中,可移动储存器116是计算机可存取介质,其上存储 有一组指令。当处理单元102执行该组指令时,该组指令使得处理单元 102执行如这里所述的操作、任务、功能和/或方法和其任何变型。

计算设备100还可包括一个或多个输入设备120,诸如键盘、鼠标、 笔、语音输入设备、触屏输入设备等。计算设备100可附加地包括一个 或多个输出设备122,诸如显示器、扬声器、打印机等。

计算设备100还可包括一个或多个通信连接124,其允许计算设备 100通过连接126与一个或多个其他设备(未示出)有线或无线通信。可 以理解,所示的计算设备100是一个合适设备的例子,而非意图建议任 何对于各种所述的实施例的使用范围或功能的限制。

图2示出示例性视频编码器112,其实现BRC算法,以在单一通道 中执行视频压缩。换言之,通过动态地调整QP来执行单一通道视频压缩, 以在编码和比特率传输期间保持质量。在某些实现中,视频编码器112 可实现为中央处理单元的一部分、集成电路芯片组的一部分,或单个部 件/设备。如上所述,在某些实现中,视频编码器112可实现为固件或软 件,诸如编码解码器。进一步地,图2仅仅是示意性的,并且可包含附 加的块或部件,和/或块或部件的不同排列。

在一个实现中,视频编码器112可接收来自视频输入200的待编码 的图像帧,以产生编码比特流形式的相应编码帧,该比特流包括I、P和 /或B帧的序列或组合。在该实现中,视频编码器112的一个或多个块可 被配置为执行符合诸如MPEG、H.264等的一个或多个标准的视频编码。 在一个实现中,可由运动估计部件202处理从视频输入200接收到的图 像帧,从而将接收到的图像帧编码为I帧(即,静止帧)和/或帧间编码 帧(即P帧或B帧)编码方式。该I帧编码涉及一种编码方式,其中基 于相同帧的宏块呈现图像帧的宏块(即,不参考除其本身之外的任何其 他图像帧对图像帧进行编码)。运动估计部件202可使用空间压缩技术来 编码I帧。空间压缩技术可按照之上注明的标准执行。相应地,运动估计 部件202可操作以确定图像帧中的宏块间的相关性,以产生用于I帧的宏 块的压缩或未压缩的呈现。此外,运动估计部件202可产生代表P帧或B 帧中的宏块间的位移的运动矢量,其包括在编码方式中的参考帧。运动 估计部件202可使用之前存储的图像帧(未示出),其作为P帧和B帧的 编码方式的基础。

在一种实现中,失真估计器部件204被配置为计算在“调整平均失 真”和“调整当前帧失真”之间的失真率“a”。对于失真率“a”,配置 的计算如以下公式中所示:

a=bc---(1)

b=eMBPOWERα---(2)

c=dMBPOWERα---(3)

e=f1+f2+...fnn---(4)

其中:a-与帧类型阈值(未示出)比较的失真率;

b-用于I、P或B帧类型的调整平均失真;

c-调整当前帧失真;

e-为用于任一I、P或B帧类型的计算出的历史平均失真(没 有最大和最小历史值);

d-对于当前帧的计算出的帧级失真或宏块级失真之和(即当 前帧可能是I、P或B帧类型);

f-对于每个帧类型的计算出的失真(即,“f”可能是I、P或 B帧类型);

n-将被平均的每个帧类型的帧数;

α-0到1之间的典型值常量;以及

MB-当前帧中的宏块的数量。

在一个实现中,失真估计器部件204被配置为计算在I帧、P帧或B 帧类型的每个上的失真率“a”。例如,公式1中的失真率“a”可包括系 数或变量“b”,其基于预先存储的用于I帧(例如,最后5个I帧)的计 算出的失真,或者,变量“b”可基于预先存储的用于P帧(例如,预测 的4个P帧)计算出的失真,或者,变量“b”可基于预先存储的用于B 帧(例如,最后4个B帧)计算出的失真。在这个例子中,变量“b”可 以基于针对三种不同帧类型(即,I、P或B帧类型)的给定数量的帧; 但是,变量“c”可基于当前帧。在一个实现中,公式1中的失真率“a” 与阈值“ω”比较,该阈值包括依赖于帧类型(即I、P或B帧)的不同 的范围值,如上所述,该帧类型用于计算变量“b”。例如,如果最后五 个I帧被用来计算变量“b”,那么用于I帧类型的阈值“ω”用于针对失 真率“a”的比较参考。

在一个实现中,失真估计器部件204可被配置为:使用存储在系统 存储器104中的其他帧,来计算公式4中的调整平均失真值“e”。例如, 如果系统存储器104中的最后15帧包括5个单独计算出的I帧失真、5 个单独计算出的P帧失真和5个单独计算出的B帧失真,那么用于每个 类型帧的计算出的平均失真“e”可被计算为单独计算出的失真(即I、P 或B帧)之和除以5。在另一个例子中,如果系统存储器104中的最后 15帧包括3个单独计算出的I帧失真、6个单独计算出的P帧失真和6 个单独计算出的B帧失真,那么用于I、P或B类型的帧的计算出的平均 失真“e”可被计算为为每种类型(即I、P、或B帧)单独计算出的失真 之和分别除以3、6和6。在历史调整失真值不可用的其他实现中,可使 用下面的方法计算公式4中的“e”:

对于I帧:使用根据经验限定的阈值,其针对编码解码器单独进行估 计(例如,一个阈值用于MPEG2,另一个用于AVC等);

对于P帧:估计的历史失真等于先前的I帧失真乘以一个系数。该 系数依赖于编码解码器,例如系数=0.75;

对于B帧:估计的历史失真等于先前的P帧失真乘以一个系数。该 系数依赖于编码解码器,例如系数=0.75。

在一个实现中,失真估计器部件204使用帧级计算或使用宏块级计 算来计算调整当前帧失真“c”。在帧级计算中,公式3中的变量“d”可 包括当前帧上实际计算出的失真,该当前帧为整体或单个宏块。该整体 或单个宏块可使用自身作为参考来执行帧级计算。在宏块级的计算中, 公式3中的相同变量“d”可包括在限定当前帧的单个宏块上计算出的失 真之和。类似的,失真之和使用相同的当前帧来获取用于变量“d”的宏 块级计算。在一个实现中,在计算公式3中的变量“d”的过程中,当前 帧可包括降低的分辨率。此外,在计算公式1中的失真率“a”时,可类 似地应用该降低的分辨率。

在一个实现中,BRC部件206可使用用于QP的动态调整的计算出 的失真率“a”。在该实现中,计算出的失真率“a”与阈值“ω”比较, 以确定场景变化是否发生。例如,如果计算出的失真率“a”大于配置的 阈值“ω”,那么场景变化被声明。在场景变化的情形下,BRC部件206 将重新设置所有的统计,诸如系数“a”、“b”、“c”、历史QP等,并且进 一步将用于当前帧的QP设置为等于其初始QP值。如果没有场景变化被 声明,那么检测的率控制可依赖于计算出的失真率“a”的范围来调整当 前帧的QP,以下将进一步讨论。该检测的率控制可由BRC算法实现, 以使用计算出的失真率“a”的实际值来调整用于当前帧类型的QP。

在一个实现中,BRC部件206可通过反馈环路210从模式决策部件 208接收“当前”传输比特率,并操作以确定将要用来量化当前帧的宏块 的QP。在该实现中,该“当前”传输比特率可包括当前模式,诸如,在 当前是否由当前模式决策部件208布置I、P或B帧类型用于编码和发送。 例如,该“当前”传输比特率可限定为在模式决策部件208处用于当前 帧类型(例如I帧)的最终或当前QP值。在这个例子中,在场景变化声 明的情形下,当前QP值可被重新设定,以包括用来量化当前I帧的宏块 的初始值。但是,如果没有声明场景变化,那么反馈环路210应用的QP 的值可依赖于公式1中推导出的计算出的失真率“a”而增加或减少。此 外,反馈环路210可提供系统存储104中存储的帧(未示出),用于计算 用于当前帧的公式1中的失真率“a”。在一个实现中,BRC部件206可 使用公式1中的失真率“a”来更好地估计当前帧的尺寸。

在一个实现中,BRC部件206控制量化器部件212,用于在单个通 道中编码视频帧200。量化器部件212可包括动态可调整的QP,其用作 编码方式过程中用于控制要保持或丢弃的信息量的关键参数。例如,QP 越高,保留的信息越少,因此,编码方式的质量降低。类似地,QP越低, 保留的信息越多,因此,编码方式的质量增加。在一个实现中,未声明 场景变化,使用图3所讨论的查找表来适当配置量化器部件212中的动 态可调整QP。在另一实现中,声明场景变化,那么量化器部件212的 QP被重新设定为其初始值。

图3示出示例性查找表300,其用于依赖于公式1中计算出的失真率 “a”的实际值,来动态调整QP。在一个实现中,当没有声明场景变化 时,查找表300可由BRC算法利用。换而言之,对于具体帧类型(即, I、P或B帧)的计算出的失真率“a”小于用于具体帧类型的阈值“ω”。 在一个实现中,BRC部件206可依赖于计算出的失真率“a”的范围,动 态地调整量化器部件212的QP。例如,如果计算出的失真率“a”302包 括小于0.5的一个值(即“<0.5”304),那么可做出相应的QP调整306, 以包括最小QP(即“--”308)。在这个例子中,BRC算法可被配置为显 著地减少从在反馈环路110中的“当前”传输比特率推导出的QP的当前 值。在另一例子中,如果计算出的失真率“a”302包括大于0.85但小于 1.07的一个值(即“0.85-1.07”304),那么可做出相应的QP调整306, 以包括数值为0的QP(即“0”320)。换而言之,维持从在反馈环路110 中的“当前”传输比特率推导出的QP的当前值。在其他例子中,对于计 算出的失真率“a”302的不同值,如在块310、314和316中所示出的, QP调整306可分别包括如在块318、322和324中所示的QP调整。

图4示出示例性处理流程400,其阐述实现BRC算法以在单一通道 中执行视频压缩的示例性方法。所描述的方法的顺序并非旨在限制为约 束,而是可以以任何顺序组合任意数量的所述方法块以实现该方法,或 替换该方法。附加地,在不脱离这里所述的主题的精神和范围的情况下, 单个块可从本方法中删除。此外,在不脱离本发明的范围的情况下,该 方法可在任何合适的硬件、软件、固件或它们的组合中实现。

在块402,执行接收图像帧。在一个实现中,可以从视频编码器(例 如,视频编码器112)的视频输入或源(例如,视频输入200)接收图像 帧,用于编码以产生编码比特流形式的相应的编码帧。在一个实现中, 可由运动估计部件(例如,运动估计部件202)处理从视频输入200处接 收的图像帧,以将接收的图像帧编码为I帧和/或帧间编码帧,诸如P帧 或B帧。

在块404,执行计算图像帧的帧级失真。在一个实现中,失真估计部 件(例如,失真估计部件204)可使用帧级失真计算来计算接收的图像帧 的调整的当前帧失真(例如,公式1中的“c”)。在帧级失真计算中,该 计算可基于在作为整体或单个宏块的当前帧上实际计算出的失真,而不 用参考除其自身或它们自身以外的其他任何帧。换而言之,出于计算公 式1中调整的当前帧失真“c”的目的,该接收到的图像帧被当作是单个 帧。在其他实现中,失真估计部件204可使用宏块级计算来计算调整的 当前帧失真“c”。例如,接收到的图像帧可包括限定在计算调整的当前 帧失真“c”的帧级失真要求的宏块失真之和。在一个实现中,变量“c” 的帧级失真可包括所接收帧和作为参考的自身之间的偏差。

在块406,执行计算平均失真。在一个实现中,失真估计部件204 被配置为计算对于每个帧类型(即,I、P或B帧)的平均失真(例如, 公式2中的变量“b”)。例如,对于I帧类型的平均失真“b”可包括之前 计算出的“n”个I帧失真(例如,f1是I帧1,f2是I帧2,...fn是I帧 n)之和除以“n”。

在块408,执行计算失真率。在一个实现中,失真估计部件204可被 配置为计算失真率(例如公式1中的变量“a”)。该失真率“a”可包括 在调整的当前帧失真“c”上的平均失真“b”的比率。在一个实现中, 失真估计部件204可计算用于特定帧类型的失真比率“a”,在模式决策 块(例如,模式决策部件208)处将所述失真比率“a”量化,以用于比 特率传输。例如,在H.264标准下,模式决策部件208可连续地发送单 个I帧、两个P帧和一个B帧,来代表一个宏块。在该例子中,对于该 单个I帧、两个P帧和一个B帧,失真估计部件204可分别计算不同的 失真率“a”。在一个实现中,基于阈值(例如,包含对于不同帧类型的 不同值的阈值“ω”)进行QP的调整。

在块410处,执行确定失真率“a”是否大于阈值“ω”。在一个实现 中,BRC部件(例如,BRC部件206)可被配置为:比较用于特定帧类 型的计算出的失真率“a”与用于该特定帧类型的阈值“ω”。例如,如果 计算出的失真率“a”大于阈值“ω”,那么在块412处,将QP的当前值 和其他变量/系数重新设定为其初始值。该初始值可包括视频编码器112 的用于正常处理不同帧类型的配置参数。在另一方面,如果失真率“a” 小于阈值“ω”,那么在块414处,可基于查找表(例如查找表300)调 整对于特定帧类型的QP的当前值。在一个实现中,可基于计算出的失真 率而保持、增加或减少QP的当前值。

在块416处,执行编码和发送比特流。在一个实现中,模式决策部 件(例如,模式决策部件208)可确定I帧、P帧或B帧编码方式的序列 和/或组合,所述编码方式可用于编码和发送包括I、P和/或B帧类型的 比特流。I帧、P帧或B帧编码方式的序列和/或组合可使用重新设定412 或调整QP414提供的QP。在一个实现中,如果没有声明场景变化,那 么通过调整QP414将QP的最终值反馈或存储用于处理。例如,如果在 块402处接收到的下一图像帧中没有声明场景变化,那么QP的最终值可 作为调整QP块414处的参考。

在示例性实现的上述描述中,出于解释的目的,如所要求的,为了 更好地解释本发明,将阐述具体的数字、材料配置和其他细节。但是, 对于本领域技术人员来说显而易见的是,可使用与这里描述的示例细节 不同的细节来实现要求的发明。在其他例子中,可省略或简化公知的特 征,以澄清示例性实现的描述。

发明人旨在将描述的示例性实现作为基本的例子。发明人并非意图 用这些示例性实现来限制附加权利要求的范围。相反,发明人已经注意 到,与其他现有的或将来的技术一起,也可以通过其他方式实施和实现 要求的发明。

如在本申请中使用的,术语“或者”意在指包括性“或者”而非排 除性“或者”。也就是说,除非另有说明或者从上下文可清楚得知,否则 “X使用A或者B”意在指任何自然包括性排列。也就是说,如果X使 用A;X使用B;或者X使用A和B,则在任何前述情形下,满足“X 使用A或者B”。此外,在本申请中和随附权利要求中使用的冠词“一(a)” 和“一(an)”应该一般地被解释为指“一个或多个”,除非另有说明或 者从上下文中可以明确得知指向单数形式。

这些过程被示出为在逻辑流程图中的块的集合,其呈现的操作顺序 在机构中可以单独地或结合硬件、软件和/或固件实现。在软件/固件的上 下文中,块代表存储在一个或多个计算机可读存储介质上的指令,当由 一个或多个处理器执行时,其执行列举的操作。

需要注意的是,所描述的过程的顺序并非意图作出限制,而是可以 以任何顺序组合任何数量的所述处理块,以实现所述过程或替换过程。 另外,在不脱离这里所述的主题的精神和范围的情况下,可从本处理中 删除单个块。

图5示出了根据本公开的另一个示例性系统500。在各种实现中,系 统500可以是媒介系统,不过系统500并不限于该情况。例如,系统500 可被并入到个人计算机(PC)、膝上计算机、超级膝上计算机、平板电脑、 触屏平板、便携式计算机、手持计算机、掌上计算机、个人数字助理 (PDA)、移动电话、组合移动电话/PDA、电视、智能设备(例如,智能 电话、智能平板电脑或智能电视)、移动网络设备(MID)、消息设备、 数据通信设备等等。

在各种实现中,系统500包括耦合到显示器520的平台502。平台 502可接收来自诸如内容服务设备530,或内容传输设备540或其他类似 的内容源的内容服务设备的内容。包括一个或多个导航特征的导航控制 器550可用来例如与平台502和/或显示器520相互作用。下面将对这些 部件的每一个做出更详细的描述。

在各种实现中,平台502可包括芯片组505、处理器510、存储器512、 储存器514、图形子系统515、应用516和/或无线电518的任意组合。芯 片组505可提供处理器510、存储器512、储存器514、图形子系统515、 应用516和/或无线电518间的相互通信。例如,芯片组505可包括能够 提供与储存器514相互通信的储存器适配器(未示出)。

处理器510可实现为复杂指令集计算机(CISC)或精简指令集计算 机(RISC)处理器、x86指令集兼容处理器、多核或任何其他微处理器 或中央处理单元(CPU)。在各种实现中,处理器510可以是双核处理器、 双核移动处理器等等。

存储器512可被实现为易失性存储器设备,诸如,并不限于,随机 存取存储器(RAM)、动态随机存取存储器(DRAM)、或静态RAM (SRAM)。

储存器514可实现为非易失性储存器设备,例如但不限于,磁盘驱 动器、光盘驱动器、磁带驱动器、内部储存设备、附属储存设备、闪存、 电池备份SDRAM(同步DRAM)和/或网络可存取储存设备。在各种实 现中,例如,当包含多个硬盘驱动器时,储存器514可包括用于有价值 数字媒介增加储存器性能增强保护的技术。

图形子系统515可执行诸如用于显示静止的或视频的图像处理。例 如,图形子系统515可以是图形处理单元(GPU)或可视化处理单元 (VPU)。模拟或数字接口可用于通信地耦合到图形子系统515和显示器 520。例如,接口可以是高清晰度多媒体接口、显示器端口、无线HDMI 和/或无线HD相应技术中的任何一种。图形子系统515可集成到处理器 510或芯片组505中。在一些实现中,图形子系统515可以是通信地耦合 到芯片组505的独立卡。

这里描述的图形和/或视频处理技术可在各种硬件结构中实现。例如, 图形和/或视频功能可集成在芯片组中。可替换地,可使用离散图形和/ 或视频处理器。如在另一实现中,图形和/或视频功能可由通用处理器提 供,其包括多核处理器。在又一实现中,可在消费者电子设备中实现所 述功能。

无线电518可包括能够使用各种合适的无线通信技术发送并接收信 号的一个或多个无线电。这样的技术可涉及一个或多个无线网络上的通 信。示例性无线网络包括(但并不限于)无线局域网(WLAN)、无线个 人局域网(WPAN)、无线城域网(WMAN)、蜂窝网和卫星网络。在这 些网络上的通信中,无线电518可以按照任意版本的一个或多个应用标 准进行操作。

在各种实现中,显示器520可包括任何电视类型的监视器或显示器。 显示器520可包括,例如,计算机显示屏、触屏显示器、视频监视器, 电视类设备和/或电视。显示器520可以是数字的和/或模拟的。在各种实 现中,显示器520可以是全息显示器。另外,显示器520可以是可接收 视像投射的透明表面。这些投射可传达各种形式的信息、图像和/或对象。 例如,这些投射可以是用于移动增强现实(MAR)应用的可视覆盖。在 一个或多个软件应用516的控制下,平台502可在显示器520上显示用 户接口522。

在各种实现中,例如,内容服务设备530可被任何国家的,国际的 和/或独立的服务作为主机,并且因此经由因特网可由平台520访问。内 容服务设备530可耦合到平台502和/或显示器520。平台502和/或内容 服务设备530可耦合到网络560,以传输(例如,发送和/或接收)媒体 信息到网络560和从网络560传输媒体信息。内容传递设备540还可耦 合到平台502和/或显示器520。

在各种实现中,内容服务设备530可包括能够传递数字信息和/或内 容的有线电视盒、个人计算机、网络、电话、网络使能设备或装置,以 及能够单向或双向地在内容提供者和平台502和/或显示器520之间传输 内容的任何其它类似设备。需要认识到,通过网络560,可单向和/或双 向地将内容传输到系统500中的任何一个部件和内容提供者,并从系统 500中任何一个部件和内容提供者传输内容。内容的示例可包括任何媒体 信息,例如包括:视频、音乐、治疗和游戏信息等等。

内容服务设备530可接收诸如包括媒体信息、数字信息和/或其他内 容的有线电视编码的内容。例如,内容提供者可包括任意有线或卫星电 视或无线或网络内容提供者。该提供的例子并非旨在以任何方式限制依 照本公开的实现。

在各种实现中,平台502可接收来自具有一个或多个导航特征的导 航控制器550的控制信号。例如,控制器550的导航特征可用于与用户 接口522相互作用。在实现中,导航控制器550可以是定位设备,其可 以是计算机硬件部件(具体地,人机接口设备),允许用户将空间(例如, 连续的和多维的)数据输入到计算机。诸如图形用户接口(GUI)、电视 和监视器的多个系统允许用户使用物理姿势控制并将数据提供到计算机 或电视。

通过移动指针、光标、聚焦环或其他在显示器上显示的可视化指示 符,控制器550的导航特征的移动可在显示器(例如,显示器520)上复 制。例如,在软件应用516的控制下,位于导航控制器550上的导航特 征可被映射到显示在用户接口522上的虚拟导航特征。在实现中,控制 器550可能不是分离的部件,而可能集成在平台502和/或显示器520中。 但是,本公开并非限于这里描述或显示的元件或环境。

在各种实现中,驱动器(未示出)可包括当激活时,在初始启动之 后使得用户通过触摸按钮而立即打开和关闭类似电视的平台502的技术。 甚至当平台“关闭”时,程序逻辑也可以允许平台502传输内容到媒体 适配器或其他内容服务设备530或内容传递设备540。此外,芯片组505 可包括用于例如5.1环绕语音频和/或高清晰度7.1环绕语音频的硬件和/ 或软件支持。驱动器可包括用于集成图形平台的图形驱动器。在实现中, 图形驱动器可包括外围部件互联(PCI)高速图形卡。

在各种实现中,可集成在系统500中所示的任何一个或多个部件。 例如,平台502和内容服务设备530可被集成,或平台502和内容传递 设备540可被集成,或者例如,平台502、内容服务设备530和内容传递 设备540可被集成。在各种实现中,平台502和显示器520可以是一个 集成单元。显示器520和和内容服务设备530可被集成,或者,显示器 520和内容传递设备540可被集成。这些例子都并非意图对本公开做出限 制。

在各种实施例中,系统500可实现为无线系统、有线系统或两者的 组合。当实现为无线系统时,系统500可包括适合于在无线共享媒介上 进行通信的部件和接口,例如一个或多个天线、发射器、接收器、收发 器、放大器、滤波器、控制逻辑等等。无线共享媒体的一个例子可包括 无线频谱的一部分,诸如RF频谱等等。当实现为有线系统时,系统500 可包括适合于在有线通信媒介上进行通信的部件和接口,例如输入/输出 (I/O)适配器、物理连接器以连接该I/O适配器和相应的有线通信介质、网 络接口卡(NIC)、盘控制器、视频控制器、音频控制器等等。有线通信 媒介的例子可包括电线、电缆、金属导线、印刷电路板(PCB)、底板、 交换结构、半导体材料、双绞线、共轴电缆、光纤等等。

平台502可建立一个或多个用以传输信息的逻辑或物理信道。该信 息可包括媒体信息和控制信息。媒体信息可涉及代表用于用户的内容的 任意数据。内容的例子可包括,例如,来自语音会话的数据、视频会议、 流视频、电子邮件(“email”)消息、语音邮件消息、字母数字符号、图 形、图像、视频、文字等等。来自语音会话的数据可以是,例如,语音 信息、静音周期、背景噪声、舒适噪声、音调等等。控制信息可涉及代 表用于自动化系统的命令、指令或控制词的任意数据。例如,控制信息 可用来路由通过系统的媒体信息,或指引一个节点以预先确定的方式处 理媒体信息。但是,这些实施例并非限制到图5中所示或描述的元件或 环境。

如上所述,系统500可具体化为改变物理样式或形状因数。图6示 出了其中具体化系统500的小型化设备600的实现。在实施例中,例如, 设备600可实现为具有无线能力的移动计算设备。例如,移动计算设备 可指的是具有处理系统和诸如一个或多个电池的移动电源的任何设备。

如上所述,移动计算设备的例子可包括个人计算机(PC)、膝上计算 机、超级膝上计算机、平板电脑、触屏平板、便携式计算机、手持计算 机、掌上计算机、个人数字助理(PDA)、移动电话、组合移动电话/PDA、 电视、智能设备(例如、智能电话、智能平板电脑或智能电视)、移动网 络设备(MID)、消息设备、数据通信设备等等。

移动计算设备的例子还可包括布置为由人佩带的计算机,诸如腕上 计算机、手指计算机、环状计算机、眼镜计算机、腰带夹计算机、肩章 计算机、鞋子计算机、衣服计算机和其他可佩带的计算机。在各种实现 中,例如,移动计算设备可实现为能够执行计算机应用的智能手机,以 及语音通信和/或数据通信。尽管一些实施例使用以例如实现为智能手机 的移动计算设备进行描述,但需要认识到,还可使用其他无线移动计算 设备实现其他实施例。这些实施例并非限制在该上下文中。

如图6所示,设备600可包括壳体602、显示器604、输入/输出(I/O) 设备606和天线608。设备600还包括导航特征612。显示器604可包括 用于显示适合于移动计算设备的信息的任何合适的显示单元。I/O设备 606可包括用于将信息输入到移动计算设备中的任何合适的I/O设备。I/O 设备606的例子可包括字母数字键盘、数字小键盘、触屏平板、输入键、 按钮、开关、摇杆开关、麦克风、扬声器、语音识别设备和软件等等。 信息还可被借助麦克风(未示出)输入到设备600中。这些信息可被语 音识别设备(未示出)数字化。这些实施例并非限制在该上下文中。

各种实施例可使用硬件元件、软件元件或两者的混合来实现。硬件 元件的例子可包括处理器、微处理器、电路、电路元件(例如、晶体管、 电阻、电容、电感等等)、集成电路、专用集成电路(ASIC)、可编程逻 辑装置(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、 逻辑门、寄存器、半导体设备、芯片、微芯片、芯片组等等。软件的例 子可包括软件部件、程序、应用、计算机程序、应用程序、系统程序、 机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、 函数、方法、程序、软件接口、应用程序接口(API)、指令集、计算代 码、计算机代码、代码段、计算机代码段、字、值、符号或它们的任意 组合。确定一个实现是否使用硬件元件和/或软件元件实现可依据任何数 量的因素变化,所述因素例如为期望计算比率、功率级、耐热性、处理 周期预算、输入数据比率、输出数据比率、存储器资源、数据总线速度 和其他设计或性能限制。

至少一个实施例的一个或多个方面可由存储在机器可读介质上的代 表性指令实现,所述指令代表处理器内的各种逻辑,当由机器读取时, 其使得机器构建逻辑以执行这里描述的技术。这些被称为“IP核心”的 呈现可存储在有形的机器可读介质上,并提供给各种消费者或制造设施, 以装载到实际完成逻辑或处理器的制造机器中。

尽管已经参考各种实现描述了这里提出的某些特征,但本描述并非 意以限制的意思来解释。因此,对这里描述的实现的修改以及其它实现 对于本公开所属领域的技术人员而言是显而易见的,并且其被认定为落 入本公开的精神和范围内。

依照本发明的实现已经在具体实施例的上下文中做出描述。这些实 施例意在示意性而非限制。很多变型、修正、附加和改进都是可能的。 因此,针对此处说明的部件,可提供多个实例作为单个实例。各种部件、 操作和数据存储之间的边界有些许任意,并且特定操作在具体示意性配 置的上下文中说明。其他功能的分配是可预见的,并且将落入后面的权 利要求的范围内。最后,在各种配置中呈现为离散部件的结构和功能可 实现为组合结构或部件。这些和其他变型、修正、附加和改进将落入后 续权利要求所限定的本发明的范围内。

后面的例子从属于进一步的实施例。一种设备,包括:一个或多个 处理器;配置到所述处理器的存储器;配置到所述处理器和所述存储器 的视频编码器,其包括:视频输入,用于提供图像帧;运动估计器部件, 用于接收用于编码的图像帧,所述编码包括内部(I)帧、预测(P)帧 和/或双向(B)帧编码方式;失真估计器部件,用于基于所述I帧、P帧 和/或B帧编码方式计算失真率;比特率控制(BRC)部件,用于基于所 述失真率动态调整量化参数(QP);以及模式决策部件,用于生成代表所 述I帧、P帧和/或B帧编码方式的编码比特流,其中使用所述动态调整 的QP传送所述编码比特流。

在某些实现中,一种设备,其中所述视频编码器在单个通道中执行 编码。

在某些实现中,一种设备,其中所述失真率包括在调整当前帧上的 调整平均失真的比率,其中所述调整平均失真包括对于给定数量帧的I 帧、P帧或B帧失真的历史均值,其中所述调整当前帧包括当前图像帧 的帧级失真或限定所述当前图像帧的宏块失真之和。

在某些实现中,一种设备,其中所述失真率包括在调整当前帧上的 调整平均失真的比率,其中所述调整平均失真包括对于所述I帧的按经验 定义的阈值;以及对于P帧和B帧的估计历史失真。

在某些实现中,一种设备,其中所述失真率与用于所述QP的动态调 整的阈值进行比较,其中对于包括不同阈值的不同的I帧、P帧或B帧类 型分别执行所述比较。

在某些实现中,一种设备,其中失真率的计算基于降低的分辨率。

在某些实现中,一种设备,其中在模式决策部件处的所述QP的最终 值被反馈到所述BRC部件,以用于在下一图像帧中对所述QP的动态调 整。

在某些实现中,一种设备,其中如果所述失真率大于用于特定的I 帧、P帧或B帧类型的阈值,则所述BRC部件声明场景变化,其中在场 景变化声明的情形下,所述QP被重新设定为初始值。

在某些实现中,一种设备,其中如果所述失真率小于用于特定的I 帧、P帧或B帧类型的阈值,则所述BRC部件声明没有场景变化,其中 相应于所述计算出的失真率的数量来维持、减少或增加所述QP的值。

在某些实现中,一种设备,其中如果所述失真率小于用于特定的I 帧、P帧或B帧类型的阈值,则所述BRC部件包括用于所述QP的动态 调整的查找表。

一种实现比特率控制(BRC)算法的视频编码器,包括:视频输入, 用于提供图像帧;运动估计器部件,用于接收并处理用于编码的所述图 像帧;失真估计器部件,用于基于内部(I)帧、预测(P)帧或双向(B) 帧失真的调整平均失真和用于所述图像帧的帧级失真来计算失真率; BRC部件,用于基于所述失真率动态调整量化参数(QP);以及模式决 策部件,用于基于所述动态调整的QP生成编码比特流。

在某些实现中,一种视频编码器,其中所述运动估计器部件确定所 述图像帧的宏块之间的相关性以生成用于I帧编码方式的所述宏块的表 示,其中所述运动估计器部件生成表示帧间编码方式中的宏块之间的位 移的运动矢量。

在某些实现中,一种视频编码器,其中所述调整平均失真包括对于 给定数量帧的I帧、P帧或B帧失真的历史均值,其中所述图像帧的所述 帧级失真包括限定所述当前图像帧的宏块失真之和。

在某些实现中,一种视频编码器,其中,所述失真率与用于所述QP 的动态调整的阈值进行比较,其中对于包括不同阈值的不同的I帧、P帧 或B帧类型分别执行所述比较。

在某些实现中,一种视频编码器,其中所述帧级失真基于所述图像 帧的降低的分辨率。

在某些实现中,一种视频编码器,其中所述模式决策部件所使用的 所述QP的最终值被反馈到所述BRC部件,作为在下一图像帧中所述QP 的动态调整过程中的参考QP。

在某些实现中,一种视频编码器,其中,如果所述失真率大于用于 特定的I帧、P帧或B帧类型的阈值,则所述BRC部件声明场景变化, 其中在场景变化声明的情形下,至少所述QP被重新设定为初始值。

在某些实现中,一种视频编码器,其中,如果所述失真率小于用于 特定的I帧、P帧或B帧类型的阈值,则所述BRC部件声明没有场景变 化,其中相应于所述计算出的失真率的数量来维持、减少或增加所述QP 的参考值。

在某些实现中,一种视频编码器,其中,如果所述失真率小于用于 特定的I帧、P帧或B帧类型的阈值,则所述BRC部件包括用于所述QP 的动态调整的查找表。

在某些实现中,一种视频编码器,其中所述模式决策部件在单个通 道中生成所述编码比特流。

一种在视频编码中实现比特率控制(BRC)算法的方法,包括:接 收图像帧;计算所述图像帧的帧级失真;对于内部(I)帧类型、预测(P) 帧类型,或双向(B)帧类型计算平均失真;基于所计算出的帧级失真和 所计算出的平均失真计算失真率;将所述失真率与配置的阈值进行比较, 所述阈值包括对于I帧、P帧或B帧类型的单独的且不同的阈值;基于所 述失真率调整量化参数(QP)。

在某些实现中,一种方法,其中计算帧级失真包括限定当前图像帧 的计算出的宏块失真之和。

在某些实现中,一种方法,其中计算帧级失真包括用作参考帧的同 一图像帧。

在某些实现中,一种方法,其中计算平均失真包括对于给定数量的 帧的I帧、P帧或B帧失真的历史均值。

在某些实现中,一种方法,其中计算失真率基于所述接收到的图像 帧的降低的分辨率。

在某些实现中,一种方法,其中比较所述失真率包括:如果所述失 真率小于用于特定的I帧、P帧或B帧类型的所述配置的阈值,则声明没 有场景变化,其中相应于所计算出的失真率的数量来维持、减少或增加 所述QP的值。

在某些实现中,一种方法,其中比较所述失真率包括:如果所述失 真率大于用于特定的I帧、P帧或B帧类型的所述配置的阈值,则声明场 景变化,其中在场景变化声明的情形下,所述QP被重新设定为初始值。

在某些实现中,一种方法,其中所述调整QP包括:如果所述失真率 小于用于特定的I帧、P帧或B帧类型的所述配置的阈值,则使用查找表 用于所述QP的动态调整。

在某些实现中,一种方法,其中所述调整QP包括:如果所述失真率 小于所述配置的阈值,则调整在先前的I帧、P帧或B帧类型上的QP的 最终值。

在某些实现中,一种方法,进一步包括在单一通道中编码并传送比 特流,其中所述比特流代表I帧、P帧或B帧编码方式的序列和/或组合。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号