核心概念:数字化
无论是图像还是视频,在计算机中处理的第一步都是数字化,将连续的模拟信息(光线、声音)转换为离散的数字信息(0和1)。这个过程包含两个核心步骤:
- 采样: 在空间(图像)或时间(音频/视频)上以一定的间隔采集数据点。
- 量化: 将每个采样点的模拟值(如亮度、颜色强度、声音振幅)映射到一个离散的数值(通常是整数)。
一、 数字图像基础
-
像素: 图像的基本单位。想象一张网格纸,每个小格子就是一个像素。每个像素代表图像在特定位置的颜色和亮度信息。
-
分辨率: 指图像包含的像素总数,通常表示为 宽度像素数 x 高度像素数 (例如 1920x1080)。分辨率越高,图像细节越丰富,文件通常也越大。
-
颜色模型/色彩空间:
- RGB: 最常用的模型,基于加色原理。每个像素的颜色由红、绿、蓝三个通道的强度值混合而成。每个通道的强度通常用 8位(0-255) 表示,这样一个像素就有
256 * 256 * 256 = 16,777,216种可能颜色(24位真彩色)。也有更高位深(10位, 12位, 16位/通道)用于专业领域。 - CMYK: 主要用于印刷,基于减色原理。颜色由青、品红、黄、黑四种油墨的百分比组成。
- YUV / YCbCr: 广泛应用于视频和图像压缩。将颜色信息分离为:
- Y: 亮度分量(Luma),代表图像的明暗信息,对人眼最敏感。
- U / Cb: 蓝色差分量(Chroma Blue)。
- V / Cr: 红色差分量(Chroma Red)。
- 关键点: 人眼对亮度变化比对颜色变化更敏感。YUV模型利用这一点,在压缩时可以对色度信息进行更高程度的压缩(子采样)而不易被察觉,从而减小文件大小。
- RGB: 最常用的模型,基于加色原理。每个像素的颜色由红、绿、蓝三个通道的强度值混合而成。每个通道的强度通常用 8位(0-255) 表示,这样一个像素就有
-
色度子采样:
- 表示YUV数据中色度分量相对于亮度分量的采样率。
- 常见格式:
- 4:4:4: 无子采样。每个亮度像素对应一个Cb和一个Cr像素。最高质量,文件最大。
- 4:2:2: 水平方向色度采样减半。每两个水平相邻的亮度像素共享一组Cb/Cr值。常用于专业视频制作。
- 4:2:0: 最常用(JPEG, MPEG, DVD, Blu-ray, H.26x, VP9, AV1)。水平和垂直方向色度采样都减半。每2x2个亮度像素共享一组Cb/Cr值。显著减小文件大小,视觉质量损失在可接受范围内。
- 4:1:1: 水平方向色度采样降至1/4。质量较低,较少使用。
-
位深度: 指每个颜色通道用多少位来表示其强度。如上所述,8位/通道最常见(24位/像素)。更高的位深(如10位, 12位)能表示更丰富的颜色梯度,减少色带现象,用于HDR内容。
-
图像文件格式: 定义了如何存储像素数据、颜色信息、元数据(如EXIF信息:相机型号、光圈、快门、GPS等)以及是否使用压缩。
- JPEG: 有损压缩。利用人眼视觉特性,去除不易察觉的高频细节信息,大幅减小文件大小(适合照片)。压缩程度可调,压缩过高会产生块状伪影。
- PNG: 无损压缩。保留所有原始图像数据,支持透明度(Alpha通道)。文件通常比JPEG大,适合图标、图形、需要透明背景或精确细节保存的图像。
- GIF: 无损压缩,但仅限于256色。支持简单动画和透明度(只有完全透明或不透明,没有半透明)。适合简单图形和动画。
- WebP: 现代格式,支持有损和无损压缩,以及透明度和动画。设计目标是提供比JPEG和PNG更好的压缩率。
- TIFF: 灵活(可无损/有损),高质量,常用于专业摄影和印刷。文件通常很大。
- BMP: 简单的未压缩或轻度压缩格式,文件通常很大,很少用于网络。
- RAW: 数码相机传感器捕获的原始、未处理的图像数据。包含最丰富的图像信息,需要专用软件处理。不是单一标准,各厂商有自己的格式。
-
核心图像处理原理:
- 压缩:
- 无损压缩: 算法(如LZW - GIF/PNG, DEFLATE - PNG/ZIP)识别并消除数据中的统计冗余(重复模式),解压后能完全恢复原始数据。压缩比有限。
- 有损压缩: 算法(如JPEG的DCT)在去除统计冗余的同时,有选择地丢弃人眼不太敏感的信息(通常是高频细节、微妙的颜色变化)。解压后数据不能完全恢复,但视觉质量损失在可控范围内。压缩比远高于无损压缩。
- 调整大小/缩放: 改变图像的分辨率。缩小通常丢弃信息;放大需要插值算法(如最近邻、双线性、双三次)来“猜测”新像素的值。放大过多会导致模糊或锯齿。
- 色彩空间转换: 在不同颜色模型(如RGB <-> YUV, RGB <-> CMYK)之间转换图像数据。需要特定的转换公式。
- 色彩校正/调整: 修改图像的亮度、对比度、饱和度、色调等属性,通常在RGB或HSL/HSV空间操作。
- 压缩:
二、 数字视频基础
视频本质上是一系列连续播放的静态图像(帧),以足够快的速度播放(帧率),利用人眼的视觉暂留现象产生运动感。
- 帧: 视频序列中的单幅静态图像。
- 帧率: 每秒显示的帧数,单位是FPS。常见的帧率有:
- 24 fps: 电影的标准帧率,提供“电影感”。
- 25 fps (PAL): 欧洲、澳洲、部分亚洲等地区电视标准。
- 30 fps (NTSC): 北美、日本、韩国等地区电视标准(实际约为29.97 fps)。
- 50/60 fps: 常用于体育直播、动作游戏、高帧率电影(如《霍比特人》),提供更流畅的运动感。
- 120/240 fps 或更高: 用于高速摄影(慢动作回放)。
- 分辨率: 与图像分辨率相同,指单帧图像的像素尺寸(如1920x1080 - Full HD, 3840x2160 - 4K UHD)。
- 宽高比: 视频画面的宽度与高度的比例(如4:3, 16:9, 21:9)。
- 码率: 单位时间内传输或处理的视频数据量,通常用比特每秒表示(如Mbps - 兆比特每秒)。码率直接影响视频质量和文件大小:
- 固定码率: 码率在整个视频中保持不变。简单,但复杂场景可能质量不足,简单场景可能浪费带宽。
- 可变码率: 码率根据场景复杂度动态调整。复杂运动场景分配更高码率,静态或简单场景分配较低码率。在相同平均码率下通常能获得比CBR更好的整体质量。
- 视频压缩原理:
- 视频压缩远比图像压缩复杂,核心思想是利用帧与帧之间的时间冗余(相关性)和单帧内的空间冗余。
- 关键概念与技术:
- 帧类型:
- I帧: 帧内编码帧。像JPEG一样,只利用本帧内的空间冗余进行压缩(DCT变换、量化等)。是独立完整的帧,可作为随机访问点。压缩率相对较低。
- P帧: 前向预测帧。参考前面的I帧或P帧(参考帧)。只存储当前帧与参考帧之间的差异信息(预测残差)以及描述运动的运动矢量。压缩率高于I帧。
- B帧: 双向预测帧。参考前面和后面的I帧或P帧。同时利用前后帧信息进行预测,压缩率最高。但编码复杂,会增加延迟。
- GOP: 图像组。一组连续的视频帧,以一个I帧开始,后面跟着若干个P帧和B帧。GOP长度影响随机访问能力和错误恢复能力。
- 运动估计与运动补偿: 这是视频压缩的核心技术。
- 运动估计: 在当前帧中,将图像分割成宏块,在参考帧的一定搜索范围内,为每个宏块找到最匹配的块(预测块)。计算两者之间的运动矢量。
- 运动补偿: 使用找到的运动矢量,从参考帧中取出预测块。
- 然后计算当前宏块 - 预测块 = 残差块。
- 最后,对运动矢量和残差块进行压缩编码(DCT变换、量化、熵编码)。残差块通常比原始宏块数据小得多,且更容易压缩。
- 变换编码: 对残差块(或I帧的整个块)应用数学变换(通常是离散余弦变换 - DCT或其整数近似),将空间域数据转换到频域。能量集中在低频部分,便于量化。
- 量化: 有损压缩的关键步骤。对变换后的系数进行缩放和舍入,减小其精度(尤其是高频系数)。量化步长越大,压缩率越高,信息损失越大,质量越低。
- 熵编码: 无损压缩步骤。对量化后的系数、运动矢量等数据进行编码(如哈夫曼编码、算术编码、CAVLC、CABAC),消除统计冗余。这是压缩的最后一步。
- 帧类型:
- 视频编码标准: 定义了视频压缩算法的具体规范。
- H.26x 系列 (ITU-T & ISO/IEC):
- H.264 / AVC: 目前最广泛使用的标准之一。在良好压缩效率和质量之间取得了极佳的平衡。用于蓝光、网络视频(YouTube, Vimeo)、视频会议、数字电视广播等。
- H.265 / HEVC: H.264的后继者。在相同视觉质量下,码率可降低约50%,或在相同码率下提供更高质量。用于4K/8K超高清、HDR视频。专利授权较复杂。
- H.266 / VVC: 最新标准。目标是在HEVC基础上再降低30-50%的码率。编码复杂度大幅增加,仍在推广中。
- AV1 (AOMedia): 开源、免版税的下一代编码标准。由谷歌、苹果、亚马逊、Netflix、微软、Facebook等组成的开放媒体联盟开发。压缩效率优于H.265,旨在取代VP9。被YouTube、Netflix等广泛采用。
- VP9 (Google): 开源、免版税。是VP8的后继者,压缩效率与H.265接近。主要用于Web端(YouTube、WebRTC)。
- H.26x 系列 (ITU-T & ISO/IEC):
- 视频容器格式: 就像一个盒子,将压缩后的视频流、音频流、字幕、章节信息、元数据等打包在一起,形成一个单一文件。它定义了如何存储和同步这些不同的媒体流。
- MP4 (.mp4): 最通用的容器,基于ISO标准。广泛支持H.264, H.265, AAC音频。
- MKV / Matroska (.mkv): 开源、灵活、功能强大的容器。几乎可以容纳任何编码的视频和音频流,支持章节、字幕等特性。
- AVI (.avi): 较老的微软容器,兼容性好但功能有限(如不支持现代编码、章节、某些元数据)。
- MOV (.mov): 苹果公司的QuickTime框架原生容器。常用于专业视频编辑和苹果生态。
- WebM (.webm): 专为Web设计,基于Matroska子集。主要包含VP8/VP9视频和Opus/Vorbis音频。
- TS / M2TS (.ts, .m2ts): 传输流。常用于数字电视广播和蓝光光盘,对传输错误有较好的鲁棒性。
- MPEG-TS (.ts): 与TS类似,广泛用于广播和流媒体传输。
- 音频基础: 视频通常伴随音频。
- 采样率: 每秒采集声音波形的次数(如44.1kHz - CD, 48kHz - 视频常用)。
- 位深度: 每个采样点用多少位表示振幅精度(如16位, 24位)。
- 声道数: 单声道、立体声(2声道)、5.1环绕声、7.1环绕声等。
- 音频编码: 如AAC(高效、通用)、MP3(有损)、Opus(低延迟、高效)、AC-3(Dolby Digital)、DTS等。
- 音视频同步: 容器格式使用时间戳来确保视频帧和对应的音频样本在播放时能够精确对齐。
三、 播放流程
- 解封装: 播放器读取容器文件(如MP4),将其分离成独立的视频流、音频流、字幕流等。
- 解码:
- 视频解码器(如H.264解码器)读取压缩的视频流数据,执行熵解码、反量化、逆变换、运动补偿等过程,重建出原始的(或接近原始的)视频帧序列(YUV数据)。
- 音频解码器读取压缩的音频流数据,重建出原始的(或接近原始的)音频样本数据(PCM数据)。
- 同步: 播放器根据时间戳,确保解码出的视频帧和音频样本在正确的时刻被呈现。
- 渲染:
- 视频渲染: 将YUV帧数据转换为显示器需要的格式(通常是RGB),并通过显卡绘制到屏幕上。
- 音频渲染: 将PCM音频数据发送到声卡,通过扬声器或耳机播放出来。
总结:
- 图像: 是静态的,核心是像素、分辨率、颜色模型、位深、文件格式和压缩。关键原理是利用空间冗余和人眼视觉特性进行压缩。
- 视频: 是动态的图像序列,核心是帧、帧率、分辨率、码率、压缩标准、容器格式。关键原理是同时利用空间冗余和帧间的时间冗余进行压缩,核心技术是运动估计与补偿。
- 数字化: 图像和视频在计算机中处理的基础都是采样和量化。
- 压缩: 为了高效存储和传输,有损压缩(利用感知冗余)和无损压缩(利用统计冗余)是核心手段。
1万+

被折叠的 条评论
为什么被折叠?



