gpt4 book ai didi

image-processing - 除了标准/渐进式,第三种JPEG压缩: load by channel?

转载 作者:行者123 更新时间:2023-12-04 02:17:23 27 4
gpt4 key购买 nike

这个问题可能是一个“开放问题”,你们中的许多人可能急于关闭它,但请不要。让我解释。

众所周知,JPEG有两种压缩方式(至少在Photoshop保存对话框中)

  • 优化,图像加载有点像逐行
  • 渐进式,图像首先加载为马赛克状,渐进式更好,直到原始分辨率

  • 我已经阅读了很多 PNG/JPEG 优化 articles之前,但现在我遇到了这种很棒的第三类压缩,来自随机的 Google 图片搜索。有问题的JPEG是这个

    http://storage.googleapis.com/marc-pres/boston-event-1012/images/google-data-center.jpg

    尝试在 Chrome/Firefox 中加载链接(仅在 IE/Safari 中,直到图像完全加载然后显示)

    你可以观察:
  • 图像首先以黑白方式加载
  • 然后看起来像 红色 channel 已加载
  • 下一个 绿色 channel 已加载
  • 最后一个 蓝色 channel 已加载

  • 我尝试使用模拟的非常慢的连接再次加载它,并观察到 ​​JPEG 不仅按 channel 顺序加载,而且还以渐进方式加载。所以首先加载的图像是空白和白色马赛克,然后是绿色马赛克,然后逐渐全彩色马赛克,最后是全分辨率和全彩色图像。

    这是一项了不起的技术,假设您正在构建一个电子杂志,其中每个页面都有很多图片,您希望用户快速翻页浏览,而这种图像正是最好的方式。为了快速预览,加载空白n-white缩略图,如果用户留下来,完全加载原始图像。

    所以我的问题是:如何使用 Python Pillow 或 ImageMagick 或任何类型的 生成这样的图像开源 软件?

    如果您认为这个问题不合适,请发表评论,不要只是关闭它。

    更新 1:

    事实证明,Google 在其所有 JPEG 图片中都使用了这项技术 1 , 2例如 this

    更新 2:我发现了另一个 clue

    最佳答案

    JPEG 文件中的图像数据可以以多种不同的方式进行切片,切片(或通常称为“扫描”)可以以多种不同的顺序存储在文件中。

    在大多数 JPEG 文件中,文件中的第一次扫描包含图像的所有颜色分量,如果它是彩色图像,则交错在一起。在非渐进式 JPEG 中,文件将只包含一次扫描。在渐进式 JPEG 中,将跟随其他扫描,每个扫描可能包含一个或多个组件。

    但是没有什么要求它以这种方式完成。如果文件中的第一次扫描不包含所有颜色成分,我们可能会称这样的文件为“非交错”。

    您的示例文件是非交错的,而且它们也是渐进式的。渐进式非交错 JPEG 似乎比非渐进式非交错 JPEG 得到更广泛的支持。

    标准的 IJG libjpeg 软件能够创建非交错文件。虽然这并不容易,但您可以使用它的 cjpeg实用程序,带有 -scans选项记录在 wizard.txt 中文件。

    关于image-processing - 除了标准/渐进式,第三种JPEG压缩: load by channel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15674880/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com