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

数字媒体技术基础:色度子采样(4:4:4、4:2:2 、4:2:0)

在数字视频处理中,色度子采样 Chroma Subsampling可以用于压缩视频文件的大小,同时在大多数情况下保持较高的视觉质量,它的原理基于人类视觉系统对亮度 Luminance比对色度 Chrominance更加敏感这一特点。

一、 采样格式的表示方法

色度子采样格式通常表示为:

J:a:b

其中:

J:在水平方向上,亮度样本的基准数量,通常为 4 列。

a:在奇数行中,与 J 个亮度样本对应的色度样本数。

b:在偶数行中,与 J 个亮度样本对应的色度样本数。

二、常见的采样格式及特点

1、4:4:4 采样

即:J = 4、a = 4、b = 4

解释:

奇数行和偶数行:每 4 个亮度样本对应 4 个色度样本。

8cbb624b47ddc13d3c3e9e807866fe0e.png

这是无色彩子采样的格式,亮度和色彩的采样频率相同。每个像素都有完整的亮度和色彩信息,因此没有任何压缩。

由于其能够提供全色彩采样,4:4:4 格式常用于视觉特效制作、颜色校正、高端电影拍摄和后期制作。

虽然占用的存储空间更大,但对于专业需求来说,这种无损的色彩处理至关重要。

2、4:2:2 采样

即:J = 4、a = 2、b = 2

解释:

奇数行和偶数行:每 4 个亮度样本对应 2 个色度样本。

73c82a00e68143ccb891c1b3ceb2c793.png

在这个模式下,每两个水平像素共享一个色度信息(Cb 和 Cr),但每个像素都有独立的亮度信息。这样做可以减少文件大小,但由于亮度细节保留较好,因此视觉质量损失较小。

4:2:2 常用于专业级视频录制设备中,如广播电视制作、高端摄影机和非线性编辑系统。它在保持较高画质的同时,比 4:4:4 更节省存储空间。

3、4:2:0 采样

即:J = 4、a = 2、b = 0

解释:

奇数行:每 4 个亮度样本对应 2 个色度样本。

偶数行:不采样色度,即 0 个色度样本。

bed89985c2a4118581aa3cb88d7518b0.png

在此模式下,每两个水平像素和两个垂直像素共享一个色彩信息,即每四个像素共享同一个 Cb 和 Cr。

4:2:0 采样方式压缩效果显著,广泛用于消费者级视频标准中,如蓝光光盘、DVD、网络视频流媒体(如 Netflix、YouTube)和视频会议等。这种采样方式在提供合理画质的同时,最大程度压缩了数据量。

三、优点与局限性

1、优点

(1)显著压缩文件大小

通过减少色彩信息,色度子采样能有效降低视频和图像的文件体积。

(2)维持较高的视觉质量

虽然色彩信息被压缩,但由于亮度信息没有太大损失,观众在观看时仍能获得高质量的视觉体验。

(3)广泛应用于视频压缩

色度子采样技术被广泛应用于各种视频压缩标准中,如 MPEG、H.264 和 HEVC。

2、局限性

(1)色彩细节丢失

在 4:2:2 和 4:2:0 等模式下,色彩信息被压缩,可能会导致在处理颜色锐利变化的场景(如鲜艳的边缘或小物体)时出现色彩失真或模糊。

(2)不适用于所有场景

在一些对颜色要求极高的场景中(如高端电影制作、图像编辑或视觉特效),无色彩子采样(4:4:4)的画质仍然不可或缺。

160fa56a70093b0219a9d479fdeb6752.jpeg

“点赞有美意,赞赏是鼓励”

http://www.lryc.cn/news/459888.html

相关文章:

  • tkinter库的应用小示例:文本编辑器
  • 信息抽取数据集处理——RAMS
  • SpringBoot+XXL-JOB:高效定时任务管理
  • openpyxl -- 简介
  • 滚雪球学MySQL[8.3讲]:数据库中的JSON与全文检索详解:从数据存储到全文索引的高效使用
  • position定位静态定位/绝对定位/相对定位
  • 2024年09月CCF-GESP编程能力等级认证C++编程三级真题解析
  • Web自动化Demo-PHP+Selenium
  • Python速成笔记——知识(GUI自动化处理屏幕和按键输出)
  • 计算机是如何输入存储输出汉字、图片、音频、视频的
  • springboot系列--web相关知识探索五
  • 开源商城系统crmeb phpstudy安装配置
  • 【论文阅读笔记】Bigtable: A Distributed Storage System for Structured Data
  • linux从入门到精通-从基础学起,逐步提升,探索linux奥秘(十一)--rpm管理和计划任务
  • 【C++几种单例模式解读及实现方式】
  • QT开发--串口通信
  • 数据库(至少还的再花两天 )
  • 网络安全公司及其主要产品介绍
  • orjson:高性能的Python JSON库
  • 常见几大排序算法
  • Linux下CMake入门
  • 网络资源模板--Android Studio 实现简易记事本App
  • 根据Vue对比来深入学习React 下 props 组件传值 插槽 样式操作 hooks 高阶组件 性能优化
  • HTML(六)超链接
  • 【Coroutines】Implement Lua Coroutine by Kotlin - 2
  • java计算机毕设课设—扫雷游戏(附源码、文章、相关截图、部署视频)
  • AndroidLogger 使用问题
  • 数据库常见面试
  • boxplot 绘制箱线图,添加数据点
  • 用sdkman管理多个jdk切换