Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
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
ガバメントクラウドでのランサムウェア対策
techniczna
2
980
【CEDEC2026】専門性の高いデフォルメチームが挑んだ人材育成戦略 〜Cygames Academiaの企画から実施まで〜
cygames
PRO
0
530
老害フォレンジッカーはAI羊の夢を見るか?
tadmaddad
0
290
え?フロントエンドエンジニアの ワイがインフラも!?
puku0x
1
420
Master Dataグループ紹介資料
sansan33
PRO
1
4.8k
変化の早いClaude Codeを 書籍に落とし込む
oikon48
7
1.3k
強化学習「理論」入門
enakai00
3
3.6k
20260804_Q4AzureUpdateBite_FabricDataAgentの精度を高める設計.pdf
matayuuu
1
110
FPGAが実現する遠方宇宙の高空間分解能天体撮影 -大型地上望遠鏡の視力を補正する「補償光学」とは?-
komei_mt
0
170
攻撃と防御で学ぶAI時代のプロダクトセキュリティ演習
recruitengineers
PRO
6
2.1k
【CEDEC2026】『ウマ娘 プリティーダービー』 英語版のキャラクターの方言や口調をローカライズするための創造的アプローチ
cygames
PRO
1
200
トヨタ⽣産⽅式(TPS)⼊⾨
recruitengineers
PRO
2
630
Featured
See All Featured
For a Future-Friendly Web
brad_frost
183
10k
Evolving SEO for Evolving Search Engines
ryanjones
0
250
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
790
Chasing Engaging Ingredients in Design
codingconduct
0
260
Building a Scalable Design System with Sketch
lauravandoore
463
34k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.7k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.8k
GraphQLとの向き合い方2022年版
quramy
50
15k
Optimising Largest Contentful Paint
csswizardry
37
3.9k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.2k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
The untapped power of vector embeddings
frankvandijk
2
1.8k
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 Λ࠾༻
͋Γ͕ͱ͏͍͟͝·ͨ͠