使用视频图像的帧间预测的并行解码器的制作方法

文档序号:12754421阅读:204来源:国知局
使用视频图像的帧间预测的并行解码器的制作方法与工艺

本发明涉及数据压缩和解压缩,并且更具体地涉及并行执行图像的帧间预测处理的视频解码器.



背景技术:

数据压缩用于减小存储、传输或重建(解码和回放)的数据量,尤其是对于视频内容.解码以适于显示的格式从压缩数据恢复视频内容.可获得用于高效地编码和解码压缩信号的各种格式标准.常用的一种标准是国际国际电信联盟标准ITU-TH.264‘通用视听业务的先进视频编码’.

用于视频压缩的技术包括帧间编码和帧内编码.帧间编码对于基于块的帧间预测采用运动向量,以利用不同图像中项目(item)之间的时间统计依赖性(其可涉及不同的帧、场、切片或宏块或较小分区).用于帧间预测解码的帧间预测图像项目数据包括运动向量、参考图像的索引、在帧间预测解码完成之前必须解码的相关块,以及诸如块大小的其他数据.帧内编码对于单个图像内的项目使用各种空间预测模式以利用源信号中的空间统计依赖性(冗余).在编码期间,预测残余(其限定参考图像项目和当前编码项目之间的残余差异)然后被使用变换进一步压缩,以在量化之前去除变换块内的空间相关性.最后,运动向量或帧内预测模式被与量化变换系数信息组合并被编码。

解码处理包括以压缩数据被接收的顺序获取压缩数据、解码不同图像项目的数据、并根据运动向量或帧内预测模式组合帧间编码项目和帧内编码项目.解码帧内编码图像可以在不参考其它图像的情况下完成。解码帧间编码图像项目使用运动向量以及来自由编码器选择的参考图像项目的采样值的块.

在并行解码器中,不同的专用线程例如在多核处理器中被同时进行处理.在对帧间编码图像进行解码期间,帧间预测处理可以在参考图像被完全解码之前开始。然而,如果帧间预测处理被阻塞等待参考图像项目解码处理的完成,则会失去并行解码的速度潜能的好处.

对视频数据采用其中减小或消除由于等待参考图像项目解码的完成而导致的帧间预测处理的延迟的并行解码器将是有利的。

附图说明

通过参考在附图所示的实施例的以下描述可以最佳地理解本发明以及其目的和优点.附图中的要素是为了简单和清楚示出的,并不一定按比例绘制.

图1是示出在视频图像数据的压缩过程中帧间编码图像项目数据的传统处理的示意图;

图2是根据本发明的实施例的用于解码压缩的视频图像数据的并行解码器的示意框图;

图3是根据本发明的实施例的操作图2的解码器的方法的流程图;

图4是示出在图3示出的方法中帧间预测图像项目数据在队列中的分布的示意图;

图5是根据本发明的另一实施例的操作图2的解码器的方法的流程图;

图6是示出在图5示出的方法中,帧间预测图像项目数据在树中的分布的示意图;和

图7是可用于实现图2的并行解码器的数据处理系统的示意框图.

具体实施方式

图1示出诸如在ITU-T标准H.264AVC中使用帧间预测来压缩当前图像项目的传统方法100.在方法100中,编码器试图找到包含与它正在编码的块类似的像素的参考块104,而不是对图像的每个块102的原始图像数据直接编码.块102在帧中的当前位置相对于参考块104的位置的位移由运动向量106定义.正被编码的块102和参考块104之间的小的残余差异(诸如,由在块102和104的阴影中的差异示出的亮度或色彩的改变)由预测误差数据概括,该预测误差数据通常也被发送给解码器.因为不必再次发送并解码参考块104的原始图像数据,所以图像数据的量被减少。然而,参考图像块104必须在帧间预测图像块102能够被解码之前先被解码,并且对参考块104进行解码中的延迟会阻塞解码处理。

本发明适用于按照标准H.264AVC和其他标准编码的图像。图2示出根据本发明的实施例的用于对压缩视频图像数据进行解码的并行解码器200.解码器 200解码来自源202的压缩视频图像数据,包括具有具有运动向量数据106的帧间编码图像项目数据102。解码器200包括临时存储装置204,用于存储将要解码的图像数据的多个结构(包括组织帧间预测项目的结构).至少一个解码模块206对所存储的图像数据进行解码.解码模块206包括至少一个帧间预测模块208,帧间预测模块208使用帧间预测项目数据以通过参照已经解码的参考图像项目数据104来对帧间编码图像项目进行解码.控制模块210根据对应参考图像项目104在解码顺序中的位置控制在临时存储装置204中的帧间预测项目数据的结构,并且根据参考图像项目数据104的解码顺序对由帧间预测模块208对存储的帧间预测项目数据进行的解码顺序赋予优先级.来自解码模块206的解码图像数据可以以适于在显示屏幕214上显示的格式进行重建.

组织要被解码的帧间预测项目数据400的结构(图4)可包括帧间预测项目数据实体的相应队列402、404、406、408.每个帧间预测项目实体包含帧间预测模块208用于解码相应帧间编码图像项目的相关参考图像项目数据104的标识.该标识可包括:运动向量数据、相关的参考图像项目的索引以及块大小.可通过参考图像项目数据在解码顺序中的位置对队列赋予优先级.控制模块210可控制语法解析器212,语法解析器212根据相关参考图像项目在解码顺序中的位置向队列分配帧间预测项目实体。语法解析器212可以使用右下角像素的位置作为参考图像项目位置.

控制模块210可以使解码模块要解码的帧间预测图像项目实体出队,如果相关参考图像项目数据末在设定时间内解码则使该帧间预测项目实体再次入队,并且相反,解码模块解码另一帧间预测项目实体.

每个队列402、404、406、408可以根据解码顺序包含参考图像的相应区域的帧间预测项目数据.解码顺序可以是光栅扫描顺序。

在图像数据涉及图像的切片(slice)或瓦片(tile)的情况下,队列可以包含图像的一个或多个相应切片或瓦片的帧间预测项目数据。

在解码模块包括并行解码输出的情况下,相应并行解码输出的帧间预测项目数据可以交织在相同的队列中。

图3示出在队列结构400中存储要被解码的帧间预测项目数据的方法300.在302,在临时存储装置204中创建队列402至408。在304,语法分析器212向按照相关参考块104的解码顺序被赋予优先级的队列402至408分配帧间预 测数据项目.可选地,为了更佳的效率,每个队列402至408可以根据其中参考块的解码顺序进行整理(排序),如在306.整理可以周期性地执行,或者可以当项目的数量大于阈值时被触发.在308,帧间预测模块208中的帧间预测线程根据队列优先级从队列402至408取出项目,从最高优先级队列中取出第一项目(如果有).在310,对帧间预测解码是否因为相关参考图像项目数据104还未被完全解码而不能被完成进行判定。如果参考图像项目数据104还未及时被解码,则在312,帧间预测数据项目被放回原始队列.如果参考图像项目数据104已经被及时解码,则在314,帧间预测处理被执行,并且解码处理在步骤308进行到队列优先级中的下一个项目。

组织要被解码的帧间预测项目数据的结构可以包括相应的树600(图6).每棵树具有链接的节点602至610,节点602至610包含帧间预测项目数据实体和对任何子节点的引用,其中,帧间预测模块通过树遍历616提取帧间预测项目数据实体,并在解码中使用所述帧间预测项目数据实体.每个帧间预测项目数据实体包含相关参考图像项目数据104的标识.该标识可包括运动向量数据、相关参考图像的索引和块大小.控制模块210可按照节点602至610的遍历顺序对临时存储装置204中的帧间预测项目数据的结构和所存储的帧间预测项目数据的解码顺序赋予优先级.帧间预测模块208可按照中序树遍历616提取帧间预测项目数据实体.

控制模块210可以按照解码的优先级的顺序,在树中插入第一帧间预测项目数据实体作为根节点602,并且插入后续的帧间预测项目数据实体作为子节点604至610.

可替代地,控制模块210可按照解码的优先级的顺序在树中插入虚拟项目作为根节点602,并且插入帧间预测项目数据实体作为子节点604至610,这使得树更加扁平(平衡).

图5示出在树结构600中存储要被解码的帧间预测项目数据的方法500.在502,帧间预测项目被选择用于插入树600.在504,对树600是否是空的进行判定。如果是,则该项目被插入作为树600的根节点602,并且在508,处理进行到下一个项目,返回到步骤502。如果在504树非空,则根节点602在510被选择为比较对象,并且正被插入的项目是用于插入作为比较对象的子节点的候选。在512,对该项目的值是否比比较对象节点具有更高的优先级进行判定. 如果是,则在514对比较对象是否已经具有左子节点(更高优先级)进行判定.如果是,则已经被分配的左子节点在516被选作比较对象,并且处理返回到步骤512。如果在514比较对象还没有左子节点,则项目在518被插入作为比较对象的左子节点.如果在512项目的值不具有高于比较节点的优先级,则在520对比较对象是否已经有右子节点(更低优先级)进行判定.如果是,则已被分配的右子节点在522被选作比较对象,并且处理返回到步骤512.如果在520比较对象还没有右子节点,则该项目在524被插入作为比较对象的右子节点.

在图6中,树600被表示为二叉树。左子节点604是树的遍历616(由点划线示出)的开始节点.在传统方式中,如果子节点的值大于它的父节点的值,则它被示出在父节点的右侧,而如果子节点的值较小(更高优先级),则子节点被示出在父节点的左侧.在树600中,节点的值是对应宏块(例如,16×16大小)在图像中的位置(或ID),所述宏块包围参考块的右下角像素(x,y),也就是说,位置=(y/16)*(pic_width/16)+(x/16).在树600中,pic_width=640,位置=(y/16)*40+(x/16).节点610(25,41)位置=81被插入作为节点608的左子节点。节点612和614还没有被分配并以虚线示出.树遍历616的顺序是子节点604(位置0)、606(位置2)、根节点602(位置43)、然后子节点610(位置81)和608(位置122).

将理解,可以使用其他的树结构,以及可以使用其它树遍历处理.

图7是可用于实现并行解码器的数据处理系统700的示意框图。数据处理系统700包括耦接到存储器704(其可提供并行解码器200的临时存储装置204)的处理器702,以及耦合到存储器704的另外的存储器或存储装置706.数据处理系统700还包括显示设备708(其可以是显示重建图像数据的显示屏幕214)、输入/输出接口710和软件712。软件712包括操作系统软件714、应用程序716和数据718。除了用于实现上述对压缩视频图像数据进行解码的算法和其他软件之外,数据处理系统700通常是本领域已知的.当软件或程序在处理器702上执行时,该处理器就变成了“用于......的装置”,其执行在处理器702上运行的软件或应用代码的步骤或指令。即,对于不同的指令以及与指令关联的不同数据,处理器702的内部电路由于不同的寄存器值等而呈现不同的状态,如由本领域技术人员已知的.因此,本文描述的任何“用于......的装置”结构涉及到处理器702,因为它执行本文所公开的方法的步骤.

本发明可以至少部分地实现在包含用于在计算机系统上运行的计算机程序的非暂态机器可读介质中,所述程序至少包括用于当在可编程装置(诸如,计算机系统)上运行时执行根据本发明的方法的步骤或使可编程装置执行根据本发明的设备或系统的功能的代码部分.

计算机程序可以内部地存储在计算机可读存储介质上,或经由计算机可读传输介质传输到计算机系统。所有或一些计算机程序可被提供在持久地、可移除地或远程耦接到信息处理系统的非暂态计算机可读介质上.该计算机可读介质可以包括例如(但不限于)任何数目的以下介质:包括盘和带存储介质的磁存储介质;光存储介质,诸如紧凑盘介质(例如,CDROM、CDR等)和数字视频盘存储介质;包括基于半导体的存储器单元的非易失性存储器存储介质,诸如闪存、EEPROM、EPROM、ROM;铁磁数字存储器;MRAM;易失性存储介质,包括寄存器、缓冲器或高速缓存、主存储器、RAM等;和数据传输介质,包括计算机网络、点对点电信设备以及载波传输介质等等.

计算机程序是指令的列表,诸如特定应用程序和成操作系统.计算机程序可以例如包括下述一种或多种:子程序、函数、过程、对象方法、对象实现、可执行应用、小应用程序、小服务程序(servlet)、源代码、目标代码、共享库/动态加载库和/或设计用于在计算机系统上执行的指令的其它序列。

在前述详述中,已经参照本发明的实施例的具体示例对本发明进行了描述.然而,显然可以在其中作出各种修改和变化,而不偏离在所附的权利要求中阐述的本发明的更广泛的精神和范围。

本领域技术人员将认识到逻辑块之间的边界仅是示例性的,并且替代实施例可以合并逻辑块或电路元件或对各种逻辑块或电路元件施加功能的替代分解.因此,应该理解,本文描述的架构仅仅是示例性的,并且事实上可以实现获得相同功能的许多其他架构.同样地,实现相同功能的部件的任何布置被有效地“关联”,使得实现期望的功能.因此,经组合以实现特定功能的任何两个部件可以被看作是彼此“关联”,从而使得实现期望的功能,而不管架构或中间部件如何。同样地,任何两个因此关联的部件也可以被视为彼此“可操作地连接”或“可操作地耦合”,以实现期望的功能。

此外,本领域的技术人员将认识到,上述的操作之间的边界仅是示例性的.多个操作可被组合成单个操作,单个操作可以分布在另外的操作中,并且操作 可以至少在时间上部分重叠地执行。此外,替代实施例可包括特定操作的多个实例,并且操作的顺序可以在各种其它实施例中改变。

此外,本发明并不限于在非可编程硬件中实现的物理设备或单元,还可以应用于能够通过按照合适的程序代码进行操作而执行期望的设备功能的可编程设备或单元,诸如大型机、微型计算机、服务器、工作站、个人电脑、笔记本、个人数字助理、电子游戏机、汽车和其他嵌入式系统、蜂窝电话和各种其他无线设备,它们在此申请中被共同表示为“计算机系统”。

在权利要求中,词语“包括”或“具有”并不排除除了在权利要求中列出那些的元件或步骤之外还存在其他元件或步骤.此外,如本文所用的,没有用数词进行限定的词语表示一个或多于一个。此外,在权利要求使用的引导性短语(诸如,“至少一个”和“一个或多个”)不应被解释为暗示没有用数词进行限定的另一权利要求元件将含有这种权利要求元件的任何特定权利要求限制于只包含一个这样的元件,即使同一个权利要求包括引导性短语“一个或多个”或“至少一个”和没有用数词进行限定的元件.这对于词语“所述”的使用同样成立.除非另有说明,否则,诸如“第一”和“第二”之类的术语用于任意地区分这样的术语描述的元件.因此,这些术语不一定意图指示这些元件的时间或其它优先顺序.仅凭某些措施被记载在相互不同的权利要求中的事实并不表示这些措施的组合不能被用于产生益处。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1