image compression

本文深入探讨了图像和视频压缩的关键技术,包括JPEG压缩算法的详细步骤,从颜色模式转换到编码的全过程,以及H.264视频压缩中的帧间压缩原理,对比I-frame、P-frame和B-frame的不同作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

图片压缩

图片压缩算法概览

1 JPEG压缩

JPEG压缩算法用失真的压缩方式来处理图像,但失真的程度是肉眼无法辨认的。

压缩过程
1.颜色模式转换及采样;2.DCT变换;3.量化;4.编码

1.1 颜色模式转换及采样

RGB色彩系统是我们最常用的表示颜色的方式。JPEG采用的是YCbCr色彩系统,Y代表亮度,Cb代表色度,Cr代表饱和度,计算公式如下:

Y=0.2990R+0.5870G+0.1140B
Cb=-0.1687R-0.3313G+0.5000B+128
Cr=0.5000R-0.4187G-0.0813B+128

人类的眼睛对低频的数据比对高频的数据具有更高的敏感度,对亮度的改变也比对色彩的改变要敏感的多,因此Y成分的数据是比较重要的,而Cb和Cr成分的数据相对不重要,就可以只取部分数据来处理。JPEG通常有两种采样方式:YUV411和YUV422,它们所代表的意义是Y,Cb和Cr三个成分的数据取样比例。

1.2 DCT变换

DCT,Discrete Cosine Transform,离散余弦变换
经过DCT转换后,矩阵左上角代表低频向量,矩阵右下角代表低频向量

1.3 量化

量化过程有量化表的,JPEG压缩标准中有推荐的亮度量化表和色度量化表(饱和度不用量化吗???)
量化过程说明

1.4 编码

huffman编码是JPEG最常用的编码方式
DC编码,DC是采用差值脉冲编码调制(DPCM)的差值编码法,也就是在同一图像分量中取得每个DC值与前一个DC值的差

AC编码,AC编码方式与DC略有不同,在AC编码之前,首先得将63个AC值按Zig-zag排
序,即按照下图箭头所指示的顺序串联起来。
Zig-zag排序

视频压缩

H.264

帧间压缩,
视频帧示意
I-frame是完全编码的图片,每个I-frame包含了显示图片的所有内容,I-frame本身是进行了压缩的,如JPEG压缩方式,
P-frame只需要存储与上一个I-frame不同的地方
B-frame是双向帧,需要的数据来自上一个P-frame和下一个I-frame
帧压缩示意

不采用帧间压缩的视频所有帧都是I-frame的

### 循环神经网络用于全分辨率图像压缩 循环神经网络(RNN)在处理序列数据方面表现出色,这使得其成为视频帧预测和时间序列分析的理想选择。然而,在全分辨率图像压缩中的应用则相对较少见,因为传统上卷积神经网络(CNN)更适合于捕捉空间特征。 为了实现基于RNN的全分辨率图像压缩方案,一种方法是利用双向LSTM或GRU单元来建模像素间的依赖关系。具体来说: - **输入表示**:将原始图片转换成一系列向量作为输入给定到RNN中去。可以通过扫描线顺序或其他方式遍历整个图像矩阵[^2]。 ```python import numpy as np def img_to_seq(image_matrix): """Convert an image matrix into a sequence of vectors.""" height, width, channels = image_matrix.shape seq = [] for row in range(height): for col in range(width): pixel_vector = image_matrix[row][col].flatten() seq.append(pixel_vector) return np.array(seq) image_data = ... # 假设这是读取得到的一张RGB图的数据 sequence_input = img_to_seq(image_data) ``` - **编码器设计**:采用多层堆叠的方式构建深层结构,并引入注意力机制提高模型性能;同时考虑加入残差连接防止梯度消失问题发生[^1]。 - **解码器部分**:同样由多个带有记忆功能的时间步组成,负责逐步重建原图。这里需要注意的是输出维度应当与输入保持一致以便后续评估重构误差大小。 - **训练过程优化**:由于直接最小化均方根误差可能导致过拟合现象严重,因此建议尝试其他损失函数如变分下界(VLB),并通过正则项控制复杂度以促进泛化能力提升[^3]。 尽管上述思路提供了一种可能的技术路线,但在实际操作过程中仍需面对诸多挑战,比如计算资源消耗巨大以及难以平衡压缩率同视觉质量之间的矛盾等问题。 #### 注意事项 值得注意的地方在于,虽然理论上可行,但是目前主流的方法还是倾向于使用自编码器架构配合特定类型的滤波器来进行高效无损/有损压缩任务。对于特别强调保留细节的应用场景而言,或许更应该关注那些专门为静态图形定制开发出来的先进算法和技术进展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值