最小的JPG可压缩模式是什么?(相机拍摄的一块布,比例/角度/照明可能会有所不同)


46

从相机的角度来看,我正在尝试设计一块很难用JPG压缩的布,从而导致文件大(如果文件大小固定,则会导致图像质量下降)。

即使抹布远离相机或旋转了,它也必须能够工作(假设比例尺可以从1倍到10倍不等)。

噪点相当好(很难压缩),但是从远处看时会变成灰色,易于压缩。一个好的图案将是分形的,在所有尺度上看起来都是相似的。
叶子比较好(叶子,细小的树枝,小树枝,大树枝),但使用的颜色太少。

这是第一次尝试: 最不可压缩

我相信还有更多最佳模式。
也许六角形或三角形的镶嵌效果会更好。

JPG使用Y'Cb Cr颜色空间,我认为可以类似的方式生成Cb Cr,但是我想最好不要统一使用Y'(亮度)的整个范围,因为相机会饱和明亮或黑暗的区域(照明永远都不完美)。

问题:解决此问题的最佳布样是什么?


1
我将不得不留意这个问题。...如果实现了一个有趣的答案,我可以在www.spoonflower.com(或类似的服务)中预测面料的订购情况,并且很难看一下要添加的衬衫到我的收藏中;-)
RBerteig

一个有趣的模式竞赛项目可能是:1)拍摄这种模式的高清图像2)旋转它,随机地拍摄它的一部分(以随机比例),模糊一点,添加一点噪点和小的随机颜色偏差3)用JPG压缩4)查看文件大小,计算有关质量损失的指标,并使用这些指标计算“得分”。5)重复许多次以达到该模式的平均得分6)与其他模式重复并比较得分
Nicolas Raoul 2012年

1
由于有损算法总是可以通过丢掉更多数据来进行更多压缩,因此,使用依赖于高频细节的模式似乎会让您更加幸运。例如,细线。换句话说,它可以很好地压缩,但是质量会很快下降。我想取决于您要完成的工作。想一想指纹-这是一个经典案例,由于需要保留细节,因此需要小波才能对JPEG进行良好的压缩。
datageist

@datageist:一张布有线的图片(原始摄像机输出)可能难以压缩,但是向后退一步,拍摄另一张图片:它将仅包含灰色像素,非常容易压缩而几乎没有损失。我要寻找的图案必须导致难以在大范围内压缩的图片(原始相机输出)。
尼古拉斯·拉乌尔

@NicolasRaoul对,我明白了,我只是说,如果您丢掉足够多的信息,任何东西都是可压缩的。您是否只想要一种具有“难以压缩”(即很有趣)的区别的图案,还是您要积极地劝阻人们不要尝试压缩包含该图案的图像?
datageist

Answers:


15

噪点相当好(很难压缩),但是从远处看时会变成灰色,易于压缩。一个好的图案将是分形的,在所有尺度上看起来都是相似的。

好吧,这里有分形噪声。我认为布朗噪声是分形的,放大时看起来一样。Wikipedia谈论以不同的比例在其自身上添加Perlin噪声以产生分形噪声,这也许是相同的,但我不确定:

珀林分形噪声

不过,我认为这很难压缩。噪声困难的无损压缩,但JPEG是有损的,所以它只是要扔掉的细节,而不是与它挣扎。我不确定是否可以制作出“难以压缩JPEG”的内容,因为它只会忽略在该质量级别上难以压缩的任何内容。

带有任意大小的坚硬边缘的东西可能会更好,例如无限棋盘平面:

无限棋盘平面

也有很多颜色的东西。也许看实际的分形而不是分形噪声。也许是蒙德里安分形?:)

蒙德里安分形


1
非常感谢!分形噪声绝对是我一直在寻找的东西,但是在我的测试中,它被很好地压缩了,我猜想它可能会使用更突然的过渡,而不是像热图一样的平滑度。棋盘的问题在于,性能实际上取决于照片中拍摄的布料的哪一部分。蒙德里安分形非常好,到目前为止我的测试中表现最好。也许它可以使用更多的颜色和稍微不同的参数。
尼古拉斯·拉乌尔

@NicolasRaoul:嗯。也许Sierpinski地毯颜色?那已经是常见的被子图案了。
endolith

Sierpinski三角形或正方形的细分可能确实很棒!
尼古拉斯·拉乌尔

14

如果我们谈论计算机生成的图像,那么噪声将是正确的方法。但是这里有相机捕获步骤。

由于尺度不变性问题,分形位非常重要。但是,如果您考虑要在有限的距离范围内拍摄人物,则不必一定要分形。我的意思是,如果穿着衣服的人在图片的背景中,那反正不会有太大的影响...

我认为,诱骗JPEG编码器的最佳方法是使用具有很高高频系数的块,这些块将承受量化=许多细节和锐利边缘;因此必须显式写入整个系数序列(而不是第15个系数处的EOB)。棋盘格图案是实现此目的的好方法。我唯一看到的缺点是镜头的低分辨率+相机的抗锯齿滤镜很容易使图像模糊!一切都应在8x8块(或色度方式为16x16块)内进行,因为JPEG在宏尺度上的作用不大。无论镜头变得多么模糊,都必须使8x8块尽可能地凌乱。

这是一个建议:

比例尺不变,难以JPEG压缩的图案

您可能想知道这里对比度较低的块在做什么,但是当物体缩小时,它们有助于保持对比度区域。这里的挑战是,无论观看比例如何,都需要具有对比的图案。

我尚未对此进行正式评估。最好的方法是有一个脚本来拍摄图像,应用带有各种参数的许多裁切/调整大小/模糊效果,并吐出JPEG的总大小。


非常感谢!看起来与我在问题中的图片概念非常相似,但更好。“分形”是因子4的任何特定原因?比因子2好吗?
Nicolas Raoul

没有理由,我只是试图用更多的颜色使其看起来更漂亮,所以我以4x4正方形开始。
pichenettes 2012年

有什么理由选择正方形而不是三角形?我现在正在尝试,三角形产生许多尖锐的边缘,我认为这是个好主意。用混合三角形→菱形→六角形→三角形的方法可以达到较低的“分形”。我认为低系数是一件好事,因为它会增加相机检测高达其分辨率极限的尖锐形状的可能性。
Nicolas Raoul

平方是最容易编写的代码。我不确定其他形状是否具有比正方形更好的“边缘密度”。
pichenettes 2012年

11

JPEG可利用和Transform Compressible之间存在区别。

以电视机的白色颗粒状噪声为例。

一般的白噪声在频率上最大程度地扩展,因此没有比任何变换域编码技术都无法压缩的白噪声更好的例子。如果采用这种噪声并采用DCT(如果需要,则采用DFT),我们会发现频域也很宽,所有系数都很重要。

但是,仍然没有人阻止您积极进行量化。这样,您仍然可以从高频区域丢弃大量的垃圾。结果将产生严重的均方误差。但是,从感觉上讲,它仍然是噪音。但是,它可能会严重模糊。

另一方面,现在在有锐利边缘的地方拍摄图像。

尖锐的边缘也将以较高的频率扩散(但可能会比前一种情况少一点)。但是,在尝试压缩它并降低高频时,现在在视觉上会存在严重的障碍。它将导致边缘模糊,振铃效果等。虽然此类图像的带宽扩展不是最大可能,但对于JPEG或任何此类等效的压缩,要使此类图像在感知上保持相等的质量将很困难。

对于任何有损压缩,坚硬和简单取决于所允许的失真程度和类型。


假设我的结构是一张10 ^ 8x10 ^ 8的随机黑白像素表格。相机将拍摄10x10像素的织物图片。从统计上讲,这个10x10的图像难道所有像素都不都是非常相似的灰色,因此比不那么均匀的图像更容易以更少的失真进行压缩吗?
Nicolas Raoul

10

以下组成显示了图案的分形类型结构。每一张下一张图片是对上一张的每个2x2像素块求平均的结果。图案的总体特征保持不变,但是图像对比度逐渐降低。如前所述,当我们缩小时,图片变成灰色。

缩放行为

但是使用分形特性,我们可以将几种不同分辨率的图案叠加在一起,以保持图像对比度在所需范围内稳定。以下是4层图案(512x512 GIF)的示例。此结果更接近布朗噪声,并且几乎也无法JPEG可压缩。

4层组合


5

我的猜测是,最差的可压缩模式将是白噪声(均匀分布)。它需要在不同的分辨率下看起来嘈杂,因此您可以在比例空间中创建嘈杂的图像,然后将它们放在一起:

一世=一世ññ一世G一世

在这里一世ñ一世一世G一世一世σ

构造这种图像的更好方法可能是直接在频域中工作,因此:

  1. 创建充满白噪声的图像。
  2. 对图像执行8x8块IDCT(离散余弦逆变换)。

结果将是JPEG的可压缩模式最差,因为它在DCT域中具有最高的熵。但是我不确定在不同分辨率下它会如何表现。


5

IIRC,指定了JPEG解压缩算法,但是没有指定精确的压缩算法。不同的算法可以生成合法的JPEG文件。因此,您将需要在所选的图像压缩器上对此进行测试。

任何东西都可以通过有损压缩器(例如JPEG)以相同的量压缩。只是,在任何固定的压缩级别,压缩的质量可能会有所不同(解压缩结果中的噪声或错误会增加),具体取决于图像。因此,您需要一种能够将最大噪声添加到解压缩结果中的东西。为此,您需要最大的误差来消除高频宏块系数并量化任何系数。

这可能意味着变化和高频纠察线,以及变化的灰度和色阶,这些变化恰好在给定的压缩器在某些给定设置的可能量化级别之间。

由于您希望它在任何照明条件下都可以在任何距离工作,因此您将需要改变桩的频率(也许是分形的,或者可能只是通过随机频率调制而变斜),以及颜色和灰度等级(非相干,例如改变颜色和级别独立)。色调差异将更少地取决于距离,因此对于您选择的量化器而言,只需要选择那些以使其更糟。颜色图案的平均大小可以是亮度图案的大小的两倍,以匹配4:1:1(区域)YUV宏块组成。

我将从一堆高度彩色的莫尔条纹图案开始,它们以不同的比例覆盖和/或分形地拼凑在一起。


2

让我分享频谱非常平坦的图案(例如白噪声)。因此,很难用JPG压缩此模式。下面的示例图像放大了4倍。

模式本身是规则的,但不是周期性的,可以通过确定性算法轻松生成。它也具有分形特性。

具有准白噪声频谱的非周期性模式

从远处看: 原版的 远


2

随机噪声的压缩确实非常差。您可以通过生成独立的R,G,B值以彩色方式生成它。

从远处看,确实可以消除噪声(通过低通滤波),并且可以通过生成不同分辨率的噪声图像(即使用越来越大的像素并将其叠加)来避免这种情况。

添加图像时,您会遇到值范围的问题,该范围随着图像数量的增加而增大,让N。如果仅对它们进行平均,则噪声幅度将减小为1 / N。

如果选择不相关的均匀噪声,则叠加将导致准高斯分布具有√N标准偏差,因此,可以除以√N(使用适当的重新定心)来代替N,以限制幅度减小。

最后,我想最好让这些值环绕而不是使它们饱和,因为饱和的值将形成较大的均匀区域。


2

这是另一种获得RGB布朗噪声(4096x4096 GIF)的方法。 RGB布朗噪声


0

令人惊讶的问题!从概念上讲,白噪声是按时间标度不变的信号。同样,分形在缩放大小时也不会改变。有损压缩过程仅占用了最重要的频谱(时间或大小),而不是全部频谱,因此,分形和噪音闻起来像饼干。因此,您应该使用织物的颜色和图案,它们必须是分形的,并且分形的行为必须是随机产生的白色。您应该得到一种在照片中看起来是黑色的织物(在CMY颜色空间中),但在现实世界中,它具有彩色图案。

祝好运!,如果您收到答案,请张贴!!!


“您应该得到照片中看起来是黑色的织物” <-在这种情况下,它是否易于压缩?
Nicolas Raoul '18
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.