﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
1217	HM lossless coding search tidy	karlsharman		"HM has three command line parameters that control lossless coding, namely:
  LosslessCuEnabled
  TransquantBypassEnableFlag
  CUTransquantBypassFlagValue

There is some confusion over how these are used, probably because LosslessCuEnabled appears to have once been an SPS setting, equivalent to ""qpprime_y_zero_transquant_bypass_flag"". (There is even a place in TEncSearch where the value of QP' is checked to see if it is 0)

The flag was removed from the SPS, replaced with the transquant-bypass-enable flag in the PPS (and a per CU flag).

In HM, LosslessCuEnabled causes the search algorithm to consider checking transquant-bypass coding. However, unless TransquantBypassEnableFlag is also set, no per-CU transquant flag is sent. In addition the value of the transquant bypass CU flag is fixed at the value of CUTransquantBypassFlagValue, and is therefore if this is 0, you do not have transquant bypass coding in the search.

In RExt, there are just two settings, namely
  TransquantBypassEnableFlag
  CUTransquantBypassFlagForce
where TransquantBypassEnableFlag enables the tool in the PPS and in the search, including use when maxDeltaQP is non zero.
If CUTransquantBypassFlagForce is 1, the transquant-bypass flag is forced to 1 for all CUs, otherwise the best mode is selected by encoder search.
When testing transquant-bypass modes, the value of QP used is set to the lowest QP value being tested, not QP'=0, as this reduces delta QP values.

The supplied match can be applied to HM12.1 as tagged to make HM use the same lossless coding search algorithm as HM12.1_RExt5.1 (with RExt__BACKWARDS_COMPATIBILITY_HM_TRANSQUANTBYPASS set to 0).
"	defect	closed	minor	HM-13.0	HM	HM-12.1	fixed		fbossen ksuehring davidf jct-vc@…
