RU2701087C1 - Method and device for encoding and decoding motion vector based on reduced motion vector predictors-candidates - Google Patents

Method and device for encoding and decoding motion vector based on reduced motion vector predictors-candidates Download PDF

Info

Publication number
RU2701087C1
RU2701087C1 RU2019101175A RU2019101175A RU2701087C1 RU 2701087 C1 RU2701087 C1 RU 2701087C1 RU 2019101175 A RU2019101175 A RU 2019101175A RU 2019101175 A RU2019101175 A RU 2019101175A RU 2701087 C1 RU2701087 C1 RU 2701087C1
Authority
RU
Russia
Prior art keywords
motion vector
vector predictor
current block
block
predictor candidates
Prior art date
Application number
RU2019101175A
Other languages
Russian (ru)
Inventor
Тамми ЛИ
Воо-Дзин ХАН
Original Assignee
Самсунг Электроникс Ко., Лтд.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR1020110004015A external-priority patent/KR101768207B1/en
Application filed by Самсунг Электроникс Ко., Лтд. filed Critical Самсунг Электроникс Ко., Лтд.
Application granted granted Critical
Publication of RU2701087C1 publication Critical patent/RU2701087C1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

FIELD: computer equipment.
SUBSTANCE: image decoding device comprises: decoding unit from bit stream information on motion vector difference for current block and information on motion vector predictor for current block; candidate determination unit; and motion vector recovery unit, wherein changed group of motion vector predictors includes one of first motion vector predictors and motion vector candidate second predictor, wherein first motion vector predictors are based on motion vectors of neighbouring blocks of current block, and second predictor-candidate motion vector is based on motion vector jointly located unit for current unit, and jointly located unit is in reference image, wherein the neighbouring units include a first unit located from below to the left of the current unit, and include a second unit located from the top of the first unit.
EFFECT: high compression ratio when decoding images.
9 cl, 28 dwg

Description

Область техникиTechnical field

[1] Устройства и способы, в соответствии с иллюстративными вариантами осуществления, относятся к кодированию и декодированию вектора движения и, в частности, к предсказательному кодированию и декодированию вектора движения текущего блока.[1] Devices and methods, in accordance with illustrative embodiments, relate to encoding and decoding a motion vector and, in particular, to predictive encoding and decoding of a motion vector of the current block.

Уровень техникиState of the art

[2] В таком кодеке, как «усовершенствованное кодирование видеосигнала» MPEG-4 H.264/MPEG-4 (AVC), векторы движения ранее закодированных блоков, соседствующих с текущим блоком, можно использовать для предсказания вектора движения текущего блока. Медиана векторов движения ранее закодированных блоков, соседствующих с левой стороной, верхней стороной и правой верхней стороной текущего блока используется в качестве предсказателя вектора движения текущего блока. Вектор движения текущего блока непосредственно не кодируется а, вместо этого, кодируется разность между вектором движения и предсказателем вектора движения.[2] In a codec such as "advanced video encoding" MPEG-4 H.264 / MPEG-4 (AVC), the motion vectors of previously encoded blocks adjacent to the current block can be used to predict the motion vector of the current block. The median of the motion vectors of previously encoded blocks adjacent to the left side, upper side and upper right side of the current block is used as a predictor of the motion vector of the current block. The motion vector of the current block is not directly encoded, but instead, the difference between the motion vector and the motion vector predictor is encoded.

Раскрытие изобретенияDisclosure of invention

Решение проблемыSolution

[3] Один или более иллюстративных вариантов осуществления предусматривают способ и устройство для предсказательного кодирования и декодирования вектора движения, и машиночитаемый носитель записи, на котором записана компьютерная программа для выполнения способа.[3] One or more illustrative embodiments provides a method and apparatus for predictively encoding and decoding a motion vector, and a computer-readable recording medium on which a computer program for executing the method is recorded.

Преимущественные результаты изобретенияAdvantageous Results of the Invention

[4] Согласно иллюстративному варианту осуществления, когда предсказатели-кандидаты вектора движения используются для предсказательного кодирования и декодирования вектора движения, количество предсказателей-кандидатов вектора движения можно уменьшить для предсказательного кодирования и декодирования вектора движения. Соответственно, информацию, необходимую для указания предсказателя вектора движения, используемого для предсказания вектора движения текущего блока из предсказателей-кандидатов вектора движения, можно кодировать с минимальным числом битов, благодаря чему коэффициент сжатия кодирования/декодирования вектора движения увеличивается что позволяет повышать коэффициент сжатия при кодировании/декодировании изображения.[4] According to an illustrative embodiment, when motion vector candidate predictors are used to predictively encode and decode a motion vector, the number of motion vector predictor candidates can be reduced to predictively encode and decode a motion vector. Accordingly, the information necessary to indicate the motion vector predictor used to predict the motion vector of the current block from the motion vector predictor candidates can be encoded with a minimum number of bits, due to which the compression ratio of the encoding / decoding of the motion vector is increased, which allows to increase the compression ratio when encoding / image decoding.

Краткое описание чертежейBrief Description of the Drawings

[5] Вышеперечисленные и другие признаки и преимущества станут ясны из подробного описания иллюстративных вариантов осуществления со ссылкой на прилагаемые чертежи, в которых:[5] The above and other features and advantages will become apparent from the detailed description of illustrative embodiments with reference to the accompanying drawings, in which:

[6] фиг. 1 - блок-схема устройства для кодирования изображения, согласно иллюстративному варианту осуществления;[6] FIG. 1 is a block diagram of an apparatus for encoding an image according to an illustrative embodiment;

[7] фиг. 2 - блок-схема устройства для декодирования изображения, согласно иллюстративному варианту осуществления;[7] FIG. 2 is a block diagram of an apparatus for decoding an image according to an illustrative embodiment;

[8] фиг. 3 иллюстрирует иерархические единицы кодирования согласно иллюстративному варианту осуществления;[8] FIG. 3 illustrates hierarchical coding units according to an illustrative embodiment;

[9] фиг. 4 - блок-схема кодера изображения на основе единицы кодирования, согласно иллюстративному варианту осуществления;[9] FIG. 4 is a block diagram of an image encoder based on a coding unit according to an illustrative embodiment;

[10] фиг. 5 - блок-схема декодера изображения на основе единицы кодирования, согласно иллюстративному варианту осуществления;[10] FIG. 5 is a block diagram of an image decoder based on a coding unit, according to an illustrative embodiment;

[11] фиг. 6 иллюстрирует максимальную единицу кодирования, единицу кодирования более низкого уровня и единицу предсказания, согласно иллюстративному варианту осуществления;[11] FIG. 6 illustrates a maximum coding unit, a lower level coding unit, and a prediction unit, according to an illustrative embodiment;

[12] фиг. 7 иллюстрирует единицу кодирования и единицу преобразования, согласно иллюстративному варианту осуществления;[12] FIG. 7 illustrates a coding unit and a conversion unit, according to an illustrative embodiment;

[13] фиг. 8A - 8D иллюстрируют формы разделения единицы кодирования, единицы предсказания и единицы преобразования, согласно иллюстративному варианту осуществления;[13] FIG. 8A to 8D illustrate separation forms of a coding unit, a prediction unit, and a conversion unit, according to an illustrative embodiment;

[14] фиг. 9 - блок-схема устройства для кодирования вектора движения, согласно иллюстративному варианту осуществления;[14] FIG. 9 is a block diagram of an apparatus for encoding a motion vector according to an illustrative embodiment;

[15] фиг. 10A и 10B иллюстрируют предсказатели-кандидаты вектора движения, согласно иллюстративному варианту осуществления;[15] FIG. 10A and 10B illustrate motion vector predictor candidates according to an illustrative embodiment;

[16] фиг. 10C-10E иллюстрируют блоки различных размеров, которые соседствуют с текущим блоком, согласно иллюстративному варианту осуществления;[16] FIG. 10C-10E illustrate blocks of various sizes that are adjacent to the current block, according to an illustrative embodiment;

[17] фиг. 11A-11C иллюстрируют предсказатели-кандидаты вектора движения, согласно другому иллюстративному варианту осуществления;[17] FIG. 11A-11C illustrate motion vector predictor candidates according to another illustrative embodiment;

[18] фиг. 12 иллюстрирует способ уменьшения количества предсказателей-кандидатов вектора движения, согласно иллюстративному варианту осуществления;[18] FIG. 12 illustrates a method for reducing the number of motion vector predictor candidates according to an illustrative embodiment;

[19] фиг. 13A-13D иллюстрируют местоположение текущего блока, включенного в единицу кодирования заранее определенного размера, согласно иллюстративному варианту осуществления;[19] FIG. 13A-13D illustrate the location of a current block included in a coding unit of a predetermined size, according to an illustrative embodiment;

[20] фиг. 14 - блок-схема устройства для декодирования вектора движения, согласно иллюстративному варианту осуществления;[20] FIG. 14 is a block diagram of an apparatus for decoding a motion vector according to an illustrative embodiment;

[21] фиг. 15 - блок-схема, иллюстрирующая способ кодирования вектора движения, согласно иллюстративному варианту осуществления; и[21] FIG. 15 is a flowchart illustrating a method of encoding a motion vector according to an illustrative embodiment; and

[22] фиг. 16 - блок-схема, иллюстрирующая способ декодирования вектора движения, согласно иллюстративному варианту осуществления.[22] FIG. 16 is a flowchart illustrating a method for decoding a motion vector according to an illustrative embodiment.

Предпочтительные варианты осуществления изобретенияPreferred Embodiments

[23] Согласно аспекту иллюстративного варианта осуществления, предусмотрен способ кодирования вектора движения, причем способ включает в себя этапы, на которых: генерируют информацию о векторе движения на основании вектора движения текущего блока и предсказателя вектора движения текущего блока путем оценивания вектора движения текущего блока и определения первого предсказателя-кандидата вектора движения из множества предсказателей-кандидатов вектора движения в качестве предсказателя вектора движения текущего блока на основании результата оценивания; генерируют виртуальный вектор движения с использованием второго предсказателя-кандидата вектора движения из множества предсказателей-кандидатов вектора движения и информации о векторе движения, генерируют векторные разности между виртуальным вектором движения и множеством предсказателей-кандидатов вектора движения, сравнивают векторные разности с информацией о векторе движения, и выборочно исключают второй предсказатель-кандидат вектора движения из множества предсказателей-кандидатов вектора движения; и кодируют информацию о векторе движения и информацию о предсказателе вектора движения текущего блока.[23] According to an aspect of an illustrative embodiment, a method for encoding a motion vector is provided, the method comprising the steps of: generating information about the motion vector based on the motion vector of the current block and the motion vector predictor of the current block by estimating the motion vector of the current block and determining a first motion vector predictor candidate from a plurality of motion vector predictor candidates as a motion vector predictor of the current block based on ultat assessment; generating a virtual motion vector using a second motion vector predictor candidate from a plurality of motion vector predictor candidates and motion vector information, generating vector differences between a virtual motion vector and a plurality of motion vector predictors, comparing the vector differences with motion vector information, and selectively excluding a second motion vector predictor candidate from a plurality of motion vector predictor candidates; and encode motion vector information and motion vector predictor information of the current block.

[24] Согласно аспекту другого иллюстративного варианта осуществления, предусмотрен способ декодирования вектора движения, причем способ включает в себя этапы, на которых: декодируют информацию о векторе движения текущего блока; генерируют виртуальный вектор движения с использованием заранее определенного предсказателя-кандидата вектора движения из множества предсказателей-кандидатов вектора движения и декодированной информации о векторе движения, генерируют векторные разности между виртуальным вектором движения и множеством предсказателей-кандидатов вектора движения, сравнивают сгенерированные векторные разности с декодированной информацией о векторе движения, и выборочно исключают заранее определенный предсказатель-кандидат вектора движения из множества предсказателей-кандидатов вектора движения; и определяют предсказатель вектора движения предсказателей-кандидатов вектора движения, которые не исключаются из множества предсказателей-кандидатов вектора движения, в качестве предсказателя вектора движения текущего блока и восстанавливают вектор движения текущего блока на основании определенного предсказателя вектора движения и декодированной информации о векторе движения.[24] According to an aspect of another illustrative embodiment, a method for decoding a motion vector is provided, the method including the steps of: decoding information about a motion vector of a current block; generating a virtual motion vector using a predetermined motion vector predictor candidate from a plurality of motion vector predictor candidates and decoded motion vector information, generating vector differences between a virtual motion vector and a plurality of motion vector predictors, comparing the generated vector differences with decoded information about motion vector, and selectively exclude a predetermined predictor candidate motion vector from a set of motion vector predictor candidates; and determining the motion vector predictor of the motion vector predictor candidates that are not excluded from the plurality of motion vector predictors as the motion vector predictor of the current block, and restoring the motion vector of the current block based on the determined motion vector predictor and decoded motion vector information.

[25] Согласно аспекту другого иллюстративного варианта осуществления, предусмотрено устройство для кодирования вектора движения, причем устройство включает в себя: блок оценки вектора движения, который генерирует информацию о векторе движения на основании вектора движения текущего блока и предсказателя вектора движения текущего блока путем оценивания вектора движения текущего блока и определяет первый предсказатель-кандидат вектора движения из множества предсказателей-кандидатов вектора движения в качестве предсказателя вектора движения текущего блока на основании результата оценивания; блок определения кандидата, который генерирует виртуальный вектор движения с использованием второго предсказателя-кандидата вектора движения из множества предсказателей-кандидатов вектора движения и информации о векторе движения, генерирует векторные разности между виртуальным вектором движения и множеством предсказателей-кандидатов вектора движения, сравнивает векторные разности с информацией о векторе движения, и выборочно исключает второй предсказатель-кандидат вектора движения из множества предсказателей-кандидатов вектора движения; и кодер вектора движения, который кодирует информацию о векторе движения и информацию о предсказателе вектора движения текущего блока.[25] According to an aspect of another illustrative embodiment, there is provided an apparatus for encoding a motion vector, the apparatus including: a motion vector estimator that generates motion vector information based on a motion vector of the current block and a motion vector predictor of the current block by estimating the motion vector the current block and determines the first predictor candidate motion vector from the set of predictor candidates of the motion vector as a predictor of the vector d izheniya current block based on the estimation result; a candidate determination unit that generates a virtual motion vector using a second motion vector predictor candidate from a plurality of motion vector predictor candidates and motion vector information generates vector differences between a virtual motion vector and a plurality of motion vector predictors, compares vector differences with information about the motion vector, and selectively excludes the second predictor candidate motion vector from the set of predictor candidates vector motion; and a motion vector encoder that encodes motion vector information and motion vector predictor information of the current block.

[26] Согласно аспекту другого иллюстративного варианта осуществления, предусмотрено устройство для декодирования вектора движения, причем устройство включает в себя: декодер вектора движения, который декодирует информацию о векторе движения текущего блока; блок определения кандидата, который генерирует виртуальный вектор движения с использованием заранее определенного предсказателя-кандидата вектора движения из множества предсказателей-кандидатов вектора движения и декодированной информации о векторе движения, генерирует векторные разности между виртуальным вектором движения и множеством предсказателей-кандидатов вектора движения, сравнивает сгенерированные векторные разности с декодированной информацией о векторе движения, и выборочно исключает заранее определенный предсказатель-кандидат вектора движения из множества предсказателей-кандидатов вектора движения; и блок восстановления вектора движения, который определяет предсказатель-кандидат вектора движения предсказателей-кандидатов вектора движения, которые не исключаются из множества предсказателей-кандидатов вектора движения, в качестве предсказателя вектора движения текущего блока и восстанавливает вектор движения текущего блока на основании определенного предсказателя вектора движения и декодированной информации о векторе движения.[26] According to an aspect of another illustrative embodiment, an apparatus for decoding a motion vector is provided, the apparatus including: a motion vector decoder that decodes information about a motion vector of a current block; a candidate determination unit that generates a virtual motion vector using a predetermined motion vector predictor candidate from a plurality of motion vector predictor candidates and decoded motion vector information generates vector differences between a virtual motion vector and a plurality of motion vector predictors, compares the generated vector differences with decoded motion vector information, and selectively excludes a predetermined prediction spruce candidate motion vector from the set of predictor candidates motion vector; and a motion vector recovery unit that determines a motion vector predictor candidate of the motion vector predictor candidates that are not excluded from the plurality of motion vector predictor candidates as a motion vector predictor of the current block and restores a motion vector of the current block based on the determined motion vector predictor and decoded motion vector information.

[27] Согласно аспекту другого иллюстративного варианта осуществления, предусмотрен машиночитаемый носитель записи, в котором содержится компьютерная программа для выполнения способов кодирования и декодирования вектора движения.[27] According to an aspect of another illustrative embodiment, a computer-readable recording medium is provided that contains a computer program for performing motion vector encoding and decoding methods.

Варианты осуществления изобретенияEmbodiments of the invention

[28] Далее, один или более иллюстративных вариантов осуществления будет описан более полно со ссылкой на прилагаемые чертежи. Такие выражения, как “по меньшей мере, один из”, предшествующие списку элементов, изменяют список элементов в целом и не изменяют отдельные элементы списка.[28] Next, one or more illustrative embodiments will be described more fully with reference to the accompanying drawings. Expressions such as “at least one of” preceding the list of items change the list of items as a whole and do not change individual items in the list.

[29] Далее, 'изображение' может обозначать неподвижное изображение для видео или движущееся изображение, то есть само видео.[29] Further, the 'image' may mean a still image for a video or a moving image, that is, the video itself.

[30] на фиг. 1 показана блок-схема устройства 100 для кодирования изображения, согласно иллюстративному варианту осуществления.[30] in FIG. 1 is a block diagram of an image encoding apparatus 100 according to an exemplary embodiment.

[31] Согласно фиг. 1, устройство 100 для кодирования изображения включает в себя блок 110 разделения на максимальные единицы кодирования, блок 120 определения глубины кодирования, кодер 130 данных изображения, и кодер 140 информации кодирования.[31] Referring to FIG. 1, an image encoding apparatus 100 includes a maximum coding unit dividing unit 110, an encoding depth determining unit 120, an image data encoder 130, and an encoding information encoder 140.

[32] Блок 110 разделения на максимальные единицы кодирования может делить текущий кадр или срез на основе максимальной единицы кодирования, то есть единицы кодирования наибольшего размера. Таким образом, блок 110 разделения на максимальные единицы кодирования может делить текущий кадр или срез на по меньшей мере одну максимальную единицу кодирования.[32] The maximum coding unit division unit 110 may divide the current frame or slice based on the maximum coding unit, that is, the largest coding unit. Thus, the maximum coding unit division unit 110 may divide the current frame or slice into at least one maximum coding unit.

[33] Согласно иллюстративному варианту осуществления, единицу кодирования можно представлять с использованием максимальной единицы кодирования и глубины. Как описано выше, максимальная единица кодирования указывает единицу кодирования, имеющую наибольший размер из единиц кодирования текущего кадра, и глубина указывает степень иерархического снижения единицы кодирования. С увеличением глубины, единица кодирования может уменьшаться от максимальной единицы кодирования до минимальной единицы кодирования, причем глубина максимальной единицы кодирования определяется как минимальная глубина, и глубина минимальной единицы кодирования определяется как максимальная глубина. Поскольку размер единицы кодирования уменьшается от максимальной единицы кодирования с увеличением глубины, единица кодирования более низкого уровня k-й глубины может включать в себя множество единиц кодирования более низкого уровня (k+n)-й глубины (k и n - целые числа, большие или равные 1).[33] According to an illustrative embodiment, a coding unit may be represented using a maximum coding unit and depth. As described above, the maximum coding unit indicates the coding unit having the largest size of the coding units of the current frame, and the depth indicates the degree of hierarchical reduction of the coding unit. As the depth increases, the coding unit may decrease from the maximum coding unit to the minimum coding unit, wherein the depth of the maximum coding unit is defined as the minimum depth, and the depth of the minimum coding unit is determined as the maximum depth. Since the size of the coding unit decreases from the maximum coding unit with increasing depth, the coding unit of a lower level of the kth depth may include many coding units of a lower level of the (k + n) th depth (k and n are integers greater than or equal to 1).

[34] Согласно увеличению размера кадра, подлежащего кодированию, кодирование изображения в более крупной единице кодирования может приводить к более высокому коэффициенту сжатия изображения. Однако если более крупная единица кодирования фиксирована, эффективное кодирование изображения, отражающее непрерывно изменяющиеся характеристики изображения, может оказаться невозможным.[34] According to the increase in the size of the frame to be encoded, encoding an image in a larger encoding unit may result in a higher image compression ratio. However, if a larger coding unit is fixed, efficient coding of an image reflecting continuously changing image characteristics may not be possible.

[35] Например, при кодировании гладкой области, например, моря или неба, чем больше единица кодирования, тем больше можно повысить коэффициент сжатия. Однако при кодировании сложной области, например, людей или зданий, чем меньше единица кодирования, тем больше можно повысить коэффициент сжатия.[35] For example, when encoding a smooth area, such as the sea or sky, the larger the coding unit, the more the compression ratio can be increased. However, when encoding a complex area, such as people or buildings, the smaller the coding unit, the more the compression ratio can be increased.

[36] Соответственно, согласно иллюстративному варианту осуществления, для каждого кадра или среза можно устанавливать разную максимальную единицу кодирования и разную максимальную глубину. Поскольку максимальная глубина обозначает максимальное число раз, в которое может уменьшаться единица кодирования, размер каждой минимальной единицы кодирования, включенной в максимальную единицу кодирования, можно устанавливать по-разному согласно максимальной глубине.[36] Accordingly, according to an illustrative embodiment, for each frame or slice, a different maximum coding unit and a different maximum depth can be set. Since the maximum depth indicates the maximum number of times that a coding unit can be reduced, the size of each minimum coding unit included in the maximum coding unit can be set differently according to the maximum depth.

[37] Блок 120 определения глубины кодирования определяет максимальную глубину. Максимальную глубину можно определять на основании вычисления издержек «скорость-искажение» (RD). Максимальную глубину можно определять по-разному для каждого кадра или среза или для каждой максимальной единицы кодирования. Определенная максимальная глубина поступает на кодер 140 информации кодирования, и данные изображения согласно максимальным единицам кодирования поступают на кодер 130 данных изображения.[37] Block 120 determine the encoding depth determines the maximum depth. The maximum depth can be determined on the basis of the calculation of the cost of "speed-distortion" (RD). The maximum depth can be defined differently for each frame or slice, or for each maximum coding unit. The determined maximum depth is supplied to the encoding information encoder 140, and image data according to the maximum encoding units is supplied to the image data encoder 130.

[38] Максимальная глубина может обозначать единицу кодирования наименьшего размера, которая может быть включена в максимальную единицу кодирования, то есть минимальную единицу кодирования. Другими словами, максимальная единица кодирования может делиться на единицы кодирования более низкого уровня, имеющие разные размеры согласно разным глубинам, что будет описано ниже со ссылкой на фиг. 8A и 8B. Кроме того, единицы кодирования более низкого уровня, имеющие разные размеры, которые включены в максимальную единицу кодирования, можно предсказывать или преобразовывать на основе единиц обработки, имеющих разные размеры. Преобразование осуществляется для преобразования пиксельных значений пространственной области в коэффициенты частотной области и может представлять собой дискретное косинусное преобразование или преобразование Карунена-Лоэва (KLT). Другими словами, устройство 100 для кодирования изображения может осуществлять множество операций обработки для кодирования изображения на основе единиц обработки, имеющих различные размеры и различные формы. Для кодирования данных изображения осуществляются, такие операции обработки, как по меньшей мере одно из предсказание, преобразование и статистическое кодирование, причем для каждой операции можно использовать единицы обработки, имеющие одинаковый размер или разные размеры.[38] The maximum depth may indicate the smallest encoding unit that can be included in the maximum encoding unit, that is, the minimum encoding unit. In other words, the maximum coding unit may be divided into lower level coding units having different sizes according to different depths, which will be described below with reference to FIG. 8A and 8B. In addition, lower level coding units having different sizes that are included in the maximum coding unit can be predicted or converted based on processing units having different sizes. The conversion is performed to convert the pixel values of the spatial domain to the coefficients of the frequency domain and may be a discrete cosine transform or Karunen-Loeve transform (KLT). In other words, the image encoding apparatus 100 may perform a variety of processing operations for encoding an image based on processing units having different sizes and different shapes. To encode image data, processing operations such as at least one of prediction, conversion, and statistical coding are performed, and processing units having the same size or different sizes can be used for each operation.

[39] Например, устройство 100 для кодирования изображения может выбирать единицу обработки, которая отличается от единицы кодирования для предсказания единицы кодирования.[39] For example, the device 100 for encoding an image may select a processing unit that is different from a coding unit for predicting a coding unit.

[40] Когда размер единицы кодирования равен 2N×2N (где N - положительное целое число), единицами обработки для предсказания могут быть 2N×2N, 2N×N, N×2N и N×N. Другими словами, предсказание движения может осуществляться на основе единицы обработки, имеющей такую форму, что по меньшей мере одна из высоты и ширины единицы кодирования делится на две равные части. В дальнейшем, единица обработки, являющаяся основой предсказания, определяется как ‘единица предсказания’.[40] When the size of the coding unit is 2N × 2N (where N is a positive integer), the processing units for prediction may be 2N × 2N, 2N × N, N × 2N, and N × N. In other words, motion prediction can be based on a processing unit having a shape such that at least one of the height and width of the coding unit is divided into two equal parts. Hereinafter, the processing unit, which is the basis of the prediction, is defined as ‘prediction unit’.

[41] Режим предсказания может представлять собой по меньшей мере одно из внутреннего режима, взаимного режима и режима пропуска, и конкретный режим предсказания может осуществляться только для единицы предсказания, имеющей конкретный размер или конкретную форму. Например, внутренний режим может осуществляться только для единицы предсказания, размерами 2N×2N и N×N и квадратной формы. Кроме того, режим пропуска может осуществляться только для единицы предсказания размером 2N×2N. Если в единице кодирования существует множество единиц предсказания, то после осуществления предсказания для каждой единицы предсказания можно выбрать режим предсказания с наименьшими ошибками кодирования.[41] The prediction mode can be at least one of an internal mode, a mutual mode, and a skip mode, and a specific prediction mode can be performed only for a prediction unit having a specific size or specific shape. For example, the internal mode can be carried out only for the unit of prediction, sizes 2N × 2N and N × N and square. In addition, the skip mode can only be performed for a prediction unit of size 2N × 2N. If there are many prediction units in the coding unit, then after the prediction is completed, for each prediction unit, the prediction mode with the least coding errors can be selected.

[42] Альтернативно, устройство 100 для кодирования изображения может осуществлять преобразование данных изображения на основе единицы обработки, отличающейся размером от единицы кодирования. Для преобразования в единице кодирования, преобразование может осуществляться на основе единицы обработки, размер которой меньше или равен размеру единицы кодирования. В дальнейшем, единица обработки, являющаяся основой преобразования, определяется как ‘единица преобразования’.[42] Alternatively, the image encoding apparatus 100 may convert image data based on a processing unit different in size from the encoding unit. For conversion in a coding unit, the conversion may be based on a processing unit whose size is less than or equal to the size of the coding unit. Hereinafter, the processing unit, which is the basis of the conversion, is defined as ‘conversion unit’.

[43] Блок 120 определения глубины кодирования может определять единицы кодирования более низкого уровня, включенные в максимальную единицу кодирования, с использованием оптимизации RD на основании множителя Лагранжа. Другими словами, блок 120 определения глубины кодирования может определять форму множественных единиц кодирования более низкого уровня, полученных разделением максимальной единицы кодирования, причем множество единиц кодирования более низкого уровня имеют различные размеры согласно их глубинам. Кодер 130 данных изображения выводит битовый поток путем кодирования максимальной единицы кодирования на основании форм разделения, определенных блоком 120 определения глубины кодирования.[43] The coding depth determination unit 120 may determine lower level coding units included in the maximum coding unit using RD optimization based on the Lagrange multiplier. In other words, the coding depth determining unit 120 may determine the shape of multiple lower-level coding units obtained by dividing the maximum coding unit, the many lower-level coding units having different sizes according to their depths. The image data encoder 130 outputs a bit stream by encoding a maximum coding unit based on the separation forms determined by the encoding depth determining unit 120.

[44] Кодер 140 информации кодирования кодирует информацию о режиме кодирования максимальной единицы кодирования, определенной блоком 120 определения глубины кодирования. Другими словами, кодер 140 информации кодирования выводит битовый поток, кодируя информацию о форме разделения максимальной единицы кодирования, информацию о максимальной глубине и информацию о режиме кодирования единицы кодирования более низкого уровня для каждой глубины. Информация о режиме кодирования единицы кодирования более низкого уровня может включать в себя информацию о единице предсказания единицы кодирования более низкого уровня, информацию о режиме предсказания для каждой единицы предсказания и информацию о единице преобразования единицы кодирования более низкого уровня.[44] The coding information encoder 140 encodes coding mode information of a maximum coding unit determined by coding depth determining unit 120. In other words, the encoding information encoder 140 outputs a bit stream encoding information on a separation form of a maximum encoding unit, information on a maximum depth, and information on an encoding mode of a lower level encoding unit for each depth. Information about the encoding mode of the lower coding unit may include information about the prediction unit of the lower coding unit, information about the prediction mode for each prediction unit, and information about the conversion unit of the lower coding unit.

[45] Информация о форме разделения максимальной единицы кодирования может представлять собой информацию, указывающую, делится ли каждая единица кодирования. Например, когда максимальная единица кодирования делится и кодируется, информация, указывающая, делится ли максимальная единица кодирования, кодируется. Кроме того, когда единица кодирования более низкого уровня, полученная делением максимальной единицы кодирования, делится и кодируется, информация, указывающая делится ли единица кодирования более низкого уровня, кодируется. Информация, указывающая, делится ли единица кодирования более низкого уровня, может представлять собой информацию флага.[45] Information about the separation form of the maximum coding unit may be information indicating whether each coding unit is divided. For example, when the maximum coding unit is divided and encoded, information indicating whether the maximum coding unit is divided is encoded. Furthermore, when a lower level coding unit obtained by dividing the maximum coding unit is divided and encoded, information indicating whether the lower level coding unit is divided is encoded. Information indicating whether a lower level coding unit is divided may be flag information.

[46] Поскольку единицы кодирования более низкого уровня, имеющие разные размеры, существуют для каждой максимальной единицы кодирования, и информацию о режиме кодирования нужно определять для каждой единицы кодирования более низкого уровня, информацию о по меньшей мере одном режиме кодирования можно определять для одной максимальной единицы кодирования.[46] Since lower level coding units having different sizes exist for each maximum coding unit, and coding mode information needs to be determined for each lower coding unit, information about at least one coding mode can be determined for one maximum unit coding.

[47] Устройство 100 для кодирования изображения может генерировать единицы кодирования более низкого уровня путем деления на две равные части высоту и ширину максимальной единицы кодирования согласно увеличению глубины. Таким образом, когда размер единицы кодирования k-й глубины равен 2N×2N, размер единицы кодирования (k+1)-й глубины равен N×N.[47] The image encoding apparatus 100 may generate lower level coding units by dividing in two equal parts the height and width of the maximum coding unit according to the increase in depth. Thus, when the size of the coding unit of the kth depth is 2N × 2N, the size of the coding unit of the (k + 1) depth is N × N.

[48] Соответственно, устройство 100 для кодирования изображения может определять оптимальную форму разделения для каждой максимальной единицы кодирования на основании размеров максимальных единиц кодирования и максимальной глубины с учетом характеристик изображения. Гибко регулируя размер максимальной единицы кодирования с учетом характеристик изображения, и кодируя изображение путем разделения максимальной единицы кодирования на единицы кодирования более низкого уровня разных глубин, можно более эффективно кодировать изображения, имеющие различные разрешения.[48] Accordingly, the image encoding apparatus 100 may determine an optimal separation form for each maximum coding unit based on the sizes of the maximum coding units and the maximum depth, taking into account image characteristics. By flexibly adjusting the size of the maximum coding unit taking into account the characteristics of the image, and encoding the image by dividing the maximum coding unit into coding units of a lower level of different depths, it is possible to more effectively encode images having different resolutions.

[49] На фиг. 2 показана блок-схема устройства 200 для декодирования изображения, согласно иллюстративному варианту осуществления.[49] In FIG. 2 is a block diagram of an apparatus 200 for decoding an image according to an illustrative embodiment.

[50] Согласно фиг. 2, устройство 200 для декодирования изображения включает в себя блок 210 получения данных изображения, блок 220 выделения информации кодирования и декодер 230 данных изображения.[50] Referring to FIG. 2, an image decoding apparatus 200 includes an image data acquiring unit 210, encoding information extraction unit 220, and an image data decoder 230.

[51] Блок 210 получения данных изображения получает данные изображения согласно максимальным единицам кодирования, анализируя битовый поток, принятый устройством 200 для декодирования изображения, и выводит данные изображения на декодер 230 данных изображения. Блок 210 получения данных изображения может выделять информацию о максимальной единице кодирования текущего кадра или среза из заголовка текущего кадра или среза. Другими словами, блок 210 получения данных изображения делит битовый поток в максимальной единице кодирования, что позволяет декодеру 230 данных изображения декодировать данные изображения согласно максимальным единицам кодирования.[51] The image data acquisition unit 210 obtains image data according to the maximum coding units by analyzing the bit stream received by the image decoding apparatus 200 and outputs the image data to the image data decoder 230. The image data acquiring unit 210 may extract information about the maximum coding unit of the current frame or slice from the header of the current frame or slice. In other words, the image data acquiring unit 210 divides the bitstream into a maximum coding unit, which allows the image data decoder 230 to decode the image data according to the maximum coding units.

[52] Блок 220 выделения информации кодирования выделяет информацию о максимальной единице кодирования, максимальной глубине, форме разделения максимальной единицы кодирования, режиме кодирования единиц кодирования более низкого уровня из заголовка текущего кадра, анализируя битовый поток, принятый устройством 200 для декодирования изображения. Информация о форме разделения и информация о режиме кодирования поступают на декодер 230 данных изображения.[52] The coding information extraction unit 220 extracts information about a maximum coding unit, a maximum depth, a separation form of a maximum coding unit, a coding unit encoding mode of a lower level from the header of the current frame, analyzing the bitstream received by the image decoding apparatus 200. Information about the form of separation and information about the encoding mode is supplied to the decoder 230 of the image data.

[53] Информация о форме разделения максимальной единицы кодирования может включать в себя информацию о единицах кодирования более низкого уровня, имеющих разные размеры согласно глубинам и включенных в максимальную единицу кодирования, и может представлять собой информацию (например, информацию флага), указывающую, делится ли каждая единица кодирования. Информация о режиме кодирования может включать в себя информацию о единице предсказания согласно единицам кодирования более низкого уровня, информацию о режиме предсказания и информацию о единице преобразования.[53] Information on the separation form of the maximum coding unit may include information on lower level coding units having different sizes according to depths and included in the maximum coding unit, and may be information (eg, flag information) indicating whether each coding unit. The coding mode information may include prediction unit information according to coding units of a lower layer, prediction mode information, and transform unit information.

[54] Декодер 230 данных изображения восстанавливает текущий кадр, декодируя данные изображения каждой максимальной единицы кодирования на основании информации, выделяемой блоком 220 выделения информации кодирования.[54] The image data decoder 230 restores the current frame by decoding the image data of each maximum coding unit based on information extracted by the coding information extraction unit 220.

[55] Декодер 230 данных изображения может декодировать единицы кодирования более низкого уровня, включенные в максимальную единицу кодирования, на основании информации о форме разделения максимальной единицы кодирования. Процесс декодирования может включать в себя процесс взаимного предсказания, включающий в себя внутреннее предсказание и компенсацию движения, и процесс обратного преобразования.[55] The image data decoder 230 may decode lower-level coding units included in the maximum coding unit based on the split form information of the maximum coding unit. The decoding process may include a mutual prediction process including intra prediction and motion compensation, and an inverse transformation process.

[56] Декодер 230 данных изображения может осуществлять внутреннее предсказание или взаимное предсказание на основании информации о единице предсказания согласно единицам кодирования более низкого уровня и информации о режиме предсказания для предсказания единицы кодирования более низкого уровня. Декодер 230 данных изображения также может осуществлять обратное преобразование для каждой единицы кодирования более низкого уровня на основании информации о единице преобразования единицы кодирования более низкого уровня.[56] The image data decoder 230 may perform intra prediction or inter prediction based on prediction unit information according to coding units of a lower layer and prediction mode information for predicting a coding unit of a lower layer. The image data decoder 230 may also perform the inverse transform for each coding unit of a lower level based on information about a conversion unit of a coding unit of a lower level.

[57] Фиг. 3 иллюстрирует иерархические единицы кодирования согласно иллюстративному варианту осуществления.[57] FIG. 3 illustrates hierarchical coding units according to an illustrative embodiment.

[58] Согласно фиг. 3, иерархические единицы кодирования могут включать в себя единицы кодирования, для которых ширина×высота составляет 64×64, 32×32, 16×16, 8×8 и 4×4. Помимо этих единиц кодирования, имеющих правильную квадратную форму, также могут существовать единицы кодирования, для которых ширина×высота составляет 64×32, 32×64, 32×16, 16×32, 16×8, 8×16, 8×4 и 4×8. [58] Referring to FIG. 3, hierarchical coding units may include coding units for which the width × height is 64 × 64, 32 × 32, 16 × 16, 8 × 8, and 4 × 4. In addition to these coding units having the correct square shape, coding units may also exist for which the width × height is 64 × 32, 32 × 64, 32 × 16, 16 × 32, 16 × 8, 8 × 16, 8 × 4, and 4 × 8.

[59] На фиг. 3, для данных 310 изображения с разрешением 1920×1080, размер максимальной единицы кодирования задан равным 64×64, и максимальная глубина задана равной 2.[59] In FIG. 3, for image data 310 with a resolution of 1920 × 1080, the size of the maximum coding unit is set to 64 × 64, and the maximum depth is set to 2.

[60] Для данных изображения 320 с разрешением 1920×1080, размер максимальной единицы кодирования задан равным 64×64, и максимальная глубина задана равной 3. Для данных 330 изображения с разрешением 352×288, размер максимальной единицы кодирования задан равным 16×16, и максимальная глубина задана равной 2.[60] For image data 320 with a resolution of 1920 × 1080, the size of the maximum encoding unit is set to 64 × 64, and the maximum depth is set to 3. For data 330 images with a resolution of 352 × 288, the size of the maximum encoding unit is set to 16 × 16, and the maximum depth is set to 2.

[61] При высоком разрешении или большом объеме данных, максимальный размер единицы кодирования может быть относительно велик, чтобы повышать коэффициент сжатия и точно отражать характеристики изображения. Соответственно, для данных 310 и 320 изображения, имеющих более высокое разрешение, чем данные 330 изображения, в качестве размера максимальной единицы кодирования можно выбирать 64×64.[61] At high resolution or a large amount of data, the maximum size of a coding unit can be relatively large to increase the compression ratio and accurately reflect image characteristics. Accordingly, for image data 310 and 320 having a higher resolution than image data 330, 64 × 64 can be selected as the size of the maximum coding unit.

[62] Максимальная глубина указывает суммарное количество уровней в иерархических единицах кодирования. Поскольку максимальная глубина данных 310 изображения равна 2, единица 315 кодирования данных 310 изображения может включать в себя максимальную единицу кодирования, размер которой по длинной оси равен 64, и единицы кодирования более низкого уровня, размеры которых по длинной оси равны 32 и 16, согласно увеличению глубины.[62] The maximum depth indicates the total number of levels in hierarchical coding units. Since the maximum depth of the image data 310 is 2, the encoding unit 315 of the image data 310 may include a maximum encoding unit whose size along the long axis is 64, and lower level encoding units whose sizes along the long axis are 32 and 16, according to the increase depths.

[63] С другой стороны, поскольку максимальная глубина данных 330 изображения равна 2, единица 335 кодирования данных 330 изображения может включать в себя максимальную единицу кодирования, размер которой по длинной оси равен 16, и единицы кодирования, размеры которых по длинной оси равны 8 и 4, согласно увеличению глубины.[63] On the other hand, since the maximum depth of the image data 330 is 2, the encoding unit 335 of the image data 330 may include a maximum encoding unit whose size along the long axis is 16 and encoding units whose dimensions along the long axis are 8 and 4, according to the increase in depth.

[64] Однако, поскольку максимальная глубина данных изображения 320 равна 4, единица 325 кодирования данных изображения 320 может включать в себя максимальную единицу кодирования, размер которой по длинной оси равен 64, и единицы кодирования более низкого уровня, размеры которых по длинной оси равны 32, 16, 8 и 4, согласно увеличению глубины. Поскольку изображение кодируется на основе меньшей единицы кодирования более низкого уровня с увеличением глубины, иллюстративный вариант осуществления пригоден для кодирования изображения, включающего в себя больше малых сцен.[64] However, since the maximum depth of image data 320 is 4, the encoding unit 325 of image data 320 may include a maximum encoding unit whose size along the long axis is 64, and lower level encoding units whose dimensions along the long axis are 32 , 16, 8 and 4, according to the increase in depth. Since the image is encoded based on a lower coding unit of a lower level with increasing depth, an illustrative embodiment is suitable for encoding an image including more small scenes.

[65] На фиг. 4 показана блок-схема кодера 400 изображения на основе единицы кодирования, согласно иллюстративному варианту осуществления.[65] In FIG. 4 shows a block diagram of an image encoder 400 based on a coding unit, according to an illustrative embodiment.

[66] Блок 410 внутреннего предсказания осуществляет внутреннее предсказание на единицах предсказания внутреннего режима в текущем кадре 405, и блок 420 оценки движения и блок 425 компенсации движения осуществляют взаимное предсказание и компенсацию движения на единицах предсказания взаимного режима с использованием текущего кадра 405 и эталонного кадра 495.[66] The intra prediction unit 410 performs intra prediction on the intra mode prediction units in the current frame 405, and the motion estimation unit 420 and the motion compensation unit 425 perform mutual prediction and motion compensation on the mutual mode prediction units using the current frame 405 and the reference frame 495 .

[67] Остаточные значения генерируются на основании единиц предсказания, выводимых из блока 410 внутреннего предсказания, блока 420 оценки движения и блока 425 компенсации движения, и сгенерированные остаточные значения выводятся как квантованные коэффициенты преобразования посредством пропускания через преобразователь 430 и блок 440 квантования.[67] The residual values are generated based on the prediction units output from the intra prediction unit 410, the motion estimation unit 420 and the motion compensation unit 425, and the generated residual values are output as quantized transform coefficients by passing through the converter 430 and the quantization unit 440.

[68] Квантованные коэффициенты преобразования восстанавливаются к остаточным значениям путем пропускания через блок 460 обратного квантования и обратный преобразователь 470, и восстановленные остаточные значения подвергаются последующей обработке посредством пропускания через блок 480 устранения разделения на блоки и блок 490 контурной фильтрации и выводятся в качестве эталонного кадра 495. Квантованные коэффициенты преобразования могут выводиться в качестве битового потока 455 путем пропускания через статистический кодер 450.[68] The quantized transform coefficients are restored to residual values by passing through inverse quantization block 460 and inverse transformer 470, and the reconstructed residual values are further processed by passing through block elimination unit 480 and loop filtering unit 490 and output as a reference frame 495 The quantized transform coefficients may be output as bitstream 455 by passing through a statistical encoder 450.

[69] Для осуществления кодирования на основании способа кодирования согласно иллюстративному варианту осуществления, компоненты кодера 400 изображения, т.е. блок 410 внутреннего предсказания, блок 420 оценки движения, блок 425 компенсации движения, преобразователь 430, блок 440 квантования, статистический кодер 450, блок 460 обратного квантования, обратный преобразователь 470, блок 480 устранения разделения на блоки и блок 490 контурной фильтрации, осуществляют процессы кодирования изображения на основе максимальной единицы кодирования, единицы кодирования более низкого уровня согласно глубинам, единицы предсказания и единицы преобразования.[69] To encode based on the encoding method according to an illustrative embodiment, the components of the image encoder 400, i.e. intra prediction block 410, motion estimation block 420, motion compensation block 425, transducer 430, quantization block 440, statistic encoder 450, inverse quantization block 460, inverse transducer 470, block division elimination block and contour filtering block 490, coding processes are carried out images based on the maximum coding unit, lower level coding unit according to depths, prediction units and conversion units.

[70] На фиг. 5 показана блок-схема декодера 500 изображения на основе единицы кодирования, согласно иллюстративному варианту осуществления.[70] In FIG. 5 shows a block diagram of an image decoder 500 based on a coding unit, according to an illustrative embodiment.

[71] Согласно фиг. 5, битовый поток 505 проходит через анализатор 510, что позволяет декодировать кодированные данные изображения и анализировать информацию кодирования, используемую для декодирования. Кодированные данные изображения выводятся в качестве обратно-квантованных данных путем пропускания через статистический декодер 520 и блок 530 обратного квантования и восстанавливаются до остаточных значений путем пропускания через обратный преобразователь 540. Остаточные значения восстанавливаются согласно единицам кодирования путем суммирования с результатом внутреннее предсказание блока 550 внутреннего предсказания или результатом компенсации движения блока 560 компенсации движения. Восстановленные единицы кодирования используются для предсказания следующих единиц кодирования или следующего кадра путем пропускания через блок 570 устранения разделения на блоки и блок 580 контурной фильтрации.[71] Referring to FIG. 5, bitstream 505 passes through an analyzer 510, which allows decoding encoded image data and analyzing encoding information used for decoding. The encoded image data is output as inverse-quantized data by passing through a statistical decoder 520 and an inverse quantization unit 530 and reconstructed to residual values by passing through an inverse converter 540. Residual values are restored according to the coding units by summing the internal prediction unit 550 of the intra prediction or the result of the motion compensation unit 560 motion compensation. Recovered coding units are used to predict the next coding units or the next frame by passing block separation elimination block 570 and loop filtering block 580.

[72] Для осуществления декодирования на основании способа декодирования согласно иллюстративному варианту осуществления, компоненты декодера 500 изображения, т.е. анализатор 510, статистический декодер 520, блок 530 обратного квантования, обратный преобразователь 540, блок 550 внутреннего предсказания, блок 560 компенсации движения, блок 570 устранения разделения на блоки и блок 580 контурной фильтрации, осуществляют процессы декодирования изображения на основе максимальной единицы кодирования, единицы кодирования более низкого уровня согласно глубинам, единицы предсказания и единицы преобразования.[72] For decoding based on a decoding method according to an illustrative embodiment, the components of the image decoder 500, i.e. an analyzer 510, a statistical decoder 520, an inverse quantization unit 530, an inverse transducer 540, an intra prediction unit 550, a motion compensation unit 560, a block division elimination unit 570, and a loop filtering unit 580, image decoding processes are performed based on the maximum coding unit, coding unit lower level according to depths, prediction units and conversion units.

[73] В частности, блок 550 внутреннего предсказания и блок 560 компенсации движения определяют единицу предсказания и режим предсказания в единице кодирования более низкого уровня с учетом максимальной единицы кодирования и глубины, и обратный преобразователь 540 осуществляет обратное преобразование с учетом размера единицы преобразования.[73] In particular, the intra prediction unit 550 and the motion compensation unit 560 determine the prediction unit and the prediction mode in the lower level coding unit based on the maximum coding unit and depth, and the inverter 540 performs the inverse transformation based on the size of the transformation unit.

[74] Фиг. 6 иллюстрирует максимальную единицу кодирования, единицу кодирования более низкого уровня и единицу предсказания, согласно иллюстративному варианту осуществления.[74] FIG. 6 illustrates a maximum coding unit, a lower level coding unit, and a prediction unit, according to an illustrative embodiment.

[75] Устройство 100 для кодирования изображения, проиллюстрированное на фиг. 1, и устройство 200 для декодирования изображения, проиллюстрированное на фиг. 2, используют иерархические единицы кодирования для осуществления кодирования и декодирования с учетом характеристик изображения. Максимальная единица кодирования и максимальная глубина могут адаптивно устанавливаться согласно характеристикам изображения или переменно устанавливаться согласно требованиям пользователя.[75] The image encoding apparatus 100 illustrated in FIG. 1, and the image decoding apparatus 200 illustrated in FIG. 2, hierarchical coding units are used to encode and decode based on image characteristics. The maximum coding unit and maximum depth can be adaptively set according to image characteristics or variable set according to user requirements.

[76] На фиг. 6, структура 600 иерархических единиц кодирования имеет максимальную единицу 610 кодирования, высота и ширина которой составляют 64, и максимальная глубина которой равна 4. Глубина увеличивается по вертикальной оси структуры 600 иерархических единиц кодирования, и с увеличением глубины, значения высоты ширины единиц 620 - 650 кодирования более низкого уровня уменьшаются. Единицы предсказания максимальной единицы 610 кодирования и единицы 620 - 650 кодирования более низкого уровня показаны вдоль горизонтальной оси структуры 600 иерархических единиц кодирования.[76] In FIG. 6, the hierarchical coding unit structure 600 has a maximum coding unit 610, the height and width of which is 64, and a maximum depth of 4. The depth increases along the vertical axis of the hierarchical coding unit structure 600, and as the depth increases, the height values of the width of units 620 to 650 lower level encodings are reduced. Prediction units of the maximum coding unit 610 and lower coding units 620 to 650 are shown along the horizontal axis of the hierarchical coding unit structure 600.

[77] Максимальная единица 610 кодирования имеет глубину 0 и размер единицы кодирования, т.е. высоту и ширину, 64×64. Глубина увеличивается по вертикальной оси, и существуют единица 620 кодирования более низкого уровня размером 32×32 и глубиной 1, единица 630 кодирования более низкого уровня размером 16×16 и глубиной 2, единица 640 кодирования более низкого уровня размером 8x8 и глубиной 3, и единица 650 кодирования более низкого уровня размером 4×4 и глубиной 4. Единица 650 кодирования более низкого уровня размером 4×4 и глубиной 4 является минимальной единицей кодирования.[77] The maximum coding unit 610 has a depth of 0 and the size of the coding unit, i.e. height and width, 64 × 64. The depth increases along the vertical axis, and there are a lower level encoding unit 620 of size 32 × 32 and a depth of 1, a lower level encoding unit 630 of size 16 × 16 and a depth of 2, a lower level encoding unit 630 of size 8x8 and a depth of 3, and a unit 650 encoding a lower level of 4 × 4 and a depth of 4. Unit 650 encoding a lower level of 4 × 4 and a depth of 4 is the minimum coding unit.

[78] Согласно фиг. 6, примеры единицы предсказания показаны вдоль горизонтальной оси согласно каждой глубине. Таким образом, единица предсказания максимальной единицы 610 кодирования, глубина которой равна 0, может представлять собой единицу предсказания такого же размера, как единица 610 кодирования, т.е. 64×64, или единица 612 предсказания размером 64×32, единица 614 предсказания размером 32×64 или единица 616 предсказания размером 32×32, размер которой меньше, чем у единицы 610 кодирования размером 64×64.[78] Referring to FIG. 6, examples of a prediction unit are shown along a horizontal axis according to each depth. Thus, the prediction unit of the maximum coding unit 610, the depth of which is 0, may be a prediction unit of the same size as the coding unit 610, i.e. 64 × 64, or a 64 × 32 prediction unit 612, a 32 × 64 prediction unit 614, or a 32 × 32 prediction unit 616 that is smaller than the 64 × 64 encoding unit 610.

[79] Единица предсказания единицы 620 кодирования, глубина которой равна 1 и размер равен 32×32, может представлять собой единицу предсказания такого же размера, как единица 620 кодирования, т.е. 32×32, или единица 622 предсказания размером 32×16, единица 624 предсказания размером 16×32 или единица 626 предсказания размером 16×16, размер которой меньше, чем у единицы 620 кодирования размером 32×32.[79] The prediction unit of the coding unit 620, the depth of which is 1 and the size is 32 × 32, may be a prediction unit of the same size as the coding unit 620, i.e. 32 × 32, or a 32 × 16 prediction unit 622, a 16 × 32 prediction unit 624, or a 16 × 16 prediction unit 626 that is smaller than the 32 × 32 encoding unit 620.

[80] Единица предсказания единицы 630 кодирования, глубина которой равна 2 и размер равен 16×16, может представлять собой единицу предсказания такого же размера, как единица 630 кодирования, т.е. 16×16, или единица 632 предсказания размером 16×8, единица 634 предсказания размером 8×16 или единица 636 предсказания размером 8×8, размер которой меньше, чем у единицы 630 кодирования размером 16×16.[80] A prediction unit of a coding unit 630 whose depth is 2 and a size of 16 × 16 may be a prediction unit of the same size as the coding unit 630, ie 16 × 16, or a 16 × 8 prediction unit 632, an 8 × 16 prediction unit 634, or an 8 × 8 prediction unit 636 that is smaller than the 16 × 16 encoding unit 630.

[81] Единица предсказания единицы 640 кодирования, глубина которой равна 3 и размер равен 8×8, может представлять собой единицу предсказания такого же размера, как единица 640 кодирования, т.е. 8×8, или единица 642 предсказания размером 8×4, единица 644 предсказания размером 4×8 или единица 646 предсказания размером 4×4, размер которой меньше, чем у единицы 640 кодирования размером 8×8.[81] A prediction unit of a coding unit 640, the depth of which is 3 and a size of 8 × 8, may be a prediction unit of the same size as the coding unit 640, i.e. 8 × 8, or an 8 × 4 prediction unit 642, a 4 × 8 prediction unit 644, or a 4 × 4 prediction unit 646 smaller than that of an 8 × 8 encoding unit 640.

[82] Наконец, единица 650 кодирования, глубина которой равна 4 и размер равен 4×4, является единицей кодирования максимальной глубины, и единица предсказания единицы 650 кодирования может представлять собой единицу предсказания 650 размером 4×4. Однако единица кодирования максимальной глубины не всегда может иметь такой же размер, как единица предсказания. Аналогично единицам 610 - 650 кодирования, единица кодирования максимальной глубины может делиться на единицы предсказания, имеющие меньшие размеры, чем единица кодирования, и может осуществлять предсказание.[82] Finally, a coding unit 650, the depth of which is 4 and a size of 4 × 4, is a maximum depth coding unit, and the prediction unit of a coding unit 650 may be a 4 × 4 prediction unit 650. However, the maximum depth coding unit may not always be the same size as the prediction unit. Similar to coding units 610 to 650, the maximum depth coding unit may be divided into prediction units having smaller dimensions than the coding unit, and may predict.

[83] Фиг. 7 иллюстрирует единицу кодирования и единицу преобразования, согласно иллюстративному варианту осуществления.[83] FIG. 7 illustrates a coding unit and a conversion unit, according to an illustrative embodiment.

[84] Устройство 100 для кодирования изображения, проиллюстрированное на фиг. 1, и устройство 200 для декодирования изображения, проиллюстрированное на фиг. 2, осуществляют кодирование и декодирование с самой максимальной единицей кодирования или с единицами кодирования более низкого уровня, которые меньше или равны максимальной единице кодирования, полученными разделением максимальной единицы кодирования. В процессе кодирования и декодирования, размер единицы преобразования для преобразования выбираются так, чтобы обеспечивать наибольший коэффициент сжатия независимо от единицы кодирования и единицы предсказания. Например, согласно фиг. 7, когда текущая единица 710 кодирования имеет размер 64×64, преобразование может осуществляться с использованием единицы 720 преобразования размером 32×32.[84] The image encoding apparatus 100 illustrated in FIG. 1, and the image decoding apparatus 200 illustrated in FIG. 2, encoding and decoding is performed with the maximum coding unit or lower level coding units that are less than or equal to the maximum coding unit obtained by dividing the maximum coding unit. In the encoding and decoding process, the size of the transform unit for the transform is selected so as to provide the highest compression ratio regardless of the encoding unit or prediction unit. For example, as shown in FIG. 7, when the current coding unit 710 is 64 × 64 in size, the conversion can be performed using a 32 × 32 conversion unit 720.

[85] Фиг. 8A - 8D иллюстрируют формы разделения единицы 810 кодирования, единицы 860 предсказания и единицы 870 преобразования, согласно иллюстративному варианту осуществления.[85] FIG. 8A through 8D illustrate separation forms of a coding unit 810, a prediction unit 860, and a conversion unit 870, according to an illustrative embodiment.

[86] Фиг. 8A и 8B иллюстрируют единицу 810 кодирования и единицу 860 предсказания, согласно иллюстративному варианту осуществления.[86] FIG. 8A and 8B illustrate a coding unit 810 and a prediction unit 860, according to an illustrative embodiment.

[87] На фиг. 8A показана форма разделения, выбранная устройством 100 для кодирования изображения, проиллюстрированного на фиг. 1, для кодирования максимальной единицы 810 кодирования. Устройство 100 для кодирования изображения делит максимальную единицу 810 кодирования на различные формы, осуществляет кодирование и выбирает оптимальную форму разделения, сравнивая результаты кодирования различных форм разделения друг с другом на основании издержек RD. Когда оптимально кодировать максимальную единицу 810 кодирования как есть, максимальную единицу 810 кодирования можно кодировать без разделения максимальной единицы 810 кодирования как проиллюстрировано на фиг. 8A - 8D.[87] In FIG. 8A shows a separation form selected by apparatus 100 for encoding an image illustrated in FIG. 1, for encoding a maximum coding unit 810. The image encoding apparatus 100 divides the maximum encoding unit 810 into various forms, performs encoding and selects an optimal separation form by comparing the encoding results of the various separation forms with each other based on the costs of the RD. When optimally encoding the maximum coding unit 810 as is, the maximum coding unit 810 can be encoded without dividing the maximum coding unit 810 as illustrated in FIG. 8A - 8D.

[88] Согласно фиг. 8B, максимальная единица 810 кодирования, глубина которой равна 0, кодируется путем ее разделения на единицы кодирования более низкого уровня, глубины которых больше или равны 1. Таким образом, максимальная единица 810 кодирования делится на 4 единицы кодирования более низкого уровня глубины которых равны 1, и все или некоторые из единиц кодирования более низкого уровня, глубины которых равны 1, делятся на единицы кодирования более низкого уровня, глубины которых равны 2.[88] Referring to FIG. 8B, the maximum coding unit 810, the depth of which is 0, is encoded by dividing it into lower coding units whose depths are greater than or equal to 1. Thus, the maximum coding unit 810 is divided into 4 coding units of a lower depth level of 1, and all or some of the coding units of a lower level whose depths are 1 are divided into coding units of a lower level whose depths are 2.

[89] Единица кодирования более низкого уровня, расположенная на верхней правой стороне, и единица кодирования более низкого уровня, расположенная на нижней левой стороне, из единиц кодирования более низкого уровня, глубины которых равны 1, делятся на единицы кодирования более низкого уровня, глубины которых больше или равны 2. Некоторые из единиц кодирования более низкого уровня, глубины которых больше или равны 2, могут делиться на единицы кодирования более низкого уровня, глубины которых больше или равны 3.[89] The lower-level coding unit located on the upper right side and the lower-level coding unit located on the lower left side, from lower-level coding units whose depths are 1, are divided into lower-level coding units whose depths greater than or equal to 2. Some of the lower level encoding units whose depths are greater than or equal to 2 can be divided into lower level encoding units whose depths are greater than or equal to 3.

[90] На фиг. 8B показана форма разделения единицы 860 предсказания для максимальной единицы 810 кодирования.[90] In FIG. 8B shows a separation form of a prediction unit 860 for a maximum coding unit 810.

[91] Согласно фиг. 8B, единица 860 предсказания для максимальной единицы 810 кодирования может делиться иначе, чем максимальная единица 810 кодирования. Другими словами, единица предсказания для каждой из единиц кодирования более низкого уровня, может быть меньше соответствующей единицы кодирования более низкого уровня.[91] Referring to FIG. 8B, the prediction unit 860 for the maximum coding unit 810 may be divided differently than the maximum coding unit 810. In other words, the prediction unit for each of the lower level coding units may be less than the corresponding lower level coding unit.

[92] Например, единица предсказания для единицы 854 кодирования более низкого уровня, расположенной на нижней правой стороне, из единиц кодирования более низкого уровня, глубины которых равны 1, может быть меньше единицы 854 кодирования более низкого уровня. Кроме того, единицы предсказания для некоторых единиц 814, 816, 850 и 852 кодирования более низкого уровня из единиц 814, 816, 818, 828, 850 и 852 кодирования более низкого уровня, глубины которых равны 2, могут быть меньше единиц 814, 816, 850 и 852 кодирования более низкого уровня, соответственно.[92] For example, a prediction unit for a lower layer encoding unit 854 located on the lower right side of among lower level encoding units whose depths are 1 may be less than a lower level encoding unit 854. In addition, the prediction units for some lower-level coding units 814, 816, 850, and 852 of the lower-level coding units 814, 816, 818, 828, 850, and 852, whose depths are 2, may be less than 814, 816, 850 and 852 coding lower level, respectively.

[93] Кроме того, единицы предсказания для единиц 822, 832 и 848 кодирования более низкого уровня, глубины которых равны 3, могут быть меньше единиц 822, 832 и 848 кодирования более низкого уровня, соответственно. Единицы предсказания могут иметь форму, при которой соответствующие единицы кодирования более низкого уровня делятся на две равные части в направлении высоты или ширины или иметь форму, при которой соответствующие единицы кодирования более низкого уровня делятся на четыре равные части в направлениях высоты и ширины.[93] Furthermore, prediction units for lower level coding units 822, 832 and 848, whose depths are 3, may be less than lower level coding units 822, 832 and 848, respectively. Prediction units may take the form in which the corresponding lower-level coding units are divided into two equal parts in the direction of height or width, or in the form in which the corresponding lower-level coding units are divided into four equal parts in the direction of height and width.

[94] Фиг. 8C и 8D иллюстрируют единицу 860 предсказания и единицу 870 преобразования, согласно иллюстративному варианту осуществления.[94] FIG. 8C and 8D illustrate a prediction unit 860 and a transform unit 870, according to an illustrative embodiment.

[95] На фиг. 8C показана форма разделения единицы 860 предсказания для максимальной единицы 810 кодирования, показанной на фиг. 8B, и на фиг. 8D показана форма разделения единицы 870 преобразования максимальной единицы 810 кодирования.[95] In FIG. 8C shows a separation form of the prediction unit 860 for the maximum coding unit 810 shown in FIG. 8B, and in FIG. 8D shows a separation form of a conversion unit 870 of a maximum coding unit 810.

[96] Согласно фиг. 8D, форму разделения единицы 870 преобразования можно устанавливать иначе, чем для единицы 860 предсказания.[96] Referring to FIG. 8D, the division form of the transform unit 870 can be set differently than for the prediction unit 860.

[97] Например, хотя единица предсказания для единицы кодирования 854, глубина которой равна 1, выбирается с формой, при которой высота единицы кодирования 854 делится на две равные части, единицу преобразования можно выбирать такого же размера, как единица кодирования 854. Аналогично, хотя единицы предсказания для единиц 814 и 850 кодирования, глубины которых равны 2 выбираются с формой, при которой высота каждой из единиц 814 и 850 кодирования делится на две равные части, единицу преобразования можно выбирать такого же размера, как первоначальный размер каждой из единиц 814 и 850 кодирования.[97] For example, although the prediction unit for the coding unit 854, the depth of which is 1, is selected with a form in which the height of the coding unit 854 is divided into two equal parts, the conversion unit can be selected the same size as the coding unit 854. Similarly, although prediction units for coding units 814 and 850, the depths of which are 2, are selected with a form in which the height of each of the coding units 814 and 850 is divided into two equal parts, the conversion unit can be selected the same size as the original size p of each of the units 814 and 850 coding.

[98] Единицу преобразования можно выбирать с меньшим размером, чем единица предсказания. Например, когда единица предсказания для единицы 852 кодирования, глубина которой равна 2, выбирается с формой, при которой ширина единицы 852 кодирования делится на две равные части, единицу преобразования можно выбирать с формой, при которой единица 852 кодирования делится в направлениях высоты и ширины на четыре равные части, которые имеют меньший размер, чем форма единицы предсказания.[98] A conversion unit can be selected with a smaller size than a prediction unit. For example, when a prediction unit for a coding unit 852 whose depth is 2 is selected with a shape in which the width of the coding unit 852 is divided into two equal parts, a transform unit can be selected with a shape in which the coding unit 852 is divided in the height and width directions by four equal parts that are smaller than the shape of the prediction unit.

[99] На фиг. 9 показана блок-схема устройства 900 для кодирования вектора движения, согласно иллюстративному варианту осуществления.[99] In FIG. 9 is a block diagram of an apparatus 900 for encoding a motion vector according to an illustrative embodiment.

[100] Устройство 900 для кодирования вектора движения может входить в состав устройства 100 для кодирования изображения, проиллюстрированного на фиг. 1, или кодера 400 изображения, проиллюстрированного на фиг. 4, подробно изображено на фиг. 9. Согласно фиг. 9, устройство 900 для кодирования вектора движения включает в себя блок 910 оценки вектора движения, блок 920 определения кандидата и кодер 930 вектора движения.[100] The apparatus 900 for encoding a motion vector may be included in the apparatus 100 for encoding the image illustrated in FIG. 1, or the image encoder 400 illustrated in FIG. 4 is shown in detail in FIG. 9. According to FIG. 9, a motion vector encoding apparatus 900 includes a motion vector estimator 910, a candidate determination unit 920, and a motion vector encoder 930.

[101] Для декодирования кодированных блоков с использованием взаимного предсказания, т.е. временного предсказания, требуется информация о векторе движения, которая указывает относительную разность местоположений между текущим блоком и аналогичным блоком в эталонном изображении. Соответственно, информация о векторе движения кодируется с одновременным кодированием изображения и внедряется в битовый поток. При непосредственном кодировании и внедрении информации о векторе движения, служебная нагрузка, используемая для кодирования информации о векторе движения, увеличивается, и, таким образом, коэффициент сжатия данных изображения снижается.[101] For decoding encoded blocks using mutual prediction, ie temporal prediction, information is required on the motion vector, which indicates the relative difference of locations between the current block and a similar block in the reference image. Accordingly, information about the motion vector is encoded with simultaneous encoding of the image and embedded in the bitstream. With the direct encoding and implementation of information about the motion vector, the overhead used to encode information about the motion vector increases, and thus, the compression ratio of the image data is reduced.

[102] Соответственно, при кодировании изображения, предсказывается вектор движения текущего блока, и кодированию и внедрению подвергается только разность первоначального вектора движения между предсказателем вектора движения, сгенерированным в результате предсказания, и первоначальным вектором движения, что позволяет сжимать информацию о векторе движения.[102] Accordingly, when encoding an image, the motion vector of the current block is predicted, and only the difference of the initial motion vector between the motion vector predictor generated by the prediction and the original motion vector is subjected to encoding and embedding, which allows compressing information about the motion vector.

[103] В предсказательном кодировании вектора движения, могут существовать явный режим и неявный режим.[103] In predictive coding of a motion vector, an explicit mode and an implicit mode may exist.

[104] В таком кодеке, как «усовершенствованное кодирование видеосигнала» MPEG-4 H.264/MPEG-4 (AVC), векторы движения ранее закодированных блоков, соседствующих с текущим блоком, можно использовать для предсказания вектора движения текущего блока. Медиана векторов движения ранее закодированных блоков, соседствующих с левой стороной, верхней стороной и правой верхней стороной текущего блока, используется в качестве предсказателя вектора движения текущего блока. Поскольку векторы движения всех блоков, закодированных с использованием взаимного предсказания, предсказываются с использованием одного и того же способа, информация о предсказателе вектора движения текущего блока может не кодироваться отдельно. Однако, устройство 100 для кодирования изображения или кодер 400 изображения согласно одному или более иллюстративным вариантам осуществления использует как неявный режим, в котором информация о предсказателе вектора движения не кодируется отдельно, так и явный режим, в котором информация о предсказателе вектора движения не кодируется, для точного предсказания вектора движения. В явном режиме, информация о предсказателе вектора движения, используемом в качестве предсказателя вектора движения текущего блока из множества предсказателей-кандидатов вектора движения, кодируется и внедряется в битовый поток в качестве параметра последовательности, параметра среза или параметра блока.[104] In a codec such as Advanced Video Coding MPEG-4 H.264 / MPEG-4 (AVC), motion vectors of previously encoded blocks adjacent to the current block can be used to predict the motion vector of the current block. The median of the motion vectors of previously encoded blocks adjacent to the left side, upper side, and upper right side of the current block is used as a predictor of the motion vector of the current block. Since the motion vectors of all blocks encoded using mutual prediction are predicted using the same method, information about the motion vector predictor of the current block may not be encoded separately. However, the image encoding apparatus 100 or image encoder 400 according to one or more illustrative embodiments uses both an implicit mode in which motion vector predictor information is not encoded separately and an explicit mode in which motion vector predictor information is not encoded for accurate prediction of the motion vector. In explicit mode, information about the motion vector predictor used as the motion vector predictor of the current block from the set of motion vector predictor candidates is encoded and embedded into the bitstream as a sequence parameter, slice parameter, or block parameter.

[105] Фиг. 9 иллюстрирует устройство, которое осуществляет предсказательное кодирование, в то время как вектор движения кодируется согласно явному режиму.[105] FIG. 9 illustrates a device that performs predictive coding, while a motion vector is encoded according to an explicit mode.

[106] Блок 910 оценки вектора движения оценивает вектор движения текущего блока. Поиск блока, аналогичного или идентичного текущему блоку, осуществляется в по меньшей мере одном эталонном изображении, и, в результате поиска, оценивается вектор движения, который является относительной разностью местоположений между текущим блоком и искомым эталонным изображением. Поиск блока, аналогичного или идентичного текущему блоку, осуществляется на основании вычисления суммы абсолютной разности (SAD), и, в результате поиска, можно оценивать вектор движения текущего блока.[106] The motion vector estimator 910 estimates the motion vector of the current block. A block similar or identical to the current block is searched in at least one reference image, and, as a result of the search, a motion vector is estimated, which is the relative position difference between the current block and the desired reference image. A block similar or identical to the current block is searched based on the calculation of the absolute difference sum (SAD), and, as a result of the search, the motion vector of the current block can be estimated.

[107] Кроме того, блок 910 оценки вектора движения предсказывает вектор движения текущего блока на основании векторов движения блоков, включенных в ранее закодированную область, соседствующую с текущим блоком. Другими словами, векторы движения блоков, включенных в ранее закодированную область, соседствующую с текущим блоком, задаются как предсказатели-кандидаты вектора движения, и определяется предсказатель-кандидат вектора движения, который наиболее аналогичен оцененному вектору движения текущего блока из предсказателей-кандидатов вектора движения.[107] In addition, the motion vector estimator 910 predicts the motion vector of the current block based on the motion vectors of the blocks included in a previously encoded region adjacent to the current block. In other words, the motion vectors of blocks included in a previously encoded region adjacent to the current block are set as motion vector predictors, and a motion vector predictor is determined that is most similar to the estimated motion vector of the current block from motion vector predictor candidates.

[108] В таком кодеке, как MPEG-4 H.264/MPEG-4 AVC, медиана векторов движения ранее закодированных блоков, соседствующих с левой стороной, верхней стороной и правой верхней стороной текущего блока используется в качестве предсказателя вектора движения текущего блока. Поскольку вектор движения закодированного блока предсказывается с использованием векторов движения ранее закодированных блоков, и используется только один предсказатель вектора движения, информация о предсказателе вектора движения, может не кодироваться отдельно. Другими словами, количество предсказателей вектора движения блока, закодированного с использованием взаимного предсказания, равно единице.[108] In a codec such as MPEG-4 H.264 / MPEG-4 AVC, the median of the motion vectors of previously encoded blocks adjacent to the left side, upper side, and upper right side of the current block is used as a predictor of the motion vector of the current block. Since the motion vector of the encoded block is predicted using the motion vectors of the previously encoded blocks, and only one motion vector predictor is used, information about the motion vector predictor may not be separately encoded. In other words, the number of predictors of the motion vector of a block encoded using mutual prediction is one.

[109] Однако, когда вектор движения текущего блока точно предсказан, вектор движения можно кодировать с высоким коэффициентом сжатия. В связи с этим, согласно иллюстративному варианту осуществления, один из множества предсказателей-кандидатов вектора движения выбирается и используется в качестве предсказателя вектора движения текущего блока, что позволяет кодировать вектор движения текущего блока с высоким коэффициентом сжатия. Далее, будет подробно описан способ кодирования вектора движения текущего блока с использованием множества предсказателей-кандидатов вектора движения.[109] However, when the motion vector of the current block is accurately predicted, the motion vector can be encoded with a high compression ratio. In this regard, according to an illustrative embodiment, one of the plurality of motion vector predictor candidates is selected and used as a motion vector predictor of the current block, which allows encoding a motion vector of the current block with a high compression ratio. Next, a method for encoding a motion vector of a current block using a plurality of motion vector predictor candidates will be described in detail.

[110] Фиг. 10A и 10B иллюстрируют предсказатели-кандидаты вектора движения, согласно иллюстративному варианту осуществления.[110] FIG. 10A and 10B illustrate motion vector predictor candidates according to an illustrative embodiment.

[111] Согласно фиг. 10A, согласно способу предсказания вектора движения, один из векторов движения ранее закодированных блоков, соседствующих с текущим блоком, можно использовать в качестве предсказателя вектора движения текущего блока.[111] Referring to FIG. 10A, according to the motion vector prediction method, one of the motion vectors of previously encoded blocks adjacent to the current block can be used as a predictor of the motion vector of the current block.

[112] Из блоков, соседствующих с верхней стороной текущего блока, все векторы движения блока a0 на самой левой стороне, блок b0 на самой верхней стороне, соседствующей с левой стороной, блок c, соседствующий с правой верхней стороной, блок d, соседствующий с левой верхней стороной, и блок e, соседствующий с левой нижней стороной, можно использовать в качестве предсказателей-кандидатов вектора движения текущего блока.[112] Of the blocks adjacent to the upper side of the current block, all the motion vectors of block a0 are on the very left side, block b0 is on the highest side, adjacent to the left side, block c is adjacent to the upper right side, block d is adjacent to the left the upper side, and block e adjacent to the lower left side can be used as predictor candidates for the motion vector of the current block.

[113] Согласно способу кодирования и декодирования изображения согласно одному или более иллюстративным вариантам осуществления, кодирование и декодирование изображения осуществляются на основе единиц кодирования, имеющих различные размеры, и отличающихся глубинами, и, таким образом, вектор движения блока, соседствующего с левой нижней стороной, можно использовать в качестве кандидата в предсказатели вектора движения.[113] According to the method of encoding and decoding an image according to one or more illustrative embodiments, the encoding and decoding of the image is carried out on the basis of coding units having different sizes and different depths, and thus a motion vector of a block adjacent to the lower left side, can be used as a candidate for motion vector predictors.

[114] Согласно фиг. 10B, векторы движения всех блоков, соседствующих с текущим блоком, можно использовать в качестве предсказателей-кандидатов вектора движения. Другими словами, векторы движения не только блока a0 на самой левой стороне из блоков, соседствующих с верхней стороной, но и все блоки a0 - aN, соседствующие с верхней стороной, можно использовать в качестве предсказателей-кандидатов вектора движения. Кроме того, векторы движения не только блока b0 на самой верхней стороне из блоков, соседствующих с левой стороной, но и все блоки b0 - bN, соседствующие с левой стороной, можно использовать в качестве предсказателей-кандидатов вектора движения.[114] Referring to FIG. 10B, the motion vectors of all blocks adjacent to the current block can be used as motion vector predictor candidates. In other words, the motion vectors not only of the block a0 on the left side of the blocks adjacent to the upper side, but also all blocks a0 - aN adjacent to the upper side, can be used as motion vector predictor candidates. In addition, the motion vectors of not only the block b0 on the uppermost side of the blocks adjacent to the left side, but also all the blocks b0 - bN adjacent to the left side, can be used as motion vector predictor candidates.

[115] Кроме того, медиану векторов движения соседних блоков можно использовать в качестве предсказателей-кандидатов вектора движения. Другими словами, медиану mv_a0, mv_b0 или mv_c можно использовать в качестве кандидата в предсказатели вектора движения текущего блока. Здесь, mv_a0 это вектор движения блока a0, mv_b0 это вектор движения блока b0, и mv_c это вектор движения блока c.[115] In addition, the median of the motion vectors of neighboring blocks can be used as predictor candidates for the motion vector. In other words, the median mv_a0, mv_b0 or mv_c can be used as a candidate for the predictors of the motion vector of the current block. Here, mv_a0 is the motion vector of block a0, mv_b0 is the motion vector of block b0, and mv_c is the motion vector of block c.

[116] Однако предсказатели-кандидаты вектора движения текущего блока могут быть ограничены согласно размерам текущего блока и соседних блоков, что будет подробно описано со ссылкой на фиг. 10C-10E.[116] However, candidate motion vector predictors of the current block may be limited according to the sizes of the current block and neighboring blocks, which will be described in detail with reference to FIG. 10C-10E.

[117] Фиг. 10C-10E иллюстрируют блоки различных размеров, которые соседствуют с текущим блоком, согласно иллюстративному варианту осуществления.[117] FIG. 10C-10E illustrate blocks of various sizes that are adjacent to the current block, according to an illustrative embodiment.

[118] Как описано выше, согласно способу кодирования и декодирования изображения согласно одному или более иллюстративным вариантам осуществления, единицы кодирования и единица предсказания, имеющие различные размеры, определенные согласно глубинам, можно использовать для кодирования изображения. Соответственно, поскольку блоки, соседствующие с текущим блоком, могут иметь различные размеры, когда размер текущего блока и размеры некоторых соседних блоков, значительно отличаются друг от друга, векторы движения некоторых соседних блоков можно не использовать в качестве предсказателей-кандидатов вектора движения.[118] As described above, according to the method of encoding and decoding an image according to one or more illustrative embodiments, coding units and a prediction unit having different sizes determined according to depths can be used to encode the image. Accordingly, since the blocks adjacent to the current block may have different sizes, when the size of the current block and the sizes of some neighboring blocks are significantly different from each other, the motion vectors of some neighboring blocks may not be used as motion vector predictor candidates.

[119] Согласно фиг. 10C, блоки 1014-1018, соседствующие с верхней стороной текущего блока 1010 меньше текущего блока 1010. Поскольку вектор движения блока 1012, соседствующего с текущим блоком 1010 и имеющего такой же размер, как текущий блок 1010, может быть идентичен или аналогичен вектору движения текущего блока 1010, блок 910 оценки вектора движения может использовать только вектор движения блока 1012 в качестве кандидата в предсказатели вектора движения.[119] Referring to FIG. 10C, blocks 1014-1018 adjacent to the upper side of the current block 1010 are smaller than the current block 1010. Since the motion vector of block 1012 adjacent to the current block 1010 and having the same size as the current block 1010 may be identical or similar to the motion vector of the current block 1010, motion vector estimator 910 can only use the motion vector of block 1012 as a candidate for motion vector predictors.

[120] Хотя размеры не одинаковы, в качестве предсказателей-кандидатов вектора движения можно использовать только векторы движения соседних блоков, имеющих заранее определенные размеры или более. Например, в качестве предсказателей-кандидатов вектора движения можно использовать только векторы движения блоков 1012 и 1018, размеры которых составляют 1/4 размера текущего блока 1010 или более.[120] Although the sizes are not the same, only motion vectors of neighboring blocks having predetermined sizes or more can be used as predictor candidates for the motion vector. For example, only motion vectors of blocks 1012 and 1018, the sizes of which are 1/4 of the size of the current block 1010 or more, can be used as predictors of motion vector candidates.

[121] Согласно фиг. 10D, размер блока 1022, соседствующего с левой стороной текущего блока 1020, превышает размер текущего блока 1020 в 16 раз, в связи с чем, существует большая разница в размерах. Вследствие этого большого различия, вектор движения блока 1022, соседствующего с левой стороной, может не быть идентичным или аналогичным вектору движения текущего блока 1020. Соответственно, вектор движения блока 1022, соседствующего с левой стороной, не используется в качестве предсказателя-кандидата вектора движения текущего блока 1020, и в качестве предсказателей-кандидатов вектора движения можно использовать только векторы движения блока 1024, соседствующего с верхней стороной, и блока 1026, соседствующего с левой верхней стороной.[121] Referring to FIG. 10D, the size of the block 1022 adjacent to the left side of the current block 1020 exceeds the size of the current block 1020 by 16 times, and therefore, there is a big difference in size. Due to this large difference, the motion vector of block 1022 adjacent to the left side may not be identical or similar to the motion vector of current block 1020. Accordingly, the motion vector of block 1022 adjacent to the left side is not used as a predictor candidate motion vector of the current block 1020, and as motion vector predictor candidates, only the motion vectors of block 1024 adjacent to the upper side and block 1026 adjacent to the left upper side can be used.

[122] Согласно фиг. 10E, размер текущего блока 1030 превышает размеры всех соседних блоков 1031-1037. Здесь, когда векторы движения всех соседних блоков 1031-1037 используются в качестве предсказателей-кандидатов вектора движения текущего блока 1030, количество предсказателей-кандидатов вектора движения текущего блока 1030 может быть велико. При увеличении различия в размерах между текущим блоком 1030 и соседними блоками 1031-1037, количество предсказателей-кандидатов вектора движения также увеличивается. Соответственно, блок 910 оценки вектора движения может не использовать векторы движения некоторых блоков из соседних блоков в качестве предсказателей-кандидатов вектора движения текущего блока 1030.[122] Referring to FIG. 10E, the size of the current block 1030 exceeds the sizes of all neighboring blocks 1031-1037. Here, when the motion vectors of all neighboring blocks 1031-1037 are used as predictor candidates for the motion vector of the current block 1030, the number of predictor candidates for the motion vector of the current block 1030 can be large. As the size difference between the current block 1030 and the neighboring blocks 1031-1037 increases, the number of motion vector predictor candidates also increases. Accordingly, the motion vector estimator 910 may not use the motion vectors of some blocks from neighboring blocks as predictor candidates for the motion vector of the current block 1030.

[123] Например, на фиг. 10E, векторы движения блока 1031, соседствующего с левой нижней стороной, и блока 1037, соседствующего с правой верхней стороной, можно не использовать в качестве предсказателей-кандидатов вектора движения текущего блока 1030.[123] For example, in FIG. 10E, the motion vectors of block 1031 adjacent to the lower left side and block 1037 adjacent to the upper right side may not be used as motion predictors of the motion vector of current block 1030.

[124] В более общем случае, когда размер текущего блока 1030 превышает заранее определенный размер, векторы движения блоков, соседствующих в конкретном направлении, из соседних блоков, можно не использовать в качестве предсказателей-кандидатов вектора движения текущего блока 1030.[124] In a more general case, when the size of the current block 1030 exceeds a predetermined size, the motion vectors of blocks neighboring in a particular direction from neighboring blocks may not be used as motion predictors of the motion vector of the current block 1030.

[125] Фиг. 11A-11C иллюстрируют предсказатели-кандидаты вектора движения, согласно другому иллюстративному варианту осуществления.[125] FIG. 11A-11C illustrate motion vector predictor candidates according to another illustrative embodiment.

[126] Фиг. 11A иллюстрирует способ определения предсказателя-кандидата вектора движения изображения с двусторонним предсказанием (изображения B). Когда текущее изображение, включающее в себя текущий блок, является изображением B, которое осуществляет двустороннее предсказание, вектор движения, генерируемый на основании временного расстояния, может быть предсказателем кандидатом вектора движения.[126] FIG. 11A illustrates a method for determining a predictor candidate of a two-way image motion vector (image B). When the current image including the current block is an image B that performs two-way prediction, the motion vector generated based on the time distance may be a motion vector predictor candidate.

[127] Предсказатель-кандидат вектора движения mv_temporal текущего блока 1100 текущего изображения 1110 можно определять с использованием вектора движения блока 1120, находящегося рядом с текущим блоком 1100 изображения 1112, которое предшествует по времени текущему изображению 1110. Например, когда вектор движения mv_colA блока 1120 находящегося рядом с текущим блоком 1100, генерируется по отношению к искомому блоку 1122 изображения 1114, которое следует по времени после текущего изображения 1110, mv_L0A и mv_L1A, которые являются предсказателями кандидатами вектора движения текущего блока 1100, можно определить следующим образом:[127] The predictor candidate of the motion vector mv_temporal of the current block 1100 of the current image 1110 can be determined using the motion vector of the block 1120 located next to the current block 1100 of the image 1112, which precedes the current image 1110 in time. For example, when the motion vector mv_colA of the block 1120 is next to the current block 1100, is generated with respect to the desired block 1122 of the image 1114, which follows the time after the current image 1110, mv_L0A and mv_L1A, which are predictors of the motion vector candidates The current block 1100 can be defined as follows:

[128] mv_L1A=(t1/t2)*mv_colA[128] mv_L1A = (t1 / t2) * mv_colA

[129] mv_L0A=mv_L1A-mv_colA[129] mv_L0A = mv_L1A-mv_colA

[130] Здесь, mv_L0A обозначает предсказатель-кандидат вектора движения текущего блока 1110 по отношению к изображению 1112, которое предшествует по времени текущему изображению 1110, и mv_L1A обозначает предсказатель-кандидат вектора движения текущего блока 1100 по отношению к изображению 1114, которое следует по времени после текущего изображения 1110.[130] Here, mv_L0A denotes a predictor candidate motion vector of the current block 1110 with respect to the image 1112, which precedes the time of the current image 1110, and mv_L1A denotes the predictor candidate motion vector of the current block 1100 with respect to the image 1114 that follows the time after the current image 1110.

[131] На фиг. 11A, текущее изображение 1110, которое является изображением B, вставлено между изображением 1112, которое предшествует по времени текущему изображению 1110, и изображением 1114, которое следует по времени после текущего изображения 1110. Здесь, когда вектор движения mv_colA блока 1120, находящегося рядом с текущим блоком 1100, генерируется по отношению к изображению 1114, которое следует по времени после текущего изображения 1110, вектор движения текущего блока 1100 можно точно предсказывать на основании mv_L1A. Другими словами, вектор движения текущего блока 1100 можно более точно предсказывать, когда mv_colA является вектором движения в направлении, проиллюстрированном на фиг. 11 A, по сравнению со случаем, когда mv_colA является вектором движения, направление которого противоположно направлению, проиллюстрированному на фиг. 11 A, то есть когда mv_colA генерируется по отношению к другому изображению до изображения 1112, которое предшествует по времени текущему изображению 1110.[131] In FIG. 11A, the current image 1110, which is the image B, is inserted between the image 1112, which precedes the time of the current image 1110, and the image 1114, which follows the time after the current image 1110. Here, when the motion vector mv_colA of the block 1120 located next to the current block 1100, is generated with respect to the image 1114, which follows the time after the current image 1110, the motion vector of the current block 1100 can be accurately predicted based on mv_L1A. In other words, the motion vector of the current block 1100 can be more accurately predicted when mv_colA is a motion vector in the direction illustrated in FIG. 11 A, as compared to the case where mv_colA is a motion vector whose direction is opposite to that illustrated in FIG. 11 A, that is, when mv_colA is generated with respect to another image prior to the image 1112, which is preceded in time by the current image 1110.

[132] Соответственно, когда направление от текущего блока 1110 к блоку 1120, находящемуся рядом с текущим блоком 1100, является List0, вектор движения mv_colA должен быть ориентирован в направлении List1, и, таким образом, текущее изображение 1110 может быть вставлено между изображением 1112 и изображением 1114, как проиллюстрировано на фиг. 11A, что позволяет точно предсказывать вектор движения текущего блока 1100 на основании mv_colA.[132] Accordingly, when the direction from the current block 1110 to the block 1120 adjacent to the current block 1100 is List0, the motion vector mv_colA should be oriented in the direction List1, and thus, the current image 1110 can be inserted between the image 1112 and image 1114, as illustrated in FIG. 11A, which allows accurate prediction of the motion vector of the current block 1100 based on mv_colA.

[133] Кроме того, изображения 1110 - 1114, проиллюстрированные на фиг. 11A, представлены согласно временному порядку, и, таким образом, предсказатель-кандидат вектора движения mv_temporal текущего блока может генерироваться на основании порядкового номера изображения (POC). Изображение, ссылка на которое обеспечивается текущим блоком, может быть изображением, отличным от соседних изображений 1112 и 1114, проиллюстрированных на фиг. 11A, и, таким образом, предсказатель-кандидат вектора движения текущего блока генерируется на основании POC.[133] In addition, images 1110 to 1114 illustrated in FIG. 11A are presented according to a temporal order, and thus, the motion vector predictor predictor mv_temporal of the current block can be generated based on the image sequence number (POC). The image referenced by the current block may be an image different from the neighboring images 1112 and 1114 illustrated in FIG. 11A, and thus the motion vector predictor predictor of the current block is generated based on the POC.

[134] Например, когда POC текущего изображения равен CurrPOC, и POC изображения, ссылка на которое обеспечивается текущим изображением, равен CurrRefPOC, предсказатель-кандидат вектора движения текущего блока может генерироваться следующим образом:[134] For example, when the POC of the current image is CurrPOC, and the POC of the image referenced by the current image is CurrRefPOC, a motion vector predictor predictor of the current block can be generated as follows:

[135] Scale=(CurrPOC-CurrRefPOC)/(ColPOC-ColRefPOC)[135] Scale = (CurrPOC-CurrRefPOC) / (ColPOC-ColRefPOC)

[136] mv_temporal=Scale*mv_colA[136] mv_temporal = Scale * mv_colA

[137] Здесь, ColPOC это POC изображения 1112, которое предшествует по времени текущему изображению 1110 и включает в себя блок 1120 и ColRefPOC это POC изображения 1114, которое следует по времени после текущего изображения 1110 и включает в себя блок 1122, ссылка на который обеспечивается блоком 1120.[137] Here, ColPOC is a POC of an image 1112 that precedes the current image 1110 and includes a block 1120 and ColRefPOC is a POC of an image 1114 that follows the time after the current image 1110 and includes a block 1122, referenced by block 1120.

[138] Фиг. 11B иллюстрирует другой способ генерации предсказателя-кандидата вектора движения изображения B. Способ, представленный на фиг. 11B, отличается от способа, представленного на фиг. 11A тем, что изображение 1114, которое следует по времени после текущего изображения 1110, включает в себя блок, находящийся рядом с текущим блоком 1100.[138] FIG. 11B illustrates another method for generating a motion vector predictor predictor of image B. The method illustrated in FIG. 11B is different from the method shown in FIG. 11A in that the image 1114 that follows the time after the current image 1110 includes a block adjacent to the current block 1100.

[139] Согласно фиг. 11B, предсказатель-кандидат вектора движения текущего блока 1100 текущего изображения 1110 может генерироваться с использованием вектора движения блока 1130, находящегося рядом с текущим блоком 1100 изображения 1114, которое следует по времени после текущего изображения 1110. Например, когда вектор движения mv_colB блока 1130, находящегося рядом с текущим блоком 1100, генерируется по отношению к искомому блоку 1132 изображения 1112, которое предшествует по времени текущему изображению 1110, mv_L0B и mv_L1B, которые являются предсказателями кандидатами вектора движения текущего блока 1100, можно определить следующим образом:[139] Referring to FIG. 11B, the motion vector predictor candidate of the current block 1100 of the current image 1110 may be generated using the motion vector of the block 1130 located next to the current block 1100 of the image 1114, which follows the time after the current image 1110. For example, when the motion vector mv_colB of the block 1130 located next to the current block 1100, is generated with respect to the desired block 1132 of the image 1112, which is preceded in time by the current image 1110, mv_L0B and mv_L1B, which are predictors of the motion vector candidates the current block 1100, can be determined as follows:

[140] mv_L0B=(t3/t4)*mv_colB[140] mv_L0B = (t3 / t4) * mv_colB

[141] mv_L1B=mv_L0B-mv_colB[141] mv_L1B = mv_L0B-mv_colB

[142] Здесь, mv_L0B обозначает предсказатель-кандидат вектора движения текущего блока 1110 по отношению к изображению 1112, которое предшествует по времени текущему изображению 1110, и mv_L1B обозначает предсказатель-кандидат вектора движения текущего блока 1100 по отношению к изображению 1114, которое следует по времени после текущего изображения 1110.[142] Here, mv_L0B denotes the predictor candidate motion vector of the current block 1110 with respect to the image 1112, which precedes the time of the current image 1110, and mv_L1B denotes the predictor candidate motion vector of the current block 1100 with respect to the image 1114 that follows the time after the current image 1110.

[143] Аналогично фиг. 11A, на фиг. 11B, текущее изображение 1110, которое является изображением B, вставлено между изображением 1112, которое предшествует по времени текущему изображению 1110, и изображением 1114, которое следует по времени после текущего изображения 1110. Соответственно, когда вектор движения mv_colB блока 1130, находящегося рядом с текущим блоком 1100, генерируется по отношению к изображению 1112, которое предшествует по времени текущему изображению 1110, вектор движения текущего блока 1100 можно точно предсказывать на основании mv_L0B. Другими словами, вектор движения текущего блока 1100 можно более точно предсказывать, когда mv_colB это вектор движения в направлении, проиллюстрированном на фиг. 11B, по сравнению со случаем, когда mv_colB является вектором движения, направление которого противоположно направлению, проиллюстрированному на фиг. 11B, то есть, когда mv_colB генерируется по отношению к другому изображению после изображения 1114, которое следует по времени после текущего изображения 1110.[143] Similarly to FIG. 11A, in FIG. 11B, the current image 1110, which is the image B, is inserted between the image 1112, which precedes the time of the current image 1110, and the image 1114, which follows the time after the current image 1110. Accordingly, when the motion vector mv_colB of the block 1130 located next to the current block 1100, is generated with respect to the image 1112, which is preceded in time by the current image 1110, the motion vector of the current block 1100 can be accurately predicted based on mv_L0B. In other words, the motion vector of the current block 1100 can be more accurately predicted when mv_colB is a motion vector in the direction illustrated in FIG. 11B, compared with the case where mv_colB is a motion vector whose direction is opposite to that illustrated in FIG. 11B, that is, when mv_colB is generated with respect to another image after the image 1114, which follows the time after the current image 1110.

[144] Соответственно, когда направление от текущего блока 1110 к блоку 1130, находящемуся рядом с текущим блоком 1100, является List1, вектор движения mv_colB блока 1130 должен быть ориентирован в направлении List0 и, таким образом, текущее изображение 1110 может быть вставлено между изображением 1112 и изображением 1114, как проиллюстрировано на фиг. 11B, что позволяет точно предсказывать вектор движения текущего блока 1100 на основании mv_colB.[144] Accordingly, when the direction from the current block 1110 to the block 1130 adjacent to the current block 1100 is List1, the motion vector mv_colB of the block 1130 should be oriented in the direction List0, and thus, the current image 1110 can be inserted between the image 1112 and image 1114, as illustrated in FIG. 11B, which allows accurate prediction of the motion vector of the current block 1100 based on mv_colB.

[145] Кроме того, изображение, ссылка на которое обеспечивается текущим блоком, может быть изображением, отличным от соседних изображений 1112 и 1114, проиллюстрированных на фиг. 11B, и, таким образом, предсказатель-кандидат вектора движения текущего блока генерируется на основании POC.[145] Furthermore, the image referenced by the current unit may be an image different from the neighboring images 1112 and 1114 illustrated in FIG. 11B, and thus the motion vector predictor predictor of the current block is generated based on the POC.

[146] Например, когда POC текущего изображения равен CurrPOC, и POC изображения, ссылка на которое обеспечивается текущим изображением, равен CurrRefPOC, предсказатель-кандидат вектора движения текущего блока может генерироваться следующим образом:[146] For example, when the POC of the current image is CurrPOC, and the POC of the image referenced by the current image is CurrRefPOC, a motion vector predictor predictor of the current block can be generated as follows:

[147] Scale=(CurrPOC-CurrRefPOC)/(ColPOC-ColRefPOC)[147] Scale = (CurrPOC-CurrRefPOC) / (ColPOC-ColRefPOC)

[148] mv_temporal=Scale*mv_colB[148] mv_temporal = Scale * mv_colB

[149] Здесь, ColPOC это POC изображения 1114, которое следует по времени после текущего изображения 1110 и включает в себя блок 1130, и ColRefPOC это POC изображения 1112, которое предшествует по времени текущему изображению 1110 и включает в себя блок 1132, ссылка на который обеспечивается блоком 1130.[149] Here, ColPOC is a POC of an image 1114 that follows the time after the current image 1110 and includes a block 1130, and ColRefPOC is a POC of an image 1112 that precedes the time of the current image 1110 and includes a block 1132, the link to which provided by block 1130.

[150] Фиг. 11C иллюстрирует предсказатель-кандидат вектора движения предсказательного изображения (изображения P).[150] FIG. 11C illustrates a candidate predictor of a motion vector of a predictive image (image P).

[151] Согласно фиг. 11C, предсказатель-кандидат вектора движения текущего блока 1100 текущего изображения 1110 можно определять с использованием вектора движения блока 1140, находящегося рядом с текущим блоком 1100 изображения 1112, которое предшествует по времени текущему изображению 1110. Например, когда вектор движения mv_colC блока 1140 находящегося рядом с текущим блоком 1100, генерируется по отношению к искомому блоку 1142 изображения 1116, которое предшествует по времени текущему изображению 1110, mv_L0C, который является предсказателем кандидатом вектора движения текущего блока 1100, можно определить следующим образом:[151] Referring to FIG. 11C, the motion vector predictor candidate of the current block 1100 of the current image 1110 can be determined using the motion vector of the block 1140 located next to the current block 1100 of the image 1112, which is preceded in time by the current image 1110. For example, when the motion vector mv_colC of the block 1140 is adjacent to the current block 1100, is generated with respect to the desired block 1142 of the image 1116, which is preceded in time by the current image 1110, mv_L0C, which is a predictor candidate motion vector of the current block ka 1100 can be defined as follows:

[152] mv_L0C=(t6/t5)*mv_colC[152] mv_L0C = (t6 / t5) * mv_colC

[153] Как описано в связи с фиг. 11A и 11B, mv_L0C можно определять на основании POC. mv_L0C можно определять на основании POC текущего изображения 1110, POC изображения, ссылка на которое обеспечивается текущим изображением 1110, POC изображения 1112, которое предшествует по времени текущему изображению 1110, и POC изображения 1116, которое предшествует по времени текущему изображению 1110.[153] As described in connection with FIG. 11A and 11B, mv_L0C may be determined based on the POC. mv_L0C can be determined based on the POC of the current image 1110, the POC of the image referenced by the current image 1110, the POC of the image 1112 that precedes the time of the current image 1110, and the POC of the image 1116 that precedes the time of the current image 1110.

[154] Поскольку текущее изображение 1110 является изображением P, определяется только один предсказатель-кандидат вектора движения текущего блока 1100, в отличие от фиг. 11A и 11B.[154] Since the current image 1110 is an image P, only one motion vector predictor predictor of the current block 1100 is determined, in contrast to FIG. 11A and 11B.

[155] Кроме того, для использования предсказателя-кандидата вектора движения, генерируемого на основании временного расстояния на фиг. 11A и 11B для предсказания вектора движения текущего блока, также можно кодировать информацию, указывающую, какой блок из блоков 1120 и 1130, находящихся рядом с текущим блоком 1100, используется для генерации предсказателя вектора движения. Такая информация может входить в состав заголовка среза или заголовка последовательности в качестве параметра среза или параметра последовательности.[155] In addition, to use the motion vector predictor predictor generated based on the time distance in FIG. 11A and 11B for predicting a motion vector of a current block, it is also possible to encode information indicating which block of blocks 1120 and 1130 adjacent to the current block 1100 is used to generate a motion vector predictor. Such information may be included in the slice header or sequence header as a slice parameter or sequence parameter.

[156] В целом, группа C предсказателей-кандидатов вектора движения согласно фиг. 10A, 10B и 11A-11C может иметь следующий вид:[156] In general, the motion vector predictor group C of FIG. 10A, 10B and 11A-11C may have the following form:

[157] C={median(mv_a0, mv_b0, mv_c), mv_a0, mv_a1, …, mv_aN, mv_b0, mv_b1, …, mv_bN, mv_c, mv_d, mv_e, mv_temporal}[157] C = {median (mv_a0, mv_b0, mv_c), mv_a0, mv_a1, ..., mv_aN, mv_b0, mv_b1, ..., mv_bN, mv_c, mv_d, mv_e, mv_temporal}

[158] Кроме того, группа C может представлять собой группу с уменьшенным количеством предсказателей-кандидатов вектора движения:[158] In addition, group C may be a group with a reduced number of motion vector predictor candidates:

[159] C={median(mv_a', mv_b', mv_c'), mv_a', mv_b', mv_c', mv_temporal}[159] C = {median (mv_a ', mv_b', mv_c '), mv_a', mv_b ', mv_c', mv_temporal}

[160] Здесь, mv_x обозначает вектор движения блока x, median() обозначает среднее значение, и mv_temporal обозначает предсказатели-кандидаты вектора движения, генерируемые с использованием временного расстояния, описанного в связи с фиг. 11A-11C. mv_a' обозначает первый эффективный вектор движения из mv_a0, mv_a1, …, и mv_aN. Например, когда блок a0 кодируется с использованием внутреннего предсказания и указывает текущий блок и другое изображение, вектор движения mv_a0 блока a0 не является эффективным, и, таким образом, mv_a'=mv_a1. Кроме того, когда вектор движения блока a1 не является эффективным, mv_a'=mv_a2. Аналогично, mv_b' является первым эффективным вектором движения из mv_b0, mv_b1, …, и mv_bN и mv_c' является первым эффективным вектором движения из mv_c, mv_d и mv_e.[160] Here, mv_x denotes the motion vector of block x, median () denotes an average value, and mv_temporal denotes motion vector predictor candidates generated using the time distance described in connection with FIG. 11A-11C. mv_a 'denotes the first effective motion vector of mv_a0, mv_a1, ..., and mv_aN. For example, when block a0 is encoded using intra prediction and indicates the current block and another image, the motion vector mv_a0 of block a0 is not effective, and thus mv_a '= mv_a1. In addition, when the motion vector of block a1 is not effective, mv_a '= mv_a2. Similarly, mv_b 'is the first effective motion vector of mv_b0, mv_b1, ..., and mv_bN and mv_c' is the first effective motion vector of mv_c, mv_d and mv_e.

[161] Вектор движения блока, который указывает изображение, отличное от текущего блока из векторов движения блоков, соседствующих с текущим блоком, может неэффективно предсказывать вектор движения текущего блока. Соответственно, вектор движения блока, который указывает изображение, отличное от текущего блока можно исключить из группы C предсказателей-кандидатов вектора движения.[161] A motion vector of a block that indicates an image different from the current block from the motion vectors of blocks adjacent to the current block may inefficiently predict the motion vector of the current block. Accordingly, a motion vector of a block that indicates an image different from the current block can be excluded from the group C of motion vector predictor candidates.

[162] Когда устройство 900 для кодирования вектора движения кодирует вектор движения согласно явному режиму, устройство 900 также кодирует информацию, указывающую, какой предсказатель-кандидат вектора движения в группе C используется для предсказания вектора движения текущего блока. Другими словами, когда устройство 900 для кодирования вектора движения кодирует вектор движения, устройство 900 присваивает двоичные числа соответствующим элементам группы C, то есть предсказателям кандидатам вектора движения, и кодирует двоичные числа, соответствующие предсказателю кандидату вектора движения, используемому для предсказания вектора движения текущего блока.[162] When the apparatus 900 for encoding a motion vector encodes a motion vector according to the explicit mode, the apparatus 900 also encodes information indicating which motion vector predictor candidate in group C is used to predict the motion vector of the current block. In other words, when the motion vector encoding apparatus 900 encodes a motion vector, the apparatus 900 assigns binary numbers to the corresponding elements of group C, i.e., motion vector predictors, and encodes binary numbers corresponding to the motion vector predictor candidate used to predict the motion vector of the current block.

[163] Для указания одного из элементов в группе C, присваиваются и выводятся двоичные числа, каждое из которых соответствует предсказателям кандидатам вектора движения. Таким образом, по мере уменьшения количества элементов в группе C, элементы в группе C можно указывать двоичными числами с меньшим количеством битов.[163] To indicate one of the elements in group C, binary numbers are assigned and displayed, each of which corresponds to the predictors of the motion vector candidates. Thus, as the number of elements in group C decreases, elements in group C can be indicated with binary numbers with fewer bits.

[164] Соответственно, при наличии перекрывающихся предсказателей-кандидатов вектора движения в группе C, двоичные числа могут присваиваться после исключения перекрывающихся предсказателей-кандидатов вектора движения из группы C. Например, когда группа C является C={median(mv_a', mv_b', mv_c'), mv_a', mv_b', mv_c', mv_temporal}, как описано выше, и mv_a', mv_b' и mv_c' совпадают друг с другом, можно определить, что в группе C существует два элемента, а именно, C={mv_a', mv_temporal} и двоичные числа могут присваиваться. Когда пять элементов в группе C можно указывать с использованием 3 битов до исключения перекрывающихся предсказателей-кандидатов вектора движения, два элемента можно указывать с использованием 1 бита после исключения перекрывающихся предсказателей-кандидатов вектора движения.[164] Accordingly, in the presence of overlapping predictor candidates of the motion vector in group C, binary numbers can be assigned after excluding the overlapping predictor candidates of the motion vector from group C. For example, when the group C is C = {median (mv_a ', mv_b', mv_c '), mv_a', mv_b ', mv_c', mv_temporal}, as described above, and mv_a ', mv_b' and mv_c 'coincide with each other, it can be determined that there are two elements in group C, namely, C = {mv_a ', mv_temporal} and binary numbers may be assigned. When five elements in group C can be indicated using 3 bits before excluding overlapping motion vector predictors, two elements can be indicated using 1 bit after eliminating overlapping motion vector predictors.

[165] Для повышения вероятности определения перекрывающегося предсказателя-кандидата вектора движения в качестве предсказателя вектора движения текущего блока, вместо исключения перекрывающегося предсказателя-кандидата вектора движения, ему можно присваивать заранее определенный вес. Как описано выше, поскольку mv_a', mv_b' и mv_c' совпадают друг с другом и только mv_a' включен в группу C, mv_a' присваивается заранее определенный вес, и, таким образом, вероятность того, что mv_a' используется для предсказания вектора движения текущего блока, может увеличиваться.[165] To increase the likelihood of determining an overlapping motion vector predictor candidate as a motion vector predictor of the current block, instead of eliminating the overlapping motion vector predictor candidate, a predetermined weight can be assigned to it. As described above, since mv_a ', mv_b' and mv_c 'are the same and only mv_a' is included in group C, mv_a 'is assigned a predetermined weight, and thus the probability that mv_a' is used to predict the motion vector of the current block may increase.

[166] Кроме того, при наличии одного предсказателя-кандидата вектора движения, двоичное число, используемое для указания одного из предсказателей-кандидатов вектора движения, может не кодироваться. Например, когда группа C является C={median(mv_a0, mv_b0, mv_c), mv_a0, mv_a1, …, mv_aN, mv_b0, mv_b1, …, mv_bN, mv_c, mv_d, mv_e, mv_temporal}, и блоки a0-aN, блоки b0-bN, блок c, блок d и блок e все подлежат взаимному предсказанию, группа C является C={mv_temporal} и, таким образом, по существу, включает в себя один элемент. Соответственно, в этом случае, устройство 900 для кодирования вектора движения может не кодировать двоичное число, используемое для указания одного из предсказателей-кандидатов вектора движения.[166] Furthermore, if there is one motion vector predictor candidate, the binary number used to indicate one of the motion vector predictor candidates may not be encoded. For example, when the group C is C = {median (mv_a0, mv_b0, mv_c), mv_a0, mv_a1, ..., mv_aN, mv_b0, mv_b1, ..., mv_bN, mv_c, mv_d, mv_e, mv_temporal}, and blocks a0-aN, and b0-bN, block c, block d, and block e are all subject to mutual prediction, group C is C = {mv_temporal} and, thus, essentially includes one element. Accordingly, in this case, the apparatus 900 for encoding a motion vector may not encode a binary number used to indicate one of the motion vector predictor candidates.

[167] Специалисту в данной области техники очевидно, что векторы движения, отличные от вышеописанных предсказателей-кандидатов вектора движения, можно использовать в качестве предсказателей-кандидатов вектора движения.[167] It will be apparent to those skilled in the art that motion vectors other than the motion vector predictor candidates described above can be used as motion vector predictor candidates.

[168] Кроме того, согласно другому иллюстративному варианту осуществления, блок 920 определения кандидата может уменьшать количество предсказателей-кандидатов вектора движения на основании оценки результата кодирования.[168] Furthermore, according to another exemplary embodiment, the candidate determination unit 920 may reduce the number of motion vector predictor candidates based on the evaluation of the encoding result.

[169] Как описано выше, отдельная информация кодируется и включается в битовый поток для указания предсказателя-кандидата вектора движения, используемого для предсказания вектора движения текущего блока из множества предсказателей-кандидатов вектора движения. Соответственно, по мере уменьшения количества элементов в группе C, информацию, необходимую для указания предсказателя-кандидата вектора движения, используемого для предсказания вектора движения текущего блока в группе C, можно кодировать с малым числом битов. В связи с этим, блок 920 определения кандидата может выборочно исключать заранее определенные предсказатели-кандидаты вектора движения из всех предсказателей-кандидатов вектора движения с использованием заранее определенной оценочной функции, которая будет подробно описана со ссылкой на фиг. 12.[169] As described above, individual information is encoded and included in the bitstream to indicate a motion vector predictor candidate used to predict a motion vector of a current block from a plurality of motion vector predictor candidates. Accordingly, as the number of elements in group C decreases, the information necessary to indicate the motion vector predictor candidate used to predict the motion vector of the current block in group C can be encoded with a small number of bits. In this regard, the candidate determination unit 920 may selectively exclude predetermined motion vector predictors from all motion vector predictors using a predetermined evaluation function, which will be described in detail with reference to FIG. 12.

[170] Фиг. 12 иллюстрирует способ уменьшения количества предсказателей-кандидатов вектора движения, согласно иллюстративному варианту осуществления.[170] FIG. 12 illustrates a method for reducing the number of motion vector predictor candidates according to an illustrative embodiment.

[171] На фиг. 12, предполагается, что существует три элемента MVP1, MVP2 и MVP3 в группе C, и вектор движения текущего блока обозначается MV. Поскольку предсказатель-кандидат вектора движения, который наиболее аналогичен вектору движения текущего блока, используется для предсказания вектора движения текущего блока, MVP3, который наиболее аналогичен MV, используется для предсказания вектора движения текущего блока.[171] In FIG. 12, it is assumed that there are three elements MVP1, MVP2, and MVP3 in group C, and the motion vector of the current block is denoted by MV. Since the motion vector predictor candidate that is most similar to the motion vector of the current block is used to predict the motion vector of the current block, MVP3, which is most similar to MV, is used to predict the motion vector of the current block.

[172] Соответственно, векторная разность (далее именуемая ‘разностью первоначального вектора движения’) между вектором движения текущего блока и предсказателем кандидатом вектора движения, используемым для предсказания вектора движения текущего блока, равна (2,0). Поскольку MV равен (5,0), и MVP3 равен (3,0), разность первоначального вектора движения равна (2,0).[172] Accordingly, the vector difference (hereinafter referred to as первонач initial motion vector difference ’) between the motion vector of the current block and the predictor motion vector candidate used to predict the motion vector of the current block is (2.0). Since MV is (5.0) and MVP3 is (3.0), the difference of the initial motion vector is (2.0).

[173] Блок 920 определения кандидата выборочно исключает по меньшей мере один предсказатель-кандидат вектора движения из всех предсказателей-кандидатов вектора движения с использованием разности первоначального вектора движения и заранее определенной оценочной функции. В частности, разность первоначального вектора движения и заранее определенный предсказатель-кандидат вектора движения используются для генерации виртуального вектора движения, и разности (далее именуемые ‘разности виртуального вектора движения’) между сгенерированным виртуальным вектором движения и всеми предсказателями кандидатами вектора движения генерируются по отношению ко всем кандидатам. Разность первоначального вектора движения и заранее определенный предсказатель-кандидат вектора движения суммируются друг с другом для генерации виртуального вектора движения, и вычисляются разности виртуального вектора движения между сгенерированным виртуальным вектором движения и всеми предсказателями кандидатами вектора движения. Сравнивая разность первоначального вектора движения с разностями виртуального вектора движения, вычисленными по отношению ко всем кандидатам, заранее определенный предсказатель-кандидат вектора движения можно выборочно исключать из всех предсказателей-кандидатов вектора движения.[173] The candidate determination unit 920 selectively excludes at least one motion vector predictor candidate from all motion vector predictor candidates using a difference of the initial motion vector and a predetermined evaluation function. In particular, the difference of the initial motion vector and the predetermined predictor-candidate motion vector are used to generate a virtual motion vector, and the differences (hereinafter referred to as the "differences of the virtual motion vector") between the generated virtual motion vector and all predictors of the motion vector candidates are generated with respect to all to candidates. The difference of the initial motion vector and the predetermined predictor-candidate motion vector are summed with each other to generate a virtual motion vector, and the differences of the virtual motion vector between the generated virtual motion vector and all predictors of the motion vector candidates are calculated. By comparing the difference of the initial motion vector with the differences of the virtual motion vector calculated with respect to all candidates, a predetermined predictor candidate motion vector can be selectively excluded from all predictor candidates of the motion vector.

[174] Согласно фиг. 12, блок 920 определения кандидата определяет, исключается ли MVP1, один из предсказателей-кандидатов вектора движения, из общего количества кандидатов.[174] Referring to FIG. 12, the candidate determination unit 920 determines whether MVP1, one of the motion vector predictor candidates, is excluded from the total number of candidates.

[175] Когда разность виртуального вектора движения, сгенерированная вычитанием предсказателя-кандидата вектора движения из виртуального вектора движения на основании MVP1, меньше разности первоначального вектора движения, MVP1 можно не использовать для предсказания вектора движения текущего блока. Например, когда разность виртуального вектора движения, сгенерированная вычитанием MVP3 из виртуального вектора движения, генерируемого суммированием MVP1 и разности первоначального вектора движения, меньше разности первоначального вектора движения, MVP3 предсказывает виртуальный вектор движения точнее, чем MVP1, и в этом случае, MVP1 не может быть предсказателем вектора движения.[175] When the difference of the virtual motion vector generated by subtracting the motion predictor candidate of the motion vector from the virtual motion vector based on MVP1 is less than the difference of the initial motion vector, MVP1 can not be used to predict the motion vector of the current block. For example, when the difference of the virtual motion vector generated by subtracting MVP3 from the virtual motion vector generated by summing MVP1 and the difference of the initial motion vector is less than the difference of the initial motion vector, MVP3 predicts the virtual motion vector more accurately than MVP1, in which case MVP1 cannot be motion vector predictor.

[176] На фиг. 12, когда MVP1 и разность первоначального вектора движения суммируются друг с другом, виртуальный вектор движения на основании MVP1 равен (2,0). Соответственно, когда виртуальный вектор движения генерируется на основании MVP1, разность виртуального вектора движения для MVP2 равна (2,0), и разность виртуального вектора движения для MVP3 равна (-1,0). Здесь, поскольку разность виртуального вектора движения (-1,0) для MVP3 меньше разности первоначального вектора движения (2,0), MVP1 может не быть предсказателем вектора движения текущего блока. Соответственно, MVP1 можно исключить из всех предсказателей-кандидатов вектора движения. Другими словами, предсказатель-кандидат вектора движения, который соответствует MVP1, можно исключить из группы C.[176] In FIG. 12, when MVP1 and the difference of the initial motion vector are added together, the virtual motion vector based on MVP1 is (2.0). Accordingly, when the virtual motion vector is generated based on MVP1, the difference of the virtual motion vector for MVP2 is (2.0), and the difference of the virtual motion vector for MVP3 is (-1.0). Here, since the difference of the virtual motion vector (-1.0) for MVP3 is less than the difference of the initial motion vector (2.0), MVP1 may not be a predictor of the motion vector of the current block. Accordingly, MVP1 can be excluded from all motion vector predictor candidates. In other words, the motion vector predictor candidate that corresponds to MVP1 can be excluded from group C.

[177] Здесь, сама по себе разность виртуального вектора движения, вычисленная для MVP1, равна (2,0) и всегда идентичная разности первоначального вектора движения, поэтому разность виртуального вектора движения может не быть меньше разности первоначального вектора движения. Соответственно, когда разности виртуального вектора движения вычисляются для всех предсказателей-кандидатов вектора движения, саму по себе разность виртуального вектора движения для MVP1 можно не вычислять.[177] Here, in itself, the difference of the virtual motion vector calculated for MVP1 is (2.0) and is always identical to the difference of the initial motion vector, so the difference of the virtual motion vector can be no less than the difference of the initial motion vector. Accordingly, when the differences of the virtual motion vector are calculated for all predictors-candidates of the motion vector, the difference of the virtual motion vector for MVP1 per se can not be calculated.

[178] По завершении определения исключается ли MVP1, блок 920 определения кандидата определяет, исключается ли MVP2 из всех предсказателей-кандидатов вектора движения. Когда MVP2 и разность первоначального вектора движения суммируются друг с другом, виртуальный вектор движения на основании MVP2 равен (2,0). Соответственно, разность виртуального вектора движения для MVP1 равна (2,0), и разность виртуального вектора движения для MVP3 равна (-1,0). Поскольку разность виртуального вектора движения для MVP3 меньше разности первоначального вектора движения, MVP2 можно исключить из всех предсказателей-кандидатов вектора движения, как и в случае MVP1. При определении, исключается ли MVP2, разность виртуального вектора движения для MVP1 можно выборочно сравнивать с разностью первоначального вектора движения. Поскольку уже определено, что MVP1 должен быть исключен, разности виртуального вектора движения для кандидатов, отличных от MVP1, можно сравнивать с разностью первоначального вектора движения.[178] Upon completion of determining whether MVP1 is excluded, candidate determination unit 920 determines whether MVP2 is excluded from all motion vector predictor candidates. When MVP2 and the difference of the initial motion vector are summed with each other, the virtual motion vector based on MVP2 is (2.0). Accordingly, the difference of the virtual motion vector for MVP1 is (2.0), and the difference of the virtual motion vector for MVP3 is (-1.0). Since the difference of the virtual motion vector for MVP3 is less than the difference of the initial motion vector, MVP2 can be excluded from all predictor candidates of the motion vector, as in the case of MVP1. When determining whether MVP2 is excluded, the difference of the virtual motion vector for MVP1 can be selectively compared with the difference of the initial motion vector. Since it has already been determined that MVP1 should be excluded, the differences of the virtual motion vector for candidates other than MVP1 can be compared with the difference of the initial motion vector.

[179] Кроме того, блок 920 определения кандидата определяет, исключается ли MVP3. Виртуальный вектор движения на основании MVP3 идентичен первоначальному вектору движения текущего блока. Хотя другой предсказатель-кандидат вектора движения (то есть MVP1 или MVP2) вычитается из первоначального вектора движения, разность виртуального вектора движения, которая меньше разности первоначального вектора движения, может не генерироваться. Таким образом, MVP3 не исключается из предсказателей-кандидатов вектора движения. Кроме того, согласно другому иллюстративному варианту осуществления, поскольку MVP3, согласно результату определения, подлежащий использованию для предсказания вектора движения текущего блока, не исключается из предсказателей вектора движения, блок 920 определения кандидата может пропустить определение, исключается ли MVP3, предсказатель-кандидат вектора движения, используемый для предсказания вектора движения текущего блока.[179] In addition, the candidate determination unit 920 determines whether MVP3 is excluded. The virtual motion vector based on MVP3 is identical to the original motion vector of the current block. Although another motion vector predictor candidate (i.e., MVP1 or MVP2) is subtracted from the original motion vector, a virtual motion vector difference that is less than the difference of the original motion vector may not be generated. Thus, MVP3 is not excluded from the motion vector predictor candidates. In addition, according to another illustrative embodiment, since MVP3, according to the determination result to be used to predict the motion vector of the current block, is not excluded from the motion vector predictors, the candidate determination unit 920 may skip determining whether MVP3, the motion vector predictor candidate, used to predict the motion vector of the current block.

[180] Короче говоря, когда блок 920 определения кандидата определяет, исключается ли второй предсказатель-кандидат вектора движения, один из предсказателей-кандидатов вектора движения, второй предсказатель-кандидат вектора движения и разность первоначального вектора движения суммируются друг с другом для генерации виртуального вектора движения, и разности между виртуальным вектором движения и другими предсказателями кандидатами вектора движения вычисляются для всех кандидатов для генерации множества разностей виртуального вектора движения. Когда существует по меньшей мере одна разность виртуального вектора движения, которая меньше разности первоначального вектора движения, из множества разностей виртуального вектора движения, второй предсказатель-кандидат вектора движения не является предсказателем вектора движения текущего блока и исключается из предсказателей-кандидатов вектора движения.[180] In short, when the candidate determination unit 920 determines whether a second motion vector predictor candidate, one of the motion vector predictor candidates, a second motion vector predictor candidate, and a difference of the initial motion vector are added together to generate a virtual motion vector , and the differences between the virtual motion vector and other predictors, the motion vector candidates are calculated for all candidates to generate the set of differences of the virtual motion vector izheniya. When there is at least one difference of the virtual motion vector, which is less than the difference of the initial motion vector, from the set of differences of the virtual motion vector, the second predictor candidate motion vector is not a predictor motion vector of the current block and is excluded from the predictor candidates of the motion vector.

[181] Кроме того, блок 920 определения кандидата повторяющимся образом осуществляет определение исключения для предсказателей-кандидатов вектора движения, что позволяет уменьшить количество предсказателей-кандидатов вектора движения, то есть элементов группы C. Согласно порядку размещения предсказателей-кандидатов вектора движения группы C, необходимость исключения определяется по порядку. Например, когда C={median(mv_a', mv_b', mv_c'), mv_a', mv_b', mv_c', mv_temporal}, определяется необходимость исключения median(mv_a', mv_b', mv_'), и по завершении определения, определяется необходимость исключения mv_a'. Затем определяется необходимость исключения mv_b'. Согласно порядку размещения группы C, определение исключения повторяется до mv_temporal.[181] In addition, the candidate determination unit 920 repeats the determination of an exception for the motion vector predictor candidates, which reduces the number of motion vector predictor candidates, that is, elements of group C. According to the order of placement of the predictor candidates of the motion vector of group C, the need exceptions are determined in order. For example, when C = {median (mv_a ', mv_b', mv_c '), mv_a', mv_b ', mv_c', mv_temporal}, the need to exclude median (mv_a ', mv_b', mv_ ') is determined, and upon completion of the determination, the need to exclude mv_a 'is determined. Then, the need to exclude mv_b 'is determined. According to the C grouping order, the definition of the exception is repeated until mv_temporal.

[182] Когда определение осуществляется повторяющимся образом, сравнение между разностью виртуального вектора движения и разностью первоначального вектора движения для кандидатов, уже исключенных при определении, можно опустить, как описано в связи с исключением MVP2.[182] When the determination is carried out in a repeated manner, the comparison between the difference of the virtual motion vector and the difference of the initial motion vector for candidates already excluded in the determination can be omitted, as described in connection with the exception of MVP2.

[183] Кроме того, группу C можно переупорядочить согласно заранее определенному критерию, что будет описано ниже со ссылкой на фиг. 13A-13D. Когда группа C переупорядочена, определение исключения повторяется согласно переупорядоченному порядку.[183] In addition, group C can be reordered according to a predetermined criterion, which will be described below with reference to FIG. 13A-13D. When group C is reordered, the definition of the exception is repeated according to the reordered order.

[184] Сравнение между разностью виртуального вектора движения и разностью первоначального вектора движения, описанное в связи с фиг. 12, можно применять не только к одномерному вектору движения, но и к двухмерному вектору движения. Другими словами, абсолютная величина разности виртуального вектора движения, заданного x-координатами и y-координатами, сравнивается с абсолютной величиной разности первоначального вектора движения, и, таким образом, заранее определенный предсказатель вектора движения можно выборочно исключать из общего количества кандидатов.[184] The comparison between the difference of the virtual motion vector and the difference of the initial motion vector described in connection with FIG. 12, can be applied not only to the one-dimensional motion vector, but also to the two-dimensional motion vector. In other words, the absolute value of the difference of the virtual motion vector specified by x-coordinates and y-coordinates is compared with the absolute value of the difference of the initial motion vector, and thus, a predetermined motion vector predictor can be selectively excluded from the total number of candidates.

[185] Однако, абсолютная величина, используемая для сравнения разности виртуального вектора движения с разностью первоначального вектора движения, приведена только в качестве примера, и для сравнения разности виртуального вектора движения с разностью первоначального вектора движения можно использовать различные критерии. Когда оценочная функция, которая генерирует значение для разности виртуального вектора движения и значение для разности первоначального вектора движения на основании заранее определенного критерия, равна ‘A’, разность виртуального вектора движения можно сравнивать с разностью первоначального вектора движения согласно нижеследующему уравнению 1:[185] However, the absolute value used to compare the difference of the virtual motion vector with the difference of the initial motion vector is given only as an example, and various criteria can be used to compare the difference of the virtual motion vector with the difference of the initial motion vector. When the evaluation function that generates the value for the difference of the virtual motion vector and the value for the difference of the initial motion vector based on a predetermined criterion is ‘A’, the difference of the virtual motion vector can be compared with the difference of the initial motion vector according to the following equation 1:

[186] (уравнение 1)[186] (equation 1)

[187] A(mvx+MVD-mvy)<A(MVD)[187] A (mvx + MVD-mvy) <A (MVD)

[188] Блок 920 определения кандидата определяет, существует ли по меньшей мере один 'mvy' во всех кандидатах, для определения, исключается ли 'mvx', один из предсказателей-кандидатов вектора движения, из предсказателей-кандидатов вектора движения. В уравнении 1, 'MVD' обозначает разность первоначального вектора движения. Для определения необходимости исключения 'mvx', 'A(mvx+MVD-mvy)', которое является значением, полученным путем оценивания 'mvx+MVD-mvy', то есть разности виртуального вектора движения между 'mvx+MVD', виртуальным вектором движения на основании 'mvx', и 'mvy', другим предсказателем кандидатом вектора движения, вычисляется с использованием заранее определенной оценочной функции ‘A’, и значения, генерируемые в результате вычисления, сравниваются с 'A(MVD)', значением для разности первоначального вектора движения. Предсказатели-кандидаты вектора движения, отличные от 'mvx' из всех кандидатов, повторяющимся образом подставляются вместо 'mvy', и определяется, существует ли в общем количестве кандидатов по меньшей мере один 'mvy', который удовлетворяет уравнению 1.[188] The candidate determination unit 920 determines whether at least one 'mvy' exists in all candidates to determine whether 'mvx', one of the motion vector predictor candidates, is excluded from the motion vector candidate predictor. In equation 1, 'MVD' denotes the difference of the initial motion vector. To determine the need to exclude 'mvx', 'A (mvx + MVD-mvy)', which is the value obtained by evaluating 'mvx + MVD-mvy', i.e. the difference of the virtual motion vector between 'mvx + MVD', the virtual motion vector based on 'mvx' and 'mvy', another motion vector candidate predictor, is calculated using the predetermined evaluation function 'A', and the values generated by the calculation are compared with 'A (MVD)', the value for the difference of the original vector movement. Motion vector predictor candidates other than the 'mvx' of all candidates are repeatedly substituted for 'mvy', and it is determined whether there is at least one mvy in the total number of candidates that satisfies equation 1.

[189] Как описано выше, разность виртуального вектора движения и разность первоначального вектора движения, оцененные согласно ‘A’, могут задаваться x-координатами и y-координатами. В этом случае, оценочная функция может задаваться суммой оценочного значения x-координат и оценочного значения y-координат, согласно нижеследующему уравнению 2:[189] As described above, the difference of the virtual motion vector and the difference of the initial motion vector estimated according to ‘A’ can be specified by x-coordinates and y-coordinates. In this case, the estimated function may be defined by the sum of the estimated x-coordinate value and the estimated y-coordinate value, according to the following equation 2:

[190] (уравнение 2)[190] (equation 2)

[191] A(p, q)=f(p)+f(q)[191] A (p, q) = f (p) + f (q)

[192] Когда разность виртуального вектора движения или разность первоначального вектора движения задается x-координатами ‘p’ и y-координатами ‘q’, каждое значение координаты вводится в заранее определенную функцию ‘f’, и оценочная функция ‘A’ задается суммой, полученной посредством подстановки.[192] When the difference of the virtual motion vector or the difference of the initial motion vector is specified by the x-coordinates 'p' and y-coordinates 'q', each coordinate value is entered into a predetermined function 'f', and the estimated function 'A' is given by the sum obtained through substitution.

[193] Согласно иллюстративному варианту осуществления, оценочная функция ‘A’ в уравнении 1 и уравнении 2, может быть оценочной функцией, которая оценивает результат, полученный путем статистического кодирования разности виртуального вектора движения, и результат, полученный путем статистического кодирования разности первоначального вектора движения. Блок 920 определения кандидата оценивает результат, полученный путем статистического кодирования разности виртуального вектора движения и разности первоначального вектора движения на основании оценочной функции ‘A’, и количество предсказателей-кандидатов вектора движения можно уменьшить на основании результата оценивания. Это подробно описано со ссылкой на нижеследующее уравнение 3:[193] According to an illustrative embodiment, the estimated function ‘A’ in Equation 1 and Equation 2 may be an estimated function that estimates the result obtained by statistical coding of the difference of the virtual motion vector and the result obtained by statistical coding of the difference of the original motion vector. The candidate determination unit 920 estimates the result obtained by statistical coding the difference of the virtual motion vector and the difference of the initial motion vector based on the evaluation function ‘A’, and the number of motion vector predictor candidates can be reduced based on the evaluation result. This is described in detail with reference to the following equation 3:

[194] (уравнение 3)[194] (equation 3)

[195] Length=1;[195] Length = 1;

[196] Temp=(val<=0) ? (-val<<1)+1: (val<<1);[196] Temp = (val <= 0)? (-val << 1) +1: (val << 1);

[197] while ( 1 != Temp) {[197] while (1! = Temp) {

[198] Temp>>=1;[198] Temp >> = 1;

[199] Length += 2;[199] Length + = 2;

[200] }[200]}

[201] f(val)=Length[201] f (val) = Length

[202] Функция ‘f’, которая оценивает результат, полученный путем статистического кодирования по отношению к значению x-координаты или значениям y-координаты, может задаваться согласно уравнению 3. Когда 'val', значение x-координаты или y-координаты, вводится в функцию ‘f’, которая оценивает кодирование переменной длины, результат (например, универсальное кодирование переменной длины), 'Length' вычисляется согласно уравнению 3.[202] The function 'f', which evaluates the result obtained by statistical coding with respect to the x-coordinate value or y-coordinate values, can be specified according to equation 3. When the 'val', the x-coordinate or y-coordinate value, is entered to the function 'f', which evaluates variable length encoding, the result (for example, universal variable length encoding), 'Length' is calculated according to equation 3.

[203] Уравнение 3 можно представить следующим образом:[203] Equation 3 can be represented as follows:

[204][204]

Figure 00000001
Figure 00000001

[205] Значение x-координаты или y-координаты может быть значением x-координаты или y-координаты разности виртуального вектора движения или разности первоначального вектора движения.[205] The x-coordinate or y-coordinate value may be the x-coordinate or y-coordinate value of the difference of the virtual motion vector or the difference of the initial motion vector.

[206] Согласно уравнению 3, когда 'val' является отрицательным числом или ‘0’, 'val' становится положительным числом и затем умножается на ‘2’ путем сдвига влево на 1 бит. И прибавляется ‘1’, что позволяет сохранить результат в 'Temp'. Когда 'val' является положительным числом, 'val' умножается на ‘2’ путем сдвига влево на 1 бит, что позволяет сохранить результат в 'Temp'.[206] According to equation 3, when 'val' is a negative number or ‘0’, 'val' becomes a positive number and then multiplied by ‘2’ by shifting left by 1 bit. And ‘1’ is added, which allows you to save the result in 'Temp'. When 'val' is a positive number, 'val' is multiplied by ‘2’ by shifting left by 1 bit, which allows you to save the result in 'Temp'.

Затем циклы 'while' повторяются, пока 'Temp' не станет равной 1, и вычисляется 'Length'.Then the 'while' loops are repeated until the 'Temp' is equal to 1, and the 'Length' is computed.

[207] Например, когда разность виртуального вектора движения или разность первоначального вектора движения равна (2,0), A(2,0)=f(2)+f(0).[207] For example, when the difference of the virtual motion vector or the difference of the initial motion vector is (2.0), A (2.0) = f (2) + f (0).

[208] f(2) вычисляется следующим образом. Значение ‘2’ f(2) является положительным числом и, таким образом, сдвигается влево на 1 бит, вследствие чего 'Temp' устанавливается равным ‘4’. В первом цикле 'while' 'Temp' равна ‘4’, то есть не равна ‘1’, и, таким образом, '4' умножается на '1/2' путем сдвига вправо, вследствие чего 'Temp' устанавливается равным ‘2’. Поскольку начальное значение 'Length' задано равным ‘1’, 'Length' в первом цикле 'while' равна '3'.[208] f (2) is calculated as follows. ‘2’ f (2) is a positive number and thus shifts to the left by 1 bit, so that 'Temp' is set to ‘4’. In the first loop, 'while' 'Temp' is equal to '4', that is, not equal to '1', and thus, '4' is multiplied by '1/2' by shifting to the right, as a result of which 'Temp' is set to '2 '. Since the initial value of 'Length' is set to ‘1’, 'Length' in the first cycle of 'while' is equal to '3'.

[209] Во втором цикле 'while' 'Temp' равна ‘2’, то есть не равна ‘1’, и, таким образом '2' умножается на '1/2' путем сдвига вправо, вследствие чего 'Temp' устанавливается равным ‘1’. Поскольку текущее значение 'Length' равно 3, во втором цикле 'while' 'Length' равна '5'. Третий цикл 'while' не осуществляется, поскольку 'Temp' равна ‘1’, и f(2) равна '5'.[209] In the second loop, 'while' 'Temp' is equal to '2', that is, not equal to '1', and thus '2' is multiplied by '1/2' by shifting to the right, as a result of which 'Temp' is set equal to 'one'. Since the current value of 'Length' is 3, in the second loop, 'while' 'Length' is '5'. The third cycle of 'while' is not implemented, since 'Temp' is ‘1’, and f (2) is '5'.

[210] f(0) вычисляется следующим образом. Поскольку входное значение координаты f(0) равно ‘0’, '0' сдвигается влево на 1 бит, и прибавляется ‘1’, вследствие чего 'Temp' устанавливается равным ‘1’. Соответственно, циклы 'while' не осуществляются. f(0) равна ‘1’ согласно начальному значению 'Length'.[210] f (0) is calculated as follows. Since the input value of the coordinate f (0) is ‘0’, '0' is shifted left by 1 bit, and ‘1’ is added, so that 'Temp' is set to ‘1’. Accordingly, while loops are not implemented. f (0) is ‘1’ according to the initial value of 'Length'.

[211] Заранее определенная оценочная функция ‘f’, описанная в связи с уравнением 3, это функция для оценивания результата статистического кодирования с использованием кодирования переменной длины. Соответственно, блок 920 определения кандидата оценивает результат, полученный путем кодирования переменной длины разностей виртуального вектора движения с использованием оценочной функции ‘A’, для определения, исключается ли 'mvx' из предсказателей-кандидатов вектора движения. В результате оценивания, когда существует по меньшей мере одна разность виртуального вектора движения, согласно оценке, подлежащая кодированию на меньшую длину, чем разность первоначального вектора движения, 'mvx' исключается из всех предсказателей-кандидатов вектора движения.[211] The predefined evaluation function ‘f’ described in connection with Equation 3 is a function for evaluating the result of statistical coding using variable length coding. Accordingly, the candidate determination unit 920 evaluates the result obtained by encoding the variable length of the differences of the virtual motion vector using the evaluation function ‘A’ to determine whether 'mvx' is excluded from the motion vector predictor candidates. As a result of the evaluation, when at least one difference of the virtual motion vector exists, according to the estimate, to be encoded to a shorter length than the difference of the initial motion vector, mvx is excluded from all motion vector predictor candidates.

[212] Однако, специалисту в данной области техники очевидно, что результат статистического кодирования оценивается с использованием способов, отличных от результата кодирования переменной длины. Например, для оценивания и сравнения результата статистического кодирования разности виртуального вектора движения и результата статистического кодирования разности первоначального вектора движения, можно использовать другую оценочную функцию ‘h’. Здесь, ‘h’ может быть функцией, которая оценивает результат контекстно-адаптивного двоичного арифметического кодирования.[212] However, it is obvious to a person skilled in the art that the result of statistical coding is evaluated using methods other than the result of coding of variable length. For example, to evaluate and compare the result of statistical coding of the difference of the virtual motion vector and the result of statistical coding of the difference of the initial motion vector, you can use another evaluation function ‘h’. Here, ‘h’ may be a function that evaluates the result of context adaptive binary arithmetic coding.

[213] Кроме того, согласно другому иллюстративному варианту осуществления, для повышения точности результата оценивания на основании заранее определенной оценочной функции, результат, полученный путем оценивания информации индекса, также можно оценивать. Информация индекса используется для указания заранее определенного предсказателя-кандидата вектора движения из всех предсказателей-кандидатов вектора движения. Это подробно описано со ссылкой на уравнение 4:[213] Furthermore, according to another exemplary embodiment, to improve the accuracy of the evaluation result based on a predetermined evaluation function, the result obtained by evaluating the index information can also be evaluated. Index information is used to indicate a predetermined motion vector predictor candidate from all motion vector predictor candidates. This is described in detail with reference to equation 4:

[214] (уравнение 4)[214] (equation 4)

[215] A(mvx+MVD-mvy, mvyIdx)<A(MVD, mvxIdx)[215] A (mvx + MVD-mvy, mvyIdx) <A (MVD, mvxIdx)

[216] Блок 920 определения кандидата определяет, существует ли в общем количестве кандидатов по меньшей мере один 'mvy', который удовлетворяет уравнению 4, для определения, исключается ли 'mvx', один из предсказателей-кандидатов вектора движения, из предсказателей-кандидатов вектора движения. В уравнении 4, 'MVD' обозначает разность первоначального вектора движения, и mvxIdx и mvyIdx обозначают информацию индекса, используемую для указания ‘mvx’ и 'mvy', соответственно, из всех предсказателей-кандидатов вектора движения. Для определения необходимости исключения 'mvx', 'mvx+MVD-mvy', то есть разность виртуального вектора движения между 'mvx+MVD', виртуальным вектором движения на основании 'mvx', и 'mvy', другим предсказателем кандидатом вектора движения, и информация индекса для указания ‘mvy’ из всех кандидатов оценивается с использованием заранее определенной оценочной функции ‘A’. Кроме того, разность первоначального вектора движения и информация индекса для указания ‘mvx’ из общего количества кандидатов оценивается с использованием заранее определенной оценочной функции ‘A’. В результате оценивания определяется, существует ли по меньшей мере один 'mvy' в общем количестве кандидатов.[216] The candidate determination unit 920 determines whether there is at least one 'mvy' that satisfies Equation 4 in the total number of candidates to determine whether 'mvx', one of the motion vector predictor candidates, is excluded from the vector predictor candidates movement. In Equation 4, 'MVD' stands for the difference of the initial motion vector, and mvxIdx and mvyIdx denote the index information used to indicate ‘mvx’ and 'mvy', respectively, of all motion vector predictor candidates. To determine the need to exclude 'mvx', 'mvx + MVD-mvy', i.e. the difference of the virtual motion vector between 'mvx + MVD', the virtual motion vector based on 'mvx', and 'mvy', another predictor of the motion vector candidate, and index information for indicating 'mvy' of all candidates is evaluated using a predetermined evaluation function 'A'. In addition, the difference of the initial motion vector and the index information for indicating ‘mvx’ from the total number of candidates is estimated using the predetermined evaluation function ‘A’. As a result of the evaluation, it is determined whether at least one 'mvy' exists in the total number of candidates.

[217] Как описано выше, разность виртуального вектора движения и разность первоначального вектора движения оцененная согласно ‘A’ могут быть заданы x-координатами и y-координатами и могут задаваться согласно нижеследующему уравнению 5:[217] As described above, the difference of the virtual motion vector and the difference of the initial motion vector estimated according to ‘A’ can be given by x-coordinates and y-coordinates and can be set according to the following equation 5:

[218] (уравнение 5)[218] (equation 5)

[219] A(mvx+MVD-mvy, mvyIdx)=f(p1)+f(q1)+g(mvyIdx)[219] A (mvx + MVD-mvy, mvyIdx) = f (p1) + f (q1) + g (mvyIdx)

[220] A(MVD, mvxIdx)=f(p2)+f(q2)+g(mvxIdx)[220] A (MVD, mvxIdx) = f (p2) + f (q2) + g (mvxIdx)

[221] По сравнению с уравнением 2, A(mvx+MVD-mvy) в левой стороне уравнения 2 оценивает только разность виртуального вектора движения, тогда как A(mvx+MVD-mvy, mvyIdx) уравнения 5 оценивает разность виртуального вектора движения и информацию для указания 'mvy' из всех предсказателей-кандидатов вектора движения. Оценочная функция ‘A’ может быть функцией для оценивания результата статистического кодирования. Здесь, функция ‘f’ может быть функцией для оценивания результата статистического кодирования на основании значения x-координат или значения y-координат разности виртуального вектора движения, как описано в связи с уравнением 2, и функция ‘g’ может быть функцией для оценивания результата статистического кодирования 'mvxIdx'. Когда значение x-координат и значение y-координат 'mvx+MVD-mvy' равны 'p1' и 'q1', соответственно, A(mvx+MVD-mvy, mvxIdx) можно вычислять согласно уравнению 5.[221] Compared to Equation 2, A (mvx + MVD-mvy, mvyIdx) of Equation 5 on the left side of Equation 2 estimates only the difference of the virtual motion vector, while A (mvx + MVD-mvy, mvyIdx) of Equation 5 estimates the difference of the virtual motion vector and information to indicate 'mvy' of all motion vector predictor candidates. The evaluation function ‘A’ may be a function for evaluating the result of statistical coding. Here, the function 'f' may be a function for evaluating the result of statistical coding based on the x-coordinate value or y-coordinate value of the difference of the virtual motion vector, as described in connection with equation 2, and the function 'g' may be a function for evaluating the result of the statistical encoding 'mvxIdx'. When the x-coordinate value and the y-coordinate value of 'mvx + MVD-mvy' are equal to 'p1' and 'q1', respectively, A (mvx + MVD-mvy, mvxIdx) can be calculated according to equation 5.

[222] A(MVD) в правой стороне уравнения 2 оценивает только разность первоначального вектора движения, тогда как A(MVD, mvxIdx) уравнения 5 оценивает разность первоначального вектора движения и информацию для указания 'mvx' из всех предсказателей-кандидатов вектора движения. Функция ‘f’ может быть функцией для оценивания результата статистического кодирования на основании значения x-координат или значения y-координат разности первоначального вектора движения, как описано в связи с уравнением 2, и функция ‘g’ может быть функцией для оценивания результата статистического кодирования 'mvxIdx'. Когда значение x-координат и значение y-координат 'MVD' равны 'p2' и 'q2', соответственно, A(MVD, mvxIdx) можно вычислять согласно уравнению 5.[222] A (MVD) on the right side of equation 2 estimates only the difference of the initial motion vector, while A (MVD, mvxIdx) of equation 5 estimates the difference of the initial motion vector and information to indicate 'mvx' from all motion vector predictor candidates. The function 'f' may be a function for evaluating the result of statistical coding based on the x-coordinate value or the y-coordinate of the difference of the initial motion vector, as described in connection with equation 2, and the function 'g' may be a function for evaluating the result of statistical encoding ' mvxIdx '. When the x-coordinate value and the y-coordinate value of 'MVD' are equal to 'p2' and 'q2', respectively, A (MVD, mvxIdx) can be calculated according to equation 5.

[223] Определение исключения согласно уравнениям 4 и 5 можно дополнительно использовать при определении исключения согласно уравнению 2. Другими словами, исключается ли 'mvx' из всех предсказателей-кандидатов вектора движения, сначала определяется на основании уравнений 2, и исключение можно снова определять согласно уравнениям 4 и 5. Например, в результате определения согласно уравнению 2, когда ‘A(mvx+MVD-mvy)’ больше или равна ‘A(MVD)’, и ‘A(mvx+MVD-mvy)’ не меньше ‘A(MVD)’, ‘mvx’ не исключается из всех предсказателей-кандидатов вектора движения согласно уравнению 2. Однако, хотя ‘A(mvx+MVD-mvy)’ и ‘A(MVD)’ одинаковы, ‘mvx’ можно исключить из всех предсказателей-кандидатов вектора движения на основании результата определения согласно уравнениям 4 и 5.[223] The definition of an exception according to equations 4 and 5 can be additionally used to determine the exception according to equation 2. In other words, whether 'mvx' is excluded from all motion vector predictor candidates is first determined based on equations 2, and the exception can be determined again according to equations 4 and 5. For example, as a result of the determination according to Equation 2, when 'A (mvx + MVD-mvy)' is greater than or equal to 'A (MVD)' and 'A (mvx + MVD-mvy)' is not less than 'A ( MVD) ',' mvx 'is not excluded from all motion vector predictor candidates according to avneniyu 2. However, although 'A (mvx + MVD-mvy)' and 'A (MVD)' equal, 'mvx' can be eliminated from all predictors candidate motion vector on basis of a determination result according to equations 4 and 5.

[224] Когда блок 920 определения кандидата определяет исключение для предсказателей-кандидатов вектора движения на основании уравнений 1-5, определение исключения для предсказателей-кандидатов вектора движения повторяющимся образом осуществляется согласно порядку размещения группы C. Согласно другому иллюстративному варианту осуществления, блок 920 определения кандидата переупорядочивает группу C согласно заранее определенному критерию, и определение исключения может повторяться согласно переупорядоченному порядку. Это подробно описано со ссылкой на фиг. 13A-13D.[224] When the candidate determination unit 920 determines an exception for the motion vector predictor candidates based on equations 1-5, the determination of the exception for the motion vector predictor candidates is repeated in accordance with the arrangement of group C. According to another illustrative embodiment, the candidate determination unit 920 reorders the group C according to a predetermined criterion, and the determination of the exception can be repeated according to the reordered order. This is described in detail with reference to FIG. 13A-13D.

[225] Фиг. 13A-13D иллюстрируют местоположение текущего блока, включенного в единицу кодирования заранее определенного размера, согласно иллюстративному варианту осуществления.[225] FIG. 13A-13D illustrate the location of a current block included in a coding unit of a predetermined size, according to an illustrative embodiment.

[226] Когда все предсказатели-кандидаты вектора движения образуют C={median(mv_a', mv_b', mv_c'), mv_a', mv_b', mv_c', mv_temporal}, каждое из двоичных чисел присваивается предсказателям кандидатам вектора движения группы C, и, таким образом, можно указывать предсказатель-кандидат вектора движения, используемый для предсказания вектора движения текущего блока, из предсказателей-кандидатов вектора движения, как описано выше.[226] When all the motion vector predictor candidates form C = {median (mv_a ', mv_b', mv_c '), mv_a', mv_b ', mv_c', mv_temporal}, each of the binary numbers is assigned to the predictors as candidates for the motion vector of group C, and thus, the motion vector predictor candidate used to predict the motion vector of the current block from the motion vector predictor candidates can be indicated, as described above.

[227] Здесь, двоичные числа присваиваются согласно порядку размещения предсказателей-кандидатов вектора движения, включенных в группу C, и могут представлять собой код переменной длины на основе кода Хаффмана. Соответственно, малое число битов могут присваиваться предсказателям кандидатам вектора движения, расположенным спереди в порядке размещения группы C. Например, бит '0' может присваиваться 'median(mv_a', mv_b', mv_c')', бит '00' может присваиваться mv_a', и бит '01' может присваиваться mv_b'. Соответственно, блок 920 определения кандидата организует предсказатели-кандидаты вектора движения согласно заранее определенному порядку, благодаря чему, предсказатель вектора движения, с высокой вероятностью используемый в предсказании вектора движения текущего блока из предсказателей-кандидатов вектора движения, располагается спереди в группе C.[227] Here, binary numbers are assigned according to the order of placement of motion vector predictor candidates included in group C, and may be a variable-length code based on a Huffman code. Accordingly, a small number of bits can be assigned to motion vector predictor candidates located in front in the order of group C. For example, bit '0' can be assigned to 'median (mv_a', mv_b ', mv_c') ', bit' 00 'can be assigned to mv_a' , and bit '01' may be assigned to mv_b '. Accordingly, the candidate determination unit 920 organizes motion vector predictor candidates according to a predetermined order, whereby the motion vector predictor used with high probability to predict the motion vector of the current block of motion vector predictor candidates is located in front of group C.

[228] Предсказатель вектора движения, с высокой вероятностью используемый в предсказании вектора движения текущего блока, можно определять согласно местоположению текущего блока в единице кодирования. Местоположение текущего блока можно выразить с использованием индекса разбиения текущего блока. Индексы разбиения присваиваются блокам в единице кодирования согласно заранее определенному порядку. Таким образом, предсказатель вектора движения, с высокой вероятностью используемый в предсказании вектора движения текущего блока, можно определять согласно индексу разбиения текущего блока. Согласно фиг. 13A, когда текущий блок располагается на нижней стороне единицы кодирования, вектор движения текущего блока может быть идентичен или аналогичен вектору движения блока, соседствующему с левой стороной единицы кодирования, или вектору движения блока, соседствующему с нижней левой стороной единицы кодирования. Соответственно, порядок размещения можно, при необходимости, изменить так, чтобы предсказатель-кандидат вектора движения, который соответствует вектору движения блока, соседствующего с левой стороной, или вектору движения блока, соседствующего с нижней левой стороной, располагался спереди в группе C. Поскольку mv_b' из предсказателей-кандидатов вектора движения в группе C является предсказателем кандидатом вектора движения, который соответствует вектору движения блока, соседствующего с левой стороной, порядок mv_b' и median(mv_a', mv_b', mv_c') изменяется в группе C, что позволяет переупорядочить группу C в виде C={mv_b', mv_a', median(mv_a', mv_b', mv_c'), mv_c', mv_temporal}.[228] The motion vector predictor used with high probability in predicting the motion vector of the current block can be determined according to the location of the current block in the coding unit. The location of the current block can be expressed using the partition index of the current block. Split indices are assigned to blocks in a coding unit according to a predetermined order. Thus, the motion vector predictor, with a high probability used in predicting the motion vector of the current block, can be determined according to the partition index of the current block. According to FIG. 13A, when the current block is located on the lower side of the coding unit, the motion vector of the current block may be identical or similar to the block motion vector adjacent to the left side of the coding unit, or the block motion vector adjacent to the lower left side of the coding unit. Accordingly, the placement order can, if necessary, be changed so that the candidate predictor of the motion vector, which corresponds to the motion vector of the block adjacent to the left side, or to the motion vector of the block adjacent to the lower left side, is located in front in group C. Since mv_b ' Of the predictor candidates of the motion vector in group C, the predictor is the candidate motion vector, which corresponds to the motion vector of the block adjacent to the left side, the order of mv_b 'and median (mv_a', mv_b ', mv_c') group C, which allows us to reorder group C in the form C = {mv_b ', mv_a', median (mv_a ', mv_b', mv_c '), mv_c', mv_temporal}.

[229] Аналогично, когда текущий блок располагается на левой стороне единицы кодирования, как показано на фиг. 13B, предсказатель-кандидат вектора движения, который соответствует вектору движения блока, соседствующему с левой стороной единицы кодирования, и вектору движения блока, соседствующему с верхней стороной единицы кодирования, можно использовать для предсказания вектора движения текущего блока. Поскольку mv_b' из предсказателей-кандидатов вектора движения в группе C является предсказателем кандидатом вектора движения, который соответствует вектору движения блока, соседствующего с левой стороной, порядок mv_b' и median(mv_a', mv_b', mv_c') изменяется в группе C, что позволяет переупорядочить группу C в виде C={mv_b', mv_a', median(mv_a', mv_b', mv_c'), mv_c', mv_temporal}.[229] Similarly, when the current block is located on the left side of the coding unit, as shown in FIG. 13B, a motion vector predictor candidate that corresponds to a block motion vector adjacent to the left side of the coding unit and a block motion vector adjacent to the upper side of the coding unit can be used to predict the motion vector of the current block. Since mv_b 'from the motion vector predictor candidates in group C is the predictor of the motion vector candidate that corresponds to the motion vector of the block adjacent to the left side, the order of mv_b' and median (mv_a ', mv_b', mv_c ') changes in group C, which allows reordering the group C in the form C = {mv_b ', mv_a', median (mv_a ', mv_b', mv_c '), mv_c', mv_temporal}.

[230] Согласно фиг. 13C, когда текущий блок располагается на верхней стороне единицы кодирования, предсказатель-кандидат вектора движения, который соответствует вектору движения блока, соседствующему с левой стороной единицы кодирования и вектору движения блока, соседствующему с верхней стороной единицы кодирования, можно использовать в качестве предсказателя вектора движения текущего блока. Поскольку mv_a' из предсказателей-кандидатов вектора движения в группе C является предсказателем кандидатом вектора движения, который соответствует вектору движения блока, соседствующего с верхней стороной, порядок mv_a' и median(mv_a', mv_b', mv_c') изменяется в группе C, что позволяет переупорядочить группу C в виде C={mv_a', median(mv_a', mv_b', mv_c'), mv_b', mv_c', mv_temporal}.[230] Referring to FIG. 13C, when the current block is located on the upper side of the coding unit, a motion vector predictor candidate that corresponds to a block motion vector adjacent to the left side of the coding unit and a block motion vector adjacent to the upper side of the coding unit can be used as a predictor of the current motion vector block. Since mv_a 'of the motion vector predictor candidates in group C is the predictor of the motion vector candidate that corresponds to the motion vector of the block adjacent to the upper side, the order of mv_a' and median (mv_a ', mv_b', mv_c ') changes in group C, which allows reordering the group C in the form C = {mv_a ', median (mv_a', mv_b ', mv_c'), mv_b ', mv_c', mv_temporal}.

[231] Согласно фиг. 13D, когда текущий блок располагается на правой стороне единицы кодирования, предсказатель-кандидат вектора движения, который соответствует вектору движения блока, соседствующему с верхней стороной единицы кодирования, можно использовать для предсказания вектора движения текущего блока. Поскольку mv_c' из предсказателей-кандидатов вектора движения в группе C является предсказателем кандидатом вектора движения, который соответствует вектору движения блока, соседствующему с верхней правой стороной, порядок mv_c' и median(mv_a', mv_b', mv_c') изменяется в группе C, что позволяет переупорядочивать группу C в виде C={mv_c', mv_a', mv_b', median(mv_a', mv_b', mv_c'), mv_temporal}.[231] Referring to FIG. 13D, when the current block is located on the right side of the coding unit, the motion vector predictor candidate that corresponds to the block motion vector adjacent to the upper side of the coding unit can be used to predict the motion vector of the current block. Since mv_c 'of the motion vector predictor candidates in group C is the motion vector predictor candidate that corresponds to the block motion vector adjacent to the upper right side, the order of mv_c' and median (mv_a ', mv_b', mv_c ') changes in group C, which allows reordering the group C in the form C = {mv_c ', mv_a', mv_b ', median (mv_a', mv_b ', mv_c'), mv_temporal}.

[232] Местоположение текущего блока в единице кодирования в качестве критерия, используемого для переупорядочивания предсказателей-кандидатов вектора движения, приведено в порядке примера. Другими словами, для переупорядочивания предсказателей-кандидатов вектора движения можно использовать различные критерии. Различные критерии, используемые для размещения предсказателя-кандидата вектора движения, который с высокой вероятностью аналогичен вектору движения текущего блока, спереди в группе C, можно использовать в качестве критериев для переупорядочивания предсказателей-кандидатов вектора движения. Предсказатель-кандидат вектора движения, который с высокой вероятностью аналогичен вектору движения текущего блока, определяется на основании заранее определенной информации, относящейся к другим блокам, закодированным до текущего блока, и группу C можно переупорядочить согласно определению.[232] The location of the current block in the coding unit as a criterion used to reorder the motion vector predictors is shown as an example. In other words, various criteria can be used to reorder the motion vector predictors. Various criteria used to place a motion vector predictor candidate, which is very likely to be similar to the motion vector of the current block, in front of group C, can be used as criteria for reordering motion vector predictor candidates. A motion vector predictor candidate, which is very likely similar to the motion vector of the current block, is determined based on predetermined information relating to other blocks encoded before the current block, and group C can be reordered according to the definition.

[233] Кроме того, предсказатель-кандидат вектора движения, который с высокой вероятностью аналогичен вектору движения текущего блока, определяется на основании другой информации, кодированной или декодированной по отношению к текущему блоку, до кодирования вектора движения текущего блока, и группу C можно переупорядочить согласно определению.[233] Furthermore, the motion vector predictor candidate, which is highly likely to be similar to the motion vector of the current block, is determined based on other information encoded or decoded with respect to the current block, before encoding the motion vector of the current block, and group C can be reordered according to definition.

[234] Кроме того, группу C можно переупорядочить путем исключения перекрывающихся предсказателей-кандидатов вектора движения. При наличии перекрывающихся предсказателей-кандидатов вектора движения во всех предсказателях кандидатах вектора движения, перекрывающиеся предсказатели-кандидаты вектора движения исключаются в первую очередь, и необходимость исключения предсказателей-кандидатов вектора движения можно определять согласно уравнениям 1-5.[234] In addition, group C can be reordered by eliminating overlapping motion vector predictor candidates. If there are overlapping motion vector predictor candidates in all motion vector predictor candidates, overlapping motion vector predictor candidates are eliminated first, and the need to exclude motion vector predictor candidates can be determined according to equations 1-5.

[235] Возвращаясь к фиг. 9, кодер 930 вектора движения кодирует информацию о векторе движения и информацию о предсказателе вектора движения. Информация о векторе движения является разностью первоначального вектора движения между первоначальным вектором движения текущего блока и первоначальным предсказателем вектора движения. Информация о предсказателе вектора движения это информация для указания предсказателя-кандидата вектора движения, используемого для предсказания вектора движения текущего блока среди предсказателей-кандидатов вектора движения, из которых исключен по меньшей мере один предсказатель вектора движения. Другими словами, информация для указания предсказателя вектора движения текущего блока среди предсказателей-кандидатов вектора движения, которые не исключаются на блоке 920 определения кандидата, кодируется как информация о предсказателе вектора движения.[235] Returning to FIG. 9, the motion vector encoder 930 encodes motion vector information and motion vector predictor information. The information about the motion vector is the difference of the initial motion vector between the original motion vector of the current block and the initial predictor of the motion vector. Motion vector predictor information is information for indicating a motion vector predictor candidate used to predict a motion vector of a current block among motion vector predictor candidates from which at least one motion vector predictor is excluded. In other words, information for indicating a motion vector predictor of the current block among motion vector predictor candidates that are not excluded on candidate determination unit 920 is encoded as motion vector predictor information.

[236] Разность первоначального вектора движения принимается от блока 910 оценки вектора движения и кодируется согласно заранее определенному способу статистического кодирования. Кроме того, кодируется информация для указания предсказателя-кандидата вектора движения, используемого для предсказания вектора движения текущего блока из предсказателей-кандидатов вектора движения, определенных путем выборочного исключения по меньшей мере одного предсказателя-кандидата вектора движения на блоке 920 определения кандидата.[236] The difference of the initial motion vector is received from the motion vector estimator 910 and encoded according to a predetermined statistical encoding method. In addition, information is encoded to indicate a motion vector predictor candidate used to predict a motion vector of a current block from motion vector predictor candidates determined by selectively excluding at least one motion vector predictor candidate on a candidate determination unit 920.

[237] Когда блок 920 определения кандидата определяет предсказатели-кандидаты вектора движения путем исключения по меньшей мере одного предсказателя-кандидата вектора движения из всех предсказателей-кандидатов вектора движения согласно уравнениям 1-5, кодируется информация для указания предсказателя-кандидата вектора движения, используемого для предсказания вектора движения текущего блока из определенных предсказателей-кандидатов вектора движения. Кодер 930 вектора движения может индексировать каждый из предсказателей-кандидатов вектора движения, которые не исключаются на блоке 920 определения кандидата, и статистически кодирует информацию индекса как информацию о предсказателе вектора движения. Индексирование означает присвоение заранее определенных двоичных чисел каждому из предсказателей-кандидатов вектора движения, и информация о предсказателе вектора движения означает двоичное число, присваиваемое предсказателю кандидату вектора движения, используемому для предсказания вектора движения текущего блока. Когда один предсказатель-кандидат вектора движения остается после того, как блок 920 определения кандидата выборочно исключает по меньшей мере один предсказатель-кандидат вектора движения, информация о предсказателе вектора движения может не кодироваться отдельно на кодере 930 вектора движения, поскольку предсказатель-кандидат вектора движения, подлежащий использованию для предсказания вектора движения текущего блока, неявно определяется.[237] When the candidate determination unit 920 determines motion vector predictor candidates by excluding at least one motion vector predictor candidate from all motion vector predictor candidates according to Equations 1-5, information is encoded to indicate a motion vector predictor candidate used for predictions of the motion vector of the current block from certain predictor candidates of the motion vector. The motion vector encoder 930 can index each of the motion vector predictors that are not excluded on the candidate determination unit 920, and statistically encodes the index information as information about the motion vector predictor. Indexing means assigning predefined binary numbers to each of the motion vector predictor candidates, and motion vector predictor information means a binary number assigned to the predictor motion vector candidate used to predict the motion vector of the current block. When one motion vector predictor candidate remains after the candidate determination unit 920 selectively excludes at least one motion vector predictor candidate, the motion vector predictor information may not be encoded separately on the motion vector encoder 930 because the motion vector predictor is candidate, to be used to predict the motion vector of the current block is implicitly determined.

[238] Кроме того, как описано в связи с фиг. 13A-13D, блок 920 определения кандидата может индексировать каждый из предсказателей-кандидатов вектора движения, генерируемый путем переупорядочивания всех предсказателей-кандидатов вектора движения согласно заранее определенному критерию и путем выборочного исключения по меньшей мере одного предсказателя вектора движения из всех переупорядоченных предсказателей-кандидатов вектора движения, и может статистически кодировать информацию индекса.[238] Furthermore, as described in connection with FIG. 13A-13D, the candidate determination unit 920 may index each of the motion vector predictor candidates generated by reordering all the motion vector predictor candidates according to a predetermined criterion and selectively excluding at least one motion vector predictor from all reordered motion vector predictor candidates , and can statistically encode index information.

[239] В результате переупорядочивания, осуществляемого блоком 920 определения кандидата, двоичные числа с наименьшим количеством битов могут присваиваться предсказателю кандидату вектора движения, с высокой вероятностью используемому для предсказания вектора движения текущего блока, и, таким образом, информацию о предсказателе вектора движения можно кодировать с высоким коэффициентом сжатия.[239] As a result of the reordering carried out by the candidate determination unit 920, the binary numbers with the smallest number of bits can be assigned to the motion vector predictor candidate, which is highly likely to be used to predict the motion vector of the current block, and thus, the motion vector predictor information can be encoded with high compression ratio.

[240] На фиг. 14 показана блок-схема устройства 1400 для декодирования вектора движения, согласно иллюстративному варианту осуществления.[240] In FIG. 14 is a block diagram of an apparatus 1400 for decoding a motion vector according to an illustrative embodiment.

[241] Устройство 1400 для декодирования вектора движения, показанное на фиг. 14, включено в устройство 200 для декодирования изображения, показанное на фиг. 2, или декодер 500 изображения, показанный на фиг. 5. Согласно фиг. 14, устройство 1400 для декодирования вектора движения включает в себя декодер 1410 вектора движения, блок 1420 определения кандидата и блок 1430 восстановления вектора движения.[241] The apparatus 1400 for decoding a motion vector shown in FIG. 14 is included in the image decoding apparatus 200 shown in FIG. 2, or the image decoder 500 shown in FIG. 5. According to FIG. 14, the device 1400 for decoding a motion vector includes a motion vector decoder 1410, a candidate determination unit 1420, and a motion vector recovery unit 1430.

[242] Устройство 1400 для декодирования вектора движения декодирует вектор движения текущего блока, когда вектор движения текущего блока кодируется согласно явному режиму из вышеописанных явного режима и неявного режима.[242] A device 1400 for decoding a motion vector decodes the motion vector of the current block when the motion vector of the current block is encoded according to the explicit mode from the above explicit mode and implicit mode.

[243] Декодер 1410 вектора движения принимает битовый поток для вектора движения текущего блока и декодирует принятый битовый поток. Информация о векторе движения, включенная в битовый поток, декодируется. Декодируется разность первоначального вектора движения текущего блока. Разность первоначального вектора движения можно декодировать согласно заранее определенному способу статистического декодирования. Разность первоначального вектора движения это векторная разность между вектором движения текущего блока и предсказателем кандидатом вектора движения, используемым для предсказания вектора движения текущего блока. Согласно способу декодирования вектора движения согласно иллюстративному варианту осуществления по меньшей мере один предсказатель-кандидат вектора движения исключается из всех предсказателей-кандидатов вектора движения согласно уравнениям 1-5, и определяются предсказатели-кандидаты вектора движения. Предсказатели-кандидаты вектора движения не являются фиксированными и декодируются поблочно, благодаря чему, предсказатели-кандидаты вектора движения могут непрерывно изменяться. Соответственно, хотя информация о предсказателях кандидатах вектора движения одинакова, если предсказатели-кандидаты вектора движения не определены, предсказатель-кандидат вектора движения, используемый для предсказания вектора движения текущего блока, может восстанавливаться неточно.[243] The motion vector decoder 1410 receives the bitstream for the motion vector of the current block and decodes the received bitstream. The motion vector information included in the bitstream is decoded. The difference of the initial motion vector of the current block is decoded. The difference of the initial motion vector can be decoded according to a predetermined statistical decoding method. The difference of the initial motion vector is the vector difference between the motion vector of the current block and the predictor motion vector candidate used to predict the motion vector of the current block. According to a motion vector decoding method according to an illustrative embodiment, at least one motion vector predictor candidate is excluded from all motion vector predictor candidates according to Equations 1-5, and motion vector predictor candidates are determined. The motion vector predictor predictors are not fixed and are decoded block by block, so that the motion vector predictor candidates can be continuously changed. Accordingly, although the information about the motion vector predictor candidates is the same if the motion vector predictor candidates are not defined, the motion vector predictor candidate used to predict the motion vector of the current block may not be accurately reconstructed.

[244] Таким образом, блок 1420 определения кандидата определяет предсказатели-кандидаты вектора движения до определения предсказателя-кандидата вектора движения, используемого для предсказания вектора движения текущего блока. По меньшей мере, один предсказатель-кандидат вектора движения из всех векторов кандидатов движения выборочно исключается согласно уравнениям 1 - 5, и определяются предсказатели-кандидаты вектора движения. Предсказатель-кандидат вектора движения, который не используется для предсказания вектора движения текущего блока, из всех кандидатов, определенных на основании векторов движения блоков, включенных в ранее закодированную область, соседствующую с текущим блоком, исключается на основании заранее определенной оценочной функции.[244] Thus, the candidate determination unit 1420 determines the motion vector predictor candidates before determining the motion vector predictor candidate used to predict the motion vector of the current block. At least one motion vector predictor candidate from all motion candidate vectors is selectively excluded according to equations 1 to 5, and motion vector predictor candidates are determined. The motion vector predictor predictor, which is not used to predict the motion vector of the current block, is excluded from all candidates determined based on the motion vectors of the blocks included in a previously encoded area adjacent to the current block based on a predetermined evaluation function.

[245] Виртуальный вектор движения генерируется на основании заранее определенного вектора движения и из всех предсказателей-кандидатов вектора движения и информации о предсказателе вектора движения, декодированной на декодере вектора движения, и разности виртуального вектора движения, которые являются разностями между сгенерированным виртуальным вектором движения и другим предсказателем кандидатом вектора движения, вычисляются для всех кандидатов. Вычисленные разности виртуального вектора движения сравниваются с информацией о векторе движения, декодированной на декодере 1410 вектора движения, которая является информацией о разности первоначального вектора движения, и заранее определенный предсказатель-кандидат вектора движения выборочно исключается. Результат, полученный путем статистического кодирования разностей виртуального вектора движения, сравнивается с результатом, полученным путем статистического кодирования разности первоначального вектора движения, что позволяет определить необходимость исключения заранее определенного предсказателя-кандидата вектора движения. Кроме того, для повышения точности оценки результата статистического кодирования, результат, полученный путем статистического кодирования информация индекса, также оценивается и используется при определении исключения. Способ исключения предсказателей-кандидатов вектора движения описан в связи с уравнениями 1-5.[245] A virtual motion vector is generated based on a predetermined motion vector and from all motion vector predictors and information about the motion vector predictor decoded at the motion vector decoder and the difference of the virtual motion vector, which are the differences between the generated virtual motion vector and another motion vector predictor predictors are calculated for all candidates. The calculated differences of the virtual motion vector are compared with the information about the motion vector decoded on the decoder 1410 of the motion vector, which is information about the difference of the initial motion vector, and a predetermined predictor candidate motion vector is selectively excluded. The result obtained by statistical coding of the differences of the virtual motion vector is compared with the result obtained by statistical coding of the difference of the initial motion vector, which makes it possible to determine the need to exclude the predetermined motion vector predictor candidate. In addition, to improve the accuracy of estimating the result of statistical coding, the result obtained by statistical coding of index information is also evaluated and used to determine the exception. A method for eliminating motion vector predictor candidates is described in connection with Equations 1-5.

[246] Кроме того, согласно другому иллюстративному варианту осуществления, блок 1420 определения кандидата переупорядочивает все предсказатели-кандидаты вектора движения согласно заранее определенному критерию, повторяющимся образом осуществляет определение исключения для всех переупорядоченных предсказателей-кандидатов вектора движения согласно уравнениям 1-5, и может выборочно исключать по меньшей мере один предсказатель-кандидат вектора движения. Перекрывающиеся предсказатели-кандидаты вектора движения можно исключить из всех переупорядоченных предсказателей-кандидатов вектора движения, и определение исключения можно повторяющимся образом осуществлять согласно уравнениям 1-5.[246] In addition, according to another exemplary embodiment, the candidate determination unit 1420 reorders all motion vector predictor candidates according to a predetermined criterion, repeatingly determines an exception for all reordered motion vector predictor candidates according to equations 1-5, and can selectively exclude at least one predictor candidate motion vector. Overlapping motion vector predictors can be excluded from all reordered motion vector predictors, and the determination of exclusion can be repeated in accordance with Equations 1-5.

[247] Когда множество предсказателей-кандидатов вектора движения из всех предсказателей-кандидатов вектора движения остается после того, как блок 1420 определения кандидата исключает по меньшей мере один предсказатель-кандидат вектора движения из всех предсказателей-кандидатов вектора движения, декодер 1410 вектора движения декодирует информацию о предсказателе вектора движения. Информация о предсказателе вектора движения декодируется согласно заранее определенному способу статистического декодирования. Информация о предсказателе вектора движения это информация для указания предсказателя-кандидата вектора движения, используемого для предсказания вектора движения текущего блока из предсказателей-кандидатов вектора движения, из которых исключен по меньшей мере один предсказатель-кандидат вектора движения. Информация для указания предсказателя-кандидата вектора движения, используемого для предсказания вектора движения текущего блока из предсказателей-кандидатов вектора движения, которые не исключаются на блоке 1420 определения кандидата, декодируется.[247] When a plurality of motion vector predictor candidates from all motion vector predictor candidates remains after the candidate determination unit 1420 excludes at least one motion vector predictor candidate from all motion vector predictor candidates, the motion vector decoder 1410 decodes the information about the motion vector predictor. The motion vector predictor information is decoded according to a predetermined statistical decoding method. The motion vector predictor information is information for indicating a motion vector predictor candidate used to predict the motion vector of the current block from motion vector predictor candidates from which at least one motion vector predictor candidate is excluded. Information for indicating a motion vector predictor candidate used to predict a motion vector of the current block from motion vector predictor candidates that are not excluded at candidate determination unit 1420 is decoded.

[248] Когда один предсказатель-кандидат вектора движения остается после того, как блок 1420 определения кандидата исключает по меньшей мере один предсказатель-кандидат вектора движения из всех предсказателей-кандидатов вектора движения, оставшийся предсказатель-кандидат вектора движения используется для предсказания вектора движения текущего блока, и, таким образом, декодер 1410 вектора движения может не выборочно декодировать информацию о предсказателе кандидате вектора движения.[248] When one motion vector predictor candidate remains after the candidate determination unit 1420 excludes at least one motion vector predictor candidate from all motion vector predictor candidates, the remaining motion vector predictor candidate is used to predict the motion vector of the current block , and thus, the motion vector decoder 1410 may not selectively decode the motion vector predictor candidate information.

[249] Блок 1430 восстановления вектора движения восстанавливает вектор движения текущего блока на основании информации о векторе движения, декодированной на декодере 1410 вектора движения. Разность первоначального вектора движения, декодированная на декодере 1410 вектора движения, и предсказатель-кандидат вектора движения, используемый для предсказания вектора движения текущего блока, суммируются друг с другом для восстановления вектора движения текущего блока. Предсказатель-кандидат вектора движения, подлежащий использованию в предсказании вектора движения текущего блока, определяется из предсказателей-кандидатов вектора движения, определенных на блоке 1420 определения кандидата, и определенный предсказатель-кандидат вектора движения прибавляется к разности первоначального вектора движения. Когда в результате исключения на блоке 1420 определения кандидата остается не один предсказатель-кандидат вектора движения, а множество предсказателей-кандидатов вектора движения, предсказатели-кандидаты вектора движения, используемые для предсказания вектора движения текущего блока, можно определять на основании информации о предсказателе вектора движения, декодированной на декодере 1410 вектора движения.[249] The motion vector recovery unit 1430 restores the motion vector of the current block based on the motion vector information decoded on the motion vector decoder 1410. The difference of the initial motion vector decoded at the motion vector decoder 1410 and the motion vector predictor candidate used to predict the motion vector of the current block are added together to reconstruct the motion vector of the current block. The motion vector predictor candidate to be used in the motion vector prediction of the current block is determined from the motion vector predictors determined on the candidate determination unit 1420, and the determined motion vector predictor candidate is added to the difference of the initial motion vector. When, as a result of exclusion, at the candidate determination block 1420, there is not one motion vector predictor candidate candidate but a plurality of motion vector predictor candidates, motion vector predictor candidates used to predict the motion vector of the current block can be determined based on information about the motion vector predictor, decoded on the decoder 1410 motion vector.

[250] Поскольку предсказатели-кандидаты вектора движения определяются блоком 1420 определения кандидата, даже если декодированная информация о предсказателе вектора движения одинакова, предсказатели-кандидаты вектора движения, используемые для предсказания вектора движения текущего блока, могут представлять собой векторы движения соседних блоков в разных положениях.[250] Since motion vector predictor candidates are determined by candidate determination unit 1420, even if the decoded motion vector predictor information is the same, motion vector predictor candidates used to predict the motion vector of the current block may be motion vectors of neighboring blocks at different positions.

[251] На фиг. 15 показана логическая блок-схема, иллюстрирующая способ кодирования вектора движения, согласно иллюстративному варианту осуществления.[251] In FIG. 15 is a flowchart illustrating a method for encoding a motion vector according to an illustrative embodiment.

[252] Согласно фиг. 15, в операции 1510, устройство для кодирования вектора движения оценивает вектор движения текущего блока и определяет предсказатель-кандидат вектора движения, используемый для предсказания вектора движения текущего блока, из всех предсказателей-кандидатов вектора движения. Поиск блока, идентичного или аналогичного текущему блоку осуществляется на множестве эталонных изображений и, в результате поиска, оценивается вектор движения, который представляет собой относительную разность местоположений между текущим блоком и эталонным блоком.[252] Referring to FIG. 15, in operation 1510, a device for encoding a motion vector estimates the motion vector of the current block and determines a motion vector predictor used to predict the motion vector of the current block from all motion vector predictor candidates. A block identical or similar to the current block is searched for on a plurality of reference images and, as a result of the search, a motion vector is estimated, which is the relative position difference between the current block and the reference block.

[253] Затем вектор движения текущего блока предсказывается на основании векторов движения блоков, включенных в ранее закодированную область, соседствующую с текущим блоком. Другими словами, векторы движения блоков, включенных в ранее закодированную область, соседствующую с текущим блоком, задаются как предсказатели-кандидаты вектора движения, и определяется предсказатель-кандидат вектора движения, который наиболее аналогичен вектору движения оцененного текущего блока из предсказателей-кандидатов вектора движения. Генерируется векторная разность между вектором движения текущего блока и определенным предсказателем кандидатом вектора движения, который является разностью первоначального вектора движения.[253] Then, the motion vector of the current block is predicted based on the motion vectors of the blocks included in a previously encoded region adjacent to the current block. In other words, the motion vectors of blocks included in a previously encoded region adjacent to the current block are set as motion vector predictors, and a motion vector predictor is determined that is most similar to the motion vector of the estimated current block from motion vector predictor candidates. A vector difference is generated between the motion vector of the current block and the motion vector candidate determined by the predictor, which is the difference of the initial motion vector.

[254] В операции 1520, устройство для кодирования изображения выборочно исключает по меньшей мере один предсказатель-кандидат вектора движения из всех предсказателей-кандидатов вектора движения. Предсказатель-кандидат вектора движения, который не используется для предсказания вектора движения текущего блока исключается из всех предсказателей-кандидатов вектора движения.[254] In operation 1520, an image encoding apparatus selectively excludes at least one motion vector predictor candidate from all motion vector predictor candidates. A motion vector predictor candidate that is not used to predict the motion vector of the current block is excluded from all motion vector predictor candidates.

[255] Устройство для кодирования изображения генерирует виртуальный вектор движения с использованием заранее определенного предсказателя-кандидата вектора движения из всех предсказателей-кандидатов вектора движения и разности первоначального вектора движения, сгенерированной в операции 1510. Сгенерированный виртуальный вектор движения и другой предсказатель-кандидат вектора движения используются для генерации разности виртуального вектора движения. Генерируются разности виртуального вектора движения для каждого из всех предсказателей-кандидатов вектора движения, и сгенерированные разности виртуального вектора движения сравниваются с разностью первоначального вектора движения, что позволяет выборочно исключить заранее определенный предсказатель-кандидат вектора движения.[255] An image encoding apparatus generates a virtual motion vector using a predetermined motion vector predictor candidate from all motion vector predictor candidates and the difference of the initial motion vector generated in operation 1510. The generated virtual motion vector and another motion vector predictor candidate are used to generate the difference of the virtual motion vector. The differences of the virtual motion vector are generated for each of all predictor candidates of the motion vector, and the generated differences of the virtual motion vector are compared with the difference of the initial motion vector, which allows you to selectively exclude a predetermined predictor candidate motion vector.

[256] Процесс генерации виртуального вектора движения и выборочного исключения предсказателя-кандидата вектора движения в операции 1520 повторяющимся образом осуществляется для всех кандидатов, и, таким образом по меньшей мере один предсказатель-кандидат вектора движения можно исключить из всех кандидатов. При осуществлении процесса исключения повторяющимся образом, вычисляются разности виртуального вектора движения для предсказателей-кандидатов вектора движения, отличных от предсказателей вектора движения, которые уже исключены, и вычисленные разности виртуального вектора движения можно сравнивать с разностью первоначального вектора движения.[256] The process of generating a virtual motion vector and selectively excluding a motion vector predictor candidate in operation 1520 is repeated for all candidates, and thus at least one motion vector predictor candidate can be excluded from all candidates. When the exclusion process is carried out in a repeating manner, the differences of the virtual motion vector are calculated for the motion vector predictor candidates other than the motion vector predictors that are already excluded, and the calculated differences of the virtual motion vector can be compared with the difference of the initial motion vector.

[257] Разность виртуального вектора движения и разность первоначального вектора движения можно оценивать и сравнивать друг с другом на основании заранее определенной оценочной функции, причем заранее определенная оценочная функция может быть функцией, которая оценивает результат статистического кодирования. Разность виртуального вектора движения и разность первоначального вектора движения можно сравнивать друг с другом на основании функции, которая оценивает результат, полученный путем статистического кодирования разности виртуального вектора движения, и результат, полученный путем статистического кодирования разности первоначального вектора движения. Кроме того, для повышения точности оценивания, результат, полученный путем кодирования информация индекса, также можно оценивать и использовать при определении исключения. Способ исключения по меньшей мере одного предсказателя-кандидата вектора движения из всех предсказателей-кандидатов вектора движения описан в связи с уравнениями 1-5.[257] The difference of the virtual motion vector and the difference of the initial motion vector can be estimated and compared with each other based on a predetermined evaluation function, the predetermined evaluation function may be a function that estimates the result of statistical coding. The difference of the virtual motion vector and the difference of the initial motion vector can be compared with each other based on a function that evaluates the result obtained by statistical coding of the difference of the virtual motion vector and the result obtained by statistical coding of the difference of the initial motion vector. In addition, to improve the accuracy of the estimation, the result obtained by encoding the index information can also be evaluated and used in determining the exception. A method for eliminating at least one motion vector predictor candidate from all motion vector predictor candidates is described in connection with Equations 1-5.

[258] Кроме того, как описано в связи с фиг. 13A-13D, устройство для кодирования вектора движения может переупорядочивать все предсказатели-кандидаты вектора движения согласно заранее определенному критерию и выборочно исключать по меньшей мере один предсказатель-кандидат вектора движения из всех переупорядоченных предсказателей-кандидатов вектора движения. Кроме того, устройство для кодирования вектора движения может исключать перекрывающиеся предсказатели-кандидаты вектора движения из всех переупорядоченных предсказателей-кандидатов вектора движения и повторяющимся образом осуществлять определение исключения согласно уравнениям 1-5.[258] Furthermore, as described in connection with FIG. 13A-13D, a motion vector encoding apparatus may reorder all motion vector predictor candidates according to a predetermined criterion and selectively exclude at least one motion vector predictor candidate from all reordered motion vector predictors. In addition, the apparatus for encoding the motion vector can exclude overlapping motion vector predictors from all the reordered motion vector predictors, and repeat the determination of the exception according to Equations 1-5.

[259] В операции 1530, устройство для кодирования вектора движения кодирует информацию о векторе движения и информацию о предсказателе вектора движения. Информация о разности первоначального вектора движения и информация для указания предсказателя-кандидата вектора движения, используемого для предсказания вектора движения текущего блока, кодируются. Информация о предсказателе вектора движения может представлять собой информацию для указания предсказателя-кандидата вектора движения, используемого для предсказания вектора движения текущего блока, из предсказателей-кандидатов вектора движения, которые не исключаются в операциях 1520 и 1530.[259] In operation 1530, a motion vector encoding apparatus encodes motion vector information and motion vector predictor information. The difference information of the initial motion vector and information for indicating the predictor candidate motion vector used to predict the motion vector of the current block are encoded. The motion vector predictor information may be information to indicate a motion vector predictor candidate used to predict the motion vector of the current block from motion vector predictor candidates that are not excluded in operations 1520 and 1530.

[260] Когда один предсказатель-кандидат вектора движения остается после исключения по меньшей мере одного предсказателя-кандидата вектора движения из всех предсказателей-кандидатов вектора движения, информация о предсказателе вектора движения, может не кодироваться.[260] When one motion vector predictor candidate remains after excluding at least one motion vector predictor candidate from all motion vector predictor candidates, the motion vector predictor information may not be encoded.

[261] Фиг. 16 это логическая блок-схема, иллюстрирующая способ декодирования вектора движения, согласно иллюстративному варианту осуществления.[261] FIG. 16 is a flowchart illustrating a method of decoding a motion vector according to an illustrative embodiment.

[262] Согласно фиг. 16, устройство для декодирования вектора движения декодирует информацию о векторе движения текущего блока из принятого битового потока, в операции 1610. Информация о векторе движения может представлять собой разность первоначального вектора движения между вектором движения текущего блока и предсказателем вектора движения текущего блока.[262] Referring to FIG. 16, a device for decoding a motion vector decodes information about a motion vector of a current block from a received bitstream in operation 1610. Information about a motion vector may be the difference of an initial motion vector between a motion vector of the current block and a motion vector predictor of the current block.

[263] В операции 1620, устройство для декодирования вектора движения генерирует виртуальный вектор движения на основании информации о векторе движения, декодированной в операции 1610, и одного предсказателя-кандидата вектора движения из предсказателей-кандидатов вектора движения.[263] In operation 1620, the motion vector decoding apparatus generates a virtual motion vector based on the motion vector information decoded in operation 1610 and one motion vector predictor candidate from motion vector predictor candidates.

[264] При генерации виртуального вектора движения, устройство для декодирования вектора движения исключает по меньшей мере один предсказатель-кандидат вектора движения из всех предсказателей-кандидатов вектора движения. Все предсказатели-кандидаты вектора движения определяются на основании векторов движения блоков, включенных в ранее декодированную область, соседствующую с текущим блоком. Устройство для декодирования вектора движения может выборочно исключать по меньшей мере один предсказатель-кандидат вектора движения из всех предсказателей-кандидатов вектора движения. Разность виртуального вектора движения и разность первоначального вектора движения, декодированные в операции 1610, оцениваются на основании заранее определенной оценочной функции для выборочного исключения заранее определенного предсказателя-кандидата вектора движения. Способ исключения предсказателя-кандидата вектора движения из всех кандидатов такой же, как в операции 1530 и описан выше со ссылкой на уравнения 1-5.[264] When generating a virtual motion vector, a device for decoding a motion vector excludes at least one motion vector predictor candidate from all motion vector predictor candidates. All motion vector predictor candidates are determined based on the motion vectors of the blocks included in a previously decoded area adjacent to the current block. A device for decoding a motion vector may selectively exclude at least one motion vector predictor candidate from all motion vector predictor candidates. The difference of the virtual motion vector and the difference of the initial motion vector decoded in operation 1610 are estimated based on a predetermined evaluation function to selectively exclude a predetermined motion vector predictor candidate. The method of eliminating the motion vector predictor candidate from all candidates is the same as in operation 1530 and described above with reference to equations 1-5.

[265] Процесс генерации виртуального вектора движения и выборочного исключения предсказателя-кандидата вектора движения в операции 1620 повторяющимся образом осуществляется для всех кандидатов, и, таким образом по меньшей мере один предсказатель-кандидат вектора движения можно исключить из всех кандидатов.[265] The process of generating a virtual motion vector and selectively excluding a motion vector predictor candidate in operation 1620 is repeated for all candidates, and thus at least one motion vector predictor candidate can be excluded from all candidates.

[266] Кроме того, как описано в связи с фиг. 13A-13D, устройство для декодирования вектора движения может переупорядочивать все предсказатели-кандидаты вектора движения согласно заранее определенному критерию и выборочно исключать по меньшей мере один предсказатель-кандидат вектора движения из всех переупорядоченных предсказателей-кандидатов вектора движения. Кроме того, устройство для декодирования вектора движения может исключать перекрывающиеся предсказатели-кандидаты вектора движения из всех переупорядоченных предсказателей-кандидатов вектора движения и повторяющимся образом осуществлять определение исключения согласно уравнениям 1-5.[266] Furthermore, as described in connection with FIG. 13A-13D, a motion vector decoding apparatus may reorder all motion vector predictor candidates according to a predetermined criterion and selectively exclude at least one motion vector predictor candidate from all reordered motion vector predictors. In addition, the motion vector decoding apparatus can exclude overlapping motion vector predictors from all the reordered motion vector predictors, and repeat the determination of the exception according to Equations 1-5.

[267] Когда в результате исключения остается множество предсказателей-кандидатов вектора движения, информация о предсказателе вектора движения декодируется, и когда остается один предсказатель-кандидат вектора движения, информация о предсказателе вектора движения не декодируется.[267] When a plurality of motion vector predictor candidates remain as a result of the exception, the motion vector predictor information is decoded, and when there is only one motion vector predictor candidate, the motion vector predictor information is not decoded.

[268] В операции 1630, устройство для декодирования вектора движения определяет предсказатель вектора движения, используемый для предсказания вектора движения текущего блока, из предсказателей-кандидатов вектора движения, которые не исключаются в операции 1620.[268] In operation 1630, a device for decoding a motion vector determines a motion vector predictor used to predict a motion vector of the current block from motion vector predictor candidates that are not excluded in operation 1620.

[269] Предсказатель-кандидат вектора движения, используемый для предсказания вектора движения текущего блока, из предсказателей-кандидатов вектора движения, можно определять на основании информации о предсказателе вектора движения текущего блока. Когда в результате исключения в операции 1620 остается один предсказатель-кандидат вектора движения, один оставшийся предсказатель-кандидат вектора движения определяется в качестве предсказателя вектора движения используемый для предсказания вектора движения текущего блока.[269] The motion vector predictor candidate used to predict the motion vector of the current block from the motion vector predictor candidates can be determined based on the motion vector predictor information of the current block. When, as a result of the exception in operation 1620, there remains one motion vector predictor candidate, one remaining motion vector predictor candidate is determined as the motion vector predictor used to predict the motion vector of the current block.

[270] Когда предсказатель-кандидат вектора движения определен, вектор движения текущего блока восстанавливается суммированием определенного предсказателя-кандидата вектора движения и разности первоначального вектора движения, декодированной в операции 1610.[270] When the motion vector predictor candidate is determined, the motion vector of the current block is restored by adding up the specific motion vector predictor candidate and the difference of the original motion vector decoded in operation 1610.

[271] Согласно иллюстративному варианту осуществления, когда предсказатели-кандидаты вектора движения используются для предсказательного кодирования и декодирования вектора движения, количество предсказателей-кандидатов вектора движения можно уменьшить для предсказательного кодирования и декодирования вектора движения. Соответственно, информацию, необходимую для указания предсказателя вектора движения, используемого для предсказания вектора движения текущего блока из предсказателей-кандидатов вектора движения, можно кодировать с минимальным числом битов, благодаря чему коэффициент сжатия кодирования/декодирования вектора движения увеличивается, что позволяет повышать коэффициент сжатия при кодировании/декодировании изображения.[271] According to an illustrative embodiment, when motion vector candidate predictors are used to predictively encode and decode a motion vector, the number of motion vector predictor candidates can be reduced to predictively encode and decode a motion vector. Accordingly, the information necessary to indicate the motion vector predictor used to predict the motion vector of the current block from the motion vector predictor candidates can be encoded with a minimum number of bits, whereby the compression coefficient of the encoding / decoding of the motion vector is increased, which allows to increase the compression ratio when encoding / image decoding.

[272] Хотя выше конкретно показаны и описаны иллюстративные варианты осуществления, специалисты в данной области техники могут предложить различные изменения, касающиеся формы и деталей, не выходящие за рамки сущности и объема идеи настоящего изобретения, определенной в нижеследующей формуле изобретения.[272] Although illustrative embodiments are specifically shown and described above, those skilled in the art can propose various changes regarding the form and details without departing from the spirit and scope of the idea of the present invention as defined in the following claims.

[273] Иллюстративные варианты осуществления также могут быть реализованы в виде машиночитаемых кодов на машиночитаемом носителе записи.[273] Illustrative embodiments may also be implemented as computer-readable codes on a computer-readable recording medium.

[274] Например, устройство для кодирования изображения, устройство для декодирования изображения, кодер вектора движения, и вектор движения согласно иллюстративным вариантам осуществления могут включать в себя шину, подключенную к каждому элементу, включенному в устройства на фиг. 1, 2, 4, 5, 9 и 14 и по меньшей мере один процессор, объединенный с шиной. Кроме того, устройства могут включать в себя память, подключенную к по меньшей мере одному процессору для выполнения команд за счет объединения с шиной для хранения команд, принятых сообщений или генерированных сообщений.[274] For example, an image encoding device, an image decoding device, a motion vector encoder, and a motion vector according to exemplary embodiments may include a bus connected to each element included in the devices of FIG. 1, 2, 4, 5, 9, and 14, and at least one processor coupled to the bus. In addition, devices may include memory connected to at least one processor for executing instructions by combining with a bus for storing instructions, received messages, or generated messages.

[275] Машиночитаемый носитель записи представляет собой любое устройство хранения данных, на котором могут храниться данные, которые впоследствии могут считываться компьютерной системой. Примеры машиночитаемого носителя записи включают в себя постоянную память (ПЗУ), оперативную память (ОЗУ), диски CD-ROM, магнитные ленты, флоппи-диски и оптические устройства хранения данных. Машиночитаемый носитель записи также может быть распределен по компьютерным системам, соединенным в сеть, благодаря чему становится возможным распределенные хранение и выполнение машиночитаемого кода.[275] A computer-readable recording medium is any data storage device on which data can be stored, which can subsequently be read by a computer system. Examples of computer-readable recording media include read-only memory (ROM), random access memory (RAM), CD-ROMs, magnetic tapes, floppy disks and optical storage devices. A computer-readable recording medium can also be distributed over computer systems connected to a network, which makes distributed storage and execution of computer-readable code possible.

Claims (51)

1. Устройство декодирования изображения, содержащее:1. An image decoding device comprising: блок декодирования, выполненный с возможностью декодировать, из потока битов, информацию о разности векторов движения для текущего блока и информацию о предсказателе вектора движения для текущего блока;a decoding unit configured to decode, from the bitstream, information about the difference of the motion vectors for the current block and information about the predictor of the motion vector for the current block; блок определения кандидата, выполненный с возможностью генерировать группу предсказателей-кандидатов вектора движения и изменять упомянутую группу предсказателей-кандидатов вектора движения на основании значений предсказателей-кандидатов вектора движения в упомянутой группе предсказателей-кандидатов вектора движения и количества предсказателей-кандидатов вектора движения в упомянутой группе предсказателей-кандидатов вектора движения; иa candidate determination unit configured to generate a group of motion vector predictor candidates and change the said motion vector predictor group based on the values of motion vector predictor candidates in said motion vector predictor group and the number of motion vector predictor candidates in said predictor group - motion vector candidates; and блок восстановления вектора движения, выполненный с возможностью определения предсказателя вектора движения для текущего блока на основании группы предсказателей-кандидатов вектора движения и упомянутой информации о предсказателе вектора движения, и определения вектора движения для текущего блока на основании упомянутого предсказателя вектора движения и упомянутой информации о разности векторов движения,a motion vector recovery unit, configured to determine a motion vector predictor for the current block based on a group of motion vector predictor candidates and said motion vector predictor information, and determine a motion vector for the current block based on said motion vector predictor and said vector difference information movements при этом измененная группа предсказателей-кандидатов вектора движения включает в себя по меньшей мере один из первых предсказателей-кандидатов вектора движения и второго предсказателя-кандидата вектора движения, причем первые предсказатели-кандидаты вектора движения основаны на векторах движения соседних блоков текущего блока, а второй предсказатель-кандидат вектора движения основан на векторе движения совместно расположенного блока для текущего блока, и упомянутый совместно расположенный блок находится в эталонном изображении,wherein the modified group of motion vector predictor candidates includes at least one of the first motion vector predictor candidates and a second motion vector predictor candidate, wherein the first motion vector predictor candidates are based on motion vectors of neighboring blocks of the current block, and the second predictor the motion vector candidate is based on the motion vector of the co-located block for the current block, and said co-located block is in the reference image, причем соседние блоки включают в себя первый блок, расположенный снизу слева от текущего блока, и включают в себя второй блок, расположенный сверху от первого блока.moreover, neighboring blocks include a first block located lower left of the current block, and include a second block located above the first block.  2. Устройство по п.1, в котором блок определения кандидата изменяет группу предсказателей-кандидатов вектора движения, когда имеются множественные первые предсказатели-кандидаты вектора движения с перекрывающимися значениями в упомянутой группе предсказателей-кандидатов вектора движения, посредством исключения одного из первых предсказателей-кандидатов вектора движения с перекрывающимися значениями из упомянутой группы предсказателей-кандидатов вектора движения.2. The device according to claim 1, in which the candidate determination unit changes the group of motion vector predictor candidates when there are multiple first motion vector predictor candidates with overlapping values in said group of motion vector predictor candidates by eliminating one of the first candidate predictors motion vectors with overlapping values from the said group of motion vector predictor candidates. 3. Устройство по п.1, в котором блок определения кандидата изменяет группу предсказателей-кандидатов вектора движения для включения в общей сложности двух предсказателей-кандидатов вектора движения, и3. The device according to claim 1, in which the candidate determination unit changes the group of motion vector predictor candidates to include a total of two motion vector predictor candidates, and в котором блок определения кандидата определяет один из упомянутых двух предсказателей-кандидатов вектора движения в качестве предсказателя вектора движения на основании информации о предсказателе вектора движения, имеющем 1-битовое двоичное значение.wherein the candidate determination unit determines one of said two motion vector predictor candidates as a motion vector predictor based on information about the motion vector predictor having a 1-bit binary value. 4. Устройство по п.1, в котором второй предсказатель-кандидат вектора движения масштабирован на основании временного расстояния между текущим изображением и эталонным изображением.4. The device according to claim 1, in which the second predictor candidate motion vector is scaled based on the time distance between the current image and the reference image. 5. Способ кодирования изображения, содержащий:5. An image encoding method, comprising: определение вектора движения текущего блока посредством выполнения взаимного предсказания в отношении текущего блока;determining a motion vector of the current block by performing mutual prediction with respect to the current block; генерирование группы предсказателей-кандидатов вектора движения;generating a group of motion vector predictor candidates; изменение группы предсказателей-кандидатов вектора движения на основании значений предсказателей-кандидатов вектора движения в упомянутой группе предсказателей-кандидатов вектора движения;changing the group of motion vector predictor candidates based on the values of the motion vector predictor candidates in said group of motion vector predictor candidates; кодирование информации о предсказателе вектора движения, указывающей предсказатель вектора движения текущего блока, посредством определения предсказателя вектора движения текущего блока среди предсказателей-кандидатов вектора движения, включенных в измененную группу предсказателей-кандидатов вектора движения;encoding motion vector predictor information indicating a motion vector predictor of the current block by determining a motion vector predictor of the current block among motion vector predictor candidates included in a modified group of motion vector predictor candidates; кодирование информации о разности векторов движения текущего блока, которая указывает разность между вектором движения текущего блока и предсказателем вектора движения текущего блока; иencoding information about the difference of the motion vectors of the current block, which indicates the difference between the motion vector of the current block and the predictor of the motion vector of the current block; and генерирование битового потока, включающего в себя информацию о разности векторов движения текущего блока и информацию о предсказателе вектора движения, указывающую предсказатель вектора движения текущего блока,generating a bit stream including information about the difference of the motion vectors of the current block and information about the predictor of the motion vector indicating the predictor of the motion vector of the current block, причем измененная группа предсказателей-кандидатов вектора движения включает в себя по меньшей мере один из первых предсказателей-кандидатов вектора движения и второго предсказателя-кандидата вектора движения, причем первые предсказатели-кандидаты вектора движения основаны на векторах движения соседних блоков текущего блока, а второй предсказатель-кандидат вектора движения основан на векторе движения совместно расположенного блока для текущего блока, и упомянутый совместно расположенный блок находится в эталонном изображении,moreover, the modified group of motion vector predictor candidates includes at least one of the first motion vector predictor candidates and a second motion vector predictor candidate, the first motion vector predictor candidates based on motion vectors of neighboring blocks of the current block, and the second predictor the motion vector candidate is based on a motion vector of a co-located block for the current block, and said co-located block is in the reference image, при этом соседние блоки включают в себя первый блок, расположенный снизу слева от текущего блока, и включают в себя второй блок, расположенный сверху от первого блока.wherein neighboring blocks include a first block located lower left of the current block, and include a second block located above the first block. 6. Невременный считываемый компьютером носитель, хранящий битовый поток, содержащий:6. A non-transitory computer-readable medium storing a bitstream, comprising: информацию о предсказателе вектора движения, указывающую предсказатель вектора движения текущего блока; иmotion vector predictor information indicating a motion vector predictor of the current block; and информацию о разности векторов движения текущего блока, которая указывает разность между вектором движения текущего блока и предсказателем вектора движения текущего блока,information about the difference of the motion vectors of the current block, which indicates the difference between the motion vector of the current block and the predictor of the motion vector of the current block, причем вектор движения текущего блока определяется посредством выполнения взаимного предсказания в отношении текущего блока,moreover, the motion vector of the current block is determined by performing mutual prediction with respect to the current block, при этом генерируется группа предсказателей-кандидатов вектора движения,this generates a group of motion vector predictor candidates, упомянутая сгенерированная группа предсказателей-кандидатов вектора движения изменяется на основании значений предсказателей-кандидатов вектора движения в группе предсказателей-кандидатов вектора движения,said generated group of motion vector predictor candidates changing based on the values of motion vector predictor candidates in a group of motion vector predictor candidates, упомянутая информация о предсказателе вектора движения является информацией, которая кодируется посредством определения предсказателя вектора движения текущего блока среди предсказателей-кандидатов вектора движения, включенных в измененную группу предсказателей-кандидатов вектора движения,said motion vector predictor information is information that is encoded by determining a motion vector predictor of the current block among motion vector predictor candidates included in a modified group of motion vector predictor candidates, причем измененная группа предсказателей-кандидатов вектора движения включает в себя по меньшей мере один из первых предсказателей-кандидатов вектора движения и второго предсказателя-кандидата вектора движения, причем первые предсказатели-кандидаты вектора движения основаны на векторах движения соседних блоков текущего блока, а второй предсказатель-кандидат вектора движения основан на векторе движения совместно расположенного блока для текущего блока, и упомянутый совместно расположенный блок находится в эталонном изображении,moreover, the modified group of motion vector predictor candidates includes at least one of the first motion vector predictor candidates and a second motion vector predictor candidate, the first motion vector predictor candidates based on motion vectors of neighboring blocks of the current block, and the second predictor the motion vector candidate is based on a motion vector of a co-located block for the current block, and said co-located block is in the reference image, причем соседние блоки включают в себя первый блок, расположенный снизу слева от текущего блока, и включают в себя второй блок, расположенный сверху от первого блока.moreover, neighboring blocks include a first block located lower left of the current block, and include a second block located above the first block. 7. Устройство кодирования изображения, содержащее:7. An image encoding device comprising: блок оценки вектора движения, выполненный с возможностью определения вектора движения текущего блока посредством выполнения взаимного предсказания в отношении текущего блока,a motion vector estimator, configured to determine a motion vector of the current block by performing mutual prediction with respect to the current block, блок определения кандидата, выполненный с возможностью генерировать группу предсказателей-кандидатов вектора движения и изменять упомянутую группу предсказателей-кандидатов вектора движения на основании значений предсказателей-кандидатов вектора движения в упомянутой группе предсказателей-кандидатов вектора движения; иa candidate determination unit configured to generate a group of motion vector predictor candidates and change the said motion vector predictor group based on the values of motion vector predictor candidates in said motion vector predictor group; and кодер вектора движения, выполненный с возможностью кодирования информации о предсказателе вектора движения, указывающей предсказатель вектора движения текущего блока посредством определения предсказателя вектора движения текущего блока среди предсказателей-кандидатов вектора движения, включенных в измененную группу предсказателей-кандидатов вектора движения, кодирования информации о разности векторов движения текущего блока, которая указывает разность между вектором движения текущего блока и предсказателем вектора движения текущего блока, и генерирования битового потока, включающего в себя информацию о разности векторов движения текущего блока и информацию о предсказателе вектора движения, указывающую предсказатель вектора движения текущего блока,motion vector encoder, configured to encode motion vector predictor information indicating a motion vector predictor of a current block by determining a motion vector predictor of a current block among motion vector predictor candidates included in a modified group of motion vector predictor candidates, encoding motion vector difference information of the current block, which indicates the difference between the motion vector of the current block and the predictor of the motion vector uschego unit, and generating a bitstream including information about the difference between the motion vectors of the current block, and information on the motion vector predictor, indicating the motion vector predictor of the current block, причем измененная группа предсказателей-кандидатов вектора движения включает в себя по меньшей мере один из первых предсказателей-кандидатов вектора движения и второго предсказателя-кандидата вектора движения, причем первые предсказатели-кандидаты вектора движения основаны на векторах движения соседних блоков текущего блока, а второй предсказатель-кандидат вектора движения основан на векторе движения совместно расположенного блока для текущего блока, и упомянутый совместно расположенный блок находится в эталонном изображении, иmoreover, the modified group of motion vector predictor candidates includes at least one of the first motion vector predictor candidates and a second motion vector predictor candidate, the first motion vector predictor candidates based on motion vectors of neighboring blocks of the current block, and the second predictor the motion vector candidate is based on a motion vector of a co-located block for the current block, and said co-located block is in the reference image, and причем соседние блоки включают в себя первый блок, расположенный снизу слева от текущего блока, и включают в себя второй блок, расположенный сверху от первого блока.moreover, neighboring blocks include a first block located lower left of the current block, and include a second block located above the first block. 8. Невременный считываемый компьютером носитель, хранящий битовый поток, содержащий:8. A non-transitory computer-readable medium storing a bitstream comprising: информацию о предсказателе вектора движения, указывающую предсказатель вектора движения текущего блока; иmotion vector predictor information indicating a motion vector predictor of the current block; and информацию о разности векторов движения текущего блока, которая указывает разность между вектором движения текущего блока и предсказателем вектора движения текущего блока,information about the difference of the motion vectors of the current block, which indicates the difference between the motion vector of the current block and the predictor of the motion vector of the current block, причем вектор движения текущего блока определяется посредством выполнения взаимного предсказания в отношении текущего блока,moreover, the motion vector of the current block is determined by performing mutual prediction with respect to the current block, при этом генерируется группа предсказателей-кандидатов вектора движения,this generates a group of motion vector predictor candidates, упомянутая сгенерированная группа предсказателей-кандидатов вектора движения изменяется на основании значений предсказателей-кандидатов вектора движения в группе предсказателей-кандидатов вектора движения,said generated group of motion vector predictor candidates changing based on the values of motion vector predictor candidates in a group of motion vector predictor candidates, упомянутая информация о предсказателе вектора движения является информацией, которая кодируется посредством определения предсказателя вектора движения текущего блока среди предсказателей-кандидатов вектора движения, включенных в измененную группу предсказателей-кандидатов вектора движения,said motion vector predictor information is information that is encoded by determining a motion vector predictor of the current block among motion vector predictor candidates included in a modified group of motion vector predictor candidates, причем измененная группа предсказателей-кандидатов вектора движения включает в себя по меньшей мере один из первых предсказателей-кандидатов вектора движения и второго предсказателя-кандидата вектора движения, причем первые предсказатели-кандидаты вектора движения основаны на векторах движения соседних блоков текущего блока, а второй предсказатель-кандидат вектора движения основан на векторе движения совместно расположенного блока для текущего блока, и упомянутый совместно расположенный блок находится в эталонном изображении,moreover, the modified group of motion vector predictor candidates includes at least one of the first motion vector predictor candidates and a second motion vector predictor candidate, the first motion vector predictor candidates based on motion vectors of neighboring blocks of the current block, and the second predictor the motion vector candidate is based on a motion vector of a co-located block for the current block, and said co-located block is in the reference image, причем соседние блоки включают в себя первый блок, расположенный снизу слева от текущего блока, второй блок, расположенный сверху от первого блока, и блоки, расположенные сверху слева, сверху справа от текущего блока.and neighboring blocks include a first block located lower left of the current block, a second block located above the first block, and blocks located upper left, upper right of the current block. 9. Способ декодирования изображения, содержащий:9. A method for decoding an image, comprising: декодирование, из битового потока, информации о разности векторов движения для текущего блока и информации о предсказателе вектора движения для текущего блока;decoding, from the bitstream, the motion vector difference information for the current block and the motion vector predictor information for the current block; генерирование группы предсказателей-кандидатов вектора движения;generating a group of motion vector predictor candidates; изменение группы предсказателей кандидатов вектора движения на основании значений предсказателей-кандидатов вектора движения в группе предсказателей-кандидатов вектора движения и количества предсказателей-кандидатов вектора движения в группе предсказателей-кандидатов вектора движения;changing the group of motion vector predictor candidates based on the values of motion vector predictor candidates in the motion vector predictor group and the number of motion vector predictor candidates in the motion vector predictor group; определение предсказателя вектора движения для текущего блока на основании группы предсказателей-кандидатов вектора движения и информации о предсказателе вектора движения; иdetermining a motion vector predictor for the current block based on a group of motion vector predictor candidates and motion vector predictor information; and определение вектора движения для текущего блока на основании предсказателя вектора движения и информации о разности векторов движения,determining a motion vector for the current block based on the predictor of the motion vector and information about the difference of the motion vectors, причем измененная группа предсказателей-кандидатов вектора движения включает в себя по меньшей мере один из первых предсказателей-кандидатов вектора движения и второго предсказателя-кандидата вектора движения, причем первые предсказатели-кандидаты вектора движения основаны на векторах движения соседних блоков текущего блока, а второй предсказатель-кандидат вектора движения основан на векторе движения совместно расположенного блока для текущего блока, и упомянутый совместно расположенный блок находится в эталонном изображении,moreover, the modified group of motion vector predictor candidates includes at least one of the first motion vector predictor candidates and a second motion vector predictor candidate, the first motion vector predictor candidates based on motion vectors of neighboring blocks of the current block, and the second predictor the motion vector candidate is based on a motion vector of a co-located block for the current block, and said co-located block is in the reference image, при этом соседние блоки включают в себя первый блок, расположенный снизу слева от текущего блока, и включают в себя второй блок, расположенный сверху от первого блока.wherein neighboring blocks include a first block located lower left of the current block, and include a second block located above the first block.
RU2019101175A 2010-01-19 2019-01-17 Method and device for encoding and decoding motion vector based on reduced motion vector predictors-candidates RU2701087C1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US29616310P 2010-01-19 2010-01-19
US61/296,163 2010-01-19
KR1020110004015A KR101768207B1 (en) 2010-01-19 2011-01-14 Method and apparatus for encoding/decoding motion vector based on reduced motion vector predictor candidates
KR10-2011-0004015 2011-01-14

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
RU2015114569A Division RU2678510C2 (en) 2010-01-19 2015-04-17 Method and device for coding and decoding motion vector based on reduced predictors-candidates of motion vector

Publications (1)

Publication Number Publication Date
RU2701087C1 true RU2701087C1 (en) 2019-09-24

Family

ID=62565747

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2019101175A RU2701087C1 (en) 2010-01-19 2019-01-17 Method and device for encoding and decoding motion vector based on reduced motion vector predictors-candidates

Country Status (2)

Country Link
JP (3) JP6523494B2 (en)
RU (1) RU2701087C1 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5731840A (en) * 1995-03-10 1998-03-24 Kabushiki Kaisha Toshiba Video coding/decoding apparatus which transmits different accuracy prediction levels
US20060120612A1 (en) * 2004-12-08 2006-06-08 Sharath Manjunath Motion estimation techniques for video encoding
US20080117977A1 (en) * 2006-11-03 2008-05-22 Samsung Electronics Co., Ltd. Method and apparatus for encoding/decoding image using motion vector tracking
US20080181309A1 (en) * 2007-01-29 2008-07-31 Samsung Electronics Co., Ltd. Method and apparatus for encoding video and method and apparatus for decoding video
RU2360375C2 (en) * 2002-07-18 2009-06-27 Эл Джи Электроникс Инк. Method of determining motion vectors for current unit in frame, subject to decoding
US20090304084A1 (en) * 2008-03-19 2009-12-10 Nokia Corporation Combined motion vector and reference index prediction for video coding

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100355831B1 (en) * 2000-12-06 2002-10-19 엘지전자 주식회사 Motion vector coding method based on 2-demension least bits prediction
US7978769B2 (en) * 2003-06-30 2011-07-12 Ntt Docomo, Inc. Method and apparatus for coding motion information
JP5025286B2 (en) * 2007-02-28 2012-09-12 シャープ株式会社 Encoding device and decoding device
JP4809296B2 (en) * 2007-06-15 2011-11-09 シャープ株式会社 Video encoding apparatus and video decoding apparatus
JP4977094B2 (en) * 2008-06-25 2012-07-18 株式会社東芝 Image coding method
KR101517768B1 (en) * 2008-07-02 2015-05-06 삼성전자주식회사 Method and apparatus for encoding video and method and apparatus for decoding video
JP5422168B2 (en) * 2008-09-29 2014-02-19 株式会社日立製作所 Video encoding method and video decoding method
WO2011034148A1 (en) * 2009-09-18 2011-03-24 シャープ株式会社 Encoder apparatus, decoder apparatus, moving image encoder apparatus, moving image decoder apparatus, and encoding data
EP2493195A1 (en) * 2009-10-20 2012-08-29 Sharp Kabushiki Kaisha Video encoding device, video decoding device, and data structure
KR101768207B1 (en) * 2010-01-19 2017-08-16 삼성전자주식회사 Method and apparatus for encoding/decoding motion vector based on reduced motion vector predictor candidates

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5731840A (en) * 1995-03-10 1998-03-24 Kabushiki Kaisha Toshiba Video coding/decoding apparatus which transmits different accuracy prediction levels
RU2360375C2 (en) * 2002-07-18 2009-06-27 Эл Джи Электроникс Инк. Method of determining motion vectors for current unit in frame, subject to decoding
US20060120612A1 (en) * 2004-12-08 2006-06-08 Sharath Manjunath Motion estimation techniques for video encoding
US20080117977A1 (en) * 2006-11-03 2008-05-22 Samsung Electronics Co., Ltd. Method and apparatus for encoding/decoding image using motion vector tracking
US20080181309A1 (en) * 2007-01-29 2008-07-31 Samsung Electronics Co., Ltd. Method and apparatus for encoding video and method and apparatus for decoding video
US20090304084A1 (en) * 2008-03-19 2009-12-10 Nokia Corporation Combined motion vector and reference index prediction for video coding

Also Published As

Publication number Publication date
JP6935553B2 (en) 2021-09-15
JP6740420B2 (en) 2020-08-12
JP2018093504A (en) 2018-06-14
JP6523494B2 (en) 2019-06-05
JP2020182236A (en) 2020-11-05
JP2019146252A (en) 2019-08-29

Similar Documents

Publication Publication Date Title
RU2678510C2 (en) Method and device for coding and decoding motion vector based on reduced predictors-candidates of motion vector
KR102570488B1 (en) Motion vector refinement for multi-reference prediction
EP2645718A2 (en) Method and apparatus for encoding and decoding motion vector
KR102027474B1 (en) Method and apparatus for encoding/decoding image by using motion vector of previous block as motion vector of current block
RU2701087C1 (en) Method and device for encoding and decoding motion vector based on reduced motion vector predictors-candidates
AU2015201666C1 (en) Method and apparatus for encoding and decoding motion vector based on reduced motion vector predictor candidates
JP5622613B2 (en) Moving picture coding apparatus, moving picture coding method, and moving picture coding program
JP2013517733A (en) Video encoding / decoding method and apparatus using previous block motion vector as current block motion vector