[Ffmpeg-devel] VP3/Theora Perfection

Mike Melanson mike
Tue May 17 03:32:51 CEST 2005


Mike Melanson wrote:
>     Hmmm... but what if I made a pre-packaged VLC table that held the 
> first 34 decodable values, and then had a special case for the large 
> values (up to 4129)? I will prototype that.

	Maybe there is something to this approach after all. I replaced 
get_fragment_run_length() and get_mode_code() with VLC lookups. There 
actually is a little improvement. I will apply this idea to 
get_motion_vector_vlc() after I write a program to generate the table. 
In the meantime, a patch is attached (also includes the quasi-VLC for 
get_superblock_run_length()).

	These are the rough numbers:

[original]
1430 dezicycles in get_fragment_run_length, 1 runs, 0 skips
1270 dezicycles in get_fragment_run_length, 2 runs, 0 skips
1255 dezicycles in get_fragment_run_length, 4 runs, 0 skips
1625 dezicycles in get_fragment_run_length, 8 runs, 0 skips
1559 dezicycles in get_fragment_run_length, 16 runs, 0 skips
1529 dezicycles in get_fragment_run_length, 32 runs, 0 skips
1410 dezicycles in get_fragment_run_length, 64 runs, 0 skips
1357 dezicycles in get_fragment_run_length, 127 runs, 1 skips
1308 dezicycles in get_fragment_run_length, 255 runs, 1 skips
1310 dezicycles in get_fragment_run_length, 511 runs, 1 skips
1335 dezicycles in get_fragment_run_length, 1023 runs, 1 skips
1280 dezicycles in get_fragment_run_length, 2047 runs, 1 skips
1281 dezicycles in get_fragment_run_length, 4093 runs, 3 skips

[new]
3130 dezicycles in get_fragment_run_length, 1 runs, 0 skips
2575 dezicycles in get_fragment_run_length, 2 runs, 0 skips
2002 dezicycles in get_fragment_run_length, 4 runs, 0 skips
2021 dezicycles in get_fragment_run_length, 7 runs, 1 skips
2625 dezicycles in get_fragment_run_length, 15 runs, 1 skips
1842 dezicycles in get_fragment_run_length, 31 runs, 1 skips
1430 dezicycles in get_fragment_run_length, 63 runs, 1 skips
1223 dezicycles in get_fragment_run_length, 126 runs, 2 skips
1155 dezicycles in get_fragment_run_length, 254 runs, 2 skips
1107 dezicycles in get_fragment_run_length, 509 runs, 3 skips
1119 dezicycles in get_fragment_run_length, 1019 runs, 5 skips
1113 dezicycles in get_fragment_run_length, 2042 runs, 6 skips/s
1105 dezicycles in get_fragment_run_length, 4089 runs, 7 skips

[original]
4020 dezicycles in get_mode_code, 1 runs, 0 skips
2600 dezicycles in get_mode_code, 2 runs, 0 skips
1927 dezicycles in get_mode_code, 4 runs, 0 skips
1992 dezicycles in get_mode_code, 8 runs, 0 skips
1576 dezicycles in get_mode_code, 16 runs, 0 skips
1468 dezicycles in get_mode_code, 32 runs, 0 skips
1175 dezicycles in get_mode_code, 64 runs, 0 skips
1128 dezicycles in get_mode_code, 128 runs, 0 skips
1027 dezicycles in get_mode_code, 256 runs, 0 skips
1036 dezicycles in get_mode_code, 512 runs, 0 skips
1082 dezicycles in get_mode_code, 1024 runs, 0 skips
1112 dezicycles in get_mode_code, 2047 runs, 1 skips
1115 dezicycles in get_mode_code, 4095 runs, 1 skips
1112 dezicycles in get_mode_code, 8183 runs, 9 skips

[new]
8030 dezicycles in get_mode_code, 1 runs, 0 skips
4955 dezicycles in get_mode_code, 2 runs, 0 skips
3152 dezicycles in get_mode_code, 4 runs, 0 skips
2578 dezicycles in get_mode_code, 8 runs, 0 skips
1751 dezicycles in get_mode_code, 16 runs, 0 skips
1463 dezicycles in get_mode_code, 32 runs, 0 skips
1204 dezicycles in get_mode_code, 64 runs, 0 skips
1075 dezicycles in get_mode_code, 128 runs, 0 skips
959 dezicycles in get_mode_code, 256 runs, 0 skips
939 dezicycles in get_mode_code, 512 runs, 0 skips
943 dezicycles in get_mode_code, 1023 runs, 1 skips
947 dezicycles in get_mode_code, 2046 runs, 2 skips
941 dezicycles in get_mode_code, 4091 runs, 5 skips
935 dezicycles in get_mode_code, 8175 runs, 17 skips


-- 
	-Mike Melanson
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: ffmpeg-vp3-vlc.patch
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20050516/89448f95/attachment.asc>



More information about the ffmpeg-devel mailing list