0

私が読んでいる参考文献によると、一部の平面 YUV 形式 (UYVY など) は、複数のピクセルのデータを含むマクロピクセルを使用します。具体的には、UYVY の場合、ピクセルごとの輝度値と、1 つおきの水平ピクセルの U および V サンプルです。 .

説明されていないのは、寸法が 2 で割り切れない場合にビデオに使用する値です。たとえば、フレームのピクセル単位の幅が奇数の場合、各行の最後のマクロピクセルが次の行に折り返されるかデコード中に 2 番目の Y 値を無視する必要がありますか? その Y 値を何に設定するか (ゼロなど) の基準はありますか?

マクロピクセル折り返される場合、51x51 などの奇数ピクセル数のフレーム サイズの最終マクロピクセルはどうなるでしょうか?

4

1 に答える 1

2

これについて#ffmpegFreenode IRC で質問したところ、iive という親切な人がいくつか答えてくれました。

各行は個別に処理されるため、ある行から次の行へのマクロピクセルの値の折り返しはありません。フレーム幅が奇数の場合、最後のピクセルの Y 値が複製されます。したがって、[123, 45, 67]行末に の YUV 値を持つピクセルがある場合、UYVY マクロピクセルの値は[45, 123, 67, 123].

また、各フレーム ラインを境界に揃えるために、各ラインのデータの最後にパディングがある場合もあります。これにより、SIMD 命令は、揃えられたデータのみを操作する必要があります。これは、使用している正確な形式によって異なります。

于 2014-12-28T21:08:20.583 に答える