From: Dmitry Kovalev Date: Tue, 7 May 2013 19:59:12 +0000 (-0700) Subject: Merge "Adding encode_loopfilter function." into experimental X-Git-Tag: v1.3.0~1106^2~45 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3cd889762364da9914a136cf8735b8524f3b341e;p=libvpx Merge "Adding encode_loopfilter function." into experimental --- 3cd889762364da9914a136cf8735b8524f3b341e diff --cc vp9/encoder/vp9_bitstream.c index acc3f78f2,73af5cacc..6624f07eb --- a/vp9/encoder/vp9_bitstream.c +++ b/vp9/encoder/vp9_bitstream.c @@@ -1772,58 -1926,11 +1828,8 @@@ void vp9_pack_bitstream(VP9_COMP *cpi, } #endif - // Write out loop filter deltas applied at the MB level based on mode or ref frame (if they are enabled). - vp9_write_bit(&header_bc, (xd->mode_ref_lf_delta_enabled) ? 1 : 0); - - if (xd->mode_ref_lf_delta_enabled) { - // Do the deltas need to be updated - vp9_write_bit(&header_bc, xd->mode_ref_lf_delta_update); - if (xd->mode_ref_lf_delta_update) { - // Send update - for (i = 0; i < MAX_REF_LF_DELTAS; i++) { - const int delta = xd->ref_lf_deltas[i]; - - // Frame level data - if (delta != xd->last_ref_lf_deltas[i]) { - xd->last_ref_lf_deltas[i] = delta; - vp9_write_bit(&header_bc, 1); - - if (delta > 0) { - vp9_write_literal(&header_bc, delta & 0x3F, 6); - vp9_write_bit(&header_bc, 0); // sign - } else { - assert(delta < 0); - vp9_write_literal(&header_bc, (-delta) & 0x3F, 6); - vp9_write_bit(&header_bc, 1); // sign - } - } else { - vp9_write_bit(&header_bc, 0); - } - } - - // Send update - for (i = 0; i < MAX_MODE_LF_DELTAS; i++) { - const int delta = xd->mode_lf_deltas[i]; - - if (delta != xd->last_mode_lf_deltas[i]) { - xd->last_mode_lf_deltas[i] = delta; - vp9_write_bit(&header_bc, 1); - - if (delta > 0) { - vp9_write_literal(&header_bc, delta & 0x3F, 6); - vp9_write_bit(&header_bc, 0); // sign - } else { - assert(delta < 0); - vp9_write_literal(&header_bc, (-delta) & 0x3F, 6); - vp9_write_bit(&header_bc, 1); // sign - } - } else { - vp9_write_bit(&header_bc, 0); - } - } - } - } + encode_loopfilter(xd, &header_bc); - // TODO(jkoleszar): remove these unused bits - vp9_write_literal(&header_bc, 0, 2); - // Frame Q baseline quantizer index vp9_write_literal(&header_bc, pc->base_qindex, QINDEX_BITS);