Commit 4cb0ebe5 authored by Stefan Holmer's avatar Stefan Holmer Committed by John Koleszar

Adding support for independent partitions

Adding support in the encoder for generating
independent residual partitions by forcing
equal probabilities over the prev coef entropy

Change-Id: I402f5c353255f3ca20eae2620af739f6a498cd21
parent be99868b
This diff is collapsed.
This diff is collapsed.
......@@ -148,7 +148,9 @@ void vp8_default_coef_probs(VP8_COMMON *pc)
unsigned int branch_ct [vp8_coef_tokens-1] [2];
vp8_coef_tokens, vp8_coef_encodings, vp8_coef_tree,
pc->fc.coef_probs [h][i][k], branch_ct, default_coef_counts [h][i][k],
256, 1);
......@@ -184,8 +184,11 @@ extern "C"
int token_partitions; // how many token partitions to create for multi core decoding
int encode_breakout; // early breakout encode threshold : for video conf recommend 800
int error_resilient_mode; // if running over udp networks provides decodable frames after a
// dropped packet
unsigned int error_resilient_mode; // Bitfield defining the error
// resiliency features to enable. Can provide
// decodable frames after losses in previous
// frames and decodable partitions after
// losses in the same frame.
int arnr_max_frames;
int arnr_strength ;
This diff is collapsed.
......@@ -4132,7 +4132,7 @@ static void encode_frame_to_data_rate
if (cpi->oxcf.error_resilient_mode == 1)
if (cpi->oxcf.error_resilient_mode)
cm->refresh_entropy_probs = 0;
......@@ -19,6 +19,7 @@ VP8_COMMON_SRCS-yes += common/blockd.c
VP8_COMMON_SRCS-yes += common/coefupdateprobs.h
VP8_COMMON_SRCS-yes += common/debugmodes.c
VP8_COMMON_SRCS-yes += common/defaultcoefcounts.h
VP8_COMMON_SRCS-yes += common/defaultcoefcounts.c
VP8_COMMON_SRCS-yes += common/entropy.c
VP8_COMMON_SRCS-yes += common/entropymode.c
VP8_COMMON_SRCS-yes += common/entropymv.c
......@@ -100,6 +100,23 @@ extern "C" {
#define VPX_FRAME_IS_INVISIBLE 0x4 /**< frame should be decoded but will not
be shown */
/*!\brief Error Resilient flags
* These flags define which error resilient features to enable in the
* encoder. The flags are specified through the
* vpx_codec_enc_cfg::g_error_resilient variable.
typedef uint32_t vpx_codec_er_flags_t;
#define VPX_ERROR_RESILIENT_DEFAULT 0x1 /**< Improve resiliency against
losses of whole frames */
#define VPX_ERROR_RESILIENT_PARTITIONS 0x2 /**< The frame partitions are
independently decodable by the
bool decoder, meaning that
partitions can be decoded even
though earlier partitions have
been lost. Note that intra
predicition is still done over
the partition boundary. */
/*!\brief Encoder output packet variants
......@@ -289,13 +306,13 @@ extern "C" {
struct vpx_rational g_timebase;
/*!\brief Enable error resilient mode.
/*!\brief Enable error resilient modes.
* Error resilient mode indicates to the encoder that it should take
* measures appropriate for streaming over lossy or noisy links, if
* possible. Set to 1 to enable this feature, 0 to disable it.
* The error resilient bitfield indicates to the encoder which features
* it should enable to take measures for streaming over lossy or noisy
* links.
unsigned int g_error_resilient;
vpx_codec_er_flags_t g_error_resilient;
/*!\brief Multi-pass Encoding Mode
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment