1
0
mirror of https://github.com/mpv-player/mpv synced 2024-12-15 11:25:10 +00:00

Sync to x264 r134: weighted prediction for B-frames.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@14760 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
lorenm 2005-02-22 05:50:10 +00:00
parent 66b1d8c94b
commit 1db1d5ea38
3 changed files with 14 additions and 1 deletions

View File

@ -7463,6 +7463,15 @@ but temporal often looks better.
direct_pred=0 is usually both slower and lower quality.
.
.TP
.B (no)weight_b
Use weighted prediction in B-frames.
Without this option, bidirectionally predicted macroblocks give
equal weight to each reference frame.
With this option, the weights are determined by the temporal position
of the B-frame relative to the references.
Requires bframes > 1.
.
.TP
.B (no)b8x8mv
Use additional macroblock types b16x8, b8x16, b8x8 (default: enabled).
Without this option, B-frames will use only types

2
configure vendored
View File

@ -5906,7 +5906,7 @@ cat > $TMPC << EOF
#include <stdint.h>
#include <stdarg.h>
#include <x264.h>
#if X264_BUILD < 0x0011
#if X264_BUILD < 0x0012
#error We do not support old versions of x264. Get the latest from SVN.
#endif
int main(void) { x264_encoder_open((void*)0); return 0; }

View File

@ -74,6 +74,7 @@ static int p4x4mv = 0;
static int p8x8mv = 1;
static int b8x8mv = 1;
static int direct_pred = X264_DIRECT_PRED_TEMPORAL;
static int weight_b = 0;
static float ip_factor = 1.4;
static float pb_factor = 1.3;
static int rc_buffer_size = -1;
@ -114,6 +115,8 @@ m_option_t x264encopts_conf[] = {
{"b8x8mv", &b8x8mv, CONF_TYPE_FLAG, 0, 0, 1, NULL},
{"nob8x8mv", &b8x8mv, CONF_TYPE_FLAG, 0, 1, 0, NULL},
{"direct_pred", &direct_pred, CONF_TYPE_INT, CONF_RANGE, 0, 2, NULL},
{"weight_b", &weight_b, CONF_TYPE_FLAG, 0, 0, 1, NULL},
{"noweight_b", &weight_b, CONF_TYPE_FLAG, 0, 1, 0, NULL},
{"ip_factor", &ip_factor, CONF_TYPE_FLOAT, CONF_RANGE, -10.0, 10.0, NULL},
{"pb_factor", &pb_factor, CONF_TYPE_FLOAT, CONF_RANGE, -10.0, 10.0, NULL},
{"rc_buffer_size", &rc_buffer_size, CONF_TYPE_INT, CONF_RANGE, 0, 24000000, NULL},
@ -215,6 +218,7 @@ static int config(struct vf_instance_s* vf, int width, int height, int d_width,
if(b8x8mv)
mod->param.analyse.inter |= X264_ANALYSE_BSUB16x16;
mod->param.analyse.i_direct_mv_pred = direct_pred;
mod->param.analyse.b_weighted_bipred = weight_b;
mod->param.i_width = width;
mod->param.i_height = height;