RU2798316C2 - Method and equipment for external prediction - Google Patents

Method and equipment for external prediction Download PDF

Info

Publication number
RU2798316C2
RU2798316C2 RU2021112624A RU2021112624A RU2798316C2 RU 2798316 C2 RU2798316 C2 RU 2798316C2 RU 2021112624 A RU2021112624 A RU 2021112624A RU 2021112624 A RU2021112624 A RU 2021112624A RU 2798316 C2 RU2798316 C2 RU 2798316C2
Authority
RU
Russia
Prior art keywords
block
candidates
merge candidate
candidate list
list
Prior art date
Application number
RU2021112624A
Other languages
Russian (ru)
Other versions
RU2021112624A (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 Хуавэй Текнолоджиз Ко., Лтд.
Publication of RU2021112624A publication Critical patent/RU2021112624A/en
Application granted granted Critical
Publication of RU2798316C2 publication Critical patent/RU2798316C2/en

Links

Images

Abstract

FIELD: video encoding and decoding.
SUBSTANCE: result is achieved by creating a list of candidates for merging the current image block; adding motion information of history-based motion vector predictor (HMVP) candidates to the merge candidate list in case the amount of motion information of candidates in the merge candidate list is less than the maximum number of candidates in the merge candidate list minus N, where N is a positive integer; getting a merge index of the current image block; obtaining motion information of the current image block based on the merge candidate list and the merge index; and determining a predicted block of the current image block based on the motion information of the current image block.
EFFECT: increasing the accuracy of predicting motion information of an image block, which increases performance of encoding and decoding.
11 cl, 12 dwg, 1 tbl

Description

Перекрестная ссылка на родственные заявкиCross-reference to related applications

[0001] Эта заявка испрашивает приоритет предварительной заявки США №. 62/744,106, поданной 10 октября 2018 г., раскрытие которой включено в настоящий документ посредством ссылки.[0001] This application claims the priority of US provisional application no. 62/744,106, filed October 10, 2018, the disclosure of which is hereby incorporated by reference.

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

[0002] Настоящее раскрытие относится к области кодирования и декодирования видео и, в частности, к способу и аппаратуре внешнего предсказания для изображения видео, а также к соответствующему кодеру и декодеру.[0002] The present disclosure relates to the field of video encoding and decoding and, in particular, to an inter prediction method and apparatus for a video image, as well as to a corresponding encoder and decoder.

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

[0003] Возможности цифрового видео могут быть включены в широкое разнообразие аппаратур, в том числе цифровые телевизоры, системы цифрового прямого вещания, системы беспроводного вещания, персональные цифровые помощники (PDA), портативные или настольные компьютеры, планшетные компьютеры, устройства для чтения электронных книг, цифровые камеры, цифровые записывающие аппаратуры, цифровые медиаплееры, аппаратуры для видеоигр, игровые приставки, сотовые или спутниковые радиотелефоны (так называемые «смартфоны»), аппаратуры для видеоконференцсвязи, аппаратуры для потоковой передачи видео и т.п. Цифровые видеоаппаратуру реализуют технологии сжатия видео, например технологии сжатия видео, описанные в стандартах, определенных стандартами MPEG-2, MPEG-4, ITU-T H.263 и ITU-T H.264/MPEG-4 Part 10, стандартом улучшенного кодирования видео (AVC), стандартом кодирования видео H.265/ стандартом высокоэффективного кодирования видео (HEVC) и расширениями таких стандартов. Видеоаппаратура может передавать, принимать, кодировать, декодировать и/или хранить цифровую видеоинформацию более эффективно за счет реализации таких технологий сжатия видео.[0003] Digital video capabilities can be incorporated into a wide variety of equipment, including digital televisions, digital live broadcast systems, wireless broadcast systems, personal digital assistants (PDAs), laptop or desktop computers, tablet computers, e-book readers, digital cameras, digital recording equipment, digital media players, video game equipment, game consoles, cellular or satellite radio telephones (so-called "smartphones"), video conferencing equipment, video streaming equipment, and the like. Digital video equipment implements video compression technologies, such as the video compression technologies described in the standards defined by MPEG-2, MPEG-4, ITU-T H.263 and ITU-T H.264/MPEG-4 Part 10, Advanced Video Coding Standard (AVC), the H.265 video coding standard/High Efficiency Video Coding (HEVC) standard, and extensions to such standards. Video equipment can transmit, receive, encode, decode and/or store digital video information more efficiently by implementing such video compression technologies.

[0004] В технологиях сжатия видео выполняется пространственное (внутри изображения) предсказание и/или временное предсказание (между изображениями) для уменьшения или удаления внутренней избыточности в видеопоследовательностях. Для блочного кодирования видео слайс видео (то есть видеокадр или часть видеокадра) может быть разделен на блоки изображения, и блок изображения также может называться древовидным блоком, единицей кодирования (CU) и/или узлом кодирования. Блок изображения в подлежащем внутреннему кодированию (I) слайсе изображения кодируется посредством пространственного предсказания опорных выборок в соседних блоках в одном и том же изображении. Для блока изображения в слайсе изображения, подлежащего межкадровому кодированию (P или B), может использоваться пространственное предсказание опорных выборок в соседних блоках в одном и том же изображении или временное предсказание опорных выборок в других опорных изображениях. Изображение может упоминаться как кадр, и опорное изображение может упоминаться в качестве опорного кадра.[0004] Video compression techniques perform spatial (intra-image) prediction and/or temporal (inter-image) prediction to reduce or remove intrinsic redundancy in video sequences. For block video coding, a video slice (ie, a video frame or part of a video frame) may be divided into image blocks, and an image block may also be referred to as a tree block, a coding unit (CU), and/or a coding node. An image block in an intra-coded (I) image slice is encoded by spatial prediction of reference samples in adjacent blocks in the same image. For a picture block in a picture slice to be inter-coded (P or B), spatial prediction of reference samples in neighboring blocks in the same picture or temporal prediction of reference samples in other reference pictures may be used. An image may be referred to as a frame, and a reference image may be referred to as a reference frame.

Сущность изобретенияThe essence of the invention

[0005] Различные варианты осуществления и аспекты раскрытий будут описаны со ссылкой на подробности, обсуждаемые ниже, а сопроводительные чертежи будут иллюстрировать различные варианты осуществления. Следующее ниже описание и чертежи иллюстрируют раскрытие и не должны рассматриваться как ограничение раскрытия. Описаны многочисленные конкретные детали, чтобы обеспечить полное понимание различных вариантов осуществления настоящего раскрытия. Однако в некоторых случаях хорошо известные или общепринятые подробности не описываются, чтобы обеспечить краткое обсуждение вариантов осуществления настоящего раскрытия.[0005] Various embodiments and aspects of the disclosures will be described with reference to the details discussed below, and the accompanying drawings will illustrate various embodiments. The following description and drawings illustrate the disclosure and should not be construed as limiting the disclosure. Numerous specific details are described to provide a thorough understanding of the various embodiments of the present disclosure. However, in some cases, well-known or conventional details are not described in order to provide a brief discussion of embodiments of the present disclosure.

[0006] Ссылка в описании на «один вариант осуществления» или «вариант осуществления» означает, что конкретный признак, структура или характеристика, описанные в связи с вариантом осуществления, могут быть включены по меньшей мере в один вариант осуществления раскрытия. Появление фразы «в одном варианте осуществления» в различных местах описания не обязательно относится к одному и тому же варианту осуществления.[0006] Reference in the description to "one embodiment" or "an embodiment" means that a particular feature, structure, or characteristic described in connection with an embodiment may be included in at least one embodiment of the disclosure. The appearance of the phrase "in one embodiment" in various places in the description does not necessarily refer to the same embodiment.

[0007] Варианты осуществления раскрытия предоставляют способ и аппараутру внешнего предсказания для изображения видео, а также соответствующие кодер и декодер, чтобы в некоторой степени повысить точность предсказания информации движения блока изображения, тем самым улучшая производительность кодирования и декодирования.[0007] Embodiments of the disclosure provide an inter prediction method and apparatus for a video image, as well as a corresponding encoder and decoder, to improve the prediction accuracy of image block motion information to some extent, thereby improving encoding and decoding performance.

[0008] Согласно первому аспекту описывается реализуемый компьютером способ внешнего предсказания при кодировании видео. В одном варианте осуществления способ создает список кандидатов на слияние на основе информации о движении блока кодированных изображений. Информация о движении определяет кандидата-предиктора вектора движения (MVP) в списке кандидатов на слияние. Способ добавляет новую информацию о движении в качестве нового кандидата MVP в список кандидатов на слияние, когда количество кандидатов MVP в списке кандидатов на слияние меньше максимального количества кандидатов. Способ получает индекс слияния позиции оптимальной информации о движении в списке кандидатов на слияние. Способ получает оптимальную информацию о движении на основе индекса слияния. Способ определяет предсказанный текущий блок изображения на основе оптимальной информации о движении.[0008] According to a first aspect, a computer-implemented inter-prediction method in video coding is described. In one embodiment, the method generates a merge candidate list based on motion information of a block of encoded pictures. The motion information defines a motion vector predictor candidate (MVP) in the merge candidate list. The method adds new motion information as a new MVP candidate to the merge candidate list when the number of MVP candidates in the merge candidate list is less than the maximum number of candidates. The method obtains the merge index of the position of the optimal motion information in the merge candidate list. The method obtains optimal motion information based on the merge index. The method determines the predicted current image block based on the optimal motion information.

[0009] В одном варианте осуществления блок кодированного изображения является пространственно или временно смежным с текущим блоком кодирования.[0009] In one embodiment, the encoded image block is spatially or temporally adjacent to the current coding block.

[0010] В одном варианте осуществления информация об оптимальном движении используется как информация о движении текущего блока кодирования.[0010] In one embodiment, the optimal motion information is used as the motion information of the current coding block.

[0011] В одном варианте осуществления способ дополнительно определяет оптимальную информацию о движении из списка кандидатов на слияние, используя издержки искажения скорости.[0011] In one embodiment, the method further determines the optimal motion information from the merge candidate list using rate distortion overhead.

[0012] В одном варианте осуществления, когда количество кандидатов MVP в списке кандидатов на слияние достигает максимального количества кандидатов, способ дополнительно добавляет информацию о движении попарных средних кандидатов в список кандидатов на слияние.[0012] In one embodiment, when the number of MVP candidates in the merge candidate list reaches the maximum number of candidates, the method further adds pairwise average candidate movement information to the merge candidate list.

[0013] В одном варианте осуществления информация о движении попарных средних кандидатов определяет попарного среднего кандидата, сгенерированного усреднением предопределенной пары кандидатов MVP в списке кандидатов на слияние.[0013] In one embodiment, the pairwise average candidate movement information defines a pairwise average candidate generated by averaging a predetermined pair of MVP candidates in the merge candidate list.

[0014] В одном варианте осуществления максимальное количество кандидатов - это максимальное количество кандидатов в списке кандидатов на слияние минус N, где N - положительное целое число.[0014] In one embodiment, the maximum number of candidates is the maximum number of candidates in the merge candidate list minus N, where N is a positive integer.

[0015] В одном варианте осуществления новая информация о движении добавляется в список кандидатов на слияние в заранее определенном порядке сканирования кандидатов.[0015] In one embodiment, new motion information is added to the merge candidate list in a predetermined candidate scanning order.

[0016] В одном варианте осуществления временную информацию о движении кандидата кодированного блока изображения получают после того, как вектор движения соответствующей позиции блока в опорном кадре масштабируется на основе подсчета порядка изображений опорного кадра и текущего кадра.[0016] In one embodiment, temporal motion information of a coded picture block candidate is obtained after the motion vector of the corresponding block position in a reference frame is scaled based on the image order count of the reference frame and the current frame.

[0017] В одном варианте осуществления информация о движении содержит по меньшей мере одно из следующего: информацию опорного изображения или вектора движения.[0017] In one embodiment, the motion information comprises at least one of the following: reference picture or motion vector information.

[0018] В одном варианте осуществления информации опорного изображения включает в себя по меньшей мере одно из следующего: информация однонаправленного или двунаправленного предсказания, список опорного изображения, или индекс опорного изображения, соответствующий списку опорного изображения.[0018] In one embodiment, the reference picture information includes at least one of unidirectional or bidirectional prediction information, a reference picture list, or a reference picture index corresponding to the reference picture list.

[0019] В одном варианте осуществления перед добавлением новой информации о движении в качестве нового кандидата MVP в список кандидатов на слияние способ избыточности проверяет список кандидатов на слияние, чтобы найти, есть ли идентичный кандидат MVP в списке кандидатов на слияние. В ответ на нахождение идентичного кандидата MVP в списке кандидатов на слияние способ удаляет идентичного кандидата MVP из списка кандидатов на слияние и перемещает оставшихся кандидатов MVP в списке кандидатов на слияние.[0019] In one embodiment, before adding new motion information as a new MVP candidate to the merge candidate list, the redundancy method checks the merge candidate list to find if there is an identical MVP candidate in the merge candidate list. In response to finding an identical MVP candidate in the merge candidate list, the method removes the identical MVP candidate from the merge candidate list and moves the remaining MVP candidates in the merge candidate list.

[0020] Согласно второму аспекту вариант осуществления этой заявки обеспечивает способ внешнего предсказания (реализованный на компьютере), включающий в себя: создание списка кандидатов на слияние текущего блока изображения; когда количество информации о движении кандидата в списке кандидатов на слияние меньше, чем максимальное количество кандидатов в списке кандидатов на слияние минус N, добавление информации о движении кандидата HMVP в список кандидатов на слияние для получения нового списка кандидатов на слияние, где N - положительное целое число; получение индекса слияния текущего блока изображения; получение информации о движении текущего блока изображения на основе нового списка кандидатов на слияние и индекса слияния; и определение предсказанного блока текущего блока изображения на основе информации о движении текущего блока изображения.[0020] According to a second aspect, an embodiment of this application provides an inter prediction method (implemented on a computer), including: creating a list of merging candidates of a current image block; when the amount of motion information of the candidate in the merge candidate list is less than the maximum number of candidates in the merge candidate list minus N, adding the motion information of the HMVP candidate in the merge candidate list to obtain a new merge candidate list, where N is a positive integer ; getting the merge index of the current image block; obtaining motion information of the current image block based on the new merge candidate list and the merge index; and determining a predicted block of the current image block based on the motion information of the current image block.

[0021] При этом предсказанный блок можно назвать блоком предсказания.[0021] Here, the predicted block may be referred to as a prediction block.

[0022] При этом текущий блок изображения может быть блоком кодирования, единицей кодирования или блоком предсказания.[0022] Here, the current image block may be a coding block, a coding unit, or a prediction block.

[0023] При этом максимальное количество кандидатов в списке кандидатов на слияние может быть названо максимальным количеством кандидатов предиктора вектора движения слияния (MVP).[0023] Meanwhile, the maximum number of candidates in the merge candidate list may be referred to as the maximum number of merge motion vector predictor (MVP) candidates.

[0024] При этом информация о движении кандидата HMVP может называться кандидатами на слияние на основе истории.[0024] Here, the movement information of the HMVP candidate may be referred to as history-based merge candidates.

[0025] На основе второго аспекта в некоторых возможных вариантах осуществления способ дополнительно включает в себя: когда количество информации о движении кандидата в списке кандидатов на слияние больше или равно максимальному количеству кандидатов в списке кандидатов на слияние минус N, добавление информацию о движении попарного среднего кандидата в список кандидатов на слияние, чтобы получить новый список кандидатов на слияние.[0025] Based on the second aspect, in some possible embodiments, the method further includes: when the amount of motion information of a candidate in the merge candidate list is greater than or equal to the maximum number of candidates in the merge candidate list minus N, adding the pairwise average candidate motion information to the merge candidate list to get a new merge candidate list.

[0026] На основе второго аспекта, в некоторых возможных вариантах осуществления, когда количество информации о движении кандидатов в списке кандидатов на слияние меньше, чем максимальное количество кандидатов в списке кандидатов на слияние минус N, добавление информации о движении кандидатов HMVP в список кандидатов на слияние для получение нового списка кандидатов на слияние включает в себя: когда количество информации о движении кандидата в списке кандидатов на слияние меньше, чем максимальное количество кандидатов в списке кандидатов на слияние, добавление информации о движении кандидата HMVP в список кандидатов на слияние для получения первого списка кандидатов на слияние; и когда количество информации о движении кандидата в первом списке кандидатов на слияние меньше, чем максимальное количество кандидатов в списке кандидатов на слияние минус N, добавление информации о движении нового кандидата HMVP в первый список кандидатов на слияние для получения нового списка кандидатов на слияние.[0026] Based on the second aspect, in some possible embodiments, when the amount of movement information of candidates in the merge candidate list is less than the maximum number of candidates in the merge candidate list minus N, adding HMVP candidate movement information to the merge candidate list for obtaining a new merge candidate list includes: when the amount of motion information of a candidate in the merge candidate list is less than the maximum number of candidates in the merge candidate list, adding motion information of the HMVP candidate to the merge candidate list to obtain the first candidate list to merge; and when the number of movement information of the candidate in the first merge candidate list is less than the maximum number of candidates in the merge candidate list minus N, adding the movement information of the new HMVP candidate to the first merge candidate list to obtain a new merge candidate list.

[0027] На основе второго аспекта в некоторых возможных вариантах осуществления способ дополнительно включает в себя: когда количество информации о движении кандидатов в первом списке кандидатов на слияние больше или равно максимальному количеству кандидатов в списке кандидатов на слияние минус N, добавление информации о движении по парного среднего кандидата в первый список кандидатов на слияние, чтобы получить новый список кандидатов на слияние.[0027] Based on the second aspect, in some possible embodiments, the method further includes: when the number of motion information of candidates in the first merge candidate list is greater than or equal to the maximum number of candidates in the merge candidate list minus N, adding motion information on the pairwise middle candidate in the first merger list of candidates to get a new list of merger candidates.

[0028] Согласно третьему аспекту вариант осуществления этой заявки предоставляет аппаратуру внешнего предсказания, где аппаратура внешнего предсказания включает в себя функциональные блоки для реализации любого из способов в первом аспекте. Например, аппаратура внешнего предсказания может включать в себя: блок создания, сконфигурированный для создания списка кандидатов на слияние текущего блока изображения, и когда количество информации о движении кандидата в списке кандидатов на слияние меньше, чем максимальное количество кандидатов списка кандидатов на слияние минус N, добавление информации о движении кандидатов HMVP в список кандидатов на слияние, чтобы получить новый список кандидатов на слияние, где N - положительное целое число; и блок определения блока предсказания, сконфигурированный для получения индекса слияния текущего блока изображения, получения информации о движении текущего блока изображения на основе нового списка кандидатов на слияние и индекса слияния и определения блока предсказания текущего блока изображения на основе об информации о движении текущего блока изображения.[0028] According to a third aspect, an embodiment of this application provides an inter prediction engine, where the inter prediction engine includes functional blocks for implementing any of the methods in the first aspect. For example, the inter prediction apparatus may include: a generating unit configured to create a merge candidate list of the current image block, and when the amount of motion information of a candidate in the merge candidate list is less than the maximum number of merge candidate list candidates minus N, adding information about the movement of HMVP candidates to the merge candidate list to obtain a new merge candidate list, where N is a positive integer; and a prediction block determining unit configured to obtain a merge index of the current image block, obtain motion information of the current image block based on the new merge candidate list and the merge index, and determine a prediction block of the current image block based on the motion information of the current image block.

[0029] Согласно четвертому аспекту вариант осуществления этой заявки обеспечивает способ внешнего предсказания (реализуемый компьютером), включающий в себя: создание списка кандидатов на слияние текущего блока изображения; добавление информации о движении кандидатов HMVP в список кандидатов на слияние в случае, если количество информации о движении кандидатов в списке кандидатов на слияние меньше, чем максимальное количество кандидатов в списке кандидатов на слияние минус N, где N является положительным целым числом; получение информации о движении текущего блока изображения на основе списка кандидатов на слияние; и определение предсказанного блока текущего блока изображения на основе информации о движении текущего блока изображения.[0029] According to a fourth aspect, an embodiment of this application provides an inter prediction method (implemented by a computer), including: creating a list of merging candidates of a current image block; adding HMVP candidate movement information to the merge candidate list if the number of candidate movement information in the merge candidate list is less than the maximum number of candidates in the merge candidate list minus N, where N is a positive integer; obtaining information about the movement of the current image block based on the list of merging candidates; and determining a predicted block of the current image block based on the motion information of the current image block.

[0030] Причем N может быть 1, 2 или 3.[0030] Moreover, N can be 1, 2 or 3.

[0031] При этом получение информации о движении текущего блока изображения на основе списка кандидатов на слияние может содержать: получение индекса слияния текущего блока изображения или индекса слияния для списка кандидатов на слияние; получение информации о движении текущего блока изображения на основе списка кандидатов на слияние и индекса слияния. При этом получение индекса слияния текущего блока изображения или индекса слияния для списка кандидатов на слияние может содержать: получение индекса слияния посредством синтаксического анализа битового потока. При этом получение информации о движении текущего блока изображения на основе списка кандидатов на слияние и индекса слияния может содержать: получение информации о движении из списка кандидатов на слияние с использованием индекса слияния. При этом индекс слияния может использоваться для указания позиции информации о движении в списке кандидатов на слияние.[0031] Wherein, obtaining motion information of the current image block based on the merge candidate list may comprise: obtaining a merge index of the current image block or a merge index for the merge candidate list; obtaining information about the movement of the current image block based on the list of merge candidates and the merge index. Wherein, obtaining the merge index of the current image block or the merge index for the merge candidate list may comprise: obtaining the merge index by bitstream parsing. At the same time, obtaining information about the movement of the current image block based on the list of candidates for merge and the index of the merge may include: obtaining information about the movement from the list of candidates for the merge using the merge index. Meanwhile, the merge index may be used to indicate the position of the motion information in the merge candidate list.

[0032] При этом информация о движении может содержать один или два вектора движения.[0032] Here, the motion information may comprise one or two motion vectors.

[0033] При этом информация о движении может дополнительно содержать один или два индекса опорных изображений из одного или двух списков опорных изображений, относящихся к одному или нескольким векторам движения, информации однонаправленного или двунаправленного предсказания, или одного или двух MVD (разностей векторов движения), связанных с один или более векторов движения.[0033] Meanwhile, the motion information may further comprise one or two reference picture indexes from one or two reference picture lists related to one or more motion vectors, unidirectional or bidirectional prediction information, or one or two MVDs (motion vector differences), associated with one or more motion vectors.

[0034] При этом получение информации о движении текущего блока изображения на основе списка кандидатов на слияние может содержать: определение информации о движении из списка кандидатов на слияние с использованием издержек искажения скорости. При этом способ может дополнительно содержать: кодирование индекса слияния для списка кандидатов на слияние в битовом потоке.[0034] Wherein, obtaining motion information of the current image block based on the merge candidate list may comprise: determining motion information from the merge candidate list using rate distortion overhead. The method may further comprise: encoding a merge index for a merge candidate list in a bitstream.

[0035] При этом предсказанный блок можно назвать блоком предсказания.[0035] Here, the predicted block may be referred to as a prediction block.

[0036] При этом текущий блок изображения может быть блоком кодирования, единицей кодирования или блоком предсказания.[0036] Here, the current image block may be a coding block, a coding unit, or a prediction block.

[0037] При этом максимальное количество кандидатов в списке кандидатов на слияние может быть названо максимальным количеством кандидатов предиктора вектора движения слияния (MVP).[0037] Meanwhile, the maximum number of candidates in the merge candidate list may be referred to as the maximum number of merge motion vector predictor (MVP) candidates.

[0038] При этом информация о движении кандидата HMVP может называться кандидатами на слияние на основе истории или кандидатами на слияние MVP на основе истории (HMVP).[0038] Here, the HMVP candidate movement information may be referred to as history-based merge candidates or history-based MVP merge candidates (HMVP).

[0039] В возможном варианте осуществления способа согласно четвертому аспекту как таковому способ дополнительно включает в себя: добавление информации о движении попарных средних кандидатов в список кандидатов на слияние в случае, когда количество информации о движении кандидата в списке кандидатов на слияние равно максимальному количеству кандидатов в списке кандидатов на слияние минус N.[0039] In an exemplary embodiment of the method according to the fourth aspect, as such, the method further includes: adding motion information of pairwise average candidates in the merge candidate list in the case where the amount of candidate motion information in the merge candidate list is equal to the maximum number of candidates in merger candidate list minus N.

[0040] При этом информация о движении попарных средних кандидатов генерируется посредством усреднения предопределенной пары кандидатов MVP в списке кандидатов на слияние.[0040] Meanwhile, information about the movement of pairwise average candidates is generated by averaging a predetermined pair of MVP candidates in the merge candidate list.

[0041] При этом информация о движении о информации о движении попарных средних кандидатов, может быть названа попарными средними кандидатами.[0041] Meanwhile, the motion information about the motion information of pairwise average candidates may be called pairwise average candidates.

[0042] Согласно пятому аспекту описывается аппаратура внешнего предсказания. Аппаратура внешнего предсказания включает в себя функциональные блоки для реализации любого из способов в первом аспекте. Например, аппаратура внешнего предсказания может включать в себя блок создания, сконфигурированный для создания списка кандидатов на слияние на основе информации о движении блока кодированного изображения, где информация о движении определяет кандидата MVP в списке кандидатов на слияние, и добавления новой информации о движении в качестве нового кандидата MVP в список кандидатов на слияние, когда количество кандидатов MVP в списке кандидатов на слияние меньше максимального количества кандидатов. Аппаратура внешнего предсказания может дополнительно включать в себя блок определения блока предсказания, сконфигурированный для получения индекса слияния позиции оптимальной информации о движении в списке кандидатов на слияние, получения оптимальной информации о движении на основе индекса слияния и определения предсказанного текущего блока изображения на основе об оптимальной информации о движении.[0042] According to a fifth aspect, an inter prediction apparatus is described. The inter prediction apparatus includes functional blocks for implementing any of the methods in the first aspect. For example, the inter prediction apparatus may include a generating unit configured to create a merge candidate list based on the motion information of the encoded picture block, where the motion information specifies an MVP candidate in the merge candidate list, and add the new motion information as the new merge candidate MVP candidate list when the number of MVP candidates in the merge candidate list is less than the maximum number of candidates. The inter prediction apparatus may further include a prediction block determining unit configured to obtain a fusion index of a position of the optimal motion information in the fusion candidate list, obtain the optimal motion information based on the fusion index, and determine a predicted current image block based on the optimal information about movement.

[0043] В некоторых вариантах осуществления аппаратура предсказания изображения, например, применяется к аппаратуре кодирования видео (например, видеокодеру) или аппаратуре декодирования видео (например, видеодекодеру).[0043] In some embodiments, image prediction hardware is, for example, applied to video coding hardware (eg, a video encoder) or video decoding hardware (eg, a video decoder).

[0044] Способ согласно первому аспекту изобретения может выполняться аппаратурой согласно пятому аспекту заявки. Дополнительные признаки и варианты осуществления аппаратуры согласно пятому аспекту заявки соответствуют характеристикам и вариантам осуществления аппаратуры согласно первому аспекту заявки.[0044] The method according to the first aspect of the invention can be performed by the apparatus according to the fifth aspect of the application. Additional features and embodiments of the apparatus according to the fifth aspect of the application correspond to the characteristics and embodiments of the apparatus according to the first aspect of the application.

Согласно шестому аспекту описывается аппаратура внешнего предсказания. Аппаратура внешнего предсказания включает в себя функциональные блоки для реализации любого из способов в четвертом аспекте. Например, аппаратура внешнего предсказания может включать в себя: блок создания, сконфигурированный для: создания списка кандидатов на слияние текущего блока изображения; добавления информации о движении кандидатов HMVP в список кандидатов на слияние в случае, если количество информации о движении кандидатов в списке кандидатов на слияние меньше, чем максимальное количество кандидатов в списке кандидатов на слияние минус N, где N является положительным целым числом; блок предсказания, сконфигурированный для: получения индекса слияния текущего блока изображения; получения информации о движении текущего блока изображения на основе списка кандидатов на слияние и индекса слияния; и определения предсказанного блока текущего блока изображения на основе информации о движении текущего блока изображения.According to the sixth aspect, the external prediction apparatus is described. The inter prediction apparatus includes functional blocks for implementing any of the methods in the fourth aspect. For example, the inter prediction apparatus may include: a creation unit configured to: create a list of fusion candidates of the current image block; adding HMVP candidate movement information to the merge candidate list if the number of candidate movement information in the merge candidate list is less than the maximum number of candidates in the merge candidate list minus N, where N is a positive integer; a prediction block configured to: obtain a merge index of the current image block; obtaining motion information of the current image block based on the merge candidate list and the merge index; and determining a predicted block of the current image block based on the motion information of the current image block.

В возможном варианте осуществления аппаратуры согласно шестому аспекту как таковому, в котором блок создания дополнительно сконфигурирован для: добавления информации о движении попарных средних кандидатов в список кандидатов на слияние в случае, если количество информации о движении кандидатов в списке кандидатов на слияние равно максимальному количеству кандидатов в списке кандидатов на слияние минус N.In an exemplary embodiment of the apparatus according to the sixth aspect as such, wherein the generating unit is further configured to: add motion information of pairwise average candidates to the merge candidate list in case the amount of candidate motion information in the merge candidate list is equal to the maximum number of candidates in merger candidate list minus N.

При этом информация о движении попарных средних кандидатов генерируется посредством усреднения предопределенной пары кандидатов MVP в списке кандидатов на слияние.Here, information about the movement of pairwise average candidates is generated by averaging a predetermined pair of MVP candidates in the merge candidate list.

В возможном варианте осуществления аппаратуры согласно любому предыдущему варианту осуществления шестого аспекта или шестого аспекта как такового, в которой блок предсказания сконфигурирован для: получения информации о движении из списка кандидатов на слияние с использованием индекса слияния.In an exemplary embodiment of the apparatus according to any previous embodiment of the sixth aspect, or the sixth aspect as such, wherein the predictor is configured to: obtain motion information from the merge candidate list using the merge index.

В возможном варианте осуществления аппаратуры согласно любому предыдущему варианту осуществления шестого аспекта или шестого аспекта как такового, в котором блок предсказания сконфигурирован для: определения информации о движении из списка кандидатов на слияние с использованием издержек искажения скорости.In an exemplary embodiment of the apparatus according to any previous embodiment of the sixth aspect, or the sixth aspect as such, wherein the predictor is configured to: determine motion information from the merger candidate list using rate distortion overhead.

[0045] В некоторых вариантах осуществления аппаратура предсказания изображения, например, применяется к аппаратуре кодирования видео (например, видеокодеру) или апаратуре декодирования видео (например, видеодекодеру).[0045] In some embodiments, image prediction hardware is, for example, applied to video coding hardware (eg, a video encoder) or video decoding hardware (eg, a video decoder).

[0046] Способ согласно четвертому аспекту изобретения может выполняться аппаратурой согласно шестому аспекту заявки. Дополнительные признаки и варианты осуществления аппаратуры согласно шестому аспекту заявки соответствуют характеристикам и вариантам осуществления аппаратуры согласно четвертому аспекту заявки.[0046] The method according to the fourth aspect of the invention can be performed by the apparatus according to the sixth aspect of the application. Additional features and embodiments of the apparatus according to the sixth aspect of the application correspond to the characteristics and embodiments of the apparatus according to the fourth aspect of the application.

[0047] Согласно седьмому аспекту описывается аппаратура предсказания изображения. Аппаратура включает в себя процессор и память, связанную с процессором, и процессор сконфигурирован для выполнения способа в любом из аспектов с первого по четвертый или вариантов осуществления с первого по четвертый аспект.[0047] According to the seventh aspect, an image prediction apparatus is described. The apparatus includes a processor and a memory associated with the processor, and the processor is configured to perform the method in any of the first to fourth aspects or the first to fourth aspects.

[0048] Согласно восьмому аспекту описывается устройство декодирования видео. Устройство декодирования видео включает в себя энергонезависимый носитель данных и процессор, энергонезависимый носитель данных хранит исполняемую программу, а процессор и энергонезависимый носитель данных связаны друг с другом, и процессор выполняет исполняемую программу, чтобы реализовать способ в любом из аспектов с первого по четвертый или в вариантах осуществления с первого по четвертый аспект.[0048] According to the eighth aspect, a video decoding apparatus is described. The video decoding apparatus includes a non-volatile storage medium and a processor, the non-volatile storage medium stores an executable program, and the processor and the non-volatile storage medium are in communication with each other, and the processor executes the executable program to implement the method in any of the first to fourth aspects or embodiments implementation from the first to the fourth aspect.

[0049] Согласно девятому аспекту описывается машиночитаемый носитель данных. Машиночитаемый носитель данных хранит инструкции программирования, и когда инструкции выполняются на компьютере, компьютер получает возможность выполнять способ в любом из аспектов с первого по четвертый или вариантов осуществления с первого по четвертый аспект.[0049] According to a ninth aspect, a computer-readable storage medium is described. The computer-readable storage medium stores the programming instructions, and when the instructions are executed on the computer, the computer is enabled to execute the method in any of the first to fourth aspects or the first to fourth aspects.

[0050] Согласно десятому аспекту описывается компьютерный программный продукт, включающий в себя инструкции программирования. Когда компьютерный программный продукт выполняется на компьютере, компьютеру предоставляется возможность выполнять способ в любом из аспектов с первого по четвертый или вариантов осуществления с первого по четвертый аспект.[0050] According to a tenth aspect, a computer program product including programming instructions is described. When the computer program product is executed on the computer, the computer is allowed to perform the method in any of the first to fourth aspects, or the first to fourth aspect embodiments.

[0051] Согласно одиннадцатому аспекту вариант осуществления этой заявки предоставляет компьютерную программу, содержащую программный код для выполнения способа согласно первому аспекту - четвертому аспекту или любому возможному варианту осуществления первого аспекта - четвертого аспекта при выполнении на компьютере.[0051] According to an eleventh aspect, an embodiment of this application provides a computer program comprising program code for executing the method according to the first aspect through the fourth aspect, or any possible embodiment of the first aspect through the fourth aspect, when executed on a computer.

[0052] Согласно седьмому аспекту описывается реализуемый компьютером способ внешнего предсказания при кодировании видео. В одном варианте осуществления способ создает список кандидатов на слияние на основе информации о движении блока кодированных изображений. Информация о движении определяет кандидата-предиктора вектора движения (MVP) в списке кандидатов на слияние. Когда количество кандидатов MVP в списке кандидатов на слияние меньше, чем первое максимальное количество кандидатов, способ добавляет информацию о движении кандидата предиктора вектора движения (HMVP) на основе истории в список кандидатов на слияние, чтобы получить первый список кандидатов на слияние. Когда количество кандидатов MVP в первом списке кандидатов на слияние меньше, чем второе максимальное количество кандидатов, способ добавляет информацию о движении нового кандидата HMVP в первый список кандидатов на слияние, чтобы получить новый список кандидатов на слияние. Способ получает индекс слияния позиции оптимальной информации о движении в новом списке кандидатов на слияние. Способ получает оптимальную информацию о движении на основе индекса слияния. Способ определяет предсказанный текущий блок изображения на основе оптимальной информации о движении.[0052] According to a seventh aspect, a computer-implemented inter-prediction method in video coding is described. In one embodiment, the method generates a merge candidate list based on motion information of a block of encoded pictures. The motion information defines a motion vector predictor candidate (MVP) in the merge candidate list. When the number of MVP candidates in the merge candidate list is less than the first maximum number of candidates, the method adds motion information of a motion vector predictor (HMVP) candidate based on history to the merge candidate list to obtain the first merge candidate list. When the number of MVP candidates in the first merge candidate list is less than the second maximum number of candidates, the method adds new HMVP candidate movement information to the first merge candidate list to obtain a new merge candidate list. The method obtains the merge index of the position of the optimal motion information in the new merge candidate list. The method obtains optimal motion information based on the merge index. The method determines the predicted current image block based on the optimal motion information.

[0053] Следует понимать, что положительные эффекты, полученные с помощью различных аспектов и соответствующих реализуемых способов исполнения, аналогичны и не повторяются.[0053] It should be understood that the positive effects obtained using various aspects and the respective implementation methods are similar and not repeated.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF THE DRAWINGS

[0054] Для более ясного описания технических решений в вариантах осуществления настоящего изобретения или в фоновом режиме ниже описаны сопроводительные чертежи, необходимые для описания вариантов осуществления настоящего изобретения или уровня техники.[0054] To more clearly describe the technical solutions in the embodiments of the present invention or in the background, the accompanying drawings necessary to describe the embodiments of the present invention or the prior art are described below.

[0055] ФИГ. 1A - блок-схема примера системы кодирования и декодирования видео согласно одному варианту осуществления.[0055] FIG. 1A is a block diagram of an example of a video encoding and decoding system according to one embodiment.

[0056] ФИГ. 1B - блок-схема примера системы кодирования видео согласно одному варианту осуществления.[0056] FIG. 1B is a block diagram of an example of a video coding system according to one embodiment.

[0057] ФИГ. 2 - блок-схема примерной структуры кодера согласно одному варианту осуществления.[0057] FIG. 2 is a block diagram of an exemplary encoder structure according to one embodiment.

[0058] ФИГ. 3 - блок-схема примерной структуры декодера согласно одному варианту осуществления.[0058] FIG. 3 is a block diagram of an exemplary structure of a decoder according to one embodiment.

[0059] ФИГ. 4 - блок-схема примера устройства кодирования видео согласно одному варианту осуществления.[0059] FIG. 4 is a block diagram of an example of a video encoding device according to one embodiment.

[0060] ФИГ. 5 - блок-схема другого примера аппаратуры кодирования или аппаратуры декодирования согласно одному варианту осуществления.[0060] FIG. 5 is a block diagram of another example of encoding apparatus or decoding apparatus according to one embodiment.

[0061] ФИГ. 6 - схематическая блок-схема пространственной и временной информации о движении кандидата согласно одному варианту осуществления.[0061] FIG. 6 is a schematic block diagram of candidate motion spatial and temporal information according to one embodiment.

[0062] Фиг.7 - схематическая блок-схема последовательности операций способа предсказателя вектора движения на основе истории (HMVP) согласно одному варианту осуществления.[0062] FIG. 7 is a schematic flow diagram of a history-based motion vector predictor (HMVP) method according to one embodiment.

[0063] ФИГ. 8 - схематическая блок-схема обновления таблицы согласно одному варианту осуществления.[0063] FIG. 8 is a schematic block diagram of a table update according to one embodiment.

[0064] ФИГ. 9 - схематическая блок-схема способа внешнего предсказания согласно варианту осуществления.[0064] FIG. 9 is a schematic flowchart of an inter prediction method according to an embodiment.

[0065] ФИГ. 10 - блок-схема, показывающая примерную структуру системы 3100 поставки контента, которая реализует услугу доставки контента.[0065] FIG. 10 is a block diagram showing an exemplary structure of a content delivery system 3100 that implements a content delivery service.

[0066] ФИГ. 11 - блок-схема, показывающая структуру примера терминального устройства.[0066] FIG. 11 is a block diagram showing the structure of an example of a terminal device.

Подробное описаниеDetailed description

[0067] Ниже описаны варианты осуществления настоящего раскрытия со ссылкой на прилагаемые чертежи в вариантах осуществления настоящего раскрытия. В нижеследующих описаниях делается ссылка на сопроводительные чертежи, которые составляют часть этого раскрытия и которые показывают в качестве иллюстрации конкретные аспекты вариантов осуществления настоящего раскрытия или конкретные аспекты, в которых варианты осуществления настоящего раскрытия могут быть использованы. Следует понимать, что варианты осуществления настоящего раскрытия могут использоваться в других аспектах и могут включать в себя структурные или логические изменения, не изображенные на прилагаемых чертежах. Следовательно, следующие подробные описания не следует рассматривать как ограничение, и объем настоящего раскрытия определяется прилагаемой формулой изобретения. Например, следует понимать, что раскрытое содержание со ссылкой на описанный способ также может быть верным для соответствующего устройства или системы, сконфигурированной для выполнения способа, и наоборот. Например, если описан один или несколько конкретных этапов способа, соответствующее устройство может включать в себя один или несколько блоков, таких как функциональные блоки, для выполнения описанных одного или нескольких этапов способа (например, один блок, выполняющий один или несколько этапов; или множество блоков, каждый из которых выполняет один или несколько из множества этапов), даже если такой один или несколько блоков явно не описаны или не проиллюстрированы на сопроводительных чертежах. Соответственно, например, если конкретная аппаратура описывается на основе одного или нескольких блоков, таких как функциональные блоки, соответствующий способ может включать в себя один или несколько этапов для выполнения функциональных возможностей одного или нескольких блоков (например, один этап, выполняющий функциональные возможности одного или нескольких блоков; или множество этапов, каждый из которых выполняет функциональные возможности одного или нескольких из множества блоков), даже если такой один или несколько этапов явно не описаны или не проиллюстрированы на сопроводительных чертежах. Кроме того, следует понимать, что признаки различных примерных вариантов осуществления и/или аспектов, описанных в данном документе, могут быть объединены друг с другом, если конкретно не указано иное.[0067] Embodiments of the present disclosure are described below with reference to the accompanying drawings in embodiments of the present disclosure. In the following descriptions, reference is made to the accompanying drawings, which form part of this disclosure and which show, by way of illustration, specific aspects of embodiments of the present disclosure or specific aspects in which embodiments of the present disclosure may be used. It should be understood that embodiments of the present disclosure may be used in other aspects and may include structural or logical changes not shown in the accompanying drawings. Therefore, the following detailed descriptions should not be construed as limiting, and the scope of the present disclosure is defined by the appended claims. For example, it is to be understood that disclosures made with reference to a described method may also be true of a corresponding device or system configured to perform the method, and vice versa. For example, if one or more specific method steps are described, the corresponding device may include one or more blocks, such as functional blocks, for performing the one or more method steps described (for example, one block performing one or more steps; or a plurality of blocks , each of which performs one or more of a plurality of steps), even if such one or more units are not explicitly described or illustrated in the accompanying drawings. Accordingly, for example, if a particular hardware is described in terms of one or more blocks, such as functional blocks, the corresponding method may include one or more steps to perform the functionality of one or more blocks (for example, one step to perform the functionality of one or more blocks; or a plurality of steps, each of which performs the functionality of one or more of the plurality of blocks), even if such one or more steps are not explicitly described or illustrated in the accompanying drawings. In addition, it should be understood that the features of the various exemplary embodiments and/or aspects described herein may be combined with each other, unless specifically indicated otherwise.

[0068] Технические решения в вариантах осуществления настоящего раскрытия могут не только применяться к существующим стандартам кодирования видео (таким как стандарт H.264 и стандарт HEVC), но также применяться к будущим стандартам кодирования видео (таким как стандарт H.266). Термины, используемые в части реализации настоящего раскрытия, предназначены только для объяснения конкретных вариантов реализации настоящего раскрытия, но не предназначены для ограничения настоящего изобретения. Далее сначала кратко описываются некоторые концепции, которые могут использоваться в вариантах осуществления настоящего раскрытия.[0068] The technical solutions in embodiments of the present disclosure may not only apply to existing video coding standards (such as the H.264 standard and the HEVC standard), but also apply to future video coding standards (such as the H.266 standard). The terms used in the implementation of the present disclosure are only intended to explain specific embodiments of the present disclosure, but are not intended to limit the present invention. In the following, some concepts that may be used in embodiments of the present disclosure are first briefly described.

[0069] Кодирование видео обычно относится к обработке последовательности изображений, которые образуют видео или видеопоследовательность. В области кодирования видео термины «картинка», «кадр» или «изображение» могут использоваться как синонимы. Кодирование видео, используемое здесь, означает кодирование видео или декодирование видео. Кодирование видео выполняется на стороне источника и обычно включает в себя обработку (например, посредством сжатия) исходных изображений видео для уменьшения объема данных, необходимых для представления изображений видео, для более эффективного хранения и/или передачи. Декодирование видео выполняется на стороне назначения и обычно включает в себя обратную обработку относительно кодера для восстановления изображений видео. «Кодирование» изображения видео в вариантах осуществления может пониматься как «кодирование» или «декодирование» для видеопоследовательности. Комбинация части кодирования и части декодирования также называется кодеком (кодирования и декодирования).[0069] Video coding generally refers to the processing of a sequence of images that form a video or video sequence. In the field of video coding, the terms "picture", "frame", or "picture" may be used interchangeably. Video encoding used here means video encoding or video decoding. Video encoding is performed at the source side and typically involves processing (eg, by compressing) the original video images to reduce the amount of data needed to represent the video images for more efficient storage and/or transmission. Video decoding is performed on the destination side and typically includes inverse processing with respect to the encoder to recover the video images. "Encoding" of a video image in the embodiments may be understood as "encoding" or "decoding" for a video sequence. The combination of an encoding part and a decoding part is also called a (encoding and decoding) codec.

[0070] Видеопоследовательность включает в себя серию изображений (или картинок). Изображение далее разбивается на слайсы, и каждый слайс дополнительно разбивается на блоки. При кодировании видео обработка кодирования выполняется для каждого блока. В некоторых новых стандартах кодирования видео понятие блока дополнительно расширено. Например, в стандарте H.264 существует макроблок (MB), и этот макроблок может быть дополнительно разделен на множество блоков (или разделов) предсказания, которые могут использоваться для кодирования с прогнозированием. В стандарте высокоэффективного кодирования видео (HEVC) используются базовые концепции, такие как единица кодирования (CU), единица предсказания (PU) и единица преобразования (TU), так что получается множество типов блочных единиц посредством функционального разделения, и единицы описываются со ссылкой на новую древовидную структуру. Например, CU может быть разделена на меньшие CU на основе квадродерева, и каждая меньшая CU может продолжать разделяться, тем самым формируя структуру квадродерева. CU - это базовая единица для разделения и кодирования кодированного изображения. PU и TU также имеют аналогичную древовидную структуру, и PU может соответствовать блоку предсказания и является базовой единицей кодирования с предсказанием. CU дополнительно разделяется на множество PU в соответствии с режимом разделения. TU может соответствовать блоку преобразования и является базовой единицей для преобразования остатка предсказания. По сути, все CU, PU и TU являются концепциями блоков (или блоков изображения).[0070] The video sequence includes a series of images (or pictures). The image is further divided into slices, and each slice is further divided into blocks. In video encoding, encoding processing is performed for each block. In some new video coding standards, the concept of a block is further expanded. For example, in the H.264 standard, there is a macroblock (MB) and this macroblock can be further divided into a plurality of prediction blocks (or partitions) that can be used for predictive coding. The High Efficiency Video Coding (HEVC) standard uses basic concepts such as a coding unit (CU), a prediction unit (PU), and a transformation unit (TU), so that a plurality of types of block units are obtained by functional separation, and the units are described with reference to a new tree structure. For example, a CU may be divided into smaller CUs based on a quadtree, and each smaller CU may continue to be divided, thereby forming a quadtree structure. CU is the basic unit for separating and encoding an encoded picture. The PU and TU also have a similar tree structure, and a PU may correspond to a prediction block and is the basic predictive coding unit. The CU is further divided into a plurality of PUs according to the partition mode. A TU may correspond to a transform unit and is the base unit for transforming the prediction residual. Essentially, all CUs, PUs, and TUs are block (or image block) concepts.

[0071] Например, в HEVC CTU разделяется на множество CU с использованием структуры квадродерева, обозначенной как дерево кодирования. Решение о том, кодировать ли область изображения с помощью межкадрового (временного) или внутрикадрового (пространственного) предсказания, принимается на уровне CU. Каждая CU может быть дополнительно разделена на одну, две или четыре PU на основе типа разделения PU. Внутри одной PU применяется один и тот же процесс предсказания, и соответствующая информация передается в декодер на основе PU. После получения остаточного блока путем применения процесса предсказания на основе типа разделения PU, CU может быть разделена на TU на основе другой структуры квадродерева, аналогичной дереву кодирования, используемому для CU. В последних разработках технологий сжатия видео для разделения блока кодирования используется кадр разделения дерева квадрантов и двоичного дерева (QTBT). В блочной структуре QTBT CU может иметь квадратную или прямоугольную форму.[0071] For example, in HEVC, the CTU is divided into multiple CUs using a quadtree structure referred to as a coding tree. The decision on whether to encode an image area using inter-frame (temporal) or intra-frame (spatial) prediction is made at the CU level. Each CU may be further partitioned into one, two, or four PUs based on the partition type of the PUs. Within one PU, the same prediction process is applied and the corresponding information is transmitted to the decoder based on the PU. After obtaining a residual block by applying a prediction process based on the partition type of the PU, the CU may be partitioned into TUs based on a different quadtree structure similar to the coding tree used for the CU. Recent developments in video compression technologies use a quadtree-binary-tree (QTBT) split frame to split a coding block. In the block structure of QTBT, the CU can be square or rectangular.

[0072] Здесь для простоты описания и понимания блок изображения, который должен быть закодирован в текущем кодированном изображении, может называться текущим блоком. Например, при кодировании текущий блок - это блок, который в данный момент кодируется, а при декодировании текущий блок - это блок, который в данный момент декодируется. Декодированный блок изображения в качестве опорного изображения, используемого для предсказания текущего блока, называется опорным блоком. Другими словами, опорный блок - это блок, который предоставляет опорный сигнал для текущего блока, где опорный сигнал представляет значение пикселя в блоке изображения. Блок, который находится в опорном изображении и выдает сигнал предсказания для текущего блока может относиться к блоку предсказания, в котором сигнал предсказания представляет собой значение пикселя, значение выборки, или сигнал выборки в пределах блока предсказания. Например, после того, как множество опорных блоков пройдено, оптимальный опорный блок найден, оптимальный опорный блок обеспечивает предсказание для текущего блока, и этот блок называется блоком предсказания.[0072] Here, for ease of description and understanding, an image block to be encoded in the current encoded image may be referred to as a current block. For example, when encoding, the current block is the block that is currently being encoded, and when decoding, the current block is the block that is currently being decoded. A decoded image block as a reference image used to predict the current block is called a reference block. In other words, a reference block is a block that provides a reference signal for the current block, where the reference signal represents a pixel value in the image block. The block that is in the reference picture and outputs a prediction signal for the current block may refer to a prediction block in which the prediction signal is a pixel value, a sample value, or a sample signal within the prediction block. For example, after a plurality of reference blocks have been traversed, an optimal reference block is found, the optimal reference block provides prediction for the current block, and this block is called a prediction block.

[0073] В случае кодирования видео без потерь исходные изображения видео могут быть восстановлены, что означает, что восстановленные изображения видео имеют то же качество, что и исходные изображения видео (при условии, что во время хранения или передачи не происходит потери передачи или других потерь данных). В случае кодирования видео с потерями выполняется дополнительное сжатие, например, посредством квантования, чтобы уменьшить объем данных, необходимых для представления изображений видео, и изображения видео не могут быть полностью восстановлены на стороне декодера, что означает качество восстановленного изображения видео ниже или хуже, чем у исходных изображений видео.[0073] In the case of lossless video coding, the original video images can be reconstructed, which means that the reconstructed video images have the same quality as the original video images (provided that no transmission loss or other losses occur during storage or transmission). data). In the case of lossy video coding, additional compression is performed, for example, by quantization, to reduce the amount of data required to represent the video images, and the video images cannot be fully reconstructed at the decoder side, which means the quality of the reconstructed video image is lower or worse than that of video source images.

[0074] Несколько стандартов кодирования видео, начиная с H.261, относятся к «гибридным видеокодекам с потерями» (то есть пространственное и временное предсказание в области выборки комбинируется с кодированием с двумерным преобразованием для применения квантования в области преобразования). Каждое изображение видеопоследовательности обычно разделяется на набор неперекрывающихся блоков, и кодирование обычно выполняется на уровне блоков. Другими словами, на стороне кодера видео обычно обрабатывается, то есть кодируется на уровне блока (или видеоблока). Например, чтобы сгенерировать блок предсказания посредством пространственного (внутрикадрового) предсказания и временного (межкадрового) предсказания, блок предсказания вычитается из текущего блока (блока, который в настоящее время обрабатывается или должен быть обработан), чтобы получить остаточный блок, и остаточный блок преобразуется и квантуется в области преобразования, чтобы уменьшить объем данных, которые должны быть переданы (сжаты), тогда как на стороне декодера часть обратной обработки относительно кодера применяется к закодированному или сжатому блоку, чтобы восстановить текущий блок для представления. Дополнительно, кодер дублирует цикл обработки декодера, так что кодер и декодер генерируют одинаковые предсказания (например, внутренние предсказания и внешние предсказания) и/или восстановление для обработки, то есть для кодирования последующих блоков.[0074] Several video coding standards, starting with H.261, refer to "hybrid lossy video codecs" (i.e., spatial and temporal sample-domain prediction is combined with 2D transform coding to apply transform-domain quantization). Each picture of a video sequence is usually divided into a set of non-overlapping blocks, and encoding is usually done at the block level. In other words, on the encoder side, the video is usually processed, that is, encoded at the block (or video block) level. For example, to generate a prediction block through spatial (intra-frame) prediction and temporal (inter-frame) prediction, the prediction block is subtracted from the current block (the block currently being processed or to be processed) to obtain a residual block, and the residual block is transformed and quantized in the transform domain to reduce the amount of data that needs to be transmitted (compressed), while on the decoder side, a part of the back processing with respect to the encoder is applied to the encoded or compressed block in order to reconstruct the current block for presentation. Additionally, the encoder duplicates the decoder processing cycle so that the encoder and decoder generate the same predictions (eg, intra predictions and inter predictions) and/or reconstruction for processing, i.e., for encoding subsequent blocks.

[0075] Ниже описывается архитектура системы, применяемая в вариантах осуществления настоящего раскрытия. Фиг. 1A - схематическая блок-схема примера системы кодирования и декодирования видео согласно одному варианту осуществления. Как показано на фиг. 1A, система 10 кодирования и декодирования видео может включать в себя исходное устройство 12 и целевое устройство 14. Исходное устройство 12 генерирует кодированные видеоданные, и поэтому исходное устройство 12 может называться устройством кодирования видео. Целевое устройство 14 может декодировать кодированные видеоданные, сгенерированные исходным устройством 12, и следовательно целевое устройство 14 может называться аппаратурой декодирования видео. Варианты осуществления исходного устройства 12, целевого устройства 14 или как исходного устройства 12, так и целевого устройства 14 могут включать в себя один или несколько процессоров и память, связанную с процессором(ами). Память может включать в себя, без ограничений, оперативную память (RAM), постоянную память (ROM), электрически стираемую программируемую постоянную память (EEPROM), флэш-память или любой другой носитель, который может использоваться для хранения желаемого программного кода в форме программных инструкций или структуры данных, доступной для компьютера, как описано в данном документе. Исходное устройство 12 и целевое устройство 14 могут включать в себя различные аппаратуры, в том числе настольный компьютер, мобильную вычислительную аппаратуру, портативный компьютер (например, лэптоп), планшетный компьютер, телеприставку, телефонную трубку, такую как так называемый «интеллектуальный» телефон, телевизор, фотоаппарат, аппаратуру отображения, цифровой медиаплеер, игровую приставку, бортовой компьютер, устройство беспроводной связи и т.п.[0075] The system architecture used in embodiments of the present disclosure is described below. Fig. 1A is a schematic block diagram of an example of a video encoding and decoding system according to one embodiment. As shown in FIG. 1A, video encoding and decoding system 10 may include a source device 12 and a target device 14. Source device 12 generates encoded video data, and therefore source device 12 may be referred to as a video encoding device. Target device 14 may decode encoded video data generated by source device 12, and hence target device 14 may be referred to as video decoding hardware. Embodiments of source device 12, target device 14, or both source device 12 and target device 14 may include one or more processors and memory associated with the processor(s). Memory may include, without limitation, random access memory (RAM), read only memory (ROM), electrically erasable programmable read only memory (EEPROM), flash memory, or any other medium that can be used to store desired program code in the form of program instructions. or a data structure accessible to a computer, as described in this document. Source device 12 and destination device 14 may include a variety of equipments, including a desktop computer, mobile computing equipment, a portable computer (for example, a laptop), a tablet computer, a set-top box, a handset such as a so-called "smart" phone, a TV , camera, display equipment, digital media player, game console, trip computer, wireless communication device, etc.

[0076] Хотя фиг. 1A изображает исходное устройство 12 и целевое устройство 14 как отдельные устройства, вариант осуществления альтернативно может включать в себя как исходное устройство 12, так и целевое устройство 14 или функциональные возможности как исходного устройства 12, так и целевого устройства 14, то есть исходного устройства 12, или соответствующие функции, и целевое устройство 14, или соответствующие функции. В таких вариантах осуществления исходное устройство 12 или соответствующие функции и целевое устройство 14 или соответствующие функции могут быть реализованы с использованием одного и того же аппаратного и/или программного обеспечения, отдельного аппаратного и/или программного обеспечения или любой их комбинации.[0076] Although FIG. 1A depicts source device 12 and target device 14 as separate devices, the embodiment may alternatively include both source device 12 and target device 14, or the functionality of both source device 12 and target device 14, i.e. source device 12, or corresponding functions, and the target device 14, or corresponding functions. In such embodiments, source device 12 or related functions and target device 14 or corresponding functions may be implemented using the same hardware and/or software, separate hardware and/or software, or any combination thereof.

[0077] Соединение связи может выполняться между исходным устройством 12 и целевым устройством 14 через линию 13 связи, а целевое устройство 14 может принимать закодированные видеоданные от исходного устройства 12 через линию 13 связи. Линия 13 связи может включать в себя один или несколько носителей или аппаратур, способных перемещать кодированные видеоданные от исходного устройства 12 к целевому устройству 14. В одном примере линия 13 связи может включать в себя одну или несколько сред передачи данных, которые позволяют исходному устройству 12 передавать закодированные видеоданные непосредственно в целевое устройство 14 в реальном времени. В этом примере исходное устройство 12 может модулировать кодированные видеоданные в соответствии со стандартом связи (например, протоколом беспроводной связи) и может передавать модулированные видеоданные на целевое устройство 14. Одна или несколько сред связи могут включать в себя среду беспроводной связи и/или среду проводной связи, например, радиочастотный (RF) спектр или одну или несколько физических линий передачи. Одна или несколько сред связи могут образовывать часть сети с пакетной передачей данных, а сеть с пакетной передачей данных представляет собой, например, локальную сеть, сеть широкого доступа или глобальную сеть (например, Интернет). Одна или несколько сред связи могут включать в себя маршрутизатор, коммутатор, базовую станцию или другое устройство, которое облегчает связь от исходного устройства 12 к целевому устройству 14.[0077] A communication connection may be made between source device 12 and target device 14 via link 13, and target device 14 may receive encoded video data from source device 12 via link 13. Link 13 may include one or more media or apparatus capable of transporting encoded video data from source device 12 to destination device 14. In one example, link 13 may include one or more media that allows source device 12 to transmit encoded video data directly to the target device 14 in real time. In this example, source device 12 may modulate encoded video data in accordance with a communication standard (eg, a wireless communication protocol) and may transmit the modulated video data to target device 14. One or more communication media may include a wireless communication medium and/or a wired communication medium. , for example, the radio frequency (RF) spectrum or one or more physical transmission lines. One or more communication media may form part of a packet data network, and the packet data network is, for example, a local area network, a public access network, or a wide area network (eg, the Internet). One or more communication media may include a router, switch, base station, or other device that facilitates communication from source device 12 to destination device 14.

[0078] Исходное устройство 12 включает в себя кодер 20, и в одном варианте осуществления исходное устройство 12 может дополнительно включать в себя источник 16 изображения, препроцессор 18 изображения и интерфейс 22 связи. В одном варианте осуществления кодер 20, источник 16 изображения, препроцессор 18 изображения и интерфейс 22 связи могут быть аппаратными компонентами в исходном устройстве 12 или могут быть программными программами в исходном устройстве 12. Отдельные описания следующие:[0078] Source device 12 includes an encoder 20, and in one embodiment, source device 12 may further include an image source 16, an image preprocessor 18, and a communication interface 22. In one embodiment, encoder 20, image source 16, image preprocessor 18, and communications interface 22 may be hardware components in source device 12, or may be software programs in source device 12. Specific descriptions are as follows:

[0079] Источник 16 изображения может включать в себя или быть устройством захвата изображения любого типа, сконфигурированным, например, для захвата реального изображения, и/или устройством любого типа для генерации изображения или комментария (для кодирования содержимого экрана, некоторый текст на экране также рассматривается как часть картинки или изображения, подлежащего кодированию), например, процессор компьютерной графики, сконфигурированный для генерации компьютерного анимационного изображения, или устройство любого типа, сконфигурированное для получения и/или предоставления изображения реального мира или изображение компьютерной анимации (например, содержимое экрана или изображение виртуальной реальности (VR)) и/или любая их комбинация (например, изображение дополненной реальности (AR)). Источник 16 изображения может быть камерой, сконфигурированной для захвата изображения, или памятью, сконфигурированной для хранения изображения. Источник 16 изображения может дополнительно включать в себя интерфейс любого типа (внутренний или внешний) для хранения ранее захваченного или сгенерированного изображения и/или для получения или приема изображения. Когда источником 16 изображения является камера, источником 16 изображения может быть, например, локальная камера или интегрированная камера, встроенная в исходное устройство. Когда источник 16 изображения является памятью, источник 16 изображения может быть локальной памятью или, например, интегрированной памятью, интегрированной в исходное устройство. Когда источник 16 изображения включает в себя интерфейс, этот интерфейс может быть, например, внешним интерфейсом для приема изображения от внешнего источника видео. Внешний источник видео представляет собой, например, внешнее устройство захвата изображения, такое как камера, внешняя память или внешнее устройство создания изображения. Внешнее устройство создания изображения представляет собой, например, внешний компьютерный графический процессор, компьютер или сервер. Интерфейс может быть интерфейсом любого типа, например проводным или беспроводным интерфейсом или оптическим интерфейсом, в соответствии с любым частным или стандартизованным протоколом интерфейса.[0079] Image source 16 may include or be any type of image capture device configured to capture a real image, for example, and/or any type of device to generate an image or comment (to encode screen content, some text on the screen is also considered as part of a picture or image to be encoded), such as a computer graphics processor configured to generate a computer animated image, or any type of device configured to receive and/or present a real world image or a computer animation image (for example, screen content or a virtual reality (VR)) and/or any combination of them (for example, an image of augmented reality (AR)). Image source 16 may be a camera configured to capture an image or a memory configured to store an image. Image source 16 may further include any type of interface (internal or external) for storing a previously captured or generated image and/or for acquiring or receiving an image. When the image source 16 is a camera, the image source 16 can be, for example, a local camera or an integrated camera built into the source device. When the image source 16 is a memory, the image source 16 may be a local memory or, for example, an integrated memory integrated in the source device. When the image source 16 includes an interface, this interface may be, for example, an external interface for receiving an image from an external video source. The external video source is, for example, an external image capturing device such as a camera, an external memory, or an external imaging device. The external imaging device is, for example, an external computer graphics processor, a computer, or a server. The interface may be any type of interface, such as a wired or wireless interface, or an optical interface, in accordance with any proprietary or standardized interface protocol.

[0080] Изображение можно рассматривать как двумерный массив или матрицу пикселей (элемент изображения). Пиксель в массиве также может называться выборкой. Количество выборок в горизонтальном и вертикальном направлениях (или осях) массива или изображения определяет размер и/или разрешение изображения. Для представления цвета обычно используются три цветовых компонента. Изображение может быть представлено в виде трех массивов выборок или может включать их. Например, в формате RBG или цветовом пространстве изображение включает в себя соответствующие массивы образцов красного, зеленого и синего цветов. Однако при кодировании видео каждый пиксель обычно представлен в формате яркости/цветности или цветовом пространстве, например, изображение в формате YUV включает в себя компонент яркости, обозначенный Y (иногда указанный альтернативно L), и два компонента цветности, указанных как U и V. Компонент Y яркости (luma) представляет яркость или интенсивность уровня серого (например, оба они одинаковы в изображении с оттенками серого), а два компонента цветности (chroma) U и V представляют компоненты информации о цветности или цвете. Соответственно, изображение в формате YUV включает в себя массив выборок яркости значений (Y) выборок яркости и два массива выборок цветности значений (U и V) цветности. Изображения в формате RGB можно преобразовать или конвертировать в формат YUV и наоборот. Этот процесс также называется конверсией цвета или преобразованием. Если изображение является монохромным, оно может включать в себя только массив выборок яркости. В одном варианте осуществления изображение, переданное источником 16 изображения в процессор изображения, также может называться необработанными данными 17 изображения.[0080] An image can be viewed as a two-dimensional array or matrix of pixels (image element). A pixel in an array can also be called a sample. The number of samples in the horizontal and vertical directions (or axes) of an array or image determines the size and/or resolution of the image. Three color components are commonly used to represent a color. The image may be represented as three arrays of samples or may include them. For example, in RBG format or color space, an image includes respective arrays of red, green, and blue color samples. However, in video encoding, each pixel is typically represented in a luma/chrominance or color space format, for example, a YUV image includes a luminance component, denoted Y (sometimes alternatively referred to as L), and two chrominance components, denoted U and V. Y luminance (luma) represents the brightness or intensity of the gray level (for example, both are the same in a grayscale image), and the two chroma components (chroma) U and V represent components of chrominance or color information. Accordingly, the YUV image includes a luma sample array of luma values (Y) and two chrominance sample arrays of chrominance values (U and V). Images in RGB format can be converted or converted to YUV format and vice versa. This process is also called color conversion or conversion. If the image is monochrome, it may only include an array of brightness samples. In one embodiment, the image transmitted by the image source 16 to the image processor may also be referred to as the raw image data 17 .

[0081] Препроцессор 18 изображения сконфигурирован для приема необработанных данных 17 изображения и выполнения предварительной обработки необработанных данных 17 изображения для получения предварительно обработанного изображения 19 или предварительно обработанных данных 19 изображения. Например, предварительная обработка, выполняемая препроцессором 18 изображения, может включать в себя обрезку, конверсию цветового формата (например, из формата RGB в формат YUV), цветокоррекцию или шумоподавление.[0081] The image preprocessor 18 is configured to receive the raw image data 17 and perform pre-processing of the raw image data 17 to obtain a pre-processed image 19 or pre-processed image data 19. For example, preprocessing performed by image preprocessor 18 may include cropping, color format conversion (eg, from RGB to YUV), color correction, or denoising.

[0082] Кодер 20 (также называемый видеокодером 20) сконфигурирован для приема предварительно обработанных данных 19 изображения и обработки предварительно обработанных данных 19 изображения с использованием соответствующего режима предсказания (такого как режим предсказания в каждом варианте осуществления этого раскрытия), чтобы предоставлять данные 21 закодированного изображения (структурные детали кодера 20 дополнительно описаны в данном документе ниже на основе фиг. 2, фиг. 4 или фиг. 5). В некоторых вариантах осуществления кодер 20 может быть сконфигурирован для выполнения различных вариантов осуществления, описанных в данном документе ниже, для реализации на стороне кодера способа предсказания блока цветности, описанного в настоящем раскрытии.[0082] Encoder 20 (also referred to as video encoder 20) is configured to receive preprocessed image data 19 and process preprocessed image data 19 using an appropriate prediction mode (such as the predictive mode in each embodiment of this disclosure) to provide encoded image data 21 (structural details of encoder 20 are further described herein below based on FIG. 2, FIG. 4, or FIG. 5). In some embodiments, encoder 20 may be configured to perform the various embodiments described herein below to implement on the encoder side the chrominance block prediction method described in this disclosure.

[0083] Интерфейс 22 связи может быть сконфигурирован для приема данных 21 закодированного изображения и передачи данных 21 закодированного изображения на целевое устройство 14 или любое другое устройство (например, память) через линию 13 связи для хранения или прямого восстановления. Другое устройство может быть любым устройством, используемым для декодирования или хранения. Интерфейс 22 связи может быть, например, сконфигурирован для инкапсуляции данных 21 закодированного изображения в соответствующий формат, например пакет данных, для передачи по линии 13 связи.[0083] Communication interface 22 may be configured to receive encoded image data 21 and transmit encoded image data 21 to target device 14 or any other device (eg, memory) via communication link 13 for storage or direct retrieval. The other device may be any device used for decoding or storage. Communication interface 22 may, for example, be configured to encapsulate encoded image data 21 in an appropriate format, such as a data packet, for transmission over communication line 13.

[0084] Целевое устройство 14 включает в себя декодер 30, и в одном варианте осуществления целевое устройство 14 может дополнительно включать в себя интерфейс 28 связи, постпроцессор 32 изображения и устройство 34 отображения. Отдельные описания следующие:[0084] Target device 14 includes a decoder 30, and in one embodiment, target device 14 may further include a communication interface 28, an image post-processor 32, and a display device 34. Individual descriptions are as follows:

[0085] Интерфейс 28 связи может быть сконфигурирован для приема данных 21 закодированного изображения от исходного устройства 12 или любого другого источника. Любой другой источник представляет собой, например, запоминающее устройство, а запоминающее устройство - это, например, устройство хранения данных закодированных изображений. Интерфейс 28 связи может быть сконфигурирован для передачи или приема данных 21 закодированного изображения через линию 13 связи между исходным устройством 12 и целевым устройством 14 или через сеть любого типа. Линия 13 связи представляет собой, например, прямое проводное или беспроводное соединение, и любой тип сети представляет собой, например, проводную или беспроводную сеть или любую их комбинацию, или любой тип частной или общедоступной сети, или любую их комбинацию. Интерфейс 28 связи может быть, например, сконфигурирован для декапсуляции пакета данных, переданного через интерфейс 22 связи, для получения данных 21 закодированного изображения.[0085] Communication interface 28 may be configured to receive encoded image data 21 from source device 12 or any other source. Any other source is, for example, a storage device, and the storage device is, for example, an encoded image data storage device. Communication interface 28 may be configured to transmit or receive encoded image data 21 via communication link 13 between source device 12 and destination device 14 or via any type of network. Link 13 is, for example, a direct wired or wireless connection, and any type of network is, for example, a wired or wireless network, or any combination thereof, or any type of private or public network, or any combination thereof. The communication interface 28 may, for example, be configured to decapsulate the data packet transmitted via the communication interface 22 to obtain encoded image data 21.

[0086] И интерфейс 28 связи, и интерфейс 22 связи могут быть сконфигурированы как интерфейсы однонаправленной связи или интерфейсы двунаправленной связи, и могут быть сконфигурированы, например, для отправки и приема сообщений для установки соединения, а также подтверждения и обмена любой другой информацией, относящейся к линии связи и/или передаче данных, такой как передача данных закодированного изображения.[0086] Both communication interface 28 and communication interface 22 may be configured as unidirectional communication interfaces or bidirectional communication interfaces, and may be configured, for example, to send and receive messages to establish a connection, and to acknowledge and exchange any other information related to to a communication link and/or data transmission, such as the transmission of encoded image data.

[0087] Декодер 30 (также называемый видеодекодером 30) сконфигурирован для приема данных 21 закодированного изображения и предоставления данных 31 декодированного изображения или декодированного изображения 31 (структурные детали декодера 30 дополнительно описаны в данном документе ниже на основе фиг. 3, Фиг.4 или Фиг.5). В некоторых вариантах осуществления декодер 30 может быть сконфигурирован для выполнения различных вариантов осуществления, описанных здесь ниже, для реализации на стороне декодера способа предсказания блока цветности, описанного в настоящем раскрытии.[0087] Decoder 30 (also referred to as video decoder 30) is configured to receive encoded image data 21 and provide decoded image data 31 or decoded image 31 (structural details of decoder 30 are further described herein below based on FIG. 3, FIG. 4, or FIG. .5). In some embodiments, decoder 30 may be configured to perform the various embodiments described herein below to implement, on the decoder side, the chrominance block prediction method described in this disclosure.

[0088] Постпроцессор 32 изображения сконфигурирован для постобработки данных 31 декодированного изображения (также называемых данными восстановленного изображения) для получения данных 33 постобработанного изображения. Постобработка, выполняемая постпроцессором 32 изображения, может включать в себя преобразование формата цвета (например, из формата YUV в формат RGB), цветокоррекцию, обрезку, повторную выборку или любую другую обработку. Постпроцессор 32 изображения может быть дополнительно сконфигурирован для передачи данных 33 постобработанного изображения на устройство 34 отображения.[0088] The image post-processor 32 is configured to post-process decoded image data 31 (also referred to as reconstructed image data) to obtain post-processed image data 33. Post-processing performed by image post processor 32 may include color format conversion (eg, from YUV to RGB), color correction, cropping, resampling, or any other processing. The image post-processor 32 may be further configured to transfer the post-processed image data 33 to the display device 34 .

[0089] Устройство 34 отображения сконфигурировано для приема данных 33 изображения с постобработкой, чтобы отображать изображение, например, пользователю или зрителю. Устройство 34 отображения может быть или включать в себя любой тип дисплея, сконфигурированный для представления восстановленного изображения, например, интегрированный или внешний дисплей или монитор. Например, дисплей может включать в себя жидкокристаллический дисплей (LCD), дисплей на органических светодиодах (OLED), плазменный дисплей, проектор, микро-светодиодный дисплей, жидкий кристалл на кремнии (LCoS), цифровой световой процессор (DLP) или любые другие дисплеи.[0089] The display device 34 is configured to receive post-processed image data 33 to display the image, for example, to a user or viewer. The display device 34 may be or include any type of display configured to present the reconstructed image, such as an integrated or external display or monitor. For example, the display may include a liquid crystal display (LCD), an organic light emitting diode (OLED) display, a plasma display, a projector, a micro LED display, a liquid crystal on silicon (LCoS), a digital light processor (DLP), or any other displays.

[0090] Хотя фиг. 1A изображает исходное устройство 12 и целевое устройство 14 как отдельные устройства, вариант осуществления альтернативно может включать в себя как исходное устройство 12, так и целевое устройство 14 или функциональные возможности как исходного устройства 12, так и целевого устройства 14, то есть исходного устройства 12, или соответствующие функциональные возможности, и целевое устройство 14, или соответствующие функциональные возможности. В таких вариантах осуществления исходное устройство 12 или соответствующие функциональные возможности и целевое устройство 14 или соответствующие функциональные возможности могут быть реализованы с использованием одного и того же аппаратного и/или программного обеспечения, отдельного аппаратного и/или программного обеспечения или любой их комбинации.[0090] Although FIG. 1A depicts source device 12 and target device 14 as separate devices, the embodiment may alternatively include both source device 12 and target device 14, or the functionality of both source device 12 and target device 14, i.e. source device 12, or the corresponding functionality, and the target device 14, or the corresponding functionality. In such embodiments, source device 12 or related functionality and target device 14 or corresponding functionality may be implemented using the same hardware and/or software, separate hardware and/or software, or any combination thereof.

[0091] Как будет очевидно для специалиста в данной области на основании описаний, существование и (точное) разделение функциональных возможностей различных блоков или функций исходного устройства 12 и/или целевого устройства 14, показанные на фиг. 1A может отличаться в зависимости от конкретного устройства и применения. Исходное устройство 12 и целевое устройство 14 могут включать в себя любое из широкого диапазона устройств, в том числе любой тип портативного или стационарного устройства, например, ноутбук или портативный компьютер, мобильный телефон, смартфон, планшет или планшетный компьютер, камера, настольный компьютер, телевизионная приставка, телевизор, камера, автомобильное устройство, устройство отображения, цифровой медиаплеер, игровая консоль, устройство потоковой передачи видео (например, сервер службы контента или сервер доставки контента), устройство приемника вещания или устройство передатчика вещания, и не может использовать или может использовать операционные системы любого типа.[0091] As will be apparent to one of skill in the art based on the descriptions, the existence and (precise) separation of functionality of the various blocks or functions of source device 12 and/or target device 14 shown in FIG. 1A may differ depending on the specific device and application. Source device 12 and destination device 14 may include any of a wide range of devices, including any type of portable or stationary device such as a laptop or laptop computer, mobile phone, smartphone, tablet or tablet computer, camera, desktop computer, television set-top box, television, camera, in-vehicle device, display device, digital media player, game console, video streaming device (such as a content service server or content delivery server), broadcast receiver device, or broadcast transmitter device, and cannot use or can use operating systems of any type.

[0092] Кодер 20 и декодер 30 каждый может быть реализован в виде любой из различных подходящих схем, например, одного или нескольких микропроцессоров, процессоров цифровых сигналов (DSP), специализированных интегральных схем (ASIC), программируемых вентильных матриц (FPGA), дискретной логики, оборудования или любой их комбинации. Если методы частично реализованы в программном обеспечении, устройство может хранить программную инструкцию на подходящем и энергонезависимом машиночитаемом носителе данных и может выполнять инструкцию в аппаратных средствах с использованием одного или нескольких процессоров, чтобы выполнять методы этого раскрытия. Любое из вышеперечисленного (включая аппаратное обеспечение, программное обеспечение, комбинацию аппаратного и программного обеспечения и т.п.) может рассматриваться как один или несколько процессоров.[0092] Encoder 20 and decoder 30 may each be implemented as any of various suitable circuits, such as one or more microprocessors, digital signal processors (DSPs), application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), discrete logic , equipment, or any combination thereof. If the methods are partially implemented in software, the device may store the program instruction on a suitable and non-volatile computer-readable storage medium and may execute the instruction in hardware using one or more processors to execute the methods of this disclosure. Any of the above (including hardware, software, a combination of hardware and software, and the like) may be considered one or more processors.

[0093] В некоторых случаях система 10 кодирования и декодирования видео, показанная на фиг. 1A является просто примером, и методы этого раскрытия сущности могут применяться к настройкам кодирования видео (например, кодирование видео или декодирование видео), которые не обязательно включают в себя какой-либо обмен данными между устройством кодирования и устройством декодирования. В других примерах данные могут быть извлечены из локальной памяти, переданы в потоковом режиме по сети и т.п. Устройство кодирования видео может кодировать данные и сохранять данные в памяти, и/или устройство декодирования видео может извлекать данные из памяти и декодировать данные. В некоторых примерах кодирование и декодирование выполняются устройствами, которые не обмениваются данными друг с другом, а просто кодируют данные в память и/или извлекают данные из памяти и декодируют данные.[0093] In some cases, the video encoding and decoding system 10 shown in FIG. 1A is merely an example, and the techniques of this disclosure may apply to video encoding settings (eg, video encoding or video decoding) that do not necessarily involve any communication between an encoding device and a decoding device. In other examples, data may be retrieved from local memory, streamed over a network, or the like. The video encoding device may encode the data and store the data in memory, and/or the video decoding device may retrieve the data from the memory and decode the data. In some examples, encoding and decoding are performed by devices that do not communicate with each other, but simply encode data into memory and/or retrieve data from memory and decode the data.

[0094] ФИГ. 1B - иллюстративная диаграмма примера системы кодирования видео согласно одному варианту осуществления. Обращаясь к фиг. 1B, система 40 кодирования видео включает в себя кодер 20 по фиг. 2 и/или декодер 30 по фиг. 3 согласно одному варианту осуществления. Система 40 кодирования видео может реализовывать комбинацию различных методов в вариантах осуществления настоящего раскрытия. На фиг. 1B, система 40 кодирования видео может включать в себя устройство 41 формирования изображения, кодер 20, декодер 30 (и/или видеокодер/видеодекодер, реализованный логической схемой 47 блока 46 обработки), антенну 42, один или несколько процессоров 43, одно или несколько запоминающих устройств 44 и/или устройство 45 отображения.[0094] FIG. 1B is an illustrative diagram of an example of a video coding system according to one embodiment. Referring to FIG. 1B, video coding system 40 includes encoder 20 of FIG. 2 and/or decoder 30 of FIG. 3 according to one embodiment. Video coding system 40 may implement a combination of various techniques in embodiments of the present disclosure. In FIG. 1B, video encoding system 40 may include an imager 41, an encoder 20, a decoder 30 (and/or a video encoder/video decoder implemented by logic circuit 47 of processing unit 46), an antenna 42, one or more processors 43, one or more memory devices 44 and/or display device 45.

[0095] Как показано на фиг. 1B, устройство 41 формирования изображения, антенна 42, блок 46 обработки, логическая схема 47, кодер 20, декодер 30, процессор 43, память 44 и/или устройство 45 отображения могут обмениваться данными друг с другом. Как описано, хотя система 40 кодирования видео проиллюстрирована кодером 20 и декодером 30, система 40 кодирования видео может включать в себя только кодер 20 или только декодер 30 в различных примерах.[0095] As shown in FIG. 1B, imager 41, antenna 42, processing unit 46, logic circuit 47, encoder 20, decoder 30, processor 43, memory 44, and/or display device 45 may communicate with each other. As described, although video coding system 40 is illustrated with encoder 20 and decoder 30, video coding system 40 may include only encoder 20 or only decoder 30 in various examples.

[0096] В некоторых вариантах осуществления антенна 42 может быть сконфигурирована для передачи или приема закодированного битового потока видеоданных. Кроме того, в некоторых вариантах осуществления устройство 45 отображения может быть сконфигурировано для представления видеоданных. В некоторых примерах логическая схема 47 может быть реализована блоком 46 обработки. Блок 46 обработки может включать в себя логику ASIC, графический процессор, универсальный процессор и т.п. Система 40 кодирования видео может также включать в себя дополнительный процессор 43. Дополнительный процессор 43 может аналогичным образом включать в себя логику ASIC, графический процессор, универсальный процессор и т.п. В некоторых вариантах осуществления логическая схема 47 может быть реализована аппаратными средствами, например, специализированным оборудованием для кодирования видео, а процессор 43 может быть реализован программным обеспечением общего назначения, операционной системой и т.п. Кроме того, память 44 может быть любым типом памяти, например энергозависимой памятью (например, статической памятью с произвольным доступом (SRAM) или динамической памятью с произвольным доступом (DRAM)) или энергонезависимой памятью (например, флэш-памятью). В неограничивающем примере память 44 может быть реализована с помощью кэш-памяти. В некоторых вариантах осуществления логическая схема 47 может обращаться к памяти 44 (например, для реализации буфера изображения). В других вариантах осуществления логическая схема 47 и/или блок 46 обработки могут включать в себя память (например, кэш) для реализации буфера изображения или тому подобного.[0096] In some embodiments, antenna 42 may be configured to transmit or receive an encoded video bitstream. In addition, in some embodiments, display device 45 may be configured to present video data. In some examples, logic circuit 47 may be implemented by processing unit 46. The processing unit 46 may include ASIC logic, a graphics processor, a general purpose processor, and the like. The video encoding system 40 may also include an additional processor 43. The additional processor 43 may likewise include ASIC logic, a graphics processor, a general purpose processor, and the like. In some embodiments, logic circuitry 47 may be implemented in hardware, such as dedicated video coding hardware, and processor 43 may be implemented in general purpose software, an operating system, or the like. In addition, memory 44 may be any type of memory, such as volatile memory (eg, static random access memory (SRAM) or dynamic random access memory (DRAM)) or non-volatile memory (eg, flash memory). In a non-limiting example, memory 44 may be implemented with a cache. In some embodiments, logic 47 may access memory 44 (eg, to implement an image buffer). In other embodiments, logic circuitry 47 and/or processing unit 46 may include a memory (eg, cache) for implementing an image buffer or the like.

[0097] В некоторых вариантах осуществления кодер 20, реализованный логической схемой, может включать в себя буфер изображения (например, реализованный блоком 46 обработки или памятью 44) и блок обработки графики (например, реализованный блоком 46 обработки). Графический процессор может быть коммуникативно связан с буфером изображения. Блок обработки графики может включать в себя кодер 20, реализованный логической схемой 47, для реализации различных модулей, которые описаны со ссылкой на фиг. 2 и/или любой другой системе кодера или подсистеме, описанной в данном документе. Логическая схема может быть сконфигурирована для выполнения различных операций, описанных в данном документе.[0097] In some embodiments, the logic implemented encoder 20 may include an image buffer (eg, implemented by processing unit 46 or memory 44) and a graphics processing unit (eg, implemented by processing unit 46). The graphics processor may be communicatively coupled to the image buffer. The graphics processing unit may include an encoder 20 implemented by logic 47 to implement various modules that are described with reference to FIG. 2 and/or any other encoder system or subsystem described herein. The logic circuit can be configured to perform various operations described in this document.

[0098] В некоторых вариантах осуществления декодер 30 может быть реализован логической схемой 47 аналогичным образом для реализации различных модулей, которые описаны со ссылкой на декодер 30 на фиг. 3 и/или любую другую систему или подсистему декодера, описанную в данном документе. В некоторых вариантах осуществления декодер 30, реализованный логической схемой, может включать в себя буфер изображения (например, реализованный блоком 2820 обработки или памятью 44) и блок обработки графики (например, реализованный блоком 46 обработки). Графический процессор может быть коммуникативно связан с буфером изображения. Блок обработки графики может включать в себя декодер 30, реализованный логической схемой 47, для реализации различных модулей, которые описаны со ссылкой на фиг. 3 и/или любую другую систему или подсистему декодера, описанную в данном документе.[0098] In some embodiments, decoder 30 may be implemented by logic 47 in a similar manner to implement various modules that are described with reference to decoder 30 in FIG. 3 and/or any other decoder system or subsystem described herein. In some embodiments, the decoder 30 implemented by the logic may include an image buffer (eg, implemented by processing unit 2820 or memory 44) and a graphics processing unit (eg, implemented by processing unit 46). The graphics processor may be communicatively coupled to the image buffer. The graphics processing unit may include a decoder 30 implemented by logic 47 to implement various modules which are described with reference to FIG. 3 and/or any other decoder system or subsystem described herein.

[0099] В некоторых вариантах осуществления антенна 42 может быть сконфигурирована для приема закодированного битового потока видеоданных. Как описано, кодированный поток битов может включать в себя данные, индикатор, значение индекса, данные выбора режима и т.п., которые относятся к кодированию видеокадров и которые описаны в данном документе, например, данные, относящиеся к разделению кодирования (например, коэффициент преобразования или квантованный коэффициент преобразования, необязательный индикатор (как описано) и/или данные, определяющие разделение кодирования). Система 40 кодирования видео может дополнительно включать в себя декодер 30, который подключен к антенне 42 и сконфигурирован для декодирования закодированного битового потока. Устройство 45 отображения приспособлено для представления видеокадра.[0099] In some embodiments, antenna 42 may be configured to receive an encoded video bitstream. As described, the encoded bitstream may include data, an indicator, an index value, mode selection data, and the like, which is related to the encoding of video frames and which is described herein, for example, data related to coding separation (for example, coefficient transform or a quantized transform coefficient, an optional indicator (as described) and/or data specifying a coding split). Video coding system 40 may further include a decoder 30 that is connected to antenna 42 and configured to decode the encoded bitstream. The display device 45 is adapted to present a video frame.

[00100] Следует понимать, что в этом варианте осуществления настоящего раскрытия, для примера, описанного в отношении кодера 20, декодер 30 может быть сконфигурирован для выполнения обратного процесса. Что касается элементов синтаксиса сигнализации, декодер 30 может быть сконфигурирован для приема и анализа таких элементов синтаксиса и, соответственно, декодирования связанных видеоданных. В некоторых вариантах осуществления кодер 20 может энтропийно кодировать элементы синтаксиса в кодированный битовый поток видео. В таких примерах декодер 30 может анализировать такие элементы синтаксиса и, соответственно, декодировать связанные видеоданные.[00100] It should be understood that in this embodiment of the present disclosure, for the example described with respect to encoder 20, decoder 30 may be configured to perform the reverse process. With regard to signaling syntax elements, decoder 30 may be configured to receive and parse such syntax elements and decode associated video data accordingly. In some embodiments, encoder 20 may entropy encode syntax elements into an encoded video bitstream. In such examples, decoder 30 may parse such syntax elements and decode associated video data accordingly.

[00101] Следует отметить, что способ, описанный в этом варианте осуществления настоящего раскрытия, в основном используется для процесса внешнего предсказания, и этот процесс существует как в кодере 20, так и в декодере 30. Кодер 20 и декодер 30 в этом варианте осуществления настоящего раскрытия могут быть кодером и декодером, соответствующими протоколу стандарта видео, например H.263, H.264, HEVV, MPEG-2, MPEG-4, VP8 и VP9 или протоколу стандарта видео следующего поколения (например, H.266).[00101] It should be noted that the method described in this embodiment of the present disclosure is mainly used for an inter prediction process, and this process exists in both encoder 20 and decoder 30. Encoder 20 and decoder 30 in this embodiment of the present the disclosures may be an encoder and decoder conforming to a video standard protocol such as H.263, H.264, HEVV, MPEG-2, MPEG-4, VP8 and VP9 or a next generation video standard protocol (eg H.266).

[00102] ФИГ. 2 - схематическая/концептуальная блок-схема примера кодера согласно одному варианту осуществления. На фиг. 2, кодер 20 включает в себя блок 204 вычисления остатка, блок 206 обработки преобразования, блок 208 квантования, блок 210 обратного квантования, блок 212 обработки обратного преобразования, блок 214 восстановления, буфер 216, блок 20 контурного фильтра, буфер 230 декодированных изображений (DPB), блок 260 обработки предсказания и блок 270 энтропийного кодирования. Блок 260 обработки предсказания может включать в себя блок 244 внешнего предсказания, блок 254 внутреннего предсказания и блок 262 выбора режима. Блок 244 внешнего предсказания может включать в себя блок оценки движения и блок компенсации движения (не показаны на схеме). Кодер 20, показанный на фиг. 2 также может называться гибридным видеокодером или видеокодером согласно гибридному видеокодеку.[00102] FIG. 2 is a schematic/conceptual block diagram of an example of an encoder according to one embodiment. In FIG. 2, the encoder 20 includes a residual calculation block 204, a transform processing block 206, a quantization block 208, an inverse quantization block 210, an inverse transform processing block 212, a reconstruction block 214, a buffer 216, a loop filter block 20, a decoded picture buffer (DPB) 230 ), a prediction processing unit 260, and an entropy encoding unit 270 . The prediction processing unit 260 may include an inter prediction unit 244, an intra prediction unit 254, and a mode selection unit 262. Inter prediction block 244 may include a motion estimator and a motion compensation block (not shown in the diagram). Encoder 20 shown in FIG. 2 may also be referred to as a hybrid video encoder or a video encoder according to a hybrid video codec.

[00103] Например, блок 204 вычисления остатка, блок 206 обработки преобразования, блок 208 квантования, блок 260 обработки предсказания и блок 270 энтропийного кодирования образуют прямой тракт сигнала кодера 20, тогда как, например, блок 210 обратного квантования, блок 212 обработки обратного преобразования, блок 214 восстановления, буфер 216, контурный фильтр 220, DPB 230 и блок 260 обработки предсказания образуют обратный тракт сигнала кодера, где обратный тракт сигнала кодера соответствует тракту сигнала декодера (например, декодера 30 на фиг. 3).[00103] For example, the residual calculation unit 204, the transform processing unit 206, the quantization unit 208, the prediction processing unit 260, and the entropy encoding unit 270 form a forward signal path of the encoder 20, while, for example, the inverse quantization unit 210, the inverse transform processing unit 212 , restorer 214, buffer 216, loop filter 220, DPB 230, and prediction processor 260 form an encoder return signal path, where the encoder return signal path corresponds to the decoder signal path (eg, decoder 30 in FIG. 3).

[00104] Кодер 20 принимает, например, используя вход 202, изображение 201 или блок 203 изображения для изображения 201, например, изображение в последовательности изображений, образующих видео или видеопоследовательность. Блок 203 изображения также может называться текущим блоком изображения или блоком изображения, который должен быть закодирован, а изображение 201 может упоминаться как текущее изображение или изображение, которое должно быть кодировано (в частности, при кодировании видео, чтобы отличить текущее изображение от других изображений, другие изображения являются, например, ранее кодированными и/или декодированными изображениями в одной и той же видеопоследовательности, то есть видеопоследовательности, которая также включает в себя текущее изображение).[00104] Encoder 20 receives, for example, using input 202, image 201 or image block 203 for image 201, for example, an image in a sequence of images constituting a video or video sequence. The image block 203 may also be referred to as the current image block or the image block to be encoded, and the image 201 may be referred to as the current image or the image to be encoded (particularly in video encoding, to distinguish the current image from other images, other the pictures are, for example, previously encoded and/or decoded pictures in the same video sequence, i.e. a video sequence that also includes the current picture).

[00105] В одном варианте осуществления кодер 20 может включать в себя блок разделения (не показан на фиг. 2), сконфигурированный для разделения изображения 201 на множество блоков, таких как блок 203 изображения. Изображение 201 обычно разделяется на множество неперекрывающихся блоков. Блок разделения может быть сконфигурирован для использования одного и того же размера блока для всех изображений в видеопоследовательности и соответствующей сетки, определяющей размер блока, или изменения размера блока между изображениями или подмножествами или группами изображений и разделения каждого изображения на соответствующие блоки.[00105] In one embodiment, encoder 20 may include a splitter (not shown in FIG. 2) configured to split image 201 into a plurality of blocks, such as image block 203. Image 201 is typically divided into a plurality of non-overlapping blocks. The partition block may be configured to use the same block size for all images in a video sequence and an appropriate block size grid, or vary the block size between images or subsets or groups of images and divide each image into appropriate blocks.

[00106] В одном варианте осуществления блок 260 обработки предсказания кодера 20 может быть сконфигурирован для выполнения любой комбинации методов разделения, описанных выше.[00106] In one embodiment, encoder 20 prediction processor 260 may be configured to perform any combination of the separation techniques described above.

[00107] Подобно изображению 201, блок 203 изображения также или может рассматриваться как двумерный массив или матрица выборок со значениями выборок, хотя и меньшего размера, чем изображение 201. Другими словами, блок 203 изображения может включать в себя, например, один массив выборок (например, массив яркости в случае монохромного изображения 201), три массива выборок (например, один массив яркости и два массива цветности в случай цветного изображения) или любое другое количество и/или тип массивов в зависимости от применяемого цветового формата. Количество выборок в горизонтальном и вертикальном направлениях (или осях) блока 203 изображения определяет размер блока 203 изображения.[00107] Like image 201, image block 203 can also or may be viewed as a two-dimensional array or matrix of samples with sample values, albeit smaller than image 201. In other words, image block 203 may include, for example, one array of samples ( eg, a luma array in the case of a monochrome image 201), three sample arrays (eg, one luminance array and two chrominance arrays in the case of a color image), or any other number and/or type of arrays depending on the color format used. The number of samples in the horizontal and vertical directions (or axes) of the image block 203 determines the size of the image block 203 .

[00108] Кодер 20, показанный на фиг. 2, сконфигурирован для кодирования изображения 201 блок за блоком, например, для выполнения кодирования и предсказания для каждого блока 203 изображения.[00108] The encoder 20 shown in FIG. 2 is configured to encode the image 201 block by block, for example, to perform encoding and prediction for each block 203 of the image.

[00109] Блок 204 вычисления остатка сконфигурирован для вычисления остаточного блока 205 на основе блока 203 изображения и блока 265 предсказания (дополнительные подробности о блоке 265 предсказания представлены в данном документе ниже), например, для получения остаточного блока 205 в области выборки путем вычитания значений выборок блока 265 предсказания из значений выборок блока 203 изображения выборка за выборкой (пиксель за пикселем).[00109] The residual block 204 is configured to compute a residual block 205 based on the image block 203 and the prediction block 265 (more details about the prediction block 265 are provided herein below), for example, to obtain a residual block 205 in the sample area by subtracting the values of the samples prediction block 265 from sample values of image block 203 sample by sample (pixel by pixel).

[00110] Блок 206 обработки преобразования сконфигурирован для применения преобразования, например дискретного косинусного преобразования (DCT) или дискретного синусоидального преобразования (DST), к значениям выборки остаточного блока 205 для получения коэффициентов 207 преобразования в области преобразования. Коэффициенты 207 преобразования также могут называться остаточными коэффициентами преобразования и представлять остаточный блок 205 в области преобразования.[00110] The transform processing unit 206 is configured to apply a transform, such as a discrete cosine transform (DCT) or a discrete sine transform (DST), to the sample values of the residual block 205 to obtain transform coefficients 207 in the transform domain. The transform coefficients 207 may also be referred to as residual transform coefficients and represent the residual block 205 in the transform region.

[00111] Блок 206 обработки преобразования может быть сконфигурирован для применения целочисленных аппроксимаций DCT/DST, таких как преобразования, указанные для HEVC/H.265. По сравнению с ортогональным преобразованием DCT, такие целочисленные аппроксимации обычно масштабируются несколько раз. Чтобы сохранить норму остаточного блока, обработанного посредством прямого и обратного преобразований, дополнительный коэффициент масштабирования применяется как часть процесса преобразования. Коэффициент масштабирования обычно выбирается на основе некоторых ограничений, например, коэффициент масштабирования - это степень двойки для операции сдвига, битовая глубина коэффициента преобразования или компромисс между точностью и затратами на реализацию. Например, конкретный коэффициент масштабирования задается для обратного преобразования на стороне декодера 30, например, блоком 212 обработки обратного преобразования (и соответствующим обратным преобразованием на стороне кодера 20, например, блоком 212 обработки обратного преобразования), и, соответственно, соответствующий коэффициент масштабирования может быть указан для прямого преобразования на стороне кодера 20 блоком 206 обработки преобразования.[00111] Transform processing unit 206 may be configured to apply DCT/DST integer approximations, such as the transforms specified for HEVC/H.265. Compared to the orthogonal DCT, such integer approximations are typically scaled several times. In order to preserve the rate of the residual block processed through forward and inverse transforms, an additional scaling factor is applied as part of the transform process. The scaling factor is usually chosen based on some constraints, for example, the scaling factor is a power of two for the shift operation, the bit depth of the transform factor, or a trade-off between accuracy and implementation cost. For example, a specific scaling factor is specified for the inverse transform on the decoder 30 side, for example, by the inverse transform processing unit 212 (and the corresponding inverse transform on the encoder 20 side, for example, by the inverse transform processing unit 212), and accordingly, the corresponding scaling factor can be specified for direct conversion on the encoder 20 side by the conversion processing unit 206 .

[00112] Блок 208 квантования сконфигурирован для квантования коэффициентов 207 преобразования для получения квантованных коэффициентов 209 преобразования, например, путем применения скалярного квантования или векторного квантования. Квантованные коэффициенты 209 преобразования также могут упоминаться как квантованные остаточные коэффициенты 209. Процесс квантования может уменьшить битовую глубину, относящуюся к некоторым или всем коэффициентам 207 преобразования. Например, n-битовый коэффициент преобразования может быть округлен до m-битового коэффициента преобразования во время квантования, где n больше m. Степень квантования может быть модифицирована путем регулировки параметра квантования (QP). Например, для скалярного квантования может применяться другое масштабирование для достижения более тонкого или более грубого квантования. Меньший шаг квантования соответствует более тонкому квантованию, тогда как больший шаг квантования соответствует более грубому квантованию. Соответствующий шаг квантования может быть указан QP. Например, параметр квантования может быть индексом для заранее определенного набора подходящих шагов квантования. Например, меньший параметр квантования может соответствовать более тонкому квантованию (например, меньшему шагу квантования), а больший параметр квантования может соответствовать более грубому квантованию (например, большему шагу квантования), и наоборот. Квантование может включать в себя деление на шаг квантования и соответствующее квантование или деквантование, например, посредством обратного квантования 210, или может включать в себя умножение на шаг квантования. Варианты осуществления согласно некоторым стандартам, таким как HEVC, могут использовать параметр квантования для определения шага квантования. Как правило, шаг квантования может быть вычислен на основе параметра квантования с использованием аппроксимации с фиксированной точкой уравнения, включающего в себя деление. Дополнительные коэффициенты масштабирования могут быть введены для квантования и деквантования, чтобы восстановить норму остаточного блока, который может быть модифицирован из-за масштабирования, используемого в приближении с фиксированной точкой уравнения для шага квантования и параметра квантования. В одном примерном варианте осуществления масштаб обратного преобразования может быть объединен со шкалой деквантования. В качестве альтернативы могут использоваться настроенные таблицы квантования и передаваться сигнал от кодера к декодеру, например, в битовом потоке. Квантование - это операция с потерями, где больший шаг квантования указывает на большие потери.[00112] The quantizer 208 is configured to quantize the transform coefficients 207 to obtain quantized transform coefficients 209, for example by applying scalar quantization or vector quantization. The quantized transform coefficients 209 may also be referred to as quantized residual coefficients 209. The quantization process may reduce the bit depth related to some or all of the transform coefficients 207. For example, an n-bit transform factor may be rounded to an m-bit transform factor during quantization, where n is greater than m. The degree of quantization can be modified by adjusting the quantization parameter (QP). For example, for scalar quantization, different scaling may be applied to achieve finer or coarser quantization. A smaller quantization step corresponds to a finer quantization, while a larger quantization step corresponds to a coarser quantization. The corresponding quantization step may be indicated by QP. For example, the quantization parameter may be an index to a predetermined set of suitable quantization steps. For example, a smaller quantization parameter may correspond to a finer quantization (eg, a smaller quantization step), and a larger quantization parameter may correspond to a coarser quantization (eg, a larger quantization step), and vice versa. Quantization may include dividing by a quantization step and corresponding quantization or dequantization, such as by inverse quantization 210, or may include multiplying by a quantization step. Embodiments according to some standards, such as HEVC, may use a quantization parameter to determine the quantization step. Typically, the quantization step can be calculated based on the quantization parameter using a fixed-point approximation of an equation involving division. Additional scaling factors may be introduced for quantization and dequantization to recover the residual block rate, which may be modified due to the scaling used in the fixed-point approximation of the equation for the quantization step and quantization parameter. In one exemplary embodiment, the inverse transform scale may be combined with the dequantization scale. Alternatively, customized quantization tables may be used and the signal transmitted from the encoder to the decoder, for example, in a bit stream. Quantization is a lossy operation, where a larger quantization step indicates a larger loss.

[00113] Блок 210 обратного квантования сконфигурирован для применения обратного квантования блока 208 квантования к квантованным коэффициентам для получения деквантованных коэффициентов 211, например, применения, на основе или с использованием того же шага квантования, что и блок 208 квантования, обратной схемы квантования, применяемой блоком 208 квантования. Деквантованные коэффициенты 211 также могут упоминаться как деквантованные остаточные коэффициенты 211 и соответствуют, хотя обычно отличаются от коэффициентов преобразования из-за потерь, вызванных квантованием, коэффициентам 207 преобразования.[00113] The inverse quantizer 210 is configured to apply the inverse quantization of the quantizer 208 to the quantized coefficients to obtain the dequantized coefficients 211, for example, applying, based on or using the same quantization step as the quantizer 208, an inverse quantization scheme applied by the 208 quantization. The dequantized coefficients 211 may also be referred to as the dequantized residual coefficients 211 and correspond to, although typically differ from, the transform coefficients due to loss caused by quantization, to the transform coefficients 207.

[00114] Блок 212 обработки обратного преобразования сконфигурирован для применения обратного преобразования для преобразования, применяемого блоком 206 обработки преобразования, например, обратного DCT или обратного DST, для получения блока 213 обратного преобразования в области выборки. Блок 213 обратного преобразования может также называться блоком 213 деквантования обратного преобразования или остаточным блоком 213 обратного преобразования.[00114] The inverse transform processing unit 212 is configured to apply an inverse transform to the transform applied by the transform processing unit 206, such as inverse DCT or inverse DST, to obtain inverse transform block 213 in the sample area. The inverse transform block 213 may also be referred to as the inverse transform dequantization block 213 or the inverse transform residual block 213 .

[00115] Блок 214 восстановления (например, сумматор 214) сконфигурирован для добавления блока 213 обратного преобразования (то есть восстановленного остаточного блока 213) к блоку 265 предсказания, чтобы получить восстановленный блок 215 в области выборки, например, путем сложения значений выборок восстановленного остаточного блока 213 и значений выборок блока 265 предсказания.[00115] Restoration block 214 (e.g., adder 214) is configured to add inverse transform block 213 (i.e., reconstructed residual block 213) to prediction block 265 to obtain reconstructed block 215 in the sample area, for example, by adding sample values of the reconstructed residual block 213 and the sample values of the predictor 265 .

[00116] В одном варианте осуществления буферный блок (или буфер) 216, например, строкового буфера 216, сконфигурирован для буферизации или хранения восстановленного блока 215 и соответствующих значений выборок, например, для внутреннего предсказания. В других вариантах осуществления кодер может быть сконфигурирован для использования нефильтрованных восстановленных блоков и/или соответствующих значений выборок, хранящихся в блоке 216 буфера, для любого типа оценки и/или предсказания, например, внутреннего предсказания.[00116] In one embodiment, a buffer block (or buffer) 216, such as string buffer 216, is configured to buffer or store the reconstructed block 215 and corresponding sample values, such as for intra prediction. In other embodiments, the encoder may be configured to use the unfiltered reconstructed blocks and/or corresponding sample values stored in buffer block 216 for any type of estimation and/or prediction, such as intra prediction.

[00117] Например, один вариант осуществления кодера 20 может быть сконфигурирован так, что блок 216 буфера не только используется для хранения восстановленного блока 215 для внутреннего предсказания 254, но также используется для блока 220 контурного фильтра (не показан на фиг. 2), и/или так, что, например, блок 216 буфера и блок 230 буфера декодированного изображения образуют один буфер. Другие варианты осуществления могут быть сконфигурированы для использования фильтрованных блоков 221 и/или блоков или выборок из буфера 230 декодированных изображений (блоки или выборки не показаны на фиг. 2) в качестве входных данных или основы для внутреннего предсказания 254.[00117] For example, one embodiment of encoder 20 may be configured such that buffer block 216 is not only used to store reconstructed block 215 for intra prediction 254, but is also used for loop filter block 220 (not shown in FIG. 2), and /or so that, for example, the buffer block 216 and the decoded picture buffer block 230 form one buffer. Other embodiments may be configured to use filtered blocks 221 and/or blocks or samples from decoded picture buffer 230 (blocks or samples not shown in FIG. 2) as input or basis for intra prediction 254.

[00118] Блок контурного фильтра (или контурный фильтр) 220 сконфигурирован для фильтрации восстановленного блока 215 для получения отфильтрованного блока 221, сглаживания переходов пикселей или улучшения качества видео. Блок 220 контурного фильтра предназначен для представления одного или нескольких контурных фильтров, в том числе фильтра деблокирования, фильтра с адаптивным смещением (SAO) и других фильтров, например двустороннего фильтра, адаптивного контурного фильтра (ALF), фильтра повышения резкости или сглаживания или коллективного фильтра. Хотя блок 220 контурного фильтра показан на фиг. 2 как контурный фильтр, в других конфигурациях блок 220 контурного фильтра может быть реализован как постконтурный фильтр. Фильтрованный блок 221 также может называться фильтрованным восстановленным блоком 221. Буфер 230 декодированных изображений может хранить восстановленные кодированные блоки после того, как блок 220 контурного фильтра выполнит операции фильтрации на восстановленных кодированных блоках.[00118] The loop filter block (or loop filter) 220 is configured to filter the reconstructed block 215 to obtain a filtered block 221, smooth pixel transitions, or improve video quality. The loop filter block 220 is designed to represent one or more loop filters, including a deblocking filter, an adaptive offset (SAO) filter, and other filters such as a two-sided filter, an adaptive loop filter (ALF), a sharpening or smoothing filter, or a collective filter. Although the loop filter unit 220 is shown in FIG. 2 as a loop filter, in other configurations, the loop filter unit 220 may be implemented as a post loop filter. The filtered block 221 may also be referred to as the filtered reconstructed block 221. The decoded picture buffer 230 may store the reconstructed coded blocks after the loop filter block 220 performs filtering operations on the reconstructed coded blocks.

[00119] Один вариант осуществления кодера 20 (соответственно, блок 220 контурного фильтра) может быть сконфигурирован для вывода параметра контурного фильтра (такого как информация об адаптивном смещении выборки), например, непосредственно или после энтропийного кодирования, выполняемого блоком 270 энтропийного кодирования или любым другим блоком энтропийного кодирования, так что, например, декодер 30 может принимать тот же параметр контурного фильтра и применять тот же параметр контурного фильтра для декодирования.[00119] One embodiment of encoder 20 (respectively, loop filter block 220) may be configured to output a loop filter parameter (such as adaptive sample bias information), for example, directly or after entropy encoding performed by entropy encoding block 270 or any other an entropy encoding unit so that, for example, decoder 30 can receive the same loop filter parameter and apply the same loop filter parameter for decoding.

[00120] DPB 230 может быть памятью опорных изображений, в которой хранятся данные опорных изображений для использования при кодировании видеоданных кодером 20. DPB 230 может быть сформирован любым из множества запоминающих устройств, таких как DRAM (включая синхронную DRAM (SDRAM), магниторезистивную RAM (MRAM) и резистивную RAM (RRAM)) или другие типы запоминающих устройств. DPB 230 и буфер 216 могут быть предоставлены одним и тем же запоминающим устройством или отдельными запоминающими устройствами. В одном варианте осуществления DPB 230 сконфигурирован для хранения отфильтрованного блока 221. DPB 230 может быть дополнительно сконфигурирован для хранения других ранее отфильтрованных блоков, например, ранее восстановленных и отфильтрованных блоков 221, одного и того же текущего изображения или разных изображений, например, ранее восстановленных изображений, и может предоставлять полностью ранее восстановленные, то есть, декодированные изображения (и соответствующие опорные блоки и выборки) и/или частично восстановленное текущее изображение (и соответствующие опорные блоки и выборки), например, для внешнего предсказания. В одном варианте осуществления, если восстановленный блок 215 восстанавливается без внутриконтурной фильтрации, DPB 230 конфигурируется для хранения восстановленного блока 215.[00120] DPB 230 may be a reference picture memory that stores reference picture data for use in encoding video data by encoder 20. DPB 230 may be formed by any of a variety of memories such as DRAM (including synchronous DRAM (SDRAM), magnetoresistive RAM MRAM) and resistive RAM (RRAM)) or other types of storage devices. DPB 230 and buffer 216 may be provided by the same storage device or separate storage devices. In one embodiment, the DPB 230 is configured to store a filtered block 221. The DPB 230 can be further configured to store other previously filtered blocks, such as previously restored and filtered blocks 221, the same current image, or different images, such as previously restored images. , and may provide fully previously reconstructed, i.e., decoded pictures (and corresponding reference blocks and samples) and/or partially reconstructed current picture (and corresponding reference blocks and samples), for example, for inter prediction. In one embodiment, if the recovered block 215 is recovered without in-loop filtering, the DPB 230 is configured to store the recovered block 215.

[00121] Блок 260 обработки предсказания, также называемый блоком 260 обработки предсказания блока, сконфигурирован для приема или получения блока 203 изображения (например, блока 203 текущего изображения для текущего изображения 201) и данных восстановленного изображения, например, опорных выборок одного и того же (или текущего) изображения из буфера 216 и/или опорных изображений данных 231 из одного или более ранее декодированных изображений, из буфера 230 декодированного изображения, и обрабатывать эти данные для предсказания, то есть, чтобы обеспечить блок предсказания 265 это может быть блок 245 внешнего предсказания или блок 255 внутреннего предсказания.[00121] The prediction processing unit 260, also referred to as the block prediction processing unit 260, is configured to receive or obtain an image block 203 (e.g., current image block 203 for the current image 201) and reconstructed image data, such as reference samples of the same ( or current) picture from buffer 216 and/or reference pictures data 231 from one or more previously decoded pictures, from decoded picture buffer 230, and process that data for prediction, i.e., to provide prediction block 265, this may be inter prediction block 245 or block 255 intra prediction.

[00122] Блок 262 выбора режима может быть сконфигурирован для выбора режима предсказания (например, режима внутреннего или внешнего предсказания) и/или соответствующего блока 245 или 255 предсказания, который будет использоваться в качестве блока 265 предсказания, для вычисления остаточного блока 205 и для восстановления восстановленного блока 215.[00122] Mode selector 262 may be configured to select a prediction mode (e.g., intra or inter prediction mode) and/or an appropriate prediction block 245 or 255 to be used as prediction block 265, to compute the residual block 205, and to recover refurbished unit 215.

[00123] В одном варианте осуществления блок 262 выбора режима может быть сконфигурирован для выбора режима предсказания (например, из режимов предсказания, поддерживаемых блоком 260 обработки предсказания), где режим предсказания обеспечивает оптимальное совпадение, другими словами, минимальный остаток (минимальный остаток означает лучшее сжатие для передачи или хранения), или обеспечивает минимальные накладные расходы на сигнализацию (минимальные накладные расходы на сигнализацию означают лучшее сжатие для передачи или хранения), или учитывает или уравновешивает и то, и другое. Блок 262 выбора режима может быть сконфигурирован для определения режима предсказания на основе оптимизации скорости-искажения (RDO), то есть выбора режима предсказания, который обеспечивает оптимизацию минимальной скорости-искажения, или выбора режима предсказания, для которого соответствующее искажение скорости, по меньшей мере, удовлетворяет критерию выбора режима предсказания.[00123] In one embodiment, mode selector 262 may be configured to select a prediction mode (e.g., from among the prediction modes supported by prediction processor 260) where the prediction mode provides the best match, in other words, minimum residual (minimum residual means better compression for transmission or storage), or provides minimal signaling overhead (lower signaling overhead means better compression for transmission or storage), or considers or balances both. The mode selector 262 may be configured to determine a rate-distortion optimization (RDO) prediction mode, that is, select a prediction mode that provides minimum rate-distortion optimization, or select a prediction mode for which the corresponding rate distortion is at least satisfies the prediction mode selection criterion.

[00124] Далее более подробно описывается обработка предсказания, выполняемая (например, с использованием модуля 260 обработки предсказания), и выбор режима (например, с использованием модуля 262 выбора режима) на примере кодера 20.[00124] The following describes in more detail the prediction processing performed (for example, using the prediction processing module 260) and mode selection (for example, using the mode selection module 262) using the encoder 20 as an example.

[00125] Как описано выше, кодер 20 сконфигурирован для определения или выбора оптимального или оптимального режима предсказания из набора режимов предсказания (который может быть задан заранее). Набор режимов предсказания может включать в себя, например, режимы внутреннего предсказания и/или режимы внешнего предсказания.[00125] As described above, encoder 20 is configured to determine or select an optimal or optimal prediction mode from a set of prediction modes (which may be predefined). The set of prediction modes may include, for example, intra prediction modes and/or inter prediction modes.

[00126] Набор режимов внутреннего предсказания может включать в себя 35 различных режимов внутреннего предсказания, например, ненаправленные режимы, такие как режим DC (или средний) и планарный режим, или направленные режимы, такие как определенные в H.265, или может включать в себя 67 различных режимов внутреннего предсказания, например, ненаправленные режимы, такие как режим DC (или средний) и планарный режим, или направленные режимы, такие как те, которые определены в H.266, находящемся в стадии разработки.[00126] The set of intra prediction modes may include 35 different intra prediction modes, such as non-directional modes such as DC (or average) mode and planar mode, or directional modes such as those defined in H.265, or may include 67 different intra prediction modes, such as non-directional modes such as DC (or medium) mode and planar mode, or directional modes such as those defined in H.266 under development.

[00127] В одном варианте осуществления набор режимов внешнего предсказания зависит от доступных опорных изображений (то есть, например, по меньшей мере частично декодированных изображений, хранящихся в DPB 230, как описано выше), и других параметров внешнего предсказания, например, зависит от того, все опорное изображение или только часть опорного изображения, например, область окна поиска вокруг области текущего блока, используется для поиска оптимального совпадающего опорного блока и/или, например, зависит от того, применяется ли интерполяция пикселей такая как интерполяция в половину/полупиксель и/или четверть пикселя. Набор режимов внешнего предсказания может включать в себя, например, расширенный режим предиктора вектора движения (предиктор вектора движения AMVP) и режим слияния. В одном варианте осуществления набор режимов внешнего предсказания может включать в себя режим AMVP на основе контрольной точки и режим слияния на основе контрольной точки, которые улучшены в вариантах осуществления настоящего раскрытия. В одном примере блок 254 внутреннего предсказания может быть сконфигурирован для выполнения любой комбинации методов внутреннего предсказания, описанных ниже.[00127] In one embodiment, the set of inter prediction modes depends on the available reference pictures (i.e., for example, the at least partially decoded pictures stored in the DPB 230 as described above), and other inter prediction parameters, for example, depends on , the entire reference image or only part of the reference image, e.g., the area of the search box around the region of the current block, is used to find the best matching reference block and/or, for example, depends on whether pixel interpolation is applied such as half/half pixel interpolation and/ or a quarter pixel. The set of inter prediction modes may include, for example, an enhanced motion vector predictor mode (Motion Vector Predictor AMVP) and a merge mode. In one embodiment, the set of inter prediction modes may include a checkpoint-based AMVP mode and a checkpoint-based merge mode, which are improved in embodiments of the present disclosure. In one example, intra predictor 254 may be configured to perform any combination of the intra prediction methods described below.

[00128] В дополнение к вышеупомянутым режимам предсказания в вариантах осуществления настоящего раскрытия также могут применяться режим пропуска и/или прямой режим.[00128] In addition to the aforementioned prediction modes, embodiments of the present disclosure may also employ skip mode and/or direct mode.

[00129] Блок 260 обработки предсказания может быть дополнительно сконфигурирован для разделения блока 203 изображения на более мелкие разделения блоков или подблоки, например, путем итеративного использования разделения квадродерева (QT), разделения двоичного дерева (BT), разделения тройного дерева (TT) или любой их комбинации, и для выполнения, например, предсказания для каждого из разделов или подблоков блока, где выбор режима включает в себя выбор древовидной структуры разделенного блока 203 изображения и режимов предсказания, применяемых к каждому из разделов блоков или подблоков.[00129] Prediction processing unit 260 may be further configured to split image block 203 into smaller block splits or sub-blocks, for example, by iteratively using quadtree splitting (QT), binary tree splitting (BT), ternary tree splitting (TT), or any combinations thereof, and to perform, for example, prediction for each of the block partitions or subblocks, where the mode selection includes selecting a tree structure of the divided image block 203 and prediction modes applied to each of the block partitions or subblocks.

[00130] Блок 244 внешнего предсказания может включать в себя блок оценки движения (ME) (не показан на фиг.2) и блок компенсации движения (MC) (также не показан на фиг.2). Блок оценки движения сконфигурирован для приема или получения блока 203 изображения (например, блока 203 текущего изображения для текущего изображения 201) и декодированного изображения 231, или по меньшей мере одного или нескольких ранее восстановленных блоков, например, восстановленных блоков одного или больше других/различных ранее декодированных изображений 231 для оценки движения. Например, видеопоследовательность может включать в себя текущее изображение и ранее декодированные изображения 31, или, другими словами, текущее изображение и ранее декодированные изображения 31 могут быть частью или формировать последовательность изображений, образующих видеопоследовательность.[00130] Inter prediction block 244 may include a motion estimator (ME) (not shown in FIG. 2) and a motion compensation (MC) block (also not shown in FIG. 2). The motion estimator is configured to receive or obtain an image block 203 (e.g., current image block 203 for the current image 201) and a decoded image 231, or at least one or more previously reconstructed blocks, e.g., reconstructed blocks of one or more other/different previously decoded images 231 for motion estimation. For example, the video sequence may include the current picture and previously decoded pictures 31, or in other words, the current picture and previously decoded pictures 31 may be part of or form a sequence of pictures constituting the video sequence.

[00131] Например, кодер 20 может быть выполнен с возможностью выбора опорного блока из множества опорных блоков одного и того же изображения или различных изображений из множества других изображений и обеспечить, для блока оценки движения (не показан на фиг. 2), опорное изображение и/или обеспечить смещение (пространственное смещение) между позицией (координатами X и Y), опорного блока и позицией текущего блока в качестве параметра внешнего предсказания. Это смещение также называется вектором движения (MV).[00131] For example, encoder 20 may be configured to select a reference block from a plurality of reference blocks of the same picture or different pictures from a plurality of other pictures and provide, for a motion estimator (not shown in FIG. 2), a reference picture and /or provide an offset (spatial offset) between the position (X and Y coordinates) of the reference block and the position of the current block as an inter prediction parameter. This displacement is also called motion vector (MV).

[00132] Блок компенсации движения сконфигурирован для получения параметра внешнего предсказания и выполнения внешнего предсказания на основе или с использованием параметра внешнего предсказания для получения блока 245 внешнего предсказания. Компенсация движения, выполняемая блоком компенсации движения (не показанным на фиг. 2), может включать в себя выборку или генерацию блока предсказания на основе вектора движения/блока, определенного посредством оценки движения (возможно, выполнение интерполяции для точности субпикселя). Интерполяционная фильтрация может генерировать дополнительные выборки пикселей из известных выборок пикселей, тем самым потенциально увеличивая количество кандидатных блоков предсказания, которые могут использоваться для кодирования блока изображения. После приема вектора движения для PU текущего блока изображения блок 246 компенсации движения может найти блок предсказания, на который указывает вектор движения, в одном списке опорных изображений. Блок 246 компенсации движения может дополнительно генерировать элементы синтаксиса, связанные с блоками и слайсами видео, для использования декодером 30 при декодировании блоков изображения слайса видео.[00132] The motion compensation block is configured to obtain an inter prediction parameter and perform inter prediction based on or using the inter prediction parameter to obtain an inter prediction block 245 . Motion compensation performed by a motion compensator (not shown in FIG. 2) may include sampling or generating a prediction block based on a motion vector/block determined by motion estimation (perhaps performing interpolation for sub-pixel accuracy). Interpolation filtering can generate additional pixel samples from known pixel samples, thereby potentially increasing the number of candidate prediction blocks that can be used to encode an image block. After receiving the motion vector for the PU of the current picture block, the motion compensator 246 can find the prediction block pointed to by the motion vector in one reference picture list. Motion compensation block 246 may further generate syntax elements associated with video blocks and slices for use by decoder 30 when decoding image blocks of a video slice.

[00133] В одном варианте осуществления блок 244 внешнего предсказания может передавать элементы синтаксиса в блок 270 энтропийного кодирования, и элементы синтаксиса включают в себя параметр внешнего предсказания (например, информацию указания выбора режима внешнего предсказания, используемого для предсказания текущего блока после обхода множества режимов внешнего предсказания). В одном варианте осуществления, если существует только один режим внешнего предсказания, параметр внешнего предсказания может альтернативно не переноситься в элементах синтаксиса. В этом случае сторона 30 декодера может выполнять декодирование непосредственно в режиме предсказания по умолчанию. Можно понять, что блок 244 внешнего предсказания может быть сконфигурирован для выполнения любой комбинации методов внешнего предсказания.[00133] In one embodiment, inter prediction block 244 may pass syntax elements to entropy encoding block 270, and the syntax elements include an inter prediction parameter (e.g., inter prediction mode selection indication information used to predict the current block after traversing a plurality of inter prediction modes). predictions). In one embodiment, if there is only one inter-prediction mode, the inter-prediction parameter may alternatively not be carried in the syntax elements. In this case, the decoder side 30 can perform decoding directly in the default prediction mode. It can be appreciated that inter predictor 244 may be configured to perform any combination of inter prediction methods.

[00134] Блок 254 внутреннего предсказания сконфигурирован для получения, например, приема блока 203 изображения (текущего блока изображения) и одного или нескольких ранее восстановленных блоков, например, восстановленных соседних блоков, одного и того же изображения для внутренней оценки. Кодер 20 может быть, например, сконфигурирован для выбора режима внутреннего предсказания из множества режимов внутреннего предсказания (которые могут быть заранее определены).[00134] The intra prediction block 254 is configured to obtain, for example, receiving an image block 203 (the current image block) and one or more previously reconstructed blocks, such as reconstructed neighboring blocks, of the same image for intra estimation. Encoder 20 may, for example, be configured to select an intra prediction mode from a plurality of intra prediction modes (which may be predetermined).

[00135] В одном варианте осуществления кодер 20 может быть сконфигурирован для выбора режима внутреннего предсказания на основе критерия оптимизации, например, на основе минимального остатка (например, режим внутреннего предсказания, обеспечивающий блок 255 предсказания, который наиболее аналогичен текущему блоку 203 изображения) или искажения с минимальной скоростью.[00135] In one embodiment, encoder 20 may be configured to select an intra prediction mode based on an optimization criterion, such as a minimum residual (eg, an intra prediction mode providing a prediction block 255 that is most similar to the current image block 203) or distortion with minimum speed.

[00136] Блок 254 внутреннего предсказания дополнительно сконфигурирован для определения на основе параметра внутреннего предсказания, например, выбранного режима внутреннего предсказания, блока 255 внутреннего предсказания. В любом случае, после выбора режима внутреннего предсказания для блока, блок 254 внутреннего предсказания дополнительно конфигурируется для предоставления параметра внутреннего предсказания, то есть информации, указывающей выбранный режим внутреннего предсказания для блока, в блок 270 энтропийного кодирования. В одном примере блок 254 внутреннего предсказания может быть сконфигурирован для выполнения любой комбинации методов внутреннего предсказания.[00136] The intra prediction block 254 is further configured to determine, based on an intra prediction parameter, such as the selected intra prediction mode, the intra prediction block 255. In any case, after selecting the intra prediction mode for the block, the intra prediction block 254 is further configured to provide an intra prediction parameter, that is, information indicating the selected intra prediction mode for the block, to the entropy encoding block 270 . In one example, intra prediction block 254 may be configured to perform any combination of intra prediction methods.

[00137] В одном варианте осуществления блок 254 внутреннего предсказания может передавать элементы синтаксиса в блок 270 энтропийного кодирования, и элементы синтаксиса включают в себя параметр внутреннего предсказания (например, информацию указания выбора режима внутреннего предсказания, используемого для предсказания текущего блока после обхода) из множества режимов внутреннего предсказания). В одном варианте осуществления, если существует только один режим внутреннего предсказания, параметр внутреннего предсказания может альтернативно не переноситься в элементах синтаксиса. В этом случае сторона 30 декодера может выполнять декодирование непосредственно в режиме предсказания по умолчанию.[00137] In one embodiment, the intra prediction block 254 may pass the syntax elements to the entropy encoding block 270, and the syntax elements include an intra prediction parameter (e.g., information indicating selection of an intra prediction mode used to predict the current block after a traversal) from a set intra-prediction modes). In one embodiment, if there is only one intra prediction mode, the intra prediction parameter may alternatively not be carried in the syntax elements. In this case, the decoder side 30 can perform decoding directly in the default prediction mode.

[00138] Блок 270 энтропийного кодирования сконфигурирован для применения алгоритма или схемы энтропийного кодирования (например, схемы кодирования с переменной длиной (VLC), контекстно-адаптивной схемы VLC (CAVLC), схемы арифметического кодирования, контекстно-адаптивного двоичного арифметического кодирования (CABAC), основанного на синтаксисе контекстно-адаптивного двоичного арифметического кодирования (SBAC), энтропийного кодирования с интервалом вероятности (PIPE) или другого способа или метода энтропийного кодирования) к квантованным остаточным коэффициентам 209, параметру внешнего предсказания, параметру внутреннего предсказания и/или параметру контурного фильтра по отдельности или совместно (или не полностью) для получения данных 21 закодированного изображения, которые могут выводиться выводом 272, например, в форме кодированного битового потока 21. Кодированный битовый поток может быть передан на видеодекодер 30 или заархивирован для последующей передачи или поиска видеодекодером 30. Блок 270 энтропийного кодирования может быть дополнительно сконфигурирован для энтропийного кодирования других элементов синтаксиса для текущего кодируемого слайса видео.[00138] The entropy encoding unit 270 is configured to apply an entropy encoding algorithm or scheme (e.g., variable length coding (VLC) scheme, context adaptive VLC scheme (CAVLC), arithmetic coding scheme, context adaptive binary arithmetic coding (CABAC), based on the syntax of context adaptive binary arithmetic coding (SBAC), probability interval entropy coding (PIPE), or other entropy coding method or technique) to the quantized residual coefficients 209, an inter prediction parameter, an intra prediction parameter, and/or a loop filter parameter individually or together (or incompletely) to obtain encoded picture data 21 that can be output by output 272, for example, in the form of an encoded bitstream 21. The encoded bitstream may be transmitted to video decoder 30 or archived for later transmission or retrieval by video decoder 30. Block 270 The entropy encoding may be further configured to entropy encode other syntax elements for the currently encoded video slice.

[00139] Другие структурные варианты видеокодера 20 могут использоваться для кодирования видеопотока. Например, кодер 20, не основанный на преобразовании, может квантовать остаточный сигнал напрямую без блока 206 обработки преобразования для некоторых блоков или кадров. В другом варианте осуществления кодер 20 может иметь блок 208 квантования и блок 210 обратного квантования, объединенные в единый блок.[00139] Other structural variants of video encoder 20 may be used to encode the video stream. For example, non-transform-based encoder 20 may quantize the residual signal directly without transform processing unit 206 for some blocks or frames. In another embodiment, the encoder 20 may have a quantizer 208 and an inverse quantizer 210 combined into a single block.

[00140] В одном варианте осуществления кодер 20 может быть сконфигурирован для реализации способа внешнего предсказания, описанного в следующем варианте осуществления.[00140] In one embodiment, the encoder 20 may be configured to implement the inter prediction method described in the following embodiment.

[00141] Следует понимать, что другие структурные вариации видеокодера 20 могут использоваться для кодирования видеопотока. Например, для некоторых блоков изображения или кадров изображения видеокодер 20 может квантовать остаточный сигнал напрямую без обработки блоком 206 обработки преобразования и, соответственно, без обработки блоком 212 обработки обратного преобразования. В качестве альтернативы, для некоторых блоков изображения или кадров изображения видеокодер 20 не генерирует остаточные данные, и, соответственно, нет необходимости в блоке 206 обработки преобразования, блоке 208 квантования, блоке 210 обратного квантования и блоке 212 обработки обратного преобразования для выполнения обработки. В качестве альтернативы, видеокодер 20 может непосредственно хранить восстановленный блок изображения в качестве опорного блока, без обработки с помощью фильтра 220. В качестве альтернативы, блок 208 квантования и блок 210 обратного квантования в видеокодере 20 могут быть объединены вместе. Контурный фильтр 220 является необязательным, и в случае кодирования со сжатием без потерь блок 206 обработки преобразования, блок 208 квантования, блок 210 обратного квантования и блок 212 обработки обратного преобразования являются необязательными. Следует понимать, что в различных сценариях применений блок 244 внешнего предсказания и блок 254 внутреннего предсказания могут быть активированы выборочно.[00141] It should be understood that other structural variations of video encoder 20 may be used to encode the video stream. For example, for some image blocks or image frames, video encoder 20 may quantize the residual signal directly without being processed by transform processing block 206 and, accordingly, without being processed by inverse transform processing block 212 . Alternatively, for some image blocks or image frames, video encoder 20 does not generate residual data, and accordingly, there is no need for transform processing block 206, quantization block 208, inverse quantization block 210, and inverse transformation processing block 212 to perform processing. Alternatively, video encoder 20 may directly store the reconstructed image block as a reference block, without being processed by filter 220. Alternatively, quantizer 208 and inverse quantizer 210 in video encoder 20 may be combined together. The loop filter 220 is optional, and in the case of lossless compression coding, the transform processing block 206, the quantization block 208, the inverse quantization block 210, and the inverse transform processing block 212 are optional. It should be understood that in different application scenarios, inter predictor 244 and intra predictor 254 may be selectively activated.

[00142] ФИГ. 3 - схематическая/концептуальная блок-схема примера декодера согласно одному варианту осуществления. Обращаясь к фиг. 3, видеодекодер 30 сконфигурирован для приема кодированных данных изображения (например, кодированного битового потока) 21, например, закодированных кодером 20, для получения декодированного изображения 231. В процессе декодирования видеодекодер 30 принимает видеоданные, например закодированный битовый поток видео, который представляет блоки изображения кодированного слайса видео и ассоциированные элементы синтаксиса, от видеокодера 20.[00142] FIG. 3 is a schematic/conceptual block diagram of an example of a decoder according to one embodiment. Referring to FIG. 3, video decoder 30 is configured to receive encoded image data (e.g., an encoded bitstream) 21, such as encoded by encoder 20, to obtain a decoded image 231. video slice and associated syntax elements, from video encoder 20.

[00143] В примере на фиг. 3, декодер 30 включает в себя модуль 304 энтропийного декодирования, модуль 310 обратного квантования, модуль 312 обработки обратного преобразования, модуль 314 восстановления (например, сумматор 314), буфер 316, контурный фильтр 320, буфер 330 декодированных изображений и блок 360 обработки предсказания. Блок 360 обработки предсказания может включать в себя блок 344 внешнего предсказания, блок 354 внутреннего предсказания и блок 362 выбора режима. В некоторых примерах видеодекодер 30 может выполнять этап декодирования, в целом обратный этапу кодирования, описанному со ссылкой на видеокодер 20 на фиг. 2.[00143] In the example of FIG. 3, the decoder 30 includes an entropy decoding unit 304, an inverse quantization unit 310, an inverse transform processing unit 312, a reconstruction unit 314 (e.g., adder 314), a buffer 316, a loop filter 320, a decoded picture buffer 330, and a prediction processing unit 360. The prediction processing block 360 may include an inter prediction block 344, an intra prediction block 354, and a mode selection block 362. In some examples, video decoder 30 may perform a decoding step that is generally the reverse of the encoding step described with reference to video encoder 20 in FIG. 2.

[00144] Модуль 304 энтропийного декодирования сконфигурирован для выполнения энтропийного декодирования кодированных данных 21 изображения для получения, например, квантованных коэффициентов 309 и/или декодированных параметров кодирования (не показаны на фиг. 3), например, любого одного или всех из параметра внешнего предсказания, параметра внутреннего предсказания, параметра контурного фильтра и/или другие элементы синтаксиса (которые декодируются). Модуль 304 энтропийного декодирования дополнительно сконфигурирован для пересылки параметра внешнего предсказания, параметра внутреннего предсказания и/или других элементов синтаксиса в модуль 360 обработки предсказания. Видеодекодер 30 может принимать элементы синтаксиса на уровне слайса видео и/или уровне видеоблока.[00144] The entropy decoding module 304 is configured to perform entropy decoding of the encoded image data 21 to obtain, for example, quantized coefficients 309 and/or decoded coding parameters (not shown in FIG. 3), for example, any one or all of the inter prediction parameter, an intra prediction parameter, a loop filter parameter, and/or other syntax elements (which are decoded). The entropy decoding module 304 is further configured to forward the inter prediction parameter, the intra prediction parameter, and/or other syntax elements to the prediction processing module 360 . Video decoder 30 may receive syntax elements at the video slice level and/or video block level.

[00145] Блок 310 обратного квантования может иметь ту же функцию, что и блок 110 обратного квантования, блок 312 обработки обратного преобразования может иметь ту же функцию, что и блок 212 обработки обратного преобразования, блок 314 восстановления может иметь ту же функцию, что и блок 214 восстановления, буфер 316 может иметь ту же функцию, что и буфер 216, контурный фильтр 320 может иметь ту же функцию, что и контурный фильтр 220, и буфер 330 декодированного изображения может иметь ту же функцию, что и буфер 230 декодированного изображения. [00145] The inverse quantization block 310 may have the same function as the inverse quantization block 110, the inverse transform processing block 312 may have the same function as the inverse transform processing block 212, the reconstruction block 314 may have the same function as decoder 214, buffer 316 may have the same function as buffer 216, loop filter 320 may have the same function as loop filter 220, and decoded picture buffer 330 may have the same function as decoded picture buffer 230.

[00146] Блок 360 обработки предсказания может включать в себя блок 344 внешнего предсказания и блок 354 внутреннего предсказания, где блок 344 внешнего предсказания может напоминать блок 244 внешнего предсказания по функциям, а блок 354 внутреннего предсказания может напоминать блок 254 внутреннего предсказания по функциям. Блок 360 обработки предсказания, как правило, сконфигурирован для выполнения предсказания блока и/или получения блока 365 предсказания из закодированных данных 21, а также приема или получения (явно или неявно) параметров, связанных с предсказанием, и/или информации о выбранном режиме предсказания, например, из модуля 304 энтропийного декодирования.[00146] Prediction processing unit 360 may include inter prediction unit 344 and intra prediction unit 354, where inter prediction unit 344 may resemble inter function prediction unit 244 and intra prediction unit 354 may resemble intra function prediction unit 254. Prediction processing unit 360 is typically configured to perform block prediction and/or obtain prediction block 365 from encoded data 21, and to receive or obtain (explicitly or implicitly) prediction-related parameters and/or information about the selected prediction mode, for example, from module 304 entropy decoding.

[00147] Когда слайс видео кодируется как внутреннекодированный (I) слайс, блок 354 внутреннего предсказания блока 360 обработки предсказания конфигурируется для генерации блока 365 предсказания для блока изображения текущего слайса видео на основе сигнализированного режима внутреннего предсказания и данных из ранее декодированных блоков текущего кадра или изображения. Когда видеокадр кодируется как внешнекодированный (то есть B или P) слайс, блок 344 внешнего предсказания (например, блок компенсации движения) блока 360 обработки предсказания конфигурируется для генерации блока 365 предсказания для видеоблока текущего слайса видео на основе вектора движения и других элементов синтаксиса, принятых из блока 304 энтропийного декодирования. Для внешнего предсказания блок предсказания может быть сгенерирован из одного из опорных изображений в одном списке опорных изображений. Видеодекодер 30 может создавать списки опорных кадров, список 0 и список 1, используя метод создания по умолчанию на основе опорных изображений, хранящихся в DPB 330.[00147] When a video slice is encoded as an intra-coded (I) slice, the intra prediction block 354 of the prediction processing block 360 is configured to generate a prediction block 365 for a picture block of the current video slice based on the signaled intra prediction mode and data from previously decoded blocks of the current frame or picture . When a video frame is encoded as an inter-coded (i.e., B or P) slice, the inter prediction block 344 (e.g., motion compensation block) of the prediction processing block 360 is configured to generate a predictor 365 for the video block of the current video slice based on the motion vector and other syntax elements received from block 304 entropy decoding. For inter prediction, a prediction block may be generated from one of the reference pictures in one reference picture list. Video decoder 30 may create reference frame lists, list 0 and list 1 using a default creation method based on reference pictures stored in DPB 330.

[00148] Блок 360 обработки предсказания сконфигурирован для определения информации предсказания для видеоблока текущего слайса видео путем синтаксического анализа вектора движения и других элементов синтаксиса и использования информации предсказания для генерации блока предсказания для текущего декодируемого видеоблока. В одном примере настоящего изобретения блок 360 обработки предсказания использует некоторые из принятых элементов синтаксиса для определения режима предсказания (например, внутреннее или внешнее предсказание), используемого для кодирования видеоблоков слайса видео, типа слайса внешнего предсказания (например, B-слайс, P-слайс или GPB-слайс), информации о создании для одного или нескольких списков опорных изображений для слайса, вектора движения для каждого внешнекодированного видеоблока слайса, статуса межкадрового предсказания для каждого внешнекодированного видеоблока слайса и другую информацию для декодирования видеоблоков в текущем слвйсе видео. В другом варианте осуществления элементы синтаксиса, принятые видеодекодером 30 из битового потока, включают в себя элементы синтаксиса в одном или нескольких из адаптивного набора параметров (APS), набора параметров последовательности (SPS), набора параметров изображения (PPS) или заголовка слайса.[00148] The prediction processing unit 360 is configured to determine prediction information for a video block of the current video slice by parsing the motion vector and other syntax elements, and using the prediction information to generate a prediction block for the current video block being decoded. In one example of the present invention, prediction processing unit 360 uses some of the received syntax elements to determine the prediction mode (eg, intra or inter prediction) used to encode video blocks of a video slice, type of inter prediction slice (eg, B-slice, P-slice, or GPB slice), creation information for one or more reference picture lists for the slice, motion vector for each intercoded video block of the slice, interframe prediction status for each intercoded video block of the slice, and other information for decoding video blocks in the current video slice. In another embodiment, syntax elements received by video decoder 30 from the bitstream include syntax elements in one or more of an adaptive parameter set (APS), sequence parameter set (SPS), picture parameter set (PPS), or slice header.

[00149] Блок 310 обратного квантования может быть сконфигурирован для обратного квантования (то есть деквантования) квантованных коэффициентов преобразования, предоставленных в битовом потоке и декодированных модулем 304 энтропийного декодирования. Процесс обратного квантования может включать в себя: использование параметра квантования, вычисленного видеокодером 20 для каждого видеоблока в слайсе видео, для определения степени квантования, которая должна применяться, и, аналогично, степени обратного квантования, которая должна применяться.[00149] Inverse quantizer 310 may be configured to inverse quantize (ie, dequantize) the quantized transform coefficients provided in the bitstream and decoded by entropy decoding module 304. The inverse quantization process may include: using a quantization parameter calculated by video encoder 20 for each video block in a video slice to determine the amount of quantization to be applied and, likewise, the amount of inverse quantization to be applied.

[00150] Блок 312 обработки обратного преобразования сконфигурирован для применения обратного преобразования (например, обратного DCT, обратного целочисленного преобразования или концептуально аналогичного процесса обратного преобразования) к коэффициентам преобразования для генерации остаточных блоков в области пикселей.[00150] The inverse transform processing unit 312 is configured to apply an inverse transform (eg, inverse DCT, inverse integer transform, or a conceptually similar inverse transform process) to the transform coefficients to generate residual blocks in the pixel region.

[00151] Блок 314 восстановления (например, сумматор 314) сконфигурирован для добавления блока 313 обратного преобразования (то есть восстановленного остаточного блока 313) к блоку 365 предсказания, чтобы получить восстановленный блок 315 в области выборки, например, путем сложения значений выборок восстановленного остаточного блока 313 и значений выборок блока 365 предсказания.[00151] Reconstructor 314 (e.g., adder 314) is configured to add inverse transform block 313 (i.e., reconstructed residual block 313) to prediction block 365 to obtain reconstructed block 315 in the sample area, for example, by adding sample values of the reconstructed residual block 313 and sample values of prediction block 365 .

[00152] Блок 320 контурного фильтра (в контуре кодирования или после контура кодирования) сконфигурирован для фильтрации восстановленного блока 315 для получения отфильтрованного блока 321, сглаживания переходов пикселей или улучшения качества видео. В одном примере блок 320 контурного фильтра может быть сконфигурирован для выполнения любой комбинации методов фильтрации, описанных ниже. Блок 320 контурного фильтра предназначен для представления одного или нескольких контурных фильтров, в том числе фильтр деблокирования, фильтр с адаптивным смещением (SAO) и другие фильтры, например двусторонний фильтр, адаптивный контурный фильтр (ALF), фильтр повышения резкости или сглаживания или коллективный фильтр. Хотя блок 320 контурного фильтра показан на фиг. 3, как контурный фильтр, в других конфигурациях блок 320 контурного фильтра может быть реализован как постконтурный фильтр.[00152] The loop filter block 320 (either in the encoding loop or after the encoding loop) is configured to filter the reconstructed block 315 to obtain a filtered block 321, smooth pixel transitions, or improve video quality. In one example, the loop filter block 320 may be configured to perform any combination of the filtering methods described below. The loop filter block 320 is designed to represent one or more loop filters, including a deblocking filter, an adaptive offset (SAO) filter, and other filters such as a two-sided filter, an adaptive loop filter (ALF), a sharpening or smoothing filter, or a collective filter. Although the loop filter unit 320 is shown in FIG. 3 as a loop filter, in other configurations, the loop filter unit 320 may be implemented as a post loop filter.

[00153] Декодированные видеоблоки 321 в данном кадре или изображении затем сохраняются в буфере 330 декодированных изображений, в котором хранятся опорные изображения, используемые для последующей компенсации движения.[00153] The decoded video blocks 321 in a given frame or picture are then stored in the decoded picture buffer 330, which stores reference pictures used for subsequent motion compensation.

[00154] Декодер 30 сконфигурирован, например, для вывода декодированного изображения 31 с использованием вывода 332 для представления пользователю или просмотра пользователем.[00154] The decoder 30 is configured, for example, to output the decoded image 31 using the output 332 to be presented to or viewed by the user.

[00155] Другие варианты видеодекодера 30 могут быть сконфигурированы для декодирования сжатого битового потока. Например, декодер 30 может генерировать выходной видеопоток без блока 320 контурного фильтра. Например, декодер 30, не основанный на преобразовании, может обратно квантовать остаточный сигнал напрямую без блока 312 обработки обратного преобразования для некоторых блоков или кадров. В другом варианте осуществления видеодекодер 30 может иметь блок 310 обратного квантования и модуль 312 обработки обратного преобразования, объединенные в один модуль.[00155] Other embodiments of video decoder 30 may be configured to decode the compressed bitstream. For example, decoder 30 may generate an output video stream without loop filter block 320 . For example, a non-transform-based decoder 30 may inversely quantize the residual signal directly without the inverse transform processing unit 312 for some blocks or frames. In another embodiment, video decoder 30 may have an inverse quantizer 310 and an inverse transform processor 312 combined into one unit.

[00156] В одном варианте осуществления декодер 30 сконфигурирован для реализации способа внешнего предсказания, описанного в следующем варианте осуществления.[00156] In one embodiment, the decoder 30 is configured to implement the inter prediction method described in the following embodiment.

[00157] Следует понимать, что другие структурные вариации видеодекодера 30 могут быть сконфигурированы для декодирования кодированного битового потока видеоданных. Например, видеодекодер 30 может генерировать выходной видеопоток без обработки фильтром 320. В качестве альтернативы, для некоторых блоков изображения или кадров изображения блок 304 энтропийного декодирования видеодекодера 30 не получает квантованные коэффициенты посредством декодирования, и, соответственно, нет необходимости в блоке 310 обратного квантования и блоке 312 обработки обратного преобразования для выполнения обработки. Контурный фильтр 320 является необязательным, и в случае сжатия без потерь блок 310 обратного квантования и блок 312 обработки обратного преобразования являются необязательными. Следует понимать, что в различных сценариях применений блок внешнего предсказания и блок внутреннего предсказания могут быть активированы выборочно.[00157] It should be understood that other structural variations of video decoder 30 may be configured to decode the encoded video bitstream. For example, video decoder 30 may generate an output video stream without processing by filter 320. Alternatively, for some image blocks or image frames, entropy decoding block 304 of video decoder 30 does not obtain quantized coefficients through decoding, and accordingly, there is no need for inverse quantization block 310 and block 312 inverse transformation processing to perform processing. The loop filter 320 is optional, and in the case of lossless compression, the inverse quantizer 310 and the inverse transform processor 312 are optional. It should be understood that in different application scenarios, the inter prediction block and the intra prediction block may be selectively activated.

[00158] Следует понимать, что на кодере 20 и декодере 30 результат обработки для процедуры может быть выведен в следующую процедуру после дополнительной обработки. Например, после такой процедуры, как интерполяционная фильтрация, выведение вектора движения или циклическая фильтрация, операция, такая как отсечение или сдвиг, дополнительно выполняется над результатом обработки соответствующей процедуры.[00158] It should be understood that at encoder 20 and decoder 30, the processing result for a procedure may be output to the next procedure after further processing. For example, after a procedure such as interpolation filtering, motion vector derivation, or loop filtering, an operation such as clipping or shifting is further performed on the processing result of the corresponding procedure.

[00159] Например, вектор движения контрольной точки текущего блока изображения, выведенный из вектора движения соседнего аффинно-кодированного блока, может быть дополнительно обработан. Это не ограничено здесь. Например, диапазон значений вектора движения ограничен конкретной битовой глубиной. Предполагая, что допустимая битовая глубина вектора движения равна bitDepth, диапазон вектора движения составляет от -2^(bitDepth-1) до 2^(bitDepth-1)-1, где символ «^» представляет степень. Если bitDepth равен 16, диапазон значений составляет от -32768 до 32767. Если bitDepth равно 18, диапазон значений составляет от -131072 до 131071. Диапазон значений может быть ограничен двумя следующими способами.[00159] For example, the motion vector of the checkpoint of the current image block, derived from the motion vector of the neighboring affine-coded block, may be further processed. It's not limited here. For example, the range of motion vector values is limited to a particular bit depth. Assuming that the allowed bit depth of the motion vector is bitDepth, the range of the motion vector is -2^(bitDepth-1) to 2^(bitDepth-1)-1, where the symbol "^" represents the degree. If bitDepth is 16, the range of values is -32768 to 32767. If bitDepth is 18, the range of values is -131072 to 131071. The range of values can be limited in the following two ways.

[00160] Способ 1: Удалить переполненный старший бит вектора движения:[00160] Method 1: Remove the overflowed MSB of the motion vector:

ux= (vx+2bitDepth) % 2bitDepth ux= (vx+2 bitDepth ) % 2 bitDepth

vx = (ux >= 2bitDepth-1) ? (ux − 2bitDepth): uxvx = (ux >= 2 bitDepth-1 ) ? (ux − 2 bitDepth ): ux

uy= (vy+2bitDepth) % 2bitDepth uy= (vy+2 bitDepth ) % 2 bitDepth

vy = (uy >= 2bitDepth-1) ? (uy − 2bitDepth): uyvy = (uy >= 2 bitDepth-1 ) ? (uy − 2 bitDepth ): uy

[00161] Например, значение vx равно -32769, 32767 получается с использованием приведенных выше формул. Значение хранится в компьютере в виде дополнения до двух, дополнительный двоичный код -32769 равен 1,0111,1111,1111,1111 (17 бит), и компьютер обрабатывает переполнение, отбрасывая бит старшего разряда. Следовательно, значение vx равно 0111,1111,1111,1111, то есть 32767, что согласуется с результатом, полученным в результате обработки с использованием упомянутых формул.[00161] For example, the vx value is -32769, 32767 is obtained using the formulas above. The value is stored in the computer as two's complement, the two's complement of -32769 is 1.0111,1111,1111,1111 (17 bits), and the computer handles the overflow by discarding the most significant bit. Therefore, the value of vx is 0111,1111,1111,1111, that is, 32767, which is consistent with the result obtained by processing using the above formulas.

[00162] Способ 2: Выполнить отсечение вектора движения, как показано в следующих формулах:[00162] Method 2: Perform motion vector clipping as shown in the following formulas:

vx = Clip3(-2bitDepth-1, 2bitDepth-1 -1, vx)vx = Clip3(-2 bitDepth-1 , 2 bitDepth-1 -1, vx)

vy = Clip3(-2bitDepth-1, 2bitDepth-1 -1, vy)vy = Clip3(-2 bitDepth-1 , 2 bitDepth-1 -1, vy)

где Clip3 определен для указания обрезки значения z до диапазона [x, y]:where Clip3 is defined to specify clipping of the z value to the range [x, y]:

Clip3(x, y, z) =

Figure 00000001
"
Figure 00000002
Clip3(x, y, z) =
Figure 00000001
"
Figure 00000002

[00163] ФИГ. 4 - схематическая структурная диаграмма устройства кодирования видео согласно одному варианту осуществления. На фиг. 4, устройство 400 кодирования видео (например, устройство кодирования видео или устройство декодирования видео) подходит для реализации описанного здесь варианта осуществления. В одном варианте осуществления устройство 400 кодирования видео может быть видеодекодером (например, декодером 30 на фиг. 1A) или видеокодером (например, кодером 20 на фиг. 1A). В другом варианте осуществления устройство 400 кодирования видео может быть одним или несколькими компонентами декодера 30 на фиг. 1A или кодера 20 на фиг. 1А.[00163] FIG. 4 is a schematic structural diagram of a video encoding device according to one embodiment. In FIG. 4, a video encoding device 400 (eg, a video encoding device or a video decoding device) is suitable for implementing the embodiment described here. In one embodiment, video encoding device 400 may be a video decoder (eg, decoder 30 in FIG. 1A) or a video encoder (eg, encoder 20 in FIG. 1A). In another embodiment, video encoding device 400 may be one or more components of decoder 30 in FIG. 1A or encoder 20 in FIG. 1A.

[00164] Устройство 400 кодирования видео включает в себя: входные порты 410 и блок 420 приемника (Rx), которые сконфигурированы для приема данных; процессор, логический блок или центральный процессор (CPU) 430, которые сконфигурированы для обработки данных; блок 440 передатчика (Tx) и выходные порты 450, которые сконфигурированы для передачи данных; и память 460, сконфигурированная для хранения данных. Устройство 400 кодирования видео может дополнительно включать в себя оптические-электрические компоненты и электрические-оптические (EO) компоненты, подключенные к входным портам 410, блоку 420 приемника, блоку 440 передатчика и выходным портам 450 для выхода или входа оптических или электрических сигналов.[00164] The video encoding device 400 includes: input ports 410 and a receiver (Rx) unit 420 that are configured to receive data; a processor, logical unit, or central processing unit (CPU) 430 that is configured to process data; a transmitter (Tx) unit 440 and output ports 450 that are configured for data transmission; and a memory 460 configured to store data. The video encoding device 400 may further include optical-electrical components and electrical-optical (EO) components connected to input ports 410, receiver unit 420, transmitter unit 440, and output ports 450 for output or input of optical or electrical signals.

[00165] Процессор 430 реализован аппаратно и программно. Процессор 430 может быть реализован как одна или несколько микросхем CPU, ядер (например, многоядерный процессор), FPGA, ASIC и DSP. Процессор 430 обменивается данными с входными портами 410, блоком 420 приемника, блоком 440 передатчика, выходными портами 450 и памятью 460. Процессор 430 включает в себя модуль 470 кодирования (например, модуль кодирования или модуль декодирования). Модуль 470 кодирования реализует варианты осуществления, раскрытые в данном документе, и реализует способ предсказания блока цветности, предусмотренный в вариантах осуществления настоящего раскрытия. Например, модуль 470 кодирования реализует, обрабатывает или предоставляет различные операции кодирования. Следовательно, включение модуля 470 кодирования обеспечивает существенное улучшение функций устройства 400 кодирования видео и влияет на трансформацию устройства 400 кодирования видео в другое состояние. В качестве альтернативы модуль 470 кодирования реализован как инструкции, хранящиеся в памяти 460 и выполняемые процессором 430.[00165] The processor 430 is implemented in hardware and software. Processor 430 may be implemented as one or more CPU chips, cores (eg, a multi-core processor), FPGA, ASIC, and DSP. Processor 430 communicates with input ports 410, receiver unit 420, transmitter unit 440, output ports 450, and memory 460. Processor 430 includes an encoding module 470 (eg, an encoding module or a decoding module). The encoding unit 470 implements the embodiments disclosed herein and implements the chrominance block prediction method provided in the embodiments of the present disclosure. For example, encoding module 470 implements, processes, or provides various encoding operations. Therefore, the inclusion of the encoding module 470 provides a significant improvement in the functions of the video encoding device 400 and affects the transformation of the video encoding device 400 into another state. Alternatively, encoding module 470 is implemented as instructions stored in memory 460 and executed by processor 430.

[00166] Память 460 включает в себя один или несколько дисков, пленочных накопителей и твердотельных накопителей и может использоваться в качестве устройства хранения данных переполнения, для хранения программ, когда такие программы выполняются выборочно, и для хранения инструкций и данных, которые считываются во время выполнения программы. Память 460 может быть энергозависимой и/или энергонезависимой и может быть ROM, RAM, троичной памятью с адресацией по содержимому (TCAM) и/или статической памятью с произвольным доступом (SRAM).[00166] Memory 460 includes one or more disks, tape drives, and solid state drives and can be used as an overflow storage device, for storing programs when such programs are selectively executed, and for storing instructions and data that are read at run time. programs. Memory 460 may be volatile and/or non-volatile and may be ROM, RAM, ternary content addressable memory (TCAM), and/or static random access memory (SRAM).

[00167] ФИГ. 5 - упрощенная блок-схема аппаратуры согласно одному варианту осуществления. На фиг. 5, аппаратура 500 может использоваться как одно или два из исходного устройства 12 и целевого устройства 14 на фиг. 1A согласно одному варианту осуществления. Аппаратура 500 может реализовывать методы этого раскрытия. Другими словами, фиг. 5 - схематическая блок-схема варианта осуществления устройства кодирования или устройства декодирования (называемого устройством кодирования) согласно одному варианту осуществления. Продолжая ссылаться на фиг. 5, аппаратура 500 кодирования может включать в себя процессор 510, память 530 и систему 550 шин. Процессор подключается к памяти с помощью системы шин, память сконфигурирована для хранения инструкции, а процессор сконфигурирован для выполнения инструкции, хранящейся в памяти. В памяти устройства кодирования хранится программный код. Процессор может вызывать программный код, хранящийся в памяти, для выполнения описанных здесь способов кодирования или декодирования видео и, в частности, различных новых способов внешнего предсказания. Чтобы избежать повторов, подробности здесь снова не приводятся.[00167] FIG. 5 is a simplified block diagram of a hardware according to one embodiment. In FIG. 5, hardware 500 can be used as one or both of source device 12 and target device 14 in FIG. 1A according to one embodiment. Apparatus 500 may implement the methods of this disclosure. In other words, FIG. 5 is a schematic block diagram of an embodiment of an encoding device or a decoding device (called an encoding device) according to one embodiment. Continuing to refer to FIG. 5, encoding hardware 500 may include a processor 510, a memory 530, and a bus system 550. The processor is connected to memory using a bus system, the memory is configured to store an instruction, and the processor is configured to execute an instruction stored in memory. The program code is stored in the memory of the encoder. The processor may call program code stored in memory to perform video encoding or decoding techniques described herein, and in particular, various new inter prediction techniques. To avoid repetition, details are again omitted here.

[00168] В одном варианте осуществления процессор 510 может быть центральным процессором (CPU), или процессор 510 может быть другим процессором общего назначения, процессором цифровых сигналов (DSP), специализированной интегральной схемой (ASIC), программируемой вентильной матрицей (FPGA) или другим программируемым логическим устройством, дискретным вентильным или транзисторным логическим устройством, дискретным аппаратным компонентом и т.п. Процессор общего назначения может быть микропроцессором, или процессор может быть любым традиционным процессором или подобным.[00168] In one embodiment, processor 510 may be a central processing unit (CPU), or processor 510 may be another general purpose processor, digital signal processor (DSP), application specific integrated circuit (ASIC), field programmable gate array (FPGA), or other programmable a logic device, a discrete gated or transistorized logic device, a discrete hardware component, and the like. A general purpose processor may be a microprocessor, or the processor may be any conventional processor or the like.

[00169] Память 530 может включать в себя постоянное запоминающее устройство (ROM) или устройство оперативной памяти (RAM). Любой другой подходящий тип запоминающего устройства также может использоваться в качестве памяти 530. Память 530 может включать в себя код и данные 531, к которым имеет доступ процессор 510 с использованием шины 550. Память 530 может дополнительно включать в себя операционную систему 533 и прикладную программу 535. Прикладная программа 535 включает в себя по меньшей мере одну программу, которая позволяет процессору 510 выполнять способ кодирования или декодирования видео (в частности, способ внешнего предсказания, описанный в данном документе), описанный в данном документе. Например, прикладная программа 535 может включать в себя приложения с 1 по N и дополнительно включает в себя приложение для кодирования или декодирования видео (называемое приложением для кодирования видео), которое выполняет способ кодирования или декодирования видео, описанный в данном документе.[00169] The memory 530 may include a read only memory (ROM) or a random access memory (RAM) device. Any other suitable type of storage device may also be used as memory 530. Memory 530 may include code and data 531 accessed by processor 510 using bus 550. Memory 530 may further include operating system 533 and application program 535 The application program 535 includes at least one program that allows the processor 510 to perform the video encoding or decoding method (in particular, the inter prediction method described herein) described herein. For example, application program 535 may include applications 1 to N, and further includes a video encoding or decoding application (referred to as a video encoding application) that performs the video encoding or decoding method described herein.

[00170] Система 550 шин может дополнительно включать в себя шину питания, шину управления, шину сигнала состояния и т.п. в дополнение к шине данных. Однако для ясного описания различные типы шин на чертеже обозначены как система 550 шин.[00170] The bus system 550 may further include a power bus, a control bus, a status signal bus, and the like. in addition to the data bus. However, for a clear description, the various types of tires are referred to in the drawing as busbar system 550.

[00171] В одном варианте осуществления аппаратура 500 кодирования может дополнительно включать в себя одно или несколько устройств вывода, например, дисплей 570. В одном примере дисплей 570 может быть дисплеем касания, который объединяет дисплей и блок касания, который оперативно распознает ввод касанием. Дисплей 570 может быть подключен к процессору 510 с помощью шины 550.[00171] In one embodiment, encoding hardware 500 may further include one or more output devices, such as a display 570. In one example, display 570 may be a touch display that combines a display and a touch unit that operatively recognizes touch input. Display 570 may be connected to processor 510 via bus 550.

[00172] Прямое предсказание означает выбор, для текущего блока кодирования, опорного изображения из множества опорных изображений из набора опорных изображений в прямом порядке, чтобы получить опорный блок. Обратное предсказание означает выбор, для текущего блока кодирования, опорного изображения из набора опорного изображения в обратном порядке, чтобы получить опорный блок. Когда используется способ двунаправленного предсказания, текущий блок кодирования имеет два опорных блока. Каждый опорный блок требует вектора движения и индекс опорного кадра для указания. Затем значение предсказания значения пикселя для пикселя в текущем блоке определяется на основе значений пикселей для пикселей в двух опорных блоках.[00172] Forward prediction means selecting, for the current coding block, a reference picture from a plurality of reference pictures from a set of reference pictures in direct order to obtain a reference block. Reverse prediction means selecting, for the current coding block, a reference picture from the reference picture set in reverse order to obtain the reference block. When the bidirectional prediction method is used, the current coding block has two reference blocks. Each reference block requires a motion vector and a reference frame index to specify. Then, a pixel value prediction value for the pixel in the current block is determined based on the pixel values for the pixels in the two reference blocks.

[00173] Режим внешнего предсказания может включать в себя, без ограничений, расширенный режим предиктора вектора движения (предиктор вектора движения AMVP) и режим слияния.[00173] The inter prediction mode may include, without limitation, an enhanced motion vector predictor mode (Motion Vector Predictor AMVP) and a merge mode.

[00174] В режиме AMVP список кандидатных векторов движения сначала создается с использованием информации о движении кодированного блока, который пространственно или временно смежен с текущим блоком кодирования, затем из списка кандидатных векторов движения определяется оптимальный вектор движения как предиктор вектора движения (MVP) текущего блока кодирования. Издержки искажения скорости вычисляется с использованием формулы (1), где J - издержки искажения скорости передачи RD Cost, SAD - это сумма абсолютных разностей (SAD) между предсказанными значениями пикселей и исходными значениями пикселей, полученными посредством оценки движения, выполняемой с использованием предсказателя кандидатного вектора движения, R - битовая скорость, а λ - множитель Лагранжа. Сторона кодера получает и передает, на сторону декодера, значение индекса выбранного предсказателя вектора движения в списке кандидатных векторов движения и значение индекса опорного кадра. Дополнительно, поиск движения выполняется в окрестности с центром в MVP, чтобы получить фактический вектор движения текущего блока кодирования. Сторона кодера передает разницу (например, разность векторов движения) между MVP и фактическим вектором движения на сторону декодера.[00174] In AMVP mode, a list of candidate motion vectors is first created using the motion information of a coded block that is spatially or temporally adjacent to the current coding block, then the optimal motion vector is determined from the list of candidate motion vectors as a Motion Vector Predictor (MVP) of the current coding block . The rate distortion cost is calculated using formula (1) where J is the rate distortion cost RD Cost, SAD is the sum of the absolute differences (SAD) between the predicted pixel values and the original pixel values obtained by motion estimation performed using a candidate vector predictor motion, R is the bit rate, and λ is the Lagrange multiplier. The encoder side receives and transmits, to the decoder side, the index value of the selected motion vector predictor in the list of candidate motion vectors and the index value of the reference frame. Additionally, a motion search is performed in a neighborhood centered on the MVP to obtain the actual motion vector of the current coding block. The encoder side transmits the difference (eg, motion vector difference) between the MVP and the actual motion vector to the decoder side.

J=SAD+λR (1)J=SAD+λR (1)

[00175] В режиме слияния список информации о кандидатном движении сначала создается с использованием информации о движении кодированного блока, который является пространственно или временно смежным с текущим блоком кодирования, затем оптимальная информация о движении определяется из списка информации о кандидатном движении с использованием издержек скорости искажения и используется в качестве информации о движении текущего блока кодирования, и затем получается значение индекса (обозначенное как индекс слияния) позиции оптимальной информации о движении в списке информации о кандидатном движении и передается на сторону декодера. Индекс слияния может использоваться для получения оптимальной информации о движении. Информация о пространственном и временном движении кандидата текущего блока кодирования показана на фиг. 6, которая представляет собой схематическую блок-схему пространственной и временной информации о кандидатном движении согласно одному варианту осуществления. Информация о пространственном кандидатном движении поступает из пяти пространственно смежных блоков (A0, A1, B0, B1 и B2). Если смежный блок недоступен или находится в режиме внутреннего кодирования, смежный блок не добавляется в список информации о кандидатном движении кандидате. Временную информацию о кандидатном движении текущего блока кодирований получают после того, как MV соответствующей позиции блока в опорном кадре масштабируется на основе подсчета порядка изображения (POC) опорного кадра и текущего кадра. Сначала определяется доступен ли блок, чья позиция T в опорном кадре. Если блок недоступен, выбирается блок с позицией C.[00175] In the merge mode, a candidate motion information list is first created using motion information of an encoded block that is spatially or temporally adjacent to the current coding block, then optimal motion information is determined from the candidate motion information list using distortion rate overhead and is used as the motion information of the current coding block, and then an index value (denoted as a merge index) of the position of the optimal motion information in the candidate motion information list is obtained and transmitted to the decoder side. The fusion index can be used to obtain optimal traffic information. The spatial and temporal movement information of the current coding block candidate is shown in FIG. 6 which is a schematic block diagram of the spatial and temporal candidate motion information according to one embodiment. The spatial candidate motion information comes from five spatially contiguous blocks (A0, A1, B0, B1 and B2). If the adjacent block is not available or is in intra-coding mode, the adjacent block is not added to the Candidate Movement Information List. The temporal information about the motion candidate of the current coding block is obtained after the MV of the corresponding block position in the reference frame is scaled based on the Picture Order Count (POC) of the reference frame and the current frame. First, it is determined whether the block whose position is T in the reference frame is available. If the block is not available, the block with position C is selected.

[00176] Информация о движении включает в себя по меньшей мере одну из информации опорного изображения и вектор движения. Информация опорного изображения может включать в себя по меньшей мере одно из следующего: информации о однонаправленной/двунаправленном предсказании, список опорных изображений, и/или индекс опорного изображения, соответствующий списку опорных изображений. Вектор движения относится к позиционному смещению в горизонтальном и вертикальном направлениях.[00176] The motion information includes at least one of the reference picture information and a motion vector. The reference picture information may include at least one of unidirectional/bidirectional prediction information, a reference picture list, and/or a reference picture index corresponding to the reference picture list. The motion vector refers to the positional displacement in the horizontal and vertical directions.

[00177] В список кандидатов на слияние вводится набор кандидатов предиктора вектора движения на основе истории (предиктор вектора движения HMVP). Введение HMVP выглядит следующим образом:[00177] A set of history-based motion vector predictor candidates (HMVP motion vector predictor) is entered into the merge candidate list. The introduction of HMVP is as follows:

[00178] Способ предиктора вектора движения HMVP для внешнего кодирования: в HMVP таблица кандидатов HMVP поддерживается и обновляется на лету. После декодирования неаффинного внешнекодированного блока таблица обновляется путем добавления связанной новой информации о движении в качестве нового кандидата HMVP к последней записи таблицы. Ограниченное правило FIFO применяется для удаления и добавления записей в таблицу. Кандидаты HMVP могут применяться либо к списку кандидатов на слияние, либо к списку кандидатов AMVP.[00178] HMVP Motion Vector Predictor Method for Outer Coding: In HMVP, an HMVP candidate table is maintained and updated on the fly. After decoding the non-affine outer-coded block, the table is updated by adding the associated new motion information as a new HMVP candidate to the last table entry. A restricted FIFO rule is used to remove and add records to a table. HMVP candidates can apply to either the merger candidate list or the AMVP candidate list.

[00179] В универсальном кодировании видео (VVC) векторы движения неаффинных блоков с внешним кодированием могут сигнализироваться двумя способами: в расширенном режиме предиктора вектора движения (AMVP) или в режиме слияния. Для режима AMVP сигнализируется разница между реальным вектором движения и предиктором вектора движения (MVP), опорным индексом и индексом MVP, относящимся к списку кандидатов AMVP. Для режима слияния указывается индекс слияния, относящийся к списку кандидатов на слияние, и наследуется вся информация о движении, связанная с кандидатом на слияние.[00179] In universal video coding (VVC), motion vectors of inter-coded non-affine blocks can be signaled in two ways: in enhanced motion vector predictor (AMVP) mode or in fusion mode. For the AMVP mode, the difference between the real motion vector and the motion vector predictor (MVP), the reference index, and the MVP index related to the AMVP candidate list is signaled. For the merge mode, a merge index relating to the list of merge candidates is specified, and all traffic information associated with the merge candidate is inherited.

[00180] И список кандидатов AMVP, и список кандидатов на слияние выводятся из соседних по времени или пространству кодированных блоков. В обычных условиях тестирования до шести кандидатов на слияние и до двух кандидатов AMVP могут быть добавлены в список кандидатов для предиктора вектора движения.[00180] Both the AMVP candidate list and the merge candidate list are derived from temporally or spatially adjacent encoded blocks. Under normal testing conditions, up to six merger candidates and up to two AMVP candidates can be added to the motion vector predictor candidate list.

[00181] Кандидат HMVP определяется как информация о движении ранее кодированного блока. Таблица с множеством кандидатов HMVP поддерживается во время кодирования/декодирования. Таблица очищается при обнаружении нового слайса. Всякий раз, когда есть внешнекодированный неаффинный блок, соответствующая информация о движении добавляется к последней записи таблицы в качестве нового кандидата HMVP. Общий поток кодирования изображен на фиг. 7.[00181] An HMVP candidate is defined as motion information of a previously encoded block. A multi-candidate HMVP table is maintained during encoding/decoding. The table is cleared when a new slice is found. Whenever there is an outer-coded non-affine block, the corresponding motion information is added to the last table entry as a new HMVP candidate. The overall coding stream is shown in FIG. 7.

[00182] В этом описании со ссылкой на фиг. 8 (которая представляет собой схематическую блок-схему обновления таблицы согласно одному варианту осуществления) размер S таблицы установлен равным 6, что указывает на то, что в таблицу можно добавить до шести кандидатов HMVP. При вставке нового кандидата движения в таблицу используется правило ограниченного FIFO, когда сначала применяется проверка избыточности, чтобы определить, есть ли в таблице идентичный HMVP. В случае обнаружения, идентичный HMVP удаляется из таблицы, а все кандидаты HMVP впоследствии перемещаются вперед, то есть с индексами, уменьшенными на 1.[00182] In this description, with reference to FIG. 8 (which is a schematic flowchart of updating a table according to one embodiment), the size S of the table is set to 6, indicating that up to six HMVP candidates can be added to the table. When inserting a new motion candidate into a table, a limited FIFO rule is used where a redundancy check is first applied to determine if there is an identical HMVP in the table. If found, the identical HMVP is removed from the table and all HMVP candidates are subsequently moved forward, i.e. with indexes decremented by 1.

[00183] Кандидаты HMVP могут использоваться в процессе создания списка кандидатов на слияние. Несколько последних кандидатов HMVP в таблице проверяются по порядку и вставляются в список кандидатов после кандидата TMVP. Сокращение применяется к кандидатам HMVP для кандидата пространственного или временного слияния, за исключением кандидата движения подблока (то есть ATMVP).[00183] HMVP candidates may be used in the process of creating a merge candidate list. The last few HMVP candidates in the table are checked in order and inserted into the list of candidates after the TMVP candidate. The reduction applies to HMVP candidates for a spatial or temporal merge candidate, with the exception of a subblock motion candidate (ie, ATMVP).

[00184] Чтобы сократить количество операций сокращения, вводятся три упрощения:[00184] To reduce the number of reduction operations, three simplifications are introduced:

[00185] 1) Количество проверяемых кандидатов HMPV, обозначенное буквой L, задается следующим образом:[00185] 1) The number of HMPV candidates to be tested, denoted by the letter L, is given as follows:

L = (N <=4) ? M: (8 - N) (1),L = (N <=4) ? M: (8 - N) (1),

где N указывает количество доступных кандидатов на слияние, не являющихся субблоками, а M указывает количество доступных кандидатов HMVP в таблице. where N indicates the number of non-subblock merge candidates available and M indicates the number of available HMVP candidates in the table.

[00186] 2) Дополнительно, как только общее количество доступных кандидатов на слияние достигает обозначенного максимально допустимого количества кандидатов на слияние минус 1, процесс создания списка кандидатов на слияние из списка HMVP завершается.[00186] 2) Additionally, once the total number of available merge candidates reaches the designated maximum allowable number of merge candidates minus 1, the process of creating the merge candidate list from the HMVP list ends.

[00187] 3) Дополнительно, количество пар для комбинированного вывода кандидатов на слияние с двойным предсказанием уменьшается с 12 до 6.[00187] 3) Additionally, the number of pairs for combined derivation of dual prediction merge candidates is reduced from 12 to 6.

[00188] Аналогично кандидаты HMVP также могут использоваться в процессе создания списка кандидатов AMVP. Векторы движения последних K кандидатов HMVP в таблице вставляются после кандидата TMVP. Только кандидаты HMVP с тем же опорным изображением в качестве целевого опорного изображения AMVP используются для создания списка кандидатов AMVP. К кандидатам HMVP применяется сокращение. В этом дополнении K устанавливается равным 4, в то время как размер списка AMVP остается неизменным, то есть равным 2.[00188] Similarly, HMVP candidates may also be used in the process of creating an AMVP candidate list. The motion vectors of the last K HMVP candidates in the table are inserted after the TMVP candidate. Only HMVP candidates with the same reference picture as the target AMVP reference picture are used to create the list of AMVP candidates. A reduction applies to HMVP candidates. In this padding, K is set to 4 while the size of the AMVP list remains unchanged, i.e. 2.

[00189] Кандидаты HMVP в наборе кандидатов HMVP заполняются в списке кандидатов на слияние до тех пор, пока количество кандидатов в списке кандидатов на слияние не достигнет максимального количества кандидатов.[00189] The HMVP candidates in the HMVP candidate set are filled in the merge candidate list until the number of candidates in the merge candidate list reaches the maximum number of candidates.

[00190] Кандидаты на слияние MVP на основе истории (HMVP) добавляются в список слияния после пространственных MVP и TMVP. В этом способе информация о движении ранее кодированного блока сохраняется в таблице и используется как MVP для текущей CU. Таблица с несколькими кандидатами HMVP поддерживается в процессе кодирования/декодирования. Таблица сбрасывается (очищается) при обнаружении новой строки CTU. Всякий раз, когда есть внешнекодированная CU, не являющаяся субблоком, соответствующая информация о движении добавляется к последней записи таблицы в качестве нового кандидата HMVP.[00190] History Based MVP Merge Candidates (HMVPs) are added to the merge list after the spatial MVPs and TMVPs. In this method, motion information of a previously encoded block is stored in a table and used as the MVP for the current CU. A multi-candidate HMVP table is maintained during the encoding/decoding process. The table is reset (cleared) when a new CTU row is encountered. Whenever there is an outer-coded CU that is not a sub-unit, the corresponding motion information is added to the last table entry as a new HMVP candidate.

[00191] Размер S таблицы HMVP установлен равным 6, что указывает на то, что в таблицу могут быть добавлены до 6 кандидатов MVP на основе истории (HMVP). При вставке нового кандидата движения в таблицу используется ограниченное правило «первым пришел - первым обслужен» (FIFO), в котором сначала применяется проверка избыточности, чтобы определить, есть ли в таблице идентичный HMVP. В случае обнаружения идентичный HMVP удаляется из таблицы, а все кандидаты HMVP впоследствии перемещаются вперед.[00191] The size S of the HMVP table is set to 6, indicating that up to 6 history-based MVP candidates (HMVP) can be added to the table. When inserting a new motion candidate into a table, a limited first-in, first-served (FIFO) rule is used that first applies a redundancy check to determine if there is an identical HMVP in the table. If found, the identical HMVP is removed from the table and all HMVP candidates are subsequently moved forward.

[00192] Кандидаты HMVP могут использоваться в процессе создания списка кандидатов на слияние. Несколько последних кандидатов HMVP в таблице проверяются по порядку и вставляются в список кандидатов после кандидата TMVP. Проверка избыточности применяется к кандидатам HMVP для кандидата пространственного или временного слияния.[00192] HMVP candidates may be used in the process of creating a merge candidate list. The last few HMVP candidates in the table are checked in order and inserted into the list of candidates after the TMVP candidate. A redundancy check is applied to HMVP candidates for a spatial or temporal merge candidate.

[00193] Для уменьшения количества операций проверки избыточности введены следующие упрощения:[00193] To reduce the number of redundancy check operations, the following simplifications are introduced:

[00194] Число кандидатов HMPV, используемых для генерации списка слияния, установлено как ((N <= 4 ) ? M: (8 – N), где N указывает число существующих кандидатов в списке слияния, а M указывает число доступных кандидатов HMVP в таблице.[00194] The number of HMPV candidates used to generate the merge list is set to ((N <= 4 ) × M: (8 - N), where N indicates the number of existing candidates in the merge list and M indicates the number of available HMVP candidates in the table .

[00195] Как только общее число доступных кандидатов на слияние достигает максимально разрешенных кандидатов на слияние минус 1, процесс создания списка кандидатов на слияние из HMVP завершается.[00195] Once the total number of available merge candidates reaches the maximum allowed merge candidates minus 1, the process of generating the merge candidate list from the HMVP ends.

[00196] Однако в список кандидатов на слияние также вводится попарный средний кандидат. Введение попарного среднего кандидата выглядит следующим образом:[00196] However, a pairwise average candidate is also entered into the merge candidate list. The introduction of a pairwise mean candidate looks like this:

[00197] Попарные средние кандидаты генерируются путем усреднения предопределенных пар кандидатов в текущем списке кандидатов на слияние, а предопределенные пары определяются как {(0, 1), (0, 2), (1, 2), (0, 3), (1, 3), (2, 3)}, где числа обозначают индексы слияния в списке кандидатов на слияние. Усредненные векторы движения вычисляются отдельно для каждого опорного списка. Если оба вектора движения доступны в одном списке, эти два вектора движения усредняются, даже если они указывают на разные опорные изображения; если доступен только один вектор движения, напрямую используется один вектор движения; если вектор движения недоступен, этот список остается недействительным. Попарные средние кандидаты заменяют комбинированных кандидатов в стандарте HEVC. Анализ сложности попарных средних кандидатов представлен в таблице 1. Для наихудшего случая дополнительных вычислений для усреднения (последний столбец в таблице 1) необходимо четыре добавления и четыре сдвига для каждой пары (MVx и MVy в L0 и L1), а также четыре сравнения опорных индексов для каждой пары (refIdx0 действителен, а refIdx1 действителен в L0 и L1). Есть шесть пар, что приводит к 24 дополнениям, 24 сдвигам и 24 сравнениям опорных индексов. Комбинированные кандидаты в стандарте HEVC используют два сравнения опорных индексов для каждой пары (refIdx0 действителен в L0, а refIdx1 действителен в L1), и имеется 12 пар, что в целом приводит к 24 сравнениям опорных индексов.[00197] Pairwise average candidates are generated by averaging the predefined candidate pairs in the current merge candidate list, and the predefined pairs are defined as {(0, 1), (0, 2), (1, 2), (0, 3), ( 1, 3), (2, 3)}, where the numbers represent the merge indices in the merge candidate list. The average motion vectors are calculated separately for each reference list. If both motion vectors are available in the same list, the two motion vectors are averaged even if they point to different reference pictures; if only one motion vector is available, one motion vector is used directly; if no motion vector is available, this list remains invalid. Pairwise average candidates replace combined candidates in the HEVC standard. The complexity analysis of the candidate pairwise means is presented in Table 1. For the worst case additional calculations for averaging (last column in Table 1), four additions and four shifts are needed for each pair (MVx and MVy in L0 and L1), as well as four reference index comparisons for each pair (refIdx0 is valid and refIdx1 is valid in L0 and L1). There are six pairs, resulting in 24 additions, 24 shifts, and 24 pivot index comparisons. The combined candidates in the HEVC standard use two reference index comparisons for each pair (refIdx0 is valid in L0 and refIdx1 is valid in L1) and there are 12 pairs, resulting in a total of 24 reference index comparisons.

Таблица 1 Анализ операций для попарных средних кандидатовTable 1 Analysis of operations for pairwise average candidates

Размер списка слиянияMerge list size Максимальное количество потенциальных кандидатовMaximum number of potential candidates Максимальное количество сравнений кандидатовMaximum number of candidate comparisons Максимальное количество вычислений MVMaximum number of MV calculations Максимальное количество временных кандидатовMaximum number of temporary candidates Дополнительный локальный буферAdditional local buffer Максимальное количество обращений к памятиMaximum number of memory accesses ДругиеOther 6, 8, 106, 8, 10 66 00 00 00 00 00 Замена комбинированных кандидатов HEVC, требуются дополнительные вычисления для усредненияReplacing combined HEVC candidates, additional calculations required for averaging

[00198] Попарные средние кандидаты генерируются путем усреднения предопределенных пар кандидатов в существующем списке кандидатов на слияние, а предопределенные пары определяются как {(0, 1), (0, 2), (1, 2), (0, 3), (1, 3), (2, 3)}, где числа обозначают индексы слияния в списке кандидатов на слияние. Усредненные векторы движения вычисляются отдельно для каждого опорного списка. Если оба вектора движения доступны в одном списке, эти два вектора движения усредняются, даже если они указывают на разные опорные изображения; если доступен только один вектор движения, непосредственно он используется; если вектор движения недоступен, этот список недействителен.[00198] Pairwise average candidates are generated by averaging the predefined candidate pairs in the existing merge candidate list, and the predefined pairs are defined as {(0, 1), (0, 2), (1, 2), (0, 3), ( 1, 3), (2, 3)}, where the numbers represent the merge indices in the merge candidate list. The average motion vectors are calculated separately for each reference list. If both motion vectors are available in the same list, the two motion vectors are averaged even if they point to different reference pictures; if only one motion vector is available, it is directly used; if no motion vector is available, this list is invalid.

[00199] Когда список слияния не заполнен после добавления попарных средних кандидатов на слияние, нулевые MVP вставляются в конце до тех пор, пока не будет обнаружено максимальное количество кандидатов на слияние.[00199] When the merge list is not populated after pairwise average merge candidates are added, zero MVPs are inserted at the end until the maximum number of merge candidates is found.

[00200] ФИГ. 9 - схематическая блок-схема способа внешнего предсказания согласно варианту осуществления. Способ, показанный на рисунке 9, позволяет кодеру обрабатывать блоки изображения, размер которых превышает предустановленный размер, связанный с кодером (например, размер буфера). Способ может быть реализован с помощью оборудования, программного обеспечения или любой их комбинации. Способ может быть реализован блоком 244 или 344 внешнего предсказания. Способ может быть способом декодирования или способом кодирования. Как показано на фиг. 9, способ включает в себя следующие операции.[00200] FIG. 9 is a schematic flowchart of an inter prediction method according to an embodiment. The method shown in Figure 9 allows the encoder to process image blocks larger than a preset size associated with the encoder (eg buffer size). The method may be implemented using hardware, software, or any combination thereof. The method may be implemented by block 244 or 344 inter prediction. The method may be a decoding method or an encoding method. As shown in FIG. 9, the method includes the following steps.

[00201] Операция S901. (Кодер (такой как кодер 20 или декодер 30 на фиг.1) или система кодирования видео) создает список кандидатов на слияние текущего блока изображения. Текущий блок изображения может быть блоком кодирования, CU, PU или TU и т.д. Текущий блок изображения может быть любых размеров.[00201] Operation S901. (An encoder (such as encoder 20 or decoder 30 in FIG. 1) or a video coding system) creates a list of merging candidates for the current image block. The current picture block may be a coding block, CU, PU, or TU, and so on. The current image block can be of any size.

[00202] Операция S902. (Система) добавляет информацию о движении кандидата HMVP в список кандидатов на слияние в случае, если количество информации о движении кандидата в списке кандидатов на слияние меньше, чем максимальное количество кандидатов в списке кандидатов на слияние минус N, где N является положительным целым числом.[00202] Operation S902. (The system) adds motion information of the HMVP candidate to the merge candidate list if the amount of motion information of the candidate in the merge candidate list is less than the maximum number of candidates in the merge candidate list minus N, where N is a positive integer.

[00203] Операция S903. (Система) получает информацию о движении текущего блока изображения на основе списка кандидатов на слияние.[00203] Operation S903. (System) obtains information about the movement of the current image block based on the list of merging candidates.

[00204] Операция S904. (Система) определяет предсказанный блок текущего блока изображения на основе информации о движении текущего блока изображения.[00204] Operation S904. (System) determines a predicted block of the current image block based on motion information of the current image block.

[00205] В одном варианте N может быть 1, 2 или 3.[00205] In one embodiment, N may be 1, 2, or 3.

[00206] В одном варианте осуществления получение информации о движении текущего блока изображения на основе списка кандидатов на слияние может содержать: получение индекса слияния текущего блока изображения или индекса слияния для списка кандидатов на слияние; получение информации о движении текущего блока изображения на основе списка кандидатов на слияние и индекса слияния. При этом получение индекса слияния текущего блока изображения или индекса слияния для списка кандидатов на слияние может содержать: получение индекса слияния посредством синтаксического анализа битового потока. При этом получение информации о движении текущего блока изображения на основе списка кандидатов на слияние и индекса слияния может содержать: получение информации о движении из списка кандидатов на слияние с использованием индекса слияния. При этом индекс слияния может использоваться для указания позиции информации о движении в списке кандидатов на слияние.[00206] In one embodiment, obtaining motion information of the current image block based on the merge candidate list may comprise: obtaining a merge index of the current image block or a merge index for the merge candidate list; obtaining information about the movement of the current image block based on the list of merge candidates and the merge index. Wherein, obtaining the merge index of the current image block or the merge index for the merge candidate list may comprise: obtaining the merge index by bitstream parsing. At the same time, obtaining information about the movement of the current image block based on the list of candidates for merge and the index of the merge may include: obtaining information about the movement from the list of candidates for the merge using the merge index. Meanwhile, the merge index may be used to indicate the position of the motion information in the merge candidate list.

[00207] В одном варианте осуществления получение информации о движении текущего блока изображения на основе списка кандидатов на слияние может содержать: определение информации о движении из списка кандидатов на слияние с использованием издержек искажения скорости. При этом способ может дополнительно содержать: кодирование индекса слияния ля списка кандидатов на слияние в битовом потоке.[00207] In one embodiment, obtaining motion information of the current image block based on the merge candidate list may comprise: determining motion information from the merge candidate list using rate distortion overhead. The method may further comprise: encoding a merge index for a list of merge candidates in the bitstream.

[00208] В одном варианте осуществления предсказанный блок можно назвать блоком предсказания.[00208] In one embodiment, the predicted block may be referred to as a prediction block.

[00209] В одном варианте осуществления текущий блок изображения может быть блоком кодирования, единицей кодирования или блоком предсказания.[00209] In one embodiment, the current image block may be a coding block, a coding unit, or a prediction block.

[00210] В одном варианте осуществления максимальное количество кандидатов в списке кандидатов на слияние можно назвать максимальным числом кандидатов предиктора вектора движения слияния (MVP).[00210] In one embodiment, the maximum number of candidates in the merge candidate list may be referred to as the maximum number of merge motion vector predictor (MVP) candidates.

[00211] В одном варианте осуществления информация о движении кандидата HMVP может быть названа кандидатами на слияние на основе истории или кандидатами на слияние на основе истории (HMVP).[00211] In one embodiment, the HMVP candidate movement information may be referred to as history-based merge candidates or history-based merge candidates (HMVPs).

[00212] В одном варианте осуществления способ дополнительно включает в себя: добавление информации о движении попарных средних кандидатов в список кандидатов на слияние в случае, когда количество информации о движении кандидатов в списке кандидатов на слияние равно максимальному количеству кандидатов в списке кандидатов на слияние минус N.[00212] In one embodiment, the method further includes: adding movement information of pairwise average candidates to the merge candidate list in the case where the amount of movement information of candidates in the merge candidate list is equal to the maximum number of candidates in the merge candidate list minus N .

[00213] В одном варианте осуществления информация о попарном среднем движении кандидата генерируется путем усреднения предопределенной пары кандидатов MVP в списке кандидатов на слияние.[00213] In one embodiment, candidate pairwise average motion information is generated by averaging a predetermined pair of MVP candidates in the merge candidate list.

[00214] В одном варианте осуществления информация о движении попарного среднего кандидата может быть названа попарным средним кандидатом.[00214] In one embodiment, the movement information of a pairwise average candidate may be referred to as a pairwise average candidate.

[00215] В одном варианте осуществления в списке кандидатов на слияние доступные кандидаты импортируются в список в предопределенном порядке сканирования кандидатов. Когда список кандидатов на слияние не достигает максимального количества кандидатов в списке слияния минус N (N≥1) после того, как один кандидат HMVP в наборе кандидатов HMVP импортирован в список слияния, кандидат HMVP в наборе кандидатов HMVP продолжает оставаться импортированным в список слияния.[00215] In one embodiment, in a merge candidate list, the available candidates are imported into the list in a predefined candidate scan order. When the merge candidate list does not reach the maximum number of candidates in the merge list minus N (N≥1) after one HMVP candidate in the HMVP candidate set is imported into the merge list, the HMVP candidate in the HMVP candidate set continues to be imported into the merge list.

[00216] В другом варианте осуществления в списке кандидатов на слияние доступные кандидаты импортируются в список в предопределенном порядке сканирования кандидатов. Когда список кандидатов на слияние не достигает максимального количества кандидатов в списке слияния минус N (N≥1) после того, как один кандидат HMVP в наборе кандидатов HMVP импортирован в список слияния, кандидат HMVP в наборе кандидатов HMVP продолжает оставаться импортированным в список слияния. Когда количество кандидатов в списке слияния равно максимальному количеству кандидатов минус N (N≥1), попарный средний кандидат импортируется в список слияния.[00216] In another embodiment, in a merge candidate list, the available candidates are imported into the list in a predefined candidate scan order. When the merge candidate list does not reach the maximum number of candidates in the merge list minus N (N≥1) after one HMVP candidate in the HMVP candidate set is imported into the merge list, the HMVP candidate in the HMVP candidate set continues to be imported into the merge list. When the number of candidates in the merge list is equal to the maximum number of candidates minus N (N≥1), the pairwise average candidate is imported into the merge list.

[00217] Основываясь на той же изобретательской идее, что и вышеупомянутый способ, вариант осуществления настоящего изобретения дополнительно предоставляет аппаратуру внешнего предсказания, где аппаратура внешнего предсказания включает в себя блок создания и блок определения блока предсказания. Следует отметить, что блок создания и блок определения блока предсказания могут применяться к процессу внешнего предсказания на стороне кодера или стороне декодера. В частности, на стороне кодера эти блоки могут применяться к блоку 244 внешнего предсказания в блоке 260 обработки предсказания вышеупомянутого кодера 20; на стороне декодера эти блоки могут применяться к блоку 344 внешнего предсказания в блоке 360 обработки предсказания вышеупомянутого декодера 30.[00217] Based on the same inventive idea as the above method, an embodiment of the present invention further provides an inter prediction apparatus, where the inter prediction apparatus includes a creation unit and a prediction block determination unit. Note that the creation block and the prediction block determination block may be applied to the inter prediction process on the encoder side or the decoder side. In particular, on the encoder side, these blocks can be applied to the inter prediction block 244 in the prediction processing block 260 of the aforementioned encoder 20; on the decoder side, these blocks may be applied to the inter prediction block 344 in the prediction processing block 360 of the aforementioned decoder 30.

[00218] Следует дополнительно отметить, что для конкретного содержимого блока определения информации о движении и блока определения блока предсказания обратитесь к описаниям вышеизложенного содержимого, включая Сущность изобретения. Для краткости этого раскрытия подробности здесь снова не описываются.[00218] It should be further noted that for the specific contents of the motion information determination block and the prediction block determination block, refer to the descriptions of the above contents, including the Summary of the Invention. For the sake of brevity of this disclosure, the details are again not described here.

[00219] В одном варианте осуществления блок создания и блок предсказания могут быть реализованы аппаратными средствами, программным обеспечением или любой их комбинацией.[00219] In one embodiment, the creation block and the prediction block may be implemented in hardware, software, or any combination thereof.

В одном варианте осуществления блок создания, сконфигурирован для: создания списка кандидатов на слияние текущего блока изображения; добавления информации о движении кандидатов HMVP в список кандидатов на слияние в случае, если количество информации о движении кандидатов в списке кандидатов на слияние меньше, чем максимальное количество кандидатов в списке кандидатов на слияние минус N, где N является положительным целым числом; блок предсказания, сконфигурирован для: получения индекса слияния текущего блока изображения; получения информации о движении текущего блока изображения на основе списка кандидатов на слияние и индекса слияния; и определения предсказанного блока текущего блока изображения на основе информации о движении текущего блока изображения.In one embodiment, the create block is configured to: create a list of merge candidates of the current image block; adding HMVP candidate movement information to the merge candidate list if the number of candidate movement information in the merge candidate list is less than the maximum number of candidates in the merge candidate list minus N, where N is a positive integer; a prediction block configured to: obtain a merge index of the current image block; obtaining motion information of the current image block based on the merge candidate list and the merge index; and determining a predicted block of the current image block based on the motion information of the current image block.

[00220] Следует дополнительно отметить, что для конкретного содержимого блока определения информации о движении и блока определения блока предсказания обратитесь к описаниям вышеизложенного содержимого, включая Сущность изобретения. Для краткости данного описания подробности здесь снова не описываются.[00220] It should be further noted that for the specific contents of the motion information determination block and the prediction block determination block, refer to the descriptions of the above contents, including the Summary of the Invention. For the sake of brevity of this description, the details are again not described here.

[00221] Ниже приводится объяснение применений способа кодирования, а также способа декодирования, как показано в вышеупомянутых вариантах осуществления, и системы, использующей их.[00221] The following is an explanation of the applications of the encoding method as well as the decoding method as shown in the above embodiments, and the system using them.

[00222] ФИГ. 10 - это блок-схема, показывающая систему 3100 поставки контента для реализации услуги распространения контента. Эта система 3100 поставки контента включает в себя устройство 3102 захвата, терминальное устройство 3106 и, необязательно, включает в себя дисплей 3126. Устройство 3102 захвата обменивается данными с терминальным устройством 3106 по линии 3104 связи. Линия связи может включать в себя канал 13 связи, описанный выше. Линия связи 3104 включает в себя, помимо прочего, WIFI, Ethernet, кабель, беспроводную связь (3G/4G/5G), USB или любую их комбинацию и т.п.[00222] FIG. 10 is a block diagram showing a content supply system 3100 for realizing a content distribution service. This content delivery system 3100 includes a capture device 3102, a terminal device 3106, and optionally includes a display 3126. The capture device 3102 communicates with the terminal device 3106 over a communication line 3104. The communication link may include the communication channel 13 described above. Link 3104 includes, but is not limited to, WIFI, Ethernet, cable, wireless (3G/4G/5G), USB, or any combination thereof, and the like.

[00223] Устройство 3102 захвата генерирует данные и может кодировать данные способом кодирования, как показано в приведенных выше вариантах осуществления. В качестве альтернативы устройство 3102 захвата может распространять данные на сервер потоковой передачи (не показан на фигурах), и сервер кодирует данные и передает закодированные данные на терминальное устройство 3106. Устройство 3102 захвата включает в себя, без ограничений, камеру, смартфон или планшет, компьютер или портативный компьютер, систему видеоконференцсвязи, PDA, установленное на транспортном средстве устройство или комбинацию любого из них или тому подобное. Например, устройство 3102 захвата может включать в себя исходное устройство 12, как описано выше. Когда данные включают в себя видео, видеокодер 20, включенный в устройство 3102 захвата, может фактически выполнять обработку кодирования видео. Когда данные включают в себя аудио (то есть голос), аудиокодер, включенный в устройство 3102 захвата, может фактически выполнять обработку кодирования аудио. Для некоторых практических сценариев устройство 3102 захвата распределяет закодированные видео- и аудиоданные, мультиплексируя их вместе. Для других практических сценариев, например, в системе видеоконференцсвязи, кодированные аудиоданные и кодированные видеоданные не мультиплексируются. Устройство 3102 захвата отдельно распределяет кодированные аудиоданные и кодированные видеоданные на терминальное устройство 3106.[00223] The capture device 3102 generates data and may encode the data in an encoding manner as shown in the above embodiments. Alternatively, the capture device 3102 may distribute the data to a streaming server (not shown in the figures) and the server encodes the data and transmits the encoded data to the terminal device 3106. The capture device 3102 includes, without limitation, a camera, a smartphone or tablet, a computer or a laptop computer, a video conferencing system, a PDA, a vehicle-mounted device, or a combination of any of these, or the like. For example, capture device 3102 may include source device 12 as described above. When the data includes video, the video encoder 20 included in the capture device 3102 may actually perform video encoding processing. When the data includes audio (ie, voice), the audio encoder included in the capture device 3102 may actually perform audio encoding processing. For some practical scenarios, the capture device 3102 distributes encoded video and audio data by multiplexing them together. For other practical scenarios, such as in a videoconferencing system, encoded audio data and encoded video data are not multiplexed. The capture device 3102 separately distributes the encoded audio data and the encoded video data to the terminal device 3106.

[00224] В системе 3100 поставки контента терминальное устройство 310 принимает и воспроизводит закодированные данные. Терминальное устройство 3106 может быть устройством с возможностью приема и восстановления данных, таким как смартфон или планшет 3108, компьютер или ноутбук 3110, сетевой видеорегистратор (NVR)/цифровой видеомагнитофон (DVR) 3112, телевизор 3114, телеприставка (STB) 3116, система 3118 видеоконференцсвязи, система 3120 видеонаблюдения, персональный цифровой помощник (PDA) 3122, устройство 3124, установленное на транспортном средстве, или их комбинация, или тому подобное, способное декодировать вышеупомянутые закодированные данные. Например, терминальное устройство 3106 может включать в себя целевое устройство 14, как описано выше. Когда кодированные данные включают в себя видео, видеодекодеру 30, включенному в терминальное устройство, отдается приоритет для выполнения декодирования видео. Когда кодированные данные включают в себя аудио, аудиодекодер, включенный в терминальное устройство, получает приоритет для выполнения обработки декодирования аудио.[00224] In the content delivery system 3100, the terminal device 310 receives and reproduces encoded data. The terminal device 3106 may be a device with the ability to receive and retrieve data, such as a smartphone or tablet 3108, a computer or laptop 3110, a network video recorder (NVR)/digital video recorder (DVR) 3112, a television 3114, a set-top box (STB) 3116, a videoconferencing system 3118 , a video surveillance system 3120, a personal digital assistant (PDA) 3122, a vehicle-mounted device 3124, or a combination thereof, or the like capable of decoding the aforementioned encoded data. For example, terminal device 3106 may include target device 14 as described above. When the encoded data includes video, the video decoder 30 included in the terminal apparatus is given priority to perform video decoding. When the encoded data includes audio, an audio decoder included in the terminal device is given priority to perform audio decoding processing.

[00225] Для терминального устройства с дисплеем, например смартфона или планшета 3108, компьютера или ноутбука 3110, сетевого видеорегистратора (NVR)/цифрового видеомагнитофона (DVR) 3112, телевизора 3114, персонального цифрового помощника (PDA) 3122 или установленного на транспортном средстве устройства 3124, терминальное устройство может передавать декодированные данные на свой дисплей. Для терминального устройства, не оборудованного дисплеем, например STB 3116, системы 3118 видеоконференцсвязи или системы 3120 видеонаблюдения, в нем устанавливается контакт с внешним дисплеем 3126 для приема и отображения декодированных данных.[00225] For a display terminal device such as a 3108 smartphone or tablet, a 3110 computer or laptop, a 3112 Network Video Recorder (NVR)/Digital Video Recorder (DVR), a 3114 TV, a 3122 Personal Digital Assistant (PDA), or a 3124 Vehicle Mounted Device , the terminal device can transmit the decoded data to its display. For a terminal device not equipped with a display, such as STB 3116, video conferencing system 3118, or video surveillance system 3120, it establishes contact with an external display 3126 to receive and display decoded data.

[00226] Когда каждое устройство в этой системе выполняет кодирование или декодирование, может использоваться устройство кодирования изображения или устройство декодирования изображения, как показано в вышеупомянутых вариантах осуществления.[00226] When each device in this system performs encoding or decoding, an image encoding device or an image decoding device may be used as shown in the above embodiments.

[00227] ФИГ. 11 - схема, показывающая структуру примера терминального устройства 3106. После того, как терминальное устройство 3106 принимает поток от устройства 3102 захвата, блок 3202 выполнения протокола анализирует протокол передачи потока. Протокол включает в себя, без ограничений, протокол потоковой передачи в реальном времени (RTSP), протокол передачи гипертекста (HTTP), протокол потоковой передачи в реальном времени HTTP (HLS), MPEG-DASH, транспортный протокол в реальном времени (RTP), протокол обмена сообщениями в реальном времени (RTMP) или любую их комбинацию или тому подобное.[00227] FIG. 11 is a diagram showing the structure of an example of a terminal device 3106. After the terminal device 3106 receives a stream from the capturing device 3102, the protocol execution unit 3202 parses the transmission protocol of the stream. The protocol includes, without limitation, Real Time Streaming Protocol (RTSP), Hypertext Transfer Protocol (HTTP), HTTP Real Time Streaming Protocol (HLS), MPEG-DASH, Real Time Transport Protocol (RTP), real-time messaging (RTMP) or any combination thereof or the like.

[00228] После того, как блок 3202 выполнения протокола обработает поток, создается файл потока. Файл выводится в блок 3204 демультиплексирования. Блок 3204 демультиплексирования может разделять мультиплексированные данные на кодированные аудиоданные и кодированные видеоданные. Как описано выше, для некоторых практических сценариев, например, в системе видеоконференцсвязи, кодированные аудиоданные и кодированные видеоданные не мультиплексируются. В этой ситуации закодированные данные передаются на видеодекодер 3206 и аудиодекодер 3208 без использования блока 3204 демультиплексирования.[00228] After the protocol execution block 3202 processes the stream, a stream file is created. The file is output to the demultiplexer 3204 . A demultiplexer 3204 may separate the multiplexed data into encoded audio data and encoded video data. As described above, for some practical scenarios, such as in a videoconferencing system, encoded audio data and encoded video data are not multiplexed. In this situation, the encoded data is transmitted to the video decoder 3206 and audio decoder 3208 without using the demultiplexer 3204.

[00229] Посредством обработки демультиплексирования генерируются элементарный видеопоток (ES), аудио ES и, необязательно, субтитры. Видеодекодер 3206, который включает в себя видеодекодер 30, как объяснено в вышеупомянутых вариантах осуществления, декодирует видео ES с помощью способа декодирования, как показано в вышеупомянутых вариантах осуществления, для генерации видеокадра и подает эти данные в синхронный блок 3212. Аудиодекодер 3208 декодирует аудио ES, чтобы сформировать аудиокадр, и подает эти данные в синхронный блок 3212. В качестве альтернативы видеокадр может сохраняться в буфере (не показан на фиг. 11) перед подачей его в синхронный блок 3212. Аналогично аудиокадр может храниться в буфере (не показан на фиг. 11) перед подачей его в синхронный блок 3212.[00229] Through the demultiplexing processing, a video elementary stream (ES), audio ES, and optionally subtitles are generated. The video decoder 3206, which includes the video decoder 30 as explained in the above embodiments, decodes the video ES using the decoding method as shown in the above embodiments to generate a video frame, and supplies this data to the synchronous block 3212. The audio decoder 3208 decodes the audio ES, to generate an audio frame and feeds the data to synchronous block 3212. Alternatively, a video frame may be stored in a buffer (not shown in FIG. 11) before being fed to synchronous block 3212. Similarly, an audio frame may be stored in a buffer (not shown in FIG. 11 ) before feeding it to the synchronous block 3212.

[00230] Синхронный блок 3212 синхронизирует видеокадр и аудиокадр и подает видео/аудио на видео/аудио дисплей 3214. Например, синхронный блок 3212 синхронизирует представление видео и аудио информации. Информация может закодироваться в синтаксисе с использованием меток времени, касающихся представления кодированных аудио- и визуальных данных, и меток времени, касающихся доставки самого потока данных.[00230] The synchronous block 3212 synchronizes the video frame and the audio frame and supplies video/audio to the video/audio display 3214. For example, the synchronous block 3212 synchronizes the presentation of video and audio information. The information may be encoded in a syntax using timestamps regarding the presentation of encoded audio and visual data and timestamps regarding the delivery of the data stream itself.

[00231] Если субтитры включены в поток, декодер 3210 субтитров декодирует субтитры и синхронизирует их с видеокадром и звуковым кадром и передает видео/аудио/субтитры на дисплей 3216 видео/аудио/субтитров.[00231] If subtitles are included in the stream, the subtitle decoder 3210 decodes the subtitles and synchronizes them with the video frame and audio frame and transmits the video/audio/subtitles to the video/audio/subtitle display 3216.

[00232] Настоящее изобретение не ограничивается вышеупомянутой системой, и либо устройство кодирования изображения, либо устройство декодирования изображения в вышеупомянутых вариантах осуществления может быть включено в другую систему, например, автомобильную систему.[00232] The present invention is not limited to the above system, and either the image encoding device or the image decoding device in the above embodiments may be included in another system such as an automobile system.

[00233] Специалист в данной области техники может понять, что функции, описанные со ссылкой на различные иллюстративные логические блоки, модули и этапы алгоритма, раскрытые и описанные в данном документе, могут быть реализованы аппаратными средствами, программным обеспечением, встроенным программным обеспечением или любой их комбинацией. Если реализованы программным обеспечением, функции, описанные со ссылкой на различные иллюстративные логические блоки, модули и этапы, могут храниться или передаваться на машиночитаемом носителе в виде одной или нескольких инструкций или кода и выполняться аппаратным блоком обработки. Машиночитаемый носитель может включать в себя машиночитаемый носитель данных, который соответствует материальному носителю, например, носителю данных, или среду связи, включающую в себя любой носитель, который облегчает передачу компьютерной программы из одного места в другое (например, протокол связи). Таким образом, машиночитаемый носитель, как правило, может соответствовать (1) материальному машиночитаемому носителю данных, который является энергонезависимым, или (2) среде связи, такой как сигнал или носитель. Носитель данных может быть любым доступным носителем, к которому может получить доступ один или несколько компьютеров или один или несколько процессоров для извлечения инструкций, кода и/или структур данных для реализации описанных здесь методик. Компьютерный программный продукт может включать в себя машиночитаемый носитель.[00233] Those skilled in the art can appreciate that the functions described with reference to the various illustrative logical blocks, modules, and algorithm steps disclosed and described herein may be implemented in hardware, software, firmware, or any of them. combination. If implemented in software, the functions described with reference to various illustrative logical blocks, modules, and steps may be stored or transmitted on a computer-readable medium as one or more instructions or code and executed by a hardware processing unit. A computer-readable medium may include a computer-readable medium that corresponds to a tangible medium, such as a storage medium, or a communication medium, including any medium that facilitates transfer of a computer program from one place to another (eg, a communication protocol). Thus, a computer-readable medium can generally correspond to (1) a tangible computer-readable storage medium that is non-volatile, or (2) a communication medium such as a signal or a medium. A storage medium can be any available medium that can be accessed by one or more computers or one or more processors to retrieve instructions, code, and/or data structures for implementing the techniques described herein. The computer program product may include a computer readable medium.

[00234] В качестве примера, а не ограничения, такие машиночитаемые носители данных могут включать в себя RAM, ROM, EEPROM, CD-ROM или другое устройство хранения на оптическом диске, устройство хранения на магнитном диске или другое устройство хранения на магнитном носителе, флэш-память или любой другой носитель, который может использоваться для хранения желаемого программного кода в форме инструкции или структуры данных и к которому может получить доступ компьютер. Дополнительно, любое подключение правильно называть машиночитаемым носителем. Например, если инструкция передается с веб-сайта, сервера или другого удаленного источника через коаксиальный кабель, оптоволоконный кабель, витую пару, цифровую абонентскую линию (DSL) или беспроводные технологии, такие как инфракрасный порт, радио и микроволновая, коаксиальный кабель, оптоволоконный кабель, витая пара, DSL или беспроводные технологии, такие как инфракрасный порт, радио и микроволновая, включены в определение среды. Однако следует понимать, что машиночитаемый носитель данных и носитель данных не включают в себя соединения, носители, сигналы или другие временные носители, а фактически означают энергонезависимые материальные носители данных. Диски и дискеты, используемые здесь, включают в себя компакт-диск (CD), лазерный диск, оптический диск, универсальный цифровой диск (DVD) и диск Blu-ray. Дискеты обычно воспроизводят данные магнитным способом, тогда как диски воспроизводят данные оптически с помощью лазеров. Комбинации вышеизложенного также должны быть включены в объем машиночитаемого носителя.[00234] By way of example, and not limitation, such computer-readable storage media may include RAM, ROM, EEPROM, CD-ROM or other optical disk storage device, magnetic disk storage device or other magnetic storage device, flash -memory or any other medium that can be used to store the desired program code in the form of an instruction or data structure and that can be accessed by a computer. Additionally, any connection is properly referred to as a computer-readable medium. For example, if an instruction is transmitted from a website, server, or other remote source via coaxial cable, fiber optic cable, twisted pair cable, digital subscriber line (DSL), or wireless technologies such as infrared, radio, microwave, coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the media definition. However, it should be understood that a computer-readable storage medium and a storage medium do not include connections, media, signals, or other temporary media, but actually mean non-volatile tangible storage media. Discs and floppy disks used herein include compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), and Blu-ray disc. Floppy disks usually play data magnetically, while disks play data optically using lasers. Combinations of the foregoing should also be included within the scope of the computer-readable medium.

[00235] Инструкция может выполняться одним или несколькими процессорами, такими как один или несколько процессоров цифровых сигналов (DSP), микропроцессоры общего назначения, специализированные интегральные схемы (ASIC), программируемые вентильные матрицы (FPGA) или другие эквивалентные интегрированные или дискретные логические схемы. Следовательно, используемый здесь термин «процессор» может относиться к любой из вышеупомянутых структур или к любым другим структурам, подходящим для реализации описанных здесь методик. Кроме того, в некоторых аспектах функции, описанные со ссылкой на различные иллюстративные логические блоки, модули и этапы, описанные в данном документе, могут быть предоставлены в рамках выделенных аппаратных и/или программных модулей, сконфигурированных для кодирования и декодирования, или могут быть включены в комбинированный кодек. Кроме того, методы могут быть полностью реализованы в одной или нескольких схемах или логических элементах.[00235] An instruction may be executed by one or more processors, such as one or more digital signal processors (DSPs), general purpose microprocessors, application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), or other equivalent integrated or discrete logic circuits. Therefore, the term "processor" as used herein may refer to any of the aforementioned structures, or any other structures suitable for implementing the techniques described herein. Furthermore, in some aspects, the functions described with reference to various illustrative logical blocks, modules, and steps described herein may be provided within dedicated hardware and/or software modules configured for encoding and decoding, or may be included in combined codec. In addition, the methods may be fully implemented in one or more circuits or logic elements.

[00236] Методы этого раскрытия могут быть реализованы в большом количестве аппаратур или устройств, в том числе беспроводной телефон, интегральную схему (IC) или набор IC (например, набор микросхем). В данном документе описаны различные компоненты, модули или блоки, чтобы подчеркнуть функциональные аспекты устройств, сконфигурированных для выполнения раскрытых технологий, но не обязательно реализованы различными аппаратными блоками. Фактически, как описано выше, различные блоки могут быть объединены в комбинации с подходящим программным обеспечением и/или встроенными программами в аппаратный блок кодека или могут быть предоставлены взаимодействующими аппаратными блоками (в том числе один или несколько процессоров, описанных выше).[00236] The techniques of this disclosure may be implemented in a wide variety of apparatuses or devices, including a wireless telephone, an integrated circuit (IC), or an IC stack (eg, a chipset). This document describes various components, modules, or blocks to emphasize the functional aspects of devices configured to perform the disclosed technologies, but are not necessarily implemented in different hardware blocks. In fact, as described above, various blocks may be combined in combination with suitable software and/or firmware into a codec hardware block, or may be provided by cooperating hardware blocks (including one or more of the processors described above).

[00237] В вышеупомянутых вариантах осуществления описания каждого варианта осуществления имеют соответствующие акценты. Для части, которая не описана подробно в варианте осуществления, обратитесь к соответствующим описаниям в других вариантах осуществления.[00237] In the above embodiments, the descriptions of each embodiment have appropriate emphasis. For the part that is not described in detail in the embodiment, refer to the corresponding descriptions in other embodiments.

[00238] Вышеприведенные описания являются просто примерами конкретных реализаций этого раскрытия, но не предназначены для ограничения объема защиты этого раскрытия. Любое изменение или замена, легко обнаруженные специалистом в данной области техники в рамках раскрытого здесь технического объема, должны подпадать под объем защиты этого раскрытия. Следовательно, объем защиты этого раскрытия подлежит объему защиты формулы изобретения.[00238] The above descriptions are merely examples of specific implementations of this disclosure, but are not intended to limit the scope of protection of this disclosure. Any change or replacement easily discovered by one of ordinary skill in the art within the technical scope disclosed herein should fall within the protection scope of this disclosure. Therefore, the scope of this disclosure is subject to the scope of the claims.

Claims (29)

1. Способ внешнего предсказания, причем способ содержит:1. An inter prediction method, the method comprising: создание списка кандидатов на слияние текущего блока изображения;creating a list of candidates for merging the current image block; добавление по меньшей мере одного кандидата предиктора вектора движения на основе истории (HMVP) в список кандидатов на слияние для получения нового списка кандидатов на слияние в случае, если количество кандидатов на слияние в списке кандидатов на слияние меньше, чем максимальное число кандидатов минус N, где N является положительным целым числом; adding at least one history-based motion vector predictor (HMVP) candidate to the merge candidate list to obtain a new merge candidate list in case the number of merge candidates in the merge candidate list is less than the maximum number of candidates minus N, where N is a positive integer; получение информации о движении текущего блока изображения на основе нового списка кандидатов на слияние; иobtaining motion information of the current image block based on the new merge candidate list; And определение предсказанного блока текущего блока изображения на основе информации о движении текущего блока изображения.determining a predicted block of the current image block based on the motion information of the current image block. 2. Способ по п. 1, причем получение информации о движении текущего блока изображения на основе нового списка кандидатов на слияние содержит: 2. The method according to claim 1, wherein obtaining information about the movement of the current image block based on the new list of merging candidates comprises: добавление попарного среднего кандидата на слияние в новый список кандидатов на слияние, чтобы получить модифицированный список кандидатов на слияние, в случае, когда число кандидатов на слияние в новом списке кандидатов на слияние равно максимальному числу кандидатов минус N;adding a pairwise average merge candidate to the new merge candidate list to obtain a modified merge candidate list when the number of merge candidates in the new merge candidate list is equal to the maximum number of candidates minus N; получение информации о движении текущего блока изображения на основе модифицированного списка кандидатов на слияние.obtaining information about the movement of the current image block based on the modified list of merging candidates. 3. Способ по п. 2, в котором попарный средний кандидат на слияние генерируется посредством усреднения предопределенной пары кандидатов на слияние в новом списке кандидатов на слияние.3. The method of claim 2, wherein the pairwise average merge candidate is generated by averaging a predetermined pair of merge candidates in the new merge candidate list. 4. Способ по любому из пп. 2, 3, в котором получение информации о движении текущего блока изображения на основе модифицированного списка кандидатов на слияние содержит: 4. The method according to any one of paragraphs. 2, 3, in which obtaining information about the movement of the current image block based on the modified list of candidates for merging contains: получение индекса кандидата на слияние;getting the merger candidate index; получение информации о движении из модифицированного списка кандидатов на слияние с использованием индекса кандидата на слияние.obtaining movement information from the modified merger candidate list using the merger candidate index. 5. Способ по любому из пп. 2, 3, в котором получение информации о движении текущего блока изображения на основе модифицированного списка кандидатов на слияние содержит: определение информации о движении из модифицированного списка кандидатов на слияние с использованием издержек искажения скорости.5. The method according to any one of paragraphs. 2, 3, wherein obtaining the motion information of the current image block based on the modified merge candidate list comprises: determining motion information from the modified merge candidate list using rate distortion overhead. 6. Аппаратура внешнего предсказания, содержащая:6. External prediction equipment, comprising: процессор; иCPU; And память, подсоединенную к процессору для хранения инструкций, которые при выполнении процессором вынуждают процессор выполнять операции, причем операции содержат:memory attached to the processor to store instructions that, when executed by the processor, cause the processor to perform operations, the operations comprising: создание списка кандидатов на слияние текущего блока изображения;creating a list of candidates for merging the current image block; добавление по меньшей мере одного кандидата предиктора вектора движения на основе истории (HMVP) в список кандидатов на слияние, чтобы получить новый список кандидатов на слияние, в случае, если число кандидатов на слияние в списке кандидатов на слияние меньше, чем максимальное число кандидатов минус N, где N является положительным целым числом;adding at least one history-based motion vector predictor (HMVP) candidate to the merge candidate list to obtain a new merge candidate list, in case the number of merge candidates in the merge candidate list is less than the maximum number of candidates minus N , where N is a positive integer; получение информации о движении текущего блока изображения на основе списка кандидатов на слияние; иobtaining information about the movement of the current image block based on the list of merging candidates; And определение предсказанного блока текущего блока изображения на основе информации о движении текущего блока изображения.determining a predicted block of the current image block based on the motion information of the current image block. 7. Аппаратура по п. 6, причем получение информации о движении текущего блока изображения на основе нового списка кандидатов на слияние содержит: 7. The apparatus according to claim 6, wherein obtaining information about the movement of the current image block based on the new list of merging candidates comprises: добавление попарного среднего кандидата на слияние в новый список кандидатов на слияние для получения модифицированного списка кандидатов на слияние в случае, когда число кандидатов на слияние в новом списке кандидатов на слияние равно максимальному числу кандидатов минус N;adding a pairwise average merge candidate to the new merge candidate list to obtain a modified merge candidate list when the number of merge candidates in the new merge candidate list is equal to the maximum number of candidates minus N; получение информации о движении текущего блока изображения на основе модифицированного списка кандидатов на слияние.obtaining information about the movement of the current image block based on the modified list of merging candidates. 8. Аппаратура по п. 7, причем попарный средний кандидат на слияние генерируется посредством усреднения предопределенной пары кандидатов на слияние в новом списке кандидатов на слияние.8. The apparatus of claim 7, wherein the pairwise average merge candidate is generated by averaging a predetermined pair of merge candidates in the new merge candidate list. 9. Аппаратура по любому из пп. 7, 8, причем операции получения информации о движении текущего блока изображения на основе модифицированного списка кандидатов на слияние содержит:9. Equipment according to any one of paragraphs. 7, 8, and the operation of obtaining information about the movement of the current image block based on the modified list of candidates for merging contains: получение индекса кандидата на слияние;getting the merger candidate index; получение информации о движении из списка кандидатов на слияние с использованием индекса кандидата на слияние. obtaining information about the movement from the list of merge candidates using the merge candidate index. 10. Аппаратура по любому из пп. 7, 8, причем операции получения информации о движении текущего блока изображения на основе модифицированного списка кандидатов на слияние содержит: определение информации о движении из модифицированного списка кандидатов на слияние с использованием издержек искажения скорости.10. Equipment according to any one of paragraphs. 7, 8, wherein the operations of obtaining motion information of the current image block based on the modified merge candidate list comprises: determining motion information from the modified merge candidate list using rate distortion overhead. 11. Энергонезависимый материальный машиночитаемый носитель данных, хранящий программный код, который, когда выполняется компьютерным устройством, вынуждает компьютерное устройство выполнять способ по любому из пп. 1-5.11. A non-volatile, tangible, computer-readable storage medium that stores program code that, when executed by a computing device, causes the computing device to perform the method of any one of claims. 1-5.
RU2021112624A 2018-10-10 2019-10-10 Method and equipment for external prediction RU2798316C2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US62/744,106 2018-10-10

Related Child Applications (1)

Application Number Title Priority Date Filing Date
RU2023111118A Division RU2023111118A (en) 2018-10-10 2019-10-10 METHOD AND EQUIPMENT FOR EXTERNAL PREDICTION

Publications (2)

Publication Number Publication Date
RU2021112624A RU2021112624A (en) 2022-11-11
RU2798316C2 true RU2798316C2 (en) 2023-06-21

Family

ID=

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130114717A1 (en) * 2011-11-07 2013-05-09 Qualcomm Incorporated Generating additional merge candidates
US20140301461A1 (en) * 2011-09-09 2014-10-09 Lg Electronics Inc. Inter prediction method and apparatus therefor
US20150382014A1 (en) * 2011-08-29 2015-12-31 Ibex Pt Holdings Co., Ltd. Apparatus for decoding motion information in merge mode
US20170006302A1 (en) * 2014-03-19 2017-01-05 Kt Corporation Method and apparatus for processing multiview video signals
US20180152710A1 (en) * 2011-11-07 2018-05-31 Infobridge Pte. Ltd. Method of constructing merge list

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150382014A1 (en) * 2011-08-29 2015-12-31 Ibex Pt Holdings Co., Ltd. Apparatus for decoding motion information in merge mode
US20140301461A1 (en) * 2011-09-09 2014-10-09 Lg Electronics Inc. Inter prediction method and apparatus therefor
US20130114717A1 (en) * 2011-11-07 2013-05-09 Qualcomm Incorporated Generating additional merge candidates
RU2577779C2 (en) * 2011-11-07 2016-03-20 Квэлкомм Инкорпорейтед Generating additional merge candidates
US20180152710A1 (en) * 2011-11-07 2018-05-31 Infobridge Pte. Ltd. Method of constructing merge list
US20170006302A1 (en) * 2014-03-19 2017-01-05 Kt Corporation Method and apparatus for processing multiview video signals

Similar Documents

Publication Publication Date Title
CN112840658B (en) Inter-frame prediction method and device
JP7471328B2 (en) Encoders, decoders, and corresponding methods
JP7521057B2 (en) Corresponding methods of boundary strength derivation for the encoder, decoder, and deblocking filter
JP7314274B2 (en) Video picture decoding and encoding method and apparatus
CN111953997B (en) Candidate motion vector list acquisition method, candidate motion vector list acquisition device and codec
CN113170176B (en) Video encoder, video decoder and corresponding methods
CN112534808A (en) Video processing method, video processing apparatus, encoder, decoder, medium, and computer program
US20240291965A1 (en) Picture prediction method and apparatus, and computer-readable storage medium
CN113615173A (en) Method and device for carrying out optical flow prediction correction on affine decoding block
CN112118447B (en) Construction method, device and coder-decoder for fusion candidate motion information list
CN111432219B (en) Inter-frame prediction method and device
CN111263166B (en) Video image prediction method and device
CN113170147A (en) Video encoder, video decoder, and corresponding methods
CN115914648A (en) Video image processing method and device
RU2798316C2 (en) Method and equipment for external prediction
CN111726617A (en) Optimization method and device for fusion motion vector difference technology and coder-decoder
RU2819065C2 (en) Video encoder, video decoder and corresponding method
RU2783348C1 (en) Encoder, decoder and corresponding methods for obtaining the boundary power of the debloking filter
WO2024113708A1 (en) Video processing method and apparatus
CN113615191B (en) Method and device for determining image display sequence and video encoding and decoding equipment
WO2020073928A1 (en) Inter prediction method and apparatus
KR20210077759A (en) Image prediction method and device