V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
3dwelcome
V2EX  ›  问与答

既然 AI 算法那么厉害,为什么几乎没人使用 AI 压缩图片算法呢?

  •  
  •   3dwelcome · 2022-02-22 13:06:57 +08:00 · 4518 次点击
    这是一个创建于 1039 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我查了一下 github ,有一个叫 CompressAI 的图片压缩实现库。

    有做到在相同的文件大小下,用 AI 算法加持,压缩效果很显著。

    可是不知道为什么,互联网还是在用 JPEG, PNG, WEBP 老一套。浏览器也完全没有让 AI 加入的意思。

    压缩效果对比图( AI 算法 VS JPEG 算法)
    33 条回复    2022-02-23 10:03:14 +08:00
    duke807
        1
    duke807  
       2022-02-22 13:08:26 +08:00 via Android   ❤️ 1
    ai 不確定性太強,容易抽風
    duke807
        2
    duke807  
       2022-02-22 13:10:05 +08:00 via Android   ❤️ 1
    而且,局部細節放大之後估計也沒法看

    而且 ai 輸出的內容不能稱之為真實
    kop1989smurf
        3
    kop1989smurf  
       2022-02-22 13:10:36 +08:00
    我个人理解其实答案很简单:没必要。
    1 、目前的 AI 是统计学,既然是统计学模型,那么必然有过拟合的风险。
    2 、目前的网络带宽硬件条件对极高压缩需求不旺盛。
    3dwelcome
        4
    3dwelcome  
    OP
       2022-02-22 13:10:43 +08:00
    @duke807 在游戏里,都是用 Nvidia AI 算法加强 4K 画质,受到玩家广泛好评。

    也没见 AI 抽风。

    我就搞不懂,互联网为什么不学学游戏行业。
    kop1989smurf
        5
    kop1989smurf  
       2022-02-22 13:12:41 +08:00
    @3dwelcome #4 你要了解 DLSS 的本质,目前的 DLSS2.3 ,已经不是统计学模型的时代了,是多帧合成时代。
    在 DLSS1.x 时,渲染 BUG 、延时时有发生。
    &ab_channel=%E6%9E%81%E5%AE%A2%E6%B9%BEGeekerwan
    3dwelcome
        6
    3dwelcome  
    OP
       2022-02-22 13:12:55 +08:00
    @kop1989smurf 也就是 google 大佬的一句话,只要在 chrome 新版本里支持 AI 压缩了。

    随着时间推移,以后也就慢慢普及了。

    现在 chrome 就是互联网未来发展的风向标。
    l0wkey
        7
    l0wkey  
       2022-02-22 13:13:26 +08:00
    主要是图片极度压缩的需求没那么强了
    duke807
        8
    duke807  
       2022-02-22 13:15:32 +08:00 via Android
    @3dwelcome 遊戲本來就不需要真實
    otakustay
        9
    otakustay  
       2022-02-22 13:16:35 +08:00
    AI 压缩不就是先把图片倍率缩小,再在渲染的时候 AI 提倍率嘛
    3dwelcome
        10
    3dwelcome  
    OP
       2022-02-22 13:17:07 +08:00
    @kop1989smurf 光一个图片压缩,只用统计学也没什么大问题。

    哪怕是 FSR 这种把 AI 训练模型转换成经验参数,在代码里给写死,最终也还是能提升一点图片画质的。
    duke807
        11
    duke807  
       2022-02-22 13:17:13 +08:00 via Android
    我說的真實是指 呈堂證供 那种
    YuiTH
        12
    YuiTH  
       2022-02-22 13:19:22 +08:00   ❤️ 1
    兄弟,跑 AI 不要钱的吗……这玩意跑起来和 JPEG 算法是一个量级的么……
    3dwelcome
        13
    3dwelcome  
    OP
       2022-02-22 13:25:46 +08:00
    @otakustay “AI 压缩不就是先把图片倍率缩小,再在渲染的时候 AI 提倍率嘛”

    好像不一样,super resolution 的 AI 和图片压缩的 AI 是两个算法。

    我看了一下文章,说的是把 rate–distortion optimization 最到最优,最后输出的是 Entropy Parameters.

    最大的区别,应该就是 SR 需要缩小图片,放大后的细节就是盲猜。而这个 AI 是保留细节为前提,最优化压缩率。
    Kagari
        14
    Kagari  
       2022-02-22 13:45:46 +08:00
    你发的项目不是有图吗,单纯只是 jpeg 太旧了,其他的差距没这么明显
    https://github.com/InterDigitalInc/CompressAI/raw/master/assets/kodak-psnr.png
    zeocax
        15
    zeocax  
       2022-02-22 13:57:50 +08:00   ❤️ 1
    因为算法只是算法,JPEG 2000......
    neohob
        16
    neohob  
       2022-02-22 15:17:22 +08:00
    现在已经不是追求传输速度的时代了,是追求低延迟的时代
    woctordho
        17
    woctordho  
       2022-02-22 16:08:00 +08:00 via Android
    因为硬盘容量和网速更厉害
    helone
        18
    helone  
       2022-02-22 16:11:55 +08:00
    解压图片也需要时间啊,你用 AI 能实现更小的图片,但是解压图片需要时间,有这时间就现在的带宽 10mb 的文件也下载完了啊,要放 56k 猫的时候还有点用,现在动不动就百兆千兆的,节省这点流量意义不大
    LeeReamond
        19
    LeeReamond  
       2022-02-22 16:23:16 +08:00 via Android   ❤️ 1
    1.图像压缩是比较特别的领域,基于频域的非 ai 算法也已经很深入,比如你想用淦搞个东西全方位吊打 hevc 基本是不太可能的事情,总会各处有不足,而 hevc 已经是十年前的标准了,吊打 sota 更不可能了。

    2.ai 有抽风问题,楼上说了,如果通过类似全局约束之类的手段避免抽风基本上又要全面性削弱表现

    3.二维图像评判标准很复杂,不光要看起来像那回事,具体比如你放大看细节也要保留,颜色也要准不能偏色,作为压缩的前置工作你起码还需要一个能衡量图像质量的网络,而事实上这部分工作到今天也没有被很漂亮地完成

    4.压缩对性能有要求

    5.标准普及有困难,比如 hevc 之于 avc 的现状,以及只有少数企业自嗨的 av1 等等,再比如 heic 提出这么多年 90%的软硬件平台还不是不支持
    3dwelcome
        20
    3dwelcome  
    OP
       2022-02-22 16:32:16 +08:00
    @LeeReamond 你说的这些问题,游戏行业也有。但人家行业就是热衷研究和发布各种图形新格式,乐此不疲。

    比如微软的 BC 系列新算法,苹果的 PVRTC 算法,OpenGL 的 ETC2 和 ASTC 算法。都能有效压缩图片。

    而前端 WEB 那么多年来,还是以 JPEG+PNG 占主流,再加一个近期的 WebP ,真是不思进取。
    vicalloy
        21
    vicalloy  
       2022-02-22 16:40:04 +08:00
    压缩速度、解压速度、库大小、压缩率、效果等都会影响压缩算法的使用。
    关于模型大小,你自己可以到 https://github.com/InterDigitalInc/CompressAI/blob/master/compressai/zoo/image.py 看一下 model_urls 里面给出的预训练模型。
    每种压缩率用的模型都不一样,为了支持多种压缩率,所有模型都得下。

    复杂度未知,AI 运算很吃 GPU ,可以预见甚至和 WebP 比速度也会慢不少。

    注:同等画质下 WebP 差不多只有 JPG 一般的大小,不过 WebP 压缩起来也非常慢,据说速度只有 JPG 的 1/10
    imn1
        22
    imn1  
       2022-02-22 16:40:44 +08:00
    怎么觉得好多人都不是活在现实世界的呢?理想资本主义实现了?

    成本:
    跑 AI 的成本,版权的成本
    okakuyang
        23
    okakuyang  
       2022-02-22 16:47:21 +08:00
    某些项目给你看的都是挑选过的结果,实际用起来能有十分之一的效果不错了。前端要的就是兼容性,闲的蛋疼花 1000%的力气去获得 1%的收益。
    icyalala
        24
    icyalala  
       2022-02-22 17:15:14 +08:00
    @3dwelcome 你提到游戏行业的、BC 、PVRTC 、ETC2 、ASTC 这些算法或格式都是由特定 GPU 硬件实现,为特定的使用场景(纹理压缩)设计的,不是作为通用图片格式来用的。

    那些 AI 算法,例如你到的 CompressAI ,和最新的 AV1 、HEVC 差距也没那么大,但编解码需要的计算量就不是一个量级的了。更何况 HEIF 、AVIF 现在都还没流行起来。
    LeeReamond
        25
    LeeReamond  
       2022-02-22 17:58:55 +08:00   ❤️ 1
    @3dwelcome 图形学跟图像学基本不搭边两个学科,我说的问题起码 1234 在游戏行业没有。稍微有点关联性的,比如建模一个人物然后给皮肤贴图,那就是不同场景不同需求,跟通用需求显然不一样。比如手游贴图就是不是为了给你放大看的,那么显然仅需要似是而非。或者黄油贴图就是为了给你放大看的,那么显然仅需要优化纹理,不知道为什么你认为都一样。
    3dwelcome
        26
    3dwelcome  
    OP
       2022-02-22 18:41:33 +08:00
    @LeeReamond 那就是每个人的认知问题不一样了。

    我觉得 BC7/ASTC 这种,就是微软研究院智慧的结晶,人家也不可能凭空发明新图片格式,都是经过各种失败尝试后,成功的果实。

    你网站里,一个解压后的图片是 JPG 还是 ASTC ,对用户来说完全是无感知的。更何况有 WASM 加持,一切解压算法,都能用 createObjectUrl 把图片变成一个 URL 地址。

    既然算法能压游戏贴图,同样也能压网站流量图片。图片本质都是像素,木有区别。
    Cmtter
        27
    Cmtter  
       2022-02-22 18:42:20 +08:00 via Android
    个人认为可能一个问题是没有统一的标准,
    一张 jpeg 的图,全世界人都可以直接打开,
    但一个被模型 encode 后的 vector 发给别人,需要解码的人同时也用这个模型 decode 出来,这个模型怎么同时让全世界的设备(从手机,电脑,服务器到那些裸机设备)都能接受和支持并高效的跑起来是个很大的问题
    3dwelcome
        28
    3dwelcome  
    OP
       2022-02-22 18:43:40 +08:00
    @Cmtter “这个模型怎么同时让全世界的设备(从手机,电脑,服务器到那些裸机设备)都能接受和支持并高效的跑起来是个很大的问题”

    WASM 是万能的,速度也足够快了。
    stoneabc
        29
    stoneabc  
       2022-02-22 19:02:20 +08:00   ❤️ 1
    @3dwelcome 什么鬼,你先了解下 ASTC 是怎么压缩的,和它的使用场景,再来和 JPEG 比…
    jin5354
        30
    jin5354  
       2022-02-22 19:07:24 +08:00
    因为 ROI 低呗,你自己衡量一下加这东西的成本有多大
    3dwelcome
        31
    3dwelcome  
    OP
       2022-02-22 21:04:56 +08:00
    @stoneabc

    所有的定义和使用场景,都是人为给予的。

    对于计算机来说,就是 0 和 1 ,图片处理是定长压缩算法,还是变长压缩算法。

    又或者是不是频域处理,一点都不重要。重要的是,ASTC 能很好的压图片,至少比 PNG 要好吧。
    wuxingli
        32
    wuxingli  
       2022-02-22 21:07:29 +08:00
    楼主说的这个让我想到了美剧:硅谷里面那个特别牛逼的算法 😂无损压缩音乐图片,最后还人工智能了,笑死
    Coelacanth
        33
    Coelacanth  
       2022-02-23 10:03:14 +08:00 via Android
    这几年有几篇论文跟这个思路其实是有点像的,大致就是用一个神经网络来拟合信号(图片,三维模型的本质都是信号),用连续的存储方式来代替不连续的存储存储。比如现在存储图片的方式还是离散的像素图片,但如果拿一个连续的函数来拟合这个图片,原则上你就可以用自己想要的精度来采样这个函数进而得到超高分辨率的图像。感兴趣的话可以看看 Siren 这篇 paper ,Implicit Function Representation 是现在很火的一个方向。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5530 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 06:53 · PVG 14:53 · LAX 22:53 · JFK 01:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.