0

根据我一直在阅读的参考资料,一些平面 YUV 格式(例如 UYVY)使用包含多个像素数据的宏像素 - 具体而言,在 UYVY 的情况下,每个像素的亮度值以及每隔一个水平像素的 U 和 V 样本.

我没有看到描述的是,当尺寸不能被 2 整除时,视频应该使用什么值。例如,如果帧的像素宽度为奇数,则每行上的最后一个宏像素是否应该换行到下一行,或者是否应该在解码期间假定第二个 Y 值被忽略?Y 值应该设置为多少(例如零)是否有标准?

如果宏像素确实换行,那么最终宏像素在具有奇数像素数的帧大小(例如 51x51)中应该是什么情况?

4

1 回答 1

2

我在 Freenode IRC 上询问了这个问题#ffmpeg,一位名叫 iive 的好心人给了我一些答案。

每一行都是单独处理的,因此宏像素中的值不会从一行到下一行。在奇数帧宽度的情况下,最后一个像素的 Y 值被复制。因此,如果您[123, 45, 67]在行尾有一个 YUV 值为 的像素,则 UYVY 宏像素的值为[45, 123, 67, 123].

每行数据的末尾也可能有填充,以便将每一帧行对齐到边界,以便 SIMD 指令只需要对对齐的数据进行操作。这取决于您使用的确切格式。

于 2014-12-28T21:08:20.583 回答