Slide 1

Slide 1 text

Sansan株式会社 部署 名前 VTFrameProcessorの紹介: AIによる動画処理 Eight Engineering Unit Mobile Application Group 守⾕ 太⼀

Slide 2

Slide 2 text

守⾕ 太⼀ Sansan株式会社 Eight Engineering Unit Mobile Application Group 7⽉にSansan株式会社に⼊社してEightのiOSアプリエンジニア をしています。 好きな⾷べ物はケバブとタコスです。 趣味はカメラ、散歩

Slide 3

Slide 3 text

みなさん

Slide 4

Slide 4 text

WWDC⾒ましたか???

Slide 5

Slide 5 text

何が⾯⽩かったですか?

Slide 6

Slide 6 text

Liquid Glass?

Slide 7

Slide 7 text

Foundation Models Framework?

Slide 8

Slide 8 text

ということで

Slide 9

Slide 9 text

VTFrameProcessorについて話します

Slide 10

Slide 10 text

● iOS26から追加されたクラス ○ 動画の1フレーム毎に処理を⾏ってくれる ■ 動画のエンコード ■ 各フレームに特殊な処理 ● ⾃分で処理を書くのはちょっと⾯倒そう.... ○ 標準で使える雛形も⽤意されてます!!! VTFrameProcessorとは? 9

Slide 11

Slide 11 text

あれ?AIは?

Slide 12

Slide 12 text

● 実はAI(ML)使ってます!!! ● 標準で備わっている機能をAIパワーで実現 VTFrameProcessorとは? 11

Slide 13

Slide 13 text

● 標準で使える機能 ○ モーションブラー ○ フレーム数変換 ■ 増幅も可能 ○ ノイズ低減 ○ 解像度向上 ○ 低レイテンシー解像度向上 ○ 低レイテンシーフレーム⽣成 VTFrameProcessorはどんな機能があるの? 12

Slide 14

Slide 14 text

● 正直少し⾯倒そう... ○ Asset/カメラから動画を取得する ○ 取得したら1フレームずつ取得する ○ VTFrameProcessorで処理する ○ 処理結果をプレビューなどで使⽤できるようにする ○ そこに関わる型変換... ● ⼀緒に⾒ていきましょう!!! VTFrameProcessorてどうやって使うの? 13

Slide 15

Slide 15 text

● 実装イメージ VTFrameProcessorてどうやって使うの? 14 ⼊⼒ ソースとなる動画 アプリ内の動画 カメラ HLS AVAssetReader AVCaptureDevice 読み込み AVAssetReaderTrackOutp ut.copyNextSampleBuffer AVCaptureVideoDataOutp utSampleBufferDelegate フレームを取得 取得 ⼊⼒ VTFrameProcessor 加⼯ 出⼒ VTFrameProcessor Frame 加⼯後のフレーム

Slide 16

Slide 16 text

● 動画を読み込む・カメラから取得する VTFrameProcessorてどうやって使うの? 15 AVAssetReader AVCaptureDevice 読み込み

Slide 17

Slide 17 text

● 動画を読み込む・カメラから取得する VTFrameProcessorてどうやって使うの? 16 AVAssetReader AVCaptureDevice 読み込み

Slide 18

Slide 18 text

● フレーム(CMSampleBuffer)を取得する VTFrameProcessorてどうやって使うの? 17 AVAssetReaderTrackOutp ut.copyNextSampleBuffer AVCaptureVideoDataOutp utSampleBufferDelegate フレームを取得

Slide 19

Slide 19 text

● フレーム(CMSampleBuffer)を取得する VTFrameProcessorてどうやって使うの? 18 AVAssetReaderTrackOutp ut.copyNextSampleBuffer AVCaptureVideoDataOutp utSampleBufferDelegate フレームを取得

Slide 20

Slide 20 text

● フレーム(CMSampleBuffer)を取得する VTFrameProcessorてどうやって使うの? 19 AVAssetReaderTrackOutp ut.copyNextSampleBuffer AVCaptureVideoDataOutp utSampleBufferDelegate フレームを取得

Slide 21

Slide 21 text

● ここをもっと詳しく知りたい VTFrameProcessorてどうやって使うの? 20 VTFrameProcessor 加⼯ 出⼒ VTFrameProcessor Frame 加⼯後のフレーム

Slide 22

Slide 22 text

● VTFrameProcessorでの処理の流れ VTFrameProcessorてどうやって使うの? 21 VTFrameProcessor VTFrameProcessor Frame VTFrameProcessor Parameters VTFrameProcessor Configuration CMSampleBuffer CVPixelBuffer .imageBuffer 出⼒ 処理の設定 ⼊⼒フレーム 画像データを持つ ⼊⼒パラメーター

Slide 23

Slide 23 text

● 処理の設定 VTFrameProcessorてどうやって使うの? 22 VTFrameProcessor VTFrameProcessor Frame VTFrameProcessor Parameters VTFrameProcessor Configuration

Slide 24

Slide 24 text

● 書き出し先のBufferPoolの作成 VTFrameProcessorてどうやって使うの? 23 VTFrameProcessor VTFrameProcessor Frame VTFrameProcessor Parameters VTFrameProcessor Configuration

Slide 25

Slide 25 text

● フレームへの変換 VTFrameProcessorてどうやって使うの? 24 VTFrameProcessor VTFrameProcessor Frame VTFrameProcessor Parameters VTFrameProcessor Configuration

Slide 26

Slide 26 text

● ⼊⼒パラメーターの組み⽴て VTFrameProcessorてどうやって使うの? 25 VTFrameProcessor VTFrameProcessor Frame VTFrameProcessor Parameters VTFrameProcessor Configuration

Slide 27

Slide 27 text

● 書き出し後のフレームの作成 VTFrameProcessorてどうやって使うの? 26 VTFrameProcessor VTFrameProcessor Frame VTFrameProcessor Parameters VTFrameProcessor Configuration

Slide 28

Slide 28 text

● 処理の実⾏ VTFrameProcessorてどうやって使うの? 27 VTFrameProcessor VTFrameProcessor Frame VTFrameProcessor Parameters VTFrameProcessor Configuration

Slide 29

Slide 29 text

● 処理の結果 VTFrameProcessorてどうやって使うの? 28 VTFrameProcessor VTFrameProcessor Frame VTFrameProcessor Parameters VTFrameProcessor Configuration

Slide 30

Slide 30 text

● 同じようなことは他の⼿法でも実現できる ○ iOS16からあるMetal FX Upscalingを使⽤する ○ OSSのフレーム⽣成で変換する ● 上記の問題点 ○ Metalへの知識・実装コスト ○ CoreMLへの知識・実装コスト・アプリ容量 => VTFrameProcessorを使うことでより簡単に実装できる VTFrameProcessorの嬉しいポイント 29

Slide 31

Slide 31 text

● iOS26+でサポートされているがまだビルドできない... VTFrameProcessorの悲しいポイント 30

Slide 32

Slide 32 text

Sansan 技術本部 募集ポジション紹介 https://media.sansan-engineering.com/

Slide 33

Slide 33 text

No content