CN1406360A - 图像压缩方法和装置 - Google Patents
图像压缩方法和装置 Download PDFInfo
- Publication number
- CN1406360A CN1406360A CN99810514A CN99810514A CN1406360A CN 1406360 A CN1406360 A CN 1406360A CN 99810514 A CN99810514 A CN 99810514A CN 99810514 A CN99810514 A CN 99810514A CN 1406360 A CN1406360 A CN 1406360A
- Authority
- CN
- China
- Prior art keywords
- data
- circuit
- coefficient
- dct
- image compressing
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/007—Transform coding, e.g. discrete cosine transform
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Discrete Mathematics (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
用来压缩提供给一个输入端子的图像数据并且将压缩数据提供给一个输出端子的图像压缩装置包括一个4×4加权数字余弦变换器(DCT),它连接到输入端子上并且用来将图像数据转换成加权频率数据。一个锯齿形电路连接到DCT上并且用来对频率数据进行锯齿形处理而产生锯齿形数据。一个Q-系数估算器连接到DCT上并且用来估算频率数据并且产生一个Q-系数。一个DC编码电路连接到锯齿形电路上,对锯齿形数据进行编码并且产生一种DC码。一个量化电路连接到锯齿形电路和Q-系数估算器上,根据Q-系数来量化锯齿形数据并且产生量化数据。一个行程编码电路连接到DC编码电路和量化电路,用来对量化数据进行编码,为输出端子产生作为压缩数据的可变长度数据。按照这种方式来压缩原始图像。尽管本发明是参照着具体的硬件来描述的,也可以采用本发明的功能用软件来实现。本发明的优点包括一种快捷和有效的图像压缩技术。另外,本发明还提供了一种可以应用于运动图像的快捷和有效的图像压缩技术。
Description
参考的有关申请
本申请要求享有本文所参考的1998年9月2日提交的临时申请60/098,844号;1998年9月1日提交的60/098,772号;1998年9月1日提交的60/098,728号;和1998年9月1日提交的60/098,752号的优先权。
本发明涉及到图像压缩的方法和装置。本发明具体提供了一种比常规的图像压缩技术更加快速和有效的图像压缩技术。
视觉通信的手段本身在目前已经不成问题。其基本的技术已经可以实现了。缺少的是实用的高质量数字电视和不太昂贵的性能。将高质量电视图像输入PC的唯一途径是通过摄像机。然而,由于发送大量的电视数据需要很大的带宽,使技术人员难以确定可行的方案。
常规的方案是采用连接到摄像机上的外部捕捉卡。摄像机通过普通电缆将每一帧电视数据发送回捕捉卡。在安装这种系统时,用户必须拆开计算机外壳将卡插入,并且可能还要解决硬件/软件冲突才能使系统工作。尽管这种方式能够支持全帧速率和全彩色浓度,仍然是一种昂贵的解决方案。
另一种方案是图像压缩,它对减少用来限定一个图像的数据量是一种有效的技术。常规的图压缩技术在本领域中是公知的,这其中包括JPEG(用于静止图像)和MPEG(用于运动图像)。尽管JPEG标准是用于静止图像的,它也可以用于运动图像,只要图像是一帧接一帧地连续的。MPEG标准采用改进的运动分析来提供高度压缩,但是还需要足够的处理能力。
常规的JPEG图像压缩提取一个图像的区域是8×8组象素,并且以每个区域的特征为一块。然后采用离散余弦变换(DCT)将这种块从时域变换到频域。接着对数据执行量化和熵编码。根据具体的图像,JPEG能够明显地减少图像数据(达50-90%)。然而,JPEG需要足够的处理能力来处理数据。因此,常规的JPEG的一种限制在于它具有固定的8×8块尺寸,并且需要通过大量的处理对图像执行压缩和解压缩。
本发明的目的是克服上述的限制,并且提供一种快捷和有效的图像压缩技术。本发明的另一个目的是提供一种能够应用于运动图像的快捷并有效的图像压缩技术。
本发明能够克服上述的限制,并且提供了一种快捷和有效的图像压缩技术。另外,本发明还提供了一种能够应用于运动图像的快捷并有效的图像压缩技术。可以将本发明称为JPEG-Lite。按照一个实施例,用来压缩提供给一个输入端子的图像数据并且将压缩数据提供给一个输出端子的图像压缩装置包括一个4×4加权数字余弦变换器(DCT),它连接到输入端子上并且用来将图像数据转换成加权频率数据。一个锯齿形电路连接到DCT上并且用来对频率数据进行锯齿形处理而产生锯齿形数据。一个Q-系数估算器连接到DCT上并且用来估算频率数据并且产生一个Q-系数。一个DC编码电路连接到锯齿形电路上,对锯齿形数据进行编码并且产生一种DC码。量化电路连接到锯齿形电路和Q-系数估算器上,根据Q-系数来量化锯齿形数据并且产生量化数据。一个行程编码电路连接到DC编码电路和量化电路,用来对量化数据进行编码,为输出端子产生作为压缩数据的可变长度数据。这样就能压缩原始图像。
按照本发明的一方面,本发明是将4×4加权DCT分割成二维DCT来处理。按照本发明的另一方面,将二维DCT进一步分割成一维DCT来处理。在本发明中采用一种专用系数表来提高压缩度。选择一个量化表来提供高级压缩,同时保留足够的数据以便还原原始图像。还选择一个DC码来改进压缩。也可以采用行程编码(RLC)和可变长度编码(VLC)来改进压缩。
按照本发明的一个实施例,如果图像捕捉装置(例如摄像机)和存储装置(例如计算机)或重放装置(例如监视器)之间的带宽受限时可以调用一个动态位速率控制器来缩小带宽,同时维持高质量的图像。本发明的另一个实施例具有误差检测,使接收装置能够识别误差并且采取步骤防止误差破坏整个图像。另外,尽管本发明是参照具体的硬件来描述的,采用下文所述的功能也可以用软件来实现本发明。
本发明的优点包括一种快捷和有效的图像压缩技术。另外,本发明提供了一种可以用于运动图像的快捷并有效的图像压缩技术。
通过参照附图阅读以下的具体说明就可以看出本发明的优点,在附图中:
图1表示按照本发明一个实施例的影像压缩结构;
图2A-F表示本发明一个实施例的象素数据;
图3A-H表示本发明中使用的4×4数字余弦变换;
图4表示本发明中使用的一种锯齿形图;
图5表示本发明中使用的量化区域;
图6表示本发明中使用的行程代码表;
图7是用于本发明的编码空间;
图8表示用于YUV 411输入流的组装方案;
图9表示能够支持的影像数据格式的目录;
图10A表示通过一个固定速率频道溢出的数据;
图10B表示由本发明的位速率控制器来控制的数据速率;
图10C表示以最大和最小值为界而变化的压缩系数(ridx);以及
图10D表示一个数据块行。
实施例是参照具体结构来描述的。本领域的技术人员在权利要求书的范围内显然还可以实现各种变更和修改。例如,尽管本发明是参照具体的硬件描述的,也可以用软件来实现本发明。
A.影像压缩结构
图1表示按照本发明一个实施例的影像压缩结构10。用象素代表的图像被提供给输入端子18,被称作图像数据。一个滤波和混洗电路20连接到输入端子并用来混洗图像数据。一个4×4数字余弦变换(DCT)电路22连接到滤波和混洗电路,用来将图像数据变换成加权频率数据。DCT的加权参见下文。锯齿形电路24连接到DCT并且用来对频率数据进行锯齿形处理并产生锯齿形数据。Q-系数估算器26连接到DCT并且其位置与锯齿形电路并联。Q-系数估算器被用来估算频率数据并且产生一种Q-系数。DC编码电路28连接到锯齿形电路,用来对锯齿形数据进行编码并且产生一种DC码。量化电路30连接到锯齿形电路和Q-系数估算器,用来根据Q-系数估算器提供的Q-系数来量化锯齿形数据并且产生量化的数据。行程编码电路(RLC)32连接到DC编码电路和量化电路,用来对量化数据编码,为输出端子34产生作为压缩数据的可变长度数据。在一个实施例中,在输出端子前面有一个组装和长度估算电路36连接在行程编码电路上。BRC被用来监视来自VLC的输出数据并且如下文所述根据需要来压缩数据。
在另一个实施例中,连接到输出端子34上的接收装置包括一个误差检测和恢复电路36,用来识别压缩数据中的误差并且防止误差破坏数据。这种误差检测和恢复电路可以使接收装置尽可能重组成图像,并且防止误差损害到后续图像的重组。
B.滤波和混洗
这种设计的目的是将4∶2∶2 YUV影像变换成4∶1∶1 YUV影像,并且执行光栅到数据块的变换(混洗)。混洗的目的是将输入的光栅格式变换成数据块(4×4)格式。用Ym,n代表m行中的第n个象素。输入光栅格式如图2A所示,假设每行有640个象素。由混洗算法提供的象素数据如图2B所示。
为了执行光栅到数据块的变换,可以用芯片上的存储器暂存象素数据。如果存储器尺寸大到足以存储8-行数据,就能够用硬件实现混洗。存储器被分割成2组,各自存储4-行数据。在前4-行数据完成混洗之后读出混洗的数据,同时将输入的后4-行数据存储在另一个存储器组中。按照这样的方法,控制逻辑简单明了并且静态随机存储器(SRAM)寻址技术是不变的,但是对8-行的数据仍然需要存储器。然而,8-行数据所需的存储器容量是可观的,特别是在一行中包含大量象素的情况下。事实上,用于混洗的最小存储器容量是4-行数据。如果存储器只能存储4-行数据,在前4-行数据完成混洗后就要读出混洗的数据,同时接收后4-行的数据并且可以将其存储在混洗数据已经被读出的存储空间中。由于前4-行数据的写入和读出次序是不同的,SRAM地址方案对每4-行数据块来说并不是固定的。图2C表示前4-行的写入地址。图2D表示前4-行(用于混洗数据)的读出地址和后4-行的写入地址。
按照这种方式,利用具有字节写控制的32-位SRAM可以进一步简化混洗地址技术。在写入阶段将8-位数据写入由字节写控制选定的四个8-位之一。在读出阶段同时读出32-位字。采用这种SRAM接口,本发明能够将4个字节组装成一个双字。例如可以将Y0,0到Y0.3(Y0,0-3)存入一个双字,而将Y0,4到Y0.7(Y0,4-7)存入另一个双字。在读出阶段同时读出包含Y0,0到Y0.3的双字。本发明可以如图2E所示重新安排前4-行(0到3行)写地址的寻址方案。这样,前4-行(用于混洗数据)的读地址和后4-行的写地址如图2F所示。
比较原有的技术,本发明中采用32-位宽的SRAM能够简化用于混洗的SRAM寻址方案。可以用如下算法来计算这一寻址方案:
(1)给定每行的数据数量,得到每行/4-1的数据的DPL数量
(2)初始距离=1;
(3)初始地址=1;
(4)估值X=当前地址+距离;
(5)如果(X>DPL)下一地址=X-DPL;
否则,下一地址=X;
(6)回到步(4),直至4行结束
(7)将后4行的地址设定为新地址;以及
(8)回到步(3),直至图像结束。
在步(7)中,本发明在写完4行之后设定距离。后4行的距离是写入第二行中第一个数据时从地址中获得的。例如,第二行第一个数据的地址是0160,本发明就将后4行的距离设定为0160。在读出前4行的混洗数据时,距离是0160,而在写入第五行第一个数据时,本发明从地址0002获得第8到11行的距离。
C.离散余弦变换(DCT)
参照图3A-H来描述一种4×4加权DCT。4×4DCT的好处是减少对存储器的需求并加快操作。按照本发明的一方面,将4×4DCT缩小成二维DCT,如图3A所示。因为二维DCT是可分离的,二维DCT可以进一步缩小成一维DCT,如图3B所示。图3C表示在矩阵A中使用的系数。图3D表示可以用另一种公式写成的一维DCT。图3E表示采用表1中的系数为二维DCT加权。
为了进一步对高频成分去加重,这些DCT系数S(v,u)被系数W(v,u)进一步加权变成Sw(v,u),这样能进一步减少数据量。本发明采用的加权系数如表1中所示。
W(0,0)=0.25 | W(1,0)=0.46 | W(2,0)=0.44 | W(3,0)=0.38 |
W(0,1)=0.46 | W(1,1)=0.43 | W(2,1)=0.40 | W(3,1)=0.35 |
W(0,2)-0.44 | W(1,2)=0.40 | W(2,2)=0.38 | W(3,2)=0.33 |
W(0,3)=0.38 | W(1,3)=0.35 | W(2,3)=0.33 | W(3,3)=0.29 |
表1:DCT加权系数
图3F表示合并一维DCT并且对最终的一维DCT公式加权之后的公式。图3G表示一维DCT的功能性构造。图3H表示如何用硬件实现这种DCT。DCT的结果是加权频率数据的一个4×4数据块。
D.锯齿形扫描
锯齿形扫描将二维阵列的AC系数顺序重新排列成一维线性阵列。其顺序近似于从低频成分到高频成分的扫描。在图4中表示了每个4×4数据块中严格的锯齿形扫描顺序。
按照这种锯齿形扫描顺序,将4×4区域划分成2个不同的区域。每个区域自身具有和一种不同的Q-系数相联系的一组量化系数。图5中表示了象素位置与这种区域之间的关系。
E.Q-系数估算器
AC系数的动态范围应该缩小,以便进一步限制编码空间。此处采用的技术叫做量化,也就是按照预定的数量来分割每个AC系数。这一预定数量叫做量化系数。与标准的JPEG中用于整个图像的固定量化系数不同,用于JPEG-Lite算法的这些量化系数需要根据当前4×4影像数据块的复杂性来调节。这样就有助于编码器在独立的数据块当中适当地改变复杂性。为了适应这些系数,可以选取4种可能的Q-系数值0,1,2,3。按照AC系数的范围来选取不同的Q-系数。它们的关系由表2所限定,其中的ACmax是每个4×4数据块中的最大AC系数。
检查条件 | 组装的Q-系数 |
ACmax>=24 | Q=3 |
24>ACmax>=12 | Q=2 |
12>ACmax>=6 | Q=1 |
6>ACmax | Q=3 |
表2:Q-系数判定标准
按照表2,如果最大AC系数大于或等于24,Q-系数就是3,如果最大AC系数大于或等于12,Q-系数就是2,如果最大AC系数大于或等于6,Q-系数就是1,否则就是0。数24,12和6是用来控制影像质量的3个调节参数。
F.量化
不同的Q-系数联系着不同的各组量化系数。为了减少所需的硬件计算量,系数被设定为2的幂,将其称为量化阶数。因此,可以用移位运算来代替除法(或乘法)运算。
同一个Q-系数在不同量化区域内的量化阶数是不同的。为了便利,Y,U,V成分都共享同一个量化表,如表3所示。在量化之后,DC系数被保持在8位数(二进制补码),而AC系数被钳位在5位数加1个符号位。这样有助于限制编码集大小和检索范围。
区域0 | 区域1 | |
Q=0 | 1 | 2 |
Q=1 | 2 | 4 |
Q=2 | 4 | 8 |
Q=3 | 8 | 16 |
表3:在不同区域中用于所有Y,U,V成分量化系数
G.DC编码选择器
每一行4×4数据块占据128位(4×4×8=128)。如果压缩比是4到6,每个数据块也已经没有多大的空间可用了(仅有20-30位)。另外,DC系数占据了多达8位。为了降低开销,如果前面的DC系数与当前DC系数的差别小于+15/-16,就发送这一差别。按照一种模拟方式,根据图像的复杂性大约可保留2位。如果采用这种差别,就将DC_TYPE位设定为1(差分模式)。否则就将DC_TYPE位设定为0(直接模式)。在组装方案中的Q数目之后添加这一位。
选择这种形式的一个理由是要避免和全是0的二字节子头相混淆。例如,如果第一个DC系数是0,就按照DC_TYPE位=1的差分模式发送DC值。如果第一个DC系数不是0,就按照直接模式发送DC值,它包含至少一个非0位。因此,在图像数据流的前2字节内应该有一个‘1’。
由于这种特殊的组装方式,Y0和Y2被组装在一起,而Y1和Y3是一对。对U和V数据块也是一样。每个Y数据块将其DC值与前一个相比较,将Y1与Y0相比较,Y2与Y1相比较,而Y3与Y0相比较。然而,U和V数据块将这种DC值与各自的彩色数据块相比较而不是相互比较。这种方案能够最佳地体现彩色连续性,并且用差分模式精确代表的机会大约有85%到90%。
在(每一帧开头所包括的)每个水平行的开头有一个特殊点。在这种情况下,前面的DC值被设定为0而不是记录的最后一个DC值。其理由和上述的原理一样。这种惯例的理由和上文中为了避免与全0的二字节子头混淆的理由相同。
H.行程编码(RLC)和可变长度编码(VLC)
行程编码可用于量化的AC系数。两个非0的AC系数之间的0被算作另一个编码参数。这15个AC系数的顺序可以重组成对(run[0],amp[0]),(run[1],amp[1])等等。按照途所示的行程编码表,这些对对应着一定的代码比特流。一直连续到最后一个象素的连续的0可以用符号EOB代替。为了有效地解码,在每个数据块的结尾插入EOB。即使最后一个DC系数是非0仍然是这样。
图6所示的表是在JPEG=Lite方案中使用的RLC代码集。首先处理不同的图像(50个以上)以产生不同(run,amp)对的统计量。然后采用Huffman-编码算法按照概率来分配位次。概率越高,代码长度就越短。图6表示本发明使用的行程代码表。
在表的下面用‘rrrr’代表用4-位数编码的运行计数,而用‘aaaa’代表同样是用4-位数编码的绝对幅值。符号‘s’代表幅值的符号,如果幅值是负的,它就是‘1’。
图7表示了对应的编码空间。其中带数字的单元是可以直接编码的(run,amp)对,而数字代表其长度。带有单阴影线的单元代表按照一个0100110’b前缀,接着是3-位行程,5-位幅值和1-位符号来编码的(run,amp)对。带有双阴影线的单元代表按照一个0100111’b前缀,接着是4-位行程,4-位幅值和1-位符号来编码的(run,amp)对。5<run<14且amp>15的空白区域表示不可能出现并且被忽略的(run,amp)对。
I.组装和长度估算
在可变长度编码之后,将不同长度的代码组装成16-位字用于传输和存储。只要连接不同数据块的比特流就能有更多的机会进一步缩短总长度。
每个组装的代码开头是一个Q-系数数目(2位)和第一个Y数据块的DC编码类型(1位)。如果DC系数是差分编码的,下5位就是DC差别。否则,下8位就是DC系数。然后将组装的数据和AC行程编码的结果连起来。在编码过程中,如果达到了非0的AC系数的最大数,RLC就会停止对剩下的AAC系数编码并且发送一个“EOB”记号表示完成。否则就继续编码执行过程直至达到最后的系数,随后有一个“EOB”记号。
对第二Y数据块,第三及第四块继续这种可变长度编码过程。然后插入来自一个U数据块和一个V数据块的代码。重复相同的顺序直至每个数据块行的结尾。在每个数据块行的开头,比特流是连续的,只是有一个新的前置DC值需要设定为0。在一个图像帧真正的结尾处为最后一个字添加额外的‘1’位组成一个完整的16-位字。
按照当前的压缩统计量,Y数据块和UV数据块中的最大非0 AC系数的数目是可以调节的。如果数据的总数比理想的预算多得多,就需要在当前数据块行的结尾减少这些数目。
图8表示用于YUV 411输入流的组装方案。数据流输入的顺序是Y0,Y1,Y2,Y3,U,V,而组装顺序也类似。图像数据比特流是从每一帧开头的字边界上开始的。
在传递数据时,累计每一个数据块行和每一个帧的代码总长。在采用位速率控制的情况下,将每个数据块行或帧的长度报告给位速率控制器(BRC),用来调节压缩设置以便维持稳定的位速率。
J.动态位速率控制器(BRC)
为了实现一个数字捕捉装置(例如摄像机)和一个计算机之间的通信,采用通用串行接口(USB)是有益的。USB是计算机和附加设备之间的一种“即插即用”接口。USB能够支持每秒12兆比特的数据速度,兼容各种各样的设备,例如放音机,操纵杆,键盘,电话,扫描仪和打印机。可以为个人计算机(PC)增加一个新设备,不需要适配卡,甚至不需要在插入USB外围设备时关闭计算机电源。因此,计算机用户不需要考虑如何选择正确的串行端口,安装扩展卡,或者是倾斜开关,跳线,软件驱动器,IRQ设置,DMA通道和1/0地址等技术问题。
按照本发明的一方面,图像压缩器通过USB连接到另外的设备。因为USB总线具有预先固定的数据变换速率(用于同步变换),动态位速率控制器对于监视数据变换以提供稳定的图像数据速率是重要的。动态位速率控制器(BRC)可以通过调节允许的最大非0 AC系数来控制数据速率。这样,与图像质量的费用相比,编码的数据速率就会降低(导致图像质量变劣)。
为了更好地使用电视会议或电视邮件应用,需要传送大量的电视图像。可以支持的通用电视格式有:CIF,QCIF,SIF,QSIF和VGA。它们的图像尺寸和所需的变换数据速率如图9所示。
USB接口也有本身的局限。在所能支持的四种数据变换方案当中,同步变换对于处理大量图像数据是最好的。其他三种批量变换,中断变换和控制变换难以支撑带宽的要求。对于USB同步变换,每个设备的最大带宽是每秒1M字节。离开了这种压缩方案,电视摄像机仅能勉强支持QCIF和QSIF格式。
已经有了几种现成的常规图像压缩算法,例如JPEG,H.261,MPEG1/2和HV。JPEG算法是最简单的一种,但是没有能力支持恒定位速率的数据。其他四种算法可以支持恒定位速率的数据,但是在编码过程中需要非常复杂的数学运算。许多硬件解决方案具有电视图像的实时压缩和解压缩所需的性能,但是总体系统成本很高。单位价格过高是因为需要大面积硅片来处理复杂的JPEG算法,并且还需要VRAM或DRAM帧缓冲存储器芯片。
本发明(JPEG-Lite)是一种基于DCT的压缩方案,可以用最小的硬件需求按照4∶1到6∶1的比例有效地压缩输入图像数据流,并且能够在PC上以最小的计算需求量完成数据流的解压缩。动态位速率控制使其能够通过传输通道(例如USB)来调节位速率,没有图像劣化现象。
PC图像捕捉设备(例如摄像机)通过USB接口与PC通信。这种通信通道的特性是一种仅能容纳一定量数据通过的通道。如果超过了通道所能接受的数据量就会出现所谓的溢出现象,在最坏的情况下可能会丢失一些数据。
采用常规的JPEG算法来压缩电视图像可能会遇到压缩数据以随机的速率输入的问题,如图10A所示。有时候需要编码的一部分图像具有更加复杂的场面,会产生大量的数据和高速数据流。积累的作用就有可能超过USB接口能够处理的数据量,从而产生溢出的问题。
位速率控制器(BRC)可以作为一个调节器并且通过修改编码算法来平滑数据速率。为了降低数据速率,有些信息被放弃了。在采用位速率控制的图10B中也绘出了图10A的曲线。位速率控制器没有按照固定的量执行数据速率,而是刚好在低于所需数量的可行范围内。
由于USB提供了一种预定的数据变换速率(用于同步变换),动态位速率控制器对于监视数据变换以提供稳定的图像速率是重要的。动态位速率控制器(BRC)通过调节允许的最大非0 AC系数来控制这一速率。
保持的非0 AC系数的最大数量用一个指数(ridx)来表示,它对于Y数据块和U,V数据块分别被绘制成两组。在表4中表示了ridx和保留的AC系数之间的关系。这一指数越大,保留的AC系数就越多,质量也就越高。
指数 | Y数据块的最大非0 AC系数 | U,V数据块的最大非0 AC系数 |
0 | 0 | 0 |
1 | 1 | 1 |
2 | 2 | 2 |
3 | 3 | 2 |
4 | 4 | 3 |
5 | 5 | 3 |
6 | 6 | 4 |
7 | 7 | 4 |
8 | 8 | 5 |
9 | 9 | 5 |
10 | 10 | 6 |
11 | 11 | 8 |
12 | 12 | 10 |
13 | 13 | 12 |
14 | 14 | 14 |
15 | 15 | 15 |
表4:最大的非0 AC系数和ridx之间的关系
上表是按照以下的规律产生的。
(1)Y成分比U,V成分更加重要,因为它代表着亮度信息。这就是为什么Y系数的数量随着指数线性增加的原因。
(2)U,V成分扮演次要的角色,只需要按照低压缩指数保留几个系数。这时的压缩比比较高,而质量较差。
BRC有三个调节参数,初始指数ridx_ini,最大指数ridx_max和最小指数ridx_min。在每一帧的开头将指数设定在ridx_ini。随着压缩和编码的进行,ridx按照编码比特流的长度而上下变化,但是以其最大和最小值为边界。ridx越大,在编码过程中保留的AC系数就越多,图像质量也就越好。图10C表示压缩指数(ridx)以最大和最小值为边界的变化。
改变非0 AC系数最大数目的工作是在每个数据块行结尾处执行的。每个数据块行被限定为这样的(4×宽度)象素区域,4×4DCT可以从左到右横跨每一个图像帧,如图10D所示。在每个数据块行的结尾,BRC根据两个标准进行调节:局部数据流增量和总体数据流累计。
为了随时避免微小的变化,将Lth值用作一个可编程的门限来缓冲微小的过负荷或欠运行情况。在数据块行BL[i]的结尾,BRC将总体数据流累计值(Lall)和理想的累计值(Lacc)相比较。结果有以下四种情况:
(1)总数据计数小于理想计数。
(2)数据计数大于理想计数加上二倍门限(Lth)。
(3)数据计数大于理想计数加上门限(Lth),但是与情况2不同。
(4)情况1,2,3都不对。
以下是在总体水平上用来描述上述规律的确定步骤的一种伪-C程序。
if((Lall-Lacc)>(2*Lth)),then it is case 2;
else if(Lall-Lacc)>Lth),then it is case 3;
else if(Lall-Lacc)<Lth),then it is case 1;
else,it is case 4;
总地来说,在情况1下可以增大压缩指数(ridx),因为编码产生的数据流具有比较高的压缩率。在情况2和3下必须将指数减小,因为编码器产生的数据过多。然而,在一些少见的情况下即使对第一种情况也必须要减小压缩指数(ridx)。这是因为USB同步变换带宽在任一给定的时间是有限的。满足上述标准1的状况不需要保证输入数据速率处在一定的范围之内。在任意的时间段内(对USB是1ms),仅仅能变换有限数量的数据。
为了知道每个数据块行中会产生多少新数据,BRC将局部数据流增量值(Linc)和理想的增量(Lopt)相比较。结果也会落在以下四种情况之内:
(1)数据增量小于理想增量。
(2)数据增量大于理想增量加上二倍门限(Lth)。
(3)数据增量大于理想增量加上门限(Lth),但是与情况2不同。
(4)情况1,2,3都不对。
以下是在局部水平上用来描述上述规律的确定步骤的一种伪-C程序。
if((Linc-Lopt)>(2*Lth)),it is case 2;
else if(Linc-Lopt)>Lth),itis case 3;
else if(Lopt-Linc)<Lth),itis case 1;
else,it is case 4;
BRC模块根据上述总体和局部的比较来决定压缩指数(ridx)的实际变化。ridx的实际变化是通过查找表5来确定的。值得注意的是,为了降低数据速率,可以将这种变化设计成足够大,但是又足够小以避免突发的质量损失。
总体累计 | 局部增量 | |||
情况1 | 情况2 | 情况3 | 情况4 | |
情况1 | +2 | +1 | -1 | -2 |
情况2 | +1 | 0 | -1 | -2 |
情况3 | 0 | -1 | -1 | -2 |
情况4 | -1 | -1 | -2 | -2 |
表5:改变ridx的条件
在每一个图像帧的结尾,压缩指数被恢复到初始值而不用记忆。这是因为,如果电视图像的底部并是很复杂,压缩指数就会增大到一个很大的值。如果将最后记忆的ridx用于下一个图像帧,这一图像帧的顶部就可能会变得过于复杂了。此时会产生过多的压缩数据,而BRC不能很快地适应这种状况,这样就会发生硬件故障。因此,将压缩指数恢复成初始值是最好的技术方案。
K.误差检测及恢复
在本发明的一个实施例中提供了一种简单的轻微溢出误差恢复方法。按照本发明的一方面,这种误差检测和恢复是为USB接口而设计的。如上所述,同步变换可以处理大量的图像数据。对于USB同步变换而言,每个设备的增大带宽是每秒1M字节。
在串行总线传输过程中的任何一位上都可能出现误差。可能的位置如下。
(1)误差位出现在子头中,因为子头的大小是固定的,误差位只会影响到图像参数的解码但不会影响图像数据。
(2)误差位出现在Q-系数位中:AC系数的范围在这一数据块中不能准确地解量化。但是危害仅限于特定的数据块。
(3)误差位出现在DC_TYPE位:解码顺序完全是错误的,并且误差有可能一直扩散到底。
(4)误差位出现在DC值:特别是在差分模式下会影响到当前数据块及其随后数据块的DC值。
(5)误差位出现在(run,amp)码的符号位:这样会影响到AC值得符号,还会影响到重组的数据块。但是危害仅限于数据块内。
(6)误差位出现在(run,amp)码中:有时候软件解码器能够对不同的(run,amp)对解码,如果长度相同,就不会进一步损害比特流。否则误差就会很明显,甚至一直延续到代码结尾。
根据这样的分析就可以看出,情况3和6需要采取误差恢复方案使软件解码器能够在下一帧上连续工作。对于其他误差状况,由于软件溢出很大,不采取纠错步骤。
本发明采用的创新性技术是基于这样的事实,在每个数据块行的开头,每个数据块行中领先的DC值在“直接编码模式”下不会是0。如果数据块行中第一个DC是0,就用带有DC_TYPE位=1的差分模式传送这一DC值。如果第一个DC不是0,就用直接模式传送这一DC值,它包含至少一个非0位。因此,在图像数据流的前2字节中就会有一个‘1’。这就意味着如果在每个数据块行的开头接收到两个连续的0字节,软件解码器就能检测到一个误差。
因此,在比特流的结尾添加一定数量的0字节有助于系统从数据错误中得到恢复。具体的字节数取决于图像大小。然而,由于为了产生0的硬件成本以及在PC的主存储器中的存储成本,总是希望添加的0最少。
以大小为352×288的CIF图像为例。每个数据块行中有88(325/4)个Y数据块,连带22(3521414)个U数据块和22个V数据块。在每个数据块行中总共有132个数据块。在最坏的情况下,假设DC是按照直接模式编码的并且立即结束,最短的代码就是一个0 DC值和一个EOB(也就是说剩下的AAC系数都是0)。每个数据块使用13位,大约相当于一个16-位字。因此,可以添加的最小数量的0字是352*(1/4*2/3)=352*(3/8)=132字。在硬件编码器中完成添加0的工作,然后发送EOF(图像帧结束)信号。
软件解码器中的溢出量很低,因为它仅仅需要检查每个数据块行的开头。添加的0只会使压缩的数据比特流增加1%(268/25000)。因此,这是一种非常有效的误差恢复方案。
上文都是参照USB变换误差来说的。然而,当USB FIFO被充满和溢出时还会发生另一种类型的误差。因为来自CCD的输入象素数据不能暂停,除非是插入大量的FIFO作为缓冲器,没有办法停止这一象素处理管线。在FIFO出现充满误差的情况下,USB FIFO模块就确认VPACK模块并且忽略数据传送。VPACK模块不中断地继续,但是必须要记忆这一误差状态。在传送完一帧之后,VPACK模块必须通过USB控制寄存器让主机确认这一误差。损坏的图像数据被放弃,而软件解码器等待下一个图像帧的数据。通过插入等待状态可以扩大执行填0操作的时间间隔,这样能够避免在结尾出现FIFO溢出误差。
另外,尽管本发明是参照USB来描述的,任何通信媒体都可以采用本发明。
L.软件解码器
JPEG-Lite算法不仅仅可用于硬件编码的简化,还可以有效地用于软件解码。因为PC必须用软件来解码并且在屏幕上显示视频序列,需要有一种高性能的软件解码器。
按照软件仿真的结果,在表6中总结了可以实现的软件解码帧速率。从表中可以看出JPEG-Lite算法具备了合适的软件解码能力。多余的CPU能力可以用于其他用途,诸如电视-邮件处理,电视会议及类似的应用。
AMD K6-200 | Pentium II-300 | |
640×480 | 12 | 17 |
352×288 | 36 | 54 |
320×240 | 45 | 68 |
176×144 | 135 | 200 |
160×120 | 167 | 244 |
表6:软件解码性能的比较
M.总结
本发明的优点包括一种快捷和有效的图像压缩技术。另外,本发明还提供了一种可以应用于运动图像的快捷和有效的图像压缩技术。
尽管本发明是参照其最佳实施例来描述的,在权利要求书所限定的范围之内参照上述实施例还可以实现各种修改和变更。
Claims (17)
1.用来压缩提供给一个输入端子的图像数据并且将压缩数据提供给一个输出端子的图像压缩装置包括:
一个4×4加权数字余弦变换器(DCT),它连接到输入端子上并且用来将图像数据转换成加权频率数据;
一个锯齿形电路,连接到DCT上并且用来对频率数据进行锯齿形处理而产生锯齿形数据;
一个Q-系数估算器,连接到DCT上并且用来估算频率数据并且产生一个Q-系数;
一个DC编码电路,连接到锯齿形电路上,对锯齿形数据进行编码并且产生一种DC码;
一个量化电路,连接到锯齿形电路和Q-系数估算器上,根据Q-系数来量化锯齿形数据并且产生量化数据;以及
一个行程编码电路,连接到DC编码电路和量化电路,用来对量化数据进行编码,为输出端子产生作为压缩数据的可变长度数据。
2.按照权利要求1的图像压缩装置,其特征是:
将4×4加权DCT分割成二维DCT来处理。
3.按照权利要求2的图像压缩装置,其特征是:
将二维DCT进一步分割成一维DCT来处理。
4.按照权利要求1的图像压缩装置,其特征是:
DCT包括一个用来提高压缩度的专用系数表。
5.按照权利要求1的图像压缩装置,其特征是:
DCT包括一个仅有4个量化系数的专用系数表。
6.按照权利要求1的图像压缩装置,其特征是:
DC编码电路采用一种动态DC预测器,来进一步减少数据位。
7.按照权利要求1的图像压缩装置,其特征是:
量化电路包括一个量化表,可供选择提供高度的压缩,同时保留足够的数据以便还原原始图像。
7.按照权利要求1的图像压缩装置,其特征是:
量化电路包括一个具有两个量化区域的量化表,用来识别高频系数和低频系数。
8.按照权利要求1的图像压缩装置,其特征是:
由编码电路实现至少一种行程编码(RLC)和可变长度编码(VLC)。
9.按照权利要求1的图像压缩装置,其特征是进一步包括:
连接到编码电路的一个动态位速率控制器,用来在给予输出端子的带宽受限时减少压缩数据中的位数。
10.按照权利要求1的图像压缩装置,其特征是:
编码电路采用压缩指数来确定需要保留的AC系数的数量。
11.按照权利要求10的图像压缩装置,其特征是:
编码电路采用局部数据增量和总体数据累计结果来确定压缩指数的变化。
12.按照权利要求10的图像压缩装置,其特征是:
编码电路仅仅在数据块行的结尾处更新压缩指数,减少硬件溢出。
13.按照权利要求1的图像压缩装置,其特征是进一步包括:
连接到输出端子上的一个接收装置,用来接收压缩数据并且检测压缩数据中的误差;以及
在出现劣质数据时用这一接收装置来重组图像的有效部位。
14.按照权利要求13的图像压缩装置,其特征是:
压缩装置采用一种唯一的误差条件码,它不会出现在有效压缩数据中。
15.按照权利要求13的图像压缩装置,其特征是:
压缩装置采用一种唯一的误差条件码00作为EOB,它不会出现在有效压缩数据中。
16.按照权利要求1的图像压缩装置,其特征是:
DCT是用软件实现的;锯齿形电路是用软件实现的;Q-系数估算器是用软件实现的;DC编码电路是用软件实现的;量化电路是用软件实现的;以及编码电路是用软件实现的。
Applications Claiming Priority (11)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US9877298P | 1998-09-01 | 1998-09-01 | |
US9875298P | 1998-09-01 | 1998-09-01 | |
US9872898P | 1998-09-01 | 1998-09-01 | |
US60/098,728 | 1998-09-01 | ||
US60/098,772 | 1998-09-01 | ||
US60/098,752 | 1998-09-01 | ||
US9884498P | 1998-09-02 | 1998-09-02 | |
US60/098,844 | 1998-09-02 | ||
US09/386,251 US6353685B1 (en) | 1998-09-01 | 1999-08-31 | Method and apparatus for image compression |
US09/386,251 | 1999-08-31 | ||
PCT/US1999/020041 WO2000013135A2 (en) | 1998-09-01 | 1999-09-01 | Method and apparatus for image compression |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1406360A true CN1406360A (zh) | 2003-03-26 |
CN100338620C CN100338620C (zh) | 2007-09-19 |
Family
ID=27536896
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB998105147A Expired - Fee Related CN100338620C (zh) | 1998-09-01 | 1999-09-01 | 图像压缩装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US6353685B1 (zh) |
EP (1) | EP1116168A2 (zh) |
JP (1) | JP2002524007A (zh) |
CN (1) | CN100338620C (zh) |
WO (1) | WO2000013135A2 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101110955B (zh) * | 2006-07-19 | 2010-06-30 | 三星电子株式会社 | 用于恢复图像的设备和方法 |
CN101197988B (zh) * | 2006-12-04 | 2012-12-12 | 索尼株式会社 | 压缩数据量控制方法和图像数据压缩装置 |
CN103139567A (zh) * | 2013-01-28 | 2013-06-05 | 东软集团股份有限公司 | 一种图像压缩和解压缩的方法和装置 |
CN104216696A (zh) * | 2013-06-05 | 2014-12-17 | 北京齐尔布莱特科技有限公司 | 一种缩略图构件方法 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6499072B1 (en) * | 1999-09-02 | 2002-12-24 | Ati International Srl | Data bus bandwidth allocation apparatus and method |
US6934420B1 (en) * | 1999-12-22 | 2005-08-23 | Trident Systems Incorporated | Wave image compression |
JP2002094992A (ja) * | 2000-09-19 | 2002-03-29 | Sony Corp | 符号化データ長検出装置とその方法および画像符号化装置 |
US7596277B2 (en) * | 2002-04-09 | 2009-09-29 | Senthil Govindaswamy | Apparatus and method for detecting error in a digital image |
KR101127221B1 (ko) * | 2005-07-15 | 2012-03-29 | 삼성전자주식회사 | 주파수 공간에서 컬러 성분간 예측을 이용한 컬러영상부호화/복호화 방법 및 장치 |
US8077063B2 (en) | 2010-01-18 | 2011-12-13 | Freescale Semiconductor, Inc. | Method and system for determining bit stream zone statistics |
CN109643456A (zh) | 2016-06-17 | 2019-04-16 | 因默希弗机器人私人有限公司 | 图像压缩方法与设备 |
CN110494193A (zh) | 2017-02-08 | 2019-11-22 | 因默希弗机器人私人有限公司 | 向多人游戏场地中的用户显示内容 |
US11153604B2 (en) | 2017-11-21 | 2021-10-19 | Immersive Robotics Pty Ltd | Image compression for digital reality |
AU2018373495B2 (en) | 2017-11-21 | 2023-01-05 | Immersive Robotics Pty Ltd | Frequency component selection for image compression |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1007701B (zh) * | 1985-09-21 | 1990-04-25 | 利奥诺拉·乔斯特 | 经皮肤的和经粘膜的旋涡泡沫体装置 |
US5379351A (en) | 1992-02-19 | 1995-01-03 | Integrated Information Technology, Inc. | Video compression/decompression processing and processors |
WO1993012613A1 (en) | 1991-12-13 | 1993-06-24 | Avid Technology, Inc. | Quantization table adjustment |
US5355450A (en) | 1992-04-10 | 1994-10-11 | Avid Technology, Inc. | Media composer with adjustable source material compression |
US5809200A (en) | 1995-08-07 | 1998-09-15 | Victor Company Of Japan, Ltd. | Video signal recording apparatus |
JP3129392B2 (ja) * | 1996-02-02 | 2001-01-29 | 日本電気株式会社 | 2次元idct回路 |
US5870144A (en) * | 1997-03-28 | 1999-02-09 | Adaptec, Inc. | Reduced-quality resolution digital video encoder/decoder |
US6134270A (en) * | 1997-06-13 | 2000-10-17 | Sun Microsystems, Inc. | Scaled forward and inverse discrete cosine transform and video compression/decompression systems employing the same |
-
1999
- 1999-08-31 US US09/386,251 patent/US6353685B1/en not_active Expired - Fee Related
- 1999-09-01 CN CNB998105147A patent/CN100338620C/zh not_active Expired - Fee Related
- 1999-09-01 EP EP99945387A patent/EP1116168A2/en not_active Withdrawn
- 1999-09-01 WO PCT/US1999/020041 patent/WO2000013135A2/en not_active Application Discontinuation
- 1999-09-01 JP JP2000568051A patent/JP2002524007A/ja active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101110955B (zh) * | 2006-07-19 | 2010-06-30 | 三星电子株式会社 | 用于恢复图像的设备和方法 |
US10225568B2 (en) | 2006-07-19 | 2019-03-05 | Samsung Electronics Co., Ltd. | Apparatus and method of restoring image |
CN101197988B (zh) * | 2006-12-04 | 2012-12-12 | 索尼株式会社 | 压缩数据量控制方法和图像数据压缩装置 |
CN103139567A (zh) * | 2013-01-28 | 2013-06-05 | 东软集团股份有限公司 | 一种图像压缩和解压缩的方法和装置 |
CN103139567B (zh) * | 2013-01-28 | 2015-11-18 | 东软集团股份有限公司 | 一种图像压缩和解压缩的方法和装置 |
CN104216696A (zh) * | 2013-06-05 | 2014-12-17 | 北京齐尔布莱特科技有限公司 | 一种缩略图构件方法 |
CN104216696B (zh) * | 2013-06-05 | 2017-08-25 | 北京齐尔布莱特科技有限公司 | 一种缩略图构件方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2002524007A (ja) | 2002-07-30 |
WO2000013135A2 (en) | 2000-03-09 |
EP1116168A2 (en) | 2001-07-18 |
CN100338620C (zh) | 2007-09-19 |
US6353685B1 (en) | 2002-03-05 |
WO2000013135A3 (en) | 2000-07-27 |
WO2000013135A8 (en) | 2000-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1293509C (zh) | 以无损的方式编码数字图像数据的设备和方法 | |
US9762917B2 (en) | Quantization method and apparatus in encoding/decoding | |
CN1207897C (zh) | 图象处理方法和设备 | |
CN100338620C (zh) | 图像压缩装置 | |
CN1149851C (zh) | 发送图像数据和处理图像的方法和装置 | |
CN1303820C (zh) | 基于质量的图像压缩 | |
CN1285216C (zh) | 图像编码方法和装置、图像译码方法和装置 | |
EP2442574A1 (en) | System and method for effectively encoding and decoding electronic information | |
CN101031086A (zh) | 视频信息编码方法和视频信息解码方法 | |
CN1960495A (zh) | 图像编码装置、方法及程序 | |
CN1726709A (zh) | 利用基于图像的超前查看窗口进行速率控制 | |
CN1516848A (zh) | 基于小波变换的图像编解码器中获得编码增益的方法和系统 | |
CN1192105A (zh) | 图象压缩/编码装置及其方法 | |
CN1893659A (zh) | 应用Golomb-Rice编码法的DCT压缩法 | |
CN1633811A (zh) | 图像编码方法、图像译码方法、图像编码装置、图像译码装置、程序、计算机数据信号,以及图像传送系统 | |
CN1922859A (zh) | 图像压缩方法、图像压缩装置、图像传输系统、数据压缩预处理装置及计算机程序 | |
CN1318950A (zh) | 图像编码装置及其方法、摄像机、录像装置和图像发送装置 | |
CN1791219A (zh) | 用于片上系统的双层总线结构 | |
JP4440308B2 (ja) | 画像圧縮におけるレート制御方法及びシステム | |
CN101043621A (zh) | 一种自适应插值处理方法及编解码模块 | |
CN1547708A (zh) | 以无损方式对数字图像和音频数据解码的系统和方法 | |
CN1664862A (zh) | 图像编码和解码的方法 | |
CN1290335C (zh) | 对被编码的视频信号同时进行格式压缩和解码的方法 | |
CN1848953A (zh) | 一种h263编码中码率的控制方法 | |
CN1778117A (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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070919 Termination date: 20091009 |