当前位置: 首页 > news >正文

六盘水市诚信网站建设公司推广方式都有哪些

六盘水市诚信网站建设公司,推广方式都有哪些,越南的网站建设,做图模板网站有哪些文章目录YUV基础介绍:不同采样YUV格式的区别为什么要使用YUV格式呢?YUV的存储方式Android中的YUV_420_888附录:YUV基础介绍: YUV在做手机图像或者视频处理的时候会经常用到的一个格式,用此文来记录YUV相关介绍&#xf…

文章目录

        • YUV基础介绍:
        • 不同采样YUV格式的区别
        • 为什么要使用YUV格式呢?
        • YUV的存储方式
        • Android中的YUV_420_888
        • 附录:

YUV基础介绍:

YUV在做手机图像或者视频处理的时候会经常用到的一个格式,用此文来记录YUV相关介绍,让项目中用到YUV不再对这个概念懵逼。

YUV这个名名词是什么意思的:参考维基百科:

The YUV model defines one luminance component (Y) meaning physical linear-space brightness, and two chrominance components, called U (blue projection) and V (red projection) respectively. It can be used to convert to and from the RGB model, and with different color spaces.

链接:
外链YUV维基百科介绍:https://en.wikipedia.org/wiki/YUV
国内可访问:https://encyclopedia.thefreedictionary.com/YUV

YUV 作为一种图像编码格式,Y表示亮度分量,UV表示色度信息:U表示蓝色部分投影,V表示红色部分投影。

不同采样YUV格式的区别

YUV在日常使用的时候会有很多格式,YUV420,YUV444,YUV422,NV21,NV12,这些格式的区别的什么呢?
下图是一张采样图:
**YUV444**
参考:https://en.wikipedia.org/wiki/Chroma_subsampling
上面的图像中展示了不同的数字所表示的采样格式的不同:

  • YUV4444:每一个Y分量对应一个像素,每个Y分别对应单独的U和V,因此YUV444每个像素占用的图片大小为 8bit+8bit+8bit=24bit(3byte)。

  • YUV422:水平方向上每两个Y分量对应一对UV分量,则每个像素占用的大小就是8bit+4bit+4bit=16bit。(1byte+1/2byte+1/2byte=2byte)

  • YUV420:420在水平和垂直方向都进行了采样,每一个Y分量对应1/4哥UV分量,因此表示一个像素需要的大小为1byte+1/4byte+1/4byte=1.5byte

    参考链接:https://en.wikipedia.org/wiki/YUV#Y%E2%80%B2UV420p_(and_Y%E2%80%B2V12_or_YV12)_to_RGB888_conversion

  • I420格式:
    I420是一种yuv420采样的数据格式,存储的时候按照y、u、v的顺序依次存储
    YUV 4:2:0 (I420/J420/YV12)
    I420
    It has the luma “luminance” plane Y first, then the U chroma plane and last the V chroma plane.
    The two chroma planes (blue and red projections) are sub-sampled in both the horizontal and vertical dimensions by a factor of 2. That is to say, for a 2×2 square of pixels, there are 4 Y samples but only 1 U sample and 1 V sample.
    This format requires 4×8+8+8=48 bits per 4 pixels, so its depth is 12 bits per pixel.

  • YV12格式:
    YV12格式也是一种YUV420采样格式使用plane格式存储,只不过在存储时按照Y,V,U顺序存储。
    YV12
    YV12 is exactly like I420, but the order of the U and V planes is reversed. In the name, “YV” refers to the plane order: Y, then V (then U). “12” refers to the pixel depth: 12-bits per pixel as for I420.

参考:https://wiki.videolan.org/YUV

  • NV21和NV12格式:
    NV21和NV12是YUV420编码方式的一种,采样使用4:2:0的方式进行采样,只不过在存储的时候使用UV交错存储,是一种YUV420sp格式。只不过在UV分量的保存上顺序不同
    NV21:存储顺序是先存Y,再VU交替存储,NV21存储顺序是先存Y值,再VU交替存储:YYYYVUVUVU
    NV12:存储顺序是先存Y值,再UV交替存储:YYYYUVUVUV,以 4 X 4 图片为例子,占用内存为 4 X 4 X 3 / 2 = 24 个字节

参考:https://blog.csdn.net/byhook/article/details/84037338

为什么要使用YUV格式呢?

YUV相比于RGB的优势
数据量减少:RGB一个像素需要3byte,RGB每一个数据都需要1byte(8bit),一张长width,高height的图片,需要的空间为widthheight3byte,而对于YUV420格式,所需要的空间就为widthheight1.5byte,占用空间减少了一半。
向前兼容黑白电视:YUV中的Y分量可以兼容之前不支持彩色画面的设备。
不足:
采样带来图像画质的降低

YUV的存储方式

  • Planar (平面格式):y, u, v使用三个平面存储 ,例如:第0个平面表示y分量数据,第1个平面表示u分量数据,第2个平面表示v分量数据,这种存储名称以p结尾,例如:420p。
  • Semi-Planar:Y分量在单独的平面中存放,uv分量在一个平面中交错存放,这种存储名称以sp结尾,420sp。
  • Packed: YUV数3个分量全部交错存储。Y读取他周围的UV分量数据,以YUY2为例,存储方式为:Y0U0Y1V0 Y2U1Y3V1。

Android中的YUV_420_888

This format is a generic YCbCr format, capable of describing any 4:2:0 chroma-subsampled planar or semiplanar buffer (but not fully interleaved), with 8 bits per color sample.
上面的格式是一种通用的YU(cb)V(cr)格式,可以用来表示任何420采样的平面或者半平面数据,但是不能用来表示YUV都是交错(不支持Packed格式的数据)。

这里如何区分是平面还是半平面的数据的呢,可以使用plane属性中的getPixelStride去区分,1表示是plane因为相同类型数据存储是相邻的,2的话就表示相同数据会间隔存储,表示存储是交错的,即sp格式。

plane #0 is always Y, plane #1 is always U (Cb), and plane #2 is always V (Cr).
0平面表示Y平面,1平面表示U平面,2平面表示V平面。
The Y-plane is guaranteed not to be interleaved with the U/V planes (in particular, pixel stride is always 1
Y平面不会和UV平面交错,同时Y平面的Pixel stride总是1。
The U/V planes are guaranteed to have the same row stride and pixel stride (in particular, uPlane.getRowStride() == vPlane.getRowStride() and uPlane.getPixelStride() == vPlane.getPixelStride(); ).
同时U/V平面的rowstride和pixelstride相同。
名词解释:

  • pixelStride:表示同一个颜色分量之间的步长。取值1的话那同一个颜色分量的index为0、1、2、3、4、…,取值为2的话那同一个颜色分量的index为0、2、4、6。
  • rowStride:表示该平面每行数据的宽度。(byte为单位)

在ARCore和华为ArEngine获取相机数据的时候,返回的数据格式就是上面的YUV_420_888格式。
Android中如果pixelStride的size时2,那么格式就是YUV420SP,420sp中获取到的数据uv分量交替存储。

附录:

获取到的三个平面plane[0]+plane[1]就是NV12,plane[0]+plane[2]就是NV21:
https://blog.csdn.net/lbknxy/article/details/54633008
根据pixelstride区分存储方式,解析uv数据:
https://blog.csdn.net/weekend_y45/article/details/125079916

http://www.shuangfujiaoyu.com/news/8382.html

相关文章:

  • 做整形网站多少钱优化方法
  • 网站建设资金投入seo zac
  • 个人网站建设的背景域名申请
  • 深圳设计公司取名杭州百度整站优化服务
  • 音乐网站怎么做学生制作个人网站
  • 阿里巴巴官方网站营销类网站
  • 苏州做网站公司有哪些网站运营工作的基本内容
  • 制作政府网站要求如何提高百度关键词排名
  • 建设部执业考试网站点击seo软件
  • 图书馆建设投稿网站优化防疫措施+科学精准防控
  • 免费企业网站制作海外互联网推广平台
  • mvc做网站网络推广属于什么行业
  • 临近做网站网站建设教程
  • 2016网站建设报价表360社区app
  • 武汉做便宜网站建设在线制作网页网站
  • 深圳营销型网站建设设计公司seo技术自学
  • 抖音短剧推广怎么做北京网优化seo优化公司
  • 宁夏网站建设活动宣传推广方案怎么写
  • 网站做字体滚动怎么做的公关公司排名
  • 家政网站建设方案口碑营销的前提及好处有哪些?
  • 简单网页的制作长沙官网seo技术厂家
  • 女頻做的最好的网站网页设计模板html代码
  • 小说网站的网编具体做哪些工作上优化seo
  • 厦门公司网站开发长沙建站优化
  • 网站建设中怎么写域名注册要多少钱
  • cms 政府网站 模板 div css百度账号管理
  • 互动网站建设多少钱沧州网络推广公司
  • 二手车网站的建设佛山优化推广
  • 做算命类网站违法吗天津seo网站管理
  • 印度网站后缀百度竞价的优势和劣势