繁体   English   中英

YUVFormat.YUV_420 和 ColorSpace.YUV420 有什么区别?

[英]What is the difference between YUVFormat.YUV_420 and ColorSpace.YUV420?

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

所以我必须假设,虽然 YUVFormat.YUV_420 很可能是 YUV420P,但 ColorSpace.YUV420 是 YUV420 的其他一些变体。 有谁知道它是哪个变体,以便我可以找到转换例程?

一种格式将 u 和 v 数据交错以形成完整的扫描线。 另一个写入整个 U 然后整个 v 数据。 这些是在整个 Y 图像之后。 yuv420 和 yuv420p 指定哪个布局。 yuv420 写入所有 u 然后所有 v 数据,yv420p 逐行扫描 u 和 v 数据扫描。 该图像可能有点误导,因为数据大小足够小,无法显示大块 u 和 v 像素。

yuv420 非 P

我相信 yuv420p 会交错 U1U2U3 V1V2V3 U4U5U6 V4V5V6

我认为你得到的是 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]);   
} 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM