我已经搜索并阅读了大量的资料来源,但我似乎找不到答案。我认为这些“类型”是相等的,但是当我使用jcodec将h264解码为字节时,我假设数据输出为YUV 4:2:O Planar (YUV420P);这是我的VPX编码器的预期输入类型。VPX编码的图像如下所示:

因此,我不得不假设,虽然YUVFormat.YUV_420最有可能是YUV420P,但ColorSpace.YUV420是YUV420的另一种变体。有没有人知道它是哪种变体,这样我就可以找到一个转换例程?
发布于 2014-10-10 19:49:55
一种格式将u和v数据交织成完整的扫描线。另一个写入整个U,然后写入整个v数据。这些都是整个Y图像的结果。yuv420和yuv420p指定了哪个布局。yuv420写入所有u,然后写入所有v数据,yv420p逐行交错u和v数据扫描线。该图像可能有点误导,因为数据大小足够小,不能显示大块的u和v像素。

我相信yuv420p会干扰U1U2U3 V1V2V3 U4U5U6 V4V5V6
发布于 2014-10-19 01:09:14
我想你得到的是yuv420sp而不是yuv420p。这将解释图像中的水平条。半平面格式交错U和V平面。
// 420p to 420sp
int frameSize = width * height;
int qFrameSize = frameSize / 4;
for (int i = 0; i < (qFrameSize); i++) {
input[frameSize + i*2] = (input[frameSize + qFrameSize + i]);
input[frameSize + i*2 + 1] = (input[frameSize + i]);
} https://stackoverflow.com/questions/26304859
复制相似问题