MacDTV.com |
DV
Codecの仕組み |
1999.04.13初稿
2004.08.30改訂 |
MacDTV情報ひろばトップページ >> MacDTV研究室 >> [ DV Codecの仕組み ] |
DV Codecについて、アナログでの代表的なCodecであるM-JPEGと比較しながら解説してゆきます。
まあわたしの記述には大間違いもあるかと思いますので、その時は笑い飛ばして下さい。
もちろん、正解をご指摘頂けると幸いです(笑)。
1. DVのフレームについて
DV Codecは、M-JPEGと同様、フレーム内圧縮(空間圧縮)です。フレーム間圧縮(時間圧縮)を採用しているMPEGやCinePakとは異なります。
一般的なアナログキャプチャリングシステムの場合、フレームは、水平640、垂直480の方形ピクセルからなります。
もちろん、業務用のD1なんかだと、水平720、垂直486の矩形(縦長の長方形)ピクセル(いわゆるD1フレーム)ですが...。
一方、DVフレームでは、水平720、垂直480の矩形ピクセルを採用しています。まあ、D1フレームをもとにしているのですね。
2. サンプリングの方法
アナログ信号をデジタイズする際、サンプリングを行いますが、これには、量子化ビット数とサンプリング周波数、のふたつのパラメータがあります。
量子化ビット数
これは、アナログ信号の縦軸(信号強度)を何段階に分割してデジタイズするか、という意味です。量子化ビット数は、M-JPEGでもDV Codecでも同じで、8ビットです。これだと256段階を表現できます。
サンプリング周波数
これは、アナログ信号の横軸方向(時間軸)において、どれくらいの時間頻度でサンプリングするか、というもの。
サンプリング周波数については、M-JPEGとDV Codecでは若干違いがあります。
一般的なM-JPEGシステムの場合、YUV=4:2:2で、これは、Y(輝度)については、全ドットサンプリングするが、UとV(色差)については、2ピクセルおきにサンプリングすることになります。
一方のDV Codecにおいては、YUV=4:1:1を採用しており、これだとUとV(色差)については4ピクセルおきにしかサンプリングしないことを意味しています。
Yのサンプリング周波数は、13.5 MHz、UとVのサンプリング周波数は3.375 MHzです。
量子化ビット数(縦軸)は8ビットであり、256段階を表現出来る。 サンプリング周波数は13.5 MHz。 |
量子化ビット数(縦軸)は8ビットであり、256段階を表現出来る。 サンプリング周波数は3.375 MHz。 |
結局、
サンプリングの段階で、すでに肉眼で判らない程度に間引きサンプリング(4:1:1サンプリング)することで、データの量を減らしている
のですね。
3. 離散コサイン変換(DCT)について
FireWire経由でのDV転送の場合、25Mbpsであることはご存じだと思います。つまり、約127Mbpsを25Mbpsへと約5:1圧縮しています。この役割を果たすのがDV Codecです。
圧縮の基本アルゴリズムは、M-JPEGもDV Codecとも同様に、離散コサイン変換(Discrete Cosine Transform、以下DCT)とハフマン符合化を基本としています。
DCTでは、8×8ピクセルのブロックが基本単位になります。
ブロック中の64のデータに対してDCTという演算を行い、新たな8×8ピクセルのデータを生成させます。
この式の意味するところは、
原点C(0、0)に、ブロックの平均をおき、
それ以降の点には、平均からの変化率を並べてゆきます。また、原点から離れた点は、原点との変化率が小さいことになります。
このように、離散コサイン変換(DCT)自体には、圧縮の機能はありません。DCTとは、元の画像情報を別の座標系に変換して表現しているにすぎません。
また、DCT自体は、可逆です。逆DCT処理すると、劣化のない元画像が復元されます。
つまり、「DCTのために画質が劣化する」といった俗説は、正確な言い方ではありません。
DCTによる圧縮とは、これら原点からの変化率が小さい点(原点から離れた点)を丸める(近似する)ことによって行われます。
原点からの変化率が小さい点を丸めることは、「隣のピクセルと微妙に色が異なる」といったケースでこまかい描写が失われることを意味しています。
これが、俗にDCT劣化と呼ばれるものです。
4. マクロブロック、スーパーブロック...そして平準化
さて、ここで、DV CodecとM-JPEGの違いに触れることにしましょう。
例えば、M-JPEGでは、圧縮率5:1(約3MB/s強 1) )だと、エッジノイズが目立ち、画質は無残になります。いわゆるJPEGノイズというものの発生です。
1) S-VHSクオリティでは、M-JPEGでは4〜5MB/s必要といわれています。
JPEGノイズの原因は、DCTを利用した圧縮にあるので、
DVも、基本的にDCTを利用する以上、JPEGノイズ(のようなもの)の発生は、原理的に避けられません。
では、なぜ、約5:1圧縮 2) のDV Codecではエッジノイズが目立たず、これほどきれいなのでしょう。
2)127Mbps→25Mbps=3.3MB/s程度(音声分も合わせると、3.6MB/sになる)
これは、平準化という巧妙な仕組みがあるからです。
8×8ピクセル内でのDCT処理をするとなると、どうしてもエッジがにじみます。これは、各ブロック内で完結して、圧縮率を確保しなくてはならなくなるからです。
自然画の場合はこれでもいいです。隣のピクセルと色は大抵似ていますから。しかし、ビルと空の境界、あるいは、もっと苛酷な「テロップ」などを考えると、破綻します。いわゆるJPEGノイズです。
DVでは、DCTブロックを4つ分集めたものをマクロブロックと呼びます。
また、マクロブロックを27個集めたものをスーパーブロックといいます。つまり、1フレームには50個のスーパーブロックがあることになります。
さらに、5個のスーパーブロックを1組になっていています。の同じ組に属する5つのスーパーブロックは、1フレーム上ではこんな風に分散配置されています。
巧妙な仕組みとはこれからです。
この同じ組(計10組)の中で、圧縮率を融通し合う「平準化処理」を行うのです。
つまり、
テロップ部など圧縮率を上げたくないDCTブロックでは、低めの圧縮率に留めておく分、おなじスーパーブロックに属していて、圧縮率が余り高くなくてもよいDCTブロックでは、圧縮率をかせぐ、
といった融通をしているのです。
なお、DV Tape上では、1フレームを10トラックに記録していますが、それぞれのスーパーブロックの組が、1トラックに相当します。
例えば、DVカメラで早送り再生されるとき、ブロック状に順次再生されますよね。これは、こういった理由からです。スーパーブロックごとに間引き再生されているからです。
スーパーブロックの形が、はっきり見えますね。 |
最後に...
なかなか、巧妙なものですね。
結局、アナログM-JPEGにくらべ、デジタルDV Codecが画質がいい理由は、大きく3つの理由があります。
フルデジタル処理だと、アナログノイズが混入する余地がない
肉眼で判らない程度に間引きサンプリング(4:1:1サンプリング)している
離散コサイン変換時の圧縮率を融通しあう、平準化という仕掛けがある
ことにあると言えます。
最後まで、おつきあい頂きまして、ありがとうございます。お疲れさまでした。実は、わたしも、調べるのに、正直、疲れました(笑)。 楽しんでいただけましたか??。ご感想など、MacDTV.forum(掲示板&メーリングリスト)に書き込んで頂けると幸いです。 |
MacDTV.com
|
Copyright(C)
Yasushi SATO All Right Reserved.
|
MacDTV情報ひろばトップページ >> MacDTV研究室 >> [ DV Codecの仕組み ]