RU2798316C2 - Method and equipment for external prediction - Google Patents
Method and equipment for external prediction Download PDFInfo
- 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
Links
Images
Abstract
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
[0076] Хотя фиг. 1A изображает исходное устройство 12 и целевое устройство 14 как отдельные устройства, вариант осуществления альтернативно может включать в себя как исходное устройство 12, так и целевое устройство 14 или функциональные возможности как исходного устройства 12, так и целевого устройства 14, то есть исходного устройства 12, или соответствующие функции, и целевое устройство 14, или соответствующие функции. В таких вариантах осуществления исходное устройство 12 или соответствующие функции и целевое устройство 14 или соответствующие функции могут быть реализованы с использованием одного и того же аппаратного и/или программного обеспечения, отдельного аппаратного и/или программного обеспечения или любой их комбинации.[0076] Although FIG. 1A depicts
[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
[0078] Исходное устройство 12 включает в себя кодер 20, и в одном варианте осуществления исходное устройство 12 может дополнительно включать в себя источник 16 изображения, препроцессор 18 изображения и интерфейс 22 связи. В одном варианте осуществления кодер 20, источник 16 изображения, препроцессор 18 изображения и интерфейс 22 связи могут быть аппаратными компонентами в исходном устройстве 12 или могут быть программными программами в исходном устройстве 12. Отдельные описания следующие:[0078]
[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
[0081] Препроцессор 18 изображения сконфигурирован для приема необработанных данных 17 изображения и выполнения предварительной обработки необработанных данных 17 изображения для получения предварительно обработанного изображения 19 или предварительно обработанных данных 19 изображения. Например, предварительная обработка, выполняемая препроцессором 18 изображения, может включать в себя обрезку, конверсию цветового формата (например, из формата RGB в формат YUV), цветокоррекцию или шумоподавление.[0081] The
[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
[0083] Интерфейс 22 связи может быть сконфигурирован для приема данных 21 закодированного изображения и передачи данных 21 закодированного изображения на целевое устройство 14 или любое другое устройство (например, память) через линию 13 связи для хранения или прямого восстановления. Другое устройство может быть любым устройством, используемым для декодирования или хранения. Интерфейс 22 связи может быть, например, сконфигурирован для инкапсуляции данных 21 закодированного изображения в соответствующий формат, например пакет данных, для передачи по линии 13 связи.[0083]
[0084] Целевое устройство 14 включает в себя декодер 30, и в одном варианте осуществления целевое устройство 14 может дополнительно включать в себя интерфейс 28 связи, постпроцессор 32 изображения и устройство 34 отображения. Отдельные описания следующие:[0084]
[0085] Интерфейс 28 связи может быть сконфигурирован для приема данных 21 закодированного изображения от исходного устройства 12 или любого другого источника. Любой другой источник представляет собой, например, запоминающее устройство, а запоминающее устройство - это, например, устройство хранения данных закодированных изображений. Интерфейс 28 связи может быть сконфигурирован для передачи или приема данных 21 закодированного изображения через линию 13 связи между исходным устройством 12 и целевым устройством 14 или через сеть любого типа. Линия 13 связи представляет собой, например, прямое проводное или беспроводное соединение, и любой тип сети представляет собой, например, проводную или беспроводную сеть или любую их комбинацию, или любой тип частной или общедоступной сети, или любую их комбинацию. Интерфейс 28 связи может быть, например, сконфигурирован для декапсуляции пакета данных, переданного через интерфейс 22 связи, для получения данных 21 закодированного изображения.[0085]
[0086] И интерфейс 28 связи, и интерфейс 22 связи могут быть сконфигурированы как интерфейсы однонаправленной связи или интерфейсы двунаправленной связи, и могут быть сконфигурированы, например, для отправки и приема сообщений для установки соединения, а также подтверждения и обмена любой другой информацией, относящейся к линии связи и/или передаче данных, такой как передача данных закодированного изображения.[0086] Both
[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
[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
[0089] Устройство 34 отображения сконфигурировано для приема данных 33 изображения с постобработкой, чтобы отображать изображение, например, пользователю или зрителю. Устройство 34 отображения может быть или включать в себя любой тип дисплея, сконфигурированный для представления восстановленного изображения, например, интегрированный или внешний дисплей или монитор. Например, дисплей может включать в себя жидкокристаллический дисплей (LCD), дисплей на органических светодиодах (OLED), плазменный дисплей, проектор, микро-светодиодный дисплей, жидкий кристалл на кремнии (LCoS), цифровой световой процессор (DLP) или любые другие дисплеи.[0089] The
[0090] Хотя фиг. 1A изображает исходное устройство 12 и целевое устройство 14 как отдельные устройства, вариант осуществления альтернативно может включать в себя как исходное устройство 12, так и целевое устройство 14 или функциональные возможности как исходного устройства 12, так и целевого устройства 14, то есть исходного устройства 12, или соответствующие функциональные возможности, и целевое устройство 14, или соответствующие функциональные возможности. В таких вариантах осуществления исходное устройство 12 или соответствующие функциональные возможности и целевое устройство 14 или соответствующие функциональные возможности могут быть реализованы с использованием одного и того же аппаратного и/или программного обеспечения, отдельного аппаратного и/или программного обеспечения или любой их комбинации.[0090] Although FIG. 1A depicts
[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
[0092] Кодер 20 и декодер 30 каждый может быть реализован в виде любой из различных подходящих схем, например, одного или нескольких микропроцессоров, процессоров цифровых сигналов (DSP), специализированных интегральных схем (ASIC), программируемых вентильных матриц (FPGA), дискретной логики, оборудования или любой их комбинации. Если методы частично реализованы в программном обеспечении, устройство может хранить программную инструкцию на подходящем и энергонезависимом машиночитаемом носителе данных и может выполнять инструкцию в аппаратных средствах с использованием одного или нескольких процессоров, чтобы выполнять методы этого раскрытия. Любое из вышеперечисленного (включая аппаратное обеспечение, программное обеспечение, комбинацию аппаратного и программного обеспечения и т.п.) может рассматриваться как один или несколько процессоров.[0092]
[0093] В некоторых случаях система 10 кодирования и декодирования видео, показанная на фиг. 1A является просто примером, и методы этого раскрытия сущности могут применяться к настройкам кодирования видео (например, кодирование видео или декодирование видео), которые не обязательно включают в себя какой-либо обмен данными между устройством кодирования и устройством декодирования. В других примерах данные могут быть извлечены из локальной памяти, переданы в потоковом режиме по сети и т.п. Устройство кодирования видео может кодировать данные и сохранять данные в памяти, и/или устройство декодирования видео может извлекать данные из памяти и декодировать данные. В некоторых примерах кодирование и декодирование выполняются устройствами, которые не обмениваются данными друг с другом, а просто кодируют данные в память и/или извлекают данные из памяти и декодируют данные.[0093] In some cases, the video encoding and
[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
[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,
[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,
[0097] В некоторых вариантах осуществления кодер 20, реализованный логической схемой, может включать в себя буфер изображения (например, реализованный блоком 46 обработки или памятью 44) и блок обработки графики (например, реализованный блоком 46 обработки). Графический процессор может быть коммуникативно связан с буфером изображения. Блок обработки графики может включать в себя кодер 20, реализованный логической схемой 47, для реализации различных модулей, которые описаны со ссылкой на фиг. 2 и/или любой другой системе кодера или подсистеме, описанной в данном документе. Логическая схема может быть сконфигурирована для выполнения различных операций, описанных в данном документе.[0097] In some embodiments, the logic implemented
[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
[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
[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
[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
[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
[00104] Кодер 20 принимает, например, используя вход 202, изображение 201 или блок 203 изображения для изображения 201, например, изображение в последовательности изображений, образующих видео или видеопоследовательность. Блок 203 изображения также может называться текущим блоком изображения или блоком изображения, который должен быть закодирован, а изображение 201 может упоминаться как текущее изображение или изображение, которое должно быть кодировано (в частности, при кодировании видео, чтобы отличить текущее изображение от других изображений, другие изображения являются, например, ранее кодированными и/или декодированными изображениями в одной и той же видеопоследовательности, то есть видеопоследовательности, которая также включает в себя текущее изображение).[00104]
[00105] В одном варианте осуществления кодер 20 может включать в себя блок разделения (не показан на фиг. 2), сконфигурированный для разделения изображения 201 на множество блоков, таких как блок 203 изображения. Изображение 201 обычно разделяется на множество неперекрывающихся блоков. Блок разделения может быть сконфигурирован для использования одного и того же размера блока для всех изображений в видеопоследовательности и соответствующей сетки, определяющей размер блока, или изменения размера блока между изображениями или подмножествами или группами изображений и разделения каждого изображения на соответствующие блоки.[00105] In one embodiment,
[00106] В одном варианте осуществления блок 260 обработки предсказания кодера 20 может быть сконфигурирован для выполнения любой комбинации методов разделения, описанных выше.[00106] In one embodiment,
[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
[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
[00110] Блок 206 обработки преобразования сконфигурирован для применения преобразования, например дискретного косинусного преобразования (DCT) или дискретного синусоидального преобразования (DST), к значениям выборки остаточного блока 205 для получения коэффициентов 207 преобразования в области преобразования. Коэффициенты 207 преобразования также могут называться остаточными коэффициентами преобразования и представлять остаточный блок 205 в области преобразования.[00110] The
[00111] Блок 206 обработки преобразования может быть сконфигурирован для применения целочисленных аппроксимаций DCT/DST, таких как преобразования, указанные для HEVC/H.265. По сравнению с ортогональным преобразованием DCT, такие целочисленные аппроксимации обычно масштабируются несколько раз. Чтобы сохранить норму остаточного блока, обработанного посредством прямого и обратного преобразований, дополнительный коэффициент масштабирования применяется как часть процесса преобразования. Коэффициент масштабирования обычно выбирается на основе некоторых ограничений, например, коэффициент масштабирования - это степень двойки для операции сдвига, битовая глубина коэффициента преобразования или компромисс между точностью и затратами на реализацию. Например, конкретный коэффициент масштабирования задается для обратного преобразования на стороне декодера 30, например, блоком 212 обработки обратного преобразования (и соответствующим обратным преобразованием на стороне кодера 20, например, блоком 212 обработки обратного преобразования), и, соответственно, соответствующий коэффициент масштабирования может быть указан для прямого преобразования на стороне кодера 20 блоком 206 обработки преобразования.[00111]
[00112] Блок 208 квантования сконфигурирован для квантования коэффициентов 207 преобразования для получения квантованных коэффициентов 209 преобразования, например, путем применения скалярного квантования или векторного квантования. Квантованные коэффициенты 209 преобразования также могут упоминаться как квантованные остаточные коэффициенты 209. Процесс квантования может уменьшить битовую глубину, относящуюся к некоторым или всем коэффициентам 207 преобразования. Например, n-битовый коэффициент преобразования может быть округлен до m-битового коэффициента преобразования во время квантования, где n больше m. Степень квантования может быть модифицирована путем регулировки параметра квантования (QP). Например, для скалярного квантования может применяться другое масштабирование для достижения более тонкого или более грубого квантования. Меньший шаг квантования соответствует более тонкому квантованию, тогда как больший шаг квантования соответствует более грубому квантованию. Соответствующий шаг квантования может быть указан QP. Например, параметр квантования может быть индексом для заранее определенного набора подходящих шагов квантования. Например, меньший параметр квантования может соответствовать более тонкому квантованию (например, меньшему шагу квантования), а больший параметр квантования может соответствовать более грубому квантованию (например, большему шагу квантования), и наоборот. Квантование может включать в себя деление на шаг квантования и соответствующее квантование или деквантование, например, посредством обратного квантования 210, или может включать в себя умножение на шаг квантования. Варианты осуществления согласно некоторым стандартам, таким как HEVC, могут использовать параметр квантования для определения шага квантования. Как правило, шаг квантования может быть вычислен на основе параметра квантования с использованием аппроксимации с фиксированной точкой уравнения, включающего в себя деление. Дополнительные коэффициенты масштабирования могут быть введены для квантования и деквантования, чтобы восстановить норму остаточного блока, который может быть модифицирован из-за масштабирования, используемого в приближении с фиксированной точкой уравнения для шага квантования и параметра квантования. В одном примерном варианте осуществления масштаб обратного преобразования может быть объединен со шкалой деквантования. В качестве альтернативы могут использоваться настроенные таблицы квантования и передаваться сигнал от кодера к декодеру, например, в битовом потоке. Квантование - это операция с потерями, где больший шаг квантования указывает на большие потери.[00112] The
[00113] Блок 210 обратного квантования сконфигурирован для применения обратного квантования блока 208 квантования к квантованным коэффициентам для получения деквантованных коэффициентов 211, например, применения, на основе или с использованием того же шага квантования, что и блок 208 квантования, обратной схемы квантования, применяемой блоком 208 квантования. Деквантованные коэффициенты 211 также могут упоминаться как деквантованные остаточные коэффициенты 211 и соответствуют, хотя обычно отличаются от коэффициентов преобразования из-за потерь, вызванных квантованием, коэффициентам 207 преобразования.[00113] The
[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
[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
[00116] В одном варианте осуществления буферный блок (или буфер) 216, например, строкового буфера 216, сконфигурирован для буферизации или хранения восстановленного блока 215 и соответствующих значений выборок, например, для внутреннего предсказания. В других вариантах осуществления кодер может быть сконфигурирован для использования нефильтрованных восстановленных блоков и/или соответствующих значений выборок, хранящихся в блоке 216 буфера, для любого типа оценки и/или предсказания, например, внутреннего предсказания.[00116] In one embodiment, a buffer block (or buffer) 216, such as
[00117] Например, один вариант осуществления кодера 20 может быть сконфигурирован так, что блок 216 буфера не только используется для хранения восстановленного блока 215 для внутреннего предсказания 254, но также используется для блока 220 контурного фильтра (не показан на фиг. 2), и/или так, что, например, блок 216 буфера и блок 230 буфера декодированного изображения образуют один буфер. Другие варианты осуществления могут быть сконфигурированы для использования фильтрованных блоков 221 и/или блоков или выборок из буфера 230 декодированных изображений (блоки или выборки не показаны на фиг. 2) в качестве входных данных или основы для внутреннего предсказания 254.[00117] For example, one embodiment of
[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
[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
[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]
[00121] Блок 260 обработки предсказания, также называемый блоком 260 обработки предсказания блока, сконфигурирован для приема или получения блока 203 изображения (например, блока 203 текущего изображения для текущего изображения 201) и данных восстановленного изображения, например, опорных выборок одного и того же (или текущего) изображения из буфера 216 и/или опорных изображений данных 231 из одного или более ранее декодированных изображений, из буфера 230 декодированного изображения, и обрабатывать эти данные для предсказания, то есть, чтобы обеспечить блок предсказания 265 это может быть блок 245 внешнего предсказания или блок 255 внутреннего предсказания.[00121] The
[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
[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
[00125] Как описано выше, кодер 20 сконфигурирован для определения или выбора оптимального или оптимального режима предсказания из набора режимов предсказания (который может быть задан заранее). Набор режимов предсказания может включать в себя, например, режимы внутреннего предсказания и/или режимы внешнего предсказания.[00125] As described above,
[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
[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]
[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
[00131] Например, кодер 20 может быть выполнен с возможностью выбора опорного блока из множества опорных блоков одного и того же изображения или различных изображений из множества других изображений и обеспечить, для блока оценки движения (не показан на фиг. 2), опорное изображение и/или обеспечить смещение (пространственное смещение) между позицией (координатами X и Y), опорного блока и позицией текущего блока в качестве параметра внешнего предсказания. Это смещение также называется вектором движения (MV).[00131] For example,
[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
[00133] В одном варианте осуществления блок 244 внешнего предсказания может передавать элементы синтаксиса в блок 270 энтропийного кодирования, и элементы синтаксиса включают в себя параметр внешнего предсказания (например, информацию указания выбора режима внешнего предсказания, используемого для предсказания текущего блока после обхода множества режимов внешнего предсказания). В одном варианте осуществления, если существует только один режим внешнего предсказания, параметр внешнего предсказания может альтернативно не переноситься в элементах синтаксиса. В этом случае сторона 30 декодера может выполнять декодирование непосредственно в режиме предсказания по умолчанию. Можно понять, что блок 244 внешнего предсказания может быть сконфигурирован для выполнения любой комбинации методов внешнего предсказания.[00133] In one embodiment, inter prediction block 244 may pass syntax elements to
[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.
[00135] В одном варианте осуществления кодер 20 может быть сконфигурирован для выбора режима внутреннего предсказания на основе критерия оптимизации, например, на основе минимального остатка (например, режим внутреннего предсказания, обеспечивающий блок 255 предсказания, который наиболее аналогичен текущему блоку 203 изображения) или искажения с минимальной скоростью.[00135] In one embodiment,
[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
[00137] В одном варианте осуществления блок 254 внутреннего предсказания может передавать элементы синтаксиса в блок 270 энтропийного кодирования, и элементы синтаксиса включают в себя параметр внутреннего предсказания (например, информацию указания выбора режима внутреннего предсказания, используемого для предсказания текущего блока после обхода) из множества режимов внутреннего предсказания). В одном варианте осуществления, если существует только один режим внутреннего предсказания, параметр внутреннего предсказания может альтернативно не переноситься в элементах синтаксиса. В этом случае сторона 30 декодера может выполнять декодирование непосредственно в режиме предсказания по умолчанию.[00137] In one embodiment, the intra prediction block 254 may pass the syntax elements to the
[00138] Блок 270 энтропийного кодирования сконфигурирован для применения алгоритма или схемы энтропийного кодирования (например, схемы кодирования с переменной длиной (VLC), контекстно-адаптивной схемы VLC (CAVLC), схемы арифметического кодирования, контекстно-адаптивного двоичного арифметического кодирования (CABAC), основанного на синтаксисе контекстно-адаптивного двоичного арифметического кодирования (SBAC), энтропийного кодирования с интервалом вероятности (PIPE) или другого способа или метода энтропийного кодирования) к квантованным остаточным коэффициентам 209, параметру внешнего предсказания, параметру внутреннего предсказания и/или параметру контурного фильтра по отдельности или совместно (или не полностью) для получения данных 21 закодированного изображения, которые могут выводиться выводом 272, например, в форме кодированного битового потока 21. Кодированный битовый поток может быть передан на видеодекодер 30 или заархивирован для последующей передачи или поиска видеодекодером 30. Блок 270 энтропийного кодирования может быть дополнительно сконфигурирован для энтропийного кодирования других элементов синтаксиса для текущего кодируемого слайса видео.[00138] The
[00139] Другие структурные варианты видеокодера 20 могут использоваться для кодирования видеопотока. Например, кодер 20, не основанный на преобразовании, может квантовать остаточный сигнал напрямую без блока 206 обработки преобразования для некоторых блоков или кадров. В другом варианте осуществления кодер 20 может иметь блок 208 квантования и блок 210 обратного квантования, объединенные в единый блок.[00139] Other structural variants of
[00140] В одном варианте осуществления кодер 20 может быть сконфигурирован для реализации способа внешнего предсказания, описанного в следующем варианте осуществления.[00140] In one embodiment, the
[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
[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
[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
[00144] Модуль 304 энтропийного декодирования сконфигурирован для выполнения энтропийного декодирования кодированных данных 21 изображения для получения, например, квантованных коэффициентов 309 и/или декодированных параметров кодирования (не показаны на фиг. 3), например, любого одного или всех из параметра внешнего предсказания, параметра внутреннего предсказания, параметра контурного фильтра и/или другие элементы синтаксиса (которые декодируются). Модуль 304 энтропийного декодирования дополнительно сконфигурирован для пересылки параметра внешнего предсказания, параметра внутреннего предсказания и/или других элементов синтаксиса в модуль 360 обработки предсказания. Видеодекодер 30 может принимать элементы синтаксиса на уровне слайса видео и/или уровне видеоблока.[00144] The
[00145] Блок 310 обратного квантования может иметь ту же функцию, что и блок 110 обратного квантования, блок 312 обработки обратного преобразования может иметь ту же функцию, что и блок 212 обработки обратного преобразования, блок 314 восстановления может иметь ту же функцию, что и блок 214 восстановления, буфер 316 может иметь ту же функцию, что и буфер 216, контурный фильтр 320 может иметь ту же функцию, что и контурный фильтр 220, и буфер 330 декодированного изображения может иметь ту же функцию, что и буфер 230 декодированного изображения. [00145] The
[00146] Блок 360 обработки предсказания может включать в себя блок 344 внешнего предсказания и блок 354 внутреннего предсказания, где блок 344 внешнего предсказания может напоминать блок 244 внешнего предсказания по функциям, а блок 354 внутреннего предсказания может напоминать блок 254 внутреннего предсказания по функциям. Блок 360 обработки предсказания, как правило, сконфигурирован для выполнения предсказания блока и/или получения блока 365 предсказания из закодированных данных 21, а также приема или получения (явно или неявно) параметров, связанных с предсказанием, и/или информации о выбранном режиме предсказания, например, из модуля 304 энтропийного декодирования.[00146] Prediction processing unit 360 may include
[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
[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]
[00150] Блок 312 обработки обратного преобразования сконфигурирован для применения обратного преобразования (например, обратного DCT, обратного целочисленного преобразования или концептуально аналогичного процесса обратного преобразования) к коэффициентам преобразования для генерации остаточных блоков в области пикселей.[00150] The inverse
[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
[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
[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
[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
[00158] Следует понимать, что на кодере 20 и декодере 30 результат обработки для процедуры может быть выведен в следующую процедуру после дополнительной обработки. Например, после такой процедуры, как интерполяционная фильтрация, выведение вектора движения или циклическая фильтрация, операция, такая как отсечение или сдвиг, дополнительно выполняется над результатом обработки соответствующей процедуры.[00158] It should be understood that at
[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) = " Clip3(x, y, z) = "
[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,
[00164] Устройство 400 кодирования видео включает в себя: входные порты 410 и блок 420 приемника (Rx), которые сконфигурированы для приема данных; процессор, логический блок или центральный процессор (CPU) 430, которые сконфигурированы для обработки данных; блок 440 передатчика (Tx) и выходные порты 450, которые сконфигурированы для передачи данных; и память 460, сконфигурированная для хранения данных. Устройство 400 кодирования видео может дополнительно включать в себя оптические-электрические компоненты и электрические-оптические (EO) компоненты, подключенные к входным портам 410, блоку 420 приемника, блоку 440 передатчика и выходным портам 450 для выхода или входа оптических или электрических сигналов.[00164] The
[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
[00166] Память 460 включает в себя один или несколько дисков, пленочных накопителей и твердотельных накопителей и может использоваться в качестве устройства хранения данных переполнения, для хранения программ, когда такие программы выполняются выборочно, и для хранения инструкций и данных, которые считываются во время выполнения программы. Память 460 может быть энергозависимой и/или энергонезависимой и может быть ROM, RAM, троичной памятью с адресацией по содержимому (TCAM) и/или статической памятью с произвольным доступом (SRAM).[00166]
[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,
[00168] В одном варианте осуществления процессор 510 может быть центральным процессором (CPU), или процессор 510 может быть другим процессором общего назначения, процессором цифровых сигналов (DSP), специализированной интегральной схемой (ASIC), программируемой вентильной матрицей (FPGA) или другим программируемым логическим устройством, дискретным вентильным или транзисторным логическим устройством, дискретным аппаратным компонентом и т.п. Процессор общего назначения может быть микропроцессором, или процессор может быть любым традиционным процессором или подобным.[00168] In one embodiment,
[00169] Память 530 может включать в себя постоянное запоминающее устройство (ROM) или устройство оперативной памяти (RAM). Любой другой подходящий тип запоминающего устройства также может использоваться в качестве памяти 530. Память 530 может включать в себя код и данные 531, к которым имеет доступ процессор 510 с использованием шины 550. Память 530 может дополнительно включать в себя операционную систему 533 и прикладную программу 535. Прикладная программа 535 включает в себя по меньшей мере одну программу, которая позволяет процессору 510 выполнять способ кодирования или декодирования видео (в частности, способ внешнего предсказания, описанный в данном документе), описанный в данном документе. Например, прикладная программа 535 может включать в себя приложения с 1 по N и дополнительно включает в себя приложение для кодирования или декодирования видео (называемое приложением для кодирования видео), которое выполняет способ кодирования или декодирования видео, описанный в данном документе.[00169] The
[00170] Система 550 шин может дополнительно включать в себя шину питания, шину управления, шину сигнала состояния и т.п. в дополнение к шине данных. Однако для ясного описания различные типы шин на чертеже обозначены как система 550 шин.[00170] The
[00171] В одном варианте осуществления аппаратура 500 кодирования может дополнительно включать в себя одно или несколько устройств вывода, например, дисплей 570. В одном примере дисплей 570 может быть дисплеем касания, который объединяет дисплей и блок касания, который оперативно распознает ввод касанием. Дисплей 570 может быть подключен к процессору 510 с помощью шины 550.[00171] In one embodiment, encoding
[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
[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
[00201] Операция S901. (Кодер (такой как кодер 20 или декодер 30 на фиг.1) или система кодирования видео) создает список кандидатов на слияние текущего блока изображения. Текущий блок изображения может быть блоком кодирования, CU, PU или TU и т.д. Текущий блок изображения может быть любых размеров.[00201] Operation S901. (An encoder (such as
[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
[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
[00223] Устройство 3102 захвата генерирует данные и может кодировать данные способом кодирования, как показано в приведенных выше вариантах осуществления. В качестве альтернативы устройство 3102 захвата может распространять данные на сервер потоковой передачи (не показан на фигурах), и сервер кодирует данные и передает закодированные данные на терминальное устройство 3106. Устройство 3102 захвата включает в себя, без ограничений, камеру, смартфон или планшет, компьютер или портативный компьютер, систему видеоконференцсвязи, PDA, установленное на транспортном средстве устройство или комбинацию любого из них или тому подобное. Например, устройство 3102 захвата может включать в себя исходное устройство 12, как описано выше. Когда данные включают в себя видео, видеокодер 20, включенный в устройство 3102 захвата, может фактически выполнять обработку кодирования видео. Когда данные включают в себя аудио (то есть голос), аудиокодер, включенный в устройство 3102 захвата, может фактически выполнять обработку кодирования аудио. Для некоторых практических сценариев устройство 3102 захвата распределяет закодированные видео- и аудиоданные, мультиплексируя их вместе. Для других практических сценариев, например, в системе видеоконференцсвязи, кодированные аудиоданные и кодированные видеоданные не мультиплексируются. Устройство 3102 захвата отдельно распределяет кодированные аудиоданные и кодированные видеоданные на терминальное устройство 3106.[00223] The
[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
[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
[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
[00228] После того, как блок 3202 выполнения протокола обработает поток, создается файл потока. Файл выводится в блок 3204 демультиплексирования. Блок 3204 демультиплексирования может разделять мультиплексированные данные на кодированные аудиоданные и кодированные видеоданные. Как описано выше, для некоторых практических сценариев, например, в системе видеоконференцсвязи, кодированные аудиоданные и кодированные видеоданные не мультиплексируются. В этой ситуации закодированные данные передаются на видеодекодер 3206 и аудиодекодер 3208 без использования блока 3204 демультиплексирования.[00228] After the
[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
[00230] Синхронный блок 3212 синхронизирует видеокадр и аудиокадр и подает видео/аудио на видео/аудио дисплей 3214. Например, синхронный блок 3212 синхронизирует представление видео и аудио информации. Информация может закодироваться в синтаксисе с использованием меток времени, касающихся представления кодированных аудио- и визуальных данных, и меток времени, касающихся доставки самого потока данных.[00230] The
[00231] Если субтитры включены в поток, декодер 3210 субтитров декодирует субтитры и синхронизирует их с видеокадром и звуковым кадром и передает видео/аудио/субтитры на дисплей 3216 видео/аудио/субтитров.[00231] If subtitles are included in the stream, the
[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)
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)
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)
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 |
---|---|---|
US12132891B2 (en) | Inter prediction method and apparatus | |
JP7471328B2 (en) | Encoders, decoders, and corresponding methods | |
JP7521057B2 (en) | Corresponding methods of boundary strength derivation for the encoder, decoder, and deblocking filter | |
KR20210077759A (en) | Image prediction method and device | |
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 | |
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 | |
RU2798316C2 (en) | Method and equipment for external prediction | |
CN115914648A (en) | Video image processing method and device | |
CN111726617A (en) | Optimization method and device for fusion motion vector difference technology and coder-decoder | |
RU2819065C2 (en) | Video encoder, video decoder and corresponding method | |
WO2024113708A1 (en) | Video processing method and apparatus | |
RU2783348C1 (en) | Encoder, decoder and corresponding methods for obtaining the boundary power of the debloking filter | |
CN113615191B (en) | Method and device for determining image display sequence and video encoding and decoding equipment | |
WO2020073928A1 (en) | Inter prediction method and apparatus |