条件交叠变换的制作方法

文档序号:7508173阅读:225来源:国知局
专利名称:条件交叠变换的制作方法
技术领域
本发明涉及用于数字编码、解码和处理媒体内容信号(例如,音频、视频、图像、文本、语音等)的技术。本发明尤其涉及基于交叠变换的数字媒体编解码。
背景变换编码是在许多音频、图像和视频压缩系统中使用的压缩技术。非压缩的数字图像和视频通常被表示或捕捉为在图像或视频帧中按二维网格排列的位置处的图元或色彩的样本。例如,图像的典型格式由排列为网格的24比特彩色图元样本流组成。每个样本是在诸如RGB或YIQ等色彩空间内网格中的像素位置处表示色彩分量的数字。各种图像和视频系统可使用各种不同的色彩、空间和时间采样分辨率。
非压缩的数字图像和视频信号可能会消耗大量存储和传输容量。变换编码通过将信号的空间域表示变换为频域(或其它类似的变换域)表示,并然后降低变换域表示的某些一般较不可感知的频率分量的分辨率来减少数字图像和视频的数据量大小。这与在空间域降低图像或视频的色彩或空间分辨率相比,一般产生数字信号较不可感知的退化。
更具体地,

图1中所示的典型的变换编码技术100将非压缩的数字图像的像素分成固定大小的二维块,其中每个块可能与其它块交叠。对每个块应用进行空间频率分析的线性变换110,它将块内间隔的采样转换为一组频率(或变换)系数,而这组系数一般表示数字信号在块间隔上的对应频带中的强度。为了压缩,变换系数可被选择性地量化(即,诸如通过舍弃系数值中最低有效的位、或是将较高分辨率数集中的值映射到较低分辨率来降低分辨率),并且还可由量化器/熵编码器120熵编码或变长编码到压缩的数据流中。在解量化/熵解码130以后,变换系数将逆变换140以近似地重构原始的彩色/空间采样图像/视频信号。
在压缩静止图像(或视频序列中的内编码帧)时,诸如MPEG-2、MPEG-4和Windows Media等大多数公共标准将图像划分为正方形的贴图,并对每个贴图应用块变换。给定分区(通常称为块)中的变化系数仅受该块内的原始数据分量的影响。编码器一方的诸如量化等不可逆或有损操作使得经解码图像中出现伪影。这些伪影在块上是独立的,并且产生称为阻塞效应的干扰视觉的效果。类似地,对于音频数据,当无交叠的块被独立变换编码时,在解码器处重构音频信号后,量化误差就将在块边界处产生信号的不连续。对于音频,就会听到周期性的“咔嗒”声效应。
空间域交叠变换为将阻塞效应最小化,可以利用交叉块的相关。实现交叉块相关的一个方法是通过使用如H.Malvar“Signal Processing with Lapped Transforms”(使用交叠变换的信号处理)Artech House,Norwood MA 1992中所描述的交叠变换。交叠变换是除了当前块中的数据元素以外,其输入还跨越相邻块中的一些邻近元素的变换。类似地,在重构方,逆变换影响当前块中的所有数据点以及相邻块中的一些数据点。
对于二维(2D)数据的情形,交叠2D变换是当前块、及其左、上、右、下及可能还有左上、右上、左下和右下块的选择元素的函数。被用来计算当前变换的相邻块中的数据点数被称为交叠。
交叠变换可以在变换域中实现为在常规块变换以后合并变换域量的步骤。另外,它可由被应用于交叠范围内的像素的预处理阶段在空间域中实现。这两种实现是数学相关的,并因而是等效的。
如图2中所示,空间域交叠变换(SDLT)200是被实现为分别在正向块变换110之前、以及在反向块变换140之后的匹配的预处理/后处理步骤210、220的交叠变换。(见例如,Srinivasan等,“Improvements to the Spatial-Domain LappedTransform in Digital Media Compression”(数字媒体压缩中对空间域交叠变换的改进),美国专利申请第10/620,744号,于2003年7月15日提交[以下称为“ImprovedSDLT Patent Application”(改进的SDLT专利申请)]。)空间域交叠变换常常被用来改进基于压缩技术的现有块变换以提高效率。
概述当对被以非预测(即,内编码)方式编码的其它数字媒体的一个图像(诸如视频序列中的帧)的所有部分应用SDLT时,就出现了某些限制问题1.前置过滤器是范围扩张的;因此在编码器方经前置过滤器以后,图像的某些区域可能会饱和或削波。类似地,在解码器方可能会有溢出。
2.前置过滤器是锐化的。因此具有局部高频内容(特别是图像边与块边对齐)的图像中某些区域的编码效率将会因为交叠变换的缘故而降低。
使用本文中所描述的数字媒体信号处理和编码/解码技术和系统而实现的条件交叠变换实现对交叠过程更好的控制以解决这些问题。这一条件交叠变换允许对交叠变换的前置和后置过滤器的选择或应用具有空间灵活性。换言之,交叠变换被条件地应用于数字媒体内容的不同区域(例如,图像的各个不同的块)。
例如,本文中所描述的条件交叠变换的一种实现使用空间变化的模式参数来指定要对解码后应用的交叠后置过滤器的应用和程度。例如,在视频编解码中,这一空间变化的模式参数指定要对图像中的哪些块边应用交叠变换的后置过滤器。在一种实现中,视频序列的内编码帧将模式参数作为具有宏块粒度的布尔标志来更加高效地编码和发送,这比对每条块边的模式参数进行编码要更加高效。此外,这一实现基于与比特率相关的量化参数对条件交叠模式施加限制以将在低比特率执行条件交叠变换的影响最小化。
本发明的其它特征和优点将从以下参考附图对诸实施例的详细描述来明确。
附图简述图1是现有技术中一种典型的变换编码技术的框图。
图2是现有技术中一种基于空间域交叠变换的编码/解码系统的框图。
图3是一种使用本文中所描述的条件交叠变换的视频编码器的框图。
图4是一种使用本文中所描述的条件交叠变换的视频解码器的框图。
图5是一种实现具有每条邻近块边交叠模式信号表示的条件交叠变换的编码器的框图。
图6是在根据具有基于比特率的和每宏块交叠模式信号表示的条件交叠变换的第二实现的编码器/解码器中使用的序列级句法图。
图7是在根据具有基于比特率的和每宏块交叠模式信号表示的条件交叠变换的第二实现的编码器/解码器中使用的帧级句法图。
图8是示出在条件交叠变换的第二实现中的交叠模式标志的基于比特率的和每宏块信号表示的流程图。
图9是为图像中的一组宏块的已发送信号表示的交叠模式标志的示例而对其应用交叠过滤器的邻接的宏块边的示意图。
图10是对图3和4的视频编码器/解码器适用的计算环境的框图。
详细描述以下描述针对条件交叠变换的实现,其中与交叠变换相关联的块边过滤器在空间变化基础上被条件地应用于数字媒体内容。条件交叠变换的示例性应用是在图像或视频编码器和解码器中。但是,空间域交叠变换的这一条件形式并不局限于图像或视频编解码,而是可被应用于其它媒体编码、解码和/或处理系统。由此,该条件交叠变换是在一般化的图像或视频编码器和解码器的上下文中描述的,但是替换地也可被结合到在条件的或空间变化基础上使用交叠变换的交叠过滤器的各种类型的媒体信号编码、解码和/或处理系统(例如,音频、视频、图像等等)中,而不论在空间域中或在变换域中。
1.一般化的视频编码器和解码器图3是一般化的视频编码器(300)的框图,而图4是一般化的视频解码器(400)的框图,其中可结合WMV9/VC-9变换。
所示的在编码器和解码器内诸模块之间的关系指出编码器和解码器中主要的信息流;为简单起见没有示出其它关系。特别地,图3和4通常并不示出表示编码器设置、模式、表等用于视频序列、帧、宏块、块等的次要信息。此类次要信息通常是在对次要信息进行熵编码以后在输出比特流中被发送的。输出比特流的格式可以是Windows Media Video(Windows媒体视频)格式或其它格式。
编码器(300)和解码器(400)是基于块的,并且使用4∶2∶0宏块格式,其中每个宏块包括4个8×8亮度块(有时作为一个16×16宏块来处理)和两个8×8色度块。另外,编码器(300)和解码器(400)是基于对象的,使用不同的宏块或块格式,或是对与8×8块和16×16宏块不同大小或配置的像素集执行操作。
取决于所期望的压缩的实现和类型,编码器或解码器的诸模块可被添加、省略、拆分成多个模块、与其它模块组合、和/或用类似的模块替换。在替换实施例中,具有不同的模块和/或其它的模块配置的编码器或解码器执行一个或多个所描述的技术。
A.视频编码器图3是一般的视频编码器系统(300)的框图。编码器系统(300)接收包括当前帧(305)在内的视频帧序列,并产生经压缩的视频信息(395)作为输出。视频编码器的特定实施例通常使用一般化编码器(300)的变体或补充版本。
编码器系统(300)压缩预测帧和关键帧。为说明起见,图3示出关键帧通过编码器系统(300)的路径,以及前向预测帧的路径。编码器系统(300)的许多组件既被用于压缩关键帧,也被用于压缩预测帧。由那些组件所执行的确切操作可能根据所压缩的信息的类型而改变。
预测帧[也称为p帧、(对应于双向预测的)b帧、或互编码帧]是以从一个或数个其它帧的预测(或差异)的形式表示的。预测残余是所预测的帧和原始帧之间的差异。反之,关键帧[也称为i帧、内编码帧]是不参考其它帧而压缩的。
如果当前帧(305)是前向预测帧,则运动估算器(310)参照参考帧来估算当前帧(305)的宏块或其它像素集的运动,所谓参考帧是缓存在帧存储(320)中的重构的先前帧(325)。在替换实施例中,参考帧是较后的帧,或者当前帧是被双向地预测的。运动估算器(310)输出诸如运动矢量等运动信息(315)作为次要信息。运动补偿器(330)将运动信息(315)应用于重构的先前帧(325)来构成经运动补偿的当前帧(335)。但是,预测很少是理想的,经运动补偿的当前帧(335)和原始的当前帧(305)之间的差异就是预测残余(345)。替换地,运动估算器和运动补偿器应用另一种类型的运动估算/补偿。
变频器(360)将空间域视频信息转换为频域(即,频谱)数据。对于基于块的视频帧,变频器(360)应用在以下章节中描述的具有和离散余弦变换[“DCT”]相似属性的变换。在一些实施例中,变频器(360)对关键帧的空间预测残余块应用频率变换。变频器(360)可应用8×8、8×4、4×8、或其它大小的频率变换。
量化器(370)随即量化频谱数据系数块。量化器以在一帧接一帧的基础上或其它基础上变化的步长对频谱数据应用一致的、标量的量化。替换地,量化器对频谱数据系数应用其它类型的量化,例如,非一致的、矢量的或非自适应的量化,或在不使用频率变换的编码器系统中直接量化空间域数据。除了自适应量化以外,编码器(300)还可使用帧舍弃、自适应过滤或其它技术来进行速率控制。
当需要重构的当前帧来进行后续的运动估算/补偿时,反量化器(376)对经量化的频谱数据系数执行反量化。逆变频器(366)随即执行变频器(360)的逆操作,从而产生重构的预测残余(对应于预测帧)或是重构的关键帧。如果当前帧(305)是关键帧,则重构的关键帧被视为重构的当前帧(未示出)。如果当前帧(305)是预测帧,则重构的预测残余被添加到经运动补偿的当前帧(335)以构成重构的当前帧。帧存储(320)缓冲重构的当前帧以便在预测下一帧时使用。在一些实施例中,编码器对重构的帧应用解块过滤器以自适应地平滑掉在帧的诸块中的不连续。
熵编码器(380)压缩量化器(370)的输出以及某些次要信息(例如,运动信息(315)、量化步长)。典型的熵编码技术包括算术编码、差分编码、哈夫曼编码、行程编码、LZ编码、字典编码、以及以上的各种组合。熵编码器(380)通常对不同种类的信息(例如,DC系数、AC系数、不同种类的次要信息)使用不同的编码技术,并可在特定编码技术中从多个编码表中进行选择。
熵编码器(380)将经压缩的视频信息(395)放在缓冲区(390)中。缓冲级指示符被反馈给比特率自适应模块。经压缩的视频信息(395)在恒定或相对恒定的比特率被从缓冲区(390)用尽,并被存储以便在该比特率进行后续的流式传输。替换地,编码器系统(300)在压缩以后立即流式传输经压缩的视频信息。
在缓冲器(390)以前或以后,经压缩的视频信息(395)可被信道编码以便通过网络传输。信道编码可对经压缩的视频信息(395)应用检错和纠错数据。
B.视频解码器图4是一般的视频解码器系统(400)的框图。解码器系统(400)接收对应于经压缩视频帧序列的信息(495)并产生包括重构帧(405)的输出。视频解码器的特定实施例通常使用一般化的解码器(400)的变体或补充版本。
解码器系统(400)解压缩预测帧和关键帧。为说明起见,图4示出关键帧通过解码器系统(400)的路径,以及前向预测帧的路径。解码器系统(400)的许多组件既被用来压缩关键帧,也被用来压缩预测帧。那些组件所执行的确切操作可以根据所压缩的信息的类型而改变。
缓冲区(490)接收对应于经压缩的视频序列的信息(495),并使所接收的信息对熵解码器(480)可用。缓冲区(490)通常在时间上相当恒定的速率接收信息,并包括抖动缓冲区,用于平滑带宽或传输中的短期变化。缓冲区(490)可包括回放缓冲区以及其它缓冲区。替换地,缓冲区(490)以变化的速率接收信息。在缓冲区(490)之前或之后,经压缩的视频信息可被信道解码并针对检错和纠错进行处理。
熵解码器(480)通常通过应用在编码器中所执行的熵编码的逆来将经熵编码的经量化数据以及经熵编码的次要信息(例如,运动信息、量化步长)熵解码。熵解码技术包括算术解码、差分解码、哈夫曼解码、行程解码、LZ解码、字典解码以及上述的各种组合。熵解码器(480)常对不同种类的信息(例如,DC系数、AC系数、不同种类的次要信息)使用不同的解码技术,并可从特定解码技术内的多个编码表中进行选择。
如果要被重构的帧(405)是前向预测帧,则运动补偿器(430)对参考帧(425)应用运动信息(415)以构成正被重构的帧(405)的预测(435)。例如,运动补偿器(430)使用宏块运动矢量来寻找参考帧(425)中的宏块。帧缓冲区(420)存储先前所重构的帧以便作为参考帧使用。替换地,运动补偿器应用其它类型的运动补偿。运动补偿器的预测很少是理想的,因此解码器(400)还重构预测残余。
当解码器需要重构的帧以进行后续的运动补偿时,帧存储(420)缓冲重构的帧以便在预测下一帧时使用。在一些实施例中,编码器对重构的帧应用解块过滤器以自适应地平滑掉帧的诸块中的不连续。
反量化器(470)反量化经熵解码的数据。一般而言,反量化器以在一帧接一帧的基础或在其它基础上变化的步长对经熵解码的数据应用一致的、标量的反量化。替换地,反量化器对数据应用其它类型的反量化,例如,非一致的、矢量的、或非自适应的量化,或在不使用逆变频的解码器系统中直接反量化空间域数据。
逆变频器(460)将经量化的频域数据转换为空域视频信息。对于基于块的视频帧,逆变频器(460)应用以下章节中所描述的逆变换。在一些实施例中,逆变频器(460)对关键帧的空间预测残余的块应用逆频率变换。逆变频器(460)可应用8×8、8×4、4×8、或其它大小的逆频率变换。
2.条件交叠变换再次参考图2,当编码器/解码器200对图像执行典型的现有技术的空间域交叠变换时,预处理和后处理过滤器级210、220被应用于图像中所有邻接的块边。大小为M×N、使用8×8块编码的图像仅就其亮度通道而言,在邻接的8×8块之间就有将近M*N/32条不同的边。在现有技术的编码器/解码器200对图像应用空间域交叠变化的情况下,过滤器级210、220被应用于图像的这些邻接的块边中的每一条边。
A.每条邻接块边的交叠模式信号表示在图5中所示的条件交叠变换的第一实现中,编码器发送对应于每条邻接的块边的不同的码元(交叠模式码元510),这些码元定义了交叠过滤器(Mn)520-522(它们可以是通过过滤器,即,没有应用任何过滤)的选择,如图5中为编码器所示。在编码器处,可基于各种准则对过滤器进行选择,包括是否有任何过滤器结果在范围之外、平滑度测试、速率畸变优化准则、以及这些准则的各种组合等等。这一切换被称为交叠过滤器的“模式”,而该模式确定了应用前置和后置过滤器的“条件”。图5示出确定切换设置的交叠模式参数,该参数为每个正被过滤的块的边发送。
允许每个前置和后置过滤器被独立标志的一个缺点是与过滤模式相关联的额外开销的增长。例如,假定以30帧/秒对大小为320×240的视频编码。此外,假定每秒发送一个I帧(内编码帧)。因而在在视频中每秒大约有3600个8×8块内边。(此数字是近似的,因为一些块可能在图像边界,因而不是邻接的块的边。)甚至在为每条边发送单比特交叠模式码元(1比特额外开销)时,这也将导致已编码比特流(图3的经压缩的视频信息195)中过量的3.6kbps的比特率,这是不可忽视的。
B.基于比特率的和每块交叠模式信号表示在另一个示例性实现中,编解码使用基于编码比特率且使用每块交叠模式码元的信号表示方案,实现了信号表示交叠模式较低的额外开销。此信号表示方案使用以下句法元素帧级量化参数(QP)、帧级交叠标志、以及宏块级交叠模式标志。在使用其它视频编码句法的编解码中,可使用其它句法方案和元素来编码各个块边或是块边组的条件交叠变换。例如,可使用涉及帧的编码比特率或量化的另一种句法元素。
参考图6和7,经压缩的视频比特流195(图3)包括对应于经压缩的行进视频帧序列或其它图像的信息。该比特流被组织成由诸如图4的解码器(400)等解码器解码的数个分层结构层。最高层是序列层,该层有对应于整个帧序列的信息。此外,每个经压缩的视频帧是由被结构化为三个分层结构层的数据组成。从顶到底这些层是图像、宏块和块。
图6是对应于序列层600的句法图,它包括序列头部610,后面是对应于图像层的数据(见图7)。序列头部610包括数个序列级元素,它们由解码器处理并被用来将序列解码,包括宏块量化(DQUANT)元素620、量化器指定器(QUANTIZER)元素630、以及交叠变换标志(OVERLAP)元素640。DQUANT620是指明量化步长在一帧内是否可以改变的2比特字段。DQUANT有三种可能的值。如果DQUANT=0,则每帧仅可使用一个量化步长(即,帧量化步长)。如果DQUANT=1或2,则不同地量化帧中的每一个宏块是可能的。
QUANTIZER 630是表示用于序列的量化器的2比特定长编码[“FLC”]字段。量化器类型是根据下表1来编码的。


表1量化器规范交叠变换标志(OVERLAP)(1比特)OVERLAP 640是表示是否使用交叠变换的1比特标志,如以下详细讨论。如果OVERLAP=1,则使用交叠变换,否则不使用交叠变换。
图7是对应于交织内编码帧[“交织I帧”]的图像层700的句法图。对应于诸如行进I帧、P图像和B帧等其它图像的句法图具有许多类似的句法元素。图像层700包括图像头部710,后面是对应于宏块层的数据的。图像头部710包括由解码器处理并被用来将对应的帧解码的数个图像级元素。其中一些元素仅在由序列级元素或在前的图像级元素信号表示或隐含了它们的存在时才出现。
在所示的比特流句法中,帧级量化参数(QP)是以图像量化器标度(PQUANT)的形式,它可在图像层句法中被隐式或显式地发信号表示,如上述的序列级句法元素QUANTIZER所指定。无论在哪种情形中,图像量化器标度(PQUANT)是从图像量化器索引(PQINDEX)元素720转换而来的。PQINDEX 720是为整个帧发信号表示量化器标度索引的5比特字段。它出现在所有图像类型中。如果使用了隐式量化器,则PQINDEX指定对该帧所使用的图像量化器标度(PQUANT)和量化器(3QP或5QP盲区)。表2示出PQINDEX如何被转换为PQUANT和对应于隐式模式的量化器。


表2PQINDEX到PQUANT/量化器盲区转换(隐式量化器)如果量化器在序列或帧级被显式地发信号表示,则PQINDEX被如表3所示地转换为图像量化器步长PQUANT。

表3PQINDEX到PQUANT转换(显式量化器)替换地,当量化器在序列或帧级被显式地发信号表示时,代替表3中所示的变换,对于PQINDEX从1到31的所有值,量化器PQUANT等于PQINDEX。
图像头部还包括条件交叠标志(CONDOVER)元素730和条件交叠宏块模式标志(OVERFLAGS)元素740。这一条件交叠标志元素仅在I图像中、且仅当OVERLAP开启且PQUANT在某个范围以内时出现,如以下将详细讨论的。OVERFLAGS句法元素仅在I图像中、且仅当CONDOVER有二进制值11时出现。OVERFLAGS是作为位平面来编码的,在原始模式下它要求每个宏块都携带其本地信息OVERFLAGMB。
交叠模式规则在条件交叠变换的此第二示例性实现中,编码器(图5)通过对内帧中的交叠模式标志设置一些限制来限制额外开销,这些限制如下1.交叠模式被设为二元量。值FALSE表示没有应用交叠过滤(即,前置和后置过滤器是通过过滤器)而TRUE指示应用了交叠过滤级,如以上所引述的改进的SDLT专利申请中为空间域交叠变换所定义的。在其它实现中,交叠过滤器模式的个数可以更大,如图5中所示,其代价是每宏块的外加的额外开销。
2.对于某个大于量化阈值(QTH)的基于帧的量化参数(QP)(例如,从表2或表3确定的图像量化器标度(PQUANT))或QP>QTH(即,对于低到很低的比特率)的值,对内块之间的所有边将交叠条件设为TRUE。在所示实现中,使用量化阈值8,但替换实现可使用不同的量化阈值。
3.除此以外,对于基于某个帧的量化参数值QP≤QTH(即,对于高到很高的比特率),将帧中的每个内宏块与一个二元交叠模式标志相关联。与此标志相关联的交叠过滤器规则被预先枚举。
对于经预测编码的帧(P帧)中的内块和宏块,交叠模式仅仅是从量化参数(QP)隐式推导出来的。这是合理的,因为与I帧相比,P帧在编码模式的选择中允许较大的自由度。
如在图8的流程图所示,在第二实现中交叠模式标志被编码和解码如下1.如果在第一判定框810,序列级交叠标志(图6中的OVERLAP 640)被设为FALSE,则没有任何交叠模式被发送,也不执行任何交叠(850)。
2.在判定框820,当QP>QTH时,交叠模式标志隐式地为TRUE,且在判定框810,序列级交叠标志(OVERLAP 640)为TRUE。在此情形中,对图像中的所有邻接块边执行交叠(870)。
3.在判定框820,当QP≤QTH时,发送表示三种可能性(a、b或c)之一的帧级标志(图7中的CONDOVER 730),并执行操作如下a.帧没有任何交叠(850)b.帧中所有宏块都被交叠(870)c.“条件交叠”-发送每宏块交叠模式标志(图7中的OVERFLAGS 740)为方便理解,这在流程图中被分为两个二元判定。
4.当指示了条件交叠时,交叠模式标志是为内帧中的每个内宏块发送的二元标志(即,OVERFLAGS句法元素)。
条件交叠因为每宏块地发信号表示交叠模式,所以每个条件交叠标志指向多条边。在所示实现中,宏块的大小是16×16(对于亮度通道)像素,而变换块大小是8×8像素。对8×8块大小色度通道有一半的空间分辨率。由此,边可能在宏块以内(即,对应于亮度通道在宏块中每个变换块之间的边),或跨骑两个宏块(对于大约一半的亮度通道边和所有色度通道边)。如对图9中所示的为宏块发信号表示的示例性交叠模式标志所示,确定是否要对边应用前置/后置过滤器的规则枚举如下1.没有任何前置或后置过滤被应用于交叠模式标志为FALSE的宏块或是非内编码宏块的内部宏块边。
2.如果宏块是内编码的,且相应的交叠模式标志是TRUE,则宏块中所有内部的8×8块内边都被前置/后置过滤。
3.仅当满足以下条件时,跨骑两个宏块的8×8块边被过滤a.两个8×8块边是块内,并且b.两个宏块的交叠模式标志都是TRUE。
交叠模式信号表示所示的条件交叠变换的此第二实现中内帧的所有宏块都是内宏块。因为交叠模式是基于帧级量化参数QP来发送的,所以或为所有宏块、或不为任何宏块发送交叠模式标志。当为所有宏块发送交叠模式标志时,该标志包含对应于M×N图像的大小为(M/16)*(N/16)的位平面(假定M、N是16的倍数)。
所示的条件交叠变换实现使用高效的编码机制(称为“位平面”编码,在以下描述)来发送每个宏块的交叠模式标志。这依赖于一假定,即交叠模式标志的位平面表示具有高度的空间相关性-即,纵向或横向的邻接位等值的可能性很高。已发现这一假定对交叠标志为真-对于真实世界的图像和视频,有理由预期在交叠模式标志中也明显有充分的空间连续性。
位平面编码机制(以下更加详细第描述)被用来将对内帧编码交叠模式信号表示。对整个帧的交叠模式标志使用贴图集合或编码表中的一个而在帧级联合编码,例外的情况是当它们被“原始”编码为与宏块头部一起发送的每宏块一比特的时候。
位平面编码在位平面编码中,诸如每宏块的条件交叠标志等宏块专属的二元信息可被编码在每宏块一个二进制码元中。在这些情形中,字段或帧中所有宏块的状态可被编码为位平面并在字段或帧头部中发送。这一规则的一个例外是在位平面编码模式被设为原始模式的情况下,在此情形中,每个宏块的状态被编码为每码元一个比特,并在宏块级随其它宏块级句法元素一起发送。
字段/帧级位平面编码被用来编码二维二进制数组。每个数组的大小是rowMB×colMB,其中rowMB和colMB分别是所讨论的字段或帧中的宏块行数和列数。在比特流中,每个数组都是作为一组连续的比特来编码的。使用七种模式中的一种来编码每个数组。这七种模式是1.原始模式-信息被编码为每码元一比特,并作为MB级语法的一部分来发送;2.标准2模式-两个码元被联合编码;3.差分2模式-将位平面差分编码,然后将两个残余码元联合编码;4.标准6模式-六个码元被联合编码;5.差分6模式-将位平面差分编码,然后将六个残余码元联合编码;6.跳行模式-对不含被设置的比特的信号行的一比特跳过;以及7.跳列模式-对不含被设置的比特的信号列的一比特跳过。
对字段或帧级的位平面的句法元素按照以下顺序INVERT、IMODE和DATABITS。
反转标志(INVERT)INVERT句法元素是1比特的值,如被设置,则它指示位平面有多于0比特的被设置的比特。取决于INVERT和该模式,解码器应将经解释的位平面反转以重新创建原始位平面。注意,当使用原始模式时,这个比特的值应被忽略。在位平面解码时如何使用INVERT值的描述将在下文提供。
编码模式(IMODE)IMODE句法元素是表示用来编码位平面的编码模式的变长值。表4示出用来编码IMODE句法元素的编码表。在位平面解码时如何使用IMODE值的描述将在下文提供。
表4IMODE VLC编码表


位平面编码比特(DATABITS)DATABITS句法元素是编码对应于位平面的码元流的变长句法元素。用来编码位平面的方法由IMODE的值确定。七种编码模式在以下章节中描述。
原始模式在此模式中,位平面被编码为在宏块的光栅扫描顺序中被扫描的每码元一比特,并被作为宏块层的一部分发送。替换地,信息在字段或帧级被以原始模式编码,且DATABITS的长度是rowMB×colMB比特。
标准2模式如果rowMB×colMB是奇数,则第一码元被原始编码。后续码元以自然的扫描顺序被成对编码。表5中的二进制VLC表被用来编码码元对。
表5标准2/差分2编码表

差分2模式标准2方法被用来产生如上所述的位平面,然后Diff1操作被如下所述地应用于位平面。
标准6模式在标准6和差分6模式中,位平面以六个像素的组被编码。这些像素被分组为2×3或3×2的贴图。使用一组规则来将位平面最大地贴图,而其余像素使用跳行或跳列模式的变体来编码。当且仅当rowMB是3的倍数而colMB不是时,使用2×3“纵向”贴图。否则,使用3×2“横向”贴图。对于沿图像的顶边和左边线性贴图的平面而言,贴图的编码顺序遵从以下模式。6元素贴图首先被编码,接着是跳列和跳行编码的线性贴图。如果数组大小是2×3或3×2的倍数,则后面的线性贴图不存在,而位平面被理想地贴图。
6元素矩形贴图是使用不完整的前缀编码(即,并非使用所有终端节点来进行编码的前缀编码)来编码的。令N为贴图中被设置的比特数,即0≤N≤6。对于N<3,使用VLC来编码贴图。对于N=3,在定长换码(escape)后跟5比特定长编码,而对于N>3,在定长换码后跟该贴图的补码的编码。
矩形贴图包含6比特的信息。令k为与该贴图相关联的编码,其中k=bi2i,bi是该贴图内自然扫描顺序中的第i比特的二进制值。因此0≤k<64。使用VLC和换码编码加上定长编码来发信号表示k。
差分6模式标准6方法被用来产生如上所述的位平面,然后Diff-1操作被如下所述地应用于位平面。
跳行模式在跳行编码模式中,用1比特的额外开销跳过所有为0的行。句法如下对于每一行,单个ROWSKIP比特表示该行是否被跳过;如果该行被跳过,则下一行的ROWSKIP比特是下一个;否则(该行没有被跳过),ROWBOTS比特(对应于该行中的每个宏块一个比特)是下一个。因此,如果整行为0,则发送为0的比特作为ROWSKIP码元,而ROWBITS被跳过。如果在该行中有被设置的比特,则ROWSKIP被设为1,而整个行被原始发送(ROWBITS)。行是从字段或帧的顶到地来扫描的。
跳列模式跳列是跳行的转置。列是从字段或帧的左到右来扫描的。
Diff-1∷反向差分解码如果使用了任一差分模式(差分2或差分6),则首先使用对应的标准模式(分别为标准2或标准6)来解码“差分比特”的位平面。差分比特被用来重新生成原始位平面。重新生成的过程是在二进制字母表上的二维DPCM。为了重新生成位置(i,j)处的比特,生成预测值bp(i,j)如下(从位置(i,j)处的比特b(i,j)) 对于差分编码模式,不执行基于INVERT的逐比特反转过程。但是,INVERT标志在不同的容量中被用来表示码元A的值,用于导出以上所示的预测值。更具体地,如果INVERT等于0则A等于0,而如果INVERT等于1则A等于1。位平面的实际值是通过将预测值与经解码的差分比特值异或来获得的。在以上等式中,b(i,j)是在最终解码(即,在进行了标准2/标准6,接着与其预测值的差分异或以后)以后在第i,j位置处的比特。
示例性交叠过滤器在条件交叠转换的第二实现中所使用的一种示例性交叠过滤模式中,当被发信号表示时,在解码器处对未箝位的16比特重构执行交叠平滑。这是必需的,因为与交叠平滑相关联的前向过程可能导致范围扩展到超过像素值所允许的9比特范围。交叠平滑的结果被箝位到9比特,以与未被交叠平滑触及的其余的像素对齐。
纵向边(上例中的像素a0、a1、b1、b0)首先被过滤,接着是横向边(像素p0、p1、q1、q0)。在第一级过滤(纵向边平滑)之后的中间结果以16比特存储。以下给出被应用于跨骑任一边的四个像素的核心过滤器y0y1y2y3=(7001-1711117-11007x0x1x2x3+r0r1r2r3)>>3]]>被过滤的原始像素是(x0,x1,x2,x3)。r0和r1是凑整参数,它们取交替的值3和4以确保统计上无偏的凑整。原始值由具有明显很容易实现的项的矩阵来过滤。在添加了凑整因子以后,这些值是位移了3个比特以给出经过滤的输出(y0,y1,y2,y3)的比特。
对于横向和纵向边过滤器两者,假定在一块内的编号从1开始,则凑整值对于奇索引列和行分别是r0=4,r1=3。对于偶索引列/行,r0=3且r1=4。过滤被定义为现场16比特操作-因此原始像素在平滑以后被覆盖。对于纵向边过滤,像素(a0,a1,b1,b0)对应于(x0,x1,x2,x3),后者进而被过滤为(y0,y1,y2,y3)。类似地,对于横向边过滤,对应的分别是(p0,p1,q1,q0)。
一块中2×2角上的像素在两个方向被过滤。过滤的顺序确定其最终值,因此为了比特正确性维持顺序-先纵向边过滤后横向边过滤是很重要的。概念上,要在两个方向的过滤级以后对已被过滤的所有像素执行箝位。但是,将箝位与过滤结合可能有某些计算上的优点-这就是实现问题,只要该方案被谨慎进行以生成正确输出,。
3.计算环境可在其中执行图像和视频信号处理的各种设备中的任何设备执行条件交叠变换的上述实现,这些设备的示例包括计算机;图像和视频记录、发送和接收设备;便携式视频播放器;视频会议;Web视频流式应用装置;等等。这些图像和视频编码技术可在硬件电路中(例如,在ASIC、FPGA等的电路中)、以及于在诸如图10中所示的计算机或其它计算环境(无论是在中央处理单元(CPU)还是在专用图形处理器、视频卡等之上)内执行的图像和视频处理软件中实现。
图10示出可在其中实现所述条件交叠变换的合适的计算环境(1000)的一般化示例。计算环境(1000)并不试图对本发明的使用范围或功能提出任何限制,因为本发明可在不同的通用或专用计算环境中实现。
参考图10,计算环境(1000)包括至少一个处理单元(1010)和存储器(1020)。在图10中,最基本的配置(1030)被包括在虚线内。处理单元(1010)执行计算机可执行指令并且可以是真实或虚拟的处理器。在多处理系统中,多个处理单元执行计算机可执行指令以提高处理能力。存储器(1020)可以是易失性存储器(例如,寄存器、高速缓存、RAM)、非易失性存储器(例如,ROM、EEPROM、闪存等)、或这两者的某种组合。存储器(1020)存储实现所述条件交叠变换的软件(1080)。
计算环境可以有其它特征。例如,计算环境(1000)包括存储(1040)、一个或多个输入设备(1050)、一个或多个输出设备(1060)、以及一个或多个通信连接(1070)。诸如总线、控制器或网络等互连机制(未示出)将计算环境(1000)的这些组件相互连接。通常,操作系统软件(未示出)为在计算环境(1000)中执行的其它软件提供操作环境,并协调计算环境(1000)的组件的活动。
存储(1040)可以是可移动或不可移动的,并且包括磁盘、磁带或磁带盒、CD-ROM、CD-RW、DVD,或可被用来存储信息并可在计算环境(1000)内被访问的任何其它介质。存储(1040)存储对应于实现生成和压缩量化矩阵的音频编码器的软件(1080)的指令。
输入设备(1050)可以是诸如键盘、鼠标、笔或轨迹球等触摸式输入设备,语音输入设备、扫描设备或为计算环境(1000)提供输入的其它设备。对于音频,输入设备(1050)可以是声卡或接收模拟或数字形式的音频输入的类似设备,或者是向计算环境提供音频样本的CD-ROM读出器。输出设备(1060)可以是显示器、打印机、扬声器、CD-写入器、或提供来自计算环境(1000)的输出的其它设备。
通信连接(1070)实现经由通信介质到另一个计算实体的通信。通信介质在已调制数据信号中运送诸如计算机可执行指令、经压缩的音频或视频信息或其它数据等信息。已调制数据信号是以在信号中将信息编码的方式设置或改变其一个或多个特性的信号。作为示例,而非限制,通信介质包括用电、光、RF、红外、声学或其它载波实现的有线或无线技术。
本文中的变换和编码/解码技术可在计算机可读介质的一般上下文中描述。计算机可读介质可以是在计算环境内可被访问的任何可用介质。作为示例,而非限制,在计算环境(1000)里,计算机可读介质包括存储器(1020)、存储(1040)、通信介质以及以上的任意组合。
本文中的条件交叠变换可以在诸如被包括在程序模块中、在计算环境中在目标的真实或虚拟处理器上执行的计算机可执行指令的一般上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、库、对象、类、组件、数据结构等等。程序模块的功能可按各实施例中的需要在程序模块之间组合或拆分。程序模块的计算机可执行指令可在本地或分布式计算环境中执行。
为说明起见,本详细描述使用如“确定”、“生成”、“调整”和“应用”等术语来描述计算环境中的计算机操作。这些术语是计算机所执行的操作的高级抽象,并且不应与由人类执行的动作混淆。对应于这些术语的实际计算机操作根据实现而变化。
考虑到可对其应用我们的发明的原理的许多可能的实施例,我们将可能落入所附权利要求书及其等效技术方案的范围和精神内的所有此类实施例声明为我们的发明的保护范围。
权利要求
1.一种对数字媒体内容变换编码/解码的方法,包括对所述数字媒体内容进行变换编码/解码;以及在空间变化基础上,在变换编码/解码以前/以后,对所述数字媒体内容的变换块之间的边的子集条件地应用交叠过滤器。
2.如权利要求1所述的方法,其特征在于,条件地应用交叠过滤器包括于在空间变化基础上被应用于所述数字媒体内容的邻近变换块之间的边的多个交叠过滤器模式之间切换。
3.如权利要求1所述的方法,其特征在于,所述多个交叠过滤器模式包括无交叠过滤。
4.如权利要求2所述的方法,其特征在于,包括切换被应用于在具有帧级粒度的视频序列中的边的邻近变换块之间的边的所述交叠过滤器模式。
5.如权利要求2所述的方法,其特征在于,包括切换被应用于具有宏块级粒度的视频序列中的边的邻近变换块之间的边的所述交叠过滤器模式。
6.如权利要求2所述的方法,其特征在于,包括切换被应用于具有邻近变换块边级粒度的视频序列中的边的邻近变换块的边的所述交叠过滤器模式。
7.如权利要求2所述的方法,其特征在于,包括在每个邻近变换块边的基础上从编码器向解码器发信号表示所述数字媒体内容的交叠过滤器模式。
8.如权利要求2所述的方法,其特征在于,包括在每宏块的基础上从编码器向解码器发信号表示所述数字媒体内容的交叠过滤器模式。
9.一种对已编码的视频比特流解码的方法,包括对所述已编码的视频比特流中的一帧的多个已编码块的块数据解码;执行所述经解码的块数据的反量化;执行所述经解码的块数据的变换块的逆变换;从所述已编码的视频比特流的至少一个句法元素确定至少一个邻接变换块边的组的交叠模式;根据对一个组所确定的交叠模式在多个交叠过滤器之间切换;以及对所述组应用相应的交叠过滤器。
10.如权利要求9所述的方法,其特征在于,所述至少一个句法元素包括每邻接变换块边的交叠模式标志。
11.如权利要求9所述的方法,其特征在于,所述至少一个句法元素包括与所述已编码的视频比特流的比特率相关的句法元素。
12.如权利要求11所述的方法,其特征在于,所述与已编码的视频比特流的比特率相关的句法元素是帧级量化参数。
13.如权利要求9所述的方法,其特征在于,所述至少一个句法元素包括具有宏块粒度的交叠模式标志集。
14.如权利要求13所述的方法,其特征在于,所述交叠模式标志集是使用位平面编码来编码的。
15.如权利要求9所述的方法,其特征在于,所述至少一个句法元素包括帧级交叠参数、基于帧的比特率相关的参数、以及空间变化模式参数,所述方法还包括如果所述比特率相关的参数表示低比特率,则确定对相应帧内的所述邻接变换块边应用交叠过滤器;否则如果所述帧级交叠参数没有指定任何交叠,则确定对相应帧内的所述邻接变换块边应用无交叠过滤器;否则如果所述帧级交叠参数指定条件交叠,则确定对所述组内的邻接变换块边应用由组的空间变化模式参数指定的交叠过滤器;以及否则确定对相应帧内的所述邻接变换块边应用所述交叠过滤器。
16.如权利要求15所述的方法,其特征在于,所述至少一个句法元素还包括序列级交叠参数,所述方法还包括如果所述序列级交叠参数没有指定任何交叠,则确定对所述序列的所有帧内的邻接变换块边应用所述无交叠过滤器。
17.至少一个其上具有软件模块的计算机可读程序携带介质,所述软件模块可由处理单元执行以执行一种对使用条件交叠变换而编码的视频比特流进行编码/解码的方法,所述方法包括确定一交叠条件,所述条件具有至少一个其中不对邻接块边应用任何交叠过滤器的无交叠状态、以及其中对邻接块边应用交叠过滤器的交叠状态,其中所述交叠条件在视频序列中的图像上空间变化;以及当所述交叠条件处于所述交叠状态时,对邻接块边应用所述交叠过滤器。
18.如权利要求17所述的至少一个计算机可读程序携带介质,其特征在于,所述方法还包括基于比特率相关的参数限制所述确定和应用所述交叠过滤器。
19.如权利要求18所述的至少一个计算机可读程序携带介质,其特征在于,所述比特率相关的参数是帧级量化参数。
20.如权利要求17所述的至少一个计算机可读程序携带介质,其特征在于,所述交叠条件是由每宏块的交叠标志在所述视频比特流中发信号表示的,且所述确定和应用还包括对其交叠条件被发信号通知为处于所述交叠状态的宏块的块内边应用所述交叠过滤器;对其两者的交叠条件都被发信号通知为处于所述交叠状态的邻接宏块之间的块边应用所述交叠过滤器。
全文摘要
一种数字媒体内容(例如,图像、视频、音频等)编码器/解码器使用空间变化参数作为为空间域交叠变换而对邻接的变换块边应用交叠预处理和后处理的条件。对数字媒体的子块的这一交叠变换的条件应用可在边、块、宏块或其它粒度上被发信号表示。此外,基于帧级量化或其它比特率相关的参数对条件交叠变换的使用的限制将使低比特率编码时的信号表示的额外开销最小化。
文档编号H03M7/46GK1998152SQ200480025568
公开日2007年7月11日 申请日期2004年9月2日 优先权日2003年9月7日
发明者P·苏, S·斯里尼瓦杉 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1