[XviD-devel] updated todo list

peter ross xvid-devel@xvid.org
Fri, 29 Nov 2002 22:33:53 +1100


-----------------------------------------------------------------------
XVID-DEVEL
* decide development policies: cvs/patch-list/forums		[DONE]
* write a decent faq document, developer documentation

BUGS
* rework timebase/timeincr code 				[DONE]
* interlacing bug 						[DONE]
* radek's max_bframes==-1 artifical problem 			[DONE]
* encode/decode any image resolution 				[DONE]
* add emms_mmx() to xvid_init xmm,3dnow				[DONE]
* yuv->rgb mmx, yellow line
* custom MPEG quant matrix global vars
* prevent invalid memory accesses; valgrind

XVIDCORE
* xvid-specific info in user_start_code. e.g. xvid build num	[DONE]
* ^^ what about "desired-post processing level" setting??
* adds skals fast vlc code 					[?]
* combine quant + iquant
* prefiltering  (e.g. XVID_TVOUT; lum_offset = -2)
* proper SMP support; bframes
* flag to support/unsupport VOL insertion at I_VOP
* VOL support only at I_VOP??. (interlacing,gmc,qpel,etc.)
* cutsom_quant for bframes
* re-implement internal timer using function ptr wrappers
* reduced resolution vops encoding/decoding
* Encoder struct marshalling, such that we can pause/resume encoding
* chroma interpolation (blur chroma plane)
* chroma optimization; where chroma is averaged when 16<luma<240

XVIDCORE/API3
* incorporate platform independant 2-pass vbr

XVIDCORE/DCT
* zero idct coeff issue
* examine/implement new fdct algo
* use fast/inaccurate fdct/idct for b-frames
* combine fdct + quant to improve performance

XVIDCORE/IMAGE
* image_input XVID_CSP_VFLIP support 			[DONE]
* RGBA modes						[DONE]
* interlace chrom 					[DONE]
* colorspace mmx patches/optimizations; yuv to rgb 15/16 mmx code
* increase precision of yuv to rgb transformation
* blocked-based edge mirrorring.

XVIDCORE/ME
* permit different motion search algos to be selected	[DEPRECATED]
* put the different ME algos into seperate files	[DEPRECATED]
* qpel ME 						[DONE]
* GMC							[IN PROGRESS]
* optimise getpmv/macroblock structure
* investigate "good" field-based motion estimation methods
* decision criteria if qpel or "normal" halfpel vectors should be used

XVIDCORE/BFRAMES
* don't reconstruct b-frames				[DONE]
* scene change detection? futher testing required	[DONE]
* automatic b-frame/p-frame decision			[NEEDS REFINEMENT]
* 2pass statistics and mvhiting				[IN PROGRESS]
* cleanup ipb encoder gotos				[IN PROGRESS]
* add dynamic fcode/bcode

XVIDCORE/DECODER
* qpel speedup						[DONE]
* auto/width height detection 				[DONE]
* cleanup bframe mb_decoding functions
* post processing, brightness, etc.
* test if 16xX transfer/interpolation functions would be faster 
(sse2,maybe?)
* div3 support

FRONTENDS
* contact nullsoft about their winamp3 plugin interface
* UCI intergration

FRONTENDS/VFW
* export a Configure() function				[DONE]
* simplify interface - remove some 2-pass options no-one uses,
	create alternate "really really simple" front-end with
	4 or 5 options max.
* add MPEG-4 profile/level selection to vfw GUI and XVID API
* decompress_get_format() does not need to validate the output format,
  and should set biOutput->bmiHeader.biBitSize

FRONTENDS/DSHOW
* IDirectDrawMedaStream::GetFormat returns E_NO_STREAM
* add directshow encoding filter

FRONTENDS/QT
* import quicktime frontend into cvs & clean up
* add proper encoding support/gui

GRUEL
* Search around the web for other GPL projects who already have code
  we are planning to do ourselves, e.g. image prefiltering,
  postprocessing, rescaling. It would be stupid not to _use_ GPL, if
  it's offered to us. Interesting candidates are MPlayer (C), transcode (C),
  VirtualDub (C++?), ffmpeg (C) and surely others, too.

DAN
* an XVID_ENC_REENCODE function where the current frame is re-encoded with a
different quantizer / frame type / whatever

* dark areas in mpeg-4 look horrible on my tv compared to mpeg-1/2, should 
we
have an option to add random AC noise to dark blocks?  or is this only a
postprocessing issue?

* a real constant quality mode, where frames are forced to reach a certain
quality measure like psnr, gabriel's code at gabriel.mp3-tech.org, or 
whatever

* add a compile time option for (or just enforce outright) the
132-consecutive-inter-blocks rule

* look at the brute-force inter/intra issue again - ffmpeg's hq mode seems 
to
save me up to 5% of bitrate on many clips.  or is this just due to its ME 
making
worse inter/intra choices than ours to start with?

* is it possible to use fdct *itself* as a preprocessor - ffmpeg produces 
far
smoother images than xvid's, and fixed-quant encodes show ffmpeg's file size
*way* below ours - i can't see anything that would be doing this apart from 
its
fdct.  but i don't understand the math of fdct that well.  it would at least 
be
faster than calling preprocess(block) followed by fdct(block).
-----------------------------------------------------------------------


_________________________________________________________________
MSN 8 with e-mail virus protection service: 2 months FREE* 
http://join.msn.com/?page=features/virus