summaryrefslogtreecommitdiff
path: root/vp9/common
diff options
context:
space:
mode:
authorYaowu Xu <yaowu@google.com>2013-02-13 10:26:58 -0800
committerGerrit Code Review <gerrit@gerrit.golo.chromium.org>2013-02-13 10:26:58 -0800
commitf01b08c96c108e1b73cd20db4319a5839101495c (patch)
tree1d14b6a4bfd827b28464b5f831bf18b4ab2ba1d2 /vp9/common
parentd3de97794f37d10cff1c20fa9d71aa0ea9158543 (diff)
parent17db5d00be2f005f11428edf0fd23265d04d100f (diff)
downloadlibvpx-f01b08c96c108e1b73cd20db4319a5839101495c.tar
libvpx-f01b08c96c108e1b73cd20db4319a5839101495c.tar.gz
libvpx-f01b08c96c108e1b73cd20db4319a5839101495c.tar.bz2
libvpx-f01b08c96c108e1b73cd20db4319a5839101495c.zip
Merge "enable bitstream lossless support" into experimental
Diffstat (limited to 'vp9/common')
-rw-r--r--vp9/common/vp9_blockd.h22
-rw-r--r--vp9/common/vp9_idctllm.c7
-rw-r--r--vp9/common/vp9_invtrans.c6
3 files changed, 18 insertions, 17 deletions
diff --git a/vp9/common/vp9_blockd.h b/vp9/common/vp9_blockd.h
index 82678d6b6..7b2be31c0 100644
--- a/vp9/common/vp9_blockd.h
+++ b/vp9/common/vp9_blockd.h
@@ -375,22 +375,22 @@ typedef struct macroblockd {
int lossless;
#endif
/* Inverse transform function pointers. */
- void (*inv_xform4x4_1_x8)(int16_t *input, int16_t *output, int pitch);
- void (*inv_xform4x4_x8)(int16_t *input, int16_t *output, int pitch);
- void (*inv_walsh4x4_1)(int16_t *in, int16_t *out);
- void (*inv_walsh4x4_lossless)(int16_t *in, int16_t *out);
- void (*idct_add)(int16_t *input, const int16_t *dq,
+ void (*inv_txm4x4_1)(int16_t *input, int16_t *output, int pitch);
+ void (*inv_txm4x4)(int16_t *input, int16_t *output, int pitch);
+ void (*inv_2ndtxm4x4_1)(int16_t *in, int16_t *out);
+ void (*inv_2ndtxm4x4)(int16_t *in, int16_t *out);
+ void (*itxm_add)(int16_t *input, const int16_t *dq,
uint8_t *pred, uint8_t *output, int pitch, int stride);
- void (*dc_idct_add)(int16_t *input, const int16_t *dq,
+ void (*dc_itxm_add)(int16_t *input, const int16_t *dq,
uint8_t *pred, uint8_t *output, int pitch, int stride, int dc);
- void (*dc_only_idct_add)(int input_dc, uint8_t *pred_ptr,
+ void (*dc_only_itxm_add)(int input_dc, uint8_t *pred_ptr,
uint8_t *dst_ptr, int pitch, int stride);
- void (*dc_idct_add_y_block)(int16_t *q, const int16_t *dq,
+ void (*dc_itxm_add_y_block)(int16_t *q, const int16_t *dq,
uint8_t *pre, uint8_t *dst, int stride, uint16_t *eobs,
const int16_t *dc);
- void (*idct_add_y_block)(int16_t *q, const int16_t *dq,
+ void (*itxm_add_y_block)(int16_t *q, const int16_t *dq,
uint8_t *pre, uint8_t *dst, int stride, uint16_t *eobs);
- void (*idct_add_uv_block)(int16_t *q, const int16_t *dq,
+ void (*itxm_add_uv_block)(int16_t *q, const int16_t *dq,
uint8_t *pre, uint8_t *dst_u, uint8_t *dst_v, int stride,
uint16_t *eobs);
@@ -505,7 +505,7 @@ static TX_TYPE get_tx_type_4x4(const MACROBLOCKD *xd, const BLOCKD *b) {
return tx_type;
#if CONFIG_LOSSLESS
if (xd->lossless)
- return tx_type;
+ return DCT_DCT;
#endif
// TODO(rbultje, debargha): Explore ADST usage for superblocks
if (xd->mode_info_context->mbmi.sb_type)
diff --git a/vp9/common/vp9_idctllm.c b/vp9/common/vp9_idctllm.c
index 548805726..2fec98e50 100644
--- a/vp9/common/vp9_idctllm.c
+++ b/vp9/common/vp9_idctllm.c
@@ -476,12 +476,13 @@ void vp9_short_inv_walsh4x4_1_x8_c(int16_t *in, int16_t *out, int pitch) {
}
}
-void vp9_dc_only_inv_walsh_add_c(short input_dc, uint8_t *pred_ptr,
+void vp9_dc_only_inv_walsh_add_c(int input_dc, uint8_t *pred_ptr,
uint8_t *dst_ptr,
int pitch, int stride) {
int r, c;
- short tmp[16];
- vp9_short_inv_walsh4x4_1_x8_c(&input_dc, tmp, 4 << 1);
+ int16_t dc = input_dc;
+ int16_t tmp[16];
+ vp9_short_inv_walsh4x4_1_x8_c(&dc, tmp, 4 << 1);
for (r = 0; r < 4; r++) {
for (c = 0; c < 4; c++) {
diff --git a/vp9/common/vp9_invtrans.c b/vp9/common/vp9_invtrans.c
index 233ffd8a7..cb9a3db63 100644
--- a/vp9/common/vp9_invtrans.c
+++ b/vp9/common/vp9_invtrans.c
@@ -32,9 +32,9 @@ static void recon_dcblock_8x8(MACROBLOCKD *xd) {
void vp9_inverse_transform_b_4x4(MACROBLOCKD *xd, int block, int pitch) {
BLOCKD *b = &xd->block[block];
if (b->eob <= 1)
- xd->inv_xform4x4_1_x8(b->dqcoeff, b->diff, pitch);
+ xd->inv_txm4x4_1(b->dqcoeff, b->diff, pitch);
else
- xd->inv_xform4x4_x8(b->dqcoeff, b->diff, pitch);
+ xd->inv_txm4x4(b->dqcoeff, b->diff, pitch);
}
void vp9_inverse_transform_mby_4x4(MACROBLOCKD *xd) {
@@ -44,7 +44,7 @@ void vp9_inverse_transform_mby_4x4(MACROBLOCKD *xd) {
if (has_2nd_order) {
/* do 2nd order transform on the dc block */
- xd->inv_walsh4x4_lossless(blockd[24].dqcoeff, blockd[24].diff);
+ xd->inv_2ndtxm4x4(blockd[24].dqcoeff, blockd[24].diff);
recon_dcblock(xd);
}