K75thunderbirdのブログ

どちらかというと自分の頭の整理用です。ネタとしてはモバイル、自動車、ロードバイク、電気関係やPC関係の突っ込んだ話題、ややデバイスやコンポーネント寄りの偏った内容になると思われます。

CMOSと動画の関係は面白い!

一眼レフや大面積なイメージャーを使ったカメラの動画対応状況を調べていたところ、
ルフレーム? 全画素読み出し? ピクセルビニング? 画素混合? 画素加算? クロップ? ラインスキップ? ドットバイドット?
このような感じで疑問符が大量に浮かんできたので、ざっくり調べたメモを残しておきます。

 

ルフレーム
ニコンのDSLR説明文で見ることが多い。
ルフレームと言われて思い出すのはCCDだ。
一般的なインターラインCCDは受光部と伝送部が平面配置、フルフレームCCDは受光部と伝送部が立体配置、よってインターライン式よりも感度やDレンジ特性の面で有利というものだった。
正確には立体配置というよりバケツリレーのようなイメージらしいが。
が、今回はCCDではなくCMOSである。
どうも、35mmフィルムフルサイズフォーマットの意味で使用されているようだ。
撮像素子の方式ではなく、面積の話であった。
微妙に紛らわしい。


全画素読み出し
読んで字のごとく、そのままの意味。
動画生成時に対象範囲を全画素を読み出し、映像エンジン内で縮小処理することで、モアレやジャギーなどが少ない。
現状、最も理想とされる方式がこれ。


ピクセルビニング or 画素混合 or 画素加算
これらは、ほぼ同義と考えていいはず。
読み出し前にイメージャーで一定数の画素を足し合わせて仮想的な1画素を生成し、信号を映像エンジンに出力する。
CCDの場合、飽和信号量の関係でDレンジが狭くなる弊害があったはずだが、CMOSではどうなっているのか。
気になるので今後確認してみたい。


ラインスキップ
恐らく、もっとも嫌われている間引き方式。
5Dmk2やD800が有名。
もっとも、D800では3ラインごとに読みだして画像生成してから最終的に縮小処理をかけているらしく、mk2よりマシという話で、ラインスキップが全て同列で無能というわけではなさそう。
とは言え、ジャギーが出やすいので積極的に使用する理由はない。


ドットバイドット
拡大も縮小もせずに済む領域のみ読みだすことで、後処理を最小限に抑える方式。
処理が軽く、そこそこキレはあるが、画角が狭くなり、絶対的な解像度・ノイズの点で全画素読み出しに及ばない。
D5とか1DXmk2とか5Dmk4の4K対応がこれ。
EOSについては画角について情報が少ない(ほぼない)ので、買ってから後悔した人は多いのでは。

 

というわけで、全画素読み出しがベスト。
次点で画素加算かドットバイドット。
ラインスキップが許されるのは小学s(ry

 

 

それなら、何故全画素読み出しが普及しないのか。

原因は2つ。
1つは信号処理の速度の問題。
もう1つはCMOSの動作速度の問題。


前者は理解しやすく、一般的だと思われる。
考え方は簡単。
4K30pが可能なら、2K120p(FHDと書くのが面倒なので2Kと表記)が可能、という単純計算である。
つまり、1秒間に処理するピクセル数を判断材料にする。
細かいことを言えばイコールにはならないだろうが、大雑把な考え方としてご理解いただきたい。
もっとも、この辺は半導体を物量投入し、消費電力と発熱を二の次にすればどうにかなるレベルの問題である。


問題は後者。
これに関しては、メーカーはマーケティング上マイナスになる事を話さないので、メーカーの発言は正確に理解する必要がある。
ただ、少し考えれば難しいことはない。

例えば・・・
RX100M5の動画は全画素読み出し方式である。
これはある意味正しい。
しかし、メーカーは「全画素読み出しによる4K動画記録が可能」と言っているにすぎない。
したがって、2Kでは(恐らく撮影モードによっては)全画素読み出しではない。

フレームレートの方面から考えると理解しやすい。
4Kのフレームレート上限は30fpsである。
2Kのフレームレート上限は120fpsである。
全画素読み出しする場合、対象となる範囲の画素を全て読み出すので、フレームレートと動画の解像度は関係がない。
つまり、記録解像度が4Kだろうが2Kだろうがそれ以下だろうが、全画素読み出しが可能なのは30fpsまでなのだ。
よって、何らかの方法で読み出す画素数を減らさない限り、120fpsは不可能となる。

余談だが、RX100系ではなくRX10系の場合、同じ世代(RX100M4世代)であってもセンサーの読み出しスピードを60fpsに高速化したと明記しているので、消費電力や発熱などの問題さえクリアできれば、全画素読み出しで60fpsは可能なのかもしれない。
この辺り、発売時の情報を見る限りは読み出しに使用するフロントエンドLSIの性能次第のようだ。
ただし、RX10系の連写速度はRX100系のそれと同じなので、動画に直接関係しないのかもしれない。
しかし、連写速度については映像エンジンの制約の可能性もあるので判断はできない。
ただ、一つ言えることとしては、CMOSから映像エンジンへのデーター転送はフロントエンドLSIの性能で引き上げることが可能、ということは事実のようだ。

ちなみに、CMOSの読み出し速度が積層化で5倍になったというのは受光素子からDRAMへの転送部分であって、最終的にはCMOS内部のDRAMから外部へデーター転送しなくてはならないので、ネックになっているのは外部への転送の部分である。
このチャンネル数を増やしたりクロックを上げたりできれば、一気に高速化が進むであろうが・・・今はまだ布石の段階か。

もう一つ余談だが、SONYEVF搭載機でEVFfpsを60から120に切り替えできるものがある。
これは解像度の低下を伴うと書かれているので、上に書いたような全画素読み出し速度を高速化する話とは別と考えて良い。

 

 

閑話休題
では、全画素読み出しの限界解像度はどのあたりにあるのか。

ただし、業務用・映画用などの桁違いに物量投入されているものを除く。
また、センサーサイズによって駆動周波数限界は違うはずだが、その辺の差異も無視する。


CMOSの高速性ということで考えると、上にも挙げたとおりSONYの積層系のCOMSセンサーがある。
RX10系は上に書いたようにセンサー読み出しが60fps、ただし静止画連写性能は上がっておらず、証拠不足のため保留。
よって、確実なのは全画素読み出しで4K30pのところまで。


他にも、2000万画素クラスのカメラで、全画素読み出しで4K30pを実現しているものはある。
そのため、普通に設計されたCMOSセンサーであれば、この辺り(2000万画素クラス、全画素読み出し30fps)が無難なところに思える。

APS-CセンサーのSONYのαで2400万画素で全画素読み出しのがあったのでは?という話もある。
確認してみると、24fpsなら全画素読み出しで2.4倍の画素数からの縮小処理となるものの、30fpsでは1.6倍の画素数からの縮小処理であるとされている。
画素加算か?と思いきや、単にクロップしているだけのようだ。


ここで大本命。
動画対応が最も進んでいるカメラといえばGH5だろう。
これは全画素読み出しの60p・・・という話をよく聞く。もし事実なら同世代の倍速近い性能を持つことになる。
これはとんでもない話だ。

しかし、GH4との比較で「イメージセンサーからの信号読み出し速度は1.7倍」とされている。
これはimpressやITmediaなどのリリース記事に書かれており、間違いない情報と言っていいだろう。
ちなみにGH4はGH3の2倍となっており、2K60pから4K30pに進歩しているので、公称値通りの変化だった。

このような数値を公表する場合、メーカーは自分に有利になるよう情報を展開するのが常である。
更に、画素数が1600万画素から2000万画素に増えていることを考えれば、4K30pが4K60pになるわけがない。
もっとも、単にフレームレートが1.7倍になったとしても、51fpsであり60fpsには届かない。

また、4Kフォトは60fpsであるのに対し、6Kフォトの記録は30fpsにとどまる。
60fpsでの全画素読み出しに成功しているのであれば、30fpsではなく60fpsを実現していても良いように思う。
もっとも、これはコーデック(H265)や映像エンジンの問題も考えられるが・・・。

さて、どう考えればよいのか。

いろいろ読み返しているうちに、そもそも思い違いをしている事に気づいた。

GH3もGH4も、動画撮影時の読み出し性能が全速力というわけではないのだ。
GH3は連写性能20fps、GH4は40fps。
共に1600万画素なので、読み出し性能は2倍である。矛盾は無い。
とすると、計算上はGH4で全画素読み出し4K30pが可能である(16:9エリアなら47.4fpsまで)ことになるが、映像エンジンにおける縮小処理が追いつかなかったと解釈すべきだろう。
あるいはイメージャーの発熱の問題があったのかもしれない。

なお、GH5は連写性能が12fpsと控えめになったので、この尺度での比較はできない。
が、1.7倍という情報を元に計算すると、40*1.7/2000*1600=54.4fpsとなる。
60fpsに届いていない!と焦るが、これが全領域を読み込んだ場合である。
16:9のエリアに絞れば、64fpsとなるので、無事に目的の性能を達成している。

余談であるが、GH5ではセンサー読み込み速度が2.5倍になり、ローリングシャッター歪が低減されたというメーカーの方の発言がある。
これはどのように解釈すればよいだろうか。
動画撮影に関しての発言だったことを考えれば、画素数が増えたことと60fps化を掛け合わせて2.5倍となっている、という趣旨と判断するのが無難だろう。
2000/1600*60/30=2.5
前述のとおり、イメージャーの全力駆動時の速度は1.7倍であるので、限定された条件下での速度が2.5倍というわけだ。
もっとも、GH4は4K撮影時に全画素読み出しではないので、厳密に言えばこの発言は正確とは言えないが、同じ土俵で比較するならば・・・と考えれば理解はできる。
また、いくら速度が高速化しても画素数が増えて相殺されれば時間軸方向での改善は無いのと等しいので、読み込み頻度が2倍になったと表現するのが親切だろうか。

よって、紆余曲折したが、GH5は全画素読み出しで4K60pを実現していると結論できる。
他社が 2000万画素で24fps、1700万画素で30fps、などと言っている最中に1700万画素で60fpsである。
素晴らしいと言えよう。

他に気になるのは、ピクセルあたりの情報を何ビット取得しているのか?
コンデジ向けの撮像素子であれば10bitや12bitといったところだが、デジタル一眼レフでは14bit記録になって久しいので、12bitか14bitと考えるのが妥当だ。
GH5では10bit記録をサポートしていることからも、今更10bitで読みだしているとは考えにくい。
とはいえ、高速性を求める処理で14bitは重いはずだ。
よって、12bitが妥当なところではなかろうか。

試しに1秒間のデーター量を計算してみると、1700万画素で12bitで60fpsの場合、12.24Gbpsとなる。
これだけの情報量をイメージャーから映像エンジンに転送し続けるのに何ch使っているのだろうか。
駆動周波数やプロトコルや信号のエンコード方法は何だろうか。
機会があれば調べてみたい。

 

 

ということで、GH5で大盛り上がりした話を強制的に戻そう。
ここで、改めてRX100M5の素子の仕様を考えてみたい。

4Kについては、30fpsまでなので全画素読み出しで確定。
2Kについては、30fpsであれば全画素の可能性が残っている。
60fpsであれば画素加算で画素数を半分以下にしなければいけない。
120fpsであれば画素加算で画素数を1/4以下にしなければいけない。
この辺りはフレームレートを変更してエッジを確認すれば判断できると思われる。

4K時の全画素は5472x3080。2x2の画素加算で2736x1540。3x3だと1824x1026.6・・・
2x2は2Kに対して2倍の画素数3x3は僅かに拡大処理が必要となる。
ロジック的には2x2で120fpsまで対応できるはずなので、拡大処理は非採用だと思いたい。

と、ここで気づいたことがある。
ピクセルビニングを行っても、フレームレートに影響するのは垂直方向の情報だけであり、水平方向のビニングはフレームレートに影響しないのだ。
とすると、4K30pを基準にすると、2K120pでは縦解像度を1/4にしなければならないことになる。
ほぼ720pだ。
これはどうしたものかと思ったが、積層CMOSでは 受光素子 > DRAM > 映像エンジン となっているので、DRAMから映像エンジンに転送するのは通常のCMOSの考え方を適用する必要はないはずだ。
よって、2x2のビニングを行ってDRAMに置いたデーターを映像エンジンに流していると考えて問題ない気がする。
 ※でもGH5は通常のCMOSだから180fpsの実効解像度は結構落ちているのでは疑惑・・・

 

ここで、持っているわけではないが、D850の仕様も考えてみる。
FXフォーマットDXフォーマット、共に4Kと2Kの撮影が可能とのこと。
FXフォーマットなら3830万画素、DXなら1644万画素。
前者は画素加算で確定。後者はもしかすると30fpsであれば全画素読み出しの可能性あり。
これはどこかで検証してもらいたいところだ。

 

そういえば、某impressのα7R2のレビューで、画素加算はノイズの点で全画素読み出しに劣ることになっている。
しかし、CMOSの仕様を何度も確認してみたが、ピクセルビニングはノイズを低減する方向に働くはずなのだ。
だとすると、ピクセルビニングでドットバイドット記録したものと、約2倍の画素数から縮小処理したものとでは、後者の方がノイズ低減効果が大きかったということになるのだが、こればかりは検証したわけではないので仮定の域を出ない。
何か良い検証の素材があれば試してみたい。

 

話が飛び飛びになってしまったが、この辺でメモを終了としたい。

RX100M5に搭載されたPP7のS-log2は感度2000以上の設定だが、その感度では9EV程度のDレンジしかないので機能は無駄では? とか、
CMOSピクセルビニングのDレンジは結局どうなるんだ? とか、
RX10M3は「高速フロントエンドLSIの搭載により、動いている被写体を撮影した際に生じるゆがみ(ローリングシャッター現象)を軽減」って書いてあるけど、5倍に高速化したのは受光素子からDRAM部分であって、そこにフロントエンド関係しそうにないんじゃないか? とか、
RX10M3からM4で読み出し速度1.7倍っていうのは連写性能が14コマから24コマにアップしているから納得できるけど、そもそも動画撮影で全画素読み出し4K30pやってるのと矛盾するんじゃ? とか、
http://dc.watch.impress.co.jp/docs/news/439455.html
この5倍速って積層の5倍速に活用されてる技術だよね? とか、
気になることは山盛りですが、今後確認していくことにしようかと。

 


それでは皆さん、ごきげんよう