diff options
author | Yaowu Xu <yaowu@google.com> | 2013-02-13 10:26:58 -0800 |
---|---|---|
committer | Gerrit Code Review <gerrit@gerrit.golo.chromium.org> | 2013-02-13 10:26:58 -0800 |
commit | f01b08c96c108e1b73cd20db4319a5839101495c (patch) | |
tree | 1d14b6a4bfd827b28464b5f831bf18b4ab2ba1d2 /vp9/common | |
parent | d3de97794f37d10cff1c20fa9d71aa0ea9158543 (diff) | |
parent | 17db5d00be2f005f11428edf0fd23265d04d100f (diff) | |
download | libvpx-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.h | 22 | ||||
-rw-r--r-- | vp9/common/vp9_idctllm.c | 7 | ||||
-rw-r--r-- | vp9/common/vp9_invtrans.c | 6 |
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); } |