构建一个JPEG解码器(1):概念

本文是探索JPEG解码的概念和实现的系列文章。

大多数Web都包含以JPEG文件传输的图片和基于JPEG技术的视频文件。事实证明,这些图像背后的概念跨越了将近200年的数学和计算理论,从原始文件到图像,需要大量有趣的工作。

频率分析

在压缩的介绍中,我看了“无损”压缩与“有损”压缩之间的区别。两种方法的区别在于,无损压缩保留了输入的所有固有信息,而有损压缩则将其中的大部分信息丢掉了。仅当认为正确处理文件不必要时才丢弃信息。例如,对于计算机程序而言,绝不是这种情况,其中每个字节都是必须保留的语句。

图像或视频及其在音频世界中的表亲,依靠感知来确定需要丢弃的内容:就像人的耳朵只能分辨特定频率范围内的声音一样,人眼具有特定的分辨率,并且在很短的距离内发生的任何颜色变化基本上都是不可见的。分辨率也可以被认为是“可视频率”,并且可以以与声波频率或其他类型的波几乎相同的方式来操纵。

因此,可以通过去除人类体验之外的频率范围部分来压缩大块声音或一张图像:那些我们不在乎的频率范围,没有它,本质就不会丢失。要做这三个步骤

转译样本:声波是声级随时间的变化,图像是空间二维的颜色变化。我们需要通过转换将这些信号变成自己的频率表达方式。
带通:进入频域后,我们需要切掉我们感兴趣的频率部分或频带。为此的技术术语是“带通滤波器”。
逆变换:我们新减少的信号然后可以通过变换反推,从而去除了多余信息的声音或图像。

变换的使用来自傅里叶变换,傅里叶变换采用可积分的数学函数f(x)并生成频谱方程f(s)。傅立叶变换仅适用于连续范围的数字,并且从负无穷大到正无穷大。这使得它无法像我们这里需要的那样进行数字转换。取而代之的是,使用傅立叶变换的离散版本:MP3和JPEG技术使用离散余弦变换(DCT)将一组数据值更改为等效的一组频率。

下图提供了压缩过程的两个示例:首先是一个简短的声音样本。
声音样本
下图表示与上述相同的过程,但适用于空间的两个维度,而不是时间的一个维度。通常认为一次将整个图像转换到可视频域效率不高,因此JPEG算法一次转换八个像素正方形的块。

在这里插入图片描述
图中,右侧的图像集显示了DCT及其过滤后的版本。每个8x8块中最重要的图形是左上角的“ DC组件”,它确定了整个块的基本级别。右边的值提供了有关水平变化发生频率的信息,相反,低于DC分量的值提供了垂直频率信息。因此,DCT块右下角的值描述了图像中最高保真度的变化,并且过滤包括在每个块上绘制对角线并保留顶部,从而丢弃了有关高保真度变化的信息。

色彩空间和下采样

JPEG充分利用了人眼在视觉变化方面具有最大分辨率的事实。眼睛的另一个特征是,它对颜色的变化不如对亮度敏感:与频率无关的“视杆”比对频率敏感的“视锥”细胞的密度低,这意味着视力较低。颜色分辨率。

通过利用此信息,可以进一步压缩图像,从而减少用于对与亮度有关的颜色值进行编码的信息量。不幸的是,计算机和电视显示器使用的传统的红色/绿色/蓝色加色空间没有保留有关相对亮度和色彩饱和度的信息。为了检索此信息,必须将RGB值转换为另一种颜色模型。

JPEG格式最通常使用Y’CbCr颜色,其中Y’表示特定像素的亮度,而Cb和Cr分量描述两个轴上的色度数量,分别对应于蓝色和红色的百分比。从RGB像素值到Y’CbCr的转换充当所有可能的RGB值的立方和可能的亮度/色度值的立方之间的旋转,如图3所示。

在这里插入图片描述
一旦转换为Y’CbCr,色度通道就会被分离出来并可以进行操作。在这种情况下,采用“下采样”:将彩色通道的分辨率在两个维度上减半,以使一个“块”的颜色信息覆盖四个亮度块的等效区域。在图4中,已按此比率对色彩通道进行了下采样:可以看出,Y’通道对于图像的完整性最为重要,因此其分辨率仍然很高。

在这里插入图片描述
接下来的环节,将假定此处显示的类型为双向下采样:Web上的大多数JPEG图像都采用了这种颜色压缩,因此进行研究很有用。由于分辨率降低,JPEG算法使用的上述八像素正方形变为最小单位大小为16像素正方形,其中四个8x8亮度块伴随着每个颜色信息轴的一个块。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值