177
社区成员
ELT.ZIP
团队,ELT<=>Elite(精英),.ZIP为压缩格式,ELT.ZIP即压缩精英。6个地方
的同学,我们在OpenHarmony成长计划啃论文俱乐部
里,与华为、软通动力、润和软件、拓维信息、深开鸿
等公司一起,学习和研究操作系统技术
... ① 2月23日 《老子到此一游系列》之 老子为什么是老子 —— ++综述视角解读压缩编码++
② 3月11日 《老子到此一游系列》之 老子带你看懂这些风景 —— ++多维探秘通用无损压缩++
③ 3月25日 《老子到此一游系列》之 老子见证的沧海桑田 —— ++轻翻那些永垂不朽的诗篇++
④ 4月4日 《老子到此一游系列》之 老子游玩了一条河 —— ++细数生活中的压缩点滴++
让你意想不到的 PNG 工作方式
详解 MPEG 十八代隐秘关系
AV1 | H.266 王座之战,谁才是最终赢家
不妨走走未曾设想的医学道路
细胞神经网络也可以很疯狂
懂了!原来这就是人眼视觉系统(HVS)
无损数据压缩
算法,使用 LZ 算法和霍夫曼编码
的组合,它是由 Jean-loup Gailly 和 Mark Adler 开发的流行 zlib库 的一部分。 Jean-loup Gailly 也在广泛使用的 gzip 算法中使用 deflate。deflate 算法也被用于 PNG 图像格式。
适应
的。我们从大小为 512 的字典开始。 这意味着传输的码字长度为 9 位。一旦字典填满,字典的大小将增加一倍,达到 1024 个条目。此时传输的码字有 10 位。字典越填越大,其大小逐渐增加一倍。通过这种方式,在编码过程的前一部分,当字典中的字符串不是很长时,用来编码它们的码字也会有更少的位。码字的最大大小 bmax 可由用户到 9 到 16 之间,16 位是默认值。一旦字典包含 2bmax 条目,压缩就成为一种静态字典编码
技术。此时,算法监视压缩比。如果压缩比低于阈值,则将刷新字典,并重新启动字典构建过程。这样,词典总是反映了源的地方特征
。好问题!上传 PNG(可移植网络图形)文件时,图像中的相似颜色将组合在一起
。这种技术称为“量化”。通过减少颜色数量,24 位 PNG 文件可以转换为小得多的 8 位索引彩色图像。所有不必要的元数据也被剥离。结果更好的PNG文件,100%支持透明度。
在上图中,文件大小减小了70%以上。我有极好的视力,但也无法发现差异!使用优化的图像来节省带宽和加载时间
。
PNG 标准是在互联网上开发的第一个标准之一。它的开发动机是 Unisys(它已经从 Sperry 那里获得了 LZW 的专利)和 CompuServe 在 1994 年 12 月的一项声明,他们将开始向支持 GIF 的软件作者收取版税。这一声明导致了数据压缩领域的一场革命,而这场革命正是 Usenet 压缩组的核心。社区决定开发一个无专利
的 GIF 替代品,三个月内,PNG 诞生了。(了解更多关于 PNG 和软件的详细历史,请访问由 Greg Roelof 维护的 PNG 网站http://www.libpng.org/pub/png/%E3%80%82)
创建 PNG 格式的动机是,1994 年 12 月 28 日,Unisys 获得了 Unisys 颁发的专利,即图形交换格式 GIF 中使用的 Lempel–Ziv-Welch (LZW) 数据压缩算法。该专利要求所有支持GIF的软件支付版税,导致Usenet用户的批评。
其中一位是Thomas Boutell,他于1995年1月4日在Usenet新闻组"comp.graphics"上发布了一个前身讨论线程,其中他设计了一个免费替代GIF的计划。流行的JPEG查看器QPEG的作者 Oliver Fromme 提出了 PING 名称,最终成为PNG,便携式网络图形(PNG)格式旨在取代较旧,更简单
的 GIF 格式,并在某种程度上取代更复杂
的 TIFF 格式。PNG is Not GIF.
后来实现的其他建议包括Deflate压缩算法和24位颜色支持,GIF中缺乏后者也激励团队创建他们的文件格式。该小组后来被称为PNG开发小组,随着讨论的迅速扩大,它后来使用了与 CompuServe 论坛相关的邮件列表。[2][8]
.png
iTXt
动画便携式网络图形
APNG 格式。APNG 是一种基于 Gecko 和 Presto 的Web浏览器本机支持的格式,也常用于索尼 PlayStation Portable 系统上的缩略图(使用正常的PNG文件扩展名)。图形控制扩展(GCE)
,该扩展允许以时间延迟绘制文件中的图(帧),从而形成视频剪辑。动画 GIF 中的每个帧都由其自己的 GCE 引入,该 GCE 指定在绘制帧后等待的时间延迟。默认情况下,动画仅显示一次帧序列,并在显示最后一帧时停止。2014年4月,4chan 增加了对大小小于3MB、长度小于2分钟的无声 WebM 视频的支持 [70][71],2014年10月,Imgur 开始将上传到该网站的所有GIF文件转换为视频,并为HTML播放器的链接提供带有扩展名的实际文件的外观。[72]73
聊完了GIF,我们再回到PNG。
PNG 使用 2 级压缩过程:
在应用 Deflate 之前,通过预测方法转换数据
。当前 PNG 规范中只有一种筛选器方法(表示为方法 0),因此在实践中,唯一的选择是将哪种筛选器类型应用于每行。对于此方法,筛选器根据先前相邻像素的值预测每个像素的值,并从实际值中减去像素的预测颜色。
PNG 使用 DEFLATE,这是一种非专利的无损数据压缩
算法,涉及LZ77和霍夫曼编码
的组合。许可DEFLATE实现,如 zlib ,是广泛使用的。
与具有有损压缩的格式(如 JPEG)相比,选择高于平均值的压缩设置会延迟处理,但通常不会导致文件大小明显变小。
编程接口
Deflate可以免费在很多编程语言中使用。C语言通常使用zlib库。C++语言可以使用7-Zip/AdvanceCOMP。Java语言包含在标准库java.util.zip中。Microsoft .NET Framework 2.0包含在System.IO.Compression命名空间中。
衍生产品
MNG的复杂性导致了Mozilla基金会开发人员提出APNG。
它基于 PNG,支持动画,比 MNG 更简单。今天,APNG 格式目前被所有主要的 Web 浏览器广泛支持。在 Firefox 3.0 及更高版本,Pale Moon(所有版本)中支持APNG,最新版本的 Opera 支持 APNG,因为引擎已更改为 Blink、iOS 8 和 Safari 8 for OS X Yosemite 上的最新版本的 Safari,它们使用支持 APNG 的 WebKit 引擎。Chromium 59.0 增加了对 APNG 的支持,紧随其后的是谷歌 Chrome 浏览器。Microsoft Edge 现在通过基于 Chromium 的新引擎支持 APNG。
一些信息丢失
的压缩,这便意味着原始信息一经有损压缩过程操作后,不能再由生成的序列重新还原而得到。在此之前,多数朋友潜意识里可能会默认有损压缩的意义是++相比无损压缩,为了实现更好的压缩比,致使对相同源数据操作后,得到的结果质量相对会更差++。其实呢,并非如此——举个常见的例子:对同一元图像,对其均按100%质量存储,得到的jpg格式大小可能是4M左右,而png格式大小却达到了40M。必需数据
。因此,++信息丢失并不意味着输出质量降低++。但,大多数有损压缩技术的使用方式高度依赖于被压缩的媒体,就像音频的有损压缩与图像的有损压缩十分不同。Huffman码、算术编码、游程编码、标量量化
等技术。摄影图像的标准
;MPEG是基于JPEG的一种变体,用于视频编码(每一帧都使用JPEG的变体编码)。二者均为有损格式。目前,视频编码方式主要分为三大系列:
格式 | 细节 |
---|---|
H.261 | 制定于1990年,主要在老的视频会议和视频电话 产品中使用 |
H.263 | 制定于1996年,主要用在视频会议、视频电话和网络视频 上 |
H.264 | 制定于2003年,MPEG-4第十部分,或称AVC(Advanced Video Coding),被广泛用于高精度视频录制、压缩及发布 |
H.265 | 制定于2013年,High Efficiency Video Coding,简称HEVC,支持4K到8K高画质分辨率,两倍于H.264的压缩率 |
H.266 | 制定于2020年,Versatile Video Coding,简称VVC,主面向4K到8K高画质分辨率,两倍于H.265的压缩率 |
格式 | 细节 |
---|---|
MPEG-1 | 制定于1992年,是VCD的视频图像压缩标准 |
MPEG-2 | 制定于1994年,是DVD/超级VCD的视频图像压缩标准 |
MPEG-3 | 由于MPEG-2的出色表现,已能适用于HDTV,使得原本为其设计的MPEG-3,还没出世便被抛弃了 |
MPEG-4 | 制定于1998年,是网络视频图像压缩标准之一,可使用在网络传输、广播和媒体存储,常见的就是MP4 |
联合摄影专家组
开发的图像压缩标准,目的是在不影响图像质量的情况下尽可能减少自然的、像照片一样的
真彩图像(每个像素值都分成R、G、B三个基色分量,每个基色分量直接决定其基色的强度)的文件大小,但它不能很好地处理双层(黑白)图像,也不能处理伪彩色图像(将实际是索引值的每个像素值作为色彩查找表CLUT中相应项的入口地址,再根据该地址查找出实际R、G、B的强度值)。JPEG在“连续色调”图像上效果最好,若是有许多跳跃的色值则效果不太好。信息集中分布在亮度而非色度
上的YCbCr分量模式。动态图像专家组
。理论上,因为视频流是离散图像序列,MPEG则使用这些连续帧之间的特殊或时间关系压缩视频流。基于之前许多方法,可见,一种技术越能有效利用一段数据中的某些关系,数据压缩的效果便越好。MPEG-1、MPEG-2、MPEG-4、MPEG-7及MPEG-21
。其委员会组建于1988年,专门负责为CD制定视频和音频标准。第一个公开标准是MPEG-1, ISO/IEC 11172,于 1993 年首次发布。新生部分和运动部分
的信息进行编码,如下图三个序列中的小人便是MPEG编码压缩时需要考虑的范畴。应用 | 细节 |
---|---|
有线、无线电视 | 一些电视系统通过线路传送MPEG-II程序 |
直播卫星 | MPEG视频流由碟形解码器接收,提取标准NTSC信号数据 |
媒体金库 | 供应商提供的视频点播系统,单台设备就能播放20万个MPEG编码电影 |
实时编码 | 结合特殊用途的并行硬件,实时编码器可花费10~30万元 |
随着互联网的数字视频消费的持续增长,包括UHD、VR和流媒体
等服务,以及社交网络的视频分享,电信基础设施的可用带宽正在接受挑战。AV1和H.266
是新一代视频格式,将被广泛应用从而应对以上问题。
开发开放、免版税
的多媒体交付技术的联盟。其在2018年发布了第一个视频压缩格式AV1,《++AV1 Video Codec | Alliance for Open Media++》,比其前身VP9的压缩能力增强了约30%。AV1格式已经得到了许多网络平台的支持,包括安卓、Chrome、微软Edge和火狐
,以及多个基于网络的视频服务提供商,包括YouTube、Netflix、Vimeo
,已经开始大规模推出AV1流媒体服务。从图中可以看到,相较于VP9与H.265,AV1编码效率有近30%的提升。
480p、720p、1080p、4K
的VP9编码格式和480p、720p、1080p
的AV1编码格式++视频样本++进行测试。对比VP9,AV1拥有更好的编码效率,其普及对于流视频具有重要意义,++用户可在带宽及消耗流量不变的情况下观看画面质量更清晰的视频++。
4K、8K
服务。简单来说,基于H.265编码的一段90分钟UHD 4K视频需要10GB左右,而基于 H.266 则仅需5GB。[1] Hosseini M . A Survey of Data Compression Algorithms and their Applications[C]// Applications of Advanced Algorithms. 2012.
[2] Han J , Li B , Mukherjee D , et al. A Technical Overview of AV1[J]. Proceedings of the IEEE, 2021, PP(99):1-28.
[3] Saldanha M , Correa M , Correa G , et al. An Overview of Dedicated Hardware Designs for State-of-the-Art AV1 and H.266/VVC Video Codecs[C]// 2020 27th IEEE International Conference on Electronics, Circuits and Systems (ICECS). IEEE, 2020.
[4] AV1编码质量初探
[5] H.266/VCC编码标准发布,4K/8K视频大小减半清晰度不变
[6] 视频格式与编码压缩标准 mpeg4,H.264.H.265 有什么关系?
[7] zlib Home Site
[8] TinyPNG – Compress WebP, PNG and JPEG images intelligently