zoukankan      html  css  js  c++  java
  • iOS开发-YUV颜色格式

    百度百科上面的介绍

    YUV主要用于优化彩色视频信号的传输,使其向后相容老式黑白电视。与RGB视频信号传输相比,它最大的优点在于只需占用极少的频宽(RGB要求三个独立的视频信号同时传输)。
    其中“Y”表示明亮度(Luminance或Luma),也就是灰阶值;而“U”和“V” 表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。
    “亮度”是透过RGB输入信号来建立的,方法是将RGB信号的特定部分叠加到一起。
    “色度”则定义了颜色的两个方面─色调与饱和度,分别用Cr和Cb来表示。
    Cr反映了RGB输入信号红色部分与RGB信号亮度值之间的差异。而Cb反映的是RGB输入信号蓝色部分与RGB信号亮度值之间的差异。
    采用YUV色彩空间的重要性是它的亮度信号Y和色度信号U、V是分离的。如果只有Y信号分量而没有U、V分量,那么这样表示的图像就是黑白灰度图像。彩色电视采用YUV空间正是为了用亮度信号Y解决彩色电视机与黑白电视机的兼容问题,使黑白电视机也能接收彩色电视信号。

     RGB 《=》 YUV:

         Y   =   0.299   R     +   0.587   G   +   0.114   B  
        U   =   -   0.1687   R   -   0.3313   G   +     0.5   B   +   128  
        V   =   0.5   R       -   0.4187   G   -   0.0813   B   +   128  
       
        R   =   Y   +   1.402   (V   -   128)  
        G   =   Y   -   0.34414   (U   -   128)   -   0.71414   (V   -  128)  
        B   =   Y   +   1.772   (U   -   128)  

    YUV 为 h264的颜色空间的一种。

    当对RGB进行压缩时,显然利用不上人类视觉系统对亮度比色度更敏感的特性,所以需要进行RGB向YUV的转换。可以说RGB是用来在LCD、CRT上显示用的,而YUV更便于视频信号的压缩、传输和存储

    参考

    YUV数据格式

    YUV解析

    H264解码出YUV帧

    iOS渲染YUV

    OpenGL与YUV

  • 相关阅读:
    FineReport——函数
    FineReport——插入行策略
    FineReport——JS二次开发(CSS改变控件样式)
    FineReport——JS二次开发(下拉框)
    汽车系统
    Ubuntu Software setup
    Win 10 乱码 & 字体横过去了
    U-boot 2016.11 代码结构 dra7xx
    samba Ubuntu 16.04
    ftp Ubuntu16.04
  • 原文地址:https://www.cnblogs.com/loying/p/5275160.html
Copyright © 2011-2022 走看看