summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_onyx_int.h
diff options
context:
space:
mode:
authorDeb Mukherjee <debargha@google.com>2013-07-31 09:33:58 -0700
committerDeb Mukherjee <debargha@google.com>2013-08-05 14:14:01 -0700
commit8b3faccb9e950c01daa3d9aa011970674e1ec0fc (patch)
treeea9d3dea6f2764dd927f06e36f341a9c9d9af431 /vp9/encoder/vp9_onyx_int.h
parent555bbd68c7afe0e6a261cec84b180f6451d0d13f (diff)
downloadlibvpx-8b3faccb9e950c01daa3d9aa011970674e1ec0fc.tar
libvpx-8b3faccb9e950c01daa3d9aa011970674e1ec0fc.tar.gz
libvpx-8b3faccb9e950c01daa3d9aa011970674e1ec0fc.tar.bz2
libvpx-8b3faccb9e950c01daa3d9aa011970674e1ec0fc.zip
Add variance based mode/skipping
Adds a speed feature to skip all intra modes other than DC_PRED if the source variance is small. This feature is made part of speed 1 and up. Results on derf300: psnr -0.07%, speedup about 1-2% Also uses the source variance to fine-tune the early termination criteria when FLAG_EARLY_TERMINATE is on. This feature is made part of speed 2 and up. Results on derf300: psnr -0.52%, speedup about 5-7% Change-Id: I59e38aa836557cfa5405ae706fc64815cbfe4232
Diffstat (limited to 'vp9/encoder/vp9_onyx_int.h')
-rw-r--r--vp9/encoder/vp9_onyx_int.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/vp9/encoder/vp9_onyx_int.h b/vp9/encoder/vp9_onyx_int.h
index f4d8db4e1..3091975ab 100644
--- a/vp9/encoder/vp9_onyx_int.h
+++ b/vp9/encoder/vp9_onyx_int.h
@@ -145,6 +145,8 @@ typedef struct {
// const MODE_DEFINITION vp9_mode_order[MAX_MODES] used in the rd code.
typedef enum {
THR_NEARESTMV,
+ THR_DC,
+
THR_NEARESTA,
THR_NEARESTG,
THR_NEWMV,
@@ -152,8 +154,6 @@ typedef enum {
THR_NEARMV,
THR_COMP_NEARESTGA,
- THR_DC,
-
THR_NEWG,
THR_NEWA,
THR_NEARA,
@@ -224,6 +224,10 @@ typedef enum {
// skips oblique intra modes at angles 27, 63, 117, 153 if the best
// intra so far is not one of the neighboring directions
FLAG_SKIP_INTRA_DIRMISMATCH = 16,
+
+ // skips intra modes other than DC_PRED if the source variance
+ // is small
+ FLAG_SKIP_INTRA_LOWVAR = 32,
} MODE_SEARCH_SKIP_LOGIC;
typedef struct {