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
ABEMAのRenderScript Intrinsics Replacement Toolk...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Go Takahana
May 29, 2023
Technology
1.5k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ABEMAのRenderScript Intrinsics Replacement Toolkit 導入事例
Go Takahana
May 29, 2023
More Decks by Go Takahana
See All by Go Takahana
プロダクトで安全にDataStore移行する
takahana
2
1.9k
Other Decks in Technology
See All in Technology
GoCon2026 - Open Source, Open World
sanposhiho
2
960
AIオーケストレーションを活用した 開発ワークフローの設計と実践
bqnq
0
120
作り直せるコードは迅速に 作り直せないDBは慎重に - AI時代のプロダクトエンジニアが「判断の不可逆性」で開発速度を変える話
kinosuke01
0
280
Omarchy Quattro の日本語設定周り
simosako
2
130
Sigmaで作る業務アプリ
kazushiro_honma
0
100
Deploying a Full-Stack Bun-Native Framework on Cloudflare Workers
7nohe
0
120
AI-DLCって実際どう? 〜聞きたいこと全部聞いてみる〜
news_it_enj
0
250
Amazon Quick on DesktopがIAM Identity Centerで動かない理由
yukiogawa
0
140
Snowflakeのコスト最適化を支えるアーキテクチャ設計
ktatsuya
0
1.3k
V8コントリビュート超入門
riyaamemiya
0
160
スクラムで身についていた動き方を、XPで捉え直してみた
codmoninc
PRO
1
330
深夜のクラウド懺悔室 1:29:300 or 1:0:0
kazzpapa3
1
220
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
190
How to make the Groovebox
asonas
2
2.4k
The Spectacular Lies of Maps
axbom
PRO
1
980
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.7k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
410
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.8k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.1k
Tell your own story through comics
letsgokoyo
1
1.1k
Amusing Abliteration
ianozsvald
1
290
Transcript
ABEMAͷRenderScript Intrinsics Replacement Toolkit ಋೖࣄྫ גࣜձࣾAbemaTV ߴඓ ڷ
ߴඓ ڷ Takahana Go • 21৽ଔͰαΠόʔΤʔδΣϯτʹೖࣾ • ABEMAͷAndroidϞόΠϧ / TVΞϓϦͷ։ൃ
@go_takahana
1. ώʔϩʔΤϦΞͷॳͷ࣮ݱํ๏ 2. ΅͔͠ը૾࡞ํ๏ͷબ 3. ·ͱΊ
ώʔϩʔΤϦΞͷ ॳͷ࣮ݱํ๏
ϗʔϜͷώʔϩʔΤϦΞ • ABEMAͷࠓͷΠνΦγ࡞Λհ͢Δ • αϜωΠϧͷഎܠ΅͔ͨ͠αϜωΠϧ ※ϑϦʔը૾ʹࠩ͠ସ͍͑ͯ·͢
αϜωΠϧΛҾཱ͖ͯΔ ※ϑϦʔը૾ʹࠩ͠ସ͍͑ͯ·͢
ΫϥΠΞϯτͰ΅͔͠ը૾Λ࡞͢Δ αʔόʔ ΫϥΠΞϯτ • λΠτϧ • ը૾URL
΅͔͠ը૾࡞ํ๏ͷݕ౼ ํ๏ ϝϦοτ ݒ೦ ը૾ϩʔμʔͷ #MVS5SBOTGPSNBUJPO (MJEFͱ$PJMΛར༻͍ͯ͠Δ ͷͰಋೖ͕؆୯
3FOEFS4DSJQUΛར༻͍ͯ͠Δ ˞$PJMͰͰআࡁΈ αʔυύʔςΟͷ ը૾ՃϥΠϒϥϦ ಋೖ͕؆୯ 3FOEFS4DSJQUΛར༻͍ͯ͠Δ ϝϯςͮ͠Β͍ $PNQPTFͷ.PEJ fi FSCMVS ͙͑͢Δ "OESPJEҎ্Ͱ͔͑͠ͳ͍ ※ϝϦοτσϝϦοτABEMAΞϓϦʹ͓͚ΔͷͰɺଞΞϓϦʹ͓͍ͯҟͳΔ߹͕͋Γ·͢ɻ
RenderScript ͷαϙʔτऴྃ https://developer.android.com/guide/topics/renderscript/compute?hl=ja
Coil BlurTransformation আࡁΈ • 2.0.0ͰআࡁΈ • ཧ༝ɺRenderScript ͷαϙʔτऴ͔ྃͨ͠ΒͩͱࢥΘΕΔ ৄࡉΘ͔Βͳ͔͕ͬͨɺDiscussion ͷ༰Λࢀߟʹ͍ͯ͠Δ
• Ҿ͖ଓ͖ར༻͍ͨ͠ͳΒɺݩͷίʔυΛίϐʔ͢ΔΑ͏ʹҊ͕ग़͍ͯΔ https://coil-kt.github.io/coil/changelog/#200-may-10-2022 https://github.com/coil-kt/coil/discussions/1362
Modi fi er.blur Android 12 Ҏ্Ͱར༻Մೳ https://developer.android.com/reference/kotlin/androidx/compose/ui/ Modifier#(androidx.compose.ui.Modifier).blur(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.draw.BlurredEdgeTreatment)
Modi fi er.blur Android 12 Ҏ্Ͱར༻Մೳ • RenderEffect Λར༻͍ͯ͠Δ
RenderEffect Android 12 Ҏ্Ͱར༻Մೳ @Stable fun Modifier.blur( radiusX: Dp, radiusY: Dp, edgeTreatment: BlurredEdgeTreatment = BlurredEdgeTreatment.Rectangle, ): Modifier { ... graphicsLayer { this.renderEffect = // Only non-zero blur radii are valid BlurEffect parameters if (horizontalBlurPixels > 0f && verticalBlurPixels > 0f) { BlurEffect(horizontalBlurPixels, verticalBlurPixels, tileMode) } else { null }
΅͔͠ը૾࡞ํ๏ͷݕ౼ʢ࠶ܝʣ ํ๏ ϝϦοτ ݒ೦ ը૾ϩʔμʔͷ #MVS5SBOTGPSNBUJPO (MJEFͱ$PJMΛར༻͍ͯ͠Δ ͷͰಋೖ͕؆୯
3FOEFS4DSJQUΛར༻͍ͯ͠Δ ˞$PJMͰͰআࡁΈ αʔυύʔςΟͷ ը૾ՃϥΠϒϥϦ ಋೖ͕؆୯ 3FOEFS4DSJQUΛར༻͍ͯ͠Δ ϝϯςͮ͠Β͍ $PNQPTFͷ.PEJ fi FSCMVS ͙͑͢Δ "OESPJEҎ্Ͱ͔͑͠ͳ͍ ※ϝϦοτσϝϦοτABEMAΞϓϦʹ͓͚ΔͷͰɺଞΞϓϦʹ͓͍ͯҟͳΔ߹͕͋Γ·͢ɻ ❌ ❌ ❌
ࣗલͰ࣮͠Α͏💪
΅͔͠ը૾࡞ํ๏ͷબ
ߟྀ͖͢ • αϙʔτόʔδϣϯ ΞϓϦ API 21 (Android 5.0) Ҏ্Λαϙʔτ •
ύϑΥʔϚϯε͕ѱ͘ͳΒͳ͍͔ جຊతʹը૾ॲཧॏ͍ͨ
ݕ౼ͨ͠બࢶ ํ๏ αϙʔτ7FS ಋೖͷ͢͠͞ ύϑΥʔϚϯε උߟ 3FOEFS& ff FDU ˚
˓ ʁ 3FOEFS4DSJQU*OUSJOTJDT 3FQMBDFNFOU5PPMLJU ˓ ˚ ˕ 3FOEFS4DSJQUͷସπʔϧɻ 3FOEFS4DSJQUͷഒͷ ύϑΥʔϚϯε͕ݟࠐΊΔɻ˞ ࣗલͰը૾ॲཧ ˓ ˓ ˚ ˞IUUQTEFWFMPQFSBOESPJEDPNHVJEFUPQJDTSFOEFSTDSJQUNJHSBUF IMKBTDSJQUT ͠RenderScriptͷύϑΥʔϚϯε͕ྑ͚Εɺ Android 12 Ҏ্ͰRenderEffectɺͦΕະຬͰ Toolkit Λར༻͢Εྑ͍͔͠Εͳ͍ɻ
Macrobenchmark ͰύϑΥʔϚϯεܭଌ • FrameTimingMetrics Λར༻ ϑϨʔϜੜʹ͔͔͕ͬͨ࣌ؒΘ͔Δ • ςετΞϓϦͰ΅͔͠ը૾͕දࣔ͞ΕΔ·Ͱͷ ظؒΛܭଌ
ܭଌ݁Ռ (Pixel 7) • P50 ~ P99 .. ύʔηϯλΠϧɻσʔλΛখ͍͞ॱʹฒͯɺॳΊ͔Β͑ͯԿ%·Ͱ͔ɻ •
frameDurationCpsMs … ϑϨʔϜͷੜʹ͔͔ͬͨ࣌ؒ • (60fps) 16.67ms Ҏ্ͳΒ৭ɺ(90fps) 11.11ms Ҏ্ͳΒԫ৭ • frameOverrunMs … ʢਖ਼ͷʣͲΕ͘Β͍ϑϨʔϜੜ͕Ε͔ͨɺʢෛͷʣͲΕ͚ͩϑϨʔϜੜ͕ૣ͔͔ͬͨ • ෛͷͳΒ੨৭ • ࢼߦճ 20ճ
AndroidViewͷํ͕ϑϨʔϜੜ͕ૣ͍͋Γ • ಉ͘͡ RenderEffect Λ͍ͬͯͯɺAndroidViewͷํ͕ૣ͍͋Γ • AndroidViewʹ͓͍ͯɺRenderEffect ͩͱ60fpsͰϑϨʔϜམͪ͢Δέʔ ε͕͋ͬͨ ※ࢲͷ
Pixel 7 ʹ͓͍ͯ
AndroidView × Toolkit Λબ • ࠓճͷௐࠪͰɺ࠷ϑϨʔϜམ͕ͪগͳ͔ͬͨͨΊɻ
·ͱΊ
·ͱΊ • RenderScript αϙʔτ͕ऴ͍ྃͯ͠Δ • ͦͷସͱͯ͠ɺRenderScript Intrinsics Replacement Toolkit ͕͋Δ
• ࠓճͷௐࠪͰɺAndroidView × Toolkit ͕ϑϨʔϜམ͕ͪগͳ͔ͬͨ ABEMAͷAndroidΞϓϦͰ Toolkit Λ࠾༻
͋Γ͕ͱ͏͍͟͝·ͨ͠