Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
画像符号化の歴史を  ほんの少しだけふりかえってみた               2011/12/24             Makiko Konoshima              12/24 クリスマス プログラミング生放送2011/1...
自己紹介• Twitter ID: @handy_fox• 手ぎつねです• 会社員• 画像符号化、コンピュータビジョン、生体認証  など画像処理関連技術の研究開発がメイン• 組み込みからクラウドまでソフト開発します• 好物はC言語とアセンブラ ...
本日のお話• (クリスマスに見る・使う・プレゼントされる)地デ  ジ、デジカメ、ブルーレイ、Flashプレーヤーなど  で必ず使う画像データの圧縮技術• クリスマス同様、画像符号化にも深い歴史が!• 画像符号化の規格の歴史と、世界で最初の国  ...
画像符号化とは• 大容量の画像データを画質を保ったまま容量  を小さくする技術=画像符号化=圧縮• 用途によるが、元のデータの大体1/50-1/100  くらいに圧縮しないと大きすぎて非常に不便                         ...
画像符号化の規格ができるまで• ①まず国際標準化規格をつくる      – ISO, ITU-Tなど• ②①を参照して、各業界で規格をつくる(業界  標準)※逆のパターンもある      – 地デジ、etc : ARIB(電波産業会)     ...
国際標準(ITU-T)• 画像符号化はITUの通信規格としてスタート• ITU=国際電気通信連合(International  Telecomunication Union)      – 国際連合の下部組織• 画像:Hシリーズ、音声:Gシリー...
国際標準(ISO/MPEG)• ISO/IEC JTC 1 Moving Picture Experts Group      – ISOは民間の国際標準化機構                             今はほとんど使わ•   M...
ITU-T H.261• 1990年に勧告された世界最初の国際標準• 1~複数本ISDNを用いたビデオ会議が目的      – ISDNなので、64kbpsきざみ、2Mbpsまで• 以降の規格のベース                    富士...
H.261で規定した画像フォーマット• 当時アナログ放送規格は世界共通でなかった      – NTSC 日本、北米 1秒間に30枚の画像を伝送        走査線数は525本      – PAL ヨーロッパ、ASEAN、オセアニア、南アメ...
Common Intermediate Format• 規格として共通に扱える中間フォーマット      – CIF(352x288)、1秒間に最大30枚の画像を伝送      – QCIF CIFの縦横1/2 画面を、Yは16x16、Cは8x...
画像符号化の原理• 画像の以下の性質を利用し、送る情報を削減 – 時間的に近い画像の絵柄が似る : 動き補償 – 空間的に近い位置の画素値が似る:離散コサイン変換 – 発生しやすいパターンがある :エントロピー符号化• 以前に送った情報と、「ど...
H.261の基本構成• 最新規格と基本構成は変わらず• (今から見ると各々の技術は、かなり単純)                          離散コサ                         entropy            ...
H.261の規格が規定している処理• プレーヤ側のみ規定(赤い部分)• 同じ画像を送り側と受け側で共有するため                          離散コサ                         entropy     ...
動き補償と差分• 時間的に近い画像は似ていることを利用する• 一例として、1つ前との画像の値の差の累積  が一番小さい箇所を探して、「ずらした縦横の  画素数」の情報を送ることで圧縮      – 規定しているのは、情報の送り方のみ      ...
動き補償の単位• ずらした縦横の画素数=動きベクトル• H.261では、16x16画素を単位として1つの  2次元ベクトル(Vx,Vy)として表現する      – ベクトルは整数値のみで、1画素以下の細かいず        れは表現できない ...
動き補償に秘められた力• いかに差分を小さくするベクトルを求めるかで、  圧縮の効率=画質が決まる• 各社とも工夫をこらしている  – 探索範囲で入力画像とずらせた画像の差分二乗和    が一番小さいベクトルを選択  – 基本はブロックマッチン...
探索方法いろいろ(1)• フル探索:候補となるベクトルの誤差を全部計算 – 確実に差分が小さいベクトルが求まる – 探索範囲±16で、探索数31x31=961回• 単純に実装すると、ソフトでは全体の演算量の90  %以上、専用回路だと面積の70...
探索方法いろいろ(2)• ステップ探索:大局的探索後、徐々に候補を絞る – 似た模様が連続していると、局所解に陥りやすい – 探索範囲±16で9点探索なら、探索数9+8+8+8+8=41回• オフセット探索:周囲の動きベクトルにあわせて探  索...
離散コサイン変換とベクトル量子化• 当時、離散コサイン変換(DCT)とベクトル量子  化のどちらを採用するか議論していた• 最終的にDCTが採用された    – メモリをたくさん使うから?コードブックの共有とか      なにかと面倒?    ...
離散コサイン変換(DCT)• 画像にDCTをかけると、成分が低周波数領域  に集中することを利用して圧縮• 8x8の単位で処理• 整数(画像の差分、9ビット)から実数に写像• 動き補償についで演算量は大きい                   ...
逆DCTの精度規定• 逆DCTのみIEEE 1180-1990 で精度を規定      – 実数値による乗算と加算演算の繰り返しで送受で        実装が異なると誤差が発生する      – 何度もループをまわって誤差が累積すると送受で  ...
(参考までに)ベクトル量子化• 16x16の画像の代表値を複数個ベクトルとし  て送信側と受信側で保持      – コードブックといいます• 入力と一番類似しているベクトルの番号のみ  を伝送することで圧縮する     ベクトル       ...
LBGアルゴリズム • 画像・音声のコードブックの作成によく使われた • クラスタリングの1手法でk-meansに類似 • コードブック全体の重心を通る超平面で2分割し   、分割した先で更に重心を求めて分割 • 2のべき乗の個数分の重心=コー...
動き補償の実装(時間があれば)• 基本的に、2つの配列の距離計算である      – SSEなどのメディア命令が効果的             12/24 クリスマス プログラミング生放送2011/12/24                  ...
DCTの実装(時間があれば)• 行列演算であるため、やはりメディア命令が  効果的             12/24 クリスマス プログラミング生放送2011/12/24                            24      ...
以下はもし次に機会があれば•    量子化:値をまるめることで情報を圧縮する•    エントロピー符号化:ハフマンなど(ex:zip•    ループ内フィルタ:画像をなめらかにする•    ビットやファイルのフォーマット(シンタックス)•   ...
まとめ• クリスマスに関係が深いIT関連製品を、裏方で  支える画像符号化の技術• その標準化と基本技術の歴史を、(途中まで)  ざっくりご紹介しました• 良いクリスマス・年末年始を、お過ごしください!             12/24 クリ...
参考文献• ITU-T Recommendation H.261http://www.itu.int/rec/T-REC-H.261-198811-S/enhttp://www.itu.int/rec/T-REC-H.261-199012-S/...
12/24 クリスマス プログラミング生放送2011/12/24                            28                      勉強会 第12回
ディジタル画像について• 画像を細かい単位に分割→画素(よくCMでxx  ピクセルとか○○ラインとか言っているもの)• 輝度Yと色CbCrの3プレーン各8ビットで表現      – RGBではプレーン間の相関が高い=情報が重複        し...
画像符号化の規格(処理)• 画像の色や動きに関する情報を所定のフォー  マット(シンタックス)に従い変換し受信側に送る• 受信側ではフォーマットに従い逆変換し元の情報  を得る静止画を時間順に並べたもの               適当にブロッ...
画像以外の国際標準• 音声の圧縮方式も国際標準で定められています• 画像と音声両方そろって初めてテレビ/ビデオを  楽しむことができます(今回説明は画像のみ)• 画像と音を1本化し、表示するタイミングを規定し  た多重化も国際標準で定められてい...
Upcoming SlideShare
Loading in …5
×

原稿4

2,344 views

Published on

クリスマス プログラミング生放送勉強会 第12回@品川 #pronama

  • Be the first to comment

原稿4

  1. 1. 画像符号化の歴史を ほんの少しだけふりかえってみた 2011/12/24 Makiko Konoshima 12/24 クリスマス プログラミング生放送2011/12/24 勉強会 第12回
  2. 2. 自己紹介• Twitter ID: @handy_fox• 手ぎつねです• 会社員• 画像符号化、コンピュータビジョン、生体認証 など画像処理関連技術の研究開発がメイン• 組み込みからクラウドまでソフト開発します• 好物はC言語とアセンブラ 12/24 クリスマス プログラミング生放送2011/12/24 1 勉強会 第12回
  3. 3. 本日のお話• (クリスマスに見る・使う・プレゼントされる)地デ ジ、デジカメ、ブルーレイ、Flashプレーヤーなど で必ず使う画像データの圧縮技術• クリスマス同様、画像符号化にも深い歴史が!• 画像符号化の規格の歴史と、世界で最初の国 際標準規格であるH.261に使われている技術 について、軽くお話をします 12/24 クリスマス プログラミング生放送2011/12/24 2 勉強会 第12回
  4. 4. 画像符号化とは• 大容量の画像データを画質を保ったまま容量 を小さくする技術=画像符号化=圧縮• 用途によるが、元のデータの大体1/50-1/100 くらいに圧縮しないと大きすぎて非常に不便 圧縮 12/24 クリスマス プログラミング生放送2011/12/24 3 勉強会 第12回
  5. 5. 画像符号化の規格ができるまで• ①まず国際標準化規格をつくる – ISO, ITU-Tなど• ②①を参照して、各業界で規格をつくる(業界 標準)※逆のパターンもある – 地デジ、etc : ARIB(電波産業会) – ブルーレイ : Blu-ray Disc Association – アクトビラ :デジタルテレビ情報化研究会(解散) – その他もろもろ 12/24 クリスマス プログラミング生放送2011/12/24 4 勉強会 第12回
  6. 6. 国際標準(ITU-T)• 画像符号化はITUの通信規格としてスタート• ITU=国際電気通信連合(International Telecomunication Union) – 国際連合の下部組織• 画像:Hシリーズ、音声:Gシリーズ• H.261,H.262,H.263,H.264など 12/24 クリスマス プログラミング生放送2011/12/24 5 勉強会 第12回
  7. 7. 国際標準(ISO/MPEG)• ISO/IEC JTC 1 Moving Picture Experts Group – ISOは民間の国際標準化機構 今はほとんど使わ• MPEG-1(VideoCD向け、記録) れていない• MPEG-2(放送、伝送向け)⇔H.262 地デジ、DVD• MPEG-4(記録と伝送)⇔H.263,H.264 ブルーレイ、 ワンセグ、• 画像と音声と多重化の規格 デジタル放送• MPEG-2からは、ITUとの合同規格 12/24 クリスマス プログラミング生放送2011/12/24 6 勉強会 第12回
  8. 8. ITU-T H.261• 1990年に勧告された世界最初の国際標準• 1~複数本ISDNを用いたビデオ会議が目的 – ISDNなので、64kbpsきざみ、2Mbpsまで• 以降の規格のベース 富士通株式会社製 FEDIS-T FEDIS-U 12/24 クリスマス プログラミング生放送2011/12/24 7 勉強会 第12回
  9. 9. H.261で規定した画像フォーマット• 当時アナログ放送規格は世界共通でなかった – NTSC 日本、北米 1秒間に30枚の画像を伝送 走査線数は525本 – PAL ヨーロッパ、ASEAN、オセアニア、南アメリカ 1秒間に25枚の画像を伝送 走査線数は625本 (実は多くのバリエーションあり) – SECAMとかも ヨーロッパの一部、ロシア• 世界共通の符号化規格としては都合が悪い そこで… 12/24 クリスマス プログラミング生放送2011/12/24 8 勉強会 第12回
  10. 10. Common Intermediate Format• 規格として共通に扱える中間フォーマット – CIF(352x288)、1秒間に最大30枚の画像を伝送 – QCIF CIFの縦横1/2 画面を、Yは16x16、Cは8x8 に分けて処理するため、縦横とも 352 この倍数のサイズにする 176 CIF Cb QCIF Cb288 Y 144 Y Cr Cr• 解像度としては、ワンセグ(192x144)に近い… 12/24 クリスマス プログラミング生放送2011/12/24 9 勉強会 第12回
  11. 11. 画像符号化の原理• 画像の以下の性質を利用し、送る情報を削減 – 時間的に近い画像の絵柄が似る : 動き補償 – 空間的に近い位置の画素値が似る:離散コサイン変換 – 発生しやすいパターンがある :エントロピー符号化• 以前に送った情報と、「どれだけ差があるか」とい う情報だけを受信側に送る – 受信側は差を累積して画像の内容を更新する 12/24 クリスマス プログラミング生放送 2011/12/24 10 勉強会 第12回
  12. 12. H.261の基本構成• 最新規格と基本構成は変わらず• (今から見ると各々の技術は、かなり単純) 離散コサ entropy 動き補償 - 量子化 イン変換 符号化入力画像 逆量子化 逆離散コサ イン変換 + 再生画像 ループ内 (メモリ) フィルタ 12/24 クリスマス プログラミング生放送2011/12/24 11 勉強会 第12回
  13. 13. H.261の規格が規定している処理• プレーヤ側のみ規定(赤い部分)• 同じ画像を送り側と受け側で共有するため 離散コサ entropy 動き補償 - 量子化 イン変換 符号化入力画像 逆量子化 逆離散コサ イン変換 規格 + 再生画像 ループ内 (メモリ) フィルタ 12/24 クリスマス プログラミング生放送2011/12/24 12 勉強会 第12回
  14. 14. 動き補償と差分• 時間的に近い画像は似ていることを利用する• 一例として、1つ前との画像の値の差の累積 が一番小さい箇所を探して、「ずらした縦横の 画素数」の情報を送ることで圧縮 – 規定しているのは、情報の送り方のみ – コンピュータビジョンにおける物体追跡とは異なる 動き補償 - 1つ前に送って入力画像 再生画像 受信側と共通して (メモリ) 持っている画像 12/24 クリスマス プログラミング生放送2011/12/24 13 勉強会 第12回
  15. 15. 動き補償の単位• ずらした縦横の画素数=動きベクトル• H.261では、16x16画素を単位として1つの 2次元ベクトル(Vx,Vy)として表現する – ベクトルは整数値のみで、1画素以下の細かいず れは表現できない – 動き補償の方法そのものは標準の対象外 12/24 クリスマス プログラミング生放送2011/12/24 14 勉強会 第12回
  16. 16. 動き補償に秘められた力• いかに差分を小さくするベクトルを求めるかで、 圧縮の効率=画質が決まる• 各社とも工夫をこらしている – 探索範囲で入力画像とずらせた画像の差分二乗和 が一番小さいベクトルを選択 – 基本はブロックマッチングで演算量が大きい – 少ない演算量で差分が小さいベクトルを得たい 12/24 クリスマス プログラミング生放送 2011/12/24 15 勉強会 第12回
  17. 17. 探索方法いろいろ(1)• フル探索:候補となるベクトルの誤差を全部計算 – 確実に差分が小さいベクトルが求まる – 探索範囲±16で、探索数31x31=961回• 単純に実装すると、ソフトでは全体の演算量の90 %以上、専用回路だと面積の70%以上を占める 探索範囲(黄色)内 全パターンの 差を計算する 入力 再生 画像 画像 12/24 クリスマス プログラミング生放送2011/12/24 16 勉強会 第12回
  18. 18. 探索方法いろいろ(2)• ステップ探索:大局的探索後、徐々に候補を絞る – 似た模様が連続していると、局所解に陥りやすい – 探索範囲±16で9点探索なら、探索数9+8+8+8+8=41回• オフセット探索:周囲の動きベクトルにあわせて探 索範囲をずらす 最初にあらく探索し 徐々に範囲を狭める 入力 画像 12/24 クリスマス プログラミング生放送 2011/12/24 17 勉強会 第12回
  19. 19. 離散コサイン変換とベクトル量子化• 当時、離散コサイン変換(DCT)とベクトル量子 化のどちらを採用するか議論していた• 最終的にDCTが採用された – メモリをたくさん使うから?コードブックの共有とか なにかと面倒? – 符号化としての性能にそん色はなかった(記憶) 離散コサ ベクトル- 量子化 - - 量子化 イン変換 量子化 再生画像 VS コードブック (メモリ) 再生画像 (メモリ) 12/24 クリスマス プログラミング生放送2011/12/24 18 勉強会 第12回
  20. 20. 離散コサイン変換(DCT)• 画像にDCTをかけると、成分が低周波数領域 に集中することを利用して圧縮• 8x8の単位で処理• 整数(画像の差分、9ビット)から実数に写像• 動き補償についで演算量は大きい 高周波数 ほとんど0になる または、0にしても 劣化が目立たない DCT 高周波数 12/24 クリスマス プログラミング生放送2011/12/24 19 勉強会 第12回
  21. 21. 逆DCTの精度規定• 逆DCTのみIEEE 1180-1990 で精度を規定 – 実数値による乗算と加算演算の繰り返しで送受で 実装が異なると誤差が発生する – 何度もループをまわって誤差が累積すると送受で 画像が変わってくる→画質が劣化する – ソフトウェアでは固定小数点化して実装することが 多かった 逆離散コサイン変換 + 誤差が累積 再生画像 ループ内 (メモリ) フィルタ 12/24 クリスマス プログラミング生放送2011/12/24 20 勉強会 第12回
  22. 22. (参考までに)ベクトル量子化• 16x16の画像の代表値を複数個ベクトルとし て送信側と受信側で保持 – コードブックといいます• 入力と一番類似しているベクトルの番号のみ を伝送することで圧縮する ベクトル 量 - -• さらに差分を量子化して伝送 量子化 子 化 コードブック• コードブックの作り方 再生画像 – いくつか手法あり (メモリ) 12/24 クリスマス プログラミング生放送2011/12/24 21 勉強会 第12回
  23. 23. LBGアルゴリズム • 画像・音声のコードブックの作成によく使われた • クラスタリングの1手法でk-meansに類似 • コードブック全体の重心を通る超平面で2分割し 、分割した先で更に重心を求めて分割 • 2のべき乗の個数分の重心=コードブック用の ベクトルが得られる ○ × 1024のコードブックを1万~10万サンプル ○ × × 作成(トレーニングベクトル) ○× × ○既存の画像データを ○ ○ × × 重心サンプルとしていた ○ × ○ サンプル 12/24 クリスマス プログラミング生放送 2011/12/24 22 勉強会 第12回
  24. 24. 動き補償の実装(時間があれば)• 基本的に、2つの配列の距離計算である – SSEなどのメディア命令が効果的 12/24 クリスマス プログラミング生放送2011/12/24 23 勉強会 第12回
  25. 25. DCTの実装(時間があれば)• 行列演算であるため、やはりメディア命令が 効果的 12/24 クリスマス プログラミング生放送2011/12/24 24 勉強会 第12回
  26. 26. 以下はもし次に機会があれば• 量子化:値をまるめることで情報を圧縮する• エントロピー符号化:ハフマンなど(ex:zip• ループ内フィルタ:画像をなめらかにする• ビットやファイルのフォーマット(シンタックス)• 動き補償、DCTの詳細技術• 最新の符号化技術• 符号化ちょっといい話• 多重化規格(ファイルコンテナ、ex:mp4,mov,TS) 12/24 クリスマス プログラミング生放送 2011/12/24 25 勉強会 第12回
  27. 27. まとめ• クリスマスに関係が深いIT関連製品を、裏方で 支える画像符号化の技術• その標準化と基本技術の歴史を、(途中まで) ざっくりご紹介しました• 良いクリスマス・年末年始を、お過ごしください! 12/24 クリスマス プログラミング生放送2011/12/24 26 勉強会 第12回
  28. 28. 参考文献• ITU-T Recommendation H.261http://www.itu.int/rec/T-REC-H.261-198811-S/enhttp://www.itu.int/rec/T-REC-H.261-199012-S/enhttp://www.itu.int/rec/T-REC-H.261-199303-I/en• Y.Linde, A.Buzo, and R.M.Gray, "An Algorithm for Vector Quantizer Design", IEEE Trans. on Communications, vol.28, no.1, pp.84-95 (1980) 12/24 クリスマス プログラミング生放送 2011/12/24 27 勉強会 第12回
  29. 29. 12/24 クリスマス プログラミング生放送2011/12/24 28 勉強会 第12回
  30. 30. ディジタル画像について• 画像を細かい単位に分割→画素(よくCMでxx ピクセルとか○○ラインとか言っているもの)• 輝度Yと色CbCrの3プレーン各8ビットで表現 – RGBではプレーン間の相関が高い=情報が重複 しているため• 動画は、時系列的に並んだ静止画 12/24 クリスマス プログラミング生放送2011/12/24 29 勉強会 第12回
  31. 31. 画像符号化の規格(処理)• 画像の色や動きに関する情報を所定のフォー マット(シンタックス)に従い変換し受信側に送る• 受信側ではフォーマットに従い逆変換し元の情報 を得る静止画を時間順に並べたもの 適当にブロックに区切る 動き 所定の 逆 形式に 送る に 変換し 変 色 符号化 換 12/24 クリスマス プログラミング生放送 2011/12/24 30 勉強会 第12回
  32. 32. 画像以外の国際標準• 音声の圧縮方式も国際標準で定められています• 画像と音声両方そろって初めてテレビ/ビデオを 楽しむことができます(今回説明は画像のみ)• 画像と音を1本化し、表示するタイミングを規定し た多重化も国際標準で定められています(実は ソフトで実装する場合、開発者泣かせの規格)…次にもし機会があれば話します 12/24 クリスマス プログラミング生放送2011/12/24 31 勉強会 第12回

×