Calculation for multiple coding tools
AssigneesBeijing Bytedance Network Technology Co., Ltd., Bytedance Inc.
InventorsKai Zhang, Li Zhang, Hongbin Liu, Zhipin Deng, Jizheng Xu, Yue Wang
Life of this patent
Estimating the term…
Abstract
A method of video processing includes making a determination, fora conversion between a current video block of a video and a coded representation of the video, of an affine merge candidate selectively according to a rule; and performing the conversion according to the determination. The rule specifies how the affine merge candidate is calculated without use of a log 2(X) operation where X is equal to or less than zero. The affine merge candidate is a motion candidate derived from neighboring affine coded video blocks.
Claims20
A method of processing video data, comprising:
- determining, for a conversion between a first video block of a video that is a chroma block and a bitstream of the video, a cross-component linear model (CCLM) is applied on the first video block, wherein the cross-component linear model comprises predicting chroma samples based on reconstructed neighboring luma samples according to a linear model;
- deriving parameters of the cross-component linear model, and
- performing the conversion based on the derived parameters;
- wherein a Log 2(X) operation is avoided for derivation of the parameters in case that X is equal to or less than zero,
- wherein X represents an absolute value of a difference between two chroma values related to the first video block, and for the derivation of the parameters, 0 is used instead of the Log 2(X) operation,
- wherein a variable y and a variable a that are used for determining a slope parameter of the cross-component linear model are evaluated as:
- y
- =
- Abs
-
- (
- diffC
- )
- >
- 0
- ?
- Floor
-
- (
- Log
-
- 2
-
- (
- Abs
-
- (
- diffC
- )
- )
- )
- +
- 1
- :
- 0
- ;
- a=(diffC*(divSigTable[normDiff]|8)+2y-1)>>y;
- where diffC represents a difference between two chroma values related to the first video block, Floor is a floor function, Abs is an absolute value function, divSigTable[ ] is specified as divSigTable[ ]={0, 7, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 1, 1, 0}, normDiff=((diff<<4)>>x) & 15, and diff represents a difference between two luma values related to the first video block, and
- wherein X is equal to Abs (diffC),
- the method further comprising:
- determining motion vectors of control points for a third video block based on an affine mode,
- wherein in the affine mode, Log 2(cbWidth)−Log 2(cbHeight) or Log 2(cbHeight)−Log 2(cbWidth) is calculated in a derivation process for a second control point motion vector, where cbHeight is a height of the third video block and cbWidth is a width of the third video block,
- wherein the second control point motion vector of the affine mode is derived as:
- cpMvLXCorner[1][0]=(cpMvLXCorner[0][0]<<7)+((cpMvLXCorner[2][1]−cpMvLXCorner[0][1])<<(7+Log 2(cbWidth)−Log 2(cbHeight)))
- wherein cpMvLXCorner[1][0] indicates a horizontal direction value of the second control point motion vector, cpMvLXCorner[0][0] indicates a horizontal direction value of a first control point motion vector, cpMvLXCorner[0][1] indicates a vertical direction value of the first control point motion vector, cpMvLXCorner[2][1] indicates a vertical direction value of a third control point motion vector.
An apparatus for processing video data comprising a processor and a non-transitory memory with instructions thereon, wherein the instructions upon execution by the processor, cause the processor to:
- determine, for a conversion between a first video block of a video that is a chroma block and a bitstream of the video, a cross-component linear model (CCLM) is applied on the first video block, wherein the cross-component linear model comprises predicting chroma samples based on reconstructed neighboring luma samples according to a linear model;
- derive parameters of the cross-component linear model, and
- perform the conversion based on the derived parameters;
- wherein a Log 2(X) operation is avoided for derivation of the parameters in case that X is equal to or less than zero,
- wherein X represents an absolute value of a difference between two chroma values related to the first video block, and for the derivation of the parameters, 0 is used instead of the Log 2(X) operation,
- wherein a variable y and a variable a that are used for determining a slope parameter of the cross-component linear model are evaluated as:
- y=Abs(diffC)>0? Floor(Log 2(Abs(diffC)))+1:0;
- a=(diffC*(divSigTable[normDiff]|8)+2y-1)>>y;
- where diffC represents a difference between two chroma values related to the first video block, Floor is a floor function, Abs is an absolute value function, divSigTable[ ] is specified as divSigTable[ ]={0, 7, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 1, 1, 0}, normDiff=((diff<<4)>>x) & 15, and diff represents a difference between two luma values related to the first video block, and
- wherein X is equal to Abs (diffC),
- wherein the instructions upon execution by the processor, further cause the processor to:
- determine motion vectors of control points for a third video block based on an affine mode,
- wherein in the affine mode, Log 2(cbWidth)−Log 2(cbHeight) or Log 2(cbHeight)−Log 2(cbWidth) is calculated in a derivation process for a second control point motion vector, where cbHeight is a height of the third video block and cbWidth is a width of the third video block,
- wherein the second control point motion vector of the affine mode is derived as:
- cpMvLXCorner[1][0]=(cpMvLXCorner[0][0]<<7)+((cpMvLXCorner[2][1]−cpMvLXCorner[0][1])<<(7+Log 2(cbWidth)−Log 2(cbHeight)))
- wherein cpMvLXCorner[1][0] indicates a horizontal direction value of the second control point motion vector, cpMvLXCorner[0][0] indicates a horizontal direction value of a first control point motion vector, cpMvLXCorner[0][1] indicates a vertical direction value of the first control point motion vector, cpMvLXCorner[2][1] indicates a vertical direction value of a third control point motion vector.
A non-transitory computer-readable storage medium storing instructions that cause a processor to:
- determine, for a conversion between a first video block of a video that is a chroma block and a bitstream of the video, a cross-component linear model (CCLM) is applied on the first video block, wherein the cross-component linear model comprises predicting chroma samples based on reconstructed neighboring luma samples according to a linear model;
- derive parameters of the cross-component linear model, and
- perform the conversion based on the derived parameters;
- wherein a Log 2(X) operation is avoided for derivation of the parameters in case that X is equal to or less than zero,
- wherein X represents an absolute value of a difference between two chroma values related to the first video block, and for the derivation of the parameters, 0 is used instead of the Log 2(X) operation,
- wherein a variable y and a variable a that are used for determining a slope parameter of the cross-component linear model are evaluated as:
- y=Abs(diffC)>0? Floor(Log 2(Abs(diffC)))+1:0;
- a=(diffC*(divSigTable[normDiff]|8)+2y-1)>>y;
- where diffC represents a difference between two chroma values related to the first video block, Floor is a floor function, Abs is an absolute value function, divSigTable[ ] is specified as divSigTable[ ]={0, 7, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 1, 1, 0}, normDiff=((diff<<4)>>x) & 15, and diff represents a difference between two luma values related to the first video block, and
- wherein X is equal to Abs (diffC),
- wherein the instructions further cause the processor to:
- determine motion vectors of control points for a third video block based on an affine mode,
- wherein in the affine mode, Log 2(cbWidth)−Log 2(cbHeight) or Log 2(cbHeight)−Log 2(cbWidth) is calculated in a derivation process for a second control point motion vector, where cbHeight is a height of the third video block and cbWidth is a width of the third video block,
- wherein the second control point motion vector of the affine mode is derived as:
- cpMvLXCorner[1][0]=(cpMvLXCorner[0][0]<<7)+((cpMvLXCorner[2][1]−cpMvLXCorner[0][1])<<(7+Log 2(cbWidth)−Log 2(cbHeight)))
- wherein cpMvLXCorner[1][0] indicates a horizontal direction value of the second control point motion vector, cpMvLXCorner[0][0] indicates a horizontal direction value of a first control point motion vector, cpMvLXCorner[0][1] indicates a vertical direction value of the first control point motion vector, cpMvLXCorner[2][1] indicates a vertical direction value of a third control point motion vector.
A non-transitory computer-readable recording medium storing a bitstream of a video which is generated by a method performed by a video processing apparatus, wherein the method comprises:
- determining, for a first video block of a video that is a chroma block, a cross-component linear model (CCLM) is applied on the first video block, wherein the cross-component linear model comprises predicting chroma samples based on reconstructed neighboring luma samples according to a linear model;
- deriving parameters of the cross-component linear model, and
- generating the bitstream based on the derived parameters;
- wherein a Log 2(X) operation is avoided for derivation of the parameters in case that X is equal to or less than zero,
- wherein X represents an absolute value of a difference between two chroma values related to the first video block, and for the derivation of the parameters, 0 is used instead of the Log 2(X) operation,
- wherein a variable y and a variable a that are used for determining a slope parameter of the cross-component linear model are evaluated as:
- y=Abs(diffC)>0? Floor(Log 2(Abs(diffC)))+1:0;
- a=(diffC*(divSigTable[normDiff]|8)+2y-1)>>y;
- where diffC represents a difference between two chroma values related to the first video block, Floor is a floor function, Abs is an absolute value function, divSigTable[ ] is specified as divSigTable[ ]={0, 7, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 1, 1, 0}, normDiff=((diff<<4)>>x) & 15, and diff represents a difference between two luma values related to the first video block, and
- wherein X is equal to Abs (diffC),
- the method further comprising:
- determining motion vectors of control points for a third video block based on an affine mode,
- wherein in the affine mode, Log 2(cbWidth)−Log 2(cbHeight) or Log 2(cbHeight)−Log 2(cbWidth) is calculated in a derivation process for a second control point motion vector, where cbHeight is a height of the third video block and cbWidth is a width of the third video block,
- wherein the second control point motion vector of the affine mode is derived as:
- cpMvLXCorner[1][0]=(cpMvLXCorner[0][0]<<7)+((cpMvLXCorner[2][1]−cpMvLXCorner[0][1])<<(7+Log 2(cbWidth)−Log 2(cbHeight)))
- wherein cpMvLXCorner[1][0] indicates a horizontal direction value of the second control point motion vector, cpMvLXCorner[0][0] indicates a horizontal direction value of a first control point motion vector, cpMvLXCorner[0][1] indicates a vertical direction value of the first control point motion vector, cpMvLXCorner[2][1] indicates a vertical direction value of a third control point motion vector.
Dependencies are inferred from the claim text.