软件设计?
1.JPEG图片解码过程:
读入JPEG/JFIF文件的相关信息;
读取Huffman表和构建Huffman树;
DC系数的Huffman解码和AC系数的Huffman解码;
反量化和反Zig-zag扫描;
DCT逆变换和颜色模式转换。
2.使用的解码算法如下:
从文件头读出文件的相关信息。JPEG文件数据分为文件头和图像数据两大部分,其中文件头记录了图像的版本、长宽、采样因子、量化表、哈夫曼表等重要信息。所以解码前必须将文件头信息读出,以备图像数据解码过程之用。
从图像数据流读取一个最小编码单元(MCU),并提取出里边的各个颜色分量单元。关于如何从数据流中把一个个连续存储的MCU分割开来,以及如何从各个MCU中将多个颜色分量分割开来。
将颜色分量单元从数据流恢复成矩阵数据。利用文件头给出的哈夫曼表,对分割出来的颜色分量单元进行解码,把其恢复成8×8的数据矩阵。
8×8的数据矩阵进一步解码。此部分解码工作以8×8的数据矩阵为单位,其中包括相邻矩阵的直流系数差分解码、利用文件头给出的量化表反量化数据、反Zig-Zag编码、隔行正负纠正、反向离散余弦变换等5个步骤,最终输出仍然是一个8×8的数据矩阵。
颜色系统YCrCb向RGB转换。将一个MCU的各个颜色分量单元解码结果整合起来,将图像颜色系统从YCrCb向RGB转换。排列整合各个MCU的解码数据。不断读取数据流中的MCU并对其解码,直至读完所有MCU为止,将各MCU解码后的数据正确排列成完整的图像。
软件设计?
1.JPEG图片解码过程:
读入JPEG/JFIF文件的相关信息;
读取Huffman表和构建Huffman树;
DC系数的Huffman解码和AC系数的Huffman解码;
反量化和反Zig-zag扫描;
DCT逆变换和颜色模式转换。
2.使用的解码算法如下:
从文件头读出文件的相关信息。JPEG文件数据分为文件头和图像数据两大部分,其中文件头记录了图像的版本、长宽、采样因子、量化表、哈夫曼表等重要信息。所以解码前必须将文件头信息读出,以备图像数据解码过程之用。
从图像数据流读取一个最小编码单元(MCU),并提取出里边的各个颜色分量单元。关于如何从数据流中把一个个连续存储的MCU分割开来,以及如何从各个MCU中将多个颜色分量分割开来。
将颜色分量单元从数据流恢复成矩阵数据。利用文件头给出的哈夫曼表,对分割出来的颜色分量单元进行解码,把其恢复成8×8的数据矩阵。
8×8的数据矩阵进一步解码。此部分解码工作以8×8的数据矩阵为单位,其中包括相邻矩阵的直流系数差分解码、利用文件头给出的量化表反量化数据、反Zig-Zag编码、隔行正负纠正、反向离散余弦变换等5个步骤,最终输出仍然是一个8×8的数据矩阵。
颜色系统YCrCb向RGB转换。将一个MCU的各个颜色分量单元解码结果整合起来,将图像颜色系统从YCrCb向RGB转换。排列整合各个MCU的解码数据。不断读取数据流中的MCU并对其解码,直至读完所有MCU为止,将各MCU解码后的数据正确排列成完整的图像。
举报