CN101365138A - 一种jpeg2000图像压缩处理*** - Google Patents
一种jpeg2000图像压缩处理*** Download PDFInfo
- Publication number
- CN101365138A CN101365138A CN 200810223915 CN200810223915A CN101365138A CN 101365138 A CN101365138 A CN 101365138A CN 200810223915 CN200810223915 CN 200810223915 CN 200810223915 A CN200810223915 A CN 200810223915A CN 101365138 A CN101365138 A CN 101365138A
- Authority
- CN
- China
- Prior art keywords
- wavelet coefficient
- coefficient
- wavelet
- dsp
- unit
- 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.)
- Granted
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
一种JPEG2000图像压缩处理***,图像小波变换单元按照JPEG2000算法,将原始图像分解成小波系数块后送存储器;小波系数读取控制单元按设定的扫描顺序将系数块从存储器中读出并送小波系数缓存单元;小波系数编码单元由DSP组成,对系数块进行编码,每个DSP发出数据交换请求并送优先级控制单元进行优先级排序,各DSP按照优先级顺序从小波系数缓存单元中读出对应的系数块;小波系数编码单元将编码后的系数码块送至编码系数缓存单元;码流优化截取单元从编码系数缓存单元读取所有系数块及对应的截取点和失真值,根据Lagrange算法寻找规定压缩码率下失真最小的一组截取点并截取每个系数块的部分码流,经过RS编码后与辅助信息拼接后向外部输出。
Description
技术领域
本发明涉及一种图像压缩处理***,特别是一种采用多DSP和多FPGA实现的,面向遥感图像高保真、高可靠、实时处理的,基于JPEG2000标准的图像压缩处理***。
背景技术
JPEG2000是国际标准化组织静止图像编码组在2000年制定并颁布的静止图像压缩标准。JPEG2000改变了传统JPEG标准以DCT变换为核心的变换方法,采用了具有能量特性更为集中的小波变换方法。JPEG2000的技术核心是离散小波变换和率失真优化截取内嵌码块编码算法EBCOT(EmbeddedBlock Coding with Optimized Truncation)。JPEG2000算法的基本结构如图1所示。在进行离散小波变换之前,对图像进行一些适当的预处理,主要包括:对大图像进行分块(Tile)处理,每块独立编码,减少***的复杂性并有利于并行处理;进行电平移位防止数据溢出;对彩色图像或者多分量图像进行分量变换(可逆或者不可逆的)等,以便于图像压缩。EBCOT算法分为T1和T2两个编码器。T1由内嵌比特平面编码和MQ算术编码器组成,而T2编码器完成率控制和码流组织。EBCOT编码时,将各小波子带划分为更小的码块(如64×64),以码块(Code-Block)为单位独立进行T1编码。不同的码块产生的比特流长度是不相同的,它们对恢复图像质量的贡献也是不同的。因此对于所***块产生的比特流,T2采用了率失真优化技术进行后压缩处理(PCRD:PostCompression Rate Distortion),即对各码块的码流按照对恢复图像的质量贡献分层,完成码流的率控制和组织。
基于JPEG2000标准的图像压缩处理***最具代表性的有AD公司推出的基于JPEG2000算法的专用视频和静止图像压缩芯片ADV202。该芯片内部集成有一个32位的RISC处理器作为***控制器;小波变换部分可以实现6级97或53小波滤波器;三个熵编码模块完成量化、率失真优化、基于上下文的编码,并将数据按照包和层的格式进行编排,最后形成JPEG2000的编码数据流。但是该芯片只有工业级的质量等级,无法满足航天遥感图像等需要高可靠、长寿命应用场合的使用要求。
目前,JPEG2000标准的图像压缩处理采用非专用芯片的硬件***比较少。文献“Development of Image Processing System Based on DSP and FPGA;Duan Jinghong,2-4244-1135-1/07/2007 IEEE”公开了一种图像压缩处理***,该***采用单片DSP和单片FPGA的实现方案,其实现速度较低,仅为262.144K像元/秒。专利号为CN1216485C,名称为“适用于JPEG2000的高速EBCOT编码器”的专利文献公开了一种图像处理***编码器,其中所述的嵌入式平台是适合于网络传输的硬件***,强调的是数据采集、数据格式和满足传输协议,而对图像质量、处理速度均没有描述。专利号为CN1313976C,名称为“基于嵌入式平台的JPEG2000图像编码与传输方法和***”公开了一种图像处理***,其所述的高速EBCOT编码器提出了JPEG2000核心算法EBCOT的改进,VLSI结构通过仿真速度可以达到100Mbit/s,如果像素为8比特精度,其处理速度为12.5MSample/s。但是该专利并未给出实际的硬件***和算法改进后恢复图像的质量。由葛宝珊在2007年12月的计算机工程与设计上发表的文章“基于多DSP的遥感图像压缩***”也给出了一种遥感图像压缩处理***,其所述的基于多DSP的遥感图像压缩***采用四片DSP进行遥感图像压缩,虽然恢复图像质量优于JPEG2000,但是处理速度只有50Mbit/s,如果像素为8比特精度,其处理速度仅为6.25MSample/s,无法满足星载遥感图像压缩对高速(30MSample/s)、高保真(与JPEG2000标准软件KDU相当)的应用要求。
发明内容
本发明的技术解决问题是:克服现有技术的不足,提供了一种适合于遥感图像压缩应用的高速、高保真JPEG2000图像压缩处理***。
本发明的技术解决方案是:一种JPEG2000图像压缩处理***,包括图像小波变换单元、小波系数读取控制单元、小波系数缓存单元、优先级控制单元、小波系数编码单元、编码系数缓存单元和码流优化截取单元;图像小波变换单元按照JPEG2000算法,将原始图像数据分解成小波系数块后送至存储器;小波系数读取控制单元按照设定的扫描顺序将小波系数块从存储器中读出并送至小波系数缓存单元;小波系数编码单元由一个或多个DSP组成,用于对小波系数块进行编码,每个DSP发出数据交换请求并送至优先级控制单元;优先级控制单元对小波系数编码单元中的各DSP发出的数据交换请求进行优先级排序,并控制各DSP按照优先级顺序从小波系数缓存单元中读出对应的小波系数块;小波系数编码单元将编码后的小波系数码块送至编码系数缓存单元;码流优化截取单元从编码系数缓存单元读取所有系数块以及与每个系数块对应的截取点和失真值,根据Lagrange算法寻找规定压缩码率下失真最小的一组截取点,并从所述截取点起截取每个系数块的部分码流,经过RS编码后与***外部输入的辅助信息进行拼接,最后向***外部输出。
所述的小波系数读取控制单元将小波系数块从存储器中读出时的扫描顺序为:对于存储器中存储的将图像进行n级小波变换后产生的3n+1个子带,子带之间按照LLn、HLn、LHn、HHn、HLn-1、LHn-1、HHn-1、......、HL2、LH2、HH2、HL1、LH1、HH1的Z字形顺序扫描;在每个子带内将所有的小波系数块划分为对称的四组,四组间按照Z字形顺序扫描,每组再按照对称的四部分进行划分,四部分间的扫描顺序也为Z字形,直到划分后得到的数据块与预定值大小相等;对于每个划分后得到的与预定值大小相等的数据块按照条带顺序扫描,每个数据块分成4行一个条带,由上至下顺序扫描每个条带,条带内部从左至右顺序扫描每列,每列从上到下扫描。
所述的优先级控制单元对各DSP发出的数据交换请求进行优先级排序的方法为:采用两级FIFO实现,先将各DSP发出的请求状态进行编码并缓存在FIFOA中,然后根据FIFOA的空标志判断是否有请求被存储,若有则读出请求的编码信息,根据预先设定的优先级对所述编码信息进行排序并顺序写入FIFOB,根据FIFOB的空标志读取FIFOB中存储的编码信息并译码,优先级控制单元产生响应信号。
所述的小波系数缓存单元或编码系数缓存单元采用FPGA内部的双口BLOCKRAM实现。
所述的小波系数编码单元中各DSP与小波系数缓存单元或编码系数缓存单元的数据交换方式为采用外部存储器接口的扩展型直接存储器存取方式。
本发明与现有技术相比的优点在于:
(1)本发明***采用小波系数读取控制单元、优先级控制单元以及小波系数编码单元相配合完成图像小波系数块的读取和编码操作,小波系数读取控制单元按照设定的扫描顺序将小波系数块从存储器中读出,与顺序读取相比提高了读取速率,小波系数编码单元由一个或多个DSP组成,用于对小波系数块进行编码,可充分利用多DSP的并行处理能力,提高整个***的处理速度,优先级控制单元对各DSP发出的数据交换请求进行优先级排序后再分别响应,进一步提高了***的处理速度。当小波系数读取控制单元和优先级控制单元采用FPGA实现时,其与多片DSP结合并行处理,可保证***的处理速度达到每秒30MSample/s。对于复杂的遥感图像,4倍压缩时峰值信噪比与JPEG2000标准软件计算结果仅差0.5Db,保真性好;
(2)本发明中小波系数读取控制单元的扫描顺序为,数据块与数据块之间是Z字形扫描,块内是条带扫描的顺序产生小波系数读地址,可以大大节省实现此功能的硬件实现空间,从而提高小波系数的寻址速度。另外根据需求,可以改变小波系数块的子带扫描顺序为由低层小波系数到高层、或由高层小波系数至低层,以更好的适应DSP并行编码时概率更新后编码的高效性;
(3)优先级控制单元采用两级FIFO实现各DSP发出的数据交换请求,优先级排序相对固定顺序的排序方法可以最大限度减少DSP的等待时间,保证整个***的高速运行;
(4)采用FPGA内部的双口BLOCKRAM实现小波系数缓存单元或编码系数缓存单元,可通过双口RAM的读写控制实现FPGA与DSP之间小波系数的交换,相对于采用FPGA片外存储单元作为缓存的设计,硬件资源占用少,路径延迟小,BLOCKRAM读写速度快且易于控制;
(5)小波系数编码单元中各DSP采用外部存储器接口的扩展型直接存储器存储方式与小波系数缓存单元或编码系数缓存单元的数据交换相对常用的直接存储器存储方式,可以有效地提高DSP与FPGA数据交换的效率和速度,以实现DSP编码过程中数据交换和数据编码并行执行机制,从而保证整个***的高速处理能力。
附图说明
图1为JPEG2000算法的基本结构框图;
图2为本发明图像压缩处理***的硬件实现原理框图;
图3为本发明***中小波系数块块计数、块序号和块地址对应关系图;
图4为本发明***中小波系数块内条带扫描顺序图;
图5为本发明***中小波系数读地址产生原理图;
图6为本发明***中单片DSP与两片FPGA数据交换原理框图;
图7为本发明***中DSP与FPGA数据交换申请的优先级排队原理框图;
图8为本发明***中各DSP申请判断及产生机理图;
图9为本发明***中优先级控制单元进行优先级排队的状态转移图;
图10为本发明***中数据缓存单元采用的双口RAM读写控制原理框图;
图11为本发明***中小波系数编码单元的DSP处理小波系数的流程图;
图12为本发明***中码流优化截取单元EDMA读写与DSP处理并行机制原理框图。
具体实施方式
如图2所示,本发明图像压缩处理***包括,下面以四片DSP与两片FPGA的设计方案为例进一步说明本发明***的工作过程。
一、四片DSP与两片FPGA联合设计的高速实现方案
如图2所示,在本发明***中,JPEG2000算法是由四片DSP与两片FPGA共同来完成的,其中小波变换FPGA及其***SRAM完成图像数据缓存和小波变换的硬件实现,四片DSP完成小波系数块的嵌入式比特平面编码,而另一片FPGA完成编码数据的优化截取、RS编码以及辅助数据的缓存。小波变换FPGA内部开辟有四个BLOCKRAM,分别作为四片DSP的一部分外部存储空间,以便存储小波系数块;优化截取FPGA内部开辟有四个BLOCKRAM作为四片DSP的另一部分外部存储空间,以存储编码后的小波数据。
图像数据缓存采用两片SRAM来实现乒乓缓存和图像块的划分。在本实施例中,输入图像(以3072*1024为例说明)以3072像素为一行,SRAM缓存1024行可划分为3个1024*1024大小的TILE。小波变换FPGA以一个TILE为处理单位,分别读出三个TILE进行小波变换。小波变换FPGA完成一个TILE图像数据97整形小波变换。整形小波变换系数采用JPEG2000标准中所对应的系数。硬件实现需要外部SRAM缓存中间计算结果。为节省存储空间,可采用LINE_BASED小波变换技术,行变换、列变换可以同时进行,当小波变换结束后,将缓存的各级小波变换系数写入外部SRAM。采用两片外部SRAM可以实现小波变换系数的乒乓缓存。
小波变换FPGA与多片DSP进行小波系数的高速交换时,是按照预先设定的顺序读出小波系数块并存入FPGA内部存储空间(双口BLOCKRAM),该存储空间作为DSP的外部扩展存储空间,由DSP进行数据读取操作。
四片DSP对小波系数块分别进行嵌入式比特平面编码。每个小波系数块编码后的系数存入优化截取FPGA内部存储空间(双口BLOCKRAM)。优化截取程序先读取所有系数块并存入外部SRAM中,再读取每个系数块截取点和相应的失真值缓存在FPGA内部开设的SRAM。根据处理速度,内部和外部均开设了三组区域进行数据的乒乓缓存。程序根据Lagrange算法寻找规定压缩码率(如4:1)下失真最小的一组截取点,再根据截取点截取每块系数的部分码流,码流组合后进行RS编码,再与缓存的辅助数据拼接后输出。
该方案可高速实现JPEG2000算法的原因主要有以下几点:1)充分利用FPGA并行处理机制解决小波变换和优化截取的快速硬件实现;2)采用DSP编码小波系数块是根据EBCOT算法中T1编码基于小波系数块的特点,并利用了DSP强大的数据处理功能;3)小波变换FPGA与多片DSP进行小波系数的高速交换是保证FPGA与DSP发挥各自处理优势,保证整体处理速度的关键。经测试,在DSP主频为850Mhz时,单片DSP与FPGA数据交换速率为70*16Mbps,四片DSP与FPGA数据交换的速率可以达到4.48Gbps。
二、小波系数块的高效寻址
小波系数块的高效寻址要解决的问题是,根据JPEG2000算法的要求,将小波系数块以及块内的系数按照固定的顺序读出,即按照一定的扫描顺序产生读小波系数的读地址。小波系数块读出的扫描顺序为:块与块之间是Z字形扫描顺序,块内是条带扫描顺序。由于码块编码过程中要根据几个码块编码系数进行上下文概率更新,统计特性一致的码块为一组进行概率更新,会使概率分布更为集中,编码效率更高。因此按照Z字的扫描顺序对码块进行扫描。Z字形扫描顺序即将小波系数分成大小相同的块,按照Z字形顺序进行编号。如图3所示,1024*1024大小的图像经过四级小波变换后,具有十三个子带(粗实线划分出的区域)。按照64*64的大小为一个系数块,可以划分为256个系数块(虚线划分出的区域)。Z字扫描首先体现在子带扫描顺序,即对四级小波变换按照LL4、HL4、LH4、HH4、HL3、LH3、HH3、HL2、LH2、HH2、HL1、LH1、HH1的先后顺序扫描。然后在每个子带内将所有的块划分为对称的四组,每组扫描顺序也为Z字形。每组继续划分直到只剩一个数据块为止,该数据块的大小可以根据需要设定,如32*32、64*64等。图3中每个系数块中有两个数字,上层数字是按照LL4、HL4、LH4、HH4、HL3、LH3、HH3、HL2、LH2、HH2、HL1、LH1、HH1子带顺序进行的块序号编排,对应图5中的块计数。而下层数字是按照HL1、LH1、HH1、HL2、LH2、HH2、HL3、LH3、HH3、HL4、LH4、HH4、LL4子带顺序进行的块序号编排,对应图5中的块序号。之所以按照这个顺序是因为在4:1的固定压缩比下可以使得DSP的编码效率达到最优值。
每个系数块内的条带扫描顺序如图4所示,即将一个系数块分成四行一个条带,由上至下顺序扫描每个条带,对于64*64大小的数据块,共分成16个条带。条带内部从左至右顺序扫描每列,每列是从上到下扫描。因为条带中每列小波系数往往是相同或相近的,该扫描顺序有利于小波系数相关性的提取。
根据扫描顺序,产生读地址可以按照图5所示的方法实现。图5中SRAM读地址是由20位二进制数表示1024*1024大小地址,其中高8位是块地址,低12位表示块内条带地址。块地址是由图5的输入,块计数经块序号产生模块和块地址产生模块生成的,而块内条带地址则是由图5的输入,即块内计数经条带地址产生模块生成的。块内条带地址的高4位表示条带序号(从0到15),低8位表示64*4大小条带内系数的序号。块计数由一个8位计数器产生,通过块序号产生模块映射为块序号,块序号通过块地址产生模块映射为块地址。块地址就是按照从左到右,由上至下的逐块扫描顺序递增。块内计数由一个12位的计数器产生,表示一个系数块内部按照每行从左至右,再从上至下逐行扫描的顺序。通过条带地址产生模块可以转化为图4所示的扫描顺序。例如图3中第12块(较小数字)小波块中第3行3列的小波系数,其块地址的产生过程是块计数12先变为块序号76再变为块地址42。条带地址是由块内计数值11中高4位表示的条带序号0和条带内扫描顺序11变为的130组成。其最终地址是42*4096+0*256+130=172162。采用图5所示的方法实现小波系数块之间的Z字扫描方法和小波系数块内的条带扫描可以大大节省实现此功能的硬件实现空间,从而提高小波系数的寻址速度。
三、双口RAM写小波系数优先级控制
如图6所示,本发明实施例中DSP采用EMIF接口通过EDMA方式进行外部存储空间的访问。该存储空间是FPGA内部的BLOCKRAM来实现双口RAM,FPGA对该空间也进行存储操作。双口RAM的每个端口都有独立的数据线,地址线和读、写使能控制线。图6中WV BLOCKRAM1为实现小波变换系数缓存的双口RAM。其中A口数据线、地址线、读写使能分别为WV_DATA_A[0..15]、WV_ADDR_A[0..15]、WV_EN_A、WV_WE_A,B口数据线、地址线、读写使能分别为DATA_B[0..15]、ADDR_B[0..14]、EN_B、WE_B。图6中OT BLOCKRAM2为实现编码系数缓存的双口RAM。其中A口数据线、地址线、读写使能分别为WV_DATA_A[0..15]、WV_ADDR_A[0..15]、WV_EN_A、WV_WE_A,B口数据线、地址线、读写使能与WV BLOCKRAM1的B口公用。本实施例中采用16位数据线和15位地址线,B口高位地址线(ADDR_B[14])用于区分同一片DSP对应的两片存储空间。ADDR_B[14]=‘0’表明对应小波变换缓存RAM,ADDR_B[14]=‘1’表明对应编码系数缓存RAM。BLOCKRAM内部数据空间划分为标志位、有效数据区。设定零地址空间为读写状态标志,以表示双口的操作状态。如WV_BLOCKRAM1零地址写入“AAAA”表明小波数据块已经写入,等待DSP读出。DSP在读完数据后在零地址写入“BBBB”,表明小波数据已经读出,可以写入下一块小波数据,即对FPGA发出了可以写入数据的申请。
图7为本发明***中DSP与FPGA数据交换申请的优先级排队原理框图。FPGA不断查询多个BLOCKRAM(多片DSP的外部存储空间)中DSP申请数据交换的标志位,对多个申请进行存储、优先级排序并将排序后的序号存储,最后逐个响应申请。采用两级FIFO加优先级控制和时序控制的方法以完成申请的判断、存储、排队及响应,该方法可以保证多片DSP以最高效的速度读出。
申请判断及产生模块要不断查询四个BLOCKRAM的零地址,当某个BLOCKRAM零地址数据为“AAAA”时,信号b*变高。由于四个BLOCKRAM可能同时产生申请,因此要在任何一个申请产生时将四个申请状态进行编码并缓存,即产生写FIFO的数据和使能。图8为申请判断及产生机理图,在b1、b2、b3或b4、由低变高的时刻产生一个时钟宽度的脉冲信号S1、S2、S3或S4以表示对应的申请状态,并将此状态锁存并存入FIFO中。例如图8中,b3先由低变高时,申请状态的编码是S1、S2、S3和S4状态组合,即“0010”,同时写信号We_fifoa变高,将“0010”写入FIFOA。根据先入先出的原则,先产生的申请将先写入并先响应。如果两个以上的申请同时产生,例如b1、b2同时变高,则申请状态为“1100”,优先级排序模块会根据约定的优先级顺序决定先响应b1还是b2。之所以采用FIFO缓存是为了解决连续两个以上的申请先后到来时,优先级排队可能发生拥堵的情况。
申请的优先级排序模块在申请响应的空隙根据FIFOA的空标志判断是否有申请被存储。一旦有申请即产生读信号(图7中Rd_a)并读出申请的编码信号(图7中Dout_a),然后根据预定的优先级进行优先级排队,将排序好的申请标志(图7中Din_b)顺序写入FIFOB。优先级排序模块是采用状态机的写法列举16种输入状态及相应的状态转移,针对每种非零状态均产生写FIFOB的写门控和相应的写数据。优先级排队状态转移图见图9,其中16个圆圈表示16种状态,对应FIFOA的15种可能的输出和一种复位状态“0000“。每种状态旁”Dout=*”表示该状态应输出到FIFOB的信号值,也就是优先级排队模块的输出。针对每种输入状态,状态转移及相应的输出是这样的。复位信号到来时,进入“0000”状态,无输出,FIFOB写信号无效FIFOA读有效(Wr=0,rd=1)。在非复位状态下,FIFOA输出“0001”,则状态机进入“0001”状态,Dout=“4”,表明DSP4发出的申请进入FIFOB缓存,同时写FIFOB有效、读FIFOA无效(Wr=1,rd=0),然后回到“0000”等待FIFOA非零输出。当FIFOA输出“0010”,则状态机进入输入“0010”状态,Dout=“3”,表明DSP3发出的申请进入FIFOB缓存。如果输入信号出现两个以上“1”,例如“0011”,则状态机先输出Dout=“4”表明先响应DSP4,然后跳入“0010”状态,输出Dout=“3”,即后响应DSP3,最后回到“0000”状态。进入输入“0001”状态,Dout=“2”,表明DSP2发出的申请进入FIFOB缓存。当输入是“1111”,表明四片DSP同时产生申请,按照DSP4、DSP3、DSP2、DSP1的先后顺序,则状态转移为“1110”、“1100”、“1000”、“0000”,同时产生连续四个写FIFOB门控和对应的写数据Dout=“4”、Dout=“3”、Dout=“2”、Dout=“1”。依此类推,对应FIFOA的15种输出状态,都可以在图9中找到相应的输出和状态转移。在FIFOA非空时读出的数据是有效的。FIFOB读有效信号产生是在申请相应空闲期间进行查询,如果FIFOB非空、FIFOB非写则产生FIFOB读信号。
图7中申请响应模块在申请响应的空隙根据FIFOB的空标志在写门控无效时读取FIFOB中存储的标志并译码,产生响应信号d*,同时将申请信号b*变低,保证新的申请判断能够产生。例如FIFOB读出“0001”,则d4变为‘1’,b4变为‘0’。
四、小波系数双口RAM的读写控制
本发明实施例中,小波系数缓存单元和编码系数缓存单元均采用双口RAM来实现。小波系数双口RAM的读写控制模块划分如图10。双口RAM的读写控制完成的功能一方面是通过A口信号产生模块将从外部SRAM读出的小波系数块根据门控d和地址addr按照双口RAM的写时序写入A口(地址、数据、写使能、读使能分别是图10所示的addr_a、data_a、en_a、we_a),并从A口中读出读写状态标示(图10所示的data_a_out)送入优先级控制单元以进行申请判断和优先级控制。另一方面DSP通过B口信号产生模块将从B口读出标识(图10所示的data_b_out)进行判断,若读出“AAAA”表明小波数据块已经写入,等待读出。DSP产生读使能、读地址和读时钟(en、addr、clk)通过B口信号产生模块从RAM的B口将小波系数块(data_dsp)读出后,再写入“BBBB”标识(data_dsp),以表明数据已经读出,可以写入下一小波系数块。A、B口信号产生模块要保证B口写时,A口不发生读,A口写时,B口不发生读,以此保证读数据正确。另外,B口信号产生模块还要根据高位地址线状态识别DSP发出的读写信号是针对小波变换FPGA还是优化截取FPGA。具体而言,当Addr(14)=’0’时,表明针对小波变换FPGA,反之,当Addr(14)=’1’时,表明针对优化截取FPGA。
五、DSP高速EMIF接口控制
为达到DSP和FPGA高速数据交换,DSP对于高速外部存储器接口的控制方式选择和DSP处理数据流的并行处理机制设计是一个关键环节。DSP访问外部存储器时必须采用外部存储器接口(EMIF)接口。本实施例中DSP的具体型号是TMS3206416,其CPU(中央处理单元)主频可达1GHz,内部具有EMIFA和EMIFB两个外部存储器接口以及EDMA(扩展型直接存储器存取)控制器。本实施例中采用EMIFB接口完成对外部存储器的访问,具体采用16比特数据总线宽度,同步接口模式。EDMA控制器负责DSP片内存储器L2与外部存储器之间的数据传递。经实际测试,同步时钟最高速率可达140MHz,数据传递效率几乎达到100%。当DSP主频工作在850MHz,单片DSP与FPGA数据交换速率实际为70*16Mbps时,四片DSP与FPGA数据交换的速率可以达到4.48Gbps,设备已经可以满足30M采样每秒的图像输入速率。
DSP处理小波系数流程如图11所示。在DSP程序初始化过程中先写“BBBB”标识,表明FPGA可以写小波系数了,然后等待“AAAA”标识,等到标识后置EDMA读操作。在EDMA读过程中首先判断程序是否第一次写,如果是,则直接置“DDDD”标识(表明优化截取FPGA内部BLOACKRAM已读空)。在EDMA读完后,等待“DDDD”标识,等到后置EDMA写。在写上一块编码系数时,对当前码块小波系数进行EBC处理(嵌入式比特平面编码)。编码结束后等待EDMA写结束和“AAAA”标识(表明小波变换FPGA内部BLOACKRAM已写满),如果两者均满足,则进行EDMA读。读下一块小波系数的过程中对当前块编码数据进行MQ熵编码,编码结束后进入等待EDMA读完的判断。
由于EDMA可以保证数据搬移过程中不启用CPU(中央控制单元),因此,在EDMA写时,可以进行EBC操作,在EDMA读时,可以进行MQ编码。EDMA读写与DSP处理并行机制如图12。一个完整的处理周期是从第一道竖线开始至第三道竖线截至。在第一道竖线处判断EDMA读结束且读到标识“DDDD”(表明优化截取FPGA内部BLOACKRAM已读空)时,在启动EDMA写后立即开始EBC(嵌入式比特平面编码)。如果EDMA足够快,在EBC结束时,就可在第二道竖线处判到EDMA写结束,如果这时读到标识“AAAA”(表明小波变换FPGA内部BLOACKRAM已写满)就可以立刻开始EDMA读和MQ熵编码。如果读写EDMA速度足够快时,DSP进行小波数据编码的时间就不受小波数据传输和编码码流传输的影响,而只取决于EBC操作和MQ编码的速度。
嵌入式比特平面编码(EBC)是按照重要性传播、幅值细化和清理更新三个编码步骤顺序进行的,每个PASS的结束点就是一个截取点。率失真优化截取算法就是在目标码率为R的情况下,寻找每个码块的截取点,使各码块码流之和小于等于R时,每个码块的失真和最小。解决这种条件极值问题可以通过Lagrange算法并归结为单个码块的最小化问题,即对于给定的率失真门限可以找到失真率大于率失真门限倒数时对应的最大截取点。在编码过程中可以计算每个码块截取点相应的失真率,得到一组率失真曲线。当所***块编码结束后,对于同一个率失真门限,可以找到每个码块的截取点和对应的码率之和。优化截取FPGA完成的功能就是就是采用二分法调整率失真门限,直到每个码块的截取点对应的码率之和接近目标码率R。
本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。
Claims (5)
1、一种JPEG2000图像压缩处理***,其特征在于包括:图像小波变换单元、小波系数读取控制单元、小波系数缓存单元、优先级控制单元、小波系数编码单元、编码系数缓存单元和码流优化截取单元;图像小波变换单元按照JPEG2000算法,将原始图像数据分解成小波系数块后送至存储器;小波系数读取控制单元按照设定的扫描顺序将小波系数块从存储器中读出并送至小波系数缓存单元;小波系数编码单元由一个或多个DSP组成,用于对小波系数块进行编码,每个DSP发出数据交换请求并送至优先级控制单元;优先级控制单元对小波系数编码单元中的各DSP发出的数据交换请求进行优先级排序,并控制各DSP按照优先级顺序从小波系数缓存单元中读出对应的小波系数块;小波系数编码单元将编码后的小波系数码块送至编码系数缓存单元;码流优化截取单元从编码系数缓存单元读取所有系数块以及与每个系数块对应的截取点和失真值,根据Lagrange算法寻找规定压缩码率下失真最小的一组截取点,并从所述截取点起截取每个系数块的部分码流,经过RS编码后与***外部输入的辅助信息进行拼接,最后向***外部输出。
2、根据权利要求1所述的一种JPEG2000图像压缩处理***,其特征在于:所述的小波系数读取控制单元将小波系数块从存储器中读出时的扫描顺序为:对于存储器中存储的将图像进行n级小波变换后产生的3n+1个子带,子带之间按照LLn、HLn、LHn、HHn、HLn-1、LHn-1、HHn-1、......、HL2、LH2、HH2、HL1、LH1、HH1的Z字形顺序扫描;在每个子带内将所有的小波系数块划分为对称的四组,四组间按照Z字形顺序扫描,每组再按照对称的四部分进行划分,四部分间的扫描顺序也为Z字形,直到划分后得到的数据块与预定值大小相等;对于每个划分后得到的与预定值大小相等的数据块按照条带顺序扫描,每个数据块分成4行一个条带,由上至下顺序扫描每个条带,条带内部从左至右顺序扫描每列,每列从上到下扫描。
3、根据权利要求1所述的一种JPEG2000图像压缩处理***,其特征在于:所述的优先级控制单元对各DSP发出的数据交换请求进行优先级排序的方法为:采用两级FIFO实现,先将各DSP发出的请求状态进行编码并缓存在FIFOA中,然后根据FIFOA的空标志判断是否有请求被存储,若有则读出请求的编码信息,根据预先设定的优先级对所述编码信息进行排序并顺序写入FIFOB,根据FIFOB的空标志读取FIFOB中存储的编码信息并译码,优先级控制单元产生响应信号。
4、根据权利要求1所述的一种JPEG2000图像压缩处理***,其特征在于:所述的小波系数缓存单元或编码系数缓存单元采用FPGA内部的双口BLOCKRAM实现。
5、根据权利要求1所述的一种JPEG2000图像压缩处理***,其特征在于:所述的小波系数编码单元中各DSP与小波系数缓存单元或编码系数缓存单元的数据交换方式为采用外部存储器接口的扩展型直接存储器存取方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810223915 CN101365138B (zh) | 2008-10-10 | 2008-10-10 | 一种jpeg2000图像压缩处理*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810223915 CN101365138B (zh) | 2008-10-10 | 2008-10-10 | 一种jpeg2000图像压缩处理*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101365138A true CN101365138A (zh) | 2009-02-11 |
CN101365138B CN101365138B (zh) | 2010-12-08 |
Family
ID=40391228
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200810223915 Active CN101365138B (zh) | 2008-10-10 | 2008-10-10 | 一种jpeg2000图像压缩处理*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101365138B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102547281A (zh) * | 2011-12-29 | 2012-07-04 | 沈阳聚德视频技术有限公司 | 基于dsp的jpeg图像压缩并行控制方法 |
CN103220507A (zh) * | 2012-01-19 | 2013-07-24 | 中兴通讯股份有限公司 | 一种视频编解码方法及*** |
CN103997648A (zh) * | 2014-06-11 | 2014-08-20 | 中国科学院自动化研究所 | 一种基于dsp的jpeg2000标准图像快速解压缩***及方法 |
CN104079930A (zh) * | 2014-01-06 | 2014-10-01 | 中科宇图天下科技有限公司 | 一种遥感影像压缩***的实现方法 |
CN105491392A (zh) * | 2015-11-24 | 2016-04-13 | 北京优素科技有限公司 | 多级idwt并行处理方法及*** |
CN106897674A (zh) * | 2017-01-20 | 2017-06-27 | 北京理工大学 | 一种基于jpeg2000码流的在轨遥感图像城区检测方法 |
CN108737843A (zh) * | 2010-09-27 | 2018-11-02 | Lg 电子株式会社 | 用于分割块的方法和解码设备 |
CN109788298A (zh) * | 2019-02-01 | 2019-05-21 | 中国科学院电子学研究所 | 基于fpga的图像压缩方法 |
CN110602508A (zh) * | 2019-09-19 | 2019-12-20 | 天津大学 | 一种应用于jpeg2000的图像预处理vlsi结构 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1262973C (zh) * | 2003-10-13 | 2006-07-05 | 西安电子科技大学 | 比特平面并行的率失真优化截取内嵌码块编码装置 |
CN100387063C (zh) * | 2005-12-01 | 2008-05-07 | 西安交通大学 | 可伸缩视频编码中的三维码率控制方法 |
CN100534186C (zh) * | 2007-07-05 | 2009-08-26 | 西安电子科技大学 | 基于码率预分配的jpeg2000自适应率控制***及方法 |
CN101267558A (zh) * | 2008-05-04 | 2008-09-17 | 西安电子科技大学 | Jpeg2000标准中基于码块的低存储编码器及其编码方法 |
-
2008
- 2008-10-10 CN CN 200810223915 patent/CN101365138B/zh active Active
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11375233B2 (en) | 2010-09-27 | 2022-06-28 | Lg Electronics Inc. | Method for partitioning block and decoding device |
US11895333B2 (en) | 2010-09-27 | 2024-02-06 | Lg Electronics Inc. | Method for partitioning block and decoding device |
CN108737843A (zh) * | 2010-09-27 | 2018-11-02 | Lg 电子株式会社 | 用于分割块的方法和解码设备 |
CN108737843B (zh) * | 2010-09-27 | 2022-12-27 | Lg 电子株式会社 | 用于分割块的方法和解码设备 |
CN102547281A (zh) * | 2011-12-29 | 2012-07-04 | 沈阳聚德视频技术有限公司 | 基于dsp的jpeg图像压缩并行控制方法 |
CN103220507A (zh) * | 2012-01-19 | 2013-07-24 | 中兴通讯股份有限公司 | 一种视频编解码方法及*** |
CN103220507B (zh) * | 2012-01-19 | 2018-04-20 | 中兴通讯股份有限公司 | 一种视频编解码方法及*** |
CN104079930A (zh) * | 2014-01-06 | 2014-10-01 | 中科宇图天下科技有限公司 | 一种遥感影像压缩***的实现方法 |
CN103997648A (zh) * | 2014-06-11 | 2014-08-20 | 中国科学院自动化研究所 | 一种基于dsp的jpeg2000标准图像快速解压缩***及方法 |
CN103997648B (zh) * | 2014-06-11 | 2017-04-05 | 中国科学院自动化研究所 | 一种基于dsp的jpeg2000标准图像快速解压缩***及方法 |
CN105491392A (zh) * | 2015-11-24 | 2016-04-13 | 北京优素科技有限公司 | 多级idwt并行处理方法及*** |
CN105491392B (zh) * | 2015-11-24 | 2019-03-29 | 北京优素科技有限公司 | 多级idwt并行处理方法及*** |
CN106897674B (zh) * | 2017-01-20 | 2019-07-26 | 北京理工大学 | 一种基于jpeg2000码流的在轨遥感图像城区检测方法 |
CN106897674A (zh) * | 2017-01-20 | 2017-06-27 | 北京理工大学 | 一种基于jpeg2000码流的在轨遥感图像城区检测方法 |
CN109788298A (zh) * | 2019-02-01 | 2019-05-21 | 中国科学院电子学研究所 | 基于fpga的图像压缩方法 |
CN110602508A (zh) * | 2019-09-19 | 2019-12-20 | 天津大学 | 一种应用于jpeg2000的图像预处理vlsi结构 |
Also Published As
Publication number | Publication date |
---|---|
CN101365138B (zh) | 2010-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101365138B (zh) | 一种jpeg2000图像压缩处理*** | |
CN102369552B (zh) | 存储器子*** | |
CN101569170B (zh) | 编码设备和编码方法以及解码设备和解码方法 | |
CN101404772B (zh) | 基于小波变换的vlsi图像压缩编码器 | |
CN100534186C (zh) | 基于码率预分配的jpeg2000自适应率控制***及方法 | |
CN101252694B (zh) | 基于块的视频解码的帧存储压缩和地址映射*** | |
CN102148988B (zh) | 基于fpga的高速jpeg图像处理***及其处理方法 | |
CN101917622A (zh) | 14bit位宽图像压缩硬件编码器 | |
CN101771874A (zh) | 一种卫星图像压缩方法及其实现装置 | |
CN105611295B (zh) | 一种在soc上实现视频采集压缩传输的***和方法 | |
CN103581680B (zh) | 使用量化控制改良解码器性能的方法与*** | |
CN101014129B (zh) | 一种视频数据压缩方法 | |
CN102369522A (zh) | 计算引擎的并行流水线式集成电路实现 | |
CN100378687C (zh) | 一种高速缓存预取模块及其方法 | |
CN101867809A (zh) | 基于脉动阵列的高速图像压缩vlsi编码方法及编码器 | |
CN101841713B (zh) | 降低编码码率的视频编码方法及*** | |
CN103841359A (zh) | 一种视频多画面合成方法、装置和*** | |
CN101267558A (zh) | Jpeg2000标准中基于码块的低存储编码器及其编码方法 | |
CN102238383B (zh) | 用于视频编解码器的多总线体系结构 | |
CN102123275B (zh) | 一种视频分量数据信息获取及提取的方法 | |
CN102547291B (zh) | 基于fpga的jpeg2000图像解码装置及方法 | |
CN103581676B (zh) | 视频编码变换系数的解码方法及装置 | |
CN105120276A (zh) | 自适应Motion JPEG编码方法和*** | |
CN102821303A (zh) | 一种像素级视频信息网络实时分级压缩传输方法 | |
CN101184244A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
EE01 | Entry into force of recordation of patent licensing contract |
Assignee: Xi'an spaceflight Hengxing precision electromechanical Co., Ltd. Assignor: No.504 Institute of China Space Technology Group No.5 Academy Contract record no.: 2011610000116 Denomination of invention: JPEG2000 image compression processing system Granted publication date: 20101208 License type: Exclusive License Open date: 20090211 Record date: 20110715 |