Month: June 2006

  • JPEG 压缩编码笔记

    by

    in

     一大清早醒来,百无聊赖间想到下学期好像是要学图像压缩的说,然后就联系到了JPEG编码,既然想到了就翻开了床头的数据通信原理,翻到编码论部分,貌似以前看这本书的时候都整整把这章给跳掉了,很是枯燥的。记得这章在图书馆翻这本书3e的时候大致浏览了遍,留有少许记忆的,不妨重新整理下做个笔记。 一、JPEG算法概要 JPEG(Joint Photographic Experts Group)是一个由ISO和IEC两个组织机构联合组成的一个专家组,负责制定静态的数字图像数据压缩编码标准,这个专家组开发的算法称为JPEG算法,并且成为国际上通用的标准,因此又称为JPEG标准。JPEG是一个适用范围很广的静态图像数据压缩标准,既可用于灰度图像又可用于彩色图像。 JPEG专家组开发了两种基本的压缩算法,一种是采用以离散余弦变换(Discrete Cosine Transform,DCT)为基础的有损压缩算法,另一种是采用以预测技术为基础的无损压缩算法。使用有损压缩算法时,在压缩比为25:1的情况下,压缩后还原得到的图像与原始图像相比较,非图像专家难于找出它们之间的区别,因此得到了广泛的应用。例如,在VCD和DVD-Video电视图像压缩技术中,就使用JPEG的有损压缩算法来取消空间方向上的冗余数据。为了在保证图像质量的前提下进一步提高压缩比,近年来JPEG专家组正在制定 JPEG2000标准,这个标准中将采用小波变换(Wavelet)算法。 JPEG压缩是有损压缩,它利用了人的视角系统的特性,使用量化和无损压缩编码相结合来去掉视角的冗余信息和数据本身的冗余信息。JPEG算法框图如图: 压缩编码大致分成三个步骤: 1、使用正向离散余弦变换(Forward Discrete Cosine Transform,FDCT)把空间域表示的图变换成频率域表示的图。 2、使用加权函数对DCT系数进行量化,这个加权函数对于人的视觉系统是最佳的。 3、使用霍夫曼可变字长编码器对量化系数进行编码。 译码或者叫做解压缩的过程与压缩编码过程正好相反。 JPEG 算法与彩色空间无关,因此“RGB到YUV变换”和“YUV到RGB变换”不包含在JPEG算法中。JPEG算法处理的彩色图像是单独的彩色分量图像,因此它可以压缩来自不同彩色空间的数据,如RGB, YCbCr和CMYK。 二、JPEG算法的主要计算步骤 JPEG压缩编码算法的主要计算步骤如下: (1)正向离散余弦变换(FDCT)。 (2)量化(Quantization)。 (3)Z字形编码(Zigzag Scan)。 (4)使用差分脉冲编码调制(Differential Pulse Code Modulation,DPCM)对直流系数(DC)进行编码。 (5)使用行程长度编码(Run-Length Encoding,RLE)对交流系数(AC)进行编码。 (6)熵编码(Entropy Eoding)。 1、正向离散余弦变换 下面对正向离散余弦变换(FDCT)变换作几点说明。 (1)对每个单独的彩色图像分量,把整个分量图像分成若干个8×8的图像块,如图所示,并作为两维离散余弦变换DCT的输入。通过DCT变换,把能量集中在少数几个系数上。   (2)DCT变换使用下式计算: 它的逆变换使用下式计算: 上面两式中, C(u),C(v) = (2)-1/2,当u, v = 0; C(u),C(v) = 1,其他。 f(i, j)经DCT变换之后,F(0,0)是直流系数,其他为交流系数。   (3)在计算两维的DCT变换时,可使用下面的计算式把两维的DCT变换变成一维的DCT变换:…

  • MATLAB,上采样和内插仿真

    by

    in

    1) 5    h1(j)=j/M; 6end 7h=[0,h1,1,fliplr(h1),0] 8% End of function file.   生成的图形:     不错,很能说明问题了,上采样的开销较大,线性内插的就好多了的说,嘻嘻,到这里结束^_^

  • Simulink 命令集

    仿真命令:     sim       —仿真运行一个simulink模块     sldebug   —调试一个simulink模块     simset    —设置仿真参数     simget    —获取仿真参数 线性化和整理命令:     linmod    —从连续时间系统中获取线性模型(状态方程)     linmod2   —也是获取线性模型,采用高级方法     dinmod    —从离散时间系统中获取线性模型     trim      —为一个仿真系统寻找稳定的状态参数 构建模型命令:     open_system   —打开已有的模型     close_system  —关闭打开的模型或模块     new_system    —创建一个新的空模型窗口  …

  • 加油 CET

    by

    in

      虽然没怎么复习,希望还是要有的哈。Just pass is ok.

  • 一年后的回归,有点迷茫

    by

    in ,

      不知道这一年自己到底做了些什么,时常当掉的free空间,搞得兴趣全无,算算正好也是一年前在这里写了几片blog,然后转去了msn space,后面是自己的blog。发现自己的脑袋给越来越多乱七八糟的东西给杜塞,blog越弄越复杂,掩盖了真正的实质。   离开这里的原因应该是有很多的算是,最重要的是感觉自己根本配不上这里的氛围。大家都是一心为dotNet事业奋斗的人,我这个小虾米算什么呢。经历了还多外面blog的各种富华,现在开始发现这里的纯洁和宁静。   一年后的回归,一个新的开始,这个暑假,希望是个好的开始吧,希望,愿望,期盼