V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
alwayshere
V2EX  ›  程序员

lofter 标示自己使用无损压缩技术,到底目前存不存在 JPEG 无损压缩技术?

  •  
  •   alwayshere · 2017-01-17 09:15:04 +08:00 · 6288 次点击
    这是一个创建于 2866 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今天看了看网易 LOFTER 首页: http://www.lofter.com,标示自己“使用无损图片压缩技术,上传图片保留高质量细节”,我就很好奇,因为我曾经把 github 翻了个底朝天都没翻出个 JPEG 无损压缩技术出来,都是有损压缩技术,抛开免费开源的,连大名鼎鼎商用的 jpegmini 也是有损压缩技术,难道网易真开发出了无损 JPEG 压缩技术,有开源的轮子吗各位 V 友?

    25 条回复    2017-01-18 09:22:39 +08:00
    Famio
        1
    Famio  
       2017-01-17 09:20:04 +08:00
    我记得 jpg 本身就是一种图像压缩标准。隐约记得图像的未压缩格式是 raw ,音频是 wav ,视频是 mov ……
    alwayshere
        2
    alwayshere  
    OP
       2017-01-17 09:21:47 +08:00
    @Famio 那 LOFTER 这种说法本身就是错误的吧
    nlzy
        3
    nlzy  
       2017-01-17 09:22:16 +08:00 via Android
    JPEG2000 格式支持无损压缩
    轮子 https://github.com/uclouvain/openjpeg
    Famio
        4
    Famio  
       2017-01-17 09:25:25 +08:00
    @alwayshere 我个人觉得是这样没错。但是 wiki 上有这么一段话你应该感兴趣:
    “ JPEG 的压缩方式通常是破坏性数据压缩( lossy compression ),意即在压缩过程中图像的质量会遭受到可见的破坏,有一种以 JPEG 为基础的标准 Lossless JPEG 是采用无损的压缩方式,但 Lossless JPEG 并没有受到广泛的支持。”
    AsisA
        5
    AsisA  
       2017-01-17 09:28:35 +08:00 via iPhone   ❤️ 1
    如果是无损,应该就是“上传图片保留一切细节”了吧…不过查了维基,还真有无损 jpg

    “ Lossless JPEG 是一種無失真的圖像壓縮標準,在 1993 年由 Joint Photographic Experts Group (聯合圖像專家小組)組織創建和維護,但是現在也可以用來代表 Joint Photographic Experts Group 所創建的無失真壓縮,包含了 JPEG 2000 還有 JPEG-LS 。”
    Famio
        6
    Famio  
       2017-01-17 09:31:43 +08:00
    @alwayshere @AsisA 没错,我无知了。还真有无损 jpg
    看说明是无损压缩的 jpg 在压缩后还可以恢复到压缩前的状态,这个有点厉害了。这帖等养肥了再来学习。
    ibegyourpardon
        7
    ibegyourpardon  
       2017-01-17 09:36:46 +08:00   ❤️ 1
    其实我一直觉得有损比无损高级……

    把重复的数据字节用更短的形式表达,实现体积缩小,并且可以根据该算法逆向推导出原始文件,这个倒好理解。

    但是有损是丢弃图像部分细节,却还保证基本的可视,而不是让图像直接崩掉,这个我才觉得更高级……

    不过具体实现细节是怎样我也没研究过,坐等养肥了学习。
    garipan
        8
    garipan  
       2017-01-17 09:37:17 +08:00 via iPhone   ❤️ 3
    我们平常使用的 jpg 全称 JPEG ,是联合图像专家小组 1992 年制订的有损压缩标准
    如 ls 所说, jpg2000 同样是联合图像专家小组制订的标准,但是文件后缀并不是 jpg ,而是 jp2 或者 j2c ,支持有损压缩、透明通道等。但是显然大多数浏览器都不支持这个格式
    无损压缩的压缩率是极其有限的,不是因为无损压缩不行,是因为 JPEG 有损压缩实在太厉害了,除了离散余弦变换、游程编码、 zigzag 编码、霍夫曼变换算法的牛逼以外,色度抽样压缩法针对人眼设计,可以在人眼几乎察觉不出的范围内压缩 90%以上的体积,但是这一过程,也相当于只保留了小数点后两位
    所以你看看他图片体积和格式其实就基本能看出是不是有损了,如果格式是 jpg ,那 100%是有损的。
    jianzhiyao020
        9
    jianzhiyao020  
       2017-01-17 09:38:04 +08:00
    无损压缩是很正常的,
    了解一下相关压缩技术就可以得知,
    只是一般用的压缩格式标准为了文件大小的极致追求上,
    优先考虑了牺牲可容忍的图片质量误差,
    通用的打包 zip 格式就是一个显然的无损压缩例子,
    如果说, zip 能实现,其他文件不也是同理了。
    garipan
        10
    garipan  
       2017-01-17 09:40:18 +08:00 via iPhone
    订正一下:并不只是色度抽样一个因素导致了 90%的体积压缩率,但这一步里包含了绝大部分信息的丢失。
    enenaaa
        11
    enenaaa  
       2017-01-17 09:57:57 +08:00
    楼上说的对,浏览器对 jpeg2000 的支持有限, 如果文件后缀是 jpg ,那 99%是扯淡。剩下 1%是把 png 后缀换成了 jpg
    zhidian
        12
    zhidian  
       2017-01-17 10:09:43 +08:00
    人家说无损,又没有说是 jpeg 无损。楼上说的那种直接压缩 zip 确实也算一种方案。(而且, Lofter 可以无损地存下你的图,不代表你浏览的时候都得要用你那张无损的啊。)
    zhidian
        13
    zhidian  
       2017-01-17 10:12:51 +08:00
    MIT 的 Linear Algebra 上大致讲了一种有损压缩方法,有点像傅立叶变换。(先找到图像像素最主要得到那个变化趋势,然后再不断设定频率更高的波的相位,来拟合原来的数据)
    crs0910
        14
    crs0910  
       2017-01-17 10:12:57 +08:00 via iPhone   ❤️ 2
    明显说的是上传图片不压缩。。
    garipan
        15
    garipan  
       2017-01-17 10:17:04 +08:00 via iPhone
    @zhidian 1992 年的 jpeg 就运用了傅立叶变换。和你说的一样。
    robbielj
        16
    robbielj  
       2017-01-17 10:20:20 +08:00 via iPhone
    dragonszy
        17
    dragonszy  
       2017-01-17 10:33:10 +08:00
    Lossy Image Compression with Deep Learning 深度学习压缩 JPEG

    The gold standard of compression for JPEGs (JPEG 2000) has been beaten for the first time by an approach using deep learning, built by a team at Twitter. Prepare to see many more iterations on this idea! Read the paper …
    JPEG 图片的黄金压缩标准 (JPEG 2000) 这么多年来第一次被打败。

    http://upload-images.jianshu.io/upload_images/551828-2d41f57092de2321.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240

    http://www.jianshu.com/p/d8ab4b25f2cc
    QAPTEAWH
        18
    QAPTEAWH  
       2017-01-17 10:47:57 +08:00
    试试就知道了,上传再下载回来,两张图做减法( PS 就行吧)
    Vizogood
        19
    Vizogood  
       2017-01-17 11:15:12 +08:00
    明明说的是上传文件(or 图片)不压缩而已
    dlllcs
        20
    dlllcs  
       2017-01-17 11:24:20 +08:00
    原文写的是:`使用无损图片压缩技术,上传图片保留高质量细节,当你手机处于 wifi 网络,将自动加载全高清图片。`

    意思是说,在服务器上保留了一份你上传的原件,如果你手机处于 wifi 网络下,就下载原件显示,如果不是,肯定就下载压缩过分辨率的图片喽
    knightlhs
        21
    knightlhs  
       2017-01-17 17:22:50 +08:00
    据我所知 lofter 用了很多 webP 格式的图片 不是 JPG 格式的
    congeec
        22
    congeec  
       2017-01-17 17:29:20 +08:00 via iPhone
    @ibegyourpardon compressive sensing 可以关注一下,现在好像在图像压缩领域还没怎么用
    kayr
        23
    kayr  
       2017-01-17 19:20:21 +08:00
    压缩感知并不是用在压缩的,而是可以看做在采集端就进行稀疏采样,以突破香农采样定理,目的是为了一步干完采样 压缩两件事。(主要用在医学图像)
    如果想要压缩的轮子自己玩玩,可以用 ffmpeg ,各种压缩标准的 lib 都有, jpeg , jpeg2000 , h.264 h.265
    soratadori
        24
    soratadori  
       2017-01-18 05:17:44 +08:00
    @ibegyourpardon 按逼格来说,无损应该更高级,毕竟这个是终极追求。
    按技术来说,无损压缩已经发展到了一个瓶颈,再花力气在上面也没啥意义,现在真正值得发展的是有损压缩。
    catror
        25
    catror  
       2017-01-18 09:22:39 +08:00 via Android
    安利一个新的无损压缩格式, FLIF , github 上能搜到
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5337 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 07:59 · PVG 15:59 · LAX 23:59 · JFK 02:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.