XDM标准XDM_BufDesc数据结构定义

来源:互联网 发布:单片机元器件清单 编辑:程序博客网 时间:2024/04/30 05:36

XDM_BufDesc结构体定义在xdm.h中:

typedef struct XDM_BufDesc{

    // 结构体维护的Buffer的数量,视频处理中可认为是帧的数量。不得大于XDM_MAX_IO_BUFFERS

    XDAS_Int32 numBufs;  

  
   //  存放XDM_BufDesc维护的每个Buffer的大小,单位8bit
   //  即bufSize[n]等于 第n个Buffer的大小 n 小于numBufs-1

    XDAS_Int32* bufSizes;  

   // 指向一个指针数组,该数组每个元素指向XDM_BufDesc维护的每个Buffer
   // 对于视频处理,第n帧的数据存放在地址 XDM_BufDesc->bufs[n]

   XDAS_Int8** bufs;       

}XDM_BufDesc;

 XDM_BufDesc完整描述了n帧图像数据组成的一段视频流。

对于视频应用,可以认为XDM_BufDesc 完整描述了 XDM_BufDesc.numBufs 帧图像组成的一段视频流(输入或输出), 至于XDM_BufDesc有多少帧,则由arm端的程序控制。每一个buf(即每一帧)中数据是怎么存放的呢?

如果是YUV 4:2:0,假设一帧为 2*2像素分辨率,XDM_BufDesc.numBufs = 4 ; (4帧),则内存中数据如下:

XDM_BufDesc.bufSizes[0]=XDM_BufDesc.bufSizes[1]=XDM_BufDesc.bufSizes[2]=XDM_BufDesc.bufSizes[3]=8

XDM_BufDesc.bufs[0] 指向第1帧的 U0 Y0  V1 Y1  U2 Y2  V3 Y3
XDM_BufDesc.bufs[1] 指向第2帧的 U0 Y0  V1 Y1  U2 Y2  V3 Y3

XDM_BufDesc.bufs[2] 指向第3帧的 U0 Y0  V1 Y1  U2 Y2  V3 Y3
XDM_BufDesc.bufs[3] 指向第4帧的 V3 Y0  V1 Y1  U2 Y2  V3 Y3

0 0
原创粉丝点击