動画の色のいろいろ
技術的な事も書いていきたい気がしますが、素人なもので間違ったことを書いてる可能性もあります。自分でも調べてみてね。
色の表し方
普段皆さんが見る画面というのはRGBの三信号の組み合わせで表示されているが、実は画像・動画ファイルのほとんどは"その3つの組み合わせ"ではないものが多い。(業務用はその限りではない)
まず、画像をYCbCrの三信号に分離する。
Yは輝度信号
Cb/Crは色差信号(クロマ)
をそれぞれ表す。ちなみにCbが青系統の色、Crが赤系統の色の情報を保持している。
それってなんか役に立つんですか??
ここまではただ表色系が変わったに過ぎない。
人の視覚的特性として"明るさの変化には敏感だが色の変化には鈍感"、というものがある。
これを利用するのだ。
画像や動画を圧縮する際に輝度の情報を優先して色情報から削ぎ落としていく。すると、人間には大して変わったように見えなくてもデータ量を大幅に削減できる。
つまりどういうことだってばよ?
具体的に説明をしていく。色データを削ぎ落とすことをクロマサブサンプリングという。クロマサブサンプリングを行ったデータには4:2:2や4:2:0という表記をする。この数字はそれぞれ
横方向のサンプル数:横の色の変化:縦の色の変化
を表している。
https://en.m.wikipedia.org/wiki/Chroma_subsamplingより
上図の4:4:4というのは何も間引いていない状態である。このデータは理論上はロスレスであり、RGBのデータに変換することができる。
4:2:2の図を見てほしい。4:4:4の図から比べて横方向の色情報が半分になっているのがわかるだろうか。
クロマサブサンプリングを行って省いた色は隣接している画素の色に置き換えられる。これだけでデータのサイズが半分になるのだ…。
4:2:0の図も見ていこう。4:2:2と比べて縦方向の色の変化がなくなっているのがわかるだろうか。ちなみに普段私達がスマホで撮る写真や動画はだいたいこの4:2:0でサンプリングされている。
カラーコレクションを行う人や写真の編集を行う人は、これを念頭に置いてできるだけサブサンプリングされていないものを使うことをおすすめする。特に映像素材のエンコードを繰り返している人は要注意である。仮にサブサンプリングが行われる形式で書き出し続けた場合、色情報はどんどん失われていく (ProResとかはちょっとした対策が成されているらしい) 。
ということで
クロマサブサンプリングは映像の空間的圧縮においてとても大事な役割を担っている。これは映像に関わる人だけが役に立つことではない。
動画のサイズが半分になれば、今までと同じ通信量で2倍の動画が見られる。月々のギガ制限に悩まされることもなくなるのだ……多分…。
この記事が気に入ったらサポートをしてみませんか?