[FFmpeg-devel] [PATCH 05/18] vulkan_ffv1: optimize symbol reader
Lynne
dev at lynne.ee
Sat Apr 12 10:22:36 EEST 2025
This was the fastest variant tested.
---
libavcodec/vulkan/ffv1_dec.comp | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/libavcodec/vulkan/ffv1_dec.comp b/libavcodec/vulkan/ffv1_dec.comp
index f9ffe1cee1..7d3150ed63 100644
--- a/libavcodec/vulkan/ffv1_dec.comp
+++ b/libavcodec/vulkan/ffv1_dec.comp
@@ -78,13 +78,11 @@ int get_isymbol(inout RangeCoder c, uint64_t state)
state += 21;
- int a = 1 << e;
- int i;
- for (i = e - 1; i >= 9; i--)
- a |= int(get_rac(c, state + 9)) << i; // 22..31
-
- for (; i >= 0; i--)
- a |= int(get_rac(c, state + i)) << i; // 22..31
+ int a = 1;
+ for (int i = e - 1; i >= 0; i--) {
+ a <<= 1;
+ a |= int(get_rac(c, state + min(i, 9))); // 22..31
+ }
return get_rac(c, state - 11 + min(e, 10)) ? -a : a;
}
--
2.47.2
More information about the ffmpeg-devel
mailing list