首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >YUVFormat.YUV_420和ColorSpace.YUV420有什么区别?

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

Stack Overflow用户
提问于 2014-10-10 17:25:23
回答 2查看 3.5K关注 0票数 0

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

因此,我不得不假设,虽然YUVFormat.YUV_420最有可能是YUV420P,但ColorSpace.YUV420是YUV420的另一种变体。有没有人知道它是哪种变体,这样我就可以找到一个转换例程?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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

票数 5
EN

Stack Overflow用户

发布于 2014-10-19 01:09:14

我想你得到的是yuv420sp而不是yuv420p。这将解释图像中的水平条。半平面格式交错U和V平面。

代码语言:javascript
复制
// 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]);   
} 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26304859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档