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
2k
Other Decks in Technology
See All in Technology
20260930_Gemma4_Hands-on
tsho
0
200
スキルを作る、その前に!複数人で使われるスキルを 作るためのプロセス
junkifurukawa
1
140
認知負荷を吸収し、プロダクトをまたぐPR Preview基盤の設計事例
taiki45
2
560
spanner-autoscalerに学ぶ CRD設計パターン 〜自動化と緊急時対応を両立する Kubernetesコントローラーの作り方〜
tkuchiki
0
220
1人アドミンな私はAWSアカウント申請をSlackで完結したい!
ysuzuki
0
110
AWS DevOps Agent スキルをつかいこなそう / Master AWS DevOps Agent Skills
kinunori
2
650
TiDBファミリーにDWHが新登場!! TiDB最新情報 / TiDB update 202609
yoshiakiyamasaki
0
180
キャリアLT今日までそして明日から
kentapapa
1
140
全社共通データ基盤をつくる。ソニーのDatabricks活用とデータガバナンス設計の裏側
sony
0
280
覗いてみよう 関数型ビジュアル言語×2Dグラフィックスの世界
yohyamasaki
0
160
ビジネスを止めない技術的負債の返済のための戦略とその手法 - 技術的負債と向き合う / Complexity and Simplicity
soudai
PRO
2
320
The seven pitfalls of AI (revised version)
ufried
0
170
Featured
See All Featured
Become a Pro
speakerdeck
PRO
31
6.3k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
420
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
380
Automating Front-end Workflow
addyosmani
1369
210k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
2
2.9k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Documentation Writing (for coders)
carmenintech
77
5.6k
A Tale of Four Properties
chriscoyier
163
24k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
390
Design in an AI World
tapps
1
340
How GitHub (no longer) Works
holman
316
150k
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 Λ࠾༻
͋Γ͕ͱ͏͍͟͝·ͨ͠