本发明专利技术属于高清数字视频压缩编解码技术领域,具体为一种适用于HEVC标准的基于SRAM的DCT输入输出数据缓存方法。本发明专利技术使用4个深度为128,宽度为8像素宽度的静态随机存储器(SRAM),并将64×64大小的图像处理块等分成4个32×32大小的1/4图像处理块;将32×32大小的1/4图像处理块等分成16个8×8大小的1/64处理块;将8×8大小的1/64处理块等分成8个1×8大小的图像处理行;然后对各图像块处理的数据与各静态随机访问存储器中各存储单元地址之间建立对应的存储关系。使用本发明专利技术方法,无论访问的块大小为4×4,8×8,16×16还是32×32,无论访问的格式是按行输出还是按块输出,总是能够提供每周期32像素的吞吐率,从而以极低的硬件代价来达到极高的吞吐率。
【技术实现步骤摘要】
本专利技术属于高清数字视频压缩编解码
,具体为一种适用于HEVC标准中对DCT的输入输出数据进行缓存的方法。
技术介绍
HEVC(HighEfficiencyVideoCoding)是由国际电信组织(ITU)和运动图像专家组(MPEG)联合成立的组织JCTVC提出的下一代视频编解码标准。目标是在相同的视觉效果的前提下,相比于上一代标准,即H.264/AVC标准,压缩率提高一倍。基于HEVC的视频编码器,主要由以下模块组成:帧内预测、帧间预测、变换、量化、反量化、反变换、重建、去方块滤波器、自适应样点补偿等。其中,离散余弦变换(DCT)作为编码器必不可少的一部分,与包括预测模块、熵编码模块、去方块化模块在内的诸多模块存在数据交互。然而,由于离散余弦变换模块(DCT)所常用的输入输出格式,即按行输出,与其他模块的常用输入输出模式,即按块输出,不一致,从而需要在各条数据的通路上设置缓存,如图1所示。而在HEVC标准下,图像处理块(LCU)的大小最大已经到达了64×64,这导致传统的基于寄存器的缓存方式变得不再适用。
技术实现思路
本专利技术的目的在于提出一种可以克服现有技术不足的、能有效适用于HEVC标准中对DCT的输入输出进行数据缓存方法。本专利技术提出的适用于HEVC标准的对DCT的输入输出数据进行缓存方法,是基于静态随机存储器(SRAM)的。本专利技术方法仅使用了4个深度为128,宽度为8像素宽度的静态随机存储器(SRAM),但无论访问的块大小为4×4,8×8,16×16还是32×32,无论访问的格式是按行输出还是按块输出,该方法总是能够提供每周期32像素的吞吐率。本专利技术提出的适用于HEVC标准的对DCT的输入输出数据进行缓存方法,将64×64大小的图像处理块等分成4个32×32大小的1/4图像处理块,每个图像处理块的标号用符号nQLCU表示,序号以光栅顺序记录,从0计数;将32×32大小的1/4图像处理块等分成16个8×8大小的1/64处理块,每个图像处理块的标号用符号nBlock表示,序号以光栅顺序记录,从0计数;将8×8大小的1/64处理块等分成8个1×8大小的图像处理行,每个图像处理行的标号用符号nRow表示,序号依次向下,从0计数。由此,每个图像处理行的完整表示方式是nQLCU-nBlock-nRow,如图2所示。本方法中每个静态随机访问存储器的标号用符号bank表示,从0计数;每个静态随机访问存储器的地址用符号addr表示,从零计数。由此,每个存储单元的完整表示方式是bank-addr-。根据上述标号定义,本专利技术对各图像块处理的数据与各静态随机访问存储器中各存储单元地址之间对应的存储关系,即具体映射公式如下:当nRow%4等于0时,bank=(nBlock+0)%4当nRow%4等于1时,bank=(nBlock+2)%4当nRow%4等于2时,bank=(nBlock+1)%4(1)当nRow%4等于3时,bank=(nBlock+3)%4addr=32×nQLCU+8×[nRow/4]+nBlock此处,符号“%”表示取余,符号“[]”表示取整,且采用向下取整的方式,映射后的数据排布如图3所示。按照这样的映射,在按块访问时,总是可以访问水平相邻的2个4×4块,吞吐率是32像素每周期;在按行访问时,总是可以访问8×8块下的4相邻4行,16×16块下的相邻2行和32×32块下的1行,吞吐率也是32像素每周期。附图说明图1:离散余弦变换周围所需要的缓存。图2:数据标记方式。图3:数据映射方式。图4:各类访问。具体实施方式按照公式(1),有如下映射方式:像素行0-0-0映射于存储单元0-0;像素行0-0-1映射于存储单元1-1;像素行0-0-2映射于存储单元2-2;像素行0-0-3映射于存储单元3-3;像素行0-0-4映射于存储单元0-4;像素行0-0-5映射于存储单元1-5;像素行0-0-6映射于存储单元2-6;像素行0-0-7映射于存储单元3-7;像素行0-1-0映射于存储单元2-0;像素行0-1-1映射于存储单元3-1;像素行0-1-2映射于存储单元0-2;像素行0-1-3映射于存储单元1-3;像素行0-1-4映射于存储单元2-4;像素行0-1-5映射于存储单元3-5;像素行0-1-6映射于存储单元0-6;像素行0-1-7映射于存储单元1-7;像素行0-2-0映射于存储单元1-0;像素行0-2-1映射于存储单元2-1;像素行0-2-2映射于存储单元3-2;像素行0-2-3映射于存储单元0-3;像素行0-2-4映射于存储单元1-4;像素行0-2-5映射于存储单元2-5;像素行0-2-6映射于存储单元3-6;像素行0-2-7映射于存储单元0-7;像素行0-3-0映射于存储单元3-0;像素行0-3-1映射于存储单元0-1;像素行0-3-2映射于存储单元1-2;像素行0-3-3映射于存储单元2-3;像素行0-3-4映射于存储单元3-4;像素行0-3-5映射于存储单元0-5;像素行0-3-6映射于存储单元1-6;像素行0-3-7映射于存储单元2-7;像素行0-4-0映射于存储单元0-8;像素行0-4-1映射于存储单元1-9;像素行0-4-2映射于存储单元2-10;像素行0-4-3映射于存储单元3-11;像素行0-4-4映射于存储单元0-12;像素行0-4-5映射于存储单元1-13;像素行0-4-6映射于存储单元2-14;像素行0-4-7映射于存储单元3-15;……。而在访问数据时,无论是1个1×32行,2个相邻的1×16行,4个相邻的1×8行,还是2个相邻4×4块总是分布在不同的bank,亦即不同的静态随机存储器(SRAM)当中。如由图像处理行0-0,1-0,2-0和3-0构成的1个1×32行,被映射在了存储单元0-0,2-0,1-0和3-0中;如由图像处理行0-0,0-1,1-0和1-1构成的2个1×16行,被映射在了存储单元0-0,1-1,2-0和3-1中;如由图像处理行0-0,0-1,0-2和0-3构成的4个1×8行,被映射在了存储单元0-0,1-1,2-2和3-3中;如由图像处理行0-0,0-1,0-2和0-3构成的2个4×4块,被映射在了存储单元0-0,1-1,2-2和3-3中;如图4所示。本文档来自技高网...
【技术保护点】
一种适用于HEVC标准的基于SRAM的DCT输入输出数据缓存方法,其中使用4个深度为128、宽度为8像素宽度的静态随机存储器;首先,将64×64大小的图像处理块等分成4个32×32大小的1/4图像处理块,每个图像处理块的标号用符号nQLCU表示,序号以光栅顺序记录,从0计数;将32×32大小的1/4图像处理块等分成16个8×8大小的1/64处理块,每个图像处理块的标号用符号nBlock表示,序号以光栅顺序记录,从0计数;将8×8大小的1/64处理块等分成8个1×8大小的图像处理行,每个图像处理行的标号用符号nRow表示,序号依次向下,从0计数;于是,每个图像处理行的完整表示方式是nQLCU‑nBlock‑nRow;每个静态随机访问存储器的标号用符号bank表示,从0计数;每个静态随机访问存储器的地址用符号addr表示,从零计数;于是,每个存储单元的完整表示方式是bank‑addr;根据上述标号定义,各图像块处理的数据与各静态随机访问存储器中各存储单元地址之间对应的存储关系,即具体映射公式如下:当nRow%4等于0时,bank = (nBlock+0)%4当nRow%4等于1时,bank = (nBlock+2)%4当nRow%4等于2时,bank = (nBlock+1)%4 (1)当nRow%4等于3时,bank = (nBlock+3)%4addr = 32×nQLCU+8×[nRow/4]+nBlock此处,符号“%”表示取余,符号“[]”表示取整,且向采用下取整的方式。...
【技术特征摘要】
1.一种适用于HEVC标准的基于SRAM的DCT输入输出数据缓存方法,其中使用4个深度为128、宽度为8像素宽度的静态随机存储器;
首先,将64×64大小的图像处理块等分成4个32×32大小的1/4图像处理块,每个图像处理块的标号用符号nQLCU表示,序号以光栅顺序记录,从0计数;将32×32大小的1/4图像处理块等分成16个8×8大小的1/64处理块,每个图像处理块的标号用符号nBlock表示,序号以光栅顺序记录,从0计数;将8×8大小的1/64处理块等分成8个1×8大小的图像处理行,每个图像处理行的标号用符号nRow表示,序号依次向下,从0计数;
于是,每个图像处理行的完整表示方式是nQLCU-nBlock-nRow;
每个静态随机访问存储器的标号用符号b...
【专利技术属性】
技术研发人员:范益波,黄磊磊,刘淑君,曾晓洋,
申请(专利权)人:复旦大学,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。