libva中的图像格式说明

发布时间:2026/11/3 1:10:09
libva中的图像格式说明 主要内容本文主要就libva中的2D图像的格式进行简单说明libva版本位libva-2.6.0(版本号为1.6.0)VAAPI图像类别图像类别(format type)尺寸系数值说明(description)VA_RT_FORMAT_YUV4201.50x00000001常用解码格式VA_RT_FORMAT_YUV4222.00x00000002VA_RT_FORMAT_YUV4443.00x00000004VA_RT_FORMAT_YUV4111.50x00000008VA_RT_FORMAT_YUV4001.00x00000010VA_RT_FORMAT_YUV420_103.00x00000100VA_RT_FORMAT_YUV422_104.00x00000200VA_RT_FORMAT_YUV444_106.00x00000400VA_RT_FORMAT_YUV420_123.00x00001000VA_RT_FORMAT_YUV422_124.00x00002000VA_RT_FORMAT_YUV444_126.00x00004000VA_RT_FORMAT_RGB166.00x00010000VA_RT_FORMAT_RGB324.00x00020000VA_RT_FORMAT_RGBP3.00x00100000VA_RT_FORMAT_RGB32_106.00x00200000VA_RT_FORMAT_PROTECTED0.00x80000000一般不使用VA_RT_FORMAT_RGB32_10BPP8.00x00200000与VA_RT_FORMAT_RGB32_10相同VA_RT_FORMAT_YUV420_10BPP4.00x00000100与VA_RT_FORMAT_YUV420_10相同YUV系列图像格式图像格式(format)占用物理空间(bits)/像素(pix)有效物理空间(bits)/像素(pix)使用平面planes图像格式类型format type值说明(description)YUV24241YUV444libva中不存在此格式仅此提及而已AYUV32321YUV4440x56555941packet格式按照A、Y、U、V的顺序排布444P24243YUV4440x50343434三个平面分别保存Y、U、V数据YV2424243YUV4440x34325659三平面分别保存Y,V,U数据YV3232324YUV4440x32335659四平面分别保存Y,V,U和A数据Y41032321YUV4440x30313459每个像素是四字节小端值A,V,Y,U分别位于值的[31:30], [29:20], [19:10], [9:0]位上Y41664641YUV4440x36313459每个像素采样顺序位A,V,Y,U,每个分量占用16位YUY216161YUV4220x32595559noneVYUY16161YUV4220x59555956noneYVYU16161YUV4220x55595659noneP20816162YUV4220x38303250两个平面分别保存第一个平面保存Y数据,第二平面保存U,V数据对422H16163YUV4220x48323234三平面分别保存Y,U,V数据Y21032201YUV4220x30313259采样顺序为Y,U,Y,V,每个分量占用16位但低6位被忽略Y21632321YUV4220x36313259采样顺序为Y,U,Y,V,每个分量占用16位YV1616161YUV4220x36315659三平面分别保存Y,V,U数据NV1612121YUV422x两个平面分别保存第一个平面保存Y数据,第二平面保存U,V数据对NV6112121YUV422x两个平面分别保存第一个平面保存Y数据,第二平面保存V,U数据对P01032201YUV4200x30313050每个采样数据为16位小端数据低六位被忽略两个平面分别保存第一个平面保存Y数据,第二平面保存U,V数据对P01632321YUV4200x36313050每个采样数据为16位小端数据两个平面分别保存第一个平面保存Y数据,第二平面保存U,V数据对NV1212122YUV4200x3231564E两个平面分别保存第一个平面保存Y数据,第二平面保存U,V数据对NV2112121YUV4200x3132564E两个平面分别保存第一个平面保存Y数据,第二平面保存V,U数据对YV1212123YUV4200x32315659三平面分别保存Y,V,U数据I420IYUV12123YUV4200x30323449三平面分别保存Y,U,V数据I01024153YUV4200x30313049每个采样数据为16位小端数据低六位被忽略三平面分别保存Y,V,U数据422V16161YUV4400x56323234三平面分别保存Y,U,V数据NV1112121YUV4110x3131564e两个平面分别保存第一个平面保存Y数据,第二平面保存U,V数据对411P12121YUV4110x50313134三平面分别保存Y,U,V数据411R12121YUV4110x52313134三平面分别保存Y,U,V数据但是每个第四行为全亮度数据YUV格式内存分布YUV格式每个A、Y、U、V均占用1个字节 Y、U、V混合存储Y,U,V分别都占w*h字节。每行Y,U,V都是各w个。 每个像素有Y,U,V分量都是1个,共3字节,因此一个像素占3字节。 内存分布如下 3*w ------------------------------------ |Y0U0V0Y1U1V1Y2U2V2Y3U3V3... | |... | h |... | | | ------------------------------------ 第一个像素Y0 U0 V0 第二个像素Y1 U0 V0 第三个像素Y2 U1 V1 第四个像素Y3 U1 V1AYUV格式每个A、Y、U、V均占用1个字节 A,Y,U,V混合存储A,Y,U,V分别都占w*h字节。每行A,Y,U,V都是各w个。 每个像素有A,Y,U,V分量都是1个,共4字节,因此一个像素占4字节。 内存分布如下 4*w ------------------------------------ |A0Y0U0V0A1Y1U1V1A2Y2U2V2A3Y3U3V3... | |... | h |... | | | ------------------------------------ 第一个像素A0 Y0 U0 V0 第二个像素A1 Y1 U0 V0 第三个像素A2 Y2 U1 V1 第四个像素A3 Y3 U1 V1YV24格式每个Y、U、V均占用1个字节 Y,U,V分别存储Y,U,V分别都占w*h字节。每行Y,U,V都是各w个。 每个像素有Y,U,V分量都是1个,共3字节,因此一个像素占3字节。 内存分布如下 w ------------------------------------ |Y0Y1Y2Y3... | |... | h |... | | | ------------------------------------ ------------------------------------ |V0V1V2V3... | |... | h |... | | | ------------------------------------ ------------------------------------ |U0U1U2U3... | |... | h |... | | | ------------------------------------ 第一个像素Y0 U0 V0 第二个像素Y1 U0 V0 第三个像素Y2 U1 V1 第四个像素Y3 U1 V1YV32格式每个A、Y、U、V均占用1个字节 A,Y,U,V分别存储,A,Y,U,V分别都占w*h字节。每行A,Y,U,V都是各w个。 每个像素有A,Y,U,V分量都是1个,共4字节,因此一个像素占4字节。 内存分布如下 w ------------------------------------ |A0A1A2A3... | |... | h |... | | | ------------------------------------ ------------------------------------ |Y0Y1Y2Y3... | |... | h |... | | | ------------------------------------ ------------------------------------ |V0V1V2V3... | |... | h |... | | | ------------------------------------ ------------------------------------ |U0U1U2U3... | |... | h |... | | | ------------------------------------ 第一个像素A0 Y0 U0 V0 第二个像素A1 Y1 U1 V1 第三个像素A2 Y2 U2 V2 第四个像素A3 Y3 U3 V3Y410格式每个A、Y、U、V均占用1个字节 A,V,Y,U混合存储,每个像素是四字节小端值 A,V,Y,U分别位于值的[31:30], [29:20], [19:10], [9:0]位上。 内存分布如下 w*4 ------------------------------------ |A0V0Y0U01A2V2Y2U2A3V3Y3U3... | |... | h |... | | | ------------------------------------ 第一个像素A0 Y0 U0 V0 第二个像素A1 Y1 U1 V1 第三个像素A2 Y2 U2 V2 第四个像素A3 Y3 U3 V3Y416格式每个A、Y、U、V均占用1个字节 A,V,Y,U混合存储,A,V,Y,U每个分量占两个字节。 内存分布如下 w*8 ------------------------------------ |A0V0Y0U01A2V2Y2U2A3V3Y3U3... | |... | h |... | | | ------------------------------------ 第一个像素A0 Y0 U0 V0 第二个像素A1 Y1 U1 V1 第三个像素A2 Y2 U2 V2 第四个像素A3 Y3 U3 V3YUYV格式每个Y、U、V均占用1个字节 YUYV格式 Y、U、V混合存储,Y占w*h,U、V分别占w*h/2。每行Y有w个,U、V各w/2个。 两个Y共用一个U和V两个像素有Y分量2个U、V分量各一个共4字节因此一个像素占2字节。 内存分布如下 2*w ---------------------------- |Y0U0Y1V1Y2U2Y3V3... | |... | h |... | | | ---------------------------- 第一个像素Y0 U0 V1 第二个像素Y1 U0 V1 第三个像素Y2 U2 V3 第四个像素Y3 U2 V3YV16格式每个Y、U、V均占用1个字节 Y、U、V分开存储Y占w*hU、V分别都占w*h/2。每行Y有w个U、V都是w/2个。 两个Y共用一个U和V两个像素有Y分量2个U、V分量各一个共4字节因此一个像素占2字节。 内存分布如下 w -------------------- |Y0Y1Y2Y3... | |... | h |... | | | -------------------- |V0V1 | |... | h |... | | | ---------- |U0U1 | |... | h |... | | | ---------- w/2 第一个像素Y0 U0 V0 第二个像素Y1 U0 V0 第三个像素Y2 U1 V1 第四个像素Y3 U1 V1P208格式每个Y、U、V均占用1个字节 Y、U和V分开存储Y占w*hU、V分别占w*h/2。每行Y有w个U、V各w/2个。 两个Y共用一个U和V两个像素有Y分量2个U、V分量各一个共4字节因此一个像素占2字节。 内存分布如下 w -------------------- |Y0Y1Y2Y3... | |... | h |... | | | -------------------- |U0V0U1V1... | |... | h |... | | | -------------------- 第一个像素Y0 U0 V0 第二个像素Y1 U0 V0 第三个像素Y2 U1 V1 第四个像素Y3 U1 V1VYUY格式每个Y、U、V均占用1个字节 V、Y、U、Y混合存储,Y占w*h,U、V分别占w*h/2。每行Y有w个,U、V各w/2个。 两个Y共用一个U和V两个像素有Y分量2个U、V分量各一个共4字节因此一个像素占2字节。 内存分布如下 2*w ---------------------------- |V0Y0U1Y1V2Y2U3Y3... | |... | h |... | | | ---------------------------- 第一个像素Y0 U1 V0 第二个像素Y1 U1 V0 第三个像素Y2 U3 V2 第四个像素Y3 U3 V2Y210格式每个Y、U、V均占用2个字节 Y、U、V混合存储,Y占w*h*2,U、V分别占w*h。每行Y有w个,U、V各w/2个 但每个分量占16位仅仅高十位有效。 两个Y共用一个U和V两个像素有Y分量2个U、V分量各一个共8字节因此一个像素占4字节。 内存分布如下 4*w ---------------------------- |Y0U0Y1V1Y2U2Y3V3... | |... | h |... | | | ---------------------------- 第一个像素Y0 U0 V1 第二个像素Y1 U0 V1 第三个像素Y2 U2 V3 第四个像素Y3 U2 V3Y216格式每个Y、U、V均占用2个字节 Y、U、V混合存储,Y占w*h*2,U、V分别占w*h。每行Y有w个,U、V各w/2个但每个分量占16位。 两个Y共用一个U和V两个像素有Y分量2个U、V分量各一个共8字节因此一个像素占4字节。 内存分布如下 4*w ---------------------------- |Y0U0Y1V1Y2U2Y3V3... | |... | h |... | | | ---------------------------- 第一个像素Y0 U0 V1 第二个像素Y1 U0 V1 第三个像素Y2 U2 V3 第四个像素Y3 U2 V3P010格式每个Y、U、V均占用2个字节 Y、U、V分开存储Y占w*hU、V分别占w*h/4。每两行Y有2w个U、V各w/2个,但每个分量占16位 仅仅高十位有效。 两个Y共用一个U和V两个像素有Y分量2个U、V分量各一个共8字节因此一个像素占4字节。 内存分布如下 w -------------------- |Y0Y1Y2Y3... | |YwYw1... | h |... | | | -------------------- |U0V0U1V1 ..| |.... | h/2 ----------- 第一个像素Y0 U0 V1 第二个像素Y1 U0 V1 第三个像素Y2 U2 V3 第四个像素Y3 U2 V3P016格式每个Y、U、V均占用2个字节 Y、U、V分开存储Y占w*hU、V分别占w*h/4。每两行Y有2w个U、V各w/2个,但每个分量占16位。 两个Y共用一个U和V两个像素有Y分量2个U、V分量各一个共8字节因此一个像素占4字节。 内存分布如下 w -------------------- |Y0Y1Y2Y3... | |YwYw1... | h |... | | | -------------------- |U0V0U1V1 ..| |.... | h/2 ----------- 第一个像素Y0 U0 V1 第二个像素Y1 U0 V1 第三个像素Y2 U2 V3 第四个像素Y3 U2 V3YV12格式每个Y、U、V均占用1个字节 Y、U、V分开存储Y占w*hU、V分别占w*h/4。每行Y有w个U、V各w/4个。 四个Y共用一个U和V四个像素有Y分量4个U、V分量各一个共6字节因此一个像素占1.5字节。 内存分布如下 w -------------------- |Y0Y1Y2Y3... | |YwYw1... | h |... | | | -------------------- ---------- |V0V1 | |... | h/2 ---------- ---------- |U0U1 | |... | h/2 ---------- w/2 第一个像素Y0 U0 V0 第二个像素Y1 U0 V0 第w1个像素Yw U0 V0 第w2个像素Yw1 U0 V0NV12格式每个Y、U、V、R、G、B均占用1个字节 Y、U、V分开存储Y占w*hU、V分别占w*h/4。每行Y有w个U、V各w/4个。 四个Y共用一个U和V四个像素有Y分量4个U、V分量各一个共6字节因此一个像素占1.5字节。 内存分布如下 w -------------------- |Y0Y1Y2Y3... | |YwYw1... | h |... | | | -------------------- ----------- |U0V0U1V1...| |... | h/2 ----------- w/2 第一个像素Y0 U0 V0 第二个像素Y1 U0 V0 第w1个像素Yw U0 V0 第w2个像素Yw1 U0 V0NV21格式每个Y、U、V、R、G、B均占用1个字节 Y、U、V分开存储Y占w*hU、V分别占w*h/4。每两行Y有2*w个U、V各w/4个。 四个Y共用一个U和V四个像素有Y分量4个U、V分量各一个共6字节因此一个像素占1.5字节。 内存分布如下 w -------------------- |Y0Y1Y2Y3... | |YwYw1... | h |... | | | -------------------- |V0U0V1U1...| |... | h/2 ----------- w/2 第一个像素Y0 U0 V0 第二个像素Y1 U0 V0 第三个像素Yw U0 V0 第四个像素Yw1 U0 V0NV16格式每个Y、U、V均占用1个字节 Y、UV分开存储Y占w*hUV平面占w*h。UV平面使用(U,V)数据对的方式储存。 四个Y共用一个U和V四个像素有Y分量4个U、V分量各一个共6字节因此一个像素占1.5字节。 NV61格式的UV顺序与此相反 内存分布如下 w -------------------- |Y0Y1Y2Y3... | |YwYw1... | h |... | | | -------------------- |U0V0U1V1... | |... | |... | h |... | -------------------- w 第一个像素Y0 U0 V0 第二个像素Y1 U0 V0 第三个像素Y2 U1 V1 第四个像素Y3 U1 V1I420格式每个Y、U、V均占用1个字节 Y、U、V分开存储Y占w*hU、V分别占w*h/4。每行Y有w个U、V各w/4个。 四个Y共用一个U和V四个像素有Y分量4个U、V分量各一个共6字节因此一个像素占1.5字节。 内存分布如下 w -------------------- |Y0Y1Y2Y3... | |YwYw1... | h |... | | | -------------------- ---------- |U0U1 | |... | h/2 ---------- ---------- |V0V1 | |... | h/2 ---------- w/2 第一个像素Y0 U0 V0 第二个像素Y1 U0 V0 第w1个像素Yw U0 V0 第w2个像素Yw1 U0 V0I010格式每个Y、U、V均占用1个字节 Y、U、V分开存储Y占w*hU、V分别占w*h/4。每行Y有w个U、V各w/4个,但每个分量占16位 仅仅高十位有效。 四个Y共用一个U和V四个像素有Y分量4个U、V分量各一个共12字节因此一个像素占3字节。 内存分布如下 w -------------------- |Y0Y1Y2Y3... | |YwYw1... | h |... | | | -------------------- ---------- |V0V1 | |... | h/2 ---------- ---------- |U0U1 | |... | h/2 ---------- w/2 第一个像素Y0 U0 V0 第二个像素Y1 U0 V0 第w1个像素Yw U0 V0 第w2个像素Yw1 U0 V0NV11格式每个Y、U、V、R、G、B均占用1个字节 Y、U、V分开存储Y占w*hU、V分别占w*h/2。每行Y有w个U、V各w/4个。 四个Y共用一个U和V四个像素有Y分量4个U、V分量各一个共6字节 因此一个像素占1.5字节。 内存分布如下 w -------------------- |Y0Y1Y2Y3... | |YwYw1... | h |... | | | -------------------- ----------- |U0V0U1V1...| |... | |... | h |... | ----------- w/2 第一个像素Y0 U0 V0 第二个像素Y1 U0 V0 第三个像素Y2 U0 V0 第四个像素Y3 U0 V0422V格式:每个Y、U、V均占用1个字节 422V格式 Y、U、V分开存储Y占w*hU、V分别占w*h/2。每行Y有w个U、V各w/2个。 四个Y共用两个U和V四个像素有Y分量4个U、V分量各两个共8字节因此一个像素占2字节。 内存分布如下 w -------------------- |Y0Y1Y2Y3... | |YwYw1... | h |... | | | -------------------- ----------- |U0U1U2.....| |... | |... | h |... | ----------- ----------- |V0V1V2.....| |... | |... | h |... | ----------- w/2 第一个像素Y0 U0 V0 第二个像素Y1 U1 V1 第W1个像素Yw U0 V0 第W2个像素Yw1 U1 V1RGB系列图像格式图像格式(gotmat)占用物理空间(bits)/像素(pix)有效物理空间(bits)/像素(pix)使用平面planes值说明(description)RGBA323210x41424752noneBGRA323210x41524742noneARGB323210x42475241noneABGR323210x52474241noneRGBX322410x58424752像素的数据顺序位R,G,B,X,每个数据占用16位,X代表无效数据但占用空间BGRX322410x58524742像素的数据顺序位R,G,B,X,每个数据占用16位,X代表无效数据但占用空间XRGB322410x42475258像素的数据顺序位X,R,G,B,每个数据占用16位,X代表无效数据但占用空间XBGR322410x52474258像素的数据顺序位X,R,G,B,每个数据占用16位X代表无效数据但占用空间RGBP242430x50424752三个平面分别包含R,G,B数据BGRP242430x50524742三个平面分别包含B,G,R数据RGB565161610x36314752R,G,B的数据分别位于[15:11], [10:5],[4:0]位上BGR565161610x36314742B,G,R的数据分别位于[15:11], [10:5],[4:0]位上ARGB64646410x34475241像素的数据顺序位A,R,G,B每个数据占用16位ABGR64646410x34474241像素的数据顺序位A,B,G,R每个数据占用16位AR30323210x30335241像素的数据顺序位A,R,G,B数据占用[31:30],[29:20], [19:10],[9:0]AB30323210x30334241像素的数据顺序位A,B,G,R数据占用[31:30],[29:20], [19:10],[9:0]GRAY系列图像格式图像格式(gotmat)占用物理空间(bits)/像素(pix)有效物理空间(bits)/像素(pix)使用平面planes说明(description)Y8881noneY800881noneY1616161每个像素采样Y值使用16位数据储存其他系列图像格式图像格式(gotmat)占用物理空间(bits)/像素(pix)有效物理空间(bits)/像素(pix)使用平面planes说明(description)AI44881八个位中低四位包含Y数据高四位包含A数据注意YUV 4:1:1 是指水平 Y 取样四个点UV 各只取样一个点水平的 Y 和 UV 的取样比例是 4:1也就是Y Y Y Y 一个 U 一个 V ....YUV 4:2:0 是指水平和垂直 Y 各取样两个点UV 各只取样一个点水平的取样比例是 2:1重直的取样比例 2:1也就是Y Y Y Y 一个 U 一个 V ....和 YUV 4:1:1 一样色度和亮度差 1/2 * 1/2 1/4只是取样的方式不同。同理YUV440和YUV422也是类似。相关格式的转换问题可以参考ffmpeg的libswscale的rgb2yuv.c,input.c,rgb2rgb_template.c.utils.c等文件

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询