【发布时间】:2015-06-11 20:35:28
【问题描述】:
请解释一下,libjpeg中的技术-scans文件是怎样的
【问题讨论】:
标签: jpeg libjpeg libjpeg-turbo
请解释一下,libjpeg中的技术-scans文件是怎样的
【问题讨论】:
标签: jpeg libjpeg libjpeg-turbo
在渐进式 JPEG 编码中,图像的编码方式实际上有无数种可能性。复杂性如此之大,以至于它不适合参数传递或命令行参数。 LibJpeg 允许您指定一个文件来指示这是如何完成的。
在顺序 JPEG 中,每个组件都在一次扫描中进行编码。一次扫描可以包含多个组件,在这种情况下,它是“交错的”。
在渐进式 JPEG 中,每个组件都以 2 次或更多次扫描进行编码。与顺序 JPEG 一样,扫描可能会或可能不会交错。
DCT 产生 64 个系数。第一个被称为“DC”系数。其他的是“AC”系数。
逐行扫描可以将 DCT 数据分成两份。 1. 按系数范围(又名光谱选择)。这可以是 DC 系数或一系列连续的 AC 系数。 (在发送任何 AC 之前,您必须发送一些 DC 数据)。 2.发送不同扫描的系数位(称为逐次逼近)
您在扫描中的选择是: 1. 哪些组件 2. 光谱选择(0 或 1 .. 63 以内的范围) 3.逐次逼近(0 .. 13范围内)
还有语义规则。在 AC 扫描之前,您必须对每个组件进行 DC 扫描。您不能两次发送任何数据。
如果您有一张灰度图像(一个组件),您可以发送多达 64*14 =896 次单独扫描或少至两次的图像。
有太多选择,Libjpeg 使用文件来指定它们。
【讨论】: