| Index: source/libvpx/vp9/common/vp9_blockd.h
 | 
| ===================================================================
 | 
| --- source/libvpx/vp9/common/vp9_blockd.h	(revision 263011)
 | 
| +++ source/libvpx/vp9/common/vp9_blockd.h	(working copy)
 | 
| @@ -120,23 +120,23 @@
 | 
|  
 | 
|  // This structure now relates to 8x8 block regions.
 | 
|  typedef struct {
 | 
| -  MB_PREDICTION_MODE mode, uv_mode;
 | 
| -  MV_REFERENCE_FRAME ref_frame[2];
 | 
| +  // Common for both INTER and INTRA blocks
 | 
| +  BLOCK_SIZE sb_type;
 | 
| +  MB_PREDICTION_MODE mode;
 | 
|    TX_SIZE tx_size;
 | 
| -  int_mv mv[2];                // for each reference frame used
 | 
| -  int_mv ref_mvs[MAX_REF_FRAMES][MAX_MV_REF_CANDIDATES];
 | 
| +  uint8_t skip;
 | 
| +  uint8_t segment_id;
 | 
| +  uint8_t seg_id_predicted;  // valid only when temporal_update is enabled
 | 
|  
 | 
| -  uint8_t mode_context[MAX_REF_FRAMES];
 | 
| +  // Only for INTRA blocks
 | 
| +  MB_PREDICTION_MODE uv_mode;
 | 
|  
 | 
| -  unsigned char skip;    // 0=need to decode coeffs, 1=no coefficients
 | 
| -  unsigned char segment_id;    // Segment id for this block.
 | 
| -
 | 
| -  // Flags used for prediction status of various bit-stream signals
 | 
| -  unsigned char seg_id_predicted;
 | 
| -
 | 
| +  // Only for INTER blocks
 | 
| +  MV_REFERENCE_FRAME ref_frame[2];
 | 
| +  int_mv mv[2];
 | 
| +  int_mv ref_mvs[MAX_REF_FRAMES][MAX_MV_REF_CANDIDATES];
 | 
| +  uint8_t mode_context[MAX_REF_FRAMES];
 | 
|    INTERP_FILTER interp_filter;
 | 
| -
 | 
| -  BLOCK_SIZE sb_type;
 | 
|  } MB_MODE_INFO;
 | 
|  
 | 
|  typedef struct {
 | 
| @@ -204,13 +204,10 @@
 | 
|  typedef struct macroblockd {
 | 
|    struct macroblockd_plane plane[MAX_MB_PLANE];
 | 
|  
 | 
| -  MODE_INFO *last_mi;
 | 
| -  int mode_info_stride;
 | 
| +  int mi_stride;
 | 
|  
 | 
|    // A NULL indicates that the 8x8 is not part of the image
 | 
| -  MODE_INFO **mi_8x8;
 | 
| -  MODE_INFO **prev_mi_8x8;
 | 
| -  MODE_INFO *mi_stream;
 | 
| +  MODE_INFO **mi;
 | 
|  
 | 
|    int up_available;
 | 
|    int left_available;
 | 
| @@ -234,11 +231,10 @@
 | 
|    /* Inverse transform function pointers. */
 | 
|    void (*itxm_add)(const int16_t *input, uint8_t *dest, int stride, int eob);
 | 
|  
 | 
| -  const InterpKernel *interp_kernel;
 | 
| -
 | 
|    int corrupted;
 | 
|  
 | 
| -  /* Y,U,V,(A) */
 | 
| +  DECLARE_ALIGNED(16, int16_t, dqcoeff[MAX_MB_PLANE][64 * 64]);
 | 
| +
 | 
|    ENTROPY_CONTEXT *above_context[MAX_MB_PLANE];
 | 
|    ENTROPY_CONTEXT left_context[MAX_MB_PLANE][16];
 | 
|  
 | 
| @@ -246,8 +242,6 @@
 | 
|    PARTITION_CONTEXT left_seg_context[8];
 | 
|  } MACROBLOCKD;
 | 
|  
 | 
| -
 | 
| -
 | 
|  static INLINE BLOCK_SIZE get_subsize(BLOCK_SIZE bsize,
 | 
|                                       PARTITION_TYPE partition) {
 | 
|    const BLOCK_SIZE subsize = subsize_lookup[partition][bsize];
 | 
| @@ -255,30 +249,27 @@
 | 
|    return subsize;
 | 
|  }
 | 
|  
 | 
| -extern const TX_TYPE mode2txfm_map[MB_MODE_COUNT];
 | 
| +extern const TX_TYPE intra_mode_to_tx_type_lookup[INTRA_MODES];
 | 
|  
 | 
| +static INLINE TX_TYPE get_tx_type(PLANE_TYPE plane_type,
 | 
| +                                  const MACROBLOCKD *xd) {
 | 
| +  const MB_MODE_INFO *const mbmi = &xd->mi[0]->mbmi;
 | 
| +
 | 
| +  if (plane_type != PLANE_TYPE_Y || is_inter_block(mbmi))
 | 
| +    return DCT_DCT;
 | 
| +  return intra_mode_to_tx_type_lookup[mbmi->mode];
 | 
| +}
 | 
| +
 | 
|  static INLINE TX_TYPE get_tx_type_4x4(PLANE_TYPE plane_type,
 | 
|                                        const MACROBLOCKD *xd, int ib) {
 | 
| -  const MODE_INFO *const mi = xd->mi_8x8[0];
 | 
| +  const MODE_INFO *const mi = xd->mi[0];
 | 
|  
 | 
|    if (plane_type != PLANE_TYPE_Y || xd->lossless || is_inter_block(&mi->mbmi))
 | 
|      return DCT_DCT;
 | 
|  
 | 
| -  return mode2txfm_map[get_y_mode(mi, ib)];
 | 
| +  return intra_mode_to_tx_type_lookup[get_y_mode(mi, ib)];
 | 
|  }
 | 
|  
 | 
| -static INLINE TX_TYPE get_tx_type_8x8(PLANE_TYPE plane_type,
 | 
| -                                      const MACROBLOCKD *xd) {
 | 
| -  return plane_type == PLANE_TYPE_Y ? mode2txfm_map[xd->mi_8x8[0]->mbmi.mode]
 | 
| -                                    : DCT_DCT;
 | 
| -}
 | 
| -
 | 
| -static INLINE TX_TYPE get_tx_type_16x16(PLANE_TYPE plane_type,
 | 
| -                                        const MACROBLOCKD *xd) {
 | 
| -  return plane_type == PLANE_TYPE_Y ? mode2txfm_map[xd->mi_8x8[0]->mbmi.mode]
 | 
| -                                    : DCT_DCT;
 | 
| -}
 | 
| -
 | 
|  void vp9_setup_block_planes(MACROBLOCKD *xd, int ss_x, int ss_y);
 | 
|  
 | 
|  static INLINE TX_SIZE get_uv_tx_size_impl(TX_SIZE y_tx_size, BLOCK_SIZE bsize) {
 | 
| 
 |