EA045634B1 - VIDEO ENCODING AND VIDEO DECODING - Google Patents

VIDEO ENCODING AND VIDEO DECODING Download PDF

Info

Publication number
EA045634B1
EA045634B1 EA202191670 EA045634B1 EA 045634 B1 EA045634 B1 EA 045634B1 EA 202191670 EA202191670 EA 202191670 EA 045634 B1 EA045634 B1 EA 045634B1
Authority
EA
Eurasian Patent Office
Prior art keywords
prediction
intra
block
candidates
motion
Prior art date
Application number
EA202191670
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 Бритиш Бродкастинг Корпорейшн
Publication of EA045634B1 publication Critical patent/EA045634B1/en

Links

Description

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

Изобретение относится к кодированию видео и декодированию видео.The invention relates to video encoding and video decoding.

Предшествующий уровень техникиPrior Art

Сжатие видео обеспечивает возможности уменьшения полезной нагрузки в канале передачи. Известные стандарты кодирования видео позволяют передавать данные битового потока, определяющие видео, так что приемник битового потока способен декодировать битовый поток таким образом, чтобы сформировать декодированное видео, которое, по существу, точно представляет исходное видео, из которого был получен закодированный битовый поток.Video compression provides opportunities to reduce the payload in the transmission channel. Known video encoding standards allow bitstream data defining a video to be transmitted such that a bitstream receiver is capable of decoding the bitstream so as to generate a decoded video that substantially accurately represents the source video from which the encoded bitstream was derived.

Ранние стандарты кодирования видео были разработаны в расчете на воспроизведение видео на оборудовании, где восстановление с относительно низким или средним качеством является приемлемым. Это включает в себя портативные устройства или персональные вычислительные устройства. В большой степени, приемлемость конкретных уровней качества в значительной степени определяется потребностями пользователя в зависимости от возможностей оборудования воспроизведения.Early video encoding standards were developed with video playback in mind on hardware where relatively low-to-medium quality restoration was acceptable. This includes portable devices or personal computing devices. To a large extent, the acceptability of specific quality levels is largely determined by the needs of the user depending on the capabilities of the playback equipment.

По мере того как приемное оборудование совершенствуется по качеству и функциональным возможностям, повышаются и потребности пользователя в более высококачественном воспроизведении исходного видео. Таким образом, техническая задача заключается в обеспечении возможности воспроизведения видео на проигрывателе с более высоким качеством, чем было реализовано до сих пор.As receiving equipment improves in quality and functionality, user demands for higher-quality playback of the original video also increase. Thus, the technical challenge is to be able to play video on a player at a higher quality than has been achieved so far.

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

Фиг. 1 является иллюстративным примером кадра, подлежащего кодированию, передаче и декодированию посредством вариантов осуществления, раскрытых в настоящем документе.Fig. 1 is an illustrative example of a frame to be encoded, transmitted, and decoded by the embodiments disclosed herein.

Фиг. 2 является иллюстративным примером опорного кадра, на основе которого должен кодироваться кадр, показанный на фиг. 1.Fig. 2 is an illustrative example of a reference frame based on which the frame shown in FIG. 1.

Фиг. 3 является иллюстративным примером блока кадра согласно фиг. 1, подлежащего кодированию, передаче и декодированию посредством вариантов осуществления, раскрытых в настоящем документе.Fig. 3 is an illustrative example of a frame block according to FIG. 1 to be encoded, transmitted and decoded by the embodiments disclosed herein.

Фиг. 4 является иллюстративным примером кандидата интер-предсказания для блока на фиг. 3.Fig. 4 is an illustrative example of an inter-prediction candidate for the block in FIG. 3.

Фиг. 5 является иллюстративным примером кандидата интра-предсказания для блока на фиг. 3.Fig. 5 is an illustrative example of an intra-prediction candidate for the block in FIG. 3.

Фиг. 6 является схематичным представлением сети связи в соответствии с вариантом осуществления.Fig. 6 is a schematic diagram of a communication network according to an embodiment.

Фиг. 7 является схематичным представлением излучателя (передатчика) сети связи согласно фиг. 6.Fig. 7 is a schematic representation of the emitter (transmitter) of the communication network according to FIG. 6.

Фиг. 8 является схемой, иллюстрирующей кодер, реализованный в излучателе согласно фиг. 7.Fig. 8 is a diagram illustrating an encoder implemented in the emitter according to FIG. 7.

Фиг. 9 является блок-схемой процесса предсказания, выполняемого в модуле предсказания кодера согласно фиг. 8.Fig. 9 is a flowchart of a prediction process performed in the encoder prediction unit of FIG. 8.

Фиг. 10 является схематичным представлением приемника сети связи согласно фиг. 6.Fig. 10 is a schematic diagram of a communication network receiver according to FIG. 6.

Фиг. 11 является схемой, иллюстрирующей декодер, реализованный в приемнике согласно фиг. 10; иFig. 11 is a diagram illustrating a decoder implemented in the receiver according to FIG. 10; And

Фиг. 12 является блок-схемой процесса предсказания, выполняемого модулем предсказания декодера согласно фиг. 8.Fig. 12 is a flowchart of a prediction process performed by the decoder prediction module of FIG. 8.

Описание вариантов осуществленияDescription of Embodiments

В общих чертах, варианты осуществления, раскрытые в настоящем документе, обеспечивают эффективное предсказание выборок в блоке в кодере и декодере видео посредством вычисления как интерпредсказанной гипотезы предсказания, так и интра-предсказанной гипотезы предсказания. Две гипотезы предсказания затем комбинируются вместе посредством параметрического преобразования для формирования новой гипотезы предсказания, которая может быть более точной в предсказании содержимого исходного блока. Информация может предоставляться в декодер для обеспечения возможности определения параметрического преобразования для использования.In general terms, embodiments disclosed herein provide efficient prediction of samples in a block at a video encoder and decoder by computing both an inter-predicted prediction hypothesis and an intra-predicted prediction hypothesis. The two prediction hypotheses are then combined together through a parametric transformation to form a new prediction hypothesis that can be more accurate in predicting the contents of the original block. The information may be provided to the decoder to enable it to determine a parametric transform to use.

Согласно одному варианту осуществления, способ кодирования блока пикселов в изображении последовательного множества изображений содержит:According to one embodiment, a method for encoding a block of pixels in an image of a sequential plurality of images comprises:

вычисление набора кандидатов интер-предсказания с компенсацией движения для блока пикселов на основе опорного изображения в последовательном множестве изображений;calculating a set of motion-compensated inter-prediction candidates for a block of pixels based on a reference image in a sequential set of images;

вычисление набора кандидатов интра-предсказания для блока пикселов на основе предопределенного набора режимов интра-предсказания;calculating a set of intra-prediction candidates for a block of pixels based on a predetermined set of intra-prediction modes;

компоновку набора комбинаций упомянутых кандидатов интер-предсказания с компенсацией движения и кандидатов интра-предсказания;arranging a set of combinations of said motion compensated inter-prediction candidates and intra-prediction candidates;

определение, для множества наборов параметров, причем каждый набор параметров конфигурирует параметрическое преобразование одного из кандидата интерпредсказания с компенсацией движения и одного из кандидатов интра-предсказания, комбинированного предсказания для каждой комбинации упомянутых кандидатов интерпредсказания с компенсацией движения и кандидатов интра-предсказания;determining, for a plurality of parameter sets, each parameter set configuring a parametric transformation of one of the motion-compensated inter-prediction candidates and one of the intra-prediction candidates, a combined prediction for each combination of said motion-compensated inter-prediction candidates and intra-prediction candidates;

оценивание каждого комбинированного предсказания относительно измерения;evaluating each combined prediction relative to the dimension;

выбор одного из комбинированных предсказаний на основе измерения в качестве кодирования блока пикселов.selecting one of the combined measurement-based predictions as the encoding of the pixel block.

Другой вариант осуществления обеспечивает кодер, сконфигурированный для выполнения выше- 1 045634 описанного процесса кодирования. Кодер может быть включен в подходящее устройство обработки сигналов.Another embodiment provides an encoder configured to perform the above-described encoding process. The encoder may be included in a suitable signal processing device.

Согласно другому варианту осуществления, способ декодирования битового потока содержит:According to another embodiment, a method for decoding a bitstream comprises:

извлечение из битового потока информации конфигурации предиктора движения и, на основе информации конфигурации предиктора движения, вычисление одного или более кандидатов интерпредсказания с компенсацией движения для блока выборок;extracting motion predictor configuration information from the bit stream and, based on the motion predictor configuration information, calculating one or more motion compensated interprediction candidates for the block of samples;

извлечение из битового потока информации конфигурации интра-предсказания и, на основе информации конфигурации интра-предсказания, вычисление одного или более кандидатов интрапредсказания, при этом кандидаты интра-предсказания получены посредством процесса интрапредсказания для блока выборок;extracting intra-prediction configuration information from the bitstream and, based on the intra-prediction configuration information, calculating one or more intra-prediction candidates, wherein the intra-prediction candidates are obtained by an intra-prediction process for a block of samples;

извлечение из битового потока информации конфигурации параметрического преобразования, обеспечивающей возможность определения параметров для параметрического преобразования одного или более кандидатов интер-предсказания с компенсацией движения и одного или более кандидатов интра-предсказания;extracting from the bitstream information a parametric transform configuration enabling parameters to be determined for the parametric transform of one or more motion compensated inter-prediction candidates and one or more intra-prediction candidates;

определение параметров параметрического преобразования на основе информации конфигурации параметрического преобразования; и вычисление комбинированного преобразованного предсказания для упомянутого блока выборок посредством параметрического преобразования одного или более кандидатов интер-предсказания с компенсацией движения и одного или более кандидатов интра-предсказания, причем параметрическое преобразование управляется параметрами параметрического преобразования.determining parametric transformation parameters based on the parametric transformation configuration information; and calculating a combined transformed prediction for said block of samples by parametric transforming one or more motion compensated inter-prediction candidates and one or more intra-prediction candidates, wherein the parametric transform is controlled by parametric transform parameters.

Другой вариант осуществления обеспечивает декодер, сконфигурированный для выполнения вышеописанного процесса декодирования. Декодер может быть включен в подходящее устройство приема сигналов.Another embodiment provides a decoder configured to perform the above-described decoding process. The decoder may be included in a suitable signal receiving device.

Другой вариант осуществления предоставляет компьютерный программный продукт, содержащий исполняемые компьютером инструкции, действующие для конфигурирования компьютерного устройства для выполнения способа, как описано выше.Another embodiment provides a computer program product containing computer-executable instructions operative to configure a computer device to perform a method as described above.

Как будет понятно читающему, представление видео обычно содержит множество кадров, для последовательного отображения на оборудовании воспроизведения. Различные стратегии используются для уменьшения объема данных, требуемых для описания каждого кадра по очереди в битовом потоке, передаваемом по каналу связи от излучателя (передатчика) к приемнику. Как будет понятно, излучатель будет содержать кодер для кодирования данных кадра в битовый поток, а приемник будет содержать декодер для генерации данных кадра на основе информации, содержащейся в битовом потоке.As will be appreciated by the reader, a video representation typically contains a plurality of frames for sequential display on playback equipment. Various strategies are used to reduce the amount of data required to describe each frame in turn in the bit stream transmitted over the communication channel from the emitter (transmitter) to the receiver. As will be appreciated, the emitter will include an encoder for encoding frame data into a bitstream, and the receiver will include a decoder for generating frame data based on the information contained in the bitstream.

В вариантах осуществления настоящего раскрытия, каждый кадр представления видео разбит на блоки. В кодере, содержимое блока предсказывается на основании ранее сжатого содержимого. Это предсказание блока вычитается из фактического блока, приводя в результате к набору остаточных разностей (остатков). В одном варианте осуществления, остаточные данные могут быть закодированы с использованием преобразования в частотную область. Однако должно быть понятно, что преобразование данных из временной области в частотную область может быть специфическим для некоторых реализаций и не является существенным для выполнения раскрытых вариантов осуществления.In embodiments of the present disclosure, each frame of the video presentation is divided into blocks. In the encoder, the content of a block is predicted based on the previously compressed content. This block prediction is subtracted from the actual block, resulting in a set of residual differences (residuals). In one embodiment, the residual data may be encoded using frequency domain conversion. However, it should be understood that the conversion of data from time domain to frequency domain may be specific to some implementations and is not essential to the performance of the disclosed embodiments.

Остатки, будь то преобразованные или нет, могут быть затем масштабированы для обеспечения дальнейшей обработки.Residues, whether converted or not, can then be scaled up to accommodate further processing.

Квантованные остатки затем кодируются с использованием энтропийного кодера в набор коэффициентов, которые помещаются в битовый поток с предсказанием блока. Различные технические стандарты обычно определяют структуру сигнала для битового потока и синтаксис для организации информации наряду с идентификацией предсказания блока, так что декодер может надежно извлечь коэффициенты для декодирования.The quantized residuals are then encoded using an entropy encoder into a set of coefficients that are placed into the block predictive bitstream. Various technical standards typically define the signal structure for the bitstream and the syntax for organizing the information along with block prediction identification so that the decoder can reliably extract the coefficients for decoding.

Декодер сконфигурирован, чтобы принимать битовый поток. В общем, декодер сконфигурирован, чтобы ожидать битовый поток, организованный в соответствии с предопределенной синтаксической структурой, так что данные могут быть извлечены предсказуемо и надежно. Такая синтаксическая структура может быть совместно согласованной, например, в соответствии с техническим стандартом. Альтернативно, синтаксическая структура может быть определена конкретным изготовителем или другим участником.The decoder is configured to receive the bitstream. In general, a decoder is configured to expect a bit stream organized according to a predefined syntactic structure so that data can be retrieved predictably and reliably. Such a syntactic structure may be jointly agreed upon, for example, in accordance with a technical standard. Alternatively, the syntactic structure may be specified by a specific manufacturer or other party.

Декодер согласно варианту осуществления извлекает коэффициенты из битового потока. Эти коэффициенты декодируются для получения декодированных данных. Декодированные данные затем обратно квантуются. Может существовать опция, чтобы специфицировать, следует ли или нет использовать преобразование области на принятом битовом потоке. Если преобразование области специфицировано, то обратно квантованные данные обратно преобразуются для получения восстановленных остатков. Информация о том, как вычислять блок предсказания, также извлекается из битового потока и декодируется; затем она используется для формирования блока предсказания с использованием ранее восстановленных данных. Восстановленные остатки затем суммируются со сформированным блоком предсказания для получения восстановленного блока.The decoder according to an embodiment extracts coefficients from the bit stream. These coefficients are decoded to obtain decoded data. The decoded data is then back-quantized. An option may exist to specify whether or not a region transform should be used on the received bitstream. If a domain transformation is specified, then the inversely quantized data is inversely transformed to produce the reconstructed residuals. Information about how to calculate the prediction block is also extracted from the bitstream and decoded; it is then used to form a prediction block using the previously reconstructed data. The reconstructed residuals are then added to the generated prediction block to obtain a reconstructed block.

Должно быть понятно, что, в начале передачи, может потребоваться передать полный блок данных,It should be understood that, at the start of a transfer, it may be necessary to transfer a complete block of data,

- 2 045634 представляющий полный кадр представления видео, без обращения к любому другому кадру. Все последующие основанные на предсказании данные затем могут быть получены из начальных условий, установленных таким опорным кадром. Опорные кадры могут быть постоянными для кодирования и декодирования всего представления видео, или могут быть обновляемыми. Например, изменение сцены может предписывать обновление опорного кадра, поскольку кадры новой сцены могут иметь мало сходства или не напоминать ранее установленный опорный кадр. Даже в пределах сцены, кадры могут различаться в достаточной степени, уменьшая эффективность кодирования относительно опорного кадра по сравнению с кодированием и передачей обновленного опорного кадра.- 2 045634 representing the full frame of the video presentation, without reference to any other frame. All subsequent prediction-based data can then be derived from the initial conditions established by such a reference frame. The reference frames can be constant for encoding and decoding the entire video representation, or can be updated. For example, a scene change may require updating a reference frame because frames of the new scene may have little or no resemblance to a previously established reference frame. Even within a scene, frames may vary sufficiently to reduce the efficiency of encoding relative to a reference frame compared to encoding and transmitting an updated reference frame.

Следует отметить, что опорный кадр, для конкретного рассматриваемого кадра, не обязательно должен быть перед рассматриваемым кадром в последовательности представления видео. Опорный кадр может быть в будущем относительно рассматриваемого кадра.It should be noted that the reference frame, for a particular frame in question, does not have to be before the frame in question in the video presentation sequence. The reference frame may be in the future relative to the frame in question.

Опорные кадры могут быть сжаты и переданы отдельно от кодированных параметров, из которых могут быть сформированы предсказания. Опорные кадры могут быть проиндексированы, так что опорный кадр, подлежащий использованию в формировании конкретного блока предсказания, может быть указан в битовом потоке.The reference frames may be compressed and transmitted separately from the encoded parameters from which predictions may be formed. The reference frames may be indexed so that a reference frame to be used in generating a particular prediction block may be indicated in the bitstream.

Варианты осуществления, описанные в настоящем документе, относятся к процессу формирования блока предсказания. В традиционных схемах кодирования видео используются интра-предсказание или интер-предсказание. Способы интра-предсказания включают в себя вычисление предсказания с использованием ранее сжатого содержимого, извлеченного из того же самого кадра, что и текущий предсказываемый блок. Напротив, способы интер-предсказания включают в себя предсказание содержимого блока исходных выборок с использованием ранее сжатых частей сигнала видео, извлеченного из ранее сжатых кадров.The embodiments described herein relate to a prediction block generation process. Traditional video coding schemes use intra-prediction or inter-prediction. Intra-prediction methods involve computing a prediction using previously compressed content extracted from the same frame as the current block being predicted. In contrast, inter-prediction methods involve predicting the contents of a block of original samples using previously compressed portions of a video signal extracted from previously compressed frames.

Система обозначений, используемая для описания разбиений кадров, разнообразна. Например, в HEVC, термин слайс используется для описания разбиения кадра - слайс может содержать множество блоков. Терминология, используемая для описания разбиений кадров в настоящем раскрытии, не подразумевает конкретную применимость настоящих вариантов осуществления к конкретной стандартизованной технологии и не предполагает исключения из применимости к другой стандартизованной технологии с использованием других терминов для аналогичных концепций.The notation used to describe frame splits is varied. For example, in HEVC, the term slice is used to describe the division of a frame - a slice can contain many blocks. The terminology used to describe frame splits in the present disclosure is not intended to imply specific applicability of the present embodiments to a particular standardized technology, nor is it intended to be excluded from applicability to another standardized technology by using different terms for similar concepts.

В общих чертах, аспекты настоящего раскрытия относятся к способу эффективного предсказания выборок в пределах блока в кодере и декодере видео посредством вычисления как интер-предсказанной гипотезы предсказания, так и интра-предсказанной гипотезы предсказания. Две гипотезы предсказания затем комбинируются вместе для формирования новой гипотезы предсказания, которая может быть более точной в предсказании содержимого исходного блока.In general, aspects of the present disclosure relate to a method for efficiently predicting samples within a block in a video encoder and decoder by computing both an inter-predicted prediction hypothesis and an intra-predicted prediction hypothesis. The two prediction hypotheses are then combined together to form a new prediction hypothesis that can be more accurate in predicting the contents of the original block.

Вариант осуществления предусматривает способ комбинирования двух гипотез предсказания, на основе алгоритма комбинирования. Алгоритм комбинирования может быть предварительно установлен в приемнике. Алгоритм комбинирования может быть специфицирован с использованием информации, передаваемой в приемник. Приемник может хранить библиотеку алгоритмов комбинирования и может выбирать и использовать один из этих сохраненных алгоритмов на основе информации, извлеченной из принятого битового потока.An embodiment provides a method for combining two prediction hypotheses based on a combination algorithm. The combining algorithm may be preset in the receiver. The combining algorithm may be specified using information sent to the receiver. The receiver may store a library of combining algorithms and may select and use one of these stored algorithms based on information extracted from the received bit stream.

Одним из подходов к комбинированию с помощью алгоритма комбинирования является использование взвешенного среднего. Это может быть взвешенным арифметическим средним двух гипотез предсказания. Веса, которые должны использоваться во взвешенном среднем, могут быть предварительно установлены, или параметры могут передаваться в битовом потоке в приемник для обеспечения возможности вычисления, определения или выбора весов, которые должны использоваться.One approach to combining using a combining algorithm is to use a weighted average. This may be a weighted arithmetic average of two prediction hypotheses. The weights to be used in the weighted average may be preset, or parameters may be transmitted in a bit stream to the receiver to enable calculation, determination, or selection of the weights to be used.

В варианте осуществления, информация в битовом потоке может содержать значения весов, которые должны использоваться во взвешенном среднем.In an embodiment, the information in the bitstream may contain weight values to be used in the weighted average.

В одном варианте осуществления, информация в битовом потоке может содержать параметр выбора веса, на основе которого приемник может реагировать для выбора конкретного одного из множества предварительно сохраненных весов. Должно быть понятно, что, для взвешенного арифметического среднего двух гипотез предсказания, одно значение веса достаточно для описания алгоритма комбинирования, при этом одна из двух гипотез будет умножаться на заданный вес w, а другая из гипотез будет умножаться на комплементарный вес (1-w). Могут быть реализованы другие алгоритмы. В случае, когда используется более двух гипотез предсказания, и необходимо их комбинировать, может задаваться больше весов для обеспечения возможности взвешенного комбинирования.In one embodiment, the information in the bitstream may include a weight selection parameter based on which the receiver may respond to select a particular one of a plurality of pre-stored weights. It should be clear that, for a weighted arithmetic average of two prediction hypotheses, one weight value is sufficient to describe the combination algorithm, with one of the two hypotheses being multiplied by the given weight w, and the other of the hypotheses being multiplied by the complementary weight (1-w) . Other algorithms may be implemented. In the case where more than two prediction hypotheses are used and they need to be combined, more weights can be specified to allow for weighted combination.

Могут быть заданы алгоритмы комбинирования на основе другого фактора. Например, может быть задана функция, отличная от взвешенного среднего, для которой коэффициенты могут задаваться в битовом потоке, и приниматься и извлекаться в приемнике. Например, линейная или квадратичная функция может использоваться для интерполяции значений во множестве гипотез предсказания. Коэффициенты линейной или квадратичной функции могут быть вычислены, выбраны или определены на основе информации, извлеченной из битового потока.Combination algorithms based on another factor may be specified. For example, a function other than weighted average may be specified for which coefficients may be specified in the bit stream and received and retrieved at the receiver. For example, a linear or quadratic function can be used to interpolate values in a set of prediction hypotheses. The coefficients of a linear or quadratic function can be calculated, selected, or determined based on information extracted from the bitstream.

В битовом потоке может быть предоставлен параметр для извлечения и использования в приемнике, задающий, должен ли или нет использоваться конкретный алгоритм. В случае, когда два алгоритмаA parameter may be provided in the bitstream for extraction and use at the receiver specifying whether or not a particular algorithm should be used. In the case where two algorithms

- 3 045634 комбинирования заданы как доступные для использования в приемнике, такой параметр может быть булевым.- 3 045634 combinations are specified as available for use in the receiver, such a parameter may be a boolean.

В частности, вариант осуществления обеспечивает механизм, используемый для вычисления предсказания с компенсацией движения. Предсказание с компенсацией движения представляет собой метод, использованный до сих пор в многочисленных технологиях, таких как MPEG, который предоставляет декодеру определенную информацию движения. В общих чертах, предсказание с компенсацией движения содержит определение разности между текущим кадром и опорным кадром, в терминах трансформации от опорного кадра к текущему кадру. Если текущий кадр и опорный кадр были, например, захвачены стационарной камерой сцены, в которой никакие объекты не перемещались (но, например, эффекты освещения могли изменяться с течением времени), простое вычитание опорного кадра из текущего кадра обеспечивает эффективную основу для сжатия. Однако, если точка обзора, в которой установлена камера, перемещается между опорным кадром и текущим кадром, и/или объекты в просматриваемой сцене перемещались, то простое вычитание недостаточно для эффективного описания разности. В таком случае, векторы движения должны использоваться для описания трансформации между текущим кадром и опорным кадром.In particular, the embodiment provides a mechanism used to compute motion compensated prediction. Motion compensated prediction is a technique used so far in numerous technologies such as MPEG, which provides certain motion information to the decoder. In general terms, motion compensated prediction involves determining the difference between the current frame and a reference frame, in terms of the transformation from the reference frame to the current frame. If the current frame and the reference frame were, for example, captured by a stationary camera in a scene in which no objects were moving (but, for example, lighting effects might have changed over time), simply subtracting the reference frame from the current frame provides an effective basis for compression. However, if the viewpoint at which the camera is mounted moves between the reference frame and the current frame, and/or objects in the viewed scene have moved, then simple subtraction is not sufficient to effectively describe the difference. In such a case, motion vectors must be used to describe the transformation between the current frame and the reference frame.

В случае, когда только объект перемещался в сцене, но фон сцены остался неизменным, целесообразным является рассмотрение разбиения, например блока, кадра. В таком случае трансформация между блоком текущего кадра и блоком опорного кадра может быть описана просто как перенос (поступательное движение), т.е. сдвиг, который может быть выражен как вектор движения.In the case when only the object moved in the scene, but the background of the scene remained unchanged, it is advisable to consider a division, for example, a block or frame. In this case, the transformation between the current frame block and the reference frame block can be described simply as a translation (translational movement), i.e. a shear that can be expressed as a motion vector.

Эта информация движения проявляется как векторы движения и индекс опорного кадра. Такая информация сжимается и включается в битовый поток. Для того чтобы сжать информацию движения, можно использовать различные методы. Например, при использовании предсказания объединения (слияния), декодер вычисляет набор кандидатов, а именно, набор гипотез, построенных с использованием информации движения, извлеченной из соседних блоков. Тогда сигнализируется индекс, чтобы определить корректную гипотезу для текущего блока. Это позволяет декодеру выполнять компенсацию движения, в то же время требуя очень малого количества битов для сжатия необходимой информации движения.This motion information appears as motion vectors and a reference frame index. Such information is compressed and included in the bit stream. Various techniques can be used to compress motion information. For example, when using fusion prediction, the decoder computes a set of candidates, namely a set of hypotheses constructed using motion information extracted from neighboring blocks. The index is then signaled to determine the correct hypothesis for the current block. This allows the decoder to perform motion compensation while requiring very few bits to compress the necessary motion information.

Варианты осуществления, описанные в настоящем документе, относятся к способу декодирования битового потока, несущего информацию для восстановления множества кадров содержимого видео, причем каждый кадр состоит из одного или более блоков, при этом способ содержит вычисление предсказания блока посредством вычисления множества различных вычисленных кандидатов предсказания и комбинирование кандидатов для получения комбинированного предсказания.Embodiments described herein relate to a method for decoding a bit stream carrying information for reconstructing a plurality of frames of video content, each frame consisting of one or more blocks, the method comprising calculating a prediction of the block by calculating a plurality of different calculated prediction candidates and combining candidates for obtaining a combined prediction.

В одном варианте осуществления, множество кандидатов предсказания может содержать один кандидат, вычисленный посредством интер-предсказания, и один кандидат, вычисленный посредством интра-предсказания. В одном варианте осуществления, кандидаты могут комбинироваться посредством параметрического преобразования. В одном варианте осуществления, параметрическое преобразование может содержать взвешенное предсказание, характеризующееся одним или более весами. В одном варианте осуществления, вес или веса могут быть извлечены из битового потока. В одном варианте осуществления, вес или веса могут быть вычислены, определены или выбраны на основе коэффициентов или параметров, извлеченных из битового потока.In one embodiment, the plurality of prediction candidates may comprise one candidate computed by inter-prediction and one candidate computed by intra-prediction. In one embodiment, the candidates may be combined through a parametric transformation. In one embodiment, the parametric transformation may comprise a weighted prediction characterized by one or more weights. In one embodiment, the weight or weights may be extracted from the bitstream. In one embodiment, the weight or weights may be calculated, determined, or selected based on coefficients or parameters extracted from the bitstream.

Должно быть понятно, что реализации как интра-, так и интер-предсказания достигают удовлетворительных результатов в схемах сжатия видео. Однако могут возникнуть обстоятельства, в которых использование единственного процесса предсказания для предсказания всех выборок в блоке может не быть идеальным.It should be clear that both intra- and inter-prediction implementations achieve satisfactory results in video compression schemes. However, circumstances may arise in which using a single prediction process to predict all samples in a block may not be ideal.

Например, теперь будет исследован случай объекта, движущегося на статическом фоне. От кадра к кадру, объект будет представлен в последовательно различных положениях на фоне. В случае, когда объект не может быть сегментирован с использованием схемы разбиения при использовании в кодеке видео, существующие способы предсказания не смогут точно предсказывать содержимое текущего блока. Использование интер-предсказания приведет к кандидату предсказания, который содержит точное предсказание движущегося объекта, но не фона. Напротив, использование методов интра-предсказания может привести к удовлетворительному предсказанию фона, но не деталей объекта в блоке.For example, we will now examine the case of an object moving against a static background. From frame to frame, the object will be presented in successively different positions against the background. In the case where an object cannot be segmented using a partitioning scheme when used in a video codec, existing prediction methods will not be able to accurately predict the contents of the current block. Using inter-prediction will result in a prediction candidate that contains an accurate prediction of the moving object, but not the background. In contrast, using intra-prediction methods can lead to satisfactory prediction of the background, but not the object details in the block.

Следует отметить, что то, что составляет удовлетворительный результат декодирования, зависит от ожиданий пользователя. Объективные стандарты, измеряющие точность воспроизведения кодированных изображений, могут быть установлены, например, на основе объективной метрики искажения. Однако, в сочетании с этим, внимание может быть уделено общему субъективному впечатлению от пользователя, что конкретное декодирование дает визуально удовлетворительные результаты.It should be noted that what constitutes a satisfactory decoding result depends on the user's expectations. Objective standards measuring the fidelity of encoded images can be established, for example, based on an objective distortion metric. However, in conjunction with this, attention may be paid to the user's overall subjective impression that a particular decoding produces visually satisfactory results.

Пример этого сценария показан на фиг. 1 и 2. На фиг. 1 показан текущий кадр, подлежащий кодированию, в то время как на фиг. 2 показан опорный кадр. Фиг. 3 иллюстрирует блок текущего кадра из фиг. 1, для которого должно генерироваться предсказание. На фиг. 4 показан кандидат интрапредсказания, в то время как на фиг. 5 показан кандидат интер-предсказания. Очевидно, что ни один кандидат предсказания не является точным представлением содержимого текущего блока, как показано на фиг. 4.An example of this scenario is shown in FIG. 1 and 2. In FIG. 1 shows the current frame to be encoded, while FIG. Figure 2 shows a reference frame. Fig. 3 illustrates the current frame block from FIG. 1 for which the prediction is to be generated. In fig. 4 shows an intraprediction candidate, while FIG. Figure 5 shows an inter-prediction candidate. Obviously, no prediction candidate is an exact representation of the contents of the current block, as shown in FIG. 4.

Таким образом, вариант осуществления, описанный в данном документе, формирует новое предска- 4 045634 зание, полученное путем комбинирования двух гипотез, как потенциально лучше подходящее для предсказания исходного содержимого.Thus, the embodiment described herein generates a new prediction obtained by combining the two hypotheses as potentially better suited to predict the original content.

Однако следует отметить, что простое выполнение усреднения каждой выборки может также не быть идеальным. В зависимости от точности либо интра-, либо интер-предсказания, может быть много случаев, в которых одно из двух предсказаний может лучше подходить для представления содержимого текущего блока, но другое предсказание все еще может предоставлять некоторую отсутствующую информацию, которая улучшила бы процесс предсказания. В таких случаях, выполнение взвешенного предсказания двух кандидатов имеет потенциальное преимущество. Путем соответствующего выбора весов для выполнения взвешенного предсказания, может быть получено лучшее комбинированное предсказание.However, it should be noted that simply averaging each sample may not be ideal either. Depending on the accuracy of either the intra- or inter-prediction, there may be many cases in which one of the two predictions may be better suited to represent the contents of the current block, but the other prediction may still provide some missing information that would improve the prediction process. In such cases, performing a weighted prediction of the two candidates has a potential advantage. By appropriately selecting the weights to perform the weighted prediction, the best combined prediction can be obtained.

Вариант осуществления, описанный здесь, использует фиксированный набор весов. Веса доступны в справочных таблицах, где различные веса могут использоваться для блоков с различными характеристиками, такими как размер блока, или в зависимости от другой доступной информации. Справочные таблицы могут быть предоставлены заранее для кодеров и декодеров, сконфигурированных соответствующим образом. Альтернативно, справочные таблицы могут быть переданы от кодера к декодеру либо как часть передачи закодированного видео, либо как предшествующая передача конфигурации.The embodiment described here uses a fixed set of weights. Weights are available in lookup tables, where different weights can be used for blocks with different characteristics, such as block size, or depending on other information available. Lookup tables can be provided in advance for suitably configured encoders and decoders. Alternatively, lookup tables may be transmitted from the encoder to the decoder either as part of the encoded video transmission or as a prior configuration transmission.

Затем из битового потока декодируется индекс для извлечения корректного элемента из справочной таблицы, так что корректный набор весов может быть выбран и использован при выполнении предсказания.An index is then decoded from the bitstream to retrieve the correct entry from the lookup table so that the correct set of weights can be selected and used in making the prediction.

В другом варианте осуществления, вместо того, чтобы передавать индекс для элемента (записи) LUT, вес или веса могут быть непосредственно извлечены из битового потока.In another embodiment, rather than passing an index for the LUT entry, the weight or weights can be directly extracted from the bitstream.

На фиг. 6 иллюстрируется структура, содержащая схематично показанную сеть 10 передачи видео, в которой излучатель (передатчик) 20 и приемник 30 осуществляют связь по каналу 40 связи. На практике, канал 40 связи может содержать спутниковый канал связи, кабельную сеть, наземную сеть радиовещания, канал связи, реализованный на основе POTS, например, используемый для предоставления Интернет-услуг для домашних помещений и помещений малого бизнеса, волоконно-оптические системы связи или комбинации любых из вышеупомянутых и любых других возможных сред связи.In fig. 6 illustrates a structure containing a schematically illustrated video transmission network 10 in which an emitter (transmitter) 20 and a receiver 30 communicate over a communication channel 40. In practice, communications link 40 may comprise a satellite link, a cable network, a terrestrial broadcast network, a POTS link such as that used to provide Internet services to homes and small businesses, fiber optic communications systems, or combinations any of the above and any other possible communication media.

Кроме того, раскрытие также распространяется на связь, посредством физического переноса, носителя хранения, на котором хранится машиночитаемая запись кодированного битового потока, для прохождения к соответственно сконфигурированному приемнику, способному считывать носитель и получать из него битовый поток. Примером этого является предоставление цифрового универсального диска (DVD) или его эквивалента. Последующее описание фокусируется на передаче сигнала, например с помощью несущей электронного или электромагнитного сигнала, но не должно интерпретироваться как исключающее вышеупомянутый подход с использованием носителей хранения.In addition, the disclosure also extends to communicating, through physical transfer, a storage medium on which a machine-readable record of an encoded bit stream is stored for passage to a suitably configured receiver capable of reading the medium and obtaining the bit stream from it. An example of this is the provision of a Digital Versatile Disc (DVD) or equivalent. The following description focuses on signal transmission, for example using an electronic or electromagnetic signal carrier, but should not be interpreted as excluding the above-mentioned approach using storage media.

Как показано на фиг. 7, излучатель 20 представляет собой компьютерное устройство по своей структуре и функции. Он может совместно использовать, с вычислительным устройством общего назначения, определенные признаки, но некоторые признаки могут быть специфичными в реализации, учитывая специализированную функцию, для которой должен быть установлен излучатель 20. Должно быть понятно, какие признаки могут относиться к типу общего назначения, а какие может потребоваться сконфигурировать специально для использования в излучателе (передатчике) видео.As shown in FIG. 7, the emitter 20 is a computer device in its structure and function. It may share, with a general purpose computing device, certain features, but some features may be implementation specific given the specialized function for which the emitter 20 is to be installed. It should be clear which features may be of the general purpose type and which may need to be configured specifically for use in a video emitter (transmitter).

Таким образом, излучатель 20 содержит блок 202 обработки графики, сконфигурированный для специального использования в обработке графики и аналогичных операциях. Излучатель 20 также содержит один или несколько других процессоров 204, которые либо в общем случае предусмотрены, либо сконфигурированы для других целей, таких как математические операции, обработка аудио, управление каналом связи и так далее.Thus, the emitter 20 includes a graphics processing unit 202 configured for specific use in graphics processing and the like. Emitter 20 also includes one or more other processors 204 that are either generally provided or configured for other purposes, such as mathematical operations, audio processing, communications link control, and so on.

Интерфейс 206 ввода обеспечивает средство для приема действий пользовательского ввода. Такие действия пользовательского ввода могут, например, быть вызваны взаимодействием пользователя с конкретным устройством ввода, включая одну или более кнопок управления и/или переключателей, клавиатуру, мышь или другое указательное устройство, блок распознавания речи, приводимый в действие для приема и преобразования речи в управляющие команды, процессор сигналов, сконфигурированный для приема и управления процессами от другого устройства, такого как планшет или смартфон или приемник дистанционного управления. Этот список следует понимать как не исчерпывающий, и другие формы ввода, будь то инициированные пользователем или автоматизированные, могут также предполагаться.Input interface 206 provides a means for receiving user input actions. Such user input actions may, for example, be caused by the user interacting with a particular input device, including one or more control buttons and/or switches, a keyboard, mouse or other pointing device, a speech recognition unit operated to receive and convert speech into control commands, a signal processor configured to receive and control processes from another device, such as a tablet or smartphone, or a remote control receiver. This list should be understood to be non-exhaustive and other forms of input, whether user-initiated or automated, may also be contemplated.

Аналогично, интерфейс 214 вывода сконфигурирован, чтобы предоставлять средство для вывода сигналов пользователю или другому устройству. Такой вывод может включать в себя сигнал отображения для управления локальным блоком видеодисплея (VDU) или любым другим устройством.Likewise, output interface 214 is configured to provide a means for outputting signals to a user or other device. Such a pin may include a display signal for driving a local video display unit (VDU) or any other device.

Интерфейс 208 связи реализует канал связи, будь то широковещательная связь или связь между двумя конечным пунктами, с одним или более получателями сигналов. В контексте настоящего варианта осуществления, интерфейс связи сконфигурирован, чтобы вызывать излучение сигнала, несущего битовый поток, определяющий сигнал видео, закодированный излучателем 20.Communication interface 208 implements a communication channel, whether broadcast or point-to-point, with one or more signal recipients. In the context of the present embodiment, the communication interface is configured to cause emission of a signal carrying a bit stream defining a video signal encoded by the emitter 20.

Процессоры 204, и особенно в целях настоящего раскрытия, GPU 202 приводятся в действие, чтобы исполнять компьютерные программы, при работе кодера. При этом прибегают к средствам храненияThe processors 204, and especially for purposes of the present disclosure, the GPU 202 are driven to execute computer programs when the encoder is operating. In this case, they resort to storage means

- 5 045634 данных, обеспечиваемым устройством 208 массовой памяти, которое реализовано для обеспечения крупномасштабного хранения данных, хотя и на основе относительно медленного доступа, и, на практике, будет хранить компьютерные программы и, в текущем контексте, данные представления видео для подготовки к исполнению процесса кодирования.- 5,045,634 data provided by mass storage device 208, which is implemented to provide large-scale data storage, albeit on a relatively slow access basis, and, in practice, will store computer programs and, in the current context, video presentation data in preparation for process execution coding.

Постоянная память (ROM) 210 предварительно сконфигурирована с исполняемыми программами, предназначенными для обеспечения ядра функциональности излучателя 20, а память 212 с произвольным доступом предусмотрена для быстрого доступа и хранения данных и программных инструкций в ходе исполнения компьютерной программы.Read-only memory (ROM) 210 is preconfigured with executable programs designed to provide the core functionality of emitter 20, and random access memory 212 is provided for quickly accessing and storing data and program instructions during execution of a computer program.

Работа излучателя 20 будет описана далее со ссылкой на фиг. 8. Фиг. 8 показывает конвейер обработки, выполняемый кодером, реализованным в излучателе 20, посредством исполняемых инструкций, на файле данных, представляющем представление видео, содержащее множество кадров для последовательного отображения как последовательность картинок (кадров).The operation of the emitter 20 will be described next with reference to FIG. 8. Fig. 8 shows a processing pipeline executed by the encoder implemented in the emitter 20, through executable instructions, on a data file representing a video representation containing a plurality of frames for sequential display as a sequence of pictures (frames).

Файл данных может также содержать информацию воспроизведения аудио, чтобы сопровождать представление видео, и другую дополнительную информацию, такую как информация электронной программы передач, субтитры или метаданные, чтобы обеспечивать возможность каталогизации представления. Обработка этих аспектов файла данных не имеет отношения к настоящему изобретению.The data file may also contain audio playback information to accompany the video presentation, and other additional information such as electronic program guide information, subtitles, or metadata to enable cataloging of the presentation. The handling of these aspects of the data file is not relevant to the present invention.

Как показано на фиг. 8, текущая картинка или кадр в последовательности картинок передается в модуль 230 разбиения, где она разбивается на блоки определенного размера для последовательной обработки кодером. Каждый блок затем вводится в модуль 232 предсказания, который стремится отбросить временные и пространственные избыточности, присутствующие в последовательности, и получить сигнал предсказания с использованием ранее кодированного содержимого. Информация, позволяющая вычислять такое предсказание, кодируется в битовом потоке. Эта информация может содержать достаточную информацию для обеспечения возможности вычисления, включая возможность вывода в приемнике другой информации, необходимой для завершения предсказания.As shown in FIG. 8, the current picture or frame in a sequence of pictures is sent to the partitioning module 230, where it is divided into blocks of a certain size for sequential processing by the encoder. Each block is then input to prediction module 232, which seeks to discard temporal and spatial redundancies present in the sequence and obtain a prediction signal using the previously encoded content. The information that allows such a prediction to be calculated is encoded in the bit stream. This information may contain sufficient information to enable computation, including the ability to output to the receiver other information necessary to complete the prediction.

Сигнал предсказания вычитается из исходного сигнала для получения остаточного сигнала. Затем он вводится в модуль 234 преобразования, который пытается дополнительно уменьшить пространственные избыточности в блоке посредством использования более подходящего представления данных. Следует отметить, что, в некоторых вариантах осуществления, преобразование области может быть опциональным этапом и можно вообще обойтись без него. Использование или не использование преобразования области может сигнализироваться в битовом потоке.The prediction signal is subtracted from the original signal to obtain the residual signal. It is then input to transform module 234, which attempts to further reduce spatial redundancies in the block by using a more appropriate data representation. It should be noted that, in some embodiments, region transformation may be an optional step and may be omitted altogether. The use or non-use of a region transform may be signaled in the bitstream.

Результирующий сигнал затем обычно квантуется модулем 236 квантования, и, наконец, результирующие данные, сформированные из коэффициентов, и информация, необходимая для вычисления предсказания для текущего блока, вводятся в модуль 238 энтропийного кодирования, который использует статистическую избыточность для представления сигнала в компактной форме посредством коротких двоичных кодов. Вновь, следует отметить, что энтропийное кодирование, в некоторых вариантах осуществления, может быть опциональным признаком, и в некоторых случаях можно вообще обойтись без него. Использование энтропийного кодирования может сигнализироваться в битовом потоке вместе с информацией для обеспечения возможности декодирования, такой как индекс для режима энтропийного кодирования (например, кодирования Хаффмана) и/или кодовой книги.The resulting signal is then typically quantized by a quantization module 236, and finally the resulting data generated from the coefficients and the information needed to calculate the prediction for the current block is input to an entropy encoding module 238, which uses statistical redundancy to represent the signal in a compact form through short binary codes. Again, it should be noted that entropy encoding, in some embodiments, may be an optional feature, and in some cases may not be required at all. The use of entropy encoding may be signaled in the bitstream along with information to enable decoding, such as an index for the entropy encoding mode (eg, Huffman encoding) and/or codebook.

Повторяя действие средства кодирования излучателя 20, битовый поток информационных элементов блока может быть сконструирован для передачи в приемник или множество приемников, в зависимости от обстоятельств. Битовый поток может также содержать информационные элементы, которые применяются по множеству информационных элементов блока и, таким образом, хранятся в синтаксисе битового потока независимо от информационных элементов блока. Примеры таких информационных элементов включают в себя опции конфигурации, параметры, применимые к последовательности кадров, и параметры, относящиеся к представлению видео в целом.By replicating the operation of the emitter encoding means 20, the bit stream of block information elements can be constructed for transmission to a receiver or multiple receivers, as appropriate. A bitstream may also contain information elements that apply across multiple block information elements and are thus stored in the bitstream syntax independent of the block information elements. Examples of such information elements include configuration options, parameters applicable to a sequence of frames, and parameters related to the presentation of the video as a whole.

Модуль 232 предсказания далее будет описан более подробно со ссылкой на фиг. 9. Как будет понятно, это является лишь примером, и другие подходы, находящиеся в пределах объема настоящего раскрытия и прилагаемой формулы изобретения, могут быть рассмотрены.The prediction module 232 will now be described in more detail with reference to FIG. 9. As will be appreciated, this is an example only, and other approaches may be considered within the scope of this disclosure and the appended claims.

Следующий процесс выполняется для каждого блока с компенсацией движения в интерпредсказанном кадре.The following process is performed for each motion-compensated block in the interpredicted frame.

На этапе S1 вычисляется список кандидатов интер-предсказания с компенсацией движения.In step S1, a motion-compensated inter-prediction candidate list is calculated.

На этапе S2 вычисляется список кандидатов интра-предсказания. Может быть реализовано несколько режимов интра- предсказания. Режимы интра-предсказания могут быть определены на основе степени, до которой, и способом, которым соседние блоки используются для построения предсказания блока. Различные режимы определены в установленных технических стандартах, таких как H.264/AVC и H.265/HEVC. В этом варианте осуществления может быть использован аналогичный подход, так что могут быть определены DC, планарный, чисто вертикальный и чисто горизонтальный режимы интра-предсказания. Может быть определено больше режимов, чем эти, например, в Н.264, в котором индекс со значением между 0 и 8 может использоваться для указания одного из девяти доступных режимов. Не все режимы обязательно должны использоваться. Можно рассмотреть более ограниченный набор, в котором рассматривается меньшее количество или даже один кандидат интра-предсказания.In step S2, a list of intra-prediction candidates is calculated. Several intra-prediction modes can be implemented. Intra-prediction modes can be determined based on the degree to which and the manner in which neighboring blocks are used to construct a block prediction. Various modes are defined in established technical standards such as H.264/AVC and H.265/HEVC. In this embodiment, a similar approach can be used so that DC, planar, pure vertical and pure horizontal intra-prediction modes can be defined. More modes than these may be defined, for example in H.264, in which an index with a value between 0 and 8 can be used to indicate one of nine available modes. Not all modes must be used. It is possible to consider a more limited set in which fewer or even one intraprediction candidate is considered.

- 6 045634- 6 045634

На этапе S3 создается набор комбинаций кандидатов интер-предсказания с компенсацией движения и учитываемых кандидатов интра-предсказания. Затем цикл L1 выполняется по каждой идентифицированной комбинации.In step S3, a set of combinations of motion-compensated inter-prediction candidates and considered intra-prediction candidates is created. Loop L1 is then executed on each identified combination.

В этом цикле, на этапе S4 рассматривается справочная таблица (LUT), содержащая веса, которые должны использоваться для выполнения взвешенного предсказания между двумя доступными кандидатами. LUT может зависеть от характеристик текущего блока (например, его ширины и высоты) или характеристик двух кандидатов предсказания (таких как величина вектора движения интер-предсказанного кандидата или режим интра-предсказания интра-предсказанного кандидата). В одном варианте осуществления, может рассматриваться несколько LUT, и кодер может выбрать одну LUT и передать в информации битового потока для обеспечения возможности идентификации или извлечения корректной LUT для использования среди множества доступных LUT.In this loop, step S4 considers a look-up table (LUT) containing weights that should be used to perform a weighted prediction between two available candidates. The LUT may depend on characteristics of the current block (such as its width and height) or characteristics of two prediction candidates (such as the magnitude of the motion vector of an inter-predicted candidate or the intra-prediction mode of an intra-predicted candidate). In one embodiment, multiple LUTs may be considered, and the encoder may select one LUT and transmit in bitstream information to enable the correct LUT to be identified or retrieved for use among the plurality of available LUTs.

Кроме того, внутри цикла L1, выполняется цикл L2 по всем элементам в LUT. Для каждого элемента k выполняются следующие этапы S6 и S7:Additionally, inside loop L1, loop L2 is executed over all elements in the LUT. For each element k, the following steps S6 and S7 are performed:

S6: Соответствующий набор весов извлекается в положении k в LUT.S6: The corresponding set of weights is retrieved at position k in the LUT.

S7: Комбинированное предсказание вычисляется путем выполнения взвешенного предсказания с использованием двух кандидатов предсказания и весов, извлеченных в положении k в LUT.S7: The combined prediction is computed by performing a weighted prediction using the two prediction candidates and the weights extracted at position k in the LUT.

После того как цикл L2 был проведен по всем элементами в LUT, затем, на этапе S8, элемент k0 выбирается среди элементов в LUT. Процесс выбора может зависеть, например, от вычисления стоимости, полученной для каждого элемента в LUT, которая может зависеть от искажения и битовой скорости (битрейта), необходимой для кодирования блока с использованием данного элемента. Для выполнения этого выбора могут использоваться другие способы. Веса, соответствующие записи k0 в LUT, затем используются для выполнения окончательного предсказания для текущего блока. Это завершает цикл L1 для идентифицированной комбинации.After the L2 loop has been carried out over all the elements in the LUT, then, in step S8, the element k0 is selected from among the elements in the LUT. The selection process may depend, for example, on calculating the cost obtained for each element in the LUT, which may depend on the distortion and bit rate required to encode a block using that element. Other methods may be used to make this selection. The weights corresponding to the k0 entry in the LUT are then used to perform the final prediction for the current block. This completes the L1 cycle for the identified combination.

Выбранный индекс k0 кодируется в битовом потоке вместе с остальной информацией предсказания, включая информацию для обеспечения возможности вычисления предсказания с компенсацией движения. Это может содержать вектор движения и индекс опорного кадра или индекс объединения (для идентификации корректного кандидата объединения из предопределенного списка) вместе с индексом для идентификации режима интра-предсказания для использования. В случае, когда рассматривается только один режим интра-предсказания, нет необходимости сигнализировать режим интра-предсказания в битовом потоке.The selected index k0 is encoded in the bitstream along with the rest of the prediction information, including information to enable the motion compensated prediction to be computed. This may contain a motion vector and a reference frame index or a fusion index (to identify a valid fusion candidate from a predefined list) together with an index to identify the intra-prediction mode to use. In the case where only one intra-prediction mode is considered, there is no need to signal the intra-prediction mode in the bitstream.

Структурная архитектура приемника показана на фиг. 10. Она имеет элементы, представляющие собой реализованное компьютером устройство. Таким образом, приемник 30 содержит блок 302 обработки графики, сконфигурированный для специального использования в обработке графики и аналогичных операций. Приемник 30 также содержит один или несколько других процессоров 304, либо предусматриваемых в общем случае, либо сконфигурированных для других целей, таких как математические операции, обработка аудио, управление каналом связи и так далее.The structural architecture of the receiver is shown in FIG. 10. It has elements that represent a computer-implemented device. Thus, receiver 30 includes a graphics processing unit 302 configured for specific use in graphics processing and the like. Receiver 30 also includes one or more other processors 304, either provided generally or configured for other purposes, such as math operations, audio processing, link control, and so on.

Должно быть понятно, что приемник 30 может быть реализован в форме телевизионной приставки, портативного персонального электронного устройства, персонального компьютера или любого другого устройства, пригодного для воспроизведения представлений видео.It should be understood that receiver 30 may be implemented in the form of a set-top box, portable personal electronic device, personal computer, or any other device suitable for reproducing video presentations.

Интерфейс 306 ввода обеспечивает средство для приема действий пользовательского ввода. Такие действия пользовательского ввода могут, например, быть вызваны взаимодействием пользователя с конкретным устройством ввода, включая одну или более кнопок управления и/или переключателей, клавиатуру, мышь или другое указательное устройство, блок распознавания речи, приводимый в действие для приема и преобразования речи в управляющие команды, процессор сигналов, сконфигурированный для приема и управления процессами от другого устройства, такого как планшет или смартфон или приемник дистанционного управления. Этот список следует понимать как не исчерпывающий, и возможны другие формы ввода, будь то инициированные пользователем или автоматизированные.Input interface 306 provides a means for receiving user input actions. Such user input actions may, for example, be caused by the user interacting with a particular input device, including one or more control buttons and/or switches, a keyboard, mouse or other pointing device, a speech recognition unit operated to receive and convert speech into control commands, a signal processor configured to receive and control processes from another device, such as a tablet or smartphone, or a remote control receiver. This list should be understood to be non-exhaustive and other forms of input, whether user initiated or automated, are possible.

Аналогично, интерфейс 314 вывода предназначен для обеспечения средства для вывода сигналов пользователю или другому устройству. Такой вывод может включать в себя телевизионный сигнал в подходящем формате для управления локальным телевизионным устройством.Likewise, output interface 314 is configured to provide a means for outputting signals to a user or other device. Such output may include a television signal in a suitable format for driving a local television device.

Интерфейс 308 связи реализует канал связи, будь то широковещательная связь или связь между двумя конечным пунктами, с одним или более получателями сигналов. В контексте настоящего варианта осуществления, интерфейс связи сконфигурирован, чтобы вызывать излучение сигнала, несущего битовый поток, определяющий сигнал видео, закодированный приемником 30.Communication interface 308 implements a communication channel, whether broadcast or point-to-point, with one or more signal recipients. In the context of the present embodiment, the communication interface is configured to cause emission of a signal carrying a bitstream defining a video signal encoded by the receiver 30.

Процессоры 304, и особенно в целях настоящего раскрытия, GPU 302 приводятся в действие, чтобы исполнять компьютерные программы, при работе приемника. При этом прибегают к средствам хранения данных, обеспечиваемым устройством 308 массовой памяти, которое реализовано для обеспечения крупномасштабного хранения данных, хотя и на основе относительно медленного доступа, и, на практике, будет хранить компьютерные программы и, в текущем контексте, данные представления видео, являющиеся результатом исполнения процесса приема.The processors 304, and especially for purposes of the present disclosure, the GPU 302 are driven to execute computer programs when the receiver is operating. This resorts to the data storage facilities provided by the mass memory device 308, which is implemented to provide large-scale data storage, albeit on a relatively slow access basis, and, in practice, will store computer programs and, in the current context, video presentation data being the result of the acceptance process.

Постоянная память (ROM) 310 предварительно сконфигурирована с исполняемыми программами, предназначенными для обеспечения ядра функциональности приемника 30, а память 312 с произвольнымRead-only memory (ROM) 310 is preconfigured with executable programs designed to provide the core functionality of receiver 30, and memory 312 with random

- 7 045634 доступом предусмотрена для быстрого доступа и хранения данных и программных инструкций в ходе исполнения компьютерной программы.- 7 045634 access is provided for quick access and storage of data and program instructions during the execution of a computer program.

Теперь будет описана функция приемника 30 со ссылкой на фиг. 11. На фиг. 11 показан конвейер обработки, выполняемый декодером, реализованным в приемнике 20 посредством исполняемых инструкций, на битовом потоке, принятом в приемнике 30, содержащем структурированную информацию, из которой может быть получено представление видео, содержащее реконструкцию кадров, закодированных посредством функциональности кодера излучателя 20.The function of the receiver 30 will now be described with reference to FIG. 11. In FIG. 11 shows a processing pipeline executed by a decoder implemented at receiver 20 through executable instructions on a bitstream received at receiver 30 containing structured information from which a video representation containing a reconstruction of frames encoded through the encoder functionality of emitter 20 can be derived.

Процесс декодирования, проиллюстрированный на фиг. 11, имеет целью реверсировать процесс, выполняемый в кодере. Должно быть понятно, что это не означает, что процесс декодирования является точной инверсией процесса кодирования.The decoding process illustrated in FIG. 11 aims to reverse the process performed in the encoder. It should be clear that this does not mean that the decoding process is the exact inverse of the encoding process.

Принятый битовый поток содержит последовательность закодированных информационных элементов, причем каждый элемент относится к блоку. Информационный элемент блока декодируется в модуле 330 энтропийного декодирования для получения блока коэффициентов и информации, необходимой для вычисления предсказания для текущего блока. Блок коэффициентов обычно деквантуется в модуле 332 деквантования и, как правило, обратно преобразуется в пространственную область посредством модуля 334 преобразования.The received bitstream contains a sequence of encoded information elements, each element belonging to a block. The block information element is decoded in entropy decoding module 330 to obtain a block of coefficients and information necessary to compute a prediction for the current block. The block of coefficients is typically dequantized in dequantization module 332 and typically converted back to the spatial domain via transform module 334 .

Как отмечено выше, должно быть понятно, что энтропийное декодирование, деквантование и обратное преобразование необходимо использовать в приемнике, только если в передатчике были использованы энтропийное кодирование, квантование и преобразование, соответственно.As noted above, it should be understood that entropy decoding, dequantization, and inverse conversion need to be used at the receiver only if entropy encoding, quantization, and conversion, respectively, have been used at the transmitter.

Сигнал предсказания генерируется, как и ранее, из предварительно декодированных выборок из текущего или предыдущего кадров и используя информацию, декодированную из битового потока, модулем 336 предсказания. Затем получают реконструкцию исходного блока картинки из декодированного остаточного сигнала и вычисленного блока предсказания в блоке 338 восстановления.The prediction signal is generated, as before, from pre-decoded samples from the current or previous frames and using information decoded from the bitstream by prediction module 336. A reconstruction of the original picture block is then obtained from the decoded residual signal and the calculated prediction block in reconstruction block 338.

С помощью повторяемого действия функциональности декодирования на последовательно принятых информационных элементах блока, блоки картинки могут быть восстановлены в кадры, которые затем могут быть скомпонованы для получения представления видео для воспроизведения.By repeating the operation of decoding functionality on sequentially received block information elements, picture blocks can be reconstructed into frames, which can then be assembled to produce a video representation for playback.

Примерный алгоритм декодера, дополняющий алгоритм кодера, описанный ранее, показан на фиг. 12.An exemplary decoder algorithm complementary to the encoder algorithm described previously is shown in FIG. 12.

Как отмечено выше, функциональность декодера приемника 30 извлекает из битового потока последовательность информационных элементов блока, как закодировано средствами кодера излучателя 20, определяя информацию блока и соответствующую информацию конфигурации.As noted above, receiver decoder functionality 30 extracts from the bit stream a sequence of block information elements as encoded by means of emitter encoder 20, determining block information and corresponding configuration information.

В обобщенных терминах, декодер пользуется информацией из предыдущих предсказаний при построении предсказания для текущего блока. При этом декодер может комбинировать знания из интерпредсказания, т.е. из предыдущего кадра, и интра-предсказания, т.е. из другого блока в том же самом кадре.In general terms, the decoder uses information from previous predictions when constructing a prediction for the current block. In this case, the decoder can combine knowledge from interprediction, i.e. from the previous frame, and intra-prediction, i.e. from another block in the same frame.

Таким образом, для интер-предсказанного блока с компенсацией движения в интер-предсказанном кадре, на этапе S21, информация, обеспечивающая возможность формирования кандидата интерпредсказания с компенсацией движения, извлекается из битового потока. Информация движения, позволяющая выполнять компенсацию движения, может быть получена, например, прямым декодированием вектора движения и индекса опорного кадра из битового потока, или посредством процесса предсказания объединения, в котором формируется список кандидатов объединения, и индекс объединения извлекается из битового потока для идентификации корректной объединенной информации движения.That is, for an inter-predicted motion-compensated block in an inter-predicted frame, in step S21, information enabling generation of a motion-compensated inter-prediction candidate is extracted from the bit stream. Motion information enabling motion compensation can be obtained, for example, by directly decoding the motion vector and reference frame index from the bitstream, or through a fusion prediction process in which a list of fusion candidates is generated and the fusion index is extracted from the bitstream to identify the correct fusion traffic information.

После того как информация была извлечена, на этапе S22, на основе извлеченной информации формируется кандидат интер-предсказания с компенсацией движения.After the information has been extracted, in step S22, a motion-compensated inter-prediction candidate is generated based on the extracted information.

Затем, на этапе S23, вычисляется список кандидатов интра-предсказания, например, набор из DC, планарного, чисто вертикального и чисто горизонтального режимов интра-предсказания; может рассматриваться более ограниченный набор, где рассматривается меньшее количество или даже только один кандидат интра-предсказания.Then, in step S23, a list of intra-prediction candidates is calculated, for example, a set of DC, planar, pure vertical and pure horizontal intra-prediction modes; a more limited set may be considered, where fewer or even just one intraprediction candidate is considered.

На этапе S24, из битового потока извлекается индекс для идентификации режима интрапредсказания для использования; в случае, если рассматривается только один режим интра- предсказания, нет необходимости извлекать такой индекс идентификации режима из битового потока, и поэтому можно обойтись без этого этапа. Этот этап выбирает один из кандидатов, вычисленных на этапе S23, для использования.In step S24, an index is extracted from the bit stream to identify an intra prediction mode to use; In the case where only one intra-prediction mode is considered, there is no need to extract such mode identification index from the bit stream and therefore this step can be dispensed with. This step selects one of the candidates calculated in step S23 to use.

На этапе S25, из битового потока извлекается индекс k0 для идентификации элемента для использования из предварительно сохраненной LUT, соответствующей LUT, использованной в процессе кодера.In step S25, an index k0 is extracted from the bit stream to identify an element to use from a previously stored LUT corresponding to the LUT used in the encoder process.

Затем, на этапе S26, рассматривается справочная таблица (LUT), содержащая веса, которые должны использоваться для выполнения взвешенного предсказания между двумя доступными кандидатами. Множество LUT может быть реализовано, и LUT, подлежащая использованию в конкретном случае, может зависеть от характеристик текущего блока (таких как его ширина и высота) или характеристик двух кандидатов предсказания (таких как величина вектора движения интер-предсказанного кандидата или режим интра-предсказания интра-предоказанного кандидата). В одном варианте осуществления, информация может быть извлечена из битового потока для обеспечения возможности выбора соответствующейNext, in step S26, a look-up table (LUT) containing weights to be used to perform a weighted prediction between the two available candidates is considered. A plurality of LUTs may be implemented, and the LUT to be used in a particular case may depend on characteristics of the current block (such as its width and height) or characteristics of two prediction candidates (such as the magnitude of the inter-predicted candidate's motion vector or the intra-prediction mode -preproven candidate). In one embodiment, information may be extracted from the bitstream to enable selection of the appropriate

--

Claims (5)

LUT среди множества доступных LUT. Если для всех обстоятельств используется одна LUT, то нет необходимости сигнализировать, какая LUT должна использоваться в конкретном случае.LUT among many available LUTs. If one LUT is used for all circumstances, then there is no need to signal which LUT should be used in a particular case. На этапе S27, веса в положении k0 извлекаются из LUT, идентифицированной на этапе S26. Затем, на этапе S28, веса используются для вычисления взвешенного среднего интра- и интер-предсказанных кандидатов и получения окончательного предсказания для текущего блока.In step S27, the weights at position k0 are extracted from the LUT identified in step S26. Then, in step S28, the weights are used to calculate a weighted average of the intra- and inter-predicted candidates and obtain the final prediction for the current block. Процесс, описанный выше, выполняется для всех принятых информационных элементов блока, для всей передачи. На этой основе, построение декодированных блоков может быть восстановлено в кадры, а кадры - в восстановленное представление видео.The process described above is performed for all received block information elements for the entire transmission. On this basis, the construction of decoded blocks can be reconstructed into frames, and the frames into a reconstructed video representation. Следует понимать, что изобретение не ограничено описанными выше вариантами осуществления, и могут выполняться различные модификации и усовершенствования без отклонения от концепций, описанных в настоящем документе. За исключением того, где признаки взаимно исключающие, любой из признаков может использоваться отдельно или в комбинации с любыми другими признаками, и раскрытие распространяется на и включает в себя все комбинации и подкомбинации одного или более признаков, описанных в настоящем документе.It should be understood that the invention is not limited to the embodiments described above, and various modifications and improvements may be made without deviating from the concepts described herein. Except where features are mutually exclusive, any of the features may be used alone or in combination with any other features, and the disclosure extends to and includes all combinations and subcombinations of one or more features described herein. ФОРМУЛА ИЗОБРЕТЕНИЯCLAIM 1. Реализуемый компьютером способ кодирования блока пикселов в изображении последовательного множества изображений, содержащий:1. A computer-implemented method for encoding a block of pixels in an image of a sequential set of images, containing: вы числение набора кандидатов интер-предсказания с компенсацией движения для блока пикселов на основе опорного изображения в последовательном множестве изображений;calculating a set of motion compensated inter-prediction candidates for a block of pixels based on the reference image in the sequential plurality of images; вы числение набора кандидатов интра-предсказания для блока пикселов на основе предопределенного набора режимов интра-предсказания;calculating a set of intra-prediction candidates for a block of pixels based on a predefined set of intra-prediction modes; ко мпоновку набора комбинаций упомянутых кандидатов интер-предсказания с компенсацией движения и кандидатов интра-предсказания;arranging a set of combinations of said motion compensated inter-prediction candidates and intra-prediction candidates; оп ределение для множества наборов параметров, причем каждый набор параметров конфигурирует параметрическое преобразование одного из кандидата интер-предсказания с компенсацией движения и одного из кандидатов интра-предсказания, комбинированного предсказания для каждой комбинации упомянутых кандидатов интер-предсказания с компенсацией движения и кандидатов интрапредсказания, при этом, по меньшей мере, один набор упомянутых параметров конфигурирует параметрическое преобразование, содержащее взвешенное среднее одного или более кандидатов интерпредсказания с компенсацией движения и одного или более кандидатов интра-предсказания, управляемое весом или комбинацией весов, при этом вес или комбинация весов содержит запись в справочной таблице с соответствующим индексом веса;a definition for a plurality of parameter sets, each parameter set configuring a parametric transformation of one of the motion-compensated inter-prediction candidates and one of the intra-prediction candidates, a combined prediction for each combination of said motion-compensated inter-prediction candidates and intra-prediction candidates, wherein at least one set of said parameters configures a parametric transformation comprising a weighted average of one or more motion-compensated inter-prediction candidates and one or more intra-prediction candidates, controlled by a weight or combination of weights, wherein the weight or combination of weights contains an entry in a lookup table with the corresponding weight index; оц енивание каждого комбинированного предсказания по отношению к объективной метрике искажения;evaluating each combined prediction against an objective distortion metric; выбор одного из комбинированных предсказаний на основе результата упомянутого оценивания в качестве кодирования блока пикселов.selecting one of the combined predictions based on the result of said estimation as an encoding of the block of pixels. 2. Кодер, действующий для выполнения способа по п.1.2. An encoder operating to carry out the method according to claim 1. 3. Устройство генерации сигнала, содержащее кодер по п.2.3. A signal generation device containing an encoder according to claim 2. 4. Сигнал, генерируемый посредством модуляции битового потока на несущую, причем битовый поток является продуктом способа кодирования по п.1.4. A signal generated by modulating a bit stream onto a carrier, wherein the bit stream is a product of the encoding method of claim 1. 5. Реализуемый компьютером способ декодирования битового потока, содержащий:5. A computer-implemented method for decoding a bitstream, comprising: извлечение из битового потока информации конфигурации предиктора движения и, на основе информации конфигурации предиктора движения, вычисление одного или более кандидатов интерпредсказания с компенсацией движения для блока выборок;extracting motion predictor configuration information from the bit stream and, based on the motion predictor configuration information, calculating one or more motion compensated interprediction candidates for the block of samples; извлечение из битового потока информации конфигурации интра-предсказания и, на основании информации конфигурации интра-предсказания, вычисление одного или более кандидатов интрапредсказания, при этом кандидаты интра-предсказания получены посредством процесса интрапредсказания для блока выборок;extracting intra-prediction configuration information from the bit stream and, based on the intra-prediction configuration information, calculating one or more intra-prediction candidates, wherein the intra-prediction candidates are obtained by an intra-prediction process for a block of samples; извлечение из битового потока информации конфигурации параметрического преобразования, обеспечивающей возможность определения параметров для параметрического преобразования одного или более кандидатов интер-предсказания с компенсацией движения и одного или более кандидатов интра-предсказания, причем определяемые параметры содержат индекс веса;extracting from the bitstream information a parametric transform configuration enabling parameters to be determined for the parametric transform of one or more motion compensated inter-prediction candidates and one or more intra-prediction candidates, wherein the determined parameters comprise a weight index; извлечение из справочной таблицы, отображающей индексы весов на веса, веса или комбинации весов, соответствующих индексу веса; и вычисление комбинированного преобразованного предсказания для упомянутого блока выборок посредством параметрического преобразования одного или более кандидатов интер-предсказания с компенсацией движения и одного или более кандидатов интра-предсказания, причем параметрическое преобразование содержит взвешенное среднее одного или более кандидатов интер-предсказания с компенсацией движения и одного или более кандидатов интра-предсказания, управляемое весом или комбинацией весов, извлекаемым/извлекаемой из справочной таблицы.retrieving from a lookup table mapping weight indexes to weights, weights or combinations of weights corresponding to the weight index; and calculating a combined transformed prediction for said block of samples by parametrically transforming one or more motion-compensated inter-prediction candidates and one or more intra-prediction candidates, wherein the parametric transformation comprises a weighted average of the one or more motion-compensated inter-prediction candidates and one or more more intra-prediction candidates, driven by a weight or combination of weights extracted/extracted from the lookup table. --
EA202191670 2018-12-14 2019-12-10 VIDEO ENCODING AND VIDEO DECODING EA045634B1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB1820459.4 2018-12-14

Publications (1)

Publication Number Publication Date
EA045634B1 true EA045634B1 (en) 2023-12-13

Family

ID=

Similar Documents

Publication Publication Date Title
JP2019092213A (en) Picture encoding/decoding method and apparatus using the same
KR102548881B1 (en) Methods and apparatus for video transform encoding/decoding
US10063878B2 (en) Interlayer video encoding method using brightness compensation and device thereof, and video decoding method and device thereof
US11778201B2 (en) Video encoding and video decoding
KR100728011B1 (en) Apparatus for encoding and decoding image, and method theroff, and a recording medium storing program to implement the method
EP2983362A1 (en) Interlayer video encoding method and apparatus and interlayer video decoding method and apparatus for compensating luminance difference
CN114868385A (en) Video encoding and video decoding
CN107534765B (en) Motion vector selection and prediction in video coding systems and methods
US11589038B2 (en) Methods for video encoding and video decoding
WO2012096104A1 (en) Image predict coding device, image predict coding method, image predict coding program, image predict decoding device, image predict decoding method, and image predict decoding program
US10869030B2 (en) Method of coding and decoding images, a coding and decoding device, and corresponding computer programs
KR20050112587A (en) Video encoding and decoding apparatus, and method thereof
EA045634B1 (en) VIDEO ENCODING AND VIDEO DECODING
CN114600463A (en) Video encoding and video decoding
CN113497940A (en) Video decoding method, video decoding device, computer equipment and storage medium
JP2017073598A (en) Moving image coding apparatus, moving image coding method, and computer program for moving image coding
EA043408B1 (en) VIDEO ENCODING AND VIDEO DECODING