予測符号化に基づく画像圧縮法の研究

1 Star2 Stars3 Stars4 Stars5 Stars (まだ評価されていません)
Loading...

まず、画像圧縮:

(1)画像圧縮とは <br />デジタル画像を表現するのに必要なデータ量を減らします。

(2)画像圧縮の基本原理

画像データは、データの冗長性のために圧縮することができる。 画像データの冗長性は、主に、画像内の隣接する画素間の相関によって生じる空間的冗長性、画像シーケンス内の異なるフレーム間の相関によって生じる時間冗長性、異なる色平面またはスペクトル帯域の相関性スペクトル冗長性。 データ圧縮の目的は、これらのデータ冗長性を除去することによってデータを表現するのに必要なビット数を減らすことである。 画像データの量が膨大であるため、格納、転送、および処理が非常に難しいため、画像データの圧縮は非常に重要です。
画像圧縮は、画像データの冗長な情報を減らし、より効率的な形式でデータを格納して送信することを目的としています。

(3)画像圧縮の基本的な方法

画像の圧縮は、損失の多いデータ圧縮または損失のないデータ圧縮のいずれかになります。 損失の多い圧縮方法、特に低ビットレートでの圧縮歪みは、圧縮歪みをもたらす可能性があるため、技術図、図表、または漫画の場合は、無損失圧縮が好まれます。 医療用画像やスキャンした画像などの貴重なコンテンツを圧縮してアーカイブする場合も、可逆圧縮方式を選択しようとします。 例えば、一部のアプリケーションでは、画像の損失が少なくても検出できない場合があり、ビットレートを大幅に低下させる可能性があります。

第二に、予測コード:

(1)予測符号化のソース:

自然なシーンと図の統計的分析は、図1に示すように、低い輝度レベルを有する画素が大きな確率を有し、多数の画像差信号の後に、確率分布が図2に示され、振幅差差信号が大きければ大きいほど、発生確率は小さくなり、ゼロまたはほぼゼロ差差信号は、発生確率が最も高い。 これは、画像内の輝度の変化が一定または僅かである広い領域を表し、差信号の80%〜90%が約16〜18個の量子化層に入る。 そこで、画像の水平方向(または垂直方向)の2つの画素の真の離散振幅の差を減算して差分を符号化して伝送し、画像データを圧縮することを目的とする。これに基づいて開発されました。
一

(2)予測符号化とは何ですか?

予測符号化データ圧縮技術は、信号データの相関関係に基づいており、あるモデルに基づいて前のサンプル値を用いて新しいサンプルを予測することにより、データの時間的および空間的相関を低減し、データを圧縮する目的を達成する。しかし、実際の予測符号化では、一般にデータソースの数学モデルに基づいているのではなく、推定理論、現代統計理論に基づいており、データソースの数学モデルを確立することが難しく、数学モデルを得ることができないことがあります。例えば、時変ランダムシステム。 予測符号化には多くのアルゴリズムがあり、画像符号化にはDPCM(Different Pulse Code Modulation)、すなわち差分パルス符号変調法が一般的に用いられている。

(3)予測符号化の基本的な考え方は何ですか?

予測符号化の基本的な考え方は、各画素の新しく追加された情報を抽出し符号化することによって、画素間の冗長性をなくすことである。 すなわち、画像の1画素の離散振幅の真の値が分かっている場合、その隣接する画素の相関を使用してその可能な値を予測し、次に両者の差が得られる。 このような違いを予測特性、再量子化、符号化伝送と併用する方がよい。この方法をDPCM法と呼ぶ。

したがって、予測符号化では、符号化して送信するピクセルサンプル値自体ではなく、予測値とこのサンプリング値の実際の値との差であることがわかります。

(4)画像相関:

いくつかの既知の画素値に基づいて画素の値を推定し、予測することができ、正確に予測が可能になる画素間の相関があることを理解することは容易である。
画像が走査線方向(水平方向)にあるときの隣接画素の相関は、画素のグレー値がxであれば、それに隣接する前の画素のグレー値の確率が最大のxまたはx + △、△は少量です。 通常の状況下では、隣接する2つのピクセルのグレー値の急激な変化の確率は、列の方向と同様に小さい。 i行j列目の画素の輝度分散値をf(i、j)とすると、
△level = f(i、j)-f(i、j-1)
△Vertical = f(i、j)-f(i-1、j)
△は差信号です。

(5)予測符号化の分類:
二

(6)非破壊予測符号化:
1.ナレッジ・リザーブ:
三
2.無損失予測符号化図を次の図に示します。
四

非破壊予測符号化システム(図)
五

画像圧縮では、以下の線形予測方式が一般的に使用される。

六

第三に、プログラムが実装されています:

eg:
下面对大小为512*512像素、灰度级为256的标准lena图像进行无损的一阶预测编码,其matlab程序如下:
I=imread(‘LENA.bmp’);     
x=double(I);
y=LPCencode(x);   
xx=LPCdecode(y);
%显示预测误差值
figure(1);
subplot(121);
imshow(I);
subplot(122);
Imshow(mat2gray(y));
%计算均方差误差,因为是无损编码,那么erms应该为0
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’);
%编码器
%LPCencode函数用一维无损预测编码压缩图像x,a为预测系数,如果a默认,则默认a=1,就是前值预测。
function y=LPCencode(x, a)
error(nargchk(1, 2, nargin));
if nargin<2
a=1;
end
x=double(x);   
[m, n]=size(x);
p=zeros(m, n);  %存放预测值
xs=x;   
zc=zeros(m, 1);
for i=1:length(a)
   xs=[zc  xs(:, 1:end-1)];    
   p=p+a(i)*xs;
end
y=x-round(p);
%解码器
%LPCdecode函数的解码程序,与编码程序用的是同一个预测器
function x=LPCdecode(y, a)
error(nargchk(1, 2, nargin));
if nargin<2
  a=1;
end
a=a(end: -1: 1);     
[m, n]=size(y);     
order=length(a);
a=repmat(a, m, 1);      
x=zeros(m, n+order);
for i=1:n
ii=i+order;
x(:, ii)=y(:, i)+round(sum(a(:, order: -1: 1).*x(:, (ii-1): -1:(ii-order)), 2));
end
x=x(:, order+1: end);

実験結果:
七

八


1 Star2 Stars3 Stars4 Stars5 Stars (まだ評価されていません)
Loading...
      この投稿は審査処理中  | 元のサイトへ