diff options
author | Yaowu Xu <yaowu@google.com> | 2013-02-11 21:14:46 -0800 |
---|---|---|
committer | Yaowu Xu <yaowu@google.com> | 2013-02-13 09:24:39 -0800 |
commit | 17db5d00be2f005f11428edf0fd23265d04d100f (patch) | |
tree | f6f0890b6c3351dcfcb030fdd86491dfc16a9489 /vp9/decoder/vp9_idct_blk.c | |
parent | 16f25f9dc83a37f2a16c7652445b6a6ecf8034af (diff) | |
download | libvpx-17db5d00be2f005f11428edf0fd23265d04d100f.tar libvpx-17db5d00be2f005f11428edf0fd23265d04d100f.tar.gz libvpx-17db5d00be2f005f11428edf0fd23265d04d100f.tar.bz2 libvpx-17db5d00be2f005f11428edf0fd23265d04d100f.zip |
enable bitstream lossless support
1. Added a bit in frame header to to indicate if a frame is encoded
in lossless mode, so decoder does not make the decision based on Q0
2. Minor changes to make sure that lossy coding works same as when
the lossless experiment is not enabled.
3. Renamed function pointers for transforms to be consistent, using
prefix fwd_txm and inv_txm for forward and inverse respectively
To encode in lossless mode, using "--lossless=1 --min-q=0 --max-q=0"
with vpxenc.
Change-Id: Ifae53b26d2ffbe378d707e29d96817b8a5e6c068
Diffstat (limited to 'vp9/decoder/vp9_idct_blk.c')
-rw-r--r-- | vp9/decoder/vp9_idct_blk.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/vp9/decoder/vp9_idct_blk.c b/vp9/decoder/vp9_idct_blk.c index ad93b49b1..c3f146480 100644 --- a/vp9/decoder/vp9_idct_blk.c +++ b/vp9/decoder/vp9_idct_blk.c @@ -51,9 +51,9 @@ void vp9_dequant_dc_idct_add_y_block_4x4_inplace_c(int16_t *q, for (i = 0; i < 4; i++) { for (j = 0; j < 4; j++) { if (*eobs++ > 1) - xd->dc_idct_add(q, dq, dst, dst, stride, stride, dc[0]); + xd->dc_itxm_add(q, dq, dst, dst, stride, stride, dc[0]); else - xd->dc_only_idct_add(dc[0], dst, dst, stride, stride); + xd->dc_only_itxm_add(dc[0], dst, dst, stride, stride); q += 16; dst += 4; @@ -143,9 +143,9 @@ void vp9_dequant_idct_add_uv_block_4x4_inplace_c(int16_t *q, const int16_t *dq, for (i = 0; i < 2; i++) { for (j = 0; j < 2; j++) { if (*eobs++ > 1) { - xd->idct_add(q, dq, dstu, dstu, stride, stride); + xd->itxm_add(q, dq, dstu, dstu, stride, stride); } else { - xd->dc_only_idct_add(q[0]*dq[0], dstu, dstu, stride, stride); + xd->dc_only_itxm_add(q[0]*dq[0], dstu, dstu, stride, stride); ((int *)q)[0] = 0; } @@ -159,9 +159,9 @@ void vp9_dequant_idct_add_uv_block_4x4_inplace_c(int16_t *q, const int16_t *dq, for (i = 0; i < 2; i++) { for (j = 0; j < 2; j++) { if (*eobs++ > 1) { - xd->idct_add(q, dq, dstv, dstv, stride, stride); + xd->itxm_add(q, dq, dstv, dstv, stride, stride); } else { - xd->dc_only_idct_add(q[0]*dq[0], dstv, dstv, stride, stride); + xd->dc_only_itxm_add(q[0]*dq[0], dstv, dstv, stride, stride); ((int *)q)[0] = 0; } |