当前位置: 首页 > 科技观察

OpenHarmony吃纸会——一篇穿越多媒体前沿的文章_0

时间:2023-03-14 16:12:01 科技观察

更多信息请访问:51CTO与华为官方共建的鸿蒙技术社区https://ost.51cto。com【本期看点】一种意想不到的PNG处理方式。详细解释第十八代MPEG的隐藏关系。AV1|H.266的王位之争,谁才是最终的赢家。还不如走一条从来没有想过的医疗道路。CNN也可以很疯狂。知道了!原来这是人类视觉系统(HVS)。【技术DNA】【智能场景】无损压缩LZ编码应用概述LZ算法最流行的实现是最初由PhilKatz设计的deflate算法。Deflate是一种结合了LZ算法和霍夫曼编码的无损数据压缩算法,它是Jean-loupGailly和MarkAdler开发的流行zlib库的一部分。Jean-loupGailly在广泛使用的gzip算法中也使用了deflate。deflate算法也用于PNG图像格式。历史1.UNIX压缩命令是LZW最早的应用之一。字典的大小是自适应的。我们从大小为512的字典开始。这意味着传输的码字长度为9位。一旦字典满了,字典的大小就会翻倍,达到1024个条目。此时传输的码字有10位。字典越来越大,逐渐翻倍。这样,在编码过程的前期,当字典中的字符串不是很长时,用来编码的码字也会有较少的位数。码字bmax的最大大小可由用户设置在9到16之间,默认为16位。一旦字典包含2bmax个条目,压缩就变成了静态字典编码技术。此时,算法会监控压缩率。如果压缩率低于阈值,字典将被刷新并重新开始字典构建过程。这样,词典就始终反映出源的地方特征。2.图片压缩png格式是如何工作的?好问题!上传PNG(便携式网络图形)文件时,图像中相似的颜色将被归为一组。这种技术称为“量化”。通过减少颜色数量,可以将24位PNG文件转换为更小的8位索引彩色图像。所有不必要的元数据也被删除。结果是更好的PNG文件,100%支持透明度。在上图中,文件大小减少了70%以上。我的视力很好,但也看不出区别!优化的图像用于节省带宽和加载时间。PNG标准是最早在Internet上开发的标准之一。它的动机是1994年12月Unisys(它已经从Sperry获得了LZW专利)和CompuServe宣布他们将开始向支持GIF的软件作者收取版税。这一宣布引发了数据压缩领域的一场革命,而这正是Usenet压缩小组的核心。社区决定开发一种无需专利的GIF替代品,并在三个月内诞生了PNG。(有关PNG和软件的更详细历史,请访问由GregRoelof维护的PNG网站http://www.libpng.org/pub/png/。)创建PNG格式的动机是,1994年12月28日,Unisys从Unisys获得了用于图形交换格式GIF的Lempel–Ziv-Welch(LZW)数据压缩算法的专利。该专利要求对所有支持GIF的软件收取版税,导致Usenet用户的批评。ThomasBoutell就是其中之一,他于1995年1月4日在Usenet新闻组“comp.graphics”上发布了一个前身讨论主题,其中他设计了一个免费替换GIF的计划。流行的JPEG查看器QPEG的作者OliverFromme提出了PING名称,最终成为PNG,便携式网络图形(PNG)格式旨在取代旧的、更简单的GIF格式,并在某种程度上取代更复杂的TIFF格式。PNG不是GIF。后来实施的其他建议包括Deflate压缩算法和24位颜色支持,后者在GIF中的缺乏也促使团队创建他们的文件格式。该小组后来被称为PNG开发小组,随着讨论迅速扩大,它后来使用了与CompuServe论坛相关的邮件列表。[2][8].pngPNG的完整规范于1996年10月1日经W3C批准发布,随后于1997年1月15日作为RFC2083发布。该规范于1998年12月31日修订为版本1.1,解决技术问题伽玛和颜色校正问题。1999年8月11日发布的版本1.2添加了块作为对规范的唯一更改,重新格式化的1.2版本于2003年11月10日作为W3C标准的第二版发布[9],并于2004年3它于3月3日作为国际标准(ISO/IEC15948:2004)发布。[10][1]iTXt决定PNG应该是一种单图像格式,尽管GIF允许动画。2001年,PNG的开发者发布了支持动画的Multi-ImageNetworkGraphicsMNG格式。MNG实现了适度的应用程序支持,但在主要的Web浏览器中还不够,网站设计者或发布者也不使用它。2008年,某些Mozilla开发人员发布了具有类似目标的AnimatedPortableNetworkGraphicsAPNG格式。APNG是一种由基于Gecko和Presto的网络浏览器原生支持的格式,也常用于SonyPlayStationPortable系统上的缩略图(使用普通的PNG文件扩展名)。2017年,基于Chromium的浏览器采用了APNG支持。2020年1月,MicrosoftEdge开始基于Chromium,从而继承对APNG的支持。有了这个,所有主流浏览器现在都支持APNG。图像压缩gif格式图形交换格式(GraphicsInterchangeFormat,GIF)由CompuserveInformationServices开发,用于对图形图像进行编码。它是LZW算法的另一种实现,非常类似于Unix中的压缩命令。GIF图像使用Lempel-Ziv-Welch(LZW)无损数据压缩技术进行压缩,以在不损失视觉质量的情况下减小文件大小。虽然GIF并非设计为动画媒体,但它在单个文件中存储多个图像的能力自然表明了用于存储动画序列帧的格式。为了方便显示动画,GIF89a规范添加了图形控制扩展(GraphicsControlExtensions,GCE),它允许在文件中绘制具有时间延迟的图形(帧),形成视频剪辑。动画GIF中的每一帧都由其自己的GCE引入,它指定绘制帧后等待的时间延迟。默认情况下,动画仅显示一次帧序列,并在显示最后一帧时停止。为了使动画能够循环播放,Netscape在1990年代使用应用程序扩展块(旨在允许供应商将特定于应用程序的信息添加到GIF文件)实现了Netscape应用程序块(NAB)。此块位于动画帧序列之前,指定帧序列应播放的次数(1到65535次)或应连续重复(0表示永远循环)。对这些重复动画的支持首先出现在NetscapeNavigator2.0版中,然后扩展到其他浏览器。大多数浏览器现在都可以识别并支持NAB,尽管它并不是严格意义上的GIF89a规范的一部分。场景2014年4月,4chan增加了对大小小于3MB、长度小于2分钟的无声WebM视频的支持[70][71],2014年10月,Imgur开始将所有上传到站点的GIF文件转换为视频,并给出链接到带有扩展名的实际文件外观的HTML播放器。[72]73说完GIF,我们再回到PNG。压缩PNG使用2阶段压缩过程:预压缩:过滤(预测)压缩:放气过滤在应用Deflate之前通过预测方法转换数据。当前PNG规范中只有一种过滤方法(表示为方法0),因此在实践中唯一的选择是将哪种过滤类型应用于每一行。对于这种方法,过滤器根据之前相邻像素的值预测每个像素的值,并从实际值中减去该像素的预测颜色。DeflatedPNG使用DEFLATE,这是一种非专有的无损数据压缩算法,涉及LZ77和霍夫曼编码的组合。允许的DEFLATE实现,例如zlib,被广泛使用。与具有有损压缩的格式(例如JPEG)相比,选择高于平均水平的压缩设置会延迟处理,但通常不会导致文件大小明显变小。编程接口Deflate可以在许多编程语言中免费使用。C语言通常使用zlib库。C++语言可以使用7-Zip/AdvanceCOMP。Java语言包含在标准库java.util.zip中。Microsoft.NETFramework2.0包含在System.IO.Compression命名空间中。PKZIP:该算法最早实现。zlib/gzip:标准参考实现,由于其公开可用性而被广泛使用。Crypto++:C++开源实现。7-Zip/AdvanceCOMP:IgorPavlov的C++开源免费实现PuTTY:单独实现Hyperbac:C++和汇编实现Zopfli:Google的C实现衍生产品MNGPNG本身不支持动画。MNG是PNG的扩展,MNG共享PNG的基本结构和块,但它更复杂并且具有不同的文件签名,这自动使其与标准PNG解码器不兼容,这导致对MNG的支持很少或不支持大多数Web浏览器或应用程序。APNGMNG的复杂性导致MozillaFoundation开发者提出了APNG。它基于PNG,支持动画,比MNG更简单。如今,APNG格式目前已得到所有主要网络浏览器的广泛支持。Firefox3.0及更高版本支持APNG,PaleMoon(所有版本),最新版本的Opera支持APNG,因为引擎已更改为Blink上的最新版本的Safari,iOS8和Safari8forOSXYosemite,它使用支持APNG的WebKit引擎。Chromium59.0添加了对APNG的支持,随后是GoogleChrome。MicrosoftEdge现在使用基于Chromium的新引擎支持APNG。有损压缩有损压缩是指原始信息序列中的部分信息丢失的压缩,这意味着原始信息一旦经过有损压缩过程的操作,就不能再被生成的序列恢复。在此之前,大部分朋友可能会下意识地默认有损压缩的意义就是比无损压缩达到更好的压缩率,这样对同一个源数据进行操作后得到的结果质量会比较差。其实并不是这样——举一个常见的例子:对于同一张元图片,如果以100%质量存储,得到的jpg格式的大小可能在4M左右,但是png格式的大小可能达到40M。那么,jpg比png少的几十兆的数据是多少呢?其中,除了丢弃一些人眼无法察觉的颜色位外,还包含了恢复原始图像所需的大部分必要数据。因此,信息丢失并不意味着输出质量较低。然而,大多数有损压缩技术的使用方式在很大程度上取决于被压缩的媒体,就像音频的有损压缩与图像的有损压缩非常不同一样。多媒体场景中的图像视频压缩多媒体图像现在已成为日常生活中不可或缺的一部分。图像中编码的信息量是相当大的,即使带宽和存储容量有了显着提高,许多应用程序的成本在没有图像压缩的情况下仍然很高。JPEG和相关的MPEG格式是多媒体压缩的典型例子,两者在实践中都被广泛使用,并且还使用了霍夫曼编码、算术编码、游程编码和标量量化等技术。其中,JPEG用于静止图像,并被用作互联网上摄影图像的标准;MPEG是基于JPEG的变体,用于视频编码(每个帧都使用JPEG的变体进行编码)。两者都是有损格式。发展历程目前,视频编码方式主要分为三个系列:H.26x系列(由ITU[国际图文电视联盟]牵头),包括H.261、H.262、H.263、H.264、H.265,H.266…MPEG系列(由ISO[国际标准组织]下的MPEG[电影专家组]开发),包括MPEG-1、MPEG-2、MPEG-4、MPEG-7、MPEG-21…其他系列,包括AMV、AVS、Bink、CineForm、Cinepak、Dirac、DV、Indeo、Video、Pixlet、RealVideo、RTVideo、SheerVideo、Smacker、SorensonVideo、Theora、VC-1、VP3、VP6、VP7、VP8、VP9、WMV。..基本格式①JPEGJPEG是由联合图像专家组制定的图像压缩标准。G、B三基色分量,每个基色分量直接决定其原色强度的文件大小),但不能很好地处理双层(黑白)图像,也不能处理伪彩色图像(将实际上是索引值(每个像素值作为颜色查找表CLUT中对应项的入口地址,然后根据地址找到R、G、B的实际强度值)。JPEG在“连续色调”图像上效果最好,如果颜色值有很多跳跃,效果就不太好。基本步骤颜色空间转换:如果颜色分量是独立且不相关的,则可以获得最好的压缩效果。因此,这一步主要是通过线性变换,将RGB分量转换成信息集中在亮度而不是色度的YCbCr分量模式。色度采样(可选):利用YCbCr的特性,去除部分Cb和Cr元素,在这一步得到初步的压缩效果。例如,将4:4:4的RGB格式转换为4:2:2的YCbCr格式,会得到压缩比为12/8=1.5的压缩效果。DiscreteCosineTransform(DCT):在这一步中,YCbCr的每个分量都被转换成域表示,用于后续操作。量化:JPEG编码简单地将频域中的每个分量除以一个常数,然后进行一些舍入。结果是许多高频分量被四舍五入为零,其余大部分变成更小的正数或负数,需要更少的位来存储。所以整个过程中主要的有损操作都是在这一步完成的。熵编码:详见《??轻翻那些永垂不朽的诗篇??》相关内容。②MPEGMPEG是MotionPictureExpertsGroup的缩写。理论上,因为视频流是一系列离散图像,MPEG使用这些连续帧之间的特殊或时间关系来压缩视频流。综合以往的很多方法可以看出,一种技术越能有效地利用一段数据中的某些关系,数据压缩的效果就越好。有五种主要的MPEG标准,MPEG-1、MPEG-2、MPEG-4、MPEG-7和MPEG-21。它的委员会成立于1988年,旨在开发CD的视频和音频标准。第一个公共标准是MPEG-1,ISO/IEC11172,于1993年首次发布。MPEG算法仅对视频帧序列的新部分和移动部分的信息进行编码。下图三个序列中的反派是MPEG编码压缩时需要考虑的类别。基本应用下一代格式随着互联网上的数字视频消费持续增长,包括UHD、VR和流媒体等服务,以及社交网络的视频共享,电信基础设施的可用带宽正在受到挑战。AV1和H.266是将被广泛用于解决上述问题的下一代视频格式。③AV1开放媒体联盟(AOMedia)成立于2015年,旨在开发开放、免版税的多媒体传输技术。它在2018年发布了第一个视频压缩格式AV1,《??AV1 Video Codec | Alliance for Open Media??》,比其前身VP9压缩了约30%。AV1格式已经得到了Android、Chrome、MicrosoftEdge和Firefox等许多网络平台的支持,并且一些基于网络的视频服务提供商,包括YouTube、Netflix和Vimeo已经开始在大型网络上推出AV1流媒体服务。规模。优点免专利费。与VP9和H.265相比,编码效率有明显提升。资料来源:莫斯科国立大学图形与媒体实验室视频组。从图中可以看出,与VP9和H.265相比,AV1的编码效率提升了近30%。编码质量测试为了验证AV1的编码效果,使用Youtube提供的480p、720p、1080p、4KVP9编码格式和480p、720p、1080pAV1编码格式视频样本进行测试。由于目前支持硬解码AV1编码的GPU芯片很少,只能依赖软解码,所以实际测试AV1视频播放时比较卡顿。以上图片分别取自AV1和VP9在1080P分辨率下的表现效果。可以看出AV1比VP9清晰度更好。结论AV1相比VP9编码效率更好,其普及对于流媒体视频具有重要意义。用户可以在不改变带宽和流量消耗的情况下观看画质更清晰的视频。④H.266,简称H.266VersatileVideoCoding(VVC),由德国弗劳恩霍夫·海因里希·赫兹研究所(FraunhoferHHI)于2020年7月正式发布,下一代MPEG视频标准由国际间联合制定电信联盟(ITU-T)和国际标准化组织(ISO)。在过去的三年里,包括苹果、爱立信、英特尔、华为、微软、高通、索尼等在内的公司都在努力推进这项新技术的发展。与其前身高效视频编码(HEVC)(也简称为H.265)一样,H.266承诺将视频文件的比特率和大小降低约50%,而不会在视觉保真度方面产生明显差异,主要是为了4K和8K服务。简单来说,一段基于H.265编码的90分钟超高清4K视频大约需要10GB,而基于H.266只需要5GB。与AV1的较量随着全球互联网视频需求的增长,MPEG正在推动H.266/VCC等两个标准的发展。其中,MPEG-5Part1又称为EssentialVideoCoding(EVC),由华为、高通、三星等企业开发;第2部分也称为低复杂度增强型视频编码(LCEVC)。2020年5月,EVC编码标准正式晋升为最终国际标准(FDIS)状态。因此,MPEG此次发力,与免专利的AV1开放标准带来的激烈竞争有直接关系。BBCResearchandDevelopment去年的初步测试显示,VVC取得了令人鼓舞的结果,因为新标准比HEVC和AV1提供了显着的比特率节省,尤其是在支持4KUHD文件方面。更多资讯请浏览:?????????????????????????????????????????????????????????