首页> 中国专利> 基于变换的数字媒体编解码器中的计算复杂度和精度控制

基于变换的数字媒体编解码器中的计算复杂度和精度控制

摘要

数字媒体编码器/解码器包括与在解码处的计算复杂度和精度相关的各种模式的信令。编码器可以发送指示在解码处所执行的变换运算的算术精度(例如,使用16或32位运算)的句法元素。编码器还可以用信号通知在解码器输出处是否应用缩放,这准许解码处的中间数据的更宽的动态范围,但由于缩放运算而增加了计算复杂度。

著录项

  • 公开/公告号CN101617539A

    专利类型发明专利

  • 公开/公告日2009-12-30

    原文格式PDF

  • 申请/专利权人 微软公司;

    申请/专利号CN200880005630.0

  • 申请日2008-02-20

  • 分类号H04N7/26(20060101);

  • 代理机构31100 上海专利商标事务所有限公司;

  • 代理人顾嘉运;钱静芳

  • 地址 美国华盛顿州

  • 入库时间 2023-12-17 23:18:41

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-06-03

    专利权的转移 IPC(主分类):H04N7/26 变更前: 变更后: 登记生效日:20150514 申请日:20080220

    专利申请权、专利权的转移

  • 2013-02-13

    授权

    授权

  • 2010-02-24

    实质审查的生效

    实质审查的生效

  • 2009-12-30

    公开

    公开

说明书

背景

基于块变换的编码

变换编码是在许多数字媒体(例如音频、图像和视频)压缩系统中使 用的一种压缩技术。未压缩的数字图像和视频通常作为以二维(2D)网格 排列的图像或视频帧中各位置处的图元或色彩的样本来表示或捕捉。这被 称为图像或视频的空间域表示。例如,用于图像的典型格式由被排列为网 格的24位色彩图元样本流构成。每一样本是表示诸如RGB或YIQ等色彩 空间内该网格中的一个像素位置处的色彩分量的数字。各种图像和视频系 统可使用各种不同的色彩、空间和时间分辨率的采样。类似地,数字音频 通常被表示为时间采样的音频信号流。例如,典型的音频格式由以有规律 的时间间隔所取的16位音频信号幅度样本流构成。

未压缩的数字音频、图像和视频信号可消耗大量的存储和传输能力。 变换编码通过将信号的空间域表示变换成频域(或其它类似的变换域)表 示,然后降低该变换域表示的某些一般较不可感知的频率分量的分辨率, 从而减小了数字音频、图像和视频的大小。与降低空间域中的图像或视频 或时域中的音频的色彩或空间分辨率相比,这一般产生了较不可感知的数 字信号劣化。

更具体而言,图1所示的典型的基于块变换的编码器/解码器系统100 (也被称为“编解码器”)将未压缩的数字图像的像素划分成固定大小的 二维块(X1,...Xn),每一块可能与其它块重叠。对每一块应用进行空间-频率 分析的线性变换120-121,这将块内彼此隔开的样本转换成一般表示块间隔 上相应的频带内的数字信号的强度的一组频率(或变换)系数。为了压缩, 变换系数可被选择性地量化130(即,诸如通过丢弃系数值的最低有效位或 将较高分辨率数字集中的值映射到较低分辨率来降低分辨率),并且还被 熵编码或可变长度编码130成压缩数据流。在解码时,变换系数进行逆变 换170-171以便几乎重构原始的色彩/空间采样图像/视频信号(重构块 )。

块变换120-121可被定义为对大小为N的向量x的数学运算。最通常 的是,该运算是线性乘法,从而产生变换域输出y=Mx,M是变换矩阵。 当输入数据是任意长时,它被分段成大小为N的向量,并且向每一段应用 块变换。出于数据压缩的目的,选择可逆块变换。换言之,矩阵M是可逆 的。在多个维度中(例如,对于图像和视频),块变换通常被实现为可分 运算。沿数据的每一维(即,行和列)可分地应用矩阵乘法。

为了压缩,变换系数(向量y的分量)可被选择性地量化(即,诸如 通过丢弃系数值的最低有效位或将较高分辨率数字集中的值映射到较低分 辨率来降低分辨率),并还可被熵编码或可变长度编码成压缩数据流。

在解码器150中解码时,如图1所示,在解码器150侧应用这些运算 的逆过程(解量化(dequantization)/熵解码160和逆块变换170-171)。 在重构数据时,将逆矩阵M-1(逆变换170-171)作为乘数应用于变换域数 据。当应用于变换域数据时,逆变换几乎重构原始时域或空间域数字媒体。

在许多基于块变换的编码应用中,变换理想地是可逆的以取决于量化 因子同时支持有损和无损压缩两者。如果例如没有量化(一般被表示为量 化因子1),则利用可逆变换的编解码器可在解码时精确地再现输入数据。 然而,这些应用中的可逆性的要求约束了对用于设计编解码器的变换的选 择。

诸如MPEG和Windows Media等许多图像和视频压缩系统利用基于离 散余弦变换(DCT)的变换。已知DCT具有得到近乎最优的数据压缩的良 好能量压缩特性。在这些压缩系统中,在压缩系统的编码器和解码器两者 中的重构环路中采用了逆DCT(IDCT)来重构各个图像块。

量化

量化是大多数图像和视频编解码器控制压缩的图像质量和压缩比的主 要机制。根据一个可能的定义,量化是用于通常用于有损压缩的近似不可 逆映射函数的术语,其中有一组指定的可能输出值,并且该组可能的输出 值中的每一成员具有导致对该特定输出值的选择的一组相关联的输入值。 已经开发了各种量化技术,包括标量或矢量、均匀或非均匀、有或没有死 区、以及自适应或非自适应量化。

量化运算本质上是按照量化参数QP的加偏除法(biased division), 这在编码器处执行。逆量化或乘法运算是与QP的乘法,这在解码器处执行。 这些过程共同引入了原始变换系数数据的损失,这表现为解码的图像中的 压缩误差或伪像。

概述

以下详细描述呈现控制使用数字媒体编解码器的解码的计算复杂度和 精度的工具和技术。在该技术的一个方面,编码器用信号通知在解码器处 使用缩放或未缩放精度模式中的一个。在缩放精度模式中,在编码器处预 乘(例如乘8)输入图像。解码器处的输出也通过取整除法来缩放。在未缩 放精度模式中,不应用这种缩放运算。在未缩放精度模式中,编码器或解 码器可以处理较小的变换系数动态范围,并且因此具有较低的计算复杂度。

在该技术的另一方面,编解码器还可以用信号通知解码器执行变换运 算所要求的精度。在一个实现中,位流句法的元素用信号通知是否对解码 器处的变换采用较低精度算术运算。

提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述 的一些概念。该概述不旨在标识所要求保护的主题的关键特征或必要特征, 也不旨在用于帮助确定所要求保护的主题的范围。本发明的其它特征和优 点在参考附图继续阅读以下对实施例的详细描述后将变得显而易见。

附图简述

图1是现有技术中常规的基于块变换的编解码器的框图。

图2是包含块模式编码的代表性编码器的流程图。

图3是包含块模式编码的代表性解码器的流程图。

图4是图2和图3的代表性编码器/解码器的一个实现中的包括核心变 换和后滤波(重叠)运算的逆重叠变换的图。

图5是标识变换运算的输入数据点的图。

图6是用于实现图2和图3的媒体编码器/解码器的合适的计算环境的 框图。

详细描述

以下描述涉及控制基于变换的数字媒体编解码器的精度和计算复杂度 的技术。以下描述在数字媒体压缩系统或编解码器的上下文中描述了该技 术的一个示例实现。该数字媒体系统以压缩形式对数字媒体数据进行编码 以便传输或存储,并解码该数据以供回放或其它处理。出于说明的目的, 包含计算复杂度和精度控制的该示例性压缩系统是图像或视频压缩系统。 另选地,该技术也可被结合到用于其它数字媒体数据的压缩系统或编解码 器中。计算复杂度和精度控制技术不要求数字媒体压缩系统以特定的编码 格式来编码压缩数字媒体数据。

1.1.编码器/解码器

图2和图3是在代表性2维(2D)数据编码器200和解码器300中采 用的过程的一般化图示。该图呈现结合了2D数据编码器和解码器的压缩系 统的一般化或简化的图示,该2D数据编码器和解码器使用计算复杂度和精 度控制技术来实现压缩。在使用控制技术的替换压缩系统中,可使用比该 代表性编码器和解码器中所示的更多或更少的过程来进行2D数据压缩。例 如,某些编码器/解码器还可包括色彩转换、色彩格式、可缩放编码、无损 编码、宏块模式等。取决于可基于从无损到有损变化的量化参数的量化, 压缩系统(编码器和解码器)可提供2D数据的无损和/或有损压缩。

2D数据编码器200产生压缩位流220,压缩位流220是作为输入提供 给编码器的2D数据210的更紧凑表示(对于典型输入)。例如,2D数据 输入可以是图像、视频序列帧、或具有两个维度的其它数据。2D数据编码 器将输入数据帧划分成块(一般在图2中示为分区230),这在所示的实现 中是形成跨该帧的平面的规则图案的非重叠4×4像素块。这些块被分组成 称为宏块的群集,在该代表性编码器中其大小是16×16像素。宏块进而被 分组成称为瓦块(tile)的规则结构。瓦块也可形成图像上的规则图案,使 得水平行中的瓦块是统一的高度且是对齐的,而垂直列中的瓦块是统一的 宽度且是对齐的。在该代表性编码器中,瓦块可以是任意大小,该大小在 水平和/或垂直方向上是16的倍数。替换编码器实现可以将图像划分成块、 宏块、瓦块或其它大小和结构的其它单元。

对块之间的每一边缘应用“前向重叠”算子240,之后使用块变换250 来变换每一4×4的块。该块变换250可以是由Srinivasan在2004年12月 17日提交的题为“Reversible Transform For Lossy And Lossless 2-D Data Compression”(用于有损和无损2D数据压缩的可逆变换)的美国专利申 请第11/015,707号中所描述的可逆的、无缩放的2D变换。重叠算子240 可以是由Tu等人在2004年12月17日提交的题为“Reversible Overlap Operator for Efficient Lossless Data Compression”(用于高效无损数据压缩 的可逆重叠算子)的美国专利申请第11/015,148号;以及Tu等人在2005 年1月14日提交的题为“Reversible 2-Dimensional Pre-/Post-Filter for Lapped Biorthogonal Transform”(用于重叠双正交变换的可逆2维预/后滤波器) 的美国专利申请第11/035,991号中描述的可逆重叠算子。或者,可使用离 散余弦变换或其它块变换和重叠算子。在变换之后,令每一4×4的变换块 的DC系数260经受一类似的处理链(块化、前向重叠、之后是4×4的块 变换)。所得的DC变换系数和AC变换系数被量化270、熵编码280和分 组化290。

解码器执行逆过程。在解码器侧,从其各自的分组中提取310变换系 数位,从中系数本身被解码320和解量化330。DC系数340通过应用逆变 换来重新生成,并且使用跨DC块边缘应用的合适的平滑算子来“逆重叠” DC系数的平面。随后,通过向DC系数应用4×4的逆变换350来重新生 成整个数据,并从位流中解码AC系数342。最后,对所得图像平面中的块 边缘进行逆重叠滤波360。这产生重构的2D数据输出。

在一示例性实现中,编码器200(图2)将输入图像压缩成压缩位流 220(例如文件),而解码器300(图3)基于所采用的是无损还是有损编 码来重构原始输入或其近似。编码过程涉及应用以下所讨论的前向重叠变 换(LT),这是用同样在以下更全面描述的可逆2维预/后滤波来实现的。 解码过程涉及应用使用可逆2维预/后滤波的逆重叠变换(ILT)。

所示的LT和ILT在确切的意义上是彼此的逆,并且因此可被统称为 可逆重叠变换。作为一种可逆变换,LT/ILT对可用于无损图像压缩。

由所示的编码器200/解码器300压缩的输入数据210可以是各种色彩 格式(例如,RGB/YUV 4:4:4、YUV 4:2:2或YUV 4:2:0彩色图像格式)的 图像。通常,输入图像总是具有亮度(Y)分量。如果它是RGB/YUV 4:4:4、 YUV 4:2:2或YUV 4:2:0图像,则该图像还具有色度分量,诸如U分量和V 分量。图像的这些单独的色彩平面或分量可具有不同的空间分辨率。在例 如YUV 4:2:0色彩格式的输入图像的情况下,U和V分量具有Y分量一半 的宽度和高度。

如上所述,编码器200将输入图像或图片块化成宏块。在一示例性实 现中,编码器200将输入图像块化成Y通道中的16×16像素区域(称为“宏 块”)(取决于色彩格式,可以是U和V通道中的16×16、16×8或8×8 区域)。每一宏块色彩平面被块化成4×4像素的区域或块。因此,对于本 示例性编码器实现,宏块按以下的方式由各种色彩格式组成:

1.对于灰度图像,每一宏块包含16个4×4的亮度(Y)块。

2.对于YUV 4:2:0格式彩色图像,每一宏块包含16个4×4的Y 块,以及4个各自为4×4的色度(U和V)块。

3.对于YUV 4:2:2格式彩色图像,每一宏块包含16个4×4的Y 块,以及8个各自为4×4的色度(U和V)块。

4.对于RGB或YUV 4:4:4彩色图像,每一宏块对Y、U和V通道 中的每一个包含16个块。

因此,在变换之后,该代表性编码器200/解码器300中的宏块具有三 个频率子带:DC子带(DC宏块)、低通子带(低通宏块)和高通子带(高 通宏块)。在该代表性系统中,低通和/或高通子带在位流中是可任选的—— 这些子带可被完全丢弃。

此外,压缩数据可按以下两种次序之一被填塞到位流中:空间次序和 频率次序。对于空间次序,瓦块内的同一宏块的不同子带被排序在一起, 且所得的每一瓦块的位流被写入一个分组中。对于频率次序,来自瓦块内 的不同宏块的同一子带被分组在一起,且因此瓦块的位流被写入以下三个 分组中:DC瓦块分组、低通瓦块分组和高通瓦块分组。另外,可以有其它 数据层。

因此,对于该代表性系统,图像按以下“维度”来组织:

空间维度:帧→瓦块→宏块;

频率维度:DC|低通|高通;以及

通道维度:亮度|色度0|色度1……(例如,Y|U|V)。

以上箭头表示分层结构,而垂直条表示划分。

尽管该代表性系统按照空间、频率和通道维度来组织压缩的数字媒体 数据,但是此处描述的灵活量化方法可以应用于沿着更少、更多或其它维 度来组织其数据的替换编码器/解码器系统。例如,该灵活量化方法可应用 于使用更大数量的频带、其它格式的色彩通道(例如,YIQ、RGB等)、 附加图像通道(例如,用于立体声视觉或其它多照相机阵列)的编码。

2.逆核心及重叠变换

概览

在编码器200/解码器300的一个实现中,解码器侧的逆变换采取两级 重叠变换的形式。步骤如下:

·对与安排在被称为DC平面的平面阵列中的重构DC和低通系数 相对应的每一4×4块应用逆核心变换(ICT)。

·可任选地将后滤波运算应用于均匀地跨DC平面中的块的4×4区 域。此外,对边界2×4和4×2区域应用后滤波器,而四个角区域 不改变。

·所得阵列包含对应于第一级变换的4×4块的DC系数。DC系数 被(象征性地)复制到更大的阵列,并且重构的高通系数被填充 到剩余位置中。

·对每一4×4块应用ICT。

·可任选地将后滤波运算应用于均匀地跨DC平面中的块的4×4区 域。此外,对边界2×4和4×2区域应用后滤波器,而四个角区域 不改变。

该过程在图4中示出。

后滤波器的应用由压缩位流220中的OVERLAP_INFO(重叠信息)句 法元素来管控。OVERLAP_INFO可以取三个值:

·如果OVERLAP_INFO=0,则不执行后滤波。

·如果OVERLAP_INFO=1,则只执行外部后滤波。

·如果OVERLAP_INFO=2,则执行内部及外部后滤波。

逆核心变换

核心变换(CT)受常规地被称为4×4离散余弦变换(DCT)启发,但 它在根本上是不同的。第一关键差异是DCT是线性的而CT是非线性的。 第二关键差异是由于其是在实数上定义的事实,DCT不是整数到整数空间 中的无损运算。CT是在整数上定义的,并且在该空间中是无损的。第三关 键差异是2D DCT是可分运算。CT特意是不可分的。

整个逆变换过程可被写成三个基本的2×2变换运算的级联,它们是:

·2×2哈达玛(Hadamard)变换:T_h

·逆1D旋转:InvT_odd

·逆2D旋转:InvT_odd_odd

这些变换是作为不可分运算来实现的,并且被首先描述,其后是整个 ICT的描述。

2D 2×2哈达玛变换T_h

如以下伪码表所示,编码器/解码器实现2D 2×2哈达玛变换T_h。R是 舍入因子,其值只可以是0或1。T_h是对合的(即,对数据向量[a b c d] 应用两次T-h会成功恢复[a b c d]的原始值,假定R在两次应用之间未改 变)。逆T_h是T_h本身。

逆1D旋转InvT_odd

T_odd的无损逆由下表中的伪码定义。

逆2D旋转InvT_odd_odd

逆2D旋转InvT_odd_odd由下表中的伪码定义。

ICT运算

2×2数据和先前列出的伪码之间的对应在图5中示出。此处介绍使用 四个灰度级来指示四个数据点的彩色编码,以方便下一节中的变换描述。

2D 4×4点ICT是使用T_h、逆T_odd和逆T_odd_odd来构建的。注意, 逆T_h是T_h本身。ICT包括两个阶段,其在以下伪码中示出。每一阶段 包括能在该阶段内以任意顺序或同时完成的四个2×2变换。

如果输入数据块是abcdefghijklmnop,则4×4_IPCT_1stStage()和 4×4_IPCT_2ndStage()定义如下:

函数2×2_ICT与T_h相同。

后滤波概览

四个算子定义逆重叠变换中所使用的后滤波器。它们是:

·4×4后滤波器

·4点后滤波器

·2×2后滤波器

·2点后滤波器

后滤波器使用T_h、InvT_odd_odd、invScale和invRotate。invRotate 和invScale分别在以下各表中定义。

4×4后滤波器

最初,在OVERLAP_INFO是1或2时,对所有色彩平面中的所有块 连结(均匀地跨4个块的区域)应用4×4后滤波器。同样,在OVERLAP_INFO 是2时,对所有平面的DC平面中的所有块连结应用4×4滤波器,而在 OVERLAP_INFO是2且色彩格式是YUV 4:2:0或YUV 4:2:2时,只对亮度 平面的DC平面中的所有块连结应用4×4滤波器。

如果输入数据是abcdefghijklmnop,则4×4后滤波器4×4PostFilter(a,b,c,d, e,f,g,h,i,j,k,l,m,n,o,p)在下表中定义:

4点后滤波器

对跨图像的边界上的2×4和4×2区域的边缘应用线性4点滤波器。如 果输入数据是[a b c d],则4点后滤波器4PostFilter(a,b,c,d)在下表中定义。

2×2后滤波器

对跨YUV 4:2:0和YUV 4:2:2数据的色度通道的DC平面中的块的区 域应用2×2后滤波器。如果输入数据是abcd,则2×2后滤波器2×2PostFilter (a,b,c,d)在下表中定义:

2点后滤波器

对跨块的边界2×1和1×2样本应用2点后滤波器。2点后滤波器 2PostFilter(a,b)在下表中定义:

用于执行上述重叠变换的变换运算所要求的精度的信令可以在压缩数 据结构的头部中执行。在该示例实现中,LONG_WORD_FLAG和 NO_SCALED_FLAGS是在压缩位流中(例如,在图像头部中)发送来用信 号通知解码器要应用的精度和计算复杂度的句法元素。

3.精度和字长

该示例编码器/解码器执行整数运算。此外,该示例编码器/解码器支持 无损编码和解码。因此,该示例编码器/解码器所要求的主机器精度是整数。

然而,在该示例编码器/解码器中定义的整数运算对有损编码导致舍入 误差。这些误差在设计上很小,然而,它们在率失真曲线上导致下降。出 于通过减少舍入误差来改进编码性能的目的,示例编码器/解码器定义第二 机器精度。在该模式下,对输入预乘8(即,左移3位),并且最终输出除 以8取整(即,右移3位)。这些运算在编码器的前端和解码器的后端执 行,并且对该过程的其余部分在很大程度上是不可见的。此外,相应地缩 放量化等级,以便用主机器精度创建并使用第二机器精度解码(反之亦然) 的流产生可接受的图像。

在需要无损压缩时不能使用第二机器精度。在创建压缩文件时使用的 机器精度在头部中被显式地标记。

第二机器精度等于在编解码器中使用缩放算术,并且因此该模式被称 为缩放的。主机器精度被称为未缩放的。

该示例编码器/解码器被设计来提供良好的编码和解码速度。该示例编 码器/解码器的设计目标是对一个8位输入而言,编码器和解码器上的数据 值不超过16位有符号值。(然而,变换阶段内的中间运算可超过这一数字。) 这对两种机器精度模式而言都是成立的。

相反,在选择第二机器精度时,中间值的范围跨度是8位的。因为主 机器精度避免预乘8,所以其范围跨度是8-3=5位。

第一示例编码器/解码器对中间值使用两种不同字长。这些字长是16 和32位。

第二示例位流句法和语义

第二示例位流句法和语义是分层的,并且包括以下各层:图像、瓦块、 宏块、和块。

图像(IMAGE)

IMAGE(){                位数            描述符

   IMAGE_HEADER         可变            struct

   bAlphaPlane=FALSE

    IMAGE_PLANE_HEADER        可变            struct

    if(ALPHACHANNEL_FLAG){

        bAlphaPlane=TRUE

        IMAGE_PLANE_HEADER    可变            Struct

       }

    INDEX_TABLE               可变            struct

    TILE                      可变            struct

}

图像头部(IMAGE_HEADER)

IMAGE_HEADER(){               位数            描述符

   GDISIGNATURE               64              uimsbf

   RESERVED1                  4               uimsbf

   RESERVED2                  4               uimsbf

   TILING_FLAG                1               bool

FREQUENCYMODE_BITSTREAM_FLAG  1               uimsbf

   IMAGE_ORIENTATION          3               uimsbf

   INDEXTABLE_PRESENT_FLAG    1               uimsbf

   OVERLAP_INFO               2               uimsbf

   SHORT_HEADER_FLAG          1               bool

   LONG_WORD_FLAG             1               bool

   WINDOWING_FLAG             l               bool

   TRIM_FLEXBITS_FLAG         1               bool

   RESERVED3                  3               uimsbf

   ALPHACHANNEL_FLAG          1               bool

   SOURCE_CLR_FMT             4               uimsbf

   SOURCE_BITDEPTH            4               uimsbf

   If(SHORT_HEADER_FLAG){

       WIDTH_MINUS1           16              uimsbf

        HEIGHT_MINUS1            16        uimsbf

    }

    else{

        WIDTH_MINUS1             32        uimsbf

        HEIGHT_MINUS1            32        uimsbf

    }

    if(TILING_FLAG){

        NUM_VERT_TILES_MINUS1    12        uimsbf

        NUM_HORIZ_TILES_MINUS1   12        uimsbf

    }

    for(n=0;n<

NUM_VERT_TILES_MINUS1;n++){

      If(SHORT_HEADER_FLAG)

                                 8         uimsbf

WIDTH_IN_MB_OF_TILE_MINUS1[n]

      else

                                 16        uimsbf

WIDTH_IN_MB_OF_TILE_MINUS1[n]

   }

   for(n=0;n<

NUM_HORIZ_TILES_MINUS1;n++){

      If(SHORT_HEADER_FLAG)

                                 8         uimsbf

HEIGHT_IN_MB_OF_TILE_MINUS1[n]

      else

                                 16        uimsbf

HEIGHT_IN_MB_OF_TILE_MINUS1[n]

    }

    if(WINDOWING_FLAG){

                NUM_TOP_EXTRAPIXELS     6        uimsbf

                NUM_LEFT_EXTRAPIXELS    6        uimsbf

                NUM_BOTTOM_EXTRAPIXELS  6        uimsbf

                NUM_RIGHT_EXTRAPIXELS   6        uimsbf

            }

        }

    IMAGE_PLANE_HEADER(){               位数     描  述

                                                 符

    CLR_FMT                             3        uimsbf

    NO_SCALED_FLAG                      1        bool

    BANDS_PRESENT                       4        uimsbf

    if(CLR_FMT==YUV444){

        CHROMA_CENTERING                4        uimsbf

        COLOR_INTERPRETATION            4        uimsbf

    }

    Else if(CLR_FMT==NCHANNEL){

        NUM_CHANNELS_MINUS              14       uimsbf

        COLOR_INTERPRETATION            4        uimsbf

    }

    if(SOURCE_CLR_FMT==BAYER){

        BAYER_PATTERN                   2        uimsbf

        CHROMA_CENTERING_BAYER          2        uimsbf

        COLOR_INTERPRETATION            4        uimsbf

    }

    if(SOURCE_BITDEPTH            ∈

{BD16,BD16S,BD32,BD32S}){

       SHIFT_BITS                       8        uimsbf

    }

    if(SOURCE_BITEPTH==BD32F){

        LEN_MANTISSA                8        uimsbf

        EXP_BIAS                    8        uimsbf

    }

    DC_FRAME_UNIFORM                1        bool

    if(DC_FRAME_UNIFORM){

    DC_QP()                         可变     struct

    }

    if(BANDS_PRESENT!=SB_DC_ONLY){

        USE_DC_QP                   1        bool

        if(USE_DC_QP==FALSE){

            LP_FRAME_UNIFORM        1        bool

            if(LP_FRAME_UNIFORM){

                NUM_LP_QPS=1

                LP_QP()             可变     struct

            }

        }

    if(BANDS_PRESENT!=SB_NO_HIGHPASS){

        USE_LP_QP                   1        bool

        if(USE_LP_QP==FALSE){

            HP_FRAME_UNIFORM        1        bool

            if(HP_FRAME_UNIFORM){

                NUM_HP_QPS=1

                HP_QP()             可变     struct

            }

        }

    }

}

FLUSH_BYTE                          可变

}

从第二示例位流句法和语义中所选择的一些位流元素定义如下。

长字标志(LONG_WORD_FLAG)(1位)

LONG_WORD_FLAG是1位句法元素并指定是否将16位整数用于变 换计算。在该第二示例位流句法中,如果LONG_WORD_FLAG==0 (FALSE(假)),则16位整数和数组可以用于变换计算的外部阶段(变 换中的中间运算(如(3*a+1)>>1)是用更高准确度来执行的)。如果 LONG_WORD_FLAG==TRUE(真),则应将32位整数和数组用于变换 计算。

注意:32位算术可被用来解码图像而不管LONG_WORD_FLAG的值。 该句法元素可由解码器用来选择用于实现的最高效字长。

无缩放算术标志(NO_SCALED_FLAG)(1位)

NO_SCALED_FLAG是指定变换是否使用缩放的1位句法元素。如果 NO_SCALED_FLAG==1,则不应执行缩放。如果NO_SCALED_FLAG== 0,则应当执行缩放。在这种情况下,缩放应当通过将最终阶段(色彩转换) 的输出适当地下舍入3位来执行。

注意:如果需要无损编码,则即使无损编码只用于图像的子区域, NO_SCALED_FLAG也应被设为TRUE。有损编码可以使用任一模式。

注意:在使用缩放时(即,NO_SCALED_FLAG==FALSE),尤其是 在低QP的情况下,有损编码的率失真性能很好。

4.长字标志的信令和使用

代表性编码器/解码器的一个示例图像格式支持各种各样的像素格式, 包括高动态范围和宽色域格式。所支持的数据类型包括有符号整数、无符 号整数、定点浮动和浮点浮动。所支持的位深包括每色彩通道8、16、24 和32位。示例图像格式允许使用达每色彩通道24位的图像的无损压缩, 以及使用达每色彩通道32位的图像的有损压缩。

同时,该示例图像格式被设计成提供高质量图像和压缩效率,并允许 低复杂度编码和解码实现。

为支持低复杂度实现,示例图像格式中的变换被设计成最小化动态范 围的扩张。两阶段变换只将动态范围增加5位。因此,如果图像位深是每 色彩通道8位,则16位算术可足以在解码器处执行所有变换运算。对于其 它位深,变换运算可能需要更高精度的算术。

如果在解码器处已知执行变换运算所要求的精度,则解码特定位流的 计算复杂度可以降低。可以使用句法元素(例如,图像头部中的1位标志) 来用信号将该信息通知给解码器。所描述的信令技术和句法元素可以降低 解码位流的计算复杂度。

在一个示例实现中,使用1位句法元素LONG_WORD_FLAG。例如, 如果LONG_WORD_FLAG==FALSE,则16位整数和数组可被用于变换 计算的外部阶段,并且如果LONG_WORD_FLAG==TRUE,则32位整数 和数组应被用于变换计算。

在该代表性编码器/解码器的一个实现中,可以对16位宽的字执行原 地变换运算,但变换内的中间运算(如计算b+=(3*a+1)>>1所给出的“提 升”步骤的3*a的积)是用更高准确度(例如,18位或更高精度)来执行 的。然而,在该示例中,中间变换值a和b本身可以存储在16位整数内。

32位算术可被用来解码图像而不管LONG_WORD_FLAG元素的值。 LONG_WORD_FLAG元素可由编码器/解码器用来选择用于实现的最高效 字长。例如,如果编码器能验证16位和32位精度变换步骤产生相同的输 出值,则它可以选择将LONG_WORD_FLAG元素设为FALSE。

5.NO_SCALED_FLAG的信令和使用

代表性编码器/解码器的一个示例图像格式支持各种各样的像素格式, 包括高动态范围和宽色域格式。同时,该代表性编码器/解码器的设计优化 图像质量和压缩效率,并允许低复杂度的编码和解码实现。

如上所述,该代表性编码器/解码器使用两阶段的分层的基于块的变 换,其中所有变换步骤都是整数运算。这些整数运算中存在的小舍入误差 导致有损压缩期间的压缩效率的损失。为对抗这一问题,该代表性编码器/ 解码器的一个实现定义用于解码器运算的两个不同的精度模式:缩放模式 和未缩放模式。

在缩放精度模式下,在编码器处对输入图像预乘8(即,左移3位), 并且在解码器处的最终输出除以8取整(即,右移3位)。缩放精度模式 中的运算最小化舍入误差,并且产生改进的率失真性能。

在未缩放精度模式中,不存在这种缩放。以未缩放精度模式运算的编 码器或解码器必须处理较小的变换系数动态范围,并且因此具有较低的计 算复杂度。然而,对于在该模式中运算而言,压缩效率上存在少量恶化。 无损编码(不用量化,即将量化参数即QP设为1)只能使用未缩放精度模 式来得到所确保的可逆性。

编码器在创建压缩文件时所使用的精度模式在压缩位流220的图像头 部中使用NO_SCALED_FLAG来显式地用信号通知(图2)。建议解码器 300也对其运算使用同一精度模式。

NO_SCALED_FLAG是图像头部中的如下指定精度模式的1位句法元 素:

如果NO_SCALED_FLAG==TRUE,则未缩放模式应被用于解码器运 算。

如果NO_SCALED_FLAG==FALSE,则应当使用缩放。在这种情况 下,缩放模式应当通过将最终阶段(色彩转换)的输出适当地舍入3位来 用于运算。

在使用未缩放模式时(即,NO_SCALED_FLAG==FALSE),尤其是 在低QP的情况下,有损编码的率失真性能很好。然而,在使用未缩放模式 时,由于以下两个原因,计算复杂度较低:

未缩放模式中的较小的动态范围扩张意味着较短的字可以用于变换计 算,尤其是在结合“LONG_WORD_FLAG”的情况下。在VLSI实现中, 降低的动态范围扩张意味着实现更多有效位的门逻辑可被断电。

缩放模式在解码器侧要求加法运算和右移3位(实现除以8取整)。 在编码器侧,其要求左移3位。总体上,这比未缩放模式在计算上要求稍 高。

此外,未缩放模式允许比缩放模式压缩更多的有效位。例如,使用32 位算术,未缩放模式准许每样本达27个有效位的无损压缩(以及解压)。 相反,缩放模式在同样情况下只允许24位压缩。这是因为缩放过程引入了 动态范围的三个附加位。

对这两种精度模式而言,对于8位输入,解码器上的数据值都不超过 16个有符号位。(然而,变换阶段内的中间运算可超过这一数字。)

注意:如果需要无损编码(QP=1),即使只有图像的子区域需要无损 编码,则编码器将NO_SCALED_FLAG设为TRUE。

编码器可以使用任一模式来用于有损压缩。建议解码器对其运算使用 NO_SCALED_MODE用信号通知的精度模式。然而,缩放量化等级,以便 用缩放精度模式创建并使用未缩放的精度模式解码(反之亦然)的流在大 多数情况下产生可接受的图像。

6.用于增加的准确度的缩放算术

在该代表性编码器/解码器的一个实现中,变换(包括色彩转换)是整 数变换并通过一系列提升步骤来实现。在这些提升步骤中,截断误差损害 变换性能。对于有损压缩的情况,为最小化截断误差的损害并因而最大化 变换性能,对于变换的输入数据需要被左移若干位。然而,另一极其需要 的特征是如果输入图像是8位,则每一变换的输出应当在16位以内。所以 左移位数不能很大。该代表性解码器实现缩放算术来达到这两个目标的技 术。缩放算术技术通过最小化截断误差的损害来最大化变换性能,并且在 输入图像是8位的情况下仍然将每一变换步骤的输出限制在16位以内。这 使简单的16位实现成为可能。

该代表性编码器/解码器中所使用的变换是整数变换并通过提升步骤 来实现。大多数提升步骤涉及右移,这引入截断误差。变换通常涉及多个 提升步骤,并且累积截断误差明显损害变换性能。

降低截断误差的损害的一种方式是在编码器中进行变换之前左移输入 数据,并在解码器处在变换(与量化相组合)之后右移相同位数。如上所 述,该代表性编码器/解码器具有两阶段变换结构:可任选第一阶段重叠+ 第一阶段CT+可任选第二阶段重叠+第二阶段CT。实验显示为最小化截断 误差,左移3位是必要的。所以,在有损的情况下,在色彩转换之前,输 入数据可以左移3位,即乘或放大因数8(例如,对于上述缩放模式)。

然而,色彩转换和变换扩大数据。如果输入数据左移3位,则在输入 数据是8位的情况下,第二阶段4×4DCT的输出具有17位动态范围(其它 变换的输出仍然在16位以内)。这是极不需要的,因为它阻止了16位实 现(这是极其需要的特征)。为避开这一点,在第二阶段4×4CT之前,输 入数据右移1位,并且故而输出也在16位以内。因为只对数据(第一阶段 DCT的DC变换系数)的1/16应用了第二阶段4×4CT,并且第一阶段变换 已经将该数据放大,所以截断误差的损害很小。

所以在8位图像的有损情况下,在编码器侧,在色彩转换之前输入被 左移3位,并且在第二阶段4×4CT之前右移1位。在解码器侧,在第一阶 段4×4IDCT之前左移1位并在色彩转换之后右移3位。

7.计算环境

上述用于数字媒体编解码器中的计算复杂度和精度信令的处理技术可 以在各种数字媒体编码和/或解码系统的任一种上实现,包括计算机(各种 形状因数,包括服务器、台式机、膝上型计算机、手持式计算机等);数 字媒体记录器和播放器;图像和视频捕捉设备(诸如照相机、扫描仪等); 通信设备(诸如电话、移动电话、会议设备等);显示、打印或其它呈现 设备;以及其它示例等等。数字媒体编解码器中的计算复杂度和精度信令 技术可用硬件电路、控制数字媒体处理硬件的固件、以及在计算机或在诸 如图6中所示的其它计算环境中执行的通信软件来实现。

图6示出了其中可实现所描述的实施例的合适计算环境(600)的一个 一般示例。计算环境(600)不旨在对本发明的使用范围或功能提出任何限 制,因为本发明可以在完全不同的通用或专用计算环境中实现。

参考图6,计算环境(600)包括至少一个处理单元(610)和存储器 (620)。在图6中,这一最基本的配置(630)被包括在虚线内。处理单 元(610)执行计算机可执行指令,并且可以是真实或虚拟处理器。在多处 理系统中,多个处理单元执行计算机可执行指令以提高处理能力。存储器 (620)可以是易失性存储器(例如,寄存器、高速缓存、RAM)、非易失 性存储器(例如,ROM、EEPROM、闪存等)或两者的某种组合。存储器 (602)存储实现所描述的使用计算复杂度和精度信令技术的数字媒体编码 /解码的软件(680)。

计算环境可具有附加特征。例如,计算环境(600)包括存储(640)、 一个或多个输入设备(650)、一个或多个输出设备(660)以及一个或多 个通信连接(670)。诸如总线、控制器或网络等互连机制(未示出)将计 算环境(600)的各组件互连。通常,操作系统软件(未示出)为在计算环 境(600)中执行的其它软件提供操作环境,并协调计算环境(600)的各 组件的活动。

存储(640)可以是可移动或不可移动的,并包括磁盘、磁带或磁带盒、 CD-ROM、CD-RW、DVD或可用于储存信息并可在计算环境(600)内访 问的任何其它介质。存储(640)存储用于实现所描述的使用计算复杂度和 精度信令技术的数字媒体编码/解码的软件(680)的指令。

输入设备(650)可以是诸如键盘、鼠标、笔或跟踪球的触摸输入设备、 语音输入设备、扫描设备或向计算环境(600)提供输入的另一设备。对于 音频,输入设备(650)可以是声卡或接受来自话筒或话筒阵列的模拟或数 字形式的音频输入的类似设备,或向计算环境提供音频样本的CD-ROM读 取器。输出设备(660)可以是显示器、打印机、CD刻录机或提供来自计 算环境(600)的输出的另一设备。

通信连接(670)允许在通信介质上与另一计算实体的通信。通信介质 在已调制数据信号中传达诸如计算机可执行指令、压缩音频或视频信息、 或其它数据等信息。已调制数据信号是其一个或多个特征以在信号中编码 信息的方式设置或改变的信号。作为示例而非局限,通信介质包括以电、 光、RF、红外、声学或其它载波实现的有线或无线技术。

此处所描述的使用灵活量化技术的数字媒体编码/解码可在计算机可 读介质的一般上下文中描述。计算机可读介质可以是可在计算环境内访问 的任何可用介质。作为示例而非局限,对于计算环境(600),计算机可读 介质可包括存储器(620)、存储(640)、通信介质和以上任一种的组合。

此处描述的使用计算复杂度和精度信令技术的数字媒体编码/解码可 在诸如程序模块中所包括的、在目标真实或虚拟处理器上的计算环境中执 行的计算机可执行指令的一般上下文中描述。一般而言,程序模块包括执 行特定任务或实现特定抽象数据类型的例程、程序、库、对象、类、组件、 数据结构等。程序模块的功能可以如各实施例中所需的组合或在程序模块 之间分离。用于程序模块的计算机可执行指令可以在本地或分布式计算环 境中执行。

出于表示的目的,详细描述使用了如“确定”、“生成”、“调整” 和“应用”等术语来描述计算环境中的计算机操作。这些术语是由计算机 执行的操作的高级抽象,且不应与人类所执行的动作混淆。对应于这些术 语的实际的计算机操作取决于实现而不同。

鉴于可应用本发明的原理的许多可能的实施例,要求保护落入所附权 利要求书及其等效技术方案的范围和精神之内的所有这样的实施例作为本 发明。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号