CN101360244A - Jpeg2000压缩算法中的dsp高效并行控制方法 - Google Patents
Jpeg2000压缩算法中的dsp高效并行控制方法 Download PDFInfo
- Publication number
- CN101360244A CN101360244A CN 200810211246 CN200810211246A CN101360244A CN 101360244 A CN101360244 A CN 101360244A CN 200810211246 CN200810211246 CN 200810211246 CN 200810211246 A CN200810211246 A CN 200810211246A CN 101360244 A CN101360244 A CN 101360244A
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- coding
- dsp
- control method
- 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.)
- Pending
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
本发明属于信息技术中的图像压缩领域,特别涉及JPEG2000压缩算法中的DSP高效并行控制方法。从第一存储器中读入的当前数据,进行位平面扫描处理后将结果写入第二存储器,同时,将上一组数据的从第三存储器中搬移到外部缓存;从第二存储器中读出数据,进行算数编码处理后将结果写入第三存储器中,同时,将下一组数据从外部缓存中搬移到第一存储器中。本发明使得EBC算法运算和数据搬移并行进行。本发明在执行任何一个循环的过程中,均能执行搬移过程,而且搬移过程是在后台执行的,不占用CPU的处理时间,等效于不花费时间在数据搬移过程上,从而实现“零时间数据搬移”。
Description
技术领域
本发明属于信息技术中的图像压缩领域,特别涉及JPEG2000压缩算法中的DSP高效并行控制方法。
背景技术
JPEG2000作为新一代静止图像压缩标准,可以在追求高倍压缩比的同时恢复出高品质的图像,在星载遥1感图像压缩领域有很大的应用潜力。然而,JPEG2000压缩算法复杂度高、编码速度慢,其实时实现对硬件的性能要求很高。可供选择的器件有FPGA和DSP两种,但其编码算法中的诸如多重if-then-else结构,不利于FPGA实现,所以通常选择高性能的DSP来实现。
高性能DSP的强大处理能力不仅体现在其高速的内核处理频率,更体现在其可丰富的可并行执行单元、超带宽数据读写能力和高效EDMA数据传输方式。但基于JPEG2000压缩算法的标准框架下的算法结构不利于DSP的高效并行实现,限制了DSP处理能力的发挥。
例如,DSP来实现JPEG2000的EBC(Empty Base Class,空基类)算法,会涉及到如下所示两个数据搬移过程:
过程1:将小波数据块从外部缓存搬移到DSP内部缓存;
过程2:将编码后的数据DSP的内部缓存搬移到外部缓存。
如图1所示,为在JPEG2000的标准中,EBC算法的实现流程图。位平面扫描按照从高到低的顺序扫描完小波系数块的所有位平面,在每一个位平面上需要对一个小波系数块的全部样本扫描,每次扫描四个样本,然后更新上下文并输出符号类,算术编码器编码输出的符号类得到相应的码流。
搬移过程1读出小波系数块后,存放在DSP的存储器A中,算术编码后将码流存放在DSP的存储器B中,由搬移过程2取走。从拆上述流程可以看出,EBC算法分多次循环完成,扫描算法与编码算法串行于循环内,即每次循环既有扫描算法,又有算术编码。每次循环对存储器A和B均有操作,但仅是对其部分存储区操作,另一个存储区处于闲置状态,而两次搬移过程分别是一次将数据全部写入和读出存储器A和B,因此,完成一次搬移过程1后,需要等到扫描算法、算术编码和搬移过程2全部完成后,才能够开始下一次的搬移;同样,完成一次搬移过程2后,需要等到搬移过程1、扫描算法和算术编码和全部完成后,才能够开始下一次的搬移。两个搬移过程与算法运算串行执行,因此对应DSP和存储器利用率不高。
此外,在位平面扫描过程中,为了扫描1列样本,需要将存储器中该列的4个小波数据读入到DSP的内部寄存器中进行处理。通常的操作是,分4次逐一将4个样本读入DSP的寄存器。DSP数据存储器读写指令支持双字读写,即支持64位读写,具备一次读写4个16位小波数据的潜能,因此DSP的处理能力没有得到充分的利用。
发明内容
本发明克服了上述缺点,提供了一种JPEG2000压缩算法中的DSP高效并行控制方法,使得EBC算法中的数据搬移与算法运算并行执行。
本发明解决其技术问题所采取的技术方案是:一种JPEG2000压缩算法中的DSP高效并行控制方法,从第一存储器中读入的当前数据,进行位平面扫描处理后将结果写入第二存储器,同时,将上一组数据的从第三存储器中搬移到外部缓存;
从第二存储器中读出数据,进行算数编码处理后将结果写入第三存储器中,同时,将下一组数据从外部缓存中搬移到第一存储器中。
所述位平面扫描过程中,将编码图像经小波变换后得到的小波数据块跨行存储,重新分配地址,使每列的样本地址空间连续。
所述算数编码过程,包括
对位平面数据中的所有的样本点进行独立符号编码;
对编码后的位平面数据进行通道编码。
所述通道编码中包括重要性编码通道和清除编码通道。
本发明在对嵌入在JPEG2000位平面编码中通道编码和算术编码拆分的基础上,利用DSP的EDMA传输方式,设计一种高效数据搬移方法,使得EBC算法中的数据搬移与算法运算并行执行。此外,对小波数据存储结构优化,使JPEG2000位编码算法中位于同一个编码列的4个样本所处的存储空间连续,使DSP能够发挥其超带宽读写数据的能力,利用一条指令读取小波数据块中的8个样本,大大提高数据读取效率。其次,设计一种独立符号编码方法,将符号编码模块从JPEG2000位平面编码的重要性编码通道和清除编码通道独立出来,单独编码,使得在整个JPEG2000位平面编码算法结构中,DSP能够建立高效的软件流水。本发明适用于大容量、高分辨率的星载遥感图像JPEG2000压缩领域,针对JPEG2000压缩算法复杂度高、运算量大难于实时实现,本发明对JPEG2000压缩算法进行了改进,使之能在具有多个并行处理单元的高性能DSP上高效并行运行,算法的实现时间可大幅减少。
附图说明
图1为现有技术中EBC算法流程图;
图2为本发明EBC算法流程图;
图3为本发明的算法实现示意图;
图4为本发明位平面扫描过程中小波数据存储结构优化原理示意图;
图5为所述位平面编码原理图;
图6为编码块内扫描顺序示意图;
图7为独立符号编码的实现流程图。
具体实施方式
本发明公开了一种DSP来实现JPEG2000的EBC算法,在执行EBC算法之前,首先要在DSP内开辟一个存储器C,在此基础上,把实现EBC算法的一个循环分成两个循环:扫描循环和编码循环。
拆分后算法流程如图2所示,扫描循环(即位平面扫描)从存储器A中读入数据,处理后将结果写入存储器C;而编码循环(即位平面算数编码)从存储器C中读出数据,处理后将结果写入存储器B中。对于同一组小波数据块而言,编码循环要等到扫描循环完成后才开始,因此,当前数据的扫描循环执行的时间段内可同时执行上一组数据的搬移过程2。同样,当前数据的编码循环执行的时间段内也可以同时执行下一组数据的搬移过程1。循环算法的每一次循环中不同时对存储器A和B操作,让扫描算法与编码算法串行于循环外;而且DSP的EDMA(Extend Direct Memory Access扩展的直接存储器访问)搬移方式可以保证搬移过程能够在后台独立运行。
算法拆分后,实现结构如图3所示,虚线框表示搬移过程在后台执行,不占用CPU时间。这两个循环的DSP代码串行执行,即扫描循环完成一个编码块的所有扫描任务后,DSP程序立即开始编码循环。同理,执行完编码循环后,DSP重新开始扫描循环。因此,在对嵌入在JPEG2000位平面编码中的算术编码和通道编码过程进行拆分的基础上,结合DSP的EDMA数据传输方式,形成一种新的数据搬移策略,使得EBC算法运算和数据搬移并行进行。本发明在执行任何一个循环的过程中,均能执行搬移过程,而且搬移过程是在后台执行的,不占用CPU的处理时间,等效于不花费时间在数据搬移过程上,从而实现“零时间数据搬移”。
在上述位平面扫描过程中,由于DSP数据存储器读写指令支持双字读写,即支持64位读写,而双字读写的前提是地址连续,然而每列中的4个样本地址是非连续的,不符合双字读写条件,因为双字读写要求存储空间连续。为了适应DSP双字读写,本发明提出一种小波数据存储结构优化方法,如图4所示,图中的1至16个数字表示存储空间地址,由于按列读取是JPEG2000标准中,EBC编码的最基本要求,因此可以将小波数据的存放结构由按行存储改变为按列存储,为了使每列样本的地址空间连续,在做完小波变换后,输入的图像数据进行分块(编码块)的过程中,对小波系数进行重排,即重新分配地址。优化后,每列的4个样本地址空间连续。如图中第二列的样本A、B、C、D原来的存储空间分别为2、6、10、14,优化后的存储空间分别为5、6、7、8。采用新的存储结构后,DSP读取1列样本由原来的4条指令变为1条读指令,节省了75%的数据读取时间。
所述位平面编码的原理如图5中所示,位平面依次进入1、2、3三个编码通道,进行通道编码,这三个通道分别是:重要性传播通道(Significance Propagation Pass,SPP)、幅度细化通道(MagnitudeRefnement Pass,MRP)和清除通道(Cleanup Pass,CP)。通道编码实际上是一个对位平面所有样本点遍历扫描并编码的过程。如图6所示为编码块内扫描顺序示意图,位平面列方向上每4个相邻的点称为一个编码列,处在同一水平方向上的编码列构成一个带,位平面扫描时,列内对点从上到下,带内对列从左到右,编码块内对带从上到下进行Z字型遍历扫描。扫描过程中,样本点根据其上下文窗口信息决定是否需要在该通道中进行编码。在通道编码过程中,编码通道只是提供一个入口,实际的编码操作是通过调用4个编码模块来完成的,这4个编码模块分别是零编码模块(Zero Coding,ZC)、符号编码模块(SignCoding,SC)、幅度细化模块(Magnitude Refinement Coding,MRC)和行程编码模块(Run Length Coding,RLC)。其中,SPP调用SC模块和ZC模块,MRP调用MRC模块,CP调用SC、ZC和RLC三个模块。编码通道根据样本的上下文窗口信息调用相应的编码模块来处理,并输出符号类型和数据对至自适应MQ编码器进行编码。在JPEG2000标准中,上下文模型由19类符号组成,其中9类由ZC模块产生,5类由SC模块产生,3类由MRC模块产生,另外两类由RLC模块产生。
从图5可知,符号编码模块会在重要性编码通道和清除编码通道中被调用,其调用条件为:当前处理的样本点从不重要变为重要,即处理某个样本点的最高非零比特位(即在DSP中有归一化指令,该指令操作返回的结果即是最高非零比特位的位置)。这就意味着一个编码块的所有样本点有且只有一次机会调用该编码模块。然而,在JPEG2000标准中,符号编码模块嵌入在通道编码中,即在重要性编码通道和清除编码通道中存在如下的条件判断,其中SIG表示当前样本点的重要性标志:
If SIG:0→1
SC(符号编码) (1)
其中,式(1)中的SC要么为一条函数调用语句,要么为一段函数代码。根据DSP的软件流水机制可知,循环中有函数调用或循环代码过长都会破坏软件流水。因此,首先可明确SC不能为函数调用,只能是函数代码。然而,SC以函数代码出现时,在重要性编码和清除编码两个通道编码中,DSP的软件流水因代码过长而无法建立。为此,本发明在所述为平面编码过程中,采用一种独立符号编码方法,在进行通道编码前,对所有样本点进行独立符号编码,并将编码得到的符号类型数据对(CX,D)缓存在DSP内部存储器中,当重要性编码通道和清除编码通道中需要符号编码时,只需要从事先缓存好的(CX,D)读出即可。因此,前面的条件判断可简化为
If SIG:0→1
READ(CX,D) (2)
上述独立符号编码方法,如图7中所示,为独立符号编码的实现流程,用x(i,j)和d(i,j)分别代表样本C(i,j)的正负性与重要性,CX和D分别代表当前样本符号编码输出的上下文符号类型与数据,其中i,j分别代表小波系数块中的第i行和第j列对应的小波系数。定义
xh(i,j)=x(i,j-1)d(i,j-1)+x(i,j+1)d(i,j+1) (3)
xv(i,j)=x(i-1,j)d(i-1,j)+x(i+1,j)d(i+1,j) (4)
Xh=sign(xh)min{1,|xh|},Xv=sign(xv)min{1,|xv|} (5)
xh、xv分别为样本x的水平相邻元素、垂直相邻元素的重要性及样本值信息的一个综合表述,在通过直接查表求得CX和xflip的值,D的值根据x、xflip的符号确定,若二者异号则符号编码值为0,否则为1。flip等于-1表示为负,1表示为正。下表为符号编码的上下文分类与xflip的对应表
Xh | 1 | 1 | 1 | 0 | 0 | 0 | -1 | -1 | -1 |
Xv | 1 | 0 | -1 | 1 | 0 | -1 | 1 | 0 | -1 |
CX | 14 | 13 | 12 | 11 | 10 | 11 | 12 | 13 | 14 |
xflip | 1 | 1 | 1 | 1 | 1 | -1 | -1 | -1 | -1 |
从符号编码规则可知,对一个样本进行符号编码时需要用到的参数为:该样本左边、右边、上面和下面4个相邻样本的重要性与符号以及当前样本本身的符号。要得到5个样本点的符号,取出它们的最高比特为位即可。要获得当前样本4个相邻样本的重要性,可以通过比较当前样本与其4个相邻样本的最高非零比特位的位置获得,规则如下,其中P表示样本的最高非零比特位的位置,SIG为重要性标志,下标中的L、T、R、B和C分别表示当前样本的左、上、右、下4个相邻样本及其本身:
在实际程序设计中,为了简化式(3)(4)(5)中的计算,将欲查找的列表直接做成CX、xflip与x(i,j-1)、x(i,j+1)、x(i-1,j)、x(i+1,j)、d(i,j-1)、d(i,j+1)、d(i-1,j)和x(i+1,j)的真值表。这样,只需经过一次查找256长度真值表的操作就可得到当前样本符号编码输出的上下文符号类型以及xflip的值。
以上对本发明所提供的JPEG2000压缩算法中的DSP高效并行控制方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (4)
1.一种JPEG2000压缩算法中的DSP高效并行控制方法,从第一存储器中读入的当前数据,进行位平面扫描处理后将结果写入第二存储器,同时,将上一组数据的从第三存储器中搬移到外部缓存;
从第二存储器中读出数据,进行算数编码处理后将结果写入第三存储器中,同时,将下一组数据从外部缓存中搬移到第一存储器中。
2.根据权利要求1所述的JPEG2000压缩算法中的DSP高效并行控制方法,其特征在于:所述位平面扫描过程中,将编码图像经小波变换后得到的小波数据块跨行存储,重新分配地址,使每列的样本地址空间连续。
3.根据权利要求1所述的JPEG2000压缩算法中的DSP高效并行控制方法,其特征在于:所述算数编码过程,包括
对位平面数据中的所有的样本点进行独立符号编码;
对编码后的位平面数据进行通道编码。
4.根据权利要求3所述的JPEG2000压缩算法中的DSP高效并行控制方法,其特征在于:所述通道编码中包括重要性编码通道和清除编码通道。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810211246 CN101360244A (zh) | 2008-09-19 | 2008-09-19 | Jpeg2000压缩算法中的dsp高效并行控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810211246 CN101360244A (zh) | 2008-09-19 | 2008-09-19 | Jpeg2000压缩算法中的dsp高效并行控制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101360244A true CN101360244A (zh) | 2009-02-04 |
Family
ID=40332565
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200810211246 Pending CN101360244A (zh) | 2008-09-19 | 2008-09-19 | Jpeg2000压缩算法中的dsp高效并行控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101360244A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102695060A (zh) * | 2012-06-13 | 2012-09-26 | 西安电子科技大学 | 基于jpeg2000标准的自适应存储器和存储方法 |
CN103997648A (zh) * | 2014-06-11 | 2014-08-20 | 中国科学院自动化研究所 | 一种基于dsp的jpeg2000标准图像快速解压缩系统及方法 |
CN106849957A (zh) * | 2016-12-30 | 2017-06-13 | 北京联想核芯科技有限公司 | 编码方法和装置 |
CN110322523A (zh) * | 2018-03-31 | 2019-10-11 | 深圳忆联信息系统有限公司 | 编码方法和装置 |
-
2008
- 2008-09-19 CN CN 200810211246 patent/CN101360244A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102695060A (zh) * | 2012-06-13 | 2012-09-26 | 西安电子科技大学 | 基于jpeg2000标准的自适应存储器和存储方法 |
CN102695060B (zh) * | 2012-06-13 | 2014-08-06 | 西安电子科技大学 | 基于jpeg2000标准的自适应存储器和存储方法 |
CN103997648A (zh) * | 2014-06-11 | 2014-08-20 | 中国科学院自动化研究所 | 一种基于dsp的jpeg2000标准图像快速解压缩系统及方法 |
CN103997648B (zh) * | 2014-06-11 | 2017-04-05 | 中国科学院自动化研究所 | 一种基于dsp的jpeg2000标准图像快速解压缩系统及方法 |
CN106849957A (zh) * | 2016-12-30 | 2017-06-13 | 北京联想核芯科技有限公司 | 编码方法和装置 |
CN110322523A (zh) * | 2018-03-31 | 2019-10-11 | 深圳忆联信息系统有限公司 | 编码方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Huang et al. | ecnn: A block-based and highly-parallel cnn accelerator for edge inference | |
CN111178518A (zh) | 一种基于fpga的软硬件协同的加速方法 | |
CN111459877A (zh) | 基于FPGA加速的Winograd YOLOv2目标检测模型方法 | |
CN102176750B (zh) | 高性能自适应二进制算术编码器 | |
CN102067088A (zh) | 多处理器 | |
CN101360244A (zh) | Jpeg2000压缩算法中的dsp高效并行控制方法 | |
Wiangtong et al. | Hardware/software codesign: a systematic approach targeting data-intensive applications | |
CN101192303B (zh) | 适用于Jpeg2000标准的高速比特平面解码方法及电路 | |
WO2020073801A1 (zh) | 一种3d图像处理中数据读写方法及系统、存储介质及终端 | |
CN1444154A (zh) | 多处理机系统 | |
CN111783933A (zh) | 一种对深度卷积神经网络计算加速的、结合主存储器的数据载入装置的硬件电路设计及方法 | |
CN106254883A (zh) | 一种视频解码中的反变换方法和装置 | |
CN102300092B (zh) | 一种基于提升格式的9/7小波逆变换的图像解压缩方法 | |
CN1272931A (zh) | 图像处理装置 | |
CN101534439A (zh) | 一种低功耗并行的小波变换的vlsi结构 | |
US20230214340A1 (en) | Data moving method for direct memory access apparatus | |
CN102012802B (zh) | 面向向量处理器数据交换的方法及装置 | |
CN103235717A (zh) | 具有多态指令集体系结构的处理器 | |
CN102333222B (zh) | 二维离散小波变换电路及应用该电路的图像压缩方法 | |
CN101710994B (zh) | 一种用于视频解码的方法和系统 | |
CN101488225A (zh) | 一种位平面编码器的vlsi系统架构 | |
CN102054107A (zh) | 集成电路下层硬件映射方法、时空图生成方法及装置 | |
CN1319276C (zh) | 一种减小在线图像压缩数据缓冲区大小的缓冲区读写方法 | |
CN111340224B (zh) | 适用于低资源嵌入式芯片的cnn网络的加速设计方法 | |
CN112579089B (zh) | 异构众核数据重用方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20090204 |