精华内容
下载资源
问答
  • 哈夫曼编码的matlab代码无损图像压缩 霍夫曼编码应用于图像以获得无损图像压缩 Project使用Matlab库压缩图像,然后重建原始图像。 HuffmanImageCoding.m接收要压缩的图像的输入,然后使用霍夫曼编码压缩文件,并返回...
  • 本文简要介绍了图像压缩的重要性和常用无损图像压缩算法,分析了快速高效无损图像压缩算法(FELICS)的优势,随后详细分析了该算法的编码步骤和硬件实现方案,最后公布了基于该方案的FPGA性能指标。和其他压缩算法...
  • %LPCencode函数用一维无损预测编码压缩图像x,f为预测系数,如果f默认,则f=1, %就是前值预测。 error(nargchk(1, 2, nargin)) if nargin < 2 f = 1; end x = double(x); [m, n] = size(x); p = zeros(m, n); ...

    function y = LPCencode(x, f)
    %LPCencode函数用一维无损预测编码压缩图像x,f为预测系数,如果f默认,则f=1,
    %就是前值预测。

    error(nargchk(1, 2, nargin))
    if nargin < 2
        f = 1;
    end
    x = double(x);
    [m, n] = size(x);
    p = zeros(m, n);    %存放预测值
    xs = x;
    zc = zeros(m, 1);
    for j = 1: length(f)
        xs = [zc xs(:, 1: end-1)];
        p = p + f(j) * xs;
    end
    y = x - round(p);

    function x = LPCdecode(y, f)
    %LPCdecode函数是解码程序,与编码程序用的是一个预测器。

    error(nargchk(1, 2, nargin));
    if nargin < 2
        f = 1;
    end
    f = f(end: -1: 1);
    [m, n] = size(y);
    order = length(f);
    f = repmat(f, m, 1);
    x = zeros(m, n + order);
    for j = 1: n
        jj = j + order;
        x(:, jj) = y(:, j) + round(sum(f(:, order: -1: 1).* x(:, (jj-1):-1:(jj-order)), 2));
    end
    x = x(:, order + 1: end);

     

     

    X = imread('lena512.bmp','bmp');
    X = double(X);
    Y = LPCencode(X);
    XX = LPCdecode(Y);

    %显示预测误差图
    figure(1); imshow(mat2gray(Y));


    %显示原图直方图
    figure(2); 
    [h, x] = hist(X(:));
    subplot(121);bar(x, h, 'k');

    %显示预测误差的直方图
    [h, x] = hist(Y(:));
    subplot(122); bar(x, h, 'k');


     

    展开全文
  • 一种新的BMP图像无损压缩编码算法 图像无损压缩
  • 夫霍曼编码matlab代码实现图像压缩传输 Matlab 图像压缩中的无损图像压缩和传输是通过霍夫曼编码和解码算法完成的。 霍夫曼编码算法由优先队列实现。
  • 实验报告 课程名称 数字图像处理 实验名称 图像压缩编码技术 实验地点 明向校区 D001 机房 专业班级 测控 1401 班 学号 2014001796 学生姓名 郭佳鑫 ...了解几种常用图像压缩编码方式 4.利用 MATLAB 程序进行图像压
  • 系 信息与机电工程系 专业 电子信息工程 年级 2013 级 姓名 学号 136710093 实验课程 数字图像处理 实验室号_ 实验设备号 实验时间 2015.6.16 指导教师签字 成绩 ... 了解几种常用图像压缩编码方式 5. 进一步熟悉 DCT
  • 图像压缩编码原理

    千次阅读 2018-01-10 17:23:12
    为什么要进行图像压缩编码? 1) 在数字分量编码中,按照4:2:2格式对电视信号进行取样、量化、编码后,数据率达27MW/S。 2) 在数字高清晰度电视格式中,取样、量化、编码后的数据率会更大。 3) 电视信号...

    一. 为什么要进行图像压缩编码?

    1) 在数字分量编码中,按照4:2:2格式对电视信号进行取样、量化、编码后,数据率达27MW/S。
    2) 在数字高清晰度电视格式中,取样、量化、编码后的数据率会更大。
    3) 电视信号经过数字编码后,数据量极大,给数字电视信号的存储和传输带来了巨大挑战。
    4) 虽然CCIR601建议早在1980年已经制定,但直到九十年代一系列有效的图像数码压缩技术及相应的国际标准出现以后,数字电视才得到了迅速的发展。
    二. 图像压缩方法的应用
    1)几乎所有涉及数字图像存储和传输的应用中,都需要进行数据压缩。
    2)图像的压缩方法可以分为两类:
              无损压缩,在图像无任何失真的前提下使数据率达到最小,这种方式是可逆的。
              有损压缩,在给定的失真度下使数据率达到最小,这种方式是不可逆的。
    3) 在数字电视的信源压缩编码中,由于要求的压缩率较高,普遍采用有损压缩的方法。
    三. 图像信号压缩的机理
    1) 利用图像中存在的大量冗余度可供压缩。
    2) 利用人眼的视觉特性。
    四. 图像信号的空间冗余度
    1)  空间冗余度 ,一幅视频图像相邻各点的取值往往相近或相同,具有空间相关性,这就是空间冗余度
    2) 图像的空间相关性表示相邻象素点取值变化缓慢。从频域看,意味着图像信号的能量主要集中在低频附近,高频信号的能量随频率的增加而迅速衰减。
    3) 视频图像中经常出现连续的象素点具有相同值的情况,典型的如彩条,彩场信号等。只传送起始象素点的值及随后取相同值的象素点的个数,也能有效地压缩码率。
    五. 图像信号的时间冗余度
    1)  时间冗余度 表现在电视画面中相继各帧对应象素点的值往往相近或相同,具有时间相关性。
    2) 在知道了一个象素点的值后,利用此象素点的值及其与后一象素点的值的差值就可求出后一象素点的值。因此,不传送象素点本身的值而传送其与前一帧对应象素点的差值,也能有效地压缩码率,这就是 差分编 码。
    3) 由差分编码进一步发展起来的预测编码,是根据一定的规则先预测出下一个象素点或图像子块的值,然后将此 预测值与实际值的差值传送给接收端。目前图像压缩中的预测编码主要用于帧间压缩编码。
    六. 图像信号的结构冗余和知识冗余度
    1) 图像从大面积看常常存在纹理结构,我们称之为 结构冗余。
    2) 人们对于许多图像的理解是根据某些已知知识,例如人脸的图像有固定结构,这些规律性的结构可由先验知识和背景知识得到,称之为 知识冗余。
    七.  图像信号的视觉冗余度
    1)  视觉冗余度 是相对于人眼的视觉特性而言的。人眼对于图像的视觉特性包括:对亮度信号比对色度信号敏感,对低频信号比对高频信号敏感,对静止图像比对运动图像敏感,以及对图像水平线条和垂直线条比对斜线敏感等。因此,包含在色度信号, 图像高频信号和运动图像中的一些数据并不能对 增加图像相对于人眼的清晰度作出贡献,而被认为是多余 的,这就是视觉冗余度
    2) 压缩视觉冗余度的核心思想是去掉那些相对人眼而言是看不到的或可有可无的图像数据。对视觉冗余度的压缩通常已反映在各种具体的压缩编码过程中。
    八.  人眼的视觉特征
    1) 亮度辨别阈值 :只有当亮度在背景基础上变化达到一定程度时,人眼才能感觉到,人眼刚刚能察觉到的亮度变化值称为亮度辨别阈值。
    2) 视觉阈值 :干扰或失真刚好可以被察觉的门限值,低于它就察觉不出来。
    3) 空间分辨力 :对一幅图像相邻像素的灰度和细节的分辨力。对于静止或缓慢变化的图像,视觉具有较高的空间分辨力;对于活动图像,空间分辨力降低。
    4) 掩盖效应 :人眼对图像中量化误差的敏感程度,与图像信号变化的剧烈程度有关。变化越剧烈,量化误差越容易被掩盖。







    展开全文
  • 图像压缩编码

    千次阅读 2017-04-10 13:59:52
    一、图像压缩编码的必要性 图像的数据量非常大,为了有效地传输和储存图像,有必要压缩图像的数据量,而且随着现代通讯技术的发展,要求传输的图像信息的种类和数据量愈来愈大,若不进行数据压缩,难以推广应用。...

    一、图像压缩编码的必要性
    图像的数据量非常大,为了有效地传输和储存图像,有必要压缩图像的数据量,而且随着现代通讯技术的发展,要求传输的图像信息的种类和数据量愈来愈大,若不进行数据压缩,难以推广应用。

    二 、图像压缩编码的可行性
    从压缩的客体—“数字图像”来看,原始图像数据是高度相关的,存在很大的冗余。数据冗余造成比特数浪费,消除这些冗余可以节约码字,也就是到了数据压缩的目的。图像越有规则,其自相关系数越大,图像的空间冗余就越大。
    从人体的视觉系统和大脑来看,有些图像信息相对来说不那么重要,除去这些信息并不会明显降低人言所感受的图像质量。

    三、图像压缩编码的分类
    根据压缩过程有无信息损失:
    有损编码、无损编码

    四、图像压缩的评价指标
    压缩比和失真性是衡量图像压缩的重要指标。
    压缩比:图像压缩前后的信息量之比。
    失真性:该性能指标主要是针对有损编码而言的,是指图像经有损压缩,然后将其解码后的图像与原图像之间的误差。有损压缩会使原始图像数据不能完全恢复,信息受到一定的损失,但压缩比较高,复原后的图像存在一定的失真。

    %读入图像并进行灰度转换
    I=imread(‘pears.png’);
    imshow(I)
    IGRAY=rgb2gray(I);
    [m n]=size(IGRAY);
    %建立数组RLEcode,其中元素排列形式为[行程起始行坐标、行程列坐标、灰度值]
    c=I(1,1);RLEcode(1,1:3)=[1 1 c];
    t=2;
    % 进行行程编码
    for k=1: m
    for j=1: n
    if(not(and(k==1,j==1)))
    if(not(I(k,j)==c))
    RLEcode(t,1:3)=[k j I(k,j)];
    c=I(k,j);
    t=t+1;
    end
    end
    end
    end这里写图片描述这里写图片描述
    %读入图像并进行灰度转换
    I=imread(‘pears.png’);
    imshow(I)
    IBM=im2bw(I);
    [m n]=size(IBM);
    %建立数组RLEcode,其中元素排列形式为[行程起始行坐标、行程列坐标、灰度值]
    c=I(1,1);RLEcode(1,1:3)=[1 1 c];
    t=2;
    % 进行行程编码
    for k=1: m
    for j=1: n
    if(not(and(k==1,j==1)))
    if(not(IBM(k,j)==c))
    RLEcode(t,1:3)=[k j IBM(k,j)];
    c=IBM(k,j);
    t=t+1;
    end
    end
    end
    end
    这里写图片描述这里写图片描述

    展开全文
  • 几种无损图像压缩方法的比较与研究 霍夫曼编码 行程编码
  • 图像压缩编码可分为两类:一类压缩是可逆的 ,即从压缩后的数据可以完全恢复原来的图像 ,信息没有损失 ,称为无损压缩编码;另一类压缩是不可逆的 ,即从压缩后的数据无法完全恢复原来的图像 ,信息有一定损失 ,称为有损...
  • 针对快速高效无损图像压缩系统(FELICS)中,Golomb-Rice编码k参数选取增加系统复杂度和限制系统吞吐量的问题,依据基于上下文的图像压缩理论,采用JPEG-LS中的序列参数估计方法,研究了限长Golomb-Rice编码。给出了面向...
  • 无损编码/压缩算法: 问题1: 实现行程编码压缩, 肉眼观察压缩效果,并计算原图和压缩以后的尺寸,计算压缩率并比较分析; 问题2: 实现哈夫曼压缩, 肉眼观察压缩效果,并计算原图和压缩以后的尺寸,计算压缩率并...

    要求:

    无损编码/压缩算法:

    • 问题1: 实现行程编码压缩, 肉眼观察压缩效果,并计算原图和压缩以后的尺寸,计算压缩率并比较分析;
    • 问题2: 实现哈夫曼压缩, 肉眼观察压缩效果,并计算原图和压缩以后的尺寸,计算压缩率并比较分析;
    • 问题3: 实现一维无损预测压缩, 肉眼观察压缩效果,并计算原图和压缩以后的尺寸,计算压缩率并比较分析.

    1、问题及说明

    (1)实现行程编码压缩, 肉眼观察压缩效果,并计算原图和压缩以后的尺寸,计算压缩率并比较分析。

    基本思路是把数据看成一个线性序列,而这些数据序列组织方式分成两种情况:一种是连续的重复数据块,另一种是连续的不重复数据块。对于连续的重复数据块采用的压缩策略是用一个字节表示数据块重复的次数,然后在这个数据字节后面存储对应的数据字节本身;对于连续不重复的数据序列,表示方法和连续的重复数据块序列的表示方法一样,只不过前面的数据重数属性字节的内容为1。

    (2)实现哈夫曼压缩, 肉眼观察压缩效果,并计算原图和压缩以后的尺寸,计算压缩率并比较分析

    基本思路是给定有权重的一系列数据(带权重),从中挑选最小权重的两个数据,组成一棵树,得到的父节点再插入到数据系列当中。

    (3)实现一维无损预测压缩, 肉眼观察压缩效果,并计算原图和压缩以后的尺寸,计算压缩率并比较分析。

    基本思想是通过对每个像素中新增信息进行提取和编码,以此来消除像素间的冗余,这里新增信息是指像素当前实际值和预测值的差。也就是说,如果已知图像一个像素离散幅度的真实值,利用其相邻像素的相关性,预测它的可能数值,再求两者的差。利用这种具有预测性质的差值,再量化、编码传输,其效果更佳,这种方法称为DPCM法。

    2、效果展示

    (1)行程编码压缩

    (2)哈夫曼压缩

    (3)一维无损预测压缩

    3、实验结果分析

    1)RLE压缩方案是一种极其成熟的压缩方案,特点是无损失压缩,既节省了磁盘空间又不损失任何图像数据。RLE有一个缺点,如果内容像ABCABCABC的话使用这种算法文件会增大,就是1A1B1C1A1B1C1A1B1C了,更长,就达不到压缩的效果了。

    上面两张图片,由于其内容序列的优劣,它们的压缩比就不同。

    2)因为要用额外的位保存和传输Huffman树而消耗掉一些存储位,所以为了编解码的方便,本已经减少的数据量又增加了一些。

    如果文件比较大的话,这一点的数据根本不算什么,所占比例很小。但是,如果压缩的文件本来就很小的话,那么这就不少了。一般来说,经典的Huffman算法的压缩比不是很高,这是无损压缩的“通病”。

    4.完整代码

    (1)RLE

    clear
    I1=imread('lena.tiff');
     
    %转换为二值图像
    J=rgb2gray(I1);
    I2=J(:);
    I2length=length(I2);
    figure,imshow(J);
     
    for i=1:1:I2length
        if I2(i)>=127
            I2(i)=255;
        else I2(i)=0;
        end
    end
     
    I3=reshape(I2,512,512);         %重建二维数组图像
    figure,imshow(I3);
     
    %对原图像进行行程编码
    X=I3(:);                        %令X为新建的二值图像的一维数据组
    x=1:1:length(X);                %显示行程编码之前的图像数据
    figure,plot(x,X(x));
    j=1;
    I4(1)=1;
     
    %行程编码程序段
    for z=1:1:(length(X)-1)
        if X(z)==X(z+1)
            I4(j)=I4(j)+1;
        else data(j)=X(z);          %data(j)代表相应的像素数据
            j=j+1;
            I4(j)=1;
        end
    end
     
    data(j)=X(length(X));           %最后一个像素数据赋值给data
    I4length=length(I4);            %计算行程编码后的所占字节数
    y=1:1:I4length;                 %显示编码后数据信息
    figure,plot(y,I4(y));
    CR=I4length/I2length;           %比较压缩前后的大小
    disp(['原图 Bit:                  ',num2str(I2length),' bit']);
    disp(['压缩图像 Bit:               ',num2str(I4length),' bit']);
    disp(['压缩率:                     ',num2str(CR)]);

    (2)哈夫曼压缩

    clear;
    clear all;
    A=imread('baboon.tiff');
    I=rgb2gray(A);
     
    [M,N] = size(I);
    I1 = I(:);
    P = zeros(1,256);
    %获取各符号的概率;
    for i = 0:255
        P(i+1) = length(find(I1 == i))/(M*N);
    end
     
    k = 0:255;
    dict = huffmandict(k,P); %生成字典
    enco = huffmanenco(I1,dict); %编码
    deco = huffmandeco(enco,dict); %解码
    Ide = col2im(deco,[M,N],[M,N],'distinct'); %把向量重新转换成图像块;
     
    decolength=length(deco); 
    encolength=length(enco); 
     
    subplot(1,2,1);imshow(I);title('原图');
    subplot(1,2,2);imshow(uint8(Ide));title('压缩');
     
    OB=encolength;
    sumcode=decolength;
    CR=sumcode/OB;
    disp(['原图 Bit:                  ',num2str(OB),' bit']);
    disp(['压缩图像 Bit:               ',num2str(sumcode),' bit']);
    disp(['压缩率:                     ',num2str(CR)]);

    (3)一维无损预测压缩

    I=imread('baboon.tiff'); 
     
    I=rgb2gray(I);
    x=double(I);
    y=LPCencode(x);   
    xx=LPCdecode(y);
     
    figure(1);
    subplot(121);
    imshow(I);
    subplot(122);
    imshow(mat2gray(y));
     
    e=double(x)-double(xx);
    [m, n]=size(e);
    erms=sqrt(sum(e(:).^2)/(m*n))    
     
    figure(2);
    subplot(121);
    [h, f]=hist(x(:));    
    bar(f, h, 'k');
     
    subplot(122);
    [h, f]=hist(y(:));    
    bar(f, h,'k');

     

     

    展开全文
  • 问题1: 实现行程编码压缩, 计算原图和压缩以后的尺寸,计算压缩率并比较分析; 问题2: 实现哈夫曼压缩, 计算原图和压缩以后的尺寸,计算压缩率并比较分析.
  • 图像压缩编码概述

    千次阅读 2017-04-10 14:25:17
    1.图像压缩编码的必要性 现在是信息爆炸时代,图像数据量特别大,故此在传输或者存储时都需要对数据进行有效的压缩。图像压缩就是对图像数据按照一定的规则进行变换和组合,用少的数据量表示影像。 2.图像压缩编码...
  • 介绍一种实现图像无损压缩的预测编码算法。该算法在预测阶段利用像素值的局部变化率来对预测模型进行自适应调整,在编码阶段采用误差反馈技术进一步降低误差图像的信息熵。对标准图像的仿真测试结果表明,该算法的...
  • 基于Matlab的图像压缩编码

    热门讨论 2010-03-23 15:56:44
    尽管我们希望能够无损压缩,但是通常有损压缩压缩比(即原图象占的字节数与压缩后图象占的字节数之比,压缩比越大,说明压缩效率越高)比无损压缩的高。JPEG编码先把图象色彩RBG变成亮度Y和色度Cr、Cb,它利用人的...
  • 图像压缩原理 1.图像压缩的概念  减少表示数字图像时需要的数据量 2.图像压缩的基本原理  去除多余数据.以数学的观点来看,这一过程... 图像压缩是指以较少的比特有损或无损地表示原来的像素矩阵的技术,也称图像编码.

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,311
精华内容 4,124
关键字:

常用无损图像压缩编码