画像の圧縮符号化 画像の圧縮符号化 画像の符号化とは 画像の符号化とはーー圧縮の意義 皆さんの学籍番号の場合、 a603001 a603002 a603003 a603004 a603005 a603006 a603007 a603008 a603009 a603010 必要性 a603 001 002 003 004 005 006 007 008 009 010 圧縮できる 一文字1バイト、 10x7=70バイト 画像情報:2次元ないし3次元空間的な広がりと時間変化 データ量膨大 通信路、蓄積メディア(資源)はどうしても容量制限がある 転送スピード向上、限られたメディア になるべく情報多めに蓄積したい 可能性 4+10x3=34バイト 画 像 処 もとの情報に冗長性がある 1 理 画 画像の圧縮符号化 像 処 2 理 画像の圧縮符号化 画像の符号化とは 画像の符号化とは 画像データ量の計算仕方 数えてみて サイズ512 x 512のカラー画像一枚(1画素 x 3バイト) 画像のデータ量 = (1画素のデータ量) x (横画素数) x (縦画素数) 512 x 512 x 3 = 786432バイト=768KB TVディジタル放送は毎秒30枚(フレーム) 768 x 30 = 23040KB = 22.5MB 例えば、512 x 512グレー画像、各画素の諧調値1バイト CDROM一枚700MBとすれば 画像のデータ量 = 1 x 512 x 512 = 256KB 700 / 18 ≒ 31秒 非圧縮の場合、1枚CDROMに31秒の動画しか蓄積できない! 画 像 処 3 理 画像の圧縮符号化 原画像 データ量大 像 処 画像の符号化とはーーなぜ圧縮できるか 圧縮 データ データ量小 復号化 画像に冗長がある。 削減対象は空間的と時間的冗長度 15 空間的冗長 14 復号化 画像 データ量大 0 符号化によって原画像をより小さなデータに変換する。圧縮 されたデータは復号化によって画像に復元される。 完全に復元される場合:可逆型圧縮符号化 完全に復元されない場合:非可逆型圧縮符号化 画 像 処 4 理 画像の圧縮符号化 画像の符号化とはーー原理 符号化 画 理 まず、白い背景は何の情報も 伝えないから、冗長である。 さらに、0-1,1-0変化部が情報 を伝える、ほかは冗長… 5 時間的冗長 空間的(時間的)滑らかに変化(相関が高い) 画 像 処 理 6 1 画像の圧縮符号化 画像の圧縮符号化 画像の符号化法 ランレングス符号化 2値画像は黒画素と白画素から構成されている。 画像の圧縮符号化には、正反対要求:(1)できるだけ少ない データに圧縮し、(2)できるだけ原画像に忠実な画像を復元。 (1) ラスタ走査順による符号化法: 2値画像に対するランレングス符号化法、ハフマン符号化法 画素の諧調値に対する予測差分を用いる予測符号化法 (2) ブロック分割による符号化法:原画像を4x4画素、8x8画素 などのブロックに分割後、各ブロックの特徴に着目して符号 化を行う。 例えば、FFT、離散コサイン変換(DCT)などの変換での圧縮 法:JPEG、MPEG符号化法 (3) 画像中の物体に着目する符号化法 (4) 出現確率を元にした統計的符号化法 (5) その他 画 像 処 ランレングス 2進数 4 100 1 1 2 10 8 1000 データの表現: 白,白,白,白,黒,白,白,白,黒,黒,白,白,白,白,白,白,白,白 白4,黒1,白3,黒2,白8 また、白の次必ず黒、黒の次は必ず白であるから 白4,1,3,2,8 白または黒の連続する画素列を白ラン、黒ランと呼ぶ。その長さ に着目した符号化をランレングス符号化法。 7 理 3 11 画 画像の圧縮符号化 像 処 8 理 画像の圧縮符号化 ランレングス符号化 Wyleの符号化法:画像をラスタ走査順に調べて、ランレングス を符号化する。しかしながらラン(run)の長さ、ランレングスで ある ランレングス符号化 4,1,3,2,8 256 X 256+ヘッダ =65535B+ヘッダ =65570B を2進化し、 100,1,11,10,1000 画像の識別子、サイズ などが含まれているもの 画像上一本の走査線 画 像 処 としてそのまま接続して 100111101000 としてしまうと、ランの区切りがわからなくなってしまう。 9 理 画像の圧縮符号化 画 像 処 理 10 画像の圧縮符号化 ランレングス符号化 ランレングス符号化 長さnのランレングスの場合、まず1を引き、n-1を2進数に直した 後、Wyle符号に当てはめる。 例えば、ランレングス3は、1を引いた2を2進数に直して10、 Wyle符号の0**の**に当てはめて010となる。 Wyle区切り記号: ランレングス 符号 符号長 1~4 5~8 9~16 17~32 33~64 65~128 129~256 0** 10*** 110*** 1110**** 11110***** 111110****** 1111110******* 3 5 7 9 11 13 15 4、1、3、2、8のランレングスの符号化: 元のランレングスn: 4 1 3 2 8 n-1: 3 0 2 1 7 2進数: 11 00 10 01 111 Wyle符号: 011 000 010 001 10111 最終的な符号列: 01100001000110111 "*"の数(符号長)-2 = "1"の数 画 像 処 理 11 画 像 処 理 12 2 画像の圧縮符号化 画像の圧縮符号化 ランレングス符号化 ランレングス符号化 コンパイル gcc -o rlcode rlcode.c lsコマンドでファイル wisdom.pgmとファイル wisdom.wylのデータ量 を確認してください。 実行 ./rlcode 入力ファイル:wisdom.pgm 出力ファイル:wisdom.wyl テスト画像 (注意:*.wylは画像処理ツールで見えない!) 画 像 処 注意:圧縮率は画像に依存する 13 理 画像の圧縮符号化 1 像 処 理 14 ランレングス符号化 解説: ① 走査線ごとに符号化 ② 処理後の各データをline_bufferへ ③ これから処理後のデータをline_bufferのどこへいれるか gindexで指示 ④ ランの長さの初期値は0ではない ⑤ 階調値はline_buffer[0]で表現され、line_buffer[1]から ランだけを記憶 ⑥ /と%の演算 ⑦ バイトの作成 0 画 画像の圧縮符号化 ランレングス符号化 line_buffer 1 圧縮後のデータ量1386B 圧縮率: 1386/65535=2.1149% 原画像データ量 65570B 1 0 1 1 1 0 0 lsコマンドでファイル complex.pgmとファイル complex.wylのデータ量 を確認してください。 0 complex.pgm データ量: 65570B byte_data:10110111 画 像 処 理 圧縮後のデータ量1386B 圧縮率: 2276/65570=3.4711% 原画像256 x 256 15 注意:圧縮率は画像に依存する 雑 が 知 より白/黒の変化が多い 画 像 処 理 16 画像の圧縮符号化 ランレングス復号化法 コンパイル gcc -o rldecode rldecode.c 実行 ./rldecode 入力ファイル:圧縮の時作成されたwisdom.wyl またはcomplex.wyl 出力ファイル:wisdomd.pgm complexd.pgm (原画像と区別できるような名前) 画 像 処 理 17 3
© Copyright 2024 Paperzz