请解释一下,技术如何扫描libjpeg中的文件
在渐进式JPEG编码中,关于如何对图像进行编码的可能性几乎是无限的。复杂性如此之大,以至于它不适合参数传递或命令行参数。LibJpeg 允许您指定一个文件来指示如何完成此操作。
在顺序 JPEG 中,每个组件都在一次扫描中编码。扫描可以包含多个组件,在这种情况下,它是"交错的"。
在渐进式 JPEG 中,每个组件在 2 次或更多次扫描中编码。与顺序 JPEG 一样,扫描可能是交错的,也可能不是交错的。
DCT 产生 64 个系数。第一个被称为"DC"系数。其他是"AC"系数。
逐行扫描可以将DCT数据分成两份工资。1. 按系数范围(又称光谱选择)。这可以是直流系数或一系列连续的交流系数。(在发送任何交流电之前,您必须发送一些直流数据)。2. 发送不同扫描中的系数位(调用逐次逼近)
然后,您在扫描中的选择是:1. 哪些组件2. 光谱选择(0 或 1 以内的范围 .. 63)3. 逐次逼近(0 .. 13 以内的范围)
还有语义规则。在进行交流扫描之前,必须对每个组件进行直流扫描。您不能发送任何数据两次。
如果您有灰度图像(一个分量),则可以以多达 64*14 =896 次单独扫描或少至两次扫描发送图像。
有太多的选择,Libjpeg 使用一个文件来指定它们。