RU2771669C1 - Video encoder, video decoder, method for video encoding, method for video decoding - Google Patents

Video encoder, video decoder, method for video encoding, method for video decoding Download PDF

Info

Publication number
RU2771669C1
RU2771669C1 RU2020143236A RU2020143236A RU2771669C1 RU 2771669 C1 RU2771669 C1 RU 2771669C1 RU 2020143236 A RU2020143236 A RU 2020143236A RU 2020143236 A RU2020143236 A RU 2020143236A RU 2771669 C1 RU2771669 C1 RU 2771669C1
Authority
RU
Russia
Prior art keywords
weight
video
weight factor
weights
prediction
Prior art date
Application number
RU2020143236A
Other languages
Russian (ru)
Inventor
Хари КАЛВА
Боривое ФУРТ
Original Assignee
Мицубиси Электрик Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Мицубиси Электрик Корпорейшн filed Critical Мицубиси Электрик Корпорейшн
Application granted granted Critical
Publication of RU2771669C1 publication Critical patent/RU2771669C1/en

Links

Images

Abstract

FIELD: data processing.
SUBSTANCE: invention relates to the field of information processing, in particular, to video compression including decoding and encoding. Proposed method for encoding includes receiving a bit stream; determining whether bidirectional prediction is activated with a mode based on adaptive weight coefficients for the current block; determining at least one weight coefficient; and restoring pixel data of the current block using combining with weighing of at least two reference blocks. Also described are corresponding equipment, systems, technologies, and articles.
EFFECT: increase in the efficiency of video encoding and decoding.
4 cl, 6 dwg

Description

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

[0001] Данная заявка притязает на приоритет предварительной заявки на патент США № 62/694524, поданной 6 июля 2018 года, и предварительной заявки на патент США № 62/694540, поданной 6 июля 2018 года, содержание каждой из которых настоящим полностью и явно содержится по ссылке в данном документе.[0001] This application claims priority of U.S. Provisional Application No. 62/694524, filed July 6, 2018, and U.S. Provisional Application No. 62/694,540, filed July 6, 2018, the contents of each of which are hereby expressly and fully contained at the link in this document.

Область техники, к которой относится изобретениеThe field of technology to which the invention belongs

[0002] Предмет изобретения, описанный в данном документе, относится к сжатию видео, включающему в себя декодирование и кодирование.[0002] The subject matter described herein relates to video compression, including decoding and encoding.

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

[0003] Видеокодек может включать в себя электронную схему или программное обеспечение, которое сжимает или распаковывает цифровое видео. Он может преобразовывать несжатое видео в сжатый формат или наоборот. В контексте сжатия видео, устройство, которое сжимает видео (и/или выполняет некоторую функцию означенного), типично может называться "кодером", а устройство, которое распаковывает видео (и/или выполняет некоторую функцию означенного), может называться "декодером".[0003] A video codec may include electronic circuitry or software that compresses or decompresses digital video. It can convert uncompressed video to compressed format or vice versa. In the context of video compression, a device that compresses video (and/or performs some signified function) can typically be called an "encoder", and a device that decompresses video (and/or performs some signified function) can be called a "decoder".

[0004] Формат сжатых данных может соответствовать стандартной спецификации сжатия видео. Сжатие может осуществляться с потерями в том, что в сжатом видео отсутствует некоторая информация, присутствующая в исходном видео. Последствие этого может включать в себя то, что распакованное видео может иметь более низкое качество, чем исходное несжатое видео, поскольку недостаточно информации для того, чтобы точно восстанавливать исходное видео.[0004] The compressed data format may conform to a standard video compression specification. Compression can be lossy in that the compressed video is missing some of the information present in the original video. A consequence of this may include that the decompressed video may be of lower quality than the original uncompressed video because there is not enough information to accurately reconstruct the original video.

[0005] Могут возникать сложные взаимосвязи между качеством видео, объемом данных, используемых для того, чтобы представлять видео (например, определенным посредством скорости передачи битов), сложностью алгоритмов кодирования и декодирования, чувствительностью к потерям и ошибкам в данных, простотой редактирования, произвольным доступом, сквозной задержкой (например, временем задержки) и т.п.[0005] Complex relationships can arise between video quality, the amount of data used to represent the video (e.g., defined by bit rate), complexity of encoding and decoding algorithms, sensitivity to data loss and error, ease of editing, random access , end-to-end delay (for example, delay time), etc.

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

[0006] В аспекте, способ включает в себя прием потока битов; определение того, активируется ли двунаправленное предсказание с режимом на основе адаптивных весовых коэффициентов для текущего блока; определение по меньшей мере одного весового коэффициента; и восстановление пиксельных данных текущего блока с использованием комбинирования со взвешиванием по меньшей мере двух опорных блоков.[0006] In an aspect, the method includes receiving a bit stream; determining whether bi-directional prediction with the mode based on adaptive weights is activated for the current block; determining at least one weighting factor; and restoring the pixel data of the current block using the weighted combination of the at least two reference blocks.

[0007] Одно или более из следующего может включаться в любой осуществимой комбинации. Например, поток битов может включать в себя параметр, указывающий то, активируется ли двунаправленное предсказание с режимом на основе адаптивных весовых коэффициентов для блока. Двунаправленное предсказание с режимом на основе адаптивных весовых коэффициентов может передаваться в служебных сигналах в потоке битов. Определение по меньшей мере одного весового коэффициента может включать в себя определение индекса в массиве весовых коэффициентов; и осуществление доступа к массиву весовых коэффициентов с использованием индекса. Определение по меньшей мере одного весового коэффициента может включать в себя определение первого расстояния от текущего кадра до первого опорного кадра по меньшей мере из двух опорных блоков; определение второго расстояния от текущего кадра до второго опорного кадра по меньшей мере из двух опорных блоков; и определение по меньшей мере одного весового коэффициента на основе первого расстояния и второго расстояния. Определение по меньшей мере одного весового коэффициента на основе первого расстояния и второго расстояния может выполняться согласно следующему: w1=α0x(NI)/(NI+NJ); w0=(1-w1); где w1 является первым весовым коэффициентом, w0 является вторым весовым коэффициентом, α0 составляет предварительно определенное значение; NI является первым расстоянием, и NJ является вторым расстоянием. Определение по меньшей мере одного весового коэффициента может включать в себя: определение первого весового коэффициента по меньшей мере посредством определения индекса в массиве весовых коэффициентов и осуществления доступа к массиву весовых коэффициентов с использованием индекса; и определение второго весового коэффициента по меньшей мере посредством вычитания первого весового коэффициента из значения. Массив может включать в себя целочисленные значения, включающие в себя {4, 5, 3, 10, -2}. Определение первого весового коэффициента может включать в себя задание первой весовой переменной w1 равной элементу массива, указываемому посредством индекса. Определение второго весового коэффициента может включать в себя задание второй весовой переменной w0 равной значению минус первая весовая переменная. Определение первого весового коэффициента и определение второго весового коэффициента могут выполняться согласно следующему: задание переменной w1 равной bcwWLut[bcwIdx] для bcwWLut[k]={4, 5, 3, 10, -2}; и задание переменной w0 равной (8-w1); где bcwIdx является индексом, и k является переменной. Комбинирование со взвешиванием по меньшей мере двух опорных блоков может вычисляться согласно pbSamples[x][y]=Clip3(0, (1<<bitDepth)-1, (w0*predSamplesL0[x][y]+w1*predSamplesL1[x][y]+offset3)>>(shift2+3)), где pbSamples[x][y] являются пиксельными значениями предсказания, x и y являются местоположениями сигналов яркости, "<<" является арифметическим сдвигом влево целочисленного представления в двоичном дополнительном коде посредством двоичных цифр, predSamplesL0 является первым массивом пиксельных значений первого опорного блока по меньшей мере из двух опорных блоков, predSamplesL1 является вторым массивом пиксельных значений второго опорного блока по меньшей мере из двух опорных блоков, offset3 является значением смещения, shift2 является значением сдвига, и[0007] One or more of the following may be included in any feasible combination. For example, the bitstream may include a parameter indicating whether bidirectional prediction is enabled with the mode based on adaptive weights for the block. Bidirectional prediction with adaptive weighting mode may be signaled in the bitstream. Determining at least one weight factor may include determining an index in an array of weight factors; and accessing the array of weights using the index. Determining at least one weight may include determining a first distance from the current frame to a first reference frame of at least two reference blocks; determining a second distance from the current frame to a second reference frame of at least two reference blocks; and determining at least one weighting factor based on the first distance and the second distance. The determination of at least one weighting factor based on the first distance and the second distance may be performed according to the following: w1=α 0 x(N I )/(N I +N J ); w0=(1-w1); where w1 is the first weighting factor, w0 is the second weighting factor, α 0 is a predetermined value; N I is the first distance and N J is the second distance. Determining at least one weight may include: determining a first weight by at least determining an index in the weights array and accessing the weights array using the index; and determining a second weight by at least subtracting the first weight from the value. The array may include integer values including {4, 5, 3, 10, -2}. Determining the first weight may include setting the first weight variable w1 to an array element indicated by the index. Determining the second weight may include setting the second weight variable w0 to a value minus the first weight variable. The determination of the first weight coefficient and the determination of the second weight coefficient may be performed according to the following: setting the variable w1 to bcwWLut[bcwIdx] for bcwWLut[k]={4, 5, 3, 10, -2}; and setting the variable w0 equal to (8-w1); where bcwIdx is an index and k is a variable. A weighted combination of at least two reference blocks can be computed according to pbSamples[x][y]=Clip3(0, (1<<bitDepth)-1, (w0*predSamplesL0[x][y]+w1*predSamplesL1[x] [y]+offset3)>>(shift2+3)), where pbSamples[x][y] are prediction pixel values, x and y are luminance signal locations, "<<" is the arithmetic left shift of the two's complement integer representation in binary digits, predSamplesL0 is the first array of pixel values of the first reference block of at least two reference blocks, predSamplesL1 is the second array of pixel values of the second reference block of at least two reference blocks, offset3 is an offset value, shift2 is a shift value, and

Figure 00000001
Figure 00000001

Определение индекса может включать в себя приспособление индекса из соседнего блока во время режима объединения. Приспособление индекса из соседнего блока во время режима объединения может включать в себя определение списка возможных вариантов объединения, содержащего пространственные возможные варианты и временные возможные варианты, выбор, с использованием индекса возможного варианта объединения, включенного в поток битов, возможного варианта объединения из списка возможных вариантов объединения, и задание значения индекса равным значению индекса, ассоциированному с выбранным возможным вариантом объединения. По меньшей мере, два опорных блока могут включать в себя первый блок выборок предсказания из предыдущего кадра и второй блок выборок предсказания из последующего кадра. Восстановление пиксельных данных может включать в себя использование ассоциированного вектора движения, содержащегося в потоке битов. Восстановление пиксельных данных может выполняться посредством декодера, включающего в себя схему, причем декодер дополнительно содержит: процессор энтропийного декодирования, выполненный с возможностью принимать поток битов и декодировать поток битов в квантованные коэффициенты; процессор обратного квантования и обратного преобразования, выполненный с возможностью обрабатывать квантованные коэффициенты, что включает в себя выполнение обратного дискретного косинусного преобразования; фильтр удаления блочности; буфер кадров; и процессор внутреннего предсказания. Текущий блок может составлять часть дерева квадрантов плюс двоичного дерева решений. Текущий блок может представлять собой единицу дерева кодирования, единицу кодирования и/или единицу предсказания.Defining an index may include adapting an index from a neighboring block during merge mode. Adapting an index from a neighboring block during the merge mode may include determining a merge candidate list containing spatial and temporal possibilities, selecting, using a merge candidate index included in the bit stream, a merge candidate from the merge candidate list , and setting the index value to an index value associated with the selected join candidate. The at least two reference blocks may include a first block of prediction samples from a previous frame and a second block of prediction samples from a subsequent frame. Restoring the pixel data may include using an associated motion vector contained in the bitstream. Pixel data recovery may be performed by a decoder including circuitry, the decoder further comprising: an entropy decoding processor configured to receive a bit stream and decode the bit stream into quantized coefficients; an inverse quantization and inverse transform processor, configured to process the quantized coefficients, which includes performing an inverse discrete cosine transform; deblocking filter; frame buffer; and an intra prediction processor. The current block may form part of a quadtree plus a binary decision tree. The current block may be a coding tree unit, a coding unit, and/or a prediction unit.

[0008] Также описываются энергонезависимые компьютерные программные продукты (т.е. физически осуществленные компьютерные программные продукты), которые сохраняют инструкции, которые, при выполнении посредством одного или более процессоров данных одной или более вычислительных систем, инструктируют по меньшей мере одному процессору данных выполнять операции в данном документе. Аналогично, также описываются компьютерные системы, которые могут включать в себя один или более процессоров данных и запоминающее устройство, соединенное с одним или более процессоров данных. Запоминающее устройство может временно или постоянно сохранять инструкции, которые инструктируют по меньшей мере одному процессору выполнять одну или более операций, описанных в данном документе. Помимо этого, способы либо могут реализовываться посредством одного или более процессоров данных в одной вычислительной системе, либо распределяться между двумя или более вычислительных систем. Такие вычислительные системы могут соединяться и могут обмениваться данными и/или командами или другими инструкциями и т.п. через одно или более соединений, в том числе через соединение по сети (например, через Интернет, беспроводную глобальную вычислительную сеть, локальную вычислительную сеть, глобальную вычислительную сеть, проводную сеть и т.п.), через прямое соединение между одной или более из нескольких вычислительных систем и т.д.[0008] Also described are non-volatile computer program products (i.e., physically implemented computer program products) that store instructions that, when executed by one or more data processors of one or more computing systems, instruct at least one data processor to perform operations. in this document. Similarly, computer systems are also described that may include one or more data processors and a storage device coupled to one or more data processors. The storage device may temporarily or permanently store instructions that instruct at least one processor to perform one or more of the operations described herein. In addition, the methods may either be implemented by one or more data processors on a single computing system, or distributed across two or more computing systems. Such computing systems can be connected and can exchange data and/or commands or other instructions and the like. through one or more connections, including through a network connection (for example, over the Internet, wireless wide area network, local area network, wide area network, wired network, etc.), through a direct connection between one or more of several computing systems, etc.

[0009] Подробности одного или более варьирований предмета изобретения, описанного в данном документе, изложены на прилагаемых чертежах и в нижеприведенном описании. Другие признаки и преимущества предмета изобретения, описанного в данном документе, должны становиться очевидными из описания и чертежей и из формулы изобретения.[0009] The details of one or more variations of the subject matter described herein are set forth in the accompanying drawings and in the description below. Other features and advantages of the subject matter described herein should become apparent from the description and drawings and from the claims.

Описание чертежейDescription of drawings

[0010] Фиг. 1 является схемой, иллюстрирующей пример двунаправленного предсказания;[0010] FIG. 1 is a diagram illustrating an example of bidirectional prediction;

[0011] Фиг. 2 является схемой последовательности операций обработки, иллюстрирующей примерный процесс 200 декодирования для двунаправленного предсказания с адаптивными весовыми коэффициентами;[0011] FIG. 2 is a processing flow diagram illustrating an exemplary decoding process 200 for bidirectional prediction with adaptive weights;

[0012] Фиг. 3 иллюстрирует примерные пространственные соседние узлы для текущего блока;[0012] FIG. 3 illustrates exemplary spatial neighbors for the current block;

[0013] Фиг. 4 является блок-схемой системы, иллюстрирующей примерный видеокодер, допускающий выполнение двунаправленного предсказания с адаптивным весовым коэффициентом;[0013] FIG. 4 is a system block diagram illustrating an exemplary video encoder capable of performing bidirectional prediction with an adaptive weight;

[0014] Фиг. 5 является блок-схемой системы, иллюстрирующей примерный декодер, допускающий декодирование потока битов с использованием двунаправленного предсказания с адаптивными весовыми коэффициентами; и[0014] FIG. 5 is a system block diagram illustrating an exemplary decoder capable of decoding a bit stream using bidirectional prediction with adaptive weights; and

[0015] Фиг. 6 является блок-схемой, иллюстрирующей примерное многоуровневое предсказание с адаптивными весовыми коэффициентами на основе подхода на основе расстояний до опорного кинокадра согласно некоторым реализациям текущего предмета изобретения.[0015] FIG. 6 is a block diagram illustrating an exemplary multi-level prediction with adaptive weights based on a distance-to-reference-picture-based approach, in accordance with some implementations of the current subject matter.

[0016] Аналогичные ссылки с номерами на различных чертежах указывают аналогичные элементы.[0016] Like reference numerals throughout the various drawings indicate like elements.

Подробное описание изобретенияDetailed description of the invention

[0017] В некоторых реализациях, предсказание со взвешиванием может улучшаться с использованием адаптивных весовых коэффициентов. Например, комбинация опорных кинокадров (например, предиктор) может вычисляться с использованием весовых коэффициентов, которые могут быть адаптивными. Один подход к адаптивным весовым коэффициентам заключается в том, чтобы адаптировать весовые коэффициенты на основе расстояния до опорного кинокадра. Другой подход к адаптивным весовым коэффициентам заключается в том, чтобы адаптировать весовые коэффициенты на основе соседних блоков. Например, весовые коэффициенты могут приспосабливаться из соседнего блока, если движение текущих блоков должно объединяться с соседним блоком, к примеру, в режиме объединения. Посредством адаптивного определения весовых коэффициентов, могут повышаться эффективность сжатия и скорость передачи битов.[0017] In some implementations, weighted prediction may be improved using adaptive weights. For example, a combination of reference movie frames (eg, a predictor) may be calculated using weights, which may be adaptive. One approach to adaptive weights is to adapt the weights based on the distance to the reference picture. Another approach to adaptive weights is to adapt the weights based on neighboring blocks. For example, the weights may be adapted from a neighboring block if the movement of the current blocks is to be combined with the neighboring block, eg, in a union mode. By adaptively determining the weight coefficients, compression efficiency and bit rate can be improved.

[0018] Компенсация движения может включать в себя подход для того, чтобы предсказывать видеокадр или его часть с учетом предыдущих и/или будущих кадров посредством учета движения камеры и/или объектов в видео. Она может использоваться при кодировании и декодировании видеоданных для сжатия видео, например, при кодировании и декодировании с использованием стандарта Экспертной группы по киноизображению (MPEG)-2 (также называемого "усовершенствованным кодированием видео (AVC)"). Компенсация движения может описывать кинокадр с точки зрения преобразования опорного кинокадра в текущий кинокадр. Опорный кинокадр может быть предыдущим во времени или будущим по сравнению с текущим кинокадром. Когда изображения могут точно синтезироваться из ранее передаваемых и/или сохраненных изображений, может повышаться эффективность сжатия.[0018] Motion compensation may include an approach to predict a video frame or portion thereof given previous and/or future frames by accounting for camera and/or object motion in the video. It can be used in encoding and decoding video data for video compression, such as encoding and decoding using the Motion Picture Experts Group (MPEG)-2 standard (also referred to as "Advanced Video Coding (AVC)"). The motion compensation may describe the movie frame in terms of transforming the reference movie frame into the current movie frame. The reference movie frame may be previous in time or future compared to the current movie frame. When images can be accurately synthesized from previously transmitted and/or stored images, compression efficiency can be improved.

[0019] Сегментация на блоки может означать способ при кодировании видео для того, чтобы находить области аналогичного движения. Некоторая форма сегментации на блоки содержится в стандартах видеокодеков, включающих в себя MPEG-2, H.264 (также называемый "AVC" или "MPEG-4 часть 10") и H.265 (также называемый "стандартом высокоэффективного кодирования видео (HEVC)"). В примерных подходах на основе сегментации на блоки, неперекрывающиеся блоки видеокадра могут сегментироваться на прямоугольные субблоки, чтобы находить блочные сегменты, которые содержат пикселы с аналогичным движением. Этот подход может хорошо работать, когда все пикселы блочного сегмента имеют аналогичное движение. Движение пикселов в блоке может определяться относительно ранее кодированных кадров.[0019] Segmentation into blocks can mean a way in video encoding to find areas of similar motion. Some form of block segmentation is found in video codec standards, including MPEG-2, H.264 (also called "AVC" or "MPEG-4 part 10"), and H.265 (also called "High Efficiency Video Coding (HEVC) standard"). "). In exemplary block segmentation approaches, non-overlapping blocks of a video frame may be segmented into rectangular sub-blocks to find block segments that contain pixels with similar motion. This approach can work well when all the pixels in a block segment have a similar motion. The movement of pixels in a block may be determined relative to previously encoded frames.

[0020] Предсказание с компенсацией движения используется в некоторых стандартах кодирования видео, включающих в себя MPEG-2, H.264/AVC и H.265/HEVC. В этих стандартах предсказанный блок формируется с использованием пикселов из опорного кадра, и местоположение таких пикселов передается в служебных сигналах с использованием векторов движения. Когда двунаправленное предсказание используется, предсказание формируется с использованием среднего двух предсказаний, прямого и обратного предсказания, как показано на фиг. 1.[0020] Motion compensated prediction is used in some video coding standards, including MPEG-2, H.264/AVC, and H.265/HEVC. In these standards, a predicted block is generated using pixels from a reference frame, and the location of those pixels is signaled using motion vectors. When bidirectional prediction is used, the prediction is generated using the average of two predictions, forward and backward prediction, as shown in FIG. one.

[0021] Фиг. 1 является схемой, иллюстрирующей пример двунаправленного предсказания.[0021] FIG. 1 is a diagram illustrating an example of bidirectional prediction.

Текущий блок (Bc) предсказывается на основе обратного предсказания (Pb) и прямого предсказания (Pf). Текущий блок (Bc) может рассматриваться в качестве предсказания по среднему, которое может формироваться в качестве Bc=(Pb+Pf)/2. Но использование таких бипредсказаний (например, усреднение двух предсказаний) может не обеспечивать наилучшее предсказание. В некоторых реализациях, текущий предмет изобретения включает в себя использование среднего взвешенного прямого и обратного предсказания. В некоторых реализациях, текущий предмет изобретения может предоставлять улучшенные предсказанные блоки и повышенную эффективность использования опорных кадров для того, чтобы улучшать сжатие.The current block (Bc) is predicted based on backward prediction (Pb) and forward prediction (Pf). The current block (Bc) may be considered as a mean prediction, which may be generated as Bc=(Pb+Pf)/2. But using such bi-predictions (eg, averaging two predictions) may not provide the best prediction. In some implementations, the current subject matter includes the use of a weighted average of forward and backward predictions. In some implementations, the current subject matter may provide improved predicted blocks and improved efficiency in the use of key frames in order to improve compression.

[0022] В некоторых реализациях, многоуровневое предсказание может включать в себя, для данного блока, Bc, в кодируемом текущем кинокадре, два предиктора Pi и Pj могут идентифицироваться с использованием процесса оценки движения. Например, предсказание Pc=(Pi+Pj)/2 может использоваться в качестве предсказанного блока. Предсказание со взвешиванием может вычисляться в качестве Pc=α*Pi+(1-α)*Pj где α={1/4, -1/8}. Когда используется такое предсказание со взвешиванием, весовые коэффициенты могут передаваться в служебных сигналах в потоке видеобитов. Ограничение выбора двумя весовыми коэффициентами уменьшает объем служебной информации в потоке битов и эффективно уменьшает скорость передачи битов и улучшает сжатие.[0022] In some implementations, multi-level prediction may include, for a given block, Bc, in the current movie frame being encoded, two predictors Pi and Pj may be identified using a motion estimation process. For example, the prediction Pc=(Pi+Pj)/2 may be used as the predicted block. The weighted prediction can be calculated as Pc=α*Pi+(1-α)*Pj where α={1/4, -1/8}. When such weighted prediction is used, the weights may be signaled in the video bit stream. Limiting the selection to two weights reduces the amount of overhead in the bit stream and effectively reduces the bit rate and improves compression.

[0023] В некоторых реализациях, адаптивные весовые коэффициенты могут быть основаны на расстояниях до опорного кинокадра. В таком случае, весовые коэффициенты могут определяться следующим образом: Bc=αPI+βPJ. В некоторых реализациях, β=(1-α). В некоторых реализациях, NI и NJ могут включать в себя расстояния для опорных кадров I и J. Коэффициенты α и β могут определяться в качестве функции расстояний до кадра. Например, α=α0x(NI)/(NI+NJ); β=(1-α).[0023] In some implementations, adaptive weights may be based on distances to a reference movie frame. In such a case, the weighting factors can be determined as follows: Bc=αP I +βP J . In some implementations, β=(1-α). In some implementations, N I and N J may include the distances for the I and J reference frames. The coefficients α and β may be determined as a function of frame distances. For example, α=α 0 x(N I )/(N I +N J ); β=(1-α).

[0024] В некоторых реализациях, адаптивные весовые коэффициенты могут приспосабливаться из соседних блоков, когда текущий блок приспосабливает информацию движения из соседнего блока. Например, когда текущий блок находится в режиме объединения и идентифицирует пространственный или временной соседний узел, в дополнение к приспособлению информации движения, также могут приспосабливаться весовые коэффициенты.[0024] In some implementations, adaptive weights may be adapted from adjacent blocks when the current block adapts motion information from a neighboring block. For example, when the current block is in merge mode and identifies a spatial or temporal neighbor, in addition to fitting motion information, weights may also be adjusted.

[0025] В некоторых реализациях, коэффициенты α, β масштабирования могут варьироваться в расчете на блок и приводить к дополнительному объему служебной информации в потоке видеобитов. В некоторых реализациях, служебная информация в потоке битов может уменьшаться посредством использования идентичного значения α для всех субблоков данного блока. Могут накладываться дополнительные ограничения, при которых все блоки кадра используют идентичное значение α, и такое значение передается в служебных сигналах только один раз в заголовке уровня кинокадра, к примеру, в наборе параметров кинокадра. В некоторых реализациях, используемый режим предсказания может передаваться в служебных сигналах посредством передачи в служебных сигналах новых весовых коэффициентов на уровне блока, использования весовых коэффициентов, передаваемых в служебных сигналах на уровне кадра, приспособления весовых коэффициентов из соседних блоков в режиме объединения и/или адаптивного масштабирования весовых коэффициентов на основе расстояний до опорного кадра.[0025] In some implementations, the scaling factors α, β may vary per block and result in additional overhead in the video bit stream. In some implementations, the overhead in the bitstream may be reduced by using the same value of α for all sub-blocks of a given block. Additional restrictions may be imposed whereby all blocks of a frame use the same value of α, and such a value is signaled only once in a movie frame level header, eg, in a movie frame parameter set. In some implementations, the prediction mode used may be signaled by signaling new weights at the block level, using weights signaled at the frame level, adapting weights from neighboring blocks in the combining mode, and/or adaptive scaling. weighting coefficients based on distances to the reference frame.

[0026] Фиг. 2 является схемой последовательности операций обработки, иллюстрирующей примерный процесс 200 декодирования для двунаправленного предсказания с адаптивными весовыми коэффициентами.[0026] FIG. 2 is a processing flow diagram illustrating an exemplary decoding process 200 for bidirectional prediction with adaptive weights.

[0027] На 210, принимается поток битов. Прием потока битов может включать в себя извлечение и/или синтаксический анализ текущего блока и ассоциированной служебной информации из потока битов.[0027] At 210, a bit stream is received. Receiving the bit stream may include extracting and/or parsing the current block and associated overhead from the bit stream.

[0028] На 220, определяется то, активируется ли двунаправленное предсказание с режимом на основе адаптивных весовых коэффициентов для текущего блока. В некоторых реализациях, поток битов может включать в себя параметр, указывающий то, активируется ли двунаправленное предсказание с режимом на основе адаптивных весовых коэффициентов для блока. Например, флаг (например, sps_bcw_enabled_flag) может указывать то, может ли бипредсказание с весовыми коэффициентами единиц кодирования (CU) использоваться для взаимного предсказания. Если sps_bcw_enabled_flag равен 0, синтаксис может ограничиваться таким образом, что бипредсказание с весовыми коэффициентами CU не используется в кодированной видеопоследовательности (CVS), и bcw_idx не присутствует в синтаксисе единицы кодирования CVS. В противном случае (например, sps_bcw_enabled_flag равен 1), бипредсказание с весовыми коэффициентами CU может использоваться в CVS.[0028] At 220, it is determined whether bi-directional prediction is enabled with the adaptive weights mode for the current block. In some implementations, the bitstream may include a parameter indicating whether bidirectional prediction is enabled with a mode based on adaptive weights for the block. For example, a flag (eg, sps_bcw_enabled_flag) may indicate whether biprediction with coding unit (CU) weights can be used for inter prediction. If sps_bcw_enabled_flag is 0, the syntax may be constrained such that biprediction with CU weights is not used in the coded video sequence (CVS) and bcw_idx is not present in the CVS coding unit syntax. Otherwise (eg, sps_bcw_enabled_flag is 1), biprediction with CU weights may be used in CVS.

[0029] На 230, может определяться по меньшей мере один весовой коэффициент. В некоторых реализациях, определение по меньшей мере одного весового коэффициента может включать в себя определение индекса в массиве весовых коэффициентов; и осуществление доступа к массиву весовых коэффициентов с использованием индекса. Индекс может варьироваться между блоками и может явно передаваться в служебных сигналах в потоке битов или логически выводиться.[0029] At 230, at least one weighting factor may be determined. In some implementations, determining at least one weight may include determining an index into an array of weights; and accessing the array of weights using the index. The index may vary between blocks and may be explicitly signaled in the bitstream or inferred.

[0030] Например, массив bcw_idx[x0][y0] индексов может включаться в поток битов и может указывать индекс весового коэффициента бипредсказания с весовыми коэффициентами CU. Индексы x0, y0 массива указывают местоположение (x0, y0) верхней левой выборки сигнала яркости текущего блока относительно верхней левой выборки сигнала яркости кинокадра. Когда bcw_idx[x0][y0] не присутствует, он может логически выводиться как равный 0.[0030] For example, an array bcw_idx[x0][y0] of indices may be included in the bitstream and may indicate a bi-prediction weight index with CU weights. Array indices x0, y0 indicate the location (x0, y0) of the top left luma sample of the current block relative to the top left luminance sample of the movie frame. When bcw_idx[x0][y0] is not present, it may be logically inferred to be 0.

[0031] В некоторых реализациях, массив весовых коэффициентов может включать в себя целочисленные значения, например, массив весовых коэффициентов может представлять собой {4, 5, 3, 10, -2}. Определение первого весового коэффициента может включать в себя задание первой весовой переменной w1 равной элементу массива, указываемому посредством индекса, и определение второго весового коэффициента может включать в себя задание второй весовой переменной w0 равной значению минус первая весовая переменная w1. Например, определение первого весового коэффициента и определение второго весового коэффициента могут выполняться согласно следующему: задание переменной w1 равной bcwWLut[bcwIdx] для bcwWLut[k]={4, 5, 3, 10, -2}и задание переменной w0 равной (8-w1).[0031] In some implementations, the weights array may include integer values, for example, the weights array may be {4, 5, 3, 10, -2}. Determining the first weight may include setting the first weight variable w1 to the array element indicated by the index, and determining the second weight may include setting the second weight variable w0 to a value minus the first weight variable w1. For example, the determination of the first weight coefficient and the determination of the second weight coefficient may be performed according to the following: setting the variable w1 to bcwWLut[bcwIdx] for bcwWLut[k]={4, 5, 3, 10, -2} and setting the variable w0 to (8- w1).

[0032] Определение индекса может включать в себя приспособление индекса из соседнего блока во время режима объединения. Например, в режиме объединения, информация движения для текущего блока приспосабливается из соседнего узла. Фиг. 3 иллюстрирует примерные пространственные соседние узлы (A0, A1, B0, B1, B2) для текущего блока (причем каждое из A0, A1, B0, B1, B2 указывает местоположение соседнего пространственного блока).[0032] Determining an index may include adapting an index from a neighboring block during a merge mode. For example, in merge mode, the motion information for the current block is adapted from the neighboring node. Fig. 3 illustrates exemplary spatial neighbor nodes (A0, A1, B0, B1, B2) for the current block (with each of A0, A1, B0, B1, B2 indicating the location of an adjacent spatial block).

[0033] Приспособление индекса из соседнего блока во время режима объединения может включать в себя определение списка возможных вариантов объединения, содержащего пространственные возможные варианты и временные возможные варианты; выбор, с использованием индекса возможного варианта объединения, включенного в поток битов, возможного варианта объединения из списка возможных вариантов объединения; и задание значения индекса равному значению индекса, ассоциированному с выбранным возможным вариантом объединения.[0033] Adapting an index from a neighboring block during a merge mode may include determining a list of merge options containing spatial options and temporal options; selecting, using a merge candidate index included in the bitstream, a merge candidate from a list of merge candidates; and setting the index value to an index value associated with the selected join candidate.

[0034] Снова ссылаясь на фиг. 2, на 240, пиксельные данные текущего блока могут восстанавливаться с использованием комбинирования со взвешиванием по меньшей мере двух опорных блоков. По меньшей мере, два опорных блока могут включать в себя первый блок выборок предсказания из предыдущего кадра и второй блок выборок предсказания из будущего кадра.[0034] Referring again to FIG. 2, at 240, the pixel data of the current block may be recovered using weighted combining of at least two reference blocks. The at least two reference blocks may include a first block of prediction samples from a previous frame and a second block of prediction samples from a future frame.

[0035] Восстановление может включать в себя определение предсказания и комбинирование предсказания с остатком. Например, в некоторых реализациях, значения выборок предсказания могут определяться следующим образом.[0035] Recovery may include determining the prediction and combining the prediction with the remainder. For example, in some implementations, the prediction sample values may be determined as follows.

pbSamples[x][y]=Clip3(0, (1<<bitDepth)-1, (w0*predSamplesL0[x][y]+w1*predSamplesL1[x][y]+offset3)>>(shift2+3)),pbSamples[x][y]=Clip3(0, (1<<bitDepth)-1, (w0*predSamplesL0[x][y]+w1*predSamplesL1[x][y]+offset3)>>(shift2+3 )),

где pbSamples[x][y] являются пиксельными значениями предсказания, x и y являются местоположениями сигналов яркости,where pbSamples[x][y] are prediction pixel values, x and y are luminance signal locations,

Figure 00000002
Figure 00000002

"<<" является арифметическим сдвигом влево целочисленного представления в двоичном дополнительном коде посредством двоичных цифр, predSamplesL0 является первым массивом пиксельных значений первого опорного блока по меньшей мере из двух опорных блоков, predSamplesL1 является вторым массивом пиксельных значений второго опорного блока по меньшей мере из двух опорных блоков, offset3 является значением смещения, и shift2 является значением сдвига."<<" is the arithmetic left shift of the two's complement integer representation in binary digits, predSamplesL0 is the first array of pixel values of the first reference block of at least two reference blocks, predSamplesL1 is the second array of pixel values of the second reference block of at least two reference blocks blocks, offset3 is the offset value, and shift2 is the shift value.

[0036] Фиг. 4 является блок-схемой системы, иллюстрирующей примерный видеокодер 400, допускающий выполнение двунаправленного предсказания с адаптивными весовыми коэффициентами. Примерный видеокодер 400 принимает входное видео 405, которое может первоначально сегментироваться или разделяться согласно схеме обработки, такой как схема сегментации на макроблоки с древовидной структурой (например, дерево квадрантов плюс двоичное дерево). Пример схемы сегментации на макроблоки с древовидной структурой может включать в себя сегментацию кадра кинокадра на большие блочные элементы, называемые "единицами дерева кодирования (CTU)". В некоторых реализациях, каждая CTU дополнительно может сегментироваться один или более раз на определенное число субблоков, называемых "единицами кодирования (CU)". Конечный результат этого деления на части может включать в себя группу субблоков, которые могут называться "единицами предсказания (PU)". Также могут использоваться единицы преобразования (TU).[0036] FIG. 4 is a system block diagram illustrating an exemplary video encoder 400 capable of performing bidirectional prediction with adaptive weights. An exemplary video encoder 400 receives input video 405, which may initially be segmented or split according to a processing scheme, such as a macroblock segmentation scheme with a tree structure (eg, quadtree plus binary tree). An example of a macroblock segmentation scheme with a tree structure may include segmenting a movie frame into larger block units called "coding tree units (CTUs)". In some implementations, each CTU may further be segmented one or more times into a certain number of subblocks, referred to as "coding units (CUs)". The end result of this division into parts may include a group of sub-blocks, which may be referred to as "prediction units (PU)". Conversion units (TUs) may also be used.

[0037] Примерный видеокодер 400 включает в себя процессор 410 внутреннего предсказания, процессор 420 оценки/компенсации движения (также называемый "процессором взаимного предсказания"), допускающий поддержку двунаправленного предсказания с адаптивными весовыми коэффициентами, процессор 425 преобразования/квантования, процессор 430 обратного квантования/обратного преобразования, внутриконтурный фильтр 435, буфер 440 декодированных кинокадров и процессор 445 энтропийного кодирования. В некоторых реализациях, процессор 420 оценки/компенсации движения может выполнять двунаправленное предсказание с адаптивными весовыми коэффициентами. Параметры потока битов, которые передают в служебных сигналах двунаправленное предсказание с режимом на основе адаптивных весовых коэффициентов, и связанные параметры могут вводиться в процессор 445 энтропийного кодирования для включения в выходной поток 450 битов.[0037] An exemplary video encoder 400 includes an intra prediction processor 410, a motion estimation/compensation processor 420 (also referred to as an "inter prediction processor") capable of supporting bidirectional prediction with adaptive weights, a transform/quantization processor 425, an inverse quantization processor 430/ an inverse transform, an in-loop filter 435, a decoded movie frame buffer 440, and an entropy encoding processor 445. In some implementations, motion estimation/compensation processor 420 may perform bidirectional prediction with adaptive weights. Bitstream parameters that signal adaptive weighted bidirectional prediction and associated parameters may be input to entropy encoding processor 445 for inclusion in output bitstream 450 .

[0038] При работе, для каждого блока кадра входного видео 405, может определяться то, следует обрабатывать блок через внутрикинокадровое предсказание или с использованием оценки/компенсации движения. Блок может предоставляться в процессор внутреннего предсказания 410 или процессор 420 оценки/компенсации движения. Если блок должен обрабатываться через внутреннее предсказание, процессор внутреннего предсказания 410 может выполнять обработку для того, чтобы выводить предиктор. Если блок должен обрабатываться через оценку/компенсацию движения, процессор 420 оценки/компенсации движения может выполнять обработку, включающую в себя использование двунаправленного предсказания с адаптивными весовыми коэффициентами для того, чтобы выводить предиктор.[0038] In operation, for each frame block of the input video 405, it may be determined whether the block should be processed via intra-picture prediction or using motion estimation/compensation. The block may be provided to intra prediction processor 410 or motion estimation/compensation processor 420. If the block is to be processed via intra prediction, intra prediction processor 410 may perform processing to derive a predictor. If the block is to be processed via motion estimation/compensation, motion estimation/compensation processor 420 may perform processing including using bidirectional prediction with adaptive weights to derive a predictor.

[0039] Остаток может формироваться посредством вычитания предиктора из входного видео. Остаток может приниматься посредством процессора 425 преобразования/квантования, который может выполнять обработку преобразования (например, дискретное косинусное преобразование (DCT)), чтобы формировать коэффициенты, которые могут квантоваться. Квантованные коэффициенты и любая ассоциированная служебная информация могут предоставляться в процессор 445 энтропийного кодирования для энтропийного кодирования и включения в выходной поток 450 битов. Процессор 445 энтропийного кодирования может поддерживать кодирование служебной информации, связанной с двунаправленным предсказанием с адаптивными весовыми коэффициентами. Помимо этого, квантованные коэффициенты могут предоставляться в процессор 430 обратного преобразования/обратного квантования, который может воспроизводить пикселы, которые могут комбинироваться с предиктором и обрабатываться посредством в контурном фильтре 435, вывод которого сохраняется в буфере 440 декодированных кинокадров для использования посредством процессора 420 оценки/компенсации движения, который допускает поддержку двунаправленного предсказания с адаптивными весовыми коэффициентами.[0039] The residual may be generated by subtracting the predictor from the input video. The remainder may be received by a transform/quantization processor 425, which may perform transform processing (eg, discrete cosine transform (DCT)) to generate coefficients that can be quantized. The quantized coefficients and any associated overhead information may be provided to the entropy encoding processor 445 for entropy encoding and inclusion in the 450 bit output stream. Entropy encoding processor 445 may support encoding overhead information associated with bidirectional prediction with adaptive weights. In addition, the quantized coefficients may be provided to an inverse transform/inverse quantization processor 430, which may reproduce pixels that may be combined with a predictor and processed by in a loop filter 435, the output of which is stored in a decoded movie frame buffer 440 for use by an estimation/compensation processor 420 motion that allows support for bi-directional prediction with adaptive weights.

[0040] Фиг. 5 является блок-схемой системы, иллюстрирующей примерный декодер 600, допускающий декодирование потока 670 битов с использованием двунаправленного предсказания с адаптивными весовыми коэффициентами. Декодер 600 включает в себя процессор 610 энтропийного декодирования, процессор 620 обратного квантования и обратного преобразования, фильтр 630 удаления блочности, буфер 640 кадров, процессор 650 компенсации движения и процессор 660 внутреннего предсказания. В некоторых реализациях, поток 670 битов включает в себя параметры, которые передают в служебных сигналах двунаправленное предсказание с адаптивными весовыми коэффициентами. Процессор 650 компенсации движения может восстанавливать пиксельную информацию с использованием двунаправленного предсказания с адаптивными весовыми коэффициентами, как описано в данном документе.[0040] FIG. 5 is a system block diagram illustrating an exemplary decoder 600 capable of decoding a 670 bitstream using bidirectional prediction with adaptive weights. The decoder 600 includes an entropy decoding processor 610, an inverse quantization and inverse transform processor 620, a deblocking filter 630, a frame buffer 640, a motion compensation processor 650, and an intra prediction processor 660. In some implementations, bitstream 670 includes parameters that signal bidirectional prediction with adaptive weights. Motion compensation processor 650 may recover pixel information using bidirectional prediction with adaptive weights, as described herein.

[0041] При работе, поток 670 битов может приниматься посредством декодера 600 и вводится в процессор 610 энтропийного декодирования, который энтропийно декодирует поток битов в квантованные коэффициенты. Квантованные коэффициенты могут предоставляться в процессор 620 обратного квантования и обратного преобразования, который может выполнять обратное квантование и обратное преобразование, чтобы создавать остаточный сигнал, который может суммироваться с выводом процессора 650 компенсации движения или процессора 660 внутреннего предсказания согласно режиму обработки. Вывод процессора 650 компенсации движения и процессора 660 внутреннего предсказания может включать в себя блочное предсказание на основе ранее декодированного блока. Сумма предсказания и остатка может обрабатываться посредством фильтра 630 удаления блочности и сохраняться в буфере 640 кадров. Для данного блока (например, CU или PU), когда поток 670 битов передает в служебных сигналах то, что режим представляет собой двунаправленное предсказание с адаптивными весовыми коэффициентами, процессор 650 компенсации движения может конструировать предсказание на основе двунаправленного предсказания с помощью схемы на основе адаптивных весовых коэффициентов, описанной в данном документе.[0041] In operation, a bitstream 670 may be received by a decoder 600 and input to an entropy decoding processor 610, which entropy decodes the bitstream into quantized coefficients. The quantized coefficients may be provided to an inverse quantization and inverse transform processor 620, which may perform inverse quantization and inverse transform to produce a residual signal that may be added to the output of motion compensation processor 650 or intra prediction processor 660 according to the processing mode. The output of motion compensation processor 650 and intra prediction processor 660 may include block prediction based on a previously decoded block. The sum of the prediction and the residual may be processed by the deblocking filter 630 and stored in the frame buffer 640 . For a given block (eg, CU or PU), when bit stream 670 signals that the mode is bidirectional prediction with adaptive weights, motion compensation processor 650 may construct prediction based on bidirectional prediction with an adaptive weights based scheme. coefficients described in this document.

[0042] Хотя выше подробно описываются несколько варьирований, другие модификации или добавления являются возможными. Например, в некоторых реализациях, может реализовываться дерево квадрантов плюс двоичное дерево решений (QTBT). В QTBT, на уровне единицы дерева кодирования, параметры сегментации QTBT динамически извлекаются, чтобы адаптироваться к локальным характеристикам без передачи какого-либо объема служебной информации. Затем, на уровне единицы кодирования, структура на основе дерева решений с объединенным классификатором может исключать необязательные итерации и управлять риском ложного предсказания. В некоторых реализациях, двунаправленное предсказание с адаптивными весовыми коэффициентами на основе расстояний до опорного кинокадра может быть доступным в качестве дополнительного настраиваемого параметра, доступного в каждом узле-листе QTBT.[0042] While several variations are detailed above, other modifications or additions are possible. For example, in some implementations, a quadtree plus binary decision tree (QTBT) may be implemented. In QTBT, at the unit level of the coding tree, QTBT segmentation parameters are dynamically retrieved to adapt to local characteristics without transferring any amount of overhead. Then, at the level of the coding unit, the joint classifier decision tree structure can eliminate unnecessary iterations and manage the risk of false prediction. In some implementations, bidirectional prediction with adaptive weights based on distances to a reference movie frame may be available as an additional configurable parameter available in each QTBT leaf node.

[0043] В некоторых реализациях, предсказание со взвешиванием может улучшаться с использованием многоуровневого предсказания. В некоторых примерах этого подхода, два промежуточных предиктора могут формироваться с использованием предсказаний из нескольких (например, трех, четырех или более) опорных кинокадров. Например, два промежуточных предиктора PIJ и PKL могут формироваться с использованием предсказаний из опорных кинокадров I, J, K, L, как показано на фиг. 6. Фиг. 6 является блок-схемой, иллюстрирующей примерное многоуровневое предсказание с помощью подхода адаптивных весовых коэффициентов согласно некоторым реализациям текущего предмета изобретения. Текущий блок (Bc) может предсказываться на основе двух обратных предсказаний (Pi и Pk) и двух прямых предсказаний (Pj и Pl).[0043] In some implementations, weighted prediction may be improved using multilevel prediction. In some examples of this approach, two intermediate predictors may be generated using predictions from multiple (eg, three, four, or more) reference movie frames. For example, the two intermediate predictors P IJ and P KL may be generated using predictions from the reference pictures I, J, K, L, as shown in FIG. 6. FIG. 6 is a block diagram illustrating an exemplary multilevel prediction with an adaptive weighting approach according to some implementations of the current subject matter. The current block (Bc) can be predicted based on two backward predictions (Pi and Pk) and two forward predictions (Pj and Pl).

[0044] Две предикации Pij и Pkl могут вычисляться следующим образом: Pij=α*PI+(1-α)*PJ; и Pkl=α*PK+(1-α)*PL.[0044] The two predications P ij and P kl can be calculated as follows: P ij =α*P I +(1-α)*P J ; and P kl =α*P K +(1-α)*P L .

[0045] Конечное предсказание для текущего блока Bc может вычисляться с использованием комбинирования со взвешиванием PIJ и PKL. Например, Bc=α*PIJ+(1-α)*PKL.[0045] The final prediction for the current block Bc may be calculated using the weighted combination of P IJ and P KL . For example, Bc=α*P IJ +(1-α)*P KL .

[0046] В некоторых реализациях, коэффициенты α масштабирования могут варьироваться в расчете на блок и приводить к дополнительному объему служебной информации в потоке видеобитов. В некоторых реализациях, служебная информация в потоке битов может уменьшаться посредством использования идентичного значения α для всех субблоков данного блока. Могут накладываться дополнительные ограничения, при которых все блоки кадра используют идентичное значение α, и такое значение передается в служебных сигналах только один раз в заголовке уровня кинокадра, к примеру, в наборе параметров кинокадра. В некоторых реализациях, используемый режим предсказания может передаваться в служебных сигналах посредством передачи в служебных сигналах новых весовых коэффициентов на уровне блока, использования весовых коэффициентов, передаваемых в служебных сигналах на уровне кадра, приспособления весовых коэффициентов из соседних блоков в режиме объединения и/или адаптивного масштабирования весовых коэффициентов на основе расстояний до опорного кадра.[0046] In some implementations, the scaling factors α may vary per block and result in additional overhead in the video bit stream. In some implementations, the overhead in the bitstream may be reduced by using the same value of α for all sub-blocks of a given block. Additional restrictions may be imposed whereby all blocks of a frame use the same value of α, and such a value is signaled only once in a movie frame level header, eg, in a movie frame parameter set. In some implementations, the prediction mode used may be signaled by signaling new weights at the block level, using weights signaled at the frame level, adapting weights from neighboring blocks in the combining mode, and/or adaptive scaling. weighting coefficients based on distances to the reference frame.

[0047] В некоторых реализациях, многоуровневое бипредсказание может реализовываться в кодере и/или декодере, например, в кодере по фиг. 4 и в декодере по фиг. 5. Например, декодер может принимать поток битов, определять то, активируется ли режим многоуровневого двунаправленного предсказания, определять по меньшей мере два промежуточных предсказания и восстанавливать пиксельные данные блока с использованием комбинирования со взвешиванием по меньшей мере двух промежуточных предсказаний.[0047] In some implementations, multi-level biprediction may be implemented in an encoder and/or decoder, such as the encoder of FIG. 4 and in the decoder of FIG. 5. For example, the decoder may receive the bitstream, determine whether the multilevel bidirectional prediction mode is activated, determine at least two intermediate predictions, and recover the block pixel data using weight combining of the at least two intermediate predictions.

[0048] В некоторых реализациях, дополнительные синтаксические элементы могут передаваться в служебных сигналах на различных уровнях иерархии потока битов.[0048] In some implementations, additional syntax elements may be signaled at various levels of the bitstream hierarchy.

[0049] Текущий предмет изобретения может применяться к возможным вариантам аффинного объединения векторов движения на основе управляющих точек, в которых используются две или более управляющих точки. Весовой коэффициент может определяться для каждой из управляющих точек (например, 3 управляющих точек).[0049] The current subject matter may apply to motion vector affine combinations based on control points that use two or more control points. A weighting factor may be defined for each of the control points (eg 3 control points).

[0050] Предмет изобретения, описанный в данном документе, предоставляет множество технических преимуществ. Например, некоторые реализации текущего предмета изобретения могут предоставлять двунаправленное предсказание с адаптивными весовыми коэффициентами, что повышает эффективность и точность сжатия.[0050] The subject matter described herein provides many technical advantages. For example, some implementations of the current subject matter may provide bidirectional prediction with adaptive weights, which improves compression efficiency and accuracy.

[0051] Один или более аспектов или признаков предмета изобретения, описанного в данном документе, могут реализовываться в цифровой электронной схеме, интегральной схеме, специально разработанных специализированных интегральных схемах (ASIC), программируемых пользователем вентильных матрицах (FPGA), компьютерных аппаратных средствах, микропрограммном обеспечении, программном обеспечении и/или в комбинациях вышеозначенного. Эти различные аспекты или признаки могут включать в себя реализацию в одной или более компьютерных программ, которые могут выполняться и/или интерпретироваться на программируемой системе, включающей в себя по меньшей мере один программируемый процессор, который может быть специального назначения или общего назначения, соединенный с возможностью принимать данные и инструкции и передавать данные и инструкции из/в систему хранения данных по меньшей мере одно устройство ввода и по меньшей мере одно устройство вывода. Программируемая система или вычислительная система может включать в себя клиенты и серверы. Клиент и сервер, в общем, являются удаленными друг от друга и типично взаимодействуют через сеть связи. Взаимосвязь клиента и сервера осуществляется на основе компьютерных программ, работающих на соответствующих компьютерах и имеющих клиент-серверную взаимосвязь между собой.[0051] One or more aspects or features of the subject matter described herein may be implemented in a digital electronic circuit, integrated circuit, custom application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), computer hardware, firmware , software and/or combinations of the foregoing. These various aspects or features may include implementation in one or more computer programs that may be executed and/or interpreted on a programmable system including at least one programmable processor, which may be special purpose or general purpose, coupled with the capability receive data and instructions and transmit data and instructions from/to the data storage system of at least one input device and at least one output device. The programmable system or computing system may include clients and servers. The client and server are generally remote from each other and typically communicate through a communications network. The relationship between the client and the server is carried out on the basis of computer programs running on the respective computers and having a client-server relationship with each other.

[0052] Эти компьютерные программы, которые также могут называться "программами", "программным обеспечением", "программными приложениями", "приложениями", "компонентами" или "кодом", включают в себя машинные инструкции для программируемого процессора и могут реализовываться на высокоуровневом процедурном языке, объектно-ориентированном языке программирования, функциональном языке программирования, логическом языке программирования и/или на ассемблере/машинном языке. При использовании в данном документе, термин "машиночитаемый носитель" означает любой компьютерный программный продукт, оборудование и/или устройство, такое как, например, магнитные диски, оптические диски, запоминающее устройство и программируемые логические устройства (PLD), используемые для того, чтобы предоставлять машинные инструкции и/или данные в программируемый процессор, включающий в себя машиночитаемый носитель, который принимает машинные инструкции в качестве машиночитаемого сигнала. Термин "машиночитаемый сигнал" означает любой сигнал, используемый для того, чтобы предоставлять машинные инструкции и/или данные в программируемый процессор. Машиночитаемый носитель может энергонезависимо сохранять такие машинные инструкции, к примеру, аналогично энергонезависимому полупроводниковому запоминающему устройству или магнитному жесткому диску, или любому эквивалентному носителю хранения данных. Машиночитаемый носитель альтернативно или дополнительно может энергозависимо сохранять такие машинные инструкции, к примеру, аналогично процессорному кэшу или другому оперативному запоминающему устройству, ассоциированному с одним или более физических ядер процессора.[0052] These computer programs, which may also be referred to as "programs", "software", "software applications", "applications", "components", or "code", include machine instructions for a programmable processor and may be implemented at a high-level procedural language, object-oriented programming language, functional programming language, logical programming language, and/or assembly/machine language. As used herein, the term "computer-readable medium" means any computer program product, hardware, and/or device, such as, for example, magnetic disks, optical disks, memory, and programmable logic devices (PLDs), used to provide machine instructions and/or data to a programmable processor including a computer-readable medium that receives the machine instructions as a computer-readable signal. The term "machine readable signal" means any signal used to provide machine instructions and/or data to a programmable processor. The computer-readable medium may store such machine instructions in a non-volatile manner, for example, in a manner similar to non-volatile semiconductor memory or a magnetic hard disk, or any equivalent storage medium. The computer-readable medium may alternatively or additionally store such machine instructions in a volatile manner, eg, in a manner similar to a processor cache or other random access memory associated with one or more physical processor cores.

[0053] Чтобы предоставлять взаимодействие с пользователем, один или более аспектов или признаков предмета изобретения, описанного в данном документе, могут реализовываться на компьютере, имеющем устройство отображения, такое как, например, электронно-лучевая трубка (CRT) или жидкокристаллический дисплей (ЖК-дисплей), или монитор на светоизлучающих диодах (на светодиодах) для отображения информации пользователю, и клавиатуру и указательное устройство, такое как, например, мышь или шаровой манипулятор, посредством которого пользователь может предоставлять ввод в компьютер. Другие виды устройств также могут использоваться для того, чтобы предусматривать взаимодействие с пользователем. Например, обратная связь, предоставляемая пользователю, может представлять собой любую форму сенсорной обратной связи, такую как, например, визуальная обратная связь, акустическая обратная связь или тактильная обратная связь; и ввод от пользователя может приниматься в любой форме, включающей в себя акустический, речевой или тактильный ввод. Другие возможные устройства ввода включают в себя сенсорные экраны или другие сенсорные устройства, такие как, одно- или многоточечные резистивные или емкостные сенсорные панели, аппаратные средства и программное обеспечение для распознавания голоса, оптические сканеры, оптические указатели, устройства захвата цифровых изображений и ассоциированное интерпретационное программное обеспечение и т.п.[0053] To provide user interaction, one or more aspects or features of the subject matter described herein may be implemented on a computer having a display device such as, for example, a cathode ray tube (CRT) or a liquid crystal display (LCD). a display) or a light emitting diode (LED) monitor for displaying information to the user, and a keyboard and pointing device such as a mouse or trackball, for example, through which the user can provide input to the computer. Other kinds of devices may also be used to provide for user interaction. For example, the feedback provided to the user may be any form of sensory feedback, such as, for example, visual feedback, acoustic feedback, or tactile feedback; and input from the user may be received in any form, including acoustic, speech, or tactile input. Other possible input devices include touch screens or other touch devices such as single or multi-point resistive or capacitive touch panels, voice recognition hardware and software, optical scanners, optical pointers, digital image capture devices, and associated interpretation software. security etc. .

[0054] В вышеприведенных описаниях и в формуле изобретения, такие фразы, как "по меньшей мере, один из" или "один или более из" могут возникать с последующим конъюнктивным списком элементов или признаков. Термин "и/или" также может возникать в списке из двух или более элементов или признаков. Если иное неявно или явно не противоречит контексту, в котором оно используется, такая фраза не имеет намерение означать любой из перечисленных элементов или признаков отдельно либо любой из изложенных элементов или признаков в комбинации с любым из других изложенных элементов или признаков. Например, фразы "по меньшей мере, один из A и B"; "один или более из A и B"; и "A и/или B" имеют намерение означать "только A, только B либо A и B вместе". Аналогичная интерпретация также предназначается для списков, включающих в себя три или более элементов. Например, фразы "по меньшей мере, один из A, B и C"; "один или более из A, B и C"; и "A, B и/или C" имеют намерение означать "только A, только B, только C, A и B вместе, A и C вместе, B и C вместе или A и B и C вместе". Помимо этого, использование термина "на основе" выше и в формуле изобретения имеет намерение означать "по меньшей мере, частично на основе", так что неизложенный признак или элемент также является допустимым.[0054] In the above descriptions and in the claims, phrases such as "at least one of" or "one or more of" may occur followed by a conjunctive list of elements or features. The term "and/or" may also occur in a list of two or more elements or features. Unless otherwise implicitly or explicitly contradicted by the context in which it is used, such phrase is not intended to mean any of the listed elements or features alone, or any of the set forth elements or features in combination with any of the other set forth elements or features. For example, the phrases "at least one of A and B"; "one or more of A and B"; and "A and/or B" are intended to mean "only A, only B, or A and B together". A similar interpretation is also intended for lists that include three or more items. For example, the phrases "at least one of A, B and C"; "one or more of A, B and C"; and "A, B and/or C" are intended to mean "only A, only B, only C, A and B together, A and C together, B and C together, or A and B and C together". In addition, the use of the term "based on" above and in the claims is intended to mean "at least partially based on" so that an unstated feature or element is also valid.

[0055] Предмет изобретения, описанный в данном документе, может осуществляться в системах, оборудовании, способах и/или изделиях в зависимости от требуемой конфигурации. Реализации, изложенные в вышеприведенном описании, не представляют все реализации в соответствии с предметом изобретения, описанным в данном документе. Вместо этого, они представляют собой просто некоторые примеры в соответствии с аспектами, связанными с описанным предметом изобретения. Хотя выше подробно описываются несколько варьирований, другие модификации или добавления являются возможными. В частности, дополнительные признаки и/или варьирования могут предоставляться в дополнение к признакам и/или варьированиям, изложенным в данном документе. Например, реализации, описанные выше, могут быть направлены на различные комбинации и субкомбинации раскрытых признаков и/или на комбинации и субкомбинации нескольких дополнительных признаков, раскрытых выше. Помимо этого, логические последовательности операций, проиллюстрированные на прилагаемых чертежах и/или описанные в данном документе, не обязательно требуют конкретного показанного порядка или последовательного порядка для того, чтобы достигать требуемых результатов. Другие реализации могут находиться в пределах объема прилагаемой формулы изобретения.[0055] The subject matter described herein may be implemented in systems, equipment, methods, and/or articles, depending on the desired configuration. The implementations set forth in the foregoing description do not represent all implementations in accordance with the subject matter described herein. Instead, they are simply some examples in accordance with aspects related to the described subject matter. While several variations are detailed above, other modifications or additions are possible. In particular, additional features and/or variations may be provided in addition to the features and/or variations set forth herein. For example, the implementations described above may target various combinations and subcombinations of the disclosed features and/or combinations and subcombinations of several additional features disclosed above. In addition, the logical sequences of operations illustrated in the accompanying drawings and/or described herein do not necessarily require the particular order shown or sequential order in order to achieve the desired results. Other implementations may be within the scope of the appended claims.

Claims (20)

1. Способ декодирования видео, содержащий этапы, на которых:1. A video decoding method, comprising the steps of: принимают поток битов, который включает в себя параметр, указывающий то, активируется ли двунаправленное предсказание с режимом на основе адаптивных весовых коэффициентов для текущего блока;receiving a bitstream that includes a parameter indicating whether bi-directional prediction is enabled with a mode based on adaptive weights for the current block; определяют то, активируется ли двунаправленное предсказание с режимом на основе адаптивных весовых коэффициентов для текущего блока;determining whether bi-directional prediction is activated with a mode based on adaptive weights for the current block; определяют по меньшей мере один весовой коэффициент; иdetermine at least one weighting factor; and восстанавливают пиксельные данные текущего блока и используют комбинирование со взвешиванием по меньшей мере двух опорных блоков,restoring the pixel data of the current block and using a weighted combination of at least two reference blocks, при этом определение по меньшей мере одного весового коэффициента включает в себя определение первого весового коэффициента посредством по меньшей мере определения индекса в массиве весовых коэффициентов и осуществления доступа к массиву весовых коэффициентов с использованием индекса, и определение второго весового коэффициента посредством по меньшей мере вычитания первого весового коэффициента из предварительно определенного значения.wherein determining at least one weight factor includes determining the first weight factor by at least determining an index in the weight factor array and accessing the weight factor array using the index, and determining the second weight factor by at least subtracting the first weight factor from a predefined value. 2. Видеодекодер, содержащий:2. Video decoder, containing: процессор компенсации движения, который создает сигнал предсказания с использованием комбинирования со взвешиванием по меньшей мере двух опорных блоков, когда параметр, включенный в поток битов, указывает то, что двунаправленное предсказание с режимом на основе адаптивных весовых коэффициентов активируется для текущего блока; иa motion compensation processor that generates a prediction signal using a weighted combination of at least two reference blocks when a parameter included in the bit stream indicates that bidirectional prediction with the adaptive weights mode is enabled for the current block; and сумматор, который суммирует сигнал предсказания с остаточным сигналом, an adder that adds the prediction signal to the residual signal, при этом комбинирование со взвешиванием по меньшей мере двух опорных блоков взвешивается с первым весовым коэффициентом, который определяется посредством по меньшей мере определения индекса в массиве весовых коэффициентов и осуществления доступа к массиву весовых коэффициентов с использованием индекса, и вторым весовым коэффициентом, который определяется посредством по меньшей мере вычитания первого весового коэффициента из предварительно определенного значения.wherein the weighted combination of at least two reference blocks is weighted with a first weight that is determined by at least defining an index in the weights array and accessing the weights array using the index, and a second weight that is determined by at least the measure of subtracting the first weighting factor from the predetermined value. 3. Способ кодирования видео, содержащий этапы, на которых:3. A video encoding method, comprising the steps of: создают предиктор для блока, выделенного из кадра входного видео, с использованием комбинирования со взвешиванием по меньшей мере двух опорных блоков на основе двунаправленного предсказания с адаптивными весовыми коэффициентами; иcreating a predictor for a block extracted from a frame of the input video using a weighted combination of at least two reference blocks based on bidirectional prediction with adaptive weights; and формируют поток битов,form a stream of bits, причем комбинирование со взвешиванием по меньшей мере двух опорных блоков взвешивается с первым весовым коэффициентом и вторым весовым коэффициентом, первый весовой коэффициент получается из массива весовых коэффициентов и второй весовой коэффициент определяется посредством вычитания первого весового коэффициента из предварительно определенного значения, и wherein the weight combination of at least two reference blocks is weighted with a first weight factor and a second weight factor, the first weight factor is obtained from the array of weight factors, and the second weight factor is determined by subtracting the first weight factor from a predetermined value, and индекс в массиве весовых коэффициентов, который указывает первый весовой коэффициент, включается в поток битов.an index in the weights array that indicates the first weight is included in the bitstream. 4. Видеокодер, содержащий:4. Video encoder, containing: процессор компенсации движения, который создает предиктор для блока, выделенного из кадра входного видео, с использованием комбинирования со взвешиванием по меньшей мере двух опорных блоков на основе двунаправленного предсказания с адаптивными весовыми коэффициентами; иa motion compensation processor that generates a predictor for a block extracted from a frame of the input video using a weighted combination of at least two reference blocks based on bidirectional prediction with adaptive weights; and энтропийный кодер, который формирует поток битов, an entropy encoder that generates a bit stream, причем комбинирование со взвешиванием по меньшей мере двух опорных блоков взвешивается с помощью первого весового коэффициента и второго весового коэффициента, первый весовой коэффициент получается из массива весовых коэффициентов и второй весовой коэффициент определяется посредством вычитания первого весового коэффициента из предварительно определенного значения, и wherein the weighted combination of at least two reference blocks is weighted with the first weight factor and the second weight factor, the first weight factor is obtained from the array of weight factors, and the second weight factor is determined by subtracting the first weight factor from a predetermined value, and индекс в массиве весовых коэффициентов, который указывает первый весовой коэффициент, включается в поток битов.an index in the weights array that indicates the first weight is included in the bitstream.
RU2020143236A 2018-07-06 2019-07-02 Video encoder, video decoder, method for video encoding, method for video decoding RU2771669C1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US62/694,524 2018-07-06
US62/694,540 2018-07-06

Related Child Applications (1)

Application Number Title Priority Date Filing Date
RU2022110607A Division RU2814971C2 (en) 2018-07-06 2019-07-02 Video encoder, video decoder, video encoding method, video decoding method

Publications (1)

Publication Number Publication Date
RU2771669C1 true RU2771669C1 (en) 2022-05-11

Family

ID=

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2335860C2 (en) * 2002-10-01 2008-10-10 Томсон Лайсенсинг С.А. Latent scaling of reference images in videodecoder
RU2624560C2 (en) * 2012-03-16 2017-07-04 Квэлкомм Инкорпорейтед Motion vector coding and bi-prediction in hevc and its extensions
EP3273692A1 (en) * 2015-06-10 2018-01-24 Samsung Electronics Co., Ltd. Method and apparatus for encoding or decoding image using syntax signaling for adaptive weight prediction
CN107786874A (en) * 2016-08-24 2018-03-09 浙江大学 Directional prediction method and apparatus in two-way frame

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2335860C2 (en) * 2002-10-01 2008-10-10 Томсон Лайсенсинг С.А. Latent scaling of reference images in videodecoder
RU2624560C2 (en) * 2012-03-16 2017-07-04 Квэлкомм Инкорпорейтед Motion vector coding and bi-prediction in hevc and its extensions
EP3273692A1 (en) * 2015-06-10 2018-01-24 Samsung Electronics Co., Ltd. Method and apparatus for encoding or decoding image using syntax signaling for adaptive weight prediction
CN107786874A (en) * 2016-08-24 2018-03-09 浙江大学 Directional prediction method and apparatus in two-way frame

Similar Documents

Publication Publication Date Title
CN113287307B (en) Method and apparatus for video decoding, computer device and medium
US11695967B2 (en) Block level geometric partitioning
JP2019525679A (en) Cross component filter
KR20210134375A (en) Methods and systems for processing video content
CN112291571A (en) Video decoding method and device, computer equipment and storage medium
JP2016501483A (en) Multi-layer low complexity support for HEVC extension in video coding
US20210218977A1 (en) Methods and systems of exponential partitioning
CN113259661A (en) Method and device for video decoding
JP2017513329A (en) Method for motion estimation of non-natural video data
WO2020219940A1 (en) Global motion for merge mode candidates in inter prediction
KR20210088697A (en) Method of adapting encoders, decoders and corresponding deblocking filters
KR20210153725A (en) Efficient Coding of Global Motion Vectors
KR102582887B1 (en) Video encoding device, video decoding device, video encoding method, and video decoding method
JP2023521609A (en) Method, computer program and apparatus for video coding
GB2606282A (en) Video coding and decoding
JP6259272B2 (en) Video encoding apparatus and video encoding program
EP3888359A1 (en) Adaptive block update of unavailable reference frames using explicit and implicit signaling
RU2771669C1 (en) Video encoder, video decoder, method for video encoding, method for video decoding
RU2814971C2 (en) Video encoder, video decoder, video encoding method, video decoding method
KR20220002987A (en) Global motion models for motion vector inter prediction
RU2788631C2 (en) Methods and systems for exponential partitioning
US20210400289A1 (en) Methods and systems for constructing merge candidate list including adding a non- adjacent diagonal spatial merge candidate
JP7412443B2 (en) Method and apparatus for nonlinear loop filtering
Yu et al. Fast CU size decision of intra prediction for Enhancement Layers in SHVC