CN110049333A - 一种jpeg_ls图像压缩输出编码码流拼接系统及方法 - Google Patents
一种jpeg_ls图像压缩输出编码码流拼接系统及方法 Download PDFInfo
- Publication number
- CN110049333A CN110049333A CN201910327941.9A CN201910327941A CN110049333A CN 110049333 A CN110049333 A CN 110049333A CN 201910327941 A CN201910327941 A CN 201910327941A CN 110049333 A CN110049333 A CN 110049333A
- Authority
- CN
- China
- Prior art keywords
- code stream
- length
- coding
- encode
- run
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/93—Run-length coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
本发明公开了一种JPEG_LS图像压缩输出编码码流拼接系统,通过脉冲边沿检测模块实时检测JPEG_LS编码完成的标志位,包括正常编码完成标志位、游程长度编码完成标志位、游程中断完成标志位,并利用时序控制模块控制32位移位寄存模块来完成上一次拼接剩余码流与图像非平坦区域的正常编码码流以及平坦区域的游程编码码流的拼接,从而完成图像不同区域经过不同编码模块输出编码码流的拼接。本发明还公开了一种JPEG_LS图像压缩输出编码码流拼接方法,本方法实现的编码码流拼接方法,设计简单,占用资源少,便于硬件实现。
Description
技术领域
本发明涉及图像压缩技术领域,特别是一种JPEG_LS图像压缩输出编码码流拼接系统及方法。
背景技术
JPEG-LS(Joint Photographic Experts Group-Lossless and near-lossless,JPEG-LS)是由国际标准化组织ISO于1999年12月发布的ISO-14495-1标准和国际电信联盟ITU于1998年6月发布的ITU-T.87标准,是连续色调静止图像的无损及近无损压缩标准。JPEG-LS是基于预测的压缩算法,以LOCO-I(Low Complexity Lossless Compression forImages,LOCO-I)算法为核心,主要包括正常编码,游程编码以及Golomb编码等部分,具有设计简单,消耗资源少,保真度高,便于硬件实现等特点。为了满足图像传输和存储的需要,图像必须进行压缩才能满足要求。因此,JPEG_LS成为图像压缩的重要选择。
JPEG_LS的编码方式包括Golomb编码以及游程长度编码。而不论Golomb编码,还是游程长度编码,均是不定长编码。如果将编码码流直接存储在大小固定的存储空间里,这不仅会造成大量存储资源的浪费,而且频繁的存取编码码流还会造成编解码速度的下降。同时,如果编码码流的存储空间大小设置不当,那么还会造成编码码流的丢失,导致编码后的数据无法还原为源图像或者无法准确还原为源图像,引起不必要的错误。
发明内容
本发明所要解决的技术问题是克服现有技术的不足而提供一种JPEG_LS图像压缩输出编码码流拼接系统及方法,实现对JPEG_LS中不同编码方式编码码流的拼接,不但能准确实现对编码码流的拼接,而且占用资源少,易于硬件实现,同时还能保证较快的处理速度。
本发明为解决上述技术问题采用以下技术方案:
根据本发明提出的一种JPEG_LS图像压缩输出编码码流拼接系统,包括上下文建模模块、编码模式选择模块、正常编码模块、游程编码模块和码流拼接模块,码流拼接模块包括脉冲边沿检测模块、时序控制模块以及32位移位寄存模块;其中,
上下文建模模块,用于读取预存在缓存器中的源图像,对当前待编码像素进行因果模板的构建、局部梯度值的计算、量化以及合并;
编码模式选择模块,用于通过当前待编码像素的局部梯度值进行编码模式的选择,若局部梯度值的绝对值全部小于等于预设的阈值NEAR,则将当前待编码像素送入游程编码模块,否则将当前待编码像素送入正常编码模块;
游程编码模块,用于首先统计满足扫描条件的待编码像素的个数RUNcnt,然后将其与索引值所指向的长度2J[RUNindex]进行比较:当RUNcnt≥2J[RUNindex]时,输出1比特1,并对RUNcnt做减2J[RUNindex]运算,对入口向量表索引值RUNindex做减1运算,J[RUNindex]为RUNindex所指向的入口向量表J的内容,然后对RUNcnt与2J[RUNindex]进行下一次的比较;如果游程长度编码在一行像素的末尾被终止,并且RUNcnt>0,那么输出1比特1,否则先输出1比特1,然后再以二进制的形式输出不满足RUNcnt≥2J[RUNindex]时的RUNcnt,并且将游程长度编码码流长度length_Run、游程长度编码码流encode_Run_out以及游程长度编码完成标志位encode_Run_done送入码流拼接模块;最后对差异像素进行游程中断编码处理,预测误差模减完成后更新上下文参数Q所对应的预测误差绝对值的和A[Q]以及上下文参数Q出现的次数N[Q],并且将游程中断编码码流长度length_inter、游程中断编码码流encode_inter_out以及游程中断编码完成标志位encode_inter_done送入码流拼接模块;
正常编码模块,用于首先将当前待编码像素送入固定预测器进行预测,得到预测值Px;然后对得到的预测值进行校正、映射,并将映射后的预测值与当前待编码像素相减得到预测误差Errval;然后对预测误差进行校正、模减、映射,得到映射后的预测误差MErrval;预测误差的模减完成后更新上下文参数Q所对应的预测误差绝对值的和A[Q]、上下文参数Q所对应的预测误差的和B[Q]、上下文参数Q所对应的预测误差的校正值C[Q]、上下文参数Q出现的次数N[Q];然后对MErrval进行自适应右移k位操作,其中k为Golomb编码参数,得到MErrval的商interim;若interim<LIMIT-qbpp-1,LIMIT为Golomb编码码字的最大长度,qbpp为表示映射预测误差所需要的比特数,则先输出interim比特0,然后再输出1比特1,否则先输出LIMIT-qbpp-1比特0,然后再输出1比特1,然后再以二进制的形式输出MErrval-1的低qbpp位数据;最后将正常编码码流长度length_Regular、正常编码码流encode_Regular_out以及正常编码完成标志位encode_Regular_done送入码流拼接模块;
脉冲边沿检测模块,用于实时检测JPEG_LS编码完成的标志位,包括正常编码完成标志位encode_Regular_done,游程长度编码完成标志位encode_Run_done以及游程中断编码完成标志位encode_inter_done;若检测到编码完成标志位为高电平,则利用时序控制模块控制32位移位寄存模块对上一次码流拼接剩余码流和当前待编码像素的编码码流进行码流拼接。
作为本发明所述的一种JPEG_LS图像压缩输出编码码流拼接系统进一步优化方案,NEAR是JPEG_LS无损压缩与近无损压缩的阈值。
作为本发明所述的一种JPEG_LS图像压缩输出编码码流拼接系统进一步优化方案,若NEAR=0,则JPEG_LS为无损压缩,否则JPEG_LS为近无损压缩。
一种JPEG_LS图像压缩输出编码码流拼接方法,包括以下步骤:
步骤1、读入预存在缓存器中的源图像,对当前待编码像素进行上下文建模,通过当前待编码像素的局部梯度值进行编码模式的选择;若局部梯度值的绝对值全部小于等于预设的阈值NEAR,则进入步骤2,否则进入步骤10;
步骤2、对步骤1中送来的当前待编码像素进行游程长度扫描条件的判断,若满足扫描条件,则进入步骤3,否则进入步骤4;扫描条件为abs(Ix-RUNval)≤NEAR,Ix为当前待编码像素,RUNval为游程长度扫描的基准像素,abs()为绝对值;
步骤3、统计满足扫描条件的待编码像素的个数RUNcnt;
步骤4、将RUNcnt与索引值所指向的长度2J[RUNindex]进行比较,若RUNcnt<2J [RUNindex],则进入步骤6,否则先输出1比特1,然后对RUNcnt做减2J[RUNindex]运算,对入口向量表索引值RUNindex做减1运算,然后对RUNcnt与2J[RUNindex]进行下一次的比较,直到RUNcnt<2J[RUNindex],进入步骤5;
步骤5、分别将游程长度编码的码流长度length_Run及其编码码流encode_Run_out暂存到相应的寄存器中;
步骤6、判断游程长度编码终止的原因,若由于行尾像素而终止,则进入步骤7;若由于差异像素而终止,则进入步骤8;
步骤7、若RUNcnt>0,则输出1比特1,同时将length_Run加1运算后暂存到相应的寄存器中,将左移一位后的encode_Run_out加1运算后暂存到相应的寄存器,并且将游程长度编码完成标志位encode_Run_done赋值为1,编码结束后进入步骤12,否则进入步骤9;
步骤8、先输出1比特0,然后再以二进制的形式输出不满足RUNcnt≥2J[RUNindex]时的RUNcnt,同时对大于0的索引值RUNindex做减1运算,并且将游程中断编码完成标志位encode_Run_done赋值为1,编码结束后进入步骤12,对差异像素的编码则进入步骤9;
步骤9、对差异像素进行游程中断编码,预测误差模减完成后更新上下文参数Q所对应的预测误差绝对值的和A[Q]以及上下文参数Q出现的次数N[Q],并将游程中断编码码流长度length_inter及其编码码流encode_inter_out分别暂存到相应的寄存器中,同时将游程中断编码完成标志位encode_inter_done赋值为1,然后进入步骤12;
步骤10、先对步骤1中送来的当前待编码像素进行梯度值的计算、量化、合并,得到上下文参数Q;然后对固定预测器得到的预测值Px进行校正、映射,并将映射后的预测值与当前待编码像素相减,得到预测误差Errval,并对其进行校正、模减、映射,得到映射后的预测误差MErrval,预测误差模减完成后更新上下文参数Q所对应的预测误差绝对值的和A[Q]、上下文参数Q所对应的预测误差的和B[Q]、上下文参数Q所对应的预测误差的校正值C[Q]、上下文参数Q出现的次数N[Q];
步骤11、对MErrval进行Golomb编码,并将Golomb编码码流长度length_Regular及其编码码流encode_Regular_out分别暂存到相应的寄存器中,同时将及其编码完成标志位encode_Regular_done赋值为1;
步骤12、对暂存的编码码流进行拼接,并将拼接后的码流以32比特为单位进行缓存;
步骤13、将缓存后的码流以8比特为单位顺序输出。
作为本发明所述的一种JPEG_LS图像压缩输出编码码流拼接方法进一步优化方案,步骤12中的编码码流拼接的具体过程为:若脉冲边沿检测模块检测到encode_Regular_done为高电平,则先通过比较器判断length_temp+length_Regular≤32是否成立,length_temp为上次拼接剩余码流的长度,如果成立,那么时序控制模块就控制32位移位寄存模块先通过移位寄存器对上次拼接剩余码流Writecode_out_reg进行左移length_Regular位操作,然后通过加法器将encode_Regular_out附加到移位后的Writecode_out_reg的低length_Regular位上,并暂存到相应的寄存器中,最后通过加法器将此时的码流长度length_temp更新为length_temp+length_Regular,并暂存到相应的寄存器中;如果length_temp+length_Regular≤32不成立,那么时序控制模块就控制32位移位寄存模块先通过移位寄存器对encode_Regular_out进行右移length_temp+length_Regular-32位操作,然后再对上次拼接剩余码流Writecode_out_reg进行左移32-length_temp位操作,然后通过加法器把移位后的encode_Regular_out附加到移位后的Writecode_out_reg的低32-length_temp位上,并将得到的32位编码码流进行缓存,最后通过加法器将此时的码流长度length_temp更新为length_temp+length_Regular-32,并暂存到相应的寄存器中,同时将移位前的encode_Regular_out的低length_temp+length_Regular-32位暂存到相应的寄存器中,同时将拼接完成标志位Writecode_done赋值为1;若脉冲边沿检测模块检测到encode_Run_done为高电平的同时行尾标志位也为高电平,即表示游程长度编码是由于扫描到行尾像素而终止,则时序控制模块只需控制32位移位寄存模块对上次拼接剩余码流Writecode_out_reg和encode_Run_out进行码流拼接;若脉冲边沿检测模块检测到encode_Run_done为高电平的同时行尾标志位为低电平,即表示游程长度编码是由于扫描到差异像素而终止,则时序控制模块就需要控制32位移位寄存模块先对上次拼接剩余码流Writecode_out_reg和encode_Run_out进行码流拼接,然后再和encode_inter_out进行码流拼接。
作为本发明所述的一种JPEG_LS图像压缩输出编码码流拼接方法进一步优化方案,NEAR是JPEG_LS无损编码与近无损编码的阈值。
作为本发明所述的一种JPEG_LS图像压缩输出编码码流拼接方法进一步优化方案,若NEAR=0,则JPEG_LS为无损压缩,否则JPEG_LS为近无损压缩。
本发明采用以上技术方案与现有技术相比,具有以下技术效果:
本发明充分利用了JPEG_LS图像压缩每次编码码流长度不超过32位的特点,不但能够准确实现对编码码流的拼接,而且占用资源少,易于硬件实现,同时还能保证较快的处理速度。
附图说明
图1为本发明的系统框图。
图2为JPEG_LS图像压缩的系统框图。
图3为本发明的码流拼接处理框图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明进行详细描述。
针对JPEG_LS图像压缩输出编码码流不定长的缺陷,本发明提出一种JPEG_LS输出码流拼接方法,实现对JPEG_LS中正常编码码流、游程长度编码码流以及游程中断编码码流的拼接。
JPEG_LS图像压缩输出码流拼接的硬件实现方法,图1为本发明的系统框图,包括上下文建模、编码模式选择、正常编码模块、游程长度编码模块、Golomb编码模块、码流拼接模块以及输出模块,其中码流拼接模块主要包括脉冲边沿检测模块、时序控制模块以及32位移位寄存模块。
以下将结合图2,对本发明的技术方案进行详细说明。
读取预存在缓存器中的源图像,对当前待编码像素进行上下文建模,通过梯度值进行编码模式的选择。若局部梯度值的绝对值全部小于等于NEAR,则进入游程编码模块,否则进入正常编码模块。
游程编码模块对送入的待编码像素进行游程长度扫描条件(abs(Ix-RUNval)≤NEAR)的判断,若满足扫描条件,则统计待编码像素个数RUNcnt,并将RUNcnt与索引值所指向的长度值2J[RUNindex]进行比较,若RUNcnt≥2J[RUNindex],则输出1比特1,同时将encode_Run_out左移1位,并在其最低位存入输出的1比特1,并且更新RUNcnt以及RUNindex的值,然后进行下一轮的循环,直到RUNcnt<2J[RUNindex];若不满足扫描条件,则在游程长度编码后,进行游程长度编码终止原因的判断。
游程编码模块判断游程长度编码终止的原因,若是由于行尾像素而终止,与此同时满足条件(RUNcnt>0),则将编码码流encode_Run_out左移1位,并在其最低位存入1比特1,本次编码结束;若是由于差异像素而终止,则先将编码码流encode_Run_out左移1位,并在其最低位存入1比特0,然后将编码码流encode_Run_out左移J[RUNindex]位,并将跳出循环(RUNcnt≥2J[RUNindex])时的RUNcnt值以二进制的形式存放到encode_Run_out的低J[RUNindex]位上,同时更新码流长度length_Run以及索引值RUNidex,并且将编码完成标志位encode_Run_done赋值为1,最后对该差异像素进行游程中断编码,预测误差模减完成后更新参数A[Q]以及N[Q],并将其编码码流长度length_inter、编码码流encode_inter_out以及编码完成标志位encode_inter_done送入码流拼接模块;
正常编码模块首先对当前待编码像素Ix进行梯度值的量化、合并,得到上下文参数Q;再对固定预测器中得到的预测值进行校正、映射,得到Px;然后对Ix与Px做减法运算,得到预测误差Errval,并对其进行模减、映射,得到映射后的预测误差MErrval;预测误差模减完成后更新A[Q]、B[Q]、C[Q]以及N[Q];接下来再对映射后的预测误差MErrval进行自适应的右移操作,得到interim。若interim<LIMIT-qbpp-1,则先输出interim比特0,然后再输出1比特1,同时将encode_Regular_out左移interim+1位,并在其最低位存入1比特1;若interim≥LIMIT-qbpp-1,则先输出LIMIT-qbpp-1比特0,再输出1比特1,同时先将encode_Regular_out左移LIMIT-qbpp位,并在其最低位存入1比特1,然后再将encode_Regular_out左移qbpp位,并在其低qbpp位存入MErrval-1的低qbpp位数据;最后将其编码码流长度length_Regular、编码码流encode_Regular_out以及编码完成标志位encode_Regular_done送入码流拼接模块。
码流拼接模块首先通过脉冲边沿检测模块对编码完成标志位进行检测,检测到标志位为高电平时利用时序控制模块控制32位移位寄存模块对送入的编码码流进行拼接,然后将拼接后的码流以32比特单位进行缓存,最后根据JPEG_LS解码的需要将缓存后的码流以8比特为单位顺序输出。
图3所示,编码码流拼接的具体过程为,若脉冲边沿检测模块检测到标志位encode_Regular_done为高电平,则先通过比较器判断条件(length_temp+length_Regular≤32)是否成立,如果成立,那么时序控制模块就控制32位移位寄存模块先通过移位寄存器对上次拼接剩余码流Writecode_out_reg进行左移length_Regular位处理,然后再通过加法器把encode_Regular_out附加到码流Writecode_out_reg的低length_Regular位上,并暂存到寄存器Writecode_out_reg中,最后更新此时的码流长度length_temp+length_Regular到寄存器length_temp中;如果条件不成立,那么时序控制模块就控制32位移位寄存模块先通过移位寄存器对encode_Regular_out进行右移length_temp+length_Regular-32位处理,然后对上次拼接剩余码流Writecode_out_reg进行左移32-length_temp位处理,然后通过加法器把移位处理后的码流encode_Regular_out附加到移位处理后的码流Writecode_out_reg的低32-length_temp位上,并对得到的32位编码码流Writecode_out_reg进行缓存,最后更新此时的码流长度length_temp+length_Regular-32到寄存器length_temp中以及编码码流encode_Regular_out的低length_temp+length_Regular-32位到寄存器Writecode_out_reg中,同时将拼接完成标志位Writecode_done赋值为1,以利于后期根据解码的需要对32位编码码流进行进一步的处理,并将处理后的32位编码码流以8比特为单位顺序送入解码器中。若脉冲边沿检测模块检测到标志位encode_Run_done为高电平的同时行尾标志位EOLine也为高电平,即表示游程长度编码是由于扫描到行尾像素而终止,则时序控制模块只需控制32位移位寄存模块对上次拼接剩余码流和encode_Run_out进行码流拼接,具体的拼接过程与检测到encode_Regular_done为高电平时类似;若脉冲边沿检测模块检测到标志位encode_Run_done为高电平的同时行尾标志位EOLine为低电平,即表示游程长度编码是由于扫描到差异像素而终止,则时序控制模块就需要控制32位移位寄存模块先对上次拼接剩余码流Writecode_out_reg和encode_Run_out进行码流拼接,然后再和编码码流encode_inter_out进行码流拼接,具体的拼接过程同样与检测到encode_Regular_done为高电平时类似。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围内。
Claims (7)
1.一种JPEG_LS图像压缩输出编码码流拼接系统,其特征在于,包括上下文建模模块、编码模式选择模块、正常编码模块、游程编码模块和码流拼接模块,码流拼接模块包括脉冲边沿检测模块、时序控制模块以及32位移位寄存模块;其中,
上下文建模模块,用于读取预存在缓存器中的源图像,对当前待编码像素进行因果模板的构建、局部梯度值的计算、量化以及合并;
编码模式选择模块,用于通过当前待编码像素的局部梯度值进行编码模式的选择,若局部梯度值的绝对值全部小于等于预设的阈值NEAR,则将当前待编码像素送入游程编码模块,否则将当前待编码像素送入正常编码模块;
游程编码模块,用于首先统计满足扫描条件的待编码像素的个数RUNcnt,然后将其与索引值所指向的长度2J[RUNindex]进行比较:当RUNcnt≥2J[RUNindex]时,输出1比特1,并对RUNcnt做减2J[RUNindex]运算,对入口向量表索引值RUNindex做减1运算,J[RUNindex]为RUNindex所指向的入口向量表J的内容,然后对RUNcnt与2J[RUNindex]进行下一次的比较;如果游程长度编码在一行像素的末尾被终止,并且RUNcnt>0,那么输出1比特1,否则先输出1比特1,然后再以二进制的形式输出不满足RUNcnt≥2J[RUNindex]时的RUNcnt,并且将游程长度编码码流长度length_Run、游程长度编码码流encode_Run_out以及游程长度编码完成标志位encode_Run_done送入码流拼接模块;最后对差异像素进行游程中断编码处理,预测误差模减完成后更新上下文参数Q所对应的预测误差绝对值的和A[Q]以及上下文参数Q出现的次数N[Q],并且将游程中断编码码流长度length_inter、游程中断编码码流encode_inter_out以及游程中断编码完成标志位encode_inter_done送入码流拼接模块;
正常编码模块,用于首先将当前待编码像素送入固定预测器进行预测,得到预测值Px;然后对得到的预测值进行校正、映射,并将映射后的预测值与当前待编码像素相减得到预测误差Errval;然后对预测误差进行校正、模减、映射,得到映射后的预测误差MErrval;预测误差的模减完成后更新上下文参数Q所对应的预测误差绝对值的和A[Q]、上下文参数Q所对应的预测误差的和B[Q]、上下文参数Q所对应的预测误差的校正值C[Q]、上下文参数Q出现的次数N[Q];然后对MErrval进行自适应右移k位操作,其中k为Golomb编码参数,得到MErrval的商interim;若interim<LIMIT-qbpp-1,LIMIT为Golomb编码码字的最大长度,qbpp为表示映射预测误差所需要的比特数,则先输出interim比特0,然后再输出1比特1,否则先输出LIMIT-qbpp-1比特0,然后再输出1比特1,然后再以二进制的形式输出MErrval-1的低qbpp位数据;最后将正常编码码流长度length_Regular、正常编码码流encode_Regular_out以及正常编码完成标志位encode_Regular_done送入码流拼接模块;
脉冲边沿检测模块,用于实时检测JPEG_LS编码完成的标志位,包括正常编码完成标志位encode_Regular_done,游程长度编码完成标志位encode_Run_done以及游程中断编码完成标志位encode_inter_done;若检测到编码完成标志位为高电平,则利用时序控制模块控制32位移位寄存模块对上一次码流拼接剩余码流和当前待编码像素的编码码流进行码流拼接。
2.根据权利要求1所述的一种JPEG_LS图像压缩输出编码码流拼接系统,其特征在于,NEAR是JPEG_LS无损压缩与近无损压缩的阈值。
3.根据权利要求2所述的一种JPEG_LS图像压缩输出编码码流拼接系统,其特征在于,若NEAR=0,则JPEG_LS为无损压缩,否则JPEG_LS为近无损压缩。
4.一种JPEG_LS图像压缩输出编码码流拼接方法,其特征在于,包括以下步骤:
步骤1、读入预存在缓存器中的源图像,对当前待编码像素进行上下文建模,通过当前待编码像素的局部梯度值进行编码模式的选择;若局部梯度值的绝对值全部小于等于预设的阈值NEAR,则进入步骤2,否则进入步骤10;
步骤2、对步骤1中送来的当前待编码像素进行游程长度扫描条件的判断,若满足扫描条件,则进入步骤3,否则进入步骤4;扫描条件为abs(Ix-RUNval)≤NEAR,Ix为当前待编码像素,RUNval为游程长度扫描的基准像素,abs()为绝对值;
步骤3、统计满足扫描条件的待编码像素的个数RUNcnt;
步骤4、将RUNcnt与索引值所指向的长度2J[RUNindex]进行比较,若RUNcnt<2J[RUNindex],则进入步骤6,否则先输出1比特1,然后对RUNcnt做减2J[RUNindex]运算,对入口向量表索引值RUNindex做减1运算,然后对RUNcnt与2J[RUNindex]进行下一次的比较,直到RUNcnt<2J [RUNindex],进入步骤5;
步骤5、分别将游程长度编码的码流长度length_Run及其编码码流encode_Run_out暂存到相应的寄存器中;
步骤6、判断游程长度编码终止的原因,若由于行尾像素而终止,则进入步骤7;若由于差异像素而终止,则进入步骤8;
步骤7、若RUNcnt>0,则输出1比特1,同时将length_Run加1运算后暂存到相应的寄存器中,将左移一位后的encode_Run_out加1运算后暂存到相应的寄存器,并且将游程长度编码完成标志位encode_Run_done赋值为1,编码结束后进入步骤12,否则进入步骤9;
步骤8、先输出1比特0,然后再以二进制的形式输出不满足RUNcnt≥2J[RUNindex]时的RUNcnt,同时对大于0的索引值RUNindex做减1运算,并且将游程中断编码完成标志位encode_Run_done赋值为1,编码结束后进入步骤12,对差异像素的编码则进入步骤9;
步骤9、对差异像素进行游程中断编码,预测误差模减完成后更新上下文参数Q所对应的预测误差绝对值的和A[Q]以及上下文参数Q出现的次数N[Q],并将游程中断编码码流长度length_inter及其编码码流encode_inter_out分别暂存到相应的寄存器中,同时将游程中断编码完成标志位encode_inter_done赋值为1,然后进入步骤12;
步骤10、先对步骤1中送来的当前待编码像素进行梯度值的计算、量化、合并,得到上下文参数Q;然后对固定预测器得到的预测值Px进行校正、映射,并将映射后的预测值与当前待编码像素相减,得到预测误差Errval,并对其进行校正、模减、映射,得到映射后的预测误差MErrval,预测误差模减完成后更新上下文参数Q所对应的预测误差绝对值的和A[Q]、上下文参数Q所对应的预测误差的和B[Q]、上下文参数Q所对应的预测误差的校正值C[Q]、上下文参数Q出现的次数N[Q];
步骤11、对MErrval进行Golomb编码,并将Golomb编码码流长度length_Regular及其编码码流encode_Regular_out分别暂存到相应的寄存器中,同时将及其编码完成标志位encode_Regular_done赋值为1;
步骤12、对暂存的编码码流进行拼接,并将拼接后的码流以32比特为单位进行缓存;
步骤13、将缓存后的码流以8比特为单位顺序输出。
5.根据权利要求4所述的一种JPEG_LS图像压缩输出编码码流拼接方法,其特征在于,步骤12中的编码码流拼接的具体过程为:若脉冲边沿检测模块检测到encode_Regular_done为高电平,则先通过比较器判断length_temp+length_Regular≤32是否成立,length_temp为上次拼接剩余码流的长度,如果成立,那么时序控制模块就控制32位移位寄存模块先通过移位寄存器对上次拼接剩余码流Writecode_out_reg进行左移length_Regular位操作,然后通过加法器将encode_Regular_out附加到移位后的Writecode_out_reg的低length_Regular位上,并暂存到相应的寄存器中,最后通过加法器将此时的码流长度length_temp更新为length_temp+length_Regular,并暂存到相应的寄存器中;如果length_temp+length_Regular≤32不成立,那么时序控制模块就控制32位移位寄存模块先通过移位寄存器对encode_Regular_out进行右移length_temp+length_Regular-32位操作,然后再对上次拼接剩余码流Writecode_out_reg进行左移32-length_temp位操作,然后通过加法器把移位后的encode_Regular_out附加到移位后的Writecode_out_reg的低32-length_temp位上,并将得到的32位编码码流进行缓存,最后通过加法器将此时的码流长度length_temp更新为length_temp+length_Regular-32,并暂存到相应的寄存器中,同时将移位前的encode_Regular_out的低length_temp+length_Regular-32位暂存到相应的寄存器中,同时将拼接完成标志位Writecode_done赋值为1;若脉冲边沿检测模块检测到encode_Run_done为高电平的同时行尾标志位也为高电平,即表示游程长度编码是由于扫描到行尾像素而终止,则时序控制模块只需控制32位移位寄存模块对上次拼接剩余码流Writecode_out_reg和encode_Run_out进行码流拼接;若脉冲边沿检测模块检测到encode_Run_done为高电平的同时行尾标志位为低电平,即表示游程长度编码是由于扫描到差异像素而终止,则时序控制模块就需要控制32位移位寄存模块先对上次拼接剩余码流Writecode_out_reg和encode_Run_out进行码流拼接,然后再和encode_inter_out进行码流拼接。
6.根据权利要求4所述的一种JPEG_LS图像压缩输出编码码流拼接方法,其特征在于,NEAR是JPEG_LS无损编码与近无损编码的阈值。
7.根据权利要求6所述的一种JPEG_LS图像压缩输出编码码流拼接方法,其特征在于,若NEAR=0,则JPEG_LS为无损压缩,否则JPEG_LS为近无损压缩。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910327941.9A CN110049333B (zh) | 2019-04-23 | 2019-04-23 | 一种jpeg_ls图像压缩输出编码码流拼接系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910327941.9A CN110049333B (zh) | 2019-04-23 | 2019-04-23 | 一种jpeg_ls图像压缩输出编码码流拼接系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110049333A true CN110049333A (zh) | 2019-07-23 |
CN110049333B CN110049333B (zh) | 2021-04-27 |
Family
ID=67278544
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910327941.9A Active CN110049333B (zh) | 2019-04-23 | 2019-04-23 | 一种jpeg_ls图像压缩输出编码码流拼接系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110049333B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110572613A (zh) * | 2019-09-09 | 2019-12-13 | 贵州电网有限责任公司 | 一种基于4g的图像监控装置及其数据处理通信方法 |
CN111178490A (zh) * | 2019-12-31 | 2020-05-19 | 北京百度网讯科技有限公司 | 数据输出方法、获取方法、装置和电子设备 |
CN115022628A (zh) * | 2022-08-04 | 2022-09-06 | 之江实验室 | 基于jpeg-ls的高吞吐率无损图像压缩方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040213471A1 (en) * | 2003-04-25 | 2004-10-28 | Stmicroelectronics S.R.I. | Loss-less compression of still images at enhanced speed |
CN101534373A (zh) * | 2009-04-24 | 2009-09-16 | 北京空间机电研究所 | 基于改进jpeg-ls算法的遥感图像近无损压缩硬件实现方法 |
CN101783953A (zh) * | 2010-03-08 | 2010-07-21 | 北京空间机电研究所 | Jpeg-ls游程编码硬件实现方法 |
CN101895760A (zh) * | 2010-07-29 | 2010-11-24 | 西安空间无线电技术研究所 | 基于jpeg-ls算法的码流拼接实现系统及方法 |
CN102724505A (zh) * | 2012-06-06 | 2012-10-10 | 西安电子科技大学 | Jpeg_ls游程编码fpga实现方法 |
-
2019
- 2019-04-23 CN CN201910327941.9A patent/CN110049333B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040213471A1 (en) * | 2003-04-25 | 2004-10-28 | Stmicroelectronics S.R.I. | Loss-less compression of still images at enhanced speed |
CN101534373A (zh) * | 2009-04-24 | 2009-09-16 | 北京空间机电研究所 | 基于改进jpeg-ls算法的遥感图像近无损压缩硬件实现方法 |
CN101783953A (zh) * | 2010-03-08 | 2010-07-21 | 北京空间机电研究所 | Jpeg-ls游程编码硬件实现方法 |
CN101895760A (zh) * | 2010-07-29 | 2010-11-24 | 西安空间无线电技术研究所 | 基于jpeg-ls算法的码流拼接实现系统及方法 |
CN102724505A (zh) * | 2012-06-06 | 2012-10-10 | 西安电子科技大学 | Jpeg_ls游程编码fpga实现方法 |
Non-Patent Citations (1)
Title |
---|
宋鸿梅等: "《图像无损压缩算法JPEG-LS实现及性能研究》", 《光学仪器》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110572613A (zh) * | 2019-09-09 | 2019-12-13 | 贵州电网有限责任公司 | 一种基于4g的图像监控装置及其数据处理通信方法 |
CN111178490A (zh) * | 2019-12-31 | 2020-05-19 | 北京百度网讯科技有限公司 | 数据输出方法、获取方法、装置和电子设备 |
US11562241B2 (en) | 2019-12-31 | 2023-01-24 | Beijing Baidu Netcom Science and Technology Co., Ltd | Data output method, data acquisition method, device, and electronic apparatus |
CN115022628A (zh) * | 2022-08-04 | 2022-09-06 | 之江实验室 | 基于jpeg-ls的高吞吐率无损图像压缩方法 |
CN115022628B (zh) * | 2022-08-04 | 2022-12-13 | 之江实验室 | 基于jpeg-ls的高吞吐率无损图像压缩方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110049333B (zh) | 2021-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7936938B2 (en) | Methods and devices for encoding a digital image signal and associated decoding methods and devices | |
CN101711481B (zh) | 使用预测数据精选进行视频编码的方法和装置 | |
CN110049333A (zh) | 一种jpeg_ls图像压缩输出编码码流拼接系统及方法 | |
CN101933331A (zh) | 视频编码装置、视频解码装置、视频编码方法、视频解码方法、视频编码或解码程序 | |
KR100922510B1 (ko) | 영상의 부호화 및 복호화 방법, 장치 및 그 애플리케이션 | |
US7916785B2 (en) | Image processing apparatus and method | |
CN101212676A (zh) | 高效并行cabac解码方法及其装置 | |
CN114616826A (zh) | 基于帧类型的自适应分辨率管理的隐式标识 | |
CN106031177A (zh) | 用于硬件加速的视频编码的主编码器 | |
CN112218092B (zh) | 串编码技术的编码方法、设备及存储介质 | |
CN102187583A (zh) | 基于上下文的自适应二进制算术编码(cabac)的视频流兼容性 | |
KR102267770B1 (ko) | 픽쳐들의 그룹에서 변경가능 엘리먼트들의 세트를 결정하기 위한 방법 및 디바이스 | |
CN104618724B (zh) | 视频编码或解码的方法及装置 | |
CN101193306A (zh) | 运动矢量检测装置和运动矢量检测方法 | |
CN111630860A (zh) | 视频处理方法和装置 | |
CN109618157A (zh) | 一种视频显示流压缩编码的硬件实现系统及方法 | |
CN1131639C (zh) | 用于屏蔽视频数据错误的装置和方法 | |
CN105850132A (zh) | 颜色指数预测的方法和装置 | |
CN1856103B (zh) | 编码装置、译码装置和编码、译码方法以及图象处理装置 | |
CN112073719B (zh) | 一种串匹配预测方法、装置、系统及计算机可读存储介质 | |
Liu et al. | A high-performance CNN-applied HEVC steganography based on diamond-coded PU partition modes | |
CN103533325A (zh) | 一种深度图像帧内编解码方法、装置及编解码器 | |
CN114503581A (zh) | 基于块的自适应分辨率管理 | |
CN102196253B (zh) | 一种帧类型自适应选择的视频编码方法及装置 | |
CN103096051B (zh) | 一种图像块信号分量采样点的帧内解码方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |