RU2829207C2 - Interframe prediction at exponential division - Google Patents
Interframe prediction at exponential division Download PDFInfo
- Publication number
- RU2829207C2 RU2829207C2 RU2021125283A RU2021125283A RU2829207C2 RU 2829207 C2 RU2829207 C2 RU 2829207C2 RU 2021125283 A RU2021125283 A RU 2021125283A RU 2021125283 A RU2021125283 A RU 2021125283A RU 2829207 C2 RU2829207 C2 RU 2829207C2
- Authority
- RU
- Russia
- Prior art keywords
- block
- region
- motion vector
- rectangular
- indirect non
- Prior art date
Links
- 230000011664 signaling Effects 0.000 claims abstract description 14
- 230000033001 locomotion Effects 0.000 claims description 117
- 239000013598 vector Substances 0.000 claims description 63
- 238000005192 partition Methods 0.000 claims description 37
- 238000009499 grossing Methods 0.000 claims 2
- 238000000638 solvent extraction Methods 0.000 abstract description 63
- 230000006835 compression Effects 0.000 abstract description 15
- 238000007906 compression Methods 0.000 abstract description 15
- 238000000926 separation method Methods 0.000 abstract description 3
- 239000000126 substance Substances 0.000 abstract 1
- 238000000034 method Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 17
- 230000004927 fusion Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000013139 quantization Methods 0.000 description 7
- 238000013459 approach Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000002123 temporal effect Effects 0.000 description 4
- 238000007792 addition Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000003066 decision tree Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 241000023320 Luma <angiosperm> Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Abstract
Description
Область техники, к которой относится изобретениеField of technology to which the invention relates
Настоящее изобретение относится в целом к области сжатия видео. В частности, настоящее изобретение направлено на межкадровое предсказание при экспоненциальном разделении.The present invention relates generally to the field of video compression. In particular, the present invention is directed to interframe prediction with exponential partitioning.
Уровень техникиState of the art
Видеокодек может включать в себя электронную схему или программное обеспечение, которое сжимает или распаковывает цифровое видео. Он может конвертировать несжатое видео в сжатый формат и наоборот. В контексте сжатия видео, устройство, которое сжимает видео (и/или выполняет некоторые его функции), как правило, может называться кодером, и устройство, которое распаковывает видео (и/или выполняет некоторые его функции), может называться декодером.A video codec may include electronic circuitry or software that compresses or decompresses digital video. It may convert uncompressed video to a compressed format and vice versa. In the context of video compression, a device that compresses video (and/or performs some of its functions) may generally be called an encoder, and a device that decompresses video (and/or performs some of its functions) may be called a decoder.
Формат сжатых данных может соответствовать стандартной спецификации сжатия видео. Сжатие может быть с потерями в том смысле, что в сжатом видео отсутствует некоторая информация, присутствующая в исходном видео. Следствием этого может быть то, что распакованное видео может иметь более низкое качество, чем исходное несжатое видео, так как для недостаточно информации точного восстановления исходного видео.The compressed data format may conform to a standard video compression specification. The compression may be lossy in the sense that the compressed video lacks some information present in the original video. The consequence of this may be that the decompressed video may be of lower quality than the original uncompressed video, since there is not enough information to accurately reconstruct the original video.
Cложные взаимосвязи могут существовать между качеством видео, объемом данных, используемых для представления видео (например, который определяется скоростью передачи данных), сложностью алгоритмов кодирования и декодирования, чувствительностью к потерям и ошибкам данных, простотой редактирования, произвольным доступом, сквозной задержкой (например, запаздыванием) и т.п.Complex relationships may exist between video quality, the amount of data used to represent the video (e.g., as determined by the bit rate), the complexity of encoding and decoding algorithms, sensitivity to data loss and errors, ease of editing, random access, end-to-end delay (e.g., lag), etc.
Раскрытие сущности изобретенияDisclosure of the essence of the invention
В одном аспекте декодер включает в себя схему, выполненную с возможностью приема битового потока, разделения текущего блока с использованием режима экспоненциального разделения на первую область и вторую область, определения вектора движения, ассоциированного с областью из первой области или второй области, где определение включает в себя формирование списка кандидатов и декодирование текущего блока с использованием определенного вектора движения.In one aspect, a decoder includes a circuit configured to receive a bit stream, divide a current block using an exponential division mode into a first region and a second region, determine a motion vector associated with a region from the first region or the second region, where the determining includes generating a candidate list, and decoding the current block using the determined motion vector.
В другом аспекте способ включает в себя прием, декодером, битового потока, разделение, декодером, текущего блока с использованием режима экспоненциального разделения на первую область и вторую область, определение декодером движения вектор, ассоциированный с областью первой области или второй области, определение включает в себя формирование списка кандидатов, и декодирование, декодером, текущего блока с использованием определенного вектора движения.In another aspect, the method includes receiving, by a decoder, a bit stream, dividing, by the decoder, a current block using an exponential division mode into a first region and a second region, determining, by the decoder, a motion vector associated with a region of the first region or the second region, determining includes forming a candidate list, and decoding, by the decoder, the current block using the determined motion vector.
Подробности одного или нескольких вариантов предмета изобретения, описанного в данном документе, изложены ниже на сопроводительных чертежах и в описании. Другие признаки и преимущества объекта изобретения, описанного в данном документе, будут очевидны из описания и чертежей и из формулы изобретения.The details of one or more embodiments of the subject matter of the invention described herein are set forth below in the accompanying drawings and in the description. Other features and advantages of the subject matter of the invention described herein will be apparent from the description and drawings and from the claims.
Краткое описание чертежейBrief description of the drawings
В целях иллюстрации изобретения на чертежах показаны аспекты одного или нескольких вариантов осуществления изобретения. Однако следует понимать, что настоящее изобретение не ограничивается точными компоновками и инструментами, показанными на чертежах, на которых:For purposes of illustrating the invention, the drawings show aspects of one or more embodiments of the invention. However, it should be understood that the present invention is not limited to the precise arrangements and instruments shown in the drawings, in which:
фиг. 1 – схема, иллюстрирующая пример блочного разделения пикселей;Fig. 1 – diagram illustrating an example of block division of pixels;
фиг. 2 – схема, иллюстрирующая пример геометрического разделения;Fig. 2 is a diagram illustrating an example of geometric separation;
фиг. 3 – изображение, содержащее яблоко, которое не может быть эффективно разделено криволинейными сегментами;Fig. 3 – an image containing an apple that cannot be effectively divided by curved segments;
фиг. 4A – схема, иллюстрирующая пример экспоненциального разделения согласно некоторым аспектам текущего предмета изобретения, которое позволяет повысить эффективность сжатия;Fig. 4A is a diagram illustrating an example of exponential partitioning according to certain aspects of the present subject matter that can improve compression efficiency;
фиг. 4B – ряд схем, иллюстрирующих примерные шаблонные экспоненциальные разделы;Fig. 4B is a series of diagrams illustrating exemplary template exponential sections;
фиг. 4C – примерные кривые, ассоциированные с 4 заданными коэффициентами, которые могут определять примерную экспоненциальную функцию;Fig. 4C - example curves associated with 4 given coefficients that can define an example exponential function;
фиг. 4D – другой примерный блок, показывающий разные начальные индексы P1 и конечные P2, которые разделяют прямоугольный блок;Fig. 4D is another exemplary block showing the different starting indices P1 and ending indices P2 that divide the rectangular block;
фиг. 5 – схема, иллюстрирующая примерные позиции потенциальных кандидатов вектора движения по отношению к примерному текущему блоку, разделенному в соответствии с экспоненциальным разделением;Fig. 5 is a diagram illustrating exemplary positions of potential motion vector candidates relative to an exemplary current block partitioned according to exponential partitioning;
фиг. 6 иллюстрирует фиг. 5 с аннотацией, показывающей местоположения яркости, в том числе крайнее левое верхнее местоположение яркости первой области и крайнее верхнее правое местоположение яркости второй области;Fig. 6 illustrates Fig. 5 with an annotation showing luminance locations including the upper leftmost luminance location of the first region and the upper rightmost luminance location of the second region;
фиг. 7 – схема, иллюстрирующая позиции потенциальных кандидатов вектора движения относительно примерного текущего блока, разделенного в соответствии с экспоненциальным разделением;Fig. 7 is a diagram illustrating the positions of potential motion vector candidates relative to an exemplary current block divided according to exponential partitioning;
фиг. 8 иллюстрирует фиг. 7 с аннотацией, показывающей местоположения яркости, в том числе крайнее левое нижнее местоположение яркости второй области и крайнее правое верхнее местоположение яркости второй области;Fig. 8 illustrates Fig. 7 with an annotation showing luminance locations including the leftmost lower luminance location of the second region and the rightmost upper luminance location of the second region;
фиг. 9 – блок-схема системы, иллюстрирующая пример видеокодера, выполненного с возможностью кодирования видео с использованием межкадрового предсказания с экспоненциальным разделением;Fig. 9 is a block diagram of a system illustrating an example of a video encoder configured to encode video using interframe prediction with exponential division;
фиг. 10 – пример разделения кадра QTBT;Fig. 10 – example of QTBT frame division;
фиг. 11 – пример экспоненциального разделения на уровне CU QTBT, показанного на фиг. 8;Fig. 11 is an example of exponential splitting at the CU QTBT level shown in Fig. 8;
фиг. 12 – блок-схема последовательности операций процесса, иллюстрирующая примерный процесс кодирования видео с экспоненциальным разделением и межкадровым предсказанием согласно некоторым аспектам текущего предмета изобретения, который позволяет снизить сложность кодирования при одновременном повышении эффективности сжатия;Fig. 12 is a flow chart illustrating an exemplary process for coding video with exponential partitioning and interframe prediction according to certain aspects of the present subject matter, which reduces coding complexity while increasing compression efficiency;
фиг. 13 – блок-схема системы, иллюстрирующая примерный декодер, выполненный с возможностью декодирования битового потока с использованием экспоненциального разделения и межкадрового предсказания согласно некоторым аспектам текущего предмета изобретения;Fig. 13 is a block diagram of a system illustrating an example decoder configured to decode a bitstream using exponential division and inter-frame prediction according to certain aspects of the present subject matter;
фиг. 14 – блок-схема последовательности операций процесса, иллюстрирующая примерный процесс декодирования битового потока с использованием экспоненциального разделения и межкадрового предсказания согласно некоторым аспектам текущего предмета изобретения; иFig. 14 is a flow chart illustrating an example process for decoding a bitstream using exponential partitioning and inter-frame prediction according to certain aspects of the present subject matter; and
фиг. 15 – блок-схема вычислительной системы, которая может использоваться для реализации любой одной или нескольких методологий, раскрытых в данном документе и любой одной или нескольких их частей.Fig. 15 is a block diagram of a computing system that can be used to implement any one or more of the methodologies disclosed herein and any one or more portions thereof.
Чертежи необязательно выполнены в масштабе, и возможны иллюстрации с использованием пунктирных линий, схематичных представлений и фрагментарных видов. В некоторых случаях могут быть опущены детали, которые не являются необходимыми для понимания вариантов осуществления или которые затрудняют восприятие других деталей. Одинаковые ссылочные позиции на различных чертежах обозначают одинаковые элементы.The drawings are not necessarily drawn to scale and may be illustrated using dashed lines, schematic representations and fragmentary views. In some cases, details that are not necessary for understanding the embodiments or that obscure other details may be omitted. The same reference numerals in different drawings designate the same elements.
Осуществление изобретенияImplementation of the invention
Некоторые реализации настоящего предмета изобретения включают в себя выполнение межкадрового предсказания с непрямоугольными областями, которые были разделены кривой, при этом кривая быть или не может быть прямой линией. Выполнение межкадрового предсказания с непрямоугольными блоками, которые были разделены кривой, позволяет провести разделение, которое будет более точно следовать за границами объекта, что приведет к более низкой ошибке предсказания компенсации движения, меньшим остаткам и, таким образом, к повышению эффективности сжатия. Во время межкадрового предсказания компенсация движения может выполняться с использованием векторов движения, предсказанных для блоков (например, единиц кодирования, единиц предсказания и т.п.), определенных согласно режиму экспоненциального разделения. Векторы движения могут быть предсказаны с использованием улучшенного предсказания вектора движения (AMVP) и/или с использованием режима слияния, где вектор движения выбирается из списка кандидатов вектора движения без кодирования разности векторов движения.Some implementations of the present subject matter include performing inter-picture prediction with non-rectangular regions that have been divided by a curve, wherein the curve may or may not be a straight line. Performing inter-picture prediction with non-rectangular blocks that have been divided by a curve allows for a division that will more accurately follow the object boundaries, which will result in a lower motion compensation prediction error, smaller residuals and, thus, an increase in compression efficiency. During inter-picture prediction, motion compensation can be performed using motion vectors predicted for blocks (e.g., coding units, prediction units, etc.) determined according to an exponential division mode. Motion vectors can be predicted using enhanced motion vector prediction (AMVP) and/or using a fusion mode, where the motion vector is selected from a list of motion vector candidates without encoding the difference of the motion vectors.
При экспоненциальном разделении прямоугольный блок может быть разделен на непрямоугольные области кривой, которая может включать в себя прямолинейный сегмент в случае геометрического разделения, или может быть, в более общем случае, кривой, которая не является прямой линией. Использование кривой, которая не является прямой линией для разделения блоков, позволить провести разделение, которое будет более точно следовать за границами объекта, что приведет к более низкой ошибке предсказания компенсации движения, меньшим остаткам и, таким образом, к повышению эффективности сжатия. В некоторых реализациях кривая может характеризоваться экспоненциальной функцией. Кривая (например, экспоненциальная функция) может быть определена с использованием заданных коэффициентов, которые могут быть просигнализированы в битовом потоке для использования декодером. В некоторых реализациях экспоненциальное разделение может быть доступно для выборок яркости, превышающих или равных размеру 8×8. Посредством разделения прямоугольных блоков кривой текущий объект позволяет достичь большей эффективности сжатия для определенных объектов, чем технологии, ограниченные разделением на прямолинейные сегменты, например, с использованием геометрического разделения.In exponential partitioning, a rectangular block may be partitioned into non-rectangular regions by a curve, which may include a straight line segment in the case of geometric partitioning, or may be, more generally, a curve that is not a straight line. Using a curve that is not a straight line to partition blocks allows for a partition that follows object boundaries more closely, resulting in lower motion compensation prediction error, smaller residuals, and thus improved compression efficiency. In some implementations, the curve may be characterized by an exponential function. The curve (e.g., the exponential function) may be defined using specified coefficients that may be signaled in the bitstream for use by the decoder. In some implementations, exponential partitioning may be available for luma samples greater than or equal to 8x8. By dividing rectangular blocks of curve, the current object allows for greater compression efficiency for certain objects than technologies limited to dividing into straight-line segments, such as using geometric partitioning.
Компенсация движения может включать в себя подход к предсказанию видеокадра или его части с учетом предыдущих и/или будущих кадров путем учета движения камеры и/или объектов в видео. Компенсация движения может использоваться при кодировании и декодировании видеоданных для сжатия видео, например, при кодировании и декодировании с использованием стандарта экспертной группы по вопросам движущегося изображения (MPEG)-2 (также называемого усовершенствованным кодированием видео (AVC)). Компенсация движения позволяет описать картинку в терминах преобразования контрольной картинки в текущую картинку. Контрольная картинка может быть предыдущей или будущей во времени картинкой по сравнению с текущей картинкой. Когда изображения могут быть точно синтезированы из ранее переданных и/или сохраненных изображений, эффективность сжатия может быть повышена.Motion compensation may include an approach to predicting a video frame or part of a video frame given previous and/or future frames by taking into account the motion of the camera and/or objects in the video. Motion compensation may be used in encoding and decoding video data for video compression, such as encoding and decoding using the Moving Picture Experts Group (MPEG)-2 standard (also called Advanced Video Coding (AVC)). Motion compensation allows a picture to be described in terms of a transformation from a reference picture to a current picture. The reference picture may be a previous or future picture in time compared to the current picture. When pictures can be accurately synthesized from previously transmitted and/or stored pictures, compression efficiency can be improved.
Блочное разделение может относиться к способу кодирования видео для нахождения областей схожего движения. Некоторую форму разделения блоков можно найти в стандартах видеокодеков, включая MPEG-2, H.264 (также называемый AVC или MPEG-4 часть 10) и H.265 (также называемый высокоэффективным кодированием видео (HEVC)). В примерных подходах к разделению блоков неперекрывающиеся блоки видеокадра могут быть разделены на прямоугольные подблоки для нахождения разделений блоков, которые содержат пиксели с аналогичным движением. Этот подход может хорошо работать тогда, когда все пиксели разделения блока имеют схожее движение. Движение пикселей в блоке может определяться относительно ранее кодированных кадров.Block partitioning can refer to a method of encoding video to find areas of similar motion. Some form of block partitioning can be found in video codec standards including MPEG-2, H.264 (also called AVC or MPEG-4 Part 10), and H.265 (also called High Efficiency Video Coding (HEVC)). In exemplary approaches to block partitioning, non-overlapping blocks of a video frame can be divided into rectangular sub-blocks to find block partitions that contain pixels with similar motion. This approach can work well when all the pixels in a block partition have similar motion. The motion of pixels in a block can be determined relative to previously encoded frames.
На фиг. 1 показана схема, иллюстрирующая пример блочного разделения пикселей. Исходная прямоугольная картинка или блок 100, который сам может быть подблоком (например, узлом в дереве кодирования), может быть разделен на прямоугольные подблоки. Например, на этапе 110 блок 100 разделяется на два прямоугольных подблока 110a и 110b. Затем подблоки 110a и 110b могут обрабатываться по отдельности. В качестве другого примера, на этапе 120 блок 100 разделяется на четыре прямоугольных подблока 120a, 120b, 120c и 120d. Сами подблоки можно дополнительно разделять до тех пор, пока не будет определено, что пиксели внутри подблоков разделяют одно и то же движение, не будет достигнут минимальный размер блока или другие критерии. Когда пиксели в подблоке имеют аналогичное движение, вектор движения может описывать движение всех пикселей в этой области.Fig. 1 shows a diagram illustrating an example of block division of pixels. An original rectangular picture or block 100, which itself can be a sub-block (e.g., a node in a coding tree), can be divided into rectangular sub-blocks. For example, in step 110, the block 100 is divided into two rectangular sub-blocks 110a and 110b. Sub-blocks 110a and 110b can then be processed separately. As another example, in step 120, the block 100 is divided into four rectangular sub-blocks 120a, 120b, 120c and 120d. The sub-blocks themselves can be further divided until it is determined that the pixels within the sub-blocks share the same motion, a minimum block size is reached, or other criteria are met. When the pixels in a sub-block have similar motion, the motion vector can describe the motion of all pixels in this area.
По-прежнему со ссылкой на фиг. 1, некоторые подходы к кодированию видео могут включать в себя геометрическое разделение, которое может быть формой экспоненциального разделения, в котором прямоугольный блок (например, как показано на фиг. 1) дополнительно разделен прямолинейным сегментом на две области, которые могут быть непрямоугольными. Например, на фиг. 2 показана схема, иллюстрирующая пример геометрического разделения. Примерный прямоугольный блок 200 (который может иметь ширину M пикселей и высоту N пикселей, обозначенные как M×N пикселей) может быть разделен вдоль прямолинейного сегмента P1P2 205 на две области (область 0 и область 1). Когда пиксели в области 0 имеют аналогичное движение, вектор движения может описывать движение всех пикселей в этой области. Вектор движения может использоваться для сжатия области 0. Аналогичным образом, когда пиксели в области 1 имеют аналогичное движение, ассоциированный вектор движения может описывать движение пикселей в области 1. Такое геометрическое разбиение может быть просигнализировано в приемник (например, декодер) путем кодирования позиций P1 и P2 (или представлений позиций P1 и P2) в битовом потоке видео.Still referring to Fig. 1, some approaches to video coding may include geometric partitioning, which may be a form of exponential partitioning, in which a rectangular block (e.g., as shown in Fig. 1) is further divided by a rectilinear segment into two regions, which may be non-rectangular. For example, Fig. 2 shows a diagram illustrating an example of geometric partitioning. An exemplary rectangular block 200 (which may have a width of M pixels and a height of N pixels, denoted as M×N pixels) may be divided along a rectilinear segment P1P2 205 into two regions (region 0 and region 1). When the pixels in region 0 have similar motion, the motion vector may describe the motion of all pixels in this region. The motion vector can be used to compress region 0. Similarly, when pixels in region 1 have similar motion, the associated motion vector can describe the motion of pixels in region 1. Such a geometric partition can be signaled to a receiver (e.g., a decoder) by encoding positions P1 and P2 (or representations of positions P1 and P2) in the video bitstream.
По-прежнему со ссылкой на фиг. 2, при кодировании видеоданных с использованием геометрического разделения может быть определен прямолинейный сегмент 205 (или, более конкретно, точки P1 и P2). Однако прямолинейный сегмент может не иметь возможности разделить блок таким образом, чтобы отражать границы объекта. В результате, разделение прямолинейными сегментами может не иметь возможности обеспечить эффективное разделение блока (например, таким образом, чтобы любой результирующий остаток был маленьким). Это может быть верно в тех случаях, когда блок может содержать пиксели (например, выборки яркости), представляющие объект или границу, имеющую кривую (например, непрямую) границу. Например, на фиг. 3 показан примерный вариант осуществления изображения, содержащего яблоко, которое не может быть эффективно разделено прямолинейными сегментами, причем изображение яблока, как показано, включает в себя несколько прямоугольных блоков, указывающих фрагменты изображения, при этом, если они разделены с использованием прямолинейного сегмента в соответствии с геометрическим разделением, разделение может не точно следовать за границей объекта (например, яблока), которая, как показано на фиг. 3, является кривой.Still referring to Fig. 2, when encoding video data using geometric partitioning, a rectilinear segment 205 (or, more specifically, points P1 and P2) may be defined. However, a rectilinear segment may not be able to partition a block in a way that reflects the boundaries of an object. As a result, partitioning with rectilinear segments may not be able to provide an efficient partition of a block (e.g., in a way that any resulting remainder is small). This may be true in cases where a block may contain pixels (e.g., luminance samples) representing an object or a boundary having a curved (e.g., non-straight) boundary. For example, Fig. 3 shows an example embodiment of an image containing an apple that cannot be efficiently partitioned with rectilinear segments, wherein the image of the apple, as shown, includes several rectangular blocks indicating portions of the image, wherein if they are partitioned using a rectilinear segment according to the geometric partitioning, the partition may not accurately follow the boundary of the object (e.g., the apple), which, as shown in Fig. 3, is a curve.
На фиг. 4A показана схема, иллюстрирующая неограничивающий пример экспоненциального разделения с использованием нелинейной кривой, определенной для целей настоящего раскрытия как кривая, которая не является прямой линией, согласно некоторым аспектам настоящего предмета изобретения, что позволяет повысить эффективность сжатия. Прямоугольный блок 400 может включать в себя пиксели (например, выборки яркости). Прямоугольный блок 400 может иметь, в качестве неограничивающего примера, предоставленного только для иллюстративных целей, пиксели размером 8×8 (например, выборки яркости) или более.Fig. 4A is a diagram illustrating a non-limiting example of exponential division using a non-linear curve, defined for the purposes of the present disclosure as a curve that is not a straight line, according to some aspects of the present subject matter, which allows for increased compression efficiency. A rectangular block 400 may include pixels (e.g., brightness samples). The rectangular block 400 may have, as a non-limiting example provided for illustrative purposes only, pixels of size 8×8 (e.g., brightness samples) or more.
На фиг. 4A прямоугольный блок 400 может быть разделен на две или более областей, показанных для иллюстративных целей на фиг. 4A как область 0 и область 1, обозначенные поз. 410 и поз. 415, соответственно, кривой линией 405. Все выборки яркости в каждой определенной таким образом области могут рассматриваться как имеющие одинаковое или аналогичное движение и, таким образом, быть могут представлены с использованием одного и того же вектора движения. Чтобы проиллюстрировать примерные цели, можно считать, что все выборки яркости в области 410 имеют одинаковое или аналогичное движение и могут быть представлены одним и тем же вектором движения. Аналогичным образом, можно считать, что все выборки яркости в области 415 имеют одинаковое или аналогичное движение и могут быть представлены одним и тем же вектором движения. Как будет описано более подробно ниже, соответствующие векторы движения могут определяться в соответствии с режимом AMVP или режимом слияния. В некоторых реализациях и для целей обсуждения все выборки яркости слева или выше криволинейного сегмента 405, разделяющего прямоугольный блок 400, могут считаться принадлежащими области 0 (410). В некоторых реализациях все выборки яркости справа или ниже криволинейного сегмента 405, разделяющего прямоугольный блок 400, могут считаться принадлежащими области 1 (415). В некоторых реализациях все выборки яркости, через которые проходит криволинейный сегмент, разделяющий прямоугольный блок 400 (то есть выборки яркости на прямолинейном сегменте и/или пересекаемые им), принадлежат области 0 (410). В некоторых реализациях все выборки яркости, через которые проходит криволинейный сегмент, разделяющий прямоугольный блок 400, могут считаться принадлежащими области 1 (415). Возможны и другие реализации, что будет очевидно специалистам в данной области техники после ознакомления с настоящим раскрытием в целом.In Fig. 4A, the rectangular block 400 can be divided into two or more regions, shown for illustrative purposes in Fig. 4A as region 0 and region 1, designated at 410 and 415, respectively, by the curved line 405. All of the brightness samples in each region defined in this way can be considered to have the same or similar motion and, thus, can be represented using the same motion vector. To illustrate exemplary purposes, it can be considered that all of the brightness samples in region 410 have the same or similar motion and can be represented by the same motion vector. Similarly, it can be considered that all of the brightness samples in region 415 have the same or similar motion and can be represented by the same motion vector. As will be described in more detail below, the respective motion vectors can be determined in accordance with the AMVP mode or the fusion mode. In some implementations and for purposes of discussion, all luminance samples to the left of or above the curved segment 405 dividing the rectangular block 400 may be considered to belong to region 0 (410). In some implementations, all luminance samples to the right of or below the curved segment 405 dividing the rectangular block 400 may be considered to belong to region 1 (415). In some implementations, all luminance samples through which the curved segment dividing the rectangular block 400 passes (i.e., luminance samples on and/or intersected by the rectilinear segment) belong to region 0 (410). In some implementations, all luminance samples through which the curved segment dividing the rectangular block 400 passes may be considered to belong to region 1 (415). Other implementations are possible, as will be apparent to those skilled in the art after reading the present disclosure as a whole.
По-прежнему со ссылкой на фиг. 4A, экспоненциальное разделение может быть представлено в битовом потоке. В некоторых реализациях может использоваться режим экспоненциального разделения, и соответствующие параметры могут передаваться в битовом потоке. Например, экспоненциальное разделение может быть представлено в битовом потоке посредством сигнализации заданных шаблонов экспоненциального разделения. На фиг. 4B показан ряд схем, иллюстрирующих неограничивающие примеры шаблонных разделов 420-435. В некоторых реализациях сигнализация может выполняться путем включения индекса в один или несколько из этих регулярных (например, шаблонных) экспоненциальных разделов, которые были заданы. Эти регулярные экспоненциальные разделения могут указывать набор заданных ориентаций. Например, на фиг. 4C показаны неограничивающие примеры кривых, ассоциированных с 4-мя заданными шаблонами (1, 2, 3, 4). В некоторых реализациях количество изгибов шаблона может варьироваться.Still referring to Fig. 4A, the exponential division may be represented in the bitstream. In some implementations, the exponential division mode may be used and the corresponding parameters may be transmitted in the bitstream. For example, the exponential division may be represented in the bitstream by signaling specified exponential division patterns. Fig. 4B shows a number of diagrams illustrating non-limiting examples of pattern sections 420-435. In some implementations, the signaling may be performed by including an index into one or more of these regular (e.g., patterned) exponential sections that have been specified. These regular exponential divisions may indicate a set of specified orientations. For example, Fig. 4C shows non-limiting examples of curves associated with 4 specified patterns (1, 2, 3, 4). In some implementations, the number of bends in the pattern may vary.
По-прежнему со ссылкой на фиг. 4B и в качестве другого неограничивающего примера, экспоненциальные разделы могут быть представлены в битовом потоке посредством сигнализации заданных коэффициентов, таких как коэффициенты экспоненциальных функций, которые указывают степень кривизны, которая может допускать дополнительные экспоненциальные функции.Still referring to Fig. 4B and as another non-limiting example, exponential sections may be represented in the bitstream by signaling specified coefficients, such as coefficients of exponential functions that indicate the degree of curvature that may allow additional exponential functions.
В некоторых реализациях, по-прежнему со ссылкой на фиг. 4B, заданный шаблон из множества шаблонов 420-435, используемых в режиме экспоненциального разделения, может указывать прямолинейный сегмент. Например, на фиг. 4С сегмент, индексированный коэффициентом 1, представляет собой прямую линию, которую можно рассматривать как частный случай экспоненциального разделения, то есть геометрического разделения, которое описано выше.In some implementations, still referring to Fig. 4B, a given pattern from the plurality of patterns 420-435 used in the exponential partitioning mode may indicate a straight line segment. For example, in Fig. 4C, the segment indexed by a factor of 1 is a straight line, which can be considered a special case of exponential partitioning, that is, the geometric partitioning described above.
В некоторых реализациях оба шаблона ориентации, которые показаны, например, на фиг. 4B, и заданные шаблоны, которые показаны, например, на фиг. 4C, могут использоваться для эффективной сигнализации любого экспоненциального шаблона большого количества потенциальных экспоненциальных разделов; например, шаблоны могут предоставлять опции 440 кривой, включая, без ограничения, прямолинейный сегмент 1 и/или одну или более нелинейных кривых 2-4, которые могут включать в себя экспоненциальные кривые, каждая из которых может быть выбрана кодером, пользователем и/или с помощью автоматизированного процесса создания раздела, как описано в настоящем раскрытии.In some implementations, both orientation patterns, such as those shown in Fig. 4B, and predetermined patterns, such as those shown in Fig. 4C, may be used to efficiently signal any exponential pattern of a plurality of potential exponential partitions; for example, the patterns may provide curve options 440, including, but not limited to, a straight-line segment 1 and/or one or more non-linear curves 2-4, which may include exponential curves, each of which may be selected by an encoder, a user, and/or by an automated partition creation process, as described in this disclosure.
В некоторых реализациях, по-прежнему со ссылкой на фиг. 4A, индексы начальной точки и конечной точки могут быть заданы заранее. Например, на фиг. 4A показан примерный криволинейный сегмент, начинающийся в нижнем левом углу прямоугольного блока 400 и заканчивающийся в верхнем правом углу прямоугольного блока 400. Такие заданные индексы начальной точки и конечной точки могут быть сохранены в памяти декодера. Альтернативно или дополнительно, в некоторых реализациях, индексы начальной точки и конечной точки могут явным образом сигнализироваться в битовом потоке. Например, на фиг. 4D представлен другой примерный блок, показывающий разные индексы начальной точки P1 и конечной точки P2, которые разделяют прямоугольный блок 400. Индексы начальной точки P1 и конечной точки P2 могут сигнализироваться напрямую или могут указываться индексом в наборе заданных значений. Возможны и другие параметры, которые будут понятны специалистам в данной области техники после ознакомления с настоящим раскрытием в целом.In some implementations, still referring to Fig. 4A, the indices of the starting point and the ending point may be predetermined. For example, Fig. 4A shows an example curved segment that starts at the lower left corner of the rectangular block 400 and ends at the upper right corner of the rectangular block 400. Such predetermined indices of the starting point and the ending point may be stored in the decoder memory. Alternatively or additionally, in some implementations, the indices of the starting point and the ending point may be explicitly signaled in the bitstream. For example, Fig. 4D shows another example block showing different indices of the starting point P1 and the ending point P2 that divide the rectangular block 400. The indices of the starting point P1 and the ending point P2 may be signaled directly or may be indicated by an index in a set of predetermined values. Other parameters are also possible, which will be understood by those skilled in the art after reading the present disclosure as a whole.
По-прежнему со ссылкой на фиг. 4A, межкадровое предсказание может выполняться с использованием областей, которые были разделены экспоненциально. Векторы движения для компенсации движения могут быть получены с использованием AMVP или режима слияния. В режиме AMVP предсказание вектора движения может быть выполнено путем сигнализации индекса в список кандидатов вектора движения, и разность векторов движения (например, остаток) может быть закодирована и включена в битовый поток. В режиме слияния вектор движения выбирается из списка кандидатов вектора движения без кодирования разности векторов движения, тем самым позволяя текущему блоку принимать информацию движения другого ранее декодированного блока. Как в режиме AMVP, так и в режиме слияния список кандидатов может быть сформирован как кодером, так и декодером, и индекс в списке кандидатов может быть просигнализирован в битовом потоке.Still referring to Fig. 4A, inter-frame prediction can be performed using regions that have been exponentially divided. Motion vectors for motion compensation can be obtained using AMVP or a fusion mode. In the AMVP mode, motion vector prediction can be performed by signaling an index into a motion vector candidate list, and a motion vector difference (e.g., a residual) can be encoded and included in a bitstream. In the fusion mode, a motion vector is selected from a motion vector candidate list without encoding a motion vector difference, thereby allowing the current block to receive motion information of another previously decoded block. In both the AMVP and fusion modes, the candidate list can be generated by both the encoder and the decoder, and the index into the candidate list can be signaled in the bitstream.
На фиг. 5 показана схема, иллюстрирующая неограничивающие примеры местоположений потенциальных кандидатов вектора пространственного движения относительно примерного текущего блока 1100, разделенного в соответствии с экспоненциальным разделением. Потенциальные кандидаты векторов пространственного движения могут рассматриваться для формирования списка кандидатов векторов движения в режиме AMVP или режиме слияния. В качестве неограничивающего примера, текущий блок 1100 может быть разделен на две области, область S0 и область S1, кривой между точками P0 и P1. Каждая из области S0 и области S1 может быть предсказана в одном или двух направлениях. Пространственные кандидаты для первой области (область S0) показаны для иллюстративных целей на фиг. 5 и могут включать в себя, без ограничения, нижний левый кандидат A0, левый кандидат A1, верхний левый кандидат B2, верхний кандидат B1 и верхний правый кандидат B0.Fig. 5 is a diagram illustrating non-limiting examples of locations of potential spatial motion vector candidates relative to an exemplary current block 1100 partitioned according to an exponential partition. The potential spatial motion vector candidates may be considered to form a list of motion vector candidates in the AMVP mode or the merging mode. As a non-limiting example, the current block 1100 may be partitioned into two regions, region S0 and region S1, by a curve between points P0 and P1. Each of region S0 and region S1 may be predicted in one or two directions. Spatial candidates for the first region (region S0) are shown for illustrative purposes in Fig. 5 and may include, without limitation, lower left candidate A0, left candidate A1, upper left candidate B2, upper candidate B1, and upper right candidate B0.
Как показано на фиг. 5, и в некоторых реализациях каждое местоположение (A0, A1, B2, B1 и B0) может представлять блок в соответствующем местоположении. Например, и без ограничения, левый верхний кандидат B2 может представлять блок, который находится в местоположении, которое находится непосредственно слева и непосредственно над областью S0; например, если местоположение яркости верхнего левого угла S0 равно (0, 0), то верхний левый кандидат может находиться в местоположении (-1, -1). Нижний левый кандидат A0 может располагаться непосредственно слева и ниже от P1; например, и без ограничения, если местоположением яркости P1 является (P1x, P1y), нижний левый кандидат A0 может находиться в местоположении (P1x-1, P1y+1). Левый кандидат A1 может располагаться непосредственно слева от P1; например, левый кандидат A1 может постоянно находиться в местоположении (P1x-1, P1y). Верхний кандидат B1 может быть расположен непосредственно над P0; или, например, если местоположением яркости P0 является (P0x, P0y), верхний кандидат B1 расположен в (P0x, P0y-1). Правый верхний кандидат B0 может быть расположен непосредственно над самым верхним и крайним правым местоположением яркости во второй области S1; или, например, если верхний правый угол S1 расположен в (S0_width+S1_width-1, 0), то правый верхний кандидат B0 может быть расположен в (S0_width+S1_width-1, -1), где M = S0_width+S1_width. Возможны и другие местоположения, как будет понятно специалистам в данной области техники после ознакомления настоящего раскрытия в целом. Фиг. 6 иллюстрирует фиг. 5 с аннотацией, показывающей местоположения яркости, в том числе крайнее левое верхнее местоположение яркости первой области S0 и крайнее верхнее правое местоположение яркости второй области S1.As shown in Fig. 5, and in some implementations, each location (A0, A1, B2, B1, and B0) may represent a block at the corresponding location. For example, and without limitation, the upper left candidate B2 may represent a block that is at a location that is immediately to the left of and immediately above the region S0; for example, if the brightness location of the upper left corner of S0 is (0, 0), then the upper left candidate may be at the location (-1, -1). The lower left candidate A0 may be located immediately to the left of P1; for example, and without limitation, if the brightness location of P1 is (P1x, P1y), the lower left candidate A0 may be at the location (P1x-1, P1y+1). The left candidate A1 may be located immediately to the left of P1; for example, the left candidate A1 may reside at the location (P1x-1, P1y). The upper candidate B1 may be located immediately above P0; or, for example, if the location of the brightness P0 is (P0x, P0y), the upper candidate B1 is located at (P0x, P0y-1). The upper right candidate B0 may be located immediately above the uppermost and rightmost brightness location in the second region S1; or, for example, if the upper right corner of S1 is located at (S0_width+S1_width-1, 0), then the upper right candidate B0 may be located at (S0_width+S1_width-1, -1), where M = S0_width+S1_width. Other locations are also possible, as will be understood by those skilled in the art after reading the present disclosure as a whole. Fig. 6 illustrates Fig. 5 with an annotation showing brightness locations, including the upper leftmost brightness location of the first region S0 and the upper rightmost brightness location of the second region S1.
В некоторых реализациях, по-прежнему со ссылкой на фиг. 6, при формировании списка кандидатов для области S0 некоторые из потенциальных кандидатов могут быть автоматически помечены как недоступные и удалены из списка, так как при экспоненциальном разделении такое разделение может выполняться для разделения областей (или объектов) в кадре, которые имеют разную информацию движения. Соответственно, можно сделать вывод, что блоки, ассоциированные с этими кандидатами, вероятно, представляют другой объект с другим движением, и поэтому эти кандидаты могут быть автоматически помечены как недоступные (например, дополнительно нерассмотренные, удаленные из списка и т.п.). В качестве неограничивающего примера и как показано выше на фиг. 5, для области S0 нижний левый кандидат A0 может быть автоматически помечен как недоступный, так как вполне вероятно, что область S0 совместно не использует информацию движения с блоком, расположенным в нижнем левом кандидате A0. Аналогичным образом, для области S0 верхний правый кандидат B0 может быть автоматически помечен как недоступный, так как вполне вероятно, что область S0 совместно не использует информацию движения с блоком, расположенным в верхнем правом кандидате B0.In some implementations, still referring to Fig. 6, when forming the candidate list for the region S0, some of the potential candidates may be automatically marked as unavailable and removed from the list, since in exponential partitioning such partitioning may be performed to separate regions (or objects) in the frame that have different motion information. Accordingly, it may be concluded that the blocks associated with these candidates are likely to represent a different object with a different motion, and therefore these candidates may be automatically marked as unavailable (e.g., not further considered, removed from the list, etc.). As a non-limiting example and as shown above in Fig. 5, for the region S0, the lower left candidate A0 may be automatically marked as unavailable, since it is likely that the region S0 does not share motion information with the block located in the lower left candidate A0. Similarly, for region S0, the top-right candidate B0 can be automatically marked as unavailable, since it is likely that region S0 does not share motion information with the block located in the top-right candidate B0.
На фиг. 7 показана схема, иллюстрирующая неограничивающие примеры местоположений потенциальных кандидатов вектора движения относительно примерного текущего блока 1400, разделенного в соответствии с экспоненциальным разделением. Возможные кандидаты вектора движения могут быть рассмотрены для формирования списка кандидатов в режиме AMVP или режиме слияния. Текущий блок 1400 мог быть разделен на две области, область S0 и область S1, кривой между точками P0 и P1. Каждая из области S0 и области S1 может быть предсказана в одном или двух направлениях. Кандидаты для второй область (области S1) показаны на фиг. 7 и могут включать в себя нижний левый кандидат A0, левый кандидата A1, верхний левый кандидат B2, верхний кандидат B1 и верхний правый кандидат B0.Fig. 7 is a diagram illustrating non-limiting examples of locations of potential motion vector candidates relative to an exemplary current block 1400 partitioned according to an exponential partition. The possible motion vector candidates may be considered to form a candidate list in an AMVP mode or a merging mode. The current block 1400 could be partitioned into two regions, region S0 and region S1, by a curve between points P0 and P1. Each of region S0 and region S1 may be predicted in one or two directions. Candidates for the second region (region S1) are shown in Fig. 7 and may include a lower left candidate A0, a left candidate A1, an upper left candidate B2, an upper candidate B1, and an upper right candidate B0.
Как показано на фиг. 7, каждое местоположение (A0, A1, B2, B1 и B0) может представлять блок в соответствующем местоположении. Например, левый верхний кандидат B2 может быть блоком, который находится в местоположении яркости, которое находится непосредственно слева и непосредственно над областью S1; например, если местоположение яркости в верхнем левом углу S1 находится рядом с P0 с координатами местоположения яркости (P0x+1, P0y), то верхний левый кандидат B2 может находиться в местоположении (P0x, P0y-1). Нижний левый кандидат A0 может быть расположен непосредственно слева и ниже самого нижнего левого местоположения яркости S1; например, если самым левым нижним местоположением яркости S1 является местоположение яркости (0, S0_height+S1_height-1), нижний левый кандидат A0 может находиться в местоположении (-1, S0_height+S1_height), где N = S0_height+S1_height. Левый кандидат A1 может быть расположен непосредственно слева от самого нижнего левого местоположения яркости S1 (например, нижнего левого угла S1); например, если крайнее левое нижнее местоположение яркости S1 является местоположением яркости (0, S0_height+S1_height-1), левый кандидат A1 может находиться в местоположении яркости (-1, S0_height+1_height-1). Верхний кандидат B1 может быть расположен непосредственно над самым правым верхним местоположением яркости S1; например, если крайнее правое верхнее местоположением яркости S1 является (S0_width+S1_width-1, 0), то верхний кандидат B1 может быть расположен в (S0_width+S1_width-1, -1), где M = S0_width+S1_width. Правый верхний кандидат B0 может быть расположен непосредственно выше и справа от самого правого верхнего местоположения яркости второй области S1; например, если крайнее правое верхнее местоположение яркости S1 (например, верхний правый угол) расположено в (S0_width+S1_width-1, 0), то правый верхний кандидат B0 может быть расположен в (S0_width+S1_width, -1). Фиг. 8 иллюстрирует фиг. 7 с аннотацией, показывающей местоположения яркости, в том числе крайнее левое нижнее местоположение яркости второй области S1 и крайнее правое верхнее местоположение яркости второй области S1.As shown in Fig. 7, each location (A0, A1, B2, B1, and B0) may represent a block at the corresponding location. For example, the upper-left candidate B2 may be a block that is at a brightness location that is immediately to the left of and immediately above region S1; for example, if the brightness location at the upper-left corner of S1 is adjacent to P0 with brightness location coordinates of (P0x+1, P0y), then the upper-left candidate B2 may be at location (P0x, P0y-1). The lower-left candidate A0 may be located immediately to the left of and below the lower-leftmost brightness location of S1; for example, if the lower-leftmost brightness location of S1 is brightness location (0, S0_height+S1_height-1), the lower-left candidate A0 may be at location (-1, S0_height+S1_height), where N = S0_height+S1_height. The left candidate A1 may be located immediately to the left of the lower-leftmost luminance location of S1 (e.g., the lower-left corner of S1); for example, if the lower-leftmost luminance location of S1 is the luminance location (0, S0_height+S1_height-1), the left candidate A1 may be located at the luminance location (-1, S0_height+1_height-1). The top candidate B1 may be located immediately above the upper-rightmost luminance location of S1; for example, if the upper-rightmost luminance location of S1 is (S0_width+S1_width-1, 0), then the upper candidate B1 may be located at (S0_width+S1_width-1, -1), where M = S0_width+S1_width. The upper-right candidate B0 may be located immediately above and to the right of the upper-rightmost luminance location of the second region S1; for example, if the rightmost upper location of the brightness of S1 (e.g., the upper right corner) is located at (S0_width+S1_width-1, 0), then the rightmost upper candidate B0 may be located at (S0_width+S1_width, -1). Fig. 8 illustrates Fig. 7 with an annotation showing brightness locations, including the leftmost lower location of the brightness of the second region of S1 and the rightmost upper location of the brightness of the second region of S1.
В некоторых реализациях, по-прежнему со ссылкой на фиг. 8, при формировании списка кандидатов для области S1 некоторые потенциальные кандидаты могут быть автоматически помечены как недоступные и удалены из списка, так как при экспоненциальном разделении такое разделение может выполняться для разделения на области (или объекты) в кадре, которые имеют различную информацию движения. Соответственно, можно сделать вывод, что блоки, ассоциированные с этими кандидатами, вероятно, представляют другой объект с другим движением, и поэтому эти кандидаты могут быть автоматически помечены как недоступные (например, как дополнительно нерассмотренные, удаленные из списка и т.п.). В примере, показанном на фиг. 7, для области S1 верхний левый кандидат B2 может быть автоматически помечен как недоступный, так как вполне вероятно, что область S1 не разделяет информацию движения с блоком, расположенным в верхнем левом кандидате B2.In some implementations, still referring to Fig. 8, when forming the candidate list for the region S1, some potential candidates may be automatically marked as unavailable and removed from the list, since in exponential partitioning such partitioning may be performed to divide into regions (or objects) in the frame that have different motion information. Accordingly, it may be concluded that the blocks associated with these candidates are likely to represent a different object with a different motion, and therefore these candidates may be automatically marked as unavailable (e.g., as not further considered, removed from the list, etc.). In the example shown in Fig. 7, for the region S1, the upper left candidate B2 may be automatically marked as unavailable, since it is likely that the region S1 does not share motion information with the block located in the upper left candidate B2.
На фиг. 9 показана блок-схема системы, иллюстрирующая неограничивающий пример видеокодера 900, выполненного с возможностью кодирования видео с использованием межкадрового предсказания с экспоненциальным разделением. Примерный видеокодер 900 принимает входное видео 905, которое может быть изначально сегментировано или разделено в соответствии со схемой обработки, такой как схема разделения блоков кодирования со структурой дерева (например, квадродерево плюс двоичное дерево (QTBT)). Пример схемы разделения блока кодирования со структурой дерева может включать в себя разделение кадра картинка на большие блочные элементы, называемые единицами дерева кодирования (CTU). В некоторых реализациях каждая CTU может быть дополнительно разделен один или несколько раз на ряд подблоков, называемых единицами кодирования (CU). Конечный результат этого разделения может включать в себя группу подблоков, которые могут назваться единицами предсказания (PU). Кроме того, могут также использоваться единицы преобразования (TU). Такая схема разделения может включать в себя выполнение экспоненциального разделения согласно некоторым аспектам настоящего предмета изобретения. На фиг. 8 показан пример QTBT-разделения кадра, и на фиг. 11 показан пример экспоненциального разделения на уровне CU QTBT, показанного на фиг. 8.Fig. 9 is a block diagram of a system illustrating a non-limiting example of a video encoder 900 configured to encode video using inter-picture prediction with exponential partitioning. An example video encoder 900 receives an input video 905 that may initially be segmented or partitioned according to a processing scheme, such as a tree-structured coding block partitioning scheme (e.g., a quad-tree plus binary tree (QTBT)). An example tree-structured coding block partitioning scheme may include partitioning a picture frame into large block elements called coding tree units (CTUs). In some implementations, each CTU may be further partitioned one or more times into a number of sub-blocks called coding units (CUs). The end result of this partitioning may include a group of sub-blocks, which may be called prediction units (PUs). In addition, transform units (TUs) may also be used. Such a partitioning scheme may include performing exponential partitioning according to some aspects of the present subject matter. Fig. 8 shows an example of QTBT frame partitioning, and Fig. 11 shows an example of exponential partitioning at the CU level of QTBT shown in Fig. 8.
По-прежнему со ссылкой на фиг. 9, примерный видеокодер 900 может включать в себя процессор 915 внутрикадрового предсказания, процессор 920 оценки/компенсации движения (также называемый процессором межкадрового предсказания), выполненный с возможностью поддержания экспоненциального разделения, в том числе режим AMVP и режим слияния, процессор 925 преобразования/квантования, процессор 930 обратного квантования/обратного преобразования, внутриконтурный фильтр 935, буфер 940 декодированных картинок и процессор 945 энтропийного кодирования. В некоторых реализациях процессор 920 оценки/компенсации движения может выполнять межкадровое предсказание с использованием экспоненциального разделения, включая использование режима AMVP и режима слияния. Параметры битового потока, которые сигнализируют режимы экспоненциального разделения, режим AMVP и режим слияния, могут вводиться в процессор 945 энтропийного кодирования для включения в выходной битовый поток 950.Still referring to Fig. 9, an example video encoder 900 may include an intra-frame prediction processor 915, a motion estimation/compensation processor 920 (also referred to as an inter-frame prediction processor) configured to support exponential partitioning, including an AMVP mode and a fusion mode, a transform/quantization processor 925, an inverse quantization/inverse transform processor 930, an in-loop filter 935, a decoded picture buffer 940, and an entropy coding processor 945. In some implementations, the motion estimation/compensation processor 920 may perform inter-frame prediction using exponential partitioning, including using the AMVP mode and the fusion mode. Bitstream parameters that signal the exponential partitioning modes, the AMVP mode, and the fusion mode may be input to the entropy coding processor 945 for inclusion in the output bitstream 950.
В процессе работы, по-прежнему со ссылкой на фиг. 9, для каждого блока кадра входного видео 905 может быть определено то, обрабатывать ли блок с помощью внутрикадрового предсказания изображения или с использованием оценки/компенсации движения. Блок может быть предоставлен в процессор 910 внутрикадрового предсказания или процессор 920 оценки/компенсации движения. Если блок должен обрабатываться посредством внутрикадрового предсказания, процессор 910 внутрикадрового предсказания может выполнять обработку для вывода предиктора. Если блок должен обрабатываться посредством оценки/компенсации движения, процессор 920 оценки/компенсации движения может выполнять обработку, включая использование экспоненциального разделения с режимом AMVP и режимом слияния для вывода предиктора.In the process of operation, still referring to Fig. 9, for each block of the frame of the input video 905, it can be determined whether the block is to be processed using intra-frame image prediction or using motion estimation/compensation. The block can be provided to the intra-frame prediction processor 910 or the motion estimation/compensation processor 920. If the block is to be processed using intra-frame prediction, the intra-frame prediction processor 910 can perform processing to output a predictor. If the block is to be processed using motion estimation/compensation, the motion estimation/compensation processor 920 can perform processing including using exponential division with the AMVP mode and the fusion mode to output the predictor.
По-прежнему со ссылкой на фиг. 9, остаток может быть сформирован путем вычитания предиктора из входного видео. Остаток может приниматься процессором 925 преобразования/квантования, который может выполнять обработку преобразования (например, дискретное косинусное преобразование (DCT)) для получения коэффициентов, которые могут квантоваться. Квантованные коэффициенты и любая ассоциированная информация сигнализации может быть предоставлена в процессор 945 энтропийного кодирования для энтропийного кодирования и включения в выходной битовый поток 950. Процессор 945 энтропийного кодирования может поддерживать кодирование информации сигнализации, относящейся к режимам экспоненциального разделения, режиму AMVP и режиму слияния. Кроме того, квантованные коэффициенты могут быть предоставлены в процессор 930 обратного квантования/обратного преобразования, который может воспроизводить пиксели, которые могут быть объединены с предиктором и обработаны контурным фильтром 935, выходные данные которого могут быть сохранены в буфере 940 декодированных картинок для использования процессором 920 оценки/компенсации движения, который способен поддерживать режимы экспоненциального разделения, режим AMVP и режим слияния.Still referring to Fig. 9, a residual can be formed by subtracting a predictor from the input video. The residual can be received by a transform/quantization processor 925, which can perform transform processing (e.g., a discrete cosine transform (DCT)) to obtain coefficients that can be quantized. The quantized coefficients and any associated signaling information can be provided to an entropy encoding processor 945 for entropy encoding and inclusion in the output bitstream 950. The entropy encoding processor 945 can support encoding of signaling information related to the exponential division modes, the AMVP mode, and the merge mode. In addition, the quantized coefficients can be provided to an inverse quantization/inverse transform processor 930, which can produce pixels that can be combined with a predictor and processed by a loop filter 935, the output of which can be stored in a decoded picture buffer 940 for use by a motion estimation/compensation processor 920, which can support exponential division modes, an AMVP mode, and a fusion mode.
На фиг. 12 показана блок-схема последовательности операций процесса, иллюстрирующая примерный процесс 1200 кодирования видео с экспоненциальным разделением и межкадровым предсказанием согласно некоторым аспектам настоящего предмета изобретения, что позволяет снизить сложность кодирования при одновременном повышении эффективности сжатия. На этапе 1210 видеокадр может подвергаться начальной блочной сегментации, например, с использованием схемы разделения блоков кодирования со структурой дерева, которая может включать в себя разделение кадра картинки на CTU и CU. На этапе 1220 блок может быть выбран для экспоненциального разделения, при этом экспоненциальное разделение может включать в себя геометрическое разделение или может включать в себя экспоненциальное разделение с использованием нелинейной кривой. Выбор может включать в себя идентификацию в соответствии с правилом метрики того, что блок должен быть обработан в соответствии с режимом экспоненциального разделения.Fig. 12 is a flow chart illustrating an example process 1200 for encoding video with exponential partitioning and inter-frame prediction according to some aspects of the present subject matter, which allows for reducing encoding complexity while increasing compression efficiency. At step 1210, a video frame may undergo initial block segmentation, for example, using a tree-structured coding block partitioning scheme, which may include partitioning a picture frame into CTUs and CUs. At step 1220, a block may be selected for exponential partitioning, wherein the exponential partitioning may include geometric partitioning or may include exponential partitioning using a nonlinear curve. The selection may include identifying, according to a metric rule, that the block should be processed in accordance with the exponential partitioning mode.
На этапе 1230, по-прежнему со ссылкой на фиг. 12, может быть определено экспоненциальное разделение. Криволинейный и/или линейный сегмент (например, 405) и/или прямолинейный и/или линейный сегмент, которые будут разделять пиксели, содержащиеся в блоке, в соответствии с их перемещением между кадрами на две непрямоугольные области (например, область 0 и область 1) могут быть определены таким образом, чтобы пиксели (например, выборки яркости) в одной из областей (например, в области 0) имели аналогичное движение, и пиксели в другой области (например, в области 1) имели аналогичное движение.At step 1230, still with reference to Fig. 12, an exponential division may be defined. A curved and/or linear segment (e.g., 405) and/or a rectilinear and/or linear segment that will divide the pixels contained in the block according to their movement between frames into two non-rectangular regions (e.g., region 0 and region 1) may be defined such that the pixels (e.g., brightness samples) in one of the regions (e.g., in region 0) have a similar movement, and the pixels in the other region (e.g., in region 1) have a similar movement.
На этапе 1240, по-прежнему со ссылкой на фиг. 12, информация движения каждой непрямоугольной области может быть определена и обработана с использованием режима AMVP или режима слияния. При обработке области с использованием режима AMVP список кандидатов может быть сформирован путем рассмотрения как пространственных, так и временных кандидатов, включая пространственные кандидаты, как описано выше, и включая пометку некоторых кандидатов как недоступных. Вектор движения может быть выбран из списка кандидатов вектора движения в качестве предсказания вектора движения, и может быть вычислена разность векторов движения (например, остаток). Индекс может быть определен в списке кандидатов. В режиме слияния список кандидатов может быть сформирован путем рассмотрения как пространственных, так и временных кандидатов, включая пространственные кандидаты, описанные выше, и включая пометку некоторых кандидатов как недоступных. Вектор движения может быть выбран из списка кандидатов вектора движения для области, чтобы получить информацию движения другого блока. Индекс может быть определен в списке кандидатов.At step 1240, still referring to FIG. 12 , the motion information of each non-rectangular region can be determined and processed using the AMVP mode or the merge mode. When processing the region using the AMVP mode, a candidate list can be formed by considering both spatial and temporal candidates, including spatial candidates as described above, and including marking some candidates as unavailable. A motion vector can be selected from the motion vector candidate list as a motion vector prediction, and a motion vector difference (e.g., a residual) can be calculated. An index can be defined in the candidate list. In the merge mode, the candidate list can be formed by considering both spatial and temporal candidates, including the spatial candidates described above, and including marking some candidates as unavailable. A motion vector can be selected from the motion vector candidate list for the region to obtain motion information of another block. An index can be defined in the candidate list.
На этапе 1250, по-прежнему со ссылкой на фиг. 12, информация об определенном экспоненциальном разделе и движении может передаваться в битовом потоке. Экспоненциальные разделы сигнализации в битовом потоке могут включать, например, включение индекса в один или несколько заданных шаблонов и/или коэффициентов. Сигнализация информации движения при обработке области с использованием AMVP может включать в себя включение разности векторов движения (например, остатка) и индекса в список кандидатов вектора движения в битовом потоке. Сигнализация информации движения при обработке области с использованием режима слияния может включать в себя включение индекса в список кандидатов вектора движения в битовом потоке.At step 1250, still referring to Fig. 12, information about the determined exponential section and the motion can be transmitted in the bitstream. Signaling exponential sections in the bitstream can include, for example, including an index in one or more specified patterns and/or coefficients. Signaling motion information when processing an area using AMVP can include including a motion vector difference (e.g., a residual) and an index in a list of motion vector candidates in the bitstream. Signaling motion information when processing an area using the merge mode can include including an index in a list of motion vector candidates in the bitstream.
На фиг. 13 показана блок-схема системы, иллюстрирующая примерный декодер 600, выполненный с возможностью декодирования битового потока 1370 с использованием экспоненциального разделения и межкадрового предсказания согласно некоторым аспектам настоящего предмета изобретения. Декодер 600 может включать в себя процессор 1310 энтропийного декодера, процессор 1320 обратного квантования и обратного преобразования, фильтр 1330 удаления блочности, буфер 1340 кадров, процессор 1350 компенсации движения и процессор 1360 внутрикадрового предсказания. В некоторых реализациях битовый поток 1370 включает в себя параметры, которые сигнализируют режим экспоненциального разделения, режим AMVP и режим слияния. Процессор 1350 компенсации движения может восстанавливать информацию о пикселях, используя экспоненциальное разделение и межкадровое предсказание, как описано в настоящем раскрытии.Fig. 13 is a block diagram of a system illustrating an example decoder 600 configured to decode a bitstream 1370 using exponential partitioning and inter-frame prediction according to some aspects of the present subject matter. The decoder 600 may include an entropy decoder processor 1310, an inverse quantization and inverse transform processor 1320, a deblocking filter 1330, a frame buffer 1340, a motion compensation processor 1350, and an intra-frame prediction processor 1360. In some implementations, the bitstream 1370 includes parameters that signal an exponential partitioning mode, an AMVP mode, and a merging mode. The motion compensation processor 1350 may recover pixel information using exponential partitioning and inter-frame prediction, as described in this disclosure.
Во время работы битовый поток 1370 может принимать декодер 600 и может подаваться в процессор 1310 энтропийного декодера, который энтропийно декодирует битовый поток в квантованные коэффициенты. Квантованные коэффициенты могут быть предоставлены в процессор 1320 обратного квантования и обратного преобразования, который может выполнять обратное квантование и обратное преобразование для создания сигнала остатка, который может быть добавлен в выходной сигнал процессора 1350 компенсации движения или процессора 1360 внутрикадрового предсказания в соответствии с режимом обработки. Выходной сигнал процессора 1350 компенсации движения и процессора 1360 внутрикадрового предсказания может включать в себя предсказание блока на основе ранее декодированного блока. Сумма предсказания и остатка может быть обработана фильтром 1330 удаления блочности и сохранена в буфере 1340 кадров. Для данного блока (например, CU или PU), когда битовый поток 1370 сигнализирует, что режимом разделения является экспоненциальное разделение, процессор 1350 компенсации движения может построить предсказание на основе подхода экспоненциального разделения, описанном в данном документе, и с использованием режимов AMVP или слияния, как описано в данном документе.During operation, the bit stream 1370 can be received by the decoder 600 and can be supplied to the entropy decoder processor 1310, which entropy decodes the bit stream into quantized coefficients. The quantized coefficients can be provided to the inverse quantization and inverse transform processor 1320, which can perform inverse quantization and inverse transform to create a residual signal, which can be added to the output signal of the motion compensation processor 1350 or the intra-frame prediction processor 1360 in accordance with the processing mode. The output signal of the motion compensation processor 1350 and the intra-frame prediction processor 1360 can include a prediction of a block based on a previously decoded block. The sum of the prediction and the residual can be processed by the deblocking filter 1330 and stored in the frame buffer 1340. For a given block (e.g., CU or PU), when bitstream 1370 signals that the partitioning mode is exponential partitioning, motion compensation processor 1350 may construct a prediction based on the exponential partitioning approach described herein and using AMVP or merging modes as described herein.
На фиг. 14 показана блок-схема последовательности операций, иллюстрирующая примерный процесс 1400 декодирования битового потока с использованием экспоненциального разделения и межкадрового предсказания согласно некоторым аспектам настоящего предмета изобретения. На этапе 1410 принимается битовый поток. Прием может включать в себя извлечение и/или синтаксический анализ битового потока и ассоциированной с ним информации сигнализации из битового потока, включая синтаксический анализ текущего блока и ассоциированной с ним информации сигнализации из битового потока.Fig. 14 is a flow chart illustrating an example process 1400 for decoding a bitstream using exponential partitioning and inter-frame prediction according to some aspects of the present subject matter. At step 1410, a bitstream is received. The reception may include extracting and/or parsing the bitstream and associated signaling information from the bitstream, including parsing a current block and associated signaling information from the bitstream.
На этапе 1420, по-прежнему со ссылкой на фиг. 14, текущий блок может быть разделен с использованием режима экспоненциального разделения на первую область и вторую область. Разделение может включать в себя определение того, включено ли режим экспоненциального разделения (например, истина) для блока, что указывает на применение экспоненциального разделения с использованием нелинейных кривых. Если режим экспоненциального разделения не включен (например, выбрано значение "ложь"), декодер может обработать блок, используя альтернативный режим экспоненциального разделения, такой как геометрическое разделение, при этом параметры для геометрического разделения, включая, без ограничения, конечные точки, сегмента линии, коэффициенты или т.п., могут быть приняты из битового потока, как описано выше. Если режим экспоненциального разделения включен (например, выбрано значение "истина"), декодер может извлечь или определить один или несколько параметров, которые характеризуют экспоненциальное разделение. Эти параметры могут включать в себя, например, индексы экспоненциальных коэффициентов, значения экспоненциальных коэффициентов, индексы шаблона ориентации и/или индексы начала и конца кривой линии (например, P1P2). Извлечение или определение может включать в себя идентификацию и извлечение параметров из битового потока (например, синтаксический анализ битового потока).In step 1420, still referring to Fig. 14, the current block may be divided using an exponential division mode into a first region and a second region. The division may include determining whether the exponential division mode is enabled (e.g., true) for the block, which indicates that exponential division is applied using nonlinear curves. If the exponential division mode is not enabled (e.g., the value "false" is selected), the decoder may process the block using an alternative exponential division mode, such as geometric division, where parameters for geometric division, including, but not limited to, end points, line segments, coefficients or the like, may be received from the bitstream, as described above. If the exponential division mode is enabled (e.g., the value "true" is selected), the decoder may extract or determine one or more parameters that characterize the exponential division. These parameters may include, for example, indices of exponential coefficients, values of exponential coefficients, indices of an orientation pattern, and/or indices of the beginning and end of a curved line (e.g., P1P2). Extraction or determination may include identification and extraction of parameters from a bitstream (e.g., parsing the bitstream).
На этапе 1430, по-прежнему со ссылкой на фиг. 14, может быть определен вектор движения, ассоциированный с областью из первой области или второй области. Определение вектора движения может включать в себя определение того, должна ли быть определена информация движения области с использованием режима AMVP или режим слияния. При обработке области с использованием режима AMVP, список кандидатов может быть сформирован с учетом как пространственных, так и временных кандидатов, в том числе пространственных кандидатов, описанных выше, и в том числе с учетом пометки некоторых кандидатов как недоступных. Вектор движения может быть выбран из списка кандидатов вектора движения в качестве предсказания вектора движения, и может быть вычислена разность вектора движения (например, остатка). В режиме слияния, определение может включать в себя формирование списка кандидатов пространственных кандидатов и временных кандидатов для каждой области. Для каждой области, пространственные кандидаты могут быть пространственными кандидатами, как описано выше со ссылкой на фиг. 5-8. Формирование списка кандидатов может включать в себя автоматическую пометку кандидатов как недоступных и удаление недоступных кандидатов из списка кандидатов. Индекс в сформированном списке кандидатов может быть синтаксически проанализирован из битового потока и может использоваться для выбора окончательного кандидата из списка кандидатов. Информация движения для текущей области может быть определена так же, как информация движения окончательного кандидата (например, вектор движения для области может быть заимствован из окончательного кандидата).At step 1430, still referring to Fig. 14, a motion vector associated with a region from the first region or the second region may be determined. Determining the motion vector may include determining whether the motion information of the region should be determined using the AMVP mode or the merge mode. When processing the region using the AMVP mode, a candidate list may be generated taking into account both spatial and temporal candidates, including the spatial candidates described above, and including taking into account marking some candidates as unavailable. A motion vector may be selected from the motion vector candidate list as a motion vector prediction, and a motion vector difference (e.g., a residual) may be calculated. In the merge mode, the determining may include generating a candidate list of spatial candidates and temporal candidates for each region. For each region, the spatial candidates may be spatial candidates as described above with reference to Figs. 5-8. Generating the candidate list may include automatically marking candidates as unavailable and removing unavailable candidates from the candidate list. The index into the generated candidate list can be parsed from the bitstream and can be used to select the final candidate from the candidate list. The motion information for the current region can be defined in the same way as the motion information of the final candidate (e.g., the motion vector for the region can be borrowed from the final candidate).
На этапе 1440, по-прежнему ссылаясь на фиг. 14, текущий блок может быть декодирован с использованием определенного вектора движения.At step 1440, still referring to Fig. 14, the current block may be decoded using the determined motion vector.
По-прежнему со ссылкой на фиг. 14, хотя некоторые варианты были подробно описаны выше, возможны другие модификации или дополнения. Например, в некоторых реализациях экспоненциальное разделение может применяться к симметричным блокам (8×8, 16×16, 32×32, 64×64, 128×128 и т.п.), а также к различным асимметричным блокам (8×4, 16×8 и т.п.).Still referring to Fig. 14, although some variants have been described in detail above, other modifications or additions are possible. For example, in some implementations, exponential partitioning may be applied to symmetric blocks (8x8, 16x16, 32x32, 64x64, 128x128, etc.) as well as to various asymmetric blocks (8x4, 16x8, etc.).
По-прежнему со ссылкой на фиг. 14, разделение может сигнализироваться в битовом потоке на основе решений относительно скорости-искажению в кодере. Кодирование может быть основано на комбинации регулярных заранее определенных разделов (например, шаблонов), пространственно-временном предсказании разбиения и дополнительных смещениях. Каждая экспоненциально разделенная область может использовать предсказание с компенсацией движения или внутрикадровое предсказание. Граница предсказываемых областей может быть сглажена перед добавлением остатка. Для остаточного кодирования кодер может выбирать между обычным прямоугольным DCT для всего блока и DCT с адаптацией к форме для каждой области.Still referring to Fig. 14, the partitioning can be signaled in the bitstream based on rate-distortion decisions in the encoder. The coding can be based on a combination of regular predefined partitions (e.g., patterns), spatiotemporal partition prediction, and additional offsets. Each exponentially partitioned region can use motion-compensated prediction or intra-frame prediction. The boundary of the predicted regions can be smoothed before adding the residual. For the residual coding, the encoder can choose between a conventional rectangular DCT for the entire block and a shape-adaptive DCT for each region.
По-прежнему со ссылкой на фиг. 14, в некоторых реализациях может быть реализовано квадродерево плюс двоичное дерево решений (QTBT). В QTBT на уровне единицы дерева кодирования параметры разделения QTBT могут быть получены динамически для адаптации к локальным характеристикам без передачи каких-либо служебных данных. Затем на уровне единицы кодирования (CU) структура дерева решений совместного классификатора может исключить ненужные итерации и контролировать риск ложного предсказания. В некоторых реализациях экспоненциальное разделение может быть доступно как дополнительная опция разделения, доступная на каждом листовом узле QTBT. В некоторых реализациях экспоненциальное разделение доступно как дополнительный инструмент кодирования на уровне CU разделения QTBT. Например, на фиг. 8 показан пример QTBT -разделения кадра, и на фиг. 11 показан пример экспоненциального разделения на уровне CU QTBT, показанного на фиг. 8.Still referring to Fig. 14, in some implementations, a quadtree plus binary decision tree (QTBT) may be implemented. In QTBT, at the coding tree unit level, the QTBT splitting parameters can be obtained dynamically to adapt to local characteristics without transmitting any overhead. Then, at the coding unit (CU) level, the decision tree structure of the joint classifier can eliminate unnecessary iterations and control the risk of false prediction. In some implementations, exponential splitting may be available as an additional splitting option available at each leaf node of QTBT. In some implementations, exponential splitting is available as an additional coding tool at the CU level of QTBT splitting. For example, Fig. 8 shows an example of QTBT splitting of a frame, and Fig. 11 shows an example of exponential splitting at the CU level of QTBT shown in Fig. 8.
В некоторых реализациях декодер включает в себя процессор экспоненциального разделения, который может вырабатывать экспоненциальное разделение для текущего блока и предоставлять всю информацию, относящуюся к разделам, для зависимых процессов. Процессор экспоненциального разделения может напрямую влиять на компенсацию движения, так как она может выполняться посегментно в случае, если блок разделен экспоненциально. Кроме того, процессор разделения может предоставлять информацию о форме в процессор внутрикадрового предсказания и процессор кодирования с преобразованием.In some implementations, the decoder includes an exponential partition processor that can generate an exponential partition for the current block and provide all partition-related information to dependent processes. The exponential partition processor can directly affect motion compensation, since it can be performed segment by segment in case the block is partitioned exponentially. In addition, the partition processor can provide shape information to the intra-frame prediction processor and the transform coding processor.
В некоторых реализациях дополнительные элементы синтаксиса могут сигнализироваться на разных иерархических уровнях битового потока. Для того, чтобы разрешить экспоненциальное разделение для всей последовательности, флаг разрешения может быть закодирован в наборе параметров последовательности (SPS). Кроме того, флаг CTU может быть закодирован на уровне единицы дерева кодирования (CTU), чтобы указать то, используют ли какие-либо единицы кодирования (CU) экспоненциальное разделение. Флаг CU может быть закодирован, чтобы указать то, использует ли текущая единица кодирования экспоненциальное разделение. Параметры, которые точно определяют кривую линию на блоке, могут быть закодированы. Для каждой области может быть декодирован флаг, который точно определяет то, предсказана ли текущая область с использованием межкадрового или внутрикадрового предсказания.In some implementations, additional syntax elements may be signaled at different hierarchical levels of the bitstream. In order to enable exponential partitioning for the entire sequence, an enable flag may be encoded in the sequence parameter set (SPS). In addition, a CTU flag may be encoded at the coding tree unit (CTU) level to indicate whether any coding units (CUs) use exponential partitioning. The CU flag may be encoded to indicate whether the current coding unit uses exponential partitioning. Parameters that specify a curved line on a block may be encoded. For each region, a flag may be decoded that specifies whether the current region is predicted using inter-frame or intra-frame prediction.
В некоторых реализациях может быть точно определен минимальный размер области.In some implementations, the minimum region size may be precisely defined.
Предмет изобретения, описанный в данном документе, обеспечивает многочисленные технические преимущества. Например, некоторые реализации текущего предмета изобретения могут предусматривать разделение блоков, что увеличивает эффективность сжатия. В некоторых реализациях, реализуя разделение таким образом, чтобы оно более точно соответствовало границам объекта, можно достичь эффективных визуальных эффектов. Аналогичным образом, в некоторых реализациях, реализуя разделение таким образом, чтобы можно было более точно следовать границам объекта, можно уменьшить блокирующие артефакты на границах объекта.The subject matter described in this document provides numerous technical advantages. For example, some implementations of the current subject matter may provide for block partitioning, which increases compression efficiency. In some implementations, implementing partitioning in a manner that more closely follows object boundaries can achieve effective visual effects. Similarly, in some implementations, implementing partitioning in a manner that more closely follows object boundaries can reduce blocking artifacts at object boundaries.
Следует отметить, что любой один или несколько аспектов и вариантов осуществления, описанных в данном документе, могут быть беспрепятственно реализованы с использованием цифровых электронных схем, интегральных схем, специализированных интегральных схем (ASIC), разработанных специально для конкретных приложений, компьютерных аппаратных средств с программируемыми вентильными матрицами (FPGA), аппаратно-программного обеспечения, программного обеспечения и/или их комбинаций, как реализованные и/или осуществленные в одной или нескольких машинах (например, в одном или нескольких вычислительных устройствах, которые используются в качестве пользовательского вычислительного устройства для электронного документа, одном или нескольких серверных устройствах, таких как сервер документов и т.д.), запрограммированных в соответствии с идеями изобретения, представленными в настоящем описания, как будет очевидно специалистам в области компьютерной техники. Эти различные аспекты или особенности могут включать реализацию в одной или нескольких компьютерных программах и/или программном обеспечении, которые являются исполняемыми и/или межкадровоепретируемыми в программируемой системе, включающей в себя по меньшей мере один программируемый процессор, который может быть специального или общего назначения и может быть подключен, для приема данных и инструкций из системы хранения и для передачи данных и инструкций в систему хранения, по меньшей мере к одному устройству ввода и по меньшей мере к одному устройству вывода. Соответствующее кодирование программного обеспечения может быть легко подготовлено квалифицированными программистами на основе идей настоящего раскрытия, как будет очевидно специалистам в области программного обеспечения. Рассмотренные выше аспекты и реализации, использующие программное обеспечение и/или программные модули, могут также включать в себя соответствующие аппаратные средства для содействия в реализации машиноисполняемых инструкций программного обеспечения и/или программного модуля.It should be noted that any one or more aspects and embodiments described herein can be readily implemented using digital electronic circuits, integrated circuits, application-specific integrated circuits (ASICs) designed specifically for specific applications, computer hardware with field-programmable gate arrays (FPGAs), firmware, software, and/or combinations thereof, as implemented and/or implemented in one or more machines (e.g., one or more computing devices that are 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 inventive ideas presented herein, as will be apparent to those skilled in the art of computer technology. These various aspects or features may include an implementation in one or more computer programs and/or software that are executable and/or inter-frame programmable in a programmable system that includes at least one programmable processor, which may be special-purpose or general-purpose and may be connected to receive data and instructions from a storage system and to transmit data and instructions to the storage system, to at least one input device and to at least one output device. The corresponding software coding can be easily prepared by skilled programmers based on the teachings of the present disclosure, as will be apparent to those skilled in the software field. The aspects and implementations discussed above using software and/or software modules may also include corresponding hardware to facilitate the implementation of computer-executable instructions of the software and/or software module.
Такое программное обеспечение может быть компьютерным программным продуктом, который использует машиночитаемый носитель информации. Машиночитаемый носитель информации может быть любым носителем информации, который способен хранить и/или кодировать последовательность инструкций для исполнения машиной (например, вычислительным устройством) и которые предписывают машине выполнять любую из методологий и/или вариантов осуществления, описанных в данном документе. Примеры машиночитаемого носителя информации включают в себя, но без ограничения, магнитный диск, оптический диск (например, CD, CD-R, DVD, DVD-R и т.д.), магнитооптический диск, постоянное запоминающее устройство (ROM), оперативное запоминающее устройство (RAM), магнитную карту, оптическую карту, твердотельное запоминающее устройство, EPROM, EEPROM, программируемые логические устройства (PLD) и/или любые их комбинации. Используемый в данном документе термин "машиночитаемый носитель информации" предназначен для того, чтобы включать в себя один носитель информации, а также набор физически отдельных носителей информации, таких, например, как набор компакт-дисков или один или несколько жестких дисков в сочетании с компьютерной памятью. Используемый в данном документе термин "машиночитаемый носитель информации" не включает в себя временные формы передачи сигнала.Such software may be a computer program product that uses a machine-readable storage medium. A machine-readable storage medium may be any storage medium that is capable of storing and/or encoding a sequence of instructions for execution by a machine (e.g., a computing device) and that cause the machine to perform any of the methodologies and/or embodiments described in this document. Examples of a machine-readable storage medium include, but are not limited to, a magnetic disk, an optical disk (e.g., CD, CD-R, DVD, DVD-R, etc.), a magneto-optical disk, a read-only memory (ROM), a random access memory (RAM), a magnetic card, an optical card, a solid-state memory, EPROM, EEPROM, programmable logic devices (PLD), and/or any combinations thereof. As used herein, the term "machine-readable storage medium" is intended to include a single storage medium as well as a collection of physically separate storage media, such as, for example, a collection of compact discs or one or more hard disks in combination with computer memory. As used herein, the term "machine-readable storage medium" does not include transient forms of signal transmission.
Такое программное обеспечение может также включать в себя информацию (например, данные), переносимую в виде сигнала передачи данных на переносчике информации, например, на несущей. Например, машиноисполняемая информация может быть включена в качестве сигнала, переносящего данные и воплощенного в виде переносчика информации, где сигнал кодирует последовательность инструкций или их часть для исполнения машиной (например, вычислительным устройством) и любую связанную с ними информацию (например, структуры данных и данные), которые предписывают машине выполнять любую из методологий и/или вариантов осуществления, описанных в данном документе.Such software may also include information (e.g., data) carried as a data signal on a carrier, such as a carrier. For example, computer-executable information may be included as a data-carrying signal embodied in the carrier, where the signal encodes a sequence of instructions or a portion thereof for execution by a machine (e.g., a computing device) and any associated information (e.g., data structures and data) that cause the machine to perform any of the methodologies and/or embodiments described herein.
Примеры вычислительного устройства включают в себя, но не ограничиваются ими, устройство для чтения электронных книг, компьютерную рабочую станцию, терминальный компьютер, серверный компьютер, портативное устройство (например, планшетный компьютер, смартфон и т.д.), веб-устройство, сетевой маршрутизатор, сетевой коммутатор, сетевой мост, любой компьютер, способный выполнять последовательность инструкций, определяющих действие, которое должно быть выполнено на этом компьютере, и любые их комбинации. В одном примере вычислительное устройство может включать и/или быть включено в киоск.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 portable device (e.g., a tablet computer, a smartphone, etc.), a web device, a network router, a network switch, a network bridge, any computer capable of executing a sequence of instructions specifying an action to be performed on that computer, and any combination thereof. In one example, a computing device may include and/or be included in a kiosk.
На фиг. 15 показано схематичное представление одного варианта осуществления вычислительного устройства в примерном виде компьютерной системы 1500, в которой может исполняться набор инструкций для предписания системе управления выполнять любой один или несколько аспектов и/или методологий настоящего раскрытия. Кроме того, также предполагается, что несколько вычислительных устройств могут использоваться для реализации специально сконфигурированного набора инструкций, которые предписывают одному или нескольким устройствам выполнять любой один или несколько аспектов и/или методологий настоящего раскрытия. Компьютерная система 1500 включает в себя процессор 1504 и память 1508, которые обмениваются данными друг с другом и с другими компонентами через шину 1512. Шина 1512 может включать в себя любой из нескольких типов шинных структур, в том числе, но без ограничения, шину памяти, контроллер памяти, периферийную шину, локальную шину и любые их комбинации, которые используют любую из множества шинных архитектур.Fig. 15 shows a schematic representation of one embodiment of a computing device in the form of an example computer system 1500 that can execute a set of instructions for causing a control system to perform any one or more aspects and/or methodologies of the present disclosure. Moreover, it is also contemplated that multiple computing devices can be used to implement a specially configured set of instructions that cause one or more devices to perform any one or more aspects and/or methodologies of the present disclosure. Computer system 1500 includes a processor 1504 and a memory 1508 that communicate with each other and with other components via a bus 1512. Bus 1512 can include any of several types of bus structures, including, but not limited to, a memory bus, a memory controller, a peripheral bus, a local bus, and any combinations thereof that use any of a variety of bus architectures.
Память 1508 может включать в себя различные компоненты (например, машиночитаемые носители информации), в том числе, но без ограничения, компонент памяти с произвольным доступом, компонент только для считывания и любые их комбинации. В одном примере основная система 1516 ввода/вывода (BIOS), в том числе основные процедуры, которые помогают передавать информацию между элементами в компьютерной системе 1500, например, во время запуска, может храниться в памяти 1508. Память 1508 может также включать в себя (например, сохраненные на одном или нескольких машиночитаемых носителях информации) инструкции (например, программное обеспечение) 1520, воплощающие любой один или несколько аспектов и/или методологий настоящего раскрытия. В другом примере память 1508 может дополнительно включать в себя любое количество программных модулей, в том числе, но без ограничения, операционную систему, одну или несколько прикладных программ, другие программные модули, данные программы и любые их комбинации.Memory 1508 may include various components (e.g., computer-readable storage media), including, but not limited to, a random access memory component, a read-only component, and any combinations thereof. In one example, a basic input/output system (BIOS) 1516, including basic routines that help transfer information between elements in computer system 1500, such as during startup, may be stored in memory 1508. Memory 1508 may also include (e.g., stored on one or more computer-readable storage media) instructions (e.g., software) 1520 that embody any one or more aspects and/or methodologies of the present disclosure. In another example, memory 1508 may further include 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 combinations thereof.
Компьютерная система 1500 может также включать в себя запоминающее устройство 1524. Примеры запоминающего устройства (например, запоминающего устройства 1524), включают в себя, но не ограничиваются ими, накопитель на жестком диске, накопитель на магнитных дисках, накопитель на оптических дисках в сочетании с оптическим носителем информации, устройство твердотельной памяти и любые их комбинации. Запоминающее устройство 1524 может быть подключено к шине 1512 посредством соответствующего межкадровоефейса (не показан). Примеры межкадровоефейсов включают в себя, но не ограничиваются ими, SCSI, усовершенствованную технологию подключения (ATA), последовательную ATA, универсальную последовательную шину (USB), IEEE 1394 (FIREWIRE) и любые их комбинации. В одном примере, запоминающее устройство 1524 (или один или несколько их компонентов) может подключаться с помощью межкадровоефейса к компьютерной системе 1500 (например, через разъем внешний порта (не показан)). В частности, запоминающее устройство 1524 и ассоциированный с ним машиночитаемый носитель 1528 информации может обеспечивать энергонезависимое и/или энергонезависимое хранение машиночитаемых инструкций, структур данных, программных модулей и/или других данных для компьютерной системы 1500. В одном примере, программное обеспечение 1520 может находиться, полностью или частично, на машиночитаемом носителе 1528 информации. В другом примере, программное обеспечение 1520 может находиться, полностью или частично, в процессоре 1504.Computer system 1500 may also include storage device 1524. Examples of storage device (e.g., storage device 1524) include, but are not limited to, a hard disk drive, a magnetic disk drive, an optical disk drive in combination with an optical storage medium, a solid-state memory device, and any combinations thereof. Storage device 1524 may be connected to bus 1512 via a corresponding interframe face (not shown). Examples of interframe faces include, but are not limited to, SCSI, Advanced Attachment Technology (ATA), serial ATA, Universal Serial Bus (USB), IEEE 1394 (FIREWIRE), and any combinations thereof. In one example, storage device 1524 (or one or more components thereof) may be connected via an interframe face to computer system 1500 (e.g., via an external port connector (not shown)). In particular, the memory device 1524 and the associated computer-readable storage medium 1528 may provide non-volatile and/or non-volatile storage of computer-readable instructions, data structures, program modules and/or other data for the computer system 1500. In one example, the software 1520 may reside, in whole or in part, on the computer-readable storage medium 1528. In another example, the software 1520 may reside, in whole or in part, in the processor 1504.
Компьютерная система 1500 также может включать в себя устройство 1532 ввода. В одном примере, пользователь компьютерной системы 1500 может вводить команды и/или другую информацию в компьютерную систему 1500 через устройство 1532 ввода. Примеры устройства 1532 ввода включают в себя, но не ограничиваются ими, устройство буквенно-цифрового ввода (например, клавиатуру), указательное устройство, джойстик, игровой пульт, устройство ввода аудио (например, микрофон, система голосового ответа и т.д.), устройство управления курсором (например, мышь), сенсорную панель, оптический сканер, устройство захвата видео (например, фотоаппарат, видеокамеру), сенсорный экран и любые их комбинации. Устройство 1532 ввода может быть подключено с помощью межкадровоефейса к шине 1512 через любой из множества межкадровоефейсов (не показаны), в том числе, помимо прочего, последовательный межкадровоефейс, параллельный межкадровоефейс, игровой порт, межкадровоефейс USB, межкадровоефейс FIREWIRE, прямой межкадровоефейс к шине 1512 и любые их комбинации. Устройство 1532 ввода может включать в себя межкадровоефейс сенсорного экрана, который может быть частью 1536 отображения или находиться отдельно от него, что дополнительно обсуждено ниже. Устройство 1532 ввода может использоваться как устройство выбора пользователя для выбора одного или нескольких графических представлений в графическом межкадровоефейсе, как описано выше.The computer system 1500 may also include an input device 1532. In one example, a user of the computer system 1500 may enter commands and/or other information into the computer system 1500 via the input device 1532. Examples of the input device 1532 include, but are not limited to, an alphanumeric input device (e.g., a keyboard), a pointing device, a joystick, a game controller, an audio input device (e.g., a microphone, a voice response system, etc.), a cursor control device (e.g., a mouse), a touch pad, an optical scanner, a video capture device (e.g., a camera, a video camera), a touch screen, and any combinations thereof. The input device 1532 may be connected via an interframe face to the bus 1512 via any of a plurality of interframe faces (not shown), including, but not limited to, a serial interframe face, a parallel interframe face, a game port, a USB interframe face, a FIREWIRE interframe face, a direct interframe face to the bus 1512, and any combinations thereof. The input device 1532 may include a touch screen interframe face, which may be part of the display 1536 or be separate from it, which is discussed further below. The input device 1532 may be used as a user selection device for selecting one or more graphical representations in a graphical interframe face, as described above.
Пользователь может также вводить команды и/или другую информацию в компьютерную систему 1500 через запоминающее устройство 1524 (например, съемный диск, флэш-диск и т.д.) и/или устройство 1540 сетевого межкадровоефейса. Устройство сетевого межкадровоефейса, такое как устройство 1540 сетевого межкадровоефейса, может использоваться для подключения компьютерной системы 1500 к одной или нескольким из множества сетей, таких как сеть 1544, и к одному или нескольким удаленным устройствам 1548, подключенных к ней. Примеры устройства сетевого межкадровоефейса включают в себя, но не ограничиваются ими, карту сетевого межкадровоефейса (например, карту межкадровоефейса мобильной сети, карту LAN), модем и любые их комбинации. Примеры сети включают в себя, но не ограничиваются ими, сеть (например, Межкадровоенет, сеть организации), локальную сеть (например, сеть, ассоциированную с офисом, зданием, комплексом зданий или другим относительно небольшим географическим пространством), телефонную сеть, сеть передачи данных, ассоциированную с провайдером телефонной/голосовой связи (например, с данными провайдера мобильной связи и/или телефонной сетью), прямое соединение между двумя вычислительными устройствами и любые их комбинации. Сеть, такая как сеть 1544, может использовать проводной и/или беспроводной режим связи. В общем, можно использовать любую топологию сети. Информация (например, данные, программное обеспечение 1520 и т.д.) может передаваться в и/или из компьютерной системы 1500 с помощью сетевого межкадровоефейса устройства 1540.A user may also enter commands and/or other information into the computer system 1500 via a storage device 1524 (e.g., a removable disk, a flash disk, etc.) and/or a network interframe face device 1540. A network interframe face device, such as a network interframe face device 1540, may be used to connect the computer system 1500 to one or more of a plurality of networks, such as a network 1544, and to one or more remote devices 1548 connected thereto. Examples of a network interframe face device include, but are not limited to, a network interframe face card (e.g., a mobile network interframe face card, a LAN card), a modem, and any combinations thereof. Examples of a network include, but are not limited to, a network (e.g., an interframe network, an organizational network), a local area network (e.g., a network associated with an office, building, campus, or other relatively small geographic area), a telephone network, a data network associated with a telephone/voice provider (e.g., a mobile phone provider's data and/or a telephone network), a direct connection between two computing devices, and any combinations thereof. A network, such as network 1544, may use a wired and/or wireless communication mode. In general, any network topology may be used. Information (e.g., data, software 1520, etc.) may be transmitted to and/or from computer system 1500 using the network interframe face of device 1540.
Компьютерная система 1500 может дополнительно включать в себя адаптер 1552 отображения видео для передачи отображаемого изображения в устройство отображения, такое как устройство 1536 отображения. Примеры устройства отображения включают в себя, но не ограничивается ими, жидкокристаллический дисплей (LCD), электронно-лучевую трубку (CRT), плазменный дисплей, светоизлучающий диод (LED), и любые их комбинации. Адаптер 1552 дисплея и устройство 1536 отображения можно использовать в сочетании с процессором 1504, чтобы обеспечить графическое представление аспектов настоящего раскрытия. В дополнение к устройству отображения компьютерная система 1500 может включать в себя одно или несколько других периферийных устройств вывода, в том числе, помимо прочего, звуковой динамик, прмежкадровое и любые их комбинации. Такие периферийные устройства вывода могут быть подключены к шине 1512 через периферийный межкадровоефейс 1556. Примеры периферийного межкадровоефейса включают в себя, но не ограничиваются ими, последовательный порт, USB соединение, соединение FIREWIRE, параллельное соединение, и любые их комбинации.The computer system 1500 may further include a video display adapter 1552 for transmitting a displayed image to a display device, such as a display device 1536. Examples of a display device include, but are not limited to, a liquid crystal display (LCD), a cathode ray tube (CRT), a plasma display, a light emitting diode (LED), and any combinations thereof. The display adapter 1552 and the display device 1536 may be used in combination with the processor 1504 to provide a graphical representation of aspects of the present disclosure. In addition to the display device, the computer system 1500 may include one or more other peripheral output devices, including, but not limited to, an audio speaker, an interframe, and any combinations thereof. Such peripheral output devices may be connected to bus 1512 via peripheral interframe face 1556. Examples of peripheral interframe faces include, but are not limited to, a serial port, a USB connection, a FIREWIRE connection, a parallel connection, and any combinations thereof.
Выше было приведено подробное описание иллюстративных вариантов осуществления настоящего изобретения. Различные модификации и дополнения могут быть сделаны без отступления от сущности и объема настоящего изобретения. Признаки каждого из различных вариантов осуществления, описанных выше, могут быть объединены с признаками других описанных вариантов осуществления в соответствующих случаях с тем, чтобы обеспечить множество комбинаций признаков в ассоциированных новых вариантах осуществления. Кроме того, несмотря на то, что выше был описан ряд отдельных вариантов осуществления, то, что было описано в данном документе, является лишь иллюстрацией применения принципов настоящего изобретения. В дополнение к этому, хотя конкретные способы в данном документе могут быть проиллюстрированы и/или описаны как выполняемые в определенном порядке, порядок выполнения сильно варьируется в пределах средней квалификации для достижения вариантов осуществления, раскрытых в данном документе. Соответственно, это описание предназначено для использования только в качестве примера и не ограничивает иным образом объем данного изобретения.The foregoing has described in detail illustrative embodiments of the present invention. Various modifications and additions can be made without departing from the spirit and scope of the present invention. The features of each of the various embodiments described above can be combined with features of other described embodiments, where appropriate, to provide a variety of combinations of features in associated new embodiments. Furthermore, while a number of specific embodiments have been described above, what has been described herein is merely illustrative of the application of the principles of the present invention. In addition, while specific methods herein may be illustrated and/or described as being performed in a particular order, the order of performance varies widely within the ordinary skill in achieving the embodiments disclosed herein. Accordingly, this description is intended to be used as an example only and does not otherwise limit the scope of the present invention.
В приведенных выше описаниях и формуле изобретения фразы, такие как "по меньшей мере один из" или "один или более" могут возникать с последующим конъюнктивным списком элементов или признаков. Термин "и/или" может также иметь место в списке из двух или более элементов или признаков. Если иное неявно или явно противоречит контексту, в котором это используется, такая фраза означает любой из перечисленных элементов или признаки по отдельности, или любой из указанных элементов или признаков в сочетании с любым из других указанных элементов или признаков. Например, каждая из фраз "по меньшей мере один из А и В", "один или более из А и В" и "А и/или В" означает "А, взятый отдельно", "В, взятый отдельно" или "А и В вместе". Аналогичная межкадровоепретация также предназначена для списков, включающих в себя три или более пунктов. Например, каждая из фраз "по меньшей мере один из А, В и С", "один или более из А, В и С" и "А, В, и/или С" означает "А, взятый отдельно", "В, взятый отдельно", "С, взятый отдельно", "А и В вместе", "А и С вместе", "В и С вместе" или "А и В, и С вместе". В дополнение к этому, использование термина "на основе" в описании выше и в формуле изобретения означает "на основе по меньшей мере частично", поэтому неуказанный признак или элемент также является допустимым.In the above descriptions and claims, phrases such as "at least one of" or "one or more" may appear followed by a conjunctive list of elements or features. The term "and/or" may also appear in a list of two or more elements or features. Unless otherwise implicitly or clearly contradicted by the context in which it is used, such a phrase means any of the listed elements or features alone, or any of the listed elements or features in combination with any of the other 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" each mean "A taken alone," "B taken alone," or "A and B together." Similar interframe representations are also intended for lists of three or more items. For example, each of the phrases "at least one of A, B, and C," "one or more of A, B, and C," and "A, B, and/or C" means "A taken alone," "B taken alone," "C taken 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" in the description above and in the claims means "based at least in part," so an unspecified feature or element is also permissible.
Предмет изобретения, описанный в данном документе, может быть воплощен в системах, устройствах, способах и/или изделиях в зависимости от желаемой конфигурации. Реализации, изложенные в предыдущем описании, не представляют все реализации, согласующиеся с предметом изобретения, описанным в данном документе. Вместо этого они представляют собой лишь некоторые примеры, согласующиеся с аспектами, относящимися к описанному предмету изобретения. Хотя некоторые варианты были подробно описаны выше, возможны и другие модификации или дополнения. В частности, дополнительные признаки и/или варианты могут быть предоставлены в дополнение к тем, которые изложены в данном описании. Например, реализации, описанные выше, могут быть направлены на различные комбинации и подкомбинации раскрытых признаков и/или комбинации и подкомбинации нескольких дополнительных признаков, раскрытых выше. В дополнение к этому, логические потоки, изображенные на сопроводительных чертежах и/или описанные в данном документе, необязательно требуют конкретного показанного порядка или последовательного порядка для достижения желаемых результатов. Другие реализации могут находиться в пределах объема последующей формулы изобретения.The subject matter described herein may be embodied in systems, devices, methods and/or articles depending on the desired configuration. The embodiments set forth in the preceding description do not represent all embodiments consistent with the subject matter described herein. Instead, they represent only some examples consistent with aspects related to the described subject matter. Although some embodiments have been described in detail above, other modifications or additions are possible. In particular, additional features and/or embodiments may be provided in addition to those set forth in this description. For example, the embodiments described above may be directed to various combinations and subcombinations of the disclosed features and/or combinations and subcombinations of several additional features disclosed above. In addition, the logical flows depicted in the accompanying drawings and/or described herein do not necessarily require the particular order shown or the sequential order to achieve the desired results. Other embodiments may fall within the scope of the following claims.
Claims (24)
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US62/797,816 | 2019-01-28 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| RU2021125283A RU2021125283A (en) | 2023-02-28 |
| RU2829207C2 true RU2829207C2 (en) | 2024-10-30 |
Family
ID=
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20090196342A1 (en) * | 2006-08-02 | 2009-08-06 | Oscar Divorra Escoda | Adaptive Geometric Partitioning For Video Encoding |
| US20140092885A1 (en) * | 2012-09-28 | 2014-04-03 | Muthaiah Venkatachalam | Discovery and operation of hybrid wireless wide area and wireless local area networks |
| US20140247876A1 (en) * | 2011-10-31 | 2014-09-04 | Mitsubishi Electric Corporation | Video encoding device, video decoding device, video encoding method, and video decoding method |
| RU2632158C2 (en) * | 2011-11-08 | 2017-10-02 | Электроникс Энд Телекоммьюникейшнз Рисерч Инститьют | Method and device for sharing list of candidates |
| WO2018028615A1 (en) * | 2016-08-12 | 2018-02-15 | Mediatek Inc. | Methods and apparatuses of predictor-based partition in video processing system |
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20090196342A1 (en) * | 2006-08-02 | 2009-08-06 | Oscar Divorra Escoda | Adaptive Geometric Partitioning For Video Encoding |
| US20140247876A1 (en) * | 2011-10-31 | 2014-09-04 | Mitsubishi Electric Corporation | Video encoding device, video decoding device, video encoding method, and video decoding method |
| RU2632158C2 (en) * | 2011-11-08 | 2017-10-02 | Электроникс Энд Телекоммьюникейшнз Рисерч Инститьют | Method and device for sharing list of candidates |
| US20140092885A1 (en) * | 2012-09-28 | 2014-04-03 | Muthaiah Venkatachalam | Discovery and operation of hybrid wireless wide area and wireless local area networks |
| WO2018028615A1 (en) * | 2016-08-12 | 2018-02-15 | Mediatek Inc. | Methods and apparatuses of predictor-based partition in video processing system |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN113647104B (en) | Inter prediction in geometric partitioning with adaptive number of regions | |
| JP7650526B2 (en) | Inter-prediction in geometric partitioning using non-rectilinear non-rectangular partitioning. | |
| US20200204801A1 (en) | Adaptive loop filtering classification in video coding | |
| JP2025168557A (en) | Global motion-constrained motion vectors in inter-prediction | |
| CN114073083B (en) | Global motion for merge mode candidates in inter prediction | |
| JP7602283B2 (en) | Signaling Global Motion Vectors in the Picture Header - Patent application | |
| JP7466960B2 (en) | Efficient coding of global motion vectors. | |
| JP7602284B2 (en) | Candidates in frames with global motion | |
| JP7576867B2 (en) | Selective motion vector prediction candidates in frames with global motion | |
| JP2023105073A (en) | Adaptive motion vector prediction candidates in frames with global motion | |
| JP2025019331A (en) | Global Motion Models for Motion Vector Interprediction | |
| JP2025019332A (en) | Signaling Global Motion Vectors in the Picture Header - Patent application | |
| RU2831080C2 (en) | Interframe prediction with geometrical partitioning with adaptive number of regions |