[FFmpeg-cvslog] vulkan_ffv1: optimize symbol reader
Lynne
git at videolan.org
Mon Apr 14 07:16:08 EEST 2025
ffmpeg | branch: master | Lynne <dev at lynne.ee> | Wed Apr 2 20:46:12 2025 +0000| [fc960dafef9f1b30433bbf6ead84fbdc8d492539] | committer: Lynne
vulkan_ffv1: optimize symbol reader
This was the fastest variant tested.
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=fc960dafef9f1b30433bbf6ead84fbdc8d492539
---
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;
}
More information about the ffmpeg-cvslog
mailing list