一种适用于hevc标准的基于脏位的两级dct系数存储方法

文档序号:9671210阅读:301来源:国知局
一种适用于hevc标准的基于脏位的两级dct系数存储方法
【技术领域】
[0001] 本发明属于高清数字视频压缩编解码技术领域,具体为一种适用于肥VC标准中 基于脏位的两级DCT系数存储方法。
【背景技术】
[0002] 肥VC(Hi曲EfficiencyVideoCoding)是由国际电信组织(ITU)和运动图像专 家组(MPEG)联合成立的组织JCTVC提出的下一代视频编解码标准。目标是在相同的视觉 效果的前提下,相比于上一代标准,即H. 264/AVC标准,压缩率提高一倍。
[000引基于肥VC的视频编码器,主要由W下模块组成:帖内预测、帖间预测、变换、量化、 反量化、反变换、重建、去方块滤波器、自适应样点补偿等。其中,离散余弦变换(DCT)是编 码器必不可少的一部分,负责集中残差数据的能量,W供随后的量化和赌编码。由于肥VC 标准下图像处理块的大小已经到达了 64X64,离散余弦变换(DCT)处理块的大小也到达了 32X32。运使得常用的行列变换架构中所需要的转置存储器变得异常庞大,如图1所示。对 于如此庞大的存储需求,传统的基于寄存器的和基于静态随机存储器的存储方式已经变得 不再适用。

【发明内容】

[0004] 本发明的目的在于提出一种可W克服现有技术不足的、能有效适用于肥VC标准 中基于脏位的两级离散余弦变换(DCT)系数存储方法。
[0005] 本发明提出的适用于肥VC标准的两级离散余弦变换(DCT)系数存储方法,是基于 脏位的存储方法。具体步骤为: 首先,将离散余弦变换(DCT)系数(W下简称系数),分成=个部分:符号位,高位数据和 低位数据。在补码表示的方式下,肥VC标准中的系数可W用16比特表示。其中,最高位是 符号位,剩余比特是数据位。而更进一步地本发明将数据位的较高部分划归为高位数据,剩 余比特划归为低位数据。具体的划分方法可W选择不同的比重,如图2所示的将高11位划 为高位数据,低4位划为低位数据。
[0006] 接着,采用静态随机访问存储器(SRAM)作为存储层次中的第一级,运一级用来存 储符号位、低位数据和表征该高位是否涵盖信息的脏位;采用寄存器作为存储层次中的第 二级,运一级用来存储一些需要存储的高位数据。
[0007] 此处,是否涵盖信息取决于该高位内的所有比特是否都等于符号位。在补码表示 下,如果一个数接近于0,那么该数较高几个比特都将是符号位的扩展。而残差经过离散余 弦变换(DCT)之后,大量的数据都将接近于0。对于运些数,只要知道了其符号位,就可W得 到高位数据,因此,它们是不涵盖信息的。本发明约定在运种情况下,脏位无效,等于某个特 定值,如0。那么,当脏位等于0时,高位数据就是符号位的扩展。而对于涵盖信息的高位数 据,则他们将通过第二级存储层次,即寄存器存储,并且使用计数器推算高位指针并进行索 弓I。W上描述的存储层次如图3所示。
[000引为了简单地建立索引关系,本发明采用(但不仅限于)计数器。在建立索引关系时, 硬件可W使用一个计数器计数需要存储的高位数据的数目。该计数器从0开始记录,当且 仅当一个新的需要存储的高位数据出现,硬件处理器就将该数据存储于当前计数器所对应 的寄存器中,脏位置为1,接着计数器自增1。
[0009] 本发明通过层次化的存储策略减少硬件代价。
【附图说明】
[0010] 图1 :离散余弦变换(DCT)与转置存储器。 W11] 图2:对于系数的划分。 阳01引图3:两级存储策略图示。
【具体实施方式】
[0013] 下面通过实施例,进一步具体描述本发明方法。
[0014] 假设当前需要存储的16X16系数矩阵如下表所示,且按照光栅顺序存储。
[0015] 那么,本发明将有如下写入过程: 初始情况下,所有静态随机存储器(SRAM)和寄存器的存储空间都是0,计数器是0。
[0016] 对于第0行第0列的系数24,它所对应的二进制补码是0000_0000_0001_1000,其 中,符号位为0,高位数据为〇〇〇_〇〇〇〇_〇〇〇 1,低位数据为1000。由于高位数据不是符号位的 扩展,因此,高位数据被存储在0号寄存器中;符号位0,脏位1和低位数据1000被存储在 静态随机存储器(SRAM)的0地址中;计数器随后自增1,变为1。
[0017] 对于第0行第1列的系数2,它所对应的二进制补码是0000_0000_0000_0010,其 中,符号位为0,高位数据为〇〇〇_〇〇〇〇_〇〇〇〇,低位数据为0010。由于高位数据是符号位的扩 展,因此,不需要存储高位数据;符号位0,脏位0和低位数据OOlO被存储在静态随机存储 器(SRAM)的1地址中;计数器不变。
[0018] 对于第0行第2列的系数-7,它所对应的二进制补码是1111_1111_1111_1001,其 中,符号位为1,高位数据为111_1111_1111,低位数据为1001。由于高位数据是符号位的扩 展,因此,不需要存储高位数据;符号位1,脏位0和低位数据1001被存储在静态随机存储 器(SRAM)的1地址中;计数器不变。
[0019] 对于第0行第3列的系数-1,它所对应的二进制补码是1111_1111_1111_1111,其 中,符号位为1,高位数据为111_1111_1111,低位数据为1111。由于高位数据是符号位的扩 展,因此,不需要存储高位数据;符号位1,脏位0和低位数据1111被存储在静态随机存储 器(SRAM)的3地址中;计数器不变。
[0020] ......。
[0021] 对于第1行第0列的系数7,它所对应的二进制补码是0000_0000_0000_0111,其 中,符号位为0,高位数据为〇〇〇_〇〇〇〇_〇〇〇〇,低位数据为Ol11。由于高位数据是符号位的扩 展,因此,不需要存储高位数据;符号位0,脏位0和低位数据0111被存储在静态随机存储 器(SRAM)的16地址中;计数器不变。
[0022] 对于第1行第1列的系数-17,它所对应的二进制补码是 其中,符号位为1,高位数据为111_1111_1110,低位数据为1111。由于高位数据不是符号位 的扩展,因此,高位数据被存储在1号寄存器中;符号位1,脏位1和低位数据1111被存储 在静态随机存储器(SRAM)的17地址中;计数器随后自增1,变为2。
[0023] 对于第1行第2列的系数21,它所对应的二进制补码是0000_0000_0001_0101,其 中,符号位为0,高位数据为000_0000_0001,低位数据为OlOl。由于高位数据不是符号位的 扩展,因此,高位数据被存储在2号寄存器中;符号位0,脏位1和低位数据OlOl被存储在 静态随机存储器(SRAM)的18地址中;计数器随后自增1,变为3。
[0024] ......。
[00巧]本发明将有如下读出过程: 对于第0行第0列的系数24,它被存储在静态随机存储器(SRAM)的0地址,符号位是 0,脏位是1,低位数据是1000 ;由于脏位是1,因此,高位数据被存储当前计数器所对应的寄 存器,即,0号寄存器,内容是〇〇〇_〇〇〇〇_〇〇〇 1。所W,最后的值是〇_〇〇〇_〇〇〇〇_〇〇〇 1_1〇〇〇,也 就是24,接着计数器自增1,变为1。
[00%] 对于第0行第1列的系数2,它被存储在静态随机存储器(SRAM)的1地址,符号位 是0,脏位是0,低位数据是OOlO;由于指针是0,因此,高位数据就是符号位的扩展,也就是 000_0000_0000。所W,最后的值是 0_000_0000_0000_0010,也就是 2。
[0027] 对于第0行第2列的系数-7,它被存储在静态随机存储器(SRAM)的2地址,符号 位是1,脏位是0,低位数据是1001 ;由于指针是0,因此,高位数据就是符号位的扩展,也就 是 所W,最后的值是 也就是-7。
[0028] 对于第0行第3列的系数-1,它被存储在静态随机存储器(SRAM)的3地址,符号 位是1,脏位是0,低位数据是1111 ;由于指针是0,因此,高位数据就是符号位的扩展,也就 是 所W,最后的值是 也就是-1。
[0029] ......。
[0030] 对于第1行第0列的系数7,它被存储在静态随机存储器(SRAM)的16地址,符号 位0,脏位是0,低位数据是0111 ;由于指针是0,因此,高位数据就是符号位的扩展,也就是 000_0000_0000。所W,最后的值是 0_000_0000_0000_0000,也就是 7。 阳03U 对于第1行第1列的系数-17,它被存储在静态随机存储器(SRAM)的17地址,符号 位1,脏位是1,低位数据是1111 ;由于脏位是1,因此,高位数据被存储当前计数器所对应的 寄存器,即,!号寄存器,内容是所W,最后的值是 也就是-17,变为2。 阳03引对于第1行第2列的系数21,它被存储在静态随机存储器(SRAM)的18地址,符号 位0,脏位是1,低位数据是OlOl;由于脏位是1,因此,高位数据被存储当前计数器所对应的 寄存器,即,2号寄存器,内容是000_0000_0001。所W,最后的值是0_000_0000_0001_0101, 也就是21,变为3。
[0033] ......。
【主权项】
1. 一种适用于HEVC标准的基于脏位的两级DCT系数存储方法,其特征在于具体步骤 为: 首先,将DCT系数分成三个部分:符号位、高位数据和低位数据;在补码表示的方式下,HEVC标准中的系数用16比特表示,其中,最高位是符号位,剩余比特是数据位;现将数据位 的较高部分划归为高位数据,剩余比特划归为低位数据; 接着,采用SRAM作为存储层次中的第一级,用来存储符号位、低位数据和表征该高位 是否涵盖信息的脏位;采用寄存器作为存储层次中的第二级,用来存储一些需要存储的高 位数据; 当脏位等于0即脏位无效时,高位数据就是符号位的扩展;而对于涵盖信息的高位数 据,则它们通过第二级存储层次即寄存器存储,并且使用计数器推算高位指针并进行索引。2. 根据权利要求1所述的适用于HEVC标准的基于脏位的两级DCT系数存储方法,其特 征在于,在建立索引关系时,硬件使用一个计数器计数需要存储的高位数据的数目,该计数 器从〇开始记录,当且仅当一个新的需要存储的高位数据出现,硬件处理器就将该数据存 储于当前计数器所对应的寄存器中,脏位置为1,接着计数器自增1。
【专利摘要】本发明属于高清数字视频压缩编解码技术领域,具体为一种适用于HEVC标准的基于脏位的两级DCT系数存储方法。本发明将DCT系数分成三个部分:符号位、高位数据和低位数据,并将数据位的较高部分划归为高位数据,剩余比特划归为低位数据;同时采用SRAM作为存储层次中的第一级,用来存储符号位、低位数据和表征该高位是否涵盖信息的脏位;采用寄存器作为存储层次中的第二级,用来存储一些需要存储的高位数据;并且使用计数器推算高位指针并进行索引。本发明通过层次化的存储策略减少硬件代价。
【IPC分类】H04N19/423, H04N19/625
【公开号】CN105430419
【申请号】CN201510787966
【发明人】范益波, 黄磊磊, 刘淑君, 曾晓洋
【申请人】复旦大学
【公开日】2016年3月23日
【申请日】2015年11月17日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1