京东DPG图片压缩调研

本文探讨了京东的DPG图片压缩格式,实际上DPG是JPEG的一种形式,具有良好的兼容性。研究发现DPG在京东能比原JPEG小70%,但细节处理可能导致文字模糊。相较于WebP,DPG在某些情况下文件大小更大,压缩效果并不占优。京东的DPG技术可能借鉴了HEIF,具体实现仍有待深入研究。
部署运行你感兴趣的模型镜像

最近搜狐科技报道了京东推出了一种新的dpg图片压缩格式,文中的主要观点如下:
在不牺牲清晰度的前提下:

  1. dpg比jpg体积小65%
  2. dpg比webp体积小50%
  3. dpg有jpg同样优秀的兼容性
    针对以上观点,我做了如下调研:

dpg与jpg比较

首先,dpg并不是一种全新的图片格式,它就是jpeg,这点我们用GraphicsMagick的命令行工具可以清楚地看出:

[zhyang@localhost dpg]$ gm identify -verbose 59659caaN127f5381.jpg.dpg
Image: 59659caaN127f5381.jpg.dpg
Format: JPEG (Joint Photographic Experts Group JFIF format)
Geometry: 790x743
......

这也就解释了第3点兼容性的问题。
文中报道,原图大小是306740字节,dpg压缩图大小是120038字节,dpg图比原图大幅减小约61%。这有一部分原因是因为dpg图比原图使用了更小的压缩质量因子q(注:质量因子越大,图片质量越高,文件也越大)和采样因子:
原图

[zhyang@localhost dpg]$ gm identify -verbose 59659caaN127f5381.jpg
......
JPEG-Quality: 94
JPEG-Colorspace: 2
JPEG-Colorspace-Name: RGB
JPEG-Sampling-factors: 1x1,1x1,1x1

dpg压缩图

[zhyang@localhost dpg]$ gm identify -verbose 59659caaN127f5381.jpg.dpg
......
JPEG-Quality: 86
JPEG-Colorspace: 2
JPEG-Colorspace-Name: RGB
JPEG-Sampling-factors: 2x2,1x1,1x1

若用标准libjpeg库,采用与dpg相同的q和采样因子压缩后,图片的大小为166549字节。dpg压缩图比标准jpeg压缩图小27.9%.
为了进一步比较两者的压缩效果,引入广泛使用的客观评价指标SSIM注:SSIM值反映了压缩图相对原图的扭曲程度, 值越小扭曲越大):
DPG压缩图SSIM值:

(R, G & B SSIM index)
89.8812%
95.3736%
91.6946%

libjpeg压缩图SSIM值:

(R, G & B SSIM index)
91.2599%
96.8804%
93.4639%

从SSIM值上看,q=86时,libjpeg压缩效果要比dpg好。若继续降低libjpeg压缩质量因子q以逼近dpg的SSIM值,可得到q=79时,两者SSIM值接近,此时文件大小为130753字节,dpg压缩图比其小8.2%左右

dpg与webp比较

京东webp压缩图大小为220408字节,dpg图比其小45.5%左右。
由于无法从结果图获取具体的压缩质量q和其他压缩参数,这里使用webp默认的压缩参数和压缩质量q=86进行压缩,此时文件大小为130818字节,dpg图比webp图小8.2%左右。可以肯定的是京东webp压缩质量因子一定大于86,预估在94左右。
q=86时,webp图与原图比较的SSIM值为:

(R, G & B SSIM index)
91.699%
97.0325%
93.826%

显然,从SSIM值上,q=86的webp压缩效果要优于dpg.
若进一步降低q以比较dpg的SSIM值,可得当q=78时,webp图片大小为99942字节。此时,dpg比webp大26.4%左右

更多图片比较

为了进一步评估dpg的效果,我从京东选取更多的图片进行测试,并有意识挑选了尺寸相差较大的图片。测试步骤如下:

  1. 下载原图和dpg图(在原图后加上.dpg后缀),比较两个图片的大小;
  2. 计算dpg图与原图的SSIM值;
  3. 利用libjpeg压缩原图,通过迭代减小压缩因子方式使jpeg与原图的SSIM值逼近第2步的值,并与dpg文件大小作比较;
  4. 用与第3步相似的步骤,逼近获得webp的压缩因子和文件,并与dpg大小作比较。
    测试结果见附录。从结果中不难看出,dpg比libjpeg压缩后的文件要小10%-20%左右,但比webp要大约15%左右。dpg相比libjpeg还是取得了不错的效果。但在测试过程中也发现,部分dpg图相比较原图,色彩和细节部分有所丢失,显得画面有一些糊,一定程度上影响了感官,尤其在图中存在文字的情况下尤为明显,在测试数据中也表现为SSIM值较低。这一部分原因是因为dpg使用的采样因子比原图低,更主要的原因个人认为是dpg有意平滑了部分细节,毕竟存储这些细节肯定需要更多的字节数。
    (注:将原图和dpg图贴在两个窗口中来回切换看尤为明显)

    原图

     

    dpg图

     

    原图

     

    dpg图

     

    原图

     

    dpg图

总结

1. dpg不是新的图片格式,它就是jpg,因此具有良好的兼容性;
2. dpg在京东能比jpg原图小70%,一部分原因是原图参数设置较高,如果拉倒同一起点,测试显示dpg比标准jpeg库小约10-20%,这个提升已经非常不错;
3. dpg会平滑图片中的细节,导致图片中的文字变糊。考虑到京东大都是商品细节描述的图片,如果这个问题得不到改善,个人认为能否在京东大规模应用,还是个未知数;
4. 测试显示dpg并没有比webp强,京东能有50%的下降同样是因为京东webp设置参数较高,不在同一起点。

dpg技术实现

由于京东并没有开源dpg压缩算法,搜狐的文章也只是简单说明一下是借鉴了heif的技术。
这里可以先看一下webp官方给出的为什么webp能比jpeg小的原因:

Why WebP (lossy) is Better than JPEG

Prediction coding is a main reason WebP wins over JPEG. Block adaptive quantization makes a big difference, too. Filtering helps at mid/low bitrates. Boolean arithmetic encoding provides 5%-10% compression gains compared to Huffman encoding.

从中可以看出编码部分对于size减小的贡献有限,主要在预测和滤波部分。heif与webp原理是相通的,所以是不是dpg利用了heif即hevc的帧内预测和滤波技术消除图片中冗余的数据量后,再用jpg编码?这还需要进一步研究。

附录

dpg详细测试数据

原图原图尺寸原图大小原图质量dpg图大小(比原图增大)dpg平均SSIMdpg质量jpeg大小(比dpg增大)jpeg质量webp大小(比dpg增大)webp质量
原图325x4301053699923244(-77.94%)94.20%8629184(25.55%)8318636(-19.82%)85
原图350x3501024009820172(-80.30%)89.05%8622016(9.14%)7424473(21.32%)85
原图350x350234498613107(-44.10%)94.92%8613824(5.47%)7114745(12.50%)85
原图247x24117715995836(-67.06%)99.12%867577(29.83%)833891(-33.33%)85
原图350x350360449512288(-65.91%)95.64%8615360(25.00%)849318(-24.17%)85
原图350x350360449512288(-65.91%)95.64%8615360(25.00%)849318(-24.17%)85
原图350x350349189314540(-58.36%)97.34%8616281(11.97%)7612902(-11.27%)85
原图750x276177291599192000(-75.16%)98.17%86230195(19.89%)84141721(-26.19%)85
原图160x16010035933993(-60.21%)92.80%864300(7.69%)783072(-23.07%)85
原图450x450400389316486(-58.82%)97.37%8619660(19.25%)8310035(-39.13%)85
原图750x296338707299101683(-73.73%)98.99%86113664(11.78%)8164921(-36.15%)85
原图750x296338707299101683(-73.73%)98.99%86113664(11.78%)8164921(-36.15%)85
原图450x450521219913824(-73.48%)98.44%8615052(8.88%)739932(-28.15%)85
原图750x113967655699114790(-83.03%)94.49%86164761(43.53%)81103424(-9.90%)85
原图160x16017203994096(-76.19%)97.10%864096(0.00%)753276(-20.02%)85
原图450x450993289920275(-79.59%)97.03%8620684(2.02%)7614848(-26.77%)85
原图750x6331062919533484(-68.50%)95.88%8637888(13.15%)7825088(-25.07%)85
原图220x22026316978704(-66.93%)96.15%8610035(15.29%)817577(-12.95%)85
原图160x1608601992560(-70.24%)97.82%862150(-16.02%)442150(-16.02%)85
原图450x450524289914745(-71.88%)98.60%8613824(-6.25%)6513824(-6.25%)85
原图750x6932226179956729(-74.52%)95.73%8667788(19.49%)8155193(-2.71%)85
原图160x16017817993993(-77.59%)97.17%865222(30.78%)863072(-23.07%)85
原图450x4501779719927033(-84.81%)93.84%8631334(15.91%)7923654(-12.50%)85
原图240x240224259010854(-51.60%)94.14%8610649(-1.89%)7112083(11.32%)85
原图350x350329729014643(-55.59%)96.22%8614848(1.40%)6616486(12.59%)85
原图790x160095139899175206(-81.58%)94.18%86216678(23.67%)80165990(-5.26%)85
原图160x16017100974710(-72.46%)92.78%865427(15.22%)804403(-6.52%)85
原图350x3501323009918841(-85.76%)92.60%8621811(15.76%)7819251(2.18%)85
原图750x6541632259369632(-57.34%)93.00%8685504(22.79%)8261952(-11.03%)85
原图749x8821879049388883(-52.70%)95.14%86108134(21.66%)8377414(-12.90%)85
原图160x16021299994096(-80.77%)96.17%864710(14.99%)783686(-10.01%)85
原图350x350793609911878(-85.03%)96.63%8613312(12.07%)769728(-18.10%)85
原图180x18028057976144(-78.10%)91.06%867987(30.00%)845939(-3.34%)85
原图350x350873479716281(-81.36%)90.02%8619660(20.75%)8017305(6.29%)85
原图750x9514178949799635(-76.16%)91.79%86115302(15.72%)80100352(0.72%)85
原图180x18041984996348(-84.88%)87.72%868089(27.43%)836451(1.62%)85
原图350x3501423369917817(-87.48%)88.02%8623142(29.89%)8219558(9.77%)85
原图790x80848476199103731(-78.60%)92.38%86126156(21.62%)8484787(-18.26%)85
原图240x240480259811468(-76.12%)95.97%8611980(4.46%)7611161(-2.68%)85
原图350x350583689814028(-75.97%)97.03%8614848(5.85%)7711980(-14.60%)85
原图990x120853964898113561(-78.96%)94.17%86114278(0.63%)69109363(-3.70%)85
原图160x16023552995427(-76.96%)96.15%866041(11.31%)774915(-9.43%)85
原图350x3501290249922425(-82.62%)90.79%8624985(11.42%)8018534(-17.35%)85
原图800x8003440649950790(-85.24%)96.47%8677721(53.02%)8336556(-28.03%)85
原图160x16024268994812(-80.17%)87.04%865734(19.16%)833686(-23.40%)85
原图350x350990209915155(-84.70%)84.69%8614848(-2.03%)7214438(-4.73%)85
原图750x75020520992104550(-49.05%)92.68%86161484(54.46%)8487859(-15.96%)85
原图283x1577680863481(-54.67%)95.26%863891(11.78%)713174(-8.82%)85
原图645x376265218611776(-55.60%)93.39%864300(-63.49%)188908(-24.35%)85
原图240x12012185866963(-42.86%)91.32%867475(7.35%)737372(5.87%)85
原图292x15713209866860(-48.07%)89.57%865120(-25.36%)527884(14.93%)85
原图645x376502788625292(-49.70%)89.69%8611059(-56.27%)2624985(-1.21%)85
原图240x12013824867782(-43.71%)87.91%868294(6.58%)739011(15.79%)85
原图240x12012902867782(-39.68%)92.68%867884(1.31%)729113(17.10%)85
原图338x220720899914950(-79.26%)93.99%8618022(20.55%)8214950(0.00%)85
原图350x350848899039424(-53.56%)84.98%8638502(-2.34%)7847104(19.48%)85
原图790x98646817299119808(-74.41%)97.07%86138854(15.90%)84100966(-15.73%)85
原图338x2201111049924780(-77.70%)92.60%8629696(19.84%)8427238(9.92%)85
原图292x157200708611878(-40.82%)82.70%864812(-59.49%)2113721(15.52%)85
原图240x1209830865632(-42.71%)91.49%866144(9.09%)726553(16.35%)85
原图107x1074403862355(-46.51%)92.57%862457(4.33%)712560(8.70%)85
原图380x272313348615974(-49.02%)91.09%8615872(-0.64%)7116691(4.49%)85
原图292x157180228610342(-42.61%)94.54%8611059(6.93%)7311264(8.92%)85
原图240x12014336868396(-41.43%)89.84%868806(4.88%)739318(10.98%)85
原图107x1075017862764(-44.91%)92.64%862867(3.73%)722867(3.73%)85
原图240x12011366866246(-45.05%)92.92%866758(8.20%)736860(9.83%)85

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大优盾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值