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
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
AI AgentによるEmbedded SREの取り組み
tgidgd
1
340
Strands Decider 2BでAWSアップデートの目利きをしてみた
sato4mi
1
120
2026 Apache Flink Community Checkpoint
rmetzger
0
180
DBTS2026 盛り上がってますか!?Databricksが実現するAI時代のデータ基盤
akuwano
1
140
あなたのDartコードは丸見えかもしれない ~reFlutterで暴くFlutterアプリの中身と多層防御~
zozotech
PRO
0
770
re:Invent2026 事前勉強会 歴史と愉しみ方10分LT編
toshi_atsumi
0
130
試験勉強はGrokBotでやれ
maigo999
0
110
なぜ東京にいる私が、新潟の技術コミュニティを運営するのか by 八雲慎之助
yakumo
0
220
自律的なチームを作るためにTechPMがやらないこと
ny7760
1
510
新卒エンジニア、 介護士になる
ryu1013
1
690
AI時代に求められる優秀なTechLeadの振る舞い
pospome
10
13k
[General] 개발자로 해외 기업에서 일하기
skydoves
1
300
Featured
See All Featured
Designing for Performance
lara
612
70k
Practical Orchestrator
shlominoach
192
12k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.5k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Done Done
chrislema
187
17k
Testing 201, or: Great Expectations
jmmastey
46
8.4k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
330
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.7k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Designing for Timeless Needs
cassininazir
1
550
Designing Powerful Visuals for Engaging Learning
tmiket
1
650
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
570
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 Λ࠾༻
͋Γ͕ͱ͏͍͟͝·ͨ͠