CN102438149B - 一种基于可重构技术的avs反变换的实现方法 - Google Patents

一种基于可重构技术的avs反变换的实现方法 Download PDF

Info

Publication number
CN102438149B
CN102438149B CN201110303689.1A CN201110303689A CN102438149B CN 102438149 B CN102438149 B CN 102438149B CN 201110303689 A CN201110303689 A CN 201110303689A CN 102438149 B CN102438149 B CN 102438149B
Authority
CN
China
Prior art keywords
data
inverse transformation
algorithm
array
reconfigurable array
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.)
Expired - Fee Related
Application number
CN201110303689.1A
Other languages
English (en)
Other versions
CN102438149A (zh
Inventor
王浩
熊一舟
何卫锋
绳伟光
毛志刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Jiaotong University
Original Assignee
Shanghai Jiaotong University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Jiaotong University filed Critical Shanghai Jiaotong University
Priority to CN201110303689.1A priority Critical patent/CN102438149B/zh
Publication of CN102438149A publication Critical patent/CN102438149A/zh
Application granted granted Critical
Publication of CN102438149B publication Critical patent/CN102438149B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Complex Calculations (AREA)
  • Image Processing (AREA)

Abstract

本发明涉及一种基于可重构技术的AVS反变换的实现方法,包括以下步骤:首先,进行算法分析,即分析算法的C代码,提取出算法的DFG,得到算法的数据传输需求;然后,根据算法分析的结果和可重构阵列的架构,对DFG进行分割和映射,设计出最优的数据传输的方案;其次,根据上面两步的结果,利用配置工具,生成可重构阵列的配置字;最后,通过ARM处理器将配置信息载入到可重构阵列的配置信息存储器中,以此将可重构阵列配置成为了一个专用于执行反变换的加速模块。本发明不需要经过复杂的芯片设计过程,可以大大的节省开发时间和开发费用,实用性很高。

Description

一种基于可重构技术的AVS反变换的实现方法
技术领域
本发明涉及的是一种嵌入式视频解码领域的方法,具体的说,涉及的是一种一种基于可重构技术的AVS反变换的实现方法。
背景技术
随着视频标准的发展,视频压缩的效果和性能越来越好,但其复杂度和计算量也大大增加。相应的,在解码端要实现实时解码,对硬件的数据并行性和计算效率提出了很高的要求。
标准(Audio and Video Coding Standard)是我国提出的具备自主知识产权的第二代信源编码标准,编码效率与H.264相当。其视频部分在2006年正式成为国家标准。
变换编码是在图像和视频压缩中去除像素的空间相关性、减少数据量的重要方法。离散余弦变换(DCT: Discrete Cosine Transform)是非常成熟的变换编码的技术。对于像素块大小为N×N的样本点,其二维DCT的定义如下:
Figure 321102DEST_PATH_IMAGE001
相应的,在解码端需要进行反离散余弦变换(IDCT: Inverse DCT), 其二维IDCT的定义如下:
Figure 238243DEST_PATH_IMAGE002
根据AVS视频标准的文档,反变换是以二维IDCT为基础改进的算法,首先是通过对系数的缩放,将浮点运算变为整数运算,其次是整个反变换以矩阵相乘的形式给出,分为水平反变换和垂直反变换两个主要步骤。变换的过程如下:
首先,对变换系数矩阵CoeffMatrix进行如下水平反变换:
Figure 475506DEST_PATH_IMAGE005
Figure 289878DEST_PATH_IMAGE006
第二步,对矩阵H ,, 中的每个系数加4再右移3位,得到矩阵。
第三步,对矩阵进行如下垂直反变换:
Figure 112341DEST_PATH_IMAGE007
其中,H表示反变换后的8×8矩阵。
Figure 943156DEST_PATH_IMAGE008
值范围应为
Figure 142056DEST_PATH_IMAGE009
Figure 873252DEST_PATH_IMAGE010
这样,就得到了供下一解码步骤使用的残差矩阵系数。
传统上,执行一个算法的方式主要有两种:通用处理器和专用集成电路(ASIC:Application Specific Integrated Circuit)。通用处理器可以通过软件编程来执行各种算法,十分灵活,但是在性能、功耗和面积上往往不能达到要求。而ASIC是针对特定算法进行设计,可以达到很高的性能,同时面积和功耗也比较小,但是不能执行别的算法,灵活性差。而且设计ASIC需要完成一系列负责的流程,研发周期很长,经常难以满足产品上市时间的要求,同时研发费用很高,特别是随着芯片工艺尺寸的缩小,成本更是成倍增加。因此对一种新的计算技术的需求十分迫切。
可重构计算技术就是在这种背景下出现的,目的是填补两者之间的空白,在性能和灵活性上做一个折中。可重构计算的核心部分是多个功能单元组成的阵列,并且有灵活的互联连接它们。根据功能单元的粒度大小,可以分为细粒度和粗粒度阵列。FPGA是一种典型的细粒度可重构阵列,以查找表为最小粒度单元,其出现较早,比较成熟,现在有着很广泛的应用。但是随着算法的规模和复杂度增加,FPGA的单元数量和互联面积剧增,同时功耗增大。粗粒度阵列一般以字长宽度的算术逻辑单元(Arithmetic Logic Unit)为最小粒度单元,非常适合大规模计算密集型的应用,例如视频编解码、图像处理、无线通信和数据加密等。本专利就是基于一个粗粒度可重构阵列的计算系统来实现AVS的反变换。
发明内容
本发明的目的是针对现有技术的不足,提出一种基于可重构技术的AVS反变换的实现方法,将AVS标准的8×8反变换映射到可重构阵列上执行,利用可重构阵列计算单元多,并行度大的优势,加速反变换的执行速度,使其达到实时解码的要求。
本发明是通过以下的技术方案实现的,本发明一种基于可重构技术的AVS反变换的实现方法,包括以下步骤:
首先,进行算法分析,即分析算法的C代码,提取出算法的数据流图(DFG:Data Flow Graph),得到算法的数据传输需求;
然后,根据算法分析的结果和可重构阵列的架构,对DFG进行分割和映射,设计出最优的数据传输的方案;
其次,根据上面两步的结果,利用配置工具,生成可重构阵列的配置字;
最后,通过ARM处理器将配置信息载入到可重构阵列的配置信息存储器中,以此将可重构阵列配置成为了一个专用于执行反变换的加速模块。
所述分析算法的C代码,具体是:采用AVS的官方参考软件(RM52J版本)中反变换函数(inv_transform_B8)的C代码,该函数主要包括了两个for循环,分别执行水平反变换和垂直反变换,函数的输入是8×8的数组,也即图像中的8×8块数据,手工提取出这两个循环体的DFG,每次循环的输入分别是1行的8个数据和1列的8个数据。水平反变换是对输入数据的每行8个数据进行8点的一维反变换和后续处理,循环8次后得到一个中间的块数据,垂直反变换是对中间数据的每一列进行8点的一维反变换和后续处理,循环8次后得到最终的输出数据,也是一个8×8的块数据。
所述对数据流图进行分割和映射,具体是指:
可重构阵列共有64个计算单元,按排列,而提取的两个DFG都有74个节点,且流图的形状不规则,再进行分割;在DFG水平方向上,最多有8个数据在并行计算,正好符合可重构阵列的水平方向计算单元个数,而在DFG垂直方向上,则超过了8行计算单元的限制,将其分割为2部分,在DFG分割的位置就会产生中间数据,其形式也是的块数据。再将水平和垂直反变换的2个DFG分割为4个DFG,且水平反变换和垂直反变换的前半部分DFG的各节点的运算是完全一致的,不同在于水平反变换每次输入1行的8个数据,垂直反变换每次输入1列的8个数据,考虑到按列1次读8个数据在此系统是不可实现的,对水平反变换的结果做矩阵转置,然后垂直反变换可以每次输入1行的数据进行计算,其结果同样需要再做一次矩阵转置,然后可以得到最终的反变换结果;
输入数据,也即CoeffMatrix,最初存储在SRAM中,在可重构阵列开始运行后,将其载入阵列的输入FIFO中,阵列的计算单元从输入FIFO中读入数据进行计算,然后将输出数据写入阵列的输出FIFO中,然后将输出数据写入SRAM的指定位置,然后继续取出下一个输入数据,重复以上过程。
所述可重构阵列是通过配置字来控制的。
所述可重构阵列的配置字,包括:数据的读取和写入模块,计算单元的数据来源和操作码,可配置的模块都有一个配置字的FIFO,运行时从中取出配置字并执行,配置字是一串二进制的数字。
所述可重构阵列的配置字,以32位为单位,大小与模块的功能有关,可配置部分包括REDL、CEDL、RCA、CEDS、CIDL、REDS、RIDL。配置字通过一个配置工具辅助手工生成,按照上一步得到的结果,得到一系列的二进制文件。
所述通过ARM处理器将配置信息载入到可重构阵列的配置信息存储器中,具体是指:配置信息存储在片上的ROM或者片外的存储设备(如SD卡)中,在系统运行开始时,主核ARM处理器执行系统的初始化程序,这些配置字二进制文件被写入到可重构阵列内专门用于存储配置字的RAM或者FIFO中,然后ARM处理器使能可重构阵列,可重构阵列读取配置字并开始计算,这样可重构阵列就专门用于MPEG2亮度插值,成为一个专用模块。
本发明所采用的可重构阵列是一个片上系统( SOC: System on Chip),主要包括了主处理器(ARM7),直接存储器存取控制器(DMAC:Direct Memory Access Controller),片上静态随机存储器(SRAM:Static Random Access Memory),两条片上总线(包括自定义的Fast Bus和工业标准总线AHB),一个可重构处理单元(RPU),ARM处理器是系统的主核,负责系统的初始化和整体控制,DMAC负责从片外的存储器读取数据,RPU是可重构处理的主要部件,AHB总线是32位系统总线,Fast总线是64位的存储器总线
AVS反变换需要处理的数据,也即系数矩阵CoeffMatrix,以
Figure 866615DEST_PATH_IMAGE011
的块为单位存储在SRAM中,若视频分辨率为D1(704×576),则每帧图像包含6336个块。RPU内部有四个相对独立的
Figure 620945DEST_PATH_IMAGE011
的计算单元阵列,为了充分发挥RPU的并行性,本发明采用的执行模式为将4个块的反变换映射到4个计算阵列上并行的执行。
整个执行过程为:首先,各个
Figure 420274DEST_PATH_IMAGE011
的系数矩阵从外部SRAM被载入到各个计算阵列中。然后,这些数据被分发到各个计算单元中,根据事先载入的配置进行计算。经过多次循环后,产生的中间数据暂存在内部的存储器中,供下一次的计算使用,无需与外部的SRAM进行交互。每个系数矩阵都需要经过6个这样的计算步骤,然后可以得到最终的结果残差矩阵ResidueMatrix。这6个步骤为:水平反变换,系数缩放1,矩阵转置,垂直反变换,矩阵转置,系数缩放2。循环操作由内部的控制器来控制。最后,将残差矩阵ResidueMatrix按照一定的格式,写入外部的SRAM中去。整个任务执行完后,RPU会向ARM发出中断,等待下一次的配置。
与现有技术相比,本发明具有以下有益效果:本发明的基于可重构技术来实现AVS反变换的方法,在RPU的寄存器传输级(RTL)平台上进行了仿真,得到了执行4个块反变换的周期数为502。同样的算法,使用软件编程,在ARM7TDMI的周期精确级平台进行了仿真,执行的周期数为12489。可以得到性能的加速比为24.88,可见使用可重构技术来执行反变换要优于纯软件的方式,可以更好的满足视频解码的实时性要求。而且相比ASIC,仅需要根据算法得到一整套配置就可以运行,不需要经过复杂的芯片设计过程,可以大大的节省开发时间和开发费用,实用性很高。
附图说明
图1为基于AVS反变换可重构实现方法所采用的可重构系统结构框图;
图2为从C代码中提取的AVS反变换的数据流图;
图3为AVS反变换执行过程中一个
Figure 943659DEST_PATH_IMAGE011
块数据传输示意图;
图4为片上SOC系统的示意图。
具体实施方式
下面对本发明的实施例作详细说明,本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
本实施例中,可重构处理单元是核心部分,其内部结构如图1所示,在RPU内部,所有存储器和先入先出队列的宽度都是256位,各个模块的数据端口也是256位,RPU和ARM通过32位AHB总线进行通信,SRAM通过一个存储器接口(EMI:External Memory Interface)和64位的Fast总线与RPU通信。下面对其简要说明:
RPU内部又分为4个可重构阵列(RCA: Reconfigurable Cell Array),每个阵列包括了64个处理单元(这64个PE合称RCA Core,是计算的主要部件,每8个为1行排列,构成8×8的形式,相邻2行的PE之间通过route进行连接,形成数据流纵向的计算网络。每个PE包含4个16位的寄存器,一个通用的ALU数据通路,可以执行算术、移位、乘法和一些特殊运算。各个PE和route具备独立的配置寄存器)(PE:Processing Element),按照
Figure 435820DEST_PATH_IMAGE012
的形式排列,这样整个RPU共有256个PE。RPU内部还包括:一个系统配置接口模块(CI:Configuration Interface)CI作为主控核ARM通过AHB总线与RPU进行数据/控制信息交互的接口,主要负责:初始化RPU内部存储器,写入配置字,写入REDL/REDS配置信息,产生清中断信号;一个SRAM数据的读取和存储模块(REDT: RCA External Data Transfer),内部包含读模块(REDL: RCA External Data Load)(REDL通过访问EMI将来自指定数据源片外SRAM的外部数据导入至RPU中单个8x8 RCA的指定数据目标ELDF)和写模块(REDS: RCA External Data Store)(REDS通过访问EMI将来自RPU中单个8×8 RCA的指定数据源ESDF中的数据导出为指定数据目标片外SRAM的外部数据),为4个RCA提供SRAM数据的传输功能;RPU中间数据存储器(MB: Macro Buffer)(MB存储单个RPU内4个8x8 RCA间的中间数据。MB中的数据由CDS写入,RIDL读出)和其数据载入模块(RIDL: RCA Internal Data Load)(RIDL将来自RPU中指定数据源的内部数据导入至RPU中单个8x8 RCA的指定数据目标。数据源为MB,数据目标为RIM或RIF);两个配置字存储器,GCCM(Global Core Context Memory)(GCGM为8KB的单端口存储器,存储某一媒体通信算法中所有算法模块的context group,该算法(如H.264算法、GPS算法)包含多个算法单元(如MC、IDCT),每个算法模块通过多组context group实现)和GCGM(Global Context Group Memory)(GCCM为50KB的单端口存储器,存储某一媒体通信算法中所有算法模块的core context,该算法(如H.264算法、GPS算法)包含多个算法单元(如MC、IDCT),每个算法模块通过多套core context实现),分别用于存储不同层次的配置字;RPU的配置解析和控制模块(RPU Context Parser解析32bit的Configuration Word(CW),CW包括8x8 RCA的全局配置信息; RPU Controller接收来自4个8x8 RCA的完成信号和RPU Context Parser的同步模式,向IRQC发出中断,并接收来自IR的中断复位信号)。每个RCA内部包括:外部输入数据的先入先出队列(ELDF: External Load Data FIFO)(ELDF大小为1KB,存储由片外SSRAM导入的数据。ELDF中的数据由REDL写入,CEDL读出)和向外部输出的先入先出队列(ESDF:External Store Data FIFO)(ESDF大小为1KB,存储向片外SSRAM导出的数据。ELDF中的数据由CDS写入,REDS读出);外部数据载入单元(CEDL:Core External Data Load)(CEDL将单个8x8 RCA内来自指定数据源的外部数据导入至指定数据目标。数据源为ELDF,数据目标为RIF或RIM);
Figure 677445DEST_PATH_IMAGE011
的PE阵列以及其输入先入先出队列(RIF:RCA Input FIFO)(RIF存储RCA输入数据)和输出先入先出队列(ROF:RCA Output FIFO)(ROF存储RCA输出数据);输出数据存储模块(CDS:Core Data Store)(CDS 将来自单个8×8 RCA内指定数据源的数据导出至内部或外部数据目标。数据源为ROF,数据目标为RIM或RIF或MB或RB或ESDF);RCA内部中间数据存储器(RIM:RCA Internal Memory)(RIM为1KB的单端口存储器,存储单个8×8RCA内的中间数据。RIM中的数据由RIDL或CEDL或CDS写入,CIDL读出)和内部数据载入单元(CIDL:Core Internal Data Load)(CIDL将单个8x8 RCA内来自指定数据源的内部数据导入至指定数据目标。数据源为RIM,数据目标为RIF);RCA本地配置字存储器(LGCM:Local Context Group Memory)(LCGM为512B的单端口存储器,存储一套context group,由多条32b的context构成)和常数存储器(CM:Const Memory)(CM存储计算中用到的常数,其输入来自CII的初始化接口,输出到Core的常数寄存器组);RCA的配置字解析模块和控制模块(RCA Context Parser解析LGCM中的context group,context group包括8×8RCA的局部配置信息,由多组32bit的配置信息组成;RCA Controller接收来自REDL、REDS、RIDL、CEDL、CEDL、CDS的完成信号,并向REDL、REDS、RIDL、CEDL、CEDL、CDS发出使能信号,向RPU Controller发出完成信号)。
如图4所示,本实施例所采用的可重构阵列是一个片上系统( SOC: System on Chip),主要包括了主处理器(ARM7),直接存储器存取控制器(DMAC:Direct Memory Access Controller),片上静态随机存储器(SRAM:Static Random Access Memory),两条片上总线(包括自定义的Fast Bus和工业标准总线AHB),一个可重构处理单元(RPU),ARM处理器是系统的主核,负责系统的初始化和整体控制,DMAC负责从片外的存储器读取数据,RPU是可重构处理的主要部件,AHB总线是32位系统总线,Fast总线是64位的存储器总线
本实施例中,通过分析AVS的参考软件(RM52J版本)中反变换函数(inv_transform_B8)的C代码,从中手工提取出数据流图,如图2所示(图中,水平反变换和垂直反变换的流图的数据依赖关系完全一致,只是在数据的后续处理时常系数有所不同,水平反变换在DFG的第9行做加法时常数为64,第11行右移时常数为7,而垂直反变换这两个常数分别为4和3),其中b[0]到b[7]是块数据一行的8个数据,每个流图都需要循环计算8次才能处理完一个
Figure 516351DEST_PATH_IMAGE011
块数据;。C代码是经过优化的,可以在64个节点之内完成水平或垂直反变换。因为进行了矩阵转置,水平反变换和垂直反变换的流图是一致的,这样最终得到四个数据流图,分别为水平(或垂直)反变换,水平反变换系数缩放,矩阵转置,垂直反变换系数缩放。从数据流图上得到,每次计算时阵列需要的输入数据都是一个8×8的数据块以及一些常数,常数都通过ARM处理器事先写入CM中,在运行过程中不变,经过规划之后,一个
Figure 159822DEST_PATH_IMAGE011
的块数据在RPU中的数据传输流程如图3所示(各个FIFO中阴影部分为有效数据部分,每一行存储8个数据共128位),详细过程为:
1、RPU通过REDL将4个连续的系数矩阵数据写入4个RCA的ELDF中去,每个RCA得到1个8×8块的数据,每个数据为16位的整数。REDL配置为2D取数模式,数据长度为16 bytes,高度为8行,不拼接写入ELDF中,则系数矩阵在ELDF中占据了8行的空间,每行的长度(128 bits)为ELDF宽度(256 bits)的一半。
、每个RCA通过CEDL将ELDF中的8行数据写入RIF中,存储格式和在ELDF中相同。
、每个RCA的64个PE根据水平反变换的配置信息,对RIF中的块数据的每一行进行水平反变换,共循环8次,得到一个
Figure 557305DEST_PATH_IMAGE011
的第一个中间块数据,也就是定义中的H ,,,写入ROF中,存储格式与在ELDF中相同。
、每个RCA通过CDS将中间块数据H ,,从ROF写入RIM中,存储格式是8行128bits的数据,占据了RIM中地址为0~7的字。
、每个RCA通过CIDL将RIM中的中间块数据
写入到RIF中,存储格式与在ELDF中相同。
、每个RCA将配置切换为系数缩放1的配置信息,对RIF中的中间块数据
进行系数缩放,得到第二个中间块数据,也即定义中的,写入ROF中,存储格式与在ELDF中相同。
、每个RCA通过CDS将中间块数据从ROF写入RIM中,存储格式是8行128bits的数据,取代了之前在RIM地址为0~7的中间数据。
、每个RCA通过CIDL将RIM中的中间块数据写入到RIF中,存储格式与在ELDF中相同。
、每个RCA将配置切换为矩阵转置的配置信息,对RIF中的中间块数据进行矩阵转置,这样行列对调,适于垂直反变换时FIFO的取数模式。转置后得到第三个中间块数据
Figure 925335DEST_PATH_IMAGE014
,写入ROF中,存储格式与在ELDF中相同。
、每个RCA通过CDS将中间块数据
Figure 696982DEST_PATH_IMAGE015
从ROF写入RIM中,存储格式是8行128bits的数据,取代了之前在RIM地址为0~7的中间数据。
、每个RCA通过CIDL将RIM中的中间块数据
Figure 709938DEST_PATH_IMAGE015
写入到RIF中,存储格式与在ELDF中相同。
、每个RCA将配置切换为垂直反变换的配置信息,对RIF中的中间块数据
Figure 592443DEST_PATH_IMAGE015
的每一行进行垂直反变换,共循环8次,得到第四个中间块数据
,写入ROF中,存储格式与在ELDF中相同。
、每个RCA通过CDS将中间块数据
Figure 451257DEST_PATH_IMAGE017
从ROF写入RIM中,存储格式是8行128bits的数据,取代了之前在RIM地址为0~7的中间数据。
、每个RCA通过CIDL将RIM中的中间块数据
Figure 889191DEST_PATH_IMAGE017
写入到RIF中,存储格式与在ELDF中相同。
、每个RCA将配置切换为矩阵转置的配置信息,对RIF中的中间块数据
进行矩阵转置,转置后得到第五个中间块数据,也即定义中的
Figure 907012DEST_PATH_IMAGE018
,写入ROF中,存储格式与在ELDF中相同。
、每个RCA通过CDS将中间块数据H从ROF写入RIM中,存储格式是8行128bits的数据,取代了之前在RIM地址为0~7的中间数据。
、每个RCA通过CIDL将RIM中的中间块数据写入到RIF中,存储格式与在ELDF中相同。
、每个RCA将配置切换为计算系数缩放2的配置信息,对RIF中的中间块数据进行计算,得到最终的结果残差矩阵ResidueMatrix,也即定义中的
Figure 8009DEST_PATH_IMAGE020
,写入ROF中,存储格式与在ELDF中相同。
、每个RCA通过CDS将残差矩阵ResidueMatrix从ROF写入ESDF中,存储格式与在ELDF中相同。
、RPU通过REDS将4个RCA的ESDF中的残差矩阵ResidueMatrix写入到SRAM中去,取代原来的系数矩阵的数据。
以上所述,仅是本发明的较佳实施实例而已,并非对本发明做任何形式上的限制,任何未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施实例所作的任何简单修改、等同变化与修饰,均属于本发明技术方案的范围。

Claims (2)

1.一种基于可重构技术的AVS反变换的实现方法,其特征在于,包括以下步骤:
首先,进行算法分析,即分析算法的C代码,提取出算法的数据流图,得到算法的数据传输需求;
然后,根据算法分析的结果和可重构阵列的架构,对数据流图DFG进行分割和映射,设计出最优的数据传输的方案;
其次,根据上面两步的结果,利用配置工具,生成可重构阵列的配置字;
最后,通过ARM处理器将配置信息载入到可重构阵列的配置信息存储器中,以此将可重构阵列配置成为了一个专用于执行反变换的加速模块;
所述分析算法的C代码,具体是:采用AVS的官方参考软件RM52J_R1版本中的inv_transform_B8反变换函数的C代码,该函数主要包括了两个for循环,分别执行水平反变换和垂直反变换,函数的输入是8×8的数组,也即图像中的8×8块数据,手工提取出这两个循环体的DFG,每次循环的输入分别是1行的8个数据和1列的8个数据,水平反变换是对输入数据的每行8个数据进行8点的一维反变换和后续处理,循环8次后得到一个中间的块数据,垂直反变换是对中间数据的每一列进行8点的一维反变换和后续处理,循环8次后得到最终的输出数据,也是一个8×8块数据;
所述对数据流图进行分割和映射,具体是指:
可重构阵列共有64个计算单元,按8×8排列,而提取的两个DFG都有74个节点,且流图的形状不规则,再进行分割;在DFG水平方向上,最多有8个数据在并行计算,正好符合可重构阵列的水平方向计算单元个数,而在DFG垂直方向上,则超过了8行计算单元的限制,将其分割为2部分,在DFG分割的位置就会产生中间数据,其形式也是8×8的块数据,再将水平和垂直反变换的2个DFG分割为4个DFG,且水平反变换和垂直反变换的前半部分DFG的各节点的运算是完全一致的,不同在于水平反变换每次输入1行的8个数据,垂直反变换每次输入1列的8个数据,考虑到按列1次读8个数据在此系统是不可实现的,对水平反变换的结果做矩阵转置,然后垂直反变换可以每次输入1行的数据进行计算,其结果同样需要再做一次矩阵转置,然后可以得到最终的反变换结果;
输入数据,也即系数矩阵CoeffMatrix,最初存储在SRAM中,在可重构阵列开始运行后,将其载入阵列的输入FIFO中,阵列的计算单元从输入FIFO中读入数据进行计算,然后将输出数据写入阵列的输出FIFO中,然后将输出数据写入SRAM的指定位置,然后继续取出下一个输入数据,重复以上过程。
2.根据权利要求1所述一种基于可重构技术的AVS反变换的实现方法,其特征是,所述可重构阵列是通过配置字来控制的。
CN201110303689.1A 2011-10-10 2011-10-10 一种基于可重构技术的avs反变换的实现方法 Expired - Fee Related CN102438149B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110303689.1A CN102438149B (zh) 2011-10-10 2011-10-10 一种基于可重构技术的avs反变换的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110303689.1A CN102438149B (zh) 2011-10-10 2011-10-10 一种基于可重构技术的avs反变换的实现方法

Publications (2)

Publication Number Publication Date
CN102438149A CN102438149A (zh) 2012-05-02
CN102438149B true CN102438149B (zh) 2014-06-18

Family

ID=45986001

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110303689.1A Expired - Fee Related CN102438149B (zh) 2011-10-10 2011-10-10 一种基于可重构技术的avs反变换的实现方法

Country Status (1)

Country Link
CN (1) CN102438149B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104615496B (zh) * 2015-01-30 2018-08-24 上海交通大学 基于多层次异构结构的可重构架构的并行扩展方法
CN105847840B (zh) * 2015-11-18 2018-12-07 西安邮电大学 一种用于高效视频编码反变换运算的并行结构构造方法
CN105867994A (zh) * 2016-04-20 2016-08-17 上海交通大学 一种用于粗粒度可重构架构编译器的指令调度优化方法
CN106484657A (zh) * 2016-11-18 2017-03-08 成都嘉纳海威科技有限责任公司 一种可重构的信号处理器asic架构及其重构方法
CN109274497A (zh) * 2018-08-30 2019-01-25 无锡凯特微电子有限公司 一种基于可重构阵列的sm3算法的映射方法
CN109150500A (zh) * 2018-08-30 2019-01-04 无锡凯特微电子有限公司 一种基于可重构阵列的Blowfish算法的映射方法
CN113254390B (zh) * 2021-06-09 2021-10-29 千芯半导体科技(北京)有限公司 可重构计算结构、计算方法及硬件架构

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1744093A (zh) * 2004-08-30 2006-03-08 三洋电机株式会社 数据流图处理方法及具备可重构电路的处理装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1744093A (zh) * 2004-08-30 2006-03-08 三洋电机株式会社 数据流图处理方法及具备可重构电路的处理装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
孙康.可重构计算相关技术研究.《中国博士学位论文全文数据库 信息科技辑(2007年第6期)》.2007, *

Also Published As

Publication number Publication date
CN102438149A (zh) 2012-05-02

Similar Documents

Publication Publication Date Title
US11698773B2 (en) Accelerated mathematical engine
CN102438149B (zh) 一种基于可重构技术的avs反变换的实现方法
Khailany et al. Imagine: Media processing with streams
Kim et al. FPGA-based CNN inference accelerator synthesized from multi-threaded C software
CN111414994B (zh) 一种基于FPGA的Yolov3网络计算加速系统及其加速方法
CN109117947A (zh) 轮廓检测方法及相关产品
JP2010521728A (ja) データ圧縮のための回路及びこれを用いるプロセッサ
CN102253921B (zh) 一种动态可重构处理器
US20220206796A1 (en) Multi-functional execution lane for image processor
US20210241806A1 (en) Streaming access memory device, system and method
CN102340668B (zh) 一种基于可重构技术的mpeg2亮度插值的实现方法
US11409840B2 (en) Dynamically adaptable arrays for vector and matrix operations
Nguyen et al. An fpga-based convolution ip core for deep neural networks acceleration
Kestur et al. SHARC: A streaming model for FPGA accelerators and its application to saliency
Shahbahrami et al. FPGA implementation of parallel histogram computation
CN116888591A (zh) 一种矩阵乘法器、矩阵计算方法及相关设备
Müller et al. NEROvideo: A general-purpose CNN-UM video processing system
Kojima et al. Refinements in data manipulation method for coarse grained reconfigurable architectures
Shee et al. Architectural exploration of heterogeneous multiprocessor systems for JPEG
CN116662730B (zh) 一种基于FPGA的Cholesky分解计算加速系统
Yang et al. Configuration approaches to enhance computing efficiency of coarse-grained reconfigurable array
Murthy Optimized Sparse Matrix Operations and Hardware Implementation using FPGA
CN118171022A (zh) 一种基于fpga的拉普拉斯方程电磁解算算法
Gil et al. Accelerating a modified Gaussian pyramid with a customized processor
Le A new general purpose systolic array for matrix computations

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140618

Termination date: 20161010

CF01 Termination of patent right due to non-payment of annual fee