todo

来自「Motion JPEG编解码器源代码」· 代码 · 共 98 行

TXT
98
字号
IN PROGRESS	- Remove obsolete i,j in macroblocks in favour of Coord....	- Replace appending subsampled luminance to luminance data with a 5-plane	  picture data model (YUVHQ)	- MotionEst should be called 'MacroBlockCodingMode'	- Set satlim and scale type in quantizer during init	- Move to a buffering output model where a frame can be aborted/restarted	with different quantisation if it is coming out too large or too small.	- Dynamic B/P selection and selection of I frames 	without memory-expensive look-ahead.	- Improve memory management.  Selecting Picture's from a single pool	rather than seperate B / I|P pools will save memory buffers.  Also,	really there is no need for DCT blocks for every picture as encoding	is basically serial!!Near Future improvements0.  Replace current variance based motion estimation mode selection	with DCT based selection.  	Next Step: split predictors from Picture state and build a	new QuantiseAndPutEncoding that predict's and transforms and	quantisatises forall the motion estimates and selects the one that	worked best for encoding.	- Modify the on-the-fly rate controller so it can handle adjusting	  quantisation at select Macroblock's and not at *every* macroblock	  if no fancy per-block quantisation fiddles are active...1. Add single coefficient dropping to DCT...2.	Split into front-end and library (for gstreamer etc) 	This will require removal of lots of nasty global scratch variables3.	Add accurate (GOP-structure based) decoder buffer modelling for more	aggresive bit-rate optimisation.4.	Seperate the transformation phase (ME, pred, DCT) from the bit allocation	and coding phases. 	This will provide the basis for two-pass encoding and pipelined encoding.5.	Replace the current frame-based parallelism with striping in the 	ME/pred/DCT routine.6.	The rate control code is now a mess of int64_t , double and int. Needs	tidying... Minor Tidying1.	A lot of parameter passing could be removed from motionest.cc routines	by creating an 'MacroBlockMotionModes' object carrying parameters fixed	for a block...2.	The order of return from block_dist1_MMXE is silly.  Why not	retune in the order it is held and adjust find_best_one_pel_MMXE to	suit.  3.	For Motion estimation in -I 1 we really need both field *and* frame	sub-sampled images for motion estimation to be optimal.5.	The code for scene-change gop sizing and ending sequences can in	some circumstances mess up as the sizing takes no account of	the fact the when a sequence split occurs the I-frame tempref is	0 not M-1.Sometime....1.  	Bring field sequence MC/prediction to same level as progressive		sequence.	2.	Improve locality of reference by motion-estimating entire 4x4, 2x2, 1x1phases in a single pass rather doing each for each Macroblock.3.  Check out using dist2 for initial MC calculations as well as final	selection?5.	Add low-passing for high-activity regions when a specified quantisation	level is exceeded (or block boundary edge energy exceeds some threshold?).6.	Sort out that wretched vbv verification code.	The mblockq_ sub-routines intended specification should be documented...

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?