Clean up set_mb_wiener_variance()

Use union to replace redundant memory allocation.

Change-Id: I9aa0f9f8bbf72d0e080cc95db9ce4bde0af65369
diff --git a/av1/encoder/encoder.c b/av1/encoder/encoder.c
index 01c15e6..de237b3 100644
--- a/av1/encoder/encoder.c
+++ b/av1/encoder/encoder.c
@@ -3201,13 +3201,13 @@
   MB_MODE_INFO *mbmi_ptr = &mbmi;
   xd->mi = &mbmi_ptr;
 
+  union {
 #if CONFIG_AV1_HIGHBITDEPTH
-  DECLARE_ALIGNED(32, uint16_t, zero_pred16[32 * 32]);
-  DECLARE_ALIGNED(32, uint8_t, zero_pred8[32 * 32]);
-  uint8_t *zero_pred;
-#else
-  DECLARE_ALIGNED(32, uint8_t, zero_pred[32 * 32]);
+    DECLARE_ALIGNED(32, uint16_t, zero_pred16[32 * 32]);
 #endif
+    DECLARE_ALIGNED(32, uint8_t, zero_pred8[32 * 32]);
+  } pred_buffer_mem;
+  uint8_t *pred_buf;
 
   DECLARE_ALIGNED(32, int16_t, src_diff[32 * 32]);
   DECLARE_ALIGNED(32, tran_low_t, coeff[32 * 32]);
@@ -3220,14 +3220,18 @@
 #if CONFIG_AV1_HIGHBITDEPTH
   xd->cur_buf = cpi->source;
   if (xd->cur_buf->flags & YV12_FLAG_HIGHBITDEPTH) {
-    zero_pred = CONVERT_TO_BYTEPTR(zero_pred16);
-    memset(zero_pred16, 0, sizeof(*zero_pred16) * coeff_count);
+    pred_buf = CONVERT_TO_BYTEPTR(pred_buffer_mem.zero_pred16);
+    memset(pred_buffer_mem.zero_pred16, 0,
+           sizeof(*pred_buffer_mem.zero_pred16) * coeff_count);
   } else {
-    zero_pred = zero_pred8;
-    memset(zero_pred8, 0, sizeof(*zero_pred8) * coeff_count);
+    pred_buf = pred_buffer_mem.zero_pred8;
+    memset(pred_buffer_mem.zero_pred8, 0,
+           sizeof(*pred_buffer_mem.zero_pred8) * coeff_count);
   }
 #else
-  memset(zero_pred, 0, sizeof(*zero_pred) * coeff_count);
+  pred_buf = pred_buffer_mem.zero_pred8;
+  memset(pred_buffer_mem.zero_pred8, 0,
+         sizeof(*pred_buffer_mem.zero_pred8) * coeff_count);
 #endif
 
   const BitDepthInfo bd_info = get_bit_depth_info(xd);
@@ -3255,10 +3259,10 @@
                                 cm->seq_params->enable_intra_edge_filter,
                                 block_size, block_size, tx_size, mode, 0, 0,
                                 FILTER_INTRA_MODES, dst_buffer, buf_stride,
-                                zero_pred, block_size, 0, 0, 0);
+                                pred_buf, block_size, 0, 0, 0);
 
         av1_subtract_block(bd_info, block_size, block_size, src_diff,
-                           block_size, dst_buffer, buf_stride, zero_pred,
+                           block_size, dst_buffer, buf_stride, pred_buf,
                            block_size);
         av1_quick_txfm(0, tx_size, bd_info, src_diff, block_size, coeff);
         int intra_cost = aom_satd(coeff, coeff_count);
@@ -3276,9 +3280,9 @@
       av1_predict_intra_block(
           xd, cm->seq_params->sb_size, cm->seq_params->enable_intra_edge_filter,
           block_size, block_size, tx_size, best_mode, 0, 0, FILTER_INTRA_MODES,
-          dst_buffer, buf_stride, zero_pred, block_size, 0, 0, 0);
+          dst_buffer, buf_stride, pred_buf, block_size, 0, 0, 0);
       av1_subtract_block(bd_info, block_size, block_size, src_diff, block_size,
-                         mb_buffer, buf_stride, zero_pred, block_size);
+                         mb_buffer, buf_stride, pred_buf, block_size);
       av1_quick_txfm(0, tx_size, bd_info, src_diff, block_size, coeff);
       coeff[0] = 0;
       for (idx = 1; idx < coeff_count; ++idx) coeff[idx] = abs(coeff[idx]);