﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
1206	Mismatch with reference decoder when decoding cbf_luma when using intra block copying	peterderivaz		"Suppose you are encoding a coding unit with CuPredMode=MODE_INTRA and intra_bc_flag=1, and that there is no chroma residual and the transform unit is not split.

If there was no luma residual, then rqt_root_cbf will be set to 0 and all is well.

However, if there is some luma residual to be coded then:

1. rqt_root_cbf will be set to 1
2. transform_tree will be coded
3. split_transform_flag set to 0
4. cbf_cb set to 0
5. cbf_cr set to 0

at this point the expression in 7.3.8.8 Transform Tree SYntax:

    ( CuPredMode[ x0 ][ y0 ]  = =  MODE_INTRA  | |  trafoDepth  !=  0  | |
				cbf_cb[ x0 ][ y0 ][ trafoDepth ]  | |  cbf_cr[ x0 ][ y0 ][ trafoDepth ]  | |  
				( ChromaArrayType  = =  2  &&  
					( cbf_cb[ x0 ][ y0 + ( 1 << ( log2TrafoSize − 1 ) ) ][ trafoDepth ]  | |  
					cbf_cr[ x0 ][ y0 + ( 1 << ( log2TrafoSize − 1 ) ) ][ trafoDepth ] ) ) )

is tested, and will evaluate to true so the specification says we should encode cbf_luma.

However, the reference code does not encode cbf_luma (line 501 of TDecEntropy.cpp).

I believe the reference code is right because we can deduce that cbf_luma must be 1 in this case, so it does not need to be coded."	defect	closed	major	RExt D5	RExt text	RExt D5 (O1005) v1	fixed		davidf joel teruhiko jct-vc@…
