679e4abdd5
This is a mostly-working implementation of an extra channel in the bitstream. Configure with --enable-alpha to test. Notable TODOs: - Add extra channel to all mismatch tests, PSNR, SSIM, etc - Configurable subsampling - Variable number of planes (currently always uses all 4) - Loop filtering - Per-plane lossless quantizer - ARNR support This implementation just uses the same contents as the Y channel for the A channel, due to lack of content and general pain in playing back 4 channel content. A later patch will use the actual alpha channel passed in from outside the codec. Change-Id: Ibf81f023b1c570bd84b3064e9b4b8ae52e087592
29 lines
937 B
C
29 lines
937 B
C
/*
|
|
* Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license
|
|
* that can be found in the LICENSE file in the root of the source
|
|
* tree. An additional intellectual property rights grant can be found
|
|
* in the file PATENTS. All contributing project authors may
|
|
* be found in the AUTHORS file in the root of the source tree.
|
|
*/
|
|
|
|
|
|
#include "vp9/common/vp9_blockd.h"
|
|
|
|
void vp9_setup_block_dptrs(MACROBLOCKD *mb,
|
|
int subsampling_x, int subsampling_y) {
|
|
int i;
|
|
|
|
for (i = 0; i < MAX_MB_PLANE; i++) {
|
|
mb->plane[i].plane_type = i ? PLANE_TYPE_UV : PLANE_TYPE_Y_WITH_DC;
|
|
mb->plane[i].subsampling_x = i ? subsampling_x : 0;
|
|
mb->plane[i].subsampling_y = i ? subsampling_y : 0;
|
|
}
|
|
#if CONFIG_ALPHA
|
|
// TODO(jkoleszar): Using the Y w/h for now
|
|
mb->plane[3].subsampling_x = 0;
|
|
mb->plane[3].subsampling_y = 0;
|
|
#endif
|
|
}
|