760 likes | 1.04k Views
第 9 章 图像压缩标准 (2). 二、静止图像压缩编码标准 JPEG2000 (ISO15444). 1. JPEG2000 的背景. JPEG 的不足之处(1). 一般用来压缩真彩色的人物与风景图片,对处理文字 、卡通图画、线绘图等2值图象表现不佳。也不适合压缩计算机生成的合成图像。 JPEG 很少用来压缩混合文档。 JPEG 压缩效率不够高,在中、高码率时图像质量不错,但在低码率时(如低于0.25 bpp 的细节丰富的灰度图象)图象的畸变就无法接受。 JPEG 适合处理供欣赏的图象,而不是供数据分析的图象。
E N D
JPEG的不足之处(1) • 一般用来压缩真彩色的人物与风景图片,对处理文字 、卡通图画、线绘图等2值图象表现不佳。也不适合压缩计算机生成的合成图像。JPEG很少用来压缩混合文档。 • JPEG压缩效率不够高,在中、高码率时图像质量不错,但在低码率时(如低于0.25 bpp的细节丰富的灰度图象)图象的畸变就无法接受。JPEG适合处理供欣赏的图象,而不是供数据分析的图象。 • 不能在同一压缩图象,又提供有失真的压缩图象。码流中既提供性能优异的无失真
JPEG的不足之处(2) • 对于分辨率很高的图象,如不进行拼接,就无法直接处理。目前JPEG算法不允许图象大于 64K x 64K(pel)。 • JPEG 有44种不同的模式, 其中许多是专用的, 常用的大多数JPEG解码器无法进行解码。 • JPEG虽然有重启区间(restart intervals)的措施, 但发生传输错误时图象质量将受到严重损害。
JPEG2000 contributors 15 countries / 80-100 meeting attendees – EUROPE • Ericsson, Nokia, Philips, Canon, Motorola, Alcatel,EPFL, NTNU, Technical University of Denmark, ... – USA/Canada • Kodak, HP, Rockwell, Motorola, TI, Ricoh, Sharp,Adobe, University of Maryland, UBC, RPI – ASIA • Samsung, Panasonic, Sony, OKI, Mitsubishi, CISRA...
JPEG 2000的目标之1 (1) Superior low bit-rate performance 例如,具有丰富细节的灰度图象,在不牺牲其性能时压缩比低于0.25 bpp, 这是优先级最高的目标。 (2) Continuous-tone and bi-level compression 既能压缩连续色调图象, 又能压缩2值图象和合成图像。 可处理各种动态范围的图象 (如每个颜色分量 1 bit to 16 bit). 此类应用有混合文档, 带有注释的医学图象, 图表及带有2值或近似2值区域、 alpha平面和透明面的计算机合成图象, 传真图象等。
JPEG 2000的目标之2 (3)Lossless and lossy compression in a single codestream 同一码流中既提供无失真又提供有失真的图像 此类应用有医学图象,存档图象,网络应用,印前处理。 (4)Progressive transmission by pixel accuracy and resolution 以象素精度或分辨率作为单位的累进式传输。 此类应用有WWW,图象存档,打印机等。
JPEG 2000的目标之3 (5) Fixed-rate, fixed-size, limited workspace memory 固定速率指的是,对给定数目的连续象素编码后,产生的比特数应小于等于规定的值,从而允许解码器在带宽有限的通道上进行实时解码,如遥感图象,运动编码等。 固定大小指的是,对一幅完整图象编码后,码流的大小应为定值,这就允许存储空间有限的硬件能保存一个完整的码流(不管图象大小), 例如扫描仪,打印机等。
JPEG 2000的目标之4 (6) Random codestream access and processing 允许用户定义图象中感兴趣的区域( Regions-Of-Interest, ROI) ,并能以较小的失真对它进行随机存取和解码;码流随机处理包括:旋转,平移,缩放,滤波,特征提取等。 (7) Robustness to bit-errors 由于码流中的某些部分在决定图象质量方面比其它部分更加重要,码流的正确设计能帮助后继的纠错系统, 减轻错误的影响。
JPEG 2000的目标之5 (8) Open architecture 开发高灵活性的编码工具或采用描述语言发送和集成新的压缩工具。允许用户选择适合其应用和未来发展的工具,解码器只要实现核心的一组工具和能理解码流的一个语法分析器。需要时,解码器可以向“源”请求发送一个未知的工具。 (9) Sequential build-up capability (real time coding) 能顺序地一趟对图象进行编码和解码,对图象的分量可以交错地也可以顺序地进行处理。压缩和解压缩期间,使用的上下文应限定在合理的象素线数目之内。
JPEG 2000的目标之6 (10) Backwards compatibility with JPEG 与现在正在使用的JPEG保持向下兼容, 或者很容易进行转码(transcoding) (11) Content-based description 在大型图象数据库中寻找所需要的图象是极为重要的应用, 特别是在医学,法律,档案等领域。不管采用什么技术, JPEG 2000 应该为这个问题的解决而作出努力。
JPEG 2000的目标之7 (12) Protective image security 保护数字图象安全。可考虑采用的方法如水印(watermarking),标签(labeling),盖戳(stamping),指纹(fingerprinting),加密(encryption),乱序(scrambling)等。 (13) Compatibility with ITU-T recommendations for image exchange 传真也是JPEG 2000的应用, ITU-T关于图象交换的建议也将用来交换和发送JPEG 2000的编码图象 ,JPEG 2000编码图象也会符合 ITU-T 建议中关于灰度图象和彩色图象编码的需求。
JPEG 2000的目标之8 (14) Interface with MPEG-4 JPEG2000所开发的压缩静止图象的编码工具应当以合适的接口提供给MPEG-4,从而允许与MPEG-4之类的面向语法的编码方案进行交换和集成,特别是在向/从运动图象嵌入/抽取静止图象时,必须保持知识产权信息IPR。 (15) Side channel spatial information (transparency) alpha平面和透明平面之类的边通道空间信息,可在传输有关图象处理(如显示、打印或编辑等)信息时有用,例如透明平面可用于WWW应用。
JPEG 2000的目标之9 (16) Object Based Functionality – Object based composition: 允许用户把具有任意形状(或透明度)的多个对象,非常灵活地复合出许多不同的静止图象; – Object based information embedding: 为每个对象嵌入对象描述信息,为数字图象的索引和检索提供了一种有效的方法。
JPEG2000的内容 ⑴ JPEG2000图象编码系统(核心部分,复杂性最小、可交换性最大的部分,能满足80%的应用需求) ⑵ 扩展部分(扩展更多特性,受IPR保护) ⑶ Motion JPEG2000 ⑷ 一致性测试 ⑸ 参考软件(目前有JAVA与C程序) ⑹ 复合图象文件格式
JPEG2000的内容 (8) JPSEC (security) (9) JPIP (interactive protocols and API) (10) JP3D (volumetric imaging ) (11) JPWL (wireless applications) (Part 7 已取消)
JPEG2000的编解码过程 Jpeg2000编码 Jpeg2000解码
将输入图象划分为互不交迭的、相同大小的矩形片(tiles ). 片的大小可任意,小至1个象素,大至整幅图象。 预处理 • 将(正整数的)样本值减去一个偏移量2P-1 ,使成为“0”对称 (P是样本的位数)。 即:[0, 2P - 1] → [-2P– 1, 2P – 1 - 1]
正向变换公式: 反向变换公式: (1)不可逆彩色变换 • Irreversible color transform (ICT) (仅适用于lossy coding) (real-to-real)
Reversible color transform ( RCT). (integer-to-integer) ( lossless and lossy coding均适用) (2)可逆彩色变换 Y=[(R+2G+B)/4] U=R-G V=B-G 正向变换公式: G=Y- [(U+V)/4] R=U+G B=V+G 反向变换公式:
实验结果 • (ICT) on image quality: PSNR (in dB) for the color image woman (of size 2048x2560 pixels per component) at 0.0625bpp
合成滤波器组 分析滤波器组 小波系数 1-D DWT的信号重建 • 向上取样(插入样本) • 使用一对合成滤波器组(g0, g1) 分 别进行低通和高通滤波 • 将滤波器的输出相加
原始信号: 0 0 0 0 1 0 0 0 1 0 0 0 0 0 低频小波系数: 0¼ ¼ ¼ ¼ 0 0 高频小波系数: 0 0 1 0 1 0 0 (5,3) 滤波器组应用举例 h0(n)=(-1 2 6 2 -1)/8 低通滤波器输出: 0 0-1/8 ¼ ¾ ¼ -¼ ¼ ¾ ¼ -1/8 0 0 0 h1(n)=(-1 2 -1)/2 高通滤波器输出: 0 0 0-½ 1 -½ 0 -½ 1 -½ 0 0 0
小波提升方案 • Swelden提出 • 原位计算 • 整数提升 • 分解结果交织 Xe Ye 奇偶分割 奇偶合成 γ X Y U -P -U P λ Xo Yo
小波提升 原信号: 12 20 30 35 15 19 11 11 19 26 45 80 90 92 高频信号: 12 -1 30 13 15 6 11 -4 19 -6 45 13 90 2 低频信号: 12 -1 27 13 10 6 10 -4 21 -6 43 13 86 2 偶数信号: 12 -1 30 13 15 6 11 -4 19 -6 45 13 90 2 奇数信号: 12 20 30 35 15 19 11 11 19 26 45 80 90 92
量化 • 对每一个子带可以有不同的量化步长,但是在一个子带中只有一个量化步长的均匀量化。 • 量化步长△b与子带b的动态范围有关,动态范围由原始图像的像素位数和使用的小波变换决定。 • 公式中Rb表示每个子带相应的动态范围标称值, • Eb表示量化步长△b的指数 • μb表示量化步长△b的尾数。
某个子带的一个码块 码块划分 子带 • 每个子带的量化索引被划分为若干矩形代码块,其宽和高应为2的幂次(一般为64x64),乘积不超过4096。 • 每个码块独立进行编码, • 不同片(tile)中码块的大小可以不同.
bn bn-1 b0 b0 码块的编码顺序 • 每个码块独立进行编码,从最高的位平面开始,到最低的位平面结束。 • 将码块中的系数分成若干条( stripes ),每一条的高度是 4,扫描顺序为:从上到下,从左到右。
重要性状态变量 • 码块中每个系数都有一个关联的二进制状态变量(“有效性”状态),其初值为“0”。编码过程中,当前编码系数在该位平面中第1次出现“1”时,它的状态就转换为“1”(系数变为有效),并保持到编码完成。编码过程中,每个系数总处于下述3种状态之一: • 无效态(insignificant):表示该系数还没有出现“1”。 • 有效态(significant):表示该系数已经出现过“1”。 • 上下文有效态(context_significance):虽然该系数还没有出现“1”,但围绕该系数的8个相邻的系数中至少已经有一个处于“有效态”,因此,该系数很快就可能成为“有效”。
码块的3趟处理 • 每一码块的每一个位平面,需要进行3趟处理,每一趟处理一部分比特。位平面中的每一个比特,只在某一趟中被编码。 • 1.重要性传播编码通道 位平面中的那些现在“无效态”,但成为“有效态”的概率很大的比特数据将被编码。 • 2.幅度精炼编码通道 主要是对那些在先前位平面己经被判定为有效态的数据,在本位平面中对应的比特进行编码。 • 3.清除编码通道 位平面中所有还未编码的数据都在“清除码通”中被编码。
四种基本编码算法1 • 零编码(Zero Coding) • 在重要性传播码通和清除码通编码过程中
四种基本编码算法 • 符号编码(Sign Coding) • 用在重要性传播编码通道和清除编码通道 • 5 个内容模型是由被编码比特的上下左右四个数据的重要性信息和符号位信息决定。其中“1”表示在垂直或者水平方向的相邻两个数据都为重要并且符号都为正;或者只有一个是重要的情况。“0”表示两个方向的相邻数据中两个数据都不重要或者都为重要但是具有不同的符号;-1 表示的情况和 1 的情况相反。
四种基本编码算法 • 幅度精炼编码(Magnitude Refinement Coding) • 用于幅度精炼编码通道编码过程中
四种基本编码算法 • 游程编码(Run Length Coding) • 用在清除码通编码中 • 仅当一个编码列(4 个比特数据)的所有相邻数据都不重要时,开始进行游程编码处理。这时,如果一列中的 4 个数据也为不重要数据,则统一编码为一个内容模型(CX=17)和编码数据 D=0。如果 4 个数据中至少有一个变为重要,则首先将其表示一个内容模型(CX=17),其对应编码数据 D=1;然后,编码 4 个数据中的第一个重要数据的位置信息 (00~11),这时采用一个“游程编码”的内容模型进行编码(CX=18 );然后编码第一个重要数据的符号位;随后按照零编码算法进行数据的编码处理。
例子 • 小波系数 • 位平面编码 • 算数编码结果
压缩数据及各个位平面的编码过程 图象大小:256x 256,2级小波变换,码块大小64x64