]> granicus.if.org Git - libvpx/commitdiff
Merge "Move src_diff to per-plane MACROBLOCK data" into experimental
authorJohn Koleszar <jkoleszar@google.com>
Tue, 23 Apr 2013 23:24:08 +0000 (16:24 -0700)
committerGerrit Code Review <gerrit@gerrit.golo.chromium.org>
Tue, 23 Apr 2013 23:24:08 +0000 (16:24 -0700)
1  2 
vp9/common/vp9_blockd.h
vp9/common/vp9_rtcd_defs.sh
vp9/decoder/vp9_decodframe.c
vp9/encoder/vp9_block.h
vp9/encoder/vp9_encodeframe.c
vp9/encoder/vp9_encodemb.c
vp9/encoder/vp9_rdopt.c

Simple merge
Simple merge
Simple merge
index 1aa84338f3ebdb052d80af7f8b59a8cd5171f92b,a054269aac85a80cf00b6aa8c859b29669206dc0..709c29eded076e4ef2ea884c3c707d821157ed33
@@@ -81,17 -80,15 +80,21 @@@ typedef struct 
    int comp_pred_diff;
    int single_pred_diff;
    int64_t txfm_rd_diff[NB_TXFM_MODES];
 +
 +  // Bit flag for each mode whether it has high error in comparison to others.
 +  unsigned int modes_with_high_error;
 +
 +  // Bit flag for each ref frame whether it has high error compared to others.
 +  unsigned int frames_with_high_error;
  } PICK_MODE_CONTEXT;
  
+ struct macroblock_plane {
+   DECLARE_ALIGNED(16, int16_t, src_diff[64*64]);
+ };
  typedef struct macroblock MACROBLOCK;
  struct macroblock {
-   DECLARE_ALIGNED(16, int16_t, src_diff[64*64+32*32*2]);
+   struct macroblock_plane plane[MAX_MB_PLANE];
    DECLARE_ALIGNED(16, int16_t, coeff[64*64+32*32*2]);
    // 16 Y blocks, 4 U blocks, 4 V blocks,
    BLOCK block[24];
Simple merge
Simple merge
index cbbdc675028b67e82d783417eb162e7d33a7a2a9,5517b157402d54003f42fe013c1546ab3570c9ea..69d2ac7bafcb3299d5fffa4c5abdc7dea20eeac1
@@@ -1803,10 -1835,13 +1816,12 @@@ static int64_t encode_inter_mb_segment_
              *base_pre + bd->pre, bd->pre_stride,
              *(bd->base_dst) + bd->dst, bd->dst_stride,
              &bd->bmi.as_mv[which_mv], &xd->scale_factor[which_mv], 8, 8,
 -            which_mv << (2 * CONFIG_IMPLICIT_COMPOUNDINTER_WEIGHT),
 -            &xd->subpix);
 +            which_mv, &xd->subpix);
        }
  
-       vp9_subtract_4b_c(be, bd, 16);
+       vp9_subtract_block(8, 8, src_diff, 16,
+                          *(be->base_src) + be->src, be->src_stride,
+                          *(bd->base_dst) + bd->dst, bd->dst_stride);
  
        if (xd->mode_info_context->mbmi.txfm_size == TX_4X4) {
          if (otherrd) {