RU2780794C1 - Simplified method for signalling for the mode of affine linear weighted intra prediction - Google Patents
Simplified method for signalling for the mode of affine linear weighted intra prediction Download PDFInfo
- Publication number
- RU2780794C1 RU2780794C1 RU2021128323A RU2021128323A RU2780794C1 RU 2780794 C1 RU2780794 C1 RU 2780794C1 RU 2021128323 A RU2021128323 A RU 2021128323A RU 2021128323 A RU2021128323 A RU 2021128323A RU 2780794 C1 RU2780794 C1 RU 2780794C1
- Authority
- RU
- Russia
- Prior art keywords
- block
- mode
- encoded
- mip
- intra prediction
- Prior art date
Links
- 230000011664 signaling Effects 0.000 title description 12
- 230000004044 response Effects 0.000 claims abstract description 27
- 239000011159 matrix material Substances 0.000 claims abstract description 21
- 241000023320 Luma <angiosperm> Species 0.000 claims description 27
- 239000000126 substance Substances 0.000 abstract 1
- 238000000034 method Methods 0.000 description 64
- 238000007906 compression Methods 0.000 description 21
- UIIMBOGNXHQVGW-UHFFFAOYSA-M buffer Substances [Na+].OC([O-])=O UIIMBOGNXHQVGW-UHFFFAOYSA-M 0.000 description 16
- 238000004891 communication Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 14
- 230000000875 corresponding Effects 0.000 description 12
- 239000000203 mixture Substances 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 7
- 230000002123 temporal effect Effects 0.000 description 7
- 238000006073 displacement reaction Methods 0.000 description 6
- 230000002093 peripheral Effects 0.000 description 5
- 230000001131 transforming Effects 0.000 description 5
- 230000000007 visual effect Effects 0.000 description 5
- 230000001702 transmitter Effects 0.000 description 4
- 238000005070 sampling Methods 0.000 description 3
- 229940116821 SSD Drugs 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000002457 bidirectional Effects 0.000 description 2
- 230000001413 cellular Effects 0.000 description 2
- 230000003287 optical Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000002085 persistent Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- IESVDEZGAHUQJU-ZLBXKVHBSA-N 1-hexadecanoyl-2-(4Z,7Z,10Z,13Z,16Z,19Z-docosahexaenoyl)-sn-glycero-3-phosphocholine Chemical compound CCCCCCCCCCCCCCCC(=O)OC[C@H](COP([O-])(=O)OCC[N+](C)(C)C)OC(=O)CC\C=C/C\C=C/C\C=C/C\C=C/C\C=C/C\C=C/CC IESVDEZGAHUQJU-ZLBXKVHBSA-N 0.000 description 1
- 210000002381 Plasma Anatomy 0.000 description 1
- 230000003044 adaptive Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 210000004027 cells Anatomy 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 210000003702 immature single positive T cell Anatomy 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 230000035943 smell Effects 0.000 description 1
- 239000000779 smoke Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000153 supplemental Effects 0.000 description 1
- 230000001052 transient Effects 0.000 description 1
Images
Abstract
Description
ВКЛЮЧЕНИЕ ПОСРЕДСТВОМ ССЫЛКИINCLUSION BY LINK
[0001] Настоящее изобретение испрашивает приоритет обычной заявки США №16/822,985 "SIMPLIFIED SIGNALING METHOD FOR AFFINE LINEAR WEIGHTED INTRA PREDICTION MODE", поданной 18 марта 2020 г., которая испрашивает приоритет предварительной заявки США №62/829,439 "SIMPLIFIED SIGNALING METHOD FOR AFFINE LINEAR WEIGHTED INTRA PREDICTION MODE", поданной 4-ого апреля 2019 г. Содержание предыдущих заявок, таким образом, включено посредством ссылки в полном объеме.[0001] The present invention claims priority of U.S. Ordinary Application No. 16/822,985 "SIMPLIFIED SIGNALING METHOD FOR AFFINE LINEAR WEIGHTED INTRA PREDICTION MODE", filed March 18, 2020, which claims priority of U.S. Provisional Application No. 62/829,439 "SIMPLIFIED SIGNALING METHOD FOR AFFINE LINEAR WEIGHTED INTRA PREDICTION MODE", filed April 4th, 2019. The contents of previous applications are hereby incorporated by reference in their entirety.
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕFIELD OF TECHNOLOGY TO WHICH THE INVENTION RELATES
[0002] В настоящей заявке описаны варианты осуществления, в целом относящиеся к видеокодированию.[0002] This application describes embodiments generally related to video coding.
УРОВЕНЬ ТЕХНИКИBACKGROUND OF THE INVENTION
[0003] Описание уровня техники приведено здесь с целью представления в целом контекста изобретения. Работа авторов изобретения, в той мере, в какой она описана в этом разделе, а также аспекты описания, которые не могут квалифицироваться как уровень техники на момент подачи заявки, ни прямо, ни косвенно не признаются уровнем техники, лежащим в основе настоящего изобретения.[0003] The description of the prior art is provided herein for the purpose of presenting the overall context of the invention. The work of the authors of the invention, to the extent that it is described in this section, as well as aspects of the description that cannot be qualified as state of the art at the time of filing, neither expressly nor impliedly recognized as the state of the art underlying the present invention.
[0004] Кодирование и декодирование видеосигнала может осуществляться с использованием предсказания между изображениями с компенсацией движения. Цифровое видео без сжатия может включать в себя последовательность изображений, каждое из которых имеет пространственный размер, например, 1920×1080 отсчетов яркости и связанных с ними отсчетов цветности. Последовательность изображений может иметь фиксированную или переменную частоту смены изображений (неформально также называемую частотой кадров), например, 60 изображений в секунду, или 60 Гц. Видео без сжатия предъявляет значительные требования к битовой скорости. Например, видео 1080р60 4:2:0 с 8 битами на отсчет (разрешение отсчетов яркости 1920×1080 при частоте кадров 60 Гц) требует полосы около 1,5 Гбит/с. Час такого видео требует объема памяти более 600 ГБ.[0004] Encoding and decoding of the video signal may be performed using inter-picture prediction with motion compensation. Uncompressed digital video may include a sequence of images, each of which has a spatial size of, for example, 1920×1080 luma samples and their associated chrominance samples. The image sequence may have a fixed or variable image rate (informally also referred to as frame rate), such as 60 images per second, or 60 Hz. Uncompressed video has significant bitrate requirements. For example, 1080p60 4:2:0 video with 8 bits per sample (resolution of 1920x1080 luminance samples at 60Hz frame rate) requires about 1.5Gbps of bandwidth. An hour of such video requires more than 600 GB of storage.
[0005] Одной целью кодирования и декодирования видеосигнала может быть снижение избыточности во входном видеосигнале путем сжатия. Сжатие может способствовать смягчению вышеупомянутых требований к полосе или объему памяти, в ряде случаев на два порядка величины или более. Можно использовать как сжатие без потерь, так и сжатие с потерями, а также их комбинацию. Сжатие без потерь относится к методам реконструкции точной копии исходного сигнала из сжатого исходного сигнала. При использовании сжатия с потерями реконструированный сигнал может быть не идентичен исходному сигналу, но расхождение между исходным и реконструированным сигналами достаточно мало, чтобы реконструированный сигнал можно было использовать для намеченного применения. Сжатие с потерями широко применяется для видео. Допустимая степень искажения зависит от применения; например, пользователи некоторых заказных потоковых приложений могут мириться с более высокими искажениями, чем пользователи телевещательных приложений. При достижимой степени сжатия более высокое разрешенное/допустимое искажение может давать более высокую степень сжатия.[0005] One goal of video encoding and decoding may be to reduce redundancy in the input video signal by compressing. Compression can help to alleviate the aforementioned bandwidth or storage requirements, in some cases by two orders of magnitude or more. You can use both lossless and lossy compression, as well as a combination of both. Lossless compression refers to techniques for reconstructing an exact copy of the original signal from the compressed original signal. When lossy compression is used, the reconstructed signal may not be identical to the original signal, but the discrepancy between the original and reconstructed signals is small enough that the reconstructed signal can be used for the intended application. Lossy compression is widely used for video. The amount of distortion allowed depends on the application; for example, users of some custom streaming applications may tolerate higher distortion than users of broadcast television applications. With an achievable compression ratio, a higher allowed/allowable distortion may result in a higher compression ratio.
[0006] Кодер и декодер видеосигнала может использовать методы из нескольких широких категорий, включающих в себя, например, компенсацию движения, преобразование, квантование и энтропийное кодирование.[0006] The video encoder and decoder may use techniques from several broad categories including, for example, motion compensation, transformation, quantization, and entropy coding.
[0007] Технологии видеокодека могут включать в себя методы, известные как внутреннее кодирование. При внутреннем (интра-) кодировании значения отсчетов представляются без ссылки на отсчеты или другие данные из ранее реконструированных опорных изображений. В некоторых видеокодеках изображение пространственно разделяется на блоки отсчетов. Когда все блоки отсчетов кодируются в интра-режиме, изображение называется интра-изображением. Интра-изображения и их производные, например, изображения, полученные в режиме независимого обновления декодера, могут использоваться для сброса состояния декодера, что позволяет использовать их как первое изображение в битовом потоке кодированного видео и видеосеансе, или как неподвижное изображение. Отсчеты интра-блока могут подвергаться преобразованию, и коэффициенты преобразования могут квантоваться до энтропийного кодирования. Внутреннее предсказание может быть методом минимизации значений отсчетов в области предварительного преобразования. В ряде случаев, чем меньше значение DC (постоянной составляющей) после преобразования, и чем меньше коэффициенты АС (переменных составляющих), тем меньше битов требуется при данном размере шага квантования для представления блока после энтропийного кодирования.[0007] Video codec technologies may include techniques known as intra-coding. With internal (intra-) coding, sample values are represented without reference to samples or other data from previously reconstructed reference pictures. In some video codecs, the image is spatially divided into blocks of samples. When all blocks of samples are encoded in intra-mode, the picture is called an intra-picture. Intra-pictures and their derivatives, such as pictures obtained in the decoder independent update mode, can be used to reset the decoder state, allowing them to be used as the first picture in the encoded video bitstream and video session, or as a still picture. The intra-block samples may be transformed and the transform coefficients may be quantized prior to entropy coding. Intra-prediction may be a technique for minimizing sample values in the pre-transform region. In some cases, the smaller the value of DC (constant component) after the transformation, and the smaller the AC (variable components) coefficients, the fewer bits are required for a given quantization step size to represent a block after entropy coding.
[0008] Традиционное внутреннее кодирование, известное, например, из технологий кодирования поколения MPEG-2, не использует внутреннего предсказания. Однако некоторые более современные технологии сжатия видео включают в себя методы, которые пытаются, например, из данных окружающих отсчетов и/или метаданных, полученных в ходе кодирования/декодирования пространственно соседних и предшествующих в порядке декодирования, блоков данных. Такие методы далее именуются методами "внутреннего предсказания". Заметим, что по меньшей мере в некоторых случаях внутреннее предсказание осуществляется только с использованием опорных данных из текущего изображения, подлежащего реконструкции, но не из опорных изображений.[0008] Conventional intra coding known, for example, from MPEG-2 generation coding technologies, does not use intra prediction. However, some more recent video compression techniques include techniques that attempt, for example, from ambient sample data and/or metadata obtained during encoding/decoding of spatially adjacent and preceding data blocks in decoding order. Such methods are hereinafter referred to as "internal prediction" methods. Note that, in at least some cases, intra prediction is only performed using reference data from the current image to be reconstructed, and not from reference images.
[0009] Может существовать много разных форм внутреннего предсказания. Когда в данной технологии видеокодирования может использоваться более одного из таких методов, используемый метод может кодироваться в режиме внутреннего предсказания. В некоторых случаях режимы могут иметь подрежимы и/или параметры, которые могут кодироваться по отдельности или включаться в кодовое слово режима. Использование того или иного кодового слова для данной комбинации режимов/подрежимов/параметров может оказывать влияние на выигрыш в эффективности кодирования посредством внутреннего предсказания и, следовательно, на технологию энтропийного кодирования, используемую для перевода кодовых слов в битовый поток.[0009] There may be many different forms of intra prediction. When more than one of these methods can be used in a given video coding technology, the method used can be encoded in intra prediction mode. In some cases, modes may have sub-modes and/or parameters that may be encoded separately or included in the mode codeword. The use of a particular codeword for a given combination of modes/submodes/parameters can affect the gain in coding efficiency through intra prediction and hence the entropy coding technology used to translate the codewords into the bitstream.
[0010] Определенный режим внутреннего предсказания впервые был задан в Н.264, уточнен в Н.265, и дополнительно уточнен в более современных технологиях кодирования, например, модели совместного исследования (JEM, joint exploration model), универсального видеокодирования (VVC, versatile video coding) и наборе эталонов (BMS, benchmark set). Блок предсказателя может формироваться с использованием значений соседних отсчетов, принадлежащих уже доступным отсчетам. Значения соседних отсчетов копируются в блок предсказателя согласно направлению. Ссылка на используемое направление может кодироваться в битовом потоке или может сама предсказываться.[0010] A certain mode of intra prediction was first specified in H.264, refined in H.265, and further refined in more modern coding technologies, for example, the joint exploration model (JEM, joint exploration model), universal video coding (VVC, versatile video coding) and a set of standards (BMS, benchmark set). The predictor block can be formed using the values of neighboring samples belonging to already available samples. The values of neighboring samples are copied into the predictor block according to the direction. The reference to the direction to be used may be encoded in the bitstream, or may be self-predictable.
СУЩНОСТЬ ИЗОБРЕТЕНИЯSUMMARY OF THE INVENTION
[0011] Аспекты изобретения предусматривают способы и устройства для кодирования/декодирования видеосигнала. В некоторых примерах устройство для видеодекодирования включает в себя схему обработки.[0011] Aspects of the invention provide methods and apparatus for encoding/decoding a video signal. In some examples, the video decoding apparatus includes a processing circuit.
[0012] Согласно аспектам изобретения, представлен метод видеодекодирования в декодере. В рамках метода схема обработки декодирует данные предсказания для текущего блока текущего изображения, входящего в кодированную видеопоследовательность. Данные предсказания указывают, кодирован ли текущий блок с использованием аффинного линейного взвешенного внутреннего предсказания (ALWIP). В ответ на информацию предсказания, указывающую, что текущий блок кодирован с использованием ALWIP, схема обработки определяет индекс режима ALWIP независимо от режимов предсказания соседних блоков, смежных с текущим блоком. Индекс режима ALWIP указывает один из множества режимов ALWIP. Схема обработки реконструирует текущий блок согласно этому одному из множества режимов ALWIP.[0012] According to aspects of the invention, a method for video decoding in a decoder is provided. Within the method, the processing circuit decodes the prediction data for the current block of the current picture included in the encoded video sequence. The prediction data indicates whether the current block is encoded using affine linear weighted intra prediction (ALWIP). In response to the prediction information indicating that the current block is encoded using ALWIP, the processing circuit determines the ALWIP mode index regardless of the prediction modes of neighboring blocks adjacent to the current block. The ALWIP mode index indicates one of a plurality of ALWIP modes. The processing circuit reconstructs the current block according to this one of the plurality of ALWIP modes.
[0013] В варианте осуществления индекс режима ALWIP является либо усеченным двоичным кодовым словом, либо кодовым словом фиксированной длины, либо усеченным унарным кодовым словом.[0013] In an embodiment, the ALWIP mode index is either a truncated binary codeword, a fixed length codeword, or a truncated unary codeword.
[0014] В варианте осуществления, в ответ на информацию предсказания, указывающую на кодирование текущего блока с использованием ALWIP, схема обработки составляет список возможных режимов, включая в него по меньшей мере один фиксированный режим. По меньшей мере один фиксированный режим является заранее заданным подмножеством множества режимов ALWIP.[0014] In an embodiment, in response to prediction information indicative of encoding the current block using ALWIP, the processing circuit compiles a list of possible modes including at least one fixed mode. At least one fixed mode is a predefined subset of the set of ALWIP modes.
[0015] В варианте осуществления общее количество режимов ALWIP равно степени числа 2.[0015] In an embodiment, the total number of ALWIP modes is a power of 2.
[0016] Согласно аспектам изобретения, реагирующим на данные предсказания об отсутствии кодирования текущего блока с использованием ALWIP, схема обработки определяет, кодирован ли один из соседних блоков с использованием ALWIP. При кодировании одного из соседних блоков с использованием ALWIP схема обработки составляет список возможных режимов на основании (i) заранее заданного режима внутреннего предсказания или (ii) режима внутреннего предсказания другого соседнего блока из соседних блоков.[0016] According to aspects of the invention responsive to prediction data about the current block not being coded using ALWIP, the processing circuit determines whether one of the adjacent blocks is coded using ALWIP. When encoding one of the adjacent blocks using ALWIP, the processing circuit generates a list of possible modes based on (i) a predetermined intra prediction mode or (ii) the intra prediction mode of the other neighboring block of the adjacent blocks.
[0017] В варианте осуществления заранее заданный режим предсказания является плоским режимом внутреннего предсказания, режимом внутреннего предсказания постоянной составляющей (DC), горизонтальным режимом внутреннего предсказания или вертикальным режимом внутреннего предсказания.[0017] In an embodiment, the predetermined prediction mode is a flat intra prediction mode, a DC intra prediction mode, a horizontal intra prediction mode, or a vertical intra prediction mode.
[0018] В варианте осуществления схема обработки устанавливает один из соседних блоков как недоступный в ответ на кодирование одного из соседних блоков с использованием ALWIP.[0018] In an embodiment, the processing circuit sets one of the neighboring blocks as unavailable in response to encoding one of the neighboring blocks using ALWIP.
[0019] В варианте осуществления, в ответ на информацию предсказания, указывающую на кодирование текущего блока с использованием ALWIP и использование производного режима для связанного с текущим блоком блока цветности, схема обработки устанавливает режим внутреннего предсказания связанного блока цветности как заранее заданный режим внутреннего предсказания.[0019] In an embodiment, in response to prediction information indicating encoding the current block using ALWIP and using a derived mode for the associated chroma block associated with the current block, the processing circuit sets the intra prediction mode of the associated chroma block to a predetermined intra prediction mode.
[0020] Согласно аспектам изобретения, представлен другой способ видеодекодирования в декодере. В рамках этого способа схема обработки декодирует данные предсказания для текущего блока текущего изображения, которое входит в кодированную видеопоследовательность. Информация предсказания указывает на то, что текущий блок кодирован с использованием аффинного линейного взвешенного внутреннего предсказания (ALWIP). Схема обработки определяет, кодирован ли соседний блок, примыкающий к текущему блоку, с использованием ALWIP. Если соседний блок не кодирован с использованием ALWIP, схема обработки составляет список возможных режимов на основании (i) заранее заданного режима ALWIP или (ii) режима ALWIP другого соседнего блока. Схема обработки реконструирует текущий блок на основании списка возможных режимов.[0020] According to aspects of the invention, another method for video decoding in a decoder is provided. Within this method, the processing circuit decodes the prediction data for the current block of the current picture that is included in the encoded video sequence. The prediction information indicates that the current block is encoded using affine linear weighted intra prediction (ALWIP). The processing scheme determines whether an adjacent block adjacent to the current block is encoded using ALWIP. If a neighboring block is not encoded using ALWIP, the processing circuit makes a list of possible modes based on (i) a predetermined ALWIP mode or (ii) another neighboring block's ALWIP mode. The processing circuit reconstructs the current block based on the list of possible modes.
[0021] В варианте осуществления схема обработки устанавливает соседний блок как недоступный, в ответ на то, что соседний блок не кодирован с использованием ALWIP.[0021] In an embodiment, the processing circuit sets the adjacent block as unreachable in response to the adjacent block not being encoded using ALWIP.
[0022] В варианте осуществления соседний блок примыкает к верхнему правому или нижнему левому углу текущего блока.[0022] In an embodiment, an adjacent block is adjacent to the top right or bottom left corner of the current block.
[0023] В варианте осуществления размер списка возможных режимов основан на кодированной информации соседнего блока, включенного в кодированную видеопоследовательность.[0023] In an embodiment, the size of the list of possible modes is based on the coded neighbor block information included in the coded video sequence.
[0024] В варианте осуществления информация предсказания указывает, что блок цветности текущего блока связан с множеством блоков яркости, а схема обработки определяет, кодирован ли один из множества блоков яркости в режиме внутреннего кодирования, не относящемся к ALWIP. В ответ на кодирование блока яркости в режиме внутреннего кодирования, не относящемся к ALWIP, схема обработки определяет режим предсказания блока цветности текущего блока как не относящийся к ALWIP режим внутреннего предсказания блока яркости.[0024] In an embodiment, the prediction information indicates that a chrominance block of the current block is associated with a plurality of luminance blocks, and the processing circuit determines whether one of the plurality of luma blocks is encoded in a non-ALWIP intra coding mode. In response to encoding a luma block in a non-ALWIP intra coding mode, the processing circuit determines the chrominance block prediction mode of the current block as a non-ALWIP intra luminance block prediction mode.
[0025] В варианте осуществления данные предсказания указывают, что блок цветности текущего блока связан с множеством блоков яркости, а схема обработки определяет кодирован ли блок яркости из множества блоков яркости в режиме внутреннего кодирования, не относящемся к ALWIP. В ответ на кодирование каждого из множества блоков яркости с использованием ALWIP, схема обработки определяет режим предсказания блока цветности текущего блока как заранее заданный режим внутреннего предсказания.[0025] In an embodiment, the prediction data indicates that the chrominance block of the current block is associated with a plurality of luma blocks, and the processing circuit determines whether the luminance block is encoded from the plurality of luma blocks in a non-ALWIP intra coding mode. In response to encoding each of the plurality of luminance blocks using ALWIP, the processing circuit determines the prediction mode of the chrominance block of the current block as a predetermined intra prediction mode.
[0026] Аспекты изобретения также предусматривают один или более компьютерно-считываемый носитель, на котором хранятся инструкции, которые, при исполнении компьютером для видеодекодирования, предписывают компьютеру осуществлять какой-либо упомянутый способ видеодекодирования или их комбинацию.[0026] Aspects of the invention also provide one or more computer-readable media that stores instructions that, when executed by a video decoding computer, cause the computer to perform any of said video decoding method or a combination thereof.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF THE DRAWINGS
[0027] Дополнительные особенности, характер и различные преимущества раскрытого изобретения будут понятны из нижеследующего подробного описания и прилагаемых чертежей, на которых:[0027] Additional features, nature and various advantages of the disclosed invention will be apparent from the following detailed description and the accompanying drawings, in which:
[0028] фиг. 1 - изображение упрощенной блок-схемы системы связи в соответствии с вариантом осуществления;[0028] FIG. 1 is a simplified block diagram of a communication system in accordance with an embodiment;
[0029] фиг. 2 - изображение упрощенной блок-схемы системы связи в соответствии с вариантом осуществления;[0029] FIG. 2 is a simplified block diagram of a communication system in accordance with an embodiment;
[0030] фиг. 3 - изображение упрощенной блок-схемы кодера в соответствии с вариантом осуществления;[0030] FIG. 3 is a simplified block diagram of an encoder according to an embodiment;
[0031] фиг. 4 - изображение упрощенной блок-схемы кодера в соответствии с вариантом осуществления;[0031] FIG. 4 is a simplified block diagram of an encoder according to an embodiment;
[0032] фиг. 5 - изображение блок-схемы кодера в соответствии с вариантом осуществления;[0032] FIG. 5 is a block diagram of an encoder according to an embodiment;
[0033] фиг. 6 - изображение блок-схемы декодера в соответствии с другим вариантом осуществления;[0033] FIG. 6 is a block diagram of a decoder according to another embodiment;
[0034] фиг. 7 - иллюстрация направлений внутреннего предсказания и режимов внутреннего предсказания в ряде примеров;[0034] FIG. 7 illustrates intra prediction directions and intra prediction modes in a number of examples;
[0035] фиг. 8 - иллюстрация направлений внутреннего предсказания и режимов внутреннего предсказания в ряде примеров;[0035] FIG. 8 is an illustration of intra prediction directions and intra prediction modes in a number of examples;
[0036] фиг. 9 - иллюстрация внутреннего мультилинейного предсказания в ряде примеров;[0036] FIG. 9 is an illustration of intra multilinear prediction in a number of examples;
[0037] фиг. 10 - иллюстративные положения соседних блоков для получения списка наиболее вероятных режимов (МРМ) по текущему блоку в ряде примеров;[0037] FIG. 10 illustrates exemplary positions of adjacent blocks to obtain a Most Likely Mode List (MPL) for the current block in a number of examples;
[0038] фиг. 11 - таблица примеров кодирования блока цветности внутренним режимом;[0038] FIG. 11 is a table of examples of encoding a chrominance block by intra mode;
[0039] фиг. 12 - иллюстрация аффинного линейного взвешенного внутреннего предсказания (ALWIP) в ряде примеров;[0039] FIG. 12 is an illustration of affine linear weighted intra prediction (ALWIP) in a number of examples;
[0040] фиг. 13 - блок-схема примера процесса в соответствии с некоторыми вариантами осуществления;[0040] FIG. 13 is a flow diagram of an example process in accordance with some embodiments;
[0041] фиг. 14 - блок-схема другого примера процесса в соответствии с некоторыми вариантами осуществления; и[0041] FIG. 14 is a flow diagram of another exemplary process in accordance with some embodiments; and
[0042] фиг. 15 - схема компьютерной системы в соответствии с вариантом осуществления.[0042] FIG. 15 is a diagram of a computer system in accordance with an embodiment.
ПОДРОБНОЕ ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯDETAILED DESCRIPTION OF EMBODIMENTS
[0043] Кодер и декодер видео[0043] Video encoder and decoder
[0044] На фиг. 1 показана упрощенная блок-схема системы связи (100) согласно варианту осуществления настоящего изобретения. Система связи (100) включает в себя множество оконечных устройств, которые могут осуществлять связь друг с другом, например, через сеть (150). Например, система связи (100) включает в себя первую пару оконечных устройств (110) и (120), соединенных между собой через сеть (150). В примере, приведенном на фиг.1, первая пара оконечных устройств (110) и (120) осуществляет однонаправленную передачу данных. Например, оконечное устройство (110) может кодировать видеоданные (например, поток видеоизображений, захваченных оконечным устройством (110)), для передачи в другое оконечное устройство (120) через сеть (150). Кодированные видеоданные могут передаваться в форме одного или более битовых потоков кодированного видео. Оконечное устройство (120) может принимать кодированные видеоданные из сети (150), декодировать кодированные видеоданные для реконструирования видеоизображений и отображения видеоизображений согласно реконструированным видеоданным. Однонаправленная передача данных может быть свойственна приложениям служб массовой информации и т.п.[0044] FIG. 1 shows a simplified block diagram of a communication system (100) according to an embodiment of the present invention. The communication system (100) includes a plurality of terminal devices that can communicate with each other, for example, via a network (150). For example, the communication system (100) includes a first pair of terminals (110) and (120) interconnected via a network (150). In the example shown in figure 1, the first pair of terminal devices (110) and (120) performs a unidirectional data transfer. For example, terminal (110) may encode video data (eg, a video stream captured by terminal (110)) for transmission to another terminal (120) via network (150). The encoded video data may be transmitted in the form of one or more encoded video bitstreams. The terminal device (120) may receive the encoded video data from the network (150), decode the encoded video data to reconstruct the video images, and display the video images according to the reconstructed video data. One-way communication may be inherent in media service applications and the like.
[0045] В другом примере, система связи (100) включает в себя вторую пару оконечных устройств (130) и (140) которые осуществляют двунаправленную передачу кодированных видеоданных, которые могут возникать, например, в ходе видеоконференцсвязи. Для двунаправленной передачи данных, в порядке примера, каждое оконечное устройство из оконечных устройств (130) и (140) может кодировать видеоданные (например, поток видеоизображений, захваченных оконечным устройством) для передачи в другое оконечное устройство из оконечных устройств (130) и (140) через сеть (150). Каждое оконечное устройство из оконечных устройств (130) и (140) также может принимать кодированные видеоданные, передаваемые другим оконечным устройством из оконечных устройств (130) и (140), и может декодировать кодированные видеоданные для реконструирования видеоизображений и отображать видеоизображения на доступном устройстве отображения согласно реконструированным видеоданным.[0045] In another example, the communication system (100) includes a second pair of terminals (130) and (140) that carry out bi-directional transmission of encoded video data that may occur, for example, during a video conference. For bidirectional data communication, by way of example, each terminal of terminals (130) and (140) may encode video data (eg, a video stream captured by the terminal) for transmission to the other terminal of terminals (130) and (140). ) through the network (150). Each terminal of terminals (130) and (140) can also receive encoded video data transmitted by another terminal from terminals (130) and (140) and can decode the encoded video data to reconstruct video images and display video images on an available display device according to reconstructed video data.
[0046] В примере, приведенном на фиг. 1, оконечные устройства (110), (120), (130) и (140) могут быть проиллюстрированы как серверы, персональные компьютеры и смартфоны, но это не ограничивает принципы настоящего изобретения. Варианты осуществления настоящего изобретения находят применение для портативных компьютеров, планшетных компьютеров, медиаплееров и/или специального оборудования для видеоконференцсвязи. Сеть (150) представляет любое количество сетей, которые переносят кодированные видеоданные между оконечными устройствами (110), (120), (130) и (140), включая, например, проводные и/или беспроводные сети связи. Сеть связи (150) позволяет обмениваться данными в режиме канальной коммутации и/или пакетной коммутации. Иллюстративные сети включают в себя телекоммуникационные сети, локальные сети, глобальные сети и/или интернет. В целях настоящего рассмотрения, архитектура и топология сети (150) могут не иметь отношения к настоящему изобретению, если конкретно не указаны ниже.[0046] In the example shown in FIG. 1, terminal devices (110), (120), (130), and (140) can be illustrated as servers, personal computers, and smartphones, but this does not limit the principles of the present invention. Embodiments of the present invention find application in laptop computers, tablet computers, media players and/or dedicated video conferencing equipment. Network (150) represents any number of networks that carry encoded video data between terminal devices (110), (120), (130) and (140), including, for example, wired and/or wireless communication networks. The communication network (150) allows data to be exchanged in a circuit-switched and/or packet-switched mode. Exemplary networks include telecommunications networks, local area networks, wide area networks, and/or the Internet. For the purposes of this discussion, the architecture and topology of the network (150) may not be relevant to the present invention unless specifically noted below.
[0047] На фиг. 2 показано, в порядке примера применения раскрытого изобретения, размещение видеокодера и видеодекодера в окружении потоковой передачи. Раскрытое изобретение может быть в равной степени применимо к другим применениям обработки видео, включая, например, видеоконференцсвязь, цифровое телевидение, хранение сжатого видео на цифровых носителях, в том числе CD, DVD, карте памяти и т.п., и т.д.[0047] FIG. 2 shows, as an example of the application of the disclosed invention, the placement of a video encoder and a video decoder in a streaming environment. The disclosed invention may be equally applicable to other video processing applications, including, for example, videoconferencing, digital television, storage of compressed video on digital media, including CD, DVD, memory card, etc., etc.
[0048] Система потоковой передачи может включать в себя подсистему захвата (213), которая может включать в себя источник видеосигнала (201), например, цифровую камеру, создающую, например, поток видеоизображений (202), не подвергнутых сжатию. Например, поток (202) видеоизображений включает в себя отсчеты, взятые цифровой камерой. Поток видеоизображений (202), изображенный жирной линией, чтобы подчеркнуть большой объем данных по сравнению с кодированными видеоданными (204) (или битовыми потоками кодированного видео), может обрабатываться электронным устройством (220), которое включает в себя видеокодер (203), подключенный к источнику видеосигнала (201). Видеокодер (203) может включать в себя оборудование, программное обеспечение или их комбинацию для обеспечения или реализации аспектов раскрытого изобретения, как более подробно описано ниже. Кодированные видеоданные (204) (или битовый поток кодированного видео (204)), изображенные тонкой линией, чтобы подчеркнуть меньший объем данных по сравнению с потоком видеоизображений (202), могут храниться на потоковом сервере (205) для использования в будущем. Одна или более клиентских подсистем потоковой передачи, например, клиентские подсистемы (206) и (208) на фиг. 2, могут осуществлять доступ к потоковому серверу (205) для извлечения копий (207) и (209) кодированных видеоданных (204). Клиентская подсистема (206) может включать в себя видеодекодер (210), например, в электронном устройстве (230). Видеодекодер (210) декодирует входящую копию (207) кодированных видеоданных и создает исходящий поток видеоизображений (211), который может визуализироваться на дисплее (212) (например, на отображающем экране) или другом устройстве визуализации (не показано). В некоторых системах потоковой передачи, кодированные видеоданные (204), (207) и (209) (например, битовые потоки видео) могут кодироваться согласно тем или иным стандартам кодирования/сжатия видео. Примеры этих стандартов включают в себя ITU-Т Recommendation Н.265. Например, разрабатывается стандарт видеокодирования под неофициальным названием "универсальное видеокодирование" (VVC, Versatile Video Coding). Раскрытое изобретение может использоваться в контексте VVC.[0048] The streaming system may include a capture subsystem (213), which may include a video signal source (201), such as a digital camera, creating, for example, an uncompressed video stream (202). For example, the video stream (202) includes samples taken by a digital camera. The video stream (202), shown in bold to emphasize the large amount of data compared to the encoded video data (204) (or encoded video bitstreams), may be processed by an electronic device (220) that includes a video encoder (203) connected to video source (201). The video encoder (203) may include hardware, software, or a combination thereof for providing or implementing aspects of the disclosed invention, as described in more detail below. The encoded video data (204) (or the encoded video bitstream (204)) depicted with a thin line to emphasize the smaller amount of data compared to the video stream (202) may be stored on the streaming server (205) for future use. One or more streaming client subsystems, such as client subsystems (206) and (208) in FIG. 2 may access the streaming server (205) to retrieve copies (207) and (209) of the encoded video data (204). The client subsystem (206) may include a video decoder (210), such as in an electronic device (230). The video decoder (210) decodes the incoming copy (207) of the encoded video data and creates an outgoing video stream (211) that can be rendered on a display (212) (eg, a display screen) or other rendering device (not shown). In some streaming systems, the encoded video data (204), (207), and (209) (eg, video bitstreams) may be encoded according to one or another video coding/compression standard. Examples of these standards include ITU-T Recommendation H.265. For example, a video coding standard is being developed under the informal name "universal video coding" (VVC, Versatile Video Coding). The disclosed invention may be used in the context of VVC.
[0049] Заметим, что электронные устройства (220) и (230) могут включать в себя другие компоненты (не показаны). Например, электронное устройство (220) может включать в себя видеодекодер (не показан), и электронное устройство (230) также может включать в себя видеокодер (не показан).[0049] Note that the electronic devices (220) and (230) may include other components (not shown). For example, electronic device (220) may include a video decoder (not shown), and electronic device (230) may also include a video encoder (not shown).
[0050] На фиг. 3 показана блок-схема видеодекодера (310) согласно варианту осуществления настоящего изобретения. Видеодекодер (310) может входить в состав электронного устройства (330). Электронное устройство (330) может включать в себя приемник (331) (например, приемные схемы). Видеодекодер (310) может использоваться вместо видеодекодера (210) в примере, приведенном на фиг. 2.[0050] FIG. 3 shows a block diagram of a video decoder (310) according to an embodiment of the present invention. The video decoder (310) may be part of the electronic device (330). The electronic device (330) may include a receiver (331) (eg, receiver circuits). Video decoder (310) may be used instead of video decoder (210) in the example shown in FIG. 2.
[0051] Приемник (331) может принимать одну или более кодированных видеопоследовательностей для декодирования видеодекодером (310); в том же или другом варианте осуществления, по одной кодированной видеопоследовательности за раз, где декодирование каждой кодированной видеопоследовательности не зависит от других кодированных видеопоследовательностей. Кодированная видеопоследовательность может приниматься из канала (301), который может быть аппаратной/программной линией связи с запоминающим устройством, где хранятся кодированные видеоданные. Приемник (331) может принимать кодированные видеоданные с другими данными, например, кодированными аудиоданными и/или вспомогательными потоками данных, которые могут ретранслироваться на соответствующие использующие их объекты (не показаны). Приемник (331) может отделять кодированную видеопоследовательность от других данных. Для борьбы с джиттером сети, буферная память (315) может быть подключена между приемником (331) и энтропийным декодером / анализатором (320) (далее "анализатором (320)"). В некоторых вариантах применения буферная память (315) входит в состав видеодекодера (310). В других она может не входить в состав видеодекодера (310) (не показан). В прочих вариантах может существовать буферная память (не показана) вне видеодекодера (310), например, для борьбы с джиттером сети, помимо другой буферной памяти (315) в составе видеодекодера (310), например, для управления хронированием доигрывания. Когда приемник (331) принимает данные от устройства хранения/ретрансляции с достаточной полосой и управляемостью или из изосинхронной сети, буферная память (315) может быть не нужна или может быть мала. Для использования в пакетных сетях наилучшей попытки, например, Интернете, буферная память (315) может требоваться, может быть сравнительно большой и может иметь преимущественно адаптивный размер, и по меньшей мере частично может быть реализована в операционной системе или аналогичных элементах (не показаны) вне видеодекодера (310).[0051] The receiver (331) may receive one or more encoded video sequences for decoding by the video decoder (310); in the same or another embodiment, one coded video sequence at a time, where the decoding of each coded video sequence is independent of other coded video sequences. The encoded video sequence may be received from a channel (301), which may be a hardware/software link to a storage device where the encoded video data is stored. The receiver (331) may receive the encoded video data with other data, such as encoded audio data and/or auxiliary data streams, which may be relayed to their respective utilizing entities (not shown). The receiver (331) may separate the encoded video sequence from other data. To combat network jitter, a buffer memory (315) may be connected between the receiver (331) and the entropy decoder/analyzer (320) (hereinafter "analyzer (320)"). In some applications, the buffer memory (315) is included in the video decoder (310). In others, it may not be part of the video decoder (310) (not shown). In other embodiments, there may be a buffer memory (not shown) outside the video decoder (310), for example, to combat network jitter, in addition to another buffer memory (315) within the video decoder (310), for example, to control the timing of the playout. When the receiver (331) receives data from a storage/relay device with sufficient bandwidth and controllability, or from an isosynchronous network, the buffer memory (315) may not be needed or may be small. For use in best attempt packet networks, such as the Internet, buffer memory (315) may be required, may be relatively large, and may have a predominantly adaptive size, and may at least partially be implemented in an operating system or similar elements (not shown) outside video decoder (310).
[0052] Видеодекодер (310) может включать в себя анализатор (320) для реконструкции символов (321) из кодированной видеопоследовательности. Категории этих символов включают в себя информацию, используемую для управления работой видеодекодера (310), и возможно информацию для управления устройством визуализации, например, устройством визуализации (312) (например, отображающим экраном), которое не является неотъемлемой частью электронного устройства (330), но может быть подключено к электронному устройству (330), как показано на фиг. 3. Информация управления для устройств(а) визуализации может представлять собой сообщения информации дополнительного улучшения (SEI, Supplemental Enhancement Information) или фрагменты набора параметров информации пригодности видео (VUI, Video Usability Information) (не показаны). Анализатор (320) может анализировать / энтропийно декодировать принятую кодированную видеопоследовательность. Кодирование кодированной видеопоследовательности может осуществляться в соответствии с технологией или стандартом видеокодирования и может следовать различным принципам, в том числе кодированию с переменной длиной серии, кодированию по Хаффману, арифметическому кодированию с контекстной чувствительностью или без нее и т.д. Анализатор (320) может извлекать из кодированной видеопоследовательности набор параметров подгруппы для по меньшей мере одной из подгрупп пикселей в видеодекодере на основании по меньшей мере одного параметра, соответствующего группе. Подгруппы могут включать в себя группы изображений (GOP, Groups of Pictures), изображения, тайлы, слайсы, макроблоки, единицы кодирования (CU, Coding Units), блоки, единицы преобразования (TU, Transform Units), единицы предсказания (PU, Prediction Units) и т.д. Анализатор (320) также может извлекать из кодированной видеопоследовательности информацию, например, коэффициенты преобразования, значения параметров квантователя, векторы движения и т.д.[0052] The video decoder (310) may include an analyzer (320) for reconstructing the symbols (321) from the encoded video sequence. The categories of these symbols include information used to control the operation of the video decoder (310), and possibly information to control a visualization device, such as a visualization device (312) (for example, a display screen), which is not an integral part of the electronic device (330), but may be connected to an electronic device (330) as shown in FIG. 3. The control information for the rendering device(s) may be Supplemental Enhancement Information (SEI) messages or Video Usability Information (VUI) parameter set fragments (not shown). The analyzer (320) may analyze/entropy decode the received encoded video sequence. Encoding of the encoded video sequence may be in accordance with a video coding technology or standard, and may follow various principles, including variable run length coding, Huffman coding, arithmetic coding with or without context sensitivity, and so on. The analyzer (320) can extract from the encoded video sequence a set of subgroup parameters for at least one of the subgroups of pixels in the video decoder based on at least one parameter corresponding to the group. Subgroups may include groups of pictures (GOP, Groups of Pictures), images, tiles, slices, macroblocks, coding units (CU, Coding Units), blocks, transformation units (TU, Transform Units), prediction units (PU, Prediction Units ) etc. The analyzer (320) can also extract information from the encoded video sequence, such as transform coefficients, quantizer parameter values, motion vectors, and so on.
[0053] Анализатор (320) может осуществлять операцию энтропийного декодирования / анализа видеопоследовательности, принятой из буферной памяти (315), для создания символов (321).[0053] The analyzer (320) may perform an entropy decoding/analysis operation of the video sequence received from the buffer memory (315) to create symbols (321).
[0054] Для реконструкции символов (321) могут использоваться несколько разных модулей в зависимости от типа кодированного видеоизображения или его частей (например: интер- и интра-изображения, интер- и интра-блока) и других факторов. Какие модули используются и как, может определяться информацией управления подгруппами, выделенной из кодированной видеопоследовательности анализатором (320). Поток такой информации управления подгруппами между анализатором (320) и множественными модулями для простоты в дальнейшем не показан.[0054] Several different modules may be used for symbol reconstruction (321) depending on the type of encoded video image or parts thereof (eg: inter- and intra-pictures, inter- and intra-block) and other factors. Which modules are used and how can be determined by the subgroup management information extracted from the encoded video sequence by the analyzer (320). The flow of such subgroup management information between the analyzer (320) and multiple modules is not shown hereinafter for simplicity.
[0055] Помимо ранее упомянутых функциональных блоков видеодекодер (310) может принципиально подразделяться на несколько функциональных модулей как описано ниже. В практической реализации, работающей в условиях коммерческих ограничений, многие из этих модулей тесно взаимодействуют друг с другом и могут, по меньшей мере частично, встраиваться один в другой. Однако в целях описания раскрытого изобретения уместно принципиальное подразделение на нижеперечисленные функциональные модули.[0055] In addition to the previously mentioned functional blocks, the video decoder (310) can be fundamentally divided into several functional modules as described below. In a practical implementation operating under commercial constraints, many of these modules interact closely with one another and can, at least partially, be nested within one another. However, for the purposes of describing the disclosed invention, a fundamental subdivision into the following functional modules is appropriate.
[0056] Первым модулем является модуль масштабирования / обратного преобразования (351). Модуль масштабирования / обратного преобразования (351) принимает квантованный коэффициент преобразования, а также информацию управления, включающую в себя используемое преобразование, размер блока, коэффициент квантования, матрицы масштабирования квантования и т.д. в качестве символа(ов) (321) от анализатора (320). Модуль масштабирования / обратного преобразования (351) может выводить блоки, содержащие значения отсчетов, которые можно вводить в агрегатор (355).[0056] The first module is the scaling/inverse transform module (351). The scaling/inverse transform module (351) receives the quantized transform coefficient as well as control information including the transform used, block size, quantization factor, quantization scaling matrices, and so on. as character(s) (321) from the analyzer (320). The scaling/inverse transform module (351) can output blocks containing sample values that can be input to the aggregator (355).
[0057] В ряде случаев выходные отсчеты блока масштабирования / обратного преобразования (351) могут относиться к внутренне-кодированному блоку; то есть блоку, который не использует предсказанную информацию из ранее реконструированных изображений, но может использовать предсказанную информацию из ранее реконструированных частей текущего изображения. Такая предсказанная информация может обеспечиваться модулем предсказания внутри изображения (352). В ряде случаев модуль предсказания внутри изображения (352) генерирует блок такого же размера и формы, как блок, подлежащий реконструкции, с использованием информации ранее реконструированного окружения, извлеченной из буфера текущего изображения (358). Буфер текущего изображения (358) буферизует, например, частично реконструированное текущее изображение и/или полностью реконструированное текущее изображение. Агрегатор (355) в ряде случаев добавляет для каждого отсчета информацию предсказания, сгенерированную модулем внутреннего предсказания (352), в информацию выходных отсчетов, обеспеченную модулем масштабирования / обратного преобразования (351).[0057] In some cases, the output samples of the scaling/inverse transform block (351) may refer to an intra-coded block; that is, a block that does not use predicted information from previously reconstructed images, but may use predicted information from previously reconstructed portions of the current image. Such predicted information may be provided by an intra-picture prediction module (352). In some cases, the intra-image prediction module (352) generates a block of the same size and shape as the block to be reconstructed using the previously reconstructed environment information retrieved from the current image buffer (358). The current picture buffer (358) buffers, for example, a partially reconstructed current picture and/or a fully reconstructed current picture. The aggregator (355) sometimes adds, for each sample, the prediction information generated by the intra prediction module (352) to the output sample information provided by the scaler/inverse transform module (351).
[0058] В других случаях выходные отсчеты модуля масштабирования / обратного преобразования (351) могут относиться к внутренне кодированному блоку, возможно, с компенсацией движения. В таком случае модуль предсказания с компенсацией движения (353) может осуществлять доступ к памяти опорных изображений (357) для извлечения отсчетов, используемых в предсказании. После применения компенсации движения к извлеченным отсчетам в соответствии с символами (321), относящимися к блоку, эти отсчеты могут добавляться агрегатором (355) к выходному сигналу модуля масштабирования / обратного преобразования (351) (в этом случае именуемому остаточными отсчетами или остаточным сигналом) для генерации информации выходных отсчетов. Адреса в памяти опорных изображений (357), откуда модуль предсказания с компенсацией движения (353) извлекает предсказанные отсчеты, могут регулироваться векторами движения, доступными модулю предсказания с компенсацией движения (353) в форме символов (321), которые могут иметь, например, компоненты X, Y и компоненты опорного изображения. Компенсация движения также может включать в себя интерполяцию значений отсчетов, извлеченных из памяти опорных изображений (357), когда используются точные векторы движения под-отсчетов, механизмы предсказания векторов движения и т.д.[0058] In other cases, the output samples of the scaler / demapper (351) may refer to an intra-coded block, possibly with motion compensation. In such a case, the motion compensation prediction module (353) may access the reference picture memory (357) to retrieve samples used in the prediction. After motion compensation has been applied to the extracted samples in accordance with the symbols (321) associated with the block, these samples can be added by the aggregator (355) to the output of the scaler/inverse transform module (351) (in this case referred to as residual samples or residual signal) to generation of output sample information. The addresses in the reference picture memory (357) from where the motion compensation prediction module (353) retrieves the predicted samples may be governed by motion vectors available to the motion compensation prediction module (353) in the form of symbols (321), which may have, for example, components X, Y and reference image components. Motion compensation may also include interpolation of sample values retrieved from reference picture memory (357) when precise sub-sample motion vectors, motion vector prediction mechanisms, etc. are used.
[0059] К выходным отсчетам агрегатора (355) можно применять различные методы контурной фильтрации в модуле контурного фильтра (356). Технологии сжатия видео могут включать в себя технологии деблокирующего фильтра под управлением параметров, включенных в кодированную видеопоследовательность (также именуемую битовым потоком кодированного видео) и становиться доступными модулю контурного фильтра (356) в качестве символов (321) от анализатора (320), но также могут реагировать на метаинформацию, полученную в ходе декодирования предыдущих (в порядке декодирования) частей кодированного изображения или кодированной видеопоследовательности, а также реагировать на ранее реконструированные и подвергнутые контурной фильтрации значения отсчетов.[0059] Various loop filtering techniques can be applied to the output samples of the aggregator (355) in the loop filter module (356). The video compression technologies may include deblocking filter technologies driven by parameters included in the encoded video sequence (also referred to as the encoded video bitstream) and made available to the loop filter module (356) as symbols (321) from the analyzer (320), but may also respond to meta-information obtained during the decoding of the previous (in the order of decoding) parts of the encoded image or encoded video sequence, as well as respond to previously reconstructed and loop-filtered sample values.
[0060] Модуль контурного фильтра (356) может выдавать поток отсчетов, который может поступать на устройство визуализации (312), а также сохраняться в памяти опорных изображений (357) для использования в будущем предсказании между изображениями.[0060] The loop filter module (356) may provide a stream of samples that may be fed to the renderer (312) as well as stored in reference picture memory (357) for use in future inter-picture prediction.
[0061] Некоторые кодированные изображения, будучи полностью реконструированы, могут использоваться в качестве опорных изображений для будущего предсказания. Например, когда кодированное изображение, соответствующее текущему изображению, полностью реконструировано, и кодированное изображение идентифицировано как опорное изображение (например, анализатором (320)), буфер текущего изображения (358) может становиться частью памяти опорных изображений (357), и свежий буфер текущего изображения может повторно выделяться до начала реконструкции следующего кодированного изображения.[0061] Some encoded pictures, when fully reconstructed, can be used as reference pictures for future prediction. For example, when the encoded picture corresponding to the current picture is completely reconstructed and the encoded picture is identified as a reference picture (eg, by the analyzer (320)), the current picture buffer (358) may become part of the reference picture memory (357), and a fresh current picture buffer may be re-allocated before the reconstruction of the next encoded picture starts.
[0062] Видеодекодер (310) может осуществлять операции декодирования согласно заранее заданной технологии сжатия видео, например, по стандарту ITU-T Rec. Н.265. Кодированная видеопоследовательность может согласовываться с синтаксисом, заданным используемой/ым технологией или стандартом сжатия видео в том смысле, что кодированная видеопоследовательность может придерживаться как синтаксиса технологии или стандарта сжатия видео, так и профилей, задокументированных в технологии или стандарте сжатия видео. В частности, профиль может выбирать некоторые инструменты как инструменты, доступные для использования только под этим профилем, из всех инструментов, доступных в технологии или стандарте сжатия видео. Также для согласованности может быть необходимо, чтобы сложность кодированной видеопоследовательности оставалась в границах, заданных уровнем технологии или стандарта сжатия видео. В ряде случаев, уровни ограничивают максимальный размер изображения, максимальную частоту кадров, максимальную частоту отсчетов для реконструкции (измеряемую, например, в мегаотсчетах в секунду), максимальный размер опорного изображения и т.д. Пределы, установленные уровнями, в ряде случаев могут дополнительно ограничиваться спецификациями гипотетического эталонного декодера (HRD, Hypothetical Reference Decoder) и метаданными для управления буфером HRD, сигнализируемого в кодированной видеопоследовательности.[0062] The video decoder (310) may perform decoding operations according to a predetermined video compression technology, such as the ITU-T Rec. H.265. The encoded video sequence may conform to the syntax specified by the used video compression technology or standard in the sense that the encoded video sequence may adhere to both the syntax of the video compression technology or standard and the profiles documented in the video compression technology or standard. In particular, a profile may select certain tools as tools available for use only under that profile, from among all the tools available in a video compression technology or standard. It may also be necessary for consistency that the complexity of the encoded video sequence remain within the boundaries set by the video compression technology level or standard. In some cases, the levels limit the maximum image size, the maximum frame rate, the maximum sampling rate for reconstruction (measured in megasamples per second, for example), the maximum reference image size, and so on. The limits set by the levels, in some cases, may be further limited by the specifications of the hypothetical reference decoder (HRD, Hypothetical Reference Decoder) and metadata for managing the HRD buffer signaled in the encoded video sequence.
[0063] Согласно варианту осуществления, приемник (331) может принимать дополнительные (избыточные) данные с кодированным видео. Дополнительные данные могут быть включены как часть кодированной(ых) видеопоследовательности(ей). Дополнительные данные могут использоваться видеодекодером (310) для правильного декодирования данных и/или более точной реконструкции исходных видеоданных. Дополнительные данные могут представлять собой, например, слои улучшения во времени, пространстве или отношения сигнал/шум (SNR, signal noise ratio), избыточные слайсы, избыточные изображения, коды прямой коррекции ошибок и т.д.[0063] According to an embodiment, the receiver (331) may receive additional (redundant) data with encoded video. Additional data may be included as part of the encoded video sequence(s). The additional data may be used by the video decoder (310) to properly decode the data and/or more accurately reconstruct the original video data. The additional data may be, for example, enhancement layers in time, space, or signal-to-noise ratio (SNR), redundant slices, redundant images, forward error correction codes, and so on.
[0064] На фиг. 4 показана блок-схема видеокодера (403) согласно варианту осуществления настоящего изобретения. Видеокодер (403) входит в состав электронного устройства (420). Электронное устройство (420) включает в себя передатчик (440) (например, передающую схему). Видеокодер (403) может использоваться вместо видеокодера (203) в примере, приведенном на фиг. 2.[0064] FIG. 4 shows a block diagram of a video encoder (403) according to an embodiment of the present invention. The video encoder (403) is included in the electronic device (420). The electronic device (420) includes a transmitter (440) (eg, a transmission circuit). Video encoder (403) may be used instead of video encoder (203) in the example shown in FIG. 2.
[0065] Видеокодер (403) может принимать отсчеты видео от источника видеосигнала (401) (который не входит в состав электронного устройства (420) в примере, показанном на фиг.4), который может захватывать видеоизображение(я), подлежащее(ие) кодированию видеокодером (403). В другом примере источник видеосигнала (401) входит в состав электронного устройства (420).[0065] The video encoder (403) may receive video samples from a video signal source (401) (which is not included in the electronic device (420) in the example shown in Fig. 4), which may capture the video image(s) to be encoding with a video encoder (403). In another example, the video signal source (401) is included in the electronic device (420).
[0066] Источник видеосигнала (401) может обеспечивать исходную видеопоследовательность, подлежащую кодированию видеокодером (403) в форме потока отсчетов цифрового видео любой подходящей битовой глубины (например: 8 бит, 10 бит, 12 бит, …), любого цветового пространства (например, ВТ.601 Y CrCB, RGB, …), и любой подходящей структуры дискретизации (например, Y CrCb 4:2:0, Y CrCb 4:4:4). В системе службы массовой информации источником видеосигнала (401) может быть запоминающее устройство, где хранится ранее подготовленное видео. В системе видеоконференцсвязи источником видеосигнала (401) может быть камера, которая захватывает информацию локального изображения как видеопоследовательность. Видеоданные могут обеспечиваться как множество отдельных изображений, которые создают ощущение движения при наблюдении в последовательности. Сами изображения могут быть организованы как пространственный массив пикселей, где каждый пиксель может содержать один или более отсчетов в зависимости от используемых структуры дискретизации, цветового пространства и т.д. Специалисту в данной области техники нетрудно понять соотношение между пикселями и отсчетами. Нижеследующее описание сфокусировано на отсчетах.[0066] The video source (401) may provide the source video sequence to be encoded by the video encoder (403) in the form of a digital video sample stream of any suitable bit depth (eg: 8 bit, 10 bit, 12 bit, ...), any color space (eg, BT.601 Y CrCB, RGB, ...) and any suitable sampling structure (eg Y CrCb 4:2:0, Y CrCb 4:4:4). In a media service system, the video source (401) may be a storage device where previously prepared video is stored. In a videoconferencing system, the video source (401) may be a camera that captures local image information as a video sequence. The video data may be provided as a plurality of individual images that give a sense of movement when viewed in sequence. The images themselves may be organized as a spatial array of pixels, where each pixel may contain one or more samples depending on the sampling structure, color space, etc. used. It is not difficult for a person skilled in the art to understand the relationship between pixels and samples. The following description focuses on readings.
[0067] Согласно варианту осуществления, видеокодер (403) может кодировать и сжимать изображения исходной видеопоследовательности в кодированную видеопоследовательность (443) в реальном времени или с учетом любых других временных ограничений, налагаемых применением. Установление надлежащей скорости кодирования является одной из функций контроллера (450). В некоторых вариантах осуществления контроллер (450) управляет другими функциональными модулями, как описано ниже, и функционально подключен к другим функциональным модулям. Подключение для простоты не показано. Параметры, установленные контроллером (450), могут включать в себя параметры, связанные регулировкой частоты (пропуск изображения, квантователь, значение лямбда, применяемое при оптимизация скорости-искажения, …), размер изображения, схему групп изображений (GOP, group of pictures), максимальную зону поиска вектора движения и т.д. Контроллер (450) может быть выполнен с возможностью иметь другие подходящие функции, относящиеся к видеокодеру (403), оптимизированному для той или иной конструкции системы.[0067] According to an embodiment, the video encoder (403) may encode and compress images of the source video sequence into the encoded video sequence (443) in real time or subject to any other time constraints imposed by the application. Setting the proper coding rate is one of the functions of the controller (450). In some embodiments, the controller (450) controls other functional modules, as described below, and is operatively connected to other functional modules. The connection is not shown for simplicity. The parameters set by the controller (450) may include parameters related to frequency adjustment (picture skip, quantizer, lambda value applied in rate-distortion optimization, ...), picture size, group of pictures scheme (GOP, group of pictures), maximum motion vector search area, etc. The controller (450) may be configured to have other suitable functions related to the video encoder (403) optimized for a given system design.
[0068] В некоторых вариантах осуществления видеокодер (403) выполнен с возможностью работать в петле кодирования. В качестве очень упрощенного описания, в порядке примера, петля кодирования может включать в себя исходный кодер (430) (например, отвечающий за создание символов, например, потока символов на основе входного изображения, подлежащего кодированию, и опорного(ых) изображения(ий)) и (локальный) декодер (433), встроенный в видеокодер (403). Декодер (433) реконструирует символы для создания данных отсчетов, аналогично тому, как это делал бы (удаленный) декодер (поскольку любое сжатие между символами и битовым потоком кодированного видео происходит без потерь в технологиях сжатия видео, рассматриваемых в раскрытом изобретении). Реконструированный поток отсчетов (данные отсчетов) поступают в память опорных изображений (434). Поскольку декодирование потока символов приводит к результатам с точностью до бита, не зависящим от положения декодера (локального или удаленного), содержимое памяти опорных изображений (434) также будет одинаковым с точностью до бита для локального кодера и удаленного кодера. Другими словами, предсказанная часть кодера "видит" в качестве отсчетов опорного изображения точно такие же значения отсчетов, как "видел" бы декодер при использовании предсказания в ходе декодирования. Этот фундаментальный принцип синхронизма опорного изображения (и, в итоге, дрейф, если синхронизм не удается поддерживать, например, вследствие канальных ошибок) используется также в некоторых связанных областях техники.[0068] In some embodiments, video encoder (403) is configured to operate in a coding loop. As a very simplified description, by way of example, an encoding loop may include a source encoder (430) (e.g., responsible for creating symbols, e.g., a stream of symbols, based on an input image to be encoded and reference image(s) ) and a (local) decoder (433) built into the video encoder (403). The decoder (433) reconstructs the symbols to create sample data, in a similar manner as a (remote) decoder would (because any compression between the symbols and the encoded video bitstream is lossless in the video compression technologies of the disclosed invention). The reconstructed sample stream (sample data) enters the reference picture memory (434). Since the decoding of the symbol stream produces bit-accurate results independent of the position of the decoder (local or remote), the contents of the reference picture memory (434) will also be the same bit-accuracy for the local encoder and the remote encoder. In other words, the predicted portion of the encoder "sees" as reference picture samples exactly the same sample values as the decoder would "see" if using prediction during decoding. This fundamental principle of reference picture synchronism (and eventually drift if synchronism cannot be maintained, for example due to channel errors) is also used in some related fields of technology.
[0069] "Локальный" декодер (433) может действовать таким же образом как "удаленный" декодер, например, видеодекодер (310), подробно вышеописанный со ссылкой на фиг. 3. Однако, опять же, согласно фиг. 3, поскольку символы доступны, и кодирование/декодирование символов в кодированную видеопоследовательность энтропийным кодером (445) и анализатором (320) может осуществляться без потерь, части энтропийного декодирования видеодекодера (310), включающие в себя буферную память (315) и анализатор (320), могут быть не полностью реализованы в локальном декодере (433).[0069] A "local" decoder (433) may operate in the same manner as a "remote" decoder, such as the video decoder (310) detailed above with reference to FIG. 3. However, again, referring to FIG. 3, since the symbols are available and encoding/decoding of the symbols into the encoded video sequence by the entropy encoder (445) and analyzer (320) can be lossless, the entropy decoding parts of the video decoder (310) including the buffer memory (315) and the analyzer (320) , may not be fully implemented in the local decoder (433).
[0070] При этом можно сделать вывод, что любая технология декодирования, присутствующая в декодере, за исключением анализа/энтропийного декодирования, также обязательно должна присутствовать, по существу в идентичной функциональной форме в соответствующем кодере. По этой причине раскрытое изобретение сконцентрировано на работе декодера. Описание технологий кодирования может быть сокращено, поскольку они являются обратными подробно описанным технологиям декодированная. Только в некоторых областях требуется более детальное описание, которое приведено ниже.[0070] In doing so, it can be concluded that any decoding technology present in a decoder, with the exception of analysis/entropy decoding, must also be present, in essentially identical functional form, in the corresponding encoder. For this reason, the disclosed invention is concentrated on the operation of the decoder. The description of encoding technologies can be abbreviated as they are the inverse of the decoded technologies described in detail. Only in some areas a more detailed description is required, which is given below.
[0071] Согласно некоторым примерам, в ходе работы исходный кодер (430) может осуществлять кодирование с предсказанием и компенсацией движения, при котором входное изображение кодируется с предсказанием на основании одного или более ранее кодированных изображений из видеопоследовательности, указанных как "опорные изображения". Таким образом, машина кодирования (432) кодирует различия между пиксельными блоками входного изображения и пиксельными блоками опорного изображения(й), которое(ые) может(ут) выбираться в качестве предсказанной(ых) ссылки(ок) на входное изображение.[0071] According to some examples, in operation, source encoder (430) may perform motion-compensated predictive coding, in which an input picture is predictively encoded based on one or more previously encoded pictures from a video sequence, referred to as "reference pictures". Thus, the coding engine (432) encodes the differences between the pixel blocks of the input image and the pixel blocks of the reference image(s) that can be selected as the predicted reference(s) to the input image.
[0072] Локальный видеодекодер (433) может декодировать кодированные видеоданные изображений, которые могут быть указаны как опорные изображения, на основе символов, созданных исходным кодером (430). Операции машины кодирования (432) могут быть преимущественно процессами с потерями. Когда кодированные видеоданные могут декодироваться в видеодекодере (не показан на фиг. 4), реконструированная видеопоследовательность обычно может представлять собой копию исходной видеопоследовательности с некоторыми ошибками. Локальный видеодекодер (433) дублирует процессы декодирования, которые могут осуществляться видеодекодером на опорных изображениях, и может предписывать сохранение реконструированных опорных изображений в кэш-памяти опорных изображений (434). Таким образом, видеокодер (403) может локально сохранять копии реконструированных опорных изображений, имеющие такое же содержимое, как реконструированные опорные изображения, которые будут получены видеодекодером на стороне приемника (в отсутствие ошибок передачи).[0072] The local video decoder (433) may decode the encoded video data of pictures that can be specified as reference pictures based on the symbols generated by the source encoder (430). The operations of the encoding engine (432) may be predominantly lossy processes. When the encoded video data can be decoded in a video decoder (not shown in FIG. 4), the reconstructed video sequence can typically be a copy of the original video sequence with some errors. The local video decoder (433) duplicates the decoding processes that may be performed by the video decoder on the reference pictures and may cause the reconstructed reference pictures to be stored in the reference picture cache (434). Thus, the video encoder (403) can locally store copies of the reconstructed reference pictures having the same content as the reconstructed reference pictures to be received by the video decoder at the receiver side (in the absence of transmission errors).
[0073] Предсказатель (435) может осуществлять поиски предсказания для машины кодирования (432). Таким образом, для нового изображения, подлежащего кодированию, предсказатель (435) может искать в памяти опорных изображений (434) данные отсчетов (в качестве кандидатов на роль опорных пиксельных блоков) или те или иные метаданные, например, векторы движения опорного изображения, формы блоков и т.д., которые могут служить надлежащей ссылкой для предсказания новых изображений. Предсказатель (435) может работать на основе "блоки отсчетов - пиксельные блоки", чтобы находить надлежащие ссылки для предсказания. В ряде случаев, согласно результатам поиска, полученным предсказателем (435), входное изображение может иметь ссылки для предсказания, извлеченные из множества опорных изображений, хранящихся в памяти опорных изображений (434).[0073] The predictor (435) may perform prediction searches for the coding engine (432). Thus, for a new image to be encoded, the predictor (435) can search the reference image memory (434) for sample data (as candidates for the role of reference pixel blocks) or some metadata, for example, motion vectors of the reference image, block shapes etc., which can serve as a proper reference for predicting new images. The predictor (435) may operate on a sample-block-pixel-block basis to find the proper references for prediction. In some cases, according to the search results obtained by the predictor (435), the input image may have prediction references extracted from a plurality of reference pictures stored in the reference picture memory (434).
[0074] Контроллер (450) может управлять операциями кодирования исходного кодера (430), включая, например, установление параметров и параметров подгруппы, используемых для кодирования видеоданных.[0074] The controller (450) may control the encoding operations of the source encoder (430), including, for example, setting parameters and subgroup parameters used to encode video data.
[0075] Выходной сигнал всех вышеупомянутых функциональных модулей может подвергаться энтропийному кодированию в энтропийном кодере (445). Энтропийный кодер (445) переводит символы, сгенерированные различными функциональными модулями, в кодированную видеопоследовательность путем сжатия символов без потерь согласно технологиям, например, кодирования по Хаффману, кодирования с переменной длиной серии, арифметического кодирования и т.д.[0075] The output signal of all the above functional modules can be entropy encoded in an entropy encoder (445). An entropy encoder (445) translates symbols generated by various functional units into a coded video sequence by lossless symbol compression according to techniques such as Huffman coding, variable run length coding, arithmetic coding, and so on.
[0076] Передатчик (440) может буферизовать кодированную(ые) видеопоследовательность(и), созданную энтропийным кодером (445) для подготовки к передаче через канал связи (460), который может быть аппаратной/программной линией связи с запоминающим устройством, где хранятся кодированные видеоданные. Передатчик (440) может объединять кодированные видеоданные от видеокодера (403) с другими данными, подлежащими передаче, например, кодированными аудиоданными и/или вспомогательными потоками данных (источники не показаны).[0076] The transmitter (440) may buffer the encoded video sequence(s) created by the entropy encoder (445) in preparation for transmission over a communication channel (460), which may be a hardware/software link to a storage device where the encoded video data. The transmitter (440) may combine the encoded video data from the video encoder (403) with other data to be transmitted, such as encoded audio data and/or auxiliary data streams (sources not shown).
[0077] Контроллер (450) может управлять работой видеокодера (403). В ходе кодирования контроллер (450) может назначать каждому кодированному изображению тот или иной тип кодированного изображения, который может определять методы кодирования, применимые к соответствующему изображению. Например, изображениям часто могут назначаться следующие типы изображения:[0077] The controller (450) may control the operation of the video encoder (403). During encoding, the controller (450) may assign to each encoded picture one or another encoded picture type, which may determine the encoding methods applicable to the corresponding picture. For example, images can often be assigned the following image types:
[0078] Интра-изображение (I-изображение), которое можно кодировать и декодировать без использования какого-либо другого изображения в последовательности в качестве источника предсказания. Некоторые видеокодеки допускают разные типы интра-изображений, включая, например, изображения в формате независимого обновления декодера ("IDR", Independent Decoder Refresh). Специалисту в данной области техники известны разновидности I-изображений и их соответствующие варианты применения и особенности.[0078] An intra-picture (I-picture) that can be encoded and decoded without using any other picture in the sequence as a prediction source. Some video codecs allow different types of intra-pictures, including, for example, pictures in the Independent Decoder Refresh ("IDR" format). The person skilled in the art will be aware of the varieties of I-images and their respective applications and features.
[0079] Предсказанное изображение (Р-изображение), которое можно кодировать и декодировать с использованием внутреннего предсказания или внешнего предсказания с использованием не более одного вектора движения и опорного индекса для предсказания значений отсчетов каждого блока.[0079] A predicted picture (P-picture) that can be encoded and decoded using intra prediction or inter prediction using at most one motion vector and a reference index to predict sample values of each block.
[0080] Двунаправленно-предсказанное изображение (В-изображение), которое можно кодировать и декодировать с использованием внутреннего предсказания или внешнего предсказания с использованием не более двух векторов движения и опорных индексов для предсказания значений отсчетов каждого блока. Аналогично, мультипредсказанные изображения могут использовать более двух опорных изображений и связанные метаданные для реконструкции единого блока.[0080] A bi-directionally predicted picture (B-picture) that can be encoded and decoded using intra prediction or inter prediction using no more than two motion vectors and reference indices to predict sample values of each block. Likewise, multi-predicted pictures may use more than two reference pictures and associated metadata to reconstruct a single block.
[0081] Исходные изображения обычно допускают пространственное разделение на множество блоков отсчетов (например, блоки 4×4, 8×8, 4×8 или 16×16 отсчетов каждый) и кодирование на поблочной основе (блок за блоком). Блоки могут кодироваться предиктивно со ссылкой на другие (ранее кодированные) блоки, определенные назначением кодирования, применяемым к соответствующим изображениям этих блоков. Например, блоки I-изображений могут кодироваться без предсказания или с предсказанием со ссылкой на ранее кодированные блоки того же изображения (пространственным предсказанием или внутренним предсказанием). Пиксельные блоки Р-изображений могут кодироваться с предсказанием, посредством пространственного предсказания или временного предсказания со ссылкой на одно ранее кодированное опорное изображение. Блоки В-изображений могут кодироваться с предсказанием, посредством пространственного предсказания или временного предсказания со ссылкой на одно или два ранее кодированных опорных изображения.[0081] Source images typically allow for spatial division into multiple blocks of samples (eg, blocks of 4x4, 8x8, 4x8, or 16x16 samples each) and coding on a block-by-block basis. The blocks may be predictively encoded with reference to other (previously encoded) blocks determined by the coding assignment applied to the respective images of those blocks. For example, blocks of I-pictures may be encoded without prediction or predictively with reference to previously coded blocks of the same picture (spatial prediction or intra prediction). The pixel blocks of P-pictures may be predictively encoded by spatial prediction or temporal prediction with reference to one previously encoded reference picture. Blocks of B-pictures may be predictively encoded by spatial prediction or temporal prediction with reference to one or two previously encoded reference pictures.
[0082] Видеокодер (403) может осуществлять операции кодирования согласно заранее заданной технологии или стандарту видеокодирования, например, ITU-T Rec. Н.265. В своей работе видеокодер (403) может осуществлять различные операции сжатия, в том числе операции предиктивного кодирования, которые используют временные и пространственные избыточности во входной видеопоследовательности. Поэтому кодированные видеоданные могут согласовываться с синтаксисом, заданным используемой технологией или стандартом видеокодирования.[0082] The video encoder (403) may perform encoding operations according to a predetermined video coding technology or standard, such as ITU-T Rec. H.265. In operation, the video encoder (403) may perform various compression operations, including predictive coding operations that exploit temporal and spatial redundancies in the input video sequence. Therefore, the encoded video data may conform to the syntax given by the video coding technology or standard being used.
[0083] Согласно варианту осуществления, передатчик (440) может передавать дополнительные данные с кодированным видео. Исходный кодер (430) может включать такие данные как часть кодированной видеопоследовательности. Дополнительные данные могут содержать временные/пространственные/SNR слои улучшения, другие формы избыточных данных, например, избыточные изображения и слайсы, сообщения SEI, фрагменты набора параметров VUI и т.д.[0083] According to an embodiment, the transmitter (440) may transmit additional data with encoded video. The source encoder (430) may include such data as part of the encoded video sequence. The additional data may include temporal/spatial/SNR enhancement layers, other forms of redundant data such as redundant images and slices, SEI messages, VUI parameter set fragments, and so on.
[0084] Видео может захватываться как множество исходных изображений (видеоизображений) во временной последовательности. Предсказание внутри изображения (часто сокращенно именуемое внутренним предсказанием) использует пространственную корреляцию в данном изображении, а предсказание между изображениями использует (временную или иную) корреляцию между изображениями. Например, конкретное изображение, подлежащее кодированию/декодированию, которое именуется текущим изображением, разбивается на блоки. Когда блок в текущем изображении аналогичен опорному блоку в ранее кодированном и все еще буферизованном опорном изображении в видео, блок в текущем изображении может кодироваться вектором, который именуется вектором движения. Вектор движения указывает на опорный блок в опорном изображении и может иметь третье измерение, идентифицирующее опорное изображение в случае использования множественных опорных изображений.[0084] The video may be captured as a plurality of source images (video images) in time sequence. Intra-image prediction (often abbreviated as intra-image prediction) uses spatial correlation within a given image, and inter-image prediction uses (temporal or otherwise) correlation between images. For example, a specific image to be encoded/decoded, which is called the current image, is divided into blocks. When a block in the current picture is similar to a reference block in a previously encoded and still buffered reference picture in a video, the block in the current picture may be encoded with a vector, which is referred to as a motion vector. The motion vector points to a reference block in the reference picture and may have a third dimension identifying the reference picture in case multiple reference pictures are used.
[0085] В некоторых вариантах осуществления метод двойного предсказания может использоваться в предсказании между изображениями. Согласно методу двойного предсказания, используются два опорных изображения, например, первое опорное изображение и второе опорное изображение, которые оба предшествуют в порядке декодирования текущему изображению в видео (но могут быть в прошлом и будущем, соответственно, в порядке отображения). Блок в текущем изображении может кодироваться первым вектором движения, который указывает на первый опорный блок в первом опорном изображении, и вторым вектором движения, который указывает на второй опорный блок во втором опорном изображении. Блок может предсказываться комбинацией первого и второго опорных блоков.[0085] In some embodiments, a dual prediction technique may be used in inter-picture prediction. According to the double prediction method, two reference pictures are used, for example, a first reference picture and a second reference picture, both of which precede the current picture in the video in decoding order (but may be in the past and future, respectively, in display order). A block in the current picture may be encoded by a first motion vector that points to a first reference block in the first reference picture and a second motion vector that points to a second reference block in the second reference picture. A block may be predicted by a combination of the first and second reference blocks.
[0086] Дополнительно метод режима объединения может использоваться в предсказании между изображениями для повышения эффективности кодирования.[0086] Additionally, a combining mode technique may be used in inter-picture prediction to improve coding efficiency.
[0087] Согласно некоторым вариантам осуществления изобретения, предсказания, например, предсказания между изображениями и предсказания внутри изображения осуществляются поблочно. Например, согласно стандарту HEVC, изображение в последовательности видеоизображений разбивается на единицы дерева кодирования (CTU, coding tree units) для сжатия, CTU в изображении имеют одинаковый размер, например 64×64 пикселя, 32×32 пикселя или 16×16 пикселей. В общем случае CTU включает в себя три блока дерева кодирования (СТВ, coding tree blocks), а именно, один СТВ яркости и два СТВ цветности. Каждый CTU может рекурсивно делиться квадрадеревом на одну или более единиц кодирования (CU). Например, CTU размером 64×64 пикселя может делиться на одну CU размером 64×64 пикселя или 4 CU размером 32×32 пикселя или 16 CU размером 16×16 пикселей. Например, каждая CU анализируется для определения типа предсказания для CU, например, типа внешнего предсказания или типа внутреннего предсказания. CU делится на одну или более единиц предсказания (PU) в зависимости от временной и/или пространственной предсказуемости. В целом, каждая PU включает в себя блок (РВ) предсказания яркости и два РВ цветности. Согласно варианту осуществления, операция предсказания при кодировании (кодировании/декодировании) осуществляется в единице блока предсказания. На примере блока предсказания яркости, блок предсказания включает в себя матрицу значений (например, значений яркости) для пикселей, например, 8×8 пикселей, 16×16 пикселей, 8×16 пикселей, 16×8 пикселей и т.п.[0087] According to some embodiments of the invention, predictions, such as inter-picture predictions and intra-picture predictions, are performed block by block. For example, according to the HEVC standard, an image in a video sequence is divided into coding tree units (CTUs) for compression, CTUs in an image are the same size, such as 64×64 pixels, 32×32 pixels, or 16×16 pixels. In general, the CTU includes three coding tree blocks (CTBs), namely one luma CTB and two chrominance CTBs. Each CTU may recursively divide the quadtree into one or more coding units (CUs). For example, a 64x64 pixel CTU can be divided into one 64x64 pixel CU or 4 32x32 pixel CUs or 16 16x16 pixel CUs. For example, each CU is analyzed to determine a prediction type for the CU, such as an inter prediction type or an intra prediction type. The CU is divided into one or more prediction units (PU) depending on temporal and/or spatial predictability. In general, each PU includes a Luma Prediction Unit (PB) and two Chroma PBs. According to an embodiment, an encoding (encoding/decoding) prediction operation is performed in a prediction block unit. Taking the luminance prediction block as an example, the prediction block includes a matrix of values (e.g., luminance values) for pixels, e.g., 8x8 pixels, 16x16 pixels, 8x16 pixels, 16x8 pixels, and the like.
[0088] На фиг. 5 показана схема видеокодера (503) согласно другому варианту осуществления изобретения. Видеокодер (503) выполнен с возможностью приема блока обработки (например, блока предсказания) значений отсчетов в текущем видеоизображении в последовательности видеоизображений и кодирования блока обработки в кодированное изображение, которое составляет часть кодированной видеопоследовательности. Например, видеокодер (503) используется вместо видеокодера (203) в примере, приведенном на фиг. 2.[0088] FIG. 5 shows a diagram of a video encoder (503) according to another embodiment of the invention. The video encoder (503) is configured to receive a processing block (eg, a prediction block) of sample values in the current video image in the video sequence and to encode the processing block into an encoded image that is part of the encoded video sequence. For example, video encoder (503) is used instead of video encoder (203) in the example shown in FIG. 2.
[0089] В примере HEVC видеокодер (503) принимает матрицу значений отсчетов для блока обработки, например, блока предсказания 8×8 отсчетов и т.п. Видеокодер (503) определяет, наилучшим ли образом кодируется блок обработки в интра-режиме, интеррежиме или режиме двойного предсказания с использованием, например, оптимизации скорость-искажения. Когда блок обработки подлежит кодированию в интра-режиме, видеокодер (503) может использовать метод внутреннего предсказания для кодирования блока обработки в кодированное изображение; и когда блок обработки подлежит кодированию в интер-режиме или режиме двойного предсказания, видеокодер (503) может использовать метод внешнего предсказания или двойного предсказания, соответственно, для кодирования блока обработки в кодированное изображение. В некоторых технологиях видеокодирования режим объединения может быть подрежимом предсказания между изображениями, где вектор движения выводится из одного или более предсказателей вектора движения без привлечения кодированного компонента вектора движения вне предсказателей. В некоторых других технологиях видеокодирования может присутствовать компонент вектора движения, применимый к данному блоку. В порядке примера, видеокодер (503) включает в себя другие компоненты, например, модуль определения режима (не показан) для определения режима блоков обработки.[0089] In the HEVC example, video encoder (503) receives a matrix of sample values for a processing block, such as an 8x8 sample prediction block, or the like. The video encoder (503) determines whether the processing block is best encoded in intra mode, inter mode, or dual prediction mode using, for example, rate-distortion optimization. When the processing block is to be encoded in intra mode, the video encoder (503) may use an intra prediction technique to encode the processing block into an encoded picture; and when the processing unit is to be encoded in inter mode or dual prediction mode, the video encoder (503) may use an inter prediction or dual prediction technique, respectively, to encode the processing unit into an encoded picture. In some video coding technologies, the combining mode may be a sub-mode of inter-picture prediction where a motion vector is derived from one or more motion vector predictors without involving the encoded motion vector component outside of the predictors. In some other video coding technologies, there may be a motion vector component applicable to a given block. By way of example, the video encoder (503) includes other components, such as a mode determination module (not shown) for determining the mode of the processing units.
[0090] В примере, приведенном на фиг. 5, видеокодер (503) включает в себя интер-кодер (530), интра-кодер (522), вычислитель остатка (523), переключатель (526), кодер остатка (524), общий контроллер (521) и энтропийный кодер (525), соединенные друг с другом как показано на фиг. 5.[0090] In the example shown in FIG. 5, the video encoder (503) includes an inter encoder (530), an intra encoder (522), a residual calculator (523), a switch (526), a residual encoder (524), a common controller (521), and an entropy encoder (525). ) connected to each other as shown in Fig. 5.
[0091] Интер-кодер (530) выполнен с возможностью приема отсчетов текущего блока (например, блока обработки), сравнения блока с одним или более опорными блоками в опорных изображениях (например, блоками в предыдущих изображениях и более поздних изображениях), генерации информации внешнего предсказания (например, описания избыточной информации согласно методу внутреннего кодирования, векторов движения, информации режима объединения), и вычисления результатов внешнего предсказания (например, блока предсказания) на основании информации внешнего предсказания с использованием любого подходящего метода. В некоторых примерах опорными изображениями являются декодированные опорные изображения, которые декодируются на основе информации кодированного видео.[0091] The inter-encoder (530) is configured to receive samples of the current block (e.g., processing block), compare the block with one or more reference blocks in reference pictures (e.g., blocks in previous pictures and later pictures), generate external prediction (eg, describing redundant information according to the intra coding method, motion vectors, combining mode information), and calculating inter prediction results (eg, prediction block) based on the inter prediction information using any suitable method. In some examples, reference pictures are decoded reference pictures that are decoded based on encoded video information.
[0092] Интра-кодер (522) выполнен с возможностью приема отсчетов текущего блока (например, блока обработки), в ряде случаев сравнения блока с блоками, ранее кодированными в том же изображении, генерирования квантованных коэффициентов после преобразования, и в ряде случаев также информации внутреннего предсказания (например, информации направления внутреннего предсказания согласно одному или более методам внутреннего кодирования). В порядке примера, интра-кодер (522) также вычисляет результаты внутреннего предсказания (например, блок предсказания) на основании информации внутреннего предсказания и опорных блоков в том же изображении.[0092] The intra-encoder (522) is configured to receive samples of the current block (e.g., processing block), in some cases comparing the block with blocks previously encoded in the same picture, generating quantized coefficients after the transformation, and in some cases also information intra prediction (eg, intra prediction direction information according to one or more intra coding methods). By way of example, the intra encoder 522 also calculates intra prediction results (eg, prediction block) based on intra prediction information and reference blocks in the same picture.
[0093] Общий контроллер (521) выполнен с возможностью определения общих данных управления и управления другими компонентами видеокодера (503) на основе общих данных управления. Например, общий контроллер (521) определяет режим блока и выдает сигнал управления на переключатель (526) на основе режима. Например, когда режим является интра-режимом, общий контроллер (521) управляет переключателем (526) для выбора результата интра-режима для использования вычислителем остатка (523), и управляет энтропийным кодером (525) для выбора информации внутреннего предсказания и включения информации внутреннего предсказания в битовый поток; и когда режим является интер-режимом, общий контроллер (521) управляет переключателем (526) для выбора результата внешнего предсказания для использования вычислителем остатка (523), и управляет энтропийным кодером (525) для выбора информации внешнего предсказания и включения информации внешнего предсказания в битовый поток.[0093] The common controller (521) is configured to determine common control data and control other components of the video encoder (503) based on the common control data. For example, the common controller (521) determines the mode of the block and outputs a control signal to the switch (526) based on the mode. For example, when the mode is the intra mode, the common controller (521) controls the switch (526) to select the result of the intra mode for use by the residual calculator (523), and controls the entropy encoder (525) to select the intra prediction information and turn on the intra prediction information into the bitstream; and when the mode is inter mode, the common controller (521) controls the switch (526) to select the inter prediction result to be used by the residual calculator (523), and controls the entropy encoder (525) to select the inter prediction information and include the inter prediction information in the bit flow.
[0094] Вычислитель остатка (523) выполнен с возможностью вычисления разности (данных остатка) между принятым блоком и результатами предсказания, выбранными из интра-кодера (522) или интер-кодера (530). Кодер остатка (524) выполнен с возможностью действовать на основе данных остатка для кодирования данных остатка для генерации коэффициентов преобразования. Например, кодер остатка (524) выполнен с возможностью преобразования данных остатка из пространственной области в частотную область и генерирования коэффициентов преобразования. Затем коэффициенты преобразования подвергаются обработке квантования для получения квантованных коэффициентов преобразования. В различных вариантах осуществления видеокодер (503) также включает в себя декодер остатка (528). Декодер остатка (528) выполнен с возможностью осуществления обратного преобразования и генерирования декодированных данных остатка. Декодированные данные остатка могут надлежащим образом использоваться интра-кодером (522) и интер-кодером (530). Например, интеркодер (530) может генерировать декодированные блоки на основе декодированных данных остатка и информации внешнего предсказания, и интра-кодер (522) может генерировать декодированные блоки на основе декодированных данных остатка и информации внутреннего предсказания. Декодированные блоки надлежащим образом обрабатываются для генерации декодированных изображений, и декодированные изображения могут буферизоваться в схеме памяти (не показана) и в некоторых примерах использоваться в качестве опорных изображений.[0094] The residual calculator (523) is configured to calculate the difference (residual data) between the received block and the prediction results selected from the intra-coder (522) or inter-coder (530). The residual encoder (524) is configured to operate on the residual data to encode the residual data to generate transform coefficients. For example, the residual encoder (524) is configured to transform residual data from the spatial domain to the frequency domain and generate transform coefficients. Then, the transform coefficients are subjected to quantization processing to obtain quantized transform coefficients. In various embodiments, the video encoder (503) also includes a residual decoder (528). The residual decoder (528) is configured to perform inverse transformation and generate decoded residual data. The decoded residual data may be appropriately used by the intra-coder (522) and the inter-coder (530). For example, the intercoder (530) may generate decoded blocks based on the decoded residual data and inter prediction information, and the intra encoder (522) may generate decoded blocks based on the decoded residual data and intra prediction information. The decoded blocks are properly processed to generate decoded pictures, and the decoded pictures can be buffered in a memory circuit (not shown) and used as reference pictures in some examples.
[0095] Энтропийный кодер (525) выполнен с возможностью форматирования битового потока так, чтобы он включал в себя кодированный блок. Энтропийный кодер (525) выполнен с возможностью включать различную информацию согласно подходящему стандарту, например, стандарту HEVC. Например, энтропийный кодер (525) выполнен с возможностью включать общие данные управления, выбранную информацию предсказания (например, информацию внутреннего предсказания или информацию внешнего предсказания), информацию остатка и другую подходящую информацию в битовый поток. Заметим, что, согласно раскрытому изобретению, при кодировании блока в подрежиме объединения интер-режима или режима двойного предсказания, информация остатка отсутствует.[0095] The entropy encoder (525) is configured to format the bitstream so that it includes a coded block. The entropy encoder (525) is configured to include various information according to an appropriate standard, such as the HEVC standard. For example, the entropy encoder (525) is configured to include common control data, selected prediction information (eg, intra prediction information or inter prediction information), residual information, and other suitable information in the bitstream. Note that, according to the disclosed invention, when encoding a block in the combining submode of the inter mode or dual prediction mode, there is no residual information.
[0096] На фиг. 6 показана схема видеодекодера (610) согласно другому варианту осуществления изобретения. Видеодекодер (610) выполнен с возможностью приема кодированных изображений, составляющих часть кодированной видеопоследовательности, и декодирования кодированных изображений для генерации реконструированных изображений. Например, видеодекодер (610) используется вместо видеодекодера (210) в примере, приведенном на фиг. 2.[0096] FIG. 6 shows a diagram of a video decoder (610) according to another embodiment of the invention. The video decoder (610) is configured to receive encoded pictures that are part of the encoded video sequence and decode the encoded pictures to generate reconstructed pictures. For example, video decoder (610) is used instead of video decoder (210) in the example shown in FIG. 2.
[0097] В примере, приведенном на фиг. 6, видеодекодер (610) включает в себя энтропийный декодер (671), интер-декодер (680), декодер остатка (673), модуль реконструкции (674) и интра-декодер (672), соединенные друг с другом как показано на фиг. 6.[0097] In the example shown in FIG. 6, the video decoder (610) includes an entropy decoder (671), an inter decoder (680), a residual decoder (673), a reconstruction unit (674), and an intra decoder (672) connected to each other as shown in FIG. 6.
[0098] Энтропийный декодер (671) может быть выполнен с возможностью реконструкции из кодированного изображения некоторых символов, которые представляют синтаксические элементы, образующие кодированное изображение. Такие символы могут включать в себя, например, режим кодирования блока (например, интра-режим, интер-режим, режим двойного предсказания, причем последние два в подрежиме объединения или другом подрежиме), информацию предсказания (например, информацию внутреннего предсказания или информацию внешнего предсказания), которая может идентифицировать определенный отсчет или метаданные, используемые для предсказания интра-декодером (672) или интер-декодером (680), соответственно, информацию остатка в форме, например, квантованных коэффициентов преобразования и т.п. Например, когда режим предсказания является режимом внутреннего или двойного предсказания, информация внешнего предсказания поступает на интер-декодер (680); а когда тип предсказания является типом внутреннего предсказания, информация внутреннего предсказания поступает в интра-декодер (672). Информация остатка может подвергаться обратному квантованию и поступать в декодер остатка (673).[0098] The entropy decoder (671) may be configured to reconstruct from the encoded image some symbols that represent the syntax elements that make up the encoded image. Such symbols may include, for example, a block coding mode (e.g., intra mode, inter mode, dual prediction mode, the latter two being in a pooling submode or other submode), prediction information (e.g., intra prediction information, or inter prediction information ) that can identify a specific sample or metadata used for prediction by the intra-decoder (672) or inter-decoder (680), respectively, residual information in the form of, for example, quantized transform coefficients, and the like. For example, when the prediction mode is an intra or dual prediction mode, the inter prediction information is input to the inter decoder (680); and when the prediction type is an intra prediction type, the intra prediction information is input to the intra decoder (672). The residual information may be inverse quantized and fed to a residual decoder (673).
[0099] Интер-декодер (680) выполнен с возможностью приема информации внешнего предсказания и генерирования результатов внешнего предсказания на основании информации внешнего предсказания.[0099] The inter decoder (680) is configured to receive inter prediction information and generate inter prediction results based on the inter prediction information.
[0100] Интра-декодер (672) выполнен с возможностью приема информации внутреннего предсказания и генерирования результатов предсказания на основании информации внутреннего предсказания.[0100] The intra decoder (672) is configured to receive intra prediction information and generate prediction results based on the intra prediction information.
[0101] Декодер остатка (673) выполнен с возможностью осуществления обратного квантования для извлечения деквантованных коэффициентов преобразования и обработки деквантованных коэффициентов преобразования для преобразования остатка из частотной области в пространственную область. Декодер остатка (673) также может требовать некоторой информации управления (включать параметр квантователя (QP, Quantizer Parameter)), и эта информация может обеспечиваться энтропийным декодером (671) (путь данных не показан, поскольку это может быть только информация управления малого объема).[0101] The residual decoder (673) is configured to perform inverse quantization to extract the dequantized transform coefficients and process the dequantized transform coefficients to transform the residual from the frequency domain to the spatial domain. The residual decoder (673) may also require some control information (include a quantizer parameter (QP, Quantizer Parameter)), and this information may be provided by the entropy decoder (671) (the data path is not shown since this may only be small volume control information).
[0102] Модуль реконструкции (674) выполнен с возможностью объединения в пространственной области остатка на выходе декодера остатка (673) и результатов предсказания (на выходе модулей внешнего или внутреннего предсказания, в зависимости от ситуации) для формирования реконструированного блока, который может входить в состав реконструированного изображения, которое, в свою очередь, может входить в состав реконструированного видео. Заметим, что другие подходящие операции, например, операция деблокирования и т.п., может осуществляться для повышения визуального качества.[0102] The reconstruction module (674) is configured to combine in the spatial domain the residual at the output of the residual decoder (673) and the prediction results (at the output of the inter or intra prediction modules, as appropriate) to form a reconstructed block that may be included in reconstructed image, which, in turn, can be part of the reconstructed video. Note that other suitable operations, such as a release operation and the like, may be performed to improve the visual quality.
[0103] Заметим, что видеокодеры (203), (403) и (503) и видеодекодеры (210), (310) и (610) могут быть реализованы с использованием любого подходящего метода. Согласно варианту осуществления, видеокодеры (203), (403) и (503) и видеодекодеры (210), (310) и (610) могут быть реализованы с использованием одной или более интегральных схем. В другом варианте осуществления видеокодеры (203), (403) и (503) и видеодекодеры (210), (310) и (610) могут быть реализованы с использованием одного или более процессоров, которые выполняют программные инструкции.[0103] Note that video encoders (203), (403) and (503) and video decoders (210), (310) and (610) may be implemented using any suitable technique. According to an embodiment, video encoders (203), (403) and (503) and video decoders (210), (310) and (610) may be implemented using one or more integrated circuits. In another embodiment, video encoders (203), (403) and (503) and video decoders (210), (310) and (610) may be implemented using one or more processors that execute program instructions.
[0104] Внутреннее предсказание в HEVC и VVC[0104] Intra prediction in HEVC and VVC
[0105] В следующем описании под термином "блок" может иметься ввиду блок предсказания, блок кодирования или единица кодирования.[0105] In the following description, the term "block" may mean a prediction block, a coding block, or a coding unit.
[0106] Фиг. 7 иллюстративно демонстрирует направления внутреннего предсказания и соответствующие режимы внутреннего предсказания в ряде примеров (например, в HEVC). Фиг. 7 включает в себя 35 режимов внутреннего предсказания (режимы 0-34). Режим 0 и режим 1 - ненаправленные режимы, среди которых режим 0 - плоский режим (плоский режим внутреннего предсказания), а режим 1 - режим постоянной составляющей (постоянной составляющей внутреннего предсказания). Режимы 2-34 - направленные (или угловые) режимы (угловые режимы внутреннего предсказания), среди которых режим 10 - горизонтальный режим, режим 26 - вертикальный, а режим 2, 18 и 34 - диагональные.[0106] FIG. 7 exemplarily shows intra prediction directions and corresponding intra prediction modes in a number of examples (eg, in HEVC). Fig. 7 includes 35 intra prediction modes (modes 0-34).
[0107] В некоторых примерах для кодирования внутреннего режима из подмножества режимов внутреннего предсказания составляется список потенциальных режимов. Например, один или более наиболее вероятных режимов формируют список потенциальных режимов, который называют списком наиболее вероятных режимов (МРМ, most probable mode). В примере (например, HEVC) список МРМ включает три наиболее вероятных режима и составляется на основании режима(ов) внутреннего предсказания соседнего(их) блока(ов) текущего блока. Список МРМ также называется первичным списком МРМ. В таком примере сигнализируют флаг МРМ для указания, находится ли режим внутреннего предсказания текущего блока в списке МРМ. Если флаг МРМ показывает, что режим внутреннего предсказания текущего блока взят из списка МРМ, то сигнализируется индекс списка МРМ для указания одного из трех наиболее вероятных режимов в списке МРМ для текущего блока. Однако, если МРМ флаг указывает, что режим внутреннего предсказания текущего блока не из списка МРМ, то индекс режима сигнализируется для указания одного из 32 внутренних режимов для текущего блока.[0107] In some examples, for intra mode coding, a list of candidate modes is compiled from a subset of intra prediction modes. For example, one or more most probable modes form a list of potential modes, which is called the list of the most probable modes (MPM, most probable mode). In an example (eg, HEVC), the MPM list includes the three most likely modes and is compiled based on the intra prediction mode(s) of the adjacent block(s) of the current block. The MPM list is also called the primary MPM list. In such an example, an MPM flag is signaled to indicate whether the intra prediction mode of the current block is in the MPM list. If the MPM flag indicates that the intra prediction mode of the current block is taken from the MPM list, then the MPM list index is signaled to indicate one of the three most likely modes in the MPM list for the current block. However, if the MPM flag indicates that the intra prediction mode of the current block is not in the MPM list, then the mode index is signaled to indicate one of the 32 intra modes for the current block.
[0108] В ряде примеров процесс составления списка МРМ представлен следующим образом.[0108] In some examples, the MPM listing process is as follows.
Если (leftIntraDir == aboveIntraDir && leftIntraDir>DC_IDX)If (leftIntraDir == aboveIntraDir && leftIntraDir>DC_IDX)
МРМ [0] = leftIntraDir;MPM[0] = leftIntraDir;
МРМ [1] = ((leftIntraDir+offset) % mod)+2;MPM[1] = ((leftIntraDir+offset) % mod)+2;
МРМ [2] = ((leftIntraDir - 1) % mod)+2;MPM[2] = ((leftIntraDir - 1) % mod)+2;
Также если (leftIntraDir == aboveIntraDir)Also if (leftIntraDir == aboveIntraDir)
MPM [0] = PLANAR_IDX;MPM[0] = PLANAR_IDX;
МРМ [1] = DC_IDX;MPM[1] = DC_IDX;
MPM [2] = VER_IDX;MPM[2] = VER_IDX;
Также если (leftIntraDir ! = above IntraDir)Also if (leftIntraDir ! = above IntraDir)
MPM [0] = leftIntraDir;MPM[0] = leftIntraDir;
MPM [1] = aboveIntraDir;MPM[1] = aboveIntraDir;
Если (leftIntraDir >0 && aboveIntraDir >0)If (leftIntraDir >0 && aboveIntraDir >0)
MPM [2] = PLANAR_IDX;MPM[2] = PLANAR_IDX;
ТакжеAlso
MPM [2] = (leftIntraDir + aboveIntraDir) <2 ? VER_IDX: DC_IDX;MPM[2] = (leftIntraDir + aboveIntraDir) < 2 ? VER_IDX: DC_IDX;
[0109] В процессе составления списка МРМ переменная leftIntraDir указывает на режим внутреннего предсказания соседнего блока слева от текущего блока (левого соседнего блока), а переменная aboveIntraDir указывает на режим внутреннего предсказания соседнего блока над текущим блоком (верхнего соседнего блока). Если левый или верхний соседний блок недоступен, то leftIntraDir или aboveIntraDir можно установить на DC_IDX. PLANAR_IDX, DC_IDX и VER_IDX обозначают индексы плоского режима (например, режима 0), режима постоянной составляющей (например, режима 1) и вертикального режима (например, режима 26), соответственно. Кроме того, переменные "offset" и "mod" имеют постоянные значения, которые в примере установлены на 29 и 32 соответственно. В таком примере, когда левый и верхний соседние блоки имеют одинаковый направленный режим, первый наиболее вероятный режим устанавливается на тот же направленный режим. Второй и третий наиболее вероятные режимы выбирают как два направленных режима, которые ближе всего к номеру режима первого наиболее вероятного режима. Когда левый и верхний соседние блоки имеют одинаковый ненаправленный режим, то первый, второй и третий наиболее вероятные режимы устанавливают в плоский режим, режим постоянной составляющей и вертикальный режим, соответственно. Когда левый и верхний соседние блоки обладают различными режимами внутреннего предсказания, первый и второй наиболее вероятные режимы устанавливают в режимы внутреннего предсказания левого и верхнего соседнего блока, соответственно, а третий наиболее вероятный режим устанавливается в один из плоского режима, режима постоянной составляющей и вертикального режима, согласно тому, какой из этих режимов, в этом порядке, не является копией одного из первых двух наиболее вероятных режимов.[0109] In the MPM listing process, the variable leftIntraDir indicates the intra prediction mode of the adjacent block to the left of the current block (left neighbor block), and the variable aboveIntraDir indicates the intra prediction mode of the neighboring block above the current block (upper neighbor block). If the left or top adjacent block is not available, then leftIntraDir or aboveIntraDir can be set to DC_IDX. PLANAR_IDX, DC_IDX, and VER_IDX denote the indices of flat mode (eg, mode 0), DC mode (eg, mode 1), and vertical mode (eg, mode 26), respectively. Also, the variables "offset" and "mod" have constant values, which are set to 29 and 32 respectively in the example. In such an example, when the left and top neighboring blocks have the same directional mode, the first most likely mode is set to the same directional mode. The second and third most likely modes are selected as the two directional modes closest to the mode number of the first most likely mode. When the left and top adjacent blocks have the same non-directional mode, the first, second, and third most likely modes are set to flat mode, DC mode, and vertical mode, respectively. When the left and top neighbor blocks have different intra prediction modes, the first and second most likely modes are set to the left and top neighbor block intra prediction modes, respectively, and the third most likely mode is set to one of flat mode, DC mode, and vertical mode, according to which of these modes, in that order, is not a copy of one of the first two most likely modes.
[0110] Фиг. 8 иллюстративно демонстрирует направления внутреннего предсказания и соответствующие режимы внутреннего предсказания в ряде примеров (например, VVC). Фиг. 8 включает в себя 95 режимов внутреннего предсказания (режимы 14-80), среди которых режим 18 - горизонтальный режим, режим 50 - вертикальный, а режим 2, 34 и 66 - диагональные режимы. Режимы -1~-14, а также режимы 67~80 называются широкоугольными режимами внутреннего предсказания (WAIP).[0110] FIG. 8 illustratively shows intra prediction directions and corresponding intra prediction modes in a number of examples (eg, VVC). Fig. 8 includes 95 intra prediction modes (
[0111] По аналогии с примером фиг. 7, в примере фиг. 8 формируется список МРМ для кодирования режима. Например, при внутреннем мультилинейном предсказании размер списка МРМ задается равным 6 для соседней опорной линии и равным 5 для несмежных опорных линий текущего блока. Смежная опорная линия и несмежные опорные линии будут описаны со ссылкой на фиг. 9.[0111] Similar to the example of FIG. 7, in the example of FIG. 8, an MPM list for mode coding is generated. For example, in intra multilinear prediction, the size of the MPM list is set to 6 for an adjacent reference line and 5 for non-adjacent reference lines of the current block. The adjacent reference line and non-adjacent reference lines will be described with reference to FIG. 9.
[0112] Фиг. 9 иллюстративно демонстрирует внутреннее мультилинейное предсказание в ряде примеров (например, VVC). При внутреннем мультилинейном предсказании множество опорных линий используют для внутреннего предсказания. В примере фиг. 9 представлено четыре опорные линии, то есть опорные линии 0-3, где опорная линия 0 является смежной опорной линией, которая также называется нулевой опорной линией, а опорные линии 1-3 являются несмежными опорными линиями и называются также ненулевыми опорными линиями. Каждая опорная линия включает вертикальную и горизонтальную части и состоит из 6 сегментов A-F. Сегменты А и F заполняются ближайшими отсчетами из сегментов В и Е, соответственно. Кроме того, верхний левый опорный отсчет включен между сегментами С и D в примере на фиг. 9. Индекс опорной линии сигнализируется перед режимами внутреннего предсказания для указания одной из множества опорных линий, которая будет использоваться. В случае сигнализации индекса ненулевой опорной линии, разрешено использовать только наиболее вероятные режимы для внутреннего предсказания.[0112] FIG. 9 illustratively demonstrates intra multilinear prediction in a number of examples (eg, VVC). In intra multilinear prediction, a plurality of reference lines are used for intra prediction. In the example of FIG. 9 shows four reference lines, that is, reference lines 0-3, where
[0113] Фиг. 10 демонстрирует иллюстративные позиции соседних блоков, применяемых, чтобы получить список МРМ для текущего блока в ряде примеров (например, VVC). Блок А и блок В обозначают левую и верхнюю соседнюю единицу кодирования (CU) текущей CU, соответственно. Блок А примыкает к текущей CU в левом нижнем углу, а блок В примыкает к текущей CU в верхнем правом углу. Переменные "candIntraPredModeA" и "candIntraPredModeB" указывают на режимы внутреннего предсказания блоков А и В, соответственно, и изначально устанавливаются на Intra Planar. Если блок А (или В) помечен как доступный, то переменная candIntraPredModeA (или candIntraPredModeB) устанавливается на действующий режим внутреннего предсказания блока А (или В). В некоторых примерах положения соседних блоков, применяемых для получения потенциальных МРМ, идентичны для смежных и несмежных опорных линий при внутреннем мультилинейном предсказании.[0113] FIG. 10 shows exemplary neighbor block positions used to obtain an MPM list for the current block in a number of examples (eg, VVC). Block A and block B denote the left and upper adjacent coding unit (CU) of the current CU, respectively. Block A is adjacent to the current CU in the lower left corner, and block B is adjacent to the current CU in the upper right corner. The variables "candIntraPredModeA" and "candIntraPredModeB" indicate the intra prediction modes of blocks A and B, respectively, and are initially set to Intra Planar. If block A (or B) is marked as available, then the variable candIntraPredModeA (or candIntraPredModeB) is set to the active intra prediction mode of block A (or B). In some examples, the positions of adjacent blocks used to derive potential MPMs are identical for adjacent and non-adjacent reference lines in intra multilinear prediction.
[0114] Фиг. 11 демонстрирует таблицу с примерами кодирования блока цветности во внутреннем режиме (например, VVC). На фиг. 11 представлено 8 внутренних режимов кодирования блока цветности: плоский режим, вертикальный режим, горизонтальный режим, режим постоянной составляющей (DC), производный режим и три режима кросс-компонентной линейной модели (CCLM, LM_А и LM_L). Согласно таблице, кодирование блока цветности во внутреннем режиме может зависеть (например, прямо зависит) от режима внутреннего предсказания соответствующего блока яркости. Поскольку компоненты цветности и яркости могут применять различные структуры деления блока, то, например, в слайсе I один блок цветности может соответствовать многим блокам яркости. Таким образом, при использовании производного режима для кодирования блока цветности во внутреннем режиме, режим внутреннего предсказания соответствующего блока яркости, покрывающего центральное положение блока цветности, становится непосредственно режимом внутреннего предсказания блока цветности.[0114] FIG. 11 shows a table with examples of encoding a chrominance block in an internal mode (eg, VVC). In FIG. 11
[0115] Фиг. 12 иллюстративно демонстрирует аффинное линейное взвешенное внутреннее предсказание (ALWIP) в ряде примеров (например, VVC). Для отсчетов предсказания блока предсказания (РВ) шириной W и высотой Н один левый столбец реконструированных соседних граничных отсчетов Н блока предсказания и один верхний ряд реконструированных соседних граничных отсчетов W блока предсказания берут как входные данные для ALWIP. Если реконструированные соседние граничные отсчеты недоступны, то их можно генерировать, используя другие методы внутреннего предсказания. ALWIP также называют внутренним предсказанием на основе матриц (MIP, matrix based intra prediction).[0115] FIG. 12 illustratively demonstrates affine linear weighted intra prediction (ALWIP) in a number of examples (eg, VVC). For predictor block (PB) prediction samples of width W and height H, one left column of reconstructed neighbor boundary prediction block samples H and one upper row of reconstructed neighbor boundary prediction block samples W are taken as input to ALWIP. If reconstructed adjacent boundary samples are not available, then they can be generated using other intra prediction methods. ALWIP is also called matrix based intra prediction (MIP).
[0116] В примере блок предсказания можно предсказывать на основе следующих трех этапов.[0116] In the example, the prediction block can be predicted based on the following three steps.
[0117] (1) Первое множество усредненных отсчетов получается усреднением (например, подмножеств) левого столбца соседних пограничных отсчетов блока предсказания, а второе множество усредненных отсчетов получается усреднением (например, подмножеств) верхнего ряда соседних пограничных отсчетов блока предсказания. Если W=H=4 отсчета, то общее количество элементов первого и второго множества усредненных отсчетов составляет четыре. В других случаях получают 8 усредненных отсчетов.[0117] (1) The first set of averaged samples is obtained by averaging (e.g., subsets) of the left column of adjacent edge samples of the prediction block, and the second set of averaged samples is obtained by averaging (e.g., subsets) of the top row of neighboring edge samples of the prediction block. If W=H=4 samples, then the total number of elements of the first and second sets of averaged samples is four. In other cases, 8 average readings are obtained.
[0118] (2) Усредненные отсчеты умножают на матричный вектор. К результату умножения добавляется смещение в целях генерирования сокращенного блока предсказания на субдискретизированном множестве отсчетов в исходном блоке предсказания.[0118] (2) The averaged samples are multiplied by a matrix vector. An offset is added to the result of the multiplication to generate a reduced prediction block on the downsampled set of samples in the original prediction block.
[0119] (3) Отсчеты предсказания в оставшихся положениях генерируют из сокращенного блока предсказания на субдискретизированном множестве путем применения линейной интерполяции к сокращенному блоку предсказания на субдискретизированном множестве в каждом направлении.[0119] (3) The prediction samples at the remaining positions are generated from the reduced downsampled prediction block by applying linear interpolation to the reduced downsampled prediction block in each direction.
[0120] Матрицы и векторы смещения, используемые для генерации сокращенного блока предсказания, можно взять из трех наборов матриц (S0, S1, и S2). Матричный набор S0 состоит из или включает 18 матриц , i∈{0, …, 17}. В каждой матрице может быть 16 рядов и 4 столбца, а также 18 векторов смещения , i∈{0, …, 17}. Размер каждого вектора смещения может составлять 16. Матрицы и векторы смещения, включенные в матричный набор S0, могут применяться для блоков размером 4×4. Матричный набор S1 состоит из или включает 10 матриц , i∈{0, …, 9). В каждой матрице может быть 16 рядов и 8 столбцов, а также 10 векторов смещения , i∈{0, …, 9). Размер каждого вектора смещения может составлять 16. Матрицы и векторы смещения, включенные в матричный набор S1, могут применяться для блоков размером 4×8, 8×4 и 8×8. Матричный набор S2 состоит из или включает 6 матриц , i∈{0, …, 5]. Каждая матрица может иметь 64 ряда и 8 столбцов, а также 6 векторов смещения , i∈{0, …, 5). Размер каждого вектора смещения может составлять 64. Матрицы и вектора смещения, включенные в матричный набор S2, можно применять для блоков всех других форм и размеров.[0120] The bias matrices and vectors used to generate the reduced prediction block can be taken from three sets of matrices (S 0 , S 1 , and S 2 ). The matrix set S 0 consists of or includes 18 matrices , i∈{0, …, 17}. Each matrix can have 16 rows and 4 columns, as well as 18 offset vectors , i∈{0, …, 17}. The size of each displacement vector may be 16. The displacement matrices and vectors included in the matrix set S 0 may be applied to 4x4 blocks. The matrix set S 1 consists of or includes 10 matrices , i∈{0, …, 9). Each matrix can have 16 rows and 8 columns, as well as 10 offset vectors , i∈{0, …, 9). The size of each displacement vector may be 16. The displacement matrices and vectors included in the matrix set S 1 may be applied to 4x8, 8x4, and 8x8 blocks. The matrix set S 2 consists of or includes 6 matrices , i∈{0, …, 5]. Each matrix can have 64 rows and 8 columns as well as 6 offset vectors , i∈{0, …, 5). The size of each displacement vector can be 64. The displacement matrices and vectors included in the S 2 matrix set can be applied to all other block shapes and sizes.
[0121] При блоке 8×8, как на фиг. 12, ALWIP принимает четыре усредненных значения по вертикальной границе и четыре усредненных значения по горизонтальной границе. 8 итоговых усредненных значений являются входными данными умножения на матричный вектор. Матрицы берут из матричного набора S1 из-за размера блока. Умножение на матричный вектор дает 16 отсчетов в нечетных позициях блока. Таким образом, выполняется (8×16)/(8×8)=2 умножения на отсчет. После добавления смещения эти отсчеты интерполируют вертикально с использованием сокращенных верхних пограничных отсчетов, а затем интерполируют горизонтально посредством применения исходных левых пограничных отсчетов. В данном случае процесс интерполяции не требует каких-либо умножений.[0121] With an 8x8 block as in FIG. 12, ALWIP takes four vertical boundary averages and four horizontal boundary averages. The 8 final averages are the input of the matrix vector multiplication. The matrices are taken from the matrix set S1 due to the block size. Multiplication by a matrix vector yields 16 samples at odd block positions. Thus, (8×16)/(8×8)=2 multiplications per sample is performed. After adding the offset, these samples are interpolated vertically using the reduced upper limit samples, and then interpolated horizontally using the original left border samples. In this case, the interpolation process does not require any multiplications.
[0122] Получение списка МРМ для режимов внутреннего предсказания ALWIP[0122] Obtaining the MPM List for ALWIP Intra Prediction Modes
[0123] Согласно аспектам изобретения, режим, отличающийся от режима ALWIP, может отображаться на режим ALWIP в соответствии с таблицей отображения. В одном варианте осуществления есть три таблицы отображения map_angular_to_alwipidx, idx∈[0, 1, 2], и каждая таблица отображения соответствует соответствующему набору матриц из (S0-S2) и связывает режим внутреннего предсказания, отличающийся от режима ALWIP predmodeAngular, с конкретным режимом ALWIP в соответствии с Ур. 1.[0123] According to aspects of the invention, a mode other than the ALWIP mode may be mapped to the ALWIP mode according to a mapping table. In one embodiment, there are three mapping tables map_angular_to_alwip idx , idx∈[0, 1, 2], and each mapping table corresponds to a corresponding set of matrices from (S 0 -S 2 ) and associates an intra prediction mode different from the ALWIP predmode Angular . with a specific ALWIP mode according to Ur. one.
[0124] Индекс idx таблицы отображения указывает один из трех матричных наборов, из которых берут параметры ALWIP. Индекс можно задать на основании ширины W и высоты Н единицы предсказания (PU, prediction unit) и установить согласно Ур. 2 и 3.[0124] The mapping table index idx indicates one of the three matrix sets from which the ALWIP parameters are taken. The index can be set based on the width W and the height H of the prediction unit (PU) and set according to Eq. 2 and 3.
[0125] Согласно аспектам изобретения, для каждой единицы кодирования во внутреннем режиме в битовый поток направляется флаг, который указывает, применяется ли ALWIP в соответствующей единице предсказания. Когда флаг указывает необходимость применения ALWIP, сигнализируется индекс predmode режима ALWIP для указания потенциального режима в списке наиболее вероятных режимов (МРМ). В примере список МРМ включает 3 потенциальных МРМ.[0125] According to aspects of the invention, for each intra mode coding unit, a flag is sent to the bitstream that indicates whether ALWIP is applied in the corresponding prediction unit. When the flag indicates a need to apply ALWIP, the ALWIP mode predmode index is signaled to indicate a potential mode in the Most Likely Mode List (MPM). In the example, the MPM list includes 3 potential MPMs.
[0126] Чтобы генерировать список МРМ для текущего блока, кодируемого посредством ALWIP, верхний режим ALWIP и левый режим ALWIP можно получить следующим образом.[0126] To generate an MPM list for the current ALWIP encoded block, the upper ALWIP mode and left mode ALWIP can be obtained as follows.
[0127] Когда верхняя единица предсказания PUabove текущей единицы предсказания доступна и принадлежит той же единице дерева кодирования, где расположена текущая единица предсказания, а PUabove кодируется с помощью режима ALWIP и idx(PU)=idx(PUabove), верхний режим ALWIP можно определить, согласно Ур. 4.[0127] When the upper prediction unit PU above the current prediction unit is available and belongs to the same coding tree unit where the current prediction unit is located, and the PU above is encoded using the ALWIP mode and idx(PU)=idx(PU above ), the upper ALWIP mode can be determined according to Eq. four.
[0128] Когда верхняя единица предсказания PUabove доступна и принадлежит той же единице дерева кодирования, где расположена текущая единица предсказания, а PUabove кодируется с помощью внутреннего режима предсказания, не относящегося к ALWIP, , верхний режим ALWIP можно определить с помощью таблицы отображения, согласно Ур. 5.[0128] When the upper prediction unit PU above is available and belongs to the same coding tree unit where the current prediction unit is located, and PU above is encoded with a non-ALWIP intra prediction mode, , the upper ALWIP mode can be determined using the mapping table according to Eq. 5.
[0129] В других случаях верхний режим ALWIP можно задать как недоступный, согласно Ур. 6.[0129] In other cases, the upper ALWIP mode can be set as unavailable, according to Eq. 6.
[0130] Значение можно получить тем же способом, что и режим , но без проверки, принадлежит ли левая единица предсказания той же единице дерева кодирования, где расположена текущая единица предсказания.[0130] Value can be obtained in the same way as the mode , but without checking if the left prediction unit belongs to the same coding tree unit as the current prediction unit.
[0131] Таким образом, список МРМ конструируется на основании производных режимов и и трех заранее заданных по умолчанию фиксированных списков МРМ listidx, idx∈{0, 1, 2}. Каждый заранее заданный по умолчанию фиксированный список МРМ состоит или включает три различных режима ALWIP. В примере недоступный режим -1 заменяется значением по умолчанию, и дублирующие режимы ALWIP удаляются.[0131] Thus, the MPM list is constructed based on the derived modes and and three predefined default fixed MPM lists list idx , idx∈{0, 1, 2}. Each pre-default fixed MPM list consists of or includes three different ALWIP modes. In the example, the unavailable mode -1 is replaced with the default value and duplicate ALWIP modes are removed.
[0132] Получение списка МРМ для режимов внутреннего предсказания, не относящихся к ALWIP[0132] Obtaining a list of MPMs for non-ALWIP intra prediction modes
[0133] Согласно аспектам изобретения, режим ALWIP можно отображать на режим, не относящийся к ALWIP, согласно таблице отображения. Таблицу отображения можно менять на основании размера блока. Существует три таблицы отображения map_alwip_to_angularidx, idx∈{0, 1, 2}. Каждая таблица отображения соответствует соответствующему набору матриц (S0-S2) и связывает режим внутреннего предсказания ALWIP predmodeALWIP с конкретным режимом внутреннего предсказания, не относящемуся к ALWIP как показано в Ур. 7.[0133] According to aspects of the invention, the ALWIP mode can be mapped to a non-ALWIP mode according to a mapping table. The mapping table can be changed based on the block size. There are three mapping tables map_alwip_to_angular idx , idx∈{0, 1, 2}. Each mapping table corresponds to a corresponding set of matrices (S 0 -S 2 ) and associates an ALWIP predmode ALWIP intra prediction mode with a specific non-ALWIP intra prediction mode as shown in Eq. 7.
[0134] Для получения списка МРМ для блока яркости, когда соседний блок блока яркости кодирован в режиме ALWIP, можно использовать одну из трех таблиц отображения для отображения режима ALWIP на соответствующий режим внутреннего предсказания, не относящийся к ALWIP. Для получения списка МРМ блока цветности, когда связанный с блоком цветности блок яркости кодирован в режиме ALWIP, то же самое отображение применяется для перевода режима ALWIP в режим внутреннего кодирования, не относящийся к ALWIP.[0134] To obtain an MPM list for a luma block when an adjacent luminance block block is encoded in ALWIP mode, one of three mapping tables can be used to map the ALWIP mode to the corresponding non-ALWIP intra prediction mode. To obtain the MPM list of a chrominance block when the associated luma block is encoded in ALWIP mode, the same mapping is applied to convert the ALWIP mode to a non-ALWIP intra-coding mode.
[0135] В указанных выше примерах создается список МРМ для сигнализации режима ALWIP. Создание списка МРМ включает проверку режима(ов) предсказания соседнего(их) блока(ов). Когда режим предсказания соседнего блока не является режимом ALWIP, режим предсказания соседнего блока подлежит отображению на режим ALWIP с помощью таблицы отображения. Когда режим предсказания соседнего блока является режимом ALWIP, необходим доступ к ширине и высоте соседнего блока для проверки применения одинакового набора матриц текущим и соседним блоком. Процесс генерирования списка МРМ сложный, и его можно упростить.[0135] In the above examples, an MPM list is created for signaling the ALWIP mode. The creation of the MPM list includes checking the prediction mode(s) of the adjacent block(s). When the neighbor block prediction mode is not the ALWIP mode, the neighbor block prediction mode is to be mapped to the ALWIP mode using a mapping table. When the neighbor block prediction mode is the ALWIP mode, access to the width and height of the neighbor block is needed to verify that the same set of matrices is applied by the current and neighbor block. The process of generating the MPM list is complex and can be simplified.
[0136] Кроме того, для сигнализации режима внутреннего предсказания, не относящегося к ALWIP, при кодировании соседнего блока в режиме ALWIP используется справочная таблица для отображения режима ALWIP соседнего блока на режим внутреннего предсказания, не относящийся к ALWIP. Тем не менее, для соседнего блока может быть необязательно преобразовывать режим ALWIP в режим, не относящийся к ALWIP.[0136] In addition, for signaling the non-ALWIP intra prediction mode, when encoding an adjacent block in ALWIP mode, a lookup table is used to map the ALWIP mode of the neighboring block to the non-ALWIP intra prediction mode. However, it may not be necessary for a neighboring block to convert the ALWIP mode to a non-ALWIP mode.
[0137] Далее, режим ALWIP не применяется для внутреннего предсказания блока цветности. Однако при использовании производного режима для блока цветности и кодировании смежного с блоком цветности блока яркости в режиме ALWIP, режим ALWIP смежного блока яркости необходимо преобразовать в режим внутреннего предсказания, не являющийся ALWIP. Данный процесс сложный, и его также можно упростить.[0137] Further, the ALWIP mode is not applied to intra chroma block prediction. However, when using a derived mode for a chrominance block and encoding a luminance block adjacent to the chrominance block in ALWIP mode, the ALWIP mode of the adjacent luminance block needs to be converted to a non-ALWIP intra prediction mode. This process is complex, and it can also be simplified.
[0138] Аспекты изобретения предоставляют упрощенную сигнализацию для режимов ALWIP и других режимов. Варианты воплощения можно применять раздельно или сочетая в любом порядке.[0138] Aspects of the invention provide simplified signaling for ALWIP modes and other modes. The embodiments may be used singly or in combination in any order.
[0139] Согласно аспектам изобретения, сигнализация или реконструкция индекса режима ALWIP для текущего блока выполняется без проверки режима(ов) внутреннего предсказания соседнего(их) блока(ов) текущего блока. В варианте осуществления, сигнализация и/или реконструкция может выполняться без проверки режимов внутреннего предсказания каких-либо соседних блоков текущего блока. Например, согласно фиг. 10, соседними блоками могут быть левый соседний блок А и верхний соседний блок В. Левый соседний блок А примыкает к текущему блоку в нижнем левом углу. В этом примере сигнализация и/или реконструкция может выполняться без проверки режимов внутреннего предсказания левого соседнего блока А и верхнего соседнего блока В.[0139] According to aspects of the invention, signaling or reconstruction of the ALWIP mode index for the current block is performed without checking the intra prediction mode(s) of the adjacent block(s) of the current block. In an embodiment, signaling and/or reconstruction may be performed without checking the intra prediction modes of any neighboring blocks of the current block. For example, according to FIG. 10, the neighbor blocks may be a left neighbor block A and a top neighbor block B. The left neighbor block A is adjacent to the current block at the lower left corner. In this example, signaling and/or reconstruction can be performed without checking the intra prediction modes of the left neighbor block A and the top neighbor block B.
[0140] В варианте воплощения индекс режима ALWIP сигнализируется непосредственно. Индекс режима ALWIP может быть передан непосредственно с помощью кодового слова, например, усеченного двоичного кодового слова, кодового слова фиксированной длины или усеченного унарного кодового слова. Например, индекс режима ALWIP сигнализируется посредством пятибитного кодового слова фиксированной длины. В другом примере подмножество режимов ALWIP, например, режимы K1 ALWIP, сигнализируют посредством M1-битового кодового слова фиксированной длины при сигнализации остальных ALWIP режимов посредством М2-битового кодового слова фиксированной длины. В приведенных выше примерах K1, M1 и М2 являются неотрицательными целыми числами.[0140] In an embodiment, the ALWIP mode index is signaled directly. The ALWIP mode index may be transmitted directly with a codeword, such as a truncated binary codeword, a fixed length codeword, or a truncated unary codeword. For example, the ALWIP mode index is signaled with a five-bit fixed length codeword. In another example, a subset of the ALWIP modes, eg, the K1 ALWIP modes, are signaled with an M1-bit fixed-length codeword while signaling the remaining ALWIP modes with an M2-bit fixed-length codeword. In the above examples, K1, M1 and M2 are non-negative integers.
[0141] В варианте воплощения индекс режима ALWIP сигнализируется без формирования списка МРМ или сигнализации флага МРМ. Например, усеченное двоичное кодовое слово или кодовое слово фиксированной длины используется для сигнализации индекса режима ALWIP.[0141] In an embodiment, the ALWIP mode index is signaled without MPM listing or MPM flag signaling. For example, a truncated binary or fixed length codeword is used to signal the ALWIP mode index.
[0142] В варианте воплощения, когда текущий блок кодируется посредством ALWIP, в списке МРМ текущего блока потенциальные режимы фиксируются независимо от режима(ов) внутреннего предсказания соседнего(их) блока(ов) текущего блока. В таком варианте воплощения положения соседних блоков могут быть идентичны положениям, используемым для предсказания в режимах, не относящихся к ALWIP (например, соседние блоки А и В на фиг. 10). В примере, при кодировании текущего блока посредством ALWIP потенциальные режимы в списке МРМ текущего блока и порядок потенциальных режимов фиксированы, независимо от режима(ов) внутреннего предсказания соседнего(их) блока(ов) текущего блока. В таком примере положения соседних блоков могут быть идентичны положениям, применяемым для предсказания в режиме, не относящемся к ALWIP (например, соседние блоки А и В на фиг. 10). В другом примере, когда текущий блок кодируется посредством ALWIP, потенциальные режимы и/или порядок потенциальных режимов в списке МРМ текущего блока зависят от ширины и/или высоты текущего блока. Потенциальные режимы и/или порядок потенциальных режимов в списке МРМ текущего блока в некоторых вариантах воплощения могут зависеть только от ширины и/или высоты текущего блока.[0142] In an embodiment, when the current block is encoded by ALWIP, in the MPM list of the current block, the candidate modes are fixed regardless of the intra prediction mode(s) of the adjacent block(s) of the current block. In such an embodiment, the positions of neighboring blocks may be identical to those used for prediction in non-ALWIP modes (eg, neighboring blocks A and B in FIG. 10). In the example, when encoding the current block with ALWIP, the candidate modes in the MPM list of the current block and the order of the candidate modes are fixed, regardless of the intra prediction mode(s) of the neighboring block(s) of the current block. In such an example, the positions of adjacent blocks may be identical to those used for non-ALWIP mode prediction (eg, adjacent blocks A and B in FIG. 10). In another example, when the current block is encoded with ALWIP, the candidate modes and/or the order of the candidate modes in the MPM list of the current block depend on the width and/or height of the current block. Candidate modes and/or order of candidate modes in the MPM list of the current block in some embodiments may depend only on the width and/or height of the current block.
[0143] Согласно некоторым вариантам воплощения, общее количество режимов ALWIP является степенью числа 2, например N=2k, где N - общее количество режимов ALWIP. K - неотрицательное целое число, например от 0 до 5 и т.д.[0143] According to some embodiments, the total number of ALWIP modes is a power of 2, such as N=2 k , where N is the total number of ALWIP modes. K is a non-negative integer, such as 0 to 5, etc.
[0144] В варианте воплощения значение К зависит от размера блока текущего блока. Например, размер блока текущего блока может указываться (i) шириной блока, (ii) высотой блока, (iii) средним значением ширины и высоты блока, (iv) минимальным значением ширины и высоты блока, (v) максимальным значением ширины и высоты блока, (vi) размером площади блока или (vii) соотношением сторон блока.[0144] In an embodiment, the value of K depends on the block size of the current block. For example, the block size of the current block can be indicated by (i) the width of the block, (ii) the height of the block, (iii) the average of the width and height of the block, (iv) the minimum value of the width and height of the block, (v) the maximum value of the width and height of the block, (vi) block area size or (vii) block aspect ratio.
[0145] Согласно аспектам изобретения, при формировании списка МРМ текущего блока, кодируемого в режиме внутреннего предсказания, не относящегося к ALWIP, режим предсказания одного или более соседних блоков текущего блока помечается как недоступный или фиксированный режим, когда режимом предсказания соседнего блока является режим ALWIP. В примере положение одного или более соседних блоков может быть идентично положениям, используемым для предсказания в других режимах, не относящихся к ALWIP (например, соседние блоки А и В на фиг. 10). В варианте воплощения при формировании списка МРМ текущего блока, который кодируется в режиме внутреннего предсказания, не относящемся к ALWIP, режим предсказания одного или более соседних блоков текущего блока отмечается как плоский режим внутреннего предсказания (Planar intra). В варианте воплощения при составлении списка МРМ текущего блока, который кодируется посредством режима внутреннего предсказания, не относящегося к ALWIP, режим предсказания одного или более соседних блоков текущего блока помечается как режим внутреннего предсказания постоянной составляющей (DC). В варианте воплощения при формировании списка МРМ текущего блока, который кодируется посредством режима внутреннего кодирования, не относящегося к ALWIP, режим предсказания соседнего блока текущего блока отмечается как плоский режим, режим постоянной составляющей, горизонтальный режим внутреннего предсказания или вертикальный режим внутреннего предсказания.[0145] According to aspects of the invention, when generating the MPM list of a current block encoded in a non-ALWIP intra prediction mode, the prediction mode of one or more neighboring blocks of the current block is marked as unavailable or fixed mode when the prediction mode of the neighboring block is ALWIP mode. In an example, the position of one or more neighboring blocks may be identical to positions used for prediction in other non-ALWIP modes (eg, neighboring blocks A and B in FIG. 10). In an embodiment, when generating the MPM list of a current block that is encoded in a non-ALWIP intra prediction mode, the prediction mode of one or more neighboring blocks of the current block is marked as a flat intra prediction mode (Planar intra). In an embodiment, when compiling the MPM list of a current block that is encoded by a non-ALWIP intra prediction mode, the prediction mode of one or more adjacent blocks of the current block is marked as DC intra prediction mode. In an embodiment, when generating the MPM list of a current block that is encoded by a non-ALWIP intra coding mode, the neighbor block prediction mode of the current block is marked as flat mode, DC mode, horizontal intra prediction mode, or vertical intra prediction mode.
[0146] Согласно аспектам изобретения, для формирования списка МРМ текущего блока, который кодируется посредством режима ALWIP, режим предсказания одного или более соседних блоков текущего блока помечается как доступный режим ALWIP или режим ALWIP, заданный по умолчанию. В варианте воплощения при кодировании соседнего блока посредством ALWIP его режим предсказания отмечается как доступный, а при кодировании соседнего блока посредством режима, не относящегося к ALWIP, его режим предсказания отмечается как режим ALWIP. заданный по умолчанию.[0146] According to aspects of the invention, to generate the MPM list of the current block, which is encoded by the ALWIP mode, the prediction mode of one or more neighboring blocks of the current block is marked as an available ALWIP mode or a default ALWIP mode. In an embodiment, when encoding an adjacent block with ALWIP, its prediction mode is marked as available, and when encoding a neighboring block with a non-ALWIP mode, its prediction mode is marked as ALWIP mode. set by default.
[0147] В варианте воплощения при кодировании текущего блока посредством ALWIP для формирования списка МРМ текущего блока режим предсказания соседнего блока преобразуется в режим предсказания ALWIP, когда режим предсказания является режимом, не относящимся к ALWIP. Например, режим предсказания преобразуется в режим предсказания ALWIP с индексом режима к, значение которого является неотрицательным целым числом, при этом запрещено превышать максимально допустимое значение индекса режима ALWIP.[0147] In an embodiment, when encoding the current block with ALWIP to generate the MPM list of the current block, the neighboring block prediction mode is converted to the ALWIP prediction mode when the prediction mode is a non-ALWIP mode. For example, the prediction mode is converted to the ALWIP prediction mode with the mode index k, the value of which is a non-negative integer, and it is forbidden to exceed the maximum allowable value of the ALWIP mode index.
[0148] В варианте воплощения при кодировании текущего блока посредством ALWIP, для построения списка МРМ текущего блока режим предсказания соседнего блока текущего блока отмечается как недоступный, когда режим предсказания не является режимом ALWIP.[0148] In an embodiment, when encoding the current block with ALWIP, to construct the MPM list of the current block, the neighbor block prediction mode of the current block is marked as unavailable when the prediction mode is not the ALWIP mode.
[0149] В варианте воплощения при кодировании текущего блока посредством ALWIP размер списка МРМ устанавливается на 1. Режим внутреннего предсказания левого (или верхнего) соседнего блока можно включить в список МРМ, когда режим внутреннего предсказания является режимом ALWIP. Когда левый и верхний соседний блоки кодируются в режиме, не относящемся к ALWIP, один режим ALWIP. заданный по умолчанию, включается в список МРМ. В примере режим ALWIP по умолчанию задается как плоский режим (например, режим 0).[0149] In an embodiment, when encoding the current block with ALWIP, the MPM list size is set to 1. The left (or top) neighboring block intra prediction mode may be included in the MPM list when the intra prediction mode is the ALWIP mode. When the left and top adjacent blocks are encoded in a non-ALWIP mode, one ALWIP mode. the default is included in the MPM list. In the example, the default ALWIP mode is set to flat mode (for example, mode 0).
[0150] В варианте воплощения при кодировании текущего блока посредством ALWIP размер списка МРМ устанавливается на 2. Режим внутреннего предсказания левого (или верхнего) соседнего блока можно включить в список МРМ, если режимом внутреннего предсказания является режим ALWIP. При кодировании левого (или верхнего) соседнего блока посредством режима, не относящегося к ALWIP, в список МРМ включается режим ALWIP, заданный по умолчанию. В примере режим ALWIP, заданный по умолчанию, фиксирован, независимо от размера блока текущего блока. В примере, когда флаг МРМ указывает на режим внутреннего предсказания текущего блока из списка МРМ, например, флаг МРМ имеет значение "истина", другой флаг сигнализируется для указания, какой потенциальный МРМ выбран из списка МРМ для текущего блока.[0150] In an embodiment, when encoding the current block with ALWIP, the MPM list size is set to 2. The left (or top) neighboring block intra prediction mode may be included in the MPM list if the intra prediction mode is the ALWIP mode. When encoding the left (or top) adjacent block with a non-ALWIP mode, the default ALWIP mode is included in the MPM list. In the example, the default ALWIP mode is fixed, regardless of the block size of the current block. In an example, when the MPM flag indicates the intra prediction mode of the current block in the MPM list, for example, the MPM flag is true, another flag is signaled to indicate which candidate MPM is selected from the MPM list for the current block.
[0151] Согласно аспектам изобретения, положение соседнего блока, применяемое для получения списка МРМ режима ALWIP, аналогично положению для режима, не относящегося к ALWIP. В варианте воплощения для режима ALWIP положение(я) соседнего(их) блока(ов), применяемого(ых) для получения МРМ списка, является(тся) смежным(ыми) с верхним правым или нижним левым углом текущего блока, согласно фиг. 10.[0151] According to aspects of the invention, the neighbor position used to obtain the ALWIP mode MPM list is similar to the non-ALWIP mode position. In an embodiment for the ALWIP mode, the position(s) of the neighboring block(s) used to obtain the MPM list is(are) adjacent to the top right or bottom left corner of the current block, as shown in FIG. ten.
[0152] Согласно аспектам изобретения, размер списка МРМ для режима ALWIP не зависит от кодированной информации, включенной, например, в кодированную видеопоследовательность. Кодированная информация может включать, но не ограничивается таковыми, один или более режимов внутреннего предсказания одного или более соседних блоков, индекс опорного потока одного или более соседних блоков, флаг ALWIP одного или более соседних блоков.[0152] According to aspects of the invention, the size of the MPM list for the ALWIP mode is independent of the encoded information included, for example, in the encoded video sequence. The encoded information may include, but is not limited to, one or more intra prediction modes of one or more neighboring blocks, a reference stream index of one or more neighboring blocks, an ALWIP flag of one or more neighboring blocks.
[0153] В варианте воплощения при кодировании текущего блока посредством ALWIP, а верхнего правого и нижнего левого соседнего блоков с помощью режима, не относящегося к ALWIP, список МРМ не формируется, а индекс режима ALWIP непосредственно сигнализируется для текущего блока.[0153] In an embodiment, when encoding the current block with ALWIP and the top right and bottom left neighboring blocks with non-ALWIP mode, no MPM list is generated and the ALWIP mode index is directly signaled for the current block.
[0154] В варианте воплощения при кодировании текущего блока посредством ALWIP и по меньшей мере одного из соседних блоков текущего блока посредством ALWIP, размер списка МРМ для текущего блока задается неотрицательным целым числом, например, 1 или 2.[0154] In an embodiment, when encoding the current block with ALWIP and at least one of the neighboring blocks of the current block with ALWIP, the size of the MPM list for the current block is given by a non-negative integer, such as 1 or 2.
[0155] Согласно аспектам изобретения, ALWIP не применяется к блоку цветности. Таким образом, когда связанный с текущим блоком цветности блок яркости (например, со-расположенный блок яркости) кодируется посредством ALWIP, а производный режим применяется для текущего блока цветности, не относящийся к ALWIP режим, заданный по умолчанию, применяется для текущего блока цветности. В одном варианте воплощения, не относящийся к ALWIP режим, заданный по умолчанию, является плоским режимом. В другом варианте воплощения не относящийся к ALWIP режим, заданный по умолчанию, является режимом постоянной составляющей.[0155] According to aspects of the invention, ALWIP is not applied to the chrominance block. Thus, when a luma block associated with the current chrominance block (eg, a co-located luma block) is encoded by ALWIP and a derived mode is applied to the current chroma block, the non-ALWIP default mode is applied to the current chroma block. In one embodiment, the default non-ALWIP mode is flat mode. In another embodiment, the default non-ALWIP mode is DC mode.
[0156] Согласно аспектам изобретения, когда текущий блок цветности связан с множеством блоков яркости, например, когда текущий блок цветности связан со множеством со-расположенных блоков яркости, и производный режим применяется для текущего блока, множество блоков яркости проверяют на предмет кодирования одного из множества связанных блоков яркости в режиме внутреннего предсказания, не относящегося к ALWIP.[0156] According to aspects of the invention, when the current chrominance block is associated with a plurality of luminance blocks, for example, when the current chrominance block is associated with a plurality of co-located luma blocks, and a derived mode is applied to the current block, the plurality of luma blocks is checked to encode one of the set associated luma blocks in non-ALWIP intra prediction mode.
[0157] В варианте воплощения, когда один из множества соседних блоков яркости кодирован в режиме внутреннего предсказания, не относящемся к ALWIP, режим внутреннего предсказания, не относящийся к ALWIP, применяется как режим внутреннего предсказания текущего блока цветности.[0157] In an embodiment, when one of the plurality of adjacent luma blocks is encoded in a non-ALWIP intra prediction mode, the non-ALWIP intra prediction mode is applied as the intra prediction mode of the current chrominance block.
[0158] В варианте воплощения, когда ни один из множества связанных блоков яркости (например, со-расположенных блоков яркости) не кодирован в режиме внутреннего предсказания, не относящемся к ALWIP, режим внутреннего предсказания по умолчанию, не относящийся к ALWIP, применяется как режим внутреннего предсказания текущих блоков цветности.[0158] In an embodiment, when none of the plurality of associated luma blocks (e.g., co-spaced luma blocks) is encoded in a non-ALWIP intra prediction mode, the default non-ALWIP intra prediction mode is applied as the mode internal prediction of the current chrominance blocks.
[0159] На фиг. 13 показана блок-схема операций процесса (1300) согласно варианту осуществления изобретения. Процесс (1300) может использоваться при реконструкции блока, кодированного во внутреннем режиме, для генерации блока предсказания для блока, подлежащего реконструкции. В различных вариантах осуществления, процесс (1300) выполняется схемой обработки, например, схемой обработки в оконечных устройствах (110), (120), (130) и (140), схемой обработки, которая осуществляет функции видеокодера (203), схемой обработки, которая осуществляет функции видеодекодера (210), схемой обработки, которая осуществляет функции видеодекодера (310), схемой обработки, которая осуществляет функции видеокодера (403), и т.п. В некоторых вариантах осуществления процесс (1300) реализован в программных инструкциях, таким образом, когда схема обработки выполняет программные инструкции, схема обработки осуществляет процесс (1300). Процесс начинается на этапе (S1301) и переходит к (S1310).[0159] In FIG. 13 shows a flowchart of the operations of a process (1300) according to an embodiment of the invention. Process (1300) may be used in reconstructing an intra-coded block to generate a prediction block for the block to be reconstructed. In various embodiments, the process (1300) is performed by a processing circuit, for example, a processing circuit in terminal devices (110), (120), (130) and (140), a processing circuit that performs the functions of a video encoder (203), a processing circuit, that performs the functions of a video decoder (210), a processing circuit that performs the functions of a video decoder (310), a processing circuit that performs the functions of a video encoder (403), and the like. In some embodiments, the process (1300) is implemented in program instructions, such that when the processing circuit executes the program instructions, the processing circuit executes the process (1300). The process starts at step (S1301) and proceeds to (S1310).
[0160] На этапе (S1310) процесс (1300) декодирует информацию предсказания для текущего блока в текущем изображении, которое входит в кодированную видеопоследовательность. Информация предсказания указывает, кодирован ли текущий блок с использованием аффинного линейного взвешенного внутреннего предсказания (ALWIP). В ответ на информацию предсказания, указывающую на кодирование текущего блока с использованием ALWIP, процесс (1300) переходит к этапу (S1320).[0160] In step (S1310), the process (1300) decodes the prediction information for the current block in the current picture that is included in the encoded video sequence. The prediction information indicates whether the current block is encoded using affine linear weighted intra prediction (ALWIP). In response to the prediction information indicating coding of the current block using ALWIP, the process (1300) proceeds to step (S1320).
[0161] На этапе (S1320) процесс (1300) определяет индекс режима ALWIP независимо от режимов предсказаний соседних блоков, примыкающих к текущему блоку. Индекс режима ALWIP указывает один из множества режимов ALWIP. Затем процесс (1300) переходит к этапу (S1330).[0161] In step (S1320), the process (1300) determines the ALWIP mode index regardless of the prediction modes of neighboring blocks adjacent to the current block. The ALWIP mode index indicates one of a plurality of ALWIP modes. Then, the process (1300) proceeds to step (S1330).
[0162] На этапе (S1330) процесс (1300) реконструирует текущий блок согласно одному из множества режимов ALWIP. Затем процесс (1300) переходит к этапу (S1399) и завершается.[0162] In step (S1330), process (1300) reconstructs the current block according to one of the plurality of ALWIP modes. Then, the process (1300) proceeds to step (S1399) and ends.
[0163] В варианте воплощения индекс режима ALWIP является усеченным двоичным кодовым словом, кодовым словом фиксированной длины или усеченным унарным кодовым словом.[0163] In an embodiment, the ALWIP mode index is a truncated binary codeword, a fixed length codeword, or a truncated unary codeword.
[0164] В варианте воплощения, в ответ на информацию предсказания, указывающую на то, что текущий блок кодируется с использованием ALWIP, процесс (1300) формирует список потенциальных режимов, включая по меньшей мере один фиксированный потенциальный режим. По меньшей мере один фиксированный потенциальный режим является заранее заданным подмножеством множества режимов ALWIP.[0164] In an embodiment, in response to prediction information indicating that the current block is encoded using ALWIP, process (1300) generates a list of candidate modes including at least one fixed candidate mode. At least one fixed potential mode is a predefined subset of the set of ALWIP modes.
[0165] В варианте воплощения общее количество режимов в множестве режимов ALWIP представляет собой степень числа 2.[0165] In an embodiment, the total number of modes in the ALWIP mode set is a power of 2.
[0166] В варианте воплощения, в ответ на информацию предсказания, указывающую на то, что текущий блок не кодированя с использованием ALWIP, процесс (1300) определяет кодирован ли один из соседних блоков с использованием ALWIP. В ответ на то, что один из соседних блоков кодирован с использованием ALWIP, процесс (1300) формирует список потенциальных режимов на основании (i) заранее заданного режима внутреннего предсказания или (ii) режима внутреннего предсказания другого соседнего блока из соседних блоков.[0166] In an embodiment, in response to prediction information indicating that the current block is not ALWIP coded, the process (1300) determines whether one of the neighboring blocks is ALWIP coded. In response to one of the neighboring blocks being encoded using ALWIP, the process (1300) generates a list of candidate modes based on (i) a predetermined intra prediction mode or (ii) another neighboring block's intra prediction mode of the adjacent blocks.
[0167] В варианте воплощения заранее заданный режим предсказания является плоским режимом внутреннего предсказания, режимом внутреннего предсказания постоянной составляющей, горизонтальным или вертикальным режимом внутреннего предсказания.[0167] In an embodiment, the predetermined prediction mode is a flat intra prediction mode, a DC intra prediction mode, a horizontal intra prediction mode, or a vertical intra prediction mode.
[0168] В варианте воплощения процесс (1300) делает один из соседних блоков недоступным в ответ на то, что один из соседних блоков кодирован с использованием ALWIP.[0168] In an embodiment, process (1300) makes one of the neighboring blocks unavailable in response to one of the neighboring blocks being encoded using ALWIP.
[0169] В варианте воплощения, в ответ на информацию предсказания, указывающую что текущий блок кодирован с использованием ALWIP, и при использовании производного режима для связанного с текущим блоком блока цветности, процесс (1300) задает режим предсказания связанного блока цветности в качестве заранее заданного режима внутреннего предсказания.[0169] In an embodiment, in response to prediction information indicating that the current block is encoded using ALWIP, and when using a derived mode for the associated chrominance block associated with the current block, the process (1300) sets the prediction mode of the associated chrominance block as a predetermined mode internal prediction.
[0170] На фиг. 14 показана блок-схема операций процесса (1400) согласно варианту осуществления изобретения. Процесс (1300) может использоваться при реконструкции блока, кодированного во внутреннем режиме, для генерации блока предсказания для блока, подлежащего реконструкции. В различных вариантах осуществления, процесс (1400) выполняется схемой обработки, например, схемой обработки в оконечных устройствах (110), (120), (130) и (140), схемой обработки, которая осуществляет функции видеокодера (203), схемой обработки, которая осуществляет функции видеодекодера (210), схемой обработки, которая осуществляет функции видеодекодера (310), схемой обработки, которая осуществляет функции видеокодера (403), и т.п. В некоторых вариантах осуществления процесс (1400) реализован в программных инструкциях, таким образом, когда схема обработки выполняет программные инструкции, схема обработки осуществляет процесс (1400). Процесс начинается на этапе (S1401) и переходит к (S1410).[0170] In FIG. 14 shows a flowchart of the operations of a process (1400) according to an embodiment of the invention. Process (1300) may be used in reconstructing an intra-coded block to generate a prediction block for the block to be reconstructed. In various embodiments, the process (1400) is performed by a processing circuit, for example, a processing circuit in terminal devices (110), (120), (130) and (140), a processing circuit that performs the functions of a video encoder (203), a processing circuit, that performs the functions of a video decoder (210), a processing circuit that performs the functions of a video decoder (310), a processing circuit that performs the functions of a video encoder (403), and the like. In some embodiments, the process (1400) is implemented in program instructions, such that when the processing circuitry executes the program instructions, the processing circuitry executes the process (1400). The process starts at step (S1401) and proceeds to (S1410).
[0171] На этапе (S1410) процесс (1400) декодирует информацию предсказания для текущего блока в текущем изображении, которое входит в кодированную видеопоследовательность. Информация предсказания указывает на кодирование текущего блока с использованием аффинного линейного взвешенного внутреннего предсказания (ALWIP). Затем процесс (1400) переходит к этапу (S1420).[0171] In step (S1410), the process (1400) decodes the prediction information for the current block in the current picture that is included in the encoded video sequence. The prediction information indicates the coding of the current block using affine linear weighted intra prediction (ALWIP). Then, the process (1400) proceeds to step (S1420).
[0172] На этапе (S1420) процесс (1400) определяет, кодирован ли соседний блок, примыкающий к текущему блоку, с использованием ALWIP. В ответ на отсутствие кодирования соседнего блока с использованием ALWIP процесс (1400) переходит к этапу (S1430).[0172] In step (S1420), the process (1400) determines whether an adjacent block adjacent to the current block is encoded using ALWIP. In response to no neighbor block coding using ALWIP, the process (1400) proceeds to step (S1430).
[0173] На этапе (S1430) процесс (1400) формирует список потенциальных режимов на основании (i) заранее заданного режима ALWIP или (ii) режима ALWIP другого соседнего блока. Далее процесс (1400) переходит к этапу (S1440).[0173] In step (S1430), the process (1400) generates a list of candidate modes based on (i) a predetermined ALWIP mode or (ii) an ALWIP mode of another neighboring block. Next, the process (1400) proceeds to step (S1440).
[0174] На этапе (S1440) процесс (1400) реконструирует текущий блок на основании списка потенциальных режимов. Затем процесс (1400) переходит к этапу (S1499) и завершается.[0174] In step (S1440), process (1400) reconstructs the current block based on the list of candidate modes. Then, the process (1400) proceeds to step (S1499) and ends.
[0175] В варианте воплощения процесс (1400) устанавливает соседний блок как недоступный в ответ на то, что соседний блок не кодирован с использованием ALWIP.[0175] In an embodiment, the process (1400) sets the neighbor block as unavailable in response to the fact that the neighbor block is not encoded using ALWIP.
[0176] В варианте воплощения соседний блок примыкает к текущему блоку в верхнем правом или нижнем левом углу.[0176] In an embodiment, an adjacent block is adjacent to the current block in the upper right or lower left corner.
[0177] В варианте воплощения размер списка потенциальных режимов основан на кодированной информации соседнего блока, включенного в кодированную видеопоследовательность.[0177] In an embodiment, the size of the candidate mode list is based on the encoded neighbor block information included in the encoded video sequence.
[0178] В варианте воплощения информация предсказания указывает на то, что блок цветности текущего блока связан с множеством блоков яркости, и процесс (1400) определяет, кодирован ли блок яркости из множества блоков яркости в режиме внутреннего предсказания, не относящемся к ALWIP. В ответ на кодирование блока яркости в режиме внутреннего предсказания, не относящемся к ALWIP, процесс (1400) определяет режим предсказания блока цветности текущего блока как режим внутреннего предсказания блока яркости, не относящийся к ALWIP.[0178] In an embodiment, the prediction information indicates that a chrominance block of the current block is associated with a plurality of luminance blocks, and a process (1400) determines whether the luminance block of the plurality of luma blocks is encoded in a non-ALWIP intra prediction mode. In response to encoding a luma block in a non-ALWIP intra prediction mode, process (1400) determines the chrominance block prediction mode of the current block as a non-ALWIP luminance block intra prediction mode.
[0179] В варианте воплощения информация предсказания указывает, что блок цветности текущего блока связан с множеством блоков яркости, и процесс (1400) определяет, кодирован ли блок яркости из множества блоков яркости в режиме внутреннего предсказания, не относящемся к ALWIP. В ответ на то, что каждый из множества блоков яркости кодирован с использованием ALWIP, процесс (1400) определяет режим предсказания блока цветности текущего блока как заранее заданный режим внутреннего предсказания.[0179] In an embodiment, the prediction information indicates that a chrominance block of the current block is associated with a plurality of luminance blocks, and a process (1400) determines whether the luminance block of the plurality of luma blocks is encoded in a non-ALWIP intra prediction mode. In response to each of the plurality of luma blocks being encoded using ALWIP, the process (1400) determines the prediction mode of the chrominance block of the current block as a predetermined intra prediction mode.
[0180] Компьютерная система[0180] Computer system
[0181] Вышеописанные методы могут быть реализованы в виде компьютерного программного обеспечения, использующего компьютерно-считываемые инструкции и физически хранящегося на одном или более компьютерно-считываемых носителях. Например, на фиг. 15 показана компьютерная система (1500), пригодная для реализации некоторых вариантов осуществления раскрытого изобретения.[0181] The above methods may be implemented in computer software using computer-readable instructions and physically stored on one or more computer-readable media. For example, in FIG. 15 shows a computer system (1500) suitable for implementing some embodiments of the disclosed invention.
[0182] Компьютерное программное обеспечение может кодироваться с использованием любого подходящего машинного кода или компьютерного языка, который может подвергаться ассемблированию, компиляции, редактированию связей или аналогичной обработке для создания кода, содержащего инструкции, которые могут выполняться непосредственно, или посредством интерпретации, выполнения микрокода и т.п., одним или более компьютерными центральными процессорами (CPU, central processing units), графическими процессорами (GPU, Graphics Processing Units) и т.п.[0182] Computer software may be coded using any suitable machine code or computer language that may be assembled, compiled, linked, or similarly processed to create code containing instructions that can be executed directly, or through interpretation, execution of microcode, etc. .p., one or more computer central processing units (CPU, central processing units), graphic processors (GPU, Graphics Processing Units), etc.
[0183] Инструкции могут выполняться на компьютерах различных типов или их компонентах, включая, например, персональные компьютеры, планшетные компьютеры, серверы, смартфоны, игровые устройства, устройства интернета вещей и т.п.[0183] The instructions may be executed on various types of computers or components thereof, including, for example, personal computers, tablet computers, servers, smartphones, gaming devices, IoT devices, and the like.
[0184] Компоненты компьютерной системы (1500), показанные на фиг. 15, носят иллюстративный характер и не призваны налагать какое-либо ограничение на объем применения или функциональные возможности компьютерного программного обеспечения, реализующего варианты осуществления настоящего изобретения. Конфигурацию компонентов также не следует интерпретировать как имеющую какую-либо зависимость или требование в связи с любым одним или комбинацией компонентов, показанных в иллюстративном варианте осуществления компьютерной системы (1500).[0184] The computer system components (1500) shown in FIG. 15 are illustrative in nature and are not intended to impose any limitation on the scope of application or functionality of computer software implementing embodiments of the present invention. The configuration of the components should also not be interpreted as having any dependency or requirement in connection with any one or combination of the components shown in the illustrative embodiment of the computer system (1500).
[0185] Компьютерная система (1500) может включать в себя некоторые устройства ввода интерфейса с человеком. Такое устройство ввода может отвечать за ввод одним или более пользователями посредством, например, тактильного ввода (например, нажатий на клавиши, махов, движений информационной перчатки), аудио-ввода (например, голосового, хлопков), визуального ввода (например, жестов), обонятельного ввода (не показан). Устройства интерфейса также могут использоваться для захвата некоторых информационных носителей, не обязательно непосредственно связанных с осознанным вводом человеком, например звука (например, речи, музыки, внешнего звука), изображений (например, отсканированных изображений, фотографических изображений, полученных от камеры неподвижных изображений), видео (например, двухмерного видео, трехмерного видео, включающего в себя стереоскопическое видео).[0185] The computer system (1500) may include some human interface input devices. Such an input device may be responsible for input by one or more users through, for example, tactile input (e.g., keystrokes, waving, glove movements), audio input (e.g., voice, claps), visual input (e.g., gestures), olfactory input (not shown). Interface devices may also be used to capture certain media not necessarily directly related to conscious human input, such as sound (e.g. speech, music, external sound), images (e.g. scanned images, photographic images received from a still camera), video (eg, 2D video, 3D video including stereoscopic video).
[0186] Входной человеческий интерфейс устройства может включать в себя одно или более устройств (по одному из изображенных): клавиатуру (1501), мышь (1502), сенсорную панель (1503), сенсорный экран (1510), информационную перчатку (не показана), джойстик (1505), микрофон (1506), сканер (1507), камеру (1508).[0186] The input human interface of the device may include one or more devices (one of each shown): keyboard (1501), mouse (1502), touch pad (1503), touch screen (1510), information glove (not shown) , joystick (1505), microphone (1506), scanner (1507), camera (1508).
[0187] Компьютерная система (1500) также может включать в себя некоторые устройства вывода интерфейса с человеком. Такие устройства вывода могут стимулировать органы чувств одного или более пользователей посредством, например, тактильного вывода, звука, света и запаха/вкуса. Такие устройства вывода могут включать в себя устройства тактильного вывода (например, тактильной обратной связи посредством сенсорного экрана (1510), информационной перчатки (не показана) или джойстика (1505), но также могут быть устройствами тактильной обратной связи, которые не служат устройствами ввода), устройства вывода аудио (например: громкоговорители (1509), наушники (не показаны)), устройства визуального вывода (например, экраны (1510), в том числе CRT-экраны, LCD-экраны, плазменные экраны, OLED-экраны, каждый с возможностями сенсорного экранного ввода или без них, каждый с возможностями тактильной обратной связи или без них, некоторые из которых способны к двухмерному визуальному выводу или более чем трехмерному выводу посредством, например, стереографического вывода; очков виртуальной реальности (не показаны), голографических дисплеев и дымовых баков (не показаны)) и принтеров (не показаны). Эти устройства визуального вывода (например, экраны (1510)) могут быть подключены к системной шине (1548) через графический адаптер (1550).[0187] The computer system (1500) may also include some human interface output devices. Such output devices may stimulate the senses of one or more users through, for example, tactile output, sound, light, and smell/taste. Such output devices may include tactile output devices (e.g., haptic feedback via touch screen (1510), data glove (not shown), or joystick (1505), but may also be tactile feedback devices that do not serve as input devices) , audio output devices (for example: speakers (1509), headphones (not shown)), visual output devices (for example, screens (1510), including CRT screens, LCD screens, plasma screens, OLED screens, each with touch screen input capabilities, each with or without tactile feedback capabilities, some of which are capable of 2D visual output or more than 3D output through, for example, stereographic output; virtual reality glasses (not shown), holographic displays, and smoke tanks (not shown)) and printers (not shown). These visual output devices (eg screens (1510)) can be connected to the system bus (1548) via a graphics adapter (1550).
[0188] Компьютерная система (1500) также может включать в себя доступные человеку запоминающие устройства и связанные с ними носители, например, оптические носители, включающие в себя CD/DVD ROM/RW (1520) с носителями (1521) CD/DVD и т.п., карты флэш-памяти (1522), сменный жесткий диск или твердотельный диск (1523), традиционные магнитные носители, например, ленту и флоппи-диск (не показан), специализированные устройства на основе ROM/ASIC/PLD, например, защитные аппаратные ключи (не показаны) и т.п.[0188] The computer system (1500) may also include human accessible storage devices and associated media, such as optical media including CD/DVD ROM/RW (1520) with CD/DVD media (1521), etc. .p., flash memory cards (1522), removable hard drive or solid state drive (1523), conventional magnetic media such as tape and floppy disk (not shown), dedicated ROM/ASIC/PLD based devices such as security hardware keys (not shown) and the like.
[0189] Специалисты в данной области техники также должны понимать, что термин "компьютерно-считываемые носители", используемый в связи с раскрытым здесь изобретением, не охватывает среды передачи, несущие волны или другие кратковременные сигналы.[0189] Those skilled in the art should also understand that the term "computer-readable media" as used in connection with the invention disclosed herein does not encompass transmission media, carrier waves, or other short-term signals.
[0190] Компьютерная система (1500) также может включать в себя интерфейс (1554) к одной или более сетям связи (1555). Одна или более сетей связи (1555) могут быть, например, беспроводными, проводными, оптическими. Одна или более сетей связи (1555) могут быть, дополнительно, локальными, глобальными, городскими, транспортными и промышленными, реального времени, допускающими задержку и т.д. Примеры одной или более сетей связи (1555) включают в себя локальные сети, например, Ethernet, беспроводные LAN, сотовые сети, в том числе GSM, 3G, 4G, 5G, LTE и т.п., глобальные цифровые сети проводного или беспроводного телевидения, в том числе кабельное телевидение, спутниковое телевидение и наземное телевещание, транспортные и промышленные включают в себя CANBus и т.д. Некоторые сети обычно требуют внешних адаптеров сетевого интерфейса, которые подключены к некоторым портам данных общего назначения или периферийным шинам (1549) (например, USB-порты компьютерной системы (1500)); другие обычно встраиваются в ядро компьютерной системы (1500) путем подключения к системной шине, как описано ниже (например, интерфейс Ethernet в компьютерную систему PC или интерфейс сотовой сети в компьютерную систему смартфона). Используя любую из этих сетей, компьютерная система (1500) может осуществлять связь с другими объектами. Такая связь может быть однонаправленной с возможностью только приема (например, телевещания), однонаправленной с возможностью только передачи (например, CANbus к некоторым устройствам CANbus) или двунаправленной, например, к другим компьютерным системам с использованием локальной или глобальной цифровой сети. Некоторые протоколы и стеки протоколов могут использоваться в каждой из этих сетей и вышеописанных сетевых интерфейсов.[0190] The computer system (1500) may also include an interface (1554) to one or more communication networks (1555). One or more communication networks (1555) may be, for example, wireless, wired, optical. One or more communication networks (1555) may additionally be local, wide area, metropolitan, transport and industrial, real time, delay tolerant, and so on. Examples of one or more communications networks (1555) include local area networks such as Ethernet, wireless LANs, cellular networks including GSM, 3G, 4G, 5G, LTE, and the like, digital wide area wired or wireless television networks , including cable TV, satellite TV and terrestrial TV, transport and industrial include CANBus, etc. Some networks typically require external network interface adapters that are connected to some general purpose data ports or peripheral buses (1549) (for example, computer system USB ports (1500)); others are typically built into the core of the computer system (1500) by connecting to a system bus as described below (eg, an Ethernet interface to a PC computer system or a cellular network interface to a smartphone computer system). Using any of these networks, the computer system (1500) can communicate with other entities. Such communication may be unidirectional with receive-only capability (eg broadcast), unidirectional with transmit-only capability (eg CANbus to some CANbus devices), or bidirectional, eg to other computer systems using a local area network or a wide area digital network. Several protocols and protocol stacks may be used on each of these networks and the network interfaces described above.
[0191] Вышеупомянутые устройства человеческого интерфейса, доступные человеку запоминающие устройства и сетевые интерфейсы могут подключаться к ядру (1540) компьютерной системы (1500).[0191] The aforementioned human interface devices, human accessible storage devices, and network interfaces can be connected to the core (1540) of the computer system (1500).
[0192] Ядро (1540) может включать в себя один или более центральных процессоров (CPU) (1541), графические процессоры (GPU) (1542), специализированные программируемые модули обработки в форме вентильных матриц, программируемых пользователем (FPGA, Field Programmable Gate Areas) (1543), аппаратные ускорители (1544) для некоторых задач и т.д. Эти устройства, совместно с постоянной памятью (ROM) (1545), оперативной памятью (1546), внутренним хранилищем данных большой емкости, например, внутренними жесткими дисками, недоступными пользователю, SSD и т.п. (1547), могут соединяться посредством системной шины (1548). В некоторых компьютерных системах системная шина (1548) может быть доступна в форме одного или более физических разъемов для обеспечения расширений за счет дополнительных CPU, GPU и т.п. Периферийные устройства могут подключаться либо непосредственно к системной шине (1548) ядра, либо через периферийную шину (1549). Архитектуры периферийной шины включают в себя PCI, USB и т.п.[0192] The core (1540) may include one or more central processing units (CPUs) (1541), graphics processing units (GPUs) (1542), specialized programmable processing modules in the form of Field Programmable Gate Areas (FPGAs). ) (1543), hardware accelerators (1544) for some tasks, etc. These devices, together with read-only memory (ROM) (1545), random access memory (1546), high capacity internal storage such as user-inaccessible internal hard drives, SSD, etc. (1547) can be connected via the system bus (1548). In some computer systems, the system bus (1548) may be available in the form of one or more physical connectors to allow for expansions with additional CPUs, GPUs, or the like. Peripherals can be connected either directly to the system bus (1548) of the kernel, or via a peripheral bus (1549). Peripheral bus architectures include PCI, USB, and the like.
[0193] CPU (1541), GPU (1542), FPGA (1543) и ускорители (1544) могут выполнять некоторые инструкции, которые совместно могут составлять вышеупомянутый компьютерный код. Этот компьютерный код может храниться в ROM (1545) или RAM (1546). Переходные данные также могут храниться в RAM (1546), тогда как постоянные данные могут храниться, например, во внутреннем хранилище данных большой емкости (1547). Быстрое сохранение и извлечение из любого запоминающего устройства может обеспечиваться за счет использования кэш-памяти, которая может быть тесно связана с один или более CPU (1541), GPU (1542), хранилищем данных большой емкости (1547), ROM (1545), RAM (1546) и т.п.[0193] CPUs (1541), GPUs (1542), FPGAs (1543), and accelerators (1544) may execute some instructions that together may constitute the aforementioned computer code. This computer code may be stored in ROM (1545) or RAM (1546). Transient data may also be stored in RAM (1546), while persistent data may be stored in, for example, an internal mass storage (1547). Fast storage and retrieval from any storage device can be achieved through the use of cache memory, which can be closely associated with one or more CPU (1541), GPU (1542), mass storage (1547), ROM (1545), RAM (1546), etc.
[0194] На компьютерно-считываемых носителях может храниться компьютерный код для осуществления различных компьютерно-реализуемых операций. Носители и компьютерный код могут быть специально созданы в целях настоящего изобретения или могут относиться к хорошо известным и доступным специалистам в области компьютерного программного обеспечения.[0194] Computer-readable media may store computer code for performing various computer-implemented operations. The media and computer code may be specially created for the purposes of the present invention or may be well known and available to those skilled in the art of computer software.
[0195] В порядке примера, но не ограничения, компьютерная система, имеющая архитектуру (1500), и, в частности, ядро (1540) может обеспечивать функциональные возможности благодаря выполнению процессором(ами) (включающим(и) в себя CPU, GPU, FPGA, ускорители и т.п.) программного обеспечения, воплощенного в одном или более материальных компьютерно-считываемых носителей. Такие компьютерно-считываемые носители могут быть носителями, связанными с доступным пользователю хранилищем данных большой емкости, представленным выше, а также некоторым хранилищем ядра (1540), носящим долговременный характер, например, внутренним хранилищем данных большой емкости (1547) или ROM (1545). Программное обеспечение, реализующее различные варианты осуществления настоящего изобретения, может храниться в таких устройствах и выполняться ядром (1540). Компьютерно-считываемый носитель может включать в себя одно или более запоминающих устройств или микросхем, в соответствии с конкретными нуждами. Программное обеспечение может предписывать ядру (1540) и, в частности, его процессорам (включая CPU, GPU, FPGA и т.п.) выполнять конкретные процессы или конкретные части описанных здесь конкретных процессов, включая задание структур данных, хранящихся в RAM (1546), и модификацию таких структур данных согласно процессам, заданным программным обеспечением. Дополнительно или альтернативно, компьютерная система может обеспечивать функциональные возможности благодаря логике, зашитой или иным образом воплощенной в схеме (например, ускоритель (1544)), который может действовать вместо или совместно с программным обеспечением для выполнения конкретных процессов или конкретных частей описанных здесь конкретных процессов. Ссылка на программное обеспечение может охватывать логику, и наоборот, когда это уместно. Ссылка на компьютерно-считываемые носители может охватывать схему (например, интегральную схему (IC, integrated circuit)), где хранится программное обеспечение для выполнения, схему, воплощающую логику для выполнения, или обе из них, когда это уместно. Настоящее изобретение охватывает любую подходящую комбинацию оборудования и программного обеспечения.[0195] By way of example, and not limitation, a computer system having an architecture (1500), and in particular a core (1540), can provide functionality through execution by processor(s) (including(and) CPU, GPU, FPGAs, accelerators, etc.) software embodied in one or more tangible computer-readable media. Such computer-readable media can be media associated with the user-accessible mass storage described above, as well as some persistent storage in the kernel (1540), such as internal mass storage (1547) or ROM (1545). Software implementing various embodiments of the present invention may be stored on such devices and executed by the kernel (1540). The computer-readable medium may include one or more memory devices or chips, in accordance with specific needs. The software may direct the core (1540), and in particular its processors (including CPUs, GPUs, FPGAs, and the like), to execute specific processes or specific portions of the specific processes described herein, including setting data structures stored in RAM (1546) , and modifying such data structures according to processes defined by the software. Additionally or alternatively, the computer system may provide functionality through logic hardwired or otherwise embodied in circuitry (e.g., an accelerator (1544)) that may operate in place of or in conjunction with software to perform specific processes or specific portions of the specific processes described herein. A reference to software may cover logic, and vice versa when appropriate. Reference to computer-readable media may encompass a circuit (eg, an integrated circuit (IC)) where software is stored for execution, a circuit embodying logic for execution, or both, as appropriate. The present invention encompasses any suitable combination of hardware and software.
[0196] Хотя здесь описано несколько иллюстративных вариантов осуществления, возможны изменения, перестановки и различные эквиваленты для замены в объеме изобретения. Таким образом, специалисты в данной области техники могут предложить многочисленные системы и способы, которые, хотя в явном виде здесь не показаны и не описаны, воплощают принципы изобретения и, таким образом, соответствуют его сущности и объему.[0196] Although several illustrative embodiments are described here, changes, permutations, and various equivalents for substitution are possible within the scope of the invention. Thus, those skilled in the art can provide numerous systems and methods that, although not explicitly shown or described herein, embody the principles of the invention and thus fall within its spirit and scope.
Приложение А: сокращенияAppendix A: Abbreviations
ALWIP (или LWIP): аффинное линейное взвешенное внутреннее предсказаниеALWIP (or LWIP): Affine Linear Weighted Intra Prediction
AMVP: усовершенствованное предсказание векторов движенияAMVP: Advanced Motion Vector Prediction
ASIC: специализированная интегральная схемаASIC: Application Specific Integrated Circuit
ATMVP: альтернативное/усовершенствованное временное предсказание векторов движенияATMVP: Alternative/Advanced Temporal Motion Vector Prediction
BMS: набор эталоновBMS: a set of standards
BV: вектор блокаBV: block vector
CANBus: шина контроллерной сетиCANBus: controller network bus
СВ: блок кодированияSW: coding block
CD: компакт-дискCD: CD
CPR: опора на текущее изображениеCPR: Current Image Reliance
CPU: центральные процессорыCPU: central processing units
CRT: кинескопCRT: kinescope
СТВ: блок дерева кодированияCTB: coding tree block
CTU: единица дерева кодированияCTU: coding tree unit
CU: единица кодированияCU: coding unit
DM: производный режимDM: derived mode
DPB: буфер изображений декодераDPB: decoder picture buffer
DVD: цифровой видеодискDVD: Digital Video Disc
FPGA: вентильные матрицы, программируемые пользователемFPGA: Field Programmable Gate Arrays
GOP: группы изображенийGOP: groups of images
GPU: графические процессорыGPU: GPUs
GSM: глобальная система мобильной связиGSM: Global System for Mobile Communications
HDR: большой (расширенный) динамический диапазонHDR: High (extended) dynamic range
HEVC: высокопроизводительное видео кодированиеHEVC: High Performance Video Coding
HRD: гипотетический эталонный декодерHRD: Hypothetical Reference Decoder
IBC: интра-блочное копированиеIBC: intra-block copy
IC: интегральная схемаIC: integrated circuit
ISP: внутренняя ячейкаISP: inner cell
JEM: модель совместного исследованияJEM: collaborative research model
JVET: группа совместного исследования видеоJVET: Joint Video Research Group
LAN: локальная сетьLAN: local area network
LCD: жидкокристаллический дисплейLCD: liquid crystal display
LTE: проект долгосрочного развития систем связиLTE: a project for the long-term development of communication systems
MIP: внутреннее предсказание на основе матрицMIP: Matrix Intra Prediction
МРМ: наиболее вероятный режимMRM: most probable mode
MV: вектор движенияMV: motion vector
OLED: органический светодиодOLED: organic light emitting diode
РВ: блок предсказанияRW: prediction block
PCI: межсоединение периферийных компонентовPCI: Peripheral Component Interconnect
PDPC: позиционная комбинация предсказанийPDPC: Positional Prediction Combination
PLD: программируемое логическое устройствоPLD: Programmable Logic Device
PU: единица предсказанияPU: prediction unit
RAM: оперативная памятьRAM: random access memory
ROM: постоянная памятьROM: Read Only Memory
SCC: кодирование содержимого экранаSCC: Screen Content Coding
SDR: стандартный динамический диапазонSDR: standard dynamic range
SEI: информация дополнительного улучшенияSEI: Additional Improvement Information
SNR: отношение сигнал/шумSNR: signal to noise ratio
SSD: твердотельный приводSSD: solid state drive
TU: единица преобразованияTU: conversion unit
USB: универсальная последовательная шинаUSB: Universal Serial Bus
VUI: информация пригодности видеоVUI: video suitability information
VVC: универсальное видеокодированиеVVC: Universal Video Coding
WAIP: широкоугольное внутреннее предсказание.WAIP: Wide Angle Intra Prediction.
Claims (43)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US62/829,439 | 2019-04-04 | ||
US16/822,985 | 2020-03-18 |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2780794C1 true RU2780794C1 (en) | 2022-09-30 |
Family
ID=
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101710635B1 (en) * | 2013-07-12 | 2017-02-27 | 삼성전자주식회사 | Method and apparatus for video encoding for Predicting Block-based Disparity Vector, method and apparatus for video decoding for Predicting Block-based Disparity Vector |
WO2017196957A1 (en) * | 2016-05-13 | 2017-11-16 | Qualcomm Incorporated | Neighbor based signaling of intra prediction modes |
US20170347103A1 (en) * | 2016-05-25 | 2017-11-30 | Arris Enterprises Llc | Weighted angular prediction coding for intra coding |
US20180098063A1 (en) * | 2016-10-05 | 2018-04-05 | Qualcomm Incorporated | Motion vector prediction for affine motion models in video coding |
US20190045184A1 (en) * | 2016-02-18 | 2019-02-07 | Media Tek Singapore Pte. Ltd. | Method and apparatus of advanced intra prediction for chroma components in video coding |
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101710635B1 (en) * | 2013-07-12 | 2017-02-27 | 삼성전자주식회사 | Method and apparatus for video encoding for Predicting Block-based Disparity Vector, method and apparatus for video decoding for Predicting Block-based Disparity Vector |
US20190045184A1 (en) * | 2016-02-18 | 2019-02-07 | Media Tek Singapore Pte. Ltd. | Method and apparatus of advanced intra prediction for chroma components in video coding |
WO2017196957A1 (en) * | 2016-05-13 | 2017-11-16 | Qualcomm Incorporated | Neighbor based signaling of intra prediction modes |
US20170347103A1 (en) * | 2016-05-25 | 2017-11-30 | Arris Enterprises Llc | Weighted angular prediction coding for intra coding |
US20180098063A1 (en) * | 2016-10-05 | 2018-04-05 | Qualcomm Incorporated | Motion vector prediction for affine motion models in video coding |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113545061B (en) | Video encoding and decoding method and device, storage medium and device comprising processing circuit | |
CN112789850B (en) | Video encoding and decoding method, device, equipment and medium | |
CN112272949B (en) | Video decoding method, device and readable medium | |
KR20200128138A (en) | Method and apparatus for video coding | |
JP7391989B2 (en) | Video coding method and device | |
CN112753218A (en) | Method and apparatus for video encoding | |
CN113557724A (en) | Video coding and decoding method and device | |
CN113424536A (en) | Method and apparatus for video encoding | |
US11758152B2 (en) | Method and apparatus for video coding using planar intra prediction mode for intra sub-partition coding mode | |
CN113366847B (en) | Method, apparatus and readable medium for video encoding and decoding | |
JP2024019734A (en) | Method and apparatus for video coding | |
KR20200124749A (en) | Method and apparatus for video coding | |
CN114666602A (en) | Video decoding method, apparatus and medium | |
CN115428024A (en) | Decoupled transform segmentation technique | |
RU2780794C1 (en) | Simplified method for signalling for the mode of affine linear weighted intra prediction | |
CN112437306A (en) | Video encoding and decoding method and device, computer equipment and storage medium | |
RU2777394C1 (en) | Method and device for video encoding | |
RU2787810C1 (en) | Method and apparatus for colour conversion in versatile video coding (vvc) | |
RU2779825C1 (en) | Method and device for interaction between the internal prediction mode and the block differential pulse-code modulation mode | |
RU2777377C1 (en) | Unified block vector prediction to compensate for blocks inside the image | |
RU2779901C1 (en) | Method and device for improved implicit conversion selection | |
RU2779931C1 (en) | Method and apparatus for transmitting information on the size of a predictor candidate list | |
RU2780422C1 (en) | Method and apparatus for video encoding | |
RU2784813C1 (en) | Method and apparatus for video encoding | |
RU2801587C1 (en) | Method and device for video encoding |