9/16 10:30 ~ 10:45 Track A で発表した資料です
新しい画像フォーマットHEIFを⽤いたiOSアプリの通信量削減iOSDC 2017 Sun Sep 16Taketo Yoshida
View Slide
2Taketo Yoshida@TamaObject12⽇本経済新聞社のiOSエンジニア⽇経電⼦版アプリ、紙⾯ビューアーアプリの開発
3HEIFとは…
4High Efficiency Image File Format
5次世代の画像フォーマット
6WWDC17にてiOS11からHEIFを使⽤できる事が分かりました
7H.265/HEVCでエンコードされたイントライメージを利⽤している特徴その1
8Live Photosなどのシーケンス画像を効率よく保存特徴その2
9深度マップや透明度などの補助データに対応特徴その3
10本⽇話す事HEIFがどのようにmacOSやiOSで使⽤されているか紙⾯ビューアアプリのHEIFの導⼊実験の話
11HEIFに触れてみる
iOS11のiPhone7(A10 chip)で写真を撮る
13PHAssetのrequestContentEditingInputを使ってファイルのパスを取得してみる
// Photo image url: file:///var/mobile/Media/DCIM/102APPLE/IMG_2252.HEIC
15取った写真はHEIFで保存されています
16Webにアップロードする時はどうすればいいん?
17HEIFからJPEGに⾃動で変換されます※HEIF to JPEG※ PhotoKitやUIImagePickerControllerを普通に使えば問題ないです
Previewで普通に閲覧できる (なおSafariでは無理な模様)
19HEIF Decode サポートiPhone MacHardware Decode A9 Chip (iPhone 6S, iPad Pro)6th Generation Intel Core(Skylake family of processors.)Software Decode All iOS Devices All MacsHEIF Encode サポートiPhone MacHardware Decode A10 Chip (iPhone7) None
20⽇経の朝刊画像をHEIF/WebP/JPEGに変換して⽐べた話
21その前に紙⾯ビューアーアプリの話を
22紙⾯ビューアーアプリの歴史2012年3⽉ リリース当時は外注開発JPEG画像で紙⾯配信
内製開発、Swift移⾏23紙⾯ビューアーアプリの歴史WebP画像で紙⾯配信サーバレスアーキテクチャが少し話題に2016年3⽉ リニューアル
242016年3⽉2012年3⽉ 201?年??⽉JPEG時代 WebP時代 HEIF時代?
25HEIF導⼊のために評価を⾏う
26HEIF/WebP/JPEGでSSIMの値を⾒て同程度の画質に※朝刊画像⼀週間分を変換HEIFの作成はffmpeg, GPAC/MP4Boxを利⽤※ SSIMの値が⼤体0.963 ~ 0.998の間に収まるようにJPEGとWebPはImageMagickで作成
27JPEG HEIFHEVC intra imageffmpeg GPAC/MP4BoxHEIF作成の流れ
$ ffmpeg -i {source.png} -y -pix_fmt yuv420p \-codec:v libx265 -crf 13 -preset slower \-x265-params ssim=1 -f hevc {output.hvc}画質測定のためにx265のオプションにSSIMするHEIFのHEVCイントライメージを作成
$ MP4Box -add-image {source.hvc} -ab heic \-new {output.heic}GPAC/MP4BoxでHEIFを作成する
30実験結果
3103060901208/21 8/22 8/23 8/24 8/25 8/26 8/27HEIF [MB] WebP [MB] JPEG [MB]朝刊画像の各フォーマットの合計サイズ
3203060901208/21 8/22 8/23 8/24 8/25 8/26 8/27HEIF [MB] WebP [MB] JPEG [MB]朝刊画像の各フォーマットの合計サイズ32%削減
3303060901208/21 8/22 8/23 8/24 8/25 8/26 8/27HEIF [MB] WebP [MB] JPEG [MB]朝刊画像の各フォーマットの合計サイズ52%削減
34JPEGと⽐べて、約50%通信量を削減可能A9 chip以降ならばハードウェアデコード可能
35HEIF最⾼や!JPEG、WebPなんて最初っからいらんかったんや!
36しかし…
37商業⽬的でffmpeg, GPAC/MP4Boxを使うのは特許使⽤の観点から正直怪しい IANALɹɹɹɹɹɹɹɹ㱸㱸ɹɹɹɹɹɹʋ ŋТŋɹɹţƄŠŖɹɹɹɹɹʘ ʘϊɹɹɹɹŊŰ Ŋɹʉɹɹɹɹʉ
38ffmpegなどを使ってHEIF作成しても商業利⽤できないので気をつけてくださいね
39それでも僕はHEIFを使いたいので⼒技でも実現できるように考えてみました
紙⾯ビューアーアプリ朝刊⾃動ダウンロード紙⾯画像⽣成
紙⾯ビューアーアプリ朝刊⾃動ダウンロード紙⾯画像⽣成これだ!!
42※ デバイストークンの管理については⼀度無視紙⾯画像確認メタデータ更新朝刊のページ分 ✕ N 回SQSに積むPollingNotifierDownloadHEIF Encode & Upload社内のiPhone ClusterSilentRemoteNotification紙⾯画像置き場①画像確認②③④⑤⑥
43※ デバイストークンの管理については⼀度無視紙⾯画像⽣成朝刊のページ分 ✕ N 回SQSに積むPollingNotifierDownloadHEIF Encode & Upload社内のiPhone ClusterSilentRemoteNotification紙⾯画像置き場①画像確認②③④⑤⑥取りこぼし防⽌のために⼀つの端末に通知をN回送るスケジューラが何度も起動して反映されてるか確認iPhoneの台数は朝刊の最⼤ページ数の48個程度⽤意
44問題点画像反映スピードシステム全体の可⽤性iPhone爆買いを上に説得すること
45最後に
46High SierraとiOS11からHEIFの利⽤が可能AppleがServerSide-HEIFに対応するのを期待HEVCやHEIFは特許問題でドロドロしてる123
47ありがとうございました