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
高パケットロス耐性を持つビデオストリーミングのためのHTTP/3拡張
Search
teru0x1
February 05, 2020
Technology
0
170
高パケットロス耐性を持つビデオストリーミングのためのHTTP/3拡張
teru0x1
February 05, 2020
Tweet
Share
More Decks by teru0x1
See All by teru0x1
開発効率と信頼性を両立する Ubieのプラットフォームエンジニアリング
teru0x1
0
340
マルチクラスタの認知負荷に立ち向かう! Ubieのプラットフォームエンジニアリング
teru0x1
4
4.2k
ブラウザの外側でWasmを使おう
teru0x1
0
350
スタブサーバ自動生成ツール 〜負荷試験をもっと楽に〜
teru0x1
0
1.8k
バッチシステムをクラウドネイティブにするために考えたこと
teru0x1
17
8.3k
クラウド環境をFargateに 移行して得た知見
teru0x1
0
1.5k
Goと定数 DMM.go #3
teru0x1
0
2.6k
はてなインターン2020成果発表
teru0x1
0
1.1k
入門QUIC
teru0x1
0
550
Other Decks in Technology
See All in Technology
Evolución del razonamiento matemático de GPT-4.1 a GPT-5 - Data Aventura Summit 2025 & VSCode DevDays
lauchacarro
0
190
KotlinConf 2025_イベントレポート
sony
1
140
250905 大吉祥寺.pm 2025 前夜祭 「プログラミングに出会って20年、『今』が1番楽しい」
msykd
PRO
1
910
DroidKaigi 2025 Androidエンジニアとしてのキャリア
mhidaka
2
220
「Linux」という言葉が指すもの
sat
PRO
4
130
「どこから読む?」コードとカルチャーに最速で馴染むための実践ガイド
zozotech
PRO
0
430
なぜスクラムはこうなったのか?歴史が教えてくれたこと/Shall we explore the roots of Scrum
sanogemaru
5
1.6k
未経験者・初心者に贈る!40分でわかるAndroidアプリ開発の今と大事なポイント
operando
5
610
開発者を支える Internal Developer Portal のイマとコレカラ / To-day and To-morrow of Internal Developer Portals: Supporting Developers
aoto
PRO
1
460
Aurora DSQLはサーバーレスアーキテクチャの常識を変えるのか
iwatatomoya
1
980
なぜテストマネージャの視点が 必要なのか? 〜 一歩先へ進むために 〜
moritamasami
0
220
Automating Web Accessibility Testing with AI Agents
maminami373
0
1.3k
Featured
See All Featured
Rails Girls Zürich Keynote
gr2m
95
14k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.9k
The Cult of Friendly URLs
andyhume
79
6.6k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
51
5.6k
KATA
mclloyd
32
14k
For a Future-Friendly Web
brad_frost
180
9.9k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
920
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.6k
Transcript
ߴύέοτϩεੑΛ࣋ͭ ϏσΦετϦʔϛϯάͷͨΊͷ )551֦ு ೳιϑτΣΞݚڀࣨ ֶ࢜՝ఔ খ ً
背景 lಈըίϯςϯπͷ૿Ճ Πϯλʔωοτ௨৴ͷҎ্͕ಈըίϯςϯπ lଓͷ૿Ճ -"/ͰෳσόΠε͕ಉ࣌ʹଳҬΛফඅ αʔϏεʹରͯ͠େྔͷΫϥΠΞϯτ͕ಉ࣌ଓ lଓͷଟ༷Խ
εϚϗɺλϒϨοτͱ͍ͬͨϞόΠϧ ϞόΠϧଳҬ͕มԽ͘͢͠ύέοτϩεൺֱతߴ͍ ʢ#BMUSVOBT ʣ lෆ҆ఆͳωοτϫʔΫڥԼͰշదͳࢹௌମݧΛ 2
研究目的 lఆωοτϫʔΫڥ ଳҬมԽ͕ܹ͍͠ ύέοτϩε͕ߴ͍ lཁ݅ ಈըͷ࠶ੜఀࢭ͕͍࣌ؒ
ಈըͷ࠶ੜఀࢭස͕͍ 3 )551Λ֦ு͢Δ͜ͱʹΑΔ ϏσΦετϦʔϛϯά৴ܗଶͷఏҊ
ストリーミング配信 4 ৴αʔό Τϯίʔμ ಈըใΛอଘ ಈըϑΝΠϧ ৴αʔϏεͷγεςϜ Χϝϥ ΫϥΠΞϯτ Τϯίʔυ
ʢಈըใͷѹॖʣ
既存研究(1/3)動機 l ϏσΦͷ࠶ੜఀࢭΛ͍͗ͨ ύέοτϩεڥԼͰɺσʔλͷ࠶ૹ͕ ίετʹͳΔ ࠶ૹΛ͑Δ͜ͱͰ࠶ੜఀࢭΛ੍ ͨͩ͠ɺϏσΦͷ࠶ੜʹඞਢͷσʔλૹΔ
ඞཁ͕͋Δ ෦తʹ৴པੑͷͳ͍ํࣜͰૹ৴Λߦ͏ 5
既存研究(2/3) l 4$51ͱ4DBMBCMF 7JEFP$PEJOHʢ47$ʣͷར༻ ʢ0SUJ[ ʣ 4$51τϥϯεϙʔτϓϩτίϧͷͭ 47$ͷ#BTF
-BZFS͚ͩϩεͨ࣌͠ʹ࠶ૹ 6 ग़యɿ"TVSWFZPOCJUSBUFBEBQUBUJPOTDIFNFTGPSTUSFBNJOH NFEJBPWFS)551 "CEFMIBLFUBM $0.45 w#BTF-BZFS࠶ੜʹඞཁͳ ϨΠϠ w&OIBODFNFOU-BZFS࣭Λ Ճ͢ΔϨΠϠ
既存研究(3/3) l 26*$֦ுͷར༻ʢ1BMNFS ʣ 26*$ʹ࠶ૹΛߦΘͳ͍֦ுΛՃ ࠶ੜʹඞཁͳϐΫνϟʢϏσΦϑϨʔϜʣ͚ͩ࠶ૹ l 26*$
৽ͨͳτϥϯεϙʔτϓϩτίϧ (PPHMFʹΑͬͯߟҊɺ։ൃ ݱࡏɺඪ४Խͷ్த 5$1ͷΛ؇ 7
QUIC l ϑϨʔϜ 26*$Ͱૹ৴͢Δ σʔλͷ࠷খ୯Ґ ύέοτϩε࣌ͷ ࠶ૹ୯Ґ l
ετϦʔϜ Ծతͳ௨৴࿏ ίωΫγϣϯ্ʹ ଟॏԽ 8
HTTP/3 l 26*$্Ͱಈ͘)551 ैདྷͷ)551 )5515$1্Ͱಈ͘ l ετϦʔϜ )551ϨΠϠʹ͓͚ΔԾతͳ௨৴࿏
26*$ͷετϦʔϜʹϚοϐϯά 9
既存研究の問題点 l ͲͪΒ)551Λར༻͠ͳ͍ ϦΫΤετɺϨεϙϯεͷߏΛऔΒͳ͍ͨΊ αʔό͕֤छͷύϥϝʔλܾఆ $%/ʢΩϟογϡαʔόʣΛར༻Ͱ͖ͳ͍ 8FCαʔόͱผʹετϦʔϛϯάઐ༻αʔό
͕ඞཁ εέʔϥϏϦςΟ্ͷ͕ੜ͡Δ 10
提案手法(1/3) l طଘݚڀͱಉ༷ͷΞΠσΟΞΛ)551 Λ࣮ͬͯݱ ෦తʹ࠶ૹΛߦΘͳ͍௨৴Λར༻ͨ͠ ετϦʔϛϯά طଘख๏ͷͱͯ͠ڍ͛ͨͷղܾ͢Δ
ෆ҆ఆͳڥԼͰͷߴ͍࣭͕ظ͞ΕΔ 11
提案手法(2/3)ビデオ取得 l47$ͷϨΠϠ͝ͱʹετϦʔϜΛ͏ #BTF-BZFSඞͣ࠶ૹΛߦ͏ )551ͷ ετϦ ʔϜ &OIBODFNFOU-BZFS࠶ૹΛߦΘͳ͍ετϦʔϜ 12
提案手法(3/3)ビデオの再生 l ηάϝϯτΛσίʔμϒϧʹม ࠶ૹແ͠Ͱऔಘͨ͠ηάϝϯτσʔλͷҰ෦͕ܽଛ த్ͳϐΫνϟ͕͍ͬͯΕσίʔυෆՄೳ σʔλͱڞʹฦ͞ΕΔফࣦ͔۠ؒΒσίʔμϒϧͳ ൣғΛநग़͢Δ
13
提案手法 プロトコルへの拡張 l৴པੑͷͳ͍௨৴ Λ͢ΔͨΊɺ 26*$ɼ)551 ʹ"1*ΛՃ l൚༻ੑΛ࣋ͨͤͯ ֦ு 14
提案手法 QUICの拡張 15 "1*໊ 6OSFMJBCMF8SJUF Ҿ EBUB<>CZUF Γ CZUFT8SJUUFOJOU FFSSPS
֓ཁ EBUBΛ6/3&-*"#-&453&". 'SBNFͰૹ৴͢Δɻ "1*໊ 6OSFMJBCMF3FBE Ҿ EBUB<>CZUF Γ CZUFT3FBEJOU MPTT3BOHF<>#ZUF3BOHF FFSSPS ֓ཁ 6/3&-*"#-&453&".'SBNF Ͱड৴ͨ͠σʔλΛEBUBʹ ಡΈࠐΉɻ l৴པੑΛ࣋ͨͳ͍ ϑϨʔϜΛ৽ͨʹ ఆٛ l৴པੑͷͳ͍ ૹ৴ɺड৴Λߦ͏ "1*Λఆٛ 6OSFMJBCMF8SJUF 6OSFMJBCMF3FBE l(PͰ࣮
提案手法 HTTP/3の拡張 16 "1*໊ (FU8JUI3FMJBCJMJUZ Ҿ DMJFOU IUUQ$MJFOU VSMTUSJOH
VOSFMJBCMFCPPM Γ SFTQPOTF IUUQ3FTQPOTF FFSSPS ֓ཁ ৴པੑͷ༗ແΛࢦఆͯ͠ VSMʹ(FUϦΫΤετΛग़͢ɻ SFTQPOTF#PEZʹ ίϯςϯπͱܽଛൣғ͕ ฦ͞ΕΔɻ l৴པੑͷͳ͍ (FUϦΫΤετΛ Մೳʹ͢Δ"1*Λ ࣮ l(PͰ࣮
実験(1/2) l త ఏҊख๏Λͬͨࡍɺ ෆ҆ఆͳωοτϫʔΫ ڥʹ͓͍࣭ͯΛ อͯΔ͔Ͳ͏͔ݕূ͢Δ l ༰
ఏҊख๏ͱɺඪ४Խ్த ͷ)551 OPSNBM Ͱ ൺֱ ϏσΦ࠶ੜఀࢭʹؔ͢Δ ࢦඪΛධՁ 17
実験(2/2) l ࣮ݧ݅ ಈըϓϨΠϠʔΤϛϡϨʔλͷ"4USFBNΛվมͯ͠ར༻ ྲྀ͢ಈըඵؒ ଳҬมԽࠨԼਤʢ࠷େͰ.CQTʣ
ωοτϫʔΫߏӈԼਤɻશͯNJOJOFU7. 355NT ಈըηάϝϯτTFD ηάϝϯτऔಘΞϧΰϦζϜ#BTJDʢଳҬϕʔεʣ 47$֊ʹΤϯίʔυʢ#- &- ʣ 18 UJNF TFD CBOEXJEUI .CQT
結果(1/2) ύέοτϩεΛd·ͰมԽͤͯ͞ɺCVGSBUJP SBUFCVGΛܭଌ CVGSBUJP࠶ੜఀࢭ࣌ؒಈը࠶ੜ࣌ؒ SBUFCVG࠶ੜఀࢭճಈը࠶ੜ࣌ؒ ֤ύέοτϩεʹରͯ͠ճܭଌ
ʢ! − 1.5iqrҎԼͱ" + 1.5iqrҎ্আڈʣ Τϥʔόʔඪ४ޡࠩ 19 ੨ɿOPSNBM ᒵɿఏҊख๏ ੨ɿOPSNBM ᒵɿఏҊख๏ QBDLFUMPTTSBUF CVGSBUJP QBDLFUMPTTSBUF SBUFCVG
aSSIM (Palmer+ 2018) l ը࣭ͱ࠶ੜఀࢭ࣌ؒʢCVGSBUJPʣͷ ౷߹ࢦඪ ϐΫνϟը࣭ͷධՁࢦඪ44*.ʢTUSVDUVSBMTJNJMBSJUZʣ ετϦʔϛϯάͰը࣭͚ͩΛධՁ͢Δͷෆద
B44*.࠶ੜఀࢭதͷ44*.Λͱͯ͠ɺ࠶ੜظؒʹ ΘͨΔ44*.ͷฏۉΛͱͬͨͷ aSSIM = ∑!"# $ ! + % ! J൪ͷϐΫνϟͷ44*. ૯ϐΫνϟ ඵ͋ͨΓͷϐΫνϟ " ࠶ੜఀࢭ࣌ؒ 20
結果(2/2) ύέοτϩεΛd·ͰมԽͤͯ͞ɺB44*.Λܭଌ ଌఆճɺ֎Εআڈํ๏ɺΤϥʔόʔ͕ࣔ͢ͷઌఔͱ ಉ༷ 21 ੨ɿOPSNBM ᒵɿఏҊख๏ QBDLFUMPTTSBUF
B44*.
考察 ߴύέοτϩεڥԼʹ͓͍ͯSBUFCVGٴͼ B44*.͕྆ํվળ ྑ͍ωοτϫʔΫڥԼͰB44*.͕ΑΓ͍ w ύέοτϩε͕͍ڥԼͰͷը࣭ͷԼ͕ݪҼ w ύέοτϩεʹԠͯ͡ಈతʹOPSNBMͱͷΓସ͑Λߦ͏
22
まとめ l ݁ ෆ҆ఆͳωοτϫʔΫڥԼͰߴ͍࣭Λอͭ ৴ख๏ΛఏҊ w ࠶ੜఀࢭͷ੍ޮՌΛ֬ೝͨ͠ 26*$ɼ)551ʹ֦ுΛࢪ͢͜ͱͰ࣮ݱ
w $%/ͷར༻ͳͲʹΑΓεέʔϥϏϦςΟͷ֬อ͕Մೳ l ࠓޙͷల ਓؒͰͷఆੑతͳධՁ 23
CDNの利用 l$%/ʢDPOUFOUTEFMJWFSZOFUXPSLʣ ੈքதʹࢄஔ͞ΕͨΩϟογϡαʔόͷ͜ͱ εέʔϥϏϦςΟͷ֬อͷͨΊʹඞਢ lఏҊख๏ͱ$%/Λซ༻͢Δ߹ Ωϟογϡαʔόʹଛࣦͷͳ͍σʔλ͕͋ͬͯ΄͍͠ 24