Upgrade to Pro — share decks privately, control downloads, hide ads and more …

今更聞けないビデオコーデックの話

 今更聞けないビデオコーデックの話

ゲーム用PV作成のための情報まとめ

yasei no otoko

February 02, 2013
Tweet

More Decks by yasei no otoko

Other Decks in How-to & DIY

Transcript

  1. ࠓߋฉ͚ͳ͍
    ϏσΦίʔσοΫͷ࿩
    ໺ੜͷஉ
    1

    View Slide

  2. ߨԋͷςʔϚ
    ήʔϜ։ൃʹ͓͚Δಈը࡞੒धཁͷߴ·Γ
    PVɺήʔϜ಺ϜʔϏʔͷ࡞੒
    ಈըαΠτ΁ͷΞοϓϩʔυ
    ߴը࣭ͳ෺Λ࡞੒͢Δ޻ఔΛௐ΂Δͷ͸େม
    Ұͭʹ·ͱΊΑ͏
    2

    View Slide

  3. ಈըͱ͸
    จࣈ௨Γʮಈ͘ʯʮըʯ
    ϑϨʔϜ͝ͱʹը͕੾ΓସΘ͍ͬͯ͘
    σδλϧಈը͸੩ࢭըͷू·Γ
    gifΞχϝ͸ෳ਺ͷը૾ϑΝΠϧ͔Β࡞ΒΕΔ
    3

    View Slide

  4. ͜͜Ͱٙ໰
    ʮgif͸ී௨ͷը૾ϑΝΠϧΑΓ༰ྔ͕େ͖͍͚Ͳ
    flvͱ͔mp4͸ͦΜͳʹେ͖͘ͳ͍Αʁʯ
    !ίʔσοΫͷ͓͔͛
    4

    View Slide

  5. Τϯίʔμʔ(ූ߸Խث)ͱσίʔμʔ(෮߸Խث)
    ͔Β੒Δѹॖن֨
    ը૾ίʔσοΫɺԻ੠ίʔσοΫɺಈը←
    ίʔσοΫ(CODEC)͸ѹॖ(COmp~)ͱ
    ৳ு(DEComp~)Λ૊Έ߹Θͤͨઐ໳༻ޠ
    ίʔσοΫͱ͸
    5

    View Slide

  6. .gifΑΓ͍ܰ.mp4ʁ
    جຊతʹ.mp4ͷಈը͸ಉ͡ը࣭ɺ
    ղ૾౓ͷgifಈըΑΓ΋ϑΝΠϧαΠζ͕খ͍͞
    !gifΑΓ΋ෳࡶͳॲཧͰѹॖ͍ͯ͠Δ͔Β
    ੲ͸Motion JPEGͱ͍͏֤ϑϨʔϜΛJPEGͰ
    อଘ͢Δಈըܗࣜ΋͋ͬͨ
    6

    View Slide

  7. .mp4(MPEG-4)ͱ͸
    ͦΕࣗମ͸ͨͩͷϑΝΠϧίϯςφ
    Moving Picture Experts Group(MPEG)
    ͕نఆ͍ͯ͠ΔϑΝΠϧ֨ೲϑΥʔϚοτ
    ಈըϑΝΠϧ΋Ի੠ϑΝΠϧ΋֨ೲͰ͖Δ
    7

    View Slide

  8. Ұൠతͳ.mp4ಈըͷத਎͸
    動画コーデック:H.264  (MPEG4-‐‑‒AVC)
    AVC  =  Advanced  Video  Coding
    先進的  動画  符号化
    ⾳音声コーデック:AAC  
    AAC  =  Advanced  Audio  Coding
    先進的  ⾳音響  符号化
    8

    View Slide

  9. H.264͕΍ͬͯΔ͜ͱ
    ۭؒม׵
    ϑϨʔϜؒ༧ଌ
    ෼ͷըૉਫ਼౓ͷಈ͖ิঈ
    Πϯτϥ༧ଌ
    Τϯτϩϐʔූ߸Խ
    9

    View Slide

  10. Ϡό͍
    10

    View Slide

  11. ಈըѹॖͷτϨʔυΦϑ
    ੵΈॏͳͬͨҒ͍ਓୡͷݚڀͷ੒Ռͷ͓͔͛Ͱɺ
    ը࣭ͱϑΝΠϧαΠζͷτϨʔυΦϑ͸΄΅ແ͍
    ѹॖ཰ͱ଎౓ͰτϨʔυΦϑ͕ى͖Δ
    11

    View Slide

  12. ίʔσοΫͷ࢖͍෼͚
    ༻్ ѹॖ଎౓ ѹॖ཰ ը࣭
    Ωϟϓνϟ
    ಈըฤू
    Πϯλʔωοτ
    ΠϯήʔϜ
    ࠷଎ ೋͷ࣍ ඇྼԽ
    ଎͍ํ͕ྑ͍ ͦΕͳΓ ΄΅ඇྼԽ
    ஗ͯ͘΋ྑ͍ ߴ͍ํ͕ྑ͍ ͳΔ΂͘
    ஗ͯ͘΋ྑ͍ ߴ͍ํ͕ྑ͍ ߴ͍ํ͕ྑ͍
    12

    View Slide

  13. ୈ1஄ɿΩϟϓνϟ
    30ʙ60fpsͰಈ͘ήʔϜͷө૾Λ࿙Βͣ͞
    ϦΞϧλΠϜͰίϐʔͯ͠ѹॖ͢Δ
    ଎౓͕଍Γͳ͍ͱϑϨʔϜυϩοϓ͕ى͖ɺ
    ࡱͬͨө૾͕࣮ࡍΑΓΧΫΧΫʹͳΔ
    ߋʹ଎౓͕଍Γͳ͍ͱήʔϜࣗମ΋஗͘ͳΔ
    ޙʑͷѹॖͰը࣭͕Լ͕ΔͷͰɺ
    ͜ͷஈ֊Ͱ͸ը࣭΋ྼԽͤͨ͘͞ͳ͍
    13

    View Slide

  14. ଎౓ͱը࣭͕྆ํඞཁ
    ͡Ό͋ѹॖͤͣʹࡱΖ͏
    14

    View Slide

  15. ͸ʁ
    15

    View Slide

  16. ×·͕͍ͪ
    ແѹॖ͸ඇৗʹ༰ྔ͕૿͑Δ
    1ըૉRGB24bit(3όΠτ)
    ຖϑϨʔϜ཯ّʹΩϟϓνϟ
    640x480x3όΠτ×60fps=53MB/s
    ͜Ε͚ͩେ͖͍ͱHDD΁ͷॻ͖ࠐΈ΋༨ܭͳෛՙʹ
    ͦ΋ͦ΋༰ྔ͕଍Γͳ͍
    16

    View Slide

  17. ՄٯѹॖίʔσοΫΛ࢖͏
    Մٯѹॖͱ͸ʁ
    ʮѹॖʯͯ͠΋ʮٯʯʹ໭͢͜ͱ͕ʮՄʯೳ
    Τϯίʔυલͱσίʔυޙͷ಺༰͕Ұக
    ྼԽ͢Δ෺͸ඇՄٯѹॖ
    ΄΅ແѹॖͷ1/2ະຬͷαΠζʹ
    17

    View Slide

  18. ίϥϜɿՄٯѹॖίʔσοΫͷྫ
    Huffyuv
    ݹ͔͘Β͋ΔՄٯѹॖίʔσοΫ
    ໊લ௨Γ”Huff”manූ߸ͱYUV৭ۭؒ΁ͷม׵
    ͳͲʹΑͬͯՄٯѹॖΛߦ͏
    ༗໊͕ͩɺϚϧνίΞɾSIMD࠷దԽϏϧυ͕ແ͍ͨΊ
    ݱࡏར༻͢Δͷ͸ඇਪ঑
    ରԠͨ͠೿ੜϏϧυ΋͋Δ͕ɺ௨ৗ൛ͱޓ׵ੑ͕ແ͍ͨΊ
    ड͚౉͠ʹ࢖͏৔߹͸ඇਪ঑
    ΋͘͠͸Ͳ͏ͤϑϦʔιϑτͳͷͰ྆ํͷPCʹೖΕΔ
    18

    View Slide

  19. ͓͢͢ΊΩϟϓνϟιϑτ
    Fraps
    γΣΞ΢ΣΞ(37υϧ)ɾ࿝ฮͷಈըΩϟϓνϟ
    DXtory
    γΣΞ΢ΣΞ(3600ԁ)ɾߋ৽͕සൟͰWin8ରԠ
    ྆ํͱ΋ಠࣗίʔσοΫΛར༻͓ͯ͠Γɺ
    ߴ଎͔ͭඇྼԽ͔ͭ؆୯ૢ࡞ͰΩϟϓνϟ͕Մೳ
    19

    View Slide

  20. ΞϚԿͱ͔͸ʁ
    ϑϦʔ͕ͩҎԼͷཧ༝ʹΑΓඇਪ঑
    Windows Vista/7/8ඇαϙʔτ
    !͜ͷ͍ͤͰ࿥ըࣗମ্͕ڃऀ޲͚ʹͳ͍ͬͯΔ
    OpenGL/DirectX10Ҏ߱ඇରԠ
    ༗ྉͷಠࣗίʔσοΫ͕64bitඇରԠ
    !64bitͷಈըฤूιϑτͰ௚઀ಡΊͳ͍
    20

    View Slide

  21. Ωϟϓνϟ·ͱΊ
    ଎͍ํ͕ྑ͍͚Ͳແѹॖ͸σϝϦοτͷํ͕
    େ͖͍ͷͰɺՄٯѹॖίʔσοΫΛ࢖͏
    Fraps͔DXtoryΛ࢖͑͹ෆࣗ༝͠ͳ͍
    21

    View Slide

  22. ୈ2஄ɿಈըฤू
    PVͳͲͷಈըฤू΍ɺ
    ͦͷૉࡐͱͳΔϑΝΠϧͷѻ͍
    Ωϟϓνϟ΄ͲͷΤϯίʔυ଎౓͸ඞཁແ͍͕ɺ
    Ϟνϕʔγϣϯ͕Լ͕Βͳ͍ఔ౓ͷ଎౓ͱ
    ඇྼԽ΋͘͠͸ͦΕʹ͍ۙߴը࣭͕ඞཁ
    22

    View Slide

  23. ͓͢͢ΊίʔσοΫ
    Utvideo Codec
    ࠃ࢈ͰϑϦʔɻχίϚεP͕ฤू࡞ۀͷҝʹ։ൃ
    ݱࡏ͸Mac൛΋ग़ͯ࠷ڧʹ͍ۙ
    Lagarith Codec
    ւ֎࢈ϑϦʔɻUtvideoΑΓ਺%ྑ͘ॖΉ
    Մٯѹॖͷ਺%ʹ਺ඦMB୯ҐͳͷͰ݁ߏॏཁ
    23

    View Slide

  24. ίϥϜɿϑΝΠϧͷड͚౉࣌͠
    ૉࡐ͸ͳΔ΂͘ߴը࣭Ͱ౉͍ͨ͠ʂ
    Ωϟϓνϟͨ͠··ͷϑΝΠϧ͸ੌ·͘͡େ͖͍
    Fraps΍DXtory͸ಠࣗίʔσοΫͳͷͰɺ
    ιϑτΛ૬खͷਓʹ΋ೖΕͯ΋Β͏ඞཁ͕͋Δ
    Lagarith΋͘͠͸H.264ߴϏοτϨʔτͳͲɺ
    ߴը࣭Ͱ༰ྔͷখ͘͞ͳΔίʔσοΫʹม׵͢Δ
    24

    View Slide

  25. ୈ3஄ɿΠϯλʔωοτ
    YoutubeɺχίχίಈըɺVimeoͳͲ
    ΠϯλʔωοτͷಈըαΠτʹ౤ߘ͢Δ৔߹
    ্ه3αΠτ͸ͲΕ΋.mp4(H.264/AAC)͕ඪ४
    ͱͳ͍ͬͯΔͷͰ͜ΕΛର৅ʹ
    25

    View Slide

  26. H.264ͷѹॖઃఆ
    ϓϩϑΝΠϧʹΑͬͯɺಉ͡ϏοτϨʔτͰ΋
    ѹॖॲཧ͕େ͖͘มΘΔ
    Baseline
    γϯϓϧͳϑϨʔϜ༧ଌͱΤϯτϩϐʔූ߸Խ
    Main
    BaselineʹॏΈ෇͚༧ଌͳͲͷॲཧΛ௥Ճ
    High
    Mainʹ8x8ըૉ཭ࢄίαΠϯม׵ɺྔࢠԽߦྻ౳Λ௥Ճ
    26

    View Slide

  27. ͡Ό͋High/ߴϏοτϨʔτͰྑ͍ͷʁ
    ͱ͜Ζ͕Ͳ͍ͬ͜
    χίχίಈըʹ͸ΤίϊϛʔϞʔυ͕ଘࡏ
    ݱࡏ͸Baselineɺ29.97fps
    ը࣭͕ܹ͘͠མͪɺ
    ݩ͕60fpsͷ৔߹ΧΫΧΫʹ΋ͳΔ
    ϙʔλϒϧػثͳͲ͸Main·ͰରԠͷ΋ͷ͕ଟ͍
    27

    View Slide

  28. Τίϊϛʔճආͷεεϝ
    Main/HighͰϏοτϨʔτΛ٧Ίͨํ͕
    ΤίϊϛʔԽ͞ΕͨಈըΑΓ΋ߴը࣭ʹͳΔ
    ݱࡏͷ্ݶ͸445kbps(445440bps)(Ի੠ؚ)
    445440bpsϐολϦͱ͍͏༁Ͱ͸ແ͍ͷͰ
    ࠶ੜςετඞਢ
    28

    View Slide

  29. ɹίϥϜɿH.264ͷϨϕϧʹ͍ͭͯ
    H.264Ͱ͸ɺಈըͷղ૾౓ͱϑϨʔϜϨʔτʹΑΔ
    ඵؒϒϩοΫαΠζʹΑͬͯϨϕϧ͕ఆΊΒΕ͍ͯΔ
    ࢀߟɿMobileHackerz
    χίχίಈըͷਪ঑͸Level 3.1Ͱɺ͜Ε͸
    [email protected]ɺ[email protected]·Ͱର৅
    60fpsͷ৔߹͸1280x720Ҏ্ͷήʔϜͰ΋
    ௿ղ૾౓ʹϦαΠζ͢Δͷ͕ඞਢ
    29

    View Slide

  30. Ի੠ίʔσοΫ͸ʁ
    ҰൠతʹAACͱݴ͑͹ɺ
    iTunesͳͲʹ΋࢖ΘΕΔAAC-LC͕ओྲྀ͕ͩɺ
    ۃ௿ϏοτϨʔτͷ৔߹͸HE-AACΛ࢖ͬͨํ͕
    ϊΠζ͕গͳ͘៉ྷʹௌ͑͜Δ
    48kbpsͰ΋ෆշͳϊΠζ͸΄΅ௌ͑͜ͳ͍
    LCʹLow Complexity
    HEʹHigh Efficiency
    30

    View Slide

  31. ίϥϜɿͭΜͰΕΜ͜
    ໊લ͸;͚͍ͯ͟Δ͚Ͳ༏लͳιϑτ
    ࣭໰ର࿩ܗࣜͰ.mp4ͷΤϯίʔυઃఆΛߦ͑Δ
    ඞཁιϑτΛࣗಈΠϯετʔϧͯ͘͠ΕΔ
    ΤίϊϛʔճආɺHE-AACɺYoutubeʹ΋ରԠ
    ࠷ऴ൛͕9ݸ(!?)ग़͓ͯΓɺࠓޙ໰୊͕ग़ͨ৔߹͸
    ೿ੜͷՆ࿇ࠜͷํΛ࢖༻͢Δ͜ͱΛਪ঑
    31

    View Slide

  32. ίϥϜɿχίχίҎ֎
    YoutubeͱVimeo͸ϑϧHDʹ΋ରԠ͓ͯ͠Γ
    ϏοτϨʔτͷ੍໿΋গͳ͍͕
    ͲͪΒ΋30fps·Ͱ͔͠ରԠ͍ͯ͠ͳ͍ͷͰ
    Ξοϓϩʔυ͢Δ৔߹͸ը࣭ॏࢹͰ
    32

    View Slide

  33. Πϯλʔωοτಈը·ͱΊ
    ࣮࣭.mp4(H.264/AAC)Ұ୒
    ΤίϊϛʔճආΛ͢Δ͔͠ͳ͍͔͸ྑ͘ݕ౼͢Δ
    Τϯίʔυॳ৺ऀ͸·ͣͭΜͰΕΜ͜Λ࢖͏
    Youtube΍Vimeo͸30fpsʹͳΔ͜ͱΛߟྀ
    33

    View Slide

  34. ୈ4஄ɿΠϯήʔϜϜʔϏʔ
    ήʔϜதͰ࠶ੜ͢Δಈը
    DirectShowͰ࢖ΘΕΔίʔσοΫ͸׬શʹ؀ڥґଘͰ
    ffdshowͳͲͰஔ͖׵͑ΒΕΔՄೳੑ͕͋Γɺ
    ͦΕʹΑΔόά͕ى͜ΓಘΔ
    MS͸ήʔϜ։ൃʹ͓͍ͯDirectShowΛඇਪ঑APIࢦఆ
    Media Foundation͕ݱࡏͷਪ঑APIʢ͕ͩVistaҎ߱ʣ
    ສશΛظ͢ͳΒήʔϜϓϩάϥϜଆͰσίʔμΛ౥ࡌ
    34

    View Slide

  35. ·ͱΊ
    Ωϟϓνϟ͸Fraps͔DXtoryͰ
    ಈըฤूૉࡐʹ͸ՄٯѹॖίʔσοΫΛ
    Πϯλʔωοτʹ্͛Δಈը͸x264Ͱ࡞੒
    ήʔϜ಺ϜʔϏʔ࠶ੜ͸݁ߏमཏͷಓ
    35

    View Slide

  36. ձ৔ͰͷQ&A(1)
    σίʔυ౥ࡌͱ͸۩ମతʹ͸ʁ
    ಈըϑΝΠϧͷಡΈࠐΈ
    ˠσίʔυͯ͠ϑϨʔϜΛऔΓग़͢
    ˠϑϨʔϜόοϑΝ΍ςΫενϟʹϨϯμϦϯά
    ͱ͍ͬͨॲཧΛ࣮૷͢Δ͜ͱ
    36

    View Slide

  37. ձ৔ͰͷQ&A(2)
    ήʔϜʹ௚઀૊ΈࠐΊΔσίʔμͷྫͱ͸ʁ
    MPEGܥ(H.264)͸ಛڐͷͨΊجຊશͯΞ΢τ
    Ogg TheoraɾOn2 VP8ͳͲͷΦʔϓϯιʔε
    BinkͳͲͷήʔϜ༻ಈըϛυϧ΢ΣΞ΋͋Δ
    37

    View Slide

  38. ձ৔ͰͷQ&A(3)
    ΤίϊϛʔϞʔυͷৄࡉΛ஌Γ͍ͨ
    ฏ೔18ʙ26࣌ɺٳ೔12ʙ26࣌ͷ
    ϐʔΫλΠϜʹ࣮ࢪ͞ΕΔҰൠձһ޲͚ͷଳҬ੍ݶ
    ϏοτϨʔτͷߴ͍ಈը͚ͩΤίϊϛʔϞʔυͷಈը͕
    Ұൠձһʹ࠶ੜ͞Εͯ͠·͏
    Baseline/Level3.0ɺ360kbpsɺ29.970fps
    AAC-LC ໿64kbpsɹͱແࢹͰ͖ͳ͍Ϩϕϧͷ௿ը࣭ɾ௿Ի࣭ʹͳΔ
    Ұൠձһͷׂ߹͸ΞΫςΟϒϢʔβͷ͓Αͦ2/3
    ΄ͱΜͲͷࢹௌऀ͕௿ը࣭ͷํ͚ͩͰ൑அͯ͠͠·͏͜ͱΛ
    ະવʹ๷͙ͨΊʹΤίϊϛʔճආΛߦ͏ͷ͸͔ͳΓޮՌ͋Γ
    38

    View Slide

  39. ձ৔ͰͷQ&A(4)
    H.265(HEVC)͕ग़ͨΒͦͬͪͷํ͕ྑ͍ʁ
    ରԠ͍ͯ͠ΔΤϯίʔμɾσίʔμ͕·ͩແ͍
    ࠓिن֨ͱͯ͠ঝೝ͞Εͨ͹͔Γ
    H.265Λ༻͍Δ4Kɾ8K์ૹ։͕࢝ૣ·ͬͨͷͰ
    ͜Ε͔Βॱ࣍ग़ͯ͘ΔͱࢥΘΕΔ
    39

    View Slide

  40. ձ৔ͰͷQ&A(5)
    ίʔσοΫͷιʔείʔυ͸ެ։͞Ε͍ͯΔʁ
    Utvideo,Lagarith,x264,VP8ͳͲ͸
    ιʔε͕ެ։͞Ε͓ͯΓɺ
    ϚϧνίΞɾSIMD(SSE/AVX)ରԠΞηϯϒϦ
    ΋෇ଐ͍ͯ͠ΔͷͰฒྻԽͷࢀߟʹ΋
    40

    View Slide

  41. ͓·͚ɿΠϯλʔϨʔε
    ಈըΛح਺ஈ໨ͱۮ਺ஈ໨Ͱަޓʹදࣔ͢Δ
    PCϞχλ͸ϓϩάϨογϒ(Ұׅදࣔ)ͳͷͰ
    ΠϯλʔϨʔεಈըΛ࠶ੜ͢Δͱඳը͞Εͳ͍ஈ͕
    ࣶϊΠζͷΑ͏ʹݟ͑ͯ͠·͏
    PCήʔϜͷ৔߹͸࿥ըૉࡐ͕ϓϩάϨογϒͳͷͰɺ
    ઃఆΛؒҧ͑ͳ͍ݶΓ͜ͷ໰୊͸ى͖ͳ͍
    ى͖ΔͱΤίϊϛʔฒʹृ͘ͳΔͷͰ
    ฤूιϑτͷઃఆʹ஫ҙ
    41

    View Slide