Skip to content
Kieran Kunhya edited this page Jul 15, 2014 · 21 revisions

Very rough TODO list. Ask on IRC for more details. #x264dev on freenode

  • fix desync with interlaced chroma
  • interlaced 4:2:2
  • slice-max-mbs
  • use lookahead for variable f_code size in inter
  • denoise DCT coefficients
  • enforce separate mpeg2 sane defaults? 1 second GOP and 2 B frames?
  • MV costs assume qpel
  • improve B_SKIP detection (currently only used when the zero MV has no residual)
  • trellis
  • move frame/field decision to lookahead and set alternate_scan and frame_pred_frame_dct accordingly.

ASM Tasks

  • sub8x8_dct_mpeg2 (port the inline version from lavc to YASM)
  • add8x8_idct_mpeg2 (port the inline version from lavc to YASM)
  • x264_coeff_level_run64
  • get_ref_mpeg2
  • mc_luma_mpeg2
  • dequant_mpeg2_inter
  • mc_chroma_mpeg2
  • dequant_mpeg2_intra
  • zigzag_scan_8x8_field_mpeg2

ASM functions are sorted with the most expensive first.

Valgrind Cleanup

Run valgrind on x262 in MPEG2 mode and clean up any errors you get. Example valgrind command: valgrind --tool=memcheck --leak-check=no --show-reachable=yes --num-callers=20 --track-fds=no --track-origins=yes --dsymutil=yes -v ./x264 --me dia --subme 3 --bframes 1 --bitrate 3500 --vbv-maxrate 3500 --vbv-bufsize 1835 -o /tmp/out.h262 --frames 15 --threads 1 --mpeg2 ~/Vol2/media/football_720x480p.yuv &> /tmp/test.out

  • Subme=1/2, 2 errors both caused by the same thing:
  • in analyse.c, line 4442, a->l1.me16x16.mv[1] is initialized, can be fixed by adding !MPEG2 to the conditional at 4439 but is this correct?
  • if( !MPEG2 && h->mb.i_type != P_L0 )
  • Subme=3, currently 150 errors
Clone this wiki locally