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
yasei no otoko
February 02, 2013
How-to & DIY
120
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
今更聞けないビデオコーデックの話
ゲーム用PV作成のための情報まとめ
yasei no otoko
February 02, 2013
More Decks by yasei no otoko
See All by yasei no otoko
How I Won Prize Money at a Hackathon Using Codex and Symphony Alpha
yasei_no_otoko
0
100
VR HMDとしてのVision Pro+ゲーム開発について
yasei_no_otoko
0
220
一人からのゲーム開発
yasei_no_otoko
1
920
Other Decks in How-to & DIY
See All in How-to & DIY
What's the difference in taste between expensive and cheap mills? Measuring coffee particle size distribution using ImageJ
dogrunjp
0
870
JAWS-UG/AWS Community Update
awsjcpm
0
310
How to Stylus 20251031
hareyakayuruyaka
0
170
JAWS-UG/AWSコミュニティ JAWS-UG おおいた
awsjcpm
2
3.1k
多摩ニュータウンを、 味わう
aokiplayer
2
750
AWS Community Builders Update - JAWS-UG Tokyo and Sainokuni
awsjcpm
3
300
献立を支える技術
godan
1
110
画面の向こうから「気づき」を得る 画面の向こうを「物差し」として捉える
subroh0508
1
420
キャリア科目では教えてくれない、就活を生き抜く法則
logica0419
2
310
スマートハウスの蓄電性能の効率化を実現してみた~電気自動車編~
runrunsan
0
560
ドローンをAWSで制御してみた
nagi900
0
180
終わりのない会議を超えて:HolacracyのTactical Meetingを体験しよう!
andrearc
0
340
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
270
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
Abbi's Birthday
coloredviolet
3
9.3k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.3k
[SF Ruby Conf 2025] Rails X
palkan
2
1.3k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
420
Automating Front-end Workflow
addyosmani
1369
210k
Making Projects Easy
brettharned
120
6.7k
Scaling GitHub
holman
464
140k
A better future with KSS
kneath
240
18k
Transcript
ࠓߋฉ͚ͳ͍ ϏσΦίʔσοΫͷ ੜͷஉ 1
ߨԋͷςʔϚ ήʔϜ։ൃʹ͓͚Δಈը࡞धཁͷߴ·Γ PVɺήʔϜϜʔϏʔͷ࡞ ಈըαΠτͷΞοϓϩʔυ ߴը࣭ͳΛ࡞͢ΔఔΛௐΔͷେม Ұͭʹ·ͱΊΑ͏ 2
ಈըͱ จࣈ௨Γʮಈ͘ʯʮըʯ ϑϨʔϜ͝ͱʹը͕ΓସΘ͍ͬͯ͘ σδλϧಈը੩ࢭըͷू·Γ gifΞχϝෳͷը૾ϑΝΠϧ͔Β࡞ΒΕΔ 3
͜͜Ͱٙ ʮgifී௨ͷը૾ϑΝΠϧΑΓ༰ྔ͕େ͖͍͚Ͳ flvͱ͔mp4ͦΜͳʹେ͖͘ͳ͍Αʁʯ !ίʔσοΫͷ͓͔͛ 4
Τϯίʔμʔ(ූ߸Խث)ͱσίʔμʔ(෮߸Խث) ͔ΒΔѹॖن֨ ը૾ίʔσοΫɺԻίʔσοΫɺಈը← ίʔσοΫ(CODEC)ѹॖ(COmp~)ͱ ৳ு(DEComp~)ΛΈ߹Θͤͨઐ༻ޠ ίʔσοΫͱ 5
.gifΑΓ͍ܰ.mp4ʁ جຊతʹ.mp4ͷಈըಉ͡ը࣭ɺ ղ૾ͷgifಈըΑΓϑΝΠϧαΠζ͕খ͍͞ !gifΑΓෳࡶͳॲཧͰѹॖ͍ͯ͠Δ͔Β ੲMotion JPEGͱ͍͏֤ϑϨʔϜΛJPEGͰ อଘ͢Δಈըܗࣜ͋ͬͨ 6
.mp4(MPEG-4)ͱ ͦΕࣗମͨͩͷϑΝΠϧίϯςφ Moving Picture Experts Group(MPEG) ͕نఆ͍ͯ͠ΔϑΝΠϧ֨ೲϑΥʔϚοτ ಈըϑΝΠϧԻϑΝΠϧ֨ೲͰ͖Δ 7
Ұൠతͳ.mp4ಈըͷத 動画コーデック:H.264 (MPEG4-‐‑‒AVC) AVC = Advanced Video Coding 先進的 動画 符号化 ⾳音声コーデック:AAC
AAC = Advanced Audio Coding 先進的 ⾳音響 符号化 8
H.264͕ͬͯΔ͜ͱ ۭؒม ϑϨʔϜؒ༧ଌ ͷըૉਫ਼ͷಈ͖ิঈ Πϯτϥ༧ଌ Τϯτϩϐʔූ߸Խ 9
Ϡό͍ 10
ಈըѹॖͷτϨʔυΦϑ ੵΈॏͳͬͨҒ͍ਓୡͷݚڀͷՌͷ͓͔͛Ͱɺ ը࣭ͱϑΝΠϧαΠζͷτϨʔυΦϑ΄΅ແ͍ ѹॖͱͰτϨʔυΦϑ͕ى͖Δ 11
ίʔσοΫͷ͍͚ ༻్ ѹॖ ѹॖ ը࣭ Ωϟϓνϟ ಈըฤू Πϯλʔωοτ ΠϯήʔϜ ࠷
ೋͷ࣍ ඇྼԽ ͍ํ͕ྑ͍ ͦΕͳΓ ΄΅ඇྼԽ ͯ͘ྑ͍ ߴ͍ํ͕ྑ͍ ͳΔ͘ ͯ͘ྑ͍ ߴ͍ํ͕ྑ͍ ߴ͍ํ͕ྑ͍ 12
ୈ1ɿΩϟϓνϟ 30ʙ60fpsͰಈ͘ήʔϜͷө૾Λ࿙Βͣ͞ ϦΞϧλΠϜͰίϐʔͯ͠ѹॖ͢Δ ͕Γͳ͍ͱϑϨʔϜυϩοϓ͕ى͖ɺ ࡱͬͨө૾͕࣮ࡍΑΓΧΫΧΫʹͳΔ ߋʹ͕Γͳ͍ͱήʔϜࣗମ͘ͳΔ ޙʑͷѹॖͰը࣭͕Լ͕ΔͷͰɺ ͜ͷஈ֊Ͱը࣭ྼԽͤͨ͘͞ͳ͍ 13
ͱը࣭͕྆ํඞཁ ͡Ό͋ѹॖͤͣʹࡱΖ͏ 14
ʁ 15
×·͕͍ͪ ແѹॖඇৗʹ༰ྔ͕૿͑Δ 1ըૉRGB24bit(3όΠτ) ຖϑϨʔϜّʹΩϟϓνϟ 640x480x3όΠτ×60fps=53MB/s ͜Ε͚ͩେ͖͍ͱHDDͷॻ͖ࠐΈ༨ܭͳෛՙʹ ͦͦ༰ྔ͕Γͳ͍ 16
ՄٯѹॖίʔσοΫΛ͏ Մٯѹॖͱʁ ʮѹॖʯͯ͠ʮٯʯʹ͢͜ͱ͕ʮՄʯೳ Τϯίʔυલͱσίʔυޙͷ༰͕Ұக ྼԽ͢ΔඇՄٯѹॖ ΄΅ແѹॖͷ1/2ະຬͷαΠζʹ 17
ίϥϜɿՄٯѹॖίʔσοΫͷྫ Huffyuv ݹ͔͘Β͋ΔՄٯѹॖίʔσοΫ ໊લ௨Γ”Huff”manූ߸ͱYUV৭ۭؒͷม ͳͲʹΑͬͯՄٯѹॖΛߦ͏ ༗໊͕ͩɺϚϧνίΞɾSIMD࠷దԽϏϧυ͕ແ͍ͨΊ ݱࡏར༻͢Δͷඇਪ ରԠͨ͠ੜϏϧυ͋Δ͕ɺ௨ৗ൛ͱޓੑ͕ແ͍ͨΊ ड͚͠ʹ͏߹ඇਪ ͘͠Ͳ͏ͤϑϦʔιϑτͳͷͰ྆ํͷPCʹೖΕΔ
18
͓͢͢ΊΩϟϓνϟιϑτ Fraps γΣΞΣΞ(37υϧ)ɾฮͷಈըΩϟϓνϟ DXtory γΣΞΣΞ(3600ԁ)ɾߋ৽͕සൟͰWin8ରԠ ྆ํͱಠࣗίʔσοΫΛར༻͓ͯ͠Γɺ ߴ͔ͭඇྼԽ͔ͭ؆୯ૢ࡞ͰΩϟϓνϟ͕Մೳ 19
ΞϚԿͱ͔ʁ ϑϦʔ͕ͩҎԼͷཧ༝ʹΑΓඇਪ Windows Vista/7/8ඇαϙʔτ !͜ͷ͍ͤͰըࣗମ্͕ڃऀ͚ʹͳ͍ͬͯΔ OpenGL/DirectX10Ҏ߱ඇରԠ ༗ྉͷಠࣗίʔσοΫ͕64bitඇରԠ !64bitͷಈըฤूιϑτͰಡΊͳ͍ 20
Ωϟϓνϟ·ͱΊ ͍ํ͕ྑ͍͚ͲແѹॖσϝϦοτͷํ͕ େ͖͍ͷͰɺՄٯѹॖίʔσοΫΛ͏ Fraps͔DXtoryΛ͑ෆࣗ༝͠ͳ͍ 21
ୈ2ɿಈըฤू PVͳͲͷಈըฤूɺ ͦͷૉࡐͱͳΔϑΝΠϧͷѻ͍ Ωϟϓνϟ΄ͲͷΤϯίʔυඞཁແ͍͕ɺ Ϟνϕʔγϣϯ͕Լ͕Βͳ͍ఔͷͱ ඇྼԽͦ͘͠Εʹ͍ۙߴը࣭͕ඞཁ 22
͓͢͢ΊίʔσοΫ Utvideo Codec ࠃ࢈ͰϑϦʔɻχίϚεP͕ฤू࡞ۀͷҝʹ։ൃ ݱࡏMac൛ग़ͯ࠷ڧʹ͍ۙ Lagarith Codec ւ֎࢈ϑϦʔɻUtvideoΑΓ%ྑ͘ॖΉ Մٯѹॖͷ%ʹඦMB୯ҐͳͷͰ݁ߏॏཁ 23
ίϥϜɿϑΝΠϧͷड͚࣌͠ ૉࡐͳΔ͘ߴը࣭Ͱ͍ͨ͠ʂ Ωϟϓνϟͨ͠··ͷϑΝΠϧੌ·͘͡େ͖͍ FrapsDXtoryಠࣗίʔσοΫͳͷͰɺ ιϑτΛ૬खͷਓʹೖΕͯΒ͏ඞཁ͕͋Δ Lagarith͘͠H.264ߴϏοτϨʔτͳͲɺ ߴը࣭Ͱ༰ྔͷখ͘͞ͳΔίʔσοΫʹม͢Δ 24
ୈ3ɿΠϯλʔωοτ YoutubeɺχίχίಈըɺVimeoͳͲ ΠϯλʔωοτͷಈըαΠτʹߘ͢Δ߹ ্ه3αΠτͲΕ.mp4(H.264/AAC)͕ඪ४ ͱͳ͍ͬͯΔͷͰ͜ΕΛରʹ 25
H.264ͷѹॖઃఆ ϓϩϑΝΠϧʹΑͬͯɺಉ͡ϏοτϨʔτͰ ѹॖॲཧ͕େ͖͘มΘΔ Baseline γϯϓϧͳϑϨʔϜ༧ଌͱΤϯτϩϐʔූ߸Խ Main BaselineʹॏΈ͚༧ଌͳͲͷॲཧΛՃ High Mainʹ8x8ըૉࢄίαΠϯมɺྔࢠԽߦྻΛՃ 26
͡Ό͋High/ߴϏοτϨʔτͰྑ͍ͷʁ ͱ͜Ζ͕Ͳ͍ͬ͜ χίχίಈըʹΤίϊϛʔϞʔυ͕ଘࡏ ݱࡏBaselineɺ29.97fps ը࣭͕ܹ͘͠མͪɺ ݩ͕60fpsͷ߹ΧΫΧΫʹͳΔ ϙʔλϒϧػثͳͲMain·ͰରԠͷͷ͕ଟ͍ 27
Τίϊϛʔճආͷεεϝ Main/HighͰϏοτϨʔτΛ٧Ίͨํ͕ ΤίϊϛʔԽ͞ΕͨಈըΑΓߴը࣭ʹͳΔ ݱࡏͷ্ݶ445kbps(445440bps)(Իؚ) 445440bpsϐολϦͱ͍͏༁Ͱແ͍ͷͰ ࠶ੜςετඞਢ 28
ɹίϥϜɿH.264ͷϨϕϧʹ͍ͭͯ H.264Ͱɺಈըͷղ૾ͱϑϨʔϜϨʔτʹΑΔ ඵؒϒϩοΫαΠζʹΑͬͯϨϕϧ͕ఆΊΒΕ͍ͯΔ ࢀߟɿMobileHackerz χίχίಈըͷਪLevel 3.1Ͱɺ͜Ε 720x480@80fpsɺ1280x720@30fps·Ͱର 60fpsͷ߹1280x720Ҏ্ͷήʔϜͰ ղ૾ʹϦαΠζ͢Δͷ͕ඞਢ 29
ԻίʔσοΫʁ ҰൠతʹAACͱݴ͑ɺ iTunesͳͲʹΘΕΔAAC-LC͕ओྲྀ͕ͩɺ ۃϏοτϨʔτͷ߹HE-AACΛͬͨํ͕ ϊΠζ͕গͳ͘៉ྷʹௌ͑͜Δ 48kbpsͰෆշͳϊΠζ΄΅ௌ͑͜ͳ͍ LCʹLow Complexity HEʹHigh Efficiency
30
ίϥϜɿͭΜͰΕΜ͜ ໊લ;͚͍ͯ͟Δ͚Ͳ༏लͳιϑτ ࣭ରܗࣜͰ.mp4ͷΤϯίʔυઃఆΛߦ͑Δ ඞཁιϑτΛࣗಈΠϯετʔϧͯ͘͠ΕΔ ΤίϊϛʔճආɺHE-AACɺYoutubeʹରԠ ࠷ऴ൛͕9ݸ(!?)ग़͓ͯΓɺࠓޙ͕ग़ͨ߹ ੜͷՆ࿇ࠜͷํΛ༻͢Δ͜ͱΛਪ 31
ίϥϜɿχίχίҎ֎ YoutubeͱVimeoϑϧHDʹରԠ͓ͯ͠Γ ϏοτϨʔτͷ੍গͳ͍͕ ͲͪΒ30fps·Ͱ͔͠ରԠ͍ͯ͠ͳ͍ͷͰ Ξοϓϩʔυ͢Δ߹ը࣭ॏࢹͰ 32
Πϯλʔωοτಈը·ͱΊ ࣮࣭.mp4(H.264/AAC)Ұ ΤίϊϛʔճආΛ͢Δ͔͠ͳ͍͔ྑ͘ݕ౼͢Δ Τϯίʔυॳ৺ऀ·ͣͭΜͰΕΜ͜Λ͏ YoutubeVimeo30fpsʹͳΔ͜ͱΛߟྀ 33
ୈ4ɿΠϯήʔϜϜʔϏʔ ήʔϜதͰ࠶ੜ͢Δಈը DirectShowͰΘΕΔίʔσοΫશʹڥґଘͰ ffdshowͳͲͰஔ͖͑ΒΕΔՄೳੑ͕͋Γɺ ͦΕʹΑΔόά͕ى͜ΓಘΔ MSήʔϜ։ൃʹ͓͍ͯDirectShowΛඇਪAPIࢦఆ Media Foundation͕ݱࡏͷਪAPIʢ͕ͩVistaҎ߱ʣ ສશΛظ͢ͳΒήʔϜϓϩάϥϜଆͰσίʔμΛࡌ 34
·ͱΊ ΩϟϓνϟFraps͔DXtoryͰ ಈըฤूૉࡐʹՄٯѹॖίʔσοΫΛ Πϯλʔωοτʹ্͛Δಈըx264Ͱ࡞ ήʔϜϜʔϏʔ࠶ੜ݁ߏमཏͷಓ 35
ձͰͷQ&A(1) σίʔυࡌͱ۩ମతʹʁ ಈըϑΝΠϧͷಡΈࠐΈ ˠσίʔυͯ͠ϑϨʔϜΛऔΓग़͢ ˠϑϨʔϜόοϑΝςΫενϟʹϨϯμϦϯά ͱ͍ͬͨॲཧΛ࣮͢Δ͜ͱ 36
ձͰͷQ&A(2) ήʔϜʹΈࠐΊΔσίʔμͷྫͱʁ MPEGܥ(H.264)ಛڐͷͨΊجຊશͯΞτ Ogg TheoraɾOn2 VP8ͳͲͷΦʔϓϯιʔε BinkͳͲͷήʔϜ༻ಈըϛυϧΣΞ͋Δ 37
ձͰͷQ&A(3) ΤίϊϛʔϞʔυͷৄࡉΛΓ͍ͨ ฏ18ʙ26࣌ɺٳ12ʙ26࣌ͷ ϐʔΫλΠϜʹ࣮ࢪ͞ΕΔҰൠձһ͚ͷଳҬ੍ݶ ϏοτϨʔτͷߴ͍ಈը͚ͩΤίϊϛʔϞʔυͷಈը͕ Ұൠձһʹ࠶ੜ͞Εͯ͠·͏ Baseline/Level3.0ɺ360kbpsɺ29.970fps AAC-LC 64kbpsɹͱແࢹͰ͖ͳ͍Ϩϕϧͷը࣭ɾԻ࣭ʹͳΔ Ұൠձһͷׂ߹ΞΫςΟϒϢʔβͷ͓Αͦ2/3
΄ͱΜͲͷࢹௌऀ͕ը࣭ͷํ͚ͩͰஅͯ͠͠·͏͜ͱΛ ະવʹ͙ͨΊʹΤίϊϛʔճආΛߦ͏ͷ͔ͳΓޮՌ͋Γ 38
ձͰͷQ&A(4) H.265(HEVC)͕ग़ͨΒͦͬͪͷํ͕ྑ͍ʁ ରԠ͍ͯ͠ΔΤϯίʔμɾσίʔμ͕·ͩແ͍ ࠓिن֨ͱͯ͠ঝೝ͞Ε͔ͨΓ H.265Λ༻͍Δ4Kɾ8K์ૹ։͕࢝ૣ·ͬͨͷͰ ͜Ε͔Βॱ࣍ग़ͯ͘ΔͱࢥΘΕΔ 39
ձͰͷQ&A(5) ίʔσοΫͷιʔείʔυެ։͞Ε͍ͯΔʁ Utvideo,Lagarith,x264,VP8ͳͲ ιʔε͕ެ։͞Ε͓ͯΓɺ ϚϧνίΞɾSIMD(SSE/AVX)ରԠΞηϯϒϦ ଐ͍ͯ͠ΔͷͰฒྻԽͷࢀߟʹ 40
͓·͚ɿΠϯλʔϨʔε ಈըΛحஈͱۮஈͰަޓʹදࣔ͢Δ PCϞχλϓϩάϨογϒ(Ұׅදࣔ)ͳͷͰ ΠϯλʔϨʔεಈըΛ࠶ੜ͢Δͱඳը͞Εͳ͍ஈ͕ ࣶϊΠζͷΑ͏ʹݟ͑ͯ͠·͏ PCήʔϜͷ߹ըૉࡐ͕ϓϩάϨογϒͳͷͰɺ ઃఆΛؒҧ͑ͳ͍ݶΓ͜ͷى͖ͳ͍ ى͖ΔͱΤίϊϛʔฒʹृ͘ͳΔͷͰ ฤूιϑτͷઃఆʹҙ 41