JPEG算法是一种数字图像压缩编码算法,具有压缩比例高、失真小的特点,并已被确定为国 际标准[1]。要对以JPEG文件格式进行存储的数字图像进行显示和回放,需对其进 行解码。DSP处理器具有特殊的处理器结构、指令系统和指令流程,是一种特别适合数字信 号处理的微处理器[2]。DSP对JPEG图像的解码处理,具有小巧灵活、实时高效的特 点,在诸如数码相机、监视系统、手机、PDA以及可视电话等多媒体嵌入式系统中应用广泛 。
1JPEG图像解码算法的基本原理
JPEG图像解码需要将JPEG图像数据恢复成压缩编码前的图像数据。如图1所示,JPEG 图像解码须经过预处理、Huffman解码、反量化、IDCT变换这几个主要步骤,然后还要经过 后续处理才能最终将JPEG图像显示出来。
2JPEG图像解码算法的实现和优化
本文以16位定点ADSP为例,论述使用DSP将24位真彩色JPEG图像解码为可显示的RGB颜色空间 2.1预处理
JPEG图像解码需要从JPEG图像文件中提取解码需要的各种信息和压缩数据。JPEG图像文件 大体上可分为2个部分:压缩数据和标记码。压缩数据是以MCU(最小编码单元)形式存 2.2基于IDCT的解码实现
基于IDCT的解码过程如图1虚线框所示,包括:Huffman解码、反量化和IDCT变换。如前所述 JPEG文件中的压缩数据是以MCU形式存储的,因此解码过程也必须以MCU为单元来实现,即不 断对MCU单元进行循环解码,直到取完所有压缩数据为止。JPEG文件中MCU可以定义成 多种模式,本文以MCU的4∶1∶1模式进行说明。
2.2.1Huffman解码的实现储的经过压缩编码后的数据。标记码给出了诸如图像长度、宽度、量化表、Huffman表等 重要信息,而这些信息都包含在不同类型的标记码中。预处理算法需要识别不同的标记码, 并提取标记码中的有用信息。当进入SOS(扫描开始)标记码并开始读取压缩数据时,预处 理任务结束,开始进入解码阶段。
图像的算法流程。
如图2所示,对一个MCU进行Huffman解码,需在完成亮度解码后才能进行色度解码。解码后 r色度数组。对亮度和色度进行解码其实就是对亮度数组和色度数组的解码。对一个数组 来说,Huffman解码包括直流解码和交流解码。对数组第一个元素的解码称为直流解码( 简记为DC解码),对剩下的63个元素的解码称为交流解码(简记为AC解码)。JPEG文件中一 般包含4个Huffman表,即亮度DC表、AC表,色度DC表、AC表。对不同的数据进行解码需要调 用不同 的Huffman表。DC解码出的数据称为DC值,但最终的DC值却是直接解码出的DC值与该数组紧 跟的前面一个数组的DC值之和。AC解码一般会得到多个数据,包括一些连续0数据和一个非 0数据。
不管是亮度还是色度解码,也不管是AC还是DC解码, Huffman码是其最小解码单位,且每个 Huffman码的解码流程都是大致相同的。一个Huffman码包括码头和码值2部分,码头用来惟 一的标识该Huffman码,并与Huffman表一一对应,码值是该码的实际大小。图3是A DSP完成一个Huffman码解码的流程图。在图3中,SR是ADSP中32位移位寄存器,他包括2个 可以单独使用的16位寄存器:SR0和SR1。当SR从低16位开始将SR0中的数据向左移位时,从S R0移出的数据会进入SR1中。对一个Huffman码进行解码需要首先找到该码的码头,而最短的 码头有2个二进制位。为此,从JPEG文件中读取一个字的数据后,先取其高两位来分析。图3 中,判断A是指:判断SR1中的数据是否是包含在Huffman判断表中的Huffman码头,判断B是 指:判断SR0移位后剩下的数的位数是否不小于查得的Huffman码值位数,X是指SR0中剩 下的还没有移位的数的位数,Y是指查得的Huffman码值位数。
Huffman码是变长编码,Huffman解码时需要将所有压缩数据都按位在Huffman表中进 行分析 比较以确定惟一标识Huffman码的码头,如果直接采用从JPEG文件头中读取的Huffman表将非 常浪费时间。为此,根据从JPEG文件中读取的Huffman表,生成了2个单独的表,即图3中的 Huffman值表和判断表。值表存放的是与Huffman码头相对应的码值位数信息。判断表专门用 于判断识别码头。判断表确定码头后,根据码头就可以在值表中直接查到Huffman码值的位 数,知道了码值的位数就可以从JPEG文件中轻松取出该码值来,从而完成一个Huffman码的 解码。得到6个具有64位元素的一维数组,分别是:4个Y亮度数组、1个Cb色度数组、1个C
2.2.2反量化的实现
由图1可知:量化运算需要量化表的配合。从JPEG文件中读取的量化表一般有2个,分别用
本文关键字:暂无联系方式综合-其它,单片机-工控设备 - 综合-其它