专利名称:一种应急的jpeg压缩比特率控制装置和方法
技术领域:
本发明涉及图像传输处理领域,尤其涉及一种应急的JPEG (Joint Photographic Experts Group ,图片编码联合专家组标准,是静态图像编码标 准)压缩比特率控制装置和方法。
背景技术:
在PC camera (数码摄像头)的压缩图像传输中,由于JPEG的压缩数 据传输时并不是按恒定的比特率进行的,有的时候可能会在短时间内输出大 量的数据,形成一个峰值传输,这就对后一级处理模块的緩冲区设计提出了 很高的要求,如果输入緩冲区的数据速度高过输出的速度,緩冲区会在一定 时间后充满,造成缓冲区溢出。緩冲区溢出对于PC camera的应用来说是不能被容忍的,因为这会直接 导致用户观察到视频流中出现坏帧。为了抑制緩冲区溢出,必须加大JPEG的压缩比,但是对于及其复杂或 场景快速移动的图像,普通的比特率控制方法通常并不能将数据量无限度的 减少或者数据量减少的过程过于緩慢,这在某些极端情况下并不能緩解緩沖 区溢出的发生。在目前的JPEG压缩的视频传输方式中,虽然提供了不同模式的比特率 控制机制,但它们的压缩效果或者生效比较慢(如ABRC (auto bit rate control,自动比特率控制)的方法),或者压缩后数据量严重依赖于输入图 像。这时就需要一种能够将数据量无限压缩且快速生效的方法。发明内容本发明要解决的技术问题就是提出 一种应急的JPEG压缩比特率控制装 置和方法,解决现有技术JPEG压缩的视频传输方式中压缩效果差、生效较 慢的问题,能够将数据量接近无限压缩且快速生效。为了解决上述技术问题,本发明提供一种应急的JPEG压缩比特率控制 装置,包括JPEG模块、緩冲区模块;所述JPEG模块用于将输入的数据块 进行压缩,输出数据流给緩冲区模块;还包括緩冲区管理模块,所述緩冲区 管理模块用于根据緩沖区模块的緩沖区填充状况,控制JPEG模块是否丢弃 量化后的交流AC系数,以及丢弃多少个AC系数。进一步地,所述緩冲区管理模块根据緩沖区模块的緩沖区填充状况,发 送给JPEG模块丟弃参数,JPEG模块根据丟弃参数的值丟弃AC系数。进一步地,所述JPEG模块根据丟弃参数的值,按照高频到低频的顺序 丟弃量化后的AC系数。进一步地,所述JPEG模块丢弃AC系数为置需要丢弃的AC系数为0。进一步地,JPEG模块包括正向离散余弦变换单元、量化单元、Z字形 编码单元、变长编码单元,所述正向离散余弦变换单元、量化单元、Z字形 编码单元、变长编码单元依次连接;緩沖区管理模块反馈给JPEG模块的量 化单元丟弃参数;正向离散余弦变换单元将输入的8x8数据块进行离散余 弦变换,得到64个离散余弦变换系数,输入给量化单元进行量化,数据量 化后,量化单元根据丟弃参数的值,按高频到低频的顺序将相应地AC系数 置O,然后再将数据依次输入给Z字形编码单元进行Z字形编排、变长编码 单元进行数据编码压缩,然后输出给緩沖区模块。为了解决上述技术问题,本发明还提供一种应急的JPEG压缩比特率控 制方法,应用于具有JPEG模块、緩冲区模块和緩冲区管理模块的装置,包 括如下步骤(1)緩冲区管理模块获得緩冲区模块的緩沖区填充状况;(2 )緩冲区管理模块根据所述緩冲区填充状况控制JPEG模块是否丟 弃量化后的AC系数,以及丢弃多少个AC系数。进一步地,所述步骤(2)中,所述緩冲区管理模块根据缓沖区模块的 緩沖区填充状况,发送给JPEG模块丟弃参数,JPEG模块根据丢弃参数的 值丢弃AC系数。进一步地,所述步骤(2)中,JPEG模块根据丢弃参数的值,按照高 频到低频的顺序丟弃量化后的AC系数。进一步地,所述丟弃AC系数为置需要丟弃的AC系数为0。进一步地,所述步骤(2)包括对于緩冲区管理模块根据緩冲区模块的緩冲区填充状况,发送给JPEG 模块丟弃参数;对于JPEG模块,数据处理的步骤包括(A) 8 x 8数据块依次输入JPEG模块,进行正向离散余弦变换,将空 域的信息变换到频域,得到离散余弦变换系数;(B) 将离散余弦变换系数进行量化;(C) 根据丢弃参数的值,按高频到低频的顺序将相应地AC系数置0;(D) 将数据块在矩阵中按照Z字形的次序进行编排;(E) 使用差分脉冲编码调制对DC系数进行编码,使用行程长度编码 对AC系数进行编码,然后使用霍夫曼编码,对DC系数和AC系数作进一 步的压缩,输出给緩沖区模块,返回执行步骤(A)。现有技术中,有可能在最大压缩比下仍然不能满足系统对数据量的要 求;而本发明可以将图像压缩到只剩下DC (直流)分量,虽然这种方法在 静态图像压缩中一般不会采用,但是在视频流压缩中却可以大大减少数据 量,避免传输緩冲区溢出,同时又可以让用户察觉不到图像质量的变化。
图1为现有技术PC camera的JPEG图像处理框图;图2为本发明实施例的PC camera的JPEG图像处理框图;图3为本发明实施例的流程图。
具体实施例方式
本发明的核心思想是根据需要,直接丢弃图像数据在JPEG模块中量 化后的AC (交流)系数来减少数据量。下面结合附图及具体实施例对本发明进行详细说明。如图1所示,在现有技术中,数据以8x8的数据块的形式输入JPEG 模块后,经正向离散余弦变换(FDCT)单元,将空域的信息通过离散余弦 变换(DCT)变换到频域。原始的图像数据块经过DCT变换后,输出64个 DCT变换系数,其低频分量都集中在左上角,高频分量分布在右下角。所 述低频分量包含了图像的主要信息(如亮度)。为了达到压缩数据的目的,量化单元对正向离散余弦变换单元的输出进 行量化,其中使用的量化表需针对性地设计。例如,利用人眼的视觉特性, 对在图像中占有较大能量的低频成分,赋予较小的量化间隔和较少的比特表 示,以获得较高的压缩比。64个变换系数中,DC(直流)系数位于左上角,为直流分量,它是64 个图像采样值的平均值。其余63个AC(交流)系数均为交流分量。对数据进行量化后,由于低频分量中包含着更多的能量,为了保证低频 分量先出现,高频分量后出现,以便后续的编码,所以使用Z字形编码 (Zigzag)单元将量化后的8x8数据块在矩阵中按照"Z"字形的次序进行编 排,这样就把一个8x8的矩阵变成一个lx64的矢量,可增加零的连续次数。差分脉冲编码调制(differential pulse code modulation, DPCM)对直流系数 进行编码,使用行程长度编码(run-lengthencoding, RLE)对交流系数进行 编码,然后使用霍夫曼(Huffinan)编码,对DPCM编码后的DC系数和RLE 编码后的AC系数作进一步的压缩。这样,JPEG模块输出的经压缩后数据的比特流,发送给緩冲区模块, 由緩冲区模块再将数据发送出去。在本发明中,针对PC camera的特殊应用,我们提出直接丟弃图像数据 在JPEG模块中量化后的AC系数来减少数据量。虽然这种方法有可能造成 单帧图像清晰度变的很差,但是对于人眼来说, 一幅质量不怎么好的图像在3见频流一闪而过要远比一幅坏帧的出现更难让人察觉,这就是说在PC camera的应用中,这种方法是可行的。本发明根据各个AC系数的频率进行消减,比如,如果需要在每个8 x 8 的数据块中丢弃一个量化后的AC系数,那么我们会丟掉频率最高也就是包 含能量最少的系数;如果要丟掉两个AC系数,我们会选择丟掉频率最高的 两个系数,如此类推。最极端的情况我们甚至可以丢掉所有的63个AC系 数,只留下直流分量,这时数据量极度减少,而图像本身仍有让人满意的质 量。如图2所示,为本发明实施例的应急的JPEG压缩比特率控制装置,包 括JPEG模块、緩冲区模块以及緩冲区管理模块;其中JPEG模块用于将输 入的数据块进行压缩,输出数据流给緩沖区模块;緩冲区管理模块用于根据 緩冲区模块的緩沖区填充状况,控制JPEG模块是否丢弃量化后的AC系数 以及丟弃多少个AC系数。跟现有技术类似,JPEG模块包括正向离散余弦 变换单元、量化单元、Z字形编码单元、变长编码单元。本实施例与现有技术不同的地方在于,使用缓沖区管理模块,根据緩冲 区模块中緩冲区填充状况决定JPEG的压缩率,同时反馈给JPEG模块,控 制JPEG模块是否丢弃量化后的AC系数以及丟弃多少个AC系数。具体来说,可以设置緩冲区管理模块的丟弃参数,不同的緩冲区填充状 况,对应不同的丢弃参数的值,比如当緩沖区填充率小于等于80%,丢弃 参数的值为0,即无需丟弃AC系数;当緩沖区填充率大于80%,小于等于 81%,丢弃参数的值为l,即丟弃一个频率最高的AC系数,等等,当緩冲 区填充率等于100%,可设置丟弃参数的值为63,即丟弃所有的63个AC 系数。当然,此处所谓的"丟弃,,实际是掩对应的AC系数置0。这样,在 后续使用行程长度编码对AC系数进行编码时,连续的0被极大地压缩,压 缩后输出的数据量就会相应地减少。緩沖区管理模块反馈给JPEG模块的量化单元丢弃参数,量化单元根据 丢弃参数的值,相应地按高频到低频的顺序丢弃量化后的AC系数,然后再 将数据依次输入给Z字形编码单元进行Z字形编排、变长编码单元进行数
据编码压缩,然后输出给緩冲区模块。如图3所示,本发明实施例包括如下步骤步骤301, JPEG模块将数据块进行正向离散余弦变换,将空域的信息 变换到频域,得到64个DCT变换系数,其低频分量都集中在左上角,高频 分量分布在右下角;步骤302,对得到的DCT变换系数进行量化,其中DC系数位于左上角, 为直流分量,其余63个AC系数均为交流分量;步骤303,根据丟弃参数的值,按高频到低频的顺序丟弃量化后的AC 系数;当然,也可能无需丢弃AC系数,即丢弃参数的值为0;所述丟弃参数由緩冲区填充状况决定,在本实施例中,由緩冲区管理模 块监控并获得緩沖区模块的緩沖区填充状况,并设置丟弃参数的值;若緩冲 区已满或将满,则丢弃参数的值不为0,即需要丟弃AC系数,所述AC系 数的范围是1 63;所述的丟弃AC系数即将对应的AC系数置0;步骤304,数据块在矩阵中按照"Z"字形的次序进行编排;步骤305,使用DPCM对直流系数进行编码,使用RLE对交流系数进 行编码,然后使用霍夫曼编码,对DPCM编码后的DC系数和RLE编码后 的AC系数作进一步的压缩,输出给緩冲区模块。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本 领域的技术人员来说,本发明可以有各种更改和变化,本发明的保护范围以 权利要求为准。
权利要求
1.一种应急的JPEG压缩比特率控制装置,包括JPEG模块、缓冲区模块;所述JPEG模块用于将输入的数据块进行压缩,输出数据流给缓冲区模块;其特征在于,还包括缓冲区管理模块,所述缓冲区管理模块用于根据缓冲区模块的缓冲区填充状况,控制JPEG模块是否丢弃量化后的交流AC系数,以及丢弃多少个AC系数。
2. 如权利要求l所述的装置,其特征在于,所述緩冲区管理模块根据 緩冲区模块的緩沖区填充状况,发送给JPEG模块丟弃参数,JPEG模块根 据丟弃参数的值丢弃AC系数。
3. 如权利要求2所述的装置,其特征在于,所述JPEG模块根据丟弃 参数的值,按照高频到低频的顺序丢弃量化后的AC系数。
4. 如权利要求1 ~3中任意一项所述的装置,其特征在于,所述JPEG 模块丟弃AC系数为置需要丢弃的AC系数为0。
5. 如权利要求2或3所述的装置,其特征在于,JPEG模块包括正向离 散余弦变换单元、量化单元、Z字形编码单元、变长编码单元,所述正向离 散余弦变换单元、量化单元、Z字形编码单元、变长编码单元依次连接;緩 冲区管理模块反馈给JPEG模块的量化单元丟弃参数;正向离散余弦变换单 元将输入的8 x 8数据块进行离散余弦变换,得到64个离散余弦变换系数, 输入给量化单元进行量化,数据量化后,量化单元根据丟弃参数的值,按高 频到低频的顺序将相应地AC系数置0,然后再将数据依次输入给Z字形编 码单元进行Z字形编排、变长编码单元进行敖据编码压缩,然后输出给緩沖 区模块。
6. —种应急的JPEG压缩比特率控制方法,应用于具有JPEG模块、緩 冲区模块和緩冲区管理模块的装置,包括如下步骤(1) 緩沖区管理模块获得緩沖区模块的緩沖区填充状况;(2) 緩冲区管理模块根据所述緩冲区填充状况控制JPEG模块是否丢 弃量化后的AC系数,以及丟弃多少个AC系数。
7. 如权利要求6所述方法,其特征在于,所述步骤(2)中,所述緩冲 区管理模块根据緩沖区模块的緩沖区填充状况,发送给JPEG模块丢弃参数, JPEG模块根据丟弃参数的值丢弃AC系数。
8. 如权利要求7所迷方法,其特征在于,所迷步骤(2)中,JPEG模 块根据丢弃参数的值,按照高频到低频的顺序丟弃量化后的AC系数。
9. 如权利要求6-8中任意一项所述方法,其特征在于,所述丟弃AC 系数为置需要丟弃的AC系数为0。
10. 如权利要求8或9中任意一项所述方法,其特征在于,所述步骤(2) 包括对于緩沖区管理模块根据緩沖区模块的緩沖区填充状况,发送给JPEG 模块丟弃参数;对于JPEG模块,数据处理的步骤包括(A) 8x8数据块依次输入JPEG模块,进行正向离散余弦变换,将空 域的信息变换到频域,得到离散余弦变换系数;(B) 将离散余弦变换系数进行量化;(C) 根据丟弃参数的值,按高频到低频的顺序将相应地AC系数置0;(D) 将数据块在矩阵中按照Z字形的次序进行编排;(E) 使用差分脉冲编码调制对DC系数进行编码,使用行程长度编码 对AC系数进行编码,然后使用霍夫曼编码,对DC系数和AC系彩:作进一 步的压缩,输出给緩冲区模块,返回执行步骤(A)。
全文摘要
本发明公开了一种应急的JPEG压缩比特率控制装置,包括JPEG模块、缓冲区模块;所述JPEG模块用于将输入的数据块进行压缩,输出数据流给缓冲区模块;还包括缓冲区管理模块,所述缓冲区管理模块用于根据缓冲区模块的缓冲区填充状况,控制JPEG模块是否丢弃量化后的交流AC系数,以及丢弃多少个AC系数。本发明还公开了一种应急的JPEG压缩比特率控制方法。本发明在视频流压缩中却可以大大减少数据量,避免传输缓冲区溢出,同时又可以让用户察觉不到图像质量的变化。
文档编号H04N7/26GK101159870SQ20071017720
公开日2008年4月9日 申请日期2007年11月12日 优先权日2007年11月12日
发明者吴大畏 申请人:北京中星微电子有限公司