x264.c File Reference

Include dependency graph for x264.c:


Data Structures

struct  encoder_sys_t

Defines

#define SOUT_CFG_PREFIX   "sout-x264-"
#define KEYINT_TEXT   N_("Maximum GOP size")
#define KEYINT_LONGTEXT
#define MIN_KEYINT_TEXT   N_("Minimum GOP size")
#define MIN_KEYINT_LONGTEXT
#define SCENE_TEXT   N_("Extra I-frames aggressivity" )
#define SCENE_LONGTEXT
#define BFRAMES_TEXT   N_("B-frames between I and P")
#define BFRAMES_LONGTEXT
#define B_ADAPT_TEXT   N_("Adaptive B-frame decision")
#define B_ADAPT_LONGTEXT
#define B_BIAS_TEXT   N_("Influence (bias) B-frames usage")
#define B_BIAS_LONGTEXT
#define BPYRAMID_TEXT   N_("Keep some B-frames as references")
#define BPYRAMID_LONGTEXT
#define CABAC_TEXT   N_("CABAC")
#define CABAC_LONGTEXT
#define REF_TEXT   N_("Number of reference frames")
#define REF_LONGTEXT
#define NF_TEXT   N_("Skip loop filter")
#define NF_LONGTEXT   N_( "Deactivate the deblocking loop filter (decreases quality).")
#define FILTER_TEXT   N_("Loop filter AlphaC0 and Beta parameters alpha:beta")
#define FILTER_LONGTEXT
#define LEVEL_TEXT   N_("H.264 level")
#define LEVEL_LONGTEXT
#define QP_TEXT   N_("Set QP")
#define QP_LONGTEXT
#define CRF_TEXT   N_("Quality-based VBR")
#define CRF_LONGTEXT   N_( "1-pass Quality-based VBR. Range 0 to 51." )
#define QPMIN_TEXT   N_("Min QP")
#define QPMIN_LONGTEXT
#define QPMAX_TEXT   N_("Max QP")
#define QPMAX_LONGTEXT   N_( "Maximum quantizer parameter." )
#define QPSTEP_TEXT   N_("Max QP step")
#define QPSTEP_LONGTEXT   N_( "Max QP step between frames.")
#define RATETOL_TEXT   N_("Average bitrate tolerance")
#define RATETOL_LONGTEXT
#define VBV_MAXRATE_TEXT   N_("Max local bitrate")
#define VBV_MAXRATE_LONGTEXT   N_( "Sets a maximum local bitrate (in kbits/s).")
#define VBV_BUFSIZE_TEXT   N_("VBV buffer")
#define VBV_BUFSIZE_LONGTEXT
#define VBV_INIT_TEXT   N_("Initial VBV buffer occupancy")
#define VBV_INIT_LONGTEXT
#define IPRATIO_TEXT   N_("QP factor between I and P")
#define IPRATIO_LONGTEXT   N_( "QP factor between I and P. Range 1.0 to 2.0.")
#define PBRATIO_TEXT   N_("QP factor between P and B")
#define PBRATIO_LONGTEXT   N_( "QP factor between P and B. Range 1.0 to 2.0.")
#define CHROMA_QP_OFFSET_TEXT   N_("QP difference between chroma and luma")
#define CHROMA_QP_OFFSET_LONGTEXT   N_( "QP difference between chroma and luma.")
#define PASS_TEXT   N_("Multipass ratecontrol")
#define PASS_LONGTEXT
#define QCOMP_TEXT   N_("QP curve compression")
#define QCOMP_LONGTEXT   N_( "QP curve compression. Range 0.0 (CBR) to 1.0 (QCP).")
#define CPLXBLUR_TEXT   N_("Reduce fluctuations in QP")
#define CPLXBLUR_LONGTEXT
#define QBLUR_TEXT   N_("Reduce fluctuations in QP")
#define QBLUR_LONGTEXT
#define ANALYSE_TEXT   N_("Partitions to consider")
#define ANALYSE_LONGTEXT
#define DIRECT_PRED_TEXT   N_("Direct MV prediction mode")
#define DIRECT_PRED_LONGTEXT   N_( "Direct MV prediction mode.")
#define WEIGHTB_TEXT   N_("Weighted prediction for B-frames")
#define WEIGHTB_LONGTEXT   N_( "Weighted prediction for B-frames.")
#define ME_TEXT   N_("Integer pixel motion estimation method")
#define ME_LONGTEXT
#define SUBME_TEXT
#define SUBME_MAX   5
#define SUBME_LONGTEXT
#define B_RDO_TEXT   N_("RD based mode decision for B-frames")
#define B_RDO_LONGTEXT
#define MIXED_REFS_TEXT   N_("Decide references on a per partition basis")
#define MIXED_REFS_LONGTEXT
#define CHROMA_ME_TEXT   N_("Chroma in motion estimation")
#define CHROMA_ME_LONGTEXT
#define BIME_TEXT   N_("Jointly optimize both MVs in B-frames")
#define BIME_LONGTEXT   N_( "Joint bidirectional motion refinement.")
#define TRANSFORM_8X8DCT_TEXT   N_("Adaptive spatial transform size")
#define TRANSFORM_8X8DCT_LONGTEXT
#define TRELLIS_TEXT   N_("Trellis RD quantization" )
#define TRELLIS_LONGTEXT
#define FAST_PSKIP_TEXT   N_("Early SKIP detection on P-frames")
#define FAST_PSKIP_LONGTEXT   N_( "Early SKIP detection on P-frames.")
#define DCT_DECIMATE_TEXT   N_("Coefficient thresholding on P-frames")
#define DCT_DECIMATE_LONGTEXT
#define NR_TEXT   N_("Noise reduction")
#define NR_LONGTEXT
#define ASM_TEXT   N_("CPU optimizations")
#define ASM_LONGTEXT   N_( "Use assembler CPU optimizations.")
#define STATS_TEXT   N_("Filename for 2 pass stats file")
#define STATS_LONGTEXT   N_( "Filename for 2 pass stats file for multi-pass encoding.")
#define PSNR_TEXT   N_("PSNR computation")
#define PSNR_LONGTEXT
#define SSIM_TEXT   N_("SSIM computation")
#define SSIM_LONGTEXT
#define QUIET_TEXT   N_("Quiet mode")
#define QUIET_LONGTEXT   N_( "Quiet mode.")
#define VERBOSE_TEXT   N_("Statistics")
#define VERBOSE_LONGTEXT   N_( "Print stats for each frame.")
#define AUD_TEXT   N_("Access unit delimiters")
#define AUD_LONGTEXT   N_( "Generate access unit delimiter NAL units.")
#define X264_ANALYSE_BSUB16x16   0

Functions

static int Open (vlc_object_t *)
static void Close (vlc_object_t *)
int vlc_entry__main (module_t *p_module)
const char * vlc_entry_license__main (void)
static block_tEncode (encoder_t *, picture_t *)

Variables

static const char *const enc_analyse_list []
static const char *const enc_analyse_list_text []
static const char *const direct_pred_list []
static const char *const direct_pred_list_text []
static const char *const ppsz_sout_options []

Define Documentation

#define ANALYSE_LONGTEXT

Value:

N_( "Partitions to consider in analyse mode: \n" \
    " - none  : \n" \
    " - fast  : i4x4\n" \
    " - normal: i4x4,p8x8,(i8x8)\n" \
    " - slow  : i4x4,p8x8,(i8x8),b8x8\n" \
    " - all   : i4x4,p8x8,(i8x8),b8x8,p4x4\n" \
    "(p4x4 requires p8x8. i8x8 requires 8x8dct).")

#define ANALYSE_TEXT   N_("Partitions to consider")

#define ASM_LONGTEXT   N_( "Use assembler CPU optimizations.")

#define ASM_TEXT   N_("CPU optimizations")

#define AUD_LONGTEXT   N_( "Generate access unit delimiter NAL units.")

#define AUD_TEXT   N_("Access unit delimiters")

#define B_ADAPT_LONGTEXT

Value:

N_( "Force the specified number of " \
    "consecutive B-frames to be used, except possibly before an I-frame." )

#define B_ADAPT_TEXT   N_("Adaptive B-frame decision")

#define B_BIAS_LONGTEXT

Value:

N_( "Bias the choice to use B-frames. Positive values " \
    "cause more B-frames, negative values cause less B-frames." )

#define B_BIAS_TEXT   N_("Influence (bias) B-frames usage")

#define B_RDO_LONGTEXT

Value:

N_( "RD based mode decision for B-frames. This " \
    "requires subme 6 (or higher).")

#define B_RDO_TEXT   N_("RD based mode decision for B-frames")

#define BFRAMES_LONGTEXT

Value:

N_( "Number of consecutive B-frames between I and " \
    "P-frames. Range 1 to 16." )

#define BFRAMES_TEXT   N_("B-frames between I and P")

#define BIME_LONGTEXT   N_( "Joint bidirectional motion refinement.")

#define BIME_TEXT   N_("Jointly optimize both MVs in B-frames")

#define BPYRAMID_LONGTEXT

Value:

N_( "Allows B-frames to be used as references for " \
    "predicting other frames. Keeps the middle of 2+ consecutive B-frames " \
    "as a reference, and reorders frame appropriately." )

#define BPYRAMID_TEXT   N_("Keep some B-frames as references")

#define CABAC_LONGTEXT

Value:

N_( "CABAC (Context-Adaptive Binary Arithmetic "\
    "Coding). Slightly slows down encoding and decoding, but should save " \
    "10 to 15% bitrate." )

#define CABAC_TEXT   N_("CABAC")

#define CHROMA_ME_LONGTEXT

Value:

N_( "Chroma ME for subpel and mode decision in " \
    "P-frames.")

#define CHROMA_ME_TEXT   N_("Chroma in motion estimation")

#define CHROMA_QP_OFFSET_LONGTEXT   N_( "QP difference between chroma and luma.")

#define CHROMA_QP_OFFSET_TEXT   N_("QP difference between chroma and luma")

#define CPLXBLUR_LONGTEXT

Value:

N_( "This reduces the fluctuations in QP " \
    "before curve compression. Temporally blurs complexity.")

#define CPLXBLUR_TEXT   N_("Reduce fluctuations in QP")

#define CRF_LONGTEXT   N_( "1-pass Quality-based VBR. Range 0 to 51." )

#define CRF_TEXT   N_("Quality-based VBR")

#define DCT_DECIMATE_LONGTEXT

Value:

N_( "Coefficient thresholding on P-frames." \
    "Eliminate dct blocks containing only a small single coefficient.")

#define DCT_DECIMATE_TEXT   N_("Coefficient thresholding on P-frames")

#define DIRECT_PRED_LONGTEXT   N_( "Direct MV prediction mode.")

#define DIRECT_PRED_TEXT   N_("Direct MV prediction mode")

#define FAST_PSKIP_LONGTEXT   N_( "Early SKIP detection on P-frames.")

#define FAST_PSKIP_TEXT   N_("Early SKIP detection on P-frames")

#define FILTER_LONGTEXT

Value:

N_( "Loop filter AlphaC0 and Beta parameters. " \
    "Range -6 to 6 for both alpha and beta parameters. -6 means light " \
    "filter, 6 means strong.")

#define FILTER_TEXT   N_("Loop filter AlphaC0 and Beta parameters alpha:beta")

#define IPRATIO_LONGTEXT   N_( "QP factor between I and P. Range 1.0 to 2.0.")

#define IPRATIO_TEXT   N_("QP factor between I and P")

#define KEYINT_LONGTEXT

Value:

N_( "Sets maximum interval between IDR-frames." \
    "Larger values save bits, thus improving quality for a given bitrate at " \
    "the cost of seeking precision." )

#define KEYINT_TEXT   N_("Maximum GOP size")

#define LEVEL_LONGTEXT

Value:

N_( "Specify H.264 level (as defined by Annex A " \
    "of the standard). Levels are not enforced; it's up to the user to select " \
    "a level compatible with the rest of the encoding options. Range 1 to 5.1 " \
    "(10 to 51 is also allowed).")

#define LEVEL_TEXT   N_("H.264 level")

#define ME_LONGTEXT

Value:

N_( "Selects the motion estimation algorithm: "\
    " - dia: diamond search, radius 1 (fast)\n" \
    " - hex: hexagonal search, radius 2\n" \
    " - umh: uneven multi-hexagon search (better but slower)\n" \
    " - esa: exhaustive search (extremely slow, primarily for testing)\n" )

#define ME_TEXT   N_("Integer pixel motion estimation method")

#define MIN_KEYINT_LONGTEXT

Value:

N_( "Sets minimum interval between IDR-frames. " \
    "In H.264, I-frames do not necessarily bound a closed GOP because it is " \
    "allowable for a P-frame to be predicted from more frames than just the " \
    "one frame before it (also see reference frame option). Therefore, " \
    "I-frames are not necessarily seekable. IDR-frames restrict subsequent " \
    "P-frames from referring to any frame prior to the IDR-frame. \n" \
    "If scenecuts appear within this interval, they are still encoded as " \
    "I-frames, but do not start a new GOP." )

#define MIN_KEYINT_TEXT   N_("Minimum GOP size")

#define MIXED_REFS_LONGTEXT

Value:

N_( "Allows each 8x8 or 16x8 partition to " \
    "independently select a reference frame, as opposed to only one ref " \
    "per macroblock." )

#define MIXED_REFS_TEXT   N_("Decide references on a per partition basis")

#define NF_LONGTEXT   N_( "Deactivate the deblocking loop filter (decreases quality).")

#define NF_TEXT   N_("Skip loop filter")

#define NR_LONGTEXT

Value:

N_( "Dct-domain noise reduction. Adaptive pseudo-deadzone. " \
    "10 to 1000 seems to be a useful range." )

#define NR_TEXT   N_("Noise reduction")

#define PASS_LONGTEXT

Value:

N_( "Multipass ratecontrol:\n" \
    " - 1: First pass, creates stats file\n" \
    " - 2: Last pass, does not overwrite stats file\n" \
    " - 3: Nth pass, overwrites stats file\n" )

#define PASS_TEXT   N_("Multipass ratecontrol")

#define PBRATIO_LONGTEXT   N_( "QP factor between P and B. Range 1.0 to 2.0.")

#define PBRATIO_TEXT   N_("QP factor between P and B")

#define PSNR_LONGTEXT

Value:

N_( "Compute and print PSNR stats. This has no effect on " \
    "the actual encoding quality." )

#define PSNR_TEXT   N_("PSNR computation")

#define QBLUR_LONGTEXT

Value:

N_( "This reduces the fluctations in QP " \
    "after curve compression. Temporally blurs quants.")

#define QBLUR_TEXT   N_("Reduce fluctuations in QP")

#define QCOMP_LONGTEXT   N_( "QP curve compression. Range 0.0 (CBR) to 1.0 (QCP).")

#define QCOMP_TEXT   N_("QP curve compression")

#define QP_LONGTEXT

Value:

N_( "This selects the quantizer to use. " \
    "Lower values result in better fidelity, but higher bitrates. 26 is a " \
    "good default value. Range 0 (lossless) to 51." )

#define QP_TEXT   N_("Set QP")

#define QPMAX_LONGTEXT   N_( "Maximum quantizer parameter." )

#define QPMAX_TEXT   N_("Max QP")

#define QPMIN_LONGTEXT

Value:

N_( "Minimum quantizer parameter. 15 to 35 seems to " \
    "be a useful range." )

#define QPMIN_TEXT   N_("Min QP")

#define QPSTEP_LONGTEXT   N_( "Max QP step between frames.")

#define QPSTEP_TEXT   N_("Max QP step")

#define QUIET_LONGTEXT   N_( "Quiet mode.")

#define QUIET_TEXT   N_("Quiet mode")

#define RATETOL_LONGTEXT

Value:

N_( "Allowed variance in average " \
    "bitrate (in kbits/s).")

#define RATETOL_TEXT   N_("Average bitrate tolerance")

#define REF_LONGTEXT

Value:

N_( "Number of previous frames used as predictors. " \
    "This is effective in Anime, but seems to make little difference in " \
    "live-action source material. Some decoders are unable to deal with " \
    "large frameref values. Range 1 to 16." )

#define REF_TEXT   N_("Number of reference frames")

#define SCENE_LONGTEXT

Value:

N_( "Scene-cut detection. Controls how " \
    "aggressively to insert extra I-frames. With small values of " \
    "scenecut, the codec often has " \
    "to force an I-frame when it would exceed keyint. " \
    "Good values of scenecut may find a better location for the " \
    "I-frame. Large values use more I-frames " \
    "than necessary, thus wasting bits. -1 disables scene-cut detection, so " \
    "I-frames are inserted only every other keyint frames, which probably " \
    "leads to ugly encoding artifacts. Range 1 to 100." )

#define SCENE_TEXT   N_("Extra I-frames aggressivity" )

#define SOUT_CFG_PREFIX   "sout-x264-"

#define SSIM_LONGTEXT

Value:

N_( "Compute and print SSIM stats. This has no effect on " \
    "the actual encoding quality." )

#define SSIM_TEXT   N_("SSIM computation")

#define STATS_LONGTEXT   N_( "Filename for 2 pass stats file for multi-pass encoding.")

#define STATS_TEXT   N_("Filename for 2 pass stats file")

#define SUBME_LONGTEXT

Value:

N_( "This parameter controls quality versus speed " \
    "tradeoffs involved in the motion estimation decision process " \
    "(lower = quicker and higher = better quality). Range 1 to 5." )

#define SUBME_MAX   5

#define SUBME_TEXT

Value:

N_("Subpixel motion estimation and partition decision " \
    "quality")

#define TRANSFORM_8X8DCT_LONGTEXT

Value:

N_( \
    "SATD-based decision for 8x8 transform in inter-MBs.")

#define TRANSFORM_8X8DCT_TEXT   N_("Adaptive spatial transform size")

#define TRELLIS_LONGTEXT

Value:

N_( "Trellis RD quantization: \n" \
    " - 0: disabled\n" \
    " - 1: enabled only on the final encode of a MB\n" \
    " - 2: enabled on all mode decisions\n" \
    "This requires CABAC." )

#define TRELLIS_TEXT   N_("Trellis RD quantization" )

#define VBV_BUFSIZE_LONGTEXT

Value:

N_( "Averaging period for the maximum " \
    "local bitrate (in kbits).")

#define VBV_BUFSIZE_TEXT   N_("VBV buffer")

#define VBV_INIT_LONGTEXT

Value:

N_( "Sets the initial buffer occupancy as a " \
    "fraction of the buffer size. Range 0.0 to 1.0.")

#define VBV_INIT_TEXT   N_("Initial VBV buffer occupancy")

#define VBV_MAXRATE_LONGTEXT   N_( "Sets a maximum local bitrate (in kbits/s).")

#define VBV_MAXRATE_TEXT   N_("Max local bitrate")

#define VERBOSE_LONGTEXT   N_( "Print stats for each frame.")

#define VERBOSE_TEXT   N_("Statistics")

#define WEIGHTB_LONGTEXT   N_( "Weighted prediction for B-frames.")

#define WEIGHTB_TEXT   N_("Weighted prediction for B-frames")

#define X264_ANALYSE_BSUB16x16   0


Function Documentation

static void Close ( vlc_object_t  )  [static]

static block_t * Encode ( encoder_t ,
picture_t  
) [static]

static int Open ( vlc_object_t  )  [static]

int vlc_entry__main ( module_t p_module  ) 

const char* vlc_entry_license__main ( void   ) 


Variable Documentation

const char* const direct_pred_list[] [static]

Initial value:

  { "none", "spatial", "temporal" }

const char* const direct_pred_list_text[] [static]

Initial value:

  { N_("none"), N_("spatial"), N_("temporal") }

const char* const enc_analyse_list[] [static]

Initial value:

  { "none", "fast", "normal", "slow", "all" }

const char* const enc_analyse_list_text[] [static]

Initial value:

  { N_("none"), N_("fast"), N_("normal"), N_("slow"), N_("all") }

const char* const ppsz_sout_options[] [static]

Initial value:

 {
    "8x8dct", "analyse", "asm", "aud", "bframes", "bime", "bpyramid",
    "b-adapt", "b-bias", "b-rdo", "cabac", "chroma-me", "chroma-qp-offset",
    "cplxblur", "crf", "dct-decimate", "deadzone-inter", "deadzone-intra",
    "deblock", "direct", "direct-8x8", "filter", "fast-pskip", "frameref",
    "interlaced", "ipratio", "keyint", "keyint-min", "level", "loopfilter",
    "me", "merange", "min-keyint", "mixed-refs", "mvrange", "mvrange-thread",
    "nf", "non-deterministic", "nr", "partitions", "pass", "pbratio",
    "pre-scenecut", "psnr", "qblur", "qp", "qcomp", "qpstep", "qpmax",
    "qpmin", "qp-max", "qp-min", "quiet", "ratetol", "ref", "scenecut",
    "sps-id", "ssim", "stats", "subme", "subpel", "tolerance", "trellis",
    "verbose", "vbv-bufsize", "vbv-init", "vbv-maxrate", "weightb", "aq-mode",
    "aq-strength",NULL
}


Generated on Wed Aug 13 08:03:18 2008 for VLC by  doxygen 1.5.1