减少位深的量子化方法.pdf

上传人:111****112 文档编号:687242 上传时间:2018-03-05 格式:PDF 页数:32 大小:1.29MB
返回 下载 相关 举报
摘要
申请专利号:

CN02819594.9

申请日:

2002.08.08

公开号:

CN1565083A

公开日:

2005.01.12

当前法律状态:

授权

有效性:

有权

法律详情:

专利权的转移IPC(主分类):H03M 7/30登记生效日:20160518变更事项:专利权人变更前权利人:夏普株式会社变更后权利人:杜比国际公司变更事项:地址变更前权利人:日本大阪府变更后权利人:荷兰阿姆斯特丹|||授权|||实质审查的生效|||公开

IPC分类号:

H03M7/30; H04N7/24

主分类号:

H03M7/30; H04N7/24

申请人:

夏普株式会社;

发明人:

L·J·科洛夫斯基

地址:

日本大阪府

优先权:

2001.08.09 US 60/311,436; 2001.11.30 US 60/319,018; 2002.05.02 US 10/139,036

专利代理机构:

上海专利商标事务所

代理人:

李家麟

PDF下载: PDF下载
内容摘要

提供系数量子化的方法。所述方法包括:提供系数K、提供量子化参数(QP)、使用尾数部分(Am(QP))和指数部分(xAe(QP))通过系数K构成量子化值(L)。通常,x的值为2。在所述方法的一些方面,通过系数K构成量子化值(L)包括L=K*A(QP)=K*Am(QP)*(2Ae(QP))。在其它方面,所述方法进一步包括:按如下使用2N标准化量子化值:Ln=L/2N=K*Am(QP)/2 (N-Ae(QP))。在一些方面,构成量子化值包括构成一组递归的有周期P的量子化因子,其中A(QP+P)=A(QP)/x。构成递归的量子化因子包括构成递归的尾数因子,其中Am(QP)=Am(QP mod P),且构成递归的量子化因子包括构成递归的指数因子,其中Ae(QP)=Ae(QP mod P)-QP/P。

权利要求书

1: 一种系数量子化的方法,其特征在于,所述方法包括: 提供系数K; 提供量子化参数(QP); 使用尾数部分(Am(QP))和指数部分(x Ae(QP) )通过系数K构成量子化值(L)。
2: 如权利要求1所述的方法,其特征在于,所述指数部分(x Ae(QP) )包括x 的值为2。
3: 如权利要求2所述的方法,其特征在于,所述使用尾数部分(Am(QP)) 和指数部分(x Ae(QP) )通过系数K构成量子化值(L)包括: L=K*A(QP)   =K*Am(QP)*(2 Ae(QP) )。
4: 如权利要求3所述的方法,其特征在于,进一步包括: 按如下使用2 N 标准化所述量子化值: Ln=L/2 N   =K*Am(QP)/2 (N-Ae(QP)) 。
5: 如权利要求1所述的方法,其特征在于,所述构成量子化值包括构成 一组递归的有周期P的量子化因子,其中A(QP+P)=A(QP)/x。
6: 如权利要求1所述的方法,其特征在于,所述构成一组递归的量子化 因子包括构成递归的尾数因子,其中Am(QP)=Am(QP mod P)。
7: 如权利要求1所述的方法,其特征在于,所述构成一组递归的量子化 因子包括构成递归的指数因子,其中Ae(QP)=Ae(QP mod P)-QP/P。
8: 如权利要求1所述的方法,其特征在于,所述构成量子化值包括构成 一组递归的有周期P的量子化因子,其中A(QP+P)=A(QP)/2。
9: 如权利要求6所述的方法,其特征在于,所述构成一组递归的量子化 因子包括构成递归的尾数因子,其中P=6。
10: 如权利要求7所述的方法,其特征在于,所述构成一组递归的量子化 因子包括构成递归的指数因子,其中P=6。
11: 如权利要求1所述的方法,其特征在于,所述提供系数K包括提供系 数矩阵K[i][j]; 所述使用尾数部分(Am(QP))和指数部分(x Ae(QP) )通过系数矩阵K[i][j]构 成量子化值(L)包括使用尾数部分矩阵(Am(QP)[i][j])和指数部分矩阵 (x Ae(QP)[i][j] )构成量子化值矩阵(L[i][j])。
12: 如权利要求11所述的方法,其特征在于,所述使用尾数部分矩阵 (Am(QP)[i][j])和指数部分矩阵(x Ae(QP)[i][j] )构成量子化值矩阵(L[i][j])包 括,对每个特殊的QP值,指数部分矩阵中的每个元素为同样的值。
13: 如权利要求12所述的方法,其特征在于,所述指数部分矩阵中的每 个元素对QP的周期(P)值为同样的值,其中Ae(QP)=Ae(P*(QP/P))。
14: 如权利要求1所述的方法,其特征在于,进一步包括: 使用尾数部分(Bm(QP))和指数部分(x Be(QP) )通过量子化值构成反量子化值 (X1)。
15: 如权利要求14所述的方法,其特征在于,所述指数部分(x Be(QP) )包括 x的值为2。
16: 如权利要求15所述的方法,其特征在于,所述使用尾数部分(Bm(QP)) 和指数部分(2 Be(QP) )通过量子化值构成反量子化值(X1)包括: X1=L*B(QP)   =L*Bm(QP)*(2 Be(QP) )。
17: 如权利要求16所述的方法,其特征在于,进一步包括: 按如下使用2 N 反标准化所述量子化值: X1d=X1/2 N   =X1*Bm(QP)/2 N 。
18: 如权利要求14所述的方法,其特征在于,所述构成反量子化值包括 构成一组递归的有周期P的反量子化因子,其中B(QP+P)=x*B(QP)。
19: 如权利要求14所述的方法,其特征在于,所述构成一组递归的反量 子化因子包括构成递归的尾数因子,其中Bm(QP)=Bm(QP mod P)。
20: 如权利要求14所述的方法,其特征在于,所述构成一组递归的反量 子化因子包括构成递归的指数因子,其中Be(QP)=Be(QP mod P)+QP/P。
21: 如权利要求14所述的方法,其特征在于,所述构成一组递归的有周 期P的量子化因子包括x的值为2。
22: 如权利要求19所述的方法,其特征在于,所述构成递归的尾数因子 包括P的值为6。
23: 如权利要求22所述的方法,其特征在于,所述构成一组递归的反量 子化因子包括构成递归的指数因子,其中Be(QP)=Be(QP mod P)+QP/P。
24: 如权利要求14所述的方法,其特征在于,所述使用尾数部分(Bm(QP)) 和指数部分(x Be(QP) )通过量子化值构成反量子化值(X1)包括使用尾数部分矩阵 (Bm(QP)[i][j])和指数部分矩阵(x Be(QP)[i][j] )构成反量子化值矩阵(X1[i][j])。
25: 如权利要求24所述的方法,其特征在于,所述使用尾数部分矩阵 (Bm(QP)[i][j])和指数部分矩阵(x Be(QP)[i][j] )构成反量子化值矩阵(X1[i][j]) 包括,对每个特殊的QP值,指数部分矩阵中的每个元素为同样的值。
26: 如权利要求23所述的方法,其特征在于,所述指数部分矩阵中的每 个元素对QP的周期(P)值为同样的值,其中Be(QP)=Be(P*(QP/P))。
27: 一种系数反量子化的方法,其特征在于,所述方法包括: 接收量子化值; 使用尾数部分(Bm(QP))和指数部分(x Be(QP) )通过量子化值构成反量子化值 (X1)。
28: 如权利要求27所述的方法,其特征在于,所述指数部分(x Be(QP) )包括 x的值为2。
29: 如权利要求28所述的方法,其特征在于,所述使用尾数部分(Bm(QP)) 和指数部分(2 Be(QP) )通过量子化值构成反量子化值(X1)包括: X1=L*B(QP)   =L*Bm(QP)*(2 Be(QP) )。
30: 如权利要求29所述的方法,其特征在于,所述接收量子化值包括接 收标准化的量子化值;及 所述方法进一步包括: 按如下使用2 N 反标准化所述量子化值: X1d=X1/2 N    =X1/*Bm(QP)/2 N 。
31: 如权利要求27所述的方法,其特征在于,所述构成反量子化值包括 构成一组递归的有周期P的反量子化因子,其中B(QP+P)=x*B(QP)。
32: 如权利要求27所述的方法,其特征在于,所述构成一组递归的反量 子化因子包括构成递归的尾数因子,其中Bm(QP)=Bm(QP mod P)。
33: 如权利要求27所述的方法,其特征在于,所述构成一组递归的反量 子化因子包括构成递归的指数因子,其中Be(QP)=Be(QP mod P)+QP/P。
34: 如权利要求27所述的方法,其特征在于,所述构成一组递归的有周 期P的量子化因子包括x的值为2。
35: 如权利要求32所述的方法,其特征在于,所述构成递归的尾数因子 包括P的值为6。
36: 如权利要求35所述的方法,其特征在于,所述构成一组递归的反量 子化因子包括构成递归的指数因子,其中Be(QP)=Be(QP mod P)+QP/P。
37: 如权利要求27所述的方法,其特征在于,所述使用尾数部分(Bm(QP)) 和指数部分(x Be(QP) )通过量子化值构成反量子化值(X1)包括使用尾数部分矩阵 (Bm(QP)[i][j])和指数部分矩阵(x Be(QP)[i][j] )构成反量子化值矩阵(X1[i][j])。
38: 如权利要求37所述的方法,其特征在于,所述使用尾数部分矩阵 (Bm(QP)[i][j])和指数部分矩阵(x Be(QP)[i][j] )构成反量子化值矩阵(X1[i][j]) 包括,对每个特殊的QP值,指数部分矩阵中的每个元素为同样的值。
39: 如权利要求36所述的方法,其特征在于,所述指数部分矩阵中的每 个元素对QP的周期(P)值为同样的值,其中Be(QP)=Be(P*(QP/P))。
40: 一种计算机可读媒体,其特征在于,所述媒体包括进行系数量子化的 指令,所述指令包括动作: 提供系数K; 提供量子化参数(QP); 使用尾数部分(Am(QP))和指数部分(x Ae(QP) )通过系数K构成量子化值(L)。
41: 如权利要求40所述的计算机可读媒体,其特征在于,所述指数部分 (x Ae(QP) )包括x的值为2。
42: 如权利要求40所述的计算机可读媒体,其特征在于,所述使用尾数 部分(Am(QP))和指数部分(x Ae(QP) )通过系数K构成量子化值(L)包括: L=K*A(QP)   =K*Am(QP)*(2 Ae(QP) )。
43: 一种包含在电子传输中的计算机数据信号,其特征在于,所述信号有 系数量子化的功能,所述信号包括指令,所述指令用于: 提供系数K; 提供量子化参数(QP); 使用尾数部分(Am(QP))和指数部分(x Ae(QP) )通过系数K构成量子化值(L)。
44: 如权利要求43所述的计算机数据信号,其特征在于,所述指数部分 (x Ae(QP) )包括x的值为2。
45: 如权利要求43所述的计算机数据信号,其特征在于,所述使用尾数 部分(Am(QP))和指数部分(x Ae(QP) )通过系数K构成量子化值(L)包括: L=K*A(QP)   =K*Am(QP)*(2 Ae(QP) )。
46: 一种用于系数量子化的装置,其特征在于,所述装置包括: 用于接收系数K的第一个接收器; 用于接收量子化参数(QP)的第二个接收器; 用于使用尾数部分(Am(QP))和指数部分(x Ae(QP) )通过系数K构成量子化值 (L)的量子化模块。
47: 如权利要求46所述的装置,其特征在于,所述指数部分(x Ae(QP) )包括 x的值为2。
48: 如权利要求46所述的装置,其特征在于,所述使用尾数部分(Am(QP)) 和指数部分(x Ae(QP) )通过系数K构成量子化值(L)包括: L=K*A(QP)   =K*Am(QP)*(2 Ae(QP) )。
49: 一种用于系数反量子化的装置,其特征在于,所述装置包括: 用于接收系数K的第一个接收器; 用于接收量子化参数(QP)的第二个接收器; 用于使用尾数部分(Am(QP))和指数部分(x Ae(QP) )通过系数K构成量子化值 (L)的反量子化模块。
50: 如权利要求49所述的装置,其特征在于,所述指数部分(x Ae(QP) )包括 x的值为2。
51: 如权利要求49所述的装置,其特征在于,所述使用尾数部分(Am(QP)) 和指数部分(x Ae(QP) )通过系数K构成量子化值(L)包括: L=K*A(QP)   =K*Am(QP)*(2 Ae(QP) )。
52: 一种用于图像数据编码的装置,其特征在于,所述装置包括: 变换模块,用于变换图像数据为系数数据; 量子化模块,用于量子化系数数据为量子化值; 编码模块,用于编码输出到解码器的量子化值; 反量子化模块,用于使用尾数部分(Am(QP))和指数部分(x Ae(QP) )通过系数 (K)构成量子化值(L); 反向变换模块,用于转换系数(K)为图像数据; 帧存储器,用于存储图像数据; 移动补偿模块,用于预测图像数据;及 移动预测模块,用于预测图像中的空间移动。
53: 一种用于图像数据解码的装置,其特征在于,所述装置包括: 解码模块,用于将编码的视频数据解码为包括量子化参数和量子化值的数 据; 反量子化模块,用于使用尾数部分(Am(QP))和指数部分(x Ae(QP) )通过系数 (K)构成量子化值(L); 反向变换模块,用于转换系数(K)为图像数据; 帧存储器,用于存储图像数据;及 移动补偿模块,用于处理图像预测数据。
54: 如权利要求20所述的方法,其特征在于,所述构成递归的指数因子 包括P的值为6。
55: 如权利要求33所述的方法,其特征在于,所述构成递归的指数因子 包括P的值为6。

说明书


减少位深的量子化方法

    相关申请

    本申请要求标题为“减少位深的量子化”、由Louis Kerofsky发明、于2001年8月9日提交、律师待办事务表编号为SLAll10P的美国临时专利申请06/311,436,及标题为“有联合量子化及标准化处理的视频编码方法和系统”、由Louis Kerofsky发明、于2001年11月30日提交、律师待办事务表编号为SLAll10P的美国临时专利申请06/319,018,及标题为“减少位深的量子化方法”、由Louis Kerofsky发明、2002年5月2日提交、律师代表事务表编号为SLAll10的美国专利申请10/139,036的权利。

    【发明背景】

    1.发明领域

    本发明涉及视频压缩技术,更特别地,涉及减少在视频编码变换计算中所需的比特大小的方法。

    2.相关技术的描述

    视频信息格式提供适合于激活电视屏幕或存储在录像带上的可视信息。通常,视频数据以层次顺序组织。视频序列被划分为帧的组,并且每一组可以包括一系列的单个帧。每个帧约等价于一个静止图片,该静止图片被频繁地更新从而模拟显示连续的运动。帧进一步被划分为有助于系统容错设计的片段,或者水平部分。每个片段被独立编码以使得错误不会在片段之间传播。片段由宏块组成。在H.26P和移动图像专家组(MPEG)-X标准中,取决于视频格式,宏块由16×16的亮度象素和对应的一组饱和度象素构成。宏块总是包含整数个块,8×8象素矩阵为最小的编码单元。

    视频压缩是任何需要传输或存储视频数据的应用的关键组件。压缩技术通过重用帧地不同区域中存储的信息(时间冗余)对移动进行补偿。压缩也通过将数据从空间域变换到频域中来进行。H.26P和MPEG-X国际标准中已采用通过移动补偿使用时间冗余并通过变换使用空间冗余的混合数字视频压缩,如离散余弦变换(DCT)作为基础。

    如美国专利6,317,767(王)所述,DCT及反向离散余弦变换(IDCT)是在图像数据信号处理中广泛使用的操作。例如,两者都被用在由MPEG发布的移动图像视频压缩国际标准中。DCT由特定的属性以产生简化且高效的编码模型。当应用于象素数据矩阵时,DCT是这样的方法,它将一块数据分解为空间频率的加权和,即DCT系数。相反,IDCT被用于变换DCT系数的矩阵为象素数据。

    数字视频(DV)编码解码器是使用基于DCT的数据压缩方法的设备的一个例子。在分块阶段,图像帧被划分为N×N的包括例如每个象素的亮度和颜色数据的象素信息块。一般的块大小为水平和垂直各8个象素。然后象素块被“混洗”从而来自该图像不同部分的几个块被分组在一起。混洗增强了图像质量的一致性。

    不同的区域在不同的时间事件被记录。对每块象素数据,移动检测器寻找帧的两个区域之间的不同之处。移动信息被发送到下一个处理阶段。在下一个处理阶段,使用DCT变换象素信息。例如,8-8DCT在垂直和水平两个方向各取得8个输入并返回8个输出。然后通过用加权常数乘每块DCT系数对结果DCT系数加权。

    在下一个阶段量子化加权的DCT系数。量子化将在值的特定范围之内的每个DCT系数进行舍入为相同的数。量子化倾向于设置频率矩阵的高频成分为0,导致存储少得多数据。然而,由于人眼对低频更加敏感,在此阶段可感知的图像质量下降很少。

    量子化阶段包括通过以锯齿形的模式读取矩阵值来变换量子化的系数的两维矩阵为一维线性数据流并划分所述量子化的系数的一维线性流为片段,其中每个片段由0系数及随后的非0的量子化的系数的字符串构成。然后执行可变长编码(VLC)通过变换每个片段,由片段中0系数的数量及非0系数的幅值组成,为可变长代码字。最后,分频处理将每30个可变长编码的量子化的系数块打包为5个定长的同步块。

    解码本质上是上述编码处理的反向处理。首先对数字流进行分帧。然后可变长解码(VLD)解包数据从而可以将其恢复为单独的系数。在反向量子化系数之后,对结果应用反向加权和反向的离散余弦变换(IDCT)。反向权重是编码处理中应用的权重的乘法反向。然后由IDCT处理反向加权函数的输出。

    已对减少DCT和IDCT计算中的复杂度的方法的研究做出了许多工作。计算两维IDCT的算法被称为“I类”算法。I类算法在并行机(即,由同时并行工作的多个处理器构成的计算机)中易于实现。例如,当使用N个并行处理器来执行N×N矩阵的矩阵乘法时,N列的相乘可以同时进行。另外,并行机可以设计为包含执行快速矩阵转置的特殊硬件或软件指令。

    I类算法的一个缺点是需要更多的乘法。I类算法的计算序列包括由矩阵转置分离的两次矩阵乘法,其中,例如,如N=4,对总共112个指令需要64次加法和48次乘法。熟悉技术的人都知道,处理器执行乘法是非常耗时的并且通常通过减少执行乘法的次数来进行优化系统的性能。

    两维的IDCT也可以通过使用L函数变换输入矩阵的转置为一维向量来获得。接下来,获得常数矩阵的张量积。然后用一维向量L乘张量集。使用M函数变换结果为N×N矩阵。再次假设N=4,由此计算序列使用的指令总数为92个指令(68次加法和24次乘法)。使用此计算序列执行两维IDCT的算法被称为“II类”算法。在II类算法中,两个常数矩阵被分组在一起并且作为一个操作执行。II类算法的优点是它们通常需要更少的指令(92对112)并且,更特别地,更少代价高的乘法(24对48)。然而,II类算法在并行机上很难高效地实现。II类算法倾向于频繁地对数据重新排序,而在并行机上对数据重新排序是很耗时的。

    存在很多类型的实现IDCT的I类和II类算法,然而,反量子化(dequantization)被视为依赖于DCT和IDCT计算的独立步骤。提供比特精确(bit exact)的DCT和IDCT定义的努力已导致高效的整数变换的发展。这些整数变换通常增加计算的动态范围。结果,这些算法的实现需要处理和存储16比特以上的数据。

    如果可以在变换处理中让中间阶段量子化的系数限制于最大的大小,那将是有利的。

    如果可以开发出用于16比特处理器的量子化处理,那将是有利的。

    如果可以可以用16比特处理器高效地实现解码器实现、反量子化及反向变换,那将是有利的。类似地,如果可以用不超过16比特执行乘法并且如果存储器访问需要不超过16比特,那将是有利的。

    发明概要

    本发明是视频压缩的改进处理。典型的视频编码算法通过原先编码的帧预测一个帧。对误差进行变换并且对结果值进行量子化。量化器控制压缩的程度。量化器控制用于表示视频的信息的量及重显的质量。

    问题是变换和量子化在视频编码中的交互。在过去,变换和量化器是独立设计的。变换,通常是离散余弦变换,被标准化。以标准方法使用标量或向量量子化对变换的结果进行量子化。在现有技术中,MPEG-1、MPEG-2、MPEG-4、H.261、H.263,反向变换的定义并不是比特精确的。这允许实现者有一些自由来选择适合其平台的变换算法。此方法的一个缺点是编码器/解码器可能不匹配而破坏预测循环。为了解决这样的不匹配问题,定期地将图像的部分编码而不进行预测。现有技术,如H.26L,集中于使用允许比特精确定义的整数变换。整数变换可以不进行标准化。设计变换以使得最终可以转换为使用标准化计算的结果而不是中间的除法。量子化也需要除法。H.26L提供这些整数变换如何与量子化一起使用的例子。

    在当前的H.26L长期测试模型(TML)中,标准化在正向变换和量子化之后及反量子化及反向变换之后与量子化结合并且通过整数乘法及移位来实现。H26.L TML使用由量子化参数(QP)索引的两个整数数组A(QP)和B(QP),见表1。这些值由下面的公式1中所示的关系限定。

    表1 TML量子化参数   QP   ATML(QP)  BTML(QP)   0    620    3881   1    553    4351   2    492    4890   3    439    5481   4    391    6154   5    348    6914   6    310    7761   7    276    8718   8    246    9781   9    219    10987  10    195    12339  11    174    13828  12    155    15523  13    138    17435  14    123    19561  15    110    21873  16    98    24552  17    87    27656  18    78    30847  19    69    34870  20    62    38807  21    55    43747  22    49    49103  23    44    54683  24    39    61694  25    35    68745  26    31    77615  27    27    89113  28    24    100253  29    22    109366  30    19    126635  31    17    141533

    公式1联合标准化/量子化关系

    A(QP)·B(QP)·6762≈24Q

    使用这些整数和2的幂的除法,标准化和量子化同时被执行。H.26L中的变换编码使用4×4块大小及整数变换矩阵T,公式2。对4×4的块X,变换系数K的计算如公式3所示。通过变换系数,量子化水平L由整数乘法计算出。在解码器中,所述水平被用于计算新的一组系数K’。附加的整数矩阵变换及随后的移位被用于计算重显值X’。编码器允许正向变换的计算和舍入的自由。编码器和解码器必须计算出完全相同的反向计算的答案。

                 公式2 H.26L测试模型8变换矩阵

    T=13131313177-7-1713-13-13137-1717-7]]>

                 公式3 TML DCT_LUMA和IDCT_LUMA

                        Y=T·X

                        K=Y·TT

                        L=(ATML(QP)·K)/22Q

                        K′=BTML(QP)·L

                        Y′=TT·K′

                        X′=(Y′·T)/22Q

    其中中间结果Y为一维变换的结果且中间结果Y’为一维反向变换的结果。

    可以确定在这些计算中所需的动态范围。主应用包括9比特的输入,8比特加上符号,中间寄存器和存储器访问所需的动态范围如表2所示。

    表2 TML变换和反向变换的动态范围(比特)  9比特输入  LUMA变换  反向变换    寄存器    30    27    存储器    21    26

    为了维护比特精确的定义并包括量子化,由于除法操作被推迟,中间结果的动态范围会很大。本发明组合量子化和标准化,以消除中间结果动态范围的增长。通过本发明,比特精确的反向变换及量子化定义的优点得以保留,而控制这些计算所需的位深。减少所需的位深降低硬件实现所需的复杂度并且使得能够高效使用单指令多数据(SIMD)操作,如Intel MMX指令集。

    相应地,提供系数量子化的方法。所述方法包括:提供系数K、提供量子化参数(QP)、使用尾数部分(Am(QP))和指数部分(xAe(QP))通过系数K构成量子化值(L)。通常,x的值为2。

    在所述方法的一些方面,通过系数K构成量子化值(L)包括:

         L=K*A(QP)

          =K*Am(QP)*(2Ae(QP)).

    在其他方面,所述方法进一步包括:用2N按如下标准化量子化值:

          Ln=L/2N

            =K*Am(QP)/2(N-Ae(QP))

    在一些方面,构成量子化值包括构成一组递归的有周期P的量子化因子,其中A(QP+P)=A(QP)/x。因此,构成递归的量子化因子包括构成递归的尾数因子,其中Am(QP)=Am(QP mod P)。类似地,构成递归的量子化因子包括构成递归的指数因子,其中Ae(QP)=Ae(QP mod P)-QP/P。

    更特别地,提供系数K包括提供系数矩阵K[i][j]。然后,通过系数矩阵K[i][j]构成量子化值(L)包括使用尾数部分矩阵(Am(QP)[i][j])和指数部分矩阵(xAe(QP)[i][j])构成量子化值矩阵(L[i][j])。

    类似地,使用尾数部分矩阵(Am(QP)[i][j])和指数部分矩阵(xAe(QP)[i][j])构成量子化值矩阵(L[i][j])包括,对每个特殊的QP值,指数部分矩阵中的每个元素为同样的值。指数部分矩阵中的每个元素对QP的周期(P)值为同样的值,其中Ae(QP)=Ae(P*(QP/P))。

    下面提供上述方法的附加细节,包括使用尾数部分(Bm(QP))和指数部分(xBe(QP))通过量子化值构成反量子化值(X1)的方法。

    【附图说明】

    图1为流程图,展示本发明的系数量子化方法。

    图2至9展示本发明的实施例,包括视频编码的系统和方法。

    首选实施例的详细说明

    通过分解量子化参数A(QP)和B(QP)为尾数和指数项减少组合的变换和量子化的动态范围需求,如公式4所示。通过此结果,在计算中只需要保留尾数项带来的精度。指数项可以包含在最后的标准化移位中。这在公式5的例子计算中展示。

                    公式4量子化参数的结构

    公式5减少位深的LUMA变换

    Y=T·X

    K=Y·TT

    k′=TT·L

    Y′=K′·T

    为了展示本发明,展示了一组减少H.26L解码器的动态范围需求为16比特存储器访问的量子化参数。反向变换的存储器访问被减少为16比特。对QP=0.5定义A尾数、A指数、B尾数、B指数、A建议、B建议的值,如表3所示。附加的值通过递归确定,如公式6所示。这些值的结构使得除那些指定值外还能产生新的量子化值。

                               表3 TML的量子化值0-5   QP  A尾数  A指数  B尾数  B指数  A建议  B建议   0    5    7  235    4  640  3760   1    9    6  261    4  576  4176   2   127    2  37    7  508  4736   3   114    2  165    5  456  5280   4   25    4  47    7  400  6016   5   87    2  27    8  348  6912

    公式6递归关系

    A尾数(QP+6)=A尾数(QP)

    B尾数(QP+6)=B尾数(QP)

    A指数(QP+6)=A指数(QP)-1

    B指数(QP+6)=B指数(QP)+1

    使用定义的参数,可以修改变换计算以减少动态范围,如公式5所示。注意如何只有尾数值对动态范围的增长有影响。指数因子被包含在最后的标准化中且并不影响中间结果的动态范围。

    用这些值及计算方法,解码器的动态范围被减少到只需要进行16比特的存储器访问,如表4所示。

    表4低位深量子化的动态范围(QP>6)  8比特LUMA变换LUMA反向变换  寄存器   28     24  存储器   21     16

    对上述联合量子化/标准化过程可以应用几种改进。分解参数为尾数和指数的通用技术构成了这些改进的基础。

    上述说明假设变换的所有基础函数有相同的范数并且被相等地量子化。一些整数变换有这样的属性,不同的基础函数有不同的范数。通过使用矩阵A(QP)[i][j]和B(QP)[i][j]替换上述标量A(QP)和B(QP),对本发明的技术进行一般化以支持有不同范数的变换。这些参数通过下面公式7所示形式的标准化关系连接,这比公式1中所示的单一关系更加一般化。

                   公式7矩阵的联合量子化/标准化

                 A(QP)[i][j]·B(QP)[i][j]=N[i][j]

    接着上述方法,每个矩阵的每个元素被分解为尾数和指数项,如在下面的公式8中所示。

                   公式8矩阵参数的分解

    需要大量的参数来说明这些量子化和反量子化参数。几种结构关系可以被用来减少自由参数的数量。设计量化器增长以使得A的值在每个周期P之后减半,而同时B的值加倍以维持标准化关系。另外,A指数(QP)[i][j]和B指数(QP)[i][j]的值在范围[0,P-1]内与i,j及(QP)无关。此结构由结构公式,公式9来概括。对此结构,只有两个参数A指数[0]和B指数[0]。

                     公式9指数项的结构

               A指数(QP)[i][j]=A指数[0]-QP/P

               B指数(QP)[i][j]=B指数[0]-QP/P

    亦对尾数值定义结构。对每个下标对(i,j),尾数值是周期性的,且周期为P。这由结构公式,公式10来概括。对此结构,对A尾数有P个独立的矩阵且对B尾数P个独立的矩阵,这减少存储器需求并增加结构到计算中。

                        公式10尾数项的结构

                 A尾数(QP)[i][j]=A尾数(QP%P)[i][j]

                 B尾数(QP)[i][j]=B尾数(QP%P)[i][j]

    反向变换可以包括需要舍入的整数除法。在关注的情况中,是用2的幂来除。通过设计反量子化因子使其为2的同一次幂的倍数来减少舍入误差,这样使除法不产生余数。

    使用尾数值B尾数(QP)进行反量子化给出这样的反量子化的值,基于QP不同地对其进行标准化。这必须对

    后面的反向变换进行补偿。此计算的一种形式在公式11中展示。

                    公式11反向变换I的标准化

             K[i][j]=B尾数(QP%P)[i][j]·Level[i][j]

                    X=(T-1·K·T)/2(N-QP/P)

    在公式11中,Level[i][j]为变换系数的量子化版本并被称为“量子化值”。K[i][j]为变换系数的换算版本并被称为“反量子化值”。

    为了消除反向变换的需要以补偿此标准化差别,定义反量子化操作以使得所有反量子化的值有同样的标准化。此计算的形式在公式12中展示。

                    公式12反向变换II的标准化

            K[i][j]=B尾数(QP%P)[i][j]·2QP/P·Level[i][j]

                      X=(T-1·K·T)/2(N-QP/P)

    可以通过使用左移位操作计算2的幂并且将按如下给出公式12中的反量子化值K[i][j]。

                K[i][j]=[B尾数·Level[i][j]]<<(QP/P)

    接下来的例子展示本发明对量子化矩阵的使用。在公式13中定义的正向和反向变换需要量子化矩阵而非单一的标量量子化值。给出了样本量子化和反量子化参数。公式14和16,与相关计算一起,展示本发明的使用。此例使用P=6的周期。在公式14中,A尾数由Q表示且QP由m表示。在公式16中,B尾数由R表示且QP由m表示。

                        公式13变换

    Tforward=111121-1-21-1-111-22-1]]>

    Treverse=222121-2-22-2-222-12-1]]>

                     公式14量子化参数

    Q(m)[i][j]=Mm.0 for(i,j)={(0,0),(0,2),(2,0),(2,2)}

    Q(m)[i][j]=Mm.1 for(i,j)={(1,1),(1,3),(3,1),(3,3)}

    Q(m)[i][j]=Mm.2 otherwise

    M=218448388131081872476251165016384698910486145645992953213107524380661191646607490]]>

                   公式16反量子化参数

    R(m)[i][j]=Sm.0 for(i,j)={(0,0),(0,2),(2,0),(2,2)}

    R(m)[i][j]=Sm.1 for(i,j)={(1,1),(1,3),(3,1),(3,3)}

    R(m)[i][j]=Sm.2 otherwise

    在下面给出正向变换及正向量子化的说明,见公式18,假设输入在X、量子化参数QP中。

    S=610871198121091411101613111814]]>

                   公式17正向变换

    K=Tforward·X·TforwardT]]>

                   公式18正向量子化

    period=QP/6

    phase=QP-6·period

    Level[i][j]=(Q(phase)[i][j]·K[i][j])/2(17+period)

    下面给出此例的反量子化、反向变换及标准化的说明,见公式19和20。

                   公式19反量子化

    period=QP/6

    phase=QP-6·period

    K[i][j]=R(phase)[i][j]·Level[i][j]·2period

                   公式20 IDCT和标准化

    X′=Treverse·K·TreverseT]]>

    X′[i][j]=X′[i][j]/27

    图1为流程图,展示本发明的系数量子化方法。虽然为清楚起见,此方法是以编号的步骤序列来说明的,除非明确指出,不应从编号中推断任何顺序。应理解,对这些步骤中的一些,可以跳过、并行执行,或执行而无需保持序列的严格顺序。方法开始于步骤100。步骤102提供系数K。步骤104提供量子化参数(QP)。步骤106使用尾数部分(Am(QP))和指数部分(xAe(QP))通过系数K构成量子化值(L)。通常,指数部分(xAe(QP))包括x的值为2。

    在所述方法的一些方面,步骤106中使用尾数部分(Am(QP))和指数部分(xAe(QP))通过系数K构成量子化值(L)包括:

    L=K*A(QP)

     =K*Am(QP)*(2Ae(QP)).

    所述方法的一些方面还包括进一步的步骤。步骤108用2N按如下标准化量子化值:

      Ln=L/2N

        =K*Am(QP)/2(N·Ae(QP))

    在其他方面,在步骤106构成量子化值包括构成一组递归的有周期P的量子化因子,其中A(QP+P)=A(QP)/x。类似地,构成一组递归的量子化因子包括构成递归的尾数因子,其中Am(QP)=Am(QP mod P)。然后,构成一组递归的量子化因子包括构成递归的指数因子,其中Ae(QP)=Ae(QP mod P)-QP/P。

    在一些方面,构成量子化值包括构成一组递归的有周期P的量子化因子,其中A(QP+P)=A(QP)/2。在其他方面,构成一组递归的量子化因子包括构成递归的尾数因子,其中P=6。类似地,构成一组递归的量子化因子包括构成递归的指数因子,其中P=6。

    在所述方法的一些方面,步骤102中提供系数K包括提供系数矩阵K[i][j]。然后,步骤106使用尾数部分(Am(QP))和指数部分(xAe(QP))通过系数矩阵K[i][j]构成量子化值(L)包括使用尾数部分矩阵(Am(QP)[i][j])和指数部分矩阵(xAe(QP)[i][j])构成量子化值矩阵(L[i][j])。类似地,使用尾数部分矩阵(Am(QP)[i][j])和指数部分矩阵(xAe(QP)[i][j])构成量子化值矩阵(L[i][j])包括,对每个特殊的QP值,指数部分矩阵中的每个元素为同样的值。通常,指数部分矩阵中的每个元素对QP的周期(P)值为同样的值,其中Ae(QP)=Ae(P*(QP/P))。

    所述方法的一些方面包括进一步的步骤。步骤110使用底数部分(Bm(QP))和指数部分(xBe(QP))通过量子化值构成反量子化值(X1)。再次,指数部分(xBe(QP))通常包括x的值为2。

    在所述方法的一些方面,使用底数部分(Bm(QP))和指数部分(2Be(QP))通过量子化值构成反量子化值(X1)包括:

      X1=L*B(QP)

        =L*Bm(QP)*(2Be(QP)).

    所述方法的其他方面包括进一步的步骤,步骤112,它用2N按如下对量子化值进行反标准化:

    X1d=X1/2N

       =X1*Bm(QP)/2N

    在一些方面,步骤110中构成反量子化值包括构成一组递归的有周期P的反量子化因子,其中B(QP+P)=x*B(QP)。然后,构成一组递归的反量子化因子包括构成递归的尾数因子,其中Bm(QP)=Bm(QP mod P)。进一步来说,构成一组递归的反量子化因子包括构成递归的指数因子,其中Be(QP)=Be(QP modP)+QP/P。

    在一些方面,构成一组递归的有周期P的反量子化因子包括x的值等于2,且构成递归的尾数因子包括P的值等于6。然后,构成一组递归的反量子化因子包括构成递归的指数因子,其中Be(QP)=Be(QP mod P)+QP/P。

    在所述方法的一些方面,步骤110中使用底数部分(Bm(QP))和指数部分(xBe(QP))通过量子化值构成反量子化值(X1)包括使用尾数部分矩阵(Bm(QP)[i][j])和指数部分矩阵(xBe(QP)[i][j])构成反量子化值矩阵(X1[i][j])。类似地,使用尾数部分矩阵(Bm(QP)[i][j])和指数部分矩阵(xBe(QP)[i][j])构成量子化值矩阵(X1[i][j])包括,对每个特殊的QP值,指数部分矩阵中的每个元素为同样的值。在一些方面,指数部分矩阵中的每个元素对QP的周期(P)值为同样的值,其中Be(QP)=Be(P*(QP/P))。

    本发明的另一方面包括系数反量子化的方法。然而,此处理本质上与上述步骤110和112相同,为简洁起见不再重复。

    已展示了系数量子化的方法。现给出例子,展示对H.26L视频编码标准应用的组合的反量子化和标准化过程,其目标是减少解码器所需的位深至16比特。本发明的概念可用于满足H.26L内其他的设计目标。总的来说,本发明应用于标准化和量子化计算的组合。

    本发明的实施例可以作为硬件、固件、软件及其他实现方式来实现。一些实施例可以实现在通用计算设备或为这些实施例的实现特别设计的计算设备上。作为存储实施例方法或为了在计算设备上执行实施例,可以将一些实施例存储在存储器中。

    本发明的一些实施例包括视频编码的系统和方法,如图2所示。在这些实施例中,在132减去图像数据130中表示前面的视频帧145的数据,得到差分图像133,它被发送到变换模块134。变换模块134可以使用DCT或其他变换方法对图像进行变换。通常,变换处理的结果为系数(K),然后此结果被发送到量子化模块136进行量子化。

    量子化模块136可以有其他输入,如建立量子化参数(QP)和其他输入的用户输入131。量子化模块130可以使用变换系数和量子化参数来确定视频图像中的量子化水平(L)。量子化模块136可以使用采用尾数部分及指数部分的方法,然而,在本发明实施例的量子化模块136中也可以使用其他量子化方法。这些量子化水平135和量子化参数137被输出到编码模块138及反量子化模块(DQ)140。

    对编码模块138的输出被编码并发送到编码器外部立即进行解码或存储。编码模块138可以在其编码处理中使用可变长编码(VLC)。编码模块138可以在其编码处理中使用算术编码。来自编码模块138的输出被编码为数据139,它可以被发送到解码器或存储在存储设备中。

    来自量子化模块136的输出也在反量子化模块140被接收以开始图像的重显。这是为了保持前面的帧的准确记录。反量子化模块140执行有和量子化模块136本质上相反的效果的处理。量子化水平或值(L)被反量子化以产生变换系数。如上所述,反量子化模块140可以使用采用尾数部分及指数部分的方法。

    来自反量子化模块140的变换系数输出被发送到反向变换(IT)模块142,其中它们被反向变换为差分图像141。然后此差分图像141与来自前面的图像帧145的数据合并以构成视频帧149,视频帧149可以被输入到帧存储器146由后面的帧引用。

    视频帧149也可以作为移动预测模块147的输入,该模块亦接收图像数据130。这些输入可以用于预测图像相似性并有助于压缩图像数据。来自移动预测模块147的输出被发送到移动补偿模块148并和例子编码模块138的输出数据组合,然后它被发送出,用于随后的解码和最终的图像显示。

    移动补偿模块148使用预测的图像数据来减少帧数据需求;从输入图像数据130中减去其输出。

    本发明的一些实施例包括视频解码的系统和方法,如图3所示。本发明实施例的解码器可以接收编码的数据150到解码器模块152。编码的数据150可以包括已被如上面引用图2所述的编码器100编码的数据。

    解码模块152可以使用可变长解码方法,如果在编码处理中使用了这些方法的话。由编码的数据150的类型决定,也可以使用其他解码方法。解码模块152本质上执行与编码模块138相反的处理。来自解码模块152的输出可以包括量子化参数156和量子化值154。其他输出可以包括移动预测数据及图像预测数据,它们被直接发送到移动补偿模块166。

    通常,量子化参数156和量子化值154被输出到反量子化模块158,其中量子化值被转换回变换系数。反量子化模块158可以使用上述采用尾数部分和指数部分的方法。然后这些系数被发送到反向变换模块160以转换回空间域图像数据161。

    移动补偿单元166使用移动向量数据和帧存储器165来构建参考图像165。

    图像数据161表示必须和前面的图像数据165组合才能构成视频帧163的差分图像。此视频帧163是输出168,用于进一步的处理、显示或其他目的且可以被存储在帧存储器165中并由后面的帧引用。

    在本方面的一些实施例中,如图4所示,图像数据102可以被发送到编码器或编码部分104进行各种变换、量子化、编码及其他视频编码中的典型处理,如上面对本发明的一些实施例所述。然后来自编码器的输出可以被存储在任何计算机可读存储媒体106。存储媒体106可以作为短期缓冲或长期存储设备。

    当需要时,可以从存储媒体106中读出编码的视频数据并由解码器或解码部分108对其解码以输出110到显示器或其他设备。

    在本发明的一些实施例中,如图5所示,图像数据112可以被发送到编码器或编码部分114进行进行各种变换、量子化、编码及其他视频编码中的典型处理,如上面对本发明的一些实施例所述。然后可以通过网络,如LAN、WAN,或因特网116发送来自编码器的输出。如存储媒体106这样的存储设备可以为网络的一部分。编码的视频数据可以由亦和网络116通讯的解码器或解码部分118接收并解码。然后解码器118可以解码数据用于本地使用120。

    在本发明的一些实施例中,如图6所示,量子化方法或装置包括尾数部分172和指数部分174。量子化参数176是部分172和174两者的输入。系数K 170是尾数部分172的输入,其中使用量子化参数和其他值对其进行修改,如上所述。此操作的结果与使用量子化参数在指数部分中产生的结果组合从而产生量子化水平或值L 178。

    在本发明的一些实施例中,如图7所示,量子化方法或装置包括尾数部分182和移位部分184。量子化参数186为部分182和184两者的输入。系数K 180是尾数部分182的输入,其中使用量子化参数和其他值对其进行修改,如上所述。此操作的结果进一步在移位部分中使用量子化参数进行处理从而产生量子化水平或值L 188。

    本发明的一些实施例,如图8所示,包括有尾数部分192和指数部分194的反量子化方法或装置。量子化参数196是部分192和194两者的输入。量子化值,L 190是尾数部分192的输入,其中使用量子化参数和其他值对其进行修改,如上所述。此操作的结果进一步在指数部分中使用量子化参数进行处理从而产生系数,X1 198。

    本发明的一些实施例,如图9所示,包括有尾数部分202和指数部分204的反量子化方法或装置。量子化参数206是部分202和204两者的输入。量子化值,L 200是尾数部分202的输入,其中使用量子化参数和其他值对其进行修改,如上所述。此操作的结果进一步在指数部分中使用量子化参数进行处理从而产生系数,X1 208。

    本发明的一些实施例可以存储在计算机可读媒体上,如磁媒体、光学媒体和其他媒体以及媒体的组合。一些实施例也可以作为信号通过网络和通讯媒体发送。这些发送和存储动作可以作为本发明实施例的操作的一部分或作为发送实施例到目的地的方式发生。

    熟悉技术的人应理解本发明可以有其他变化和实施例。

减少位深的量子化方法.pdf_第1页
第1页 / 共32页
减少位深的量子化方法.pdf_第2页
第2页 / 共32页
减少位深的量子化方法.pdf_第3页
第3页 / 共32页
点击查看更多>>
资源描述

《减少位深的量子化方法.pdf》由会员分享,可在线阅读,更多相关《减少位深的量子化方法.pdf(32页珍藏版)》请在专利查询网上搜索。

提供系数量子化的方法。所述方法包括:提供系数K、提供量子化参数(QP)、使用尾数部分(Am(QP)和指数部分(xAe(QP)通过系数K构成量子化值(L)。通常,x的值为2。在所述方法的一些方面,通过系数K构成量子化值(L)包括LKA(QP)KAm(QP)(2Ae(QP)。在其它方面,所述方法进一步包括:按如下使用2N标准化量子化值:LnL/2NKAm(QP)/2 (NAe(QP)。在一些方面,构成。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 基本电子电路


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1