对yuv存储格式中的yuv420p和yuv420sp的理解

一.对yuv的认识

  yuv是一种颜色编码系统,它将图像的亮度和色度分离开来。y表示亮度,即黑白信息;uv表示色度,即颜色信息。yuv常用于视频压缩和传输中,因为它可以更有效地表示人眼对亮度和色度的敏感度不同的特性。人眼对亮度更加敏感,而对色度则不那么敏感。这就是为什么在视频压缩中,可以通过减少色度分量的采样率以减少数据量,而不会对观看体验产生明显的影响。

  yuv中最常用的采样方式是4:2:0,在这种采样方式下,亮度分量y和色度分量uv的比例位4:1:1,即每4个亮度分量共享1组色度分量。而yuv的存储格式主要分为三种:

  • planar:平面格式,指先存储所有的y分量,然后再存储u分量和v分量,其中uv的顺序可以互换,就像这个样子y1y2y3...u1u2u3...v1v2v3......
  • packed:打包格式,指每个像素点的 y、u、v 分量是连续交替存储的,就像这个样子y1u1v1y2u2v2y3u3v3......
  • semi-planar:半平面格式,指先存储所有的y分量,然后uv分量交替存储,其中uv分量的顺序可以互换,就像这个样子y1y2y3...u1v1u2v2u3v3......

二.yuv420p和yuv420sp的分类以及它们的区别

  yuv420p是平面格式,而yuv420sp是半平面格式,它们都是先存储完所有的y分量,然后再存储uv分量。区别在于:yuv420p是先存储完所有的u分量,然后再存储v分量,或者反过来。而yuv420sp是uv/vu交替存储。常见的基于yuv4:2:0的采样格式如下表:

  yuv4:2:0采样 yuv4:2:0采样
yuv420p yv12格式 yu12格式/i420格式
yuv420sp nv12格式 nv21格式

  见下图,是yuv420p的存储示意图:

       

  图中先存储完所有的y分量后再存储u和v分量,其中u在v的前面,这也称为yu12/i420格式,如果先v再u的话,就是yv12格式。

  见下图,再来看一下yuv420sp的存储示意图:

       

   图中先存储完所有的y分量,然后交替存储u和v分量,其中u在v的前面,这种方式也称为nv12格式,如果先v再u,则称为nv21格式。

posted @ 2024-02-22 15:48  故乡的樱花开了  阅读(212)  评论(0编辑  收藏  举报