[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

RU2762262C1 - Способ и устройство двунаправленного межкадрового предсказания - Google Patents

Способ и устройство двунаправленного межкадрового предсказания Download PDF

Info

Publication number
RU2762262C1
RU2762262C1 RU2020134970A RU2020134970A RU2762262C1 RU 2762262 C1 RU2762262 C1 RU 2762262C1 RU 2020134970 A RU2020134970 A RU 2020134970A RU 2020134970 A RU2020134970 A RU 2020134970A RU 2762262 C1 RU2762262 C1 RU 2762262C1
Authority
RU
Russia
Prior art keywords
reference frame
image block
current image
motion vector
motion
Prior art date
Application number
RU2020134970A
Other languages
English (en)
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
Application filed by Хуавэй Текнолоджиз Ко., Лтд. filed Critical Хуавэй Текнолоджиз Ко., Лтд.
Application granted granted Critical
Publication of RU2762262C1 publication Critical patent/RU2762262C1/ru

Links

Images

Classifications

    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • 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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • 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
    • 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
    • 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/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Группа изобретений относится к технологиям кодирования видеоизображений. Техническим результатом является повышение скорости передачи данных и эффективности сжатия данных за счет снижения количества ресурсов передачи, которые требуются для информации о движении. Предложен способ двунаправленного межкадрового предсказания. Способ включает в себя этапы, на которых: получают информацию индикации, получают первую информацию о движении. При этом информация индикации используется для указания определения второй информации о движении на основе первой информации о движении, первая информация о движении представляет собой информацию о движении текущего блока изображения в первом направлении, а вторая информация о движении представляет собой информацию о движении текущего блока изображения во втором направлении. Определяют сэмплы предсказания текущего блока изображения на основе первой информации о движении и второй информации о движении. А также получают значение индекса первого опорного кадра в первой информации о движении. 14 н. и 26 з.п. ф-лы, 6 ил., 3 табл.

Description

[0001] Настоящая заявка испрашивает приоритет на основании патентной заявки Китая №. 201810274457.X, поданная в Китайское национальное управление по интеллектуальной собственности 29 марта 2018 г. и озаглавленная «СПОСОБ И УСТРОЙСТВО ДВУНАПРАВЛЕННОГО МЕЖКАДРОВОГО ПРЕДСКАЗАНИЯ», которая полностью включена в настоящий документ посредством ссылки.
Область техники, к которой относится изобретение
[0002] Варианты осуществления настоящей заявки относятся к области технологий кодирования видеоизображений и, в частности, к способу и устройству двунаправленного межкадрового предсказания.
Уровень техники
[0003] В технологии кодирования видео, блок изображения предсказания текущего блока изображения может быть сформирован на основе только одного опорного блока изображения (который упоминается как однонаправленное межкадровое предсказание), или блок изображения предсказания текущего блока изображения может быть сформирован на основе по меньшей мере двух опорных блоков изображения (что называется двунаправленным межкадровым предсказанием). По меньшей мере два опорного блока изображения могут быть из одного и того же опорного кадра или разных опорных кадров.
[0004] В обеспечение использования одного и того же опорного блока изображения декодером и кодером, кодер должен отправить информацию о движении каждого блока изображения на декодер в битовом потоке. Как правило, информация о движении текущего блока изображения включает в себя значение индекса опорного кадра, метка предиктора вектора движения (motion Vector Predictor, MVP), и разность векторов движения (Motion Vector Difference, MVD). Декодер может найти правильный опорный блок изображения в выбранном опорном кадре на основе значения индекса опорного кадра, метки MVP и MVD.
[0005] Соответственно, при двунаправленном межкадровом предсказании кодер должен отправлять на декодер информацию о движении каждого блока изображения в каждом направлении. Следовательно, информация о движении занимает относительно большое количество ресурсов передачи. Это снижает эффективное использование ресурсов передачи, скорость передачи и эффективность сжатия кодирования.
Сущность изобретения
[0006] Варианты осуществления настоящей заявки обеспечивают способ и устройство двунаправленного межкадрового предсказания для решения проблемы, заключающейся в том, что эффективное использование ресурсов передачи, скорость передачи и эффективность сжатия кодирования снижаются, поскольку информация о движении занимает относительно большое количество ресурсов передачи.
[0007] Для достижения вышеуказанных целей в вариантах осуществления настоящей заявки используются следующие технические решения:
[0008] Согласно первому аспекту обеспечивается способ двунаправленного межкадрового предсказания. Способ включает в себя этапы, на которых: получают информацию индикации, используемую для указания определения второй информации о движении на основе первой информации о движении, где первая информация о движении является информацией о движении текущего блока изображения в первом направлении, а вторая информация о движении является информацией о движении текущего блока изображения во втором направлении; получают первую информацию о движении; определяют вторую информацию о движении на основе полученной первой информации о движении; и определяют сэмплы предсказания текущего блока изображения на основе полученной первой информации о движении и определенной второй информации о движении.
[0009] Согласно способу двунаправленного межкадрового предсказания, обеспеченному в настоящей заявке, после того, как информация индикации получена, вторая информация о движении определяется на основе первой информации о движении. Таким образом, битовый поток должен включать в себя только информацию индикации и первую информацию о движении и больше не должен включать в себя вторую информацию о движении. По сравнению с предшествующим уровнем техники, в котором битовый поток включает в себя информацию о движении каждого блока изображения в каждом направлении, способ двунаправленного межкадрового предсказания, обеспечиваемый в настоящей заявке, эффективно уменьшает информацию о движении, включенную в битовый поток, и улучшает эффективное использование ресурсов передачи, скорость передачи, и скорость кодирования.
[0010] Необязательно, в возможной реализации настоящей заявки, способ «определения второй информации о движении на основе первой информации о движении» содержит этапы, на которых: получают значение индекса первого опорного кадра в первой информации о движении, и определяют порядковый номер первого опорного кадра на основании значения индекса первого опорного кадра и первого списка опорных кадров, при этом первый опорный кадр в данном описании представляет собой опорный кадр текущего блока изображения в первом направлении, а значение индекса первого опорного кадра представляет собой номер первого опорного кадра в первом списке опорных кадров; получают значение индекса второго опорного кадра, и определяют порядковый номер второго опорного кадра на основании значения индекса второго опорного кадра и второго списка опорных кадров, при этом второй опорный кадр в данном описании представляет собой опорный кадр текущего блока изображения во втором направлении, а значение индекса второго опорного кадра является номером второго опорного кадра во втором списке опорных кадров; определяют первый вектор движения на основе первой разности векторов движения и первой метки предиктора вектора движения, которые находятся в первой информации о движении, где первый вектор движения является вектором движения текущего блока изображения в первом направлении; и получают второй вектор движения во второй информации о движении согласно следующей формуле:
Figure 00000001
[0011] В приведенных выше формулах,
Figure 00000002
представляет собой второй вектор движения,
Figure 00000003
представляет собой порядковый номер текущего кадра,
Figure 00000004
представляет собой порядковый номер первого опорного кадра,
Figure 00000005
представляет собой порядковый номер второго опорного кадра,
Figure 00000006
представляет собой первый вектор движения, и второй вектор движения - это вектор движения текущего блока изображения во втором направлении.
[0012] Необязательно, в другой возможной реализации настоящей заявки, способ «определения второй информации о движении на основе первой информации о движении» содержит этапы, на которых: получают значение индекса первого опорного кадра в первой информации о движении, где первый опорный кадр представляет собой опорный кадр текущего блока изображения в первом направлении, а значение индекса первого опорного кадра представляет собой номер первого опорного кадра в первом списке опорных кадров; получают значение индекса второго опорного кадра, причем второй опорный кадр представляет собой опорный кадр текущего блока изображения во втором направлении, а значение индекса второго опорного кадра представляет собой номер второго опорного кадра во втором списке опорных кадров; определяют первый вектора движения на основе первой разности векторов движения и первой метки предиктора вектора движения, которые находятся в первой информации о движении, где первый вектор движения является вектором движения текущего блока изображения в первом направлении; и когда первый опорный кадр является будущим опорным кадром текущего блока изображения, а второй опорный кадр является предыдущим опорным кадром текущего блока изображения, или когда первый опорный кадр является предыдущим опорным кадром текущего блока изображения и второй опорный кадр является будущим опорным кадром текущего блока изображения, или когда каждый из первого опорного кадра и второго опорного кадра является будущим опорным кадром текущего блока изображения, или когда каждый из первого опорного кадра и второго опорного кадра является предыдущим опорным кадром текущего блока изображения, получают второй вектор движения во второй информации о движении согласно следующей формуле:
Figure 00000007
[0013] В приведенной выше формуле
Figure 00000008
представляет второй вектор движения,
Figure 00000009
представляет первый вектор движения, и второй вектор движения представляет собой вектор движения текущего блока изображения во втором направлении.
[0014] Как то, что «первый опорный кадр является будущим опорным кадром текущего блока изображения, а второй опорный кадр - предыдущим опорным кадром текущего блока изображения», так и то, что «первый опорный кадр является предыдущим опорным кадром текущего блока изображения, а второй опорный кадр - будущим опорным кадром текущего блока изображения», может быть представлено с использованием формулы
Figure 00000010
или может быть представлено с использованием формулы
Figure 00000011
. В данной заявке это особым образом не ограничено.
[0015] Кроме того, и то, что «первый опорный кадр, и второй опорный кадр, каждый является будущим опорным кадром текущего блока изображения», и то, что «первый опорный кадр и второй опорный кадр, каждый является предыдущим опорным кадром текущего блока изображения» может быть представлено с использованием формулы
Figure 00000012
.
[0016]
Figure 00000003
представляет собой порядковый номер текущего кадра,
Figure 00000004
представляет собой порядковый номер первого опорного кадра и
Figure 00000005
представляет собой порядковый номер второго опорного кадра.
[0017] Необязательно, в другой возможной реализации настоящей заявки, способ «определения второй информации о движении на основе первой информации о движении» содержит этапы, на которых: получают значение индекса первого опорного кадра и первую разность векторов движения, которые находятся в первой информации о движении и определяют порядковый номер первого опорного кадра на основании значения индекса первого опорного кадра и первого списка опорных кадров, при этом первый опорный кадр представляет собой опорный кадр текущего блока изображения в первом направлении, а значение индекса первого опорного кадра представляет собой номер первого опорного кадра в первом списке опорных кадров; получают значение индекса второго опорного кадра, определяют порядковый номер второго опорного кадра на основании значения индекса второго опорного кадра и второго списка опорных кадров, и определяют второй предсказанный вектор движения на основе значения индекса второго опорного кадра и второго списка возможных предсказанных векторов движения, где второй предсказанный вектор движения является предсказанным вектором движения текущего блока изображения во втором направлении, второй опорный кадр является опорным кадром текущего блока изображения во втором направлении, а значение индекса второго опорного кадра является номером второго опорного кадра во втором списке опорных кадров; получают вторую разность векторов движения во второй информации о движении по следующей формуле:
Figure 00000013
где в приведенной выше формуле,
Figure 00000014
представляет собой вторую разность векторов движения,
Figure 00000003
представляет собой порядковый номер текущего кадра,
Figure 00000004
представляет собой порядковый номер первого опорного кадра,
Figure 00000005
представляет собой порядковый номер второго опорного кадра, и
Figure 00000015
представляет собой первую разность векторов движения; и определяют второй вектор движения на основе второго предсказанного вектора движения и второй разности векторов движения, где второй вектор движения является вектором движения текущего блока изображения во втором направлении.
[0018] Необязательно, в другой возможной реализации настоящей заявки, способ «определения второй информации о движении на основе первой информации о движении» содержит этапы, на которых: получают значение индекса первого опорного кадра и первый вектор движения, которые находятся в первой информации о движении, где первый опорный кадр представляет собой опорный кадр текущего блока изображения в первом направлении, а значение индекса первого опорного кадра представляет собой номер первого опорного кадра в первом списке опорных кадров; получают значение индекса второго опорного кадра, и определяют второй предсказанный вектор движения на основе значения индекса второго опорного кадра и второго списка возможных предсказанных векторов движения, где второй предсказанный вектор движения является предсказанным вектором движения текущего блока изображения во втором направлении, второй опорный кадр представляет собой опорный кадр текущего блока изображения во втором направлении, а значение индекса второго опорного кадра является номером второго опорного кадра во втором списке опорных кадров; когда первый опорный кадр является будущим опорным кадром текущего блока изображения, а второй опорный кадр является предыдущим опорным кадром текущего блока изображения, или когда первый опорный кадр является предыдущим опорным кадром текущего блока изображения, а второй опорный кадр является будущим опорным кадром текущего блока изображения, или когда каждый из первого опорного кадра и второго опорного кадра является будущим опорным кадром текущего блока изображения, или когда каждый из первого опорного кадра и второго опорного кадра представляет собой предыдущий опорный кадр текущего блока изображения, получают вторую разность векторов движения во второй информации о движении в соответствии со следующей формулой:
Figure 00000016
где в приведенной выше формуле
Figure 00000014
представляет вторую разность векторов движения, а
Figure 00000015
представляет первую разность векторов движения; и определяют второй вектор движения на основе второго предсказанного вектора движения и второй разности векторов движения, где второй вектор движения является вектором движения текущего блока изображения во втором направлении.
[0019] Точно так же и то, что «первый опорный кадр является будущим опорным кадром текущего блока изображения, а второй опорный кадр является предыдущим опорным кадром текущего блока изображения», и то, что «первый опорный кадр является предыдущим опорным кадром текущего блока изображения, а второй опорный кадр является будущим опорным кадром текущего блока изображения» может быть представлено с использованием формулы
Figure 00000010
или может быть представлено с использованием формулы
Figure 00000011
. В данной заявке это особым образом не ограничено.
[0020] И то, что «первый опорный кадр, и второй опорный кадр, каждый является будущим опорным кадром текущего блока изображения», и то, что «первый опорный кадр и второй опорный кадр, каждый является предыдущим опорным кадром текущего блока изображения» может быть представлено с использованием формулы
Figure 00000012
.
[0021]
Figure 00000003
представляет собой порядковый номер текущего кадра,
Figure 00000004
представляет собой порядковый номер первого опорного кадра и
Figure 00000005
представляет собой порядковый номер второго опорного кадра.
[0022] Можно узнать, что способ двунаправленного межкадрового предсказания, обеспечиваемый в настоящей заявке, может содержать этап, на котором: определяют второй вектор движения на основе первого вектора движения или может содержать этап, на котором: определяют вторую разность векторов движения на основе первой разности векторов движения и определяют второй вектор движения на основе второй разности векторов движения.
[0023] Необязательно, в другой возможной реализации данной заявки, способ «получения значения индекса второго опорного кадра» содержит этапы, на которых: вычисляют первый порядковый номер на основе порядкового номера текущего кадра и порядкового номера первого опорного кадра в соответствии с формулой
Figure 00000017
, где POC_Cur представляет собой порядковый номер текущего кадра, POC_listX представляет собой порядковый номер первого опорного кадра и POC_listY0 представляет собой первый порядковый номер; и когда второй список опорных кадров включает в себя первый порядковый номер, определяют, как значение индекса второго опорного кадра, номер опорного кадра, представленного посредством первого порядкового номера во втором списке опорных кадров.
[0024] Необязательно, в другой возможной реализации данной заявки, способ «получения значения индекса второго опорного кадра» содержит этапы, на которых: вычисляют второй порядковый номер на основе порядкового номера текущего кадра и порядкового номера первого опорного кадра в соответствии с формулой
Figure 00000018
, где
Figure 00000019
представляет второй порядковый номер; и когда второй список опорных кадров включает в себя второй порядковый номер, определяют, как значение индекса второго опорного кадра, номер опорного кадра, представленного посредством второго порядкового номера во втором списке опорных кадров.
[0025] Необязательно, в другой возможной реализации данной заявки, способ «получения значения индекса второго опорного кадра» содержит этапы, на которых: вычисляют третий порядковый номер на основе порядкового номера текущего кадра и порядкового номера первого опорного кадра в соответствии с формулой
Figure 00000020
, где
Figure 00000021
представляет третий порядковый номер; и определяют, как значение индекса второго опорного кадра, номер опорного кадра, представленного посредством третьего порядкового номера во втором списке опорных кадров.
[0026] Необязательно, в другой возможной реализации данной заявки, способ «получения значения индекса второго опорного кадра» содержит этапы, на которых: вычисляют первый порядковый номер на основе порядкового номера текущего кадра и порядкового номера первого опорного кадра в соответствии с формулой
Figure 00000017
, где POC_Cur представляет собой порядковый номер текущего кадра, POC_listX представляет собой порядковый номер первого опорного кадра и POC_listY0 представляет собой первый порядковый номер. Когда второй список опорных кадров включает в себя первый порядковый номер, номер опорного кадра, представленного посредством первого порядкового номера во втором списке опорных кадров определяется как значение индекса второго опорного кадра. Когда второй список опорных кадров не включает в себя первый порядковый номер, второй порядковый номер рассчитывается на основе порядкового номера текущего кадра и порядкового номера первого опорного кадра в соответствии с формулой
Figure 00000018
, где POC_listY0' представляет второй порядковый номер. Когда второй список опорных кадров включает в себя второй порядковый номер, номер опорного кадра, представленного посредством второго порядкового номера во втором списке опорных кадров определяется как значение индекса второго опорного кадра. Когда второй список опорных кадров не включает в себя второй порядковый номер, третий порядковый номер рассчитывается на основе порядкового номера текущего кадра и порядкового номера первого опорного кадра в соответствии с формулой POC_listX ≠ POC_listY0'', где POC_listY0'' представляет третий порядковый номер; и номер опорного кадра, представленный посредством третьего порядкового номера во втором списке опорных кадров определяется как значение индекса второго опорного кадра.
[0027] Необязательно, в другой возможной реализации данной заявки, способ «получения значения индекса второго опорного кадра» содержит этап, на котором: проводят синтаксический анализ битового потока для получения значения индекса второго опорного кадра.
[0028] Можно узнать, что возможно множество способов «получения значения индекса второго опорного кадра» в данной заявке. Конкретный способ, используемый для получения значения индекса второго опорного кадра потребностей необходимо определить на основе фактических требований или может быть предварительно задан.
[0029] Согласно второму аспекту обеспечивается устройство двунаправленного межкадрового предсказания. Устройство двунаправленного межкадрового предсказания включает в себя блок получения и блок определения.
[0030] В частности, блок получения выполнен с возможностью: получения информации индикации, где информация индикации используется для указания определения второй информации о движении на основе первой информации о движении, первая информация о движении является информацией о движении текущего блока изображения в первом направлении, и вторая информация о движении - это информация о движении текущего блока изображения во втором направлении; и получения первой информации о движении. Блок определения выполнен с возможностью: определения второй информации о движении на основе первой информации о движении, полученной посредством блока получения, и определения сэмплов предсказания текущего блока изображения на основе первой информации о движении и второй информации о движении.
[0031] Необязательно, в возможной реализации настоящей заявки блок определения, в частности, выполнен с возможностью: получения значения индекса первого опорного кадра в первой информации о движении, и определения порядкового номера первого опорного кадра на основе значения индекса первого опорного кадра и первого списка опорных кадров, где первый опорный кадр представляет собой опорный кадр текущего блока изображения в первом направлении, а значение индекса первого опорного кадра представляет собой номер первого опорного кадра в первом списке опорных кадров; получения значения индекса второго опорного кадра и определения порядкового номера второго опорного кадра на основании значения индекса второго опорного кадра и второго списка опорных кадров, где второй опорный кадр представляет собой опорный кадр текущего блока изображения во втором направлении, а значение индекса второго опорного кадра является номером второго опорного кадра во втором списке опорных кадров; определения первого вектора движения на основе первой разности векторов движения и первой метки предиктора вектора движения, которые находятся в первой информации о движении, где первый вектор движения представляет собой вектор движения текущего блока изображения в первом направлении; и получения второго вектора движения во второй информации о движении по следующей формуле:
Figure 00000001
[0032] В приведенной выше формуле,
Figure 00000002
представляет собой второй вектор движения,
Figure 00000003
представляет собой порядковый номер текущего кадра,
Figure 00000004
представляет собой порядковый номер первого опорного кадра,
Figure 00000005
представляет собой порядковый номер второго опорного кадра,
Figure 00000006
представляет собой первый вектор движения, и второй вектор движения - это вектор движения текущего блока изображения во втором направлении.
[0033] Необязательно, в другой возможной реализации настоящей заявки, блок определения, в частности, выполнен с возможностью: получения значения индекса первого опорного кадра в первой информации о движении, где первый опорный кадр представляет собой опорный кадр текущего блока изображения в первом направлении, и значение индекса первого опорного кадра представляет собой номер первого опорного кадра в первом списке опорных кадров; получения значения индекса второго опорного кадра, причем второй опорный кадр представляет собой опорный кадр текущего блока изображения во втором направлении, а значение индекса второго опорного кадра является номером второго опорного кадра во втором списке опорных кадров; определения первого вектора движения на основе первой разности векторов движения и первой метки предиктора вектора движения, которые находятся в первой информации о движении, где первый вектор движения представляет собой вектор движения текущего блока изображения в первом направлении; и когда первый опорный кадр является будущим опорным кадром текущего блока изображения, а второй опорный кадр является предыдущим опорным кадром текущего блока изображения, или когда первый опорный кадр является предыдущим опорным кадром текущего блока изображения и второй опорный кадр является будущим опорным кадром текущего блока изображения, или когда каждый из первого опорного кадра и второго опорного кадра является будущим опорным кадром текущего блока изображения, или когда каждый из первого опорного кадра и второго опорного кадра является предыдущим опорным кадром текущего блока изображения, получения второго вектора движения во второй информации о движении в соответствии со следующей формулой:
Figure 00000007
[0034] В приведенной выше формуле
Figure 00000008
представляет второй вектор движения,
Figure 00000009
представляет первый вектор движения, и второй вектор движения представляет собой вектор движения текущего блока изображения во втором направлении.
[0035] Необязательно, в другой возможной реализации настоящей заявки блок определения, в частности, выполнен с возможностью: получения значения индекса первого опорного кадра и первой разности векторов движения, которые находятся в первой информации о движении, и определения порядкового номера первого опорного кадра на основании значения индекса первого опорного кадра и первого списка опорных кадров, при этом первый опорный кадр представляет собой опорный кадр текущего блока изображения в первом направлении, а значение индекса первого опорного кадра является номером первого опорного кадра в первом списке опорных кадров; получения значения индекса второго опорного кадра, определения порядкового номера второго опорного кадра на основании значения индекса второго опорного кадра и второго списка опорных кадров, и определения второго предсказанного вектора движения на основе значения индекса второго опорного кадра и второго списка возможных предсказанных векторов движения, где второй предсказанный вектор движения является предсказанным вектором движения текущего блока изображения во втором направлении, второй опорный кадр является опорным кадром текущего блока изображения во втором направлении, а значение индекса второго опорного кадра является номером второго опорного кадра во втором списке опорных кадров; получения второй разности векторов движения во второй информации о движении по следующей формуле:
Figure 00000013
где
Figure 00000014
представляет собой вторую разность векторов движения,
Figure 00000003
представляет собой порядковый номер текущего кадра,
Figure 00000004
представляет собой порядковый номер первого опорного кадра,
Figure 00000005
представляет собой порядковый номер второго опорного кадра, и
Figure 00000015
представляет собой первую разность векторов движения; и определения второго вектора движения на основе второго предсказанного вектора движения и второй разности векторов движения, где второй вектор движения является вектором движения текущего блока изображения во втором направлении.
[0036] Необязательно, в другой возможной реализации настоящей заявки блок определения, в частности, выполнен с возможностью: получения значения индекса первого опорного кадра и первого вектора движения, которые находятся в первой информации о движении, где первый опорный кадр представляет собой опорный кадр текущего блока изображения в первом направлении, а значение индекса первого опорного кадра представляет собой номер первого опорного кадра в первом списке опорных кадров; получения значения индекса второго опорного кадра, и определения второго предсказанного вектора движения на основе значения индекса второго опорного кадра и второго списка возможных предсказанных векторов движения, где второй предсказанный вектор движения является предсказанным вектором движения текущего блока изображения во втором направлении, второй опорный кадр представляет собой опорный кадр текущего блока изображения во втором направлении, а значение индекса второго опорного кадра является номером второго опорного кадра во втором списке опорных кадров; когда первый опорный кадр является будущим опорным кадром текущего блока изображения, а второй опорный кадр является предыдущим опорным кадром текущего блока изображения, или когда первый опорный кадр является предыдущим опорным кадром текущего блока изображения, а второй опорный кадр является будущим опорным кадром текущего блока изображения, или когда каждый из первого опорного кадра и второго опорного кадра является будущим опорным кадром текущего блока изображения, или когда каждый из первого опорного кадра и второго опорного кадра представляет собой предыдущий опорный кадр текущего блока изображения, получения второй разности векторов движения во второй информации о движении по следующей формуле:
Figure 00000016
где
Figure 00000014
представляет вторую разность векторов движения, а
Figure 00000015
представляет первую разность векторов движения; и определяют второй вектор движения на основе второго предсказанного вектора движения и второй разности векторов движения, где второй вектор движения является вектором движения текущего блока изображения во втором направлении.
[0037] Необязательно, в другой возможной реализации настоящей заявки блок получения, в частности, выполнен с возможностью: вычисления первого порядкового номера на основе порядкового номера текущего кадра и порядкового номера первого опорного кадра в соответствии с формулой
Figure 00000017
, где POC_Cur представляет собой порядковый номер текущего кадра, POC_listX представляет собой порядковый номер первого опорного кадра и POC_listY0 представляет собой первый порядковый номер; и когда второй список опорных кадров включает в себя первый порядковый номер, определения, как значения индекса второго опорного кадра, номера опорного кадра, представленного посредством первого порядкового номера во втором списке опорных кадров.
[0038] Необязательно, в другой возможной реализации настоящей заявки блок получения, в частности, выполнен с возможностью: вычисления второго порядкового номера на основе порядкового номера текущего кадра и порядкового номера первого опорного кадра в соответствии с формулой
Figure 00000018
, где
Figure 00000019
представляет второй порядковый номер; и когда второй список опорных кадров включает в себя второй порядковый номер, определения, как значения индекса второго опорного кадра, номера опорного кадра, представленного посредством второго порядкового номера во втором списке опорных кадров.
[0039] Необязательно, в другой возможной реализации настоящей заявки блок получения, в частности, выполнен с возможностью: вычисления третьего порядкового номера на основе порядкового номера текущего кадра и порядкового номера первого опорного кадра в соответствии с формулой POC_listX ≠ POC_listY0'', где
Figure 00000021
представляет третий порядковый номер; и определения, как значения индекса второго опорного кадра, номера опорного кадра, представленного посредством третьего порядкового номера во втором списке опорных кадров.
[0040] Согласно третьему аспекту обеспечивается способ двунаправленного межкадрового предсказания. Существует множество реализаций способа двунаправленного межкадрового предсказания.
[0041] Одна реализация содержит этапы, на которых: проводят синтаксический анализ битового потока для получения первого идентификатора, где первый идентификатор используется для указания того, следует ли определять вторую информацию о движении на основе первой информации о движении, первая информация о движении является информацией о движении текущего блока изображения в первом направлении, а вторая информация о движении - это информация о движении текущего блока изображения во втором направлении; если значение первого идентификатора является первым предварительно заданным значением, то получают первую информацию о движении и определяют вторую информацию о движении на основе первой информации о движении; и определяют сэмплы предсказания текущего блока изображения на основе первой информации о движении и второй информации о движении.
[0042] Другая реализация содержит этапы, на которых: проводят синтаксический анализ битового потока для получения второго идентификатора, где второй идентификатор используется для указания того, следует ли вычислять информацию о движении текущего блока изображения с использованием алгоритма получения информации о движении; если значение второго идентификатора является вторым предварительно заданным значением, то получают третий идентификатор, где третий идентификатор используется для указания того, следует ли определять вторую информацию о движении на основе первой информации о движении, первая информация о движении является информацией о движении текущего блока изображения в первом направлении, а вторая информация о движении - это информация о движении текущего блока изображения во втором направлении; если значение третьего идентификатора является третьим предварительно заданным значением, то получают первую информацию о движении и определяют вторую информацию о движении на основе первой информации о движении; и определяют сэмплы предсказания текущего блока изображения на основе первой информации о движении и второй информации об операции.
[0043] Другая реализация содержит этапы, на которых: проводят синтаксический анализ битового потока для получения второго идентификатора, где второй идентификатор используется для указания того, следует ли вычислять информацию о движении текущего блока изображения с использованием алгоритма получения информации о движении; если значение второго идентификатора является вторым предварительно заданным значением, то получают первую информацию о движении и определяют вторую информацию о движении на основе первой информации о движении, где первая информация о движении является информацией о движении текущего блока изображения в первом направлении, а вторая информация о движении - это информация о движении текущего блока изображения во втором направлении; и определяют сэмплы предсказания текущего блока изображения на основе первой информации о движении и второй информации о движении.
[0044] Другая реализация содержит этапы, на которых: проводят синтаксический анализ битового потока для получения четвертого идентификатора, где четвертый идентификатор используется для указания того, следует ли вычислять информацию о движении текущего блока изображения, используя алгоритм получения информации о движении; если значение четвертого идентификатора является четвертым предварительно заданным значение, то определяют значение индекса первого опорного кадра и значение индекса второго опорного кадра на основе первого списка опорных кадров и второго списка опорных кадров, при этом первый список опорных кадров - это список опорных кадров текущего блока изображения в первом направлении, второй список опорных кадров - это список опорных кадров текущего блока изображения во втором направлении, первый опорный кадр является опорным кадром текущего блока изображения в первом направлении, а второй опорный кадр является опорным кадром текущего блока изображения во втором направлении; получают первую разность векторов движения и первую метку предиктора вектора движения, и определяют вторую информацию о движении на основе первой информации о движении, где первая информация о движении включает в себя значение индекса первого опорного кадра, первую разность векторов движения, и первую метку предиктора вектора движения, а вторая информация о движении представляет собой информацию о движении текущего блока изображения во втором направлении; и определяют сэмплы предсказания текущего блока изображения на основе первой информации о движении и второй информации о движении.
[0045] Другая реализация содержит этапы, на которых: проводят синтаксический анализ битового потока для получения первого идентификатора, где первый идентификатор используется для указания того, следует ли определять вторую информацию о движении на основе первой информации о движении, первая информация о движении является информацией о движении текущего блока изображения в первом направлении, а вторая информация о движении - это информация о движении текущего блока изображения во втором направлении; если значение первого идентификатора является восьмым предварительно заданным значением, то получают пятый идентификатор, где пятый идентификатор используется для указания того, следует ли определять первую информацию о движении на основе второй информации о движении; если значение пятого идентификатора является пятым предварительно заданным значением, то получают вторую информацию о движении и определяют первую информацию о движении на основе второй информации о движении; и определяют сэмплы предсказания текущего блока изображения на основе первой информации о движении и второй информации о движении.
[0046] Другая реализация содержит этапы, на которых: проводят синтаксический анализ битового потока для получения второго идентификатора, где второй идентификатор используется для указания того, следует ли вычислять информацию о движении текущего блока изображения с использованием алгоритма получения информации о движении; если значение второго идентификатора является вторым предварительно заданным значением, то получают третий идентификатор, где третий идентификатор используется для указания того, следует ли определять вторую информацию о движении на основе первой информации о движении, первая информация о движении является информацией о движении текущего блока изображения в первом направлении, а вторая информация о движении - это информация о движении текущего блока изображения во втором направлении; если значение третьего идентификатора является шестым предварительно заданным значением, то получают вторую информацию о движении и определяют первую информацию о движении на основе второй информации о движении; и определяют сэмплы предсказания текущего блока изображения на основе первой информации о движении и второй информации об операции.
[0047] Конкретные описания идентификаторов с первого по четвертый см. в следующих описаниях.
[0048] В способе двунаправленного межкадрового предсказания, обеспеченном в настоящей заявке, после того, как идентификатор получен посредством синтаксического анализа битового потока, определяют то, определять ли вторую информацию о движении на основе первой информации о движении, на основе значения идентификатора. После того, как определено, что вторая информация о движении должна быть определена на основе первой информации о движении, получают первую информацию о движении, а затем определяют вторую информацию о движении на основе полученной первой информации о движении. Таким образом, битовый поток должен включать в себя только соответствующий идентификатор и первую информацию о движении и больше не должен включать в себя вторую информацию о движении. По сравнению с предшествующим уровнем техники, в котором битовый поток включает в себя информацию о движении каждого блока изображения в каждом направлении, способ двунаправленного межкадрового предсказания, обеспечиваемый в настоящей заявке, эффективно уменьшает информацию о движении, включенную в битовый поток, и улучшает эффективное использование ресурсов передачи, скорость передачи, и скорость кодирования.
[0049] Согласно четвертому аспекту обеспечено устройство двунаправленного межкадрового предсказания. Устройство двунаправленного межкадрового предсказания включает в себя блок получения и блок определения.
[0050] В частности, в реализации блок получения выполнен с возможностью: синтаксического анализа битового потока для получения первого идентификатора, где первый идентификатор используется для указания того, следует ли определять вторую информацию о движении на основе первой информации о движении, первая информация о движении является информацией о движении текущего блока изображения в первом направлении, а вторая информация о движении представляет собой информацию о движении текущего блока изображения во втором направлении; и если значение первого идентификатора является первым предварительно заданным значением, получения первой информации о движении. Блок определения выполнен с возможностью: определения второй информации о движении на основе первой информации о движении, полученной посредством блока получения, и определения сэмплов предсказания текущего блока изображения на основе первой информации о движении и второй информации о движении.
[0051] В другой реализации блок получения выполнен с возможностью: синтаксического анализа битового потока для получения второго идентификатора, при этом второй идентификатор используется для указания того, следует ли вычислять информацию о движении текущего блока изображения с использованием алгоритма получения информации о движении; если значение второго идентификатора является вторым предварительно заданным значением, то получают третий идентификатор, где третий идентификатор используется для указания того, следует ли определять вторую информацию о движении на основе первой информации о движении, первая информация о движении является информацией о движении текущего блока изображения в первом направлении, а вторая информация о движении представляет собой информацию о движении текущего блока изображения во втором направлении; и если значение третьего идентификатора является третьим предварительно заданным значением, получения первой информации о движении. Блок определения выполнен с возможностью: определения второй информации о движении на основе первой информации о движении, полученной посредством блока получения, и определения сэмплов предсказания текущего блока изображения на основе первой информации о движении и второй информации о движении.
[0052] В другой реализации блок получения выполнен с возможностью: синтаксического анализа битового потока для получения второго идентификатора, при этом второй идентификатор используется для указания того, следует ли вычислять информацию о движении текущего блока изображения с использованием алгоритма получения информации о движении; и если значение второго идентификатора является вторым предварительно заданным значением, получения первой информации о движении. Блок определения выполнен с возможностью: определения второй информации о движении на основе первой информации о движении, полученной посредством блока получения, где первая информация о движении является информацией о движении текущего блока изображения в первом направлении, а вторая информация о движении является информацией о движении текущего блока изображения во втором направлении; и определения сэмплов предсказания текущего блока изображения на основе первой информации о движении и второй информации о движении.
[0053] В другой реализации блок получения выполнен с возможностью синтаксического анализа битового потока для получения четвертого идентификатора, где четвертый идентификатор используется для указания того, следует ли вычислять информацию о движении текущего блока изображения, используя алгоритм получения информации о движении. Блок определения выполнен с возможностью: если значение четвертого идентификатора, полученного посредством блока получения, является четвертым предварительно заданным значением, определения значения индекса первого опорного кадра и значения индекса второго опорного кадра на основе первого списка опорных кадров и второго списка опорных кадров, где первый список опорных кадров является списком опорных кадров текущего блока изображения в первом направлении, второй список опорных кадров является списком опорных кадров текущего блока изображения во втором направлении, первый опорный кадр - это опорный кадр текущего блока изображения в первом направлении, а второй опорный кадр – это опорный кадр текущего блока изображения во втором направлении. Блок получения дополнительно выполнен с возможностью получения первой разности векторов движения и первой метки предиктора вектора движения. Блок определения дополнительно выполнен с возможностью: определения второй информации о движении на основе первой информации о движении, где первая информация о движении включает в себя значение индекса первого опорного кадра, первую разность векторов движения, и первую метку предиктора вектора движения, а вторая информация о движении - это информация о движении текущего блока изображения во втором направлении; и определения сэмплов предсказания текущего блока изображения на основе первой информации о движении и второй информации о движении.
[0054] Согласно пятому аспекту обеспечен терминал. Терминал включает в себя один или несколько процессоров, память и интерфейс связи. Память и интерфейс связи связаны с одним или несколькими процессорами. Память выполнена с возможностью хранения компьютерного программного кода. Компьютерной программный код включает в себя инструкцию. Когда один или несколько процессоров выполняют инструкцию, терминал выполняет способ двунаправленного межкадрового предсказания согласно любому из первого аспекта или возможных реализаций первого аспекта, или выполняет способ двунаправленного межкадрового предсказания согласно любому из третьего аспекта или возможных реализаций третьего аспекта.
[0055] Согласно шестому аспекту обеспечен видеодекодер, включающий в себя энергонезависимый носитель данных и центральный процессор. На энергонезависимом носителе данных хранится исполняемая программа. Центральный процессор подключен к энергонезависимому носителю данных и выполняет исполняемую программу для реализации способа двунаправленного межкадрового предсказания согласно любому из первого аспекта или возможных реализаций первого аспекта, или способа двунаправленного межкадрового предсказания согласно любому из третьего аспекта или возможных реализаций третьего аспекта.
[0056] Согласно седьмому аспекту обеспечен декодер. Декодер включает в себя устройство двунаправленного межкадрового предсказания во втором аспекте и модуль восстановления, где модуль восстановления выполнен с возможностью определения восстановленных значений сэмплов текущего блока изображения на основе сэмплов предсказания, полученных посредством устройства двунаправленного межкадрового предсказания; или декодер включает в себя устройство двунаправленного межкадрового предсказания в четвертом аспекте и модуль восстановления, где модуль восстановления выполнен с возможностью определения восстановленных значений сэмплов текущего блока изображения на основе сэмплов предсказания, полученных посредством устройства двунаправленного межкадрового предсказания.
[0057] Согласно восьмому аспекту обеспечен считываемый компьютером носитель данных. Считываемый компьютером носитель данных хранит инструкцию. Когда инструкцию запускают на терминале в пятом аспекте, терминал имеет возможность выполнять способ двунаправленного межкадрового предсказания согласно любому из первого аспекта или возможных реализаций первого аспекта, или выполнять способ двунаправленного межкадрового предсказания согласно любому из третьего аспекта или возможных реализаций третьего аспекта.
[0058] Согласно девятому аспекту обеспечен компьютерный программный продукт, включающий в себя инструкцию. Когда компьютерный программный продукт запускают на терминале в пятом аспекте, терминал имеет возможность выполнять способ двунаправленного межкадрового предсказания согласно любому из первого аспекта или возможных реализаций первого аспекта, или выполнять способ двунаправленного межкадрового предсказания в соответствии с любым из третьего аспекта или возможных реализаций третьего аспекта.
[0059] В настоящей заявке название устройства двунаправленного межкадрового предсказания не накладывает никаких ограничений на устройства или функциональные модули. В реальной реализации устройства или функциональные модули могут иметь другие названия. При условии, что функции устройств или функциональных модулей аналогичны функциям в настоящей заявке, устройства или функциональные модули подпадают под объем формулы изобретения в настоящей заявке и ее эквивалентных технологий.
[0060] Для конкретных описаний аспектов с пятого по девятый и реализаций с пятого по девятый аспектов см. подробные описания первого аспекта и реализаций первого аспекта или подробные описания третьего аспекта и реализаций третьего аспекта. Кроме того, для положительных эффектов аспектов с пятого по девятый и реализаций аспектов с пятого по девятый обратитесь к анализу положительных эффектов первого аспекта и реализаций первого аспекта или анализу положительных эффектов третьего аспекта и реализаций третьего аспекта. Подробности не описаны здесь снова.
[0061] Эти аспекты или другие аспекты в настоящей заявке более краткие и понятны в следующем описании.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0062] Фиг. 1 - схематическая структурная схема системы кодирования видео согласно варианту осуществления настоящей заявки;
[0063] Фиг. 2 - схематическая структурная схема видеокодера согласно варианту осуществления настоящей заявки;
[0064] Фиг. 3 - схематическая структурная схема видеодекодера согласно варианту осуществления настоящей заявки;
[0065] Фиг. 4 - схематическая блок-схема способа двунаправленного межкадрового предсказания согласно варианту осуществления настоящей заявки;
[0066] Фиг. 5 - первая схематическая структурная схема устройства двунаправленного межкадрового предсказания согласно варианту осуществления настоящей заявки; и
[0067] Фиг. 6 - вторая схематическая структурная схема устройства двунаправленного межкадрового предсказания согласно варианту осуществления настоящей заявки.
Описание вариантов осуществления
[0068] В описании, формуле изобретения и сопровождающих чертежах настоящей заявки термины «первый», «второй», «третий», «четвертый» и так далее предназначены для различения разных объектов, но не указывают конкретный порядок.
[0069] В вариантах осуществления настоящей заявки слово «пример» или «например» используется для представления примера, иллюстрации или описания. Любой вариант осуществления или проектная схема, описанные как «пример» или «например» в вариантах осуществления настоящей заявки, не следует объяснять как более предпочтительные или имеющие больше преимуществ, чем другой вариант осуществления или проектная схема. Точно, использование слова «пример» или «например» или тому подобное предназначено для представления соответствующей концепции определенным образом.
[0070] Чтобы облегчить понимание вариантов осуществления настоящей заявки, сначала описаны соответствующие элементы в вариантах осуществления настоящей заявки.
[0071] Кодирование изображений (picture encoding): процесс сжатия последовательности изображений в битовый поток.
[0072] Декодирование изображения (picture decoding): процесс восстановления битового потока в восстановленное изображение в соответствии с определенным правилом синтаксиса и определенным способом обработки.
[0073] В настоящее время процесс кодирования видеоизображения выглядит следующим образом: кодер сначала разделяет кадр исходного изображения на множество частей, которые не перекрывают друг друга, причем каждая часть может использоваться как блок изображения. Затем кодер выполняет такие операции, как предсказание (Prediction), преобразование (Transform) и квантование (Quantization) для каждого блока изображения для получения битового потока, соответствующе блоку изображения, где предсказание выполняется для получения блока предсказания блока изображения, так что только разница (или называемая остатком или остаточным блоком) между блоком изображения и блоком предсказания блока изображения может кодироваться и передаваться для уменьшения издержек передачи. Наконец, кодер отправляет битовый поток, соответствующий блоку изображения, на декодер.
[0074] Соответственно, после приема битового потока декодер выполняет процесс декодирования видео. В частности, декодер выполняет такие операции, как предсказание, обратное квантование и обратное преобразование принятого битового потока для получения восстановленного блока изображения (или называемого блоком изображения после восстановления). Этот процесс называется процессом восстановления изображения (или процессом восстановления изображения). Затем декодер собирает восстановленный блок каждого блока изображения в исходном изображении для получения восстановленного изображения исходного изображения и воспроизводит восстановленное изображение.
[0075] Существующая технология кодирования видеоизображений включает в себя внутрикадровое предсказание и межкадровое предсказание. Межкадровое предсказание - это предсказание, завершенное посредством кодирования блока изображения/декодирования блока изображения с использованием корреляции между текущим кадром и опорным кадром текущего кадра. Текущий кадр может иметь один или несколько опорных кадров. В частности, блок изображения предсказания текущего блока изображения формируется на основе сэмплов в опорном кадре текущего блока изображения.
[0076] Как правило, блок изображения предсказания текущего блока изображения может быть сформирован на основе только одного опорного блока изображения, или блок изображения предсказания текущего блока изображения может быть сформирован на основе по меньшей мере двух опорных блоков изображения. Формирование блока изображения предсказания текущего блока изображения на основе одного опорного блока изображения называется однонаправленным предсказанием, а формирование блока изображения предсказания текущего блока изображения на основании по меньшей мере двух опорных блоков изображения упоминается как двунаправленное межкадровое предсказание. По меньшей мере два опорного блока изображения в двунаправленном межкадровом предсказании могут быть от одного и того же опорного кадра или разных опорных кадров. Другими словами, «направление» в настоящей заявке - это обобщенное определение. Одно направление в настоящей заявке соответствует одному опорному блоку изображения. Следующие первое направление и второе направление соответствуют разным опорным блокам изображения. Два опорного блока изображения могут быть включены в будущий опорный кадр/предыдущий опорный кадр текущего блока изображения; или один опорный блок изображения может быть включен в будущий опорный кадр текущего блока изображения, а другой опорный блок изображения может быть включен в предыдущий опорный кадр текущего блока изображения.
[0077] Необязательно, двунаправленное межкадровое предсказание может быть межкадровым предсказанием, выполняемым с использованием корреляции между текущим видеокадром и видеокадром, который кодируется и воспроизводится до текущего видеокадра, и корреляции между текущим видеокадром и видеокадром, который кодируется до текущего видеокадра и воспроизводится после текущего видеокадра.
[0078] Можно узнать, что двунаправленное межкадровое предсказание включает в себя межкадровое предсказание в двух направлениях, что обычно называется прямым межкадровым предсказанием и обратным межкадровым предсказанием. Прямое межкадровое предсказание - это межкадровое предсказание, выполняемое с использованием корреляции между текущим видеокадром и видеокадром, который кодируется и воспроизводится перед текущим видеокадром. Обратное межкадровое предсказание - это межкадровое предсказание, выполняемое с использованием корреляции между текущим видеокадром и видеокадром, который кодируется перед текущим видеокадром и воспроизводится после текущего видеокадра.
[0079] Прямое межкадровое предсказание соответствует списку L0 будущих опорных кадров, а обратное межкадровое предсказание соответствует списку L1 предыдущих опорных кадров. Два списка опорных кадров могут включать в себя одинаковое количество опорных кадров или разное количество опорных кадров.
[0080] Компенсация движения (Motion Compensation, МС) представляет собой процесс предсказания текущего блока изображения с использованием опорного блока изображения.
[0081] В большинстве структур кодирования видеопоследовательность включает в себя серию изображений (picture), изображение разделяется по меньшей мере на один слайс (slice), и каждый слайс дополнительно разделяется на блоки (block) изображения. Кодирование/декодирование видео выполняется посредством блока изображения. Обработка кодирования/декодирования может выполняться слева направо и сверху вниз, строка за строкой, начиная с положения верхнего левого угла изображения. Здесь блок изображения может быть макроблоком (macro block, MB) в стандарте кодирования видео H.264 или может быть единицей кодирования (Coding Unit, CU) в стандарте высокоэффективного кодирования видео (High Efficiency Video Coding, HEVC). Это конкретно не ограничено в вариантах осуществления настоящей заявки.
[0082] В настоящей заявке блок изображения, который кодируется/декодируется, называется текущим блоком изображения (текущий блок), а изображение, в котором расположен текущий блок изображения, называется текущим кадром.
[0083] Как правило, текущий кадр может быть кадром однонаправленного предсказания (P-кадром) или может быть кадром двунаправленного предсказания (B-кадром). Когда текущий кадр является P-кадром, текущий кадр имеет один список опорных кадров. Когда текущий кадр является B-кадром, текущий кадр имеет два списка опорных кадров, и эти два списка обычно обозначаются как L0 и L1 соответственно. Каждый список опорных кадров включает в себя по меньшей мере один восстановленный кадр, который используется в качестве опорного кадра текущего кадра. Опорный кадр используется для обеспечения опорного сэмпла для межкадрового предсказания текущего кадра.
[0084] В текущем кадре соседний блок изображения (например, по левую, верхнюю или правую сторону от текущего блока) текущего блока изображения может быть кодирован/декодирован, и будет получено восстановленное изображение. Соседний блок изображения называется восстановленным блоком изображения. Доступна (available) такая информация, как режим кодирования и восстановленный сэмпл восстановленного блока изображения.
[0085] Кадр, который был кодирован/декодирован до кодирования/декодирования текущего кадра, называется восстановленным кадром.
[0086] Вектор движения (Motion Vector, MV) является важным параметром в процессе межкадрового предсказания и представляет пространственное смещение кодированного блока изображения относительно текущего блока изображения. Обычно вектор движения может быть получен с использованием способа оценки движения (Motion Estimation, ME), такого как поиск движения. В технологии предварительного межкадрового предсказания кодер передает вектор движения текущего блока изображения в битовом потоке, так что декодер воспроизводит сэмплы предсказания текущего блока изображения для получения восстановленного блока. Для дальнейшего повышения эффективности кодирования, способ дифференцированного кодирования вектора движения с использованием опорного вектора движения обеспечен далее, более конкретно, лишь разность векторов движения (Motion Vector Difference, MVD) кодируется.
[0087] В обеспечение использования декодером и кодером одного и того же опорного блока изображения, кодер должен отправить информацию о движении каждого блока изображения на декодер в битовом потоке. Если кодер непосредственно кодирует вектор движения каждого блока изображения, потребляется большое количество ресурсов передачи. Поскольку векторы движения пространственно соседних блоков изображения сильно коррелированы, вектор движения текущего блока изображения может быть предсказан на основе вектора движения кодированного соседнего блока изображения. Вектор движения, полученный посредством предсказания, называется MVP, а разность между вектором движения текущего блока изображения и MVP называется MVD.
[0088] В стандарте кодирования видео H.264 предсказание кадров с множеством опорных кадров используется в процессе оценки движения для повышения точности предсказания. В частности, создается буфер, хранящий множество восстановленных кадров, и все восстановленные кадры в буфере просматриваются в поисках оптимального опорного блока изображения для компенсации движения, чтобы лучше исключить временную избыточность. В стандарте кодирования видео H.264 для межкадрового предсказания используются два буфера: список 0 опорных кадров (reference list 0) и список 1 опорных кадров (reference list 1). Опорный кадр, в котором находится оптимальный опорный блок в каждом списке, помечается значением индекса, а именно ref_idx_l0 и ref_idx_l1. В каждом списке опорных кадров, информация о движении опорного блока изображения включает в себя значение индекса опорного кадра (ref_idx_l0 или ref_idx_l1), метку MVP, и MVD. Декодер может найти правильный опорный блок изображения в выбранном опорном кадре на основе значения индекса опорного кадра, метки MVP и MVD.
[0089] В настоящее время режимы межкадрового предсказания, часто используемые в стандарте HEVC, представляют собой режим расширенного предсказания вектора движения (Advanced Motion Vector Prediction, AMVP), режим объединения (Merge) и режим предсказания модели непоступательного движения.
[0090] В режиме AMVP кодер составляет список возможных векторов движения, используя вектор движения кодированного блока изображения, который пространственно или временно смежен с текущим блоком изображения, и определяет оптимальный вектор движения в списке возможных векторов движения как MVP текущего блока изображения на основе издержек искажения скорости. Кроме того, кодер выполняет поиск движения в окрестности с центром в MVP для получения вектора движения текущего блока изображения. Кодер передает значение индекса (а именно, метку MVP) MVP в списке возможных векторов движения, значение индекса опорного кадра и MVD на декодер.
[0091] В режиме объединения кодер создает список информации о возможном движении, используя информацию о движении кодированного блока изображения, который пространственно или временно смежен с текущим блоком изображения, и определяет оптимальную информацию о движении в списке информации о возможном движении как информацию о движении текущего блока изображения на основе издержек искажения скорости. Кодер передает значение индекса положения оптимальной информации о движении в списке информации о возможном движении на декодер.
[0092] В режиме предсказания модели непоступательного движения кодер и декодер получают информацию о движении всех подблоков текущего блока изображения, используя одну и ту же модель движения, и выполняют компенсацию движения на основе информации о движении всех подблоков для получения блока изображения предсказания. Это повышает эффективность предсказания. Модель движения, часто используемая кодером и декодером, представляет собой аффинную модель с 4 параметрами, аффинную модель с 6 параметрами или билинейную модель с 8 параметрами.
[0093] Например, аффинная модель с 4 параметрами может быть представлена с использованием векторов движения двух сэмплов и координат двух сэмплов относительно сэмпла в верхнем левом углу текущего блока изображения. Здесь сэмпл, используемый для представления параметра модели движения, называется контрольной точкой. Если сэмпл в верхнем левом углу (0, 0) текущего блока изображения и сэмпл в верхнем правом углу (
Figure 00000022
, 0) текущего блока изображения являются контрольными точками, а векторы движения сэмплов в верхнем левом углу и верхнем правом углу текущего блока изображения - это (
Figure 00000023
) и (
Figure 00000024
) соответственно, информация о движении каждого подблока текущего блока изображения получается в соответствии со следующей формулой (1). В следующей формуле (1) (
Figure 00000025
) – это координаты подблока относительно сэмпла в верхнем левом углу текущего блока изображения, (
Figure 00000026
) – это вектор движения подблока, а
Figure 00000022
- ширина текущего блока изображения.
Figure 00000027
(1)
[0094] Например, аффинная модель с 6 параметрами может быть представлена с использованием векторов движения трех сэмплов и координат трех сэмплов относительно сэмпла в верхнем левом углу текущего блока изображения. Если сэмпл в верхнем левом углу (0, 0) текущего блока изображения, сэмпл в верхнем правом углу (
Figure 00000028
, 0) текущего блока изображения и сэмпл в нижнем левом углу (0,
Figure 00000029
) текущего блока изображения являются контрольными точками, а векторами движения сэмплов в верхнем левом углу, верхнем правом углу и нижнем левом углу текущего блока изображения являются (
Figure 00000023
),(
Figure 00000024
) и (
Figure 00000030
) соответственно, информация о движении каждого подблока текущего блока изображения получается согласно следующей формуле (2). В следующей формуле (2) (
Figure 00000025
) - это координаты подблока относительно сэмпла в верхнем левом углу текущего блока изображения, (
Figure 00000031
) – это вектор движения подблока,
Figure 00000028
и
Figure 00000032
- ширина и высота текущего блока изображения соответственно.
Figure 00000033
(2)
[0095] Например, билинейная модель с 8 параметрами может быть представлена с использованием векторов движения четырех сэмплов и координат четырех сэмплов относительно сэмпла в верхнем левом углу текущего блока изображения. Если сэмпл в верхнем левом углу (0, 0) текущего блока изображения, сэмпл в верхнем правом углу (
Figure 00000022
, 0) текущего блока изображения, сэмпл в нижнем левом углу (0,
Figure 00000029
) текущего блока изображения, и сэмпл в правом нижнем углу (
Figure 00000028
,
Figure 00000032
) текущего блока изображения являются контрольными точками, а векторы движения сэмплов в верхнем левом углу, верхнем правом углу, нижнем левом углу и нижнем правом углу текущего блока изображения - это (
Figure 00000023
),(
Figure 00000024
),(
Figure 00000030
) и (
Figure 00000034
) соответственно, информация о движении каждого подблока текущего блока изображения получается по следующей формуле (3). В следующей формуле (3) (
Figure 00000025
) – это координаты подблока относительно сэмпла в верхнем левом углу текущего блока изображения, (
Figure 00000026
) – это вектор движения подблока, а
Figure 00000022
и
Figure 00000029
- ширина и высота текущего блока изображения соответственно.
Figure 00000035
(3)
[0096] Легко понять, что в любом из вышеупомянутых режимов межкадрового предсказания, если межкадровое предсказание является двунаправленным межкадровым предсказанием, кодеру необходимо отправлять информацию о движении каждого блока изображения в каждом направлении на декодер. Следовательно, информация о движении занимает относительно большое количество ресурсов передачи. Это снижает эффективное использование ресурсов передачи, скорость передачи и эффективность сжатия кодирования.
[0097] Чтобы решить вышеупомянутую проблему, настоящая заявка обеспечивает способ двунаправленного межкадрового предсказания. При двунаправленном межкадровом предсказании кодер отправляет информацию о движении текущего блока изображения в первом направлении на декодер, и после приема информации о движении текущего блока изображения в первом направлении декодер вычисляет информацию о движении текущего блока изображения во втором направлении на основе информации о движении текущего блока изображения в первом направлении. Таким образом, сэмплы предсказания текущего блока изображения могут быть вычислены на основе информации о движении текущего блока изображения в первом направлении и информации о движении текущего блока изображения во втором направлении.
[0098] Способ двунаправленного межкадрового предсказания, представленный в настоящей заявке, может быть выполнен посредством устройства двунаправленного межкадрового предсказания, устройства кодирования видео, видеокодека или другого устройства, имеющего функцию кодирования видео.
[0099] Способ двунаправленного межкадрового предсказания, представленный в настоящей заявке, применим к системе кодирования видео. В системе кодирования видео видеокодер 100 и видеодекодер 200 выполнены с возможностью вычисления информации о движении текущего блока изображения согласно примерам способа двунаправленного межкадрового предсказания, обеспеченного в настоящей заявке. В частности, информация о движении текущего блока изображения во втором направлении вычисляется на основе информации о движении текущего блока изображения в первом направлении, так что сэмплы предсказания текущего блока изображения определяются на основе информации о движении текущего блока изображения в первом направлении и информации о движении текущего блока изображения во втором направлении. Таким образом, между видеокодером 100 и видеокодером 200 необходимо передавать только информацию о движении текущего блока изображения в первом направлении. Это эффективно улучшает использование ресурсов передачи и эффективность сжатия кодирования.
[00100] Фиг. 1 показывает структуру системы 1 кодирования видео. Как показано на фиг. 1, система 1 кодирования видео включает в себя исходное устройство 10 и устройство 20 назначения. Исходное устройство 10 формирует кодированные видеоданные. Исходное устройство 10 также может называться устройством кодирования видео. Устройство 20 назначения может декодировать кодированные видеоданные, сформированные посредством исходного устройства 10. Устройство 20 назначения также может называться устройством декодирования видео. Исходное устройство 10 и/или устройство 20 назначения может включать в себя по меньшей мере один процессор и память, связанную с по меньшей мере одним процессором. Память может включать в себя, помимо прочего, постоянное запоминающее устройство ( Read-Only Memory, ROM), оперативное запоминающее устройство (Random Access Memory, RAM), электрически стираемое программируемое постоянное запоминающее устройство (Electrically Erasable Programmable Read-Only Memory, EEPROM), флэш-память или любой другой носитель данных, который может быть выполнен с возможностью хранения необходимого программного кода в форме инструкции или структуры данных, к которой может получить доступ компьютер. В данной заявке это особым образом не ограничено.
[00101] Исходное устройство 10 и устройство 20 назначения могут включать в себя различные устройства, в том числе настольный компьютер, мобильное вычислительное устройство, ноутбук (например, портативный компьютер), планшетный компьютер, телеприставку, портативный телефонный аппарат, такой как «умный» телефон, телевизор, фотоаппарат, устройство отображения, цифровой медиаплеер, игровую консоль, установленный на транспортном средстве компьютер или подобное устройство.
[00102] Устройство 20 назначения может принимать кодированные видеоданные от исходного устройства 10 по линии 30 связи. Линия 30 связи может включать в себя одну или несколько сред и/или устройств, которые могут передавать кодированные видеоданные от исходного устройства 10 в устройство 20 назначения. В одном из примеров линия 30 связи может включать в себя одну или несколько сред связи, которые позволяют исходному устройству 10 непосредственно передавать кодированные видеоданные в устройство 20 назначения в реальном времени. В этом примере исходное устройство 10 может модулировать кодированные видеоданные в соответствии со стандартом связи (например, протоколом беспроводной связи) и может передавать модулированные видеоданные в устройство 20 назначения. Одна или несколько сред связи могут включать в себя беспроводные и/или проводные среды связи, например, радиочастотный (Radio Frequency, RF) спектр или один или несколько физических кабелей передачи. Одна или несколько сред связи могут составлять часть сети с пакетной передачей данных, а сеть с пакетной передачей данных представляет собой, например, локальную сеть, региональную сеть или глобальную сеть (например, Интернет). Одна или несколько сред связи могут включать в себя маршрутизатор, коммутатор, базовую станцию или другое устройство, реализующее связь от исходного устройства 10 к устройству 20 назначения.
[00103] В другом примере кодированные видеоданные могут выводиться в запоминающее устройство 40 через интерфейс 140 вывода. Точно так же к кодированным видеоданным можно получить доступ из запоминающего устройства 40 через интерфейс 240 ввода. Запоминающее устройство 40 может включать в себя множество типов локально доступных носителей данных, таких как диск Blu-ray, цифровой видеодиск (Digital Video Disc, DVD) высокой плотности, постоянное запоминающее устройство компакт-дисков (Compact Disc Read-Only Memory, CD-ROM), флэш-память или другой подходящий цифровой носитель данных, выполненный с возможностью хранения кодированных видеоданных.
[00104] В другом примере запоминающее устройство 40 может соответствовать файловому серверу или другому промежуточному запоминающему устройству, в котором хранятся кодированные видеоданные, сформированные посредством исходного устройства 10. В этом примере устройство 20 назначения может получать сохраненные видеоданные из запоминающего устройства 40 посредством потоковой передачи или загрузки. Файловый сервер может быть сервером любого типа, который может хранить кодированные видеоданные и передавать кодированные видеоданные в устройство 20 назначения. Например, файловый сервер может включать в себя сервер всемирной паутины (World Wide Web, Web) (например, используемый для веб-сайта), сервер протокола передачи файлов (File Transfer Protocol, FTP), сетевое хранилище (Network Attached Storage, NAS) и локальный диск.
[00105] Устройство 20 назначения может получить доступ к кодированным видеоданным через любое стандартное соединение для передачи данных (например, Интернет-соединение). Примерный тип соединения для передачи данных включает в себя беспроводной канал или проводное соединение (например, кабельный модем), которое подходит для доступа к кодированным видеоданным, хранящимся на файловом сервере, или их комбинации. Кодированные видеоданные могут передаваться с файлового сервера в потоковом режиме, посредством загрузки или их комбинации.
[00106] Способ двунаправленного межкадрового предсказания в настоящей заявке не ограничивается сценарием беспроводного применения. Например, способ двунаправленного межкадрового предсказания в настоящей заявке может применяться к кодированию видео для поддержки множества мультимедийных применений, таких как следующие применения: эфирное телевещание, передача кабельного телевидения, передача спутникового телевидения, потоковая передача видео (например, через Интернет), кодирование видеоданных, хранящихся на носителе данных, декодирование видеоданных, хранящихся на носителе данных, или другое применение. В некоторых примерах система 1 кодирования видео может быть выполнена с возможностью поддержки однонаправленной или двунаправленной передачи видео, для поддержки таких применений, как потоковая передача видео, воспроизведение видео, широковещательная передача видео и/или видеотелефония.
[00107] Следует отметить, что система 1 кодирования видео, показанная на фиг. 1, является просто примером системы кодирования видео и не ограничивает систему кодирования видео в настоящей заявке. Способ двунаправленного межкадрового предсказания, представленный в настоящей заявке, может быть дополнительно применим к сценарию, в котором нет обмена данными между устройством кодирования и устройством декодирования. В других примерах подлежащие кодированию видеоданные или кодированные видеоданные могут быть извлечены из локальной памяти или могут быть переданы в режиме потоковой передачи по сети и т.п. Устройство кодирования видео может кодировать видеоданные, которые должны быть кодированы, и сохранять кодированные видеоданные в памяти. Устройство декодирования видео также может получать кодированные видеоданные из памяти и декодировать кодированные видеоданные.
[00108] На фиг. 1 исходное устройство 10 включает в себя видеоисточник 101, видеокодер 102 и интерфейс 103 вывода. В некоторых примерах интерфейс 103 вывода может включать в себя регулятор/демодулятор (модем) и/или передатчик. Видеоисточник 101 может включать в себя устройство видеозаписи (например, камеру), видеоархив, включающий ранее записанные видеоданные, интерфейс ввода видео для приема видеоданных от поставщика видеоконтента и/или систему компьютерной графики для формирования видеоданных или комбинацию вышеупомянутых источников видеоданных.
[00109] Видеокодер 102 может кодировать видеоданные, которые поступают из видеоисточника 101. В некоторых примерах исходное устройство 10 непосредственно передает кодированные видеоданные в устройство 20 назначения через интерфейс 103 вывода. В других примерах кодированные видеоданные могут альтернативно сохраняться в запоминающем устройстве 40, так что устройство 20 назначения впоследствии получает доступ к кодированным видеоданным для декодирования и/или воспроизведения.
[00110] В примере на фиг. 1 устройство 20 назначения включает в себя устройство 201 отображения, видеодекодер 202 и интерфейс 203 ввода. В некоторых примерах интерфейс 203 ввода включает в себя приемник и/или модем. Интерфейс 203 ввода может принимать кодированные видеоданные по линии 30 связи и/или от запоминающего устройства 40. Устройство 201 отображения может быть интегрировано с устройством 20 назначения или может быть расположено вне устройства 20 назначения. Обычно устройство 201 отображения отображает декодированные видеоданные. Устройство 201 отображения может включать в себя множество типов устройств отображения, например, жидкокристаллический дисплей, плазменный дисплей, дисплей на органических светодиодах или устройство отображения другого типа.
[00111] Необязательно, видеокодер 102 и видеодекодер 202 могут быть соответственно интегрированы с аудиокодером и аудиодекодером и могут включать в себя соответствующий блок мультиплексора-демультиплексора или другое аппаратное и программное обеспечение для кодирования как аудио, так и видео в общем потоке данных или отдельных потоках данных.
[00112] Видеокодер 102 и видеодекодер 202 могут включать в себя по меньшей мере один микропроцессор, процессор цифровых сигналов (Digital Signal Processor, DSP), специализированную интегральную схему (Application-Specific Integrated Circuit, ASIC), программируемую пользователем вентильную матрицу (Field Programmable Gate Array, FPGA), дискретную логику, оборудование или любую их комбинацию. Если способ двунаправленного межкадрового предсказания, обеспеченный в настоящей заявке, реализован с использованием программного обеспечения, инструкция, используемая для программного обеспечения, может быть сохранена на соответствующем энергонезависимом считываемом компьютером носителе данных, и по меньшей мере один процессор может использоваться для выполнения инструкции в оборудовании для реализации настоящей заявки. Любой из вышеупомянутых компонентов (включая оборудование, программное обеспечение, комбинацию оборудования и программного обеспечения и т.п.) может рассматриваться как по меньшей мере один процессор. Видеокодер 102 может быть включен в кодер, видеодекодер 202 может быть включен в декодер, а кодер или декодер может быть частью комбинированного кодера/декодера (кодека) в соответствующем устройстве.
[00113] Видеокодер 102 и видеодекодер 202 в настоящей заявке могут выполнять операции в соответствии со стандартом сжатия видео (например, HEVC) или могут выполнять операции в соответствии с другим отраслевым стандартом. В данной заявке это особым образом не ограничено.
[00114] Видеокодер 102 выполнен с возможностью: выполнения двунаправленной оценки движения для текущего блока изображения, для определения информации о движении текущего блока изображения в первом направлении и вычисления информации о движении текущего блока изображения во втором направлении на основе информации о движении текущего блока изображения в первом направлении. Таким образом, видеокодер 102 определяет блок изображения предсказания текущего блока изображения на основе информации о движении текущего блока изображения в первом направлении и информации о движении текущего блока изображения во втором направлении. Кроме того, видеокодер 102 выполняет такие операции, как преобразование и квантование остатка между текущим блоком изображения и блоком изображения предсказания текущего блока изображения для формирования битового потока, и отправляет битовый поток в видеодекодер 202. Битовый поток включает в себя информацию о движении текущего блока изображения в первом направлении и информацию индикации, которая используется для указания определения второй информации о движении на основе первой информации о движении. Информация индикации может быть представлена с использованием разных идентификаторов. Для способа представления информации индикации см. следующие описания.
[00115] Необязательно, способ, используемый посредством видеокодера 102 для вычисления информации о движении текущего блока изображения во втором направлении на основе информации о движении текущего блока изображения в первом направлении, может быть следующим: видеокодер 102 определяет вектор движения текущего блока изображения во втором направлении на основе вектора движения текущего блока изображения в первом направлении; или видеокодер 102 определяет разность векторов движения текущего блока изображения во втором направлении на основе разности векторов движения текущего блока изображения в первом направлении и определяет вектор движения текущего блока изображения во втором направлении на основе разности векторов движения текущего блока изображения во втором направлении и предсказанного вектора движения текущего блока изображения во втором направлении.
[00116] Обратитесь к следующей фиг. 4. Видеодекодер 202 выполнен с возможностью: получения битового потока и синтаксического анализа битового потока для получения информации индикации, используемой для указания определения второй информации о движении на основе первой информации о движении (S400), другими словами, для определения получения и вычисления на основе информации о движении в одном направлении, информации о движении в другом направлении, где первая информация о движении является информацией о движении текущего блока изображения в первом направлении, вторая информация о движении является информацией о движении текущего блока изображения во втором направлении, и первое направление и второе направление здесь различны; получения первой информации о движении (S401); определения второй информации о движении на основе полученной первой информации о движении (S402); и определения сэмплов предсказания текущего блока изображения на основе первой информации о движении и второй информации о движении (S403).
[00117] Способ, используемый посредством видеодекодера 202 для вычисления информации о движении текущего блока изображения во втором направлении на основе информации о движении текущего блока изображения в первом направлении, может быть следующим: видеодекодер 202 определяет вектор движения текущего блока изображения во втором направлении на основе вектора движения текущего блока изображения в первом направлении; или видеодекодер 202 определяет разность векторов движения текущего блока изображения во втором направлении на основе разности векторов движения текущего блока изображения в первом направлении и определяет вектор движения текущего блока изображения во втором направлении на основе разности векторов движения текущего блока изображения во втором направлении и предсказанного вектора движения текущего блока изображения во втором направлении.
[00118] Фиг. 2 представляет собой схематическую структурную схему видеокодера 102 согласно варианту осуществления настоящей заявки. Как показано на фиг. 2, видеокодер 102 выполнен с возможностью вывода видео на объект 41 постобработки. Объект 41 постобработки представляет собой пример видеообъекта, иеющего возможность обработки кодированных видеоданных, которые поступают из видеокодера 102, например, сетевой элемент с поддержкой мультимедиа (MANE - media aware network element) или устройство монтажа/устройство редактирования. В некоторых случаях объект 41 постобработки может быть примером сетевого объекта. В некоторых системах кодирования видео объект 41 постобработки и видеокодер 102 могут быть компонентами отдельных устройств. В других случаях функции, описанные в отношении объекта 41 постобработки, могут выполняться тем же самым устройством, включающим в себя видеокодер 102. В примере объект 41 постобработки является примером запоминающего устройства 40 на фиг. 1.
[00119] Видеокодер 102 может выводить и вычислять информацию о движении текущего блока изображения во втором направлении на основе информации о движении текущего блока изображения в первом направлении и дополнительно определять блок изображения предсказания текущего блока изображения на основе информации о движении текущего блока изображения в первом направлении и информации о движении текущего блока изображения во втором направлении для дальнейшего завершения кодирования с двунаправленным межкадровым предсказанием.
[00120] Как показано на фиг. 2, видеокодер 102 включает в себя преобразователь 301, квантователь 302, энтропийный кодер 303, фильтр 306, память 307, блок 308 обработки предсказаний и сумматор 312. Блок 308 обработки предсказаний включает в себя блок 309 внутрикадрового предсказания и блок 310 межкадрового предсказания. Чтобы восстановить блок изображения, видеокодер 102 дополнительно включает в себя обратный квантователь 304, обратный преобразователь 305 и сумматор 311. Фильтр 306 определен для представления одного или нескольких контурных фильтров, например, фильтра удаления блочности, адаптивного контурного фильтра и сэмпл-адаптивного фильтра смещения.
[00121] Память 307 может хранить видеоданные, кодированные посредством компонента видеокодера 102. Видеоданные, хранящиеся в памяти 307, могут быть получены из видеоисточника 101. Память 307 может быть памятью опорных изображений, в которой хранятся опорные видеоданные, используемые посредством видеокодера 102 для кодирования видеоданных в режиме внутрикадрового или межкадрового кодирования. Память 307 может быть динамическим оперативным запоминающим устройством (dynamic RAM, DRAM), включая синхронное DRAM (synchronous DRAM, SDRAM), магниторезистивное RAM (magnetoresistive RAM, MRAM), резистивное RAM (resistive RAM, RRAM) или запоминающее устройство другого типа.
[00122] Видеокодер 102 принимает видеоданные и сохраняет видеоданные в памяти видеоданных. Блок разделения разделяет видеоданные на несколько блоков изображения, и эти блоки изображения могут быть дополнительно разделены на более мелкие блоки, например, разделение блока изображения на основе структуры дерева квадрантов или структуры двоичного дерева. Разделение может дополнительно включать в себя разделение на слайсы (slice), тайлы (tile) или другие более крупные блоки. Видеокодер 102 обычно является компонентом для кодирования блока изображения в слайсе видео, который должен быть кодирован. Слайс может быть разделен на множество блоков изображения (и может быть разделен на наборы блоков изображения, которые называются тайлами).
[00123] Блок 309 внутрикадрового предсказания в блоке 308 обработки предсказаний может выполнять кодирование с внутрикадровым предсказанием для текущего блока изображения относительно одного или нескольких соседних блоков изображения в кадре или слайсе, который является таким же, как у текущего блока изображения для исключения пространственной избыточности. Блок 310 межкадрового предсказания в блоке 308 обработки предсказаний может выполнять кодирование с межкадровым предсказанием для текущего блока изображения относительно одного или нескольких блоков изображения предсказания в одном или нескольких опорных изображениях для исключения временной избыточности.
[00124] Блок 308 обработки предсказаний может обеспечить полученные с внутрикадровыми кодированием и межкадровым кодированными блоки изображений для сумматора 310 для формировании остаточного блока, а также обеспечить остаточный блок для сумматора 309 для восстановления кодированного блока, используемого в качестве опорного изображения.
[00125] После того, как блок 308 обработки предсказаний формирует блок изображения предсказания текущего блока изображения посредством межкадрового предсказания и внутрикадрового предсказания, видеокодер 102 формирует остаточный блок изображения посредством вычитания блока изображения предсказания из текущего блока изображения, который должен быть кодирован. Сумматор 312 представляет один или несколько компонентов, которые выполняют эту операцию вычитания. Остаточные видеоданные в остаточном блоке могут быть включены в один или несколько блоков преобразования (transform unit, TU) и применены к преобразователю 301. Преобразователь 301 преобразует остаточные видеоданные в коэффициент остаточного преобразования посредством преобразования, такого как дискретное косинусное преобразование (discrete cosine transform, DCT) или концептуально аналогичное преобразование. Преобразователь 301 может преобразовывать остаточные видеоданные из области значений сэмплов в область преобразования, например, в частотную область.
[00126] Преобразователь 301 может отправить полученный коэффициент преобразования в квантователь 302. Квантователь 302 квантует коэффициент преобразования, чтобы дополнительно снизить скорость передачи данных. В некоторых примерах квантователь 302 может дополнительно сканировать матрицу, включающую в себя квантованный коэффициент преобразования. Альтернативно энтропийный кодер 303 может выполнять сканирование.
[00127] После квантования энтропийный кодер 303 выполняет энтропийное кодирование квантованного коэффициента преобразования. Например, энтропийный кодер 303 может выполнять контекстно-адаптивное кодирование с переменной длиной (context-adaptive variable-length coding, CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (context based adaptive binary arithmetic coding, CABAC) или другой способ или технологию энтропийного кодирования. После того, как энтропийный кодер 303 выполняет энтропийное кодирование, кодированный битовый поток может быть отправлен в видеодекодер 202 или может быть заархивирован для последующей отправки или последующего извлечения посредством видеодекодера 202. Энтропийный кодер 303 может дополнительно выполнять энтропийное кодирование синтаксического элемента текущего блока изображения, который должен быть кодирован.
[00128] Обратный квантователь 304 и обратный преобразователь 305, соответственно, выполняют обратное квантование и обратное преобразование для восстановления остаточного блока в области сэмпла, например, для использования впоследствии в качестве опорного блока опорного кадра. Сумматор 311 добавляет восстановленный остаточный блок к блоку изображения предсказания, сформированному посредством блока 310 межкадрового предсказания или блока 309 внутрикадрового предсказания, для формировании восстановленного блока изображения. Блок изображения предсказания блока изображения может быть получен посредством обработки (обработки, такой как интерполирования) опорного блока изображения блока изображения.
[00129] Следует понимать, что другие структурные варианты видеокодера 102 могут использоваться для кодирования видеопотока. Например, для некоторых блоков изображения или кадров изображения видеокодер 102 может непосредственно квантовать остаточный сигнал, и, соответственно, обработка посредством преобразователя 301 и обратного преобразователя 305 не требуется. В качестве альтернативы, для некоторых блоков изображения или кадров изображения видеокодер 102 не формирует остаточные данные, и, соответственно, обработка посредством преобразователя 301, квантователя 302, обратного квантователя 304 и обратного преобразователя 305 не требуется. В качестве альтернативы, видеокодер 102 может непосредственно хранить восстановленный блок изображения в качестве опорного блока, и обработки посредством фильтра 306 не требуется. В качестве альтернативы, квантователь 302 и обратный квантователь 304 в видеокодере 102 могут быть объединены.
[00130] Фиг. 3 представляет собой схематическую структурную схему видеодекодера 202 согласно варианту осуществления настоящей заявки. Как показано на фиг. 3, видеодекодер 202 включает в себя энтропийный декодер 401, обратный квантователь 402, обратный преобразователь 403, фильтр 404, память 405, блок 406 обработки предсказаний и сумматор 409. Блок 406 обработки предсказаний включает в себя блок 407 внутрикадрового предсказания и блок 408 межкадрового предсказания. В некоторых примерах видеодекодер 202 может выполнять процесс декодирования, который примерно обратен процессу кодирования, описанному в отношении видеокодера 102 на фиг.2.
[00131] В процессе декодирования видеодекодер 202 принимает битовый поток от видеокодера 102. Видеодекодер 202 может принимать видеоданные от сетевого объекта 42 и дополнительно может сохранять видеоданные в памяти видеоданных (которая не показана на фигуре). Память видеоданных может хранить видеоданные, которые должны быть декодированы посредством компонента видеодекодера 202, например, кодированный битовый поток. Видеоданные, хранящиеся в памяти видеоданных, могут быть получены, например, из локального видеоисточника, такого как запоминающее устройство 40 или камера, через проводную или беспроводную сетевую связь или посредством доступа к физическому носителю данных. Хотя память видеоданных не показана на фиг. 3, память видеоданных и память 405 могут быть одной и той же памятью или могут быть отдельно сконфигурированной памятью. Память видеоданных и память 405, каждая, может состоять из любого из множества типов устройств памяти, например, динамического оперативного запоминающего устройства (DRAM), включая синхронное DRAM (SDRAM), магниторезистивное RAM (MRAM), резистивное RAM (RRAM) или запоминающее устройство другого типа. В различных примерах память видеоданных может быть интегрирована в микросхему вместе с другими компонентами видеодекодера 202 или может быть расположена вне микросхемы относительно этих компонентов.
[00132] Сетевой объект 42 может быть, например, сервером, MANE, видеоредактором/устройством видеомонтажа или другим подобным устройством, выполненным с возможностью реализации одной или нескольких технологий, описанных выше. Сетевой объект 42 может включать или не включать в себя видеокодер, например видеокодер 102. Перед тем, как сетевой объект 42 отправит битовый поток на видеодекодер 202, сетевой объект 42 может реализовать часть технологий, описанных в настоящей заявке. В некоторых системах декодирования видео сетевой объект 42 и видеодекодер 202 могут быть компонентами отдельных устройств. В других случаях функции, описанные в отношении сетевого объекта 42, могут выполняться посредством того же устройства, включающего в себя видеодекодер 202. В некоторых случаях сетевой объект 42 может быть примером запоминающего устройства 40 на фиг. 1.
[00133] Энтропийный декодер 401 видеодекодера 202 выполняет энтропийное декодирование битового потока для формирования квантованного коэффициента и некоторых синтаксических элементов. Энтропийный декодер 401 пересылает синтаксические элементы в фильтр 404. Видеодекодер 202 может принимать синтаксические элементы/синтаксический элемент на уровне слайса видео и/или уровне блока изображения. В настоящей заявке, в примере, синтаксический элемент здесь может включать в себя информацию индикации, относящуюся к текущему блоку изображения, и информация индикации используется для указания определения второй информации о движении на основе первой информации о движении. Кроме того, в некоторых примерах видеокодер 102 может отправлять сигнал для уведомления о конкретном синтаксическом элементе, указывающем, следует ли определять вторую информацию о движении на основе первой информации о движении.
[00134] Блок 402 обратного квантования выполняет обратное квантование, другими словами, деквантует квантованный коэффициент преобразования, обеспеченный в битовом потоке и декодированный посредством энтропийного декодера 401. Процесс обратного квантования может включать в себя этапы, на которых: определяют степень квантования, подлежащую применению, с использованием параметра квантования, вычисленного посредством видеокодера 102 для каждого блока изображения в слайсе видео, и аналогично определяют степень обратного квантования, которая должна применяться. Обратный преобразователь 403 выполняет обратное преобразование, например обратное DCT, обратное целочисленное преобразование или концептуально подобный процесс обратного преобразования над коэффициентом преобразования для формирования остаточного блока области сэмпла.
[00135] После того, как блок 406 обработки предсказания формирует блок изображения предсказания для текущего блока изображения или блок изображения предсказания для подблока текущего блока изображения, видеодекодер 202 суммирует остаточный блок от обратного преобразователя 403 и соответствующий сформированный блок изображения предсказания, сформированный посредством блока 406 обработки предсказанй для получения восстановленного блока, другими словами, декодированного блока изображения. Сумматор 409 (который также упоминается как блок 409 восстановления) представляет компонент, который выполняет эту операцию суммирования. При необходимости фильтр (в цикле декодирования или после цикла декодирования) может дополнительно использоваться для сглаживания сэмплов, или качество видео может быть улучшено другим способом. Фильтр 404 может быть одним или несколькими контурными фильтрами, например фильтром исключения блочности, адаптивным контурным фильтром (ALF - adaptive loop filter) и сэмпл-адаптивным фильтром смещения (SAO - sample adaptive offset).
[00136] Следует понимать, что другие структурные варианты видеодекодера 202 могут использоваться для декодирования битового потока. Например, для некоторых блоков изображения или кадров изображения энтропийный декодер 401 видеодекодера 202 не получает квантованный коэффициент посредством декодирования, и, соответственно, обработка посредством обратного квантователя 402 и обратного преобразователя 403 не требуется. Например, обратный квантователь 402 и обратный преобразователь 403 в видеодекодере 202 могут быть объединены.
[00137] На основе системы 1 кодирования видео, показанной на фиг. 1, видеокодер 102, показанный на фиг. 2, и видеодекодер 202, показанный на фиг. 3, ниже подробно описан способ двунаправленного межкадрового предсказания, обеспеченный в настоящей заявке.
[00138] Фиг. 4 - схематическая блок-схема способа двунаправленного межкадрового предсказания согласно варианту осуществления настоящей заявки. Способ, показанный на фиг. 4, выполняется посредством устройства двунаправленного межкадрового предсказания. Устройство двунаправленного межкадрового предсказания может быть видеодекодером 202 на фиг. 1. Фиг. 4 описывается с использованием примера, в котором устройство двунаправленного межкадрового предсказания является видеодекодером 202.
[00139] Как показано на фиг. 4, способ двунаправленного межкадрового предсказания в этом варианте осуществления настоящей заявки может включать в себя следующие этапы.
[00140] S400: Видеодекодер 202 проводит синтаксический анализ полученного битового потока и получает информацию индикации.
[00141] Необязательно, видеодекодер 202 проводит синтаксический анализ битового потока и определяет на основе значения синтаксического элемента в битовом потоке режим межкадрового предсказания, используемый для выполнения межкадрового предсказания для текущего блока изображения в текущем кадре. Когда режим межкадрового предсказания является режимом двустороннего межкадрового предсказания, видеодекодер 202 получает информацию индикации.
[00142] Видеодекодер 202 может принимать кодированный битовый поток, отправленный посредством видеокодера 102, или может получать кодированный битовый поток из запоминающего устройства 40.
[00143] Необязательно, видеодекодер 202 в этом варианте осуществления настоящей заявки определяет, на основе значения синтаксического элемента inter_pred_idc, режим межкадрового предсказания, используемый для выполнения межкадрового предсказания для текущего блока изображения в текущем кадре. Из вышеприведенного описания можно узнать, что межкадровое предсказание включает в себя однонаправленное межкадровое предсказание и двунаправленное межкадровое предсказание. Необязательно, когда значение синтаксического элемента inter_pred_idc равно 0, видеодекодер 202 определяет, что режим межкадрового предсказания, используемый для выполнения межкадрового предсказания для текущего блока изображения в текущем кадре, является прямым межкадровым предсказанием. Когда значение синтаксического элемента inter_pred_idc равно 1, видеодекодер 202 определяет, что режим межкадрового предсказания, используемый для выполнения межкадрового предсказания для текущего блока изображения в текущем кадре, является обратным межкадровым предсказанием. Когда значение синтаксического элемента inter_pred_idc равно 2, видеодекодер 202 определяет, что режим межкадрового предсказания, используемый для выполнения межкадрового предсказания для текущего блока изображения в текущем кадре, является двунаправленным межкадровым предсказанием.
[00144] Необязательно, после определения того, что значение синтаксического элемента inter_pred_idc равно 2, видеодекодер 202 получает информацию индикации, используемую для указания определения второй информации о движении на основе первой информации о движении. Первая информация о движении - это информация о движении текущего блока изображения в первом направлении, вторая информация о движении - это информация о движении текущего блока изображения во втором направлении, а первое направление и второе направление различны.
[00145] Блок изображения в настоящей заявке может быть базовым блоком для выполнения кодирования видео или декодирования видео, например, блоком кодирования (Coding Unit, CU), или может быть базовым блоком для выполнения операции предсказания, например, блоком предсказания (Prediction Unit, PU). Это не является конкретно ограниченным в этом варианте осуществления настоящей заявки.
[00146] Если блок изображения является базовым блоком для выполнения кодирования видео или декодирования видео, текущий блок изображения в этом варианте осуществления настоящей заявки включает в себя по меньшей мере один подблок. Соответственно, первая информация о движении включает в себя информацию о движении каждого из по меньшей мере одного подблока в текущем блоке изображения в первом направлении, вторая информация о движении включает в себя информацию о движении каждого из по меньшей мере одного подблока в текущем блоке изображения во втором направлении, и информация индикации используется для указания определения информации о движении подблока во втором направлении на основе информации о движении подблока в первом направлении.
[00147] Видеодекодер 202 может получать информацию индикации множеством способов.
[00148] В первой реализации видеодекодер 202 проводит синтаксический анализ первого идентификатора. Когда значение первого идентификатора является первым предварительно заданным значением, видеодекодер 202 определяет провести синтаксический анализ первой информации о движении и определяет вторую информацию о движении на основе первой информации о движении. Другими словами, видеодекодер 202 получает информацию индикации. Когда значение первого идентификатора является восьмым предварительно заданным значением, видеодекодер 202 проводит синтаксический анализ битового потока для получения пятого идентификатора. Когда значение пятого идентификатора является пятым предварительно заданным значением, видеодекодер 202 определяет провести синтаксический анализ второй информации о движении и вычисляет первую информацию о движении на основе второй информации о движении. Когда значение пятого идентификатора является девятым предварительно заданным значением, видеодекодер 202 получает первую информацию о движении и вторую информацию о движении. Первое предварительно заданное значение и пятое предварительно заданное значение могут быть одинаковыми или разными. Это не является конкретно ограниченным в этом варианте осуществления настоящей заявки.
[00149] Например, первый идентификатор - это mv_dehibited_flag_l0, пятый идентификатор - mv_dehibited_flag_l1, первое предварительно заданное значение и пятое предварительно заданное значение равны 1, а восьмое предварительно заданное значение и девятое предварительно заданное значение равны 0. Видеодекодер 202 сначала проводит синтаксический анализ mv_dehibited_flag_l0. Когда значение mv_dehibited_flag_l0 равно 1, видеодекодер 202 проводит синтаксический анализ первой информации о движении и определяет вторую информацию о движении на основе первой информации о движении. Когда значение mv_dehibited_flag_l0 равно 0, видеодекодер 202 проводит синтаксический анализ mv_dehibited_flag_l1. Когда значение mv_dehibited_flag_l1 равно 1, видеодекодер 202 проводит синтаксический анализ второй информации о движении и вычисляет первую информацию о движении на основе второй информации о движении. Когда и значение mv_dehibited_flag_l0, и значение mv_dehibited_flag_l1 равны 0, видеодекодер 202 проводит синтаксический анализ первой информации о движении и второй информации о движении.
[00150] Во второй реализации видеодекодер 202 проводит синтаксический анализ второго идентификатора. Когда значение второго идентификатора является вторым предварительно заданным значением, видеодекодер 202 определяет вычислить информацию о движении текущего блока изображения, используя алгоритм получения информации о движении. Затем видеодекодер 202 проводит синтаксический анализ третьего идентификатора. Когда значение третьего идентификатора является третьим предварительно заданным значением, видеодекодер 202 определяет провести синтаксический анализ первой информации о движении и определяет вторую информацию о движении на основе первой информации о движении. Другими словами, видеодекодер 202 получает информацию индикации. Когда значение третьего идентификатора является шестым предварительно заданным значением, видеодекодер 202 определяет провести синтаксический анализ второй информации о движении и вычисляет первую информацию о движении на основе второй информации о движении.
[00151] Например, вторым идентификатором является derived_mv_flag, третьим идентификатором - derived_mv_direction, третье предварительно заданное значение равно 1, а шестое предварительно заданное значение - 0. Видеодекодер 202 сначала проводит синтаксический анализ derived_mv_flag. Когда значение derived_mv_flag равно 1, видеодекодер 202 определяет вычислить информацию о движении текущего блока изображения с использованием алгоритма получения информации о движении. Когда значение derived_mv_flag равно 0, видеодекодер 202 проводит синтаксический анализ первой информации о движении и второй информации о движении. Когда значение derived_mv_direction равно 1, видеодекодер 202 проводит синтаксический анализ первой информации о движении и определяет вторую информацию о движении на основе первой информации о движении. Когда значение derived_mv_direction равно 0, видеодекодер 202 проводит синтаксический анализ второй информации о движении и вычисляет первую информацию о движении на основе второй информации о движении.
[00152] В третьей реализации видеодекодер 202 проводит синтаксический анализ второго идентификатора. Когда значение второго идентификатора является вторым предварительно заданным значением, видеодекодер 202 определяет вычислить информацию о движении текущего блока изображения, используя алгоритм получения информации о движении. Затем видеодекодер 202 определяет на основе предварительно заданного полученного направления провести синтаксический анализ первой информации о движении, и определяет вторую информацию о движении на основе первой информации о движении. Другими словами, видеодекодер 202 получает информацию индикации. Другими словами, в этой реализации предварительно задано «определение второй информации о движении на основе первой информации о движении». Когда значение второго идентификатора является седьмым предварительно заданным значением, видеодекодер 202 проводит синтаксический анализ первой информации о движении и второй информации о движении.
[00153] Например, вторым идентификатором является derived_mv_flag, вторым предварительно заданным значением является 1, а седьмым предварительно заданным значением является 0. Видеодекодер 202 проводит синтаксический анализ derived_mv_flag. Когда значение derived_mv_flag равно 1, видеодекодер 202 определяет вычислить информацию о движении текущего блока изображения с использованием алгоритма получения информации о движении. Кроме того, видеодекодер 202 определяет провести синтаксический анализ первой информации о движении и определяет вторую информацию о движении на основе первой информации о движении. Когда значение derived_mv_flag равно 0, видеодекодер 202 проводит синтаксический анализ первой информации о движении и второй информации о движении.
[00154] В четвертой реализации видеодекодер 202 проводит синтаксический анализ четвертого идентификатора (например, mv_dehibited_flag_l0). Когда значение четвертого идентификатора является четвертым предварительно заданным значением, видеодекодер 202 определяет вычислить информацию о движении текущего блока изображения, используя алгоритм получения информации о движении, и вычисляет переменную derived_ref_num на основе первого списка опорных кадров и второго списка опорных кадров. Переменная представляет собой количество зеркально отображаемых/линейных пар опорных кадров, которые могут быть образованы посредством первого опорного кадра и второго опорного кадра. Когда количество пар опорных кадров равно 1, видеодекодер 202 непосредственно определяет значения индексов опорных кадров. Затем видеодекодер 202 определяет на основе предварительно заданного полученного направления провести синтаксический анализ перво информации о движении, и определяет вторую информацию о движении на основе первой информации о движении. Другими словами, видеодекодер 202 получает информацию индикации. Первый список опорных кадров - это список опорных кадров текущего блока изображения в первом направлении, второй список опорных кадров - это список опорных кадров текущего блока изображения во втором направлении, первый опорный кадр является опорным кадром текущего блока изображения в первом направлении, а второй опорный кадр является опорным кадром текущего блока изображения во втором направлении. Значение индекса опорного кадра в данном варианте осуществления настоящей заявки является номером опорного кадра в соответствующем списке опорных кадров.
[00155] Например, порядковый номер текущего кадра равен 4, первый список опорных кадров - {2, 0}, второй список опорных кадров - {6, 7}, и определено на основе нижеследующего условия B или условия C, что опорный кадр, порядковый номер которого равен 2 в первом списке опорных кадров, и опорный кадр, порядковый номер которого равен 6 во втором списке опорных кадров, могут составлять пару опорных кадров. В этом случае, как значение индекса первого опорного кадра, так и значение индекса второго опорного кадра равно 0.
[00156] Например, порядковый номер текущего кадра равен 4, первый список опорных кадров - {2, 0}, второй список опорных кадров - {6, 7}, и определено на основе нижеследующего условия B или условия C, что опорный кадр, порядковый номер которого равен 2 в первом списке опорных кадров, и опорный кадр, порядковый номер которого равен 6 во втором списке опорных кадров, может составлять пару опорных кадров, и что опорный кадр, порядковый номер которого равен 0 в первом списке опорных кадров и опорный кадр, порядковый номер которого равен 7 во втором списке опорных кадров, также могут составлять пару опорных кадров. В этом случае, видеодекодер 202 должен провести синтаксический анализ значения индекса опорного кадра.
[00157] Кроме того, при определении того, что режим межкадрового предсказания является режимом двунаправленного межкадрового предсказания, видеодекодер 202 может дополнительно определять, удовлетворяет ли информация о характеристиках текущего кадра предварительно заданному условию. Таким образом, когда информация о характеристиках текущего кадра удовлетворяет предварительно заданному условию, видеодекодер 202 получает информацию индикации. В частности, процесс S401 может быть следующим: видеодекодер 202 получает информацию индикации при определении того, что режим межкадрового предсказания является режимом двунаправленного межкадрового предсказания и что информация о характеристиках текущего кадра удовлетворяет первому предварительно заданному условию.
[00158] Информация о характеристиках текущего кадра включает в себя по меньшей мере одно из порядкового номера, ID а временного уровня (Temporal Level ID, TID) или количества опорных кадров. Битовый поток, полученный посредством видеодекодера 202, включает в себя набор параметров последовательности (Sequence Parameter Set, SPS), набор параметров изображения (Picture Parameter Set, PPS), заголовок слайса (slice header) или заголовок сегмента слайса (slice segment header), и кодированные данные изображения. Затем видеодекодер 202 проводит синтаксический анализ битового потока для получения информации о характеристиках текущего кадра.
[00159] Предварительно заданное условие включает в себя по меньшей мере одно из следующих условий:
[00160] Условие A: текущий блок изображения имеет по меньшей мере два опорных кадра.
[00161] Условие В: Порядковый номер текущего кадра, порядковый номер первого опорного кадра и порядковый номер второго опорного кадра удовлетворяет следующей формуле:
Figure 00000036
[00162] В приведенной выше формуле,
Figure 00000003
представляет собой порядковый номер текущего кадра,
Figure 00000004
представляет собой порядковый номер первого опорного кадра,
Figure 00000005
представляет собой порядковый номер второго опорного кадра, первый опорный кадр представляет собой опорный кадр текущего блока изображения в первом направлении, а второй опорный кадр является опорным кадром текущего блока изображения во втором направлении.
[00163] Условие C: порядковый номер текущего кадра, порядковый номер первого опорного кадра, и порядковый номер второго опорного кадра удовлетворяют следующей формуле:
Figure 00000010
[00164] В приведенной выше формуле,
Figure 00000003
представляет собой порядковый номер текущего кадра,
Figure 00000004
представляет собой порядковый номер первого опорного кадра,
Figure 00000005
представляет собой порядковый номер второго опорного кадра, первый опорный кадр представляет собой опорный кадр текущего блока изображения в первом направлении, а второй опорный кадр является опорным кадром текущего блока изображения во втором направлении.
[00165] Условие D: TID текущего кадра больше или равен предварительно заданному значению.
[00166] Предварительно заданное условие в этом варианте осуществления настоящей заявки может быть предварительно задано или может быть указано в синтаксисе более высокого уровня, например, в наборе параметров, таком как SPS, PPS, заголовок слайса (slice header) или заголовок сегмента слайса (slice segment header). Это не является конкретно ограниченным в этом варианте осуществления настоящей заявки.
[00167] В частности, для условия B (или условия С), видеодекодер 202 получает один порядковый номер опорного кадра из каждого из первого списка опорных кадров и второго списка опорных кадров, и определяет, удовлетворяют ли полученный порядковый номер опорного кадра и порядковый номер текущего кадра условию B или условию C. Информацию индикации получают, когда удовлетворяется условие B (или условие C).
[00168] В этом варианте осуществления настоящей заявки способ, используемый посредством видеодекодера 202 для получения информации индикации при определении того, что режим межкадрового предсказания является режимом двунаправленного межкадрового предсказания и что информация о характеристиках текущего кадра удовлетворяет предварительно заданному условию, является таким же, как способ, используемый посредством видеодекодера 202 для получения информации индикации при определении того, что режим межкадрового предсказания является режимом двунаправленного межкадрового предсказания.
[00169] На основании вышеизложенного описания таблица 1 представляет собой таблицу синтаксиса, используемую, когда видеодекодер 202 получает, при определении того, что режим межкадрового предсказания является режимом двунаправленного межкадрового предсказания и что информация о характеристиках текущего кадра удовлетворяет предварительно заданному условию, информацию индикации в первой реализации. prediction_unit() является синтаксической структурой блока изображения предсказания и описывает способ определения информации о движении каждого подблока в текущем блоке изображения.
[00170] В таблице 1 x0 и y0 соответственно указывают смещение по горизонтальной координате и смещение по вертикальной координате подблока в текущем блоке изображения относительно верхнего левого угла текущего блока изображения, nPbW указывает ширину текущего блока изображения, и nPbH указывает высоту текущего блока изображения. Когда значение inter_pred_idc[x0][y0] равно PRED_L0, это указывает, что межкадровое предсказание текущего подблока является прямым предсказанием. Когда значение inter_pred_idc[x0][y0] равно PRED_L1, это указывает, что межкадровое предсказание текущего подблока является обратным предсказанием. Когда значение inter_pred_idc[x0][y0] равно PRED_BI, это указывает, что межкадровое предсказание текущего подблока является двунаправленным предсказанием.
[00171] Для двунаправленного межкадрового предсказания (то есть inter_pred_idc[x0][y0] == PRED_BI), если предварительно заданное условие (условия) удовлетворяется (удовлетворяются), проводится синтаксический анализ mv_dehibited_flag_l0[x0][y0]. Если значение mv_dehibited_flag_l0 не является первым предварительно заданным значением, проводится синтаксический анализ mv_dehibited_flag_l1[x0][y0]. Когда значение mv_derived_flag_l0 является первым предварительно заданным значением или значение mv_derived_flag_l1[х0][у0] является пятым предварительно заданным значением, информация о движении подблока текущего блока изображения определяется, более конкретно, определяются значение индекса опорного кадра ref_idx_l0[x0][y0], метка предиктора вектора движения mvp_l0_flag[x0][y0] и разность векторов движения mvd_coding(x0, y0, 0).
Таблица 1
prediction_unit (x0, y0, nPbW, nPbH) {
/*кодирование вектора движения*/
if( slice_type==B )
inter_pred_idc[x0][y0]
if( inter_pred_idc[x0][y0]==PRED_L0 ) {
if( num_ref_idx_l0_active_minus1 > 0 )
ref_idx_l0[x0][y0]
mvd_coding( x0, y0, 0 )
mvp_l0_flag[x0][y0]
}
if( inter_pred_idc[x0][y0]==PRED_L1 ) {
if( num_ref_idx_l1_active_minus1 > 0 )
ref_idx_l1[x0][y0]
mvd_coding( x0, y0, 1)
mvp_l1_flag[x0][y0]
}
if( inter_pred_idc[x0][y0]==PRED_BI ) {
if( conditions ) {
mv_derived_flag_l0[x0][y0]
if( !mv_derived_flag_l0[x0][y0]) {
mv_derived_flag_l1[x0][y0]
}
if( !mv_derived_flag_l0[x0][y0]) {
if( num_ref_idx_l0_active_minus1 > 0 )
ref_idx_l0[x0][y0]
mvd_coding( x0, y0, 0 )
mvp_l0_flag[x0][y0]
}
if( !mv_derived_flag_l1[x0][y0]) {
if( num_ref_idx_l1_active_minus1 > 0 )
ref_idx_l1[x0][y0]
mvd_coding(x0, y0, 0 )
mvp_l1_flag[x0][y0]
}
}
[00172] На основе вышеизложенного описания Таблица 2 представляет собой таблицу синтаксиса, используемую, когда видеодекодер 202 получает, при определении того, что режим межкадрового предсказания является режимом двунаправленного межкадрового предсказания и что информация о характеристиках текущего кадра удовлетворяет предварительно заданному условию, информацию индикации с использованием третьей реализации.
[00173] В Таблице 2 для двунаправленного межкадрового предсказания (другими словами, inter_pred_idc[x0][y0] == PRED_BI), если предварительно заданное условие (условия) удовлетворяется (удовлетворяются), проводится синтаксический анализ derived_mv_flag[x0][y0]. Когда значение derived_mv_flag[x0][y0] является вторым предварительно заданным значением, информация о движении подблока текущего блока изображения определяется, более конкретно, определяются значение индекса опорного кадра ref_idx_lx[х0][у0], метка предиктора вектора движения mvp_lx_flag[x0][y0] и разность векторов движения mvd_coding(x0, y0, x).
Таблица 2
prediction_unit (x0, y0, nPbW, nPbH) {
/*кодирование вектора движения*/
if( slice_type==B )
inter_pred_idc[x0][y0]
if( inter_pred_idc[x0][y0]==PRED_L0 ) {
if( num_ref_idx_l0_active_minus1 > 0 )
ref_idx_l0[x0][y0]
mvd_coding( x0, y0, 0 )
mvp_l0_flag[x0][y0]
}
if( inter_pred_idc[x0][y0]==PRED_L1 ) {
if( num_ref_idx_l1_active_minus1 > 0 )
ref_idx_l1[x0][y0]
mvd_coding( x0, y0, 1)
mvp_l1_flag[x0][y0]
}
if( inter_pred_idc[x0][y0]==PRED_BI ) {
if( conditions ) {
derived_mv_flag[ x0 ][ y0 ]
if( derived_mv_flag[x0][y0] ) {
if( num_ref_idx_lx_active_minus1 > 0 )
ref_idx_lx[ x0 ][ y0 ]
mvd_coding( x0, y0, x )
mvp_lx_flag[ x0 ][ y0 ]
} else {
}
}
[00174] На основе вышеприведенных описаний таблица 3 представляет собой таблицу синтаксиса, используемую, когда видеодекодер 202 получает, при определении того, что режим межкадрового предсказания является режимом двунаправленного межкадрового предсказания и что информация о характеристиках текущего кадра удовлетворяет первому предварительно заданному условию, информацию индикации с использованием четвертой реализации.
[00175] В Таблице 3 для двунаправленного межкадрового предсказания (другими словами, inter_pred_idc[x0][y0] == PRED_BI), если предварительно заданное условие (условия) удовлетворяется (удовлетворяются), проводится синтаксический анализ derived_mv_flag[x0][y0]. Когда значение derived_mv_flag[x0][y0] является четвертым предварительно заданным значением, определяется derived_ref_num, а когда значение derived_ref_num больше 1, определяется информация о движении подблока в текущем блоке изображения, а именно, определяются значение индекса опорного кадра ref_idx_lx[х0][у0], метка предиктора вектора движения mvp_lx_flag[х0][у0], и разность векторов движения mvd_coding(х0, у0, х).
Таблица 3
prediction_unit (x0, y0, nPbW, nPbH) {
/*кодирование вектора движения*/
if( slice_type==B )
inter_pred_idc[x0][y0]
if( inter_pred_idc[x0][y0]==PRED_L0 ) {
if( num_ref_idx_l0_active_minus1 > 0 )
ref_idx_l0[x0][y0]
mvd_coding( x0, y0, 0 )
mvp_l0_flag[x0][y0]
}
if( inter_pred_idc[x0][y0]==PRED_L1 ) {
if( num_ref_idx_l1_active_minus1 > 0 )
ref_idx_l1[x0][y0]
mvd_coding( x0, y0, 1)
mvp_l1_flag[x0][y0]
}
if( inter_pred_idc[x0][y0]==PRED_BI ) {
if( conditions ) {
derived_mv_flag[x0][y0]
if( derived_mv_flag[x0][y0] ) {
if( num_ref_idx_lx_active_minus1 > 0 && derived_ref_num > 1)
ref_idx_lx[x0][y0]
mvd_coding(x0, y0, x )
mvp_lx_flag[x0][y0]
} else {
}
}
[00176] Первый идентификатор, второй идентификатор, третий идентификатор и четвертый идентификатор могут быть предварительно заданы или могут быть указаны в синтаксисе более высокого уровня, например, в наборе параметров, таком как SPS, PPS, заголовок слайса (slice header) или заголовок сегмента слайса (slice segment header). Это не является конкретно ограниченным в этом варианте осуществления настоящей заявки.
[00177] Видеодекодер 202 получает информацию индикации при определении того, что режим межкадрового предсказания является режимом двунаправленного межкадрового предсказания и что информация о характеристиках текущего кадра удовлетворяет предварительно заданному условию. Это эффективно улучшает скорость декодирования видеодекодера 202 и снижает избыточность информации.
[00178] S401: Видеодекодер 202 получает первую информацию о движении.
[00179] Необязательно, видеодекодер 202 проводит синтаксический анализ битового потока для получения значения индекса первого опорного кадра, первой метки предиктора вектора движения и первой разности векторов движения, другими словами, для получения первой информации о движении. Первая метка предиктора вектора движения используется для указания значения индекса первого предсказанного вектора движения в первом списке возможных векторов движения, первый предсказанный вектор движения представляет собой предсказанный вектор движения текущего блока изображения в первом направлении, первая разность векторов движения - это разность между первым предсказанным вектором движения и первым вектором движения, а первый вектор движения - это вектор движения текущего блока изображения в первом направлении.
[00180] В каждой из синтаксических таблиц, показанных в таблицах с 1 по 3, видеодекодер 202 определяет информацию о движении подблока в текущем блоке изображения в первом направлении.
[00181] S402: Видеодекодер 202 определяет вторую информацию о движении на основе первой информации о движении.
[00182] В первой реализации видеодекодером 202 для определения второй информации о движении используется следующий способ: видеодекодер 202 выбирает значение индекса первого опорного кадра из первой информации о движении, и определяет порядковый номер первого опорного кадра на основании значения индекса первого опорного кадра и первого списка опорных кадров; вычисляет порядковый номер второго опорного кадра на основании порядкового номера текущего кадра и порядкового номера первого опорного кадра в соответствии с предварительно заданной формулой; определяет значение индекса второго опорного кадра на основании порядкового номера второго опорного кадра и второго списка опорных кадров; и определяет вторую информацию о движении на основе первой информации о движении и значении индекса второго опорного кадра.
[00183] Здесь предварительно заданная формула может иметь вид
Figure 00000011
. POC_Cur представляет собой порядковый номер текущего кадра, POC_listX представляет собой порядковый номер первого опорного кадра и POC_listY представляет собой порядковый номер второго опорного кадра.
[00184] Например, если порядковый номер текущего кадра равен 4, порядковый номер первого опорного кадра равен 2, второй список опорных кадров - [6, 8], и определено, в соответствии с формулой
Figure 00000011
, что порядковый номер второго опорного кадра равен 6, видеодекодер 202 определяет, что значение индекса ref_lY_idx второго опорного кадра равен 0.
[00185] Необязательно, предварительно заданная формула может иметь вид
Figure 00000010
. Следует отметить, что, если множество порядковых номеров опорных кадров во втором списке опорных кадров удовлетворяют формуле, видеодекодер 202 сначала выбирает опорный кадр с минимальным значением abs((POC_listY-POC_Cur) - (POC_Cur-POC_listX)), а затем выбирает опорный кадр с минимальным значением abs(POC_listY-POC_Cur), чтобы определить значение индекса второго опорного кадра. abs - это функция абсолютного значения.
[00186] Например, если порядковый номер текущего кадра равен 4, порядковый номер первого опорного кадра равен 2, второй список опорных кадров - [5, 7, 8], и определено, в соответствии с формулой
Figure 00000010
, что порядковый номер второго опорного кадра равен 5, видеодекодер 202 определяет, что значение индекса ref_lY_idx второго опорного кадра равно 0.
[00187] Необязательно, предварительно заданная формула может альтернативно иметь вид
Figure 00000037
. Следует отметить, что, если множество порядковых номеров опорных кадров во втором списке опорных кадров удовлетворяют формуле, то видеодекодер 202 сначала выбирает опорный кадр с минимальным значением abs((POC_listY-POC_Cur) - (POC_Cur-POC_listX)), а затем выбирает опорный кадр с минимальным значением abs(POC_listY-POC_Cur), чтобы определить значение индекса второго опорного кадра. abs - это функция абсолютного значения.
[00188] Например, если порядковый номер текущего кадра равен 4, порядковый номер первого опорного кадра равен 2, второй список опорных кадров - [3, 2, 1, 0], и определено, в соответствии с формулой
Figure 00000037
, что порядковый номер второго опорного кадра равен 3, видеодекодер 202 определяет, что значение индекса ref_lY_idx второго опорного кадра равен 0.
[00189] В качестве альтернативы предварительно заданная формула может иметь вид
Figure 00000017
,
Figure 00000018
и
Figure 00000020
. В этом случае способ, используемый посредством видеодекодера 202 для определения значения индекса второго опорного кадра, в частности, содержит этапы, на которых: вычисляют первый порядковый номер на основе порядкового номера текущего кадра и порядкового номера первого опорного кадра, с использованием формулы POC_listY0 = 2*POC_Cur-POC_listX, где POC_Cur представляет собой порядковый номер текущего кадра, POC_listX представляет собой порядковый номер первого опорного кадра и POC_listY0 представляет собой первый порядковый номер; и когда второй список опорных кадров включает в себя первый порядковый номер, определяют, как значение индекса второго опорного кадра, номер опорного кадра, представленный посредством первого порядкового номера во втором списке опорных кадров; или когда второй список опорных кадров не включает в себя первый порядковый номер, вычисляют второй порядковый номер на основе порядкового номера текущего кадра и порядкового номера первого опорного кадра, используя (POC_Cur-POC_listX)*(POC_listY0'- POC_Cur) > 0, где POC_listY0' представляет собой второй порядковый номер, а когда второй список опорных кадров включает в себя второй порядковый номер, определяют, как значение индекса второго опорного кадра, номер опорного кадра, представленный посредством второго порядкового номера во втором списке опорных кадров, или когда второй список опорных кадров не включает в себя второй порядковый номер, вычисляют третий порядковый номер на основе порядкового номера текущего кадра и порядкового номера первого опорного кадра, используя формулу POC_listX ≠ POC_listY0'', где POC_listY0'' представляет собой третий порядковый номер, и определяют, как значение индекса второго опорного кадра, номер опорного кадра, представленного посредством третьего порядкового номера во втором списке опорных кадров.
[00190] Во второй реализации видеодекодером 202 для определения второй информации о движении используется следующий способ: видеодекодер 202 проводит синтаксический анализ битового потока для получения значения индекса второго опорного кадра, и определяют вторую информацию о движении на основе первой информации о движении и значения индекса второго опорного кадра. Значение индекса второго опорного кадра может быть предварительно заданным, или может быть задано в наборе параметров, например, в SPS, PPS, заголовке слайса (slice header), или заголовке сегмента слайса (slice segment header). Это не является конкретно ограниченным в этом варианте осуществления настоящей заявки.
[00191] Может быть известно, что, как в первом варианте осуществления, так и во втором варианте осуществления, видеодекодер 202 определяет вторую информацию о движении на основе первой информации о движении и значения индекса второго опорного кадра.
[00192] Необязательно, видеодекодер 202 может вычислить всю информацию о движении текущего блока изображения во втором направлении или может вычислить часть информации о движении текущего блока изображения во втором направлении.
[00193] Ниже описан процесс, в котором видеодекодер 202 определяет вторую информацию о движении на основе первой информации о движении и значения индекса второго опорного кадра.
[00194] Необязательно, способ, используемый видеодекодером 202 для определения второй информации о движении на основе первой информации о движении и значения индекса второго опорного кадра может содержать этапы, на которых: получают значение индекса первого опорного кадра в первой информации о движении, и определяют порядковый номер первого опорного кадра на основании значения индекса первого опорного кадра и первого списка опорных кадров; получают значение индекса второго опорного кадра, и определяют порядковый номер второго опорного кадра на основании значения индекса второго опорного кадра и второго списка опорных кадров; определяют первый вектор движения (вектор движения текущего блока изображения в первом направлении) на основе первой разности векторов движения и первой метки предиктора вектора движения, которые находятся в первой информации о движении; и получают второй вектор движения во второй информации о движении согласно следующей формуле:
Figure 00000001
[00195] В приведенных выше формулах,
Figure 00000002
представляет собой второй вектор движения,
Figure 00000003
представляет собой порядковый номер текущего кадра,
Figure 00000004
представляет собой порядковый номер первого опорного кадра,
Figure 00000005
представляет собой порядковый номер второго опорного кадра,
Figure 00000006
представляет собой первый вектор движения, и второй вектор движения - это вектор движения текущего блока изображения во втором направлении.
[00196] Видеодекодер 202 создает список информации о возможном движении таким же образом, как кодер создает список информации о возможном движении в режиме AMVP или режиме объединения, и определяет первый предсказанный вектор движения в списке информации о возможном движении на основе метки предсказания первого вектора движения. Таким образом, видеодекодер 202 может определять сумму первого предсказанного вектора движения и первой разности векторов движения как первый вектор движения.
[00197] Необязательно, когда первый опорный кадр является будущим опорным кадром текущего блока изображения, а второй опорный кадр является предыдущим опорным кадром текущего блока изображения или когда первый опорный кадр является предыдущим опорным кадром текущего блока изображения, а второй опорный кадр является будущим опорным кадром текущего блока изображения, или когда каждый из первого опорного кадра и второго опорного кадра является будущим опорным кадром текущего блока изображения, или когда каждый из первого опорного кадра и второго опорного кадра является предыдущим опорным кадром текущего блока изображения, видеодекодер 202 может непосредственно установить
Figure 00000007
.
[00198] Например, как то, что «первый опорный кадр является будущим опорным кадром текущего блока изображения, а второй опорный кадр - предыдущим опорным кадром текущего блока изображения», так и то, что «первый опорный кадр является предыдущим опорным кадром текущего блока изображения, а второй опорный кадр является будущим опорным кадром текущего блока изображения », может быть представлено с использованием формулы
Figure 00000010
или может быть представлено с использованием формулы
Figure 00000011
.
[00199] И то, что «первый опорный кадр и второй опорный кадр, каждый является будущим опорным кадром текущего блока изображения», и то, что «первый опорный кадр и второй опорный кадр, каждый является предыдущим опорным кадром текущего блока изображения» может быть представлено как с использованием формулы
Figure 00000012
.
[00200] Необязательно, способ, используемый видеодекодером 202 для определения второй информации о движении на основе первой информации о движении и значения индекса второго опорного кадра содержать этапы, на которых: получают значение индекса первого опорного кадра и первую разность векторов движения, находящихся в первой информации о движении, и определяют порядковый номер первого опорного кадра на основании значения индекса первого опорного кадра и первого списка опорных кадров; получают значение индекса второго опорного кадра, определяют порядковый номер второго опорного кадра на основе значения индекса второго опорного кадра и второго списка опорных кадров и определяют второй предсказанный вектор движения на основе значения индекса второго опорного кадра и второго списка возможных предсказанных векторов движения, где второй предсказанный вектор движения является предсказанным вектором движения текущего блока изображения во втором направлении; получают вторую разность векторов движения во второй информации о движении по следующей формуле:
Figure 00000013
где
Figure 00000014
представляет вторую разность векторов движения,
Figure 00000003
представляет собой порядковый номер текущего кадра,
Figure 00000004
представляет собой порядковый номер первого опорного кадра,
Figure 00000005
представляет собой порядковый номер второго опорного кадра, и
Figure 00000015
представляет собой первую разность векторов движения; и определяют второй вектор движения на основе второго предсказанного вектора движения и второй разности векторов движения, где второй вектор движения является вектором движения текущего блока изображения во втором направлении.
[00201] Необязательно, когда первый опорный кадр является будущим опорным кадром текущего блока изображения, а второй опорный кадр является предыдущим опорным кадром текущего блока изображения или когда первый опорный кадр является предыдущим опорным кадром текущего блока изображения, а второй опорный кадр является будущим опорным кадром текущего блока изображения, или когда каждый из первого опорного кадра и второго опорного кадра является будущим опорным кадром текущего блока изображения, или когда каждый из первого опорного кадра и второго опорного кадра является предыдущим опорным кадром текущего блока изображения, видеодекодер 202 может непосредственно установить
Figure 00000016
.
[00202] Например, если
Figure 00000010
, POC_listY = 2*POC_Cur-POC_listX или (POC_Cur-POC_listX) * (POC_listY-POC_Cur) < 0, видеодекодер 202 непосредственно устанавливает mvd_lY = -mvd_lX.
[00203] S403: Видеодекодер 202 определяет сэмплы предсказания текущего блока изображения на основе первой информации о движении и второй информации о движении.
[00204] Необязательно, видеодекодер 202 определяет первый вектор движения и второй вектор движения на этапе S402. Таким образом, видеодекодер 202 может определять первый опорный блок изображения на основе первого вектора движения и первого списка опорных кадров и определять второй опорный блок изображения на основе второго вектора движения и второго списка опорных кадров. Кроме того, видеодекодер 202 определяет сэмплы предсказания текущего блока изображения на основе первого опорного блока изображения и второго опорного блока изображения. Другими словами, видеодекодер 202 завершает процесс компенсации движения.
[00205] Для способа, используемого посредством видеодекодера 202, чтобы определить сэмплы предсказания текущего блока изображения на основе первого опорного блока изображения и второго опорного блока изображения, обратитесь к любому существующему способу. Это не является конкретно ограниченным в этом варианте осуществления настоящей заявки.
[00206] В способе двунаправленного межкадрового предсказания, обеспеченном в этом варианте осуществления настоящей заявки, видеодекодер 202 может получить только первую информацию о движении из кодированного битового потока. После получения первой информации о движении видеодекодер 202 вычисляет вторую информацию о движении на основе первой информации о движении и дополнительно определяет сэмплы предсказания текущего блока изображения на основе первой информации о движении и второй информации о движении. Согласно способу, обеспеченному в настоящей заявке, больше не требуется передавать информацию о движении каждого блока изображения во всех направлениях, что отличается от предшествующего уровня техники. Это эффективно уменьшает количество передаваемой информации о движении и улучшает эффективное использование ресурсов передачи, скорость передачи и эффективность сжатия кодирования.
[00207] Способ двунаправленного межкадрового предсказания, показанный на фиг. 4, описывается для текущего блока изображения, то есть можно понять, что межкадровое предсказание выполняется для текущего блока изображения на основе режима AMVP.
[00208] Легко понять, что способ двунаправленного межкадрового предсказания, представленный в настоящей заявке, также применим к режиму предсказания модели непоступательного движения, например, модели движения с 4-параметрическим аффинным преобразованием, модели движения с 6-параметрическим аффинным преобразованием или модели билинейного движения с 8 параметрами. В этом сценарии текущий блок изображения включает в себя по меньшей мере один подблок, а информация о движении текущего блока изображения включает в себя информацию о движении каждого из всех подблоков текущего блока изображения. Способ, используемый посредством видеодекодера 202 для определения информации о движении (информации о движении в первом направлении и информации о движении во втором направлении) каждого подблока, аналогичен способу, используемому посредством видеодекодера 202 для определения информации о движении текущего блока изображения.
[00209] В режиме предсказания модели непоступательного движения видеодекодер 202 вычисляет вектор движения i-й контрольной точки во втором направлении на основе вектора движения i-й контрольной точки в первом направлении согласно следующей формуле:
Figure 00000038
[00210] В приведенной выше формуле
Figure 00000039
представляет вектор движения i-й контрольной точки во втором направлении,
Figure 00000040
представляет вектор движения i-й контрольной точки в первом направлении,
Figure 00000003
представляет порядковый номер текущего кадра,
Figure 00000004
представляет порядковый номер первого опорного кадра и
Figure 00000005
представляет порядковый номер второго опорного кадра.
[00211] Соответственно, видеодекодер 202 вычисляет разность векторов движения i-й контрольной точки во втором направлении на основе разности векторов движения i-й контрольной точки в первом направлении, используя следующую формулу:
Figure 00000041
[00212] В приведенной выше формуле
Figure 00000042
представляет разность векторов движения i-й контрольной точки во втором направлении,
Figure 00000043
представляет разность векторов движения i-й контрольной точки в первом направлении,
Figure 00000003
представляет порядковый номер текущего кадра,
Figure 00000004
представляет собой порядковый номер первого опорного кадра и
Figure 00000005
представляют собой порядковый номер второго опорного кадра.
[00213] По сравнению с видеодекодером 202, видеокодер 102 в вариантах осуществления настоящей заявки выполняет двунаправленную оценку движения для текущего блока изображения, чтобы определить информацию о движении текущего блока изображения в первом направлении, и вычисляет информацию о движении текущего блока изображения во втором направлении на основе информации о движении текущего блока изображения в первом направлении. Таким образом, видеокодер 102 определяет блок изображения предсказания текущего блока изображения на основе информации о движении текущего блока изображения в первом направлении и информации о движении текущего блока изображения во втором направлении. Затем видеокодер 102 выполняет такие операции, как преобразование и квантование остатка между текущим блоком изображения и блоком изображения предсказания текущего блока изображения, для сформирования битового потока и отправляет битовый поток в видеодекодер 202. Битовый поток включает в себя информацию о движении текущего блока изображения в первом направлении.
[00214] Для способа, используемого посредством видеокодера 102 для вычисления информации о движении текущего блока изображения во втором направлении на основе информации о движении текущего блока изображения в первом направлении, обратитесь к способу, используемому посредством видеодекодера 202 для определения второй информации о движении, на основе первой информации о движении, другими словами, обратитесь к описаниям на этапе S402. Подробности не описываются снова в настоящей заявке.
[00215] В заключение, согласно способу двунаправленного межкадрового предсказания, обеспеченному в настоящей заявке, во время двунаправленного межкадрового предсказания больше не требуется передавать информацию о движении каждого блока изображения во всех направлениях, и необходимо передавать только информацию о движении в одном направлении. Это эффективно уменьшает количество передаваемой информации о движении и улучшает эффективное использование ресурсов передачи, скорость передачи и эффективность сжатия кодирования.
[00216] Вариант осуществления настоящей заявки обеспечивает устройство двунаправленного межкадрового предсказания. Устройство двунаправленного межкадрового предсказания может быть видеодекодером. В частности, устройство двунаправленного межкадрового предсказания выполнено с возможностью выполнения этапов, выполняемых посредством видеодекодера 202 в вышеупомянутом способе двунаправленного межкадрового предсказания. Устройство двунаправленного межкадрового предсказания, обеспеченное в этом варианте осуществления настоящей заявки, может включать в себя модули для соответствующих этапов.
[00217] В вариантах осуществления настоящей заявки устройство двунаправленного межкадрового предсказания может быть разделено на функциональные модули на основе вышеупомянутых примеров способов. Например, каждый функциональный модуль может быть получен посредством разделения на основе соответствующей функции, или две или более функций могут быть интегрированы в один модуль обработки. Интегрированный модуль может быть реализован в виде аппаратных средств или может быть реализован в виде программного функционального модуля. В вариантах осуществления настоящей заявки разделение на модули является примером и представляет собой просто разделение логических функций. При фактической реализации может использоваться другой способ разделения.
[00218] Когда каждый функциональный модуль получается посредством разделения на основе соответствующей функции, фиг. 5 - возможная схематическая структурная схема устройства двунаправленного межкадрового предсказания в вышеупомянутых вариантах осуществления. Как показано на фиг. 5, устройство 5 двунаправленного межкадрового предсказания включает в себя блок 50 получения и блок 51 определения.
[00219] Блок 50 получения выполнен с возможностью поддержки устройства двунаправленного межкадрового предсказания для выполнения S400, S401 и т.п. в вышеупомянутом варианте осуществления и/или используется в другом процессе технологии, описанной в этом описании.
[00220] Блок 51 определения выполнен с возможностью поддержки устройства двунаправленного межкадрового предсказания для выполнения S402, S403 и т.п. в вышеупомянутом варианте осуществления и/или используется в другом процессе технологии, описанной в этом описании.
[00221] Все соответствующее содержание этапов в вышеупомянутых вариантах осуществления способа может быть процитировано в описаниях соответствующих функциональных модулей. Подробности не описаны здесь снова.
[00222] Конечно, устройство двунаправленного межкадрового предсказания, обеспеченное в этом варианте осуществления настоящей заявки, включает в себя, но не ограничивается вышеупомянутыми модулями. Например, устройство двунаправленного межкадрового предсказания может дополнительно включать в себя блок 52 хранения.
[00223] Блок 52 хранения может быть выполнен с возможностью хранения программного кода и данных устройства двунаправленного межкадрового предсказания.
[00224] Когда используется интегрированный блок, фиг. 6 - схематическая структурная схема устройства двунаправленного межкадрового предсказания, обеспеченного в вариантах осуществления настоящей заявки. Как показано на фиг. 6, устройство 6 двунаправленного межкадрового предсказания включает в себя модуль 60 обработки и модуль 61 связи. Модуль 60 обработки выполнен с возможностью контроля и управления действием устройства двунаправленного межкадрового предсказания, например, выполнения этапов, выполняемых посредством блока 50 получения и блока 51 определения, и/или выполнен с возможностью выполнения другого процесса технологии, описанной в данном описании. Модуль 61 связи выполнен с возможностью поддержки взаимодействия между устройством двунаправленного межкадрового предсказания и другим устройством. Как показано на фиг. 6, устройство двунаправленного межкадрового предсказания может дополнительно включать в себя модуль 62 хранения. Модуль 62 хранения выполнен с возможностью хранения программного кода и данных устройства двунаправленного межкадрового предсказания, например, для хранения контента, хранящегося в блоке 52 хранения.
[00225] Модуль 60 обработки может быть процессором или контроллером, например, может быть центральным процессором (Central Processing Unit, CPU), процессором общего назначения, процессором цифровых сигналов (Digital Signal Processor, DSP), ASIC, FPGA или другим программируемым логическим устройством, транзисторным логическим устройством, аппаратным компонентом или любой их комбинацией. Процессор или контроллер могут реализовывать или выполнять различные примерные логические блоки, модули и схемы, описанные со ссылкой на контент, раскрытый в настоящей заявке. В качестве альтернативы процессор может быть комбинацией для реализации вычислительной функции, например, комбинацией, включающей один или несколько микропроцессоров, или комбинацией DSP и микропроцессора. Модуль 61 связи может быть приемопередатчиком, радиочастотной схемой, интерфейсом связи и т.п. Модуль 62 хранения может быть памятью.
[00226] Весь соответствующий контент сценариев в вышеупомянутых вариантах осуществления способа может быть процитирован в описаниях функций соответствующих функциональных модулей. Подробности не описаны здесь снова.
[00227] Как устройство 5 двунаправленного межкадрового предсказания, так и устройство 6 двунаправленного межкадрового предсказания могут выполнять способ двунаправленного межкадрового предсказания, показанный на фиг. 4. В частности, устройство 5 двунаправленного межкадрового предсказания и устройство 6 двунаправленного межкадрового предсказания могут быть устройствами декодирования видео или другими устройствами, имеющими функцию кодирования видео. Устройство 5 двунаправленного межкадрового предсказания и устройство 6 двунаправленного межкадрового предсказания могут быть выполнены с возможностью выполнения предсказания изображения в процессе декодирования.
[00228] Настоящая заявка дополнительно обеспечивает терминал. Терминал включает в себя один или несколько процессоров, память и интерфейс связи. Память и интерфейс связи связаны с одним или несколькими процессорами. Память выполнена с возможностью хранения компьютерного программного кода. Код компьютерной программы включает в себя инструкцию. Когда один или несколько процессоров выполняют инструкцию, терминал выполняет способ двунаправленного межкадрового предсказания в вариантах осуществления настоящей заявки.
[00229] Терминал здесь может быть устройством отображения видео, смартфоном, портативным компьютером или другим устройством, которое может обрабатывать или воспроизводить видео.
[00230] Настоящая заявка дополнительно обеспечивает видеодекодер, включающий в себя энергонезависимый носитель данных и центральный процессор. На энергонезависимом носителе данных хранится исполняемая программа. Центральный процессор подключен к энергонезависимому носителю данных и выполняет исполняемую программу для выполнения способа двунаправленного межкадрового предсказания в вариантах осуществления настоящей заявки.
[00231] Настоящая заявка дополнительно обеспечивает декодер. Декодер включает в себя устройство двунаправленного межкадрового предсказания (устройство 5 двунаправленного межкадрового предсказания или устройство 6 двунаправленного межкадрового предсказания) в вариантах осуществления настоящей заявки и модуль восстановления. Модуль восстановления выполнен с возможностью определения восстановленных значений сэмплов текущего блока изображения на основе сэмплов предсказания, полученных посредством устройства двунаправленного межкадрового предсказания.
[00232] Другой вариант осуществления настоящей заявки дополнительно обеспечивает считываемый компьютером носитель данных. Считываемый компьютером носитель данных включает в себя одну или несколько частей программного кода. Одна или несколько частей программного кода включают в себя инструкцию. Когда процессор терминала выполняет программный код, терминал выполняет способ двунаправленного межкадрового предсказания, показанный на фиг. 4.
[00233] В другом варианте осуществления настоящей заявки дополнительно обеспечивается компьютерный программный продукт. Компьютерный программный продукт включает в себя исполняемую компьютером инструкцию. Исполняемая компьютером инструкция хранится на считываемом компьютером носителе данных. По меньшей мере один процессор терминала может считывать исполняемую компьютером инструкцию со считываемого компьютером носителя данных. По меньшей мере один процессор выполняет исполняемую компьютером инструкцию в обеспечение выполнения терминалом этапов, выполняемых посредством видеодекодера 202 в способе двунаправленного межкадрового предсказания, показанном на фиг. 4.
[00234] Все или некоторые из вышеупомянутых вариантов осуществления могут быть реализованы с использованием программного обеспечения, аппаратного обеспечения, микропрограммного обеспечения или их любой комбинации. Когда программное обеспечение используется для реализации вариантов осуществления, варианты осуществления могут быть реализованы полностью или частично в форме компьютерного программного продукта. Компьютерный программный продукт включает в себя одну или более компьютерных инструкций. Когда инструкции компьютерной программы загружаются и выполняются на компьютере, процедуры или функции согласно вариантам осуществления настоящей заявки формируются полностью или частично.
[00235] Компьютер может быть компьютером общего назначения, специализированным компьютером, сетью компьютеров или другими программируемыми устройствами. Компьютерные инструкции могут храниться на считываемом компьютером носителе данных или могут передаваться с одного считываемого компьютером носителя данных на другой считываемый компьютером носитель данных. Например, компьютерные инструкции могут передаваться с веб-сайта, компьютера, сервера или центра хранения и обработки данных на другой веб-сайт, компьютер, сервер или центр хранения и обработки данных проводным (например, коаксиальный кабель, оптоволокно или цифровая абонентская линия (DSL - digital subscriber line)) или беспроводным (например, инфракрасным, радио или микроволновым) способом. Считываемый компьютером носитель данных может быть любым используемым носителем данных, доступным для компьютера, или устройством хранения данных, таким как сервер или центр обработки данных, объединяющим один или несколько используемых носителей данных. Используемый носитель данных может быть магнитным носителем данных (например, гибким диском, жестким диском или магнитной лентой), оптическим носителем данных (например, DVD), полупроводниковым носителем данных (например, твердотельным накопителем Solid State Disk (SSD)) и т.п.
[00236] Приведенное выше описание реализаций позволяет специалисту в данной области техники ясно понять, что для удобства и краткого описания разделение вышеупомянутых функциональных модулей взято в качестве примера для иллюстрации. В реальном применении вышеупомянутые функции могут быть назначены различным функциональным модулям и реализованы на основе требования, то есть внутренняя структура устройства разделена на разные функциональные модули для реализации всех или некоторых функций, описанных выше.
[00237] Следует понимать, что в нескольких вариантах осуществления, обеспеченных в настоящей заявке, раскрытые устройство и способ могут быть реализованы другими способами. Например, описанный вариант осуществления устройства является лишь примером. Например, разделение на модули или блоки является просто разделением логических функций и может быть другим разделением в фактической реализации. Например, множество блоков или компонентов могут быть объединены или интегрированы в другое устройство, или некоторые функции могут игнорироваться или не выполняться. Кроме того, отображаемые или обсуждаемые взаимные соединения или непосредственные соединения или соединения связи могут быть реализованы с использованием некоторых интерфейсов. Опосредованные соединения или соединения связи между устройствами или блоками могут быть реализованы в электрической, механической или других формах.
[00238] Блоки, описанные как отдельные части, могут быть или не быть физически отдельными, а части, отображаемые как блоки, могут быть одним или несколькими физическими блоками, могут быть расположены в одном месте или могут быть распределены в разных местах. Некоторые или все блоки могут быть выбраны на основе фактических требований для достижения целей решений в упомянутых вариантах осуществления.
[00239] Кроме того, функциональные блоки в вариантах осуществления настоящей заявки могут быть интегрированы в один блок обработки, или каждый из блоков может существовать отдельно физически, или два или более блоков интегрируются в один блок. Интегрированный блок может быть реализован в виде аппаратных средств или может быть реализован в виде программного функционального блока.
[00240] Когда интегрированный блок реализован в виде программного функционального блока и продается или используется как независимый продукт, интегрированный блок может храниться на считываемом носителе данных. Основываясь на таком понимании, технические решения в вариантах осуществления настоящей заявки по существу или часть, вносящая вклад в предшествующий уровень техники, или все или некоторые из технических решений могут быть реализованы в форме программного продукта. Программный продукт хранится на носителе данных и включает в себя несколько инструкций для выдачи инструкций устройству (которое может быть микрокомпьютером с одной микросхемой, микросхемой и т.п.) или процессору (processor) на выполнение всех или некоторых из этапов способов, описанных в вариантах осуществления настоящей заявки. Вышеуказанный носитель данных включает в себя: любой носитель данных, который может хранить программный код, такой как флэш-накопитель USB, съемный жесткий диск, постоянное запоминающее устройство (Read-Only Memory, ROM), оперативное запоминающее устройство (Random Access Memory, RAM), магнитный диск или оптический диск.
[00241] Вышеприведенное описание представляет собой лишь конкретные реализации данной заявки, но оно не предназначено для ограничения объема охраны данной заявки. Любые изменения или замены в пределах технического объема, раскрытого в настоящей заявке, должны подпадать под объем охраны настоящей заявки. Следовательно, объем охраны данной заявки подлежит защите формулой изобретения.

Claims (170)

1. Способ двунаправленного межкадрового предсказания, содержащий этапы, на которых:
получают информацию индикации;
получают первую информацию о движении;
когда информация индикации используется для указания определения второй информации о движении на основе первой информации о движении, определяют вторую информацию о движении на основе первой информации о движении, при этом первая информация о движении является информацией о движении текущего блока изображения в первом направлении, а вторая информация о движении - это информация о движении текущего блока изображения во втором направлении; и
определяют сэмплы предсказания текущего блока изображения на основе первой информации о движении и второй информации о движении,
при этом этап определения второй информации о движении на основе первой информации о движении, в частности, содержит этапы, на которых:
получают значение индекса первого опорного кадра в первой информации о движении и определяют порядковый номер первого опорного кадра на основании значения индекса первого опорного кадра и первого списка опорных кадров, при этом первый опорный кадр является опорным кадром текущего блока изображения в первом направлении, а значение индекса первого опорного кадра представляет собой номер первого опорного кадра в первом списке опорных кадров;
получают значение индекса второго опорного кадра и определяют порядковый номер второго опорного кадра на основе значения индекса второго опорного кадра и второго списка опорных кадров, при этом второй опорный кадр представляет собой опорный кадр текущего блока изображения во втором направлении, а значение индекса второго опорного кадра является номером второго опорного кадра во втором списке опорных кадров;
определяют первый вектор движения на основе первой разности векторов движения и первой метки предиктора вектора движения, которые находятся в первой информации о движении, при этом первый вектор движения является вектором движения текущего блока изображения в первом направлении; и
получают второй вектор движения во второй информации о движении по следующей формуле:
Figure 00000044
,
при этом
Figure 00000045
представляет собой второй вектор движения,
Figure 00000046
представляет собой порядковый номер текущего кадра,
Figure 00000047
представляет собой порядковый номер первого опорного кадра,
Figure 00000048
представляет собой порядковый номер второго опорного кадра,
Figure 00000049
представляет собой первый вектор движения и второй вектор движения - это вектор движения текущего блока изображения во втором направлении,
или этап определения второй информации о движении на основе первой информации о движении, в частности, содержит этапы, на которых:
получают значение индекса первого опорного кадра в первой информации о движении, при этом первый опорный кадр представляет собой опорный кадр текущего блока изображения в первом направлении, а значение индекса первого опорного кадра представляет собой номер первого опорного кадра в первом списке опорных кадров;
получают значение индекса второго опорного кадра, при этом второй опорный кадр представляет собой опорный кадр текущего блока изображения во втором направлении, а значение индекса второго опорного кадра является номером второго опорного кадра во втором списке опорных кадров;
определяют первый вектор движения на основе первой разности векторов движения и первой метки предиктора вектора движения, которые находятся в первой информации о движении, при этом первый вектор движения является вектором движения текущего блока изображения в первом направлении; и,
когда первый опорный кадр является будущим опорным кадром текущего блока изображения, а второй опорный кадр является предыдущим опорным кадром текущего блока изображения, или когда первый опорный кадр является предыдущим опорным кадром текущего блока изображения, а второй опорный кадр является будущим опорным кадром текущего блока изображения, или когда каждый из первого опорного кадра и второго опорного кадра является будущим опорным кадром текущего блока изображения, или когда каждый из первого опорного кадра и второго опорного кадра является предыдущим опорным кадром текущего блока изображения, получают второй вектор движения во второй информации о движении в соответствии со следующей формулой:
Figure 00000050
,
где
Figure 00000051
представляет второй вектор движения,
Figure 00000052
представляет первый вектор движения и второй вектор движения представляет собой вектор движения текущего блока изображения во втором направлении,
или этап определения второй информации о движении на основе первой информации о движении, в частности, содержит этапы, на которых:
получают значение индекса первого опорного кадра и первую разность векторов движения, которые находятся в первой информации о движении, и определяют порядковый номер первого опорного кадра на основе значения индекса первого опорного кадра и первого списка опорных кадров, при этом первый опорный кадр представляет собой опорный кадр текущего блока изображения в первом направлении, а значение индекса первого опорного кадра представляет собой номер первого опорного кадра в первом списке опорных кадров;
получают значение индекса второго опорного кадра, определяют порядковый номер второго опорного кадра на основании значения индекса второго опорного кадра и второго списка опорных кадров и определяют второй предсказанный вектор движения на основе значения индекса второго опорного кадра и второго списка возможных предсказанных векторов движения, причем второй предсказанный вектор движения является предсказанным вектором движения текущего блока изображения во втором направлении, второй опорный кадр является опорным кадром текущего блока изображения во втором направлении, а значение индекса второго опорного кадра является номером второго опорного кадра во втором списке опорных кадров;
вычисляют вторую разность векторов движения во второй информации о движении по следующей формуле:
Figure 00000053
,
при этом
Figure 00000054
представляет собой вторую разность векторов движения,
Figure 00000046
представляет собой порядковый номер текущего кадра,
Figure 00000047
представляет собой порядковый номер первого опорного кадра,
Figure 00000048
представляет собой порядковый номер второго опорного кадра и
Figure 00000055
представляет собой первую разность векторов движения; и
определяют второй вектор движения на основе второго предсказанного вектора движения и второй разности векторов движения, при этом второй вектор движения является вектором движения текущего блока изображения во втором направлении,
или этап определения второй информации о движении на основе первой информации о движении, в частности, содержит этапы, на которых:
получают значение индекса первого опорного кадра и первый вектор движения, которые находятся в первой информации о движении, при этом первый опорный кадр представляет собой опорный кадр текущего блока изображения в первом направлении, а значение индекса первого опорного кадра является номером первого опорного кадра в первом списке опорных кадров;
получают значение индекса второго опорного кадра и определяют второй предсказанный вектор движения на основе значения индекса второго опорного кадра и второго списка возможных предсказанных векторов движения, при этом второй предсказанный вектор движения является предсказанным вектором движения текущего блока изображения во втором направлении, второй опорный кадр представляет собой опорный кадр текущего блока изображения во втором направлении, а значение индекса второго опорного кадра является номером второго опорного кадра во втором списке опорных кадров;
когда первый опорный кадр является будущим опорным кадром текущего блока изображения, а второй опорный кадр является предыдущим опорным кадром текущего блока изображения, или когда первый опорный кадр является предыдущим опорным кадром текущего блока изображения, а второй опорный кадр является будущим опорным кадром текущего блока изображения, или когда каждый из первого опорного кадра и второго опорного кадра является будущим опорным кадром текущего блока изображения, или когда каждый из первого опорного кадра и второго опорного кадра является предыдущим опорным кадром текущего блока изображения, вычисляют вторую разность векторов движения во второй информации о движении по следующей формуле:
Figure 00000056
,
где
Figure 00000054
представляет вторую разность векторов движения, а
Figure 00000055
представляет первую разность векторов движения; и
определяют второй вектор движения на основе второго предсказанного вектора движения и второй разности векторов движения, при этом второй вектор движения является вектором движения текущего блока изображения во втором направлении.
2. Способ по п. 1, в котором этап получения значения индекса второго опорного кадра, в частности, содержит этапы, на которых:
вычисляют первый порядковый номер на основе порядкового номера текущего кадра и порядкового номера первого опорного кадра в соответствии с формулой
Figure 00000057
, при этом
Figure 00000046
представляет собой порядковый номер текущего кадра,
Figure 00000047
представляет собой порядковый номер первого опорного кадра и
Figure 00000058
представляет собой первый порядковый номер; и,
когда второй список опорных кадров содержит первый порядковый номер, определяют, как значение индекса второго опорного кадра, номер опорного кадра, представленного посредством первого порядкового номера во втором списке опорных кадров.
3. Способ по п. 1, в котором этап получения значения индекса второго опорного кадра, в частности, содержит этапы, на которых:
вычисляют второй порядковый номер на основе порядкового номера текущего кадра и порядкового номера первого опорного кадра в соответствии с формулой
Figure 00000059
, при этом
Figure 00000060
представляет собой второй порядковый номер; и,
когда второй список опорных кадров содержит второй порядковый номер, определяют, как значение индекса второго опорного кадра, номер опорного кадра, представленного посредством второго порядкового номера во втором списке опорных кадров.
4. Способ по п. 1, в котором этап получения значения индекса второго опорного кадра, в частности, содержит этапы, на которых:
вычисляют третий порядковый номер на основе порядкового номера текущего кадра и порядкового номера первого опорного кадра в соответствии с формулой
Figure 00000061
, где
Figure 00000062
представляет собой третий порядковый номер; и
определяют, как значение индекса второго опорного кадра, номер опорного кадра, представленного посредством третьего порядкового номера во втором списке опорных кадров.
5. Способ двунаправленного межкадрового предсказания, содержащий этапы, на которых:
проводят синтаксический анализ битового потока для получения первого идентификатора, при этом первый идентификатор используется для указания того, следует ли определять вторую информацию о движении на основе первой информации о движении, первая информация о движении является информацией о движении текущего блока изображения в первом направлении, а вторая информация о движении - это информация о движении текущего блока изображения во втором направлении; если значение первого идентификатора является первым предварительно заданным значением, то получают первую информацию о движении и определяют вторую информацию о движении на основе первой информации о движении; и определяют сэмплы предсказания текущего блока изображения на основе первой информации о движении и второй информации о движении; или
проводят синтаксический анализ битового потока для получения второго идентификатора, при этом второй идентификатор используется для указания того, следует ли вычислять информацию о движении текущего блока изображения с использованием алгоритма получения информации о движении; если значение второго идентификатора является вторым предварительно заданным значением, то получают третий идентификатор, при этом третий идентификатор используется для указания того, следует ли определять вторую информацию о движении на основе первой информации о движении, первая информация о движении является информацией о движении текущего блока изображения в первом направлении, а вторая информация о движении - это информация о движении текущего блока изображения во втором направлении; если значение третьего идентификатора является третьим предварительно заданным значением, то получают первую информацию о движении и определяют вторую информацию о движении на основе первой информации о движении; и определяют сэмплы предсказания текущего блока изображения на основе первой информации о движении и второй информации о движении; или
проводят синтаксический анализ битового потока для получения второго идентификатора, при этом второй идентификатор используется для указания того, следует ли вычислять информацию о движении текущего блока изображения с использованием алгоритма получения информации о движении; если значение второго идентификатора является вторым предварительно заданным значением, то получают первую информацию о движении и определяют вторую информацию о движении на основе первой информации о движении, при этом первая информация о движении является информацией о движении текущего блока изображения в первом направлении, а вторая информация о движении - это информация о движении текущего блока изображения во втором направлении; и определяют сэмплы предсказания текущего блока изображения на основе первой информации о движении и второй информации о движении; или
проводят синтаксический анализ битового потока для получения четвертого идентификатора, при этом четвертый идентификатор используется для указания того, следует ли вычислять информацию о движении текущего блока изображения с использованием алгоритма получения информации о движении; если значение четвертого идентификатора является четвертым предварительно заданным значением, то определяют значение индекса первого опорного кадра и значение индекса второго опорного кадра на основе первого списка опорных кадров и второго списка опорных кадров, при этом первый список опорных кадров - это список опорных кадров текущего блока изображения в первом направлении, второй список опорных кадров - это список опорных кадров текущего блока изображения во втором направлении, первый опорный кадр является опорным кадром текущего блока изображения в первом направлении, а второй опорный кадр является опорным кадром текущего блока изображения во втором направлении; получают первую разность векторов движения и первую метку предиктора вектора движения и определяют вторую информацию о движении на основе первой информации о движении, при этом первая информации о движении содержит значение индекса первого опорного кадра, первую разность векторов движения и первую метку предиктора векторов движения, а вторая информация о движении является информацией о движении текущего блока изображения во втором направлении; и определяют сэмплы предсказания текущего блока изображения на основе первой информации о движении и второй информации о движении.
6. Устройство двунаправленного межкадрового предсказания, содержащее:
блок получения, выполненный с возможностью получения информации индикации и получения первой информации о движении; и
блок определения, выполненный с возможностью, когда информация индикации используется для указания определения второй информации о движении на основе первой информации о движении, определения второй информации о движении на основе первой информации о движении, полученной посредством блока получения, и определения сэмплов предсказания текущего блока изображения на основе первой информации о движении и второй информации о движении, при этом первая информация о движении представляет собой информацию о движении текущего блока изображения в первом направлении, а вторая информация о движении является информацией о движении текущего блока изображения во втором направлении,
при этом блок определения, в частности, выполнен с возможностью:
получения значения индекса первого опорного кадра в первой информации о движении и определения порядкового номера первого опорного кадра на основе значения индекса первого опорного кадра и первого списка опорных кадров, при этом первый опорный кадр является опорным кадром текущего блока изображения в первом направлении, а значение индекса первого опорного кадра представляет собой номер первого опорного кадра в первом списке опорных кадров;
получения значения индекса второго опорного кадра и определения порядкового номера второго опорного кадра на основе значения индекса второго опорного кадра и второго списка опорных кадров, при этом второй опорный кадр представляет собой опорный кадр текущего блока изображения во втором направлении, а значение индекса второго опорного кадра является номером второго опорного кадра во втором списке опорных кадров;
определения первого вектора движения на основе первой разности векторов движения и первой метки предиктора вектора движения, которые находятся в первой информации о движении, при этом первый вектор движения является вектором движения текущего блока изображения в первом направлении; и
получения второго вектора движения во второй информации о движении по следующей формуле:
Figure 00000044
,
при этом
Figure 00000045
представляет собой второй вектор движения,
Figure 00000046
представляет собой порядковый номер текущего кадра,
Figure 00000047
представляет собой порядковый номер первого опорного кадра,
Figure 00000048
представляет собой порядковый номер второго опорного кадра,
Figure 00000049
представляет собой первый вектор движения и второй вектор движения - это вектор движения текущего блока изображения во втором направлении,
или блок определения, в частности, выполнен с возможностью:
получения значения индекса первого опорного кадра в первой информации о движении, при этом первый опорный кадр представляет собой опорный кадр текущего блока изображения в первом направлении, а значение индекса первого опорного кадра представляет собой номер первого опорного кадра в первом списке опорных кадров;
получения значения индекса второго опорного кадра, при этом второй опорный кадр представляет собой опорный кадр текущего блока изображения во втором направлении, а значение индекса второго опорного кадра является номером второго опорного кадра во втором списке опорных кадров;
определения первого вектора движения на основе первой разности векторов движения и первой метки предиктора вектора движения, которые находятся в первой информации о движении, при этом первый вектор движения является вектором движения текущего блока изображения в первом направлении; и,
когда первый опорный кадр является будущим опорным кадром текущего блока изображения, а второй опорный кадр является предыдущим опорным кадром текущего блока изображения, или когда первый опорный кадр является предыдущим опорным кадром текущего блока изображения, а второй опорный кадр является будущим опорным кадром текущего блока изображения, или когда каждый из первого опорного кадра и второго опорного кадра является будущим опорным кадром текущего блока изображения, или когда каждый из первого опорного кадра и второго опорного кадра является предыдущим опорным кадром текущего блока изображения, вычисления второго вектора движения во второй информации о движении по следующей формуле:
Figure 00000050
,
где
Figure 00000051
представляет второй вектор движения,
Figure 00000052
представляет первый вектор движения и второй вектор движения представляет собой вектор движения текущего блока изображения во втором направлении,
или блок определения, в частности, выполнен с возможностью:
получения значения индекса первого опорного кадра и первой разности векторов движения, которые находятся в первой информации о движении, и определения порядкового номера первого опорного кадра на основе значения индекса первого опорного кадра и первого списка опорных кадров, при этом первый опорный кадр представляет собой опорный кадр текущего блока изображения в первом направлении, а значение индекса первого опорного кадра представляет собой номер первого опорного кадра в первом списке опорных кадров;
получения значения индекса второго опорного кадра, определения порядкового номера второго опорного кадра на основании значения индекса второго опорного кадра и второго списка опорных кадров и определения второго предсказанного вектора движения на основе значения индекса второго опорного кадра и второго списка возможных предсказанных векторов движения, при этом второй предсказанный вектор движения является предсказанным вектором движения текущего блока изображения во втором направлении, второй опорный кадр является опорным кадром текущего блока изображения во втором направлении, а значение индекса второго опорного кадра является номером второго опорного кадра во втором списке опорных кадров;
вычисления второй разности векторов движения во второй информации о движении по следующей формуле:
Figure 00000053
,
при этом
Figure 00000054
представляет собой вторую разность векторов движения,
Figure 00000046
представляет собой порядковый номер текущего кадра,
Figure 00000047
представляет собой порядковый номер первого опорного кадра,
Figure 00000048
представляет собой порядковый номер второго опорного кадра и
Figure 00000055
представляет собой первую разность векторов движения; и
определения второго вектора движения на основе второго предсказанного вектора движения и второй разности векторов движения, при этом второй вектор движения является вектором движения текущего блока изображения во втором направлении,
или блок определения, в частности, выполнен с возможностью:
получения значения индекса первого опорного кадра и первого вектора движения, которые находятся в первой информации о движении, при этом первый опорный кадр представляет собой опорный кадр текущего блока изображения в первом направлении, а значение индекса первого опорного кадра является номером первого опорного кадра в первом списке опорных кадров;
получения значения индекса второго опорного кадра и определения второго предсказанного вектора движения на основе значения индекса второго опорного кадра и второго списка возможных предсказанных векторов движения, при этом второй предсказанный вектор движения является предсказанным вектором движения текущего блока изображения во втором направлении, второй опорный кадр представляет собой опорный кадр текущего блока изображения во втором направлении, а значение индекса второго опорного кадра является номером второго опорного кадра во втором списке опорных кадров;
когда первый опорный кадр является будущим опорным кадром текущего блока изображения, а второй опорный кадр является предыдущим опорным кадром текущего блока изображения, или когда первый опорный кадр является предыдущим опорным кадром текущего блока изображения, а второй опорный кадр является будущим опорным кадром текущего блока изображения, или когда каждый из первого опорного кадра и второго опорного кадра является будущим опорным кадром текущего блока изображения, или когда каждый из первого опорного кадра и второго опорного кадра является предыдущим опорным кадром текущего блока изображения, вычисления второй разности векторов движения во второй информации о движении в соответствии со следующей формулой:
Figure 00000056
,
где
Figure 00000054
представляет вторую разность векторов движения, а
Figure 00000055
представляет первую разность векторов движения; и
определения второго вектора движения на основе второго предсказанного вектора движения и второй разности векторов движения, при этом второй вектор движения является вектором движения текущего блока изображения во втором направлении.
7. Устройство по п. 6, в котором блок получения, в частности, выполнен с возможностью:
вычисления первого порядкового номера на основе порядкового номера текущего кадра и порядкового номера первого опорного кадра в соответствии с формулой
Figure 00000057
, при этом
Figure 00000046
представляет собой порядковый номер текущего кадра,
Figure 00000047
представляет собой порядковый номер первого опорного кадра и
Figure 00000058
представляет собой первый порядковый номер; и,
когда второй список опорных кадров содержит первый порядковый номер, определения, как значения индекса второго опорного кадра, номера опорного кадра, представленного посредством первого порядкового номера во втором списке опорных кадров.
8. Устройство по п. 6, в котором блок получения, в частности, выполнен с возможностью:
вычисления второго порядкового номера на основе порядкового номера текущего кадра и порядкового номера первого опорного кадра в соответствии с формулой
Figure 00000059
, при этом
Figure 00000060
представляет собой второй порядковый номер; и,
когда второй список опорных кадров содержит второй порядковый номер, определения, как значения индекса второго опорного кадра, номера опорного кадра, представленного посредством второго порядкового номера во втором списке опорных кадров.
9. Устройство по п. 6, в котором блок получения, в частности, выполнен с возможностью:
вычисления третьего порядкового номера на основе порядкового номера текущего кадра и порядкового номера первого опорного кадра в соответствии с формулой
Figure 00000061
, где
Figure 00000062
представляет собой третий порядковый номер; и
определения, как значения индекса второго опорного кадра, номера опорного кадра, представленного посредством третьего порядкового номера во втором списке опорных кадров.
10. Устройство двунаправленного межкадрового предсказания, содержащее:
блок получения, выполненный с возможностью проведения синтаксического анализа битового потока для получения первого идентификатора, при этом первый идентификатор используется для указания того, следует ли определять вторую информацию о движении на основе первой информации о движении, первая информация о движении является информацией о движении текущего блока изображения в первом направлении, а вторая информация о движении - это информация о движении текущего блока изображения во втором направлении; и, если значение первого идентификатора является первым предварительно заданным значением, получения первой информации о движении; и блок определения, выполненный с возможностью определения второй информации о движении на основе первой информации о движении, полученной посредством блока получения, и определения сэмплов предсказания текущего блока изображения на основе первой информации о движении и второй информации о движении; или
блок получения, выполненный с возможностью проведения синтаксического анализа битового потока для получения второго идентификатора, при этом второй идентификатор используется для указания того, следует ли вычислять информацию о движении текущего блока изображения с использованием алгоритма получения информации о движении; если значение второго идентификатора является вторым предварительно заданным значением, получения третьего идентификатора, при этом третий идентификатор используется для указания того, следует ли определять вторую информацию о движении на основе первой информации о движении, первая информация о движении является информацией о движении текущего блока изображения в первом направлении, а вторая информация о движении представляет собой информацию о движении текущего блока изображения во втором направлении; и, если значение третьего идентификатора является третьим предварительно заданным значением, получения первой информации о движении; и блок определения, выполненный с возможностью определения второй информации о движении на основе первой информации о движении, полученной посредством блока получения, и определения сэмплов предсказания текущего блока изображения на основе первой информации о движении и второй информации о движении; или
блок получения, выполненный с возможностью проведения синтаксического анализа битового потока для получения второго идентификатора, при этом второй идентификатор используется для указания того, следует ли вычислять информацию о движении текущего блока изображения с использованием алгоритма получения информации о движении; и, если значение второго идентификатора является вторым предварительно заданным значением, получения первой информации о движении; и блок определения, выполненный с возможностью определения второй информации о движении на основе первой информации о движении, полученной посредством блока получения, при этом первая информация о движении является информацией о движении текущего блока изображения в первом направлении, а вторая информация о движении - это информация о движении текущего блока изображения во втором направлении; и определения сэмплов предсказания текущего блока изображения на основе первой информации о движении и второй информации о движении; или
блок получения, выполненный с возможностью проведения синтаксического анализа битового потока для получения четвертого идентификатора, при этом четвертый идентификатор используется для указания того, следует ли вычислять информацию о движении текущего блока изображения с использованием алгоритма получения информации о движении; и блок определения, выполненный с возможностью, если значение четвертого идентификатора, полученного посредством блока получения, является четвертым предварительно заданным значением, определения значения индекса первого опорного кадра и значения индекса второго опорного кадра на основе первого списка опорных кадров и второго списка опорных кадров, при этом первый список опорных кадров является списком опорных кадров текущего блока изображения в первом направлении, второй список опорных кадров является списком опорных кадров текущего блока изображения во втором направлении, первый опорный кадр является опорным кадром текущего блока изображения в первом направлении, второй опорный кадр является опорным кадром текущего блока изображения во втором направлении, блок получения дополнительно выполнен с возможностью получения первой разности векторов движения и первой метки предиктора вектора движения, а блок определения дополнительно выполнен с возможностью определения второй информации о движении на основе первой информации о движении, при этом первая информация о движении содержит значение индекса первого опорного кадра, первую разность векторов движения и первую метку предиктора вектора движения, а вторая информация о движении является информацией о движении текущего блока изображения во втором направлении; и определения сэмплов предсказания текущего блока изображения на основе первой информации о движении и второй информации о движении.
11. Терминал, при этом терминал содержит один или несколько процессоров, память и интерфейс связи; и
память и интерфейс связи соединены с одним или несколькими процессорами, терминал связывается с другим устройством через интерфейс связи, память выполнена с возможностью хранения компьютерного программного кода, компьютерный программный код содержит инструкцию и, когда один или несколько процессоров выполняют инструкцию, терминал выполняет способ двунаправленного межкадрового предсказания согласно любому из пп. 1-4 или выполняет способ двунаправленного межкадрового предсказания согласно п. 5.
12. Считываемый компьютером носитель данных, содержащий инструкцию, причем, когда инструкция выполняется на терминале, терминал имеет возможность выполнять способ двунаправленного межкадрового предсказания согласно любому из пп. 1-4 или выполнять способ двунаправленного межкадрового предсказания согласно п. 5.
13. Видеодекодер, содержащий энергонезависимый носитель данных и центральный процессор, при этом энергонезависимый носитель данных хранит исполняемую программу, центральный процессор соединен с энергонезависимым носителем данных и, когда центральный процессор выполняет исполняемую программу, видеодекодер выполняет способ двунаправленного межкадрового предсказания согласно любому из пп. 1-4 или выполняет способ двунаправленного межкадрового предсказания согласно п. 5.
14. Декодер, причем декодер содержит устройство двунаправленного межкадрового предсказания по любому из пп. 6-9 и модуль восстановления, при этом модуль восстановления выполнен с возможностью определения восстановленных значений сэмплов текущего блока изображения на основе сэмплов предсказания, полученных посредством устройства двунаправленного межкадрового предсказания; или декодер содержит устройство двунаправленного межкадрового предсказания по п. 10 и модуль восстановления, при этом модуль восстановления выполнен с возможностью определения восстановленных значений сэмплов текущего блока изображения на основе сэмплов предсказания, полученных посредством устройства двунаправленного межкадрового предсказания.
15. Способ получения информации о движении, причем способ применяется к двунаправленному межкадровому предсказанию, и способ содержит этапы, на которых:
получают первый идентификатор;
когда значение первого идентификатора является первым предварительно заданным значением, определяют вторую разность векторов движения текущего блока изображения на основе первой разности векторов движения текущего блока изображения, при этом первую разность векторов движения получают посредством синтаксического анализа битового потока, при этом первая разность векторов движения принадлежит информации о движении текущего блока изображения в первом направлении, а вторая разность векторов движения принадлежит информации о движении текущего блока изображения во втором направлении,
при этом этап определения второй разности векторов движения текущего блока изображения на основе первой разности векторов движения текущего блока изображения содержит этап, на котором:
получают вторую разность векторов движения по следующей формуле:
Figure 00000056
,
где
Figure 00000054
представляет вторую разность векторов движения, а
Figure 00000055
представляет первую разность векторов движения.
16. Способ по п. 15, при этом способ дополнительно содержит этапы, на которых:
получают первый предсказанный вектор движения и второй предсказанный вектор движения;
определяют первый вектор движения на основе первого предсказанного вектора движения и первой разности векторов движения;
определяют второй вектор движения на основе второго предсказанного вектора движения и второй разности векторов движения; и
определяют сэмплы предсказания текущего блока изображения на основе первого вектора движения и второго вектора движения;
причем первый предсказанный вектор движения и первый вектор движения соответствуют первому направлению, а второй предсказанный вектор движения и второй вектор движения соответствуют второму направлению.
17. Способ по п. 16, в котором текущий блок изображения содержит первый список опорных кадров в первом направлении и второй список опорных кадров во втором направлении, а также этап определения сэмплов предсказания текущего блока изображения на основе первого вектора движения и второго вектора движения содержит этапы, на которых:
определяют первый опорный блок изображения на основе первого вектора движения и первого списка опорных кадров;
определяют второй опорный блок изображения на основе второго вектора движения и второго списка опорных кадров; и
определяют сэмплы предсказания текущего блока изображения на основе первого опорного блока изображения и второго опорного блока изображения.
18. Способ по любому из пп. 15-17, в котором перед этапом получения первого идентификатора способ дополнительно содержит этап, на котором определяют, что порядковый номер текущего кадра, в котором расположен текущий блок изображения, удовлетворяет предварительно заданному условию, при этом предварительно заданное условие содержит условие, что порядковый номер текущего кадра находится между порядковым номером первого опорного кадра и порядковым номером второго опорного кадра, первый опорный кадр принадлежит первому списку опорных кадров, а второй опорный кадр принадлежит второму списку опорных кадров.
19. Способ по любому из пп. 15-18, причем способ дополнительно содержит этап, на котором,
когда значение первого идентификатора является вторым предварительно заданным значением, проводят синтаксический анализ битового потока для получения второго вектора движения.
20. Способ по п. 19, в котором перед этапом получения первого идентификатора способ дополнительно содержит этап, на котором: определяют, что порядковый номер текущего кадра, в котором расположен текущий блок изображения, не удовлетворяет предварительно заданному условию, причем предварительно заданное условие содержит условие, что порядковый номер текущего кадра находится между порядковым номером первого опорного кадра и порядковым номером второго опорного кадра, первый опорный кадр принадлежит первому списку опорных кадров, а второй опорный кадр принадлежит второму списку опорных кадров.
21. Устройство получения информации о движении, содержащее:
блок получения, выполненный с возможностью получения первого идентификатора; и
блок определения, выполненный с возможностью, когда значение первого идентификатора является первым предварительно заданным значением, определения второй разности векторов движения текущего блока изображения на основе первой разности векторов движения текущего блока изображения, при этом первая разность векторов движения получена посредством синтаксического анализа битового потока, при этом первая разность векторов движения принадлежит информации о движении текущего блока изображения в первом направлении, а вторая разность векторов движения принадлежит информации о движении текущего блока изображения во втором направлении,
при этом блок определения, в частности, выполнен с возможностью получения второй разности векторов движения согласно следующей формуле:
Figure 00000056
,
где
Figure 00000054
представляет вторую разность векторов движения, а
Figure 00000055
представляет первую разность векторов движения.
22. Устройство по п. 21, в котором блок получения, в частности, выполнен с возможностью получения первого предсказанного вектора движения и второго предсказанного вектора движения; и блок определения, в частности, выполнен с возможностью определения первого вектора движения на основе первого предсказанного вектора движения и первой разности векторов движения, определения второго вектора движения на основе второго предсказанного вектора движения и второй разности векторов движения и определения сэмплов предсказания текущего блока изображения на основе первого вектора движения и второго вектора движения, причем первый предсказанный вектор движения и первый вектор движения соответствуют первому направлению, а второй предсказанный вектор движения и второй вектор движения соответствуют второму направлению.
23. Устройство по п. 22, в котором текущий блок изображения содержит первый список опорных кадров в первом направлении и второй список опорных кадров во втором направлении; блок определения, в частности, выполнен с возможностью определения первого опорного блока изображения на основе первого вектора движения и первого списка опорных кадров, определения второго опорного блока изображения на основе второго вектора движения и второго списка опорных кадров и определения сэмплов предсказания текущего блока изображения на основе первого опорного блока изображения и второго опорного блока изображения.
24. Устройство по любому из пп. 21-23, в котором блок получения дополнительно, в частности, выполнен с возможностью перед получением первого идентификатора определения того, что порядковый номер текущего кадра, в котором расположен текущий блок изображения, удовлетворяет предварительно заданному условию, при этом предварительно заданное условие содержит условие, что порядковый номер текущего кадра находится между порядковым номером первого опорного кадра и порядковым номером второго опорного кадра, первый опорный кадр принадлежит первому списку опорных кадров и второй опорный кадр принадлежит второму списку опорных кадров.
25. Способ кодирования, причем способ применяется к двунаправленному межкадровому предсказанию, и способ содержит этапы, на которых:
определяют первую разность векторов движения текущего блока изображения; и
кодируют первый идентификатор и первую разность векторов движения в битовый поток при условии, что вторая разность векторов движения текущего блока изображения может быть определена на основе первой разности векторов движения, при этом значение первого идентификатора является первым предварительно заданным значением, при этом первая разность векторов движения принадлежит информации о движении текущего блока изображения в первом направлении, а вторая разность векторов движения принадлежит информации о движении текущего блока изображения во втором направлении, при этом вторая разность векторов движения текущего блока изображения может быть определена на основе первой разности векторов движения, содержит этап, на котором получают вторую разность векторов движения согласно следующей формуле:
Figure 00000063
,
причем
Figure 00000054
представляет вторую разность векторов движения, а
Figure 00000055
представляет первую разность векторов движения.
26. Способ по п. 25, в котором этап получения первой разности векторов движения текущего блока изображения содержит этапы, на которых:
определяют первый вектор движения и получают первый предсказанный вектор движения; и
определяют первую разность векторов движения на основе первого вектора движения и первого предсказанного вектора движения.
27. Способ по п. 26, причем способ дополнительно содержит этапы, на которых:
получают второй предсказанный вектор движения;
определяют второй вектор движения на основе второго предсказанного вектора движения и второй разности векторов движения; и
определяют сэмплы предсказания текущего блока изображения на основе первого вектора движения и второго вектора движения;
при этом первый предсказанный вектор движения и первый вектор движения соответствуют первому направлению, а второй предсказанный вектор движения и второй вектор движения соответствуют второму направлению.
28. Способ по п. 27, в котором текущий блок изображения содержит первый список опорных кадров в первом направлении и второй список опорных кадров во втором направлении, а этап определения сэмплов предсказания текущего блока изображения на основе первого вектора движения и второго вектора движения содержит этапы, на которых:
определяют первый опорный блок изображения на основе первого вектора движения и первого списка опорных кадров;
определяют второй опорный блок изображения на основе второго вектора движения и второго списка опорных кадров; и
определяют сэмплы предсказания текущего блока изображения на основе первого опорного блока изображения и второго опорного блока изображения.
29. Способ по любому из пп. 25-28, в котором перед этапом кодирования первого идентификатора в битовый поток способ дополнительно содержит этап, на котором: определяют, что порядковый номер текущего кадра, в котором расположен текущий блок изображения, удовлетворяет предварительно заданному условию, при этом предварительно заданное условие содержит условие, что порядковый номер текущего кадра находится между порядковым номером первого опорного кадра и порядковым номером второго опорного кадра, первый опорный кадр принадлежит первому списку опорных кадров и второй опорный кадр принадлежит второму списку опорных кадров.
30. Способ по любому из пп. 25-29, содержащий этап, на котором, когда значение первого идентификатора равно второму предварительно заданному значению, определяют вторую разность векторов движения текущего блока изображения и кодируют вторую разность векторов движения в битовый поток.
31. Способ по любому из пп. 25-28, в котором перед этапом кодирования первого идентификатора в битовый поток способ дополнительно содержит этап, на котором определяют, что порядковый номер текущего кадра, в котором расположен текущий блок изображения, не удовлетворяет предварительно заданному условию, при этом предварительно заданное условие содержит условие, что порядковый номер текущего кадра находится между порядковым номером первого опорного кадра и порядковым номером второго опорного кадра, первый опорный кадр принадлежит первому списку опорных кадров и второй опорный кадр принадлежит второму списку опорных кадров.
32. Устройство кодирования, содержащее:
блок получения, выполненный с возможностью определения первой разности векторов движения текущего блока изображения; и
блок кодирования, выполненный с возможностью кодирования первого идентификатора и первой разности векторов движения в битовый поток при условии, что вторая разность векторов движения текущего блока изображения может быть определена на основе первой разности векторов движения, при этом значение первого идентификатора является первым предварительно заданным значением, при этом первая разность векторов движения принадлежит информации о движении текущего блока изображения в первом направлении, а вторая разность векторов движения принадлежит информации о движении текущего блока изображения во втором направлении,
при этом вторая разность векторов движения определяется согласно следующей формуле:
Figure 00000056
,
причем
Figure 00000054
представляет вторую разность векторов движения, а
Figure 00000055
представляет первую разность векторов движения.
33. Устройство по п. 32, в котором блок получения, в частности, выполнен с возможностью:
определения первого вектора движения и получения первого предсказанного вектора движения; и
определения первой разности векторов движения на основе первого вектора движения и первого предсказанного вектора движения.
34. Устройство по п. 33, в котором блок получения дополнительно выполнен с возможностью получения второго предсказанного вектора движения и определения второго вектора движения на основе второго предсказанного вектора движения и второй разности векторов движения; и
устройство дополнительно содержит блок предсказания, выполненный с возможностью определения сэмплов предсказания текущего блока изображения на основе первого вектора движения и второго вектора движения;
при этом первый предсказанный вектор движения и первый вектор движения соответствуют первому направлению, а второй предсказанный вектор движения и второй вектор движения соответствуют второму направлению.
35. Устройство по п. 34, в котором текущий блок изображения содержит первый список опорных кадров в первом направлении и второй список опорных кадров во втором направлении, а блок предсказания, в частности, выполнен с возможностью:
определения первого опорного блока изображения на основе первого вектора движения и первого списка опорных кадров;
определения второго опорного блока изображения на основе второго вектора движения и второго списка опорных кадров; и
определения сэмплов предсказания текущего блока изображения на основе первого опорного блока изображения и второго опорного блока изображения.
36. Устройство по любому из пп. 32-35, причем устройство содержит блок оценки, выполненный с возможностью, до того как блок кодирования закодирует первый идентификатор в битовый поток, определения того, что порядковый номер текущего кадра, в котором расположен текущий блок изображения, удовлетворяет предварительно заданному условию, при этом предварительно заданное условие содержит условие, что порядковый номер текущего кадра находится между порядковым номером первого опорного кадра и порядковым номером второго опорного кадра, первый опорный кадр принадлежит первому списку опорных кадров и второй опорный кадр принадлежит второму списку опорных кадров.
37. Устройство по любому из пп. 32-36, в котором блок получения дополнительно выполнен с возможностью, когда значение первого идентификатора равно второму предварительно заданному значению, определения второй разности векторов движения текущего блока изображения и кодирования второй разности векторов движения в битовый поток.
38. Устройство по любому из пп. 32-35, причем устройство содержит блок оценки, выполненный с возможностью, до того как блок кодирования закодирует первый идентификатор в битовый поток, определения того, что порядковый номер текущего кадра, в котором расположен текущий блок изображения, не удовлетворяет предварительно заданному условию, при этом предварительно заданное условие содержит условие, что порядковый номер текущего кадра находится между порядковым номером первого опорного кадра и порядковым номером второго опорного кадра, первый опорный кадр принадлежит первому списку опорных кадров и второй опорный кадр принадлежит второму списку опорных кадров.
39. Носитель данных, причем носитель данных содержит битовый поток, сформированный с использованием способа кодирования по любому из пп. 25-31, или битовый поток, полученный посредством декодирования с использованием способа декодирования по любому из пп. 15-20.
40. Устройство обработки изображений, содержащее процессор, память, интерфейс связи и шину, причем процессор соединен с памятью и интерфейсом связи с использованием шины;
память выполнена с возможностью хранения инструкции; и
процессор выполнен с возможностью выполнения инструкции и, когда процессор выполняет инструкцию, хранимую в памяти, процессор имеет возможность выполнять способ кодирования согласно любому из пп. 25-31 или способ декодирования согласно любому из пп. 15-20.
RU2020134970A 2018-03-29 2019-01-11 Способ и устройство двунаправленного межкадрового предсказания RU2762262C1 (ru)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201810274457.X 2018-03-29
CN201810274457.XA CN110324637B (zh) 2018-03-29 2018-03-29 一种双向帧间预测方法及装置
PCT/CN2019/071471 WO2019184556A1 (zh) 2018-03-29 2019-01-11 一种双向帧间预测方法及装置

Publications (1)

Publication Number Publication Date
RU2762262C1 true RU2762262C1 (ru) 2021-12-17

Family

ID=68062196

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2020134970A RU2762262C1 (ru) 2018-03-29 2019-01-11 Способ и устройство двунаправленного межкадрового предсказания

Country Status (14)

Country Link
US (4) US11350122B2 (ru)
EP (1) EP3771211B1 (ru)
JP (3) JP7143435B2 (ru)
KR (2) KR102622150B1 (ru)
CN (6) CN117560505A (ru)
AU (1) AU2019240981B2 (ru)
BR (1) BR112020018923A2 (ru)
CA (1) CA3095220C (ru)
MX (1) MX2020010174A (ru)
PH (1) PH12020551544A1 (ru)
RU (1) RU2762262C1 (ru)
SG (1) SG11202009509VA (ru)
WO (1) WO2019184556A1 (ru)
ZA (1) ZA202006408B (ru)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117560505A (zh) * 2018-03-29 2024-02-13 华为技术有限公司 一种双向帧间预测方法及装置
CN113873249B (zh) * 2020-06-30 2023-02-28 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN114071159B (zh) * 2020-07-29 2023-06-30 Oppo广东移动通信有限公司 帧间预测方法、编码器、解码器及计算机可读存储介质
CN116320428A (zh) * 2021-12-20 2023-06-23 维沃移动通信有限公司 帧间预测方法及终端

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070110156A1 (en) * 2003-09-12 2007-05-17 Xiangyang Ji Bi-directional predicting method for video coding/decoding
RU2319317C1 (ru) * 2002-10-04 2008-03-10 Эл Джи Электроникс Инк. Способ определения векторов движения в режиме прямого предсказания для в-кадра
US20120027089A1 (en) * 2010-07-28 2012-02-02 Qualcomm Incorporated Coding motion vectors in video coding
US20120230392A1 (en) * 2011-03-08 2012-09-13 Qualcomm Incorporated MOTION VECTOR PREDICTORS (MVPs) FOR BI-PREDICTIVE INTER MODE IN VIDEO CODING
US20160301947A1 (en) * 2013-12-16 2016-10-13 Samsung Electronics Co., Ltd. Method and device for forward multiple-hypothesis encoding/decoding of image block
WO2017188509A1 (ko) * 2016-04-28 2017-11-02 엘지전자(주) 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8917769B2 (en) 2009-07-03 2014-12-23 Intel Corporation Methods and systems to estimate motion based on reconstructed reference frames at a video decoder
KR20110071047A (ko) * 2009-12-20 2011-06-28 엘지전자 주식회사 비디오 신호 디코딩 방법 및 장치
CN102835111B (zh) 2010-01-19 2015-08-12 三星电子株式会社 使用先前块的运动矢量作为当前块的运动矢量来对图像进行编码/解码的方法和设备
JP5281597B2 (ja) * 2010-02-04 2013-09-04 日本電信電話株式会社 動きベクトル予測方法,動きベクトル予測装置および動きベクトル予測プログラム
WO2011142815A1 (en) * 2010-05-12 2011-11-17 Thomson Licensing Methods and apparatus for uni-prediction of self-derivation of motion estimation
KR101873767B1 (ko) * 2010-05-26 2018-07-03 엘지전자 주식회사 비디오 신호의 처리 방법 및 장치
KR102285746B1 (ko) * 2011-02-09 2021-08-04 엘지전자 주식회사 움직임 정보 저장 방법 및 이를 이용한 시간적 움직임 벡터 예측자 유도 방법
KR20140034292A (ko) 2011-07-01 2014-03-19 모토로라 모빌리티 엘엘씨 움직임 벡터 예측 설계 간소화
CN104081779B (zh) * 2011-10-28 2017-09-05 三星电子株式会社 用于帧间预测的方法及其装置和用于运动补偿的方法及其装置
JP2013106312A (ja) * 2011-11-16 2013-05-30 Jvc Kenwood Corp 画像符号化装置、画像符号化方法及び画像符号化プログラム
CN103188490A (zh) * 2011-12-29 2013-07-03 朱洪波 视频编码中的合并补偿模式
WO2013109124A1 (ko) 2012-01-19 2013-07-25 삼성전자 주식회사 쌍방향 예측 및 블록 병합을 제한하는 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
MX340383B (es) 2012-04-15 2016-07-07 Samsung Electronics Co Ltd Metodo y aparato para determinar imagenes de referencia para inter-prediccion.
TW201701670A (zh) 2012-07-02 2017-01-01 三星電子股份有限公司 視訊解碼裝置
JP6120707B2 (ja) * 2013-07-08 2017-04-26 ルネサスエレクトロニクス株式会社 動画像符号化装置およびその動作方法
CN104427345B (zh) * 2013-09-11 2019-01-08 华为技术有限公司 运动矢量的获取方法、获取装置、视频编解码器及其方法
GB2524476B (en) 2014-03-14 2016-04-27 Canon Kk Method, device and computer program for optimizing transmission of motion vector related information when transmitting a video stream
KR101908249B1 (ko) 2014-11-18 2018-10-15 미디어텍 인크. 단방향 예측 및 병합 후보로부터의 모션 벡터에 기초한 양방향 예측 비디오 코딩 방법
US11330284B2 (en) 2015-03-27 2022-05-10 Qualcomm Incorporated Deriving motion information for sub-blocks in video coding
CN112929660B (zh) * 2015-10-13 2023-12-26 三星电子株式会社 用于对图像进行编码或解码的方法和设备
CN116567260A (zh) 2016-05-24 2023-08-08 韩国电子通信研究院 图像编码/解码方法和用于所述方法的记录介质
US10462462B2 (en) * 2016-09-29 2019-10-29 Qualcomm Incorporated Motion vector difference coding technique for video coding
US12063387B2 (en) * 2017-01-05 2024-08-13 Hfi Innovation Inc. Decoder-side motion vector restoration for video coding
US10595035B2 (en) * 2017-03-22 2020-03-17 Qualcomm Incorporated Constraining motion vector information derived by decoder-side motion vector derivation
CN117560505A (zh) * 2018-03-29 2024-02-13 华为技术有限公司 一种双向帧间预测方法及装置
CN110809165B (zh) * 2018-08-04 2022-07-26 北京字节跳动网络技术有限公司 仿射的运动矢量差精度
KR102662874B1 (ko) * 2019-04-28 2024-05-07 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 대칭 모션 벡터 차이 코딩

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2319317C1 (ru) * 2002-10-04 2008-03-10 Эл Джи Электроникс Инк. Способ определения векторов движения в режиме прямого предсказания для в-кадра
US20070110156A1 (en) * 2003-09-12 2007-05-17 Xiangyang Ji Bi-directional predicting method for video coding/decoding
US20120027089A1 (en) * 2010-07-28 2012-02-02 Qualcomm Incorporated Coding motion vectors in video coding
US20120230392A1 (en) * 2011-03-08 2012-09-13 Qualcomm Incorporated MOTION VECTOR PREDICTORS (MVPs) FOR BI-PREDICTIVE INTER MODE IN VIDEO CODING
US20160301947A1 (en) * 2013-12-16 2016-10-13 Samsung Electronics Co., Ltd. Method and device for forward multiple-hypothesis encoding/decoding of image block
WO2017188509A1 (ko) * 2016-04-28 2017-11-02 엘지전자(주) 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치

Also Published As

Publication number Publication date
US20220286703A1 (en) 2022-09-08
US20210021853A1 (en) 2021-01-21
US11350122B2 (en) 2022-05-31
SG11202009509VA (en) 2020-10-29
CN112040244A (zh) 2020-12-04
US20220256184A1 (en) 2022-08-11
WO2019184556A1 (zh) 2019-10-03
US20240171765A1 (en) 2024-05-23
ZA202006408B (en) 2022-09-28
BR112020018923A2 (pt) 2020-12-29
CN117560506A (zh) 2024-02-13
EP3771211B1 (en) 2024-10-23
CN110324637A (zh) 2019-10-11
KR20200131317A (ko) 2020-11-23
EP3771211A1 (en) 2021-01-27
CN117528116A (zh) 2024-02-06
CN110324637B (zh) 2023-11-17
PH12020551544A1 (en) 2021-06-07
AU2019240981A1 (en) 2020-10-15
AU2019240981B2 (en) 2023-02-02
MX2020010174A (es) 2020-10-28
US11924458B2 (en) 2024-03-05
JP2024149497A (ja) 2024-10-18
JP7143435B2 (ja) 2022-09-28
KR102622150B1 (ko) 2024-01-05
CN113315975B (zh) 2022-12-06
CA3095220A1 (en) 2019-10-03
CN112040244B (zh) 2021-06-29
CN117560505A (zh) 2024-02-13
KR102525178B1 (ko) 2023-04-21
JP2022179516A (ja) 2022-12-02
KR20230054916A (ko) 2023-04-25
US11838535B2 (en) 2023-12-05
EP3771211A4 (en) 2021-05-05
JP2021519548A (ja) 2021-08-10
CN113315975A (zh) 2021-08-27
JP7520931B2 (ja) 2024-07-23
CA3095220C (en) 2023-12-12

Similar Documents

Publication Publication Date Title
JP7148612B2 (ja) ビデオデータインター予測の方法、装置、ビデオエンコーダ、ビデオデコーダ及びプログラム
RU2762262C1 (ru) Способ и устройство двунаправленного межкадрового предсказания
US11659161B2 (en) Reference frame obtaining method and apparatus applied to bidirectional inter prediction
US20230239494A1 (en) Video encoder, video decoder, and corresponding method
RU2795934C2 (ru) Способ и устройство двунаправленного интер-предсказания
RU2818520C2 (ru) Способ и устройство двунаправленного интер-предсказания