- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
YUV平面格式
YUV平面格式
宽度:4像素
高度:2像素
共:4*2=8个点
YUV映射算法
//缓冲区指针
unsigned char* yBuffer;
unsigned char* uBuffer;
unsigned char* vBuffer;
//每条扫描线占的字节数
unsigned int yBufferLineSize;
unsigned int uBufferLineSize;
unsigned int vBufferLineSize;
//行偏移(垂直方向取样偏移)
unsigned int rOffset;
//列偏移(水平方向取样偏移)
unsigned int cOffset;
for(unsigned int i=0;inHeight;i++){
//定位到行
unsigned int*yRow = yBuffer + i*yBufferLineSize;
unsigned int*uRow = uBuffer + (irOffset)*uBufferLineSize;
unsigned int*vRow = vBuffer + (irOffset)*vBufferLineSize;
for(unsigned int j=0;inWidth;j++){
//定位到点
unsigned int*yCell = yRow + j;
unsigned int*uCell = uRow + (jcOffset);
unsigned int*vCell = vRow + (jcOffset);
//将yuv转换为rgb点
}
}
PIX_FMT_YUV420P, /// planar YUV 4:2:0, 12bpp, (1 Cr Cb sample per 2x2 Y samples)
原像素点YUV值
[Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]
[Y5 U5 V5] [Y6 U6 V6] [Y7 U7 V7] [Y8 U8 V8]
4:2:0并不意味着只有Y,Cb而没有Cr分量。它指得是对每行扫描线来说,只有一种色度分量以2:1的抽样率存储。相邻的扫描行存储不同的色度分量,也就是说,如果一行是4:2:0的话,下一行就是4:0:2,再下一行是4:2:0...以此类推。对每个色度分量来说,水平方向和竖直方向的抽样率都是2:1(每两个点取一个色度分量),所以可以说色度的抽样率是4:1。第一行U0和U2,第二行V5和V7被取样,而Y分量全部被取样。
数据存储格式
Y0 Y1 Y2 Y3 Y5 Y6 Y7 Y8
U0 U2
V5 V7
映射出的点YUV值
[Y0 U0 V5] [Y1 U0 V5] [Y2 U2 V7] [Y3 U2 V7]
[Y5 U0 V5] [Y6 U0 V5] [Y7 U2 V7] [Y8 U2 V7]
一个U(Cr)和一个V(Cb)采样每2*2=4个Y采样,可以表示4个点;
平均每个点占用的字节数=(8*1+8*1+8*4)/4 = 12(bpp)。
映射算法
rOffset = 1;
cOffset = 1;
行偏移和列偏移都是1
每个Y被访问一次,U和V被访问4次
PIX_FMT_YUV422P, /// planar YUV 4:2:2, 16bpp, (1 Cr Cb sample per 2x1 Y samples)
原像素点YUV值
[Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]
[Y5 U5 V5] [Y6 U6 V6] [Y7 U7 V7] [Y8 U8 V8]
对每个色度分量来说,水平方向抽样率是2:1,垂直方向抽样率是1:1。
数据存储格式
Y0 Y1 Y2 Y3 Y5 Y6 Y7 Y8
U0 U2 U5 U7
V1 V3 V6 V8
映射出的点YUV值
[Y0 U0 V1] [Y1 U0 V1] [Y2 U2 V3] [Y3 U2 V3]
[Y5 U5 V6] [Y6 U5 V6] [Y7 U7 V8] [Y8 U7 V8]
一个U(Cr)和一个V(Cb)采样每2*1=2个Y采样,可以表示2个点;
平均每个点占用的字节数=(8*1+8*1+8*2)/2 = 16(bpp)。
映射算法
rOffset = 1;
cOffset = 0;
每个Y被访问一次,U和V被访问2次
PIX_FMT_YUV444P, /// planar YUV 4:4:4, 24bpp, (1 Cr Cb sample per 1x1 Y samples)
原像素点YUV值
[Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]
[Y5 U5 V5] [Y6 U
文档评论(0)