IP Library Granted Patent US 10,218,998
Granted Patent B2
US 10,218,998 · App. 15/892,052 · Granted Feb 26, 2019

Method and apparatus for encoding/decoding images using a motion vector of a previous block as a motion vector for the current block

Inventors: Tammy Lee (Seoul, KR); Woo-Jin Han (Suwon-si, KR)
Assignee: SAMSUNG ELECTRONICS CO., LTD.
H04N19/513H04N19/124H04N19/159H04N19/176H04N19/51H04N19/56H04N19/577H04N19/61H04N19/70H04N19/96H04N19/172H04N19/182
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 10,218,998
App. No.
15/892,052
Granted
Feb 26, 2019
Kind
B2
Abstract

An encoding method and apparatus and a decoding method and apparatus for determining a motion vector of a current block based on a motion vector of at least one previously-encoded or previously-decoded block are provided. The decoding method includes: decoding information regarding a prediction direction from among a first direction, a second direction, and bi-directions, and information regarding pixel values of the current block; determining the prediction direction in which the current block is to be predicted, based on the decoded information regarding the prediction direction, and determining a motion vector for predicting the current block in the determined prediction direction; and restoring the current block, based on the determined motion vector and the decoded information regarding the pixel values, wherein the first direction is a direction from a current picture to a previous picture, and the second direction is a direction from the current picture to a subsequent picture.

Claims (109)

1. An image decoding method comprising:

hierarchically splitting a maximum coding unit into at least one coding unit based on split information obtained from a bitstream;

determining a current block in a coding unit among the at least one coding unit;

obtaining information regarding a prediction direction to be used to decode the current block, the information indicating one of an L0 direction, an L1 direction, and a bi-direction;

determining motion vector candidates of the current block based on a motion vector of at least one block decoded before decoding of the current block; and

determining at least one motion vector of the current block based on at least one of a motion vector candidate in the L0 direction and a motion vector candidate in the L1 direction, from among the determined motion vector candidates, according to the information regarding a prediction direction,

wherein the determining motion vector candidates of the current block comprises obtaining the motion vector candidates of the current block using a block co-located together with the current block in a temporal reference picture in the L0 direction or the L1 direction,

the image is split into a plurality of maximum coding units including the maximum coding unit,

the maximum coding unit is hierarchically split into the at least one coding unit of depths,

a coding unit of a current depth is one of square data unit split from a coding unit of an upper depth,

when the split information indicates a split for the current depth, the coding unit of the current depth is split into four coding units of a lower depth, independently from neighboring coding units, and

when the split information indicates a non-split for the current depth, a coding unit of the current depth is split into one or more prediction units, and the current block is a prediction unit.

2. An image encoding method comprising:

generating split information to indicate whether a maximum coding unit is split into at least one coding unit;

generating information regarding a prediction direction to be used for performing prediction of a current block determined in a coding unit among the at least one coding unit, the information indicating one of an L0 direction, an L1 direction, and a bi-direction;

when motion vector candidates of the current block is determined based on a motion vector of at least one block encoded before encoding of the current block, generating at least one motion vector difference of the current block based on at least one of a motion vector candidate in the L0 direction and a motion vector candidate in the L1 direction, from among the motion vector candidates, according to the prediction direction,

wherein the image is split into a plurality of maximum coding units including the maximum coding unit,

the maximum coding unit is hierarchically split into the at least one coding unit of depths,

a coding unit of a current depth is one of square data unit split from a coding unit of an upper depth,

when the coding unit of the current depth is split into four coding units of a lower depth, independently from neighboring coding units, the split information is generated to indicate a split for the current depth, and

when a coding unit of the current depth is split into one or more prediction units, and the current block is a prediction unit, the split information is generated to indicate a non-split for the current depth.

3. An image encoding apparatus comprising at least one processor configured to:

generate split information to indicate whether a maximum coding unit is split into at least one coding unit,

generate information regarding a prediction direction to be used for performing prediction of a current block determined in a coding unit among the at least one coding unit, the information indicating one of an L0 direction, an L1 direction, and a bi-direction,

when motion vector candidates of the current block is determined based on a motion vector of at least one block encoded before encoding of the current block, generate at least one motion vector difference of the current block based on at least one of a motion vector candidate in the L0 direction and a motion vector candidate in the L1 direction, from among the motion vector candidates, according to the prediction direction,

wherein the image is split into a plurality of maximum coding units including the maximum coding unit,

the maximum coding unit is hierarchically split into the at least one coding unit of depths,

a coding unit of a current depth is one of square data unit split from a coding unit of an upper depth,

when the coding unit of the current depth is split into four coding units of a lower depth, independently from neighboring coding units, the split information is generated to indicate a split for the current depth, and

when a coding unit of the current depth is split into one or more prediction units, and the current block is a prediction unit, the split information is generated to indicate a non-split for the current depth.

4. An image encoding method comprising:

generating split information to indicate whether a maximum coding unit is split into at least one coding unit;

generating information regarding a prediction direction to be used for performing prediction of a current block determined in a coding unit among the at least one coding unit, the information indicating one of an L0 direction, an L1 direction, and a bi-direction;

when motion vector candidates of the current block is determined based on a motion vector of at least one block encoded before encoding of the current block, generating at least one motion vector difference of the current block based on at least one of a motion vector candidate in the L0 direction and a motion vector candidate in the L1 direction, from among the motion vector candidates, according to the prediction direction,

wherein the at least one block encoded before encoding of the current block comprises at least one of a first block located on a left side of a leftmost block from among lower blocks adjacent to a lower side of the current block and a second block located on an upper side of the first block,

the image is split into a plurality of maximum coding units including the maximum coding unit,

the maximum coding unit is hierarchically split into the at least one coding unit of depths,

a coding unit of a current depth is one of square data unit split from a coding unit of an upper depth,

when the coding unit of the current depth is split into four coding units of a lower depth, independently from neighboring coding units, the split information is generated to indicate a split for the current depth, and

when a coding unit of the current depth is split into one or more prediction units, and the current block is a prediction unit, the split information is generated to indicate a non-split for the current depth.

5. An image encoding apparatus comprising at least one processor configured to:

generate split information to indicate whether a maximum coding unit is split into at least one coding unit,

generate information regarding a prediction direction to be used for performing prediction of a current block determined in a coding unit among the at least one coding unit, the information indicating one of an L0 direction, an L1 direction, and a bi-direction,

when motion vector candidates of the current block is determined based on a motion vector of at least one block encoded before encoding of the current block, generate at least one motion vector difference of the current block based on at least one of a motion vector candidate in the L0 direction and a motion vector candidate in the L1 direction, from among the motion vector candidates, according to the prediction direction,

wherein the at least one block encoded before encoding of the current block comprises at least one of a first block located on a left side of a leftmost block from among lower blocks adjacent to a lower side of the current block and a second block located on an upper side of the first block,

the image is split into a plurality of maximum coding units including the maximum coding unit,

the maximum coding unit is hierarchically split into the at least one coding unit of depths,

a coding unit of a current depth is one of square data unit split from a coding unit of an upper depth,

when the coding unit of the current depth is split into four coding units of a lower depth, independently from neighboring coding units, the split information is generated to indicate a split for the current depth, and

when a coding unit of the current depth is split into one or more prediction units, and the current block is a prediction unit, the split information is generated to indicate a non-split for the current depth.

6. An image encoding method comprising:

generating split information to indicate whether a maximum coding unit is split into at least one coding unit;

generating information regarding a prediction direction to be used for performing prediction of a current block determined in coding unit among the at least one coding unit, the information indicating one of an L0 direction, an L1 direction, and a bi-direction;

when motion vector candidates of the current block is determined based on a motion vector of at least one block encoded before encoding of the current block, generating at least one motion vector difference of the current block based on at least one of a motion vector candidate in the L0 direction and a motion vector candidate in the L1 direction, from among the motion vector candidates, according to the prediction direction,

wherein the at least one block encoded before encoding of the current block comprises a block co-located together with the current block in a temporal reference picture in the L0 direction or the L1 direction,

the image is split into a plurality of maximum coding units including the maximum coding unit,

the maximum coding unit is hierarchically split into the at least one coding unit of depths,

a coding unit of a current depth is one of square data unit split from a coding unit of an upper depth,

when the coding unit of the current depth is split into four coding units of a lower depth, independently from neighboring coding units, the split information is generated to indicate a split for the current depth, and

when a coding unit of the current depth is split into one or more prediction units, and the current block is a prediction unit, the split information is generated to indicate a non-split for the current depth.

7. A non-transitory computer-readable storage medium storing a bitstream generated by at least one processor for performing an image encoding, the bitstream comprising:

split information generated to indicate whether a maximum coding unit is split into at least one coding unit;

information regarding a prediction direction, generated to be used for performing prediction of a current block determined in a coding unit among the at least one coding unit and to indicate one of an L0 direction, an L1 direction, and a bi-direction; and

at least one motion vector difference of the current block generated based on at least one of a motion vector candidate in the L0 direction and a motion vector candidate in the L1 direction, from among motion vector candidates, according to the prediction direction, when the motion vector candidates of the current block is determined based on a motion vector of at least one block encoded before encoding of the current block,

wherein the image is split into a plurality of maximum coding units including the maximum coding unit,

the maximum coding unit is hierarchically split into the at least one coding unit of depths,

a coding unit of a current depth is one of square data unit split from a coding unit of an upper depth,

when the coding unit of the current depth is split into four coding units of a lower depth, independently from neighboring coding units, the split information is generated to indicate a split for the current depth, and

when a coding unit of the current depth is split into one or more prediction units, and the current block is a prediction unit, the split information is generated to indicate a non-split for the current depth.

8. A non-transitory computer-readable storage medium storing a bitstream generated by at least one processor for performing an image encoding, the bitstream comprising:

split information generated to indicate whether a maximum coding unit is split into at least one coding unit;

information regarding a prediction direction, generated to be used for performing prediction of a current block determined in a coding unit among the at least one coding unit and to indicate one of an L0 direction, an L1 direction, and a bi-direction; and

at least one motion vector difference of the current block generated based on at least one of a motion vector candidate in the L0 direction and a motion vector candidate in the L1 direction, from among motion vector candidates, according to the prediction direction, when the motion vector candidates of the current block is determined based on a motion vector of at least one block encoded before encoding of the current block,

wherein the at least one block encoded before encoding of the current block comprises at least one of a first block located on a left side of a leftmost block from among lower blocks adjacent to a lower side of the current block and a second block located on an upper side of the first block,

the image is split into a plurality of maximum coding units including the maximum coding unit,

the maximum coding unit is hierarchically split into the at least one coding unit of depths,

a coding unit of a current depth is one of square data unit split from a coding unit of an upper depth,

when the coding unit of the current depth is split into four coding units of a lower depth, independently from neighboring coding units, the split information is generated to indicate a split for the current depth, and

when a coding unit of the current depth is split into one or more prediction units, and the current block is a prediction unit, the split information is generated to indicate a non-split for the current depth.

9. A non-transitory computer-readable storage medium storing a bitstream generated by at least one processor for performing an image encoding, the bitstream comprising:

split information generated to indicate whether a maximum coding unit is split into at least one coding unit;

information regarding a prediction direction, generated to be used for performing prediction of a current block determined in a coding unit among the at least one coding unit and to indicate one of an L0 direction, an L1 direction, and a bi-direction; and

at least one motion vector difference of the current block generated based on at least one of a motion vector candidate in the L0 direction and a motion vector candidate in the L1 direction, from among motion vector candidates, according to the prediction direction, when the motion vector candidates of the current block is determined based on a motion vector of at least one block encoded before encoding of the current block,

wherein the at least one block encoded before encoding of the current block comprises a block co-located together with the current block in a temporal reference picture in the L0 direction or the L1 direction,

the image is split into a plurality of maximum coding units including the maximum coding unit,

the maximum coding unit is hierarchically split into the at least one coding unit of depths,

a coding unit of a current depth is one of square data unit split from a coding unit of an upper depth,

when the coding unit of the current depth is split into four coding units of a lower depth, independently from neighboring coding units, the split information is generated to indicate a split for the current depth, and

when a coding unit of the current depth is split into one or more prediction units, and the current block is a prediction unit, the split information is generated to indicate a non-split for the current depth.

10. A non-transitory computer-readable storage medium storing a bitstream generated by at least one processor for performing an image encoding, the bitstream comprising:

split information generated to indicate whether a maximum coding unit is split into at least one coding unit;

information regarding a prediction direction, generated to be used for performing prediction of a current block determined in a coding unit among the at least one coding unit and to indicate one of an L0 direction, an L1 direction, and a bi-direction; and

at least one motion vector difference of the current block generated based on at least one of a motion vector candidate in the L0 direction and a motion vector candidate in the L1 direction, from among motion vector candidates, according to the prediction direction, when the motion vector candidates of the current block is determined based on a motion vector of at least one block encoded before encoding of the current block,

wherein the at least one block encoded before encoding of the current block comprises at least one of a first block located on a right side of a rightmost block from among upper blocks adjacent to a upper side of the current block, a second block located on the rightmost block among upper blocks adjacent to a upper side of the current block, and a third block located on a left side of a leftmost block from among the upper blocks adjacent to a upper side of the current block,

the image is split into a plurality of maximum coding units including the maximum coding unit,

the maximum coding unit is hierarchically split into the at least one coding unit of depths,

a coding unit of a current depth is one of square data unit split from a coding unit of an upper depth,

when the coding unit of the current depth is split into four coding units of a lower depth, independently from neighboring coding units, the split information is generated to indicate a split for the current depth, and

when a coding unit of the current depth is split into one or more prediction units, and the current block is a prediction unit, the split information is generated to indicate a non-split for the current depth.

11. A non-transitory computer-readable storage medium storing a bitstream generated by at least one processor for performing an image encoding, the bitstream comprising:

split information generated to indicate whether a maximum coding unit is split into at least one coding unit;

information regarding a prediction direction, generated to be used for performing prediction of a current block determined in a coding unit among the at least one coding unit and to indicate one of an L0 direction, an L1 direction, and a bi-direction; and

at least one motion vector difference of the current block generated based on at least one of a motion vector candidate in the L0 direction and a motion vector candidate in the L1 direction, from among motion vector candidates, according to the prediction direction, when the motion vector candidates of the current block is determined based on a motion vector of at least one block encoded before encoding of the current block,

wherein the at least one block encoded before encoding of the current block comprises at least one of a first block located on a left side of a leftmost block from among lower blocks adjacent to a lower side of the current block, a second block located on an upper side of the first block, and a third block co-located together with the current block in a temporal reference picture in the L0 direction or the L1 direction,

the image is split into a plurality of maximum coding units including the maximum coding unit,

the maximum coding unit is hierarchically split into the at least one coding unit of depths,

a coding unit of a current depth is one of square data unit split from a coding unit of an upper depth,

when the coding unit of the current depth is split into four coding units of a lower depth, independently from neighboring coding units, the split information is generated to indicate a split for the current depth, and

when a coding unit of the current depth is split into one or more prediction units, and the current block is a prediction unit, the split information is generated to indicate a non-split for the current depth.

Priority Claims (1)
KR 10-2011-0005377 · Jan 19, 2011 · national
Continuity (6)
Continuation 15656442 · Jul 21, 2017
Continuation 15293375 · Oct 14, 2016
Continuation 15133918 · Apr 20, 2016
Continuation 13574110
Provisional Application 61296141 · Jan 19, 2010
Related Publication 20180167632A1 · Jun 14, 2018
Cited By (1)
US 12,684,134