type
status
date
slug
summary
tags
category
icon
password

学习参考

YUV色彩空间浅析_韭菜大葱馅鸡蛋的博客-CSDN博客_yuv颜色空间
YUV 和RGB 的转化: YUVFormats分成两个格式: YUV420P(YU12和YV12)格式 ​ YV12格式 : YUV420SP(NV21和NV12) 在RGB模式下(如下图), 每一种颜色都是红、绿、蓝三种颜色的混合, 这种模式被称为叠加, 这三种颜色被称为是主颜色(primary colors)。可以通过对主颜色的叠加, 来得到二级颜色(secondary colors), 洋红色(红加蓝),青色(绿加蓝),黄色(红加绿)。在RGB 颜色空间上,当任何一个基色的亮度值为零时,即在原点处,就显示为黑色。当三种基色都达到最高亮度时,就表现为白色。 RGB 模型是目前常用的一种彩色信息表达方式,它使用红、绿、蓝三原色的亮度来定量表示颜色。该模型也称为加色混色模型,是以RGB三色光互相叠加来实现混色的方法,因而适合于显示器等发光体的显示。 Primary and Secondary Colors for RGB RGB 颜色空间可以看作是三维直角颜色坐标系中的一个正立方体。如上右图所示。红绿蓝三色在立方体的三个顶点上;洋红、青、黄色在立方体的立方体的另外三个顶点;黑色在坐标原点;而白色在离原点最远的定点上。在连接黑色与白色的对角线上,是亮度等量的三基色混合而成的灰色,该线称为灰色线。 YUV是编译true-color颜色空间(color space)的种类,Y'UV, YUV, YCbCr, YPbPr 等专有名词都可以称为YUV,彼此有重叠。"Y"表示明亮度(Luminance或Luma),也就是灰阶值,"U"和"V"表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。在 最近十年中,视频工程师发现人眼对色度的敏感程度要低于对亮度的敏感程度。在生理学中,有一条规律,那就是人类视网膜上的视网膜杆细胞要多于视网膜锥细 胞,说得通俗一些,视网膜杆细胞的作用就是识别亮度,而视网膜锥细胞的作用就是识别色度。所以,你的眼睛对于亮和暗的分辨要比对颜色的分辨精细一些。基于此原理, 在使用YUV的时候, 保证Y分量的前提下, 可以舍弃一部分UV分量,来减少对带宽的需求。却也并不会太影响图像的质量。 YUV颜色空间是彩色电视兴起后, 对黑白电视兼容的产物。因为RGB颜色空间中, 每一个像素都需要三个分量的叠加, 就需要三通道的信号,即便是表示黑白像素。 但是在YUV颜色空间中,Y就表示了灰度信息, 也就是黑白图像。所以YUV像素编码, 成功的兼容了黑白电视信号。 能看到这篇文章的朋友肯定都知道RGB颜色模式。可能会像我一样, 总是在想, RGB三色代表了红绿蓝, YUV三个分量就究竟长啥样呢,
YUV色彩空间浅析_韭菜大葱馅鸡蛋的博客-CSDN博客_yuv颜色空间
輝度+色差でテクスチャ圧縮(YUVあるいはYCbCr) - KAYAC engineers' blog
こんにちは。技術部 平山 です。 今回は以前書いた インデクスカラー画像に関する記事、及び、 16bitカラー画像に関する記事 の続編です。 今回はRGBを「輝度」と「色差」に変換してから圧縮する技法を紹介します。特徴は、 GLES2で出せる そこそこ良好な画質 不透明で12bit/画素(実質3/8の圧縮率)、アルファ対応すれば20bit/画素(5/8の圧縮率)。 圧縮は高速でツールを選ばない 変なシェーダなしでバイリニアフィルタ可能 専用コンポーネント/シェーダで面倒くさいのはインデクスカラーと一緒 といったところで、結論は変わらず ETC2で良くない? となります。 なお、すでにUnity用の実装が公開されている ChromaPack と だいたい同じもので、 元テクスチャが2のべき乗(POT:PowerOfTwo)であれば、それを維持できる アルファチャネルへの配慮 といったあたりが少し異なるだけです。 例によって ソースはgithubに公開しております。 また、画質比較がすぐできるように 動くものをWebGLで置いておきました 。 インデクスカラー圧縮は「色の数を減らしてテーブル参照に置き換えること」で、 16bit化は「色に割り当てるビット数を減らすこと」で圧縮を図りました。 いずれも、画素の数、つまり解像度には手をつけていません。 しかし、画素の数を減らせば、つまり解像度を落とせば容量は減るわけで、 それも当然考えるべきでしょう。 実際、現場においては、フォーマットを云々する以前に、 解像度が適正かを真っ先に検討すべきです。 動かす機械の解像度が1920x1080だからといって、 画像の解像度を1920x1080にせねばならないわけではありませんし、 描画する解像度自体をハードウェア解像度より落とすこともよく行われました (個人的にはPS3時代が思い出深いです。性能が足りなくて解像度落としたことを明かす記事はたくさん残っています。 これとか これ とか)。 弊社 東京プリズン においては、 1136x640を標準解像度とし、 画像の多くはその解像度で等倍で出るサイズで用意していました。 1920x1080の機械では拡大されます。 スマホの小さな画面で出すのにそれ以上に精彩な画像を用意しても、 ダウンロード時間、ストレージ使用量、メモリ使用量、処理負荷、 開発時のコスト、等々の面で良くないと考えたからです。 そういうわけで解像度を削るのは大切なことなんですが、 ただ削るのは技術でなく商売の話です。 この記事では技術で解像度を削るお話をいたします。 人間の視覚にはムラがあります。 例えば、赤、緑、青に関して言えば、人間の視覚は緑に敏感で、青には鈍感です。 以前の記事で触れたRGB565という圧縮形式では、赤と青は32段階なのに、緑には64段階用意しています。 人間の視覚特性を考慮してのことです。 では、これを解像度に応用してみましょう。緑だけは元の解像度を保ち、 赤と青は半分に落としてしまう、というのはどうでしょうか?
輝度+色差でテクスチャ圧縮(YUVあるいはYCbCr) - KAYAC engineers' blog
YUV图像Debug

YUV的基本概念

不同于RGB的三原色概念,YUV是编译true-color颜色空间(color space)的种类,是一个系列:Y'UV, YUV, YCbCr,YPbPr等专有名词都可以称为YUV,彼此有重叠。
“Y”表示明亮度(Luminance或Luma),也就是灰阶值,“U”和“V”表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。
notion image
notion image
notion image
notion image
notion image
左上立方体前面Y = 0, 他的正中心是纯黑的, 此处为YUV坐标系的零点。
右上立方体前面Y = 1, 他的正中心是纯白色的;此立方体只是改变了左边立方体的方位。
The YUV color model is the basic color model used in analogue color TV broadcasting. Initially YUV is the re-coding of RGB for transmission efficiency (minimizing bandwidth) and for downward compatibility with black-and white television. The YUV color space is “derived” from the RGB space. It comprises the luminance (Y) and two color difference (U, V) components. The luminance can be computed as a weighted sum of red, green and blue components; the color difference, or chrominance, components are formed by subtracting luminance from blue and from red.
The principal advantage of the YUV model in image processing is decoupling of luminance and color information. The importance of this decoupling is that the luminance component of an image can be processed without affecting its color component. For example, the histogram equalization of the color image in the YUV format may be performed simply by applying histogram equalization to its Y component.
There are many combinations of YUV values from nominal ranges that result in invalid RGB values, because the possible RGB colors occupy only part of the YUV space limited by these ranges. Figure "RGB Colors Cube in the YUV Color Space" shows the valid color block in the YUV space that corresponds to the RGB color cube RGB values that are normalized to [0..1]).
The Y'U'V' notation means that the components are derived from gamma-corrected R'G'B'. Weighted sum of these non-linear components forms a signal representative of luminance that is called luma Y'. (Luma is often loosely referred to as luminance, so you need to be careful to determine whether a particular author assigns a linear or non-linear interpretation to the term luminance).
 
Y'= 0.299*R' + 0.587*G' + 0.114*B' U'= -0.147*R' - 0.289*G' + 0.436*B' = 0.492*(B'- Y') V'= 0.615*R' - 0.515*G' - 0.100*B' = 0.877*(R'- Y') R' = Y' + 1.140*V' G' = Y' - 0.394*U' - 0.581*V' B' = Y' + 2.032*U'
 

YUV分类

 
YUV分类
YUV分类
人眼对Y的敏感度远超于对U和V的明暗,所以有时候可以多个Y分量共用一组UV,这样可以极大节省空间,又可以不太损失质量。三种格式是按照人眼特性制定的。
  • YUV 420,由 4 个 Y 分量共用一套 UV 分量,
  • YUV 422,由 2 个 Y 分量共用一套 UV 分量
  • YUV 444,不共用,一个 Y 分量使用一套 UV 分量
之后的分类是在这基础上,各个分量存储方式的不同。
  • Planar YUV 三个分量分开存放
  • Semi-Planar Y 分量单独存放,UV 分量交错存放
  • Packed YUV 三个分量全部交错存放
notion image
下图是微软官网给出的示范。十字代表亮度点,圆代表色度采样点。
notion image
不同格式的YUV分配请看这篇文章:
 
屏幕后效-镜头光晕的相关资料常用网站链接