当前位置: 首页 > 专利查询>复旦大学专利>正文

一种适用于HEVC标准的基于脏位的两级DCT系数存储方法技术

技术编号:13045673 阅读:79 留言:0更新日期:2016-03-23 13:58
本发明专利技术属于高清数字视频压缩编解码技术领域,具体为一种适用于HEVC标准的基于脏位的两级DCT系数存储方法。本发明专利技术将DCT系数分成三个部分:符号位、高位数据和低位数据,并将数据位的较高部分划归为高位数据,剩余比特划归为低位数据;同时采用SRAM作为存储层次中的第一级,用来存储符号位、低位数据和表征该高位是否涵盖信息的脏位;采用寄存器作为存储层次中的第二级,用来存储一些需要存储的高位数据;并且使用计数器推算高位指针并进行索引。本发明专利技术通过层次化的存储策略减少硬件代价。

【技术实现步骤摘要】

本专利技术属于高清数字视频压缩编解码
,具体为一种适用于HEVC标准中基于脏位的两级DCT系数存储方法。
技术介绍
HEVC(HighEfficiencyVideoCoding)是由国际电信组织(ITU)和运动图像专家组(MPEG)联合成立的组织JCTVC提出的下一代视频编解码标准。目标是在相同的视觉效果的前提下,相比于上一代标准,即H.264/AVC标准,压缩率提高一倍。基于HEVC的视频编码器,主要由以下模块组成:帧内预测、帧间预测、变换、量化、反量化、反变换、重建、去方块滤波器、自适应样点补偿等。其中,离散余弦变换(DCT)是编码器必不可少的一部分,负责集中残差数据的能量,以供随后的量化和熵编码。由于HEVC标准下图像处理块的大小已经到达了64×64,离散余弦变换(DCT)处理块的大小也到达了32×32。这使得常用的行列变换架构中所需要的转置存储器变得异常庞大,如图1所示。对于如此庞大的存储需求,传统的基于寄存器的和基于静态随机存储器的存储方式已经变得不再适用。
技术实现思路
本专利技术的目的在于提出一种可以克服现有技术不足的、能有效适用于HEVC标准中基于脏位的两级离散余弦变换(DCT)系数存储方法。本专利技术提出的适用于HEVC标准的两级离散余弦变换(DCT)系数存储方法,是基于脏位的存储方法。具体步骤为:首先,将离散余弦变换(DCT)系数(以下简称系数),分成三个部分:符号位,高位数据和低位数据。在补码表示的方式下,HEVC标准中的系数可以用16比特表示。其中,最高位是符号位,剩余比特是数据位。而更进一步地本专利技术将数据位的较高部分划归为高位数据,剩余比特划归为低位数据。具体的划分方法可以选择不同的比重,如图2所示的将高11位划为高位数据,低4位划为低位数据。接着,采用静态随机访问存储器(SRAM)作为存储层次中的第一级,这一级用来存储符号位、低位数据和表征该高位是否涵盖信息的脏位;采用寄存器作为存储层次中的第二级,这一级用来存储一些需要存储的高位数据。此处,是否涵盖信息取决于该高位内的所有比特是否都等于符号位。在补码表示下,如果一个数接近于0,那么该数较高几个比特都将是符号位的扩展。而残差经过离散余弦变换(DCT)之后,大量的数据都将接近于0。对于这些数,只要知道了其符号位,就可以得到高位数据,因此,它们是不涵盖信息的。本专利技术约定在这种情况下,脏位无效,等于某个特定值,如0。那么,当脏位等于0时,高位数据就是符号位的扩展。而对于涵盖信息的高位数据,则他们将通过第二级存储层次,即寄存器存储,并且使用计数器推算高位指针并进行索引。以上描述的存储层次如图3所示。为了简单地建立索引关系,本专利技术采用(但不仅限于)计数器。在建立索引关系时,硬件可以使用一个计数器计数需要存储的高位数据的数目。该计数器从0开始记录,当且仅当一个新的需要存储的高位数据出现,硬件处理器就将该数据存储于当前计数器所对应的寄存器中,脏位置为1,接着计数器自增1。本专利技术通过层次化的存储策略减少硬件代价。附图说明图1:离散余弦变换(DCT)与转置存储器。图2:对于系数的划分。图3:两级存储策略图示。具体实施方式下面通过实施例,进一步具体描述本专利技术方法。假设当前需要存储的16×16系数矩阵如下表所示,且按照光栅顺序存储。那么,本专利技术将有如下写入过程:初始情况下,所有静态随机存储器(SRAM)和寄存器的存储空间都是0,计数器是0。对于第0行第0列的系数24,它所对应的二进制补码是0000_0000_0001_1000,其中,符号位为0,高位数据为000_0000_0001,低位数据为1000。由于高位数据不是符号位的扩展,因此,高位数据被存储在0号寄存器中;符号位0,脏位1和低位数据1000被存储在静态随机存储器(SRAM)的0地址中;计数器随后自增1,变为1。对于第0行第1列的系数2,它所对应的二进制补码是0000_0000_0000_0010,其中,符号位为0,高位数据为000_0000_0000,低位数据为0010。由于高位数据是符号位的扩展,因此,不需要存储高位数据;符号位0,脏位0和低位数据0010被存储在静态随机存储器(SRAM)的1地址中;计数器不变。对于第0行第2列的系数-7,它所对应的二进制补码是1111_1111_1111_1001,其中,符号位为1,高位数据为111_1111_1111,低位数据为1001。由于高位数据是符号位的扩展,因此,不需要存储高位数据;符号位1,脏位0和低位数据1001被存储在静态随机存储器(SRAM)的1地址中;计数器不变。对于第0行第3列的系数-1,它所对应的二进制补码是1111_1111_1111_1111,其中,符号位为1,高位数据为111_1111_1111,低位数据为1111。由于高位数据是符号位的扩展,因此,不需要存储高位数据;符号位1,脏位0和低位数据1111被存储在静态随机存储器(SRAM)的3地址中;计数器不变。……。对于第1行第0列的系数7,它所对应的二进制补码是0000_0000_0000_0111,其中,符号位为0,高位数据为000_0000_0000,低位数据为0111。由于高位数据是符号位的扩展,因此,不需要存储高位数据;符号位0,脏位0和低位数据0111被存储在静态随机存储器(SRAM)的16地址中;计数器不变。对于第1行第1列的系数-17,它所对应的二进制补码是1111_1111_1110_1111,其中,符号位为1,高位数据为111_1111_1110,低位数据为1111。由于高位数据不是符号位的扩展,因此,高位数据被存储在1号寄存器中;符号位1,脏位1和低位数据1111被存储在静态随机存储器(SRAM)的17地址中;计数器随后自增1,变为2。对于第1行第2列的系数21,它所对应的二进制补码是0000_0000_0001_0101,其中,符号位为0,高位数据为000_0000_0001,低位数据为0101。由于高位数据不是符号位的扩展,因此,高位数据被存储在2号寄存器中;符号位0,脏位1和低位数据0101被存储在静态随机存储器(SRAM)的18地址中;计数器随后自增1,变为3。……。本专利技术将有如下读出过程:对于第0行第0列的系数24,它被存储在静态随机存储器(SRAM)的0地址,符号位是0,脏位是1,低位数据是1000;由于脏位是1,因此,高位数据被存储当前计数器所对应的寄存器,即,0号寄存器,内容是000_0000_0001。所以,最后的值是0_000_0000_0001_1000,也就是24,接着计数器自增1,变为1。对于第0行第1列的系数2,它被存储在静态随机存储器(SRAM)的1地址,符号位是0,脏位是0,低位数据是0010;由于指针是0,因此,高位数据就是符号位的扩展,也就是000_0000_0000。所以,最后的值是0_000_0000_0000_0010,也就是2。对本文档来自技高网...

【技术保护点】
一种适用于HEVC标准的基于脏位的两级DCT系数存储方法,其特征在于具体步骤为:首先,将DCT系数分成三个部分:符号位、高位数据和低位数据;在补码表示的方式下,HEVC标准中的系数用16比特表示,其中,最高位是符号位,剩余比特是数据位;现将数据位的较高部分划归为高位数据,剩余比特划归为低位数据;接着,采用SRAM作为存储层次中的第一级,用来存储符号位、低位数据和表征该高位是否涵盖信息的脏位;采用寄存器作为存储层次中的第二级,用来存储一些需要存储的高位数据;当脏位等于0即脏位无效时,高位数据就是符号位的扩展;而对于涵盖信息的高位数据,则它们通过第二级存储层次即寄存器存储,并且使用计数器推算高位指针并进行索引。

【技术特征摘要】
1.一种适用于HEVC标准的基于脏位的两级DCT系数存储方法,其特征在于具体步骤为:
首先,将DCT系数分成三个部分:符号位、高位数据和低位数据;在补码表示的方式下,HEVC标准中的系数用16比特表示,其中,最高位是符号位,剩余比特是数据位;现将数据位的较高部分划归为高位数据,剩余比特划归为低位数据;
接着,采用SRAM作为存储层次中的第一级,用来存储符号位、低位数据和表征该高位是否涵盖信息的脏位;采用寄存器作为存储层次中的第二级,用来存储一些需要存储的高位数据;

【专利技术属性】
技术研发人员:范益波黄磊磊刘淑君曾晓洋
申请(专利权)人:复旦大学
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1