WebP无损格式概述

3
我正在阅读官方的WebP无损比特流规范,但我有一种感觉,这个文档缺少一些解释。
让我描述一些规范的片段:
1. 介绍 - 清晰明了
2. Riff头 - 清晰明了
3. 转换
转换仅用于主要级别的ARGB图像:子分辨率图像没有变换,甚至没有表示变换结束的0位。
早先的地方没有提到容器包含一些子分辨率图像。它们是什么?如果规范中没有描述它们在最终图像中如何添加?
然后,在“预测变换”段落中:
我们将图像分成正方形......哪个图像?主图像还是子分辨率图像?如果图像不能分成正方形(除了像素大小的正方形),会发生什么?

预测数据的前4位定义了块的宽度和高度,以位数表示。块列数 block_xsize 用于二维索引。

这是否意味着图像宽度为 block_xsize * block_width?

变换数据包含图像每个块的预测模式。

以何种方式、何种格式?

我不知道为什么很难理解这个规范。可能是因为我不是以英语为母语的人或者描述过于简洁。

我将感激任何有助于解码此规范的帮助 :)

1个回答

3

之前提到过。在文档的顶部就有这样的一段话:

该格式使用子分辨率图像,递归嵌入到格式本身中,用于存储关于图像的统计数据,例如使用的熵编码、空间预测器、颜色空间转换和颜色表。

这些是数据数组(或在颜色表的情况下是向量),每个元素应用于实际图像中的一个像素块,例如16x16块。这些“子分辨率图像”本身并不是正在被压缩的图像的子采样。

该格式描述将它们称为图像,因为它们的存储方式与主图像在格式中完全相同。变换是指令,要求解码器对解压缩后的主图像数据进行应用。通过提供每个块的霍夫曼编码,熵图像用于解压缩主图像。


谢谢。那些数组是什么图片?我的意思是,如果它们只包含统计数据,为什么它们是图片?此外,如果这意味着在文件开头定义的变换需要编码主图像,那么这些变换是否会转换 lz77 编码的主图像还是解码后的图像? - Queequeg
最后一个问题:变换应该按照它们在文件中出现的顺序应用,还是按相反的顺序应用? - Queequeg
1
逆变换应该按照它们在文件中出现的相反顺序进行应用。 - Mark Adler
简短版:在解码过程中,顺序需要被反转吗? - Queequeg
反向转换应在解码时以与文件中出现顺序相反的顺序应用。(否则,何时会应用反向转换呢?) - Mark Adler

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接