CN105828070A - 防误码扩散的jpeg-ls图像无损/近无损压缩算法硬件实现方法 - Google Patents

防误码扩散的jpeg-ls图像无损/近无损压缩算法硬件实现方法 Download PDF

Info

Publication number
CN105828070A
CN105828070A CN201610165800.8A CN201610165800A CN105828070A CN 105828070 A CN105828070 A CN 105828070A CN 201610165800 A CN201610165800 A CN 201610165800A CN 105828070 A CN105828070 A CN 105828070A
Authority
CN
China
Prior art keywords
pixel
parameter
sub
block
value
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
Application number
CN201610165800.8A
Other languages
English (en)
Other versions
CN105828070B (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.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
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 Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201610165800.8A priority Critical patent/CN105828070B/zh
Publication of CN105828070A publication Critical patent/CN105828070A/zh
Application granted granted Critical
Publication of CN105828070B publication Critical patent/CN105828070B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/15Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/164Feedback from the receiver or from the transmission channel
    • H04N19/166Feedback from the receiver or from the transmission channel concerning the amount of transmission errors, e.g. bit error rate [BER]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明公开了一种防误码扩散的图像无损/近无损压缩方法:采用并行预测方式,将分块的图像通过两路并行得到预测结果,在每个预测环节,像素之间间隔一个像素时钟周期,使得由参数索引、预测修正、残差计算、参数更新反馈环路可使用流水线设计;在近无损压缩模式下,每个像素有足够的时间进行像素重建,在当前像素进行上下文建模前能刚好得到上一个像素对应的像素重建值;通过引入分块压缩与检纠错编码相结合的方法,防止了误码的大面积扩散,提高了抗信道误码性能,同时子块大小可调,检纠错编码方式可调;进行分区域近无损压缩,可根据实际应用需求,对图像的不同区域采用不同的近无损参数Near进行压缩,可进一步提高图像的整体压缩比。

Description

防误码扩散的JPEG-LS图像无损/近无损压缩算法硬件实现方法
技术领域
本发明属于图像压缩技术领域,更具体地,涉及到一种防误码扩散的无损/近无损图像压缩方法及其硬件实现,本发明适用于空间运用的星载图像无损/近无损压缩系统。
背景技术
近年来我国在外太空探索和对地观测等空间应用领域正处于高速发展阶段,传感器的性能也随之得到了极大的提升,遥感数据量日益庞大,使得有限的信道带宽和数据存储容量与传输大量遥感数据之间的矛盾日益突出。显然,数据压缩技术是解决这一问题的一个有效途径,使其在遥感领域越来越受到重视。JPEG-LS压缩算法是已建立的对于彩色及灰度图像无损压缩的标准,是基于Weinberger等提出的低复杂度的无损图像压缩方法(LOCO-I:lowcomplexitylosslesscompressionforimages),广泛应用于卫星图像无损压缩,是CCSDS推荐的无损/近无损压缩算法。作为图像数据无损/近无损压缩标准,在压缩性能和压缩效率方面具有很多优越性,因此成为目前图像无损压缩应用中最广泛被采用的方法之一。
遥感数据的极为宝贵且获取不易,因此在对遥感数据压缩时无损/近无损压缩起到了极为重要的作用。同时,在军事应用领域,实时性是遥感数据获取、传输和处理的首要指标,因此对遥感数据的压缩处理还必须满足高实时性的要求。再者,星上空间极为复杂而恶劣,电路易因单粒子翻转等出错,而星地链路则易受天气状况影响,在恶劣天气下易产生信道误码,因此压缩系统必须具有极高的可靠性。因此,JPEG-LS压缩算法的在这样的应用背景下,会存在一些技术难点:实时实现问题和误码扩散问题。
JPEG-LS算法硬件实现的主要难点在于其近无损压缩模式的实现,其中的像素重建环节引入了反馈环路,导致了算法的实时实现的困难,制约了压缩系统的处理速度。西安电子科技大学在其申请专利“JPEG-LS常规编码硬件实现方法”(专利申请号:201210198818.X,公开号:CN102724506)中公开了一种JPEG-LS图像压缩标准的硬件实现方法。这种方法只实现了JPEG-LS图像压缩标准中的无损压缩模式,回避了近无损压缩模式中的像素重建环节,但丧失了近无损压缩功能。
JPEG-LS算法进行遥感图像压缩时,若因太空的恶劣环境使得压缩码流中引入了误码,则会因码流中的上下文关联性,导致解码时出现图像错乱而失真。
发明内容
本发明针对当今空间应用领域对低功耗、低复杂度、高实时性、高可靠性图像数据压缩系统的迫切需要提出。本发明通过在JPEG-LS常规编码模式的基础上引入图像分块压缩的方法,同时该方法与检纠错编码(2DECC编码和RS编码)相结合,极大地增强了JPEG-LS抗误码扩散的性能。本发明采用并行预测方式,将分块的图像通过两路并行得到预测结果,在每个预测环节,像素之间间隔一个像素时钟周期,使得在确保参数及时更新的同时消除了反馈回路数据依赖对流水线的阻塞,因此由参数索引、预测修正、残差计算、参数更新反馈环路可使用流水线设计。并行预测的结果最终转换为单路串行方式进行Golomb编码。同时,像素之间间隔一个像素时钟周期使得在近无损模式下,每个像素能够有足够的时间计算出对应的像素重建值供下一个像素进行上下文建模,使得图像压缩系统能够在无损压缩和近无损压缩模式间自由切换。并且,可以以图像子块为最小编码单元,针对图像不同区域采用不同的近无损度参数Near进行压缩,因此可对感兴趣的目标区域进行无损压缩,对其他区域进行有损压缩,这样可以在不损失感兴趣目标区域的信息的前提下提高压缩比,减小数据传输带宽的压力。整个压缩系统不需要对算法进行任何会导致压缩比下降的改进即可在确保各环节具有充足时序裕量的同时,完整实现了真正的全流水设计,由此达到极高的处理速度。
本发明包括以下步骤:
(1)预设参数
(1.1)读入像素位宽参数pixel_width。本发明支持两种量化比特数的图像的压缩:10bit和12bit;
(1.2)读入子块大小参数:子块行数row_size和子块列数column_size,确定最小编码单元MCU(Minimum_Coded_Unit)——子块大小;
(1.3)读入检纠错模式选择参数correction_mode,选通所需的检纠错编码方式:RS编码或者屏蔽检纠错编码;
(1.4)利用图像的帧同步信号对上述参数进行锁定,保持在一幅图像进行压缩的时候,子块大小参数和检纠错模式选择这两种参数不变;
(2)输入像素值和近无损度参数Near,进行图像分块
(2.1)将需要压缩的图像像素数据和与每一个像素对应的近无损度参数Near一起输入至图像缓存与分块模块中;
(2.2)根据读入的子块大小参数控制图像的缓存量,当存储器中图像的行数等于子块行数时,通过控制读地址按照设定好的子块大小参数逐块读出图像像素Ix和与该像素所对应的近无损度参数Near,通过这种方式将整幅图像分成若干子块,并以子块作为最小编码单元进行压缩编码。
(3)以图像子块为单位,将串行数据转换为两路并行数据
(3.1)像素数据和与之对应的近无损度参数Near按子块为单位串行输入到4个FIFO所组成的结构中。第1个子块的像素按照像素时钟连续写入FIFO1中,写完一个子块后,第2个子块的像素按照像素时钟连续写入FIFO3中,以此类推,第3个子块的像素按照像素时钟连续写入FIFO2中,之后第4个子块的像素按照像素时钟连续写入FIFO4中,后续子块按照以上顺序依次写入四个FIFO中;
(3.2)像素数据按子块为单位分为并行两路输出到两路预测编码模块。FIFO1和FIFO2以图像子块为单位交替输出像素Ix和与该像素所对应的近无损度参数Near至预测编码模块1,并且每个像素之间间隔一个像素时钟周期。同样的,FIFO3和FIFO4以图像子块为单位交替输出像素Ix和与该像素所对应的近无损度参数Near至预测编码模块2,并且每个像素之间间隔一个像素时钟周期;
(3.3)上下文参数RAM初始化。在每一个子块的像素写入FIFO之前,对该子块所对应的近无损度参数Near值进行采样,并对上下文参数RAM进行初始化操作。
(4)并行预测编码模块。采用空间并行原理,设置两路预测编码模块,同时进行预测编码,生成Golomb编码所需的变量。
(4.1)上下文建模。把重建后的像素值Rx(即步骤4.3)中数据预处理环节计算得到的像素重建值)输入到“FIFO+寄存器”缓存结构中,根据子块大小参数控制FIFO的读时机,当已经缓存了子块中一行的像素后,开始从FIFO中读出数据,从寄存器上依次获得当前像素值的近邻a、c、b、d,同时统计当前像素在子块中的坐标值。根据行列计数得到当前像素的坐标值,并读取每一个子块的第一个像素,即首像素Fp。再根据当前像素值的行列坐标和子块大小参数对当前像素的4个近邻进行边缘处理,获得重建值Ra、Rc、Rb、Rd:当前像素的坐标为子块的第一行第一列时,Ra、Rc、Rb、Rd均等于首像素Fp;当前像素的坐标为子块的第一行非第一列时,Ra等于对应坐标的像素值a,而Rc、Rb、Rd均等于首像素Fp;当前像素的坐标为子块的第一列非第一行时,Ra与Rb等于b,Rc等于Ra在前一行时的重建值;当前像素的坐标为子块的最后一列时,Rb、Rd等于b的像素值,Ra、Rc等于a、c的像素值;在其他位置时,Ra、Rc、Rb、Rd依次等于a、c、b、d;
(4.2)分为两个计算环节同时进行:索引值计算和像素预测
像素预测:
根据JPEG-LS算法原理,通过上下文建模中Ra值、Rb值以及Rc计算出像素预测值Px,用寄存器输出。
索引值计算:
(4.2.1)根据上下文建模的结果计算三个梯度值:Rd与Rb相减得到梯度一D[0];Rb与Rc相减得到梯度二D[1];Rc与Ra相减得到梯度三D[2];
(4.2.2)根据初始化得到的梯度量化阈值(T1、T2、T3)分别对三个梯度进行量化,具体处理方法为:将三个梯度值分别并行地与八个阈值(-T3、-T2、-T1、-NEAR、NEAR、T1、T2、T3)作比较,每个比较结果对应于8位的最终比较结果中的一位,三个梯度生成3个8bit的比较结果。即若梯度大于门限第i级门限,但小于或等于该级门限,则8bit的比较结果的0~i-1位均为1,i~7位为0;
(4.2.3)根据比较结果即可知道梯度位于哪个门限区间内,由此把该区间对应的量化值赋给量化结果即可得到三个量化结果Q_0,Q_1,Q_2;
(4.2.4)梯度修正与符号判断:分别判断三个梯度量化值Q_0,Q_1,Q_2是否为负数,若三个量化值从左到右第一个不为0的数是负数,那么就把三个量化值的绝对值赋给三个梯度修正值Q0,Q1,Q2,同时符号标志SIGN等于-1,否则直接把三个量化值依次赋给梯度修正值Q0,Q1,Q2,同时符号标志SIGN等于1,SIGN值用寄存器输出;
(4.2.5)索引地址计算:把三个梯度值依Q0,Q1,Q2依次与81、9、1相乘,再把三个乘积相加,算出索引值Q,用寄存器输出至流水线下一级。同时,寄存器输出之前,索引值Q直接作用至“上下文参数RAM”,以数据伴随的有效信号为读使能,读出索引值Q所对应的A、B、C、N四个参数。
(4.3)数据预处理:包含上下文参数C、N选择,预测值修正,残差计算,残差量化,像素重建,残差取模以及N参数更新等步骤。
(4.3.1)索引值Q不经过任何计算直接用寄存器锁存一级输出至下一级,以供步骤4.4中使用。
(4.3.2)上下文参数C、N选择:在步骤4.2中,索引值Q和数据有效信号作用于“上下文参数RAM”一周期后,参数A、B、C、N输出。根据“冲突控制”模块输出的“冲突指示信号”collosion,从步骤4.5回传的更新后的参数C_update、N_update和刚从“上下文参数RAM”读出的参数C、N当中进行选择,输出需要使用的参数C_sel、N_sel。当collosion为0时,选择从“上下文参数RAM”读出的参数C、N,而collosion为1时,选择从步骤4.5回传的更新后的参数C_update、N_update。参数选择采用组合逻辑实现。参数A和B不做任何计算,由寄存器锁存一级输出。
(4.3.3)N参数更新:根据JPEG-LS标准,使用符号标志SIGN与步骤“上下文参数C、N选择”所获取的参数N_sel进行N参数的更新,更新后得到N_update。当N参数进行更新时,若N_sel==RESET条件满足时,将N_flag置1,否则置0;根据JPEG-LS标准,上下文参数更新时,N_sel==RESET这一条件的满足与否会影响参数A、B的更新选择,因此N_flag随N_update一起通过寄存器输出至下一级,以供上下文参数A、B、C更新时使用。N_sel也用寄存器输出至下一级。
(4.3.4)预测值修正:根据JPEG-LS标准,使用符号标志SIGN与步骤“上下文参数C、N选择”所获取的参数C_sel对预测值Px进行修正,获得预测修正值Px_c;
(4.3.5)残差计算:根据JPEG-LS标准,利用符号标志SIGN、当前像素值Ix与预测修正值Px_c运算获得残差值Errval;
(4.3.6)残差量化:根据JPEG-LS标准,对残差值Errval进行量化,得到残差量化值Errval_q;
(4.3.7)像素重建:根据JPEG-LS标准,通过符号标志SIGN、当前像素值Ix、残差量化值Errval_q以及近无损度参数Near值计算得到像素重建值Rx,再将像素重建值Rx反馈至上下文建模模块中,用来提供步骤4.1中当前像素上下文建模的环境模板。在无损压缩模式下,像素重建值Rx等于原像素值Ix。
(4.3.8)残差取模:根据JPEG-LS标准,利用残差取模范围RANGE对残差量化值Errval_q进行取模,使残差映射到取模范围内,得到残差取模值Errval_Mod,并用寄存器输出至下一级。
(4.4)上下文参数更新,包含两个环节:上下文参数A、B选择,上下文参数A、B、C更新。
(4.4.1)上下文参数A、B选择:根据“冲突控制”模块输出的“冲突指示信号”collosion,从步骤4.6回传的更新后的参数A_update、B_update和步骤4.3输出的参数A、B当中进行选择,输出需要使用的参数A_sel、B_sel。当collosion为0时,选择步骤4.3输出的参数A、B,而collosion为1时,选择从步骤4.6回传的更新后的参数A_update、B_update。参数选择采用组合逻辑实现。
(4.4.2)上下文参数A、B、C更新:根据JPEG-LS标准,使用残差取模值Errval_Mod,选择后的参数A_sel、B_sel、C_sel,以及步骤4.3中N参数更新后输出的N_flag信号,采用组合逻辑对上下文参数选择后获取的A、B、C参数进行更新计算(每一个子块所对应的近无损度参数Near会伴随像素进入预测编码流水线中,根据当前使用的近无损度参数Near进行参数更新计算),得到更新的参数A_update、B_update、C_update,连同步骤4.3中输出过来的N_update一起,写入“上下文参数RAM”,伴随的数据有效信号作为RAM的“写使能”信号,步骤4.3中输出的索引值Q作为RAM的“写地址”。与此同时,A_update、B_update、C_update、N_update通过寄存器输出至下一级。筛选后的用来进行参数更新的三个参数A_sel、B_sel、N_sel和残差取模值Errval_Mod也通过寄存器输出至下一级,以供残差映射和K值计算使用。
(4.5)包括主要的两个环节,即残差映射和K值计算。
(4.5.1)Stage4输出的C_update、N_update参数直接回传至步骤4.3参与预处理运算中的上下文参数C、N选择。A_update、B_update参数则直接经寄存器输出至步骤4.6。
(4.5.2)残差映射:根据JPEG-LS标准,使用残差取模值Errval_Mod,选择后的参数A_sel、B_sel计算出映射后的残差值MErrval,经寄存器输出至步骤4.6。
(4.5.3)K值计算:JPEG-LS标准中实现方法为比较A与向左移位后的N,当A=N时,则K=0;当N<A≤(N<<1)时,则K=1;当(N<<1)<A≤(N<<2)时,则K=2;当(N<<2)<A≤(N<<3)时,则K=3……以此类推,用这种方式实现,可以减小计算复杂度,缩短计算延时;计算得到K值后,通过寄存器输出至步骤4.6;
(4.5.4)预测编码中还有一个重要的环节,即“数据冲突控制”。将步骤4.2和步骤4.4中的索引值Q进行对比,生成对比结果:“冲突指示信号”collision。由于并行预测编码时,每一路的像素均相隔一个周期输入,因此,当两者相等时,表示相邻的两个像素使用的是“上下文参数RAM”中的同一个地址的参数,当前地址Qn像素刚进入“读参数”环节时,上一个Qn-1对应像素的上下文参数已更新完毕,但还未写入到“上下文参数RAM”中,此时输出collision=1。当两者不相等时,表示相邻的两个像素使用的是“上下文参数RAM”中的不同地址的参数,当前像素需要使用最新的上下文参数时,可以直接访问“上下文参数RAM”,此时输出collision=0。collision伴随每一级的数据有效信号逐级传递,并分别作用于步骤4.2和步骤4.4中的上下文参数选择模块。
(4.5.5)上下文参数RAM乒乓操作模块:为了防止误码扩散,需确保每个子块的编码过程都是独立完整的,即需要把每个子块当做一幅独立的图像进行编码,因此每个子块的参数初始化和更新都是独立的,需要用到两组RAM。在当前子块做完进入下一子块的编码时需清除当前块对参数RAM的更新操作,使其回归初始值,即需要对参数RAM使用各参数的初始值进行初始化。由于A、B、C、N四个参数均为长度为365的数组,要完成初始化,需对365个RAM地址写入初始值。
(4.6)将步骤4e)中传输过来的更新后的参数A_update、B_update回传给步骤4.4中,参与上下文参数A、B、C更新之前的上下文参数A、B选择。
(5)以图像子块为单位,将两路预测编码结果并为一路输出。
当两个预测编码模块进行预测编码后,将两路输出结果以子块为单位合并为一路输出至后续熵编码模块。预测编码模块1的将随流水线传递的近无损度参数Near、子块的首像素Fp、编码结果K值以及残差映射值MErrval拼位后一并写入到FIFO5中,而预测编码模块2的将随流水线传递的近无损度参数Near、子块的首像素Fp、编码结果K值以及残差映射值MErrval拼位后一并写入到FIFO6中。当FIFO5中写满一个子块的数目后,开始读FIFO5,读完一个子块数目的数据后转至FIFO6,同样等到输出完一个子块数目的数据后再跳转至FIFO6,按照此循环进行读取,使得预测编码结果可连续输出。
(6)熵编码:Golomb编码
(6.1)根据串行输出的K值,把串行输出的残差映射值MErrval右移K位,即把残差映射值除以2K,由此获得商值val;
(6.2)用残差映射值MErrval减去商值val并左移K位的结果,由此获得残差映射值除以2K的余数n;
(6.3)生成编码:如果计算出的商值val小于编码限长门限LMAX,则把数值1左移K位,在加上余数n即可生成编码,而把商值加上K,再加1即可得到编码长度,即val+K+1;若商值不小于编码限长门限LMAX,则把数值1右移像素位宽位,同时加上残差映射值MErrval,再减去1即可得到编码,而此时的编码长度为LIMIT;
(6.4)编码拼接:根据编码长度,从LIMIT位的编码中提取有效编码,从高到低地拼接到64位的寄存器中,此处两个64位的寄存器配合各自的计数器乒乓地完成该工作。若其中一个64位的寄存器写满时就把它输出并清空,同时把编码拼到另一个寄存器中;
(7)EDC(ErrorDetectionandCorrection)信息生成
将各个编码长度进行累加,统计每个子块的编码总长,总长信息能保证区分开每一个子块对应的码流。将每个子块首像素Fp和编码总长以及该子块使用的近无损度参数Near拼位,生成EDC信息。EDC信息提供了解码所必需的相关信息;
(8)码流整合与EDC信息插入:把生成的64位的码流通过FIFO转成16位后输出,每输出16个子块的码流,就把这16个子块的EDC信息插入到他们的码流之后,为保证可靠性,每个块的EDC信息都要复制三份16块为一组地插入到码流中,三份之间两两相隔16个子块的码流,即每输出16块的编码之后,除了要插入当前16个子块的EDC信息,还要把其前两组16个子块的EDC信息插一遍,如此确保每个子块的EDC信息倒在码流中插了3份。这样虽然带来了一定的数据冗余,但是可保证在码流传输时的信道误码对码流信息造成一定程度损坏的情况下,还能在解码时将EDC信息提取出来,增加了码流的抗误码性能。
(9)检纠错编码:根据参数检纠错模式来选通使用的检纠错模式,RS编码或者屏蔽检纠错编码:
(9.1)若选通RS编码模式,则对生成的插入EDC信息的混合码流,每223byte信息码,生成32byte校验码并插入到该223byte信息码之后,以此生成抗误码码流;
(9.2)若选通屏蔽检纠错编码模式,则不进行检纠错编码,直接将生成的插入EDC信息的混合码流输出。
(9.3)选择RS检纠错编码可以防止一定程度的信道误码,但是会造成压缩比的损失,如果通信信道误码率低,为了提高压缩比,可以选择屏蔽检纠错编码。
(10)码流组帧:在一幅图像的码流的起始端加入帧头识别字段和相关编码信息,编码信息包括子块大小,图像大小,图像像素位宽,检纠错编码模式以及近无损度参数,在码流的结尾加入帧尾识别字段,输出生成的编码码流。
附图说明
图1为本发明的流程图;
图2为本发明中图像分块方式的示意图;
图3为并行预测模块的结构框图;
图4为并行预测模块的输入控制结构框图;
图5为并行预测模块的输出控制结构框图;
图6为并行预测模块串并转换接口的FIFO读写时序图;
图7为预测模块的结构框图;
图8为当前像素与其四近邻的关系图;
图9为梯度量化模块的结构图;
图10为预处理模块的结构图;
图11为上下文参数更新结构图;
图12为数据冲突控制模块结构图;
图13为数据冲突控制原理示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
如图1所示,为本发明关于基于JPEG-LS压缩算法的分块压缩抗误码扩散全流水线无损/近无损星上图像压缩系统的实现流程所示,包括如下步骤:
步骤1,预设参数。
第一步,读入像素位宽参数pixel_width。本发明支持两种量化比特数的图像的压缩:10bit和12bit。在针对特定的量化比特数的图像压缩时,像素位宽是一个确定的值,并且保持不变。
第二步,读入子块大小参数:子块行数row_size和子块列数column_size,子块行数row_size可取8、16两种(增大子块行数将需要更大的存储空间,同时导致更长的处理延时),子块列数column_size可取32、64两种,因此有四种图像子块模式:8×32,8×64,16×32以及16×64。将图像分成若干子块后进行压缩,可以使得在压缩码流传输时引入误码后,在解码时,能将误码扩散影响局限在某一个子块内而不至于扩散影响到图像其他部分的正常解码。实验证明,子块越小,压缩比越低,但抗误码扩散性能越好;子块越大,压缩比越高,但抗误码扩散性能越差。需根据实际需求设定适合的子块大小。
第三步,读入检纠错模式选择参数correction_mode,选通所需的检纠错编码方式:RS编码或者屏蔽检纠错编码。
第四步,利用图像的帧同步信号对上述参数进行锁定,保持在一幅图像进行压缩的时候,子块大小参数和检纠错模式选择这两种参数不变。
步骤2,输入像素值和近无损度参数Near,进行图像分块。
第一步,将需要压缩的图像像素数据和每一个像素所对应的近无损度参数Near一起输入至图像缓存与分块模块中。
第二步,如图2所示,根据读入的子块大小参数控制图像的缓存量,当存储器中图像的行数等于子块行数时,通过控制读地址按照设定好的子块大小参数逐块读出图像像素Ix和与该该像素所对应的近无损度参数Near,通过这种方式将整幅图像分成若干子块,并以子块作为最小编码单元(MCU)进行压缩编码。
本发明中,近无损度参数Near可以取0,1,2,3四种,当Near=0时为无损压缩模式,Near非0时为近无损压缩模式。并且,本发明适应分区域无损/近无损压缩,即可针对图像中不同的区域采用不同的近无损度参数Near进行压缩,例如,可对感兴趣的目标区域进行无损压缩,对其他区域进行有损压缩,这样可以在不损失感兴趣目标区域的信息的前提下提高压缩比,减小数据传输带宽的压力。因此,在图像进入压缩系统之前,应设定好图像各个区域所采用的近无损度参数Near。组成每个区域的最小单元为图像的子块,需要在输入每一个像素时,同时输入与该像素所在区域对应的近无损度参数Near。
步骤3,以图像子块为单位,将串行数据转换为两路并行数据。
如图3所示,利用四个FIFO把分块后的图像像素Ix和与其对应的近无损度参数Near拼位后以图像子块为单位分别输入到两路并行的预测编码模块中,并且,FIFO在输出时,像素之间均间隔一个像素时钟周期输入(可使得步骤4中的Stage3有足够的时间进行像素重建的相关计算),各个FIFO的读写时序如图6所示,第1、3、5、7……子块进入预测编码模块1进行预测编码,第2、4、6、8……子块进入预测编码模块2进行预测编码。
第一步,串行数据输入。假设一个子块的像素连续传输所需的时间为T,写入时序为:第1个子块的像素按照像素时钟连续写入FIFO1中,T时间后写完,第2个子块的像素按照像素时钟连续写入FIFO3中,以此类推,第3个子块的像素按照像素时钟连续写入FIFO2中,之后第4个子块的像素按照像素时钟连续写入FIFO4中,后续子块按照以上顺序依次写入四个FIFO中。
第二步,并行数据输出。两路输入的变量包括图像像素Ix和与之对应的近无损度参数Near。若图6所示,预测编码模块1的数据输入时序为:当第2个子块的像素全部写入FIFO3后,FIFO1开始输出一个第1个子块的像素,输出时每个像素间隔一个像素时钟周期,输出完整个子块的像素需要至少2T的时间,待FIFO1将第1个子块的像素输出完后,切换至FIFO2,将FIFO2中第3个子块的像素在至少2T时间内输出完,此后FIFO1和FIFO2依次交替输出。
预测编码模块2的数据输入时序与预测编码模块1相同:当FIFO2中第3个子块的像素写入完毕后,FIFO3开始输出第2个子块的像素,输出完后,紧接着FIFO4开始输出第4子块的像素,此后FIFO3和FIFO4依次交替输出。同样的,FIFO3和FIFO4输出数据时,每个像素间隔一个时钟周期。
第三步,上下文参数RAM初始化。由于按子块进行压缩,前后子块之间参数需要保持独立,因此在下一个子块进行预测编码之前需要根据该子块对应的近无损度参数Near对参数重新初始化,若在当前子块做完之后才进行初始化,势必阻止流水线的正常运行,降低压缩速度,因此需使用乒乓操作,即在每一路预测编码模块中,A、B、C、N四个上下文参数均拥有两组具有365个地址(地址取值范围为0到364)的RAM。正常工作时,一组RAM用于当前图像子块的上下文参数更新,另一组则针对下一个图像子块进行初始化,以等待下一子块的访问。因此初始化工作需提前进行:
在每一个子块的像素写入FIFO之前,需对该子块所对应的近无损度参数Near值进行采样,如图6所示,当预测编码模块1中的第3个子块刚开始写入FIFO2时,对该子块的近无损度参数Near进行采样,并开始初始化,由上下文参数RAM2参与此工作;与此同时,预测编码模块1正在对第1个子块像素进行上下文参数更新,由上下文参数RAM1参与上下文参数更新工作;当第1个子块预测编码结束后,第3个子块从FIFO2输出,此时便使用上下文参数RAM2进行相关的参数更新工作……以这种方式进行乒乓操作,可保证当该子块的像素进行预测编码时,使用的是初始化完毕的上下文参数。
由于像素位宽最大可达12bit,因此A、B两个参数的参数RAM大小均为365*20bit、C参数的为365*9bit,N的为365*7bit。B参数与C参数的初始值均为0,N参数初始值始终为1,A参数的初始值为:
初始化工作是将A、B、C、N四个参数的初始值按照像素时钟,连续地写入到上下文参数RAM的0到364的地址当中,本发明中使用双端口RAM,这样在初始化时,可以同时使用两个端口进行写操作,这样可以节省一半的初始化时间。
步骤4,并行预测编码模块。
如图6所示,采用两路预测模块并行的模式,其中单路的预测模块结构如图6所示,采用全流水线结构,其中像素重建值Rx和一些上下文参数存在反馈回路。
Stage1:上下文建模。把重建后的像素值Rx(Stage3中数据预处理环节中计算得到的像素重建值)输入到“FIFO+寄存器”缓存结构中,根据子块大小参数控制FIFO的读时机,当缓存了子块中一行的像素量后,开始从FIFO中读出数据,从寄存器上依次获得当前像素值的近邻a、c、b、d,同时统计当前像素在子块中的坐标值。根据行列计数得到当前像素的坐标值,并读取每一个子块的第一个像素,即首像素Fp。再根据当前像素值的行列坐标和子块大小参数对当前像素的4个近邻进行边缘处理,获得重建值Ra、Rc、Rb、Rd。对于大多数像素,如图8(a)所示,其像素重建值与缓存结构输出的值存在如下关系:
Ra=a,Rb=b,Rc=c,Rd=d,即分别等于对应坐标的像素值。
当处于以下4种特殊情形时为防误码扩散需保证每个子块预测和编码的独立性,因此需要打断其与相邻块之间的关系,简言之,当前子块的上下文建模不能使用其之前和之后的子块的像素,因此需做以下处理:
(1)如图8(b)所示,当前像素的坐标为子块的第一行第一列时,Ra、Rc、Rb、Rd均等于首像素Fp;
(2)如图8(c)所示,当前像素的坐标为子块的第一行非第一列时,Ra等于a对应坐标的像素值,而Rc、Rb、Rd均等于首像素Fp;
(3)如图8(d)所示,当前像素的坐标为子块的第一列非第一行时,Ra与Rb等于b对应坐标的像素值,Rc等于Ra在前一行时的重建值Ra_r;
(4)如图8(e)所示,当前像素的坐标为子块的最后一列时,Rb、Rd等于b对应坐标的像素值,Ra、Rc分别等于a、c对应坐标的像素值。
完成后,将上下文重建值Ra、Rc、Rb、Rd用寄存器输出。
Stage2:分为两个计算环节同时进行,即索引值计算和像素预测。
(1)像素预测:比较上下文建模中Ra值与Rb值的大小,若Ra大于Rb,则将Ra作为较大值,将Rb作为较小值,否则将Rb作为较大值,将Ra作为较小值;比较Rc值与较大值的大小,若Rc值大于较大值,则像素预测值Px等于较小值,否则,比较Rc值与较小值的大小,若Rc值小于较小值,则像素预测值Px取较大值,否则,固定预测值Px取Ra值加上Rb值再减去Rc值的结果,最终得到像素预测值Px,用寄存器输出。
(2)索引值计算:
(2.1)根据上下文建模的结果计算三个梯度值:Rd与Rb相减得到梯度一D[0];Rb与Rc相减得到梯度二D[1];Rc与Ra相减得到梯度三D[2];
(2.2)根据初始化得到的梯度量化阈值(T1、T1)分别对三个梯度进行量化,依据JPEG-LS标准,当像素位宽pixel_width选择12bit时,梯度量化阈值为18、67、276;当像素位宽pixel_width选择10bit时,梯度量化阈值为6、19、72,具体处理方法为:将三个梯度值分别并行地与八个阈值(-T3、-T2、-T1、-NEAR、NEAR、T1、T2、T3)作比较,每个比较结果对应于8位的最终比较结果中的一位,三个梯度生成3个8bit的比较结果。即若梯度大于门限第i级门限,但小于或等于该级门限,则8bit的比较结果的0~i-1位均为1,i~7位为0;
(2.3)根据比较结果即可知道梯度位于哪个门限区间内,由此把该区间对应的量化值赋给量化结果即可得到三个量化结果Q_0,Q_1,Q_2;
(2.4)梯度修正与符号判断:分别判断三个梯度量化值Q_0,Q_1,Q_2是否为负数,若三个量化值从左到右第一个不为0的数是负数,那么就把三个量化值的绝对值赋给三个梯度修正值Q0,Q1,Q2,同时符号标志SIGN等于-1,否则直接把三个量化值依次赋给梯度修正值Q0,Q1,Q2,同时符号标志SIGN等于1,SIGN值用寄存器输出;
(2.5)索引地址计算:把三个梯度值依Q0,Q1,Q2依次与81、9、1相乘,在把三个乘积相加,算出索引值Q,用寄存器输出至流水线下一级。同时,寄存器输出之前,索引值Q直接作用至“上下文参数RAM”,以数据伴随的有效信号为读使能,读出索引值Q所对应的A、B、C、N四个参数。
Stage3:数据预处理。
包括几个环节:上下文参数C、N选择,预测值修正,残差计算,残差量化,像素重建,残差取模以及N参数更新,如图10所示。
索引值Q不经过任何计算直接用寄存器锁存一级输出至Stage4。
(2)上下文参数C、N选择:在Stage2中,索引值Q和数据有效信号作用于“上下文参数RAM”一周期后,参数A、B、C、N输出。根据“冲突控制”模块输出的“冲突指示信号”collosion,从Stage5回传的更新后的参数C_update、N_update和刚从“上下文参数RAM”读出的参数C、N当中进行选择,输出需要使用的参数C_sel、N_sel。当collosion为0时,选择从“上下文参数RAM”读出的参数C、N,而collosion为1时,选择从Stage5回传的更新后的参数C_update、N_update。参数选择采用组合逻辑实现。参数A和B不做任何计算,由寄存器锁存一级输出。
(3)N参数更新:根据JPEG-LS标准,使用符号标志SIGN与步骤“上下文参数C、N选择”所获取的参数N_sel进行N参数的更新,更新后得到N_update。当N参数进行更新时,若N_sel==RESET条件满足时,将N_flag置1,否则置0;根据JPEG-LS标准,上下文参数更新时,N_sel==RESET这一条件的满足与否会影响参数A、B的更新选择,因此N_flag随N_update一起通过寄存器输出至下一级,以供上下文参数A、B、C更新时使用。N_sel也用寄存器输出至下一级。
(4)预测值修正:根据JPEG-LS标准,使用符号标志SIGN与步骤“上下文参数C、N选择”所获取的参数C_sel对预测值Px进行修正,获得预测修正值Px_c。
(5)残差计算:根据JPEG-LS标准,利用符号标志SIGN、当前像素值Ix与预测修正值Px_c运算获得残差值Errval。
(6)残差量化:根据JPEG-LS标准,对残差值Errval进行量化,得到残差量化值Errval_q,计算公式为:
其中,int为取整操作,Errval为残差值,Near为近无损度参数。
(7)像素重建:根据JPEG-LS标准,通过符号标志SIGN、当前像素值Ix、残差量化值Errval_q以及近无损度参数Near值计算得到像素重建值Rx,计算公式为:
Rx=Px_c+SIGN*Errval_q*(2*Near+1)
得到的像素重建值Rx再反馈至上下文建模模块中,用来提供Stage1中当前像素上下文建模的环境模板。在无损压缩模式下,像素重建值Rx等于原像素值Ix。
(8)残差取模:根据JPEG-LS标准,利用残差取模范围RANGE对残差量化值Errval_q进行取模,使残差映射到取模范围内:
得到残差取模值Errval_Mod,用寄存器输出至下一级。
预测编码使用的参数:每一个子块所对应的近无损度参数Near会随着像素进入预测编码流水线中,在进行预测编码时,根据像素位宽pixel_width和近无损度参数Near实时选择列表中对应的残差取模范围RANGE。残差取模范围RANGE取值与像素位宽以及近无损度参数Near值相关:
Stage4:上下文参数更新。
如图11所示,包含两个环节:上下文参数A、B选择,上下文参数A、B、C更新。
(1)上下文参数A、B选择:根据“冲突控制”模块输出的“冲突指示信号”collosion,从Stage6回传的更新后的参数A_update、B_update和Stage3输出的参数A、B当中进行选择,输出需要使用的参数A_sel、B_sel。当collosion为0时,选择Stage3输出的参数A、B,而collosion为1时,选择从Stage6回传的更新后的参数A_update、B_update。参数选择采用组合逻辑实现。
(2)上下文参数A、B、C更新:根据JPEG-LS标准,使用残差取模值Errval_Mod,选择后的参数A_update、B_update、C_update,以及Stage3中N参数更新后输出的N_flag信号,采用组合逻辑对上下文参数选择后获取的A、B、C参数进行更新计算(每一个子块所对应的近无损度参数Near会伴随像素进入预测编码流水线中,根据当前使用的近无损度参数Near进行参数更新计算),得到更新的参数A_update、B_update、C_update,连同Stage3中输出过来的N_update一起,写入“上下文参数RAM”,伴随的数据有效信号作为RAM的“写使能”信号,Stage3中输出的索引值Q作为RAM的“写地址”。与此同时,A_update、B_update、C_update、N_update通过寄存器输出至下一级。筛选后的用来进行参数更新的三个参数A_sel、B_sel、N_sel和残差取模值Errval_Mod也通过寄存器输出至下一级,以供残差映射和K值计算使用。
Stage5:包括主要的两个环节,即残差映射和K值计算。
(1)Stage4输出的C_update、N_update参数直接回传至Stage3参与预处理运算中的上下文参数C、N选择。A_update、B_update参数则直接经寄存器输出至Stage6。
(2)残差映射:根据JPEG-LS标准,使用残差取模值Errval_Mod,选择后的参数A_sel、B_sel计算出映射后的残差值MErrval,经寄存器输出至Stage6。
(3)K值计算:根据JPEG-LS标准,实现方法为将A与向左移位后的N进行比较,当A=N时,则K=0;当N<A≤N(<)1时,则K=1;当(N<<1)<A≤(N<<2)时,则K=2;当(N<<2)<A≤(N<<3)时,则K=3……以此类推,用这种方式实现,可以减小计算复杂度,缩短计算延时。计算得到K值后,通过寄存器输出至Stage6。
(4)预测编码中还有一个重要的环节,即“数据冲突控制”。如图12所示,将Stage2和Stage4中的索引值Q进行对比,生成对比结果:“冲突指示信号”collision。如图13所示,由于并行预测编码时,每一路的像素均相隔一个周期输入,因此,当两者相等时,表示相邻的两个像素使用的是“上下文参数RAM”中的同一个地址的参数,当前地址Qn像素刚进入“读参数”环节时(Stage2),上一个Qn-1对应像素的上下文参数已更新完毕(Stage4),但还未写入到“上下文参数RAM”中,此时输出collision=1。当两者不相等时,表示相邻的两个像素使用的是“上下文参数RAM”中的不同地址的参数,当前像素需要使用最新的上下文参数时,可以直接访问“上下文参数RAM”,此时输出collision=0。collision伴随每一级的数据有效信号逐级传递,并分别作用于Stage2和Stage4中的上下文参数选择模块。
(5)上下文参数RAM乒乓操作模块:为了防止误码扩散,需确保每个子块的编码过程都是独立完整的,即需要把每个子块当做一幅独立的图像进行编码,因此每个子块的参数初始化和更新都是独立的,需要用到两组RAM。在当前子块做完进入下一子块的编码时需清除当前块对参数RAM的更新操作,使其回归初始值,即需要对参数RAM使用各参数的初始值进行初始化。由于A、B、C、N四个参数均为长度为365的数组,要完成初始化,需对365个RAM地址写入初始值。
Stage6:将Stage5中传输过来的更新后的参数A_update、B_update回传给Stage4中,参与上下文参数A、B、C更新之前的上下文参数A、B选择。
步骤5,以图像子块为单位,将两路预测编码结果并为一路输出。
如图5所示,当两个预测编码模块进行预测编码后,将两路输出结果以子块为单位合并为一路输出至后续熵编码模块。预测编码模块1的将随流水线传递的近无损度参数Near、子块的首像素Fp、编码结果K值以及残差映射值MErrval拼位后一并写入到FIFO5中,而预测编码模块2的将随流水线传递的近无损度参数Near、子块的首像素Fp、编码结果K值以及残差映射值MErrval拼位后一并写入到FIFO6中。操作时序如图6所示,当FIFO5中写满一个子块的数目后,开始读FIFO5,读完一个子块数目的数据后转至FIFO6,同样等到输出完一个子块数目的数据后再跳转至FIFO6,以此循环读取,使得预测编码结果可连续输出。
步骤6,熵编码:Golomb编码。
第一步,根据串行输出的K值,把串行输出的残差映射值MErrval右移K位,即把残差映射值除以2K,由此获得商值val;
第二步,用残差映射值MErrval减去商值val并左移K位的结果,由此获得残差映射值除以2K的余数n;
编码参数包括残差映射位宽qbpp和变长编码门限LMAX,因此,针对不同像素位宽和近无损度参数Near,残差映射位宽qbpp的取值为:
在参数初始化时,可根据像素位宽pixel_width和近无损度参数Near选择列表中对应的残差映射位宽qbpp。而变长编码门限LMAX可根据JPEG-LS标准中的计算公式实时计算得到:LMAX=LIMIT-qbpp-1,供后面生成编码使用;
第三步,生成编码:如果计算出的商值val小于编码限长门限LMAX,则把数值1左移K位,在加上余数n即可生成编码,而把商值加上K,再加1即可得到编码长度,即val+K+1;若商值不小于编码限长门限LMAX,则把数值1右移像素位宽位,同时加上残差映射值MErrval,再减去1即可得到编码,而此时的编码长度为LIMIT;
第四步,编码拼接:根据编码长度,从LIMIT位的编码中提取有效编码,从高到低地拼接到64位的寄存器中,此处两个64位的寄存器配合各自的计数器乒乓地完成该工作。若其中一个64位的寄存器写满时就把它输出并清空,同时把编码拼到另一个寄存器中。
步骤7,EDC(ErrorDetectionandCorrection)信息生成。
将各个编码长度进行累加,统计每个子块的编码总长,总长信息能保证区分开每一个子块对应的码流。将每个子块首像素Fp和编码总长以及该子块使用的近无损度参数Near拼位,生成EDC信息。EDC信息提供了解码所必需的相关信息。
步骤8,码流整合与EDC信息插入。
把生成的64位的码流通过FIFO转成16位后输出,每输出16个子块的码流,就把这16个子块的EDC信息插入到他们的码流之后,为保证可靠性,每个块的EDC信息都要复制三份16块为一组地插入到码流中,三份之间两两相隔16个子块的码流,即每输出16块的编码之后,除了要插入当前16个子块的EDC信息,还要把其前两组16个子块的EDC信息插一遍,如此确保每个子块的EDC信息倒在码流中插了3份。这样虽然带来了一定的数据冗余,但是可保证在码流传输时的信道误码对码流信息造成一定程度损坏的情况下,还能在解码时将EDC信息提取出来,增加了码流的抗误码性能。
步骤9,检纠错编码。
根据参数检纠错模式来选通使用的检纠错模式,RS编码或者屏蔽检纠错编码:
若选通RS编码模式,则对生成的插入EDC信息的混合码流,每223byte信息码,生成32byte校验码并插入到该223byte信息码之后,以此生成抗误码码流;
若选通屏蔽检纠错编码模式,则不进行检纠错编码,直接将生成的插入EDC信息的混合码流输出。
选择RS检纠错编码可以防止一定程度的信道误码,但是会造成压缩比的损失,如果通信信道误码率低,为了提高压缩比,可以选择屏蔽检纠错编码。
步骤10,码流组帧。
在一幅图像的码流的起始端加入帧头识别字段和相关编码信息,编码信息包括子块大小,图像大小,图像像素位宽,检纠错编码模式以及近无损度参数,在码流的结尾加入帧尾识别字段,输出生成的编码码流。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种防误码扩散的JPEG-LS图像无损/近无损压缩算法硬件实现方法,其特征在于,包括以下步骤:
(1)预设参数
(1.1)读入像素位宽参数pixel_width;
(1.2)读入子块大小参数:子块行数row_size和子块列数column_size,确定最小编码单元MCU(Minimum_Coded_Unit)子块大小;
(1.3)读入检纠错模式选择参数correction_mode,选通所需的检纠错编码方式:RS编码或者屏蔽检纠错编码;
(1.4)利用图像的帧同步信号对上述参数进行锁定,保持在一幅图像进行压缩的时候,子块大小参数和检纠错模式选择这两种参数不变;
(2)输入像素值和近无损度参数Near,进行图像分块
(2.1)将需要压缩的图像像素数据和与每一个像素对应的近无损度参数Near一起输入至图像缓存与分块模块中;
(2.2)根据读入的子块大小参数控制图像的缓存量,当存储器中图像的行数等于子块行数时,通过控制读地址按照设定好的子块大小参数逐块读出图像像素Ix和与该像素所对应的近无损度参数Near,通过这种方式将整幅图像分成若干子块,并以子块作为最小编码单元进行压缩编码;
(3)以图像子块为单位,将串行数据转换为两路并行数据
(3.1)像素数据和与之对应的近无损度参数Near按子块为单位串行输入到4个FIFO所组成的结构中;第1个子块的像素按照像素时钟连续写入FIFO1中,写完一个子块后,第2个子块的像素按照像素时钟连续写入FIFO3中,以此类推,第3个子块的像素按照像素时钟连续写入FIFO2中,之后第4个子块的像素按照像素时钟连续写入FIFO4中,后续子块按照以上顺序依次写入四个FIFO中;
(3.2)像素数据按子块为单位分为并行两路输出到两路预测编码模块;FIFO1和FIFO2以图像子块为单位交替输出像素Ix和与该像素所对应的近无损度参数Near至预测编码模块1,并且每个像素之间间隔一个像素时钟周期;同样的,FIFO3和FIFO4以图像子块为单位交替输出像素Ix和与该像素所对应的近无损度参数Near至预测编码模块2,并且每个像素之间间隔一个像素时钟周期;
(3.3)上下文参数RAM初始化:在每一个子块的像素写入FIFO之前,对该子块所对应的近无损度参数Near值进行采样,并对上下文参数RAM进行初始化操作;
(4)并行预测编码模块:采用空间并行原理,设置两路预测编码模块,同时进行预测编码,生成Golomb编码所需的变量;
(4.1)上下文建模:把重建后的像素值Rx输入到“FIFO+寄存器”缓存结构中,根据子块大小参数控制FIFO的读时机,当已经缓存了子块中一行的像素后,开始从FIFO中读出数据,从寄存器上依次获得当前像素值的近邻a、c、b、d,同时统计当前像素在子块中的坐标值;根据行列计数得到当前像素的坐标值,并读取每一个子块的第一个像素,即首像素Fp;再根据当前像素值的行列坐标和子块大小参数对当前像素的4个近邻进行边缘处理,获得重建值Ra、Rc、Rb、Rd:当前像素的坐标为子块的第一行第一列时,Ra、Rc、Rb、Rd均等于首像素Fp;当前像素的坐标为子块的第一行非第一列时,Ra等于对应坐标的像素值a,而Rc、Rb、Rd均等于首像素Fp;当前像素的坐标为子块的第一列非第一行时,Ra与Rb等于b,Rc等于Ra在前一行时的重建值;当前像素的坐标为子块的最后一列时,Rb、Rd等于b的像素值,Ra、Rc等于a、c的像素值;在其他位置时,Ra、Rc、Rb、Rd依次等于a、c、b、d;
(4.2)分为两个计算环节同时进行:索引值计算和像素预测
像素预测:
根据JPEG-LS算法原理,通过上下文建模中Ra值、Rb值以及Rc计算出像素预测值Px,用寄存器输出;
索引值计算:
(4.2.1)根据上下文建模的结果计算三个梯度值:Rd与Rb相减得到梯度一D[0];Rb与Rc相减得到梯度二D[1];Rc与Ra相减得到梯度三D[2];
(4.2.2)根据初始化得到的梯度量化阈值(T1、T2、T3)分别对三个梯度进行量化,具体处理方法为:将三个梯度值分别并行地与八个阈值(-T3、-T2、-T1、-NEAR、NEAR、T1、T2、T3)作比较,每个比较结果对应于8位的最终比较结果中的一位,三个梯度生成3个8bit的比较结果;即若梯度大于门限第i级门限,但小于或等于该级门限,则8bit的比较结果的0~i-1位均为1,i~7位为0;
(4.2.3)根据比较结果即可知道梯度位于哪个门限区间内,由此把该区间对应的量化值赋给量化结果即可得到三个量化结果Q_0,Q_1,Q_2;
(4.2.4)梯度修正与符号判断:分别判断三个梯度量化值Q_0,Q_1,Q_2是否为负数,若三个量化值从左到右第一个不为0的数是负数,那么就把三个量化值的绝对值赋给三个梯度修正值Q0,Q1,Q2,同时符号标志SIGN等于-1,否则直接把三个量化值依次赋给梯度修正值Q0,Q1,Q2,同时符号标志SIGN等于1,SIGN值用寄存器输出;
(4.2.5)索引地址计算:把三个梯度值依Q0,Q1,Q2依次与81、9、1相乘,再把三个乘积相加,算出索引值Q,用寄存器输出至流水线下一级;同时,寄存器输出之前,索引值Q直接作用至“上下文参数RAM”,以数据伴随的有效信号为读使能,读出索引值Q所对应的A、B、C、N四个参数;
(4.3)数据预处理:包含上下文参数C、N选择,预测值修正,残差计算,残差量化,像素重建,残差取模以及N参数更新;
(4.3.1)索引值Q不经过任何计算直接用寄存器锁存一级输出至下一级,以供步骤4.4中使用;
(4.3.2)上下文参数C、N选择:在步骤4.2中,索引值Q和数据有效信号作用于“上下文参数RAM”一周期后,参数A、B、C、N输出;根据“冲突控制”模块输出的“冲突指示信号”collosion,从步骤4.5回传的更新后的参数C_update、N_update和刚从“上下文参数RAM”读出的参数C、N当中进行选择,输出需要使用的参数C_sel、N_sel;当collosion为0时,选择从“上下文参数RAM”读出的参数C、N,而collosion为1时,选择从步骤4.5回传的更新后的参数C_update、N_update;参数选择采用组合逻辑实现;参数A和B不做任何计算,由寄存器锁存一级输出;
(4.3.3)N参数更新:根据JPEG-LS标准,使用符号标志SIGN与步骤“上下文参数C、N选择”所获取的参数N_sel进行N参数的更新,更新后得到N_update;当N参数进行更新时,若N_sel==RESET条件满足时,将N_flag置1,否则置0;根据JPEG-LS标准,上下文参数更新时,N_sel==RESET这一条件的满足与否会影响参数A、B的更新选择,因此N_flag随N_update一起通过寄存器输出至下一级,以供上下文参数A、B、C更新时使用;N_sel也用寄存器输出至下一级;
(4.3.4)预测值修正:根据JPEG-LS标准,使用符号标志SIGN与步骤“上下文参数C、N选择”所获取的参数C_sel对预测值Px进行修正,获得预测修正值Px_c;
(4.3.5)残差计算:根据JPEG-LS标准,利用符号标志SIGN、当前像素值Ix与预测修正值Px_c运算获得残差值Errval;
(4.3.6)残差量化:根据JPEG-LS标准,对残差值Errval进行量化,得到残差量化值Errval_q;
(4.3.7)像素重建:根据JPEG-LS标准,通过符号标志SIGN、当前像素值Ix、残差量化值Errval_q以及近无损度参数Near值计算得到像素重建值Rx,再将像素重建值Rx反馈至上下文建模模块中,用来提供步骤4.1中当前像素上下文建模的环境模板;在无损压缩模式下,像素重建值Rx等于原像素值Ix;
(4.3.8)残差取模:根据JPEG-LS标准,利用残差取模范围RANGE对残差量化值Errval_q进行取模,使残差映射到取模范围内,得到残差取模值Errval_Mod,并用寄存器输出至下一级;
(4.4)上下文参数更新,包含两个环节:上下文参数A、B选择,上下文参数A、B、C更新;
(4.4.1)上下文参数A、B选择:根据“冲突控制”模块输出的“冲突指示信号”collosion,从步骤4.6回传的更新后的参数A_update、B_update和步骤4.3输出的参数A、B当中进行选择,输出需要使用的参数A_sel、B_sel;当collosion为0时,选择步骤4.3输出的参数A、B,而collosion为1时,选择从步骤4.6回传的更新后的参数A_update、B_update;参数选择采用组合逻辑实现;
(4.4.2)上下文参数A、B、C更新:根据JPEG-LS标准,使用残差取模值Errval_Mod,选择后的参数A_sel、B_sel、C_sel,以及步骤4.3中N参数更新后输出的N_flag信号,采用组合逻辑对上下文参数选择后获取的A、B、C参数进行更新计算(每一个子块所对应的近无损度参数Near会伴随像素进入预测编码流水线中,根据当前使用的近无损度参数Near进行参数更新计算),得到更新的参数A_update、B_update、C_update,连同步骤4.3中输出过来的N_update一起,写入“上下文参数RAM”,伴随的数据有效信号作为RAM的“写使能”信号,步骤4.3中输出的索引值Q作为RAM的“写地址”;与此同时,A_update、B_update、C_update、N_update通过寄存器输出至下一级;筛选后的用来进行参数更新的三个参数A_sel、B_sel、N_sel和残差取模值Errval_Mod也通过寄存器输出至下一级,以供残差映射和K值计算使用;
(4.5)包括主要的两个环节,即残差映射和K值计算;
(4.5.1)Stage4输出的C_update、N_update参数直接回传至步骤4.3参与预处理运算中的上下文参数C、N选择;A_update、B_update参数则直接经寄存器输出至步骤4.6;
(4.5.2)残差映射:根据JPEG-LS标准,使用残差取模值Errval_Mod,选择后的参数A_sel、B_sel计算出映射后的残差值MErrval,经寄存器输出至步骤4.6;
(4.5.3)K值计算:JPEG-LS标准中实现方法为比较A与向左移位后的N,当A=N时,则K=0;当N<A≤(N<<1)时,则K=1;当(N<<1)<A≤(N<<2)时,则K=2;当(N<<2)<A≤(N<<3)时,则K=3……以此类推,用这种方式实现,可以减小计算复杂度,缩短计算延时;计算得到K值后,通过寄存器输出至步骤4.6;
(4.5.4)预测编码中还有一个重要的环节,即“数据冲突控制”;将步骤4.2和步骤4.4中的索引值Q进行对比,生成对比结果:“冲突指示信号”collision;由于并行预测编码时,每一路的像素均相隔一个周期输入,因此,当两者相等时,表示相邻的两个像素使用的是“上下文参数RAM”中的同一个地址的参数,当前地址Qn像素刚进入“读参数”环节时,上一个Qn-1对应像素的上下文参数已更新完毕,但还未写入到“上下文参数RAM”中,此时输出collision=1;当两者不相等时,表示相邻的两个像素使用的是“上下文参数RAM”中的不同地址的参数,当前像素需要使用最新的上下文参数时,可以直接访问“上下文参数RAM”,此时输出collision=0;collision伴随每一级的数据有效信号逐级传递,并分别作用于步骤4.2和步骤4.4中的上下文参数选择模块;
(4.5.5)上下文参数RAM乒乓操作模块:为了防止误码扩散,对每个子块独立进行编码,因此每个子块的参数初始化和更新都是独立的,使用两组RAM;在当前子块做完进入下一子块的编码时需清除当前块对参数RAM的更新操作,使其回归初始值,即需要对参数RAM使用各参数的初始值进行初始化;由于A、B、C、N四个参数均为长度为365的数组,要完成初始化,需对365个RAM地址写入初始值;
(4.6)将步骤4.5中传输过来的更新后的参数A_update、B_update回传给步骤4.4中,参与上下文参数A、B、C更新之前的上下文参数A、B选择;
(5)以图像子块为单位,将两路预测编码结果并为一路输出;
当两个预测编码模块进行预测编码后,将两路输出结果以子块为单位合并为一路输出至后续熵编码模块;预测编码模块1的将随流水线传递的近无损度参数Near、子块的首像素Fp、编码结果K值以及残差映射值MErrval拼位后一并写入到FIFO5中,而预测编码模块2的将随流水线传递的近无损度参数Near、子块的首像素Fp、编码结果K值以及残差映射值MErrval拼位后一并写入到FIFO6中;当FIFO5中写满一个子块的数目后,开始读FIFO5,读完一个子块数目的数据后转至FIFO6,同样等到输出完一个子块数目的数据后再跳转至FIFO6,按照此循环进行读取,使得预测编码结果可连续输出;
(6)熵编码:Golomb编码
(6.1)根据串行输出的K值,把串行输出的残差映射值MErrval右移K位,即把残差映射值除以2K,由此获得商值val;
(6.2)用残差映射值MErrval减去商值val并左移K位的结果,由此获得残差映射值除以2K的余数n;
(6.3)生成编码:如果计算出的商值val小于编码限长门限LMAX,则把数值1左移K位,在加上余数n即可生成编码,而把商值加上K,再加1即可得到编码长度,即val+K+1;若商值不小于编码限长门限LMAX,则把数值1右移像素位宽位,同时加上残差映射值MErrval,再减去1即可得到编码,而此时的编码长度为LIMIT;
(6.4)编码拼接:根据编码长度,从LIMIT位的编码中提取有效编码,从高到低地拼接到64位的寄存器中,此处两个64位的寄存器配合各自的计数器乒乓地完成该工作;若其中一个64位的寄存器写满时就把它输出并清空,同时把编码拼到另一个寄存器中;
(7)EDC(ErrorDetectionandCorrection)信息生成
将各个编码长度进行累加,统计每个子块的编码总长,总长信息能保证区分开每一个子块对应的码流;将每个子块首像素Fp和编码总长以及该子块使用的近无损度参数Near拼位,生成EDC信息;EDC信息提供了解码所必需的相关信息;
(8)码流整合与EDC信息插入:把生成的64位的码流通过FIFO转成16位后输出,每输出16个子块的码流,就把这16个子块的EDC信息插入到他们的码流之后,为保证可靠性,每个块的EDC信息都要复制三份16块为一组地插入到码流中,三份之间两两相隔16个子块的码流,即每输出16块的编码之后,除了要插入当前16个子块的EDC信息,还要把其前两组16个子块的EDC信息插一遍,如此确保每个子块的EDC信息倒在码流中插了3份;这样虽然带来了一定的数据冗余,但是可保证在码流传输时的信道误码对码流信息造成一定程度损坏的情况下,还能在解码时将EDC信息提取出来,增加了码流的抗误码性能;
(9)检纠错编码:根据参数检纠错模式来选通使用的检纠错模式,RS编码或者屏蔽检纠错编码:
(9.1)若选通RS编码模式,则对生成的插入EDC信息的混合码流,每223byte信息码,生成32byte校验码并插入到该223byte信息码之后,以此生成抗误码码流;
(9.2)若选通屏蔽检纠错编码模式,则不进行检纠错编码,直接将生成的插入EDC信息的混合码流输出;
(9.3)选择RS检纠错编码可以防止一定程度的信道误码,但是会造成压缩比的损失,如果通信信道误码率低,为了提高压缩比,可以选择屏蔽检纠错编码;
(10)码流组帧:在一幅图像的码流的起始端加入帧头识别字段和相关编码信息,编码信息包括子块大小,图像大小,图像像素位宽,检纠错编码模式以及近无损度参数,在码流的结尾加入帧尾识别字段,输出生成的编码码流。
2.根据权利要求1所述的防误码扩散的JPEG-LS图像无损/近无损压缩算法硬件实现方法,其特征在于,步骤1.1中所述的像素位宽pixel_width为10bit和12bit两种取值。
3.根据权利要求1或2所述的防误码扩散的JPEG-LS图像无损/近无损压缩算法硬件实现方法,其特征在于,步骤1.2中所述子块大小参数:子块行数row_size取8、16两种;子块列数column_size取32、64两种。
4.根据权利要求1或2所述的防误码扩散的JPEG-LS图像无损/近无损压缩算法硬件实现方法,其特征在于,步骤2中所述的近无损度参数Near取0、1、2、3四种,当Near=0时为无损压缩模式,Near非0时为近无损压缩模式。
5.根据权利要求1或2所述的防误码扩散的JPEG-LS图像无损/近无损压缩算法硬件实现方法,其特征在于,在步骤3.3中使用乒乓操作,即在每一路预测编码模块中,A、B、C、N四个上下文参数均拥有两组具有365个地址的RAM;正常工作时,一组RAM用于当前图像子块的上下文参数更新,另一组则针对下一个图像子块进行初始化,以等待下一子块的访问;因此初始化工作需提前进行:在每一个子块的像素写入FIFO之前,需对该子块所对应的近无损度参数Near值进行采样,当预测编码模块1中的第3个子块刚开始写入FIFO2时,对该子块的近无损度参数Near进行采样,并开始初始化,由上下文参数RAM2参与此工作;与此同时,预测编码模块1正在对第1个子块像素进行上下文参数更新,由上下文参数RAM1参与上下文参数更新工作;当第1个子块预测编码结束后,第3个子块从FIFO2输出,此时便使用上下文参数RAM2进行相关的参数更新工作。
6.根据权利要求5所述的防误码扩散的JPEG-LS图像无损/近无损压缩算法硬件实现方法,其特征在于,步骤3.3中所述的RAM:像素位宽最大为12bit,A、B两个参数的参数RAM大小均为365*20bit、C参数的为365*9bit,N的为365*7bit;
根据初始读入的像素位宽pixel_width和采样得到的近无损度参数Near对四个参数A、B、C、N的参数RAM进行初始化,B参数与C参数的初始值均为0,N参数初始值始终为1,A参数的初始值为:
A 像素位宽10bit 像素位宽12bit Near=0 16 64 Near=1 5 21 Near=2 3 13 Near=3 2 9
7.根据权利要求1或2所述的防误码扩散的JPEG-LS图像无损/近无损压缩算法硬件实现方法,其特征在于,步骤4.2中所述的梯度量化阈值依据JPEG-LS标准,当像素位宽pixel_width选择12bit时,梯度量化阈值为18、67、276;当像素位宽pixel_width选择10bit时,梯度量化阈值为6、19、72。
8.根据权利要求1或2所述的防误码扩散的JPEG-LS图像无损/近无损压缩算法硬件实现方法,其特征在于,步骤4.3中所述的残差取模范围RANGE取值与像素位宽以及近无损度Near值相关:
RANGE 像素位宽10bit 像素位宽12bit Near=0 1024 4096 Near=1 342 1366 Near=2 206 820 Near=3 148 586
在进行图像压缩时,根据像素位宽pixel_width和近无损度参数Near选择列表中对应的残差取模范围RANGE。
9.根据权利要求1或2所述的一种防误码扩散的JPEG-LS图像无损/近无损压缩算法硬件实现方法,其特征在于,步骤6.3中所述的编码参数包括残差映射位宽qbpp和变长编码门限LMAX,在不同像素位宽和近无损度参数情况下,残差映射位宽qbpp的取值为:
qbpp 像素位宽10bit 像素位宽12bit Near=0 10 12 Near=1 9 11 Near=2 8 10 Near=3 8 10
在参数初始化时,可根据像素位宽pixel_width和近无损度参数Near选择列表中对应的残差映射位宽qbpp;而变长编码门限LMAX可根据JPEG-LS标准中的计算公式实时计算得到:LMAX=LIMIT-qbpp-1。
10.根据权利要求1或2所述的防误码扩散的JPEG-LS图像无损/近无损压缩算法硬件实现方法,其特征在于,步骤7中所述的EDC技术:把每个子块的码流长度作为编码信息插入到码流中,该信息在不同的位置插入三次且保证相邻的两个插入点相隔足够远以保证误码发生时仍可提取正确的子块码流长度信息;解码时,根据该子块长度信息提取各个子块的码流,可以把出现在子块中的信道误码影响限制在单个子块内。
CN201610165800.8A 2016-03-23 2016-03-23 防误码扩散的jpeg‑ls图像无损/近无损压缩算法硬件实现方法 Active CN105828070B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610165800.8A CN105828070B (zh) 2016-03-23 2016-03-23 防误码扩散的jpeg‑ls图像无损/近无损压缩算法硬件实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610165800.8A CN105828070B (zh) 2016-03-23 2016-03-23 防误码扩散的jpeg‑ls图像无损/近无损压缩算法硬件实现方法

Publications (2)

Publication Number Publication Date
CN105828070A true CN105828070A (zh) 2016-08-03
CN105828070B CN105828070B (zh) 2016-12-28

Family

ID=56523927

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610165800.8A Active CN105828070B (zh) 2016-03-23 2016-03-23 防误码扩散的jpeg‑ls图像无损/近无损压缩算法硬件实现方法

Country Status (1)

Country Link
CN (1) CN105828070B (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107071451A (zh) * 2017-05-14 2017-08-18 华中科技大学 一种基于可变输入数据流的大动态实时解压缩系统
CN107181943A (zh) * 2017-04-18 2017-09-19 华中科技大学 一种基于混合熵编码的卫星序列图像无损压缩方法及系统
CN107222665A (zh) * 2017-06-13 2017-09-29 深圳市元维科技有限公司 多信号支持多功能可远距离传输高清视频的内窥镜系统
CN107888922A (zh) * 2017-11-20 2018-04-06 西安空间无线电技术研究所 用于jpeg‑ls无损压缩算法防码流溢出的图像预处理方法及装置
CN108280801A (zh) * 2018-01-10 2018-07-13 武汉精测电子集团股份有限公司 基于双线性插值的重映射方法、装置和可编程逻辑器件
CN108282662A (zh) * 2018-02-02 2018-07-13 武汉精测电子集团股份有限公司 一种连续色调静态图像压缩的优化方法及装置
CN108419080A (zh) * 2018-02-08 2018-08-17 武汉精测电子集团股份有限公司 一种jpegls上下文计算的流水线化优化方法及装置
CN108769697A (zh) * 2018-06-08 2018-11-06 武汉精测电子集团股份有限公司 基于时间交织流水线架构的jpeg-ls压缩系统及方法
CN109151482A (zh) * 2018-10-29 2019-01-04 西安电子科技大学 星载光谱图像谱段无损有损混合压缩方法
CN113075624A (zh) * 2021-03-31 2021-07-06 华中科技大学 一种雷达回波序列的无损压缩方法、装置和雷达系统
CN113207004A (zh) * 2021-04-30 2021-08-03 华中科技大学 基于jpeg-ls帧间扩展的遥感图像压缩算法硬件实现方法
CN113626978A (zh) * 2021-06-23 2021-11-09 浙江中控技术股份有限公司 一种民爆乳化炸药的爆速在线预测方法及系统
CN113644915A (zh) * 2021-07-01 2021-11-12 中国科学院空天信息创新研究院 一种数据压缩方法、数据压缩装置、电子设备
CN113810693A (zh) * 2021-09-01 2021-12-17 上海交通大学 一种jpeg图像无损压缩和解压缩方法、系统与装置
CN115022628A (zh) * 2022-08-04 2022-09-06 之江实验室 基于jpeg-ls的高吞吐率无损图像压缩方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008042684A (ja) * 2006-08-08 2008-02-21 Canon Inc 画像符号化装置及び方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
CN102088602A (zh) * 2010-12-22 2011-06-08 西安空间无线电技术研究所 一种jpeg-ls图像压缩的码率控制方法
CN102801981A (zh) * 2012-08-30 2012-11-28 西安空间无线电技术研究所 一种基于jpeg-ls算法的多路压缩内核并行编码的控制方法
CN102970531A (zh) * 2012-10-19 2013-03-13 西安电子科技大学 Jpeg-ls近无损图像压缩编码器硬件实现方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008042684A (ja) * 2006-08-08 2008-02-21 Canon Inc 画像符号化装置及び方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
CN102088602A (zh) * 2010-12-22 2011-06-08 西安空间无线电技术研究所 一种jpeg-ls图像压缩的码率控制方法
CN102801981A (zh) * 2012-08-30 2012-11-28 西安空间无线电技术研究所 一种基于jpeg-ls算法的多路压缩内核并行编码的控制方法
CN102970531A (zh) * 2012-10-19 2013-03-13 西安电子科技大学 Jpeg-ls近无损图像压缩编码器硬件实现方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王成成等: "JPEG-LS多路并行译码的FPGA实现", 《微型机与应用》 *

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107181943A (zh) * 2017-04-18 2017-09-19 华中科技大学 一种基于混合熵编码的卫星序列图像无损压缩方法及系统
CN107071451A (zh) * 2017-05-14 2017-08-18 华中科技大学 一种基于可变输入数据流的大动态实时解压缩系统
CN107071451B (zh) * 2017-05-14 2018-05-22 华中科技大学 一种基于可变输入数据流的大动态实时解压缩系统
CN107222665A (zh) * 2017-06-13 2017-09-29 深圳市元维科技有限公司 多信号支持多功能可远距离传输高清视频的内窥镜系统
CN107888922A (zh) * 2017-11-20 2018-04-06 西安空间无线电技术研究所 用于jpeg‑ls无损压缩算法防码流溢出的图像预处理方法及装置
CN107888922B (zh) * 2017-11-20 2019-12-20 西安空间无线电技术研究所 用于jpeg-ls无损压缩算法防码流溢出的图像预处理方法及装置
CN108280801A (zh) * 2018-01-10 2018-07-13 武汉精测电子集团股份有限公司 基于双线性插值的重映射方法、装置和可编程逻辑器件
CN108280801B (zh) * 2018-01-10 2021-08-17 武汉精测电子集团股份有限公司 基于双线性插值的重映射方法、装置和可编程逻辑器件
CN108282662A (zh) * 2018-02-02 2018-07-13 武汉精测电子集团股份有限公司 一种连续色调静态图像压缩的优化方法及装置
CN108282662B (zh) * 2018-02-02 2021-02-02 武汉精测电子集团股份有限公司 一种连续色调静态图像压缩的优化方法及装置
CN108419080A (zh) * 2018-02-08 2018-08-17 武汉精测电子集团股份有限公司 一种jpegls上下文计算的流水线化优化方法及装置
CN108419080B (zh) * 2018-02-08 2020-10-13 武汉精测电子集团股份有限公司 一种jpegls上下文计算的流水线化优化方法及装置
CN108769697B (zh) * 2018-06-08 2020-11-03 武汉精测电子集团股份有限公司 基于时间交织流水线架构的jpeg-ls压缩系统及方法
CN108769697A (zh) * 2018-06-08 2018-11-06 武汉精测电子集团股份有限公司 基于时间交织流水线架构的jpeg-ls压缩系统及方法
CN109151482B (zh) * 2018-10-29 2021-03-23 西安电子科技大学 星载光谱图像谱段无损有损混合压缩方法
CN109151482A (zh) * 2018-10-29 2019-01-04 西安电子科技大学 星载光谱图像谱段无损有损混合压缩方法
CN113075624A (zh) * 2021-03-31 2021-07-06 华中科技大学 一种雷达回波序列的无损压缩方法、装置和雷达系统
CN113075624B (zh) * 2021-03-31 2024-03-19 华中科技大学 一种雷达回波序列的无损压缩方法、装置和雷达系统
CN113207004A (zh) * 2021-04-30 2021-08-03 华中科技大学 基于jpeg-ls帧间扩展的遥感图像压缩算法硬件实现方法
CN113207004B (zh) * 2021-04-30 2024-02-02 华中科技大学 基于jpeg-ls帧间扩展的遥感图像压缩算法硬件实现方法
CN113626978B (zh) * 2021-06-23 2023-12-26 浙江中控技术股份有限公司 一种民爆乳化炸药的爆速在线预测方法及系统
CN113626978A (zh) * 2021-06-23 2021-11-09 浙江中控技术股份有限公司 一种民爆乳化炸药的爆速在线预测方法及系统
CN113644915A (zh) * 2021-07-01 2021-11-12 中国科学院空天信息创新研究院 一种数据压缩方法、数据压缩装置、电子设备
CN113644915B (zh) * 2021-07-01 2022-06-07 中国科学院空天信息创新研究院 一种数据压缩方法、数据压缩装置、电子设备
CN113810693A (zh) * 2021-09-01 2021-12-17 上海交通大学 一种jpeg图像无损压缩和解压缩方法、系统与装置
CN115022628B (zh) * 2022-08-04 2022-12-13 之江实验室 基于jpeg-ls的高吞吐率无损图像压缩方法
CN115022628A (zh) * 2022-08-04 2022-09-06 之江实验室 基于jpeg-ls的高吞吐率无损图像压缩方法

Also Published As

Publication number Publication date
CN105828070B (zh) 2016-12-28

Similar Documents

Publication Publication Date Title
CN105828070B (zh) 防误码扩散的jpeg‑ls图像无损/近无损压缩算法硬件实现方法
CN109711413B (zh) 基于深度学习的图像语义分割方法
CN1794814B (zh) 流水线化解块滤波器
CN100546381C (zh) 用于数字视频加水印的色彩选择方案
US8902994B1 (en) Deblocking filtering
CN101971633A (zh) 压缩参考帧的视频编码系统
CN109714584A (zh) 基于深度学习的3d-hevc深度图编码单元快速决策方法
CN102263949A (zh) 用于管理在存储单元和解码器之间的信息传送的视频处理系统、计算机程序产品和方法
CN107071451B (zh) 一种基于可变输入数据流的大动态实时解压缩系统
US7515761B2 (en) Encoding device and method
CN103262539A (zh) 运动图像编码装置、运动图像解码装置、运动图像编码方法以及运动图像解码方法
CN102238383B (zh) 用于视频编解码器的多总线体系结构
CN107770540B (zh) 融合多种具有不同参考关系的基元的数据压缩方法和装置
CN101827268B (zh) 一种基于对象的分形视频压缩与解压缩方法
CN102932643B (zh) 一种适用于hevc标准的扩展可变块运动估计电路
CN116704274A (zh) 基于空间相关性注意力的红外和可见光图像融合方法
CN110677644A (zh) 一种视频编码、解码方法及视频编码帧内预测器
KR101028161B1 (ko) 평판 표시 장치 메모리를 위한 데이터 압축-복원 방법과 이를 이용한 히스토그램 데이터 처리, lut 데이터 압축 및 프레임 레이트 향상 방법
US7177479B2 (en) Loss-less compression of still images at enhanced speed
CN100373952C (zh) 一种基于mpeg-4的视频对象快速运动估值方法
GB2571818A (en) Selecting encoding options
CN115147317A (zh) 一种基于卷积神经网络的点云颜色质量增强方法及系统
CN105657421B (zh) 8x8残差系数块编码方法及系统
CN106911935A (zh) 基于hevc熵编码器的集成电路设计方法
CN104683812B (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