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
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.