Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
明日から使える画質の話
Search
Masahito Yano
July 18, 2020
Technology
0
1.4k
明日から使える画質の話
Zli × DMM 合同LT
https://zli.connpass.com/event/179865/
Masahito Yano
July 18, 2020
Tweet
Share
More Decks by Masahito Yano
See All by Masahito Yano
動画サービスを支える配信基盤のコアテクノロジー
yanoshi
28
13k
弊社配信基盤を支えるHashiCorp OSS
yanoshi
4
2.8k
VR HQ画質誕生秘話~こうして我々は国内最高画質VRストリーミング動画配信を成し遂げた~ @ xR Tech Tokyo #16
yanoshi
1
1.7k
気がついたら企業側で高専プロコンに参加してたって話
yanoshi
0
1.5k
動画配信基盤エンジニアが見たI/O(2018)
yanoshi
0
530
Other Decks in Technology
See All in Technology
SREによる隣接領域への越境とその先の信頼性
shonansurvivors
2
520
初心者向けAWS Securityの勉強会mini Security-JAWSを9ヶ月ぐらい実施してきての近況
cmusudakeisuke
0
130
AGIについてChatGPTに聞いてみた
blueb
0
130
Python(PYNQ)がテーマのAMD主催のFPGAコンテストに参加してきた
iotengineer22
0
500
Why App Signing Matters for Your Android Apps - Android Bangkok Conference 2024
akexorcist
0
130
テストコード品質を高めるためにMutation Testingライブラリ・Strykerを実戦導入してみた話
ysknsid25
7
2.6k
iOS/Androidで同じUI体験をネ イティブで作成する際に気をつ けたい落とし穴
fumiyasac0921
1
110
組織成長を加速させるオンボーディングの取り組み
sudoakiy
2
180
DynamoDB でスロットリングが発生したとき/when_throttling_occurs_in_dynamodb_short
emiki
0
240
20241120_JAWS_東京_ランチタイムLT#17_AWS認定全冠の先へ
tsumita
2
290
ISUCONに強くなるかもしれない日々の過ごしかた/Findy ISUCON 2024-11-14
fujiwara3
8
870
SRE×AIOpsを始めよう!GuardDutyによるお手軽脅威検出
amixedcolor
0
130
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
44
2.2k
GraphQLとの向き合い方2022年版
quramy
43
13k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.8k
Optimizing for Happiness
mojombo
376
70k
How STYLIGHT went responsive
nonsquared
95
5.2k
What's in a price? How to price your products and services
michaelherold
243
12k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2.1k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
Teambox: Starting and Learning
jrom
133
8.8k
Transcript
明日から使える画質の話 合同会社DMM.com EC&デジタルコンテンツ本部 動画配信事業部 配信基盤グループ グループリーダー (@yanoshi)
NOW LOADING 2
3 回目の登壇です 02 お久しぶりです 会津大 リモートLTの時代が来るとは これが 新しい生活様式なのね
4 回目の登壇です 02 スライド遅くなって すみません :pray: (マヤミトくん、お取り計らい頂きありがとうございます!) リモートLTの時代が来るとは これが 新しい生活様式なのね
5 回目の登壇です 02 DMMから やってきました 会津に行けないの残念 会津のおしゃけ美味しかった(。>﹏<。)
6 回目の登壇です 02 いぇーい みんな元気? ひきこもってますー? リモートワーク最高!!
7 回目の登壇です 02 ひきこもってますー? リモートワーク最高!! 3月
8 回目の登壇です 02 ひきこもってますー? リモートワーク最高!! 4月
9 回目の登壇です 02 ひきこもってますー? リモートワーク最高!! 5月
10 回目の登壇です 02 ということで リモートのできる 良い会社です
11 閑話休題 自己紹介します
12 PRESENTER PROFILE Masahito YANO 矢野 完人 所属: 動画配信事業部 配信基盤グループ
GL 出身 奈良高専 / 奈良先端大 ID: yanoshi Twitter/HatenaBlog/Facebook/etc... 生息地 六本木、目黒 入社年度 2016年入社 仕事内容 動画等の配信基盤開発 最近やってくる事 DIY 新しい生活様式 強い車でドライブ
13 PRESENTER PROFILE Masahito YANO 矢野 完人 所属: 動画配信事業部 配信基盤グループ
GL 出身 奈良高専 / 奈良先端大 ID: yanoshi Twitter/HatenaBlog/Facebook/etc... 生息地 六本木、目黒 入社年度 2016年入社 仕事内容 動画等の配信基盤開発 最近やってくる事 DIY 新しい生活様式 強い車でドライブ
DIY 14
15 DIY
16 55V OLED TV (BRAVIA A8F) 自作PC(Ryzen 3950X, RAM64GB, NVMe
1TBx2 RAID0) EIZO WQHD EIZO WUXGA EIZO WUXGA
新しい生活様式 17
18 新しい生活様式
ドライブ 19
20 ドライブ
21 ドライブ
22 ドライブ
23 ドライブ
24 楽しい!!!
25 PRESENTER PROFILE Masahito YANO 矢野 完人 所属: 動画配信事業部 配信基盤グループ
GL 出身 奈良高専 / 奈良先端大 ID: yanoshi Twitter/HatenaBlog/Facebook/etc... 生息地 六本木、目黒 入社年度 2016年入社 仕事内容 動画等の配信基盤開発 最近やってくる事 DIY 新しい生活様式 強い車でドライブ
動画の配信基盤を 作っています 26
動画の配信基盤を 作っています 27 っと、その前にー
WARNING 注意事項 28
29 WARNING 注意事項 2018年3月、 DMM.comの成人向け事業(現 FANZA)は 株式会社デジタルコマース社に継承されました。 ただし、システムの開発や運用、一部の営業業務 はデジタルコマース社からDMM.comに委託されて おり、プラットフォームはDMM.comが継続して
提供することで合意しております。
30 WARNING 注意事項 2018年3月、 DMM.comの成人向け事業(現 FANZA)は 株式会社デジタルコマース社に継承されました。 ただし、システムの開発や運用、一部の営業業務 はデジタルコマース社からDMM.comに委託されて おり、プラットフォームはDMM.comが継続して
提供することで合意しております。
31 WARNING 注意事項 2018年3月、 DMM.comの成人向け事業(現 FANZA)は 株式会社デジタルコマース社に継承されました。 ただし、システムの開発や運用、一部の営業業務 はデジタルコマース社からDMM.comに委託されて おり、プラットフォームはDMM.comが継続して
提供することで合意しております。 みんな覚えて帰ってね!
弊社動画サービスはでかい 32
圧倒的コンテンツ量 35万 件以上 弊社動画サービスの規模感 33
大規模なストレージ容量! 増加 現状 10PB 1.2PB/年 弊社動画サービスの規模感 34
大量のトラフィック! 弊社動画サービスの規模感 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 これくらい 全社売上
売上: いっぱい 弊社動画サービスの規模感 37 これくらい 全社売上 これを支えてます!
売上: いっぱい 弊社動画サービスの規模感 38 これくらい 全社売上 これを支えてます! (ちなみに計算上は1日落とすと億円が消し飛びます)
売上: いっぱい 弊社動画サービスの規模感 39 これくらい 全社売上 『具体的には?』
40 ここを実現するためのシステムを開発 動画再生時
41 ここを実現するためのシステムを開発 動画再生時 更に具体的には?
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 コンテンツ ホルダー 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 コンテンツ ホルダー 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 コンテンツ ホルダー 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 コンテンツ ホルダー 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 コンテンツ ホルダー 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
49 回目の登壇時 01 「さいきょう」を紹介 さいきょうのキャッシュアーキテクチャ さいきょうのコンテンツ保護 さいきょうのエンコーダー
50 回目の登壇時 01 「さいきょう」を紹介 さいきょうのキャッシュアーキテクチャ さいきょうのコンテンツ保護 さいきょうのエンコーダー
コンテンツは増え続ける 毎日数十コンテンツが納品 51
動画配信を安定して行うには 適切なデータを作る必要がある 52
動画配信を安定して行うには 適切なデータを作る必要がある 53 いっぱいエンコード するよ
ストリームは複数用意するのが 普通 54 ABR: Adaptive BitRate 「画質: オート」とかそういうやつ
ストリームは複数用意するのが 普通 55 ABR: Adoptive BitRate 「画質: オート」とかそういうやつ
ストリームは複数用意するのが 普通 56 ABR: Adoptive BitRate 「画質: オート」とかそういうやつ いっぱいエンコード するよ
最近はVRがアツい 57 ユーザーに最高のVR体験を 届けたい! しかし…まだまだ過渡期なので デバイスが混沌
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 混沌とするデコーダ仕様 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 混沌とするデコーダ仕様 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 混沌とするデコーダ仕様 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 混沌とするデコーダ仕様 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 混沌とするデコーダ仕様 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 混沌とするデコーダ仕様 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 コンテンツ ホルダー 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 コンテンツ ホルダー 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 コンテンツ ホルダー 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 導入前
Before 温もり運用
Before 温もり運用
Before 温もり運用 かっこいい!エモい!でも大変!
71 コスパ最強構成のエンコーダーシステム JIRO JIRO Is Reliability-Oriented encoder 動画ファイル
72 コスパ最強構成のエンコーダーシステム JIRO JIRO Is Reliability-Oriented encoder 分割
分散処理 73 コスパ最強構成のエンコーダーシステム JIRO JIRO Is Reliability-Oriented encoder
結合 74 コスパ最強構成のエンコーダーシステム JIRO JIRO Is Reliability-Oriented encoder
結合 75 コスパ最強構成のエンコーダーシステム JIRO JIRO Is Reliability-Oriented encoder
結合 76 コスパ最強構成のエンコーダーシステム JIRO JIRO Is Reliability-Oriented encoder 昼間の間、配信サーバー は暇している
結合 77 コスパ最強構成のエンコーダーシステム JIRO JIRO Is Reliability-Oriented encoder 暇している 配信サーバーを
エンコーダーしちゃおう!
78 コスパ最強構成のエンコーダーシステム JIRO JIRO Is Reliability-Oriented encoder 突然生まれるエンコーダー161台
79 コスパ最強構成のエンコーダーシステム JIRO JIRO Is Reliability-Oriented encoder 突然生まれるエンコーダー161台 コスパ最強 十数倍の高速化
80 JIRO Is Reliability-Oriented encoder DMMアワード2020 チーム特別賞受賞
81 JIRO Is Reliability-Oriented encoder 頑張って作って良かった!
82 JIRO Is Reliability-Oriented encoder まだ途中半ば 画質を向上せねば
明日から使える画質の話 合同会社DMM.com EC&デジタルコンテンツ本部 動画配信事業部 配信基盤グループ グループリーダー (@yanoshi)
84 前提 みんなエンコードしてるよね? してると思って話すね! ちなみに我が家はRyzen 3950X + RTX2060 SUPERなの/// エンコードし放題だよ!(。>﹏<。)
85 今日話すこと そもそも画質とは? 画質を評価する手法について VMAFは良いぞ!
86 今日話すこと そもそも画質とは? 画質を評価する手法について VMAFは良いぞ!
87 そもそも画質とは? インターネットにて
88 そもそも画質とは? 見比べました!
89 そもそも画質とは? 拡大してこっちの ほうがボケが少ない から画質はきれいで す!
90 そもそも画質とは? こちらのほうが 容量が大きいので きれいです!
91 そもそも画質とは? 『本当にそれで良いのか?』
92 そもそも画質とは? 確かに感覚での評価は大事
93 そもそも画質とは? でも客観評価もしたくない?
94 そもそも画質とは? いいもの…ありますよ?
95 今日話すこと そもそも画質とは? 画質を評価する手法について VMAFは良いぞ!
96 画質を評価する手法について 実はパラメトリックに 評価する手法は色々ある
97 画質を評価する手法について 代表例: SSIM, PSNR, MSE
98 画質を評価する手法について 代表例: SSIM, PSNR, MSE
99 画質を評価する手法について 代表例: SSIM, PSNR, MSE MSEは差分 PSNRはノイズ SSIMは良い感じ
100 画質を評価する手法について とりあえずSSIMを 使っておけば十分かも
101 画質を評価する手法について とりあえずSSIMを 使っておけば十分かも 局所的な違いの方が人間 は気が付きやすいらしい それを数値化してくれる (詳しくはググって)
102 画質を評価する手法について SSIMはとても便利
103 画質を評価する手法について ffmpegでサクッと出せます (メモのご準備を)
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 画質を評価する手法について SSIMが1に近いほどきれい
106 画質を評価する手法について 分かりやすくて最高! SSIMは神…?
107 画質を評価する手法について 分かりやすくて最高! SSIMは神…? 実はそうでもない
108 画質を評価する手法について 分かりやすくて最高! SSIMは神…? 動画コーデックの進化は 半端ない ex: H.265, VP9, AV1,
H.266
109 画質を評価する手法について 分かりやすくて最高! SSIMは神…? 「人間的には変化を感じられない けど、実はすごく違う」 みたいなアルゴリズムに
110 画質を評価する手法について 分かりやすくて最高! SSIMは神…? 一体どうすればいいんだーーーー!?
111 今日話すこと そもそも画質とは? 画質を評価する手法について VMAFは良いぞ!
112 VMAFは良いぞ! そこでVMAFです
113 VMAFは良いぞ! VMAFとは? Netflixが作った知覚的な要素 を捉えた画質評価手法 (回帰分析とかしているらしい) https://github.com/Netflix/vmaf
114 VMAFは良いぞ! VMAFとは? 雑に言うと何か良い感じに 画質評価してくれるらしいぞ
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 VMAFは良いぞ! 更に ffmpegも色々と気を使う必要 があるぞ (場合によっては要ビルド) (あと処理時間も結構掛かる)
117 VMAFは良いぞ! 更に ffmpegも色々と気を使う必要 があるぞ (場合によっては要ビルド) (あと処理時間も結構掛かる) 一体どうすればいいんだーーーー!?
118 VMAFは良いぞ! いいもの…ありますよ?
119 VMAFは良いぞ! https://github.com/yanoshi/vagrant-aws-ffmpeg AWS上で良い感じにffmpegが動くなにかを構築してくれるやつ
120 VMAFは良いぞ! VMAFもサクッと動く(はず) rsyncでファイルも簡単同期
121 VMAFは良いぞ! なにはともあれ 自分用ffmpeg構築 スクリプトがあると便利です
122 VMAFは良いぞ! みんなもエンコードして VMAFで画質比較しような! https://qiita.com/yanoshi/items/544a361baf76b8114067 例: AV1の画質比較
123 まとめ • 客観的な画質評価もできるよ? • 色々手法があるけどVMAFは素敵 • 自分得なffmpeg構築スクリプトを持っておくと 便利だぞ! エンコードやっていこうな!
124 余談 北極圏に埋められてしまった
125 おしまい
126 【利用素材情報】 "Twemoji" by Twitter, Inc and other contributors is
licensed under CC-BY 4.0