• 【图像处理与医学图像处理】NV12与YV12的区别


    用videoCapture和IAMStreamConfig拿到的支持的格式列表。
    发现支持2中图像格式,YV12和NV12。
    具体是怎么样的内存分布不知道。查了些文档。自己修改了几个图。看出了点端倪

    YV12
    先看看 http://www.fourcc.org/yuv.php 上比较标准的定义:

    YV12

    This is the format of choice for many software MPEG codecs. It comprises an NxM Y plane followed by (N/2)x(M/2) V and U planes.

      Horizontal Vertical
    Y Sample Period 1 1
    V Sample Period 2 2
    U Sample Period 2 2

      

    Positive biHeight implies top-down image (top line first)

    这种图片其实不是很清楚的, 搞了一个非常明白的



    这个wiki上面的图片示例非常明了,第一个图标识了图片真正像素的表示。
    可 以看到Y1, Y2, Y7, Y8这些物理上相近的4个像素公用了同样的U1和V1,相似的Y3,Y4,Y9,Y10用的就是U2和V2。这里不同的颜色把这个特性刻画的非常形象,一 目了然。Impressive!!一直觉得教育,或者说基础的教育一定要以这样的模式来阐述这样才能知其所以然,那种盲目的抄了一本国外的教材或者合并了 几本破书的教材不是教人是毁人。 说远了,言归正传。之前说的是物理像素的表示,在内存中的分布则是一个数组,顺序就是YUV。所以如果知道所要表现的取悦的大小的话很容易查找到具体的YUV在数组中的位置。

    NV12
    NV12和YV12稍有不同,区别就在UV的位置。再看一张图就很明了了!

    在YV12中U和V都是连续排布的,而在NV12中,U和V就交错排布的。看到内存中的排布很清楚,先开始都是Y,之后的都是U1V1U2V2的交错式排布。对于像素的压缩的效果是一样的。但是可能是硬件加速的支持与否。
  • 相关阅读:
    编译原理 First集和Follow集的求法
    编译原理——算符优先分析法详解
    api.js(接口文件)
    addmul.wxs(保留两位小数-将手机号中间4位数变成*-处理时间戳)
    插槽的使用
    scroll-view小程序侧边栏(点击加载右侧商品)
    Array.of
    es6解构赋值默认值结合使用
    ES6 允许为函数的参数设置默认值,即直接写在参数定义的后面。
    es6 数组的新方法 some filter indexOf 展开运算符... let const
  • 原文地址:https://www.cnblogs.com/huty/p/8517641.html
Copyright © 2020-2023  润新知