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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
yasei no otoko
February 02, 2013
How-to & DIY
0
100
今更聞けないビデオコーデックの話
ゲーム用PV作成のための情報まとめ
yasei no otoko
February 02, 2013
Tweet
Share
More Decks by yasei no otoko
See All by yasei no otoko
VR HMDとしてのVision Pro+ゲーム開発について
yasei_no_otoko
0
210
一人からのゲーム開発
yasei_no_otoko
1
910
Other Decks in How-to & DIY
See All in How-to & DIY
2026年、書籍をちゃんと読むぞ👊 〜約3万円分の書籍を積読にしないためにやること〜
subroh0508
4
820
終わりのない会議を超えて:HolacracyのTactical Meetingを体験しよう!
andrearc
0
200
JAWS-UG Fukuoka - AWS re:Invent 2024 re:Cap AWS Community Perspective
awsjcpm
2
250
ドローンをAWSで制御してみた
nagi900
0
120
251011「ひとりより、みんなで!」 九州の支部で始めた、新しい連携のかたち
east_takumi
2
140
Azure PortalのQoLを上げてたら Big Techに怒られた
horihiro
2
570
おっきなガジェットの回線事情
2bo
1
200
2025版 鯖落ちパーツで安価に機械学習用マシンを作ってみる
bobfromjapan
0
670
JAWS-UG/AWSコミュニティ -JAWS-UGくまもと#16
awsjcpm
1
200
Xの"だるま"とコナミコマンド #iotlt #obniz
n0bisuke2
0
320
餃子コミュニティの活性化/TechGYOZA
nishiuma
2
280
AWSコミュニティプログラムのご紹介 -グローバル展開するコミュニティプログラム-
awsjcpm
0
300
Featured
See All Featured
Marketing to machines
jonoalderson
1
5k
Designing for Performance
lara
611
70k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Bash Introduction
62gerente
615
210k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4k
BBQ
matthewcrist
89
10k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.5k
The Language of Interfaces
destraynor
162
26k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
110
The Mindset for Success: Future Career Progression
greggifford
PRO
0
290
The Curse of the Amulet
leimatthew05
1
10k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8k
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