Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
動画エフェクトに関する新技術の紹介
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
shoma.kato
July 06, 2025
Programming
33
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
動画エフェクトに関する新技術の紹介
shoma.kato
July 06, 2025
More Decks by shoma.kato
See All by shoma.kato
体験!SwiftChartsの世界
shomakato
0
29
はじめてのPDFKit.pdf
shomakato
0
240
はじめてのPDFKit
shomakato
0
57
SwiftとC++を利用した画像処理プログラミング
shomakato
0
2.5k
Other Decks in Programming
See All in Programming
20260914 AIエージェント時代のPlatform Engineering LLM基盤とプロダクトの責務境界線
kanfab1
7
2.1k
速く作れる。その次は、速く確かめられる開発へ 〜AIネイティブ開発を支える、Shift Down〜 / Can build fast. Next, moving to development where we can verify fast.
rkaga
5
3.7k
cdk deploy JawsSonic #MARATHONしながらAWSリソースをデプロイしてみよう
akihisaikeda
2
140
個人開発基盤をまるごとCloudflareに引っ越して爆速で総合的体験を向上させた話
tinykitten
0
200
AI Agent時代のリアーキテクチャ戦略と実践
hokaccha
9
4.9k
アクセシビリティから考える情報設計
high_g_engineer
0
380
SONY CISC-NEWS NWS-1750 + NWB-225 フレームバッファの NetBSD/news68k ドライバ実装 / OSC2026Hiroshima
tsutsui
0
130
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
480
巨大モノリシックアプリ モダン化大作戦
ktcryomm
1
1.1k
FreeBSDでZabbixを動かす
kenkino
0
310
一人だけ、Kiroが静止する日
hideg
0
120
大喜利で理解するLLM as a Judge / Understanding LLM-as-a-Judge through Ogiri
rockname
0
150
Featured
See All Featured
Making the Leap to Tech Lead
cromwellryan
135
10k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
500
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
330
[SF Ruby Conf 2025] Rails X
palkan
3
1.4k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
600
Darren the Foodie - Storyboard
khoart
PRO
4
3.9k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.6k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
440
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
3k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.6k
Transcript
Copyright © ZOZO, Inc. ಈըΤϑΣΫτʹؔ͢Δ ৽ٕज़ͷհ גࣜձࣾZOZO ϒϥϯυιϦϡʔγϣϯ։ൃຊ෦ FAANS෦ ϑϩϯτΤϯυϒϩοΫ
Ճ౻ ਅ @shoma10170806
© ZOZO, Inc. 2 גࣜձࣾZOZO ϒϥϯυιϦϡʔγϣϯ։ൃຊ෦ FAANS෦ ϑϩϯτΤϯυϒϩοΫ Ճ౻ ਅ
• X: @shoma10170806 • γϣοϓελοϑͷൢചαϙʔτπʔϧ ʮFAANSʯͷiOSΞϓϦΛ։ൃ • ത࢜ޙظ՝ఔʹࡏֶதɹը૾ॲཧͳͲͷݚڀʹैࣄ
© ZOZO, Inc. 3 FAANSͷಈըػೳ ϑΝογϣϯಈը
© ZOZO, Inc. 4 FAANSͷಈըػೳ ϑΝογϣϯಈը 88%$ ಈըΤϑΣΫτͷ৽ٕज़
© ZOZO, Inc. 5 ಈըΤϑΣΫτͷηογϣϯ l&OIBODFZPVSBQQXJUINBDIJOFMFBSOJOHCBTFEWJEFPF ff FDUTz 7JEFP5PPMCPYGSBNFXPSL ϑϨʔϜϨʔτͷม
ϒϥʔʢ΅͔͠ʣͷద༻ ղ૾ʢߴղ૾Խʣ
© ZOZO, Inc. 6 l&OIBODFZPVSBQQXJUINBDIJOFMFBSOJOHCBTFEWJEFPF ff FDUTz 7JEFP5PPMCPYGSBNFXPSL ϑϨʔϜϨʔτͷม ϒϥʔʢ΅͔͠ʣͷద༻
ղ૾ʢߴղ૾Խʣ ಈըΤϑΣΫτͷηογϣϯ
© ZOZO, Inc. 7 ϑϨʔϜϨʔτͷมͱ ඵͰຕ T
© ZOZO, Inc. 8 ϑϨʔϜϨʔτͷมͱ ඵͰຕ ඵͰຕ T T ө૾Β͔ʹʂ
© ZOZO, Inc. 9 ϑϨʔϜϨʔτมྫʢ+ εϩʔʣ ݩಈը Tຕ εϩʔ εϩʔ
ʴ ม
© ZOZO, Inc. 10 ϑϨʔϜϨʔτมྫʢ+ εϩʔʣ ݩಈը Tຕ εϩʔ εϩʔ
ʴ ม εϩʔͷΈ Tຕ ϑϨʔϜϨʔτม Tຕ
© ZOZO, Inc. 11 ࣮ͷྲྀΕ ɾ75'SBNF3BUF$POWFSTJPO$PO fi HVSBUJPOͷఆٛ ɾ75'SBNF1SPDFTTPSͷఆٛ ɾόοϑΝͷׂΓͯ
ɾϑϨʔϜϨʔτͷมॲཧ
© ZOZO, Inc. 12 ࣮ͷྲྀΕ ɾ75'SBNF3BUF$POWFSTJPO$PO fi HVSBUJPOͷఆٛ ɾ75'SBNF1SPDFTTPSͷఆٛ ɾόοϑΝͷׂΓͯ
ɾϑϨʔϜϨʔτͷมॲཧ
© ZOZO, Inc. 13 VTFrameRateConversionConfigurationͷఆٛ ᶃ75'SBNF3BUF$POWFSTJPO$PO fi HVSBUJPOͱ ϑϨʔϜϨʔτมͷॳظߏͷఆٛ ᶄར༻Մೳͳ04
J04 ɺJ1BE04ɺNBD04
© ZOZO, Inc. 14 VTFrameRateConversionConfigurationͷఆٛ ᶅϓϩάϥϜ guard let configuration =
VTFrameRateConversionConfiguration( ɹɹɹɹframeWidth: width, ɹɹɹɹframeHeight: height, ɹɹɹɹusePrecomputedFlow: false, ɹɹɹɹqualityPrioritization: .normal, ɹɹɹɹrevision: .revision1 ) else {ɹthrow Fault.failedToCreateFRCConfigurationɹ}
© ZOZO, Inc. 15 VTFrameRateConversionConfigurationͷఆٛ ᶅϓϩάϥϜ guard let configuration =
VTFrameRateConversionConfiguration( ɹɹɹɹframeWidth: width, ɹɹɹɹframeHeight: height, ɹɹɹɹusePrecomputedFlow: false, ɹɹɹɹqualityPrioritization: .normal, ɹɹɹɹrevision: .revision1 ) else {ɹthrow Fault.failedToCreateFRCConfigurationɹ} ಈըͷ෯ɺߴ͞
© ZOZO, Inc. 16 VTFrameRateConversionConfigurationͷఆٛ ᶅϓϩάϥϜ guard let configuration =
VTFrameRateConversionConfiguration( ɹɹɹɹframeWidth: width, ɹɹɹɹframeHeight: height, ɹɹɹɹusePrecomputedFlow: false, ɹɹɹɹqualityPrioritization: .normal, ɹɹɹɹrevision: .revision1 ) else {ɹthrow Fault.failedToCreateFRCConfigurationɹ} ಈըͷ෯ɺߴ͞ ಛྔͷܭࢉํ๏
© ZOZO, Inc. 17 VTFrameRateConversionConfigurationͷఆٛ ᶅϓϩάϥϜ guard let configuration =
VTFrameRateConversionConfiguration( ɹɹɹɹframeWidth: width, ɹɹɹɹframeHeight: height, ɹɹɹɹusePrecomputedFlow: false, ɹɹɹɹqualityPrioritization: .normal, ɹɹɹɹrevision: .revision1 ) else {ɹthrow Fault.failedToCreateFRCConfigurationɹ} ग़ྗͷ࣭ ಈըͷ෯ɺߴ͞ ಛྔͷܭࢉํ๏
© ZOZO, Inc. 18 VTFrameRateConversionConfigurationͷఆٛ ᶅϓϩάϥϜ guard let configuration =
VTFrameRateConversionConfiguration( ɹɹɹɹframeWidth: width, ɹɹɹɹframeHeight: height, ɹɹɹɹusePrecomputedFlow: false, ɹɹɹɹqualityPrioritization: .normal, ɹɹɹɹrevision: .revision1 ) else {ɹthrow Fault.failedToCreateFRCConfigurationɹ} ग़ྗͷ࣭ ΞϧΰϦζϜͷઃఆ ಈըͷ෯ɺߴ͞ ը૾ಛͷܭࢉํ๏
© ZOZO, Inc. 19 ࣮ͷྲྀΕ ɾ75'SBNF3BUF$POWFSTJPO$PO fi ɾ75'SBNF1SPDFTTPSͷఆٛ ɾόοϑΝͷׂΓͯ ɾϑϨʔϜϨʔτͷมॲཧ
© ZOZO, Inc. 20 VTFrameProcessorͷఆٛ ᶃ75'SBNF1SPDFTTPSͱ ߴͳө૾ॲཧΛߦ͏Ϋϥε ᶄϓϩάϥϜ let frameProcessor
= VTFrameProcessor() try frameProcessor.startSession(configuration: configuration) ઌ΄Ͳͷ 75'SBNF3BUF$POWFSTJPO$PO fi HVSBUJPO
© ZOZO, Inc. 21 ࣮ͷྲྀΕ ɾ75'SBNF3BUF$POWFSTJPO$PO fi ɾ75'SBNF1SPDFTTPSͷఆٛ ɾόοϑΝͷׂΓͯ ɾϑϨʔϜϨʔτͷมॲཧ
© ZOZO, Inc. 22 όοϑΝͷׂΓͯ ᶃʜͷલʹϑϨʔϜϨʔτมͷΠϝʔδʢը૾ഒʣ
© ZOZO, Inc. 23 όοϑΝͷׂΓͯ ᶃʜͷલʹϑϨʔϜϨʔτมͷΠϝʔδʢϑϨʔϜϨʔτഒʣ
͜͜Λੜ
© ZOZO, Inc. 24 όοϑΝͷׂΓͯ let sourceFrame = VTFrameProcessorFrame( buffer:
pixelBuffer, presentationTimeStamp: sourcePTS ) let nextFrame = VTFrameProcessorFrame( buffer: pixelBuffer, presentationTimeStamp: nextPTS ) var intervals: [Float] = [0.25, 0.5, 0.75] let destinationFrames = try framesBetween( firstPTS: sourcePTS, lastPTS: nextPTS, interpolationIntervals: intervals ) ᶄϓϩάϥϜ
© ZOZO, Inc. 25 όοϑΝͷׂΓͯ let sourceFrame = VTFrameProcessorFrame( buffer:
pixelBuffer, presentationTimeStamp: sourcePTS ) let nextFrame = VTFrameProcessorFrame( buffer: pixelBuffer, presentationTimeStamp: nextPTS ) var intervals: [Float] = [0.25, 0.5, 0.75] let destinationFrames = try framesBetween( firstPTS: sourcePTS, lastPTS: nextPTS, interpolationIntervals: intervals ) ᶄϓϩάϥϜ
© ZOZO, Inc. 26 όοϑΝͷׂΓͯ let sourceFrame = VTFrameProcessorFrame( buffer:
pixelBuffer, presentationTimeStamp: sourcePTS ) let nextFrame = VTFrameProcessorFrame( buffer: pixelBuffer, presentationTimeStamp: nextPTS ) var intervals: [Float] = [0.25, 0.5, 0.75] let destinationFrames = try framesBetween( firstPTS: sourcePTS, lastPTS: nextPTS, interpolationIntervals: intervals ) ᶄϓϩάϥϜ
© ZOZO, Inc. 27 όοϑΝͷׂΓͯ let sourceFrame = VTFrameProcessorFrame( buffer:
pixelBuffer, presentationTimeStamp: sourcePTS ) let nextFrame = VTFrameProcessorFrame( buffer: pixelBuffer, presentationTimeStamp: nextPTS ) var intervals: [Float] = [0.25, 0.5, 0.75] let destinationFrames = try framesBetween( firstPTS: sourcePTS, lastPTS: nextPTS, interpolationIntervals: intervals ) ᶄϓϩάϥϜ
© ZOZO, Inc. 28 όοϑΝͷׂΓͯ let sourceFrame = VTFrameProcessorFrame( buffer:
pixelBuffer, presentationTimeStamp: sourcePTS ) let nextFrame = VTFrameProcessorFrame( buffer: pixelBuffer, presentationTimeStamp: nextPTS ) var intervals: [Float] = [0.25, 0.5, 0.75] let destinationFrames = try framesBetween( firstPTS: sourcePTS, lastPTS: nextPTS, interpolationIntervals: intervals ) ᶄϓϩάϥϜ
© ZOZO, Inc. 29 ϑϨʔϜϨʔτͷมॲཧ ग़ྗύϥϝʔλͷઃఆॲཧͷ࣮ߦ guard let parameters =
VTFrameRateConversionParameters( sourceFrame: sourceFrame, nextFrame: nextFrame, opticalFlow: nil, interpolationPhase: intervalArray, submissionMode: .sequential, destinationFrames: destinationFrames ) else {ɹthrow Fault.failedToCreateFRCParametersɹ} try await frameProcessor.process(parameters: parameters)
© ZOZO, Inc. 30 ϑϨʔϜϨʔτͷมॲཧ ग़ྗύϥϝʔλͷઃఆॲཧͷ࣮ߦ guard let parameters =
VTFrameRateConversionParameters( sourceFrame: sourceFrame, nextFrame: nextFrame, opticalFlow: nil, interpolationPhase: intervalArray, submissionMode: .sequential, destinationFrames: destinationFrames ) else {ɹthrow Fault.failedToCreateFRCParametersɹ} try await frameProcessor.process(parameters: parameters) ϑϨʔϜมͷग़ྗύϥϝʔλ
© ZOZO, Inc. 31 ϑϨʔϜϨʔτͷมॲཧ ग़ྗύϥϝʔλͷઃఆॲཧͷ࣮ߦ guard let parameters =
VTFrameRateConversionParameters( sourceFrame: sourceFrame, nextFrame: nextFrame, opticalFlow: nil, interpolationPhase: intervalArray, submissionMode: .sequential, destinationFrames: destinationFrames ) else {ɹthrow Fault.failedToCreateFRCParametersɹ} try await frameProcessor.process(parameters: parameters) ϑϨʔϜมͷೖग़ྗύϥϝʔλ όοϑΝͷೖྗ
© ZOZO, Inc. 32 ϑϨʔϜϨʔτͷมॲཧ ग़ྗύϥϝʔλͷઃఆॲཧͷ࣮ߦ guard let parameters =
VTFrameRateConversionParameters( sourceFrame: sourceFrame, nextFrame: nextFrame, opticalFlow: nil, interpolationPhase: intervalArray, submissionMode: .sequential, destinationFrames: destinationFrames ) else {ɹthrow Fault.failedToCreateFRCParametersɹ} try await frameProcessor.process(parameters: parameters) ϑϨʔϜมͷೖग़ྗύϥϝʔλ όοϑΝͷೖྗ ग़ྗͷ֨ೲઌ
© ZOZO, Inc. 33 ϑϨʔϜϨʔτͷมॲཧ ग़ྗύϥϝʔλͷઃఆॲཧͷ࣮ߦ guard let parameters =
VTFrameRateConversionParameters( sourceFrame: sourceFrame, nextFrame: nextFrame, opticalFlow: nil, interpolationPhase: intervalArray, submissionMode: .sequential, destinationFrames: destinationFrames ) else {ɹthrow Fault.failedToCreateFRCParametersɹ} try await frameProcessor.process(parameters: parameters) ϑϨʔϜมͷೖग़ྗύϥϝʔλ όοϑΝͷೖྗ ग़ྗͷ֨ೲઌ มͷ࣮ߦ
© ZOZO, Inc. 34 ϑϨʔϜϨʔτͷม݁Ռ ೖྗ ग़ྗ
© ZOZO, Inc. 35 ·ͱΊ 75'SBNF1SPDFTTPSͳͲ৽ٕज़Λ༻͍ͨ ಈըΤϑΣΫτͷద༻ํ๏ͷհ ଞͷΤϑΣΫτ໘ന͍ͷͰɺ ͥͻ৭ʑ৮ͬͯΈ͍ͯͩ͘͞ʂ
None
© ZOZO, Inc. 37 ࠷ޙʹαϥοͱ͍͑ͨ͜ͱ ᶃ 75'SBNF1SPDFTTPSͷग़ྗಈըͷܗࣜͰͳ͍ ᶄ ॲཧ࣌ؒTʢڥ"QQMF.1SPɺಈըඵʣ ᶅ
Ұ෦ͷΤϑΣΫτNBD04 ʢߴղ૾ԽͳͲʣ