IP Library Granted Patent US 12,256,095
Granted Patent B2
US 12,256,095 · App. 17/952,193 · Granted Mar 18, 2025

Decoding methods and devices, and encoding methods and devices

Inventor: Shuqing Fang (Zhejiang, CN)
Assignee: HANGZHOU HIKVISION DIGITAL TECHNOLOGY CO., LTD.
H04N19/52H04N19/176H04N19/577
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,256,095
App. No.
17/952,193
Granted
Mar 18, 2025
Kind
B2
Abstract

The present disclosure provides decoding methods, encoding methods, apparatuses and devices. A decoding method includes: obtaining index information of an enhanced temporal motion vector prediction mode from a bit stream of a current block when it is determined that an enhanced temporal motion vector prediction technology is enabled for the current block; determining one or more matching blocks of the current block; determining candidate enhanced temporal motion vector prediction modes based on the one or more matching blocks and one or more new matching blocks obtained by offsetting each of the one or more matching blocks, and establishing a temporal candidate mode list; determining the enhanced temporal motion vector prediction mode based on the index information; determining motion information of each sub-block in the current block based on the enhanced temporal motion vector prediction mode, and performing motion compensation on each sub-block in the current block.

Claims (87)

1. A decoding method, comprising:

obtaining index information of an enhanced temporal motion vector prediction mode from a bit stream of a current block when it is determined that an enhanced temporal motion vector prediction technology is enabled for the current block;

determining one or more matching blocks of the current block, wherein the one or more matching blocks refer to one or more image blocks corresponding to the current block in a target reference picture, comprising:

determining one or more matching blocks of the current block at least based on a target reference picture index, a target reference direction and a position of the current block, wherein the target reference picture index is an index of a first picture in reference picture List 0 , and the target reference direction is a reference direction corresponding to reference picture List 0 ; or, the target reference picture index is an index of a first picture in reference picture List 1 , and the target reference direction is a reference direction corresponding to reference picture List 1 ;

determining candidate enhanced temporal motion vector prediction modes based on the one or more matching blocks and one or more new matching blocks obtained by offsetting each of the one or more matching blocks, and establishing a temporal candidate mode list based on the candidate enhanced temporal motion vector prediction modes;

based on the index information, determining the enhanced temporal motion vector prediction mode from the temporal candidate mode list;

determining motion information of each sub-block in the current block based on the determined enhanced temporal motion vector prediction mode, and performing motion compensation on each sub-block in the current block based on the motion information of each sub-block in the current block,

wherein, determining the motion information of each sub-block in the current block based on the determined enhanced temporal motion vector prediction mode, comprises:

for any sub-block in a target matching block,

if both forward motion information and backward motion information of the sub-block are available, scaling the forward motion information and the backward motion information of the sub-block to the first picture in reference picture List 0 and the first picture in reference picture List 1 respectively, and assigning the scaled forward motion information and the scaled backward motion information to a sub-block at a corresponding position in the current block; or

if forward motion information of the sub-block is available but backward motion information of the sub-block is unavailable, scaling the forward motion information of the sub-block to the first picture in reference picture List 0 , and assigning the scaled forward motion information to a sub-block at a corresponding position in the current block; or

if backward motion information of the sub-block is available but forward motion information of the sub-block is unavailable, scaling the backward motion information of the sub-block to the first picture in reference picture List 1 , and assigning the scaled backward motion information to a sub-block at a corresponding position in the current block,

wherein a sequence parameter set level syntax is used to indicate whether the enhanced temporal motion vector prediction technology is enabled for the current block.

2. The decoding method according to claim 1 , wherein the one or more new matching blocks obtained by offsetting each of the one or more matching blocks are determined by:

for a respective matching block of the one or more matching blocks,

based on one or more offset pairs, horizontally and vertically offsetting the respective matching block to obtain one or more new matching blocks.

3. The decoding method according to claim 1 , wherein after the determining one or more matching blocks of the current block, the decoding method further comprises:

clipping each of the one or more matching blocks to obtain one or more clipped matching blocks.

4. The decoding method according to claim 3 , wherein the one or more new matching blocks obtained by offsetting each of the one or more matching blocks are determined by:

for a respective clipped matching block of the one or more clipped matching blocks,

comparing the motion information of a thirteenth sub-block and the motion information of a fourteenth sub-block, and comparing the motion information of a fifteenth sub-block and the motion information of a sixteenth sub-block, to obtain two comparing results, if at least one of the two comparing results indicates different in motion information, horizontally offsetting the clipped matching block rightward to obtain a new matching block; or

comparing the motion information of a seventeenth sub-block and the motion information of an eighteenth sub-block, and comparing the motion information of a nineteenth sub-block and the motion information of a twentieth sub-block, to obtain two comparing results, if at least one of the two comparing results indicates different in motion information, horizontally offsetting the clipped matching block leftward to obtain a new matching block; or

comparing the motion information of a thirteenth sub-block and the motion information of a twenty-first sub-block, and comparing the motion information of a seventeenth sub-block and the motion information of a twenty-second sub-block, to obtain two comparing results, if at least one of the two comparing results indicates different in motion information, vertically offsetting the clipped matching block downward to obtain a new matching block; or

comparing the motion information of a fifteenth sub-block and the motion information of a twenty-third sub-block, and comparing the motion information of a nineteenth sub-block and the motion information of a twenty-fourth sub-block, to obtain two comparing results, if at least one of the two comparing results indicates different in motion information, vertically offsetting the clipped matching block upward to obtain a new matching block;

wherein the thirteenth sub-block is a sub-block in an up-left side of the clipped matching block, the fourteenth sub-block is a first sub-block in a right side of the clipped matching block, the fifteenth sub-block is a sub-block in a down-left side of the clipped matching block, the sixteenth sub-block is a last sub-block in a right side of the clipped matching block, the seventeenth sub-block is a sub-block in an up-right side of the clipped matching block, the eighteenth sub-block is a first sub-block in a left side of the clipped matching block, the nineteenth sub-block is a sub-block in a down-right side of the clipped matching block, the twentieth sub-block is a last sub-block in a left side of the clipped matching block, the twenty-first sub-block is a first sub-block in a down side of the clipped matching block, the twenty-second sub-block is a last sub-block in a down side of the clipped matching block, the twenty-third sub-block is a first sub-block in an up side of the clipped matching block, and the twenty-fourth sub-block is a last sub-block in an up side of the clipped matching block.

5. The decoding method according to claim 2 , wherein, determining the candidate enhanced temporal motion vector prediction modes based on the one or more matching blocks and the one or more new matching blocks obtained by offsetting each of the one or more matching blocks, comprises:

when there are one or more new matching blocks, determining, prediction modes corresponding to the one or more matching blocks before the offsetting and prediction modes corresponding to the one or more new matching blocks obtained by the offsetting, as the candidate enhanced temporal motion vector prediction modes.

6. The decoding method according to claim 1 , wherein, determining the motion information of each sub-block in the current block based on the determined enhanced temporal motion vector prediction mode, further comprises:

if forward motion information and backward motion information of the sub-block in the target matching block are both unavailable,

when both forward motion information and backward motion information of a surrounding block of the current block are available, scaling the forward motion information and the backward motion information of the surrounding block to the first picture in reference picture List 0 and the first picture in reference picture List 1 respectively, and assigning the scaled forward motion information and the scaled backward motion information to a sub-block at a corresponding position in the current block; or

when forward motion information of the surrounding block is available, but backward motion information of the surrounding block is unavailable, scaling the forward motion information of the surrounding block to the first picture in reference picture List 0 , and assigning the scaled forward motion information to a sub-block at a corresponding position in the current block; or

when backward motion information of the surrounding block is available, but forward motion information of the surrounding block is unavailable, scaling the backward motion information of the surrounding block to the first picture in reference picture List 1 , and assigning the scaled backward motion information to a sub-block at a corresponding position in the current block; or

when forward motion information and backward motion information of the surrounding block are both unavailable, assigning zero motion information to a sub-block at a corresponding position in the current block.

7. The decoding method according to claim 1 , wherein, when the sequence parameter set level syntax is used to indicate whether the enhanced temporal motion vector prediction technology is enabled for the current block, whether the enhanced temporal motion vector prediction technology is enabled for the current block is determined by:

when the enhanced temporal motion vector prediction technology is enabled for an image sequence to which the current block belongs, determining that the enhanced temporal motion vector prediction technology is enabled for the current block; or

when the enhanced temporal motion vector prediction technology is disabled for an image sequence to which the current block belongs, determining that the enhanced temporal motion vector prediction technology is disabled for the current block.

8. A non-volatile machine-readable storage medium having stored thereon machine-executable instructions that, when executed by a processor, implement the decoding method according to claim 1 .

9. An encoding method, comprising:

determining one or more matching blocks of a current block, wherein the one or more matching blocks refer to one or more image blocks corresponding to the current block in a target reference picture, comprising:

determining one or more matching blocks of the current block at least based on a target reference picture index, a target reference direction and a position of the current block, wherein the target reference picture index is an index of a first picture in reference picture List 0 , and the target reference direction is a reference direction corresponding to reference picture List 0 ; or, the target reference picture index is an index of a first picture in reference picture List 1 , and the target reference direction is a reference direction corresponding to reference picture List 1 ;

determining candidate enhanced temporal motion vector prediction modes based on the one or more matching blocks and one or more new matching blocks obtained by offsetting each of the one or more matching blocks, and establishing a temporal candidate mode list based on the candidate enhanced temporal motion vector prediction modes;

traversing the candidate enhanced temporal motion vector prediction modes in the temporal candidate mode list, and for any of the candidate enhanced temporal motion vector prediction modes, determining motion information of each sub-block in the current block based on the candidate enhanced temporal motion vector prediction mode, and performing motion compensation on each sub-block in the current block based on the motion information of each sub-block in the current block,

wherein, determining the motion information of each sub-block in the current block based on the candidate enhanced temporal motion vector prediction mode, comprises:

for any sub-block in a target matching block,

if both forward motion information and backward motion information of the sub-block are available, scaling the forward motion information and the backward motion information of the sub-block to the first picture in reference picture List 0 and the first picture in reference picture List 1 respectively, and assigning the scaled forward motion information and the scaled backward motion information to a sub-block at a corresponding position in the current block; or

if forward motion information of the sub-block is available but backward motion information of the sub-block is unavailable, scaling the forward motion information of the sub-block to the first picture in reference picture List 0 , and assigning the scaled forward motion information to a sub-block at a corresponding position in the current block; or

if backward motion information of the sub-block is available but forward motion information of the sub-block is unavailable, scaling the backward motion information of the sub-block to the first picture in reference picture List 1 , and assigning the scaled backward motion information to a sub-block at a corresponding position in the current block,

determining, based on a rate-distortion cost corresponding to each candidate enhanced temporal motion vector prediction mode in the temporal candidate mode list, a candidate enhanced temporal motion vector prediction mode with a smallest rate-distortion cost as an enhanced temporal motion vector prediction mode of the current block;

carrying index information in a bit stream of the current block, wherein the index information is used to indicate a mode index of the determined enhanced temporal motion vector prediction mode.

10. An encoding device, comprising a processor and a machine-readable storage medium, wherein the machine-readable storage medium stores machine-executable instructions that can be executed by the processor, and the processor is configured to execute the machine-executable instructions to implement the encoding method according to claim 9 .

11. A non-volatile machine-readable storage medium having stored thereon machine-executable instructions that, when executed by a processor, implement the encoding method according to claim 9 .

12. A decoding device, comprising a processor and a machine-readable storage medium, wherein the machine-readable storage medium stores machine-executable instructions that can be executed by the processor, and the processor is configured to execute the machine-executable instructions to perform:

obtaining index information of an enhanced temporal motion vector prediction mode from a bit stream of a current block when it is determined that an enhanced temporal motion vector prediction technology is enabled for the current block;

determining one or more matching blocks of the current block, wherein the one or more matching blocks refer to one or more image blocks corresponding to the current block in a target reference picture, comprising:

determining one or more matching blocks of the current block at least based on a target reference picture index, a target reference direction and a position of the current block, wherein the target reference picture index is an index of a first picture in reference picture List 0 , and the target reference direction is a reference direction corresponding to reference picture List 0 ; or, the target reference picture index is an index of a first picture in reference picture List 1 , and the target reference direction is a reference direction corresponding to reference picture List 1 ;

determining candidate enhanced temporal motion vector prediction modes based on the one or more matching blocks and one or more new matching blocks obtained by offsetting each of the one or more matching blocks, and establishing a temporal candidate mode list based on the candidate enhanced temporal motion vector prediction modes;

based on the index information, determining the enhanced temporal motion vector prediction mode from the temporal candidate mode list;

determining motion information of each sub-block in the current block based on the determined enhanced temporal motion vector prediction mode, and performing motion compensation on each sub-block in the current block based on the motion information of each sub-block in the current block,

wherein, determining the motion information of each sub-block in the current block based on the determined enhanced temporal motion vector prediction mode, comprises:

for any sub-block in a target matching block,

if both forward motion information and backward motion information of the sub-block are available, scaling the forward motion information and the backward motion information of the sub-block to the first picture in reference picture List 0 and the first picture in reference picture List 1 respectively, and assigning the scaled forward motion information and the scaled backward motion information to a sub-block at a corresponding position in the current block; or

if forward motion information of the sub-block is available but backward motion information of the sub-block is unavailable, scaling the forward motion information of the sub-block to the first picture in reference picture List 0 , and assigning the scaled forward motion information to a sub-block at a corresponding position in the current block; or

if backward motion information of the sub-block is available but forward motion information of the sub-block is unavailable, scaling the backward motion information of the sub-block to the first picture in reference picture List 1 , and assigning the scaled backward motion information to a sub-block at a corresponding position in the current block,

wherein a sequence parameter set level syntax is used to indicate whether the enhanced temporal motion vector prediction technology is enabled for the current block.

13. The decoding device according to claim 12 , wherein the one or more new matching blocks obtained by offsetting each of the one or more matching blocks are determined by:

for a respective matching block of the one or more matching blocks,

based on one or more offset pairs, horizontally and vertically offsetting the respective matching block to obtain one or more new matching blocks.

14. The decoding device according to claim 12 , wherein after the determining one or more matching blocks of the current block, the processor is further configured to execute the machine-executable instructions to perform:

clipping each of the one or more matching blocks to obtain one or more clipped matching blocks.

15. The decoding device according to claim 14 , wherein the one or more new matching blocks obtained by offsetting each of the one or more matching blocks are determined by:

for a respective clipped matching block of the one or more clipped matching blocks,

comparing the motion information of a thirteenth sub-block and the motion information of a fourteenth sub-block, and comparing the motion information of a fifteenth sub-block and the motion information of a sixteenth sub-block, to obtain two comparing results, if at least one of the two comparing results indicates different in motion information, horizontally offsetting the clipped matching block rightward to obtain a new matching block; or

comparing the motion information of a seventeenth sub-block and the motion information of an eighteenth sub-block, and comparing the motion information of a nineteenth sub-block and the motion information of a twentieth sub-block, to obtain two comparing results, if at least one of the two comparing results indicates different in motion information, horizontally offsetting the clipped matching block leftward to obtain a new matching block; or

comparing the motion information of a thirteenth sub-block and the motion information of a twenty-first sub-block, and comparing the motion information of a seventeenth sub-block and the motion information of a twenty-second sub-block, to obtain two comparing results, if at least one of the two comparing results indicates different in motion information, vertically offsetting the clipped matching block downward to obtain a new matching block; or

comparing the motion information of a fifteenth sub-block and the motion information of a twenty-third sub-block, and comparing the motion information of a nineteenth sub-block and the motion information of a twenty-fourth sub-block, to obtain two comparing results, if at least one of the two comparing results indicates different in motion information, vertically offsetting the clipped matching block upward to obtain a new matching block;

wherein the thirteenth sub-block is a sub-block in an up-left side of the clipped matching block, the fourteenth sub-block is a first sub-block in a right side of the clipped matching block, the fifteenth sub-block is a sub-block in a down-left side of the clipped matching block, the sixteenth sub-block is a last sub-block in a right side of the clipped matching block, the seventeenth sub-block is a sub-block in an up-right side of the clipped matching block, the eighteenth sub-block is a first sub-block in a left side of the clipped matching block, the nineteenth sub-block is a sub-block in a down-right side of the clipped matching block, the twentieth sub-block is a last sub-block in a left side of the clipped matching block, the twenty-first sub-block is a first sub-block in a down side of the clipped matching block, the twenty-second sub-block is a last sub-block in a down side of the clipped matching block, the twenty-third sub-block is a first sub-block in an up side of the clipped matching block, and the twenty-fourth sub-block is a last sub-block in an up side of the clipped matching block.

16. The decoding device according to claim 13 , wherein, in determining the candidate enhanced temporal motion vector prediction modes based on the one or more matching blocks and the one or more new matching blocks obtained by offsetting each of the one or more matching blocks, the processor is further configured to execute the machine-executable instructions to perform:

when there are one or more new matching blocks, determining, prediction modes corresponding to the one or more matching blocks before the offsetting and prediction modes corresponding to the one or more new matching blocks obtained by the offsetting, as the candidate enhanced temporal motion vector prediction modes.

17. The decoding device according to claim 12 , wherein, in determining the motion information of each sub-block in the current block based on the determined enhanced temporal motion vector prediction mode, the processor is further configured to execute the machine-executable instructions to perform:

if forward motion information and backward motion information of the sub-block in the target matching block are both unavailable,

when both forward motion information and backward motion information of a surrounding block of the current block are available, scaling the forward motion information and the backward motion information of the surrounding block to the first picture in reference picture List and the first picture in reference picture List 1 respectively, and assigning the scaled forward motion information and the scaled backward motion information to a sub-block at a corresponding position in the current block; or

when forward motion information of the surrounding block is available, but backward motion information of the surrounding block is unavailable, scaling the forward motion information of the surrounding block to the first picture in reference picture List 0 , and assigning the scaled forward motion information to a sub-block at a corresponding position in the current block; or

when backward motion information of the surrounding block is available, but forward motion information of the surrounding block is unavailable, scaling the backward motion information of the surrounding block to the first picture in reference picture List 1 , and assigning the scaled backward motion information to a sub-block at a corresponding position in the current block; or

when forward motion information and backward motion information of the surrounding block are both unavailable, assigning zero motion information to a sub-block at a corresponding position in the current block.

18. The decoding device according to claim 12 , wherein, when the sequence parameter set level syntax is used to indicate whether the enhanced temporal motion vector prediction technology is enabled for the current block, whether the enhanced temporal motion vector prediction technology is enabled for the current block is determined by:

when the enhanced temporal motion vector prediction technology is enabled for an image sequence to which the current block belongs, determining that the enhanced temporal motion vector prediction technology is enabled for the current block; or

when the enhanced temporal motion vector prediction technology is disabled for an image sequence to which the current block belongs, determining that the enhanced temporal motion vector prediction technology is disabled for the current block.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 27, 2022
From: FANG, SHUQING
To: HANGZHOU HIKVISION DIGITAL TECHNOLOGY CO., LTD.
Reel/Frame 061700/0328 →
Priority Claims (1)
CN 202010225428.1 · Mar 26, 2020 · national
Continuity (2)
Continuation PCTCN2021082954 · Mar 25, 2021
Related Publication 20230013243A1 · Jan 19, 2023
References Cited (33)
US 20200007864A1 · Li et al. · 2020 [cited by applicant]
US 20200084450A1 · Li et al. · 2020 [cited by applicant]
US 20210266560A1 · Jang · 2021 [cited by examiner]
US 20220070448A1 · Kim · 2022 [cited by examiner]
CN 101502120A · 2009 [cited by applicant]
CN 103959776A · 2014 [cited by applicant]
CN 107071461A · 2017 [cited by applicant]
CN 107113424A · 2017 [cited by applicant]
CN 108632616A · 2018 [cited by applicant]
CN 109963155A · 2019 [cited by applicant]
CN 110225346A · 2019 [cited by applicant]
CN 110662075A · 2020 [cited by applicant]
CN 110740317A · 2020 [cited by applicant]
CN 110858906A · 2020 [cited by applicant]
CN 110868602A · 2020 [cited by applicant]
JP 7375223B2 · 2023 [cited by applicant]
WO 2016078511A1 · 2016 [cited by applicant]
WO 2017204532A1 · 2017 [cited by applicant]
WO 2018105580A1 · 2018 [cited by applicant]
WO 2019199563A1 · 2019 [cited by applicant]
WO 2020003255A1 · 2020 [cited by applicant]
WO 2020003259A1 · 2020 [cited by applicant]
WO 2020004990A1 · 2020 [cited by applicant]
WO 2020017892A1 · 2020 [cited by applicant]
S. Wang, Z. Wang, F. Luo, S. Wang, S. Ma and W. Gao, “Enhanced Motion Vector Prediction for Video Coding,” 2018 IEEE Fourth International Conference on Multimedia Big Data (BigMM), Xi'an, China, 2018, pp. 1-5, doi: 10.1… [cited by examiner]
Ruoyang Yu et al,“CE2-related: ATMVP simplification”, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 13th Meeting: Marrakech, MA, Jan. 9-18, 2019, Document: JVET-M0116, 5 pages. [cited by applicant]
Jianle Chen et al,“Algorithm Description of Joint Exploration Test Model 7 (JEM 7)”, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,7th Meeting: Torino, IT, Jul. 13-21, 2017, Docum… [cited by applicant]
Jian-Liang Lin, et al., “Motion Vector Coding in the HEVC Standard”, IEEE Journal of Selected Topics in Signal Processing, vol. 7, No. 6, Dec. 2013, 12 pages. [cited by applicant]
International Search Report for PCT/CN2021/082954 mailed on Jun. 18, 2021 and its English translation provided by WIPO. [cited by applicant]
Written Opinion of the International Searching Authority for PCT/CN2021/082954 mailed on Jun. 18, 2021 and its English translation provided by Google Translate. [cited by applicant]
State Intellectual Property Office of the People's Republic of China, 1 [cited by applicant]
Huanbang Chen et al, “Non-CE4: ATMVP simplification,” Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 11th Meeting: Ljubljana, SI, 10, Jul. 10, 2018, all pages. [cited by applicant]
Japanese Patent Office, Office Action Issued in corresponding Japanese Patent Application No. 2023-182870, Aug. 13, 2024, 8 pages. (Submitted with Machine Translation). [cited by applicant]