RU2829493C2 - Shape-adaptive discrete cosine transform for geometric partitioning with adaptive number of regions - Google Patents
Shape-adaptive discrete cosine transform for geometric partitioning with adaptive number of regions Download PDFInfo
- Publication number
- RU2829493C2 RU2829493C2 RU2021125271A RU2021125271A RU2829493C2 RU 2829493 C2 RU2829493 C2 RU 2829493C2 RU 2021125271 A RU2021125271 A RU 2021125271A RU 2021125271 A RU2021125271 A RU 2021125271A RU 2829493 C2 RU2829493 C2 RU 2829493C2
- Authority
- RU
- Russia
- Prior art keywords
- coding tree
- tree unit
- boundary
- geometric
- decoder
- Prior art date
Links
- 238000000638 solvent extraction Methods 0.000 title claims abstract description 75
- 230000003044 adaptive effect Effects 0.000 title description 23
- 238000005192 partition Methods 0.000 claims abstract description 41
- 230000011664 signaling Effects 0.000 claims abstract description 10
- 238000000034 method Methods 0.000 claims description 25
- 230000008569 process Effects 0.000 claims description 14
- 238000013139 quantization Methods 0.000 claims description 13
- 230000000903 blocking effect Effects 0.000 abstract description 2
- 230000000694 effects Effects 0.000 abstract 1
- 239000000126 substance Substances 0.000 abstract 1
- 230000009466 transformation Effects 0.000 description 14
- 238000012545 processing Methods 0.000 description 13
- 239000011159 matrix material Substances 0.000 description 11
- 230000006835 compression Effects 0.000 description 7
- 238000007906 compression Methods 0.000 description 7
- 239000013598 vector Substances 0.000 description 6
- 238000013459 approach Methods 0.000 description 5
- 238000010586 diagram 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
- 238000007792 addition Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000003066 decision tree Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 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
- 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
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 a shape-adaptive discrete cosine transform for geometric partitioning with an adaptive number of regions.
Уровень техники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, since the compressed video lacks some information that was 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, determine a first region, a second region, and a third region of a current block in accordance with a geometric partitioning mode, and decode the current block using an inverse discrete cosine transform for each of the first, second, and third regions.
В другом аспекте декодер включает в себя схему, выполненную с возможностью приема битового потока, определения первой области, второй области и третьей области текущего блока и определения в соответствии с режимом геометрического разбиения из сигнала, содержащегося в битовом потоке, типа преобразования кодирования для декодирования каждой из первой области, второй области и/или третьей области, типа преобразования кодирования, характеризующего по меньшей мере обратное блочное дискретное косинусное преобразование и адаптивное к форме обратное дискретное косинусное преобразование, и декодирования текущего блока, причем декодирование текущего блока включает в себя использование определенного типа преобразования для обратного преобразования для каждой из первой области, второй области и/или третьей области.In another aspect, the decoder includes a circuit configured to receive a bit stream, determine a first region, a second region and a third region of a current block and determine, in accordance with a geometric partitioning mode from a signal contained in the bit stream, a coding transform type for decoding each of the first region, the second region and/or the third region, a coding transform type characterizing at least an inverse block discrete cosine transform and a shape-adaptive inverse discrete cosine transform, and decoding the current block, wherein decoding the current block includes using a specific transform type for the inverse transform for each of the first region, the second region and/or the third region.
В другом аспекте способ включает в себя прием, декодером, битового потока, определение первой области, второй области и третьей области текущего блока в соответствии с режимом геометрического разбиения, определение, из сигнала, содержащегося в битовом потоке тип преобразования кодирования для декодирования первой области, второй области и/или третьей области, тип преобразования кодирования, характеризующий по меньшей мере обратное блочное дискретное косинусное преобразование или адаптивное к форме обратное дискретное косинусное преобразование, и декодирование текущего блока, причем декодирование текущего блока включает в себя использование определенного типа преобразования для обратного преобразования для каждой из первой области, второй области и/или третьей области.In another aspect, the method includes receiving, by a decoder, a bit stream, determining a first region, a second region and a third region of a current block in accordance with a geometric partitioning mode, determining, from a signal contained in the bit stream, a coding transform type for decoding the first region, the second region and/or the third region, the coding transform type characterizing at least an inverse block discrete cosine transform or a shape-adaptive inverse discrete cosine transform, and decoding the current block, wherein decoding the current block includes using a certain transform type for the inverse transform for each of the first region, the second region and/or the third region.
Подробности одного или более вариантов предмета изобретения, описанного в данном документе, изложены ниже на сопроводительных чертежах и в описании. Другие признаки и преимущества объекта изобретения, описанного в данном документе, будут очевидны из описания и чертежей и из формулы изобретения.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 is an illustration showing an example of a residual block (e.g., the current block) with exponential partitioning, where there are three segments with different prediction errors;
фиг.2 – блок-схема системы, иллюстрирующая примерный видеокодер, способный выполнять адаптивное дискретное косинусное преобразование (SA-DCT) для геометрического разбиения с адаптивным количеством областей, которое позволяет уменьшить сложность и производительность обработки при кодировании и декодировании видео;Fig. 2 is a block diagram of a system illustrating an example video encoder capable of performing an adaptive discrete cosine transform (SA-DCT) for geometric partitioning with an adaptive number of regions, which can reduce the complexity and processing performance of encoding and decoding video;
фиг.3 – блок-схема последовательности операций процесса, иллюстрирующая примерный процесс кодирования видео с SA-DCT для геометрического разбиения с адаптивным количеством областей;Fig.3 is a flow chart illustrating an exemplary process for coding video with SA-DCT for geometric partitioning with an adaptive number of regions;
фиг.4 – блок-схема системы, иллюстрирующая примерный декодер, выполненный с возможностью декодирования битового потока с использованием SA-DCT для геометрического разбиения с адаптивным количеством областей;Fig.4 is a block diagram of a system illustrating an example decoder configured to decode a bitstream using an SA-DCT for geometric partitioning with an adaptive number of regions;
фиг.5 – блок-схема последовательности операций процесса, иллюстрирующая примерный процесс декодирования битового потока с использованием SA-DCT для геометрического разбиения с адаптивным количеством областей; иFig. 5 is a flow chart illustrating an exemplary process for decoding a bitstream using SA-DCT for geometric partitioning with an adaptive number of regions; and
фиг.6 – блок-схема вычислительной системы, которая может использоваться для реализации любой одной или более методологий, раскрытых в данном документе и любой одной или более их частей.Fig. 6 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 may be omitted that are not necessary for understanding the embodiments or that obscure other details. The same reference numerals in different drawings designate the same elements.
Осуществление изобретенияImplementation of the invention
Варианты осуществления, представленные в настоящем раскрытии, относятся к блокам кодирования и декодирования при геометрическом разбиении, где необязательно все блоки являются прямоугольными. Варианты осуществления могут включать в себя и/или могут быть выполнены с возможностью выполнения кодирования и/или декодирования с использованием дискретных косинусных преобразований (DCT) и/или обратных DCT. В некоторых вариантах осуществления, представленных в данном документе, выбор DCT выполняется в зависимости от информационного содержания геометрически разбитых блоков. В некоторых существующих подходах к кодированию и декодированию видео все блоки имеют прямоугольную форму, и остаток кодируется с использованием обычного блочного DCT (B-DCT) для всего прямоугольного блока. Однако при геометрическом разбиении, где блок может быть разбит на несколько непрямоугольных областей, использование обычного B-DCT может неэффективно представлять базовую информацию о пикселях для некоторых блоков и может потребовать излишних вычислительных ресурсов для выполнения. В некоторых реализациях настоящего предмета изобретения при использовании режима геометрического разбиения кодер может использовать адаптированное к форме DCT (SA-DCT) в качестве альтернативы или в дополнение к B-DCT. В некоторых вариантах осуществления кодер может выбирать между B-DCT и SA-DCT для каждой области блока, такого как геометрически разбитый блок, на основе уровня ошибки предсказания этой области; выбор может быть просигнализирован в битовом потоке для использования при декодировании. За счет кодирования и/или декодирования непрямоугольной области с использованием B-DCT или SA-DCT и сигнализации такого выбора можно уменьшить скорость передачи в битовом потоке, так как остаток может быть представлен более эффективно, и в результате могут быть уменьшены вычислительные ресурсы, необходимые для выполнения обработки. Настоящий предмет изобретения применим к относительно большим блокам, таким как, например, блоки размером 128x128 или 64x64. В некоторых реализациях геометрическое разбиение может включать в себя разбиение текущего блока на адаптивное количество областей, например, три или более областей для данного текущего блока; тип преобразования DCT (например, B-DCT или SA-DCT) может сигнализироваться для каждой области.Embodiments presented in this disclosure relate to encoding and decoding blocks in a geometric partition, where not all blocks are necessarily rectangular. Embodiments may include and/or may be configured to perform encoding and/or decoding using discrete cosine transforms (DCTs) and/or inverse DCTs. In some embodiments presented herein, the selection of a DCT is performed depending on the information content of the geometrically partitioned blocks. In some existing approaches to video encoding and decoding, all blocks are rectangular in shape, and the residual is encoded using a regular block DCT (B-DCT) for the entire rectangular block. However, in a geometric partition, where a block may be divided into multiple non-rectangular regions, using a regular B-DCT may inefficiently represent the underlying pixel information for some blocks and may require excessive computational resources to perform. In some implementations of the present subject matter, when using a geometric partitioning mode, the encoder may use a shape-adapted DCT (SA-DCT) as an alternative to or in addition to the B-DCT. In some embodiments, the encoder may select between the B-DCT and the SA-DCT for each region of a block, such as a geometrically partitioned block, based on the prediction error level of that region; the selection may be signaled in the bitstream for use in decoding. By encoding and/or decoding a non-rectangular region using the B-DCT or the SA-DCT and signaling such a selection, the bitrate may be reduced since the residual may be represented more efficiently, and as a result, the computational resources required to perform the processing may be reduced. The present subject matter is applicable to relatively large blocks, such as, for example, 128x128 or 64x64 blocks. In some implementations, the geometric partitioning may include partitioning the current block into an adaptive number of regions, such as three or more regions for a given current block; The DCT transform type (e.g. B-DCT or SA-DCT) can be signaled for each domain.
В варианте осуществления B-DCT может быть DCT, выполняемым с использованием инвертируемой матрицы NxN на блоке NxN числовых значений, таких как, без ограничения, значения цветности и/или яркости соответствующего массива пикселей NxN. Например и в качестве неограничивающего примера, где должна быть преобразована матрица X размером NxN, преобразование "DCT-I" позволяет вычислить каждый элемент преобразованной матрицы в виде:In an embodiment, the B-DCT may be a DCT performed using an invertible NxN matrix on an NxN block of numerical values, such as, but not limited to, the chroma and/or brightness values of a corresponding NxN pixel array. For example and as a non-limiting example, where an NxN matrix X is to be transformed, the "DCT-I" transform allows each element of the transformed matrix to be calculated as:
Для k = 0,…, N-1. В качестве дополнительного неограничивающего примера, преобразование "DCT-II" позволяет вычислить преобразованные значения матрицы в виде:For k = 0,…, N-1. As an additional non-limiting example, the "DCT-II" transformation allows the transformed matrix values to be calculated as:
Для k = 0,…, N-1. В качестве иллюстративного примера, где блоки представляют собой блоки пикселей 4x4, матрица обобщенного дискретного косинусного преобразования может включать в себя матрицу обобщенного дискретного косинусного преобразования II, имеющую форму:For k = 0,…, N-1. As an illustrative example, where the blocks are 4x4 pixel blocks, the generalized discrete cosine transform matrix may include a generalized discrete cosine transform matrix II of the form:
T = T =
где a равно ½, b равно , и c равно .where a is equal to ½, b is equal to , and c is equal to .
В некоторых реализациях может использоваться целочисленная аппроксимация матрицы преобразования, которая может использоваться для эффективных аппаратных и программных реализаций. Например, если блоки представляют собой блоки 4x4 пикселей, матрица обобщенного дискретного косинусного преобразования может включать в себя матрицу обобщенного дискретного косинусного преобразования II, имеющую форму:Some implementations may use an integer approximation of the transform matrix, which can be used for efficient hardware and software implementations. For example, if the blocks are 4x4 pixel blocks, the generalized discrete cosine transform matrix may include a generalized discrete cosine transform matrix II of the form:
TINT = .T INT = .
Обратное B-DCT можно вычислить путем умножения второй матрицы с использованием одной и той же матрицы преобразования NxN; итоговый результат может быть нормализован для восстановления исходных значений. Например, для нормализации обратное DCT-I можно умножить на 2/(N-1).The inverse B-DCT can be calculated by multiplying the second matrix using the same NxN transformation matrix; the resulting result can be normalized to restore the original values. For example, the inverse DCT-I can be multiplied by 2/(N-1) to normalize.
SA-DCT может выполняться на непрямоугольном массиве пикселей. В варианте осуществления SA-DCT можно вычислить путем выполнения одномерной версии DCT, такой как DCT-I, DCT-II и т.п., напротив векторов, представляющих вертикальные столбцы значений пикселей в интересующей форме, с последующим группированием результирующих значений в горизонтальные векторы и выполнением одномерного DCT второй раз, при этом второе DCT может привести к завершению преобразования значений пикселей. Вариации SA-DCT могут дополнительно масштабироваться и/или нормализоваться с помощью коэффициентов для коррекции дефектов усредненного взвешивания и/или неортонормированных дефектов, внесенных вышеупомянутым преобразованием, квантованием выходных сигналов вышеупомянутого преобразования и/или инверсией выходных сигналов преобразования и/или квантованных выходных сигналов преобразования. Дальнейшие корректировки могут выполняться, без ограничения, с упреждением вышеупомянутого процесса SA-DCT путем вычитания индивидуального среднего значения области изображения объекта из каждого значения пикселя или его масштабированной версии, возможно, в сочетании с тем или иным из процессов масштабирования, применяемых до и/или после преобразования, квантования и/или обратного преобразования. Специалисты в данной области техники по прочтении всего настоящего раскрытия будут осведомлены о различных альтернативных или дополнительных вариациях процесса SA-DCT, которые могут применяться в соответствии с приведенным выше описанием.The SA-DCT may be performed on a non-rectangular array of pixels. In an embodiment, the SA-DCT may be computed by performing a one-dimensional version of the DCT, such as DCT-I, DCT-II, etc., against vectors representing vertical columns of pixel values in the shape of interest, then grouping the resulting values into horizontal vectors and performing the one-dimensional DCT a second time, wherein the second DCT may result in the completion of the transformation of the pixel values. The variations of the SA-DCT may be further scaled and/or normalized with coefficients to correct for average weighting defects and/or non-orthonormalized defects introduced by the above-mentioned transformation, quantizing the output signals of the above-mentioned transformation, and/or inverting the output signals of the transformation and/or quantized output signals of the transformation. Further adjustments may be performed, without limitation, in advance of the above-mentioned SA-DCT process by subtracting an individual average value of the object image region from each pixel value or a scaled version thereof, possibly in combination with one or another of the scaling processes applied before and/or after the transform, quantization and/or inverse transform. Those skilled in the art, upon reading the entire present disclosure, will be aware of various alternative or additional variations of the SA-DCT process that may be applied in accordance with the above description.
Компенсация движения может включать в себя подход к предсказанию видеокадра или его части с учетом предыдущих и/или будущих кадров путем учета движения камеры и/или объектов в видео, содержащем и/или представленном текущими, предыдущими и/или будущими кадрами. Компенсация движения может использоваться при кодировании и декодировании видеоданных для сжатия видео, например, при кодировании и декодировании с использованием стандарта экспертной группы по вопросам движущегося изображения (MPEG)-2 (также называемого усовершенствованным кодированием видео (AVC)). Компенсация движения позволяет описать картинку в терминах преобразования опорного изображения в текущее изображение. Контрольная картинка может быть предыдущей или будущей во времени картинкой по сравнению с текущей картинкой. Когда изображения могут быть точно синтезированы из ранее переданных и/или сохраненных изображений, эффективность сжатия может быть повышена.Motion compensation may include an approach to predicting a video frame or part thereof given previous and/or future frames by taking into account the motion of the camera and/or objects in the video containing and/or represented by the current, previous and/or future frames. 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 of a reference picture into a current picture. A 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, the compression efficiency can be improved.
Блочное разбиение, используемое в настоящем раскрытии, может относиться к способу кодирования видео для поиска областей схожего движения. Некоторую форму разбиения блоков можно найти в стандартах видеокодеков, включая MPEG-2, H.264 (также называемый AVC или MPEG-4 часть 10) и H.265 (также называемый высокоэффективным кодированием видео (HEVC)). В примерных подходах к разбиению блоков неперекрывающиеся блоки видеокадра могут быть разбиты на прямоугольные подблоки для поиска разбиений блоков, которые содержат пиксели с аналогичным движением. Этот подход может хорошо работать тогда, когда все пиксели разбиения блока имеют схожее движение. Движение пикселей в блоке может определяться относительно ранее кодированных кадров.Block partitioning used in this disclosure may relate to a method of coding video for finding 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 example 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 pixels in a block partition have similar motion. The motion of pixels in a block can be determined relative to previously encoded frames.
Адаптивное к форме DCT и/или B-DCT может эффективно использоваться при геометрическом разбиении с адаптивным количеством областей. На фиг.1 представлена иллюстрация, показывающая неограничивающий пример остаточного блока (например, текущего блока) 100 размером 64x64 или 128x128 с геометрическим разбиением, где имеется три сегмента, S0, S1 и S2 с разными ошибками предсказания; хотя на фиг.1 для иллюстративных целей альтернативно или дополнительно может использоваться большее или меньшее количество сегментов. Текущий блок может быть геометрически разбит в соответствии с двумя линейными сегментами (P1P2 и P3P4), которые могут разбивать текущий блок на три области S0, S1 и S2. В этом примере S0 может иметь относительно высокую ошибку предсказания, в то время как S1 и S2 могут иметь относительно более низкую ошибку предсказания. Для сегмента S0 (также называемого областью) кодер может выбрать и использовать B-DCT для кодирования остатка. Для сегментов S1 и S2 с низкой ошибкой предсказания кодер может выбрать и использовать SA-DCT. Выбор преобразования кодирования остатка может быть основан на ошибке предсказания (например, размере остатка). Так как алгоритм SA-DCT относительно проще с точки зрения сложности и не требует такого количества вычислений, как B-DCT, использование SA-DCT для кодирования с меньшей ошибкой предсказания позволяет уменьшить сложность и производительность обработки при кодировании и декодировании видео.A shape-adaptive DCT and/or a B-DCT can be effectively used in geometric partitioning with an adaptive number of regions. Figure 1 is an illustration showing a non-limiting example of a residual block (e.g., the current block) 100 of size 64x64 or 128x128 with a geometric partition, where there are three segments, S0, S1 and S2 with different prediction errors; although, in Figure 1, for illustrative purposes, a larger or smaller number of segments can be alternatively or additionally used. The current block can be geometrically partitioned according to two linear segments (P1P2 and P3P4), which can partition the current block into three regions S0, S1 and S2. In this example, S0 can have a relatively high prediction error, while S1 and S2 can have a relatively lower prediction error. For the segment S0 (also called a region), the encoder can select and use the B-DCT to encode the residual. For the segments S1 and S2 with low prediction error, the encoder can choose and use SA-DCT. The choice of residual encoding transform can be based on the prediction error (e.g., the size of the residual). Since the SA-DCT algorithm is relatively simpler in terms of complexity and does not require as much computation as B-DCT, using SA-DCT for encoding with lower prediction error can reduce the complexity and processing performance of video encoding and decoding.
Соответственно, по-прежнему со ссылкой на фиг.1, SA-DCT может сигнализироваться как дополнительный выбор преобразования для DCT полного блока для сегментов с низкими ошибками предсказания. То, что считается низкой или высокой ошибкой, может быть параметром, который может быть установлен на кодере и может варьироваться в зависимости от приложения. Выбор типа преобразования может сигнализироваться в битовом потоке. В декодере битовый поток может быть проанализирован, и для данного текущего блока остаток может быть декодирован с использованием типа преобразования, который сигнализируется в битовом потоке. В некоторых реализациях ряд коэффициентов, ассоциированных с преобразованием, может альтернативно или дополнительно сигнализироваться в битовом потоке.Accordingly, still referring to Fig. 1, the SA-DCT may be signaled as an additional transform choice for the full-block DCT for segments with low prediction errors. What is considered a low or high error may be a parameter that may be set at the encoder and may vary depending on the application. The transform type choice may be signaled in the bitstream. At the decoder, the bitstream may be analyzed and, for a given current block, the residual may be decoded using the transform type that is signaled in the bitstream. In some implementations, a number of coefficients associated with the transform may be alternatively or additionally signaled in the bitstream.
Более подробно, по-прежнему со ссылкой на фиг.1, геометрическое разбиение с адаптивным количеством областей может включать в себя технологии кодирования и декодирования видео, в которых прямоугольный блок дополнительно разбивается на две или более областей, которые могут быть непрямоугольными. Например, фиг.1 иллюстрирует неограничивающий пример геометрического разбиения на уровне пикселей с адаптивным количеством областей. Примерный прямоугольный блок 100 (который может иметь ширину M пикселей и высоту N пикселей, обозначаемый как MxN пикселей) может быть разбит вдоль линейного сегмента P1P2 и P3P4 на три области (S0, S1 и S2). Когда пиксели в S0 имеют схожее движение, вектор движения может описывать движение всех пикселей в этой области, при этом вектор движения можно использовать для сжатия области S0. Аналогичным образом, когда пиксели в области S1 имеют схожее движение, ассоциированный вектор движения может описывать движение пикселей в области S1. Аналогичным образом, когда пиксели в области S2 имеют схожее движение, ассоциированный вектор движения может описывать движение пикселей в области S2. Такое геометрическое разбиение может быть просигнализировано в приемник (например, в декодер) путем кодирования позиций P1, P2, P3, P4 и/или представлений этих позиций, например, без ограничения, с использованием координат, таких как полярные координаты, декартовы координаты и т.п., индексов в заданных шаблонах или других характеристик разбиений), в битовом потоке видео.In more detail, still referring to Fig. 1, geometric partitioning with an adaptive number of regions may include video encoding and decoding technologies in which a rectangular block is further partitioned into two or more regions, which may be non-rectangular. For example, Fig. 1 illustrates a non-limiting example of geometric partitioning at the pixel level with an adaptive number of regions. An exemplary rectangular block 100 (which may have a width of M pixels and a height of N pixels, denoted as MxN pixels) may be partitioned along a line segment P1P2 and P3P4 into three regions (S0, S1 and S2). When pixels in S0 have similar motion, a motion vector may describe the motion of all pixels in this region, wherein the motion vector may be used to compress region S0. Similarly, when pixels in region S1 have similar motion, an associated motion vector may describe the motion of pixels in region S1. Similarly, when the pixels in the region S2 have similar motion, the associated motion vector may describe the motion of the pixels in the region S2. Such a geometric partition may be signaled to a receiver (e.g., a decoder) by encoding positions P1, P2, P3, P4 and/or representations of these positions, for example, without limitation, using coordinates such as polar coordinates, Cartesian coordinates, etc., indices into given patterns, or other characteristics of partitions) in the video bitstream.
По-прежнему со ссылкой на фиг.1, при кодировании видеоданных с использованием геометрического разбиения на уровне пикселей можно определить линейный сегмент P1P2 (или, более конкретно, точки P1 и P2). Чтобы определить линейный сегмент P1P2 (или, более конкретно, точки P1 и P2), который наилучшим образом разбивает блок при использовании геометрического разбиения на уровне пикселей, возможные комбинации точек P1 и P2 зависят от значений M и N, которые представляют собой ширину блока и высоту. Для блока размером MxN существует (M-1)x(N-1)x3 возможных разбиений. Таким образом, определение правильного разбиения может стать вычислительно затратной задачей оценки движения для всех возможных разбиений, что может увеличить количество времени и/или повысить вычислительную мощность, необходимую для кодирования видео, по сравнению с кодированием, использующем прямоугольное разбиение (например, без геометрического разбиения) на уровне пикселей). То, что составляет лучшее или правильное разбиение, может быть определено в соответствии с метрикой и может изменяться от реализации к реализации.Still referring to Fig. 1, when encoding video data using pixel-level geometric partitioning, a line segment P1P2 (or more specifically, points P1 and P2) can be determined. To determine the line segment P1P2 (or more specifically, points P1 and P2) that best partitions a block when using pixel-level geometric partitioning, the possible combinations of points P1 and P2 depend on the values of M and N, which are the block width and height. For a block of size MxN, there are (M-1)x(N-1)x3 possible partitions. Thus, determining the correct partition can become a computationally expensive motion estimation task for all possible partitions, which can increase the amount of time and/or increase the computing power required to encode the video, compared to encoding using rectangular partitioning (e.g., without pixel-level geometric partitioning). What constitutes the best or correct partition may be defined according to a metric and may vary from implementation to implementation.
В некоторых реализациях, по-прежнему со ссылкой на фиг.1, разбиение происходит итерационно, в том смысле, что может быть определено первое разбиение (например, определена линия P1P2 и ассоциированные области), образующие две области, и затем дополнительно разбивается одна из этих областей. Например, разбиение, описанное со ссылкой на фиг.1 можно выполнить для разбиения блока на две области. Одна из этих областей может быть дополнительно разбита (например, для формирования новой области S1 и области S2). Процесс может продолжать выполнять геометрическое разбиение на уровне блоков до тех пор, пока не будет достигнут критерий остановки.In some implementations, still with reference to Fig. 1, the partitioning occurs iteratively, in the sense that a first partition may be determined (e.g., a line P1P2 and associated regions are determined) to form two regions, and then one of these regions is further partitioned. For example, the partitioning described with reference to Fig. 1 may be performed to partition a block into two regions. One of these regions may be further partitioned (e.g., to form a new region S1 and region S2). The process may continue to perform geometric partitioning at the block level until a stopping criterion is reached.
На фиг.2 показана блок-схема системы, иллюстрирующая примерный видеокодер 200, выполненный с возможностью SA-DCT и/или B-DCT для геометрического разбиения с адаптивным количеством областей, которое позволяет уменьшить сложность и производительность обработки при кодировании и декодировании видео. Примерный видеокодер 200 принимает входное видео 205, которое может быть первоначально сегментировано или разбито в соответствии со схемой обработки, такой как схема разбиения макроблоков со структурой дерева (например, квадродерево плюс двоичное дерево). Пример схемы разбиения макроблоков со структурой дерева может включать в себя разбиение кадра картинки на большие элементы блока, называемые единицами дерева кодирования (CTU). В некоторых реализациях каждый CTU может быть дополнительно разбит один или более раз на ряд подблоков, называемых единицами кодирования (CU). Конечный результат этого разбиения может включать в себя группу подблоков, которые можно назвать единицами предсказания (PU). Кроме того, можно также использовать единицы преобразования (TU). Такая схема разбиения может включать в себя выполнение геометрического разбиения с адаптивным количеством областей в соответствии с некоторыми аспектами настоящего предмета изобретения.2 is a block diagram of a system illustrating an example video encoder 200 configured with SA-DCT and/or B-DCT for geometric partitioning with an adaptive number of regions that can reduce complexity and processing performance in encoding and decoding video. The example video encoder 200 receives an input video 205 that may be initially segmented or partitioned according to a processing scheme, such as a tree-structured macroblock partitioning scheme (e.g., a quadtree plus a binary tree). An example of a tree-structured macroblock 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 final result of this partitioning may include a group of sub-blocks that may be called prediction units (PUs). In addition, transform units (TUs) may also be used. Such a partitioning scheme may include performing geometric partitioning with an adaptive number of regions in accordance with certain aspects of the present subject matter.
Продолжая ссылаться на фиг.2, примерный видеокодер 200 включает в себя процессор 215 внутриблочного предсказания, процессор 220 оценки/компенсации движения (также называемый процессором интер-предсказания), выполненный с возможностью поддержания геометрического разбиения с адаптивным количеством областей, процессор 225 преобразования/квантования, процессор 230 обратного квантования/обратного преобразования, контурный фильтр 235, буфер 240 декодированных картинок и процессор 245 энтропийного кодирования. В некоторых реализациях процессор 220 оценки/компенсации движения может выполнять геометрическое разбиение. Параметры битового потока, которые сигнализируют о режимах геометрического разбиения, могут вводиться в процессор 245 энтропийного кодирования для включения в выходной битовый поток 250.Continuing with reference to Fig. 2, an example video encoder 200 includes an intra-block prediction processor 215, a motion estimation/compensation processor 220 (also called an inter-prediction processor) configured to support geometric partitioning with an adaptive number of regions, a transform/quantization processor 225, an inverse quantization/inverse transform processor 230, a loop filter 235, a decoded picture buffer 240, and an entropy encoding processor 245. In some implementations, the motion estimation/compensation processor 220 may perform geometric partitioning. Bitstream parameters that signal geometric partitioning modes may be input to the entropy encoding processor 245 for inclusion in the output bitstream 250.
В процессе работы, по-прежнему со ссылкой на фиг. 2, для каждого блока кадра входного видео 205 может быть определено то, обрабатывать ли блок посредством внутриблочного предсказания картинки или с использованием оценки/компенсации движения. Блок может быть предоставлен в процессор 210 внутриблочного предсказания или процессор 220 оценки/компенсации движения. Если блок должен обрабатываться посредством внутриблочного предсказания, процессор 210 внутриблочного предсказания может выполнять обработку для вывода предиктора. Если блок должен обрабатываться посредством оценки/компенсации движения, процессор 220 оценки/компенсации движения может выполнять обработку, включая использование геометрического разбиения для вывода предиктора.In the process of operation, still referring to Fig. 2, for each block of the frame of the input video 205, it can be determined whether the block is to be processed by intra-block picture prediction or by using motion estimation/compensation. The block can be provided to the intra-block prediction processor 210 or the motion estimation/compensation processor 220. If the block is to be processed by intra-block prediction, the intra-block prediction processor 210 can perform processing to output a predictor. If the block is to be processed by motion estimation/compensation, the motion estimation/compensation processor 220 can perform processing including using a geometric partition to output a predictor.
По-прежнему со ссылкой на фиг.2, остаток может быть сформирован путем вычитания предиктора из входного видео. Остаток может быть принят процессором 225 преобразования/квантования, который может определить то, считается ли ошибка предсказания (например, размер остатка) "высокой" или "низкой" ошибкой (например, путем сравнения размера или метрики ошибки остатка с пороговым значением). На основе определения процессор 225 преобразования/квантования может выбрать тип преобразования, который может включать в себя B-DCT и SA-DCT. В некоторых реализациях процессор 225 преобразования/квантования выбирает тип преобразования B-DCT, где остаток считается имеющим высокую ошибку, и выбирает тип преобразования SA-DCT, где остаток считается имеющим низкую ошибку. На основе выбранного типа преобразования процессор 225 преобразования/квантования может выполнять обработку преобразования (например, SA-DCT или B-DCT) для создания коэффициентов, которые можно квантовать. Квантованные коэффициенты и любая ассоциированная информация сигнализации (которая может включать в себя выбранный тип преобразования и/или количество используемых коэффициентов) могут быть предоставлены в процессор 245 энтропийного кодирования для энтропийного кодирования и включения их в выходной битовый поток 250. Процессор 245 энтропийного кодирования может поддерживать кодирование информации сигнализации, относящейся к SA-DCT, для геометрического разбиения с адаптивным количеством областей. В дополнение к этому, квантованные коэффициенты могут быть предоставлены в процессор 230 обратного квантования/обратного преобразования, который может воспроизводить пиксели, которые могут быть объединены с предиктором и обработаны контурным фильтром 235, выходной сигнал которого сохраняются в буфере 240 декодированных картинок для использования процессором 220 оценки/компенсации движения, который способен поддерживать геометрическое разбиение с адаптивным количеством областей.Still referring to Fig. 2, a residual can be generated by subtracting a predictor from an input video. The residual can be received by a transform/quantization processor 225, which can determine whether a prediction error (e.g., the size of the residual) is considered a "high" or "low" error (e.g., by comparing the size or error metric of the residual with a threshold). Based on the determination, the transform/quantization processor 225 can select a transform type, which can include a B-DCT and an SA-DCT. In some implementations, the transform/quantization processor 225 selects a B-DCT transform type where the residual is considered to have a high error, and selects a SA-DCT transform type where the residual is considered to have a low error. Based on the selected transform type, the transform/quantization processor 225 can perform transform processing (e.g., an SA-DCT or a B-DCT) to create coefficients that can be quantized. The quantized coefficients and any associated signaling information (which may include the selected transform type and/or the number of coefficients used) may be provided to the entropy encoding processor 245 for entropy encoding and including them in the output bitstream 250. The entropy encoding processor 245 may support encoding of signaling information related to the SA-DCT for a geometric partition with an adaptive number of regions. In addition, the quantized coefficients may be provided to the inverse quantization/inverse transform processor 230, which may produce pixels that may be combined with a predictor and processed by a loop filter 235, the output of which is stored in a decoded picture buffer 240 for use by a motion estimation/compensation processor 220, which is capable of supporting a geometric partition with an adaptive number of regions.
Обратимся теперь к фиг.3, на которой показана блок-схема последовательности операций процесса, иллюстрирующая примерный процесс 300 кодирования видео с SA-DCT для геометрического разбиения с адаптивным количеством областей, которое позволяет уменьшить сложность и производительность обработки при кодировании и декодировании видео. На этапе 310 видеокадр может подвергаться начальной блочной сегментации, например, с использованием схемы разбиения макроблоков со структурой дерева, которая может включать в себя разбиение кадра картинки на CTU и CU. На этапе 320 блок может быть выбран для геометрического разбиения. В соответствии с правилом, касающимся метрики, выбор может включать в себя идентификацию того, что блок должен быть обработан согласно геометрическому режиму разбиения. На этапе 330 выбранный блок может быть разбит на три или более непрямоугольных области в соответствии с режимом геометрического разбиения.Referring now to Fig. 3, a flow chart of a process flow is shown illustrating an example process 300 for coding video with SA-DCT for geometric partitioning with an adaptive number of regions, which allows reducing the complexity and processing performance of encoding and decoding video. In step 310, a video frame can undergo an initial block segmentation, for example, using a macroblock partitioning scheme with a tree structure, which can include partitioning a picture frame into CTUs and CUs. In step 320, a block can be selected for geometric partitioning. According to a rule regarding a metric, the selection can include identifying that the block is to be processed according to a geometric partitioning mode. In step 330, the selected block can be partitioned into three or more non-rectangular regions according to the geometric partitioning mode.
На этапе 340, по-прежнему со ссылкой на фиг.3, может быть определен тип преобразования (который также упоминается как тип преобразования) для каждой геометрически разбитой области. Этот этап может включать в себя определение того, считается ли ошибка предсказания (например, размер остатка) "высокой" или "низкой" ошибкой (например, путем сравнения размера или метрики ошибки остатка с пороговым значением). На основе определения может быть выбран тип преобразования, например, используя процесс принятия решений "квадродерево плюс двоичное дерево", как описано ниже, причем этот тип преобразования может включать в себя, без ограничения, B-DCT или SA-DCT. В некоторых реализациях выбирается тип преобразования B-DCT, когда считается, что остаток имеет высокую ошибку, и выбирается тип преобразования SA-DCT, где остаток считается имеющим низкую ошибку. На основе выбранного типа преобразования может выполняться обработка преобразования (например, SA-DCT или B-DCT) для создания коэффициентов, которые можно квантовать.At step 340, still referring to Fig. 3, a transform type (which is also referred to as a transform type) can be determined for each geometrically partitioned region. This step can include determining whether a prediction error (e.g., the size of the residual) is considered a "high" or "low" error (e.g., by comparing the size or metric of the residual error with a threshold). Based on the determination, a transform type can be selected, for example, using a "quadtree plus binary tree" decision process, as described below, where this transform type can include, but is not limited to, a B-DCT or an SA-DCT. In some implementations, a B-DCT transform type is selected when the residual is considered to have a high error, and an SA-DCT transform type is selected where the residual is considered to have a low error. Based on the selected transform type, transform processing (e.g., SA-DCT or B-DCT) can be performed to generate coefficients that can be quantized.
На этапе 350, по-прежнему со ссылкой на фиг.3, определенный тип преобразования может сигнализироваться в битовом потоке. Преобразованный и квантованный остаток может быть включен в битовый поток. В некоторых реализациях количество коэффициентов преобразования может сигнализироваться в битовом потоке.At step 350, still referring to Fig. 3, the determined type of transformation may be signaled in the bitstream. The transformed and quantized residual may be included in the bitstream. In some implementations, the number of transformation coefficients may be signaled in the bitstream.
На фиг.4 показана блок-схема системы, иллюстрирующая неограничивающий пример декодера 400, выполненный с возможностью декодирования битового потока 470 с использованием DCT, включая, но без ограничения, SA-DCT и/или B-DCT, с целью геометрического разбиения с адаптивным количеством областей, что позволяет уменьшить сложность и производительность обработки при кодировании и декодировании видео. Декодер 400 включает в себя процессор 410 энтропийного декодера, процессор 420 обратного квантования и обратного преобразования, фильтр 430 удаления блочности, буфер 440 кадров, процессор 450 компенсации движения и процессор 460 внутриблочного предсказания. В некоторых реализациях битовый поток 470 включает в себя параметры, которые сигнализируют геометрический режим разбиения и тип преобразования. В некоторых реализациях битовый поток 470 включает в себя параметры, которые сигнализируют количество коэффициентов преобразования. Процессор 450 компенсации движения может восстанавливать информацию о пикселях, используя геометрическое разбиение, как описано в данном документе.4 shows a block diagram of a system illustrating a non-limiting example of a decoder 400 configured to decode a bitstream 470 using a DCT, including but not limited to an SA-DCT and/or a B-DCT, for geometric partitioning with an adaptive number of regions, which allows reducing the complexity and processing performance of video encoding and decoding. The decoder 400 includes an entropy decoder processor 410, an inverse quantization and inverse transform processor 420, a deblocking filter 430, a frame buffer 440, a motion compensation processor 450, and an intra-block prediction processor 460. In some implementations, the bitstream 470 includes parameters that signal a geometric partitioning mode and a transform type. In some implementations, the bitstream 470 includes parameters that signal a number of transform coefficients. The motion compensation processor 450 may reconstruct pixel information using geometric partitioning as described herein.
В процессе работы и по-прежнему со ссылкой на фиг.4, битовый поток 470 может быть принят декодером 400 и введен в процессор 410 энтропийного декодера, который может энтропийно декодировать битовый поток в квантованные коэффициенты. Квантованные коэффициенты могут быть предоставлены к процессору 420 обратного квантования и обратного преобразования, который может определять тип преобразования кодирования (например, B-DCT или SA-DCT) и выполнять обратное квантование и обратное преобразование в соответствии с определенным типом преобразования кодирования для создания сигнала остатка. В некоторых реализациях процессор 420 обратного квантования и обратного преобразования может определять количество коэффициентов преобразования и выполнять обратное преобразование в соответствии с определенным количеством коэффициентов преобразования.In operation and still referring to Fig. 4, the bit stream 470 can be received by the decoder 400 and input to the entropy decoder processor 410, which can entropy decode the bit stream into quantized coefficients. The quantized coefficients can be provided to the inverse quantization and inverse transform processor 420, which can determine the type of encoding transform (for example, B-DCT or SA-DCT) and perform inverse quantization and inverse transform according to the determined type of encoding transform to create a residual signal. In some implementations, the inverse quantization and inverse transform processor 420 can determine the number of transform coefficients and perform the inverse transform according to the determined number of transform coefficients.
По-прежнему со ссылкой на фиг.4, сигнал остатка может быть добавлен в выходной сигнал процессора 450 компенсации движения или процессора 460 внутриблочного предсказания в соответствии с режимом обработки. Выход процессора 450 компенсации движения и процессора 460 внутриблочного предсказания может включать в себя предсказание блока на основе ранее декодированного блока. Сумма предсказания и остатка может быть обработана фильтром 430 удаления блочности и сохранена в буфере кадра 440. Для данного блока (например, CU или PU), когда битовый поток 470 сигнализирует, что режим разбиения представляет собой геометрическое разбиение на уровне блоков, процессор 450 компенсации движения может построить предсказание на основе подхода геометрического разбиения, описанного в данном документе.Still referring to Fig. 4, the residual signal can be added to the output of the motion compensation processor 450 or the intra-block prediction processor 460 according to the processing mode. The output of the motion compensation processor 450 and the intra-block prediction processor 460 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 430 and stored in the frame buffer 440. For a given block (e.g., a CU or PU), when the bitstream 470 signals that the partitioning mode is a geometric partition at the block level, the motion compensation processor 450 can construct a prediction based on the geometric partitioning approach described in this document.
На фиг.5 показана блок-схема последовательности операций процесса, иллюстрирующая примерный процесс 500 декодирования битового потока с использованием SA-DCT для геометрического разбиения с адаптивным количеством областей, которое позволяет уменьшить сложность и производительность обработки при кодировании и декодировании видео. На этапе 510 принимается битовый поток, который может включать в себя текущий блок (например, CTU, CU, PU). Прием может включать в себя извлечение и/или анализ текущего блока и ассоциированной с ним информации сигнализации из битового потока. Декодер может извлекать или определять один или более параметров, характеризующих геометрическое разбиение. Эти параметры могут включать в себя, например, индексы начала и конца линейного сегмента (например, P1, P2, P3, P4); извлечение или определение может включать в себя идентификацию и извлечение параметров из битового потока (например, анализ битового потока).Fig. 5 is a flow chart illustrating an example process 500 for decoding a bitstream using SA-DCT for geometric partitioning with an adaptive number of regions that can reduce complexity and processing performance in video encoding and decoding. At step 510, a bitstream is received that may include a current block (e.g., CTU, CU, PU). Reception may include extracting and/or analyzing the current block and associated signaling information from the bitstream. The decoder may extract or determine one or more parameters characterizing the geometric partition. These parameters may include, for example, linear segment start and end indices (e.g., P1, P2, P3, P4); extracting or determining may include identifying and extracting the parameters from the bitstream (e.g., analyzing the bitstream).
На этапе 520, по-прежнему со ссылкой на фиг.5, первая область, вторая область и третья область текущего блока могут быть определены в соответствии с режимом геометрического разбиения. Определение может включать в себя определение того, включен ли режим геометрического разбиения (например, "истина") для текущего блока. Если режим геометрического разбиения не включен (например, "ложь"), декодер может обработать текущий блок, используя альтернативный режим разбиения. Если режим геометрического разбиения включен (например, "истина"), могут быть определены и/или обработаны три или более областей.At step 520, still referring to Fig. 5, the first region, the second region, and the third region of the current block may be determined in accordance with the geometric partitioning mode. The determination may include determining whether the geometric partitioning mode is enabled (e.g., "true") for the current block. If the geometric partitioning mode is not enabled (e.g., "false"), the decoder may process the current block using an alternative partitioning mode. If the geometric partitioning mode is enabled (e.g., "true"), three or more regions may be determined and/or processed.
На необязательном этапе 530, по-прежнему со ссылкой на фиг.5, может быть определен тип преобразования кодирования. Тип преобразования кодирования может сигнализироваться в битовом потоке. Например, битовый поток может быть проанализирован с целью определения типа преобразования кодирования, который может указывать B-DCT или SA-DCT. Определенный тип преобразования кодирования может быть предназначен для декодирования первой области, второй области и/или третьей области.In an optional step 530, still referring to Fig. 5, a type of encoding transformation may be determined. The type of encoding transformation may be signaled in the bitstream. For example, the bitstream may be analyzed to determine the type of encoding transformation, which may indicate a B-DCT or an SA-DCT. The determined type of encoding transformation may be intended for decoding the first region, the second region, and/or the third region.
На этапе 540, по-прежнему со ссылкой на фиг.5, может быть декодирован текущий блок. Декодирование текущего блока может включать в себя использование определенного типа преобразования для обратного преобразования для каждой из первой области, второй области и/или третьей области. Декодирование может включать в себя определение ассоциированной информации о движении для каждой области и в соответствии с режимом геометрического разбиения.At step 540, still referring to Fig. 5, the current block may be decoded. Decoding the current block may include using a certain type of transform for the inverse transform for each of the first region, the second region and/or the third region. Decoding may include determining associated motion information for each region and in accordance with the geometric partitioning mode.
Хотя выше были подробно описано несколько вариантов, возможны и другие модификации или дополнения. Например, геометрическое разбиение можно сигнализировать в битовом потоке на основе решений относительно скорости-искажения в кодере. Кодирование может быть основано на комбинации регулярных заданных разделов (например, шаблонов), пространственно-временном предсказании разбиения и дополнительных смещениях. Каждая геометрически разбитая область может использовать предсказание с компенсацией движения или внутриблочного предсказание. Граница предсказанных областей может быть сглажена перед добавлением остатка.Although several variants have been described in detail above, other modifications or additions are possible. For example, the geometric partitioning can be signaled in the bitstream based on rate-distortion decisions in the encoder. The coding can be based on a combination of regularly defined partitions (e.g., patterns), spatiotemporal partition prediction, and additional offsets. Each geometrically partitioned region can use motion-compensated or intra-block prediction. The boundary of the predicted regions can be smoothed before adding the residual.
В некоторых реализациях может быть реализовано квадродерево плюс двоичное дерево решений (QTBT). В QTBT на уровне единицы дерева кодирования параметры разбиения QTBT динамически выводятся для адаптации к локальным характеристикам без передачи каких-либо служебных данных. Затем, на уровне единицы кодирования, структура дерева решений совместного классификатора может исключить ненужные итерации и контролировать риск ложного предсказания. В некоторых реализациях геометрическое разбиение с адаптивным количеством областей может быть доступно в качестве дополнительной опции разбиения, доступной на каждом листовом узле QTBT.In some implementations, a quadtree plus binary decision tree (QTBT) may be implemented. In QTBT, at the coding tree unit level, the QTBT partitioning parameters are dynamically derived to adapt to local characteristics without transmitting any overhead. Then, at the coding unit level, the decision tree structure of the joint classifier can eliminate unnecessary iterations and control the risk of false prediction. In some implementations, geometric partitioning with an adaptive number of regions may be available as an additional partitioning option, accessible at each QTBT leaf node.
В некоторых реализациях декодер может включать в себя процессор разбиения, который вырабатывает геометрическое разбиение для текущего блока и предоставляет всю информацию, относящуюся к разбиению, для зависимых процессов. Процессор разбиения может напрямую влиять на компенсацию движения, так как она может выполняться посегментно в том случае, если блок разбит геометрически. Кроме того, процессор разбиения может предоставлять информацию о форме в процессор внутриблочного предсказания и процессор кодирования с преобразованием.In some implementations, the decoder may include a partition processor that produces a geometric partition for the current block and provides all partition-related information to dependent processes. The partition processor may directly influence motion compensation, since it may be performed on a segment-by-segment basis if the block is geometrically partitioned. In addition, the partition processor may provide shape information to the intra-block 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. An enable flag may be encoded in the sequence parameter set (SPS) to enable geometric partitioning with an adaptive number of regions for the entire sequence. In addition, a CTU flag may be encoded at the coding tree unit (CTU) level to indicate whether any coding units (CUs) use geometric partitioning with an adaptive number of regions. A CU flag may be encoded to indicate whether the current coding block uses geometric partitioning with an adaptive number of regions. Parameters that precisely define a linear segment within a block may be encoded. For each region, a flag may be decoded that may indicate whether the current region is inter- or intra-block predicted.
В некоторых реализациях может быть точно определен минимальный размер области.In some implementations, the minimum region size may be precisely defined.
Предмет изобретения, описанный в данном документе, обеспечивает многочисленные технические преимущества. Например, некоторые реализации настоящего предмета изобретения могут предусматривать разбиение блоков, которое снижает сложность при одновременном повышении эффективности сжатия. В некоторых реализациях можно уменьшить блокирующие артефакты на границах объекта.The subject matter described herein provides numerous technical advantages. For example, some implementations of the present subject matter may provide for block partitioning that reduces complexity while increasing compression efficiency. In some implementations, blocking artifacts at object boundaries may be reduced.
Следует отметить, что любой один или более аспектов и вариантов осуществления, описанных в данном документе, могут быть беспрепятственно реализованы с использованием цифровых электронных схем, интегральных схем, специализированных интегральных схем (ASIC), разработанных специально для конкретных приложений, компьютерных аппаратных средств с программируемыми вентильными матрицами (FPGA), аппаратно-программного обеспечения, программного обеспечения и/или их комбинаций, как реализованные и/или осуществленные в одной или более машинах (например, в одном или более вычислительных устройствах, которые используются в качестве пользовательского вычислительного устройства для электронного документа, одном или более серверных устройствах, таких как сервер документов и т.д.), запрограммированных в соответствии с идеями изобретения, представленными в настоящем описания, как будет очевидно специалистам в области компьютерной техники. Эти различные аспекты или особенности могут включать реализацию в одной или более компьютерных программах и/или программном обеспечении, которые являются исполняемыми и/или интерпретируемыми в программируемой системе, включающей в себя по меньшей мере один программируемый процессор, который может быть специального или общего назначения и может быть подключен, для приема данных и инструкций из системы хранения и для передачи данных и инструкций в систему хранения, по меньшей мере к одному устройству ввода и по меньшей мере к одному устройству вывода. Соответствующее кодирование программного обеспечения может быть легко подготовлено квалифицированными программистами на основе идей настоящего раскрытия, как будет очевидно специалистам в области программного обеспечения. Рассмотренные выше аспекты и реализации, использующие программное обеспечение и/или программные модули, могут также включать в себя соответствующие аппаратные средства для содействия в реализации машиноисполняемых инструкций программного обеспечения и/или программного модуля.It should be noted that any one or more aspects and embodiments described herein may 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 interpretable 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. Machine-readable storage medium, as used herein, 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 temporary 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.
На фиг.6 показано схематичное представление одного варианта осуществления вычислительного устройства в примерном виде компьютерной системы 600, в которой может исполняться набор инструкций для предписания системе управления выполнять любой один или более аспектов и/или методологий настоящего раскрытия. Кроме того, также предполагается, что несколько вычислительных устройств могут использоваться для реализации специально сконфигурированного набора инструкций, которые предписывают одному или нескольким устройствам выполнять любой один или более аспектов и/или методологий настоящего раскрытия. Компьютерная система 600 включает в себя процессор 604 и память 608, которые обмениваются данными друг с другом и с другими компонентами через шину 612. Шина 612 может включать в себя любой из нескольких типов шинных структур, в том числе, но без ограничения, шину памяти, контроллер памяти, периферийную шину, локальную шину и любые их комбинации, которые используют любую из множества шинных архитектур.6 shows a schematic representation of one embodiment of a computing device in the form of an example computer system 600 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. In addition, 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. The computer system 600 includes a processor 604 and a memory 608 that communicate with each other and with other components via a bus 612. The bus 612 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.
Память 608 может включать в себя различные компоненты (например, машиночитаемые носители информации), в том числе, но без ограничения, компонент памяти с произвольным доступом, компонент только для считывания и любые их комбинации. В одном примере основная система 616 ввода/вывода (BIOS), в том числе основные процедуры, которые помогают передавать информацию между элементами в компьютерной системе 600, например, во время запуска, может храниться в памяти 608. Память 608 может также включать в себя (например, сохраненные на одном или более машиночитаемых носителях информации) инструкции (например, программное обеспечение) 620, воплощающие любой один или более аспектов и/или методологий настоящего раскрытия. В другом примере память 608 может дополнительно включать в себя любое количество программных модулей, в том числе, но без ограничения, операционную систему, одну или более прикладных программ, другие программные модули, данные программы и любые их комбинации.Memory 608 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) 616, including basic routines that help transfer information between elements in computer system 600, such as during startup, may be stored in memory 608. Memory 608 may also include (e.g., stored on one or more computer-readable storage media) instructions (e.g., software) 620 that embody any one or more aspects and/or methodologies of the present disclosure. In another example, memory 608 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.
Вычислительная система 600 может также включать в себя запоминающее устройство 624. Примеры запоминающего устройства (например, запоминающего устройства 624), включают в себя, но не ограничиваются ими, накопитель на жестком диске, накопитель на магнитных дисках, накопитель на оптических дисках в сочетании с оптическим носителем информации, устройство твердотельной памяти и любые их комбинации. Запоминающее устройство 624 может быть подключено к шине 612 посредством соответствующего интерфейса (не показан). Примеры интерфейсов включают в себя, но не ограничиваются ими, SCSI, усовершенствованную технологию подключения (ATA), последовательную ATA, универсальную последовательную шину (USB), IEEE 1394 (Firewire) и любые их комбинации. В одном примере, запоминающее устройство 624 (или один или более их компонентов) может подключаться с помощью интерфейса к компьютерной системе 600 (например, через разъем внешний порта (не показан)). В частности, запоминающее устройство 624 и ассоциированный с ним машиночитаемый носитель 628 информации может обеспечивать энергонезависимое и/или энергонезависимое хранение машиночитаемых инструкций, структур данных, программных модулей и/или других данных для компьютерной системы 600. В одном примере, программное обеспечение 620 может находиться, полностью или частично, на машиночитаемом носителе 628 информации. В другом примере, программное обеспечение 620 может находиться, полностью или частично, в процессоре 604.The computing system 600 may also include a storage device 624. Examples of a storage device (e.g., storage device 624) 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. The storage device 624 may be connected to the bus 612 via an appropriate interface (not shown). Examples of interfaces 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, the storage device 624 (or one or more components thereof) may be connected via an interface to the computer system 600 (e.g., via an external port connector (not shown)). In particular, the memory device 624 and the associated computer-readable storage medium 628 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 600. In one example, the software 620 may reside, in whole or in part, on the computer-readable storage medium 628. In another example, the software 620 may reside, in whole or in part, in the processor 604.
Вычислительная система 600 также может включать в себя устройство 632 ввода. В одном примере, пользователь компьютерной системы 600 может вводить команды и/или другую информацию в компьютерную систему 600 через устройство 632 ввода. Примеры устройства 632 ввода включают в себя, но не ограничиваются ими, устройство буквенно-цифрового ввода (например, клавиатуру), указательное устройство, джойстик, игровой пульт, устройство ввода аудио (например, микрофон, система голосового ответа и т.д.), устройство управления курсором (например, мышь), сенсорную панель, оптический сканер, устройство видеозахвата (например, фотоаппарат, видеокамеру), сенсорный экран и любые их комбинации. Устройство 632 ввода может быть подключено с помощью интерфейса к шине 612 через любой из множества интерфейсов (не показаны), в том числе, помимо прочего, последовательный интерфейс, параллельный интерфейс, игровой порт, интерфейс USB, интерфейс FIREWIRE, прямой интерфейс к шине 612 и любые их комбинации. Устройство 632 ввода может включать в себя интерфейс сенсорного экрана, который может быть частью 636 отображения или находиться отдельно от него, что дополнительно обсуждено ниже. Устройство 632 ввода может использоваться как устройство выбора пользователя для выбора одного или более графических представлений в графическом интерфейсе, как описано выше.The computing system 600 may also include an input device 632. In one example, a user of the computer system 600 may enter commands and/or other information into the computer system 600 via the input device 632. Examples of the input device 632 include, but are not limited to, an alphanumeric input device (e.g., a keyboard), a pointing device, a joystick, a game pad, 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 632 may be interfaced to the bus 612 via any of a plurality of interfaces (not shown), including, but not limited to, a serial interface, a parallel interface, a game port, a USB interface, a FIREWIRE interface, a direct interface to the bus 612, and any combinations thereof. The input device 632 may include a touch screen interface, which may be part of the display 636 or be separate from it, as discussed further below. The input device 632 may be used as a user selection device for selecting one or more graphical representations in a graphical interface, as described above.
Пользователь может также вводить команды и/или другую информацию в компьютерную систему 600 через запоминающее устройство 624 (например, съемный диск, флэш-диск и т.д.) и/или устройство 640 сетевого интерфейса. Устройство сетевого интерфейса, такое как устройство 640 сетевого интерфейса, может использоваться для подключения компьютерной системы 600 к одной или нескольким из множества сетей, таких как сеть 644, и к одному или нескольким удаленным устройствам 648, подключенных к ней. Примеры устройства сетевого интерфейса включают в себя, но не ограничиваются ими, карту сетевого интерфейса (например, карту интерфейса мобильной сети, карту LAN), модем и любые их комбинации. Примеры сети включают в себя, но не ограничиваются ими, сеть (например, Интернет, сеть предприятия), локальную сеть (например, сеть, ассоциированную с офисом, зданием, комплексом зданий или другим относительно небольшим географическим пространством), телефонную сеть, сеть передачи данных, ассоциированную с провайдером телефонной/голосовой связи (например, с данными провайдера мобильной связи и/или телефонной сетью), прямое соединение между двумя вычислительными устройствами и любые их комбинации. Сеть, такая как сеть 644, может использовать проводной и/или беспроводной режим связи. В общем, можно использовать любую топологию сети. Информация (например, данные, программное обеспечение 620 и т.д.) может передаваться в и/или из компьютерной системы 600 с помощью сетевого интерфейса устройства 640.The user may also enter commands and/or other information into the computer system 600 via the storage device 624 (e.g., a removable disk, a flash disk, etc.) and/or the network interface device 640. A network interface device, such as the network interface device 640, may be used to connect the computer system 600 to one or more of a plurality of networks, such as the network 644, and to one or more remote devices 648 connected thereto. Examples of a network interface device include, but are not limited to, a network interface card (e.g., a mobile network interface card, a LAN card), a modem, and any combinations thereof. Examples of a network include, but are not limited to, a network (e.g., the Internet, an enterprise 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 644, may use a wired and/or wireless communication mode. In general, any network topology may be used. Information (e.g., data, software 620, etc.) may be transmitted to and/or from computer system 600 using network interface device 640.
Вычислительная система 600 может дополнительно включать в себя адаптер 652 отображения видео для передачи отображаемого изображения в устройство отображения, такое как устройство 636 отображения. Примеры устройства отображения включают в себя, но не ограничивается ими, жидкокристаллический дисплей (LCD), электронно-лучевую трубку (CRT), плазменный дисплей, светоизлучающий диод (LED), и любые их комбинации. Адаптер 652 дисплея и устройство 636 отображения можно использовать в сочетании с процессором 604, чтобы обеспечить графическое представление аспектов настоящего раскрытия. В дополнение к устройству отображения компьютерная система 600 может включать в себя одно или более других периферийных устройств вывода, в том числе, помимо прочего, звуковой динамик, принтер и любые их комбинации. Такие периферийные устройства вывода могут быть подключены к шине 612 через периферийный интерфейс 656. Примеры периферийного интерфейса включают в себя, но не ограничиваются ими, последовательный порт, USB соединение, соединение Firewire, параллельное соединение, и любые их комбинации.The computing system 600 may further include a video display adapter 652 for transmitting a displayed image to a display device, such as a display device 636. 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 652 and the display device 636 may be used in combination with the processor 604 to provide a graphical representation of aspects of the present disclosure. In addition to the display device, the computer system 600 may include one or more other peripheral output devices, including, but not limited to, an audio speaker, a printer, and any combinations thereof. Such peripheral output devices may be connected to the bus 612 via a peripheral interface 656. Examples of a peripheral interface 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 embodiments described, as 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. Furthermore, 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, each of the phrases "at least one of A and B," "one or more of A and B," and "A and/or B" means "A taken alone," "B taken alone," or "A and B together." A similar interpretation is 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 (12)
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US62/797,799 | 2019-01-28 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| RU2021125271A RU2021125271A (en) | 2023-02-28 |
| RU2829493C2 true RU2829493C2 (en) | 2024-10-30 |
Family
ID=
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20140092885A1 (en) * | 2012-09-28 | 2014-04-03 | Muthaiah Venkatachalam | Discovery and operation of hybrid wireless wide area and wireless local area networks |
| US20140341290A1 (en) * | 2011-11-11 | 2014-11-20 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Effective wedgelet partition coding using spatial prediction |
| US20150271517A1 (en) * | 2014-03-21 | 2015-09-24 | Qualcomm Incorporated | Search region determination for intra block copy in video coding |
| RU2632158C2 (en) * | 2011-11-08 | 2017-10-02 | Электроникс Энд Телекоммьюникейшнз Рисерч Инститьют | Method and device for sharing list of candidates |
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| RU2632158C2 (en) * | 2011-11-08 | 2017-10-02 | Электроникс Энд Телекоммьюникейшнз Рисерч Инститьют | Method and device for sharing list of candidates |
| US20140341290A1 (en) * | 2011-11-11 | 2014-11-20 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Effective wedgelet partition coding using spatial prediction |
| US20140092885A1 (en) * | 2012-09-28 | 2014-04-03 | Muthaiah Venkatachalam | Discovery and operation of hybrid wireless wide area and wireless local area networks |
| US20150271517A1 (en) * | 2014-03-21 | 2015-09-24 | Qualcomm Incorporated | Search region determination for intra block copy in video coding |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11695967B2 (en) | Block level geometric partitioning | |
| US12132890B2 (en) | Encoder for interprediction in geometric partitioning with an adaptive number of regions | |
| JP7646258B2 (en) | Shape-adaptive discrete cosine transform for geometric partitioning with an adaptive number of regions. | |
| US20250211768A1 (en) | Inter prediction in exponential partitioning | |
| EP3959881A1 (en) | Global motion for merge mode candidates in inter prediction | |
| EP3959889A1 (en) | Adaptive motion vector prediction candidates in frames with global motion | |
| US20230239464A1 (en) | Video processing method with partial picture replacement | |
| EP3959887A1 (en) | Candidates in frames with global motion | |
| RU2829493C2 (en) | Shape-adaptive discrete cosine transform for geometric partitioning with adaptive number of regions | |
| RU2831080C2 (en) | Interframe prediction with geometrical partitioning with adaptive number of regions | |
| RU2836360C2 (en) | Block-based adaptive resolution control | |
| US20210360229A1 (en) | Online and offline selection of extended long term reference picture retention | |
| WO2020113073A1 (en) | Block-based spatial activity measures for pictures cross-reference to related applications |