专利名称:一种jpeg图像局部解码方法及设备的制作方法
技术领域:
本发明涉及图像处理领域,尤其涉及一种JPEG图像局部解码方法。
技术背景JPEG是Joint Photographic Experts Group (4关合图^象专家纟且)的缩 写,是一种最为常用的图像编码格式。JPEG有四种编码;漠式,分别为顺序 (Sequential )、 累进(Progressive )、 无损 (Lossless )、 层次 (Hierarchical )。数据压缩技术的理论基础就是信息论。信息论中的信源编码理论解决 的主要问题(1 )数据压缩的理论极限(2 )数据压缩的基本途径。根据 信息论的原理,可以找到最佳数据压缩编码的方法,数据压缩的理论极限 是信息熵。如果要求编码过程中不丢失信息量,即要求保存信息熵,这种 信息保持编码叫熵编码,是根据消息出现概率的分布特性而进行的,是无 损数据压缩编码。而在熵编码过程当中,又有哈夫曼编码和算术编码两种。 其中,绝大多数JPEG都是顺序哈夫曼编码的,特别是数码相机拍出的图片 中,无一例外的使用了这种格式。对于顺序哈夫曼编码的JPEG图片,其编码方式是把像素分为Y, Cb, Cr三个色彩分量,以最小编码单元(MCU)块作为基本单位从左到右从上到 下进行扫描。MCU块有8*8, 8*16, 16*8, 16*16等几种大小。在实际应用中,有时候需要解码其中的局部图像内容。但是,在通常 情况下,我们必须对于全部内容进行处理才能够得到部分的内容,究其原 因有二首先,JPEG并没有标注码流位置和图像位置的索引,故只能通过 整个码流的寻找得到特定图像;其次,JPEG在传输每一个MCU的过程中, 其直流分量传输的是与上一 MCU块之间的差分值。也就是说,后面的MCU 解码是有赖于前面解码的过程的。如果只是为了得到图片的一小部分而解 码整张图片,速度势必较慢。而且,如果JPEG数据存储于外部存储介质之 中,往往还需要很长的数据读取时间。发明内容本发明提供了一种能解决以上问题的JPEG图像局部解码方法。在第一方面,本发明提供了一种用于JPEG图像局部解码的方法,包括 在对JPEG图像进行全局解码时生成记录;以及4艮据所述记录对所述JPEG 图像进行局部解码。在第二方面,本发明提供了一种JPEG图像局部解码设备,包括用于 在对JPEG图像进行全局解码时生成记录的模块;以及用于根据所述记录对 所述JPEG图像进行局部解码的模块。在本发明的一个实施例中,在开始解码每个最左侧最小解码单元时进 行记录。在本发明的另一个实施例中,所述记录包括所述JPEG图像的码流位置 和直流分量,所述码流位置包括字节位置,比特位置;所述直流分量包括Y 信号直流分量,Cb信号直流分量,Cr信号直流分量。在本发明的又一个实施例中,所述记录还包括直流信号归零计数值。 在本发明的还一个实施例中,根据所述直流信号归零计数值来确定直 流信号归零计数值的初始值。本发明通过得到图片码流位置和直流分量的索引值,从而实现了对 JPEG图像的局部解码,大大缩短了解码时间。
下面将参照附图对本发明的具体实施方案进行更详细的说明,在附图中图l是本发明解码方法的第一次解码的流程图; 图2是图l解码的示例框图; 图3是本发明解码方法的部分解码的流程图;以及 图4是图3解码的示例框图。
具体实施方式
本方法适用于需要多次部分解码的情况(如图片的放大浏览),首先 需要全部解码一次生成索引,然后根据索引即可快速部分解码图片。图l是本发明解码方法的第一次解码的流程图。如图1所示,第一次解码时首先按照正常的方式解码文件头,并将Y 信号直流分量(Ycoff ) , Cb信号直流分量(Cbcoff ) , Cr信号直流分量 (Crcoff ),以及直流信号归零计数值(Interval)置为0。然后依次开始 解码MCU。当不涉及换行时,所有操作均与正常模式一致;只有当换行出现 时,需要将此时解码的码流位置(包括字节位置与比特位置),Y信号直流 分量,Cb信号直流分量,Cr信号直流分量,直流信号归零计数值输出并记 录下来。应当指出,也可以不记录直流信号归零计数值,而在后边的局部 解码时通过计算得出。比如,直流信号归零计数值的初始值等于起始的MCU 号% (取余数)从文件头中提取得到的JPEG间隔长度。图2是图1解码的示例框图。如图2所示,图2代表了一张128*128的图片,其每一个MCU的大小 为16*16,故其拥有64个MCU,在编码或解码的过程中,按照0-63的顺序 进行扫描。当解码0-7的MCU时,由于不进行换行,处理结果与正常方式 一致,当解码第7个MCU之后,由于换行,则输出当前码流位置(包括字 节位置与比特位置),Y信号直流分量,Cb信号直流分量,Cr信号直流分 量,直流信号归零计数值,这个状态也是第8个MCU起始时的状态。同理, 当第15、 23、 31、 39、 47、 55、 63个MCU解码完成后,也需要输出相应的 值,这些值分别代表第16、 24、 32、 40、 48、 56、 64 (已结束)个MCU起 始时的状态。图3是本发明解码方法的部分解码的流程图。如图3所示,局部解码的流程如下首先根据部分解码的图片位置计 算需要解码的MCU区间。计算方法是起始MCU=(图像左上角纵坐标/ MCU 高度)* ((图像宽度+ MCU宽度-1) / MCU宽度),结束MCU =((图像 右下角纵坐标+ MCU高度-1 ) / MCU高度)* ((图像宽度+ MCU宽度-1) / MCU 宽度)-1。故使用起始MCU到结束MCU+1之间的数据,数据的起始点是起 始MCU处输出的码流位置(包括字节位置与比特位置),终止点是结束MCU+1 处的输出的码流位置(包括字节位置与比特位置)。同时起始MCU处输出 的Y信号直流分量,Cb信号直流分量,Cr信号直流分量,以及直流信号归 零计数器输入给解码器作为解码时的初值,开始解码,直到解码完成。图4是图3解码的示例框图。如图4所示,如果图2的图片需要解码(40, 24 )到(103, 71)这个 矩形区域,则计算的起始MCU = ( 24 / 16 ) * ( ( 128 + 16 — 1 ) / 16 )= 8,终止MCU = ( ( 71+16-1 ) /16 ) * ( ( 128 + 16 - 1 ) / 16 ) - 1= 39。 故解码需要的数据就是记录8的码流位置到记录40的码流位置之间的数 据。同时,将记录8的信号直流分量,Cb信号直流分量,Cr信号直流分量, 以及直流信号归零计数器输入给解码器作为解码时的初值,开始解码,解 码第8到39个MCU,并输出相关的部分,直到解码完成。通过这样的运算, 我们共解码32个MCU模块,比直接解码节省了 一半。显而易见,在不偏离本发明的真实精神和范围的前提下,在此描述的 本发明可以有许多变化。因此,所有对于本领域技术人员来说显而易见的 改变,都应包括在本权利要求书所涵盖的范围之内。本发明所要求保护的 范围仅由所述的权利要求书进行限定。
权利要求
1.一种用于JPEG图像局部解码的方法,包括在对JPEG图像进行全局解码时生成记录;以及根据所述记录对所述JPEG图像进行局部解码。
2. 根据权利要求1的方法,其中 在开始解码每个最左侧最小解码单元时进行记录。
3. 根据权利要求1的方法,其中 所述记录包括所述JPEG图像的码流位置和直流分量, 所述码流位置包括字节位置,比特位置;所述直流分量包括Y信号直流分量,Cb信号直流分量,Cr信号直流 分量。
4. 根据权利要求1的方法,其中,所述局部解码包括 根据需要解码的局部图像的位置来计算需要解码的最小解码单元区间;根据所述区间和所述记录进行解码。
5. 根据权利要求4的方法,其中,所述计算是 起始最小解码单元=(局部图像左上角纵坐标/最小解码单元高度)* ((图像宽度+最小解码单元宽度-1)/最小解码单元宽度);结束最小解码单元=((局部图像右下角纵坐标+最小解码单元高度-1) /最小解码单元高度)* ((图像宽度+最小解码单元宽度-1)/ 最小解码单元宽度)-1。
6. 根据权利要求1的方法,其中,所述记录还包括直流信号归零计 数值。
7. 根据权利要求6的方法,其中,所述局部解码还包括根据所述直流信号归零计数值来确定直流信号归零计数值的初始值。
8. —种JPEG图像局部解码设备,包括用于在对JPEG图像进行全局解码时生成记录的模块;以及 用于根据所述记录对所述JPEG图像进行局部解码的模块。
全文摘要
本发明涉及一种用于JPEG图像局部解码的方法及设备,所述方法包括在对JPEG图像进行全局解码时生成记录;以及根据所述记录对所述JPEG图像进行局部解码。所述记录包括所述JPEG图像的码流位置和直流分量,所述码流位置包括字节位置,比特位置;所述直流分量包括Y信号直流分量,Cb信号直流分量,Cr信号直流分量。本发明通过得到图片码流位置和直流分量的索引值,从而实现了对JPEG图像的局部解码,大大缩短了解码时间。
文档编号H04N11/04GK101321291SQ20081011689
公开日2008年12月10日 申请日期2008年7月21日 优先权日2008年7月21日
发明者岩 史 申请人:北京海尔集成电路设计有限公司