NV12 format and UV plane

守給你的承諾、 提交于 2019-12-23 10:14:05

问题


i am a little confused about the NV12 format. i am looking the this page to understand the format. What i currently understand is that if you have an image or video of 640 x 480 diminsion then the Y plane will be having 640 x 480 bytes and U and V both planes have 640/2 x 480/2. It does not mean that U plane have 640/2 x 480/2 and V plane have 640/2 x 480/2 both have only 640/2 x 480/2 bytes. so the total number of bytes in out buffer array will be. 2 is multiplied with (640/2) * (480/2) because uv plane will take two bytes.

byte [] myArray new byte[(640 * 480) + (2 * (640/2) * (480/2)) ];

so the question is that i am understanding it in a right way? and am i making the byte array in the format that specify the NV12 format.


回答1:


The NV12 format is subsampled as 4:2:0

The total size of a frame is W x H x 3 / 2 Where W is width and H is height.

1 frame in vga resolution is 460800 bytes, where

  • Y-part is 640x480 bytes
  • Cb-part is 640*480/4=76800 bytes
  • Cr-part is 640*480/4=76800 bytes

Hope this answers your question...



来源:https://stackoverflow.com/questions/17487048/nv12-format-and-uv-plane

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!