summaryrefslogtreecommitdiff
path: root/vp9/common/vp9_onyxc_int.h
diff options
context:
space:
mode:
authorAdrian Grange <agrange@google.com>2013-04-02 15:08:50 -0700
committerAdrian Grange <agrange@google.com>2013-04-15 09:11:39 -0700
commitc2876cf0fde6baf9cbdf3c7570adedfd1065f3db (patch)
treea0df2a9bdc46364d174b029d1d0584657c78aeec /vp9/common/vp9_onyxc_int.h
parent626d06502f9df90bc796e4e107600242a5bca6c5 (diff)
downloadlibvpx-c2876cf0fde6baf9cbdf3c7570adedfd1065f3db.tar
libvpx-c2876cf0fde6baf9cbdf3c7570adedfd1065f3db.tar.gz
libvpx-c2876cf0fde6baf9cbdf3c7570adedfd1065f3db.tar.bz2
libvpx-c2876cf0fde6baf9cbdf3c7570adedfd1065f3db.zip
Initial addition of multiple ARF frames
This is work-in-progress, it implements multiple ARF encoding behind an experimental flag. It adds the ability to insert multiple ARF frames into a single ARF group. This patch implements the reordering of the coded frames, and implements a fixed-length coding pattern. It applies a fixed quantizer strategy based on where the frame is in the coding sequence. Further work to modify the rate control strategy is ongoing and will be submitted via a set of future patches. In this first step, each ARF group is recursively bisected and an ARF frame added at that position in the sequence. The recursion continues until ARF frames are within MIN_GF_INTERVAL frames. The code sits behind the "multiple-arf" experimental flag ("CONFIG_MULTIPLE_ARF"). The experimental flag "oneshotq" ("CONFIG_ONESHOTQ") also needs to be enabled for this patch to work correctly. Change-Id: Ie473b05ebb43ac473c0cfb659b2b8042823085e2
Diffstat (limited to 'vp9/common/vp9_onyxc_int.h')
-rw-r--r--vp9/common/vp9_onyxc_int.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/vp9/common/vp9_onyxc_int.h b/vp9/common/vp9_onyxc_int.h
index 6f928f5e0..c7ca67efe 100644
--- a/vp9/common/vp9_onyxc_int.h
+++ b/vp9/common/vp9_onyxc_int.h
@@ -18,6 +18,7 @@
#include "vp9/common/vp9_entropymv.h"
#include "vp9/common/vp9_entropy.h"
#include "vp9/common/vp9_entropymode.h"
+
#if CONFIG_POSTPROC
#include "vp9/common/vp9_postproc.h"
#endif
@@ -37,8 +38,13 @@ void vp9_initialize_common(void);
#define QINDEX_RANGE (MAXQ + 1)
+#if CONFIG_MULTIPLE_ARF
+#define NUM_REF_FRAMES 8
+#define NUM_REF_FRAMES_LG2 3
+#else
#define NUM_REF_FRAMES 3
#define NUM_REF_FRAMES_LG2 2
+#endif
#define ALLOWED_REFS_PER_FRAME 3
@@ -52,6 +58,8 @@ void vp9_initialize_common(void);
#define COMP_PRED_CONTEXTS 2
+#define MAX_LAG_BUFFERS 25
+
typedef struct frame_contexts {
vp9_prob bmode_prob[VP9_NKF_BINTRAMODES - 1];
vp9_prob ymode_prob[VP9_YMODES - 1]; /* interframe intra mode probs */