用于视频编码的低复杂度帧内预测的制作方法
【专利说明】
[0001] 本申请是申请号为201180034682. 2、国际申请号为PCT/US2011/044014、申请日 为2011年7月14日、发明名称为"用于视频编码的低复杂度帧内预测"的发明专利申请的 分案申请。
技术领域
[0002] 本发明涉及视频编码,并且具体地涉及使用来自相同视频帧的先前编码并且重建 的像素的、其中预测采样块的帧内预测。
【背景技术】
[0003] 数字视频需要大量数据来以未压缩的方式代表数字视频序列(例如系列帧)的每 一帧。对于多数应用而言跨越计算机网络发送未压缩的数字视频由于带宽限制而不可行。 此外,未压缩的数字视频需要大量存储空间。通常以某一方式对数字视频编码以减少存储 要求并且减少带宽要求。
[0004] -种用于对数字视频编码的技术是帧间预测。帧间预测利用在不同帧之间的时间 冗余度。在时间上相邻的视频帧通常包括保持基本上相同的像素块。在编码过程期间,运 动矢量将一帧中的像素块的移动与另一帧中的相似像素的块相关联。因而无需系统对像素 块编码两次,而是对像素块编码一次并且提供用于预测其它像素块的运动矢量。
[0005] 另一种用于对数字视频编码的技术是帧内预测。帧内预测对帧或者其部分编码而 未参考其它帧中的像素。帧内预测利用在帧内的像素块之间的空间冗余度。由于在空间上 相邻的像素块一般具有相似属性,所以通过参考在相邻块之间的空间相关性来提高编码过 程的效率。通过基于在相邻块中使用的预测模式预测目标块可以利用这一相关性。
【发明内容】
[0006] 本发明提供一种提高视频编码效率的独特帧内预测过程。H. 264/AVC使用位于紧 接待预测的目标块上方的水平边界中的参考像素和位于紧接该目标块的左侧的竖直边界 中的参考像素。在本发明中,取出水平边界像素阵列或者竖直边界像素阵列的至少一些像 素。然后向其它边界像素添加取出的像素以扩展其阵列。仅基于扩展的边界像素阵列执行 帧内预测。在本发明的一个实施方式中,取出竖直边界像素中的至少一些像素并且向水平 边界像素添加以扩展其阵列。
[0007] 本发明消除选择从其取出参考像素的水平边界或者竖直边界的判决过程。本发明 也消除计算与预测方向相交的竖直边界的位置的重复出现过程,其中重复出现计算过程通 常包括除法操作。消除这些过程使帧内预测过程能够实施于单指令多数据(S頂D)架构上, 由此提尚视频编码的计算效率。
[0008] 在根据本发明的一个实施方式中,使用由下式表达的竖直像素标识符来取出竖直 边界像素中的至少一些像素:
[0010] 其中size代表待预测的目标块的大小,angle代表预测方向,并且col是从-1至 angle递减1的计数器。向在水平像素标识符[col]标识的位置处的水平像素添加取出的 像素。
[0011] 在另一实施方式中,在取出竖直边界像素中的至少一些像素时根据下式计算 InvAngle :
[0013] 其中N是2的整数幂。然后使用由[colXInvAngle >> log2N]表达的竖直像素 标识符来取出竖直边界像素之中的至少一些像素。向在水平像素标识符[col]标识的位置 处的水平像素添加取出的像素。
[0014] 在另一实施方式中,从查找表获得InvAngle,查找表相对于angle的值列出了 InvAngle 的值。
[0015] 在另一实施方式中,使用竖直像素标识符[row]来标识竖直边界像素之中的像 素,其中row是从0至size递增1的计数器。向在水平像素标识符[int+Ι]标识的位置处 的水平边界像素添加取出的像素,其中int是与预测方向相交的像素的位置的整数表示。
[0016] 本发明也提供一种实施帧内预测操作的编码器和解码器,在该帧内预测操作中, 取出水平边界像素阵列或者竖直边界像素阵列的至少一些像素。然后向其它边界像素添加 取出的像素以扩展其阵列。仅基于扩展的边界像素阵列执行帧内预测。
【附图说明】
[0017] 图1是示出了本发明可以实施于其上的示例硬件架构的框图。
[0018] 图2是示出了本发明可以被应用于的视频编码器的总体视图的框图。
[0019] 图3是示出了本发明可以被应用于的视频解码器的总体视图的框图。
[0020] 图4是示出了根据本发明一个实施方式的编码器的功能模块的框图。
[0021] 图5是示出了本发明实施方式的帧内预测模块执行的帧内预测过程的流程图。
[0022] 图6是示出了根据本发明一个实施方式的解码器的功能模块的框图。
[0023] 图7是示出了预测方向的图,这些预测方向图示了在H.264/AVC中支持的 Intra_4X4预测模式。
[0024] 图8是示出了在第JCT-VC A119号文档中提出的预测方向的图。
[0025] 图9是示出了在JCT-VC A119中提出的沿着图7中所示预测方向之一生成预测的 块的过程的流程图。
[0026] 图10是示出了根据本发明一个实施方式执行的低复杂度帧内预测过程的流程 图。
[0027] 图11A是示出了预测块以及水平和竖直边界像素阵列的示意视图。
[0028] 图11B是示出了用竖直边界像素扩展的水平边界像素阵列的示意图。
[0029] 图12是示出了根据本发明一个实施方式执行的扩展水平边界像素阵列的过程的 流程图。
[0030] 图13是示出了扩展水平边界像素阵列的另一实施方式的流程图。
[0031] 图14是示出了根据本发明另一实施方式执行的低复杂度帧内预测过程的流程 图。
【具体实施方式】
[0032] 图1示出了本发明可以实施于其上的计算机100的示例硬件架构。请注意图1中 所示硬件架构可以在实施本发明实施方式的视频编码器和视频解码器中共用。计算机1〇〇 包括经由本地接口 107通信地耦合的处理器101、存储器102、存储设备105和一个或者多 个输入和/或输出(I/O)设备1〇6(或者外设)。本地接口 105可以例如是但不限于如在本 领域中已知的一个或者多个总线或者其它有线或者无线连接。
[0033] 处理器101是用于执行软件、具体为存储于存储器102中的软件的硬件设备。处 理器101可以是任何定制或者商用处理器、中央处理单元(CPU)、在与计算机100关联的若 干处理器之中的辅助处理器、基于半导体的微处理器(形式为微芯片或者芯片组)或者一 般为任何用于执行软件指令的设备。
[0034] 存储器102包括计算机可读介质,该计算机可读介质可以包括易失性存储器元件 (例如随机存取存储器(RAM,比如DRAM、SRAM、SDRAM等))和非易失性存储器元件(例如 R0M、硬驱动、磁带、⑶ROM等)中的任何存储器元件或者组合。另外,存储器102可以并入 电子、磁、光学和/或其它类型的存储介质。计算机可读介质可以是任何可以存储、传达、传 播或者传送用于由指令执行系统、装置或者设备使用或者与指令执行系统、装置或者设备 结合使用的程序的装置。请注意存储器102可以具有分布式结构,其中各种部件处于相互 远离处、但是可以由处理器101访问。
[0035] 存储器102中的软件103可以包括一个或者多个单独程序,每个程序包含用于实 施计算机100的如下文描述的逻辑功能的可执行指令有序列表。在图1的例子中,存储器 102中的软件103限定计算机100的根据本发明的视频编码或者视频解码功能。此外,虽然 非必需,但是存储器102有可能包含操作系统(0/S) 104。操作系统104实质上控制计算机 程序的执行并且提供调度、输入-输出控制、文件和数据管理、存储器管理以及通信控制和 有关服务。
[0036] 计算机100的存储设备105可以是许多不同存储设备类型之一,这些存储设备类 型包括静止存储设备或者便携式存储设备。作为例子,存储设备105可以是磁带、磁盘、闪 存、易失性存储器或者不同存储设备。此外,存储设备105可以是安全数字记忆卡或者任何 其它可拆卸存储设备105。
[0037] I/O设备106可以包括输入设备、例如但不限于触屏、键盘、鼠标、扫描仪、麦克风 或者其它输入设备。另外,I/O设备106也可以包括输出设备、例如但不限于显示器或者其 它输出设备。I/O设备106还可以包括经由输入和输出二者通信的设备、例如但不限于调制 器/解调器(调制解调器;用于访问另一设备、系统或者网络)、射频(RF)、无线或者其它收 发器、电话接口、桥接器、路由器或者作为输入和输出二者工作的其它设备。
[0038] 如本领域普通技术人员公知的那样,通过去除视频序列中的冗余信息来实现视频 压缩。存在许多不同视频编码标准,这些视频编码标准的例子包括MPEG-1、MPEG-2、MPEG-4、 Η. 261、H. 263和H. 264/AVC。应当注意本发明未旨在限于任何具体视频编码标准的应用。然 而使用通过引用而结合于此的H. 264/AVC标准例子来提供本发明的以下描述。H. 264/AVC 是最新的视频编码标准并且实现较先前编码标准、比如MPEG-1、MPEG-2、H. 261和H. 263而 目的显者性能提尚。
[0039] 在H. 264/AVC中,视频的每个帧或者画面能分解成若干分片。分片然后划分成 称为宏块的16X16个像素的块,这些块然后可以进一步划分成8X16、16X8、8X8、4X8、 8X4下至4X4个像素的块。H. 264/AVC支持五个类型的分片。在I分片中,使用帧内预测 对所有宏块编码。在P分片中,可以使用帧内或者帧间预测对宏块编码。P分片允许使用每 个宏块仅一个运动补偿预测(MCP)信号。在B分片中,可以使用帧内或者帧间预测对宏块 编码。可以每个预测使用两个MCP信号。SP分片允许在不同视频流之间高效切换P分片。 SI分片是在仅使用帧内预测之时用于随机访问或者错误恢复的SP分片的确切匹配。
[0040] 图2示出了本发明可以被应用于的视频编码器的总体视图。图中所示块代表处理 器101执行存储器102中的软件103而实现的功能模块。向视频编码器201馈送视频帧画 面200。视频编码器以宏块200A为单位对待画面200。每个宏块包含画面200的若干像素。 对每个宏块执行变换成变换系数、继而量化成变换系数级。另外,使用帧内预测或者帧间预 测,以不直接对像素数据执行编码步骤,而是对像素数据与预测的像素值的差执行编码步 骤,由此实现更容易压缩的小值。
[0041] 对于每个分片,编码器201生成多个语法元素,这些语法元素形成相应分片的宏 块的编码版本。语法元素中的与变换系数的编码有关的所有残余数据元素称为残余数据语 法元素,这些残余数据元素比如是变换系数级或者指示略去的变换系数级的重要图。除了 这些残余数据语法元素之外,编码器201生成的语法元素还包含控制信息语法元素,这些 控制信息语法元素分别包含关于已经如何对每个宏块编码并且必须如何对每个宏块解码 的控制信息。换言之,语法元素可划分成两个类别。控制信息语法元素这第一类别例如包 含与宏块类型、子宏块类型和关于空间和时间类型二者的预测模式的信息以及基于分片和 基于宏块的控制信息有关的元素。在第二类别中,所有残余数据元素、比如重要图被组合并 且变成残余数据语法元素,该重要图指示量化的变换系数的块内部的所有重要系数的位置 和重要系数的以与量化步进对应的级为单位指示的值。
[0042] 编码器201包括对语法元素编码并且为每个分片