summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_encodeintra.c
diff options
context:
space:
mode:
authorYaowu Xu <yaowu@google.com>2013-02-11 21:14:46 -0800
committerYaowu Xu <yaowu@google.com>2013-02-13 09:24:39 -0800
commit17db5d00be2f005f11428edf0fd23265d04d100f (patch)
treef6f0890b6c3351dcfcb030fdd86491dfc16a9489 /vp9/encoder/vp9_encodeintra.c
parent16f25f9dc83a37f2a16c7652445b6a6ecf8034af (diff)
downloadlibvpx-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/encoder/vp9_encodeintra.c')
-rw-r--r--vp9/encoder/vp9_encodeintra.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/vp9/encoder/vp9_encodeintra.c b/vp9/encoder/vp9_encodeintra.c
index fa7229714..62afb7114 100644
--- a/vp9/encoder/vp9_encodeintra.c
+++ b/vp9/encoder/vp9_encodeintra.c
@@ -58,7 +58,7 @@ void vp9_encode_intra4x4block(MACROBLOCK *x, int ib) {
vp9_ht_quantize_b_4x4(be, b, tx_type);
vp9_ihtllm(b->dqcoeff, b->diff, 32, tx_type, 4, b->eob);
} else {
- x->vp9_short_fdct4x4(be->src_diff, be->coeff, 32);
+ x->fwd_txm4x4(be->src_diff, be->coeff, 32);
x->quantize_b_4x4(be, b) ;
vp9_inverse_transform_b_4x4(&x->e_mbd, ib, 32);
}
@@ -161,7 +161,7 @@ void vp9_encode_intra8x8(MACROBLOCK *x, int ib) {
tx_type, 8, xd->block[idx].eob);
#endif
} else {
- x->vp9_short_fdct8x8(be->src_diff, (x->block + idx)->coeff, 32);
+ x->fwd_txm8x8(be->src_diff, (x->block + idx)->coeff, 32);
x->quantize_b_8x8(x->block + idx, xd->block + idx);
vp9_short_idct8x8(xd->block[idx].dqcoeff, xd->block[ib].diff, 32);
}
@@ -175,13 +175,13 @@ void vp9_encode_intra8x8(MACROBLOCK *x, int ib) {
vp9_ht_quantize_b_4x4(be, b, tx_type);
vp9_ihtllm(b->dqcoeff, b->diff, 32, tx_type, 4, b->eob);
} else if (!(i & 1) && get_tx_type_4x4(xd, b + 1) == DCT_DCT) {
- x->vp9_short_fdct8x4(be->src_diff, be->coeff, 32);
+ x->fwd_txm8x4(be->src_diff, be->coeff, 32);
x->quantize_b_4x4_pair(be, be + 1, b, b + 1);
vp9_inverse_transform_b_4x4(xd, ib + iblock[i], 32);
vp9_inverse_transform_b_4x4(xd, ib + iblock[i] + 1, 32);
i++;
} else {
- x->vp9_short_fdct4x4(be->src_diff, be->coeff, 32);
+ x->fwd_txm4x4(be->src_diff, be->coeff, 32);
x->quantize_b_4x4(be, b);
vp9_inverse_transform_b_4x4(xd, ib + iblock[i], 32);
}
@@ -214,7 +214,7 @@ static void encode_intra_uv4x4(MACROBLOCK *x, int ib,
vp9_subtract_b(be, b, 8);
- x->vp9_short_fdct4x4(be->src_diff, be->coeff, 16);
+ x->fwd_txm4x4(be->src_diff, be->coeff, 16);
x->quantize_b_4x4(be, b);
vp9_inverse_transform_b_4x4(&x->e_mbd, ib, 16);