JPEG,即联合图像专家组,是一种常用的有损数字图像压缩方法,尤其适用于数码摄影产生的图像。压缩程度可以调整,允许在存储大小和图像质量之间进行可选择的权衡。JPEG 通常可以实现 10:1 的压缩,而图像质量几乎没有明显损失。
JPEG 压缩算法是 JPEG 标准的核心。该过程从将数字图像从其典型的 RGB 色彩空间转换为称为 YCbCr 的不同色彩空间开始。YCbCr 色彩空间将图像分为亮度 (Y),它表示亮度级别,以及色度 (Cb 和 Cr),它表示颜色信息。这种分离是有益的,因为人眼对亮度的变化比对颜色的变化更敏感,从而允许压缩利用这一点,通过比亮度更多地压缩颜色信息。
一旦图像处于 YCbCr 色彩空间中,JPEG 压缩过程中的下一步就是对色度通道进行下采样。下采样会降低色度信息的解析度,这通常不会显著影响图像的感知质量,因为人眼对颜色细节的敏感度较低。此步骤是可选的,可以根据所需的图像质量和文件大小之间的平衡进行调整。
下采样后,图像被分成块,通常大小为 8x8 像素。然后分别处理每个块。处理每个块的第一步是应用离散余弦变换 (DCT)。DCT 是一种数学运算,它将空间域数据(像素值)转换为频域。结果是一个频率系数矩阵,它根据其空间频率分量表示图像块的数据。
然后对 DCT 产生的频率系数进行量化。量化是将一大组输入值映射到一小组的过程——在 JPEG 的情况下,这意味着降低频率系数的精度。这是有损压缩发生的地方,因为一些图像信息被丢弃。量化步骤由量化表控制,该量化表确定对每个频率分量应用多少压缩。量化表可以调整为偏向更高的图像质量(更少的压缩)或更小的文件大小(更多的压缩)。
量化后,系数按锯齿形顺序排列,从左上角开始,并遵循一种优先考虑低频分量而不是高频分量的模式。这是因为低频分量(表示图像的更均匀部分)比高频分量(表示更精细的细节和边缘)对整体外观更重要。
JPEG 压缩过程中的下一步是熵编码,这是一种无损压缩方法。JPEG 中最常用的熵编码形式是霍夫曼编码,尽管算术编码也是一种选择。霍夫曼编码通过为更频繁出现的项分配更短的代码,为不太频繁出现的项分配更长的代码来工作。由于锯齿形排序倾向于将类似的频率系数分组在一起,因此它提高了霍夫曼编码的效率。
一旦熵编码完成,压缩数据就会存储在符合 JPEG 标准的文件格式中。此文件格式包括一个包含有关图像的信息的标头,例如其尺寸和使用的量化表,然后是霍夫曼编码的图像数据。该文件格式还支持包含元数据,例如 EXIF 数据,其中可以包含有关用于拍摄照片的相机设置、拍摄日期和时间以及其他相关详细信息的信息。
当打开 JPEG 图像时,解压缩过程实质上会逆转压缩步骤。霍夫曼编码的数据被解码,量化的频率系数使用压缩期间使用的相同量化表进行反量化,并对每个块应用逆离散余弦变换 (IDCT) 以将频域数据转换回空间域像素值。
反量化和 IDCT 过程由于压缩的有损性质而引入了一些错误,这就是为什么 JPEG 不适用于将进行多次编辑和重新保存的图像。每次保存 JPEG 图像时,它都会再次经历压缩过程,并且会丢失额外的图像信息。随着时间的推移,这会导致图像质量明显下降,这种现象称为“代损”。
尽管 JPEG 压缩具有有损性质,但由于其灵活性和效率,它仍然是一种流行的图像格式。JPEG 图像的文件大小可以非常小,这使得它们非常适合在带宽和加载时间是重要考虑因素的网络上使用。此外,JPEG 标准包括渐进模式,它允许以这样的方式对图像进行编码,即它可以在多次扫描中解码,每次扫描都会提高图像的分辨率。这对于网络图像特别有用,因为它允许快速显示图像的低质量版本,随着更多数据的下载,质量会得到提高。
JPEG 也有一些限制,并不总是所有类型图像的最佳选择。例如,它不适合具有锐利边缘或高对比度文本的图像,因为压缩会在这些区域周围产生明显的伪影。此外,JPEG 不支持透明度,这是 PNG 和 GIF 等其他格式提供的功能。
为了解决原始 JPEG 标准的一些限制,已经开发了新的格式,例如 JPEG 2000 和 JPEG XR。这些格式提供了改进的压缩效率、对更高位深度的支持以及透明度和无损压缩等附加功能。然而,它们尚未达到与原始 JPEG 格式相同的广泛采用程度。
总之,JPEG 图像格式是数学、人类视觉心理学和计算机科学的复杂平衡。它的广泛使用证明了它在减小文件大小的同时保持大多数应用程序可接受的图像质量方面的有效性。了解 JPEG 的技术方面可以帮助用户在何时使用此格式以及如何优化其图像以平衡最适合其需求的质量和文件大小方面做出明智的决策。
APNG(动画便携式网络图形)是一种文件格式,它扩展了广泛使用的 PNG(便携式网络图形)格式的功能,以支持动画。它的创建是为了为 GIF(图形交换格式)提供一种更有效且更易于访问的替代方案,以便在网络上提供动画图像。APNG 保持了 PNG 的无损压缩和透明度特性,同时引入了存储多个帧的能力,从而可以创建平滑、高质量的动画。
APNG 格式建立在现有 PNG 结构之上,引入了专门为动画设计的新的块类型。APNG 中使用的主要块是 `acTL`(动画控制)块和 `fcTL`(帧控制)块。`acTL` 块放置在文件开头,并包含有关整个动画的信息,例如帧数和动画应循环播放的次数。`fcTL` 块位于每个帧之前,并提供特定于帧的详细信息,包括帧的尺寸、位置和延迟时间。
APNG 的一个主要优点是它与标准 PNG 查看器向后兼容。APNG 文件以与常规 PNG 文件相同的签名和关键块开头,允许它在不支持 APNG 的应用程序中显示为静态图像。这确保了使用较旧浏览器或图像查看器的用户仍然可以查看动画的第一帧,从而在广泛的平台上保持兼容性。
APNG 中的动画过程基于一系列帧,每个帧由一个单独的图像表示。第一帧通常是完全渲染的图像,而后续帧可以是完整帧或仅包含与前一帧的更改的部分帧。这种方法允许更有效的存储和更快的加载时间,因为不需要为每个帧重新绘制未更改的像素。
要创建 APNG 文件,可以使用图像编辑工具或专用软件来组装各个帧并生成必要的块。帧通常作为单独的 PNG 文件导出,然后使用 APNG 编码器合并到单个 APNG 文件中。编码器分析帧,确定最佳编码方法(完整帧或部分帧),并生成 `acTL` 和 `fcTL` 块来控制动画播放。
当在兼容的查看器中加载 APNG 文件时,查看器会读取 `acTL` 块以确定动画属性,然后按顺序处理帧。与每个帧关联的 `fcTL` 块提供了正确渲染帧的必要信息,包括其在画布中的持续时间和位置。查看器按指定顺序显示帧,使用延迟时间来控制动画速度和循环行为。
APNG 比传统的 GIF 动画具有几个优势。它支持 24 位颜色和 8 位透明度,与 GIF 的有限 256 色调色板相比,可以提供更生动、更详细的图形。APNG 还提供了更好的压缩,从而在图像质量相同的情况下产生更小的文件大小。此外,APNG 允许可变帧率,从而可以更好地控制动画的时序和流畅度。
然而,APNG 确实有一些限制。虽然它受到 Firefox、Chrome 和 Safari 等主要网络浏览器的支持,但它的采用程度不如 GIF。一些较旧的浏览器和图像查看器可能没有对 APNG 的内置支持,要求用户安装扩展或使用替代软件来查看动画。此外,与 GIF 相比,创建 APNG 文件可能更复杂,因为它涉及处理多个帧并理解特定的块结构。
尽管存在这些限制,但由于其卓越的图像质量、更小的文件大小以及来自网络浏览器和图像编辑工具的日益增长的支持,APNG 近年来已变得越来越流行。它已成为在网站上提供高质量动画的首选,特别是对于需要透明度和流畅播放的短循环动画。
总之,APNG 是一种强大且通用的文件格式,它扩展了 PNG 的功能以支持动画。通过利用现有的 PNG 结构并引入新的块进行动画控制,APNG 提供了比 GIF 更有效且更具视觉吸引力的替代方案。虽然它可能不如 GIF 那样得到广泛支持,但网络浏览器对 APNG 的日益普及以及对高质量动画的需求不断增长,使其成为设计师和开发人员在网络上创建引人入胜且交互式内容的宝贵工具。
这个转换器完全在您的浏览器中运行。当您选择一个文件时,它将被读入内存并转换为所选格式。 然后,您可以下载转换后的文件。
转换立即开始,大多数文件在一秒钟内完成转换。较大的文件可能需要更长时间。
您的文件永远不会上传到我们的服务器。它们在您的浏览器中转换,然后下载转换后的文件。我们永远看不到您的文件。
我们支持在所有图像格式之间进行转换,包括 JPEG、PNG、GIF、WebP、SVG、BMP、TIFF 等等。
这个转换器完全免费,并将永远免费。因为它在您的浏览器中运行,所以我们不需要为服务器付费,因此我们不需要向您收费。
是的!您可以同时转换尽可能多的文件。只需在添加时选择多个文件即可。