明日から使える画質の話

 明日から使える画質の話

F4793241992daf0be6df122689881509?s=128

Masahito Yano

July 18, 2020
Tweet

Transcript

  1. 明日から使える画質の話 合同会社DMM.com EC&デジタルコンテンツ本部 動画配信事業部 配信基盤グループ グループリーダー (@yanoshi)

  2. NOW LOADING 2

  3. 3 回目の登壇です 02 お久しぶりです 会津大 リモートLTの時代が来るとは これが 新しい生活様式なのね

  4. 4 回目の登壇です 02 スライド遅くなって すみません :pray: (マヤミトくん、お取り計らい頂きありがとうございます!) リモートLTの時代が来るとは これが 新しい生活様式なのね

  5. 5 回目の登壇です 02 DMMから やってきました 会津に行けないの残念 会津のおしゃけ美味しかった(。>﹏<。)

  6. 6 回目の登壇です 02 いぇーい みんな元気? ひきこもってますー? リモートワーク最高!!

  7. 7 回目の登壇です 02 ひきこもってますー? リモートワーク最高!! 3月

  8. 8 回目の登壇です 02 ひきこもってますー? リモートワーク最高!! 4月

  9. 9 回目の登壇です 02 ひきこもってますー? リモートワーク最高!! 5月

  10. 10 回目の登壇です 02 ということで リモートのできる 良い会社です

  11. 11 閑話休題 自己紹介します

  12. 12 PRESENTER PROFILE Masahito YANO 矢野 完人 所属: 動画配信事業部 配信基盤グループ

    GL 出身 奈良高専 / 奈良先端大 ID: yanoshi Twitter/HatenaBlog/Facebook/etc... 生息地 六本木、目黒 入社年度 2016年入社 仕事内容 動画等の配信基盤開発 最近やってくる事 DIY 新しい生活様式 強い車でドライブ
  13. 13 PRESENTER PROFILE Masahito YANO 矢野 完人 所属: 動画配信事業部 配信基盤グループ

    GL 出身 奈良高専 / 奈良先端大 ID: yanoshi Twitter/HatenaBlog/Facebook/etc... 生息地 六本木、目黒 入社年度 2016年入社 仕事内容 動画等の配信基盤開発 最近やってくる事 DIY 新しい生活様式 強い車でドライブ
  14. DIY 14

  15. 15 DIY

  16. 16 55V OLED TV (BRAVIA A8F) 自作PC(Ryzen 3950X, RAM64GB, NVMe

    1TBx2 RAID0) EIZO WQHD EIZO WUXGA EIZO WUXGA
  17. 新しい生活様式 17

  18. 18 新しい生活様式

  19. ドライブ 19

  20. 20 ドライブ

  21. 21 ドライブ

  22. 22 ドライブ

  23. 23 ドライブ

  24. 24 楽しい!!!

  25. 25 PRESENTER PROFILE Masahito YANO 矢野 完人 所属: 動画配信事業部 配信基盤グループ

    GL 出身 奈良高専 / 奈良先端大 ID: yanoshi Twitter/HatenaBlog/Facebook/etc... 生息地 六本木、目黒 入社年度 2016年入社 仕事内容 動画等の配信基盤開発 最近やってくる事 DIY 新しい生活様式 強い車でドライブ
  26. 動画の配信基盤を 作っています 26

  27. 動画の配信基盤を 作っています 27 っと、その前にー

  28. WARNING 注意事項 28

  29. 29 WARNING 注意事項 2018年3月、 DMM.comの成人向け事業(現 FANZA)は 株式会社デジタルコマース社に継承されました。 ただし、システムの開発や運用、一部の営業業務 はデジタルコマース社からDMM.comに委託されて おり、プラットフォームはDMM.comが継続して

    提供することで合意しております。
  30. 30 WARNING 注意事項 2018年3月、 DMM.comの成人向け事業(現 FANZA)は 株式会社デジタルコマース社に継承されました。 ただし、システムの開発や運用、一部の営業業務 はデジタルコマース社からDMM.comに委託されて おり、プラットフォームはDMM.comが継続して

    提供することで合意しております。
  31. 31 WARNING 注意事項 2018年3月、 DMM.comの成人向け事業(現 FANZA)は 株式会社デジタルコマース社に継承されました。 ただし、システムの開発や運用、一部の営業業務 はデジタルコマース社からDMM.comに委託されて おり、プラットフォームはDMM.comが継続して

    提供することで合意しております。 みんな覚えて帰ってね!
  32. 弊社動画サービスはでかい 32

  33. 圧倒的コンテンツ量 35万 件以上 弊社動画サービスの規模感 33

  34. 大規模なストレージ容量! 増加 現状 10PB 1.2PB/年 弊社動画サービスの規模感 34

  35. 大量のトラフィック! 弊社動画サービスの規模感 35 103.1Gbps 121.65Gbps 151.3Gbps 197.35Gbps 259.18Gbps 280Gbps 340Gbps

    390Gbps 0 50 100 150 200 250 300 350 400 450 2013 2014 2015 2016 2017 2018 2019 2020 対外トラフィック 2013 2014 2015 2016 2017 2018 2019 2020
  36. 売上: いっぱい 弊社動画サービスの規模感 36 これくらい 全社売上

  37. 売上: いっぱい 弊社動画サービスの規模感 37 これくらい 全社売上 これを支えてます!

  38. 売上: いっぱい 弊社動画サービスの規模感 38 これくらい 全社売上 これを支えてます! (ちなみに計算上は1日落とすと億円が消し飛びます)

  39. 売上: いっぱい 弊社動画サービスの規模感 39 これくらい 全社売上 『具体的には?』

  40. 40 ここを実現するためのシステムを開発 動画再生時

  41. 41 ここを実現するためのシステムを開発 動画再生時 更に具体的には?

  42. 42 42 42 コンテンツ ホルダー DB 商品情報 ユーザー情報 低位のAPIレイヤー DB

    / REST API 上位のWeb Framework View / REST API PFが用意する共通基盤 静的キャッシュ基盤 ユーザー VR テレビ ゲーム スマホ PC ライブ配信 運用部門 エンコード システム 「JIRO」 一部のダウンロード配信 動的配信基盤 動的キャッシュ「VODST」 マルチDRMサーバー「mlic」 配信情報管理API/DB「st-api」 ストレージ CDN オフロード サービス API CMS 商品情報管理 システム
  43. 43 43 43 コンテンツ ホルダー DB 商品情報 ユーザー情報 低位のAPIレイヤー DB

    / REST API 上位のWeb Framework View / REST API PFが用意する共通基盤 静的キャッシュ基盤 ユーザー VR テレビ ゲーム スマホ PC ライブ配信 運用部門 エンコード システム 「JIRO」 一部のダウンロード配信 動的配信基盤 動的キャッシュ「VODST」 マルチDRMサーバー「mlic」 配信情報管理API/DB「st-api」 ストレージ CDN オフロード サービス API CMS 商品情報管理 システム 動画を「再生」するには 結構苦労がある
  44. 44 44 コンテンツ ホルダー DB 商品情報 ユーザー情報 低位のAPIレイヤー DB /

    REST API 上位のWeb Framework View / REST API PFが用意する共通基盤 静的キャッシュ基盤 ユーザー VR テレビ ゲーム スマホ PC ライブ配信 運用部門 エンコード システム 「JIRO」 一部のダウンロード配信 動的配信基盤 動的キャッシュ「VODST」 マルチDRMサーバー「mlic」 配信情報管理API/DB「st-api」 ストレージ CDN オフロード サービス API CMS 商品情報管理 システム 商品情報が 必要
  45. 45 45 コンテンツ ホルダー DB 商品情報 ユーザー情報 低位のAPIレイヤー DB /

    REST API 上位のWeb Framework View / REST API PFが用意する共通基盤 静的キャッシュ基盤 ユーザー VR テレビ ゲーム スマホ PC ライブ配信 運用部門 エンコード システム 「JIRO」 一部のダウンロード配信 動的配信基盤 動的キャッシュ「VODST」 マルチDRMサーバー「mlic」 配信情報管理API/DB「st-api」 ストレージ CDN オフロード サービス API CMS 商品情報管理 システム エンコードが 必要
  46. 46 46 コンテンツ ホルダー DB 商品情報 ユーザー情報 低位のAPIレイヤー DB /

    REST API 上位のWeb Framework View / REST API PFが用意する共通基盤 静的キャッシュ基盤 ユーザー VR テレビ ゲーム スマホ PC ライブ配信 運用部門 エンコード システム 「JIRO」 一部のダウンロード配信 動的配信基盤 動的キャッシュ「VODST」 マルチDRMサーバー「mlic」 配信情報管理API/DB「st-api」 ストレージ CDN オフロード サービス API CMS 商品情報管理 システム コンテンツの保護も 当然必要
  47. 47 47 コンテンツ ホルダー DB 商品情報 ユーザー情報 低位のAPIレイヤー DB /

    REST API 上位のWeb Framework View / REST API PFが用意する共通基盤 静的キャッシュ基盤 ユーザー VR テレビ ゲーム スマホ PC ライブ配信 運用部門 エンコード システム 「JIRO」 一部のダウンロード配信 動的配信基盤 動的キャッシュ「VODST」 マルチDRMサーバー「mlic」 配信情報管理API/DB「st-api」 ストレージ CDN オフロード サービス API CMS 商品情報管理 システム この辺りのソフトウェアレイヤー を弊チームで開発
  48. がんばってるよ! 48

  49. 49 回目の登壇時 01 「さいきょう」を紹介 さいきょうのキャッシュアーキテクチャ さいきょうのコンテンツ保護 さいきょうのエンコーダー

  50. 50 回目の登壇時 01 「さいきょう」を紹介 さいきょうのキャッシュアーキテクチャ さいきょうのコンテンツ保護 さいきょうのエンコーダー

  51. コンテンツは増え続ける 毎日数十コンテンツが納品 51

  52. 動画配信を安定して行うには 適切なデータを作る必要がある 52

  53. 動画配信を安定して行うには 適切なデータを作る必要がある 53 いっぱいエンコード するよ

  54. ストリームは複数用意するのが 普通 54 ABR: Adaptive BitRate 「画質: オート」とかそういうやつ

  55. ストリームは複数用意するのが 普通 55 ABR: Adoptive BitRate 「画質: オート」とかそういうやつ

  56. ストリームは複数用意するのが 普通 56 ABR: Adoptive BitRate 「画質: オート」とかそういうやつ いっぱいエンコード するよ

  57. 最近はVRがアツい 57 ユーザーに最高のVR体験を 届けたい! しかし…まだまだ過渡期なので デバイスが混沌

  58. 58 混沌とするデコーダ仕様 iPhone H.264: 4K 60fps Android H.264: Over4K 60fps

    (Snapdragon 8xx ) Oculus Go H.264: Over4K 60fps PC VR H.264: 4K 60fps / VP9: 8K 60fps PSVR H.264: 3.5K 60fps
  59. 59 混沌とするデコーダ仕様 iPhone H.264: 4K 60fps Android H.264: Over4K 60fps

    (Snapdragon 8xx ) Oculus Go H.264: Over4K 60fps PC VR H.264: 4K 60fps / VP9: 8K 60fps PSVR H.264: 3.5K 60fps ということで…
  60. 60 混沌とするデコーダ仕様 iPhone H.264: 4K 60fps Android H.264: Over4K 60fps

    (Snapdragon 8xx ) Oculus Go H.264: Over4K 60fps PC VR H.264: 4K 60fps / VP9: 8K 60fps PSVR H.264: 3.5K 60fps デバイスに最適なファイルを それぞれ用意します!
  61. 61 混沌とするデコーダ仕様 iPhone H.264: 4K 60fps Android H.264: Over4K 60fps

    (Snapdragon 8xx ) Oculus Go H.264: Over4K 60fps PC VR H.264: 4K 60fps / VP9: 8K 60fps PSVR H.264: 3.5K 60fps デバイスに最適なファイルを それぞれ用意します! いっぱいエンコード (ry
  62. 62 混沌とするデコーダ仕様 iPhone H.264: 4K 60fps Android H.264: Over4K 60fps

    (Snapdragon 8xx ) Oculus Go H.264: Over4K 60fps PC VR H.264: 4K 60fps / VP9: 8K 60fps PSVR H.264: 3.5K 60fps デバイスに最適なファイルを それぞれ用意します! VRに至っては普通に エンコードすると 0.0x~0.x fps程度
  63. 63 混沌とするデコーダ仕様 iPhone H.264: 4K 60fps Android H.264: Over4K 60fps

    (Snapdragon 8xx ) Oculus Go H.264: Over4K 60fps PC VR H.264: 4K 60fps / VP9: 8K 60fps PSVR H.264: 3.5K 60fps デバイスに最適なファイルを それぞれ用意します! エンコード時間 2週間/コンテンツとか あり得る
  64. 64 混沌とするデコーダ仕様 iPhone H.264: 4K 60fps Android H.264: Over4K 60fps

    (Snapdragon 8xx ) Oculus Go H.264: Over4K 60fps PC VR H.264: 4K 60fps / VP9: 8K 60fps PSVR H.264: 3.5K 60fps デバイスに最適なファイルを それぞれ用意します! そんな課題を解決
  65. 65 65 コンテンツ ホルダー DB 商品情報 ユーザー情報 低位のAPIレイヤー DB /

    REST API 上位のWeb Framework View / REST API PFが用意する共通基盤 静的キャッシュ基盤 ユーザー VR テレビ ゲーム スマホ PC ライブ配信 運用部門 エンコード システム 「JIRO」 一部のダウンロード配信 動的配信基盤 動的キャッシュ「VODST」 マルチDRMサーバー「mlic」 配信情報管理API/DB「st-api」 ストレージ CDN オフロード サービス API CMS 商品情報管理 システム
  66. 66 66 コンテンツ ホルダー DB 商品情報 ユーザー情報 低位のAPIレイヤー DB /

    REST API 上位のWeb Framework View / REST API PFが用意する共通基盤 静的キャッシュ基盤 ユーザー VR テレビ ゲーム スマホ PC ライブ配信 運用部門 エンコード システム 「JIRO」 一部のダウンロード配信 動的配信基盤 動的キャッシュ「VODST」 マルチDRMサーバー「mlic」 配信情報管理API/DB「st-api」 ストレージ CDN オフロード サービス API CMS 商品情報管理 システム JIRO Is Reliability-Oriented encoder
  67. 67 67 コンテンツ ホルダー DB 商品情報 ユーザー情報 低位のAPIレイヤー DB /

    REST API 上位のWeb Framework View / REST API PFが用意する共通基盤 静的キャッシュ基盤 ユーザー VR テレビ ゲーム スマホ PC ライブ配信 運用部門 エンコード システム 「JIRO」 一部のダウンロード配信 動的配信基盤 動的キャッシュ「VODST」 マルチDRMサーバー「mlic」 配信情報管理API/DB「st-api」 ストレージ CDN オフロード サービス API CMS 商品情報管理 システム JIRO Is Reliability-Oriented encoder JIRO 導入前
  68. Before 温もり運用

  69. Before 温もり運用

  70. Before 温もり運用 かっこいい!エモい!でも大変!

  71. 71 コスパ最強構成のエンコーダーシステム JIRO JIRO Is Reliability-Oriented encoder 動画ファイル

  72. 72 コスパ最強構成のエンコーダーシステム JIRO JIRO Is Reliability-Oriented encoder 分割

  73. 分散処理 73 コスパ最強構成のエンコーダーシステム JIRO JIRO Is Reliability-Oriented encoder

  74. 結合 74 コスパ最強構成のエンコーダーシステム JIRO JIRO Is Reliability-Oriented encoder

  75. 結合 75 コスパ最強構成のエンコーダーシステム JIRO JIRO Is Reliability-Oriented encoder

  76. 結合 76 コスパ最強構成のエンコーダーシステム JIRO JIRO Is Reliability-Oriented encoder 昼間の間、配信サーバー は暇している

  77. 結合 77 コスパ最強構成のエンコーダーシステム JIRO JIRO Is Reliability-Oriented encoder 暇している 配信サーバーを

    エンコーダーしちゃおう!
  78. 78 コスパ最強構成のエンコーダーシステム JIRO JIRO Is Reliability-Oriented encoder 突然生まれるエンコーダー161台

  79. 79 コスパ最強構成のエンコーダーシステム JIRO JIRO Is Reliability-Oriented encoder 突然生まれるエンコーダー161台 コスパ最強 十数倍の高速化

  80. 80 JIRO Is Reliability-Oriented encoder DMMアワード2020 チーム特別賞受賞

  81. 81 JIRO Is Reliability-Oriented encoder 頑張って作って良かった!

  82. 82 JIRO Is Reliability-Oriented encoder まだ途中半ば 画質を向上せねば

  83. 明日から使える画質の話 合同会社DMM.com EC&デジタルコンテンツ本部 動画配信事業部 配信基盤グループ グループリーダー (@yanoshi)

  84. 84 前提 みんなエンコードしてるよね? してると思って話すね! ちなみに我が家はRyzen 3950X + RTX2060 SUPERなの/// エンコードし放題だよ!(。>﹏<。)

  85. 85 今日話すこと そもそも画質とは? 画質を評価する手法について VMAFは良いぞ!

  86. 86 今日話すこと そもそも画質とは? 画質を評価する手法について VMAFは良いぞ!

  87. 87 そもそも画質とは? インターネットにて

  88. 88 そもそも画質とは? 見比べました!

  89. 89 そもそも画質とは? 拡大してこっちの ほうがボケが少ない から画質はきれいで す!

  90. 90 そもそも画質とは? こちらのほうが 容量が大きいので きれいです!

  91. 91 そもそも画質とは? 『本当にそれで良いのか?』

  92. 92 そもそも画質とは? 確かに感覚での評価は大事

  93. 93 そもそも画質とは? でも客観評価もしたくない?

  94. 94 そもそも画質とは? いいもの…ありますよ?

  95. 95 今日話すこと そもそも画質とは? 画質を評価する手法について VMAFは良いぞ!

  96. 96 画質を評価する手法について 実はパラメトリックに 評価する手法は色々ある

  97. 97 画質を評価する手法について 代表例: SSIM, PSNR, MSE

  98. 98 画質を評価する手法について 代表例: SSIM, PSNR, MSE

  99. 99 画質を評価する手法について 代表例: SSIM, PSNR, MSE MSEは差分 PSNRはノイズ SSIMは良い感じ

  100. 100 画質を評価する手法について とりあえずSSIMを 使っておけば十分かも

  101. 101 画質を評価する手法について とりあえずSSIMを 使っておけば十分かも 局所的な違いの方が人間 は気が付きやすいらしい それを数値化してくれる (詳しくはググって)

  102. 102 画質を評価する手法について SSIMはとても便利

  103. 103 画質を評価する手法について ffmpegでサクッと出せます (メモのご準備を)

  104. 104 画質を評価する手法について $ ffmpeg -i input1 -i input2 -filter_complex ssim

    -an -f null - 解像度が同じなら $ ffmpeg -i input1 -i input2 -filter_complex scale2ref,ssim -an -f null - 解像度が別なら
  105. 105 画質を評価する手法について SSIMが1に近いほどきれい

  106. 106 画質を評価する手法について 分かりやすくて最高! SSIMは神…?

  107. 107 画質を評価する手法について 分かりやすくて最高! SSIMは神…? 実はそうでもない

  108. 108 画質を評価する手法について 分かりやすくて最高! SSIMは神…? 動画コーデックの進化は 半端ない ex: H.265, VP9, AV1,

    H.266
  109. 109 画質を評価する手法について 分かりやすくて最高! SSIMは神…? 「人間的には変化を感じられない けど、実はすごく違う」 みたいなアルゴリズムに

  110. 110 画質を評価する手法について 分かりやすくて最高! SSIMは神…? 一体どうすればいいんだーーーー!?

  111. 111 今日話すこと そもそも画質とは? 画質を評価する手法について VMAFは良いぞ!

  112. 112 VMAFは良いぞ! そこでVMAFです

  113. 113 VMAFは良いぞ! VMAFとは? Netflixが作った知覚的な要素 を捉えた画質評価手法 (回帰分析とかしているらしい) https://github.com/Netflix/vmaf

  114. 114 VMAFは良いぞ! VMAFとは? 雑に言うと何か良い感じに 画質評価してくれるらしいぞ

  115. 115 VMAFは良いぞ! コマンド例(メモのご準備を) $ ffmpeg -i input1 –i input2 -filter_complex

    "[0:v]crop=w=1920:h=1080:x=0:y=0,settb=1/AVTB, setpts=PTS- STARTPTS[main];[1:v]settb=1/AVTB,setpts=PTS- STARTPTS[ref];[main][ref]libvmaf" -f null - 長い…
  116. 116 VMAFは良いぞ! 更に ffmpegも色々と気を使う必要 があるぞ (場合によっては要ビルド) (あと処理時間も結構掛かる)

  117. 117 VMAFは良いぞ! 更に ffmpegも色々と気を使う必要 があるぞ (場合によっては要ビルド) (あと処理時間も結構掛かる) 一体どうすればいいんだーーーー!?

  118. 118 VMAFは良いぞ! いいもの…ありますよ?

  119. 119 VMAFは良いぞ! https://github.com/yanoshi/vagrant-aws-ffmpeg AWS上で良い感じにffmpegが動くなにかを構築してくれるやつ

  120. 120 VMAFは良いぞ! VMAFもサクッと動く(はず) rsyncでファイルも簡単同期

  121. 121 VMAFは良いぞ! なにはともあれ 自分用ffmpeg構築 スクリプトがあると便利です

  122. 122 VMAFは良いぞ! みんなもエンコードして VMAFで画質比較しような! https://qiita.com/yanoshi/items/544a361baf76b8114067 例: AV1の画質比較

  123. 123 まとめ • 客観的な画質評価もできるよ? • 色々手法があるけどVMAFは素敵 • 自分得なffmpeg構築スクリプトを持っておくと 便利だぞ! エンコードやっていこうな!

  124. 124 余談 北極圏に埋められてしまった

  125. 125 おしまい

  126. 126 【利用素材情報】 "Twemoji" by Twitter, Inc and other contributors is

    licensed under CC-BY 4.0