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

【UI】像素颜色格式

目录

1、RGB 格式系列

格式详解

2、​YCbCr格式系列

可视化理解色度抽样

3、对比

4、BCSH

5、JPEG图片压缩

1. 色彩空间转换与色度抽样 (Color Space Conversion & Chroma Subsampling)

2. 分块 (Tiling)

3. 离散余弦变换 (DCT - Discrete Cosine Transform)

4. 量化 (Quantization) - ​​有损压缩的核心​​

5. 熵编码 (Entropy Coding) - ​​无损压缩步骤​​

6、屏幕色差影响因素

Gamma参数


1、RGB 格式系列

RGB:通过混合红(Red)、绿(Green)、蓝(Blue)三种原光来构成所有颜色。这是显示器、传感器等硬件设备直接使用的模式。

格式详解

这类格式直接存储红、绿、蓝每个通道的数值。

格式

含义

每像素位数 (bpp)

特点与用途

​RGB888​

红、绿、蓝每个通道各用​​8位​​(1字节)表示。

​24位​​ (3字节)

​真彩色​​。最常见的图片格式,能表示约1677万色(2²⁴)。无透明度通道。例如:一张1920x1080的图片约占用 1920 * 1080 * 3 ≈ 6.2 MB内存。

​ARGB8888​

在RGB888基础上增加一个​​8位透明度通道Alpha​​(A)。

​32位​​ (4字节)

​带透明度的真彩色​​。A通道表示像素的不透明度(0为完全透明,255为完全不透明)。常用于带UI元素、图标、图形层的合成。内存占用比RGB888高33%。

​RGB565​

红通道用​​5位​​,绿通道用​​6位​​,蓝通道用​​5位​​表示。

​16位​​ (2字节)

​高彩色​​。一种压缩的RGB格式,用于极大节省内存(相比RGB888节省50%)。能表示65536色(2¹⁶),颜色数量较少,可能有轻微色带。​​广泛应用于嵌入式系统、微控制器和早期手机​​,因为对内存和带宽要求低。

2、​YCbCr格式系列

YCbCr:将一个颜色信息分离为​​亮度(Luma, Y)​​ 和​​色度(Chroma, Cb & Cr)​​ 两部分。亮度Y代表黑白信息,决定了图像的清晰度和对比度。色度Cb和Cr代表颜色信息(蓝色差和红色差)。

这是YCbCr格式的核心优势。人眼对亮度细节(Y)的敏感度远高于对颜色细节(Cb, Cr)的敏感度。因此,为了节省带宽和存储空间,可以​​对色度信息进行“降采样”​​,即用更少的像素来存储颜色信息,而保持亮度的完整分辨率。这就是4:4:44:2:24:2:0等表示法的由来。

这类格式存储亮度和色度信息,并可通过色度抽样大幅节省带宽(面向视频处理与压缩)。

格式(采样方式)

含义

每像素位数 (约)

特点与用途

​YCbCr444​

​无降采样​​。Y, Cb, Cr三个通道具有​​完全相同​​的分辨率。

​24位​​ (3字节)

质量最高,等同于RGB888的信息量。常用于视频制作母带、高质量图像编辑中间格式和无损压缩。​​带宽需求与RGB888相同​​。

​YCbCr422​

​水平方向2:1降采样​​。每两个相邻的像素​​共享一组CbCr​​值。亮度Y仍保持完整分辨率。

​16位​​ (2字节)

质量很高,带宽需求比444降低​​33%​​。广泛应用于专业视频制作、SDI传输接口。

​YCbCr420​

​水平与垂直方向均2:1降采样​​。每​​2x2​​的四个像素​​共享一组CbCr​​值。亮度Y保持完整分辨率。

​12位​​ (1.5字节)

​最常用的格式​​。带宽需求比444降低​​50%​​。人眼几乎察觉不到与444的画质差异。是​​几乎所有主流视频编码标准(H.264, H.265, VP9, AV1)的默认或常用色彩格式​​,也是DVD、蓝光、网络视频(YouTube, Netflix)的基础。JPEG图片压缩等。

可视化理解色度抽样

想象一下一组 2x2 的像素块:

YCbCr444 (4:4:4)​​ - 无损采样

[Y][Cb][Cr] [Y][Cb][Cr] [Y][Cb][Cr] [Y][Cb][Cr]

[Y][Cb][Cr] [Y][Cb][Cr] [Y][Cb][Cr] [Y][Cb][Cr]

每个像素都有自己独立的Y, Cb, Cr值。

YCbCr422 (4:2:2)​​ - 水平抽样

第一和第二个像素共享一套CbCr,第三和第四个像素共享另一套CbCr。第二行同理。

[Y][Cb][Cr]         [Y]         [Y][Cb][Cr]         [Y]

[Y]         [Y][Cb][Cr]         [Y]         [Y][Cb][Cr]

YCbCr420 (4:2:0)​​ - 水平与垂直抽样

[Y] [Y](加权平均[Cb][Cr]) [Y] [Y](加权平均[Cb][Cr])

[Y] [Y]            [Y] [Y]
2x2区块所有像素共享同一套CbCr值​​。色度信息的分辨率在宽和高上都只有亮度信息的一半。

3、对比

特性

RGB888 / ARGB8888

RGB565

YCbCr444

YCbCr422

​YCbCr420​

​主要用途​

图像显示、UI绘制

嵌入式显示、节省内存

高质量视频制作

专业视频传输

​视频编码、流媒体​

​带宽/内存​

​低​

​色彩保真度​

​最高​

较低(色带)

​最高​

很高

高(人眼难辨)

​是否含透明度​

ARGB有,RGB无

4、BCSH

​​B​​rightness(亮度)
​​C​​ontrast(对比度)
​​S​​aturation(饱和度)
​​H​​ue(色调)

简单来说,这是一组用于​​在YCbCr和RGB色彩空间之间进行转换的函数​​,并且它们允许你指定转换所遵循的​​色彩标准(如BT.601或BT.709)​​。而 YCbCr2RGB和 RGB2YCbCr则是这个色彩处理模块中的核心转换功能。

函数

使用场景举例

YCbCr2RGB(rec601-mpeg)

正确解码一部DVD电影或一个标清MPEG视频文件,使其在显示器上显示正常的颜色。

YCbCr2RGB(rec601-jpeg)

解码一张用BT.601系数的JPEG图片(大多数JPEG都属此类),在图片查看器中正常显示。

YCbCr2RGB(rec709)

解码一部蓝光电影、一个高清H.264视频流或任何高清内容,以获得正确的颜色。

RGB2YCbCr(BT601)

将一幅RGB图像转换为YCbCr格式,以便编码成标清MPEG-2视频DVD。

RGB2YCbCr(BT709)

将一幅RGB图像转换为YCbCr格式,以便编码成高清H.264视频用于网络播放或蓝光制作。

5、JPEG图片压缩


1. 色彩空间转换与色度抽样 (Color Space Conversion & Chroma Subsampling)


​​动作​​:将图片从RGB色彩空间转换到YCbCr色彩空间。
​​目的​​:分离亮度和色度信息。人眼对亮度(Y)更敏感,对色度(Cb, Cr)不敏感。
​​压缩​​:随即对Cb和Cr通道进行​​YCbCr4:2:0​​降采样(注意,JPEG最常用的是​​4:2:0​​,而不是4:2:2)。这立即将色度数据量减少了​​50%​​,而画质几乎没有可视的损失。这是​​第一个有损压缩步骤​​。


2. 分块 (Tiling)


​​动作​​:将整个图像的每个分量(Y, Cb, Cr)分割成一个个​​8x8像素​​的小块。
​​目的​​:为后续的变换操作准备好单位。所有的压缩魔法都将发生在每一个这64个像素的小块上。


3. 离散余弦变换 (DCT - Discrete Cosine Transform)


​​动作​​:对每一个8x8块应用DCT数学变换。
​​目的​​:将图像信息从“空间域”转换到“频率域”。变换后,每个8x8块变成了一个​​8x8的频率系数矩阵​​。
​​左上角​​的系数是​​低频系数​​,代表了图像大致的轮廓和能量(最主要的信息)。
​​右下角​​的系数是​​高频系数​​,代表了图像的细节、边缘和噪声(次要的信息)。
​​压缩​​:​​此时并未压缩​​,只是将能量重新集中,为下一步最关键的有损压缩做准备。


4. 量化 (Quantization) - ​​有损压缩的核心​​


​​动作​​:将DCT变换后的频率系数矩阵除以一个​​量化矩阵​​,然后四舍五取整到整数。
​​目的​​:​​舍弃人眼不敏感的高频信息​​。量化矩阵是JPEG压缩的灵魂,它定义了不同频率分量的保留精度。通常,对高频分量使用较大的量化步长(除数更大),导致很多高频系数经过除法和取整后直接变为0。
​​压缩​​:这是​​最主要、最关键的有损压缩步骤​​。图像信息的丢失就发生在这里。压缩质量(Photoshop中的“质量”滑块从0到100)实际上就是在选择不同的量化矩阵:高质量使用较小的除数,保留更多系数;低质量使用较大的除数,产生更多的0。


5. 熵编码 (Entropy Coding) - ​​无损压缩步骤​​


经过量化后,矩阵中充满了0,尤其是右下部分。现在需要高效地编码这些数据。
​​之字形扫描 (Zig-zag Scan)​​:
​​动作​​:将二维的8x8量化后系数矩阵按“之”字形顺序重新排列成一维序列。
​​目的​​:让序列中末尾的0连续地排列在一起,便于后续压缩。
​​差分编码 (DPCM on DC Coefficient)​​:
​​动作​​:每个8x8块的第一个系数是DC系数(直流系数),代表块的平均亮度。它对相邻块的DC值之差进行编码,而不是直接编码值本身。
​​目的​​:因为相邻块的DC值通常很接近,差值很小,更容易压缩。
​​行程编码 (RLE on AC Coefficients)​​:
​​动作​​:对AC系数(交流系数,即除了DC以外的63个系数)进行编码。它被编码为(零的个数, 下一个非零系数的数值)这样的形式。例如,序列 0, 0, 0, 12, 0, 0, 5, ...会被编码为 (3,12), (2,5), ...。
​​目的​​:高效地表示一长串的0。
​​霍夫曼编码 (Huffman Coding)​​:
​​动作​​:对上述步骤产生的所有符号(DC差值和AC的(零的个数, 数值)对)使用霍夫曼编码表进行压缩。
​​目的​​:这是一种无损压缩,给出现频率高的符号分配短的二进制码,给出现频率低的符号分配长的二进制码,从而进一步减少总体积。

6、屏幕色差影响因素

Gamma参数

显示驱动IC中的Gamma参数,是一组用于校正“输入电压”与“屏幕亮度”之间非线性关系的值,其根本目的是让显示效果符合人眼感知,并补偿显示屏固有的物理特性。

http://www.dtcms.com/a/492376.html

相关文章:

  • 网站建设费用表wordpress特别慢
  • 管理学习网站旅游网网站建设
  • 私募基金公司网站建设盘锦化工网站建设
  • 成绩查询网站开发潍坊快速网站排名
  • 广州模板建站系统wordpress 文字不显示
  • 企业网站建设方案书模板wordpress响应式concise主题
  • 衡石科技HQL与Agentic BI技术深度解析:构建下一代智能数据分析引擎
  • 淄博比较好的网站建设公司怎么用织梦源代码做网站
  • 智能SQL审核优化工具 PawSQL 月度更新 | 正确性优先、兼容性与可观测性加强
  • 网站备案icp过期青岛网站设计建议i青岛博采
  • 西安网站手机网站建设专业的上海网站建设公司哪家好
  • Kubernetes:控制器 - HPA
  • 网站开发入那个科目网页设计常用代码
  • 深圳网站制作就找兴田德润公司申请邮箱怎么申请
  • 网站推广建设期游戏公司招聘网站
  • 视觉差 网站邢台网站建设哪家公司好
  • Windows Search 服务
  • 网站优化及推广顺德网站制作案例价位
  • 北京品牌网站建设公司排名做图表的网站知乎
  • 点控云智能短信:重构企业与用户的连接,让品牌沟通更高效
  • NewStarCTF2025-Week1-PWN
  • 个人网站建站的流程网站设计过程
  • 网站开发合同受托方辽宁建设工程信息网业绩录入规定
  • 英文网站建设维护网络技术培训机构
  • 网站开发语言排行手机wap网页设计
  • 北京网站建设优化凡科网站建设视频
  • 网站建设免费的短网址生成 在线生成
  • 酷家乐网站做墙裙教程装修案例的app
  • 南宁经典网站建设怎么创建私人网站
  • 企业官方网站建设费用wordpress放视频教程