CN104270643B - 基于single‑port SRAM的转置矩阵的地址映射算法 - Google Patents
基于single‑port SRAM的转置矩阵的地址映射算法 Download PDFInfo
- Publication number
- CN104270643B CN104270643B CN201410499728.3A CN201410499728A CN104270643B CN 104270643 B CN104270643 B CN 104270643B CN 201410499728 A CN201410499728 A CN 201410499728A CN 104270643 B CN104270643 B CN 104270643B
- Authority
- CN
- China
- Prior art keywords
- input
- matrix
- matrixes
- algorithm
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明属于高清数字视频压缩编解码技术领域,具体为一种适用于HEVC视频编码标准下2D‑DCT/IDCT中基于single‑port SRAM的转置矩阵的地址映射算法。地址映射算法基于对矩阵分块求转置的运算,即先对矩阵进行分块,然后分别以小尺寸块矩阵和基本元素为单元对整个矩阵和小尺寸块矩阵求转置,小尺寸块矩阵的转置可以直接通过排序实现。本发明基于变换单元(TU)进行,支持HEVC允许的4种TU大小并可实现固定的吞吐率:32pixes/cycle,适用于高吞吐率的2D‑DCT/IDCT及高性能的视频编解码器中。本发明硬件结构实现可以减小40%左右的面积;相比于已有的基于single‑port SRAM的转置矩阵的地址映射算法,可以在不增加硬件开销的情况下,获得更高的吞吐率,实现高清视频的实时编码。
Description
技术领域
本发明属于高清数字视频压缩编解码技术领域,针对HEVC视频编解码标准,具体涉及一种适用于HEVC视频编码标准下,视频编码器和解码器中2D-DCT/2D-IDCT转置矩阵的地址映射算法。
背景技术
HEVC(High Efficiency Video Coding)是由国际电信组织(ITU)和运动图像专家组(MPEG)联合成立的组织JCTVC提出的下一代视频编解码标准。目标是在相同的视觉效果的前提下,相比于上一代标准H.264/AVC,压缩率提高一倍。为达到目标,HEVC的运算复杂度相比H.264大大提高,因此HEVC编码器和解码器的硬件开销和功耗较大。降低硬件开销和功耗是HEVC编解码器设计的研究热点。
绝大部分图像中直流和低频区占很大一部分,而高频区则占很小一部分。DCT变换可将图像从空间域变换到频域,产生相关性很小的一些变换系数,有利于图像压缩。为进一步提高图像压缩律,HEVC编码标准支持16x16和32x32的二维整形DCT/IDCT。
2D-DCT/IDCT可以分解为两次一维DCT/IDCT运算:①行(列)方向的DCT/IDCT变换;②对由①的中间结果产生的矩阵中列(行)方向做DCT/IDCT变换。计算过程可以由下式得到,大尺寸的2D-DCT/IDCT硬件实现需要转置矩阵模块。
YN=AN*FN*AN T
=(AN*(AN*FN)T)T
其中,FN:NxN的输入矩阵;YN为NxN的变换后输出矩阵。AN为HEVC中NxN变换的矩阵。
转置矩阵可以基于寄存器阵列实现,对于大尺寸的转置矩阵实现,基于寄存器阵列的实现会消耗大量的硬件资源和功耗。HEVC中转置矩阵中存储结果为16bit,4x4的2D-DCT的转置矩阵仅需要256-bit的寄存器,而32x32的2D-DCT转置矩阵需要16384-bit的寄存器阵列。当存储大量数据时,SRAM中单位比特数据的存储面积小于寄存器阵列中单位比特数据的存储面积,因此相比于寄存器阵列,SRAM更适合于实现大尺寸的转置矩阵。
2D-DCT/IDCT中,第一次一维变换的结果按行(列)为单元写入转置矩阵,第二次一维变换时将存储的中间结果以列(行)为单元读出。寄存器阵列可以很容易的实现行数据和列数据的读写,而single-port SRAM只能实现行方向或列方向的数据读写,所以行(列)数据必须按一定的规则写入SRAM中,列(行)数据才能从SRAM中读出。大尺寸矩阵的转置会产生大量地址,映射方法不当会提高硬件实现的复杂度。因此映射方法必须便于硬件实现。
为了实现实时编码,几种高吞吐率的DCT/IDCT架构实现已经被提出,对于各种尺寸的TU,吞吐率可以达到32pixes/cycle。在这些2D-DCT/IDCT的设计中,转置矩阵都是基于寄存器阵列,硬件开销较大,数据在寄存器中的移动,导致功耗较大。一种基于single-portSRAM的转置矩阵的地址映射算法已经提出,但该算法仅适用于低吞吐率的2D-DCT/IDCT架构。本发明提出的映射算法适用于HEVC支持的所有基于变换单元(TU)大小,对于不同的TU尺寸可以实现固定的吞吐率:32pixes/cycle。
发明内容
本发明的目的在于提供一种适用于HEVC标准下2D-DCT/IDCT中基于Single-portSRAM的转置矩阵的地址映射算法。
本发明提出的基于Single-port SRAM的转置矩阵的地址映射算法,是基于矩阵分块求转置的基本运算。设对NxN矩阵A,求矩阵A的转置矩阵的步骤如下:①NxN矩阵划分为以MxM矩阵为基本单元的(N/M)x(N/M)块矩阵;②对(N/M)x(N/M)的块矩阵求转置;③对每个MxM矩阵求转置;即:
其中,Aij为MxM基本单元矩阵,i,j=0,1,2,…33。
基于Single-port SRAM的转置矩阵硬件结构,由如下三部分模块组成:AGM,SRAM,MAM;其中:
(1)SRAM:该模块是存储单元,划分为32个Bank,每个Bank的深度为5,位宽为16bit;(2)AGM:该模块根据映射算法产生地址add(i)和badd(i),数据的映射通过add(i)和badd(i)确定(i=0,1,2…,31)。add(i)是第i个Bank的输入信号,控制将数据写入第i个Bank的指定字节;badd(i)通过MAM模块对数据进行排序:写操作时通过对输入数据排序将输入数据分块并写入指定的Bank;读操作时通过对读出的数据排序实现对块矩阵的转置及正序输出;(3)MAM模块由32个32:1的选择器MUX组成,控制信号为badd(i),对数据进行排序。
本发明的地址映射算法,可以通过add(i)和badd(i)确定,具体映射如下:
①4x4输入矩阵:算法支持同时处理两个4x4输入矩阵,4x4矩阵的转置可以直接通过badd实现,不用经过SRAM的存储;
映射如下:
②8x8输入矩阵:8x8输入矩阵每次输入连续4行(列),共输入两次(k=0,1)。
写操作时地址映射如下:
读操作时地址映射如下:
③16x16输入矩阵:16x16输入矩阵每次输入连续2行(列),共输入8次(k=0,1,2,...,7)。
写操作时地址映射如下:
读操作时地址映射如下:
④32x32输入矩阵:32x32输入矩阵每次输入1行(列),共输入32次(k=0,1,2,...,31)。
写操作时地址映射如下:
读操作时地址映射如下:
其中:
⑴%:取余数的操作;M%N表示M除N的余数;
⑵/:取整操作;M/N表示M除N的商的整数部分;
⑶fN(i,j)是一个NxN的二维矩阵。
f8如下所示:
本发明以适用于HEVC支持的所有TU大小:4x4,8x8,16x16,32x32;对于不同的TU尺寸可以实现固定的吞吐率:32pixes/cycle,适用于高吞吐率的2D-DCT/IDCT及高性能的视频编解码器中。相比基于寄存器阵列实现的转置矩阵,该硬件结构可以实现40%左右的面积减小;相比于已有的基于single-port SRAM的转置矩阵的地址映射算法,该算法可以在不增加硬件开销的情况下,获得更高的吞吐率,从而高效的实现高清视频的实时编码。
附图说明
图1:8x8矩阵地址映射。
图2:SRAM划分图。
图3:基于SRAM的转置矩阵硬件结构图。
具体实施方式
下面通过实例并结合附图,以8x8输入矩阵为例进一步具体描述本发明方法。
对于8x8的输入矩阵,每次输入4行,分两次输入,对应的地址映射add(i)和badd(i)如图一所示,写操作时W/R=0,输入数据经过MAM模块,MAM根据badd(i)对输入数据进行排序以指定输入数据写入的Bank,然后数据经过add(i)写入第i个Bank的指定字节;输入数据存储完成后,开始读操作W/R=1,根据add(i)从SRAM中读出列数据,然后根据badd(i)对读出的列数据进行排序输出,每次输出四列数据,分两次输出。
本发明采用一种适用于HEVC视频编码标准下2D-DCT/IDCT中基于single-portSRAM的转置矩阵的地址映射算法及硬件实现。,可以有效的减少芯片的存储单元的面积,减小了硬件的开销。相比基于寄存器阵列实现的转置矩阵,该硬件结构可以实现40%左右的面积减小。相比于已有的基于single-port SRAM的转置矩阵的地址映射算法,该算法可以在不增加硬件开销的情况下,获得更高的吞吐率,从而高效的实现高清视频的实时编码。
Claims (1)
1.一种基于Single-port SRAM的转置矩阵的地址映射算法,基于矩阵分块求转置的基本运算:设对NxN矩阵A,求矩阵A的转置矩阵的步骤如下:
①把NxN矩阵划分为以MxM矩阵为基本单元的(N/M)x(N/M)块矩阵;
②对(N/M)x(N/M)的块矩阵求转置;
③对每个MxM矩阵求转置;
其中,Ahk为MxM基本单元矩阵,h,k=0,1,2,3;
基于Single-port SRAM的转置矩阵硬件结构,由如下三部分模块组成:AGM,SRAM,MAM;其中:(1)SRAM模块,是存储单元,划分为32个Bank,每个Bank的深度为5,位宽为16bit;(2)AGM模块,根据映射算法产生地址add(i)和地址badd(i),数据的映射通过地址add(i)和地址badd(i)确定,i=0,1,2…,31;add(i)是第i个Bank的输入信号,控制将数据写入第i个Bank的指定字节;badd(i)通过MAM模块对数据进行排序:写操作时通过对输入数据排序将输入数据分块并写入指定的Bank;读操作时通过对读出的数据排序实现对块矩阵的转置及正序输出;(3)MAM模块,由32个32:1的选择器MUX组成,控制信号为badd(i),对数据进行排序;
所述地址映射算法,通过add(i)和badd(i)确定,具体映射如下:
①4x4输入矩阵:算法支持同时处理两个4x4输入矩阵,4x4矩阵的转置直接通过badd实现,不经过SRAM的存储;
映射如下:
②8x8输入矩阵:8x8输入矩阵每次输入连续4行或4列,共输入两次:k=0,1;
写操作时地址映射如下:
读操作时地址映射如下:
③16x16输入矩阵:16x16输入矩阵每次输入连续2行或2列,共输入8次:k=0,1,2,...,7;写操作时地址映射如下:
读操作时地址映射如下:
④32x32输入矩阵:32x32输入矩阵每次输入1行或1列,共输入32次:k=0,1,2,...,31;写操作时地址映射如下:
其中:
⑴%:取余数的操作;M%N表示M除N的余数;
⑵/:取整操作;M/N表示M除N的商的整数部分;
⑶fN(i,j)是一个NxN的二维矩阵;
f8如下所示:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410499728.3A CN104270643B (zh) | 2014-09-25 | 2014-09-25 | 基于single‑port SRAM的转置矩阵的地址映射算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410499728.3A CN104270643B (zh) | 2014-09-25 | 2014-09-25 | 基于single‑port SRAM的转置矩阵的地址映射算法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104270643A CN104270643A (zh) | 2015-01-07 |
CN104270643B true CN104270643B (zh) | 2017-05-10 |
Family
ID=52162121
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410499728.3A Active CN104270643B (zh) | 2014-09-25 | 2014-09-25 | 基于single‑port SRAM的转置矩阵的地址映射算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104270643B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105224505B (zh) * | 2015-10-29 | 2018-05-25 | 中国人民解放军国防科学技术大学 | 基于矩阵转置操作的fft加速器装置 |
CN105376582B (zh) * | 2015-11-17 | 2018-10-16 | 复旦大学 | 适用于hevc标准的基于sram的dct输入输出数据缓存方法 |
CN109471612B (zh) * | 2018-09-18 | 2020-08-21 | 中科寒武纪科技股份有限公司 | 运算装置及方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN202940884U (zh) * | 2012-02-20 | 2013-05-15 | 深圳市深艾普科技有限公司 | 一种地址码映射装置 |
CN103678187A (zh) * | 2012-09-11 | 2014-03-26 | 北京兆易创新科技股份有限公司 | 一种微控制单元及其控制方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5700228B2 (ja) * | 2013-03-13 | 2015-04-15 | コニカミノルタ株式会社 | メモリ制御装置および画像形成装置 |
-
2014
- 2014-09-25 CN CN201410499728.3A patent/CN104270643B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN202940884U (zh) * | 2012-02-20 | 2013-05-15 | 深圳市深艾普科技有限公司 | 一种地址码映射装置 |
CN103678187A (zh) * | 2012-09-11 | 2014-03-26 | 北京兆易创新科技股份有限公司 | 一种微控制单元及其控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104270643A (zh) | 2015-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kim et al. | A high-throughput hardware design of a one-dimensional SPIHT algorithm | |
Gong et al. | New cost-effective VLSI implementation of a 2-D discrete cosine transform and its inverse | |
CN101917622B (zh) | 14bit位宽图像压缩硬件编码器 | |
CN104270643B (zh) | 基于single‑port SRAM的转置矩阵的地址映射算法 | |
CN101729893B (zh) | 基于软硬件协同处理的mpeg多格式兼容解码方法及其装置 | |
Zhou et al. | On hardware architecture and processing order of HEVC intra prediction module | |
CN101867809A (zh) | 基于脉动阵列的高速图像压缩vlsi编码方法及编码器 | |
CN104244010B (zh) | 提高数字信号变换性能的方法及数字信号变换方法和装置 | |
CN105488753B (zh) | 一种对图像进行二维傅立叶变换或反变换的方法及装置 | |
CN114022580B (zh) | 用于图像压缩的数据处理方法、装置、设备和存储介质 | |
CN101426134A (zh) | 用于视频编解码的硬件装置及方法 | |
US8942474B2 (en) | Method and system for interpolating index values of associated tiles in an image | |
Sakr et al. | Memory-efficient CMSIS-NN with replacement strategy | |
US7777751B2 (en) | Tiled memory array for full search motion estimation | |
CN102572436A (zh) | 一种基于cuda实现的帧内压缩方法 | |
CN105160622B (zh) | 基于fpga的图像超分辨率的实现方法 | |
Błażewicz et al. | Two-dimensional discrete wavelet transform on large images for hybrid computing architectures: GPU and CELL | |
CN104581174B (zh) | 一种适用于hevc标准的高吞吐率dct和idct硬件复用结构 | |
Hong et al. | A cost effective 2-D adaptive block size IDCT architecture for HEVC standard | |
Pérez et al. | High memory throughput FPGA architecture for high-definition Belief-Propagation stereo matching | |
Zhang et al. | Hardware architecture design of block-matching and 3D-filtering denoising algorithm | |
CN104602026B (zh) | 一种适用于hevc标准下编码器中全复用的重建环路结构 | |
CN103327332B (zh) | 一种hevc标准中8×8idct变换的实现方法 | |
Hu et al. | Energy-and area-efficient parameterized lifting-based 2-D DWT architecture on FPGA | |
Xie et al. | On-chip structure and addressing scheme design for 2-D block data processing in a 64-core array system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |