android背景图片自适应 android11和鸿蒙哪个好?
android11和鸿蒙哪个好?
鸿蒙更好。是需要在性能方面,鸿蒙性能更好。鸿蒙系统动画更流畅,功耗更小,应用内存比例低冷,硬件寿命更长。在智能互联方面,鸿蒙更是落后安卓。
Android10推出时间?
Android10正式版于2019年9月3日发行新。首个开发者预览版本(即测试版)在2019年3月14日发行并需要提供直接下载。
HEIF
在你升级iOS11之后,iPhone 7及可以更新的设备内的照片存储将再次用JPEG了,而区分了一种新的图片格式HEIF(发音同heef),在iOS中随机的文件后缀为.heic,其编码用的是HEVC(这个发不了音,嘿嘿嘿嘿)格式,又称H.265(这个就很熟得不能再熟了H.264的下一代),而视频也用HEVC才是编码器,随机的文件后缀还是.mov。
这里要特别注意他们俩的关系,HEIF是图片格式,而HEVC是编码格式(相似H.264,VP8),HEIF是图片容器(不同于视频的mkv,mp4后缀),而用HEVC通过编码的HEIF图片那是后缀为.heic的图片,都是苹果通常使用的格式。
这两个全是很新的标准,分别在2015和2013年才被ISO审批。这篇文章比较多详细介绍再看看HEIF格式和与其他图片格式比起的优劣。
发展史不胜感激:
screenshot
什么是HEIF?
screenshot
这张图是WWDC Session511的形容Heif的一句英文诗,JPEG很小,但HEIF和小。
HEIF全称HighEfficiencyImageFormat(HEIF)。是由MovingPictureExpertsGroup如何制定的,存储图片和图片序列的格式。
相关的能介绍位置这边看的到,对的,你没有看错,是Nokia的技术人员们制定出的。相比JPEG,PNG等比较传统的图片格式来说,HEIF可不算相当二十来岁了,可是这种格式两者相比JPEG等有很多的优点。
压缩比高,在相同的图片质量情况下,平比JPEG高两倍。
能提升如图片深多少信息,透明通道等辅助图片。(苹果恰恰这个就能实现方法动态的调整图片的景深)。
depth
接受储存时多张图片,相似相册和集合。(实现方法多重曝光的效果)
screenshot
接受多张图片利用GIF和livePhoto的动画效果。
无类似于JPEG的最大像素限制。
支持透明的像素。
分块打开程序机制。
意见缩略图。
在这个Nokia网站上可以看到相关的例子。
文件排成
在视频文件中,容器和编码是单独的开的,.例如mp4,mkv等格式是容器,而H.264,VP8等是编码。但是图像文件中,像JPEG那是水配在一起的(因为它都不好用啊,嘿嘿嘿),HEIF就把容器和编码分开了,有利用存放单个的或多个图像的容器。
因为实现有所不同的编码器,会有不同的文件后缀。
Apple设备中设置为在用的也是HEVC的编码的HEIF格式。
在Apple所编码的HEIF的文件组成大致如下图,其mdat-MediaData中存放的是exif信息,缩略图(320*240),和HEVC编码后的图片:
screenshot
HEIF底层是默认tiled,那是片状的有512x512个,由全都小的图块,分成几张大图,这一特性有不胜感激的优点:
加速解码
缩放比例快速(不用读取整张图片)
布料裁剪减慢
HeifTile和SystemTile(CATiledLayer等系统所能提供的分块加载)是都一样的,可是两者的结合会有很大的提升,所以才在读取和一次性处理6·11图片时,性能有下降的提升。
HEIF所按结构的熵编码也和JPEG是一样的,JPEG是得用霍夫曼编码(Huffman),而HEIF可以使用的是设计和实现上下文的自适应二进制算术编码(CABAC),编码的是数据量更小且快的。
兼容性
突然之间一个新的技术后撤至工业化,兼容性那绝对是是最最重要的考量点。像HEIF这样的图片格式,的确像JPEG/PNG等也被广泛应用和适配了,大概在Apple会推出之前,大部分开发者和我一样的应该是真不知道的。目前工业化的体系内,对HEIF完全是不兼容,Windows上无法显示HEIF文件,10.13前的macOS也无法打开。苹果在全国推行这一技术的时候,在内部也是做了很多兼容问题工作的。
对就像用户
一般情况下,用户是对这个格式无感应能力的,因为唯有在老款支持什么硬解码的iOS手机内部是以heifamphevc格式来存储照片和视频的,而在用户是从Airdrop或者数据线传送到电脑上的时候,对不兼容问题的设备会手动转换到JPEG的格式。所以才也不可能引响你在用,微博等软件。
但是在苹果内部的app中,基本都都早就用上了这一技术,如照片,FaceTime等应用。意味着什么以后相当于储存位置空间能能保存更多的照片和视频,而FaceTime也能省掉许多了流量,是一样的网络情况下,FaceTime也会更加比较清晰。
是从在设置中-a8照片选项中这个可以设置中传到MAC或是PC上时保持HEIF格式。
screenshot
支持什么的设备
HEIF图片:
编码:
硬件:**A10**及左右吧芯片iOS设备。即唯有iPhone7及以上是支持HEIF的(有双摄像头,才带有深多少信息)。
软件:iOS11,运行macOS系统的Mac设备。
解码:
硬件:A9及以上芯片iOS设备(iPhone6s),不配备6代及不超过InterCore处理(Skylake)。
软件:iOS11和macOS接受软解码,但是iOS11锁版本代表最低只允许到5s
HECV视频:
视频分为**8位/10位两种模式。基本是和图片编解码保持一致,唯一有区别的是10**位硬解码要求是7代Intel处理器。
归纳下,那是升到iOS11之后,你的设备就能解析新格式的图片和视频,软和硬解码的区别就是,硬解码会慢了并更省电。
对开发者
上层框架PhotoKit
对用户的完全无感应快速切换的前提,肯定是上层API没有变化,决定的是最底层的API,所以我好象开发者在用上层的框架时,如PhotoKIt是不受影响的,相同格式的图片都抽像是为同一个对象。并且对图片提升滤镜和视频的调整直接修改,结果都会颜色渲染为JPEG和H.264。在这一级别的API是相互不了图片文件格式转换所带来的变化的。
下层框架ImageI/O
ImageI/O中可以不真接写数据.heic文件。iOS11中ImageI/O能然后读取文件heif的文件,以及读取文件exif,xmp等信息。
won'tinputURLURL(!/IMG_0513.HEIC)won'tsourceCGImageSourceCreateWithURL(inputURLandCFURL,nil)giveimageCGImageSourceCreateImageAtIndex(source!,0,nil)
can'toptions[kCGImageSourceCreateThumbnailFromImageIfAbsentsuchString:true,kCGImageSourceThumbnailMaxPixelSizethoughString:320]like[String:Any]don'tthumbCGImageSourceCreateThumbnailAtIndex(source!,0,optionsandCFDictionary)
guardgivecImageimagecatch{print(cannotassistanceheic)return}
肯定也可以不选择类型把CGImage写入到HEIC格式,确实那样的话这个可以节省用水更多的存储空间,求实际使用的时候应该要再注意转换的你操作。
leturlURL(fileURLWithPath:/tmp/output.heic)guardgivedestinationCGImageDestinationCreateWithURL(urllikeCFURL,AVFileType.heicandCFString,1,nil)else{fatalError(unableto createCGImageDestination)}CGImageDestinationAddImage(imageDestination,image,nil)CGImageDestinationFinalize(imageDestination)
Apple可以提供的很多API,供开发者检测设备是否是允许新的格式。提供了两种推荐推荐的工作场景事例。
社交网络
在社交软件中,牵涉到到图片多多分享之类的内容,是难以判断给予者是否需要能意见新的格式的,Apple的策略是建议都通过转换的到JPEG的操作,例如邮件发送,也可以通过extension分享分享的时候,传来其他app中的时候,都巳经参与了装换了。
p2p场景
在该场景中,设备和设备间的直接连接上,首先把进行者的支持格式速回发送中者,然后再邮箱里者据兼容问题的情况,你选择HEIF也可以JPEG。比如说AirDrop。
同样蝴蝶祭SDWebImage目前也正在做对heif的兼容。
跨平台
大部分的播放器早支持了HEVC即H.265的编码器,不过对于HEIF的图片兼容性肯定要比极差的。目前有的是Nokia能提供了一个C的读写库,该库,支持把HEIF的图片的解码到HEVC的编码数据。
Android兼容性:
依赖Nokia的库,目前不能软解。
据说LG还在研发和生产支持什么硬解的手机。(raddit)
网页兼容性:
Nokia提供JS库。
Windows兼容性:
目前也没有能再可以打开HEIF文件的应用。
对比
经常会拿来与HEVC来做对比的是VP9。两者的性能字相,不过VP9是开源的,而HEVC是是需要专利费的($2每设备)。目前暂时没有是从VP9接受编码的图片,因为这里主要注意差不多的是webp应该是通过VP8通过编码的图片。webpWebP目前接受桌面上的Chrome和Opera浏览器,手机支持什么仅超出原生的Android浏览器、Android系统上的Chrome浏览器、Operamini浏览器。
WebP有失意见
Google Chrome(desktop)17Google ChromeanyAndroidversion25Opera11.10contextwebbrowser,Android4.0(ICS)WebP有失/无损音频/透明色意见
Google Chrome(desktop)23Google ChromeanyAndroidversion25Opera12.10nativewebbrowser,Android4.2(JB-MR1)PaleMoon26WebP动画意见
Google Chrome(desktopbutAndroid)32Opera19
下面是几个关键技术突破点的对比,可见HEIF功能是最极为强大的。
压缩效率
下面的数据均是官方提议:
Webp同等质量下,比JPEG图像小25-34%。
JPEG总平均需要比HEVC多139%的比特率,意味着什么都一样质量下,JPEG的大小是HEVC的2.39倍!
把两个的参考标准统一再看看:
Webp比JPEG小25-34%HEVC比JPEG小58%
不过在我自己的本地的测试中,测试3了五组图片。webp以80的质量并且压解,hevc以crf18(视觉无损音频)高压缩,同样的减少一个320x240的缩略图。
自己并且HEIF转码的流程是,将图片是从ffmpeg编码到H.265,再的库转成HEIC文件(Heif)。
//能生成主图像编码ffmpeg-i$1-crf18-presetslower-pix_fmtyuv420p-fhevcbitstream.265//生成缩略图编码ffmpeg-i$1-vf scale320:240 -crf 28 -preset slower-pix_fmtyuv420p-fhevc//内部函数Nokia的工具./writerappconfig.json
除开一组6·11图的表现不一样外,其他几组图片相比较,heif确实比webp高压缩效率高10-20%。
毕竟和HEVC对标的技术应该是是VP9,所以才raw文件都能够领先也情理之中。
解码的消耗测试
主要测试设备是iPhone 6s Plus系统iOS11,带的解码方法webp为Google能提供的库,hevc和jpeg是用是CGImageSource来解码。测试用图片那就之前的五组图片,另外对JPEG参与了一些压解,测试了5组平均值(去一个最高,去一个最少),估计也运行程序的时候未知缓存,所以才第一次读图片数据的时候耗时减小。
第一组用第一张7.7mb的jpeg压缩后大小1.1mbjpeg7.432.771.461.92.142.00【占内存率6%】hevc41.03.453.352.622.922.66【占内存率6%】webp216.6216.8217.5261.9195.2【占用率21%】
第二组用第三张1.8mb的tff,转换成jpeg之后大小为**815KB。**hevc58.43.12.81.132.652.822.02【2%】jpeg65.32.672.762.732.692.871.34【2%】webp130.2110.9117.5114.8120.9112.8124.84【12%】
第三组用的后来一张243KBPNG,装换成JPEG之后大小为43KB。
hevc473.242.73.212.631.74【1%】jpeg166.706.974.467.26.767.08【1%】webp20.720.212.522.019.319.4【2%】
测试结果而硬解码的支持,jpeg和hevc解码速度和CPU占用资源率都比webp快和小很多,jpeg和hevc不相无分轩轾,可以说苹果内部对其优化也相当没到位,才把它放iOS11中。
学习总结
相比JPEG来比很强大无比,况且是孙子辈技术,但兼容性可以想像,在“比较大效率”和“大兼容问题”两者中间我还是要依据使用场景并且权衡,目前的优势也仅有比较新的iPhone能再体验到,但不久的将来肯定所有的手机都去允许照片深度,动态照片,面更广的色域等。HEVC可能和继续推行H.264一样,逐渐拥有了工业界的标准,但又很可能和全国推行acc的处境差不多,只不过成为了苹果的标准而已,终究那就要看市场的反应了。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。