Add optional more optimal B-frame decision method
authorJason Garrett-Glaser <darkshikari@gmail.com>
Mon, 15 Sep 2008 01:18:15 +0000 (18:18 -0700)
committerJason Garrett-Glaser <darkshikari@gmail.com>
Mon, 15 Sep 2008 04:18:33 +0000 (21:18 -0700)
commit9818865c1f5eccbc04fb51f062cb1b3abff02db0
tree20e98db35c56ee1a477efa513db3c537698c0600
parent173b40c276ee187de31ef630fd207a62de1b2cc7
Add optional more optimal B-frame decision method
This method (--b-adapt 2) uses a Viterbi algorithm somewhat similar to that used in trellis quantization.
Note that it is not fully optimized and is very slow with large --bframes values.
It also takes into account weightb, which should improve fade detection.
Additionally, changes were made to cache lowres intra results for each frame to avoid recalculating them.  This should improve performance in both B-frame decision methods.
This can also be done for motion vectors, which will dramatically improve b-adapt 2 performance when it is complete.
This patch also reads b_adapt and scenecut settings from the first pass so that the x264 header information in the output file will have correct information (since frametype decision is only done on the first pass).
common/common.c
common/common.h
common/frame.c
common/frame.h
encoder/encoder.c
encoder/ratecontrol.c
encoder/slicetype.c
gtk/x264_gtk.c
x264.c
x264.h