[x265] rdcost: weight chroma lambda for rdo [CHANGES OUTPUT]
Steve Borho
steve at borho.org
Fri Nov 14 18:54:04 CET 2014
On 11/14, Satoshi Nakagawa wrote:
> # HG changeset patch
> # User Satoshi Nakagawa <nakagawa424 at oki.com>
> # Date 1415930754 -32400
> # Fri Nov 14 11:05:54 2014 +0900
> # Node ID 269376f3e1d8e4942f504303909516aca9a0ba75
> # Parent 17f2fb0996db9b761f13953408d810608e24397b
> rdcost: weight chroma lambda for rdo [CHANGES OUTPUT]
>
> lambdas for rdoq, psy-rdo and psy-rdoq are weighted.
> why lambda for rdo is not weighted?
these lines were originally adapted directly from x264
we're doing some A|B testing to evaluate which way is better for HEVC.
BTW: There is work under way to add chroma residual cost to places
where RDO is not used. This should greatly improve chroma distortion.
> diff -r 17f2fb0996db -r 269376f3e1d8 source/encoder/rdcost.h
> --- a/source/encoder/rdcost.h Thu Nov 13 17:16:07 2014 -0600
> +++ b/source/encoder/rdcost.h Fri Nov 14 11:05:54 2014 +0900
> @@ -59,12 +59,12 @@
>
> int qpCb = Clip3(QP_MIN, QP_MAX_MAX, qp + slice.m_pps->chromaQpOffset[0]);
> int chroma_offset_idx = X265_MIN(qp - qpCb + 12, MAX_CHROMA_LAMBDA_OFFSET);
> - uint16_t lambdaOffset = m_psyRd ? x265_chroma_lambda2_offset_tab[chroma_offset_idx] : 256;
> + uint16_t lambdaOffset = x265_chroma_lambda2_offset_tab[chroma_offset_idx];
> setCbDistortionWeight(lambdaOffset);
>
> int qpCr = Clip3(QP_MIN, QP_MAX_MAX, qp + slice.m_pps->chromaQpOffset[1]);
> chroma_offset_idx = X265_MIN(qp - qpCr + 12, MAX_CHROMA_LAMBDA_OFFSET);
> - lambdaOffset = m_psyRd ? x265_chroma_lambda2_offset_tab[chroma_offset_idx] : 256;
> + lambdaOffset = x265_chroma_lambda2_offset_tab[chroma_offset_idx];
> setCrDistortionWeight(lambdaOffset);
> }
>
> _______________________________________________
> x265-devel mailing list
> x265-devel at videolan.org
> https://mailman.videolan.org/listinfo/x265-devel
--
Steve Borho
More information about the x265-devel
mailing list