[FFmpeg-cvslog] ffv1enc_vulkan: minor EC optimizations

Lynne git at videolan.org
Tue May 20 13:53:28 EEST 2025


ffmpeg | branch: master | Lynne <dev at lynne.ee> | Fri May  2 15:27:52 2025 +0200| [52595025c5aab5986b39ea9276c959ea6f801b78] | committer: Lynne

ffv1enc_vulkan: minor EC optimizations

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=52595025c5aab5986b39ea9276c959ea6f801b78
---

 libavcodec/vulkan/rangecoder.comp | 19 ++++++-------------
 1 file changed, 6 insertions(+), 13 deletions(-)

diff --git a/libavcodec/vulkan/rangecoder.comp b/libavcodec/vulkan/rangecoder.comp
index badc65293f..9e2c5fbecf 100644
--- a/libavcodec/vulkan/rangecoder.comp
+++ b/libavcodec/vulkan/rangecoder.comp
@@ -109,14 +109,10 @@ void put_rac_direct(inout RangeCoder c, inout uint8_t state, bool bit)
 #endif
 
     int diff = c.range - range1;
-    if (bit) {
-        c.low   += diff;
-        c.range  = range1;
-    } else {
-        c.range  = diff;
-    }
+    c.low += bit ? diff : 0;
+    c.range = bit ? range1 : diff;
 
-    if (c.range < 0x100)
+    if (expectEXT(c.range < 0x100, false))
         renorm_encoder(c);
 
     state = zero_one_state[(uint(bit) << 8) + state];
@@ -139,12 +135,9 @@ void put_rac_equi(inout RangeCoder c, bool bit)
         debugPrintfEXT("Error: range1 <= 0");
 #endif
 
-    if (bit) {
-        c.low   += c.range - range1;
-        c.range  = range1;
-    } else {
-        c.range -= range1;
-    }
+    int diff = c.range - range1;
+    c.low += bit ? diff : 0;
+    c.range = bit ? range1 : diff;
 
     if (expectEXT(c.range < 0x100, false))
         renorm_encoder(c);



More information about the ffmpeg-cvslog mailing list