summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_onyx_if.c
diff options
context:
space:
mode:
authorDmitry Kovalev <dkovalev@google.com>2013-04-29 16:07:17 -0700
committerDmitry Kovalev <dkovalev@google.com>2013-04-29 16:07:17 -0700
commitee97da2c0317275e12eae68437a5cf212323c4fb (patch)
treeacbae01c29d1624cfe5c77e4bf652d36610b4782 /vp9/encoder/vp9_onyx_if.c
parentbbac4094e4cb2cc782040733656bf2ee5738ee59 (diff)
downloadlibvpx-ee97da2c0317275e12eae68437a5cf212323c4fb.tar
libvpx-ee97da2c0317275e12eae68437a5cf212323c4fb.tar.gz
libvpx-ee97da2c0317275e12eae68437a5cf212323c4fb.tar.bz2
libvpx-ee97da2c0317275e12eae68437a5cf212323c4fb.zip
Cleaning up encoder segmentation code.
Moving code from vp9_pack_bitstream to new function encode_segmentation. Change-Id: I1f1e59a1f038618ad95162b7db4b6f8164850ea8
Diffstat (limited to 'vp9/encoder/vp9_onyx_if.c')
-rw-r--r--vp9/encoder/vp9_onyx_if.c36
1 files changed, 17 insertions, 19 deletions
diff --git a/vp9/encoder/vp9_onyx_if.c b/vp9/encoder/vp9_onyx_if.c
index 53d03aa95..865cd8a38 100644
--- a/vp9/encoder/vp9_onyx_if.c
+++ b/vp9/encoder/vp9_onyx_if.c
@@ -280,8 +280,7 @@ static void setup_features(VP9_COMP *cpi) {
MACROBLOCKD *xd = &cpi->mb.e_mbd;
// Set up default state for MB feature flags
-
- xd->segmentation_enabled = 0; // Default segmentation disabled
+ xd->segmentation_enabled = 0;
xd->update_mb_segmentation_map = 0;
xd->update_mb_segmentation_data = 0;
@@ -383,7 +382,7 @@ static void configure_static_seg_features(VP9_COMP *cpi) {
xd->update_mb_segmentation_map = 0;
xd->update_mb_segmentation_data = 0;
#if CONFIG_IMPLICIT_SEGMENTATION
- xd->allow_implicit_segment_update = 0;
+ xd->allow_implicit_segment_update = 0;
#endif
cpi->static_mb_pct = 0;
@@ -399,7 +398,7 @@ static void configure_static_seg_features(VP9_COMP *cpi) {
xd->update_mb_segmentation_map = 0;
xd->update_mb_segmentation_data = 0;
#if CONFIG_IMPLICIT_SEGMENTATION
- xd->allow_implicit_segment_update = 0;
+ xd->allow_implicit_segment_update = 0;
#endif
cpi->static_mb_pct = 0;
@@ -428,9 +427,9 @@ static void configure_static_seg_features(VP9_COMP *cpi) {
xd->mb_segment_abs_delta = SEGMENT_DELTADATA;
}
- }
- // All other frames if segmentation has been enabled
- else if (xd->segmentation_enabled) {
+ } else if (xd->segmentation_enabled) {
+ // All other frames if segmentation has been enabled
+
// First normal frame in a valid gf or alt ref group
if (cpi->common.frames_since_golden == 0) {
// Set up segment features for normal frames in an arf group
@@ -454,10 +453,10 @@ static void configure_static_seg_features(VP9_COMP *cpi) {
vp9_enable_segfeature(xd, 1, SEG_LVL_REF_FRAME);
vp9_enable_segfeature(xd, 1, SEG_LVL_SKIP);
}
- }
- // Disable segmentation and clear down features if alt ref
- // is not active for this group
- else {
+ } else {
+ // Disable segmentation and clear down features if alt ref
+ // is not active for this group
+
vp9_disable_segmentation((VP9_PTR)cpi);
vpx_memset(cpi->segmentation_map, 0, cm->mi_rows * cm->mi_cols);
@@ -467,12 +466,11 @@ static void configure_static_seg_features(VP9_COMP *cpi) {
vp9_clearall_segfeatures(xd);
}
- }
+ } else if (cpi->is_src_frame_alt_ref) {
+ // Special case where we are coding over the top of a previous
+ // alt ref frame.
+ // Segment coding disabled for compred testing
- // Special case where we are coding over the top of a previous
- // alt ref frame.
- // Segment coding disabled for compred testing
- else if (cpi->is_src_frame_alt_ref) {
// Enable ref frame features for segment 0 as well
vp9_enable_segfeature(xd, 0, SEG_LVL_REF_FRAME);
vp9_enable_segfeature(xd, 1, SEG_LVL_REF_FRAME);
@@ -490,9 +488,9 @@ static void configure_static_seg_features(VP9_COMP *cpi) {
}
// Enable data udpate
xd->update_mb_segmentation_data = 1;
- }
- // All other frames.
- else {
+ } else {
+ // All other frames.
+
// No updates.. leave things as they are.
xd->update_mb_segmentation_map = 0;
xd->update_mb_segmentation_data = 0;