Hi,
On Wed, Jul 6, 2011 at 2:20 PM, Jason Garrett-Glaser <[email protected]> wrote:
> Eliminate redundant check in filter_mb_fast, consider bit depth in
> calculating qp_thresh.
> ---
> libavcodec/h264.c | 4 +++-
> libavcodec/h264_loopfilter.c | 6 +-----
> 2 files changed, 4 insertions(+), 6 deletions(-)
> - h->qp_thresh= 15 + 52 - FFMIN(h->slice_alpha_c0_offset,
> h->slice_beta_offset) - FFMAX3(0, h->pps.chroma_qp_index_offset[0],
> h->pps.chroma_qp_index_offset[1]);
> + h->qp_thresh = 15 + 52 - FFMIN(h->slice_alpha_c0_offset,
> h->slice_beta_offset)
> + - FFMAX3(0, h->pps.chroma_qp_index_offset[0],
> h->pps.chroma_qp_index_offset[1])
> + + 6 * (h->sps.bit_depth_luma - 8);
This part should be OK.
> @@ -241,10 +241,6 @@ void ff_h264_filter_mb_fast( H264Context *h, int mb_x,
> int mb_y, uint8_t *img_y,
> qp1 = (qp + qp1 + 1) >> 1;
> qpc0 = (qpc + qpc0 + 1) >> 1;
> qpc1 = (qpc + qpc1 + 1) >> 1;
> - qp_thresh = 15+52 - h->slice_alpha_c0_offset;
> - if(qp <= qp_thresh && qp0 <= qp_thresh && qp1 <= qp_thresh &&
> - qpc <= qp_thresh && qpc0 <= qp_thresh && qpc1 <= qp_thresh)
> - return;
>
> if( IS_INTRA(mb_type) ) {
> static const int16_t bS4[4] = {4,4,4,4};
I wonder about this part. If you're right, this should never trigger.
Right? As a random test, can you test that this code never triggers
when running the h264 conformance suite? If indeed it doesn't, it's
fine with me.
(I'm asking because I was always under the impression that this was a
more fine-grained than the check in your first hunk.)
Ronald
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel