[FFmpeg-cvslog] sws/fill_rgb2yuv_table: avoid 2 divisions

Michael Niedermayer git at videolan.org
Tue Apr 16 11:43:12 CEST 2013


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Tue Apr 16 11:13:20 2013 +0200| [2fa11a94a312aa072d7d14204a09582950bebccb] | committer: Michael Niedermayer

sws/fill_rgb2yuv_table: avoid 2 divisions

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

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

 libswscale/utils.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libswscale/utils.c b/libswscale/utils.c
index ee522c9..71e85e0 100644
--- a/libswscale/utils.c
+++ b/libswscale/utils.c
@@ -868,9 +868,9 @@ static void fill_rgb2yuv_table(SwsContext *c, const int table[4], int dstRange)
 
     c->input_rgb2yuv_table[RU_IDX] =  (1 << RGB2YUV_SHIFT)*ONE*V/(Z*ub);
     c->input_rgb2yuv_table[GU_IDX] = -(1 << RGB2YUV_SHIFT)*ONE*ONE/(Z*ub);
-    c->input_rgb2yuv_table[BU_IDX] =  (1 << RGB2YUV_SHIFT)*(ONE + ONE*W/Z)/ub;
+    c->input_rgb2yuv_table[BU_IDX] =  (1 << RGB2YUV_SHIFT)*ONE*(Z+W)/(Z*ub);
 
-    c->input_rgb2yuv_table[RV_IDX] =  (1 << RGB2YUV_SHIFT)*(ONE + ONE*V/Z)/vr;
+    c->input_rgb2yuv_table[RV_IDX] =  (1 << RGB2YUV_SHIFT)*ONE*(V+Z)/(Z*vr);
     c->input_rgb2yuv_table[GV_IDX] = -(1 << RGB2YUV_SHIFT)*ONE*ONE/(Z*vr);
     c->input_rgb2yuv_table[BV_IDX] =  (1 << RGB2YUV_SHIFT)*ONE*W/(Z*vr);
 



More information about the ffmpeg-cvslog mailing list