RU2792865C2 - Method for adaptive update of unavailable reference frame blocks using explicit and implicit signaling - Google Patents

Method for adaptive update of unavailable reference frame blocks using explicit and implicit signaling Download PDF

Info

Publication number
RU2792865C2
RU2792865C2 RU2021118364A RU2021118364A RU2792865C2 RU 2792865 C2 RU2792865 C2 RU 2792865C2 RU 2021118364 A RU2021118364 A RU 2021118364A RU 2021118364 A RU2021118364 A RU 2021118364A RU 2792865 C2 RU2792865 C2 RU 2792865C2
Authority
RU
Russia
Prior art keywords
frame
block
update
current block
blocks
Prior art date
Application number
RU2021118364A
Other languages
Russian (ru)
Other versions
RU2021118364A (en
Inventor
Хари КАЛВА
Боривой ФЁРХТ
Велибор АДЖИЦ
Original Assignee
Оп Солюшнз, Ллк
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Оп Солюшнз, Ллк filed Critical Оп Солюшнз, Ллк
Publication of RU2021118364A publication Critical patent/RU2021118364A/en
Application granted granted Critical
Publication of RU2792865C2 publication Critical patent/RU2792865C2/en

Links

Images

Abstract

FIELD: video compression.
SUBSTANCE: invention relates to the field of video compression, in particular, it is directed to a method for adaptively updating blocks for an unavailable reference image. The technical result is to increase the efficiency of video coding. A decoding device is provided, comprising a circuit configured to receive a current block and to determine whether the current block is a block, to update an unavailable reference frame based on the current block, and update the unavailable key frame using the current block. The signaling information contains a sequence parameter set (SPS) indicating that a mode is available where a part of the reference picture can be modified.
EFFECT: increase in the efficiency of video coding.
3 cl, 9 dwg

Description

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

Настоящее изобретение, в общем, относится к области сжатия видео. В частности, настоящее изобретение направлено на создание способа адаптивного обновления блоков для недоступного опорного изображения.The present invention generally relates to the field of video compression. In particular, the present invention is directed to a method for adaptively updating blocks for an unavailable reference picture.

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

Видео кодек может содержать электронную схему или программное обеспечение, осуществляющее сжатие или распаковку цифрового видео. Он может преобразовывать несжатое видео в сжатый формат или наоборот. В контексте сжатия видео, устройство, которое сжимает видео, (и/или осуществляет некоторые функции в ходе сжатия) может обычно называться кодирующим устройством, а устройство, которое распаковывает видео, (и/или осуществляет некоторые функции в ходе распаковки) может называться декодирующим устройством.A video codec may contain 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 the video (and/or performs some functions during compression) may commonly be referred to as an encoder, and a device that decompresses the video (and/or performs some functions during decompression) may be referred to as a decoder. .

Формат сжатых данных может соответствовать стандартным спецификациям сжатия видео. Это сжатие может представлять собой сжатее с потерями в том смысле, что в сжатом видео отсутствует некоторая информация, присутствующая в оригинальном видео. Вследствие этого распакованное видео может иметь более низкое качество по сравнению с оригинальным несжатым видео, поскольку в распакованном видео будет недостаточно информации для точной реконструкции оригинального видео. The compressed data format may follow standard video compression specifications. This compression may be more lossy in the sense that some of the information present in the original video is missing from the compressed video. As a result, the decompressed video may be of lower quality than the original uncompressed video because the decompressed video will not contain enough information to accurately reconstruct the original video.

Могут иметь место сложные соотношения между качеством видео, объемом данных, используемых для представления видео (например, определяется скоростью передачи битов данных), сложностью алгоритмов кодирования и декодирования, чувствительностью к потере данных и ошибкам, легкостью редактирования, произвольным доступом, задержкой прохождения сигнала от одного конца линии от другого и другими подобными характеристиками.There can be complex relationships between video quality, amount of data used to represent the video (e.g. determined by bit rate), complexity of encoding and decoding algorithms, sensitivity to data loss and errors, ease of editing, random access, delay from one end of the line from the other and other similar characteristics.

Процедура компенсации движения может представлять собой прогнозирование кадра видео или его части на основе опорного кадра, такого как предыдущий и/или будущий кадры, посредством учета движения видеокамеры и/или объектов на этом видео. Это может быть использовано при кодировании и декодировании данных видео для сжатия видео, например, при кодировании и декодировании с использованием стандартов Группы экспертов по кинематографии (Motion Picture Experts Group) MPEG-2 (также называются стандартами усовершенствованного видео кодирования (advanced video coding (AVC)) и H.264). Компенсация движения может описывать изображения в терминах преобразования опорного изображения в текущее изображение. Опорное изображение может предшествовать текущему изображению, может быть будущим относительно текущего изображения или может представлять собой долговременный опорный кадр (long term reference (LTR)). Когда изображения могут быть точно синтезированы на основе ранее переданных и/или сохраненных изображений, эффективность сжатия может быть повышена. The motion compensation procedure may be a prediction of a video frame or part thereof based on a reference frame, such as a previous and/or future frame, by taking into account the motion of the video camera and/or objects in the video. This can be used when encoding and decoding video data for video compression, such as encoding and decoding using Motion Picture Experts Group MPEG-2 standards (also called advanced video coding (AVC) standards. ) and H.264). Motion compensation may describe images in terms of transforming a reference image into a current image. The reference picture may precede the current picture, may be future relative to the current picture, or may be a long term reference (LTR) frame. When images can be accurately synthesized based on previously transmitted and/or stored images, compression efficiency can be improved.

Сегодняшние стандарты, такие как стандарты H.264 и H.265, позволяют обновлять кадры, такие как долговременные опорные кадры, посредством сигнализации вновь декодированного кадра для того, чтобы его можно было сохранить и сделать доступным в качестве опорного кадра. Такие обновления передают посредством сигнализации от кодирующего устройства и обновляют весь кадр. Однако обновление всего кадра может быть связано с большими затратами, в частности, когда изменилась только небольшая часть статического фона. Частичные обновления кадра возможны, но часто для таких обновлений кадров используются сложные и вычислительно затратные процедуры.Today's standards, such as the H.264 and H.265 standards, allow frames, such as long-term anchor frames, to be updated by signaling a newly decoded frame so that it can be stored and made available as a reference frame. Such updates are signaled from the encoder and update the entire frame. However, updating the entire frame can be costly, particularly when only a small portion of the static background has changed. Partial frame updates are possible, but complex and computationally expensive procedures are often used for such frame updates.

Раскрытие сущности изобретенияDisclosure of the essence of the invention

В одном из аспектов, устройство декодирования содержит схему, конфигурированную для приема потока битов данных, содержащего текущий кодированный блок, определения декодированного текущего блока, определение, что в потоке битов данных для текущего кодированного блока активизирован режим обновления недоступного опорного блока, и обновление недоступного опорного кадра с использованием декодированного текущего блока.In one aspect, the decoder comprises circuitry configured to receive a data bitstream containing a current encoded block, determine the decoded current block, determine that an unavailable reference block update mode is activated in the data bitstream for the current encoded block, and update the unavailable reference frame. using the decoded current block.

Согласно другому аспекту способ содержит прием, декодирующим устройством, потока битов данных, содержащего текущий кодированный блок. Этот способ содержит определение декодированного текущего блока. Способ содержит определение, что в потоке битов данных для текущего кодированного блока активизирован режим обновления недоступного опорного блока. Этот способ содержит обновление недоступного опорного кадра с использованием декодированного текущего блока.According to another aspect, the method comprises receiving, by the decoder, a data bitstream containing the current encoded block. This method comprises determining the decoded current block. The method comprises determining that an unavailable reference block update mode is activated in the data bitstream for the current encoded block. This method comprises updating an unavailable reference frame using the decoded current block.

Согласно другому аспекту, устройство декодирования содержит схему, конфигурированную для приема текущего блока, маркировки этого текущего блока для обновления недоступного опорного кадра и обновления недоступного опорного кадра с использованием указанного текущего блока.According to another aspect, the decoder comprises circuitry configured to receive a current block, mark the current block for updating an unavailable reference frame, and update the unavailable reference frame using said current block.

Согласно другому аспекту способ содержит прием, декодирующим устройством, текущего блока. Этот способ содержит маркировку текущего блока для обновления недоступного опорного кадра на основе текущего блока. Этот способ содержит обновление недоступного опорного кадра с использованием текущего блока.According to another aspect, the method comprises receiving, by the decoder, the current block. This method comprises marking the current block to update an unavailable key frame based on the current block. This method comprises updating an unavailable key frame using the current block.

Подробности одного или более вариантов предмета настоящего изобретения, описываемых здесь, приведены на прилагаемых чертежах и в описании ниже. Другие признаки и преимущества предмета изобретения, описываемого, здесь будут понятны из описания и чертежей, а также из Формулы изобретения.Details of one or more embodiments of the subject matter of the present invention described herein are set forth in the accompanying drawings and in the description below. Other features and advantages of the subject matter described here will be apparent from the description and drawings, as well as from the claims.

Краткое описание чертежейBrief description of the drawings

В целях иллюстрирования настоящего изобретения указанные чертежи показывают аспекты одного или более вариантов настоящего изобретения. Однако следует понимать, что настоящее изобретение не исчерпывается точно теми конфигурациями и инструментальными средствами, какие показаны на чертежах, на которых:For purposes of illustrating the present invention, these drawings show aspects of one or more embodiments of the present invention. However, it should be understood that the present invention is not limited to exactly the configurations and tools shown in the drawings, in which:

Фиг. 1 представляет логическую схему, иллюстрирующую пример процедуры обновления блоков недоступного опорного (UR) кадра, где этот UR-кадр частично обновляется декодирующим устройством и на основе декодированного текущего блока;Fig. 1 is a logic diagram illustrating an example procedure for updating blocks of an unavailable reference (UR) frame, where this UR frame is partially updated by the decoder and based on the decoded current block;

Фиг. 2 представляет логическую схему, иллюстрирующую пример процедуры обновления блоков UR-кадра, где этот UR-кадр частично обновляется декодирующим устройством и на основе декодированного текущего блока;Fig. 2 is a logic diagram illustrating an example of a UR frame block update procedure, where the UR frame is partially updated by the decoder and based on the decoded current block;

Фиг. 3 представляет блок-схему, иллюстрирующую пример кадра, содержащего текущий блок X и три соседних блока, имеющих ассоциированные векторы движения, использующие UR-кадр для оценки движения;Fig. 3 is a block diagram illustrating an example of a frame containing a current block X and three adjacent blocks having associated motion vectors using a UR frame for motion estimation;

Фиг. 4 представляет блок-схему, иллюстрирующую пример кадра, содержащего блоки, не использующие UR-кадр в качестве опоры, и блоки, использующие UR-кадр в качестве опоры;Fig. 4 is a block diagram illustrating an example of a frame containing blocks not using a UR frame as a reference and blocks using a UR frame as a reference;

Фиг. 5 представляет блок-схему системы, иллюстрирующую пример декодирующего устройства, способного декодировать поток битов данных с обновлением блока UR-кадра;Fig. 5 is a system block diagram illustrating an example of a decoder capable of decoding a data bit stream with block update of a UR frame;

Фиг. 6 представляет логическую схему, иллюстрирующую пример процедуры кодирования видео с обновлениями блоков UR-кадра в соответствии с некоторыми аспектами предмета настоящего изобретения;Fig. 6 is a flow diagram illustrating an example of a video coding procedure with UR frame block updates in accordance with some aspects of the subject matter of the present invention;

Фиг. 7 представляет логическую схему, иллюстрирующую пример процедуры кодирования видео с обновлениями блоков UR-кадра в соответствии с некоторыми аспектами предмета настоящего изобретения, позволяющими уменьшить сложность кодирования, увеличивая при этом эффективность сжатия;Fig. 7 is a flowchart illustrating an example of a video coding procedure with UR frame block updates in accordance with some aspects of the subject matter of the present invention to reduce coding complexity while increasing compression efficiency;

Фиг. 8 представляет блок-схему системы, иллюстрирующую пример декодирующего устройства для видео, где это устройство способно сигнализировать стороне декодирующего устройства обновления блоков UR-кадра;Fig. 8 is a system block diagram illustrating an example of a video decoder, where the device is capable of signaling the decoder side to update blocks of a UR frame;

иAnd

Фиг. 9 представляет блок-схему компьютерной системы, которая может быть использована для реализации любых из одного или более способов, описываемых здесь, и реализации любых из одной или более частей этих способов. Fig. 9 is a block diagram of a computer system that may be used to implement any of one or more of the methods described herein and to implement any of one or more parts of those methods.

Чертежи не обязательно выполнены в масштабе и могут быть иллюстрированы воображаемыми линиями, схематичными представлениями и частичными видами. В некоторых случаях, подробности, не являющиеся необходимыми для понимания вариантов изобретения или отображающие другие детали, которые трудны для восприятия, могут быть опущены. Подобные позиционные обозначения на различных чертежах присвоены подобным элементам.The drawings are not necessarily drawn to scale and may be illustrated with imaginary lines, schematic representations and partial views. In some cases, details that are not necessary to understand embodiments of the invention or display other details that are difficult to understand may be omitted. Like reference designators in the various drawings are assigned to like elements.

Осуществление изобретенияImplementation of the invention

Некоторые варианты реализации предмета настоящего изобретения содержат подходы к осуществлению частичных обновлений недоступного опорного (unavailable reference (UR)) кадра и/или изображения, которое используется для создания прогнозируемых кадров и/или изображений в одной или более группах изображений (groups of pictures (GOP)), но которое при этом не представлено само по себе в изображении видео. Кадр, маркированный в качестве UR-кадра в потоке битов данных видео, может быть доступен для использования в качестве опорного кадра до тех пор, пока он не будет в явной форме исключен посредством сигнализации в потоке битов данных. Применение UR-кадров может улучшить эффективность прогнозирования и сжатия в сценах, имеющих статичный фон в течение продолжительного периода времени, (например, фон в случае видео конференции или в случае видеонаблюдения на парковке). Однако с течением времени фон сцены постепенно изменяется (например, автомобили, припаркованные на пустых местах, становятся частью фоновой сцены). О частичных обновлениях UR-кадров может быть сигнализировано в явной форме в потоке битов данных путем использования режима обновления недоступного опорного блока, который, когда он активизирован для конкретного текущего блока, может указывать, что декодированный текущий блок используется для обновления расположенных в пространстве в этом же месте пикселей пределах UR-кадра. Такие частичные обновления UR-кадра могут усовершенствовать прогнозирование, не требуя обновления всего UR-кадра, и поэтому уменьшить остаточную погрешность и тем самым улучшить характеристики сжатия. Более того, благодаря сигнализации об обновлениях UR-блоков в явной форме, такие обновления UR-блоков могут быть реализованы простым способом и без использования неадекватных и сложных процедур.Some embodiments of the subject matter of the present invention contain approaches to performing partial updates to an unavailable reference (UR) frame and/or picture that is used to create predictive frames and/or pictures in one or more groups of pictures (GOP) ), but which is not represented by itself in the video image. A frame marked as a UR frame in the video bitstream may be available for use as a reference frame until it is explicitly excluded by signaling in the data bitstream. The use of UR frames can improve the performance of prediction and compression in scenes that have a static background for a long period of time (for example, the background in the case of a video conference or in the case of video surveillance in a parking lot). However, over time, the background of the scene gradually changes (for example, cars parked in empty spaces become part of the background scene). Partial updates of UR frames may be signaled explicitly in the data bitstream by using an unavailable reference block update mode which, when enabled for a particular current block, may indicate that the decoded current block is being used to update spaced in that same the location of the pixels within the UR frame. Such partial updates of the UR frame can improve prediction without requiring the entire UR frame to be updated, and therefore reduce residual error and thereby improve compression performance. Moreover, by explicitly signaling UR block updates, such UR block updates can be implemented in a simple manner and without the use of inadequate and complicated procedures.

В качестве альтернативы или в дополнение, о частичном обновлении UR-кадра может быть сигнализировано в неявной форме, так что по сравнению с некоторыми альтернативными подходами сигнализация в явной форме не требуется ни в полном объеме, ни в уменьшенном объеме. Подход с сигнализацией в неявной форме может указывать, что декодированный текущий блок может использоваться для обновления расположенных в пространстве в этом же месте пикселей в UR-кадре. Такие частичные обновления UR-кадра могут улучшить прогнозирование, не требуя для этого обновления всего UR-кадра целиком, и поэтому уменьшить остаточную погрешность и тем самым улучшить характеристики сжатия. Более того, благодаря сигнализации обновлений UR-блоков в неявной форме могут быть уменьшены издержки заголовка, снижая тем самым частоту передачи битов данных и совершенствуя сжатие. Кроме того, в некоторых вариантах обновления UR-кадра могут быть осуществлены достаточно простым образом и без использования неадекватных и сложных процедур.Alternatively or in addition, a partial update of the UR frame may be signaled implicitly, such that neither full nor reduced signaling is explicitly required compared to some alternative approaches. The implicit signaling approach may indicate that the decoded current block may be used to update the same location spatially located pixels in the UR frame. Such partial updates of the UR frame can improve prediction without requiring the entire UR frame to be updated, and therefore reduce the residual error and thereby improve compression performance. Moreover, by implicitly signaling UR block updates, header overhead can be reduced, thereby lowering the data bit rate and improving compression. In addition, in some embodiments, updates to the UR frame can be performed in a fairly simple manner and without the use of inadequate and complex procedures.

В некоторых вариантах сигнализация в неявной форме о блоках видео идентифицируют случаи, в которых контекст текущего и соседних блоков используется для неявного определения того, какие именно блоки обновляются в UR-кадре (например, того, какие именно участки рассматриваемого UR-кадра следует обновить). Обратимся теперь к Фиг. 1, где представлена логическая схема, иллюстрирующая пример процедуры 100 обновления блоков UR-кадра, в ходе которой устройство декодирования частично обновляет UR-кадр на основе декодированного текущего блока. Такие обновления UR-блоков могут улучшить прогнозирование, не требуя обновления всего UR-кадра, и поэтому могут уменьшить остаточную погрешность и тем самым улучшить характеристики сжатия.In some embodiments, implicit video block signaling identifies instances in which the context of the current and neighboring blocks is used to implicitly determine which blocks are updated in the UR frame (eg, which portions of the UR frame in question should be updated). Let us now turn to Fig. 1, which is a flowchart illustrating an example of a UR frame block update procedure 100 in which a decoder partially updates a UR frame based on the decoded current block. Such updates to UR blocks can improve prediction without requiring the entire UR frame to be updated, and therefore can reduce residual error and thereby improve compression performance.

На этапе 105, и по-прежнему обращаясь к Фиг. 1, устройство декодирования принимает поток битов данных, содержащий текущий кодированный блок. Поток битов данных может содержать, например, данные, найденные в потоке битов данных, поступающем на вход декодирующего устройства в процессе сжатия данных. Этот поток битов данных может содержать информацию, необходимую для декодирования видео. Процедура приема потока может содержать выделение и/или синтаксический анализ рассматриваемого блока и ассоциированной сигнализационной информации из потока битов данных. В некоторых вариантах реализации текущий кодированный блок может содержать единицу дерева кодирования (coding tree unit (CTU)), единицу кодирования (coding unit (CU)) или единицу прогнозирования (prediction unit (PU)).At step 105, and still referring to FIG. 1, the decoder receives a data bitstream containing the current encoded block. The data bitstream may contain, for example, data found in the data bitstream input to the decoder during data compression. This data bitstream may contain information necessary to decode the video. The procedure for receiving the stream may comprise extracting and/or parsing the block in question and the associated signaling information from the data bitstream. In some embodiments, the current encoded block may contain a coding tree unit (CTU), a coding unit (CU), or a prediction unit (PU).

На этапе 110, продолжая обращаться к Фиг. 1, может быть определен декодированный текущий блок. Например, принятый текущий кодированный блок может быть декодирован, например, с использованием межкадрового прогнозирования. Декодирование посредством межкадрового прогнозирования может представлять собой декодирование с использованием предшествующего кадра, будущего кадра или UR-кадра в качестве опоры для вычисления результата прогнозирования, что может быть скомбинировано с остатком, входящим в поток битов данных.At step 110, continuing to refer to FIG. 1, the decoded current block can be determined. For example, the received current encoded block may be decoded using inter prediction, for example. Decoding by inter-frame prediction may be decoding using a previous frame, a future frame, or a UR frame as a reference to calculate a prediction result, which may be combined with a residual included in the data bit stream.

На этапе 115, продолжая обращаться к Фиг. 1, может быть определено, активизирован ли режим обновления недоступного опорного блока в потоке битов данных для текущего кодированного блока. Указание режима обновления UR-блока может быть включено в заголовок потока битов данных и/или в какое-либо поле в этом заголовке. Например, может быть определено, что активизировано поле режима обновления UR-блока в заголовке потока битов данных. Сигнализация об обновленном блоке UR-кадра может быть избирательно активизирована с использованием заголовка, такого как набор параметров изображения (picture parameter set (PPS)) и/или набора параметров последовательности (sequence parameter set (SPS)). Одно из полей, такое как поле UR_BLOCK_UPDATE, может принимать, без ограничений, значения «истинно» или «ложно» (например, 0 или 1).At step 115, continuing with reference to FIG. 1, it can be determined whether the unavailable reference block update mode in the data bit stream is activated for the current encoded block. An indication of the update mode of the UR-block may be included in the header of the data bit stream and/or in any field in this header. For example, it may be determined that the UR-block update mode field in the header of the data bitstream is enabled. Updated UR frame block signaling may be selectively activated using a header such as a picture parameter set (PPS) and/or a sequence parameter set (SPS). One of the fields, such as the UR_BLOCK_UPDATE field, may be true or false (eg, 0 or 1) without limitation.

По-прежнему обращаясь к Фиг. 1, если режим обновления UR-блока активизирован (например, если установлено поле UR_BLOCK_UPDATE в заголовке), на этапе 120, устройство декодирования может обновить недоступный опорный кадр с использованием декодированного текущего блока. Такое обновление может представлять собой осуществление обновлений UR-блоков, в каких находятся пиксели UR-кадра, расположенные в пространстве в одном месте с текущим блоком, для которого активизирован режим обновления блока UR-кадра, так что эти UR-блоки обновляют (например, модифицируют) с использованием декодированного текущего блока. В некоторых вариантах реализации механизмы обновления блоков могут быть явными или неявными. Например, часть (например, блок) UR-кадра может быть обновлена путем обновления пикселей (например, яркостных величин) в UR-кадре с использованием величин пикселей декодированного текущего блока, расположенных в одном месте с обновляемыми пикселями UR-кадра; другими словами, процедура обновления UR-кадра может содержать замены яркостных величин в UR-кадре расположенными в пространстве в одном и том же месте с ними яркостными величинами из декодированного текущего блока. В некоторых вариантах реализации, UR-кадр может быть обновлен в соответствии с другим механизмом, таким как обновление части UR-кадра с использованием средних величин расположенных в одном и том же месте величин пикселей UR-кадра и величин пикселей текущего декодированного блока. Специалисты в рассматриваемой области, после изучения настоящего изобретения в полном объеме будут осведомлены о разнообразных других механизмах, которые могут быть использованы. В некоторых вариантах реализации обновление может содержать обновление нескольких блоков в UR-кадре с использованием нескольких декодированных блоков, так что это обновление может осуществляться с применением каких-либо способов, описываемых выше для обновления UR-кадра с использованием декодированного текущего блока. Процедура обновления может содержать, без ограничений, генерацию блока и/или кадра цветных и/или яркостных величин по умолчанию и замену и/или обновление их от одного или более декодированных блоков с использованием какой-либо процедуры и/или этапов процедуры, описываемых выше; процедура обновления может содержать генерацию UR-кадра, что может осуществляться путем создания UR-кадра из величин по умолчанию и обновления этих величин по умолчанию, как описано выше.Still referring to FIG. 1, if the UR block update mode is enabled (eg, if the UR_BLOCK_UPDATE field in the header is set), at step 120, the decoder may update the unavailable reference frame using the decoded current block. Such an update may be the implementation of updates to UR blocks that contain pixels of the UR frame located in space at the same place as the current block for which the update mode of the UR frame block is activated, so that these UR blocks are updated (for example, modified ) using the decoded current block. In some implementations, block update mechanisms may be explicit or implicit. For example, a portion (eg, block) of a UR frame may be updated by updating pixels (eg, luminance values) in the UR frame using pixel values of the decoded current block co-located with the UR frame pixels being updated; in other words, the procedure for updating the UR frame may comprise replacing the luminance values in the UR frame with luminance values located in the same place in space with them from the decoded current block. In some implementations, the UR frame may be updated according to another mechanism, such as updating a portion of the UR frame using the average of the co-located pixel values of the UR frame and the pixel values of the current decoded block. Those skilled in the art, after studying the present invention in its entirety, will be aware of a variety of other mechanisms that may be used. In some implementations, the update may comprise updating multiple blocks in a UR frame using multiple decoded blocks, such that the update may be performed using any of the methods described above for updating a UR frame using the decoded current block. The update procedure may comprise, without limitation, generating a block and/or frame of default chroma and/or luminance values and replacing and/or updating them from one or more decoded blocks using any of the procedure and/or procedure steps described above; the update procedure may comprise generating a UR frame, which may be done by creating a UR frame from default values and updating those default values as described above.

Продолжая обращаться к Фиг. 1, для последующих текущих блоков, обновленный UR-кадр может быть использован в качестве опорного кадра для межкадрового прогнозирования. Например, может быть принят второй кодированный блок. Может быть определено, активизирован ли режим межкадрового прогнозирования для второго кодированного блока. Второй декодированный блок может быть определен с использованием обновленного UR-кадра в качестве опорного кадра и в соответствии с режимом межкадрового прогнозирования. Например, процедура декодирования посредством межкадрового прогнозирования может содержать использование обновленного UR-кадра в качестве опоры для вычисления результата прогнозирования, который может быть скомбинирован с остатком, входящим в поток битов данных.Continuing with reference to FIG. 1, for subsequent current blocks, the updated UR frame may be used as a reference frame for inter-frame prediction. For example, a second coded block may be received. It may be determined whether the inter-prediction mode is enabled for the second coded block. The second decoded block may be determined using the updated UR frame as the reference frame and in accordance with the inter prediction mode. For example, the procedure for decoding by inter-frame prediction may comprise using the updated UR frame as a reference to calculate a prediction result that may be combined with a residual included in the data bitstream.

Продолжая обращаться к Фиг. 1, обновления UR-блоков могут быть доступны для каждого текущего блока в процессе декодирования. В некоторых вариантах обновления блоков могут быть доступны для каждого текущего блока в ходе процедуры декодирования. В некоторых вариантах реализации обновления UR-блоков могут быть пропущены в неявном виде для кадров, кодированных с внутрикадровым прогнозированием. Например, поток битов данных может содержать второй кодированный блок в кадре, отличном от кадра, в котором находится первый кодированный блок; режим кодирования для второго кодированного блока может содержать внутрикадровое прогнозирование. Обновление UR-блока может быть пропущено в ответ на определение, что второй текущий кодированный блок является блоком, кодированным с применением внутрикадрового прогнозирования. Такой пропуск может содержать, например, неосуществление обновления UR-кадра или определение, установлено ли в заголовке какое-либо поле, такое как поле UR_BLOCK_UPDATE.Continuing with reference to FIG. 1, UR block updates may be available for each current block during the decoding process. In some embodiments, block updates may be available for each current block during the decoding procedure. In some implementations, UR block updates may be implicitly omitted for frames encoded with intra-prediction. For example, the data bitstream may contain a second coded block in a frame different from the frame in which the first coded block resides; the coding mode for the second coded block may comprise intra prediction. The update of the UR block may be skipped in response to determining that the second current coded block is an intra prediction coded block. Such an omission may include, for example, not updating the UR frame or determining if a header field, such as the UR_BLOCK_UPDATE field, is set.

В некоторых вариантах реализации и снова обращаясь к Фиг. 1, если в заголовке установлено поле UR_BLOCK_UPDATE, устройство декодирования может ожидать появления битов сигнализации в явном виде об обновлении блоков. При таком подходе кодированный блок видео может быть обозначен посредством сигнализации в заголовке блока в потоке битов данных видео в качестве блока, который нужно обновить, в UR-кадре. В этом случае расположенный в том же месте блок в UR-кадре может быть заменен блоком, о котором сообщила сигнализация; этот обновленный UR-кадр может быть использован для целей оценки движения в будущем, пока этот UR-кадр не будет в последующем обновлен, например.In some embodiments, and referring again to FIG. 1, if the UR_BLOCK_UPDATE field is set in the header, the decoder can wait for explicit block update signaling bits. With this approach, a coded video block can be designated by signaling in a block header in the video data bitstream as the block to be updated in the UR frame. In this case, the block located in the same place in the UR frame may be replaced by the block reported by the signaling; this updated UR frame may be used for future motion estimation purposes until this UR frame is subsequently updated, eg.

На Фиг. 2 представлена логическая схема процедуры, иллюстрирующая пример варианта процедуры 200 с использованием сигнализации в неявной форме об обновлениях блоков UR-кадра, так что в ходе этой процедуры UR-кадр частично обновляется декодирующим устройством и на основе декодированного текущего блока. Сигнализация в неявной форме может охватывать случаи, в которых контекст текущего и соседних блоков используется для неявного определения, какие именно блоки следует обновить в UR-кадре, по сравнению с применением сигнализации в явной форме относительно режима обновления UR-блока в потоке битов данных, такой как в заголовке потока битов данных. Такие обновления UR-блоков с применением сигнализации в неявной форме могут усовершенствовать прогнозирование и уменьшить сигнализационные издержки, что ведет к совершенствованию частоты передачи битов данных и улучшению сжатия. Аналогично, в результате осуществления обновления UR-блоков без требования обновления всего UR-кадра целиком, можно уменьшить остаточную погрешность и тем самым улучшить характеристики сжатия.On FIG. 2 is a flow diagram illustrating an example variant of procedure 200 using implicit signaling of UR frame block updates such that during this procedure the UR frame is partially updated by the decoder and based on the decoded current block. Implicit signaling may cover cases where the context of the current and adjacent blocks is used to implicitly determine which blocks to update in a UR frame, as opposed to explicit signaling regarding the update mode of a UR block in a data bitstream, such as as in the data bit stream header. Such updates to UR blocks using implicit signaling can improve prediction and reduce signaling overhead, leading to improved data bit rates and improved compression. Similarly, by performing the update of the UR blocks without requiring the entire UR frame to be updated, the residual error can be reduced, and thus the compression performance can be improved.

На этапе 205, и по-прежнему обращаясь к Фиг. 2, устройство декодирования принимает текущий блок. Этот текущий блок может входить в поток битов данных, принимаемый декодирующим устройством. Поток битов данных может содержать, например, данные, находимые в потоке битов, поступающем на вход декодирующего устройства при использовании сжатия данных. Поток битов данных может содержать информацию, необходимую для декодирования видео. Процедура приема потока может содержать выделение и/или синтаксический анализ рассматриваемого блока и ассоциированной сигнализационной информации из потока битов данных. В некоторых вариантах реализации текущий кодированный блок может содержать единицу дерева кодирования (CTU), единицу кодирования (CU) и/или единицу прогнозирования (PU).At step 205, and still referring to FIG. 2, the decoder receives the current block. This current block may be included in the data bitstream received by the decoder. The data bitstream may comprise, for example, data found in a bitstream input to a decoder when data compression is used. The data bitstream may contain information necessary to decode the video. The procedure for receiving the stream may comprise extracting and/or parsing the block in question and the associated signaling information from the data bit stream. In some implementations, the current encoded block may comprise a coding tree unit (CTU), a coding unit (CU), and/or a prediction unit (PU).

Продолжая обращаться к Фиг. 2, в некоторых вариантах реализации в потоке битов данных для текущего блока может не быть сигнализации в явной форме о режиме обновления недоступного опорного блока. Аналогично, в некоторых вариантах реализации, устройство декодирования может определить, используя поток битов данных, имеется ли сигнализация в явной форме о режиме обновления недоступного опорного блока или нет в потоке битов данных для текущего блока. В некоторых вариантах реализации устройство декодирования может определить, указывает ли поле в заголовке потока битов данных, что режим обновления недоступного опорного блока отключен или отсутствует.Continuing with reference to FIG. 2, in some implementations, the data bit stream for the current block may not explicitly signal the update mode of the unavailable reference block. Likewise, in some implementations, the decoder may determine, using the data bitstream, whether there is explicit signaling of an unavailable reference block update mode or not in the data bitstream for the current block. In some implementations, the decoder may determine if a field in the data bitstream header indicates that the unavailable reference block update mode is disabled or not present.

На этапе 210, и продолжая обращаться к Фиг. 2, текущий блок может быть маркирован для обновления UR-кадра на основе этого текущего блока; этот текущий блок может быть маркирован на основе или в ответ на определение, что сигнализация о текущем блоке осуществлена в неявном виде для использования при обновлении блоков UR-кадра. Процедура маркировки может содержать, без ограничений, присвоение некоторой переменной величине значения, указывающего, что текущий блок должен быть использован для обновления UR-кадра; например, логической переменной, ассоциированной с текущим блоком и конфигурированной для индикации, следует ли использовать текущий блок для обновления UR-кадра, может быть присвоено значение «истинно» или «1» для индикации маркировки.At 210, and continuing with FIG. 2, the current block may be marked to update the UR frame based on this current block; this current block may be marked based on or in response to determining that the current block is implicitly signaled for use in updating blocks of the UR frame. The marking procedure may include, without limitation, assigning a value to some variable indicating that the current block is to be used to update the UR frame; for example, a Boolean variable associated with the current block and configured to indicate whether the current block should be used to update the UR frame may be set to "true" or "1" to indicate a mark.

Например, по-прежнему обращаясь к Фиг. 2, текущий блок может быть маркирован для обновления, когда текущий блок использует UR-кадр в качестве опорного кадра для межкадрового прогнозирования и содержит применение компенсации освещенности; маркировка может быть осуществлена в ответ и/или на основе этого определения. Компенсация освещенности может быть использована для усовершенствования прогнозирования в ходе кодирования видео. Компенсация освещенности может улучшить прогнозирование в случае, когда пиксели блока изменяются вследствие изменений освещенности (например, проходящее облако уменьшает освещенность). Блок, который использует UR-кадр в качестве опорного кадра и применяет компенсацию освещенности, может быть определен в качестве блока обновления и маркирован соответственно для обновления UR-кадра.For example, still referring to FIG. 2, the current block may be marked for updating when the current block uses the UR frame as a reference frame for inter-prediction and contains the application of light compensation; marking may be done in response to and/or based on this determination. Light compensation can be used to improve prediction during video encoding. Light compensation can improve prediction when the block pixels change due to light changes (eg, a passing cloud reduces the light). A block that uses a UR frame as a reference frame and applies light compensation may be defined as an update block and marked accordingly to update the UR frame.

В качестве другого примера и продолжая обращаться к Фиг. 2, текущий блок может быть маркирован для обновления UR-кадра, если и на основе того, какой из соседей этого блока использует в качестве опоры вектор движения UR-кадра. В репрезентативном (например, типичном) видео часть фона сцены обновляется с течением времени. Когда такое изменение происходит, измененная область может быть кодирована в качестве блока внутрикадрового прогнозирования, если не обнаружен ни один аналогичный блок. В таких случаях все блоки за исключением вновь измененной области, вероятно, используют UR-кадр в качестве опорного кадра. Блок, имеющий несколько опорных блоков с опорными векторами движения UR-кадра, может быть маркирован для неявного обновления UR-кадра. Соответственно, вероятность того, что текущий блок является UR-блоком обновления, повышается, когда увеличивается число соседних с текущим блоком блоков, использующих UR-кадр; эту вероятность можно вычислить и сравнить с пороговым уровнем, тот факт, что эта вероятность превышает пороговый уровень, может указывать, что текущий блок является обновлением для UR-блока. Если текущий блок кодирован с применением внутрикадрового прогнозирования, меньшее число соседних блоков с UR-опорой может сигнализировать об обновлении для UR-блока; например, при сравнении с порогом, как указано выше, может быть использован меньший пороговый уровень. Если текущий блок кодирован с применением межкадрового прогнозирования, большее число соседних блоков с UR-опорой может сигнализировать в неявной форме об обновлении для UR-блока, например, при использовании большего порогового уровня. Соответственно, в качестве другого неисчерпывающего примера, текущий блок может быть маркирован для обновления UR-кадра в ответ и/или на основе определения, что два или более соседних блоков используют вектор движения UR-кадра для межкадрового прогнозирования.As another example, and continuing with reference to FIG. 2, the current block may be marked to update the UR frame if and based on which of the neighbors of that block is using the motion vector of the UR frame as a reference. In a representative (eg typical) video, a portion of the scene's background is updated over time. When such a change occurs, the changed area may be encoded as an intra prediction block if no similar block is detected. In such cases, all blocks except for the newly modified area are likely to use the UR frame as the reference frame. A block having multiple reference blocks with reference motion vectors of the UR frame may be marked for implicit update of the UR frame. Accordingly, the probability that the current block is an update UR block increases as the number of blocks adjacent to the current block using the UR frame increases; this probability can be calculated and compared with the threshold level, the fact that this probability exceeds the threshold level may indicate that the current block is an update for the UR block. If the current block is encoded using intra-frame prediction, a smaller number of neighboring blocks with a UR reference may signal an update for the UR block; for example, when compared with a threshold as above, a lower threshold level may be used. If the current block is encoded using inter-picture prediction, more neighboring blocks with a UR reference may implicitly signal an update for the UR block, for example, by using a larger threshold level. Accordingly, as another non-exhaustive example, the current block may be marked to update the UR frame in response to and/or based on a determination that two or more neighboring blocks use the motion vector of the UR frame for inter-frame prediction.

По-прежнему обращаясь к Фиг. 2, в некоторых вариантах реализации блоки-кандидаты обновления могут быть определены после того, как был декодирован весь кадр, так что могут быть учтены все соседи блока. Например, блок с не-UR-опорой, окруженный блоками с UR-опорами с двух или более сторон, может быть кандидатом для обновлений UR-кадра. В качестве другого примера, если текущий блок кодирования с применением внутрикадрового прогнозирования, а несколько соседних с ним блоков используют UR-кадр в качестве опоры и имеют вектор движения (0,0) (например, нулевой вектор движения), тогда текущий блок может быть маркирован для обновления UR-кадра. В качестве еще одного другого примера, если текущий блок кодирован с применением внутрикадрового прогнозирования, и несколько соседних блоков используют UR-кадр в качестве опоры и имеют один и тот же или аналогичные векторы движения (например, разница между этими векторами движения может быть меньше предварительно заданной величины), тогда текущий блок может быть маркирован для обновления UR-кадра. В качестве дальнейшего примера, если текущий блок имеет по меньшей мере с трех сторон от него соседние блоки, использующие UR-кадр в качестве опорного кадра для межкадрового прогнозирования, этот текущий блок может быть маркирован для обновления UR-кадра.Still referring to FIG. 2, in some implementations, update candidate blocks may be determined after the entire frame has been decoded, so that all of the block's neighbors may be considered. For example, a non-UR-supported block surrounded by UR-supported blocks on two or more sides may be a candidate for UR frame updates. As another example, if the current intra-prediction coding block and several blocks adjacent to it use the UR frame as a reference and have a motion vector of (0,0) (e.g., zero motion vector), then the current block may be marked to update the UR frame. As yet another example, if the current block is encoded using intra-prediction and several neighboring blocks use the UR frame as a reference and have the same or similar motion vectors (for example, the difference between these motion vectors may be less than a predetermined value), then the current block can be marked to update the UR frame. As a further example, if the current block has at least three adjacent blocks using the UR frame as a reference frame for inter-prediction, the current block may be marked to update the UR frame.

В некоторых вариантах реализации и продолжая обращаться к Фиг. 2, обновление для UR-кадра может быть определено на уровне единиц кодирования (CU). Если все соседние единицы CU по меньшей мере с трех сторон используют UR-опору, все блоки текущей единицы CU могут быть маркированы для обновления UR-кадра. В некоторых вариантах реализации обновление для UR-кадра может быть определено на уровне единиц дерева кодирования (CTU). Если все соседние единицы CTU по меньшей мере с трех сторон используют UR-опору, все блоки текущей единицы CTU, которые не используют UR-опору, могут быть маркированы для обновления. На Фиг. 3 представлена блок-схема, иллюстрирующая пример варианта кадра 300, содержащего текущий блок X и три соседних блока, имеющие ассоциированные векторы MV1, MV2, MV3 движения, использующие UR-кадр для оценки движения. В иллюстрируемом примере текущий блок X может быть маркирован для обновления UR-кадра.In some embodiments, and continuing with reference to FIG. 2, an update for a UR frame may be defined at a coding unit (CU) level. If all neighboring CUs on at least three sides use the UR foot, all blocks of the current CU may be marked to update the UR frame. In some implementations, an update for a UR frame may be defined at the coding tree unit (CTU) level. If all adjacent CTUs on at least three sides use the UR foot, all units of the current CTU that do not use the UR foot can be marked for updating. On FIG. 3 is a block diagram illustrating an exemplary version of a frame 300 comprising a current block X and three neighboring blocks having associated motion vectors MV1, MV2, MV3 using a UR frame for motion estimation. In the illustrated example, the current block X may be marked to update the UR frame.

На Фиг. 4 представлена блок-схема, иллюстрирующая другой пример варианта кадра 400, содержащего блоки, маркированные X и не использующие UR-кадр в качестве опоры, и блоки L, использующие UR-кадр в качестве опоры; блоки, маркированные как X, могут быть маркированы для обновления UR-кадра.On FIG. 4 is a block diagram illustrating another example of a frame 400 variant comprising blocks labeled X and not using a UR frame as a reference, and L blocks using a UR frame as a reference; blocks marked as X may be marked to update the UR frame.

Обратившись вновь к Фиг. 2, на этапе 215, UR-кадр может быть обновлен с использованием текущего блока. Процедура обновления может содержать осуществление обновлений UR-блоков, где пиксели UR-кадра, расположенные в пространстве в одном месте с текущим блоком, обновляются (например, модифицируются) с использованием текущего блока. В некоторых вариантах реализации, механизмы обновления блока могут быть явными или неявными. Например, часть (например, блок) UR-кадра может быть обновлена путем обновления (например, замены) пикселей (например, яркостных величин) в UR-кадре величинами пикселей текущего блока, расположенными в одном месте с обновляемыми пикселями UR-кадра. В некоторых вариантах реализации UR-кадр может быть обновлен в соответствии с другим механизмом, таким как обновление части UR-кадра с использованием средней величины расположенных в одном месте первоначальных величин пикселей UR-кадра и величин пикселей текущего блока. Специалисты в рассматриваемой области после изучения настоящего изобретения в полном объеме будут осведомлены о различных других механизмах, которые могут быть использованы. В некоторых вариантах реализации обновление может представлять собой обновление нескольких блоков UR-кадра с использованием нескольких декодированных блоков, что может быть осуществлено с использованием каких-либо способов, описанных выше применительно к обновлению UR-кадра с использованием одного декодированного текущего блока. Процедура обновления может содержать, без ограничений, генерацию блока и/или кадра величин по умолчанию для цветностной и/или яркостной составляющей и замену и/или обновление их на основе одного или более декодированных блоков с использованием какой-либо процедуры и/или этапов процедуры, описанных выше; процедура обновления может содержать генерацию UR-кадра, что может быть осуществлено путем создания UR-кадра из величин по умолчанию и обновление этих величин по умолчанию, как описано выше.Referring again to Fig. 2, at step 215, the UR frame may be updated using the current block. The update procedure may comprise performing UR block updates where pixels of the UR frame co-located in space with the current block are updated (eg, modified) using the current block. In some implementations, block update mechanisms may be explicit or implicit. For example, a portion (eg, block) of a UR frame may be updated by updating (eg, replacing) pixels (eg, brightness values) in the UR frame with pixel values of the current block co-located with the updated UR frame pixels. In some embodiments, the UR frame may be updated according to another mechanism, such as updating a portion of the UR frame using an average of the co-located original UR frame pixel values and the current block pixel values. Those skilled in the art, after studying the present invention in its entirety, will be aware of various other mechanisms that may be used. In some implementations, the update may be an update of multiple blocks of a UR frame using multiple decoded blocks, which may be done using any of the methods described above for updating a UR frame using a single decoded current block. The update procedure may include, without limitation, generating a block and/or frame of default values for the chrominance and/or luminance component and replacing and/or updating them based on one or more decoded blocks using any procedure and/or steps of the procedure, described above; the update procedure may comprise generating a UR frame, which may be done by creating a UR frame from default values and updating those default values as described above.

Для последующих текущих блоков обновленный UR-кадр может быть использован в качестве опорного кадра для межкадрового прогнозирования. Например, может быть принят второй кодированный блок. Может быть определено, активизирован ли режим межкадрового прогнозирования для этого второго кодированного блока. Затем второй декодированный блок может быть определен с использованием обновленного UR-кадра в качестве опорного кадра и в соответствии с режимом межкадрового прогнозирования. Например, процедура декодирования посредством межкадрового прогнозирования может содержать использование обновленного UR-кадра в качестве опоры для вычисления результата прогнозирования, что может быть скомбинировано с остатком, заключенным в потоке битов данных.For subsequent current blocks, the updated UR frame may be used as a reference frame for inter-frame prediction. For example, a second coded block may be received. It may be determined whether the inter-frame prediction mode is activated for this second coded block. Then, the second decoded block may be determined using the updated UR frame as the reference frame and in accordance with the inter prediction mode. For example, the procedure for decoding by inter-frame prediction may comprise using the updated UR frame as a reference for computing a prediction result, which may be combined with a residual contained in the data bitstream.

На Фиг. 5 представлена блок-схема примера системы, иллюстрирующая пример декодирующего устройства 500, способного декодировать поток 504 битов данных с обновлениями блоков UR-кадра. Обновления блоков UR-кадра могут содержать, без ограничений, сообщаемые посредством сигнализации в явной форме обновления блоков UR-кадра, например и без ограничений так, как это описано выше со ссылками на Фиг. 1. Обновления блоков UR-кадра могут содержать, без ограничений, сообщаемые посредством сигнализации в неявной форме обновления блоков UR-кадра (например, обновления блоков UR-кадра, определяемые из контекста текущего и/или соседних с ним блоков), например, как описано выше со ссылками на Фиг. 2 – 4. Устройство декодирования 500 содержит процессор 508 для энтропийного декодирования, процессор 512 для обратного квантования и обратного преобразования, фильтр удаления блочности 516, буфер 520 кадров, процессор 524 для компенсации движения и процессор 528 для внутрикадрового прогнозирования. В некоторых вариантах реализации, поток 504 битов данных может содержать параметры, (например, поле в заголовке потока битов данных) сигнализирующие о режиме обновления блока UR-кадра. В качестве альтернативы или в дополнение к этому, поток 504 битов данных может не передавать в явной форме сигнализацию о режиме обновления блока UR-кадра для текущего блока; поток битов данных может содержать другие параметры. Процессор 524 для компенсации движения может реконструировать информацию пикселей с использованием UR-кадра и обновлять этот UR-кадр в соответствии с режимом обновления блока UR-кадра. Например, когда сигнализируют в явной форме о режиме обновления блока UR-кадра для текущего блока, величины (например, яркостные величины) в UR-кадре могут быть заменены величинами пикселей текущего блока, расположенными в одном месте с величинами обновляемого блока. Когда об обновлении блоков сигнализируют в неявной форме, процессор 524 для компенсации движения может маркировать текущий блок для обновления UR-кадра (например, на основе того, сигнализировано ли обновление UR-кадра в явной форме) и обновлять этот UR-кадр соответственно. Например, когда об обновлении блоков UR-кадра для текущего блока сигнализировано в неявной форме, пиксели (например, яркостные величины) в UR-кадре могут быть заменены расположенными в одном и том же месте величинами пикселей из текущего блока.On FIG. 5 is a block diagram of an example system illustrating an example decoder 500 capable of decoding a data bit stream 504 with UR frame block updates. UR frame block updates may include, without limitation, explicitly signaled UR frame block updates, for example and without limitation as described above with reference to FIG. 1. UR frame block updates may include, without limitation, signaling implicitly signaled UR frame block updates (e.g., UR frame block updates determined from the context of the current and/or neighboring blocks), for example, as described. above with reference to Fig. 2-4. The decoder 500 includes an entropy decoding processor 508, an inverse quantization and inverse transform processor 512, a deblocking filter 516, a frame buffer 520, a motion compensation processor 524, and an intra prediction processor 528. In some implementations, data bit stream 504 may contain parameters (eg, a field in the data bit stream header) signaling the update mode of the UR frame block. Alternatively, or in addition, data bit stream 504 may not explicitly signal the block update mode of the UR frame for the current block; the data bitstream may contain other parameters. The motion compensation processor 524 may reconstruct the pixel information using the UR frame and update the UR frame according to the update mode of the UR frame block. For example, when explicitly signaling the block update mode of the UR frame for the current block, values (eg, luminance values) in the UR frame may be replaced by pixel values of the current block co-located with the values of the block being updated. When block updates are implicitly signaled, motion compensation processor 524 may mark the current block for UR frame update (eg, based on whether UR frame update is explicitly signaled) and update the UR frame accordingly. For example, when updating blocks of a UR frame for the current block is implicitly signaled, pixels (eg, luminance values) in the UR frame may be replaced with co-located pixel values from the current block.

Во время работы, поток 504 битов данных может быть принят декодирующим устройством 500 и направлен на вход процессора 508 для энтропийного декодирования, который может осуществлять энтропийное декодирование потока битов данных и преобразовывать его в квантованные коэффициенты. Квантованные коэффициенты могут быть переданы процессору 512 обратного квантования и обратного преобразования, который может осуществлять обратное квантование и обратное преобразование для создания сигнала остатка, который может быть добавлен к выходному сигналу процессора 524 для компенсации движения или процессора 528 для внутрикадрового прогнозирования в соответствии с режимом обработки данных. Выходной сигнал процессора 524 для компенсации движения и процессора 528 для внутрикадрового прогнозирования может содержать прогнозируемые блоки на основе предварительно декодированного блока или UR-кадра. Сумма прогнозируемого блока и соответствующего остатка может быть обработана фильтром 516 удаления блочности и сохранена в буфере 520 кадров. Для рассматриваемого конкретного блока (например, единицы CU или единицы PU), когда поток 504 битов данных в явной и/или в неявной форме сигнализирует, что активизирован режим обновления блока UR-кадра, процессор 524 для компенсации движения может обновить UR-кадр, который может находиться в буфере 520 кадров, для обновления пикселей (например, яркостных величин) в UR-кадре расположенными в том же месте величинами пикселей текущего блока.During operation, the data bitstream 504 may be received by the decoder 500 and fed to an entropy decoding processor 508, which may entropy decode the data bitstream and convert it to quantized coefficients. The quantized coefficients may be provided to an inverse quantization and inverse transform processor 512, which may perform inverse quantization and inverse transformation to produce a residual signal, which may be added to the output of motion compensation processor 524 or intra prediction processor 528 in accordance with the processing mode. . The output of motion compensation processor 524 and intra prediction processor 528 may comprise predictive blocks based on a pre-decoded block or UR frame. The sum of the predicted block and the corresponding residual may be processed by a deblocking filter 516 and stored in a frame buffer 520 . For the particular block in question (eg, a CU or a PU), when the data bit stream 504 explicitly and/or implicitly signals that the UR frame block update mode is activated, the motion compensation processor 524 may update the UR frame, which may reside in the frame buffer 520 to update the pixels (eg, luminance values) in the UR frame with the same location pixel values of the current block.

В некоторых вариантах реализации, устройство декодирования 500 может содержать процессор 532 для обновления блоков UR-кадра, который может генерировать обновление UR-кадра на основе текущего блока и формировать величины пикселей UR-кадра для процедур межкадрового прогнозирования; это может быть реализовано в соответствии с какими-либо этапами процедур, описываемых в настоящем изобретении. Процессор 532 для обновления блоков UR-кадра может непосредственно влиять на компенсацию движения. Далее, процессор 532 для обновления блоков UR-кадра может принимать информацию от процессора 528 для внутрикадрового прогнозирования, как, например, в случае, когда текущий блок является блоком внутрикадрового прогнозирования.In some implementations, decoder 500 may include a UR frame block update processor 532 that can generate a UR frame update based on the current block and generate UR frame pixel values for inter-frame prediction procedures; this can be implemented in accordance with any steps of the procedures described in the present invention. The processor 532 for updating the blocks of the UR frame can directly affect the motion compensation. Further, processor 532 for updating blocks of the UR frame may receive information from processor 528 for intra prediction, such as when the current block is an intra prediction block.

На Фиг. 6 представлена логическая схема процедуры, иллюстрирующая пример варианта процедуры 600 кодирования видео с обновлениями блоков UR-кадра с применением сигнализации в явном виде согласно некоторым аспектам предмета настоящего изобретения, что может уменьшить сложность кодирования, увеличивая при этом эффективность сжатия. На этапе 605, кадр видео может быть подвергнут первоначальной сегментации блоков, например, с использованием имеющей структуру дерева схемы разбиения макроблоков, что может содержать разбиение кадра изображения на единицы CTU и CU. На этапе 610, может быть выбран блок для обновления части UR-кадра. Этот блок может быть выбран, например, на основе частотного содержания и/или меры движения в рассматриваемом блоке по сравнению с одним или несколькими расположенными в том же месте блоками, близкими во времени (например, соседними во времени кадрами, например, в заданном числе кадров относительно текущего кадра). Определение меры частотного содержания может содержать определение с использованием матрицы преобразования, такой как, без ограничений, матрица дискретного косинусного преобразования. Процедура определения меры частотного содержания для блока может содержать определение с использованием матрицы обобщенного дискретного косинусного преобразования. Например, когда блоки, как описано выше, представляют собой блоки пикселей размером 4 x 4, матрица обобщенного дискретного косинусного преобразования может представлять собой матрицу дискретного косинусного преобразования II, принимающую форму:On FIG. 6 is a flow diagram illustrating an example variant of a procedure 600 for encoding video with block updates of a UR frame using explicit signaling in accordance with some aspects of the subject matter of the present invention, which can reduce coding complexity while increasing compression efficiency. At 605, the video frame may be subjected to an initial block segmentation, eg, using a tree structured macroblock partitioning scheme, which may include splitting the image frame into CTUs and CUs. At 610, a block may be selected to update a portion of the UR frame. This block may be selected, for example, based on the frequency content and/or measure of motion in the block in question compared to one or more blocks located at the same location that are close in time (for example, adjacent frames in time, for example, in a given number of frames relative to the current frame). The definition of a measure of frequency content may comprise a definition using a transformation matrix, such as, without limitation, a discrete cosine transformation matrix. The procedure for determining a measure of frequency content for a block may comprise determining using a generalized discrete cosine transform matrix. For example, when the blocks as described above are 4 x 4 pixel blocks, the generalized discrete cosine transform matrix may be a discrete cosine transform II matrix taking the form:

T =

Figure 00000001
T=
Figure 00000001

где a равно ½, b равно

Figure 00000002
, и c равно
Figure 00000003
.where a is ½, b is
Figure 00000002
, and c is equal to
Figure 00000003
.

В некоторых вариантах реализации, может быть использована целочисленная аппроксимация матрицы преобразования, которая может быть применена для эффективной реализации аппаратуры и программного обеспечения. Например, когда блоки, как описано выше, представляют собой блоки пикселей размером 4x4, матрица обобщенного дискретного косинусного преобразования может представлять собой матрицу дискретного косинусного преобразования II, принимающую форму:In some implementations, an integer approximation of the transformation matrix can be used, which can be used to efficiently implement hardware and software. For example, when the blocks as described above are 4x4 pixel blocks, the generalized discrete cosine transform matrix may be a discrete cosine transform II matrix taking the form:

TINT =

Figure 00000004
. TINT =
Figure 00000004
.

Для блока Bi, частотное содержание этого блока может быть вычислено с использованием:For a block B i , the frequency content of this block can be calculated using:

FBi=TxBixT’,F Bi =TxB i xT',

где T’ представляет собой транспонированную матрицу T косинусного преобразования, Bi представляет собой блок, представленный в виде матрицы численных величин, соответствующих пикселям в блоке, такой как матрица 4x4, представляющая блок 4 x 4, как описано выше, и оператор x обозначает умножение матриц. Процедура указанного выбора может содержать идентификацию в соответствии с метрическим правилом, что блок должен быть использован для обновления части UR-кадра в декодирующем устройстве. Это метрическое правило может содержать сравнение меры текстуры и/или движения, включая, без ограничений, какую-либо меру частотного содержания или другую подобную меру, описываемую выше, с заданным и/или с сохраненным пороговым уровнем. В качестве неограничивающего примера, когда параметр FBi, как определено выше, превосходит некоторую величину, может быть запущена процедура обновления, например, потому, что очень высокие частоты могут быть невоспринимаемыми. Выбор может быть в качестве альтернативы или в дополнение к этому осуществлен с использованием какой-либо процедуры и/или этапов процедуры, описываемой ниже со ссылками на Фиг. 7. На этапе 615 блок может быть закодирован и вставлен в поток битов данных.where T' is the transposed cosine transform matrix T, B i is a block represented as a matrix of numerical values corresponding to pixels in the block, such as a 4x4 matrix representing a 4 x 4 block as described above, and the operator x denotes matrix multiplication . The procedure for said selection may comprise identifying, according to the metric rule, that the block is to be used to update a portion of the UR frame at the decoder. This metric rule may comprise comparing a measure of texture and/or motion, including, without limitation, any measure of frequency content or the like described above, to a given and/or stored threshold level. As a non-limiting example, when the parameter FBi, as defined above, exceeds a certain value, an update procedure may be triggered, for example because very high frequencies may not be perceived. The selection may alternatively or in addition be made using any of the procedure and/or steps of the procedure described below with reference to FIG. 7. At 615, a block may be encoded and inserted into the data bit stream.

На этапе 620, параметры обновления блоков UR-кадра в явной форме могут быть определены и включены в поток битов данных для сигнализации, что режим обновления блока UR-кадра активизирован для текущего блока. Например, может быть установлено поле в наборе PPS или в наборе SPS (например, активизировано). Например, может быть установлено такое поле, как поле UR_BLOCK_UPDATE, указывающее, что для текущего блока активизирован режим обновления блока UR-кадра.At 620, UR frame block update parameters may be explicitly determined and included in the data bitstream to signal that the UR frame block update mode is enabled for the current block. For example, a field in the PPS set or in the SPS set may be set (eg, enabled). For example, a field such as the UR_BLOCK_UPDATE field may be set to indicate that the block update mode of the UR frame is enabled for the current block.

На Фиг. 7 представлена логическая схема, иллюстрирующая пример варианта процедуры 700 кодирования видео с использованием обновления блоков UR-кадра с применением сигнализации в неявной форме согласно некоторым аспектам предмета настоящего изобретения, что может уменьшить сложность кодирования и в то же время увеличить эффективность сжатия. На этапе 705, кадр видео может быть подвергнут первоначальной сегментации блоков, например, с использованием имеющей структуру дерева схемы разбиения, которая может содержать разбиение кадра изображения на единицы CTU и единицы CU.On FIG. 7 is a flow diagram illustrating an exemplary embodiment of a video encoding procedure 700 using implicit signaling UR frame block update according to some aspects of the subject matter of the present invention, which can reduce encoding complexity while increasing compression efficiency. At 705, the video frame may be subjected to an initial block segmentation, eg, using a tree-structured partitioning scheme, which may comprise splitting the image frame into CTUs and CUs.

На этапе 710, и по-прежнему обращаясь к Фиг. 7, может быть выбран блок для обновления части UR-кадра; этот блок может быть выбран, например, на основе условия обновления UR-кадра в явном виде. Процедура выбора может содержать идентификацию согласно некоторому условию, что некоторый блок должен быть использован для обновления части UR-кадра в декодирующем устройстве. К этим условиям может относиться, например, когда текущий блок использует UR-кадр в качестве опоры для межкадрового прогнозирования, а также применение компенсации освещенности. В качестве другого примера, эти условия могут относиться к тому, какие из соседей блока используют в качестве опоры вектор движения UR-кадра, как это имеет место, когда некий блок имеет несколько соседних блоков с вектором движения UR-кадра в качестве опоры, если текущий блок кодирован с применением межкадрового прогнозирования, а два или более блоков, соседствующих с текущим блоком, используют вектор движения UR-кадра для межкадрового прогнозирования. В качестве другого примера, если блок с не-UR-опорой окружен блоками с UR-опорой с двух или более сторон, это может означать, что рассматриваемый блок должен быть использован для обновления части UR-кадра. В качестве другого примера, если текущий блок кодирован с применением внутрикадрового прогнозирования и при этом несколько соседних с ним блоков используют UR-кадр в качестве опоры и имеют вектор движения, равный (0,0) (например, нулевой вектор движения), текущий блок может быть идентифицирован в качестве блока, который должен быть использован для обновления части UR-кадра. В качестве еще одного другого примера, если текущий блок кодирован с применением внутрикадрового прогнозирования и несколько соседних с ним блоков используют UR-кадр в качестве опоры и имеют один и тот же или подобный вектор движения, (например, вектор движения может отличаться от векторов других блоков меньше чем на предварительно заданную величину), текущий блок может быть идентифицирован в качестве блока, который должен быть использован для обновления UR кадра.At 710, and still referring to FIG. 7, a block may be selected to update part of the UR frame; this block may be selected, for example, based on an explicit update condition of the UR frame. The selection procedure may comprise identifying, according to some condition, that a certain block is to be used to update a portion of the UR frame at the decoder. These conditions may include, for example, when the current block uses a UR frame as a reference for inter-frame prediction, as well as the application of light compensation. As another example, these conditions may relate to which of the block's neighbors use the UR frame's motion vector as a reference, as is the case when a block has multiple neighboring blocks with the UR frame's motion vector as a reference if the current the block is encoded using inter-prediction, and two or more blocks adjacent to the current block use the motion vector of the UR frame for inter-prediction. As another example, if a non-UR-reference box is surrounded by UR-reference boxes on two or more sides, this may mean that the box in question should be used to update part of the UR frame. As another example, if the current block is encoded using intra-prediction and several adjacent blocks use the UR frame as a reference and have a motion vector equal to (0,0) (e.g., zero motion vector), the current block may be identified as the block to be used to update part of the UR frame. As yet another example, if the current block is encoded using intra-prediction and several neighboring blocks use the UR frame as a reference and have the same or similar motion vector, (for example, the motion vector may be different from the vectors of other blocks less than a predetermined amount), the current block may be identified as the block to be used to update the frame UR.

В качестве другого примера и продолжая обращаться к Фиг. 7, в некоторых вариантах реализации, блок может содержать единицу кодирования (CU), а условие для определения может представлять собой условие, специфицирующее, что если все соседние единицы CU по меньшей мере с трех сторон используют UR-опору, могут быть выбраны все блоки текущей единицы CU. В качестве другого примера, в некоторых вариантах реализации, блок может содержать единицу дерева кодирования (CTU), а условие может состоять в том, что если все соседние единицы CTU по меньшей мере с трех сторон используют UR-опору, все блоки текущей единицы CTU, которые не используют UR-опору, могут быть выбраны в качестве блоков, применяемых для обновления UR-кадра.As another example, and continuing with reference to FIG. 7, in some implementations, a block may contain a coding unit (CU), and the condition for determining may be a condition specifying that if all neighboring CUs on at least three sides use a UR reference, all blocks of the current CU units. As another example, in some implementations, a block may contain a coding tree unit (CTU), and the condition may be that if all adjacent CTUs on at least three sides use a UR-reference, all blocks of the current CTU, which do not use the UR foot can be selected as the blocks used to update the UR frame.

На этапе 730, выбранный блок может быть кодирован и включен в поток битов данных. Процедура кодирования может содержать, например, использование режима межкадрового прогнозирования и режима внутрикадрового прогнозирования. В некоторых вариантах реализации, параметры обновления блоков UR-кадра в явном виде могут не быть включены в поток битов данных для текущего блока.At 730, the selected block may be encoded and included in the data bit stream. The encoding procedure may include, for example, using an inter prediction mode and an intra prediction mode. In some implementations, the block update parameters of the UR frame may not be explicitly included in the data bit stream for the current block.

На Фиг. 8 представлена блок-схема системы, иллюстрирующая пример варианта кодирующего устройства 800 видео, способного передавать сигнализацию в явной форме и/или в неявной форме относительно обновлений блоков UR-кадра на сторону декодирующего устройства. Пример кодирующего устройства 800 видео принимает входное видео 804, которое может быть первоначально сегментировано или разбито в соответствии с некоторой схемой обработки, такой как схема разбиения макроблоков в соответствии со структурой дерева (например, дерево квадратов плюс двоичное дерево). Пример схемы разбиения макроблоков в соответствии со структурой дерева может содержать разбиение кадра изображения на большие блочные элементы, именуемые единицами дерева кодирования (CTU). В некоторых вариантах каждая единица CTU может быть далее разделена один или более раз на некоторое число суб-блоков, называемых единицами кодирования (CU); результат такого разбиения может содержать группу суб-блоков, которые могут называться единицами прогнозирования (PU). Могут быть также использованы единицы преобразования (transform unit (TU)). Термин «единица преобразования», как он применяется в настоящем описании, обозначает базовую единицу, к которой применяется частотное преобразование, так что эта базовая единица может представлять собой, без ограничений, суб-блок единицы CU, подходящий для выполнения операций частотного преобразования. В качестве неисчерпывающего примера, одна единица TU может содержать один блок преобразования из яркостных отсчетов и два соответствующих блока преобразования из цветностных отсчетов изображения, а также синтаксические структуры, используемые для преобразования отсчетов из состава этих блоков преобразования, где «блок преобразования» определен как имеющий размер MxN прямоугольный блок отсчетов, полученный в результате преобразования в ходе выполнения процедуры декодирования. On FIG. 8 is a system block diagram illustrating an exemplary embodiment of a video encoder 800 capable of explicitly and/or implicitly signaling UR frame block updates to the decoder side. An example video encoder 800 receives input video 804, which may be initially segmented or split according to some processing scheme, such as a macroblock partitioning scheme according to a tree structure (eg, square tree plus binary tree). An example of a macroblock partitioning scheme according to a tree structure may comprise partitioning an image frame into larger block elements called coding tree units (CTUs). In some embodiments, each CTU may be further divided one or more times into a number of sub-blocks called coding units (CUs); the result of such a split may contain a group of sub-blocks, which may be referred to as prediction units (PUs). Transform units (TU) may also be used. The term "transformation unit" as used herein means a base unit to which a frequency transformation is applied, so that this base unit may be, without limitation, a sub-unit of a CU suitable for performing frequency transformation operations. As a non-exhaustive example, one TU may contain one transform block from luminance samples and two corresponding transform blocks from chrominance samples of the image, as well as syntax structures used to transform samples from these transform blocks, where "transform block" is defined as having the size MxN is a rectangular block of samples obtained as a result of the transformation during the decoding procedure.

По-прежнему обращаясь к Фиг. 8, пример кодирующего устройства 800 видео содержит процессор 815 для внутрикадрового прогнозирования, процессор 812 для оценки/компенсации движения (также называемый процессором для межкадрового прогнозирования), способный поддерживать обновления блоков UR-кадра в явно или в неявной форме в декодирующем устройстве, процессор 816 для преобразования/квантования, процессор 820 для обратного квантования/обратного преобразования, внутриконтурный фильтр 824, буфер 828 декодированного изображения и процессор 832 для энтропийного кодирования. В некоторых вариантах реализации, процессор 812 для оценки/компенсации движения может определить для текущего блока, что следует обновить UR-кадр в декодирующем устройстве, например, в соответствии с одним или несколькими условиями, описанными выше со ссылками на Фиг. 6 и/или 7; процессор 812 для оценки/компенсации движения может установить параметры для сигнализации в явной форме, что режим обновления блока UR-кадра активизирован. Параметры потока битов данных, сигнализирующие о режимах обновления блока UR-кадра, могут быть введены в процессор 832 для энтропийного кодирования для включения в выходной поток 836 битов данных. В качестве альтернативы или в дополнение к этому, процессор 812 для оценки/компенсации движения может обновить UR-кадр в кодирующем устройстве с использованием текущего блока, так что в поток битов данных может не быть включена никакая сигнализация в явной форме относительно обновления блоков UR-кадра. Параметры потока битов данных могут быть введены в процессор 832 для энтропийного кодирования для включения в выходной поток 836 битов данных. Часть UR-кадра на стороне кодирующего устройства может быть обновлена для использования процессором 812 для оценки/компенсации движения с целью кодирования дополнительных блоков, которые могут использовать UR-кадр в качестве опоры для межкадрового прогнозирования.Still referring to FIG. 8, an exemplary video encoder 800 includes an intra prediction processor 815, a motion estimation/compensation processor 812 (also referred to as an inter prediction processor) capable of supporting UR frame block updates in an explicit or implicit form in the decoder, a processor 816 for transform/quantizer, an inverse quantizer/inverse transform processor 820, an in-loop filter 824, a decoded image buffer 828, and an entropy coding processor 832. In some embodiments, motion estimation/compensation processor 812 may determine for the current block that the UR frame should be updated at the decoder, eg, in accordance with one or more of the conditions described above with reference to FIG. 6 and/or 7; the motion estimation/compensation processor 812 may set parameters to explicitly signal that the UR frame block update mode is activated. The data bit stream parameters signaling the update modes of the UR frame block may be input to the entropy encoding processor 832 for inclusion in the output data bit stream 836 . Alternatively, or in addition, the motion estimation/compensation processor 812 may update the UR frame at the encoder using the current block, so that no explicit signaling regarding updating the blocks of the UR frame may be included in the data bitstream. . Data bit stream parameters may be input to entropy encoding processor 832 for inclusion in output data bit stream 836 . The encoder-side portion of the UR frame may be updated for use by motion estimation/compensation processor 812 to encode additional blocks that may use the UR frame as a reference for inter-frame prediction.

Во время работы и продолжая обращаться к Фиг. 8, для каждого блока, входящего в кадр входного видео 804, можно определить, следует ли обрабатывать этот блок посредством внутрикадрового прогнозирования или с использованием оценки/компенсации движения. Блок может быть направлен в процессор 808 для внутрикадрового прогнозирования или в процессор 812 для оценки/компенсации движения. Если блок должен быть обработан посредством внутрикадрового прогнозирования, процессор 808 для внутрикадрового прогнозирования может осуществить обработку для передачи на выход результата прогнозирования. Если блок должен быть обработан с использованием оценки/компенсации движения, процессор 812 для оценки/компенсации движения может осуществить обработку, включая использование UR-кадра на стороне кодирующего устройства в качестве опоры для межкадрового прогнозирования, если применимо.During operation and continuing to refer to FIG. 8, for each block included in a frame of input video 804, it can be determined whether that block should be processed through intra-frame prediction or using motion estimation/compensation. The block may be directed to a processor 808 for intra prediction or to a processor 812 for motion estimation/compensation. If the block is to be processed by intra prediction, the intra prediction processor 808 may perform processing to output a prediction result. If the block is to be processed using motion estimation/compensation, the motion estimation/compensation processor 812 may perform processing including using the encoder-side UR frame as an inter prediction reference, if applicable.

По-прежнему обращаясь к Фиг. 8, остаток может быть сформирован путем вычитания результата прогнозирования из входного видео. Остаток может быть принят процессором 816 для преобразования/квантования, который может осуществить преобразование (например, дискретное косинусное преобразование (discrete cosine transform (DCT))) для получения коэффициентов, которые могут быть квантованы. Квантованные коэффициенты и любая ассоциированная с этим сигнализационная информация могут быть переданы в процессор 832 для энтропийного кодирования с целью осуществления энтропийного кодирования и включения в выходной поток 836 битов данных. Процессор 832 энтропийного кодирования может поддерживать кодирование сигнализационной информации относительно режимов обновления блока UR-кадра. В дополнение к этому, квантованные коэффициенты могут быть переданы в процессор 820 для обратного квантования/обратного преобразования, способный воспроизводить пиксели, которые могут быть скомбинированы с результатом прогнозирования и обработаны внутриконтурным фильтром 824, а выходной сигнал этого фильтра может быть сохранен в буфере 828 декодированного изображения для использования процессором 812 для оценки/компенсации движения, способным поддерживать обновление блоков UR-кадра в декодирующем устройстве.Still referring to FIG. 8, the residual may be generated by subtracting the prediction result from the input video. The remainder may be received by a transform/quantization processor 816, which may perform a transform (eg, a discrete cosine transform (DCT)) to obtain coefficients that can be quantized. The quantized coefficients and any associated signaling information may be passed to an entropy encoding processor 832 to entropy encode and include data bits in the output stream 836 . An entropy encoding processor 832 may support encoding signaling information regarding update modes of a block of a UR frame. In addition, the quantized coefficients may be passed to an inverse quantization/inverse transform processor 820 capable of reproducing pixels that may be combined with the prediction result and processed by an in-loop filter 824, and the output of this filter may be stored in a decoded image buffer 828 for use by a motion estimation/compensation processor 812 capable of supporting updating blocks of the UR frame at the decoder.

Тогда как выше были подробно описаны лишь небольшое число вариантов, возможны также другие модификации или дополнения. Например, в некоторых вариантах реализации, текущие блоки могут представлять собой какие-либо симметричные блоки (8x8, 16x16, 32x32, 64x64, 128 x 128 и другие подобные размеры), равно как какие-либо асимметричные блоки (8x4, 16x8 и другие подобные размеры).While only a small number of variants have been described in detail above, other modifications or additions are also possible. For example, in some implementations, the current blocks may be any symmetrical blocks (8x8, 16x16, 32x32, 64x64, 128x128 and other similar sizes), as well as any asymmetric blocks (8x4, 16x8 and other similar sizes). ).

В некоторых вариантах может быть реализовано дерево решений, представляющее собой комбинацию дерева квадратов с двоичным деревом (quadtree plus binary decision tree (QTBT)). В случае дерева QTBT, на уровне единиц дерева кодирования параметры разбиения для этого дерева QTBT могут быть выведены динамически для адаптации к локальным характеристикам без передачи каких-либо издержек. После этого, на уровне единиц кодирования структура дерева принятия решений с объединенной классификацией может исключить не являющиеся необходимыми итерациями и риски управления из-за ложного прогнозирования. В некоторых вариантах реализации, режим обновления блока UR-кадра может быть доступным в каждом из концевых («листовых») узлов дерева QTBT. Текущий декодированный блок, как описано выше, может входить в дерево QTBT; например и без ограничений, текущий декодированный блок может быть неконцевым узлом дерева QTBT.In some embodiments, a decision tree can be implemented which is a combination of a quadtree plus a binary decision tree (QTBT). In the case of a QTBT tree, at the unit level of the coding tree, the partitioning parameters for that QTBT tree can be dynamically inferred to adapt to local characteristics without transferring any overhead. Thereafter, at the coding unit level, the unified classification decision tree structure can eliminate unnecessary iterations and management risks due to false prediction. In some implementations, a UR frame block update mode may be available at each of the leaf nodes of the QTBT tree. The current decoded block, as described above, may be in the QTBT tree; for example, and without limitation, the current decoded block may be a non-leaf node of the QTBT tree.

В некоторых вариантах реализации сигнализация о дополнительных синтаксических элементах может быть передана в потоке битов данных на разных уровнях иерархии. Обновление блоков UR-кадра, которое может содержать, без ограничений, обновление блоков UR-кадра, сигнализированное в явной форме, и/или обновление блоков UR-кадра, сигнализированное в неявной форме, может быть активизировано для всей последовательности путем вставки кодированного флага активизации в набор параметров последовательности (SPS). Далее, флаг единицы CTU может быть закодирован на уровне единиц дерева кодирования (CTU) для индикации, используют ли какие-либо единицы кодирования (CU) режим обновления блока UR-кадра. Флаг единицы CU может быть закодирован для индикации, использует ли текущая единица кодирования режим обновления блока UR-кадра. Флаг единицы CTU может быть закодирован на уровне единиц дерева кодирования (CTU) для индикации, используют ли какие-либо единицы кодирования (CU) сигнализацию в явной форме относительно обновления блоков UR-кадра. Флаг единицы CTU может быть закодирован на уровне единиц дерева кодирования (CTU) для индикации, используют ли какие-либо единицы кодирования (CU) сигнализацию в неявной форме относительно обновления блоков UR-кадра. Тогда как приведенные выше варианты были описаны в отношении обновлений UR-кадров, эти приведенные выше варианты могут в качестве альтернативы или в дополнение быть применены к другим кадрам, изображениям, включая без ограничений долговременные опорные кадры.In some implementations, additional syntax elements may be signaled in the data bitstream at different levels of the hierarchy. A UR frame block update, which may include, without limitation, an explicitly signaled UR frame block update and/or an implicitly signaled UR frame block update, may be activated for the entire sequence by inserting an encoded wake-up flag in sequence parameter set (SPS). Further, the CTU flag may be encoded at the coding tree units (CTU) level to indicate whether any coding units (CUs) are using the UR frame update mode. The CU flag may be encoded to indicate whether the current coding unit uses the UR frame update mode. The CTU flag may be encoded at the coding tree units (CTU) level to indicate whether any coding units (CUs) are explicitly signaling regarding the UR frame update. The CTU flag may be encoded at the coding tree units (CTU) level to indicate whether any coding units (CUs) use implicit signaling regarding the UR frame update. While the above options have been described in relation to updates to UR frames, the above options may alternatively or in addition be applied to other frames, pictures, including, without limitation, long-term key frames.

Предмет изобретения, описываемый здесь, предоставляет многочисленные технические преимущества. Например, некоторые варианты реализации предмета настоящего изобретения могут предлагать способ декодирования блоков с использованием UR-кадра, который может обновлять только участки UR-кадра без необходимости обновлять весь UR-кадр. Такие подходы могут уменьшить сложность, увеличивая при этом эффективность сжатия. Более того, при обновлении блоков UR-кадра в ответ на сигнализацию в неявной форме, издержки заголовка могут быть уменьшены, уменьшая тем самым скорость передачи битов данных и улучшая сжатие.The subject invention described here provides numerous technical advantages. For example, some embodiments of the subject matter of the present invention may provide a block decoding method using a UR frame that can update only portions of the UR frame without having to update the entire UR frame. Such approaches can reduce complexity while increasing compression efficiency. Moreover, by updating blocks of the UR frame in response to implicit signaling, header overhead can be reduced, thereby reducing the data bit rate and improving compression.

Следует отметить, что любые один или более из описываемых здесь аспектов и вариантов могут быть успешно реализованы с использованием цифровых электронных схем, интегральных схем, специализированных интегральных схем (application specific integrated circuit (ASIC)), программируемых пользователем вентильных матриц (field programmable gate array (FPGA)), компьютерной аппаратуры, встроенного программного обеспечения, загружаемого программного обеспечения и/или комбинаций перечисленных элементов, реализуемых в одной или более машинах (например, одном или более компьютерных устройствах, используемых в качестве пользовательского компьютерного устройства для электронного документа, одном или более серверных устройств, таких как сервер документов, и т.п.), запрограммированных в соответствии с настоящим описанием, как это будет ясно даже рядовым специалистам в компьютерной технике. Эти разнообразные аспекты или признаки могут содержать реализацию в одной или более компьютерных программах и/или программном обеспечении, выполняемом и/или интерпретируемом в программируемой системе, содержащей по меньшей мере один процессор специального или общего назначения, соединенный для приема данных и команд от и для передачи данных и команд в систему хранения информация, по меньшей мере одно устройство ввода и по меньшей мере одно устройство вывода. Квалифицированные программисты смогут достаточно легко подготовить код соответствующего программного обеспечения на основе положений настоящего изобретения, как это будет очевидно даже рядовым специалистам в области программирования. Описанные выше аспекты и варианты реализации, использующие программное обеспечение и/или программные модули, могут также содержать подходящую аппаратуру, способствующую реализации выполняемых машиной команд программного обеспечения и/или программного модуля.It should be noted that any one or more of the aspects and options described herein can be successfully implemented using digital electronic circuits, integrated circuits, application specific integrated circuits (ASICs), field programmable gate arrays ( FPGA)) computer hardware, firmware, downloadable software, and/or combinations of these elements implemented in one or more machines (for example, one or more computing devices used as a user computing device for an electronic document, one or more server devices such as a document server, etc.) programmed in accordance with the present description, as will be clear even to ordinary computer technicians. These various aspects or features may comprise implementation in one or more computer programs and/or software executing and/or interpreted on a programmable system comprising at least one special purpose or general purpose processor coupled to receive data and instructions from and to transmit data and commands to the information storage system, at least one input device and at least one output device. Qualified programmers will be able to code appropriate software based on the teachings of the present invention quite easily, as will be obvious even to ordinary programmers. The above-described aspects and implementations using software and/or software modules may also include suitable hardware to facilitate the implementation of machine-executable software and/or software module instructions.

Такое программное обеспечение может представлять собой компьютерный программный продукт, использующий машиночитаемый носитель для хранения информации. Машиночитаемый носитель для хранения информации может представлять собой какой-либо носитель, способный сохранять и/или кодировать последовательность команд для выполнения машиной (например, компьютерным устройством) и управлять машиной для осуществления какого-либо из способов и/или вариантов, описываемых здесь. К примерам таких машиночитаемый носителей для хранения информации относятся, не ограничиваясь этим, магнитный диск, оптический диск (например, CD, CD-R, DVD, DVD-R и т.п.), магнитооптический диск, постоянное запоминающее устройство (ПЗУ (read-only memory “ROM”)), запоминающее устройство с произвольной выборкой (ЗУПВ (random access memory “RAM”)), магнитная карточка, оптическая карточка, твердотельное запоминающее устройство, стираемое программируемое постоянное запоминающее устройство (СППЗУ (EPROM)), электрически стираемое программируемое постоянное запоминающее устройство (ЭСППЗУ (EEPROM)), программируемые логические устройства (Programmable Logic Device (PLD)) и/или какие-либо комбинации таких устройств. Термин «машиночитаемый носитель», как он используется здесь, охватывает как единственный носитель, так и комплекс физически раздельных носителей, такой как, например, комплект компакт-дисков или один или более накопителей на жестких дисках в сочетании с компьютерным запоминающим устройством. Как используется здесь, термин «машиночитаемый носитель для хранения информации» не охватывает временные формы передачи сигнала.Such software may be a computer program product using a computer-readable medium for storing information. A computer-readable storage medium may be any medium capable of storing and/or encoding a sequence of instructions for execution by a machine (eg, a computing device) and to control the machine to implement any of the methods and/or options described herein. Examples of such computer-readable storage media include, but are not limited to, a magnetic disk, an optical disk (for example, CD, CD-R, DVD, DVD-R, etc.), a magneto-optical disk, read only memory (ROM (read -only memory “ROM”), random access memory (RAM (random access memory “RAM”)), magnetic card, optical card, solid-state memory, erasable programmable read-only memory (EPROM), electrically erasable programmable read only memory (EEPROM), programmable logic devices (Programmable Logic Device (PLD)) and/or any combination of such devices. The term "computer-readable medium" as used herein encompasses both a single medium and a collection of physically separate media such as, for example, a set of CDs or one or more hard disk drives in combination with a computer storage device. As used herein, the term "computer-readable storage medium" does not cover temporal forms of signal transmission.

Такое программное обеспечение может также содержать информацию (например, данные), передаваемые в виде сигнала данных на носителе данных, такой как волна несущей. Например, машиночитаемая информация может быть представлена в виде сигнала данных на несущей данных, на которой сигнал кодирует последовательность команд или часть ее, для выполнения машиной (например, компьютерным устройством) и любую относящуюся к этому информацию (например, структуры данных и данные), побуждающую машину осуществлять какие-либо способы и/или варианты, описываемые здесь.Such software may also contain information (eg, data) transmitted as a data signal on a storage medium, such as a carrier wave. For example, machine-readable information may be represented as a data signal on a data carrier, on which the signal encodes a sequence of instructions, or a portion thereof, to be executed by a machine (e.g., a computing device) and any related information (e.g., data structures and data) that causes machine to carry out any of the methods and/or options described here.

К примерам компьютерного устройства относятся, не ограничиваясь этим, устройство для чтения электронных книг, компьютерная рабочая станция, компьютер терминала, компьютер сервера, ручное устройство (например, планшетный компьютер, смартфон и т.п.), устройство для работы с Интернет, сетевой маршрутизатор, сетевой мост, какая-либо машина, способная выполнять последовательность команд, специфицирующую действия, которые должна выполнять машины и какие-либо сочетания перечисленных устройств. В одном из примеров, компьютерное устройство может содержать и/или быть встроено в киоск.Examples of a computing device include, but are not limited to, an e-book reader, a computer workstation, a terminal computer, a server computer, a hand-held device (such as a tablet computer, a smartphone, etc.), an Internet device, a network router , a network bridge, any machine capable of executing a sequence of instructions specifying the actions that the machines should perform, and any combination of these devices. In one example, the computing device may comprise and/or be embedded in a kiosk.

На Фиг. 9 представлено схематичное представление одного из вариантов компьютерного устройства в форме примера компьютерной системы 900, где может выполняться множество команд, в соответствии с которыми система управления реализует один или более аспектов и/или способов настоящего изобретения. Также предполагается, что множество компьютерных устройств может быть использовано для реализации специально конфигурированного набора команд, в соответствии с которыми одно или более устройств осуществляет один или более аспектов и/или способов согласно настоящему изобретению. Компьютерная система 900 содержит процессор 904 и запоминающее устройство 908, осуществляющие связь одно с другим и с другими компонентами по шине 912. Шина 912 может содержать какую-либо из ряда структур шин, включая, но не ограничиваясь, шину памяти, контроллер памяти, шину периферийных устройств, локальную шину и какую-либо комбинацию перечисленных компонентов с использованием какой-либо из различных архитектур шин.On FIG. 9 is a schematic representation of one embodiment of a computing device in the form of an exemplary computer system 900, where a variety of instructions can be executed, in accordance with which the control system implements one or more aspects and/or methods of the present invention. It is also contemplated that a plurality of computing devices may be used to implement a specially configured set of instructions in accordance with which one or more devices perform one or more aspects and/or methods of the present invention. Computer system 900 includes a processor 904 and a memory 908 that communicate with each other and with other components over a bus 912. Bus 912 may include any of a number of bus structures including, but not limited to, a memory bus, a memory controller, a peripheral bus. devices, a local bus, and any combination of these components using any of the various bus architectures.

Запоминающее устройство 908 может содержать различные компоненты (например, машиночитаемые носители), включая, но не ограничиваясь, компонент запоминающего устройства с произвольной выборкой, компонент постоянного запоминающего устройства и какую-либо комбинацию таких компонентов. В одном из примеров, в запоминающем устройстве 908 может быть записана базовая система ввода/вывода (basic input/output system (BIOS)) 916, содержащая базовые процедуры, помогающие передавать информацию между элементами в компьютерной системе 900, например, во время запуска этой компьютерной системы. Запоминающее устройство 908 может также содержать (например, в сохраненном на одном или более машиночитаемых носителях виде) команды (например, программное обеспечение) 920, реализующие какие-либо один или более аспектов и/или способов согласно настоящему изобретению. В другом примере, запоминающее устройство 908 может далее содержать любое число программных модулей, включая, но не ограничиваясь этим, операционную систему, одну или более прикладных программ, другие программные модули, данные программ и какие-либо комбинации этого.The storage device 908 may include various components (eg, computer-readable media), including, but not limited to, a random access storage component, a persistent storage component, and any combination of such components. In one example, the storage device 908 may contain a basic input/output system (BIOS) 916 containing basic routines to help transfer information between elements in the computer system 900, such as during startup of that computer system. systems. Memory 908 may also contain (eg, stored on one or more computer-readable media) instructions (eg, software) 920 that implement any one or more aspects and/or methods of the present invention. In another example, storage device 908 may further contain any number of program modules, including, but not limited to, an operating system, one or more application programs, other program modules, program data, and any combination thereof.

Компьютерная система 900 может также содержать хранилище программ и данных 924. К примерам хранилища программ и данных (например, хранилища программ и данных 924) относятся, не ограничиваясь этим, накопитель на жестком диске, накопитель на магнитном диске, накопитель на оптическом диске, накопитель на оптическом диске в сочетании с оптическим носителем, твердотельное запоминающее устройство и какую-либо комбинацию таких устройств. Хранилище программ и данных 924, может быть соединено с шиной 912 посредством подходящего интерфейса (не показан). Например, к таким интерфейсам относятся, не ограничиваясь этим, интерфейс малых компьютерных систем, SCSI, усовершенствованный интерфейс периферийных устройств (advanced technology attachment (ATA)), последовательный интерфейс ATA, универсальная последовательная шина (universal serial bus (USB)), интерфейс согласно стандарту IEEE 1394 (FIREWIRE) или какие-либо комбинации таких интерфейсов. В одном из примеров хранилище программ и данных 924 (или один или более компонентов такого хранилища) может быть сопряжено с компьютерной системой 900 так, что его можно отсоединить (например, через соединитель внешнего порта (не показан)). В частности, хранилище программ и данных 924 и ассоциированный с ним машиночитаемый носитель 928 могут создать энергонезависимое и/или энергозависимое хранилище машиночитаемых команд, структур данных, программных модулей и/или других данных для компьютерной системы 900. В одном из примеров программное обеспечение 920 может быть резидентно, полностью или частично, на машиночитаемом носителе 928. В другом примере, программное обеспечение 920 может быть резидентно, полностью или частично, в процессоре 904.The computer system 900 may also include a program and data store 924. Examples of a program and data store (e.g., program and data store 924) include, but are not limited to, a hard disk drive, a magnetic disk drive, an optical disk drive, an an optical disc in combination with an optical media, a solid state storage device, and any combination of such devices. The program and data store 924 may be connected to the bus 912 via a suitable interface (not shown). For example, such interfaces include, but are not limited to, small computer system interface, SCSI, advanced technology attachment (ATA), ATA serial interface, universal serial bus (USB), interface according to the standard IEEE 1394 (FIREWIRE) or any combination of these interfaces. In one example, program and data store 924 (or one or more components of such store) may be interfaced with computer system 900 such that it can be detached (eg, via an external port connector (not shown)). In particular, the program and data store 924 and its associated computer-readable medium 928 may create a non-volatile and/or volatile store of computer-readable instructions, data structures, program modules, and/or other data for the computer system 900. In one example, the software 920 may be resident, in whole or in part, on the computer-readable medium 928. In another example, software 920 may be resident, in whole or in part, in the processor 904.

Компьютерная система 900 может также содержать устройство 932 ввода. В одном из примеров пользователь компьютерной системы 900 может вводить команды и/или другую информацию в компьютерную систему 900 через это устройство 932 ввода. К примерам устройства 932 ввода относятся, не ограничиваясь этим, устройство алфавитно-числового ввода (например, клавиатура), указательное устройство, джойстик, геймпад (игровая панель), устройство аудио ввода (например, микрофон, система с речевым ответом и т.п.), устройство управления курсором (например, мышь), сенсорная панель, оптический сканер, устройство для захвата изображений (например, фотокамера, видеокамера), сенсорный экран или какая-либо комбинация этих устройств. Устройство 932 ввода может быть сопряжено с шиной 912 через какой-либо из разнообразных интерфейсов (не показаны), включая, но не ограничиваясь, последовательный интерфейс, параллельный интерфейс, игровой порт, USB-интерфейс, FIREWIRE-интерфейс, прямое соединение с шиной 912 и какую-либо комбинацию таких устройств. Устройство 932 может содержать интерфейс в виде сенсорного экрана, который может представлять собой часть дисплея 936 или быть отдельным от него, что далее обсуждается ниже. Устройство 932 ввода может быть использовано в качестве селекторного устройства пользователя для выбора одного или более графических представлений, как обсуждается выше.Computer system 900 may also include an input device 932. In one example, a user of computer system 900 may enter commands and/or other information into computer system 900 through this input device 932. Examples of input device 932 include, but are not limited to, an alphanumeric input device (e.g., a keyboard), a pointing device, a joystick, a gamepad (game pad), an audio input device (e.g., a microphone, a voice response system, etc.). ), cursor control device (such as a mouse), touch pad, optical scanner, image capture device (such as a camera, camcorder), touch screen, or some combination of these devices. The input device 932 may interface with the bus 912 through any of a variety of interfaces (not shown), including but not limited to serial, parallel, game port, USB, FIREWIRE, direct to bus 912, and any combination of such devices. Device 932 may include a touch screen interface, which may be part of or separate from display 936, as discussed further below. An input device 932 may be used as a user selector to select one or more graphical representations, as discussed above.

Пользователь может также вводить команды и/или другую информацию в компьютерную систему 900 через хранилища программ и данных 924 (например, накопитель со сменными дисками, флэш-накопитель и т.п.) и/или устройство 940 сетевого интерфейса. Такое устройство 940 сетевого интерфейса может быть использовано для соединения компьютерной системы 900 с одной или несколькими сетями, такими как сеть 944, и одним или несколькими удаленными устройствами 948, соединенными с ним. К примерам устройств сетевого интерфейса относятся, но не ограничиваясь этим, плата сетевого интерфейса (например, плата сетевого интерфейса для мобильной сети, плата локальной сети связи (LAN)), модем и какая-либо комбинация этих устройств. К примерам сети относятся, не ограничиваясь этим, широкомасштабная сеть связи (например, Интернет, сеть предприятия), локальная сеть связи (например, сеть, ассоциированная с офисом, зданием, кампусом или каким-либо относительно небольшим географическим пространством), телефонная сеть, сеть передачи данных, ассоциированная с провайдером телефонной/голосовой связи (например, сеть передачи данных и/или голосовая сеть провайдера мобильной связи), прямое соединение между двумя компьютерными устройствами или какая-либо комбинация перечисленных объектов. Сеть связи, такая как сеть 944, может использовать проводную и/или беспроводную связь. В общем случае может быть использована любая топология сети. Информация (например, данные, программное обеспечение 920 и т.п.) может быть передана в компьютерную систему 900 или из нее через устройство 940 сетевого интерфейса.The user may also enter commands and/or other information into the computer system 900 via the program and data stores 924 (eg, removable disk drive, flash drive, etc.) and/or the network interface device 940. Such a network interface device 940 may be used to connect computer system 900 to one or more networks, such as network 944, and one or more remote devices 948 connected thereto. Examples of network interface devices include, but are not limited to, a network interface card (eg, a mobile network interface card, a local area network (LAN) card), a modem, and some combination of these devices. Examples of a network include, but are not limited to, a wide area communications network (eg, the Internet, an enterprise network), a local communications network (eg, a network associated with an office, building, campus, or some relatively small geographical area), telephone network, network a data connection associated with a telephone/voice provider (eg, a data and/or voice network of a mobile provider), a direct connection between two computing devices, or some combination of these entities. A communications network, such as network 944, may use wired and/or wireless communications. In general, any network topology can be used. Information (eg, data, software 920, etc.) may be transferred to or from computer system 900 via network interface device 940.

Компьютерная система 900 может далее содержать адаптер 952 видео дисплея для передачи представляемого на дисплее изображения дисплейному устройству, такому как дисплейное устройство 936. К примерам дисплейного устройства относятся, не ограничиваясь этим, жидкокристаллический дисплей (liquid crystal display (LCD)), электронно-лучевая трубка (cathode ray tube (CRT)), плазменный дисплей, дисплей на светодиодах (light emitting diode (LED)) и какая-либо комбинация таких дисплеев. Адаптер 952 дисплея и дисплейное устройство 936 могут быть использованы в сочетании с процессором 904 для создания графических представлений аспектов настоящего изобретения. В дополнение к дисплейному устройству, компьютерная система 900 может содержать одно или более других периферийных устройств вывода, включая, но не ограничиваясь, аудио громкоговоритель, принтер и какую-либо комбинацию этих устройств. Такие периферийные устройства вывода могут быть соединены с шиной 912 через интерфейс 956 периферийных устройств. К примерам таких интерфейсов периферийных устройств относятся, не ограничиваясь этим, последовательный порт, соединение USB, соединение FIREWIRE, параллельное соединение или какая-либо комбинация таких соединений. The computer system 900 may further include a video display adapter 952 for transmitting the displayed image to a display device, such as a display device 936. Examples of a display device include, but are not limited to, liquid crystal display (LCD), cathode ray tube (cathode ray tube (CRT)), plasma display, light emitting diode (LED) display, and any combination of such displays. Display adapter 952 and display device 936 may be used in conjunction with processor 904 to generate graphical representations of aspects of the present invention. In addition to the display device, computer system 900 may include one or more other peripheral output devices, including, but not limited to, an audio speaker, a printer, and any combination of these devices. Such output peripherals may be connected to the bus 912 via a peripheral interface 956 . Examples of such peripheral interfaces include, but are not limited to, a serial port, a USB connection, a FIREWIRE connection, a parallel connection, or any combination of such connections.

Выше дано подробное описание иллюстративных вариантов настоящего изобретения. Здесь могут быть сделаны разнообразные модификации и дополнения, не отклоняясь от смысла и объема настоящего изобретения. Признаки каждого из описываемых здесь различных вариантов могут быть скомбинированы подходящим образом с признаками других описываемых вариантов для получения множества комбинаций признаков, в ассоциированных новых вариантах. Далее, хотя выше был рассмотрен ряд раздельных вариантов, приведенное здесь описание является всего лишь иллюстрацией применения принципов настоящего изобретения. В дополнение к этому, хотя приведенные здесь различные способы могут быть иллюстрированы и/или описаны как выполняемые в определенном конкретном порядке, этот порядок может изменяться в широких пределах, доступных даже рядовому специалисту, для получения различных вариантов, как описано здесь. Соответственно настоящее описание является всего лишь примером и никак иначе не ограничивает объем настоящего изобретения.The above is a detailed description of illustrative embodiments of the present invention. Various modifications and additions can be made here without deviating from the spirit and scope of the present invention. The features of each of the various options described herein may be appropriately combined with the features of the other options described to obtain multiple combinations of features, in associated new variants. Further, although a number of separate options have been discussed above, the description given here is merely an illustration of the application of the principles of the present invention. In addition, although the various methods provided herein may be illustrated and/or described as being performed in a certain specific order, this order may be varied within wide limits, accessible even to an ordinary specialist, to obtain various options, as described here. Accordingly, the present description is merely an example and does not otherwise limit the scope of the present invention.

В приведенном выше описании и в Формуле изобретения за фразами «по меньшей мере один из» или «один или более из» может следовать присоединительный список элементов или признаков. Термин «и/или» может также встречаться в списке из двух или более элементов или признаков. Если это явно или неявно не противоречит контексту, такой термин должен обозначать любой из перечисленных в списке элементов или признаков индивидуально, либо какой-либо из упомянутых элементов или признаков в сочетании с каким-либо другим из перечисленных элементов или признаков. Например, фразы «по меньшей мере один из 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 вместе». В дополнение к этому, использование термина «на основе» выше и в Формуле изобретения должно означать «по меньшей мере частично на основе», так что неупомянутый признак или элемент также является допустимым.In the above description and in the claims, the phrases "at least one of" or "one or more of" may be followed by an appendix list of elements or features. The term "and/or" may also occur in a list of two or more elements or features. Unless explicitly or implicitly contradicted by the context, such term shall mean any of the elements or features listed in the list individually, or any of the mentioned elements or features in combination with any other of the listed 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" shall each mean "A alone, B alone, or A and B together". A similar interpretation is also intended for a list containing three or more entries. 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" shall each mean "A alone, B alone, C alone, 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 must mean "at least partially based on" such that an unmentioned feature or element is also allowed.

Описываемый здесь предмет изобретения может быть реализован в системах, аппаратуре, способах и/или изделиях в зависимости от желаемой конфигурации. Варианты реализации, приведенные в описании выше, не представляют все варианты реализации, согласованные с описываемым здесь предметом изобретения. Напротив, это всего лишь несколько примеров, согласованных с аспектами, относящимися к описываемому предмету изобретения. Хотя выше были подробно описаны лишь небольшое число вариантов, возможны также и другие модификации или дополнения. В частности, другие признаки и/или варианты могут быть созданы в дополнение к тому, что рассмотрено здесь. Например, описываемые выше варианты реализации могут быть направлены на различные комбинации и субкомбинации описываемых признаков и/или комбинации и субкомбинации ряда других признаков, описанных выше. В дополнение к тому, логические схемы, изображенные в прилагаемых чертежах и/или описываемые здесь, не требуют обязательного выполнения в показанном здесь порядке или в последовательном порядке для достижения желаемых результатов. Другие варианты реализации могут находиться в пределах объема следующей Формулы изобретения.The subject matter described herein may be implemented in systems, apparatus, methods, and/or articles, depending on the desired configuration. The embodiments described in the description above do not represent all embodiments consistent with the subject matter described herein. On the contrary, these are just a few examples consistent with aspects related to the described subject matter. Although only a small number of variants have been described in detail above, other modifications or additions are also possible. In particular, other features and/or variants may be created in addition to what is discussed here. For example, the embodiments described above may be directed to various combinations and subcombinations of the described features and/or combinations and subcombinations of a number of other features described above. In addition, the logic circuits depicted in the accompanying drawings and/or described herein do not need to be performed in the order shown here or in sequential order to achieve the desired results. Other implementation options may be within the scope of the following claims.

Claims (9)

1. Устройство декодирования, содержащее схему для:1. A decoding device containing a circuit for: приема потока битов данных, сгенерированного устройством кодирования, содержащего сигнализационную информацию и первое кодированное изображение, подлежащее использованию в качестве опорного, и второе кодированное изображение, причем второе кодированное изображение содержит первый блок и второй блок, сигнализационная информация содержит набор параметров последовательности (SPS), указывающий, что доступен режим, в котором часть опорного изображения может быть модифицирована;receiving a data bit stream generated by an encoder, comprising signaling information and a first encoded picture to be used as a reference and a second encoded picture, the second encoded picture comprising a first block and a second block, the signaling information comprising a Sequence Parameter Set (SPS) indicating that a mode is available in which part of the reference picture can be modified; декодирования и сохранения первого изображения в качестве опорного изображения;decoding and storing the first picture as a reference picture; модификации, с использованием указанного режима, только части опорного изображения в ответ на информацию, сгенерированную устройством декодирования и содержащуюся в потоке битов данных;modifying, using said mode, only a portion of the reference picture in response to information generated by the decoding apparatus and contained in the data bit stream; использования модифицированной части опорного изображения в качестве предиктора для первого блока второго изображения;using the modified part of the reference image as a predictor for the first block of the second image; декодирования первого блока посредством добавления остаточных пикселей к предиктору; иdecoding the first block by adding residual pixels to the predictor; And декодирования второго блока второго изображения, исключая использование модифицированных частей каких либо опорных изображений.decoding the second block of the second picture, excluding the use of modified parts of any reference pictures. 2. Устройство декодирования по п. 1, в котором первый блок и второй блок являются единицами кодирования размером NxN.2. The decoding apparatus according to claim 1, wherein the first block and the second block are NxN coding units. 3. Устройство декодирования по п. 1, в котором второй блок второго изображения является блоком внутрикадрового кодирования.3. The decoding apparatus according to claim 1, wherein the second block of the second image is an intra-frame coding block.
RU2021118364A 2018-11-27 2019-11-27 Method for adaptive update of unavailable reference frame blocks using explicit and implicit signaling RU2792865C2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US62/772,066 2018-11-27
US62/771,941 2018-11-27

Publications (2)

Publication Number Publication Date
RU2021118364A RU2021118364A (en) 2022-12-28
RU2792865C2 true RU2792865C2 (en) 2023-03-28

Family

ID=

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2553063C2 (en) * 2011-01-14 2015-06-10 Хуавей Текнолоджиз Ко., Лтд. Method for prediction during encoding or decoding and predictor
RU2642361C2 (en) * 2012-06-28 2018-01-24 Квэлкомм Инкорпорейтед Alarm of long-term reference pictures for video coding

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2553063C2 (en) * 2011-01-14 2015-06-10 Хуавей Текнолоджиз Ко., Лтд. Method for prediction during encoding or decoding and predictor
RU2642361C2 (en) * 2012-06-28 2018-01-24 Квэлкомм Инкорпорейтед Alarm of long-term reference pictures for video coding

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MANORANJAN PAUL et al, A Long-Term Reference Frame for Hierarchical B-Picture-Based Video Coding, IEEE Transactions on Circuits and Systems for Video Technology, vol. 24, N10, October 2014. CHEN J. et al, Algorithm description of Joint Exploration Test Model 7 (JEM7), Joint Video Exploration Team (JVET) of ITU-T SG 16 WP3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-G1001-v1, 7th Meeting: Torino, 13-21 July 2017. *

Similar Documents

Publication Publication Date Title
KR20210153128A (en) Global motion for merge mode candidates in inter prediction
KR20220002990A (en) Global motion constrained motion vectors in inter prediction
JP7482536B2 (en) Shape-adaptive discrete cosine transform for geometric partitioning with an adaptive number of regions.
JP7466960B2 (en) Efficient coding of global motion vectors.
US20230239464A1 (en) Video processing method with partial picture replacement
US20230308640A1 (en) Encoder for interprediction in geometric partitioning with an adaptive number of regions
JP2023101782A (en) Inter prediction in geometric partitioning with non-straight, non-rectangular partitions
KR20220002996A (en) Candidates in frames with global motion
JP2023105073A (en) Adaptive motion vector prediction candidates in frame with global motion
KR20220002989A (en) Signaling of global motion vectors in picture headers
KR20210153129A (en) Selective motion vector prediction candidates in frames with global motion
RU2792865C2 (en) Method for adaptive update of unavailable reference frame blocks using explicit and implicit signaling
KR20220002987A (en) Global motion models for motion vector inter prediction
RU2806444C2 (en) Efficient encoding of global motion vectors
US11985318B2 (en) Encoding video with extended long term reference picture retention
US11595652B2 (en) Explicit signaling of extended long term reference picture retention
KR20210152567A (en) Signaling of global motion vectors in picture headers
EP3918799A1 (en) Explicit signaling of extended long term reference picture retention
WO2020159994A1 (en) Online and offline selection of extended long term reference picture retention