‘壹’ 医学图像处理中,常用的变换编码方法有几种
三种,分别是预测编码、变换编码、熵编码。
相关介绍:
1、预测编码:
根据离散信号之间存在着一定关联性的特点,利用前面一个或多个信号预测下一个信号进行,然后对实际值和预测值的差(预测误差)进行编码。
2、变换编码:
从频域的角度减小图像信号的空间相关性,它在降低数码率等方面取得了和预测编码相近的效果。
3、熵编码:
按熵原理不丢失任何信息的编码。
(1)图像压缩编码的方法扩展阅读
预测编码的最大优点在于它实现方便,且对大部分实际信源相当有效,所以预测编码在实际中有广泛应用。增量调制和差分脉码调制就是两种很好的例子。
变换编码虽然实现时比较复杂,但在分组编码中还是比较简单的,所以在语音和图像信号的压缩中都有应用。国际上已经提出的静止图像压缩和活动图像压缩的标准中都使用了离散余弦变换编码技术。
熵编码把一系列用来表示视频序列的元素符号转变为一个用来传输或是存储的压缩码流。输入的符号可能包括量化后的变换系数,运动向量,头信息(宏块头,图像头,序列的头等)以及附加信息。
‘贰’ 数字图像压缩技术
‘叁’ 什么压缩方法适用于动态图像的压缩
可以考虑MPEG的使用。
MPEG是运动图像专家组的简称,其制定的动态图像压缩标准称为MPEG标准,包括MPEG-1、MPEG-2、MPEG-4、MPEG-7和MPEG-21
MPEG(通常指MPEG-1)图像编码是基于变换的有损压缩。光学信号线经过采样形成视频信号,视频信号基本的单位叫做帧,一个帧就是一个独立的图像,然后帧被分区成小块做变换编码,然后量化,最后进行熵编码
‘肆’ 你认为图像压缩的方式有哪些
去除多余数据·以数学的观点来看,这一过程实际上就是将二维像素阵列变换为一个在统计上无关联的数据集合,图像压缩是指以较少的比特有损或无损地表示原来的像素矩阵的技术,也称图像编码·减少表示数字图像时需要的数据量。图像数据之所以能被压缩,就是因为数据中存在着冗余。图像数据的冗余主要表现为:图像中相邻像素间的相关性引起的空间冗余;图像序列中不同帧之间存在相关性引起的时间冗余;不同彩色平面或频谱带的相关性引起的频谱冗余。数据压缩的目的就是通过去除这些数据冗余来减少表示数据所需的比特数。由于图像数据量的庞大,在存储、传输、处理时非常困难,因此图像数据的压缩就显得非常重要。信息时代带来了“信息爆炸”,使数据量大增,因此,无论传输或存储都需要对数据进行有效的压缩。在遥感技术中,各种航天探测器采用压缩编码技术,将获取的巨大信息送回地面。图像压缩是数据压缩技术在数字图像上的应用,它的目的是减少图像数据中的冗余信息从而用更加高效的格式存储和传输数据。图像压缩可以是有损数据压缩也可以是无损数据压缩。对于如绘制的技术图、图表或者漫画优先使用无损压缩,这是因为有损压缩方法,尤其是在低的位速条件下将会带来压缩失真。如医疗图像或者用于存档的扫描图像等这些有价值的内容的压缩也尽量选择无损压缩方法。有损方法非常适合于自然的图像,例如一些应用中图像的微小损失是可以接受的(有时是无法感知的),这样就可以大幅度地减小位速。将色彩空间化减到图像中常用的颜色。所选择的颜色定义在压缩图像头的调色板中,图像中的每个像素都用调色板中颜色索引表示。这种方法可以与 抖动(en:dithering)一起使用以模糊颜色边界。色度抽样,这利用了人眼对于亮度变化的敏感性远大于颜色变化,这样就可以将图像中的颜色信息减少一半甚至更多。变换编码,这是最常用的方法。
‘伍’ 如何用哈夫曼编码对图像进行压缩
% 演示图象的哈夫曼编解码过程
% chenyong 2009.04.20
clear all;
close all;
clc;
Dimens = 256; % 矩阵维数,假设矩阵为方阵即256*256
src_size = Dimens^2; % 矩阵元素的个数
gray_level = 9; % 灰度级
src = randn(Dimens); %产生模拟图像矩阵,满足正态分布,零均值,方差为1
%src = randint(Dimens,Dimens,gray_level); % 产生随机图像矩阵,灰度值为0~63,满足均匀分布
src_one = reshape(src,1,src_size);
src_max = max(src_one);
src_min = min(src_one);
quan = linspace(src_min,src_max,gray_level); % 产生均匀量化区间
src_d = []; % 数字矩阵
for row = 1:Dimens % 逐点量化
for vol = 1:Dimens
diff = abs(src(row,vol)-quan);
[min_diff,min_index] = min(diff);
quan_gray = min_index -1;
src_d(row,vol) = quan_gray;
end
end
%将数字图像矩阵还原成模拟矩阵
src_a = [];
quan_space = quan(2)-quan(1);
for row = 1:Dimens
for vol = 1:Dimens
src_a(row,vol) = src_d(row,vol) * quan_space + src_min;
end
end
% prob数组保存图像中各灰度出现的概率
prob = [];
for src_value=0:(gray_level-1)
index = find(src_d==src_value);
i = src_value + 1;
prob(i) = length(index)/src_size;
end
% 画出直方图
% stem(0:gray_level-1,prob);
% xlabel('灰度值');
% ylabel('概率');
% title('灰度直方图');
% huffman编码
p = prob;
n=length(p);
q=p;
m=zeros(n-1,n);
for i=1:n-1
[q,l]=sort(q);
m(i,:)=[l(1:n-i+1),zeros(1,i-1)];
q=[q(1)+q(2),q(3:n),1];
end
bre=zeros(n-1,n);
bre(n-1,1)=0+j; %虚部表示当前的二进制数的位数,以下类似
bre(n-1,2)=1+j;
for time=1:n-2
loc_1 = find(real(m(n-time,:))==1);
prebit = bre(n-time,loc_1);
bre(n-time-1,1) = (real(prebit)*2 + 0) + j*(imag(prebit)+1);
bre(n-time-1,2) = (real(prebit)*2 + 1) + j*(imag(prebit)+1);
loc_not1 = find(real(m(n-time,:))>1);
bre(n-time-1,3:3+time-1) = bre(n-time,loc_not1);
end
[m1,index] = sort(m(1,:));
code = bre(1,index);
code_data = real(code);
code_bits = imag(code);
disp(['gray level',' ', 'huffman code']);
for i = 1:length(code)
disp([num2str(i-1),' ' ,num2str(dec2bin(code_data(i)))]);
disp([num2str(i-1),' ' ,num2str(dec2bin(code_data(i),code_bits(i)))]);
end
code_binary = dec2bin(code_data);
%逐点编码
out = [];
for row = 1:Dimens
for vol = 1:Dimens
now_gray = src_d(row,vol);
now_code = code_binary(now_gray+1,:);
now_bits = code_bits(now_gray+1);
now_code = now_code(end-now_bits+1:end);
out = [out, now_code];
end
end
%计算压缩比
real_bitnum = length(out);
bitnum_no_huffman = src_size*nextpow2(gray_level);
comp_ratio =bitnum_no_huffman/real_bitnum;
Lavg = real_bitnum/src_size;
Hshannon = (-1)*prob*(log2(prob))';
disp(['Lavg = ',num2str(Lavg)]);
disp(['normal bit num = ',num2str(nextpow2(gray_level))]);
disp(['comp_ratio = ',num2str(comp_ratio)]);
disp(['Hshannon = ',num2str(Hshannon)]);
‘陆’ 简述JPEG静态图象压缩编码的过程及其实现技术
不是吧。。。。啥专业?
10、详述JPEG静态图象压缩编码原理及实现技术。
答:JPEG是由国际电报咨询委员会(CCITT)和国际标准化协会(OSI)联合组成的一个图象专家小组开发研制的连续色调、多级灰度、静止图象的数字图象压缩编码方法。JPEG适于静止图象的压缩,此外,电视图象序列的帧内图象的压缩编码也常采用JPEG压缩标准。JPEG数字图象压缩文件作为一种数据类型,如同文本和图形文件一样地存储和传输。基于离散余弦变换(DCT)的编码方法是JPEG算法的核心内容。算法的编解码过程如教材136页图4.25-4.26所示。编码处理过程包括原图象数据输入、正向DCT变换器、量化器、熵编码器和压缩图象数据的输出,除此之外还附有量化表和熵编码表(即哈夫曼表);接收端由信道收到压缩图象数据流后,经过熵解码器、逆量化器、逆变换(IDCT),恢复并重构出数字图象,量化表和熵编码表同发送端完全一致。编码原图象输入,可以是单色图象的灰度值,也可以是彩色图象的亮度分量或色差分量信号。DCT的变换压缩是对一系列8*8采样数据作块变换压缩处理,可以对一幅像,从左到右、从上到下、一块一块(8*8/块)地变换压缩,或者对多幅图轮流取8*8采样数据块压缩。解码输出数据,需按照编码时的分块顺序作重构处理,得到恢复数字图象。
具体的实现技术如下:
(1)首先把一幅图象分8*8的子块按图中的框图进行离散余弦正变换(FDCT)和离散余弦逆变换(IDCT)。
在编码器的输入端,原始图象被分成一系列8*8的块,作为离散余弦正变换(FDCT)的输入。在解码器的输出端,离散余弦逆变换(IDCT)输出许多8*8的数据块,用以重构图象。8*8 FDCT和8*8 IDCT数学定义表达式如下:
离散余弦正变换(FDCT)可看作为一个谐波分析仪,把离散余弦逆变换(IDCT)看作一个谐波合成器。每个8*8二维原图象采样数据块,实际上是64点离散信号,该信号是空间二维参数x和y的函数。FDCT把这些信号作为输入,然后把它分解成64个正交基信号,每个正交信号对应于64个二维(2D)空间频率中的一个,这些空间频率是由输入信号的频谱组成。FDCT的输出是64个基信号的幅值(即DCT系数),每个系数值由64点输入信号唯一地确定,即离散余弦变换的变换系数。在频域平面上变换系数二维频域变量u和v的函数。对应于u=0,v=0的系数,称做直流分量(DC系数),其余63个系数称做交流分量(AC系数)。因为在一幅图象中像素之间的灰度或色差信号变化缓慢,在8*8子块中像素之间相关性很强,所以通过离散余弦正变换处理后,在空间频率低频范围内集中了数值大的系数,这样为数据压缩提供了可能。远离直流系数的高频交流系数大多为零或趋于零。如果FDCT和IDCT变换计算中计算精度足够高,并且DCT系数没有被量化,那么原始的64点信号就能精确地恢复。
(2)量化
为了达到压缩数据的目的,对DCT系数F(u,v)需作量化处理。量化处理是一个多到一的映射它是造成DCT编解码信息损失的根源。在JPEG标准中采用线性均匀量化器。量化定义为,对64个DCT变换系数F(u,v)除以量化步长Q(u,v)后四舍五入取整。即量化器步长是量化表的元素,量化表元素随DCT变换系数的位置而改变,同一像素的亮度量化表和色差量化表不同值,量化表的尺寸也是64,与64个变换系数一一对应。量化表中的每一个元素值为1至255之间的任意整数,其值规定了对应位置变换系数的量化器步长。在接收端要进行逆量化,逆量化的计算公式为:
不同频率的余弦函数对视觉的影响不同,量化处理是在一定的主观保真度图像质量的前提下,可据不同频率的视觉阈值来选择量化表中的元素值的大小。根据心理视觉加权函数得到亮度化表和色度量化表。DCT变换系数F(u,v)除以量化表中对应位置的量化步长,其幅值下降,动态范围变窄,高频系数的零值数目增加。
(3)熵编码
为进一步达到压缩数据的目的,需对量化后的DC系数和行程编码后的AC系数进行基于统计特性的熵编码。64个变换系数经量化后,坐标u=v=0的值是直流分量(即DC系数)。DC系数是64个图像采样平均值。因为相邻的8×8块之间有强的相关性,所以相邻块的DC系数值很接近,对量化后前后两块之间的DC系数差值进行编码,可以用较少的比特数。DC系数包含了整个图像能量的主要部分。经量化后的63个AC系数编码时从左上方AC(u=7,v=7)开始,沿箭头方向,以“Z”字形行程扫描,直到AC(u=7,v=7)扫描结束。量化后特编码的AC系数通常有许多零值,沿“Z”字形路径行进,可使零AC系数集中,便于使用行程编码方法。63个AC系数行程编码和码字,可用两个字节表示。JPEG建议使用两种熵编码方法:Huffman编码和自适应二进制算术编码。熵编码可分成两步进行,首先把DC和AC系数转换成一个中间格式的符号序列,第二步是给这些符号赋以变长码字。