2020年05月08日

【エンコード日記】1080p以下なのにレベル5.2は必要か?

↓3)記稿.2020/05/08

> BD規格の上限はレベル4.1である
> つまり、1枚あたり8192枚、1秒あたり245,760枚のマクロブロックに制限される


 1920×1080を単純に16x16のドット数で割ると8100の区画に分解できる
 但し1080は割り切れないので、最下段の分を繰り上げすれば8160までの分解を必要とする
 つまり、1枚あたりに8x8のマクロブロックを追加する余地はほとんど無い

 一方で、使用できる秒間での枚数は
 24枚(195,840)、30枚(244,800)だから、ちょいオーバー程度だ

 これでは、16x16のブロックしか使われていないと断言しても差し支えないだろう
 では、どうして8x8のブロックがBフレームまで使えるようになっているのだろう?
 (とても不思議で止まぬ疑問を点し続けざるを得ない)


> なので、唯一8x8のブロックが働くのは、24フレームの場合だけで有り
> 放送用の30フレームにおいて利用するには、横幅を1440に縮めて利用できている内訳だろう


 (それにしたって、1枚あたりの制限にそぐわない‥どうなっているのか?)

 ‥そこで曲者なのが、インターレース時のマクロブロックの使われ方になる
 単純に縦幅を半分にして使うと考えれば
 その分、IとPに8x8のマクロブロックを利用できる余地がでる‥
 それでもBフレームでの8x8はPフレームからのコピーに置かれるのが大抵だろう
 新規に8x8ブロックを割り当てできる余地があるとはとても思えない

 なので

 基本的には、同じマクロブロックを利用する仕組みをフル回転させていると思って良い
 (その分をカウントから外してると考えるのが自然だろう)
 それの強化版が、参照フレームMix利用ということになる


 ‥ところが不思議なことに
 レベルに付随するプリセットやらの設定度合いを確認すると
 参照フレームMix利用をデフォルトにしているのはより低いレベルでの扱いだ
 (これではプリセットの狙いやら機能推奨での意味がわかりづらい)



1-3)1

> そこはさておき


 ‥1080pより低い解像度を利用するとなると
 その標準の感覚のままではどうしたって分解能が粗くなり
 より少ないマクロブロック数でやりくりすることになる

 (空想力を働かせればすぐに判ることだが)

 オート機能を利用したレベル設定では
 1080pと同じように、16x16を水準にしたマクロブロックの割り当て適性にて判断される
 元々の映像に対して圧倒的に下がった分解能(大きめのブロック)でエンコードするのと同じだ


 ‥例えば540pを挙げて想像してもらえば良い
 つまり、それは32x32のブロックだけでエンコードするのに等しい
 ならば、1080pと同じCRF値を宛がったなら、明らかに必要とされるビットレートは半分だ
 エンコーダーはそれ以上の割り当てを発生させない

 ただでさえ分解能を粗くして
 さらにビットレートの割り当てを増やそうとしないのでは、相当に品質が下がることになる



1-3)2

> では、ビットレートを増やす為にも、より低いCRF値を割り振ればそれで十分だろうか?


 ‥大抵の映像に対してならばそれで十分かも知れない(監視カメラ用途など)
 ところが恐ろしいほどに複雑な映像ともなるとやはり分解能が高いに越したことはない

 しかし、普通に設定しているだけでは
 どうにも4x4どころか8x8すら積極的に使用している向きが無い(ここが謎である)

 つまり、分解の必要率を、すべてのコマに対して平均的に考えるか
 特殊な場面だけの極地的な集中利用でしかないとして考えるかどうかで
 思い込みやら判断の仕方に大きな差が生ずることになる

 (たった1秒の場面の品質を上げる為だけに、レベル5.2が必要かも知れないのだ)
 (そしてそれがいつどこで必要となるかなど誰にもわからない)


 ‥ならば後者の立場を取らざるを得まい
 そしてその分解能をより有効利用させるためのスイッチが
 どうにも、短いGOPとqcomp値に絡んでいるのではないのかと疑わざるを得ないのだ
 つまり、より多く無駄に4x4を発生させたいなら、qcomp(1.00)と言うことかも知れない
 それが本質において増量すると言うことかもしれない(技術者では無いので詳細は知らん)


> ‥それにしたってさらに突っ込んだ解釈をすれば
> 圧縮上の都合を考えれば、つまり増幅しすぎらないように造り込んであるとすれば


 I4x4を効かすにはp4x4を条件とし
 p4x4をコピーの範囲にとどめ、新規には発生させない

 (仮にフル設定にしたとて、長いGOP利用になるほど、それの発生率は低くなりそうだ)

 I8x8を効かすには、p8x8を
 p8x8を効かすには、b8x8の利用を条件とし
 とくにb8x8の新規発生を得るには
 十分なマクロブロックの割り当て余裕と、I4x4の指定を条件とする

 (なんて具合になってそうな空気を感じざるを得ない)



1-3)3

> つまり1080p以下でのレベル5.2利用は、こいつ馬鹿だろうと思われるぐらい
> おまじない程度の要用途極所発生の為の備えとした感覚でしかない


 ‥その時の疑わしきは、BD規格を見てもわかるが
 ビットレートの割り振りを多くすればするほど、反比例して
 マクロブロックの割り当てに意味を成さない傾向にあるのかも知れないと言うことである

 (その時に、より動きに沿う調整用途が、qcomp値かも知れないのだ)


 ‥ちなみに、HEVCでの8Kエンコードともなると
 使えるCUの単位は64x64と32x32だけに制限され、FHDのそれに似かよる‥
 どうにも、ビットレートの割り振り次第で
 必要とするマクロブロック数を増やす傾向には無い‥造りをしていると思わざるを得ない



posted by 木田舎滝ゆる里 at 13:02 | Comment(0) | 春嶺到夏 | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。