OMNIVISION Technologies, Inc.(オムニビジョン・テクノロジーズ) はじめに 第2回:センサは決まったが動かない?通信方式とフレームレートに潜む「帯域の壁」 こんにちは。加賀デバイスのOMNIVISION Teamです。 前回のコラムでは、「高画素数=高画質」というスペックの裏に隠された、センササイズや画素ピッチとのトレードオフについてお話ししました。さて、「今回の用途なら4K(約800万画素)だな」と無事にセンサを選び終えたところで、現場ではすぐに「第2の壁」が立ちはだかります。 それが、「この画像データを、どうやって後段デバイスまで運ぶのか?」という物理的なパイプの問題です。 今回は、スペック表に必ず記載されている『Frame Rate(フレームレート)』と『Interface(通信インターフェース)』にスポットを当て、カタログ通りにはいかない実務的な設計のポイントを解説します。 ※OMNIVISION HP内のイメージセンサ製品リスト ・OMNIVISION Image Sensor Product ■「フレームレート」とデータ量の関係 まずは言葉の定義から確認しましょう。スペック表にある「Frame Rate」とは、「イメージセンサが1秒間に何枚の画像(フレーム)を出力できるか」という指標です。 単位は「fps(frames per second)」で、60fpsであれば1秒間に60枚の静止画を連続して出力していることになります。 フレームレートの数値が大きいほうが、より滑らかな動画になるのは想像がつくかと思います。 図1:フレームレートの違い なので、とりあえず数値が大きいほうが良いのではないかと思いがちですが、1秒間に送る画像が増えれば、当然データ量も増大します。データが重くなれば伝送のハードルは上がり、後段の処理負荷も高くなります。逆に言えば、用途として1fps(1秒に1枚)で十分であれば、ある程度画素数が大きくても余裕を持って送ることができるということです。皆さんもスマートフォンのカメラ等で、静止画だと非常に高画素で撮影可能だが、動画撮影だと画素数が減ってしまうという経験をしたことがあるかもしれませんが、上記の内容が一つの要因です。 また、むやみに高いfpsを出力しても、最終的に表示するモニタの更新頻度(一般的なモニタは60Hz)を超えてしまっては、システムの帯域を無駄に消費するだけになってしまいます。システム全体のバランスを見極め、ボトルネックがどこにあるかを確認することが重要です。 ■隠れた重要パラメータ「ビット長」と出力フォーマット 急に「ビット長」という単語が出てきて、戸惑われた方もいらっしゃるかもしれません。 ビット長とは、「1つの画素が持つ光のデータを何bitで表現するか」という分解能の指標です。例えば8bitなら256段階、16bitなら65536段階で光の強弱を表現でき、数字が大きいほど豊かな階調表現が可能になります。 ただし、ビット長が大きくなれば1画素あたりのデータ量が増えるので、全体のデータ量も増大します。やはりここでもデータ量と性能(画質)のトレードオフとなります。 しかし、OMNIVISIONのスペック表には「ビット長」という単独の項目はなく、戸惑われた方もいらっしゃるかもしれません。 実は、『Output Format(出力フォーマット)』の欄を確認する必要があります。ここに「8bit-RAW」や「12bit-RAW」という記載があれば、それがそのままビット長となります。 ただ、それ以外にも「YUV」などの形式もあります。YUVとは? RAWとは? なぜフォーマット毎にビット長が違うの? といった出力フォーマット自体の詳細やシステムへの影響については、また別の回でじっくり解説します。今回は「出力フォーマットによって1画素あたりのデータの重さ(=ビット長)が変わる」という点だけ押さえていただければ大丈夫です。 ■帯域計算の基本:「積荷」と「スピード」 映像データを送る仕組みは、よく「道路とトラック」に例えられます。いくら立派な積荷(高解像度)を、ものすごいスピード(高フレームレート)で運びたくても、道路(通信インターフェース)の幅が狭ければ、渋滞を起こしてシステムは破綻してしまいます。 システムが成立するかを確認するために、まずは「1秒間にどれくらいのデータを運ぶ必要があるのか(=必要帯域)」を算出します。また、必要帯域は単位[bps]で表されます。bpsはbit per secondの略で、1秒間に何bitのデータを伝送可能かという単位となっています。基本の計算式は以下の通りです。 有効画素数 × フレームレート(fps) × ビット長 = 必要帯域(bps)(※ここでの有効画素数は1フレームあたりの総画素数です) これは直感的にわかりやすいかと思います。 1枚の画像(解像度)に対して1画素ごとのデータ量(ビット長)を掛けることで、1枚の画像の総データ量が算出されます。さらにその画像を1秒間に何枚送るか(フレームレート)を掛けることで、1秒間に送るべきデータの総量が表されます。 例えば、 解像度:1920×1080(Full HD 2MP) フレームレート:60[fps] 出力フォーマット:8bit RAW(ビット長:8bit) の場合、理論上の必要帯域は以下のようになります。…