mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-25 00:32:31 +00:00
detect when iterative_me fails to converge, and stop searching
Originally committed as revision 4868 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
d271481f1a
commit
d3ac6ed667
@ -25,6 +25,8 @@
|
|||||||
|
|
||||||
#include "mpegvideo.h"
|
#include "mpegvideo.h"
|
||||||
|
|
||||||
|
#include <zlib.h>
|
||||||
|
|
||||||
#undef NDEBUG
|
#undef NDEBUG
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
@ -3301,6 +3303,8 @@ static void iterative_me(SnowContext *s){
|
|||||||
const int b_height= s->b_height << s->block_max_depth;
|
const int b_height= s->b_height << s->block_max_depth;
|
||||||
const int b_stride= b_width;
|
const int b_stride= b_width;
|
||||||
int color[3];
|
int color[3];
|
||||||
|
const int first_crc_pass= 12;
|
||||||
|
uint32_t crcs[50];
|
||||||
|
|
||||||
for(pass=0; pass<50; pass++){
|
for(pass=0; pass<50; pass++){
|
||||||
int change= 0;
|
int change= 0;
|
||||||
@ -3435,6 +3439,18 @@ static void iterative_me(SnowContext *s){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
av_log(NULL, AV_LOG_ERROR, "pass:%d changed:%d\n", pass, change);
|
av_log(NULL, AV_LOG_ERROR, "pass:%d changed:%d\n", pass, change);
|
||||||
|
|
||||||
|
if(pass >= first_crc_pass){
|
||||||
|
int i;
|
||||||
|
//FIXME can we hash just the blocks that were analysed?
|
||||||
|
crcs[pass]= crc32(crc32(0,NULL,0), (void*)s->block, b_stride*b_height*sizeof(BlockNode));
|
||||||
|
for(i=pass-1; i>=first_crc_pass; i--){
|
||||||
|
if(crcs[i] == crcs[pass]){
|
||||||
|
change= 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
if(!change)
|
if(!change)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -119,10 +119,10 @@ a7ef4746f27be309138c188e327d3ebe *./data/a-ffv1.avi
|
|||||||
2653642 ./data/a-ffv1.avi
|
2653642 ./data/a-ffv1.avi
|
||||||
799d3db687f6cdd7a837ec156efc171f *./data/out.yuv
|
799d3db687f6cdd7a837ec156efc171f *./data/out.yuv
|
||||||
stddev: 0.00 PSNR:99.99 bytes:7602176
|
stddev: 0.00 PSNR:99.99 bytes:7602176
|
||||||
97c7066617d9e6c86a43a2736b3e9f16 *./data/a-snow.avi
|
b7e88c743458e60d59d83554d1e1ace5 *./data/a-snow.avi
|
||||||
1190760 ./data/a-snow.avi
|
1191118 ./data/a-snow.avi
|
||||||
7e4d9c61252ff22b1a0d4e892cc1d957 *./data/out.yuv
|
2e0cda9acd71d339d72372a22591500a *./data/out.yuv
|
||||||
stddev: 2.89 PSNR:38.87 bytes:7602176
|
stddev: 2.90 PSNR:38.87 bytes:7602176
|
||||||
11fd61ee7e67ef7a7b2a3df973691305 *./data/a-snow53.avi
|
11fd61ee7e67ef7a7b2a3df973691305 *./data/a-snow53.avi
|
||||||
3533710 ./data/a-snow53.avi
|
3533710 ./data/a-snow53.avi
|
||||||
799d3db687f6cdd7a837ec156efc171f *./data/out.yuv
|
799d3db687f6cdd7a837ec156efc171f *./data/out.yuv
|
||||||
|
Loading…
Reference in New Issue
Block a user