From f5866a0340401ca4ef6228b3c39ed1ed8660c1b1 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Sat, 17 Aug 2002 20:10:27 +0000 Subject: [PATCH] skip blocks with small chroma dc too (if the user wants it) needed to avoid IDCT(input coeffs !=0) == 0 problems which cause catastrophic error accumulation at qp=1 Originally committed as revision 853 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/mpegvideo.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c index 320e2e4..9e8b50b 100644 --- a/libavcodec/mpegvideo.c +++ b/libavcodec/mpegvideo.c @@ -1589,7 +1589,11 @@ static inline void dct_single_coeff_elimination(MpegEncContext *s, int n, int th const int last_index= s->block_last_index[n]; if(skip_dc) skip_dc=1; - + if(threshold<0){ + skip_dc=0; + threshold= -threshold; + } + /* are all which we could set to zero are allready zero? */ if(last_index<=skip_dc - 1) return; -- 2.7.4