diff --git a/libavcodec/utvideoenc.c b/libavcodec/utvideoenc.c
index f3ba7399cd3bfeeab7dd2f022145d8a3453b7f51..95205eaac686f24862067a6dbf4d01c9d41925f3 100644
--- a/libavcodec/utvideoenc.c
+++ b/libavcodec/utvideoenc.c
@@ -196,16 +196,13 @@ static void mangle_rgb_planes(uint8_t *src, int step, int stride, int width,
                               int height)
 {
     int i, j;
-    uint8_t r, g, b;
+    unsigned g;
 
     for (j = 0; j < height; j++) {
         for (i = 0; i < width * step; i += step) {
-            r = src[i];
-            g = src[i + 1];
-            b = src[i + 2];
-
-            src[i]     = r - g + 0x80;
-            src[i + 2] = b - g + 0x80;
+            g           = src[i + 1] + 0x80;
+            src[i]     -= g;
+            src[i + 2] -= g;
         }
         src += stride;
     }