网站首页 > 编程文章 正文
网络直播、小视频、微电影……各种视频资源满天飞的今天,很少人会注意到图片领域的改变,当人们惊叹于美图秀秀股价翻番的同时,有注意过JPEG格式已经称霸图片领域多年了,有想过一些改变或革新正在发生吗?
JPEG图片将成为历史?
据国外媒体报道,谷歌开发了并开源了一种新的JPEG算法,该算法可将文件大小减少大约35%,或者在保持文件大小不变的情况下显著提高图像质量。重要的是,与WebP和WebM等其他图像压缩方式不同,谷歌新的JPEG算法与现有的浏览器、设备、照片、编辑应用和JPEG标准完全兼容。
这让人们想起了多年来的音频格式,WAV、MP3、RA、RMA……每一次音频格式的进步,都是以追求更好的音质、更小的体积为目标的,虽然一张JPEG图片容量很小,但何尝不是有升级或者改变的空间呢?
谷歌这种新的JPEG编码器被称为Guetzli。Guetzli是瑞士德语“曲奇”的意思,这也许是因为该项目是由谷歌研发部门GoogleResearch的苏黎世办事处负责开发的。
图片质量和容量双飙升?
有许多方法可以调整JPEG图像质量和文件大小,但Guetzli专注于压缩的分层阶段。简单地说,分层是一种尝试将大量无序数据(难以压缩)转换成有序数据(非常容易压缩)的过程。在JPEG的编码过程中,通常将柔和的颜色渐变简化为单个色块,并且完全消除其中的小细节。
这个过程的困难之处是在消除细节与缩小文件之间找到平衡。在这一点上,每一种有损编码器(如libjpeg、x264、lame)的做法都不一样。根据Google Research的描述,Guetzli使用了一个新的心理视觉模型(名为Butteraugli),以确定哪些颜色和细节要保留,哪些要消除。在这种情况下,心理视觉意味着它基于人类的视觉处理系统。Butteraugli的确切细节隐藏在数百个高精度常数中,这些常数产生了一个近似颜色感知和视觉掩蔽的模型。
然而,我们不知道的Google Research是如何计算出这些高精度常数的,它们似乎是计算机生成的,或者至少是计算机优化的。虽然Guetzli的主要作用是缩小文件尺寸,但Google Research认为它也可以用于在保持文件大小不变的情况下提高JPEG图像的质量。当研究人员对Guetzli编码的图像和libjpeg(一个流行的开源编码器)编码的图像进行对比评估时,75%的参与者更喜欢Guetzli。
图片的确是该革新的时候了
.jpeg/.jpg是最常用的图像文件格式,由一个软件开发联合会组织制定,是一种有损压缩格式,能够将图像压缩在很小的储存空间,图像中重复或不重要的资料会被丢失,因此容易造成图像数据的损伤。尤其是使用过高的压缩比例,将使最终解压缩后恢复的图像质量明显降低,如果追求高品质图像,不宜采用过高压缩比例。
既然是有损压缩,必然会涉及画面画质的削弱,这点同音频格式比较类似,只不过人们很少注意图片领域的技术革新罢了。而这一次,谷歌如果能够成功,必然带来整个图片领域应用的革新。
如今手机随意都能选择2K、4K分辨率拍摄照片,人们追求画质的同时,多少也开始留意图片大小对于设备存储空间的压力了,压缩图片大小的同时,尽可能提升图片品质,Guetzli这样的编码或许真能在不久的将来流行起来,而JPEG会不会改名换姓还真不好说。
电脑报新媒体:张毅
点击下方阅读原文,关注电脑报新媒体矩阵更多精彩
猜你喜欢
- 2024-09-08 技术分享| 如何使用FFmpeg命令处理音视频
- 2024-09-08 ubuntu ffmpeg开发环境搭建(ffmpeg linux开发)
- 2024-09-08 嘉宾博文:OpenCV如何在区块链操作系统中进行交叉编译
- 2024-09-08 想做人工智能的你,OpenCV安装好了吗?AI大神手把手教会你
- 2024-09-08 Kotlin编写一个AudioMerger 在线音视频解析七
- 2024-09-08 FFmpeg中与视频解码相关知识简介(ffmpeg hevc解码)
- 2024-09-08 ffmpeg教程-手把手教你如何简单快捷处理音视屏
- 2024-09-08 C++与音视频处理: 处理音频和视频数据的编码和解码
- 2024-09-08 ffmpeg安装大放送,包括编译需要的支持库
- 2024-09-08 ffmpeg推流桌面直播(ffmpeg推流rtsp命令)
你 发表评论:
欢迎- 05-09Spring Boot3 RESTful 接口参数校验,这篇吃透就够了!
- 05-09《Spring6》第02节:基于XML方式搭建Spring6框架开发环境
- 05-09MapStruct架构设计(mapstruct @mapping)
- 05-09分布式微服务架构组件(分布式微服务架构设计)
- 05-09Java Swing组件下的JButton实例(java swing 组件)
- 05-09java基础都在这了,小主们拿去吧(java基础是指什么)
- 05-09AOP的实现落地(拦截过滤),一切都要从Servlet说起
- 05-09【Spring Boot】WebSocket 的 6 种集成方式
- 最近发表
-
- Spring Boot3 RESTful 接口参数校验,这篇吃透就够了!
- 《Spring6》第02节:基于XML方式搭建Spring6框架开发环境
- MapStruct架构设计(mapstruct @mapping)
- 分布式微服务架构组件(分布式微服务架构设计)
- Java Swing组件下的JButton实例(java swing 组件)
- java基础都在这了,小主们拿去吧(java基础是指什么)
- AOP的实现落地(拦截过滤),一切都要从Servlet说起
- 【Spring Boot】WebSocket 的 6 种集成方式
- Java 中五种最常见加密算法:原理、应用与代码实现
- 用注解进行参数校验,spring validation介绍、使用、实现原理分析
- 标签列表
-
- spire.doc (59)
- system.data.oracleclient (61)
- 按键小精灵源码提取 (66)
- pyqt5designer教程 (65)
- 联想刷bios工具 (66)
- c#源码 (64)
- graphics.h头文件 (62)
- mysqldump下载 (66)
- sqljdbc4.jar下载 (56)
- libmp3lame (60)
- maven3.3.9 (63)
- 二调符号库 (57)
- 苹果ios字体下载 (56)
- git.exe下载 (68)
- diskgenius_winpe (72)
- pythoncrc16 (57)
- solidworks宏文件下载 (59)
- qt帮助文档中文版 (73)
- satacontroller (66)
- hgcad (64)
- bootimg.exe (69)
- android-gif-drawable (62)
- axure9元件库免费下载 (57)
- libmysqlclient.so.18 (58)
- springbootdemo (64)
本文暂时没有评论,来添加一个吧(●'◡'●)