RU2787846C1 - Sample arrige encoding for low delay - Google Patents

Sample arrige encoding for low delay Download PDF

Info

Publication number
RU2787846C1
RU2787846C1 RU2022120168A RU2022120168A RU2787846C1 RU 2787846 C1 RU2787846 C1 RU 2787846C1 RU 2022120168 A RU2022120168 A RU 2022120168A RU 2022120168 A RU2022120168 A RU 2022120168A RU 2787846 C1 RU2787846 C1 RU 2787846C1
Authority
RU
Russia
Prior art keywords
entropy
slice
current
slices
array
Prior art date
Application number
RU2022120168A
Other languages
Russian (ru)
Inventor
Валери ГЕОРГЕ
Анастасия ХЕНКЕЛЬ
Хайнер КИРХХОФФЕР
Детлеф МАРПЕ
Томас ШИРЛЬ
Original Assignee
ДжиИ Видео Компрешн, ЭлЭлСи
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ДжиИ Видео Компрешн, ЭлЭлСи filed Critical ДжиИ Видео Компрешн, ЭлЭлСи
Application granted granted Critical
Publication of RU2787846C1 publication Critical patent/RU2787846C1/en

Links

Images

Abstract

FIELD: video encoding.
SUBSTANCE: invention relates to means for video encoding. A plurality of entropy slices is entropy encoded into an entropy encoded data stream, each of said plurality of entropy slices containing entropy encoded data for a corresponding row of the array of samples. Entropy encoding includes encoding into the data stream, for the current entropy slice, using Exponential Golomb coding, a position difference value associated with a start position within the data stream of the current entropy slice, where the position difference value indicates the difference between the start position within the data stream of the previous entropy slice and the starting position of the current entropy slice. The current entropy slice corresponds to the current row of the array of samples, and the previous entropy slice corresponds to the previous row of the array of samples, and the current and previous rows are consecutive rows of said array of samples. The start position of the current entropy slice within the data stream is to be obtained based on the sum of the start position of the previous entropy slice and the position difference value.
EFFECT: improving coding efficiency.
27 cl, 20 dwg, 4 tbl

Description

Настоящая заявка имеет отношение к кодированию массива выборок (элементов дискретизации), такому как кодирование изображений или видео.The present application relates to array coding of samples (bins), such as image or video coding.

Распараллеливание кодера и декодера очень важно из-за увеличения требований к обработке из-за стандарта HEVC, а также из-за ожидаемого увеличения видео разрешения. Многоядерная архитектура становится доступной в широком диапазоне современных электронных устройств. Следовательно, требуются эффективные способы предоставления возможности использования многоядерной архитектуры.The parallelization of the encoder and decoder is very important due to the increase in processing requirements due to the HEVC standard, as well as the expected increase in video resolution. Multi-core architecture is becoming available in a wide range of modern electronic devices. Therefore, efficient methods for enabling the use of a multi-core architecture are required.

Кодирование или декодирование LCU происходит при растровом сканировании, с помощью которого вероятность CABAC адаптируют к конкретным особенностям каждого изображения. Пространственные зависимости существуют между смежными LCU. Каждая LCU (наибольшая единица кодирования) зависит от ее левой, верхней, верхней-левой и верхней-правой соседних LCU, из-за различных компонент, например, вектора движения, предсказания, внутреннего предсказания и других. Из-за предоставления возможности распараллеливания при декодировании эти зависимости обычно необходимо прерывать или они прерываются в современных применениях.The encoding or decoding of the LCU occurs with a raster scan, with which the CABAC probability is adapted to the specific features of each image. Spatial dependencies exist between adjacent LCUs. Each LCU (largest coding unit) depends on its left, top, top-left, and top-right neighbor LCUs, due to various components such as motion vector, prediction, intra prediction, and others. Due to the possibility of parallelization in decoding, these dependencies usually need to be broken or are broken in modern applications.

Были предложены некоторые концепции распараллеливания, а именно, волновая обработка данных. Мотивацией для дополнительного исследования является использование методов, которые снижают потерю эффективности кодирования и таким образом уменьшают затраты в отношении битового потока для подходов распараллеливания в кодере и декодере. Кроме того, обработка с низкой задержкой была невозможна с помощью доступных методов.Some parallelization concepts have been proposed, namely wave data processing. The motivation for further research is the use of techniques that reduce the loss of coding efficiency and thus reduce the bitstream cost for parallelization approaches in the encoder and decoder. Also, low latency processing was not possible with available methods.

Таким образом задачей настоящего изобретения является обеспечение концепции кодирования массивов выборок, которая предоставляет возможность меньшей задержки при сравнительно меньшем ухудшении эффективности кодирования.Thus, it is an object of the present invention to provide an array-of-sample coding concept that allows for lower delay with comparatively less degradation in coding efficiency.

Эту задачу обеспечивают с помощью содержимого прилагаемых независимых пунктов формулы изобретения.This objective is provided by the contents of the appended independent claims.

Если энтропийное кодирование текущей части предопределенного энтропийного слайса основано на соответствующих оценках вероятности предопределенного энтропийного слайса, которые адаптируют, используя ранее закодированную часть предопределенного энтропийного слайса, но не только, но также и на оценках вероятности, которые используются при энтропийном кодировании пространственно соседнего, по порядку энтропийных слайсов предыдущего энтропийного слайса в его соседней части, то оценки вероятности, используемые при энтропийном кодировании, адаптируют к фактической статистической информации символов более близко, таким образом снижая уменьшение эффективности кодирования, обычно вызываемое концепциями более низкой задержки. Временные взаимосвязи могут использоваться дополнительно или альтернативно.If the entropy encoding of the current part of the predefined entropy slice is based on the corresponding probability estimates of the predefined entropy slice that are adapted using the previously encoded part of the predefined entropy slice, but not only but also on the probability estimates that are used in the entropy encoding of the spatially adjacent, in order of entropy slices of the previous entropy slice in its adjacent portion, then the probability estimates used in entropy coding adapt to the actual symbol statistics more closely, thus reducing the reduction in coding efficiency typically caused by lower delay concepts. Temporal relationships may be used additionally or alternatively.

Например, зависимость от оценок вероятности, которые используются при энтропийном кодировании пространственно соседнего, по порядку энтропийных слайсов предыдущего энтропийного слайса, может вовлекать инициализацию оценок вероятности в начале энтропийного кодирования предопределенного энтропийного слайса. Обычно оценки вероятности инициализируются в значения, адаптированные к статистической информации символов характерной смеси материала массива выборок. Чтобы избежать передачи значений инициализации оценок вероятности, они известны кодеру и декодеру по определению. Однако, такие предопределенные значения инициализации естественно являются просто компромиссом между битрейтом (частотой следования битов) дополнительной информации с одной стороны и эффективностью кодирования с другой стороны, поскольку значения инициализации естественно - более или менее - отклоняются от фактической типовой статистической информации кодируемого в настоящее время материала массива выборок. Адаптирование вероятности во время кодирования энтропийного слайса адаптирует оценки вероятности к фактической статистической информации символов. Этот процесс ускоряют с помощью инициализации оценок вероятности в начале энтропийного кодирования текущего/предопределенного энтропийного слайса, используя уже адаптированные оценки вероятности только что упомянутого пространственно соседнего, по порядку энтропийных слайсов предыдущего энтропийного слайса, поскольку последние значения уже, до некоторой степени, адаптированы к фактической статистической информации рассматриваемого в настоящее время символа массива выборок. Кодирование с низкой задержкой может, однако, быть доступно с помощью использования при инициализации оценок вероятности для предопределенных/текущих энтропийных слайсов, данные оценки вероятности используются в его соседней части, вместо того, чтобы обнаруживаться в конце энтропийного кодирования предыдущего энтропийного слайса. С помощью этих мер все еще возможна волновая обработка данных.For example, dependency on probability estimates that are used in entropy encoding of a spatially adjacent entropy slice order of a previous entropy slice may involve initializing probability estimates at the start of entropy encoding of a predefined entropy slice. Usually, the probability estimates are initialized to values adapted to the statistical information of the symbols of the characteristic mixture of the material of the array of samples. To avoid passing initialization values of probability estimates, they are known to the encoder and decoder by definition. However, such predefined initialization values are naturally just a compromise between the bitrate (bitrate) of the side information on the one hand and the encoding efficiency on the other hand, since the initialization values naturally - more or less - deviate from the actual type statistical information of the array material currently being encoded. samples. Probability adaptation during entropy slice encoding adapts the probability estimates to the actual symbol statistics. This process is accelerated by initializing the probability estimates at the beginning of the entropy encoding of the current/predefined entropy slice, using the already adapted probability estimates of the just mentioned spatially neighboring, in the order of entropy slices, of the previous entropy slice, since the latter values are already, to some extent, adapted to the actual statistical information of the sample array symbol currently being considered. Low latency encoding may, however, be made available by using initialization probability estimates for predefined/current entropy slices, the probability estimate data being used in its adjacent portion instead of being found at the end of the entropy encoding of the previous entropy slice. Wave processing is still possible with these measures.

Дополнительно, вышеупомянутая зависимость от оценок вероятности, которые используются при энтропийном кодировании пространственно соседнего, по порядку энтропийных слайсов предыдущего энтропийного слайса, может вовлекать процесс адаптирования, состоящий из адаптирования оценок вероятности, непосредственно используемых при энтропийном кодировании текущего/предопределенного энтропийного слайса. Адаптирование оценки вероятности вовлекает использование только что закодированной части, то есть только что закодированного символа(ов), для адаптирования текущего состояния оценок вероятности к фактической статистической информации символов. С помощью этих мер инициализированные оценки вероятности адаптируются с некоторой скоростью адаптирования к фактической статистической информации символа. Данная скорость адаптирования увеличивается с помощью выполнения только что упомянутого адаптирования оценки вероятности, основываясь не только на кодируемом в настоящее время символе текущего/предопределенного энтропийного слайса, но также и в зависимости от оценок вероятности, которые были обнаружены в соседней части пространственно соседнего, по порядку энтропийных слайсов предыдущего энтропийного слайса. Снова, с помощью выбора пространственно соседней текущей части текущего энтропийного слайса и соседней части предыдущего энтропийного слайса, соответственно, волновая обработка данных все еще возможна. Преимуществом от соединения адаптирования собственной оценки вероятности по текущему энтропийному слайсу с адаптированием вероятности предыдущего энтропийного слайса является увеличение скорости, с которой происходит адаптирование к фактической статистической информации символов, поскольку множество символов, через которые перемещаются в текущем и предыдущем энтропийных слайсах, вносят вклад в адаптирование, а не просто символы текущего энтропийного слайса.Additionally, the aforementioned reliance on probability estimates that are used in the entropy coding of a spatially adjacent entropy slice order of the previous entropy slice may involve an adaptation process consisting of adapting the probability estimates directly used in the entropy coding of the current/predetermined entropy slice. Adapting the probability estimate involves using the freshly encoded portion, ie the newly encoded symbol(s), to adapt the current state of the probability estimates to the actual symbol statistics. With these measures, the initialized probability estimates are adapted at some adaptation rate to the actual symbol statistics. This adaptation rate is increased by performing the just-mentioned adaptation of the probability estimate, based not only on the currently encoded symbol of the current/predetermined entropy slice, but also depending on the probability estimates that have been found in the neighboring part of the spatially neighboring, in order of entropy slices of the previous entropy slice. Again, by selecting the spatially adjacent current portion of the current entropy slice and the adjacent portion of the previous entropy slice, respectively, wave processing is still possible. The advantage of coupling adapting one's own probability estimate on the current entropy slice with adapting the probability of the previous entropy slice is an increase in the speed at which adaptation occurs to the actual symbol statistics, since the many symbols moved through in the current and previous entropy slices contribute to the adaptation. and not just symbols of the current entropy slice.

Предпочтительные воплощения вариантов осуществления настоящего изобретения являются объектом зависимых пунктов формулы изобретения. Дополнительно, предпочтительные варианты осуществления описаны по отношению к фигурам, среди которых:Preferred embodiments of the embodiments of the present invention are the subject of the dependent claims. Additionally, preferred embodiments are described with respect to the figures, among which:

фиг. 1 показывает структурную схему примерного кодера;fig. 1 shows a block diagram of an exemplary encoder;

фиг. 2 показывает схематическую диаграмму разделения изображения на слайсы и части слайсов (то есть блоки или единицы кодирования) наряду с порядком кодирования, определенным между ними;fig. 2 shows a schematic diagram of the division of an image into slices and portions of slices (ie blocks or coding units) along with the coding order defined between them;

фиг. 3 показывает последовательность операций функционирования примерного кодера, такого как кодер на фиг. 1;fig. 3 shows the operation flow of an exemplary encoder, such as the encoder of FIG. 1;

фиг. 4 показывает схематическую диаграмму для объяснения функционирования примерного кодера, такого как кодер на фиг. 1;fig. 4 shows a schematic diagram for explaining the operation of an exemplary encoder such as the encoder in FIG. 1;

фиг. 5 показывает схематическую диаграмму параллельного работающего воплощения кодера и декодера;fig. 5 shows a schematic diagram of a parallel operating implementation of an encoder and decoder;

фиг. 6 показывает структурную схему примерного декодера;fig. 6 shows a block diagram of an exemplary decoder;

фиг. 7 показывает последовательность операций функционирования примерного декодера, такого как декодер на фиг. 6;fig. 7 shows the flow of operation of an exemplary decoder, such as the decoder of FIG. 6;

фиг. 8 показывает схематическую диаграмму примерного битового потока, являющегося результатом схемы кодирования на фиг. 1 - 6;fig. 8 shows a schematic diagram of an exemplary bitstream resulting from the coding scheme of FIG. sixteen;

фиг. 9 схематично показывает пример вычисления вероятности с помощью других LCU; fig. 9 schematically shows an example of probability calculation with other LCUs;

фиг. 10 показывает график, иллюстрирующий результаты RD для внутреннего способа (4 потока) в сравнении с HM3.0;fig. 10 shows a graph illustrating RD results for the internal method (4 streams) compared to HM3.0;

фиг. 11 показывает график, иллюстрирующий результаты RD для способа с низкой задержкой (1 поток) по сравнению с HM3.0;fig. 11 shows a graph illustrating RD results for a low latency (1 stream) method compared to HM3.0;

фиг. 12 показывает график, иллюстрирующий результаты RD для способа произвольного доступа (1 поток) по сравнению с HM3.0;fig. 12 shows a graph illustrating RD results for random access method (1 stream) compared with HM3.0;

фиг. 13 показывает график, иллюстрирующий результаты RD для способа с низкой задержкой (4 потока) по сравнению с HM3.0;fig. 13 shows a graph illustrating RD results for a low latency (4 stream) method compared to HM3.0;

фиг. 14 схематично и примерно иллюстрирует возможные соединения энтропийных слайсов;fig. 14 schematically and roughly illustrates possible entropy slice connections;

фиг. 15 схематично и примерно иллюстрирует возможную сигнализацию энтропийного слайса;fig. 15 schematically and roughly illustrates a possible entropy slice signaling;

фиг. 16 схематично и примерно иллюстрирует кодирование, сегментацию, перемежение и декодирование данных энтропийного слайса через фрагменты;fig. 16 schematically and exemplarily illustrates the encoding, segmentation, interleaving, and decoding of entropy slice data across slices;

фиг. 17 схематично и примерно иллюстрирует возможное соединение между кадрами;fig. 17 schematically and roughly illustrates a possible connection between frames;

фиг. 18 схематично и примерно иллюстрирует возможное использование соотнесенной информации;fig. 18 schematically and roughly illustrates the possible use of related information;

фиг. 19 схематично показывает возможность прохождения волны наклонно в пределах пространственного/временного пространства, заполненного последовательными массивами выборок; иfig. 19 schematically shows the possibility of a wave passing obliquely within a spatial/temporal space filled with successive arrays of samples; and

фиг. 20 схематично показывает другой пример для подразделения энтропийных слайсов на фрагменты.fig. 20 schematically shows another example for subdividing entropy slices into fragments.

Для облегчения понимания нижеизложенных мер для улучшения обеспечения низкой задержки при меньшем количестве недостатков по отношению к эффективности кодирования, кодер на фиг. 1 сначала описан в более общих чертах без предварительного обсуждения предпочтительных концепций вариантов осуществления настоящей заявки и как он может встраиваться в вариант осуществления на фиг. 1. Нужно упомянуть, однако, что структура, показанная на фиг. 1, служит просто в качестве иллюстративной среды, в которой могут использоваться варианты осуществления настоящей заявки. Обобщения и альтернативные варианты для кодеров и декодеров в соответствии с вариантами осуществления настоящего изобретения также кратко обсуждаются.In order to facilitate understanding of the following measures to improve the provision of low delay with fewer drawbacks in relation to coding efficiency, the encoder in FIG. 1 is first described more generally without prior discussion of the preferred concepts of the embodiments of the present application and how it can be incorporated into the embodiment of FIG. 1. It should be mentioned, however, that the structure shown in FIG. 1 merely serves as an illustrative environment in which embodiments of the present application may be used. Generalizations and alternatives for encoders and decoders in accordance with embodiments of the present invention are also briefly discussed.

Фиг. 1 показывает кодер для кодирования массива 10 выборок в энтропийно закодированный поток 20 данных. Как показано на фиг. 1, массив 10 выборок может быть одной из последовательностей 30 массивов выборок, и кодер может быть сконфигурирован для кодирования последовательности 30 в поток 20 данных.Fig. 1 shows an encoder for encoding an array of samples 10 into an entropy encoded data stream 20. As shown in FIG. 1, sample array 10 may be one of sample array sequences 30, and an encoder may be configured to encode sequence 30 into data stream 20.

Кодер на фиг. 1 в общем случае обозначен ссылочным символом 40 и содержит предварительный кодер 42, за которым следует каскад 44 энтропийного кодирования, выход которого выводит поток 20 данных. Предварительный кодер 42 сконфигурирован для приема и обработки массива 10 выборок для описания его содержимого посредством синтаксических элементов с предопределенным синтаксисом, причем каждый синтаксический элемент является соответствующим одним из предопределенного набора типов синтаксических элементов, которые, в свою очередь, связанны с соответствующей семантикой.The encoder in Fig. 1 is generally denoted by reference symbol 40 and contains a pre-coder 42 followed by an entropy encoding stage 44 whose output outputs a data stream 20. The precoder 42 is configured to receive and process an array 10 of samples to describe its contents in terms of syntax elements with a predefined syntax, each syntax element being a corresponding one of a predefined set of syntax element types, which in turn are associated with the corresponding semantics.

При описании массива 10 выборок, используя синтаксические элементы, предварительный кодер 42 может подразделять массив 10 выборок на единицы 50 кодирования. Термин «единица кодирования» может, по причинам, указанным более подробно ниже, альтернативно называться «единицами дерева кодирования» (CTU). Одна возможность того, как предварительный кодер 42 может подразделять массив 10 выборок на единицы 50 кодирования, для примера показана на фиг. 2. В соответствии с данным примером данное разделение регулярно разделяет массив 10 выборок на единицы 50 кодирования, так, чтобы последние были расположены в строках и столбцах, чтобы без зазора охватывать весь массив 10 выборок без наложения. Другими словами, предварительный кодер 42 может быть сконфигурирован для описания каждой единицы 50 кодирования посредством синтаксических элементов. Некоторые из этих синтаксических элементов могут формировать информацию подразделения для дополнительного подразделения соответствующей единицы 50 кодирования. Например, посредством подразделения на множество деревьев, информация подразделения может описывать подразделение соответствующей единицы 50 кодирования на блоки 52 предсказания, причем предварительный кодер 42 связывает режим предсказания со связанными параметрами предсказания для каждого из этих блоков 52 предсказания. Это подразделение предсказания может предоставлять возможность, чтобы блоки 52 предсказания были различного размера, как иллюстрировано на фиг. 2. Предварительный кодер 42 может также связывать остаточную информацию подразделения с блоками 52 предсказания для дополнительного подразделения блоков 52 предсказания на остаточные блоки 54 для описания ошибки предсказания для каждого блока 52 предсказания. Таким образом, предварительный кодер может быть сконфигурирован для генерации синтаксического описания массива 10 выборок в соответствии с гибридной схемой кодирования. Однако, как уже отмечено выше, только что упомянутый способ, с помощью которого предварительный кодер 42 описывает массив 10 выборок посредством синтаксических элементов, был представлен просто в целях иллюстрации, и он может также воплощаться по-другому.When describing the sample array 10 using syntax elements, the precoder 42 may subdivide the sample array 10 into coding units 50 . The term "coding unit" may, for reasons discussed in more detail below, alternatively be referred to as "coding tree units" (CTUs). One possibility of how the precoder 42 can subdivide the sample array 10 into coding units 50 is shown in FIG. 2. In accordance with this example, this division regularly divides the 10 sample array into coding units 50, so that the latter are arranged in rows and columns to cover the entire array of 10 samples without gap without overlap. In other words, precoder 42 may be configured to describe each coding unit 50 in terms of syntax elements. Some of these syntax elements may form subdivision information for the additional subdivision of the corresponding coding unit 50 . For example, by division into multiple trees, the division information may describe the division of the corresponding coding unit 50 into prediction blocks 52, with precoder 42 associating a prediction mode with associated prediction parameters for each of these prediction blocks 52. This prediction subdivision may allow prediction blocks 52 to be of different sizes, as illustrated in FIG. 2. Precoder 42 may also associate subdivision residual information with prediction blocks 52 to further subdivide prediction blocks 52 into residual blocks 54 to describe the prediction error for each prediction block 52. Thus, the precoder may be configured to generate a syntactic description of the array of 10 samples in accordance with the hybrid coding scheme. However, as noted above, the just-mentioned way in which the precoder 42 describes the sample array 10 in terms of syntax elements has been presented merely for purposes of illustration, and may also be implemented differently.

Предварительный кодер 42 может использовать пространственные взаимосвязи между содержимым соседних единиц 50 кодирования из массива 10 выборок. Например, предварительный кодер 42 может предсказывать синтаксические элементы для некоторой единицы 50 кодирования из синтаксических элементов, определенных для ранее закодированных единиц 50 кодирования, которые являются пространственно смежными с кодируемой в настоящее время единицей 50 кодирования. На фиг. 1 и 2, например, верхняя и левая соседние элементы служат для предсказания, которое иллюстрировано стрелками 60 и 62. Кроме того, предварительный кодер 42 в способе внутреннего предсказания уже может экстраполировать закодированное содержимое соседних единиц 50 кодирования в текущую единицу 50 кодирования для получения предсказания выборок текущей единицы 50 кодирования. Как иллюстрировано на фиг. 1, предварительный кодер 42 может, без использования пространственных взаимосвязей, во временной области предсказывать выборки и/или синтаксические элементы для текущей единицы 50 кодирования из ранее закодированных массивов выборок, как иллюстративно показано на фиг. 1 посредством стрелки 64. То есть данное предсказание с компенсацией движения может использоваться предварительным кодером 42, и сами векторы движения могут быть объектом временного предсказания из векторов движения ранее закодированных массивов выборок.The precoder 42 may use the spatial relationships between the contents of neighboring coding units 50 from the array 10 samples. For example, precoder 42 may predict syntax elements for a certain coding unit 50 from syntax elements defined for previously encoded coding units 50 that are spatially adjacent to the currently encoded coding unit 50. In FIG. 1 and 2, for example, the top and left adjacent elements serve for prediction, which is illustrated by arrows 60 and 62. In addition, the pre-coder 42 in the intra prediction method can already extrapolate the encoded contents of adjacent coding units 50 to the current coding unit 50 to obtain prediction samples current unit 50 coding. As illustrated in FIG. 1, precoder 42 may, without using spatial relationships, in the time domain predict samples and/or syntax elements for the current coding unit 50 from previously encoded arrays of samples, as illustratively shown in FIG. 1 by arrow 64. That is, a given motion compensated prediction may be used by precoder 42, and the motion vectors themselves may be the object of temporal prediction from motion vectors of previously encoded arrays of samples.

То есть предварительный кодер 42 может описывать содержимое массива 10 выборок по отношению к единицам кодирования, и для этой цели он может использовать пространственное предсказание. Пространственное предсказание ограничено для каждой единицы 50 кодирования пространственно соседними единицами кодирования того же самого массива 10 выборок таким образом, что когда придерживаются порядка 66 кодирования среди единиц 50 кодирования массива 10 выборок, через соседние единицы кодирования, служащие в качестве опоры предсказания для пространственного предсказания, в общем случае уже перемещались по порядку 66 кодирования перед текущей единицей 50 кодирования. Как показывается на фиг. 2, порядок 66 кодирования, определенный среди единиц 50 кодирования, может, например, быть порядком растрового сканирования, согласно которому через единицы 50 кодирования перемещаются строка за строкой сверху вниз. Необязательно, подразделение массива 10 на массив тайлов может приводить к тому, что порядок сканирования 66 перемещается - по порядку растрового сканирования - через единицы 50 кодирования, которые создают один тайл, сначала перед переходом к следующему по порядку тайлу, который, в свою очередь, может также иметь тип растрового сканирования. Например, пространственное предсказание может вовлекать просто соседние единицы 50 кодирования в пределах строки единиц кодирования выше строки единиц кодирования, в пределах которой находится текущая единица 50 кодирования, и единицу кодирования в пределах той же самой строки единиц кодирования, но слева относительно текущей единицы кодирования. Как будет объяснено более подробно ниже, это ограничение на пространственную взаимосвязь/пространственное предсказание предоставляет возможность параллельной волновой обработки данных.That is, the precoder 42 may describe the contents of the sample array 10 with respect to coding units, and for this purpose it may use spatial prediction. Spatial prediction is limited for each coding unit 50 to spatially adjacent coding units of the same sample array 10 such that when order 66 of the coding among the coding units 50 of the 10 sample array is followed, through adjacent coding units serving as a prediction reference for spatial prediction, in the general case have already moved in order 66 coding before the current unit 50 coding. As shown in FIG. 2, the coding order 66 defined among the coding units 50 may, for example, be a raster scan order in which line by line is moved through the coding units 50 from top to bottom. Optionally, subdividing the array 10 into an array of tiles may cause the scan order 66 to move—in raster scan order—through the coding units 50 that create one tile, first before moving on to the next in order tile, which in turn may also have a raster scan type. For example, spatial prediction may involve simply neighboring coding units 50 within a coding unit row above the coding unit row within which the current coding unit 50 resides, and a coding unit within the same coding unit row but to the left of the current coding unit. As will be explained in more detail below, this constraint on spatial relationship/spatial prediction enables parallel waveform data processing.

Предварительный кодер 42 направляет синтаксические элементы к каскаду 44 энтропийного кодирования. Как только что изложено, некоторые из этих синтаксических элементов закодированы с предсказанием, то есть представляют ошибки предсказания. Предварительный кодер 42 может, таким образом, расцениваться как кодер с предсказанием. Кроме того, предварительный кодер 42 может быть кодером с преобразованием, сконфигурированном для преобразования остатков кодов предсказания содержимого единиц 50 кодирования.The pre-coder 42 directs the syntax elements to the entropy encoding stage 44 . As just stated, some of these syntax elements are predictively encoded, that is, they represent prediction errors. The precoder 42 can thus be regarded as a predictive encoder. In addition, the pre-coder 42 may be a transform encoder configured to convert the prediction code residuals of the contents of the coding units 50 .

Примерная внутренняя структура каскада 44 энтропийного кодирования также показана на фиг. 1. Как показано, каскад 44 энтропийного кодирования может необязательно содержать средство представления в символьной форме для преобразования каждого из синтаксических элементов, принятых из предварительного кодера 42, количество возможных состояний которого превышает количество элементов алфавита символов, в последовательность символов si алфавита символов, основываясь на которой работает средство (движок) 44 энтропийного кодирования. Кроме этого необязательного средства 70 представления в символьной форме средство 44 энтропийного кодирования может содержать средство 72 выбора контекста и средство 74 инициализации, средство 76 управления оценкой вероятности, средство 78 адаптирования оценки вероятности и ядро 80 энтропийного кодирования. Выходной сигнал ядра энтропийного кодирования формирует выходной сигнал каскада 44 энтропийного кодирования. Кроме того, ядро 80 энтропийного кодирования содержит два входа, а именно, один - для приема символов si последовательности символов, а другой - для приема оценки pi вероятности для каждого из символов.An exemplary internal structure of entropy encoding stage 44 is also shown in FIG. 1. As shown, the entropy encoding stage 44 may optionally comprise a character representer for converting each of the syntax elements received from the precoder 42 whose number of possible states exceeds the number of character alphabet elements into a character alphabet character sequence s i based on which the means (engine) 44 entropy coding. In addition to this optional character representation means 70, entropy encoding means 44 may comprise a context selector 72 and an initialization means 74, a probability estimate control means 76, a probability estimate adaptation means 78, and an entropy encoding kernel 80 . The output of the entropy encoding core forms the output of the entropy encoding stage 44 . In addition, the entropy encoding core 80 contains two inputs, namely, one for receiving symbols s i of a sequence of symbols, and the other for receiving a probability estimate p i for each of the symbols.

Из-за свойств энтропийного кодирования эффективность кодирования по отношению к степени сжатия увеличивается с улучшением оценки вероятности: чем лучше оценка вероятности соответствует фактической статистической информации символа, тем лучше степень сжатия.Due to the properties of entropy coding, the coding efficiency with respect to the compression ratio increases as the probability estimate improves: the better the probability estimate matches the actual symbol statistical information, the better the compression ratio.

В примере на фиг. 1 средство 72 выбора контекста сконфигурировано для выбора для каждого символа si соответствующего контекста ci среди набора доступных контекстов, которыми управляет средство 76 управления. Нужно отметить, однако, что выбор контекста формирует просто необязательную особенность и ее можно не использовать, например, используя одинаковый контекст для каждого символа. Однако, если используется выбор контекста, то средство 72 выбора контекста может быть сконфигурировано для выполнения выбора контекста, по меньшей мере частично основываясь на информации, которая относится к единицам кодирования вне текущей единицы кодирования, а именно, которая относится к соседним единицам кодирования в пределах ограниченной близости, как обсуждается выше.In the example in FIG. 1, the context selector 72 is configured to select, for each symbol s i , a corresponding context c i from the set of available contexts managed by the manager 76 . It should be noted, however, that context selection is merely an optional feature and can be omitted, for example, by using the same context for each character. However, if context selection is used, then context selector 72 may be configured to perform context selection based at least in part on information that pertains to coding units outside the current coding unit, namely that pertains to adjacent coding units within a limited range. proximity, as discussed above.

Средство 76 управления содержит запоминающее устройство, которое сохраняет для каждого доступного контекста связанную с ним оценку вероятности. Например, алфавит символа может быть двоичным алфавитом, так что просто одно значение вероятности, вероятно, придется сохранять для каждого доступного контекста.The control means 76 includes a memory that stores, for each available context, an associated probability score. For example, the character alphabet may be a binary alphabet, so just one probability value may need to be stored for each available context.

Средство 74 инициализации может периодически инициализировать или повторно инициализировать оценки вероятности, сохраненные в средстве 76 управления для доступных контекстов. Возможные моменты времени, в которые может выполняться такая инициализация, обсуждаются дополнительно ниже.The initializer 74 may periodically initialize or reinitialize the probability estimates stored in the control 76 for the available contexts. Possible times at which such initialization may be performed are discussed further below.

Средство 78 адаптирования имеет доступ к парам символов si и соответствующим оценкам pi вероятности и, соответственно, адаптирует оценки вероятности в средстве 76 управления. То есть каждый раз, когда оценка вероятности применяется ядром 80 энтропийного кодирования для энтропийного кодирования соответствующего символа si в поток 20 данных, средство 78 адаптирования может изменять эту оценку вероятности в соответствии со значением данного текущего символа si, так, чтобы эта оценка pi вероятности была лучше адаптирована к фактической статистической информации символа, когда кодируют следующий символ, который связан с данной оценкой вероятности (посредством его контекста). То есть средство 78 адаптирования принимает оценку вероятности для выбранного контекста от средства 76 управления наряду с соответствующим символом si и адаптирует оценку pi вероятности, соответственно так, чтобы для следующего символа si того же самого контекста ci использовалась адаптивная оценка вероятности.The adaptor 78 has access to the symbol pairs s i and the corresponding probability estimates p i and adapts the probability estimates in the control means 76 accordingly. That is, each time a probability estimate is applied by the entropy encoding core 80 to entropy encode the corresponding symbol s i into the data stream 20, the adaptor 78 may change that probability estimate according to the value of the given current symbol s i , such that the estimate p i probability was better adapted to the actual symbol statistics when encoding the next symbol that is associated with a given probability estimate (via its context). That is, the adaptor 78 receives a probability estimate for the selected context from the control 76 along with the corresponding symbol s i and adapts the probability estimate pi accordingly so that an adaptive probability estimate is used for the next symbol s i of the same context c i .

Ядро 80 энтропийного кодирования, например, сконфигурировано для работы в соответствии со схемой арифметического кодирования или со схемой энтропийного кодирования с разделением интервала вероятности. При арифметическом кодировании ядро 80 энтропийного кодирования, например, непрерывно обновляет свое состояние, когда кодирует последовательность символов, состоянием, например, определяемым интервалом вероятности, определенным с помощью значения ширины интервала вероятности и значения смещения интервала вероятности. Когда работает в конвейерной концепции, ядро 80 энтропийного кодирования, например, разделяет область возможных значений оценок вероятности на различные интервалы с выполнением энтропийного кодирования с фиксированной вероятностью по отношению к каждому из этих интервалов, таким образом получая подпоток для каждого из подинтервалов, эффективность кодирования которых, соответственно, настраивается для связанного интервала вероятности. В случае энтропийного кодирования выходом потока 20 данных является арифметически закодированный поток данных, передающий информацию к стороне декодирования, которая предоставляет возможность эмуляции или повторного выполнения процесса подразделения данного интервала.The entropy coding core 80 is, for example, configured to operate in accordance with an arithmetic coding scheme or with a probability interval division entropy coding scheme. In arithmetic encoding, the entropy encoding core 80, for example, continuously updates its state when encoding a symbol sequence with a state, for example, determined by a probability interval determined by a probability interval width value and a probability interval offset value. When operating in a pipelined concept, the entropy encoding core 80, for example, divides the range of possible probability estimates into different bins, performing fixed probability entropy coding with respect to each of those bins, thereby obtaining a substream for each of the sub-bins whose coding efficiency, accordingly, tuned for the associated probability interval. In the case of entropy encoding, the output of the data stream 20 is an arithmetically encoded data stream conveying information to the decoding side, which allows the process of subdividing a given slot to be emulated or re-executed.

Естественно, возможно для состояния 44 энтропийного кодирования энтропийно кодировать всю информацию, то есть все синтаксические элементы/символы si, относящиеся к массиву 10 выборок, с помощью инициализации оценок вероятности просто один раз в его начале, и затем непрерывного обновления оценки вероятности с помощью средства 78 адаптирования. Это, однако, привело бы к созданию потока 20 данных, который пришлось бы последовательно декодировать на стороне декодирования. Другими словами, не было бы возможности, чтобы какой-либо декодер подразделял результирующий поток данных на несколько подпорций и декодировал подпорции параллельно. Это, в свою очередь, препятствовало бы всем усилиям уменьшить задержку.Naturally, it is possible for the entropy encoding state 44 to entropy encode all information, i.e. all syntax elements/symbols s i , related to the sample array 10 by initializing the probability estimates just once at its beginning, and then continuously updating the probability estimate with the means 78 adaptations. This, however, would result in a data stream 20 that would have to be sequentially decoded on the decoding side. In other words, it would not be possible for any decoder to subdivide the resulting data stream into multiple sub-portions and decode the sub-portions in parallel. This, in turn, would hinder all efforts to reduce latency.

Соответственно, как будет изложено более подробно ниже, удобно подразделять множество данных, описывающих массив 10 выборок, на так называемые энтропийные слайсы. Каждый из этих энтропийных слайсов, соответственно, охватывает отличающийся набор синтаксических элементов, относящихся к массиву 10 выборок. Если бы каскад 44 энтропийного кодирования, однако, энтропийно кодировал каждый энтропийный слайс полностью независимо друг от друга, сначала инициализируя оценку вероятности один раз с последующим постоянным обновлением оценок вероятности отдельно для каждого энтропийного слайса, то эффективность кодирования уменьшилась бы из-за увеличенного процента от данных, которые относятся и описывают массив 10 выборок, для которого используемые оценки вероятности (все же) менее точно адаптированы к фактической статистической информации символа.Accordingly, as will be discussed in more detail below, it is convenient to subdivide the data set describing the sample array 10 into so-called entropy slices. Each of these entropy slices, respectively, covers a different set of syntax elements related to the array of 10 samples. If the entropy encoding stage 44 were, however, to entropy encode each entropy slice completely independently of each other, first initializing the probability estimate once and then constantly updating the probability estimates separately for each entropy slice, then the encoding efficiency would decrease due to the increased percentage of data , which refer to and describe an array of 10 samples for which the probability estimates used are (yet) less closely adapted to the actual symbol statistical information.

Для преодоления только что упомянутых проблем при согласовании необходимости низкой задержки кодирования с одной стороны и высокой эффективности кодирования с другой стороны, может использоваться следующая схема кодирования, которая далее описана по отношению к фиг. 3.In order to overcome the problems just mentioned in reconciling the need for low coding delay on the one hand and high coding gain on the other hand, the following coding scheme can be used, which is further described with respect to FIG. 3.

Сначала данные, описывающие массив 10 выборок, подразделяют на порции, называемые в последующем «энтропийными слайсами». Подразделение 80 не обязательно должно быть без наложений. С другой стороны, это подразделение может по меньшей мере частично соответствовать пространственному подразделению массива 10 выборок на различные порции. То есть согласно подразделению 80, синтаксические элементы, описывающие массив 10 выборок, могут распределяться на различные энтропийные слайсы в зависимости от расположения единицы 50 кодирования, которая относится к соответствующему синтаксическому элементу. См., например, фиг. 2. Фиг. 2 показывает примерное подразделение массива 10 выборок на различные порции 12. Каждая порция соответствует соответствующему энтропийному слайсу. В качестве примера показано, что каждая порция 12 соответствует строке единиц 50 кодирования. Другие разделения, однако, также могут выполняться. Однако, предпочтительно, если разделение массива 10 выборок на порции 12 придерживается вышеупомянутого порядка 66 кодирования, так, чтобы порции 12 охватывали последовательные прохождения единиц 12 кодирования по порядку 66 кодирования. Даже если так, однако, не требуется, чтобы начальное и конечное положения порции 12 по порядку 66 кодирования совпадали с левым и правым краями строк единиц 50 кодирования, соответственно. Необязательно даже совпадение с границами единиц 50 кодирования, которые непосредственно следуют друг за другом, и порядок 66 кодирования.First, the data describing the array of 10 samples is subdivided into portions, hereinafter referred to as "entropy slices". Subdivision 80 need not be without overlaps. On the other hand, this subdivision may at least partially correspond to the spatial subdivision of the array of 10 samples into different chunks. That is, according to subdivision 80, the syntax elements describing the sample array 10 may be distributed into different entropy slices depending on the location of the coding unit 50 that belongs to the corresponding syntax element. See, for example, FIG. 2. FIG. 2 shows an exemplary subdivision of an array of 10 samples into different chunks 12. Each chunk corresponds to a corresponding entropy slice. As an example, each chunk 12 is shown to correspond to a string of coding units 50. Other divisions, however, may also be performed. However, it is preferable if the division of the array 10 of samples into chunks 12 adheres to the aforementioned coding order 66, so that chunks 12 cover successive runs of coding units 12 in coding order 66 . Even so, however, it is not required that the start and end positions of chunk 12 in coding order 66 coincide with the left and right edges of the coding unit strings 50, respectively. It is not even necessary to coincide with the borders of coding units 50 that immediately follow each other and the coding order 66 .

С помощью такого разделения массива 10 выборок среди порций 12 определяют порядок 16 энтропийных слайсов, по которому порции 12 следуют друг за другом по порядку 66 кодирования. Кроме того, для каждого энтропийного слайса определяется соответствующая траектория 14 энтропийного кодирования, а именно, фрагмент траектории 66 кодирования, направленный к соответствующей порции 12. В примере на фиг. 2, где порции 12 совпадают со строками единиц 50 кодирования, траектории 14 энтропийного кодирования из каждой точки энтропийного слайса вдоль направления строки параллельны друг другу, то есть в данном случае с левой стороны в правую сторону.With this division of the array 10 samples among the portions 12 determine the order of 16 entropy slices, in which the portions 12 follow each other in order 66 coding. In addition, for each entropy slice, a corresponding entropy encoding path 14 is determined, namely, a fragment of the encoding path 66 directed towards the corresponding chunk 12. In the example of FIG. 2, where chunks 12 coincide with strings of coding units 50, the entropy encoding paths 14 from each point of the entropy slice along the string direction are parallel to each other, that is, in this case, from the left side to the right side.

Нужно отметить, что было бы возможно ограничить пространственные предсказания, выполняемые предварительным кодером 42, и получение контекста, выполняемое средством 72 выбора контекста, так, чтобы они не пересекали границы слайса, то есть так, чтобы пространственные предсказания и результаты выборы контекста не зависели от данных, соответствующих другому энтропийному слайсу. Таким образом, «энтропийные слайсы» соответствуют обычному определению «слайсов» в H.264, например, которые декодируются полностью независимо друг от друга, за исключением нижеизложенной зависимости инициализации/адаптирования вероятности. Однако, также допустимо предоставлять возможность, чтобы пространственные предсказания и результаты выборы контекста, то есть вообще говоря зависимости, пересекали границы слайса, для использования локальных/пространственных взаимозависимостей, поскольку обработка WPP все еще может выполняться, в то время когда рассматривается инверсия предварительного кодирования, то есть восстановление, основанное на синтаксических элементах, и выбор энтропийного контекста. До сих пор энтропийные слайсы так или иначе соответствовали «зависимым слайсам».It should be noted that it would be possible to restrict the spatial predictions performed by the precoder 42 and the context acquisition performed by the context selector 72 so that they do not cross slice boundaries, i.e. so that the spatial predictions and the results of the context selections are not data dependent. corresponding to another entropy slice. Thus, "entropy slices" correspond to the usual definition of "slices" in H.264, for example, which are decoded completely independently of each other, except for the probability initialization/adaptation dependency below. However, it is also acceptable to allow spatial predictions and context selection results, i.e. dependencies in general, to cross slice boundaries to exploit local/spatial dependencies, since WPP processing can still be performed while precoding inversion is being considered, then there is a recovery based on syntactic elements and an entropy context choice. Until now, entropy slices corresponded in one way or another to "dependent slices".

Подразделение 80 может, например, выполняться с помощью каскада 44 энтропийного кодирования. Подразделение может быть фиксированным или может изменяться среди множества последовательностей 30. Разделение может устанавливаться по определению или может сообщаться в потоке 20 данных.Subdivision 80 can, for example, be performed using the cascade 44 entropy encoding. The subdivision may be fixed or may vary among the plurality of sequences 30. The subdivision may be set by definition or may be communicated in data stream 20.

Основываясь на энтропийных слайсах может происходить фактическое энтропийное кодирование, то есть 82. Для каждого энтропийного слайса энтропийное кодирование может быть структурировано на начальную фазу 84 и фазу 86 продолжения. Начальная фаза 84 вовлекает, например, инициализацию оценок вероятности, а также вызов процесса фактического энтропийного кодирования для соответствующего энтропийного слайса. Фактическое энтропийное кодирование затем выполняется во время фазы 86 продолжения. Энтропийное кодирование во время фазы 86 выполняется вдоль соответствующей траектории 14 энтропийного кодирования. Начальной фазой 84 для каждого энтропийного слайса управляют таким образом, что энтропийное кодирование множества энтропийных слайсов запускается последовательно, используя порядок 16 энтропийных слайсов.Based on the entropy slices, the actual entropy encoding can occur, ie 82. For each entropy slice, the entropy encoding can be structured into an initial phase 84 and a continuation phase 86. The initial phase 84 involves, for example, initializing the probability estimates as well as invoking the actual entropy encoding process for the corresponding entropy slice. The actual entropy encoding is then performed during the continuation phase 86 . Entropy encoding during phase 86 is performed along the corresponding entropy encoding path 14 . The start phase 84 for each entropy slice is controlled such that entropy encoding of a plurality of entropy slices is started sequentially using an order of 16 entropy slices.

Затем, чтобы избежать вышеизложенного недостатка, который является результатом энтропийного кодирования каждого энтропийного слайса полностью независимо друг от друга, процессом энтропийного кодирования 82 управляют таким образом, что текущая часть, например, текущая единица кодирования текущего энтропийного слайса энтропийно кодируется, основываясь на соответствующих оценках вероятности текущего энтропийного слайса, которые адаптируются, используя ранее закодированные части текущего энтропийного слайса, то есть части текущего энтропийного слайса слева от текущей единицы 50 кодирования в случае на фиг. 2, и на оценках вероятности, которые используются при энтропийном кодировании пространственно соседних, по порядку 16 энтропийных слайсов предыдущих энтропийных слайсов в его соседней части, то есть в соседней единице кодирования.Then, in order to avoid the above disadvantage, which is the result of entropy encoding each entropy slice completely independently of each other, the entropy encoding process 82 is controlled such that the current part, for example, the current coding unit of the current entropy slice, is entropy encoded based on the respective probability estimates of the current entropy slice that are adapted using the previously encoded portions of the current entropy slice, ie the portions of the current entropy slice to the left of the current coding unit 50 in the case of FIG. 2, and on the probability estimates that are used in the entropy coding of spatially adjacent, in the order of 16 entropy slices, of the previous entropy slices in its adjacent part, i.e., in the adjacent coding unit.

Чтобы описать приведенную выше зависимость более четко, ссылка сделана к фиг. 4. Фиг. 4 иллюстрирует n-1-й, n-й и n+1-й энтропийные слайсы по порядку 16 энтропийных слайсов с помощью ссылочного знака 90. Каждый энтропийный слайс 90 охватывает последовательность синтаксических элементов, описывающих порцию 12 массива 10 выборок, с которой связан соответствующий энтропийный слайс 90. Вдоль траектории 14 энтропийного кодирования энтропийный слайс 19 сегментирован на последовательность сегментов 92, каждый из которых соответствует соответствующей одной из единиц 50 кодирования порции 12, к которой относится энтропийный слайс 90.In order to describe the above relationship more clearly, reference is made to FIG. 4. FIG. 4 illustrates the n-1st, nth and n+1st entropy slices in order of 16 entropy slices with reference sign 90. Each entropy slice 90 spans a sequence of syntax elements describing a chunk 12 of a 10 sample array with which the corresponding entropy slice 90. Along the entropy encoding path 14, the entropy slice 19 is segmented into a sequence of segments 92, each of which corresponds to a respective one of the coding units 50 of the chunk 12 to which the entropy slice 90 belongs.

Как описано выше, оценки вероятности, используемые при энтропийном кодировании энтропийных слайсов 90, непрерывно обновляются во время фазы 86 продолжения вдоль траектории 14 энтропийного кодирования так, чтобы оценки вероятности все лучше и лучше адаптировались к фактической статистической информации символа соответствующего энтропийного слайса 90 - то есть оценки вероятности связывают с соответствующим энтропийным слайсом. Хотя оценки 94 вероятности, используемые для энтропийного кодирования энтропийного слайса 90, во время фазы 86 продолжения непрерывно обновляются, на фиг. 4 просто состояния оценок 94 вероятности, которые появляются в начальном и конечном положениях сегментов 92, иллюстрируются и упоминаются дополнительно ниже. В частности, состояние до энтропийного кодирования первого сегмента 92, которое инициализируется во время начальной фазы 84, показано как 96, состояние, обнаруживающееся после кодирования первого фрагмента, иллюстрируется как 98, и состояние, обнаруживающееся после кодирования первых двух фрагментов, указывается как 100. Те же самые элементы показаны на фиг. 4 также для энтропийного слайса n-1 по порядку 16 энтропийных слайсов, и следующего энтропийного слайса, то есть энтропийного слайса n+1.As described above, the probability estimates used in the entropy encoding of the entropy slices 90 are continuously updated during the continuation phase 86 along the entropy encoding path 14 so that the probability estimates are better and better adapted to the actual symbol statistical information of the corresponding entropy slice 90 - that is, the estimates the probabilities are associated with the corresponding entropy slice. Although the probability estimates 94 used to entropy encode the entropy slice 90 are continuously updated during the continuation phase 86, in FIG. 4, simply the states of the probability estimates 94 that appear at the start and end positions of the segments 92 are illustrated and referred to further below. In particular, the state before the entropy encoding of the first segment 92, which is initialized during the initial phase 84, is shown as 96, the state found after the encoding of the first fragment is illustrated as 98, and the state found after the encoding of the first two fragments is indicated as 100. Those the same elements are shown in FIG. 4 also for entropy slice n-1 in order of 16 entropy slices, and the next entropy slice, i.e. entropy slice n+1.

Теперь, для обеспечения вышеизложенной зависимости, начальное состояние 96 для энтропийного кодирования n-го энтропийного слайса 90 устанавливается в зависимости от любого промежуточного состояния оценок 94 вероятности, обнаруженного во время кодирования предыдущего энтропийного слайса n-1. «Промежуточное состояние» должно обозначать любое состояние оценок 94 вероятности, исключая начальное состояние 96 и конечное состояние, обнаруживаемое после энтропийного кодирования всего энтропийного слайса n-1. Делая так, энтропийное кодирование последовательности энтропийных слайсов 90 по порядку 16 энтропийных слайсов может параллелизовываться со степенью параллелизации, которая определяется отношением количества сегментов 92, предшествующих состоянию, используемому для инициализации оценок 94 вероятности для энтропийного кодирования следующего энтропийного слайса, то есть a, и количеством сегментов 92, следующих за этой стадией, то есть b. В частности на фиг. 4 a для примера устанавливают равным, с помощью инициализации, то есть адаптирования, состояния 100, таким образом, чтобы устанавливать состояние 96 текущего энтропийного слайса равным состоянию 100 предыдущего энтропийного слайса, иллюстрировано с помощью стрелки 104.Now, to ensure the above relationship, the initial state 96 for the entropy encoding of the nth entropy slice 90 is set depending on any intermediate state of the probability estimates 94 found during encoding of the previous n-1 entropy slice. "Intermediate state" shall mean any state of the probability estimates 94, excluding the initial state 96 and the final state found after the entropy encoding of the entire n-1 entropy slice. By doing so, the entropy encoding of a sequence of entropy slices 90 in order of 16 entropy slices can be parallelized with a degree of parallelization that is determined by the ratio of the number of segments 92 preceding the state used to initialize the probability estimates 94 for the entropy encoding of the next entropy slice, i.e. a, and the number of segments 92 following this stage, i.e. b. In particular, in FIG. 4 a is set, for example, by initialization, i.e. adaptation, to state 100, so as to set state 96 of the current entropy slice to be equal to state 100 of the previous entropy slice, illustrated by arrow 104.

С помощью этих мер энтропийное кодирование любого сегмента 92 после состояния 100 по порядку 14 траектории энтропийного кодирования будет зависеть от оценки 94 вероятности, которую адаптируют во время фазы 86 продолжения, основываясь на предыдущих фрагментах того же самого энтропийного слайса, а также от оценки вероятности, которая используется при энтропийном кодировании третьего сегмента 92 предыдущего энтропийного слайса 90.With these measures, the entropy encoding of any segment 92 after state 100 in order 14 of the entropy encoding path will depend on the probability estimate 94 that is adapted during the continuation phase 86 based on previous fragments of the same entropy slice, as well as on the probability estimate, which used in the entropy encoding of the third segment 92 of the previous entropy slice 90.

Соответственно, энтропийное кодирование энтропийных слайсов 90 может выполняться параллельно при конвейерном планировании. Единственными ограничениями, введенными на время планирования, является то, что энтропийное кодирование некоторого энтропийного слайса может начинаться сразу после окончания энтропийного кодирования a-го сегмента 92 предыдущего энтропийного слайса. Энтропийные слайсы 90 непосредственно друг после друга по порядку 16 энтропийных слайсов не подлежат каким-либо другим ограничениям относительно выравнивания по времени процедуры энтропийного кодирования во время фазы 86 продолжения.Accordingly, the entropy encoding of the entropy slices 90 can be performed in parallel with pipelined scheduling. The only restrictions imposed on the scheduling time is that the entropy encoding of an entropy slice can start immediately after the end of the entropy encoding of the a-th segment 92 of the previous entropy slice. Entropy slices 90 immediately after each other in order of 16 entropy slices are not subject to any other restrictions regarding the time alignment of the entropy encoding procedure during the continuation phase 86 .

Однако, в соответствии с другим вариантом осуществления, дополнительно и/или альтернативно используется более интенсивное соединение. В частности, как иллюстрируется на фиг. 4 с помощью обычных стрелок 106, адаптирование оценки вероятности во время фазы 86 продолжения приводит к тому, что данные единицы кодирования, соответствующей некоторому сегменту 92, изменяют оценки 94 вероятности из состояния в начале соответствующего сегмента 92 до завершения этого сегмента 92, таким образом улучшая аппроксимацию фактической статистической информации символа, как обозначено выше. То есть для энтропийного слайса n-1 выполняется адаптирование 106, просто зависящее от данных энтропийного слайса n-1, и то же самое относится к адаптированию 106 оценки вероятности энтропийного слайса n, и т.д. Например, можно выполнять инициализацию, как объясняется выше с помощью стрелок 104, с помощью выполнения адаптирования 106 оценки вероятности без дальнейшего взаимного влияния между энтропийными слайсами 90. Однако, чтобы ускорить аппроксимацию оценки вероятности к фактической статистической информации символа, адаптирования 106 оценки вероятности последовательных энтропийных слайсов могут соединяться так, чтобы адаптирование 106 оценки вероятности предыдущего n-1 энтропийного слайса также влияло или учитывалось, когда адаптируется результат адаптирования оценки вероятности текущего энтропийного слайса n. Это иллюстрируется на фиг. 4 с помощью стрелки 108, обращенной от состояния 110 пространственно соседних оценок 94 вероятности для энтропийного кодирования n-1-го энтропийного слайса 90 к состоянию 100 оценок 94 вероятности энтропийного кодирования n-го энтропийного слайса 90. Когда используют вышеизложенную инициализацию состояния 96, соединение 108 адаптирования вероятности может, например, использоваться в любом из b состояний оценки вероятности, обнаруживающихся после энтропийного кодирования b сегментов 92 предыдущего энтропийного слайса. Точнее, оценки вероятности, обнаруживающиеся непосредственно после энтропийного кодирования первого сегмента 92 текущего энтропийного слайса, могут быть результатом обычного адаптирования 106 вероятности и с помощью учета 108 состояний оценки вероятности, являющихся результатом адаптирования 106 оценок вероятности во время энтропийного кодирования (a+1)-го сегмента 92 предыдущего энтропийного слайса n-1. «Учет» может, например, вовлекать некоторую операцию усреднения. Пример будет дополнительно изложен ниже. Другими словами, состояние 98 оценок 94 вероятности энтропийного кодирования n-го энтропийного слайса 90 в начале энтропийного кодирования его сегмента 92 может быть результатом усреднения предыдущего состояния 96 оценок 94 вероятности для энтропийного кодирования текущего энтропийного слайса n, которые адаптируются, используя адаптирование 106, и состояния перед энтропийным кодированием (a+1)-го сегмента 92 предыдущего энтропийного слайса n-1, измененного согласно адаптированию 106 вероятности. Аналогично, состояние 100 может быть результатом усреднения результата адаптирования 106, выполненного во время энтропийного кодирования текущего энтропийного слайса n, и результатом адаптирования вероятности во время энтропийного кодирования (a+2)-го сегмента 92 предыдущего энтропийного слайса n-1, и т.д.However, in accordance with another embodiment, additionally and/or alternatively, a stronger connection is used. In particular, as illustrated in FIG. 4 with conventional arrows 106, adapting the probability estimate during the continuation phase 86 causes the coding unit data corresponding to a segment 92 to change the probability estimates 94 from the state at the beginning of the corresponding segment 92 to the end of that segment 92, thereby improving the approximation the actual statistical information of the symbol, as indicated above. That is, for entropy slice n-1, adaptation 106 is performed simply depending on the data of entropy slice n-1, and the same applies to adaptation 106 of the probability estimate of entropy slice n, and so on. For example, it is possible to perform initialization as explained above with arrows 104 by performing probability estimate adaptation 106 without further interference between entropy slices 90. However, in order to speed up the approximation of the probability estimate to the actual symbol historical information, probability estimate adaptation 106 of successive entropy slices may be coupled such that the adaptation 106 of the probability estimate of the previous n-1 entropy slice is also affected or taken into account when the adaptation result of the probability estimate of the current entropy slice n is adapted. This is illustrated in FIG. 4 with an arrow 108 pointing from the state 110 of the spatially adjacent probability estimates 94 for the entropy encoding of the n-1 entropy slice 90 to the state 100 of the probability estimates 94 of the entropy encoding of the nth entropy slice 90. When using the above state initialization 96, connection 108 The probability adaptation may, for example, be used in any of the b probability estimation states found after the entropy encoding of the b segments 92 of the previous entropy slice. More precisely, the probability estimates found immediately after the entropy encoding of the first segment 92 of the current entropy slice may be the result of the usual probability adaptation 106 and by taking into account the 108 probability estimate states resulting from the adaptation 106 of the probability estimates during entropy encoding of the (a+1)th segment 92 of the previous entropy slice n-1. "Accounting" may, for example, involve some sort of averaging operation. An example will be further set forth below. In other words, the state 98 of the entropy encoding probability estimates 94 of the nth entropy slice 90 at the beginning of the entropy encoding of its segment 92 may be the result of averaging the previous state 96 of the entropy encoding probability estimates 94 of the current entropy slice n, which are adapted using adaptation 106, and the states before the entropy encoding of the (a+1)th segment 92 of the previous n-1 entropy slice modified according to the probability adaptation 106 . Likewise, state 100 may be the result of averaging the result of adaptation 106 performed during the entropy encoding of the current entropy slice n and the result of probability adaptation during the entropy encoding of the (a+2)th segment 92 of the previous entropy slice n-1, etc. .

Более конкретно, предполагают, чтоMore specifically, it is assumed that

p(n)->{i, j}, причем i, j обозначает положение любой единицы кодирования (причем (0,0) является левой верхней позицией и (I, J) является правой нижней позицией), i∈{1...I} и j∈{1...J}, I является количеством столбцов, J является количеством строк и p() определяет порядок 66 траектории,p(n)->{i, j}, where i, j denotes the position of any coding unit (where (0,0) is the upper left position and (I, J) is the lower right position), i∈{1.. .I} and j∈{1...J}, I is the number of columns, J is the number of rows and p() defines the order 66 of the trajectory,

P{i, j} является оценкой вероятности, используемой при энтропийном кодировании единицы кодирования {i, j}; иP {i, j} is the probability estimate used in the entropy encoding of the coding unit {i, j}; and

T(P{i, j}) является результатом адаптирования 106 вероятности P{i, j}, основываясь на единице кодирования {i, j};T(P {i, j} ) is the result of adapting 106 the probability P {i, j} based on the coding unit {i, j};

Затем, оценки 106 вероятности последовательных энтропийных слайсов 90 могут объединяться для замены обычного внутреннего адаптирования энтропийного слайса согласно Pp(n+1)=T(Pp(n)), наThen, the probability estimates 106 of successive entropy slices 90 can be combined to replace the usual internal adaptation of the entropy slice according to P p(n+1) =T(P p(n) ), with

Pp(n+1)=среднее значение (T(Pp(n)), T(P{i, j}1), ..., T(P{i, j}N))P p(n+1) =mean (T(P p(n) ), T(P {i, j}1 ), ..., T(P {i, j}N ))

где N может быть 1 или больше 1 и {i, j}1...N выбирают из (находятся в пределах) любого предыдущего (по порядку 16 энтропийных слайсов) энтропийного слайса 90 и связанной с ним порции 12, соответственно. Функция «среднее значение» может быть одной из взвешенного суммирования, срединной функции и т.д. p(n)={i, j} является текущей единицей кодирования, и p(n+1) является следующей в соответствии с порядком 14 и 66 кодирования, соответственно. В представленных вариантах осуществления p(n+1)={i+1, j}.where N can be 1 or greater than 1 and {i, j} 1...N are selected from (are within) any previous (in order of 16 entropy slices) entropy slice 90 and its associated portion 12, respectively. The "mean" function can be one of a weighted summation, median function, etc. p(n)={i, j} is the current coding unit and p(n+1) is the next one according to coding order 14 and 66, respectively. In the embodiments shown, p(n+1)={i+1, j}.

Предпочтительно, {i, j}1...N соответствует для каждого k∈{1...N} {i, j}1...N={ik, jk} и ik<i+3 и jk<j, причем p(n)={i, j} является текущей единицей кодирования (то есть любой из второй или последующей единиц кодирования текущего энтропийного слайса), то есть они не расположены вне волны.Preferably, {i, j} 1...N corresponds for each k∈{1...N} {i, j} 1...N ={i k , j k } and i k <i+3 and j k <j, where p(n)={i, j} is the current coding unit (ie any of the second or subsequent coding units of the current entropy slice), i.e. they are not located outside the wave.

В последнем альтернативном варианте планирование во времени энтропийного кодирования, когда параллельно выполняют энтропийное кодирование энтропийных слайсов 90, более интенсивно соединяется друг с другом. То есть во время фазы 86 продолжения следующий сегмент 92 на линии текущего энтропийного слайса может начинаться сразу после окончания соответствующего сегмента предыдущего энтропийного слайса, который расположен дальше по порядку траектории 14 энтропийного кодирования.In the last alternative, the entropy encoding timing, when entropy encoding of the entropy slices 90 is performed in parallel, is connected to each other more intensively. That is, during the continuation phase 86, the next segment 92 on the current entropy slice line may begin immediately after the end of the corresponding segment of the previous entropy slice that is further downstream of the entropy encoding path 14.

Другими словами, вышеупомянутое обсуждение показывает пример, в котором декодер 40, и в частности, каскад 44 энтропийного кодирования сконфигурирован для выполнения для энтропийного слайса 90, такого как n-й, инициализации его оценок 94 вероятности перед декодированием первого сегмента 92, соответствующего первой единице кодирования/первому блоку 50 из порции 12, соответствующей n-му энтропийному слайсу вдоль соответствующей траектории 14 кодирования, с помощью оценок вероятности, обнаруживающихся после энтропийного декодирования второй единицы кодирования/блока 50 из порции 12, соответствующей порядку 16 энтропийных слайсов, предыдущего энтропийного слайса вдоль соответствующей траектории 14 кодирования. Дополнительно, или альтернативно, декодер 40 и, в частности, каскад 44 энтропийного кодирования, могут конфигурироваться для выполнения для каждого энтропийного слайса 90 энтропийного декодирования и адаптирования оценки вероятности таким образом, что, после того, как текущая часть/блок/единица 50 кодирования текущего энтропийного слайса была энтропийно декодирована, основываясь на соответствующих оценках 94 вероятности из текущего энтропийного слайса 90, соответствующие оценки 94 вероятности из текущего энтропийного слайса адаптируются в зависимости от этой текущей части текущего энтропийного слайса и оценок вероятности, которые обнаруживаются при энтропийном декодировании соседней части/блока/единицы 50 кодирования пространственно соседнего предыдущего энтропийного слайса, такого как слайс в вышеупомянутой соседней строке во втором столбце справа от текущей части/блока/единицы кодирования текущего энтропийного слайса.In other words, the above discussion shows an example in which the decoder 40, and in particular the entropy encoding stage 44, is configured to perform, for an entropy slice 90 such as the nth one, initializing its probability estimates 94 before decoding the first slice 92 corresponding to the first coding unit. /to the first block 50 of chunk 12 corresponding to the n-th entropy slice along the corresponding coding path 14 using probability estimates found after entropy decoding of the second coding unit/block 50 of chunk 12 corresponding to the order of 16 entropy slices of the previous entropy slice along the corresponding trajectory 14 coding. Additionally, or alternatively, the decoder 40, and in particular the entropy encoding stage 44, may be configured to perform, for each entropy slice 90, entropy decoding and adapting the probability estimate such that, after the current coding portion/block/unit 50 of the current entropy slice has been entropy decoded based on the corresponding probability estimates 94 from the current entropy slice 90, the corresponding probability estimates 94 from the current entropy slice are adapted depending on this current part of the current entropy slice and the probability estimates that are found in the entropy decoding of the neighboring part / block / coding units 50 of a spatially adjacent previous entropy slice, such as the slice in the aforementioned adjacent row in the second column to the right of the current portion/block/coding unit of the current entropy slice.

Как стало ясно из вышеупомянутого обсуждения, оценка вероятности должна адаптироваться/управляться для каждого энтропийного слайса 50 отдельно. Это может быть сделано с помощью последовательной обработки энтропийных слайсов и сохранения состояний оценки вероятности в качестве состояний, которые для примера показаны и упомянуты относительно фиг. 4, то есть 96, 98, 100, 110 и 102, на соответствующем запоминающем устройстве 120 оценки вероятности (см. фиг. 1). Альтернативно, больше одного каскада 44 энтропийного кодирования может обеспечиваться для декодирования энтропийных слайсов параллельно. Это иллюстрируется на фиг. 5, где показано множество реализаций каскадов 44 энтропийного кодирования, каждый связан с соответствующим одним из энтропийных слайсов и соответствующими порциями 12 массива 10 выборок, соответственно. Фиг. 5 также иллюстрирует процесс декодирования и его возможные воплощения при использовании параллельных реализаций соответствующего каскада 130 энтропийного декодирования. На каждый каскад 130 энтропийного декодирования подается соответствующий один из энтропийных слайсов, передаваемых через поток 20 данных.As has become clear from the above discussion, the probability estimate must be adapted/managed for each entropy slice 50 separately. This can be done by sequentially processing the entropy slices and storing the probability estimation states as states, which for example are shown and mentioned with respect to FIG. 4, that is, 96, 98, 100, 110, and 102, on the respective probability estimation memory 120 (see FIG. 1). Alternatively, more than one entropy encoding stage 44 may be provided to decode entropy slices in parallel. This is illustrated in FIG. 5, which shows a plurality of implementations of entropy encoding stages 44, each associated with a respective one of the entropy slices and respective portions 12 of an array of 10 samples, respectively. Fig. 5 also illustrates the decoding process and its possible implementations using parallel implementations of the corresponding entropy decoding stage 130. Each entropy decoding stage 130 is provided with a corresponding one of the entropy slices transmitted via the data stream 20 .

Фиг. 5 показывает, что каскады энтропийного кодирования 44 и соответствующие каскады декодирования 130 не работают параллельно полностью независимо друг от друга. Вместо этого сохраненные состояния оценки вероятности, такие как состояния, которые хранятся в запоминающем устройстве 120, передают от одного каскада, соответствующего соответствующему энтропийному слайсу, к другому каскаду, относящемуся к энтропийному слайсу, следующему в соответствии с порядком 16 энтропийных слайсов.Fig. 5 shows that the entropy encoding stages 44 and the corresponding decoding stages 130 do not operate in parallel completely independently of each other. Instead, stored probability estimation states, such as those stored in memory 120, are transferred from one stage corresponding to the corresponding entropy slice to another stage corresponding to the next entropy slice according to the order of 16 entropy slices.

Фиг. 5 показывает в иллюстративных целях также возможный порядок перемещения для перемещения через результаты возможного разделения единиц 50 кодирования, такой как порядок 140 перемещения, определенный среди блоков 52 предсказания в пределах одной единицы 50 кодирования. Для всех этих блоков 52 предсказания соответствующие синтаксические элементы содержатся в пределах соответствующего сегмента 92 и соответствуют значениям этих синтаксических элементов, оценки 94 вероятности адаптируются во время перемещения по траектории 140, причем адаптирование во время перемещения через единицы 50 кодирования определяется вышеупомянутым «T». В CABAC согласно H.264 и HEVC, «T» выполняют, основываясь на таблице, то есть «таблице маршрута», определяющей переходы из текущего состояния оценки вероятности для текущего контекста к следующему состоянию в зависимости от текущего значения символа, связанного с этим контекстом.Fig. 5 also shows, for illustrative purposes, a possible move order for moving through the results of a possible division of coding units 50, such as a move order 140 determined among prediction units 52 within one coding unit 50. For all of these prediction blocks 52, the corresponding syntax elements are contained within the corresponding segment 92 and correspond to the values of these syntax elements, the probability estimates 94 are adapted during movement along the path 140, with the adaptation during movement through the coding units 50 being determined by the aforementioned "T". In CABAC according to H.264 and HEVC, "T" is performed based on a table, i.e. a "route table" defining transitions from the current state of the probability estimate for the current context to the next state depending on the current symbol value associated with that context.

Перед переходом на фиг. 6, которая показывает вариант осуществления декодера, соответствующий варианту осуществления кодера на фиг. 1, нужно отметить, что предсказывающая сущность предварительного кодера 42 служит просто иллюстративным вариантом осуществления. В соответствии даже с альтернативными вариантами осуществления, предварительный кодер 42 может быть оставлен с синтаксическими элементами, с которыми работает каскад 44 энтропийного кодирования, которые являются, например, исходными типовыми значениями массива 10 выборок. Даже альтернативно, предварительный кодер 42 может быть сконфигурирован для формирования разложения поддиапазонов массива 10 выборок, так как в JPEG. Дополнительная сущность средства 72 выбора контекста была уже упомянута выше. То же самое применяется относительно средства инициализации 74. То же самое может реализовываться по-другому.Before going to FIG. 6 which shows an embodiment of a decoder corresponding to the encoder embodiment of FIG. 1, it should be noted that the predictive entity of the precoder 42 is merely an illustrative embodiment. In accordance with even alternative embodiments, the precoder 42 may be left with the syntax elements that the entropy encoding stage 44 operates on, which are, for example, the original sample values of the array 10 of samples. Even alternatively, the precoder 42 may be configured to generate a subband decomposition of the 10 sample array, as in JPEG. The additional nature of the context selector 72 has already been mentioned above. The same applies to the initialization means 74. The same can be implemented differently.

Фиг. 6 показывает декодер 200, соответствующий кодеру 40 на фиг. 1. Из фиг. 6 видно, что конструкция декодера 200 по существу отражает конструкцию кодера 40. То есть декодер 200 содержит вход 202 для приема потока 20 данных, за которым следует последовательное соединение каскада 204 энтропийного декодирования и средства 206 создания. Каскад 204 энтропийного декодирования энтропийно декодирует энтропийные слайсы, переданные в потоке 20 данных, и направляет, в свою очередь, декодированные символы si и синтаксические элементы, соответственно, к средству 206 создания, которое, в свою очередь, запрашивает синтаксические элементы от каскада 204 энтропийного декодирования с помощью соответствующего запроса 208. Другими словами, средство 206 создания также отвечает за анализ потока синтаксических элементов, созданного предварительным кодером 42 в пределах кодера. Соответственно, средство 206 создания запрашивает последовательно синтаксические элементы из каскада 204 энтропийного декодирования. Каскад 204 энтропийного декодирования имеет по существу такую же структуру, как каскад 44 энтропийного кодирования. Соответственно, те же самые ссылочные знаки внутренних блоков каскада 204 энтропийного декодирования снова используются. Средство 70 представления в символьной форме, если представлено, преобразовывает запросы синтаксических элементов в запросы символов, и ядро 80 энтропийного декодирования отвечает соответствующим значением символа si, средство 70 представления в символьной форме отображает последовательности принятых символов, формирующих действительные слова символов, с синтаксическими элементами, и направляет их к средству 206 создания. Средство 206 создания восстанавливает массив 10 выборок из потока синтаксических элементов, принятого от каскада 204 энтропийного декодирования, такого, который изложен выше, используя декодирование с предсказанием, и т.д. Точнее, средство 206 создания также использует порядок 66 кодирования и выполняет декодирование по единицам кодирования с выполнением предсказания 60, 62 и 64. Одно или большее количество предсказаний для синтаксических элементов или для значений выборок объединяются, например, суммируются, при желании с помощью использования остатка предсказания, полученного из синтаксических элементов потока синтаксических элементов. Ядро 80 энтропийного декодирования, а также ядро 80 энтропийного кодирования поддерживает концепцию арифметического декодирования или концепцию энтропийного декодирования с разделением интервала вероятности. В случае арифметического декодирования ядро 80 энтропийного декодирования может непрерывно обновлять внутреннее состояние в форме частичного значения ширины интервала и такого значения, как значение смещения, указывающее на этот частичный интервал. Обновление выполняют, используя прибывающий поток данных. Текущий частичный интервал подразделяют аналогично ядру 80 энтропийного кодирования, используя оценку pi вероятности, обеспеченную для каждого символа si посредством средства 72 выбора контекста наряду со средством 76 управления оценкой вероятности. Средство 78 адаптирования выполняет адаптирование оценки вероятности, используя значение si декодированного символа для обновления значений pi оценки вероятности контекста ci, связанного с символом si, с помощью средства 72 выбора контекста. Инициализация с помощью средства 74 инициализации выполняется в тех же самых реализациях и таким же образом, как на стороне кодирования.Fig. 6 shows a decoder 200 corresponding to encoder 40 in FIG. 1. From FIG. 6, the design of decoder 200 essentially mirrors that of encoder 40. That is, decoder 200 includes an input 202 for receiving data stream 20, followed by a serial connection of entropy decoding stage 204 and creator 206. The entropy decoding stage 204 entropy decodes the entropy slices transmitted in the data stream 20 and sends, in turn, the decoded symbols si and syntax elements, respectively, to the creator 206, which in turn requests the syntax elements from the entropy decoding stage 204 with the appropriate request 208. In other words, the creator 206 is also responsible for parsing the stream of syntax elements created by the precoder 42 in within the encoder. Accordingly, the creator 206 queries the syntax elements sequentially from the entropy decoding stage 204 . Entropy decoding stage 204 has essentially the same structure as entropy encoding stage 44 . Accordingly, the same reference characters of the internal blocks of the entropy decoding stage 204 are used again. Symbolizer 70, if present, converts requests for syntax elements into requests for symbols, and entropy decoding engine 80 responds with the corresponding symbol value si, the character representer 70 maps the received character sequences forming valid character words with syntax elements and forwards them to the creator 206 . Creator 206 reconstructs an array 10 of samples from the stream of syntax elements received from entropy decoding stage 204, such as described above, using predictive decoding, and so on. More specifically, creator 206 also uses coding order 66 and performs decoding on coding units to perform predictions 60, 62, and 64. One or more predictions for syntax elements or for sample values are combined, e.g., summed, optionally using the prediction residual , obtained from the syntax elements of the stream of syntax elements. The entropy decoding core 80 as well as the entropy encoding core 80 support the concept of arithmetic decoding or the concept of probability division entropy decoding. In the case of arithmetic decoding, the entropy decoding core 80 may continuously update an internal state in the form of a partial interval width value and a value such as an offset value indicating that partial interval. The update is performed using the incoming data stream. The current partial interval is subdivided similarly to the entropy encoding kernel 80 using the estimate pi probability provided for each character si through a context selector 72 along with a probability estimation control 76 . The adaptation means 78 performs adaptation of the probability estimate using the value of si decoded character to update p valuesi context probability estimates ci, associated with the symbol si, using the context selector 72 . Initialization with the initializer 74 is performed in the same implementations and in the same manner as on the encoding side.

Декодер на фиг. 6 работает аналогично функционированию кодера, который описан выше относительно фиг. 3. На этапе 230 массив 10 выборок подразделяют на энтропийные слайсы. См., например, фиг. 8. Фиг. 8 показывает поток 20 данных, который прибывает на вход 202 и, в частности, энтропийные слайсы 90, содержащиеся в нем. На этапе 230 каждый из этих энтропийных слайсов 90 связывают с порцией 12, данный соответствующий энтропийный слайс 90 связывают таким образом, чтобы могли выполняться вышеописанные инициализация оценки вероятности и адаптирование оценки вероятности, основываясь на соответствующем предыдущем энтропийном слайсе. Подразделение массива выборок, или точнее, связывание энтропийных слайсов 90 с соответствующими им порциями 12, может выполняться с помощью средства 206 создания. Связывание может обеспечиваться с помощью различных мер, таких как побочная информация, содержащаяся в потоке 20 данных в не энтропийно кодированных порциях, или по определению.The decoder in Fig. 6 operates similarly to the operation of the encoder as described above with respect to FIG. 3. In step 230, the sample array 10 is subdivided into entropy slices. See, for example, FIG. 8. FIG. 8 shows the data stream 20 that arrives at the input 202 and in particular the entropy slices 90 contained therein. At step 230, each of these entropy slices 90 is associated with chunk 12, this corresponding entropy slice 90 is associated so that the above-described initialization of the probability estimate and adaptation of the probability estimate based on the corresponding previous entropy slice can be performed. Subdivision of the array of samples, or more precisely, the association of entropy slices 90 with their respective portions 12, can be performed using the creation tool 206 . Linking can be provided by various measures, such as side information contained in the data stream 20 in non-entropy coded chunks, or by definition.

Энтропийные слайсы 90 затем в процессе энтропийного декодирования 232 энтропийно декодируют способом, который отражает обработку 82 кодирования, а именно, с выполнением для каждого энтропийного слайса 90 начальной фазы 234 и фазы 236 продолжения с инициализацией оценки вероятности и адаптированием тем же способом и в тех же самых реализациях, как в процедуре кодирования.The entropy slices 90 are then entropy decoded in the entropy decoding process 232 in a manner that reflects the encoding processing 82, namely, performing for each entropy slice 90 an initial phase 234 and a continuation phase 236 with initialization of the probability estimate and adaptation in the same manner and in the same implementations, as in the coding procedure.

Та же самая параллелизация, которая описана выше относительно кодирования, возможна на стороне декодирования. Реализации 130 каскада энтропийного декодирования, показанные на фиг. 5, могут каждая воплощаться, как показано относительно каскада 204 энтропийного декодирования на фиг. 6. Запоминающее устройство 240 оценки вероятности может использоваться для сохранения состояния оценок вероятности для использования в каскаде 130 энтропийного декодирования, отвечающем за энтропийное декодирование последующего энтропийного слайса по порядку 16 энтропийного кодирования.The same parallelization as described above with respect to encoding is possible on the decoding side. The entropy decoding stage implementations 130 shown in FIG. 5 may each be implemented as shown with respect to the entropy decoding stage 204 in FIG. 6. The probability estimate memory 240 may be used to store the state of the probability estimates for use in the entropy decoding stage 130 responsible for entropy decoding a subsequent entropy slice in order 16 entropy encoding.

После описания вариантов осуществления настоящей заявки обсуждаемые концепции описываются далее, снова используя другую формулировку. В дальнейшем описаны несколько дополнительных аспектов настоящей заявки. В последующем вышеупомянутые единицы 50 кодирования называют LCU (наибольшей единицей кодирования), таким образом адаптируя формулировку к перспективному стандарту HEVC.After describing the embodiments of the present application, the discussed concepts are described below, again using different wording. In the following, several additional aspects of the present application are described. In the following, the above-mentioned coding units 50 are referred to as LCU (largest coding unit), thus adapting the wording to the future HEVC standard.

Сначала рассмотренное выше адаптирование 106 вероятности кратко обсуждается снова относительно фиг. 9.First, the probability adaptation 106 discussed above is briefly discussed again with respect to FIG. nine.

Текущая LCU использует оценки вероятности, такие как вероятности CABAC, доступные после кодирования предыдущей левой LCU. Например, LCU на фиг. 9, обозначенную x, как предполагается, энтропийно кодируют, используя оценку p1 вероятности, которая адаптирована до завершения энтропийного кодирования левосторонних LCU слева от LCU x. Однако, если информация используется не только от левой, но также и от одной или большего количества других LCU, которые уже обработаны и доступны, то могут обеспечиваться лучшие результаты при адаптировании вероятности.The current LCU uses probability estimates, such as CABAC probabilities, available after encoding the previous left LCU. For example, the LCU in FIG. 9, labeled x, is assumed to be entropy encoded using a probability estimate p 1 that is adapted to complete the entropy encoding of the left-hand LCUs to the left of LCU x. However, if information is used not only from the left, but also from one or more other LCUs that are already processed and available, then better results in probability adaptation can be provided.

Как описано выше, при энтропийном декодировании и энтропийном кодировании энтропийных слайсов новые оценки вероятности вычисляются перед кодированием или декодированием каждой LCU с помощью уже существующих вероятностей (оценок вероятности) от других LCU. Точнее, адаптирование вероятности выполняется не только от любых предшествующих LCU текущего энтропийного слайса, но также и от LCU энтропийных слайсов, предшествующих по порядку энтропийных слайсов. Этот подход снова представлен на фиг. 9. Начальная вероятность текущей LCU, которая обозначена X на фиг. 9, может вычисляться соответственно:As described above, in entropy decoding and entropy coding of entropy slices, new probability estimates are computed before each LCU is coded or decoded using already existing probabilities (probability estimates) from other LCUs. More specifically, the probability adaptation is performed not only from any preceding LCUs of the current entropy slice, but also from LCUs of entropy slices preceding in order the entropy slices. This approach is again shown in Fig. 9. The initial probability of the current LCU, which is denoted by X in FIG. 9 can be calculated accordingly:

Figure 00000001
Figure 00000001

где a1, ..., ak являются коэффициентами взвешивания LCU.where a 1 , ..., a k are the weighting factors of the LCU.

Протестировано, какое взвешивание вероятностей обеспечивает лучшие результаты. В данном эксперименте использовались только соседние LCU. Исследование показывает использование взвешивания: 75% от левой LCU и 25% от верхней правой LCU. На фиг. 10-13 представлены результаты. Графики, озаглавленные, используя «prob. Adapt.», используют описанное выше адаптирование вероятности.Tested which probability weighting provides the best results. In this experiment, only neighboring LCUs were used. The study shows the use of weighting: 75% of the left LCU and 25% of the upper right LCU. In FIG. 10-13 show the results. Graphs titled using "prob. Adapt., use the probability adaptation described above.

Однако, при адаптировании оценки вероятности могут использоваться не только смежные блоки. У каждой ближайшей LCU есть собственные соседи, использование которых для оптимизации вероятности может быть существенным. Другими словами, могут применяться не только LCU из ближайшей верхней строки. На фиг. 9 можно видеть пример, в котором в качестве источников оценок вероятности были взяты сначала соседи и могут быть взяты каждая верхняя правая LCU каждой следующей верхней строки, сравни p5 и pk.However, when adapting the probability estimate, more than just adjacent blocks may be used. Each nearest LCU has its own neighbors, the use of which for probability optimization can be essential. In other words, not only the LCUs from the nearest upper row can be applied. In FIG. 9, an example can be seen in which the neighbors were taken as sources of probability estimates first, and each upper right LCU of each next upper row can be taken, compare p 5 and p k .

Нужно признать, что некоторая сложность введена с помощью вышеизложенного повторного вычисления вероятности или адаптирования оценки вероятности. Новое вычисление оценки вероятности происходит, например, в три этапа: сначала, оценки вероятности каждого кандидата должны быть получены от каждого состояния контекста. Это делают с помощью сохранения на запоминающем устройстве 120 и 240, соответственно, или с помощью направления параллельных обработок декодирования энтропийного слайса n таким образом, что эти состояния доступны одновременно. Затем, при использовании уравнения (1), будет создаваться оптимизированная вероятность (pnew). То есть некоторое усреднение, например, может использоваться для объединения адаптированных оценок вероятности различных энтропийных слайсов. В качестве последнего этапа новое состояние контекста преобразовывается из pnew и заменяет старое. То есть средство 76 управления оценкой вероятности заимствует новые оценки вероятности, полученные таким образом. Это выполнение для каждого синтаксического элемента, в частности, используя операции умножения, может чрезвычайно увеличивать сложность. Единственным способом устранения этого недостатка является попытка избежать этих трех этапов. Если количество кандидатов и их весовые коэффициенты определены, то предварительно рассчитанная таблица может аппроксимироваться для каждой ситуации. Таким образом необходим только один простой доступ к данным таблицы с помощью индексов кандидатов (состояний контекста).It must be recognized that some complexity is introduced by the above recalculation of the probability or adaptation of the probability estimate. The new calculation of the probability score occurs, for example, in three steps: first, the probability estimates of each candidate must be obtained from each state of the context. This is done by storing to memory 120 and 240, respectively, or by directing parallel entropy slice n decoding processes such that these states are available simultaneously. Then, using equation (1), an optimized probability (p new ) will be created. That is, some averaging, for example, can be used to combine the adapted probability estimates of different entropy slices. As a final step, the new context state is converted from p new and replaces the old one. That is, the probability estimate control means 76 borrows the new probability estimates thus obtained. This execution for each syntactic element, in particular using multiplication operations, can increase complexity tremendously. The only way to eliminate this shortcoming is to try to avoid these three steps. If the number of candidates and their weights are defined, then a pre-calculated table can be approximated for each situation. Thus, only one simple access to the table data is needed using candidate indexes (context states).

Утверждается, что эта методика может обеспечивать хорошие результаты для обоих применений - с использованием и без использования энтропийных слайсов. Первое применение использует только один слайс в кадре, таким образом адаптирование вероятности оптимизировано без каких-либо других изменений. В случае энтропийных слайсов адаптирование вероятностей происходит в пределах каждого слайса, независимо от других слайсов. Это учитывает быстрое изучение вероятностей текущей LCU.It is claimed that this technique can provide good results for both applications - with and without the use of entropy slices. The first application uses only one slice per frame, so the probability adaptation is optimized without any other changes. In the case of entropy slices, the adaptation of probabilities occurs within each slice, independently of other slices. This allows for a quick learning of the probabilities of the current LCU.

В вышеупомянутом описании также представлено использование второй LCU верхней линии, то есть использование второй LCU для инициализации оценки вероятности. Параллелизация кодирования и декодирования возможна, если обеспечиваются некоторые условия битового потока, которые упомянуты выше (энтропийных слайсов). Зависимость вероятностей CABAC между LCU должна быть устранена. Волновая параллельная обработка важна, чтобы сделать первую LCU каждой линии независимой от последней LCU предыдущей линии. Это может обеспечиваться, если, например, вероятности CABAC повторно инициализируются в начале каждой линии LCU. Однако, этот способ не оптимален, потому что каждая повторная инициализация теряет обеспеченные вероятности CABAC, которые адаптированы к специфическим особенностям изображения. Этот недостаток можно уменьшать, если инициализация вероятностей CABAC первой LCU каждой линии происходит с помощью вероятностей, полученных после второй LCU предыдущей линии.The above description also presents the use of the second LCU of the top line, that is, the use of the second LCU to initialize the probability estimate. Parallelization of encoding and decoding is possible if some of the bitstream conditions mentioned above (entropy slices) are provided. The dependency of CABAC probabilities between LCUs must be eliminated. Wave parallel processing is important to make the first LCU of each line independent of the last LCU of the previous line. This can be achieved if, for example, the CABAC probabilities are reinitialized at the start of each LCU line. However, this method is not optimal because each reinitialization loses the provided CABAC probabilities that are adapted to the specifics of the image. This drawback can be mitigated if the initialization of the CABAC probabilities of the first LCU of each link is done with the probabilities obtained after the second LCU of the previous link.

Как описано выше, увеличение скорости адаптирования вероятности может обеспечиваться с помощью соединения адаптирования вероятностей пространственно соседних энтропийных слайсов. В частности, другими словами, приведенное выше обсуждение также предвосхищает декодер, такой как декодер на фиг. 6, для восстановления массива (10) выборок из энтропийно закодированного потока данных, сконфигурированный для энтропийного декодирования (выполняемого с помощью каскада энтропийного декодирования) множества энтропийных слайсов в потоке данных энтропийного кодера для восстановления различных порций (12) массива выборок, связанных с энтропийными последовательностями, соответственно, с помощью выполнения для каждого энтропийного слайса энтропийного декодирования вдоль соответствующей траектории (14) энтропийного кодирования, используя соответствующие оценки вероятности, адаптирования (выполняемого с помощью средства 78 адаптирования) соответствующих оценок вероятности вдоль соответствующей траектории энтропийного кодирования, используя ранее декодированную часть соответствующего энтропийного слайса, запуска энтропийного декодирования множества энтропийных слайсов последовательно, используя порядок (16) энтропийных слайсов, и выполнения при энтропийном декодировании предопределенного энтропийного слайса энтропийного декодирования текущей части (x) предопределенного энтропийного слайса, основываясь на соответствующих оценках вероятности предопределенного энтропийного слайса, которые адаптируются, используя ранее декодированную часть предопределенного энтропийного слайса (включающего в себя p1, например), и оценках вероятности, которые используются при энтропийном декодировании пространственно соседнего, по порядку энтропийных слайсов предыдущего энтропийного слайса (слайса, содержащего X, например) в соседней части (такой как p4) пространственно соседнего энтропийного слайса.As described above, an increase in the probability adaptation rate can be achieved by connecting the probability adaptation of spatially adjacent entropy slices. In particular, in other words, the above discussion also anticipates a decoder such as the decoder in FIG. 6, for recovering an array (10) of samples from an entropy encoded data stream, configured to entropy decode (performed by an entropy decoding stage) a plurality of entropy slices in an entropy encoder data stream to recover different portions (12) of an array of samples associated with entropy sequences, respectively, by performing, for each entropy slice, entropy decoding along the corresponding entropy encoding trajectory (14) using the corresponding probability estimates, adapting (performed by adaptation means 78) the corresponding probability estimates along the corresponding entropy encoding trajectory, using the previously decoded part of the corresponding entropy coding slice , run entropy decoding of a plurality of entropy slices sequentially using the order (16) of entropy slices, and entropy decode a predefined entr opium slice of entropy decoding the current part (x) of the predefined entropy slice, based on the respective probability estimates of the predefined entropy slice, which are adapted using the previously decoded part of the predefined entropy slice (including p1, for example), and the probability estimates that are used in entropy decoding spatially neighboring, in the order of entropy slices, of the previous entropy slice (the slice containing X, for example) in a neighboring part (such as p4) of the spatially neighboring entropy slice.

Различные порции могут быть строками блоков (например, LCU или макроблоков) массива выборок. Последний может быть видео. Траектория энтропийного кодирования может распространяться по строкам. Энтропийное кодирование, и таким образом также адаптирование вероятности, может адаптироваться к контексту. Порядок энтропийных слайсов может в общем случае выбираться таким образом, чтобы по порядку энтропийных слайсов различные порции следовали друг за другом в направлении (16), повернутом относительно траекторий (14) энтропийного кодирования энтропийных слайсов, которые, в свою очередь, распространяются по существу параллельно друг другу. С помощью этих мер «волна» в настоящее время декодируемых частей (таких как p1, p4, p5+1 и pk на данной фигуре) энтропийных слайсов может в общем случае располагаться вдоль линии, формирующей угол к направлению энтропийного слайса, который меньше, чем направление последовательности порций. Волне, вероятно, придется иметь наклон 1y на 2x для положений блока для того, чтобы верхний левый опорный элемент всегда был там для всех потоков, обрабатывающих слайсы параллельно.The various chunks may be rows of blocks (eg, LCUs or macroblocks) of the array of samples. The last one could be video. The entropy encoding trajectory can propagate across lines. Entropy encoding, and thus also probability adaptation, can be adapted to the context. The order of the entropy slices can generally be chosen such that, in the order of the entropy slices, the different chunks follow each other in a direction (16) rotated about the entropy encoding paths (14) of the entropy slices, which in turn propagate substantially parallel to each other. friend. With these measures, the "wave" of currently decodable portions (such as p1, p4, p5+1, and pk in this figure) of entropy slices can generally be along a line forming an angle to the direction of the entropy slice that is less than the direction portion sequences. The wave will probably have to have a 1y by 2x slope for block positions in order for the top left pivot to always be there for all threads processing slices in parallel.

Декодер может быть сконфигурирован для выполнения для каждого энтропийного слайса энтропийного декодирования вдоль соответствующей траектории энтропийного кодирования в единицах частей порции массива выборок соответствующего энтропийного слайса так, чтобы энтропийные слайсы состояли из одного и того же количества частей, соответственно, и последовательность частей порций вдоль траекторий энтропийного слайса была выровнена друг относительно друга в направлении, поперечном к траекториям энтропийного слайса. Текущая часть порции предопределенного энтропийного слайса принадлежит результирующей сетке из частей (например, LCU или макроблоков). При выполнении для каждого энтропийного слайса энтропийного декодирования вдоль соответствующей траектории энтропийного кодирования, декодер может сохранять смещения/сдвиги между начальными временами между непосредственно следующими друг за другом энтропийными слайсами по порядку энтропийных слайсов так, чтобы волна в настоящее время декодируемых частей энтропийных слайсов формировала диагональ, такую как соответствующая линии с наклоном положений блоков 0,5x по отношению к траектории энтропийного слайса и направлению по порядку энтропийных слайсов. Смещение/сдвиг могут соответствовать двум частям для всех пар непосредственно следующих друг за другом энтропийных слайсов. Альтернативно, декодер может просто не допускать, чтобы расстояние между в настоящее время декодируемыми частями непосредственно следующих друг за другом (и непосредственно граничащих, пока рассматривают их порции 12 массива выборок) энтропийных слайсов стало меньше двух частей. См., фигуру выше: как только часть/блок p4 декодирована, часть/блок справа от нее декодируется согласно порядку 16 траекторий, и одновременно, если имеется, X декодируется или любая из предшествующих частей/блоков). С помощью этих мер декодер может использовать оценки вероятности, которые уже адаптированы, основываясь на содержимом части/блока p4, то есть части в пределах пространственно соседней порции, выровненной к части порции 12 предопределенного энтропийного слайса, следующей за текущей частью X по порядку 16 траекторий для определения оценок вероятности, которые будут использоваться при декодировании X. В случае постоянного смещения при декодировании непосредственно следующих друг за другом энтропийных слайсов двух частей, декодер имеет возможность использовать оценки вероятности, которые уже адаптированы, основываясь на содержимом части/блока p4 одновременно для энтропийного декодирования последующей части (то есть части справа от p4) пространственно соседнего энтропийного слайса.The decoder may be configured to perform, for each entropy slice, entropy decoding along the corresponding entropy encoding trajectory, in units of portions of a portion of an array of samples of the corresponding entropy slice, so that the entropy slices consist of the same number of portions, respectively, and the sequence of portions of the portions along the trajectories of the entropy slice was aligned relative to each other in the direction transverse to the trajectories of the entropy slice. The current part of a portion of a predefined entropy slice belongs to the resulting grid of parts (eg, LCUs or macroblocks). When performing entropy decoding for each entropy slice along the corresponding entropy encoding path, the decoder may store offsets/shifts between start times between immediately consecutive entropy slices in entropy slice order such that the wave of the currently decoded portions of the entropy slices forms a diagonal such as a corresponding line with a 0.5x block position slope with respect to the entropy slice trajectory and direction along the order of the entropy slices. Offset/shift may correspond to two parts for all pairs of immediately consecutive entropy slices. Alternatively, the decoder may simply prevent the distance between currently decodable portions of immediately consecutive (and immediately adjacent, as long as their sample array portions 12 are considered) entropy slices from becoming less than two portions. See the figure above: once the part/block p4 is decoded, the part/block to the right of it is decoded according to the order of 16 paths, and at the same time, if any, X or any of the preceding parts/blocks is decoded). With these measures, the decoder can use probability estimates that are already adapted based on the contents of the part/block p4, i.e. the part within a spatially adjacent chunk aligned to the part of chunk 12 of the predefined entropy slice following the current part X in the order of 16 trajectories for determining the probability estimates to be used in decoding X. In the case of a constant bias when decoding immediately consecutive entropy slices of two parts, the decoder is able to use the probability estimates that are already adapted based on the contents of the part/block p4 simultaneously to entropy decode the subsequent part (that is, the part to the right of p4) of a spatially adjacent entropy slice.

Как описано выше, взвешенное суммирование уже адаптированных оценок вероятности может использоваться для определения оценок вероятности, которые будут использоваться для декодирования X.As described above, a weighted sum of already adapted probability estimates may be used to determine the probability estimates to be used to decode X.

Как также описано выше, порядок энтропийных слайсов может также проходить через границы кадра.As also described above, the order of entropy slices may also extend across frame boundaries.

Нужно отметить, что только что изложенное заимствование вероятности из предшествующих энтропийных слайсов может выполняться для каждой части текущего/предопределенного энтропийного слайса, для которого доступны такие соседние части в предшествующих энтропийных слайсах. То есть это также верно для первой части вдоль направления 16 траектории, и для этой самой первой части/блока (крайней левой в каждом энтропийном слайсе на данной фигуре) заимствование равняется описанной выше инициализации.It should be noted that the borrowing of probability from previous entropy slices just described can be performed for each part of the current/predefined entropy slice for which such neighboring parts are available in the previous entropy slices. That is, it is also true for the first part along the trajectory direction 16, and for this very first part/block (leftmost in each entropy slice in this figure), the borrow equals the initialization described above.

Для лучшего адаптирования, также в этом случае, 2 вышеупомянутых способа могут также объединяться вместе. Результаты этого процесса с 1 и 4 потоками, то есть параллельно используя единицы обработки, иллюстрируются на фиг. 10 - фиг. 13 (графики 2LCU+Prob.Adap или 2LCU).For better adaptation, also in this case, the 2 above methods can also be combined together. The results of this process with 1 and 4 threads, i.e. using processing units in parallel, are illustrated in FIG. 10 - fig. 13 (plots 2LCU+Prob.Adap or 2LCU).

Для лучшего понимания контекста вышеупомянутых вариантов осуществления и, в частности, описанных ниже дополнительных вариантов осуществления, а именно - использование LCU, можно сначала взглянуть на структуру H.264/AVC.To better understand the context of the above embodiments, and in particular the additional embodiments described below, namely the use of an LCU, one may first look at the H.264/AVC structure.

Кодированная видео последовательность в H.264/AVC состоит из последовательности единиц доступа, которые собраны в потоке единиц NAL, и они используют только один набор параметров последовательности. Каждая видео последовательность может декодироваться независимо. Кодированная последовательность состоит из последовательности кодированных изображений. Кодированный кадр может быть всем кадром или одним полем. Каждое изображение делится на макроблоки фиксированного размера (в HEVC: LCU). Несколько макроблоков или LCU могут объединяться вместе в один слайс. Изображение поэтому является совокупностью из одного или большего количества слайсов. Цель этого разделения данных состоит в предоставлении возможности независимого декодирования выборок в области изображения, которая представлена данным слайсом, без использования данных от других слайсов.An encoded video sequence in H.264/AVC consists of a sequence of access units that are assembled in a stream of NAL units, and they use only one set of sequence parameters. Each video sequence can be decoded independently. An encoded sequence consists of a sequence of encoded pictures. The encoded frame may be the entire frame or one field. Each image is divided into macroblocks of a fixed size (in HEVC: LCU). Several macroblocks or LCUs may be combined together into one slice. The image is therefore a collection of one or more slices. The purpose of this data partitioning is to allow independent decoding of the samples in the region of the image that is represented by a given slice, without using data from other slices.

Методика, которую также часто называют «энтропийные слайсы», является делением традиционного слайса на дополнительные подслайсы. В частности, это означает разделение энтропийно кодированных данных одного слайса. Расположение энтропийных слайсов в слайсе может иметь различные разновидности. Самой простой разновидностью является использование каждой строки LCU/макроблоков в кадре в качестве одного энтропийного слайса. Альтернативно, столбцы или отдельные области могут использоваться в качестве энтропийных слайсов, которые даже могут прерываться и переключаться друг с другом, например, как слайс 1 на фиг. 14.A technique that is also often referred to as "entropy slices" is the division of a traditional slice into additional subslices. In particular, this means splitting the entropy encoded data of one slice. The arrangement of entropy slices in a slice can have different varieties. The simplest variation is to use each row of LCUs/macroblocks in a frame as one entropy slice. Alternatively, columns or individual areas can be used as entropy slices, which can even be interrupted and switched with each other, such as slice 1 in FIG. fourteen.

Очевидная цель концепции энтропийного слайса состоит в предоставлении возможности параллельного использования CPU/GPU и мультиядерной архитектуры для улучшения времени процесса декодирования, то есть для ускорения процесса. Текущий слайс может делиться на разделы, которые могут анализироваться и восстанавливаться независимо от других данных слайса. Хотя некоторые преимущества могут обеспечиваться с помощью подхода энтропийного слайса, в связи с этим появляются некоторые недостатки.The obvious purpose of the entropy slice concept is to enable parallel use of the CPU/GPU and multi-core architecture to improve the time of the decoding process, that is, to speed up the process. The current slice can be divided into partitions that can be parsed and reconstructed independently of other slice data. While some advantages may be provided by the entropy slice approach, there are some disadvantages associated with this.

Прежде всего, главная цель состоит в создании битового потока, который подходит для процесса параллельного кодирования и декодирования. Нужно учитывать, что LCU можно кодировать, только если соседние LCU (левая, верхняя, верхняя-правая) уже доступны в качестве закодированной версии для использования пространственной информации и информации о движении для предсказания. Чтобы предоставить возможность параллелизма с помощью разделения, должен реализовываться сдвиг между обработкой слайсов (например, сдвиг на 2 LCU, который является типичным для волнового подхода). Из-за адаптирования вероятностей CABAC, LCU использует вероятности, которые доступны от предыдущей закодированной LCU. В отношении порядка растрового сканирования проблемой, которая возникает с помощью разделения изображения, является недопущение параллелизма, так как первая LCU каждой линии зависит от последней LCU предыдущей линии. На это воздействует то, что зависимости вероятностей CABAC между слайсами необходимо убирать, так, чтобы несколько слайсов могли начинаться одновременно. Одним способом сделать это является обычная повторная инициализация CABAC, посредством чего, однако, все заимствованные данные будут потеряны. В результате битрейт может увеличиваться.First of all, the main goal is to create a bitstream that is suitable for a parallel encoding and decoding process. It should be appreciated that LCUs can only be encoded if neighboring LCUs (left, top, top-right) are already available as a coded version to use spatial and motion information for prediction. In order to enable parallelism with partitioning, a shift between slice processing must be implemented (eg, a shift of 2 LCUs, which is typical of the wave approach). Due to the adaptation of the CABAC probabilities, the LCU uses the probabilities that are available from the previous encoded LCU. With regard to the raster scan order, a problem that arises with image splitting is avoidance of parallelism, since the first LCU of each line depends on the last LCU of the previous line. This is affected by the fact that dependencies of CABAC probabilities between slices need to be removed so that several slices can start at the same time. One way to do this is to simply re-initialize CABAC, whereby, however, all borrowed data will be lost. As a result, the bitrate may increase.

Затем каждый слайс генерирует свой собственный битовый субпоток, который может помещаться последовательно в главный поток. Но необходимо передавать в декодер специальную информацию, так, чтобы эти слайсы и их положения в главном потоке могли правильно идентифицироваться. Поддерживаются два сценария сигнализации. Информация расположения может храниться в заголовке изображения (информация длины слайса) или в каждом заголовке слайса (точки, как начало кода). Выравнивание байта в конце каждого энтропийного слайса и информация расположения увеличивают потери.Each slice then generates its own sub-bit stream, which can be placed sequentially into the main stream. But it is necessary to pass special information to the decoder so that these slices and their positions in the main stream can be correctly identified. Two signaling scenarios are supported. The location information may be stored in the image header (slice length information) or in each slice header (dots as code start). The byte alignment at the end of each entropy slice and location information increase the overhead.

Для устранения недостатков, введенных сигнализацией для энтропийных слайсов, важно использовать хорошую методику кодирования для сигнализации. Значимый недостаток сигнализации энтропийного слайса вводится в кадр, если начальные коды используются для каждого слайса, то есть слишком много дополнительных байтов (например, минимум 4 байта на слайс) добавляется к битовому потоку. Конечно, вставка энтропийных слайсов 90, используя начальные коды, имеет преимущество в сценариях с низкой задержкой, где кодер должен иметь возможность мгновенно выводить энтропийные слайсы. В таких случаях нет никакой возможности предварительной передачи информации точки входа.To overcome the shortcomings introduced by signaling for entropy slices, it is important to use a good coding technique for signaling. A significant lack of entropy slice signaling is introduced into the frame if start codes are used for each slice, i.e. too many extra bytes (eg, a minimum of 4 bytes per slice) are added to the bitstream. Of course, inserting entropy slices 90 using seed codes has an advantage in low latency scenarios where the encoder needs to be able to output the entropy slices instantly. In such cases, there is no possibility of forwarding entry point information.

В менее строгих сценариях с низкой задержкой, однако, возможность сохранения длины слайса (смещений) кажется более подходящей. Одним известным способом кодирования такой информации является кодирование с переменной длиной кода (VLC) или экспоненциальное кодирование Голомба. Главной особенностью VLC является добавление пустой информации (нолей) перед реальной информацией. С помощью этих нолей может определяться код, который хранит информацию о длине смещения. Авторы предлагают другую методику для реализации этого, схема которой показана на фиг. 15, где =EntropySliceSize - количество байтов, содержащихся в энтропийном слайсе. Каждое следующее X (смещение) определяется как разность в размере между предыдущим уже закодированным и переданным смещением энтропийного слайса и текущим слайсом. Главные особенности этой концепции формируются из разностных значений, в зависимости от размера X, таким образом количество данных может уменьшаться и составлять 3 бита, что предоставляет возможность извлекать точную информацию о размере каждого энтропийного слайса с помощью декодера. По сравнению с VLC может быть получена экономия количества битов в заголовке энтропийного слайса.In less stringent low latency scenarios, however, the ability to store slice lengths (offsets) seems more appropriate. One known method for encoding such information is variable length coding (VLC) or Exponential Golomb coding. The main feature of VLC is the addition of empty information (zeroes) before the real information. With these zeros, code can be defined that stores information about the length of the offset. The authors propose another technique for doing this, the schematic of which is shown in FIG. 15, where =EntropySliceSize is the number of bytes contained in the entropy slice. Each subsequent X (offset) is defined as the difference in size between the previous already encoded and transmitted entropy slice offset and the current slice. The main features of this concept are formed from the difference values, depending on the size of X, so the amount of data can be reduced to 3 bits, which makes it possible to extract accurate information about the size of each entropy slice using a decoder. Compared to VLC, savings in the number of bits in the entropy slice header can be obtained.

То есть, в соответствии с аспектом фиг. 15, например, обеспечивается концепция энтропийного кодирования информационного сигнала, которая предоставляет возможность более высокой степени сжатия, несмотря на возможность параллельную обработки, по сравнению с доступными в настоящее время концепциями. В соответствии с этим аспектом, энтропийно кодированная секция 20 потока данных, в который кодируется массив выборок, содержит энтропийные слайсы, такие как 90 на фиг. 8, в которые различные порции 12 массива выборок энтропийно кодируются, и заголовок, иллюстрированный пунктирными линиями 300 на фиг. 9, содержит информацию, которая показывает начальные позиции 302 энтропийных слайсов 90, измеренные в области энтропийного декодирования, в пределах энтропийно закодированного потока данных, данная информация содержит для предопределенного энтропийного слайса разностное значение, раскрывающее разность между начальной позицией предыдущего энтропийного слайса n-1 и начальной позицией предопределенного энтропийного слайса n, поток данных включает в себя данные разностные значения, как последовательность битов VLC.That is, in accordance with the aspect of FIG. 15, for example, provides the concept of entropy encoding of the information signal, which allows a higher degree of compression, despite the possibility of parallel processing, compared to currently available concepts. In accordance with this aspect, the entropy encoded section 20 of the data stream into which the array of samples is encoded contains entropy slices such as 90 in FIG. 8 into which the various chunks 12 of the sample array are entropy encoded, and the header illustrated by dotted lines 300 in FIG. 9 contains information that shows the starting positions 302 of the entropy slices 90 measured in the entropy decoding region within the entropy encoded data stream, this information contains, for a predetermined entropy slice, a difference value revealing the difference between the starting position of the previous entropy slice n-1 and the starting position of a predefined entropy slice n, the data stream includes these delta values as a sequence of VLC bits.

В частности, последовательность битов VLC может иметь префикс переменной длины y, указывающий, что разность x попадает в y-ю последовательность количества z интервалов [0,2a-1], [2a, 2b+2a-1], [2b+2a, 2c+2b+2a-1] и так далее, и кодированный с помощью PCM суффикс y-й последовательности длин a, b, c... Если a, b, c... выбирают так, чтобы они были степенью двух, если соответствующий y добавляют, то есть так, чтобы a+1, b+2, c+3 и так далее, все были степенями двух, то выравнивание байта может сохраняться. Число z не ограничено тремя, как для примера выбрано на фиг. 15.In particular, the VLC bit sequence may have a variable length prefix y indicating that the difference x falls in the y-th sequence of the number z of intervals [0,2 a -1], [2 a , 2 b +2 a -1], [ 2 b +2 a , 2 c +2 b +2 a -1] and so on, and the PCM encoded suffix of the yth sequence of lengths a, b, c... If a, b, c... choose so that they are a power of two, if the corresponding y is added, that is, so that a+1, b+2, c+3, and so on, are all powers of two, then the byte alignment can be preserved. The number z is not limited to three, as is exemplified in FIG. 15.

Кодер, такой как кодер на фиг. 1, соответственно сконструирован для преобразования разности последовательных начальных позиций в последовательность битов VLC, то есть с помощью сначала определения префикса, то есть в котором подинтервале находится разность (y-я), и затем устанавливая суффикс плюс разность начальная позиция минус y-я из 0, 2a, 2b+2a и так далее. Декодер, такой как на фиг. 6, соответственно сконструирован для получения начальной позиции текущего энтропийного слайса n из последовательности битов VLC, то есть с помощью сначала изучения префикса для получения y, затем устанавливая разностное значение для значения суффикса плюс y-й 0, 2a, 2b+2a и так далее, и затем добавляя разность для начальной точки предыдущего энтропийного слайса n-1.An encoder such as the encoder in FIG. 1 is suitably designed to convert the difference of successive starting positions into a VLC bit sequence, i.e. by first determining the prefix, i.e. in which subinterval the difference (y-th) is located, and then setting the suffix plus the difference starting position minus the y-th of 0 , 2 a , 2 b +2 a and so on. A decoder such as in FIG. 6 is suitably designed to obtain the starting position of the current entropy slice n from the VLC bit sequence, that is, by first learning the prefix to obtain y, then setting the delta value for the suffix value plus the yth 0, 2 a , 2 b +2 a and so on, and then adding the difference for the starting point of the previous n-1 entropy slice.

С помощью сегментации энтропийных слайсов может обеспечиваться дополнительное преимущество, а именно, передача с низкой задержкой и ускорение декодирования.With entropy slice segmentation, an additional advantage can be provided, namely, low latency transmission and faster decoding.

В видео потоке предоставление возможности более высоких разрешений (Full-HD, QUAD-HD и т.д.) приводит к большему количеству данных, которые должны передаваться. Для чувствительных к времени сценариев, так называемых случаев использования с низкой задержкой (<145 миллисекунд), время передачи становится критическим фактором. Рассматривают линию передачи данных ADSL для приложений видео конференц-связи. В данном случае так называемые точки потока с произвольным доступом, обычно они относятся к I-кадрам, будут кандидатами на создание узкого места во время передачи.In a video stream, enabling higher resolutions (Full-HD, QUAD-HD, etc.) results in more data to be transmitted. For time-sensitive scenarios, so-called low latency (<145 milliseconds) use cases, transfer time becomes a critical factor. Consider ADSL data line for video conferencing applications. In this case, the so-called random access flow points, typically referred to as I-frames, would be candidates for bottlenecking during transmission.

Чтобы решить эту проблему и минимизировать задержку передачи и время декодирования, то есть сквозную задержку, может применяться новая методика для схемы перемежения энтропийных слайсов для параллельной передачи и обработки.In order to solve this problem and minimize transmission delay and decoding time, that is, end-to-end delay, a new technique for an entropy slice interleaving scheme for parallel transmission and processing can be applied.

HEVC предусматривает так называемую волновую обработку данных на стороне декодера. Ее собираются обеспечивать при помощи энтропийных слайсов. В обычном случае данные всего слайса доставляются в один момент времени. Процесс декодирования начинается, как только закодированные данные прибывают в средство волнового декодера. Чтобы уменьшить время, когда декодер может начинать и завершать кадр, сегментация энтропийных слайсов на маленькие фрагменты, используя подход перемежения, используется в соответствии с настоящим вариантом осуществления. Следовательно, кодер может доставлять данные, соответствующие определенному энтропийному слайсу, к транспортному уровню раньше, чем в обычном случае. Это приводит в таком случае к более быстрой передаче и более раннему началу параллельного процесса декодирования в клиенте.HEVC provides for the so-called wave processing on the decoder side. They are going to provide it with the help of entropy slices. In the normal case, the data of the entire slice is delivered at one point in time. The decoding process starts as soon as the encoded data arrives at the wave decoder means. In order to reduce the time a decoder can start and end a frame, segmentation of entropy slices into small fragments using an interleaving approach is used in accordance with the present embodiment. Therefore, the encoder can deliver data corresponding to a certain entropy slice to the transport layer earlier than in the usual case. This then leads to faster transmission and earlier start of the parallel decoding process in the client.

Создание фрагментов слайсов может дополнительно обеспечиваться с помощью разделения энтропийного слайса на дополнительные слайсы, сохраняя все зависимости (зависимые слайсы). Если так сделано в каждой наибольшей единице кодирования (LCU)/единице дерева кодирования (CTU), то эти фрагменты могут перемежаться, дополнительно используя методы уровня системы, которые учитывают передачу фрагментов в перемежаемой форме и восстановление или по меньшей мере обеспечение информации об исходном порядке декодирования фрагментов посредством дополнительной сигнализации. Такая сигнализация может быть порядковым номером декодирования (DON), таким как определенный в IETF RTP формат полезной нагрузки для H.264/AVC (RFC 3984). Другой системный способ может состоять в применении фрагментов волнового подпотока к другому транспортному потоку, как в системах MEPG-2, с помощью назначения различных PID для каждого из них, далее мультиплексируя и с помощью этого перемежая их в транспортном канале.The creation of slice fragments can be further provided by dividing the entropy slice into additional slices, keeping all dependencies (dependent slices). If this is done in each largest coding unit (LCU)/coding tree unit (CTU), then these fragments can be interleaved, additionally using system level techniques that consider transmitting the fragments in interleaved form and restoring or at least providing information about the original decoding order fragments through additional signaling. Such signaling may be a decoding sequence number (DON) such as the IETF RTP Payload Format for H.264/AVC (RFC 3984) defined. Another systemic method may be to apply wave substream fragments to another transport stream, as in MEPG-2 systems, by assigning a different PID to each of them, then multiplexing and thereby interleaving them in the transport channel.

Данный подход может также применяться через границы кадра, в случае, если слайс(ы) следующего кадра или энтропийный слайс(ы) уже могут декодироваться, например, волновым способом, основываясь на знании запрошенной информации для декодирования энтропийного слайса следующего кадра из-за доступности межкадровых ссылок. Эти данные, которые уже могут декодироваться, кадра, следующего по порядку декодирования, могут быть получены из максимальной разрешенной/переданной длины вектора движения или дополнительной информации в потоке, указывающей зависимости частей данных от предыдущего кадра(ов)), или из схемы фиксированных ссылок, указывающей положение, передаваемое в фиксированном в последовательности положении, такой как набор параметров. Это будет дополнительно изложено ниже.This approach can also be applied across frame boundaries, in case the slice(s) of the next frame or the entropy slice(s) can already be decoded, for example, in a waveform, based on knowledge of the requested information to decode the entropy slice of the next frame due to the availability of interframe links. This data, which can already be decoded, of the next frame in decoding order, can be derived from the maximum allowed/transmitted motion vector length or additional information in the stream indicating the dependencies of parts of the data on the previous frame(s)), or from a fixed reference scheme, indicating the position passed in a position fixed in the sequence, such as a set of parameters. This will be further outlined below.

Изображение может кодироваться с помощью одного энтропийного слайса на строку(и) наибольших единиц кодирования (LCU), как изображено на фиг. 2 и 9. Предпочтительно использовать волновые методы на стороне декодера. Во время процесса кодирования битовый поток каждого слайса может делиться на сегменты постоянного размера. Затем результирующие сегменты перемежаются и могут передаваться для передачи. Постоянный размер сегментов может создавать проблему в конце битового потока из-за его переменной длины.A picture may be encoded with one entropy slice per line(s) of largest coding units (LCUs), as depicted in FIG. 2 and 9. It is preferable to use wave methods on the decoder side. During the encoding process, the bitstream of each slice may be divided into segments of constant size. The resulting segments are then interleaved and may be transmitted for transmission. The constant size of the segments can create a problem at the end of the bitstream due to its variable length.

Существуют два возможных обобщенных решения. Первым решением является генерация однобайтовых сегментов (обычно битовый поток, представляющий слайс, выровнен к байту), и управление расходом байтов с помощью каждого средства декодера, то есть декодер определяет завершение энтропийного слайса.There are two possible generalized solutions. The first solution is to generate one-byte segments (usually the bitstream representing the slice is byte-aligned), and control the consumption of bytes with each decoder means, that is, the decoder determines the completion of the entropy slice.

Вторым является использование кода завершения в конце слайса. В последнем случае могут использоваться сегменты переменной длины, но это может также приводить к большему количеству данных. Другим способом является передача длины энтропийного слайса. Один такой альтернативный вариант описан ниже.The second is to use an exit code at the end of the slice. In the latter case, variable length segments may be used, but this may also result in more data. Another way is to pass the length of the entropy slice. One such alternative is described below.

Размер сегмента и способ перемежения может передаваться или в одном SEI-сообщении или в SPS.The segment size and interleaving method may be transmitted either in a single SEI message or in an SPS.

Схема передачи показана на фиг. 16.The transmission scheme is shown in Fig. sixteen.

Таким образом, в соответствии с аспектом фиг. 16, например, обеспечена концепция энтропийного кодирования массива выборок, которая обеспечивает более низкую задержку по сравнению с доступными в настоящее время концепциями. В соответствии с этим аспектом кодированный поток 20 данных, в который кодируется информационный сигнал, содержит слайсы, такие как энтропийные слайсы 90 или просто полностью независимо декодируемые слайсы (показаны с левой стороны), в которые различные порции 12 информационного сигнала (с предсказанием и/или энтропийно) кодируются, причем данные слайсы 90 подразделяются на фрагменты (заштрихованные прямоугольники 310), которые располагаются в кодированном потоке 20 данных перемежаемым способом (показаны с правой стороны), перемежение представлено скобкой 312.Thus, in accordance with an aspect of FIG. 16, for example, provides a sample array entropy coding concept that provides lower latency than currently available concepts. In accordance with this aspect, the encoded data stream 20 into which the information signal is encoded contains slices, such as entropy slices 90 or simply completely independently decodable slices (shown on the left side), into which different portions 12 of the information signal (predictively and/or entropy) are encoded, wherein the data slices 90 are subdivided into chunks (shaded boxes 310) which are arranged in the encoded data stream 20 in an interleaved manner (shown on the right side), the interleaving being represented by bracket 312.

Как обозначено выше и описано относительно других аспектов, слайсы могут быть энтропийными слайсами 90, которые, в свою очередь, могут быть соответствующими подмножествами слайсов кадров, и соответственно, кодированный поток данных может быть энтропийно кодированным потоком 20 данных.As indicated above and described with respect to other aspects, slices may be entropy slices 90, which in turn may be corresponding subsets of frame slices, and accordingly, the encoded data stream may be entropy encoded data stream 20.

Перемежение 312 слайсов 90 предоставляет возможность более низкой задержки, так как декодер, отвечающий за декодирование любого из слайсов 90, не должен ждать в течение промежутка времени, израсходованного на предыдущие слайсы других декодеров (согласно порядку 16 слайсов). Вместо этого все доступные декодеры имеют возможность начинать декодировать связанные с ними слайсы, как только первый фрагмент 310 доступен, и потенциальные зависимости между частями определяют, сравни с волновым подходом.Interleaving 312 of slices 90 allows for lower latency since the decoder responsible for decoding any of the slices 90 does not have to wait for the amount of time spent on previous slices of other decoders (according to the order of 16 slices). Instead, all available decoders have the ability to start decoding their associated slices as soon as the first chunk 310 is available, and potential dependencies between chunks are determined, cf. the wave approach.

Различные порции 12 могут энтропийно кодироваться в энтропийные слайсы 90, используя оценки вероятности, которые устанавливаются независимо среди энтропийных слайсов, или используя заимствование между энтропийными слайсами оценки вероятности, как описано выше, например, именно в которых различные порции 12 кодируются в энтропийные слайсы 90 вдоль соответствующих траекторий 14 энтропийного кодирования, и зависимые энтропийные слайсы имеют соответствующие им порции 12, закодированные в них, используя оценки вероятностей, полученные в том числе из оценок вероятности, используемых в энтропийных слайсах более высокого ранга в пространственно соседних частях соответствующей порции, как описано ранее.Different chunks 12 may be entropy encoded into entropy slices 90 using probability scores that are established independently among entropy slices, or using borrowing between entropy slices of probability scores as described above, for example, in which different chunks 12 are encoded into entropy slices 90 along respective entropy encoding trajectories 14, and the dependent entropy slices have their respective chunks 12 encoded therein using probability estimates derived from among other things the probability estimates used in higher ranking entropy slices in spatially adjacent portions of the respective chunk, as described previously.

Энтропийно закодированный поток 20 данных может дополнительно содержать заголовок, как показано в качестве дополнительной возможности на фиг. 16. Заголовок 300 может связываться с кадром (массивом выборок) последовательности 30, заголовок 300 содержит информацию, которая показывает длину энтропийных слайсов. Информация, относящаяся к длине энтропийных слайсов 90, может кодироваться в пределах заголовка 300, как описано выше, используя коды VLC. Используя знание о длине энтропийных слайсов, на стороне декодирования может идентифицироваться последний фрагмент, связанный с каждым из энтропийных слайсов 90, и его длину. Однако, могут также использоваться начальные коды или другие схемы указания. Начальные положения слайса могут также идентифицироваться просто с помощью процесса декодирования, который знает завершение слайса. Поэтому может быть возможно просто полагаться на указание от декодера, но это требует сигнализации между декодерами и в некоторых случаях, если «более ранний» энтропийный слайс завершается позже, чем «более поздний» слайс в потоке. Это может потребовать для определенных случаев «адаптивной» сигнализации в потоке, которая может быть основана на начальных кодах.The entropy encoded data stream 20 may further comprise a header, as shown as an optional feature in FIG. 16. Header 300 may be associated with a frame (array of samples) of sequence 30, header 300 contains information that indicates the length of the entropy slices. Information relating to the length of the entropy slices 90 may be encoded within header 300 as described above using VLC codes. Using the knowledge of the length of the entropy slices, on the decoding side, the last fragment associated with each of the entropy slices 90 and its length can be identified. However, start codes or other indication schemes may also be used. Slice start positions can also be identified simply by a decoding process that knows the end of the slice. Therefore, it may be possible to simply rely on an indication from the decoder, but this requires signaling between decoders and in some cases if the "earlier" entropy slice is completed later than the "later" slice in the stream. This may require, for certain cases, "adaptive" in-stream signaling, which may be based on start codes.

Например, энтропийные слайсы 90 могут располагаться после заголовка 300, как иллюстрировано на фиг. 16.For example, entropy slices 90 may be placed after header 300, as illustrated in FIG. sixteen.

Фрагменты 310 могут иметь равную длину, по меньшей мере пока это касается начальной смежной порции последовательности фрагментов 310 от первого из фрагментов по порядку, в котором фрагменты располагаются в энтропийно кодированном потоке 20 данных. Последующие фрагменты могут изменяться по длине. Последующие фрагменты могут быть равны длине начальной смежной порции последовательности или меньше этой длины. Длина последующих фрагментов может получаться из вышеупомянутой информации в заголовке 300, которая раскрывает длину энтропийных слайсов 90 или положение начала. Фрагменты 310 могут располагаться в энтропийно кодированном потоке 20 данных циклически в соответствии с порядком, определенным среди энтропийных слайсов. Для энтропийных слайсов, фрагменты которых полностью находятся в предыдущих циклах, они могут пропускаться в текущем и последующем циклах.Fragments 310 may be of equal length, at least as long as it concerns the initial adjacent portion of the sequence of fragments 310 from the first of the fragments in the order in which the fragments are located in the entropy encoded data stream 20. Subsequent fragments may vary in length. Subsequent fragments may be equal to or less than the length of the initial adjacent portion of the sequence. The length of the subsequent fragments can be obtained from the above information in the header 300, which reveals the length of the entropy slices 90 or the position of the start. Fragments 310 may be arranged in entropy encoded data stream 20 cyclically according to an order defined among the entropy slices. For entropy slices, the fragments of which are completely in previous cycles, they can be skipped in the current and subsequent cycles.

Другие информационные сигналы, чем последовательность массива выборок, такие как видеосигнал, могут также передаваться через поток 20 данных. Различные порции 12 таким образом должны не быть порциями предопределенного массива выборок, такого как изображение/кадр.Information signals other than the sample array sequence, such as a video signal, may also be transmitted via data stream 20. The various chunks 12 thus need not be chunks of a predefined array of samples, such as an image/frame.

Как описано выше, энтропийные слайсы 90 могут иметь различные порции 12 массива 10 выборок, закодированные в них посредством кодирование с предсказанием, используя предсказание между энтропийными слайсами и/или межкадровое предсказание, энтропийное кодирование ошибки предсказания для предсказания между энтропийными слайсами и/или межкадрового предсказания. То есть, как описано выше, различные порции могут быть пространственно отличающимися порциями кадра 10 или множества кадров 30. Последний случай применяется, если слайс(ы) следующего кадра(ов) или энтропийный слайс(ы) могут быть уже декодированы, например, волновым способом, основываясь на знании запрошенной информации для декодирования энтропийного слайса следующего кадра из-за доступных межкадровых ссылок. Уже декодированные данные кадра, следующего по порядку декодирования, могут получаться из максимальной разрешенной/переданной длины вектора движения или из дополнительной информации в потоке, указывающей зависимости частей данных от предыдущего кадра(ов)), и предсказание между энтропийными слайсами может вовлекать внутреннее предсказание, в то время как межкадровое предсказание может вовлекать предсказание с компенсацией движения. Пример изложен ниже.As described above, entropy slices 90 may have different portions 12 of sample array 10 encoded therein by predictive coding using inter-entropy slice prediction and/or inter-picture prediction, entropy prediction error coding for inter-entropy slice prediction, and/or inter-picture prediction. That is, as described above, the different chunks may be spatially different chunks of frame 10 or a plurality of frames 30. The latter case applies if the slice(s) of the next frame(s) or entropy slice(s) can already be decoded, e.g., in a waveform. , based on knowledge of the requested information to decode the entropy slice of the next frame due to available inter-frame references. The already decoded data of the next frame in decoding order may be obtained from the maximum allowed/transmitted motion vector length or from additional information in the stream indicating the dependencies of the data pieces on the previous frame(s)), and prediction between entropy slices may involve intra prediction, in while inter-picture prediction may involve motion-compensated prediction. An example is shown below.

Вышеупомянутая независимость установки оценки вероятности среди энтропийных слайсов может относиться и к адаптированию вероятности, а также к моделированию содержимого. То есть содержимое, выбранное в пределах энтропийного слайса, может выбираться независимо из других энтропийных слайсов, и оценка вероятности содержимого может также инициализироваться и адаптироваться независимо от любого другого энтропийного слайса.The aforementioned independence of setting a probability score among entropy slices can apply to both probability adaptation as well as content modeling. That is, the content selected within an entropy slice may be selected independently from other entropy slices, and the content probability score may also be initialized and adapted independently of any other entropy slice.

Соответствующий энтропийный декодер может быть построен следующим образом.The corresponding entropy decoder can be constructed as follows.

Энтропийный декодер, сконфигурированный для декодирования энтропийно закодированного потока 20 данных, который содержит энтропийные слайсы 90, в которые различные порции кадра энтропийно кодируются, причем энтропийные слайсы подразделяются на фрагменты 310, которые располагаются в энтропийно кодированном потоке 20 данных перемежаемым способом, может быть сконфигурирован, как показано на фиг. 6, и может дополнительно содержать деперемежитель, сконфигурированный для деперемежения фрагментов 310, показан с помощью символа 314 на фиг. 16.An entropy decoder configured to decode an entropy encoded data stream 20 that contains entropy slices 90 into which various portions of a frame are entropy encoded, the entropy slices being subdivided into fragments 310 that are interleaved in the entropy encoded data stream 20, may be configured as shown in FIG. 6 and may further comprise a deinterleaver configured to deinterleave tiles 310, shown with symbol 314 in FIG. sixteen.

В частности, как иллюстрировано на фиг. 5, энтропийный декодер может содержать множество энтропийных декодеров 130, таких как потоки, выполняющиеся в различных ядрах обработки, причем деперемежитель может быть сконфигурирован, для каждого энтропийного слайса, для направления его фрагментов 310 к энтропийному декодеру 44, связанному с соответствующим энтропийным слайсом.In particular, as illustrated in FIG. 5, an entropy decoder may comprise a plurality of entropy decoders 130, such as threads executing in different processing cores, where a deinterleaver may be configured, for each entropy slice, to direct its fragments 310 to the entropy decoder 44 associated with the corresponding entropy slice.

Другими словами, энтропийные слайсы могут разделяться на фрагменты, которые, в свою очередь, могут перемежаться, и декодер может содержать деперемежитель для деперемежения фрагментов и может начинать обрабатывать энтропийные слайсы параллельно вдоль траекторий 16 даже перед приемом любого из энтропийных слайсов в целом. Следует вспомнить, что длина фрагментов, предпочтительно, измеряется в области энтропийного кодирования, а не в синтаксической области так, чтобы соответствовать, например, множеству определенных пространственных частей/блоков на изображении и т.п., хотя последняя возможность также будет доступна.In other words, the entropy slices may be divided into slices, which in turn may be interleaved, and the decoder may contain a deinterleaver to deinterleave the slices, and may begin processing the entropy slices in parallel along paths 16 even before receiving any of the entropy slices as a whole. It should be remembered that the length of the fragments is preferably measured in the entropy coding domain rather than in the syntactic domain so as to correspond to, for example, a plurality of defined spatial parts/blocks in an image, etc., although the latter possibility will also be available.

Далее описано возможное использование временных зависимостей. То же самое может использоваться в дополнение, или альтернативно к уже описанным вариантам осуществления улучшения оценки вероятности.The following describes the possible use of time dependencies. The same can be used in addition to, or alternatively to, the options for improving the probability estimate already described.

Образец волновой обработки данных, как он описан в данном случае, можно расширять на энтропийное кодирование с новым вычислением вероятностей для каждой LCU, чтобы использовать также временные зависимости между кадрами.The waveform data processing pattern as described herein can be extended to entropy coding with a new calculation of the probabilities for each LCU to also use inter-frame temporal dependencies.

Как известно, вероятности будут повторно инициализироваться в начале каждого кадра (первая LCU). Таким образом вероятности, которые были уже получены в предыдущем кадре, теряются. Чтобы уменьшить потерю эффективности кодирования, можно передавать конечное состояние изображения (сравни 320) или, в случае использования энтропийного слайса, конечное состояние слайса (сравни 322) вероятностей от опорного кадра 324 к первой LCU 50 текущего кадра 10 или энтропийного слайса 12, соответственно (фиг. 17). Такие данные соответствующего слайса в опорном кадре могут быть получены не только в конечном положении, но также и в предыдущем положении в опорных слайсах, так как параллельная волновая обработка данных может также проходить через границы кадра, то есть пока кодируют слайс кадра, процесс кодирования слайса предыдущего кадра еще может быть не закончен. Поэтому сигнализация может использоваться для указания опорной позиции, или она может обозначаться с помощью схемы.As you know, the probabilities will be reinitialized at the beginning of each frame (first LCU). Thus, the probabilities that were already obtained in the previous frame are lost. To reduce the loss in coding efficiency, the end state of the picture (cf. 320) or, in the case of an entropy slice, the end state of the slice (cf. 322) of the probabilities from the reference frame 324 to the first LCU 50 of the current frame 10 or entropy slice 12, respectively, can be transmitted (FIG. .17). Such data of the corresponding slice in the reference frame can be obtained not only at the final position, but also at the previous position in the reference slices, since the parallel waveform processing of data can also pass through frame boundaries, that is, while a frame slice is being encoded, the process of encoding the slice of the previous frame may not be finished yet. Therefore, the signaling may be used to indicate a reference position, or it may be indicated by a diagram.

Используя вышеупомянутое замечание, можно таким образом, для инициализации в начальной фазе 84 и 234, соответственно, устанавливать P{i, j}, причем {i, j} обозначает первую CU 50 в k-м энтропийном слайсе текущего массива выборок, равную, или по меньшей мере зависящую от любой T(P{i, j}’), причем {i, j}' обозначает CU в пределах предыдущего (по порядку кодирования массива выборок, который может быть равен порядку представления) массива выборок, или комбинации нескольких T(P{i, j}’). Это может быть сделано только для k=0, или для каждого энтропийного слайса k∈{1...K}, причем K обозначает количество энтропийных слайсов в текущем кадре. Временная инициализация может быть сделана дополнительно или альтернативно к описанной выше пространственной инициализации. То есть P{i, j}, причем {i, j} обозначает первую CU 50 в k-м энтропийном слайсе, может устанавливаться равным некоторой комбинации (такой как среднее значение sme) T(P{i, j}’) и T(P{i, j}spatial), причем {i, j}' обозначает CU в пределах предыдущего (ранее декодированного) массива выборок или комбинацию нескольких T(P{i, j}’), и {i, j}spatial обозначает CU в пределах предыдущего энтропийного слайса текущего массива выборок. Пока {i, j}' рассматривают, P{i, j}, причем {i, j} обозначает первую (по порядку 14 энтропийного кодирования) CU 50 в k-м (по порядку 14 энтропийного кодирования) энтропийном слайсе текущего массива выборок, может быть установлен равным T(P{i, j}’), причем {i, j}' обозначает последнюю (по порядку 14 энтропийного кодирования) CU в пределах k-го (по порядку энтропийных слайсов) энтропийного слайса в предыдущем (по порядку кодирования массива выборок) массиве выборок или последнюю CU в пределах последнего (по порядку энтропийных слайсов) энтропийного слайса в предыдущем (по порядку кодирования массивов выборок) массиве выборок. Снова, данная временная инициализация может выполняться только для первого энтропийного слайса в массиве выборок.Using the above remark, it is thus possible to set P {i, j} for initialization in the initial phase 84 and 234, respectively, where {i, j} denotes the first CU 50 in the k-th entropy slice of the current array of samples, equal to, or depending at least on any T(P {i, j}' ), where {i, j}' denotes the CU within the previous (in order of encoding array of samples, which may be equal to the order of presentation) array of samples, or a combination of several T (P {i, j}' ). This can only be done for k=0, or for each entropy slice k∈{1...K}, where K denotes the number of entropy slices in the current frame. Temporal initialization may be done in addition to or alternatively to the spatial initialization described above. That is, P{i, j}, where {i, j} denotes the first CU 50 in the kth entropy slice, may be set to some combination (such as the mean value of sme) T(P {i, j}' ) and T (P {i, j}spatial ), where {i, j}' denotes the CU within the previous (previously decoded) array of samples, or a combination of several T(P {i, j}' ), and {i, j} spatial denotes CU within the previous entropy slice of the current array of samples. While {i, j}' is being considered, P {i, j} , where {i, j} denotes the first (entropy-coded order 14) CU 50 in the k-th (entropy-coded order 14) entropy slice of the current array of samples, can be set equal to T(P {i, j}' ), where {i, j}' denotes the last (in order of entropy coding) CU within the k-th (in order of entropy slices) entropy slice in the previous (in order of entropy coding) sample array encoding) sample array, or the last CU within the last (in entropy slice order) entropy slice in the previous (sample array encoding order) sample array. Again, this temporary initialization can only be performed for the first entropy slice in the array of samples.

Процесс анализа конечного состояния опорного кадра тестировался с помощью способа адаптирования вероятностей, эти результаты иллюстрируются на фиг. 10 - фиг. 19 (временной график).The end state analysis process of the reference frame was tested with the probability adaptation method, these results are illustrated in FIG. 10 - fig. 19 (timeline).

Другая возможность использования данных от других кадров состоит в том, чтобы обмениваться полученными вероятностями между соотнесенными LCU. Главная идея основана на утверждении, что свойства опорного кадра отличаются от текущего кадра не очень сильно. Чтобы ускорить изучение вероятностей по LCU в кадре, можно попытаться передавать конечное состояние каждой LCU к соответствующей LCU в текущем кадре. Это предложение иллюстрируется на фиг. 18.Another possibility of using data from other frames is to exchange received probabilities between related LCUs. The main idea is based on the assertion that the properties of the key frame do not differ very much from the current frame. To speed up the learning of probabilities over an LCU in a frame, one can try to pass the end state of each LCU to the corresponding LCU in the current frame. This proposal is illustrated in Fig. eighteen.

Под опорным кадром могут пониматься различные возможности. Например, кадр, который кодируется последним, может использоваться в качестве опорного кадра. Иначе последний закодированный кадр только от того же самого временного уровня может назначаться в качестве опорного.Under the reference frame can be understood various possibilities. For example, the frame that is encoded last may be used as the reference frame. Otherwise, the last encoded frame only from the same temporal level may be assigned as a reference.

Кроме того, данный подход может объединяться с уже предложенными выше способами, как использование последней (слайса) информации из опорного кадра, адаптирование вероятностей и использование второй LCU верхней линии.In addition, this approach can be combined with the methods already proposed above, such as using the last (slice) information from the reference frame, adapting the probabilities, and using the second upper line LCU.

Вышеупомянутый процесс пространственного адаптирования может изменяться так, чтобы он былThe above spatial adaptation process can be modified to be

Figure 00000002
Figure 00000002

где N может быть 1 или больше 1 и {i, j}1...N выбирают из (находится в пределах) любого предыдущего (по порядку 16 энтропийных слайсов) энтропийного слайса 90 в текущем массиве 10 выборок и связанной с ним порции 12, соответственно, и M может быть 1 или больше 1 и {i, j}'1...M находится в пределах предыдущего массива выборок 350. Может случиться так, что по меньшей мере одна из CU 50 {i, j}'1...M совмещена с p(n). Относительно возможных выборов CU 50 {i, j}1...N ссылка сделана к вышеупомянутому описанию. Функция «среднее значение» может быть одной из взвешенного суммирования, срединной функции и т.д.where N can be 1 or greater than 1 and {i, j} 1...N is selected from (is within) any previous (in order of 16 entropy slices) entropy slice 90 in the current sample array 10 and its associated chunk 12, respectively, and M may be 1 or greater than 1 and {i, j}' 1...M is within the previous array of samples 350. It may be that at least one of the CU 50 {i, j}' 1. ..M is combined with p(n). Regarding the possible choices of CU 50 {i, j} 1...N , reference is made to the above description. The "mean" function can be one of a weighted summation, median function, etc.

Вышеупомянутый процесс пространственного адаптирования может быть заменен наThe above spatial adaptation process can be replaced by

Figure 00000003
Figure 00000003

где M может быть 1 или больше 1 и {i, j}'1...M находится в пределах предыдущего массива выборок. Может случиться так, что по меньшей мере {i, j}'1...M совмещена с p(n). Относительно возможных выборов {i, j}1...N ссылка сделана к вышеупомянутому описанию. Функция «среднее значение» может быть одной из взвешенного суммирования, срединной функции и т.д. Может случиться так, что по меньшей мере {i, j}'1...M совмещена с p(n).where M can be 1 or greater than 1 and {i, j}' 1...M is within the previous array of samples. It may happen that at least {i, j}' 1...M is aligned with p(n). Regarding the possible choices {i, j} 1...N , reference is made to the above description. The "mean" function can be one of a weighted summation, median function, etc. It may happen that at least {i, j}' 1...M is aligned with p(n).

В качестве определенного расширения использования соотнесенной информации может применяться подход для использования полученных данных от других блоков из одного или даже большего количества опорных кадров.As a certain extension of the use of correlated information, an approach may be taken to use received data from other blocks from one or even more reference frames.

Ранее упомянутые методы используют полученную информацию только от непосредственных соседей в текущем кадре или в опорных кадрах. Однако это не подразумевает, что полученные вероятности в данном случае являются лучшими. Смежные LCU, согласно разделениям изображения (разностная информация), не всегда имеют лучшие модели вероятностей. Предполагается, что лучшие результаты могут обеспечиваться с помощью блоков, на основе которых будет выполняться предсказание. И таким образом, этот соответствующий блок может использоваться в качестве опорного для текущего LCU.The previously mentioned methods use received information only from immediate neighbors in the current frame or in reference frames. However, this does not mean that the obtained probabilities in this case are the best. Adjacent LCUs, according to image divisions (difference information), do not always have the best probability models. It is assumed that the best results can be provided with the blocks on which the prediction will be performed. And thus, this corresponding block can be used as a reference for the current LCU.

Таким образом, в вышеприведенном примере адаптирования {i, j}1...N и/или {i, j}'1...M могут выбираться в зависимости от использования CU в качестве источников параметров предсказания для p(n).Thus, in the above adaptation example, {i, j} 1...N and/or {i, j}' 1...M may be selected depending on the use of CUs as sources of prediction parameters for p(n).

Представленные схемы адаптирования/инициализации временной вероятности могут также использоваться без энтропийных слайсов или с одним энтропийным слайсом в кадре.The presented temporal probability adaptation/initialization schemes can also be used without entropy slices or with one entropy slice per frame.

В соответствии с последним аспектом, увеличение скорости адаптирования вероятности обеспечивается с помощью объединения адаптирования вероятности во временной области соседних/связанных кадров. Описанное является декодером, таким как декодер на фиг. 6, причем данный декодер сконфигурирован для восстановления последовательности массивов выборок из потока данных энтропийного кодера, и сконфигурирован для энтропийного декодирования текущего кадра потока данных энтропийного кодера для восстановления текущего массива выборок последовательности массивов выборок, выполнения энтропийного декодирования вдоль траектории энтропийного кодирования и использования оценок вероятности и адаптирования оценок вероятности вдоль траектории энтропийного кодирования, используя ранее декодированную часть текущего кадра, причем каскад энтропийного декодирования сконфигурирован для инициализации или определения оценки вероятности для текущего кадра, основываясь на оценках вероятности, используемых при декодировании ранее декодированного кадра энтропийно закодированного потока данных.In accordance with the latter aspect, an increase in the rate of probability adaptation is provided by combining the probability adaptation in the time domain of adjacent/related frames. What is described is a decoder, such as the decoder in FIG. 6, wherein the decoder is configured to recover a sequence of sample arrays from the entropy encoder data stream, and is configured to entropy decode the current frame of the entropy encoder data stream to recover the current sample array of the sequence of sample arrays, perform entropy decoding along the entropy encoding path, and use probability and adaptation estimates. probability estimates along the entropy encoding path using a previously decoded portion of the current frame, the entropy decoding stage being configured to initialize or determine a probability estimate for the current frame based on the probability estimates used in decoding the previously decoded frame of the entropy encoded data stream.

То есть, например, оценки вероятности для текущего кадра инициализируются, основываясь на оценках вероятности, являющихся результатом после завершения декодирования ранее декодированного кадра энтропийно закодированного потока данных. Поэтому требования к буферу являются низкими, так как просто конечное состояние оценок вероятности должно буферизоваться до начала декодирования текущего кадра. Конечно, этот аспект объединяется с аспектом на фиг. 1-9 в том, что для первых частей каждой порции 12 используются не только оценки вероятности, используемые для пространственно соседних частей в предшествующих энтропийных слайсах (если доступны), но также и взвешенным образом, например, конечное состояние оценок вероятности (например, пространственно) соответствующего энтропийного слайса в предыдущем кадре. Такие данные соответствующей части в опорном кадре могут быть получены не только в конечном положении, но также и от предшествующего положения в опорных слайсах, так как параллельная волновая обработка данных может также проходить через границы кадра, то есть когда кодируют слайс кадра, процесс кодирования слайса предыдущего кадра возможно еще не закончен. Поэтому, сигнализация может использоваться для указания опорного положения, или оно может быть обозначено с помощью схемы.That is, for example, the probability estimates for the current frame are initialized based on the probability estimates resulting from the completion of decoding a previously decoded frame of the entropy encoded data stream. Therefore, the buffer requirements are low, as simply the final state of the probability estimates must be buffered before decoding of the current frame begins. Of course, this aspect is combined with the aspect in FIG. 1-9 in that for the first parts of each chunk 12, not only the probability estimates used for spatially adjacent parts in previous entropy slices (if available) are used, but also in a weighted manner, e.g., the end state of the probability estimates (e.g., spatially) corresponding entropy slice in the previous frame. Such data of the corresponding part in the reference frame can be obtained not only at the final position, but also from the previous position in the reference slices, since the data parallel waveform processing can also pass through frame boundaries, that is, when a frame slice is encoded, the previous slice encoding process frame may not be finished yet. Therefore, the signaling may be used to indicate the reference position, or it may be indicated by a diagram.

Дополнительно, например, оценки вероятности, используемые для кодирования частей/блоков ранее декодированного кадра, буферизируются все, а не только конечное состояние, и декодер будет энтропийно декодировать предопределенный энтропийный слайс (со ссылкой к вышеупомянутому описанию пространственно объединенного получения вероятности), выполнять энтропийное декодирование текущей части (X) предопределенного энтропийного слайса, основываясь на соответствующих оценках вероятности предопределенного энтропийного слайса, которые адаптированы, используя ранее декодированную часть предопределенного энтропийного слайса (включающего в себя p1, например), и на оценках вероятности, которые используются при энтропийном декодировании пространственно соответствующей части энтропийного слайса ранее декодированного кадра, при желании, дополнительно используя оценки вероятности, которые используются при энтропийном декодировании пространственно соседнего, по порядку энтропийных слайсов предыдущего энтропийного слайса (слайса, содержащего X, например) в соседней части (такого как p4) пространственно соседнего энтропийного слайса, как описано выше. Как было также описано выше, пространственное соответствие между частями и идентификация соответствующей части для заимствования вероятности для текущего кадра среди ранее декодированного кадра может определяться с помощью информации движения, такой как индексы движения, векторы движения и т.п., текущей части/блока.Additionally, for example, the probability estimates used to encode portions/blocks of a previously decoded frame are all buffered, not just the final state, and the decoder will entropy decode a predefined entropy slice (with reference to the above description of the spatially combined probability acquisition), perform entropy decoding of the current part (X) of the predefined entropy slice, based on the corresponding probability estimates of the predefined entropy slice, which are adapted using the previously decoded part of the predefined entropy slice (including p1, for example), and on the probability estimates that are used in the entropy decoding of the spatially corresponding part of the entropy slice of a previously decoded frame, if desired, additionally using the probability estimates that are used in the entropy decoding of a spatially neighboring, in the order of entropy slices, of the previous entropy a slice (a slice containing X, for example) in an adjacent part (such as p4) of a spatially adjacent entropy slice, as described above. As also described above, the spatial correspondence between the parts and the identification of the corresponding part to borrow the probability for the current frame among the previously decoded frame can be determined using motion information such as motion indices, motion vectors, etc., of the current part/block.

До сих пор волна, распространяющаяся во время волновой обработки данных, прежде всего описана, как распространяющаяся наискось через один массив 10 выборок, причем кодирование/декодирование выполняется один массив выборок за другим. Однако, это не является необходимостью. Ссылка сделана к фиг. 19. Фиг. 19 показывает порцию последовательности массивов выборок, причем массивы выборок последовательности определены среди нее и изображены, как расположенные по порядку 380 кодирования массивов выборок, который может совпадать или может не совпадать с порядком времени представления. Фиг. 19 для примера показывает разделение массивов 10 выборок на четыре энтропийных слайса каждый. Уже закодированные/декодированные энтропийные слайсы показаны заштрихованными. Четыре потока кодирования/декодирования (каскада кодирования/декодирования) 382 в настоящее время выполняются на этих четырех энтропийных слайсах 12 массива выборок, имеющего индекс n. Однако, фиг. 19 показывает оставшийся поток номер 5, и возможно, что этот дополнительный поток 382, имеющий номер 5 на фиг. 19, работает для кодирования/декодирования следующего массива выборок на линии, то есть n+1, в порциях, для которых гарантируется, что соответствующие опорные порции в закодированном/декодированном в настоящее время кадре n уже доступны, то есть уже обработаны любым из потоков 1-4. Эти порции являются опорными, например, при предсказаниях, показанных как 64 на фиг. 1.So far, a wave propagating during wave processing has been first described as propagating obliquely through one array of 10 samples, with encoding/decoding performed one array of samples after another. However, this is not necessary. Reference is made to FIG. 19. FIG. 19 shows a portion of a sequence of sample arrays, with the sample arrays of the sequence defined among it and depicted as arranged in sample array encoding order 380, which may or may not coincide with the presentation time order. Fig. 19, for example, shows the division of arrays of 10 samples into four entropy slices each. Already encoded/decoded entropy slices are shown as shaded. Four encoding/decoding streams (encoding/decoding stage) 382 are currently running on these four entropy slices 12 of the sample array having index n. However, FIG. 19 shows the remaining stream number 5, and it is possible that this additional stream 382, numbered 5 in FIG. 19 operates to encode/decode the next array of samples on the line, i.e. n+1, in chunks for which it is guaranteed that the corresponding reference chunks in the currently encoded/decoded frame n are already available, i.e. already processed by any of streams 1 -four. These chunks are reference, for example, in the predictions shown as 64 in FIG. 1.

Фиг. 19 для примера показывает с помощью пунктирной 384 линии, распространяющейся через массив n+1 выборок, который уже совмещен с границей между обработанной, то есть закодированной/декодированной порцией массива n выборок, то есть заштрихованной порцией в пределах n массива выборок с одной стороны, и еще не обработанной порцией, то есть незаштрихованной порцией массива n выборок с другой стороны. С помощью двунаправленных стрелок фиг. 19 также показывает максимальную возможную длину векторов движения, измеренных в направлении столбца и строки, то есть ymax и xmax, соответственно. Соответственно, фиг. 19 также показывает с помощью штрихпунктирной линии 386 смещенную версию линии 384, а именно, линию 386, которая располагается отдельно от линии 384 на минимальном возможном расстоянии так, чтобы расстояние не упало ниже ymax в направлении столбца и xmax в направлении строки. Как может быть замечено, существуют единицы 50 кодирования в массиве n+1 выборок, для которых любая опорная порция в массиве n выборок, как гарантируется, будет найдена, как полностью содержащаяся в пределах уже обработанной порции этого массива n выборок, а именно те, которые находятся в половине массива n+1 выборок, находящейся на верхней стороне относительно линии 386. Соответственно, поток 5 уже имеет возможность работать для декодирования/кодирования этих единиц кодирования, как показано на фиг. 19. Как может быть замечено, даже шестой поток может обрабатывать второй энтропийный слайс по порядку 16 энтропийных слайсов массива n+1 выборок. В связи с этим волна распространяется не только пространственно, но также и во временной области через пространственно-временное пространство, заполненное последовательностью 30 массивов выборок.Fig. 19 shows by way of example with a dotted line 384 propagating through an n+1 sample array that is already aligned with the boundary between the processed, i.e. encoded/decoded portion of the n sample array, i.e. the hatched portion within the n sample array on one side, and not yet processed portion, that is, the unshaded portion of the n-sample array on the other side. With the aid of the double-headed arrows of Fig. 19 also shows the maximum possible length of the motion vectors measured in the column and row directions, ie y max and x max , respectively. Accordingly, FIG. 19 also shows, with dotted line 386, an offset version of line 384, namely line 386 that is spaced apart from line 384 at the minimum possible distance so that the distance does not fall below y max in the column direction and x max in the row direction. As can be seen, there are coding units 50 in an n+1 sample array for which any reference chunk in the n sample array is guaranteed to be found to be entirely contained within the already processed chunk of that n sample array, namely those that are in the upper half of the n+1 sample array with respect to line 386. Accordingly, stream 5 is already in a position to work to decode/encode these coding units, as shown in FIG. 19. As can be seen, even the sixth thread can process the second entropy slice in the order of 16 entropy slices of an array of n+1 samples. In this regard, the wave propagates not only spatially, but also in the time domain through space-time space filled with a sequence of 30 sample arrays.

Следует отметить, что только что упомянутый волновой аспект действительно также работает в комбинации с вышеизложенными взаимосвязями оценок вероятности по границам энтропийного слайса.It should be noted that the wave aspect just mentioned does also work in combination with the above relationships of probability estimates over entropy slice boundaries.

Дополнительно, относительно вышеизложенного аспекта фрагмента, нужно также отметить, что разделение энтропийных слайсов на меньшие части, то есть фрагменты, не ограничено выполнением в области энтропийного кодирования, то есть в энтропийно сжатой области. Если подумать о вышеприведенном обсуждении: энтропийные слайсы, которые описаны выше, имеют преимущество сокращения потери эффективности кодирования несмотря на возможность волновой обработки данных из-за происхождения оценок вероятности от ранее закодированных/декодированных энтропийных слайсов того же самого или ранее закодированного/декодированного кадра, то есть инициализации и/или адаптирования оценок вероятности, основываясь на оценках вероятности таких предыдущих энтропийных слайсов. Каждый из этих энтропийных слайсов, как предполагается, энтропийно кодируется/декодируется одним потоком в случае волновой обработки данных. То есть, когда разделяют энтропийные слайсы, не является необходимым обрабатывать фрагменты, которые могут кодироваться/декодироваться параллельно. Вместо этого кодер просто обеспечивается возможностью выводить разделы битового потока его энтропийного слайса до завершения энтропийного кодирования, и декодер обеспечивается возможностью обрабатывать эти разделы, то есть фрагменты, до приема оставшихся фрагментов того же самого энтропийного слайса. Кроме того, перемежение должно быть разрешено на стороне приема. Чтобы позволить последнее деперемежение, однако, не требуется выполнять разделение в области энтропийного кодирования. В частности, можно выполнять вышепредставленное разделение энтропийных слайсов на меньшие фрагменты без серьезной потери эффективности кодирования, периодически просто перезагружая внутреннее состояние интервала вероятности, то есть значение ширины интервала вероятности, и значение смещения, соответственно, ядра энтропийного кодирования/декодирования. Оценки вероятности, однако, не перезагружаются. Вместо этого они непрерывно обновляются/адаптируются с начала до завершения энтропийных слайсов, соответственно. С помощью этих мер можно разделять энтропийные слайсы на отдельные фрагменты, причем разделение выполняется в области синтаксических элементов, а не в области сжатого битового потока. Разделение может быть результатом пространственного разделения, как изложено ниже, для облегчения передачи к декодеру границ между фрагментами. Каждый из фрагментов может обеспечиваться своим собственным заголовком фрагмента, который раскрывает, например, его начальную позицию в массиве выборок, измеренную, например, по порядку 14 кодирования относительно начального положения соответствующего энтропийного слайса наряду с индексом его энтропийного слайса, или относительно известного местоположения массива 10 выборок, такого как верхний левый угол.Additionally, with respect to the above aspect of the fragment, it should also be noted that the division of entropy slices into smaller parts, ie fragments, is not limited to being performed in the entropy coding domain, ie in the entropy compressed domain. Thinking about the above discussion: the entropy slices as described above have the advantage of reducing the loss of coding efficiency despite the possibility of data wave processing due to the origin of probability estimates from previously encoded/decoded entropy slices of the same or previously encoded/decoded frame, i.e. initializing and/or adapting the probability estimates based on the probability estimates of such previous entropy slices. Each of these entropy slices is assumed to be entropy encoded/decoded by one stream in case of wave processing. That is, when entropy slices are divided, it is not necessary to process slices that can be encoded/decoded in parallel. Instead, the encoder is simply provided with the ability to output sections of the bitstream of its entropy slice before entropy encoding is completed, and the decoder is provided with the ability to process these sections, ie fragments, before receiving the remaining fragments of the same entropy slice. In addition, interleaving must be enabled on the receive side. To allow the last deinterleaving, however, it is not necessary to perform separation in the entropy coding domain. In particular, it is possible to perform the above division of entropy slices into smaller fragments without serious loss of coding efficiency by periodically simply reloading the internal state of the probability interval, i.e., the probability interval width value and the offset value, respectively, of the entropy encoding/decoding kernel. Probability estimates, however, are not reloaded. Instead, they are continuously updated/adapted from start to finish of entropy slices, respectively. With these measures, it is possible to divide entropy slices into separate fragments, and the division is carried out in the area of syntactic elements, and not in the area of the compressed bitstream. The partitioning may be the result of a spatial partitioning, as discussed below, to facilitate transmission to the decoder of boundaries between tiles. Each of the tiles may be provided with its own tiles header that reveals, for example, its starting position in the array of samples measured, for example, in coding order 14 relative to the starting position of the corresponding entropy slice along with its entropy slice index, or relative to the known location of the array 10 of samples. , such as the top left corner.

Для более ясного описания подразделения энтропийных слайсов на фрагменты в соответствии с последним вариантом осуществления, ссылка сделана к фиг. 20. Фиг. 20 показывает, просто в иллюстративных целях, массив 10 выборок, как подразделенный на четыре энтропийных последовательности. Кодируемые в настоящее время порции массива 10 выборок показаны заштрихованными. Три потока в настоящее время выполняют энтропийное кодирование массива 10 выборок и выводят фрагменты энтропийных слайсов на основе непосредственного рассмотрения: см. например, первый энтропийный слайс по порядку 16 энтропийных слайсов, который соответствует порции 12 массива 10 выборок. После того, как раздел 12a порции 12 закодирован, кодер формирует фрагмент 390 из него, то есть ядро 80 энтропийного кодирования выполняет некоторую завершающую процедуру для завершения арифметического битового потока, полученного из подпорции 12a в случае арифметического кодирования для формирования фрагмента 390. Процедура кодирования затем возобновляется по отношению к последующей подпорции 12b энтропийного слайса 12 по порядку 14 кодирования, начиная новый энтропийный битовый поток. Это подразумевает, например, что перезагружаются внутренние состояния, такие как значение ширины интервала вероятности и значение смещения интервала вероятности ядра 80 энтропийного кодирования. Оценки вероятности, однако, не перезагружаются. Их оставляют неизменными. Это иллюстрируется на фиг. 20 с помощью стрелки 392. На фиг. 20 для примера показывается, что энтропийный слайс или порцию 12 разделяют больше чем на две подпорции, и соответственно, даже второй 1b фрагмент подлежит некоторому энтропийному завершению перед достижением конечной порции 12 по порядку 14 кодирования, после чего начинается следующий фрагмент на линии, и т.д.For a clearer description of the division of entropy slices into fragments in accordance with the latter embodiment, reference is made to FIG. 20. FIG. 20 shows, simply for illustrative purposes, an array of 10 samples as subdivided into four entropy sequences. The currently encoded portions of the 10-sample array are shown as shaded. Three threads currently perform entropy encoding of the 10 sample array and derive entropy slice fragments based on direct examination: see for example the first entropy slice in order of 16 entropy slices, which corresponds to chunk 12 of the 10 sample array. After section 12a of chunk 12 is encoded, the encoder generates chunk 390 from it, i.e., the entropy encoding core 80 performs some finishing routine to complete the arithmetic bitstream obtained from sub chunk 12a in the case of arithmetic encoding to generate chunk 390. The encoding routine then resumes with respect to the subsequent subportion 12b of the entropy slice 12 in order 14 coding, starting a new entropy bitstream. This implies, for example, that internal states such as the probability interval width value and the probability interval offset value of the entropy encoding core 80 are reloaded. Probability estimates, however, are not reloaded. They are left unchanged. This is illustrated in FIG. 20 with arrow 392. In FIG. 20 shows, for example, that entropy slice or chunk 12 is divided into more than two sub-chunks, and accordingly, even the second 1b chunk is subject to some entropy completion before reaching final chunk 12 in coding order 14, after which the next chunk on the line begins, and so on. d.

Одновременно, другой поток обрабатывает второй энтропийный слайс или порцию 12 по порядку 16 энтропийных слайсов. После окончания первой подпорции этого второго энтропийного слайса/порции 12, фрагмент 2a выводится, после чего начинается энтропийное кодирование оставшейся части второго энтропийного слайса, сохраняя, однако, оценку вероятности, которая действительна в конце фрагмента 2a.Simultaneously, another thread is processing the second entropy slice or chunk 12 in order of 16 entropy slices. After the end of the first subportion of this second entropy slice/portion 12, fragment 2a is output, after which the entropy encoding of the remainder of the second entropy slice begins, keeping, however, the probability estimate that is valid at the end of fragment 2a.

С помощью оси 394 времени фиг. 20 иллюстрирует, что фрагменты 390 выводятся, как только они завершены. Это приводит к перемежению, аналогичному перемежению, изображенному на фиг. 16. Каждый фрагмент можно пакетировать в пакет и транспортировать к стороне декодирования через некоторый транспортный уровень в любом порядке. Транспортный уровень иллюстрируется, используя стрелку 396.With the time axis 394 of FIG. 20 illustrates that fragments 390 are output as soon as they are completed. This results in an interleaving similar to the interleaving shown in FIG. 16. Each fragment can be packaged into a packet and transported to the decoding side through some transport layer in any order. The transport layer is illustrated using arrow 396.

Декодер должен повторно назначать фрагменты подпорциям 12a, 12b и т.д. Для этой цели каждый фрагмент 390 может иметь секцию 398 заголовка, которая раскрывает начальное расположение связанной с ним подпорции 12a или 12b, то есть подпорции синтаксических элементов, описывающие одно и то же, энтропийно кодируются в соответствующем фрагмента. При использовании этой информации декодер имеет возможность связывать каждый фрагмент 390 с его энтропийной последовательностью и с его подпорцией в пределах порции 12 этого энтропийного слайса.The decoder must reassign tiles to sub-chunks 12a, 12b, and so on. For this purpose, each fragment 390 may have a header section 398 that reveals the initial location of its associated subportion 12a or 12b, that is, subportions of syntax elements describing the same thing are entropy encoded in the corresponding fragment. Using this information, the decoder is able to associate each chunk 390 with its entropy sequence and with its subportion within chunk 12 of that entropy slice.

В целях иллюстрации фиг. 20 также для примера показывает возможность, когда не требуется, чтобы переход между последовательными подпорциями 12a и 12b энтропийного слайса 12 совпадал с границей между последовательными единицами 50 кодирования. Вместо этого данный переход может определяться на более глубоком уровне вышеупомянутого примерного разделения единиц кодирования на несколько деревьев. Информация расположения, содержащаяся в заголовках 398, может указывать начало подпорции, связанной с текущим фрагментом 390, достаточно точно, чтобы идентифицировать соответствующий подблок соответствующего блока кодирования, то есть расположение в пределах последовательности синтаксических элементов, которая описывает соответствующий подблок.For the purpose of illustrating FIG. 20 also shows by way of example the possibility that the transition between successive sub-portions 12a and 12b of the entropy slice 12 is not required to coincide with the boundary between successive coding units 50. Instead, this transition may be defined at a deeper level of the above exemplary division of coding units into multiple trees. The location information contained in headers 398 may indicate the start of the subportion associated with the current chunk 390 precisely enough to identify the corresponding subblock of the corresponding coding block, i.e., the location within the sequence of syntax elements that describes the corresponding subblock.

Как стало ясно от вышеприведенного обсуждения, почти отсутствие потери эффективности кодирования является результатом подразделения энтропийных слайсов на фрагменты. Просто процессы энтропийного завершения и пакетирования могут вовлекать некоторую потерю эффективности кодирования, но с другой стороны уменьшение задержки является огромным.As it became clear from the above discussion, almost no loss in coding efficiency results from dividing entropy slices into fragments. It's just that the entropy termination and packetization processes may involve some loss in coding efficiency, but on the other hand the delay reduction is huge.

Снова следует отметить, что только что упомянутый пространственный аспект разделения на фрагменты действительно также работает в комбинации с вышеизложенными соединениями оценки вероятности по границам энтропийного слайса, в пространственной и временной области.Again, it should be noted that the just mentioned spatial aspect of fragmentation does also work in combination with the above connections of probability estimation along entropy slice boundaries, in the spatial and temporal domains.

Декодер, такой как декодер на фиг. 6, может отменять передачу фрагмента следующим образом. В частности, декодер может проверять, которому энтропийному слайсу принадлежит текущий фрагмент. Эта проверка может выполняться, основываясь на вышеупомянутой информации расположения. Затем может проверяться, соответствует или нет текущий фрагмент первой подпорции порции соответствующего энтропийного слайса вдоль траектории 14 энтропийного кодирования. Если «да», то декодер может энтропийно декодировать текущий фрагмент при адаптировании соответствующих оценок вероятности и учитывать состояние соответствующих оценок вероятности, которые обнаруживаются в конце энтропийного декодирования текущего фрагмента, когда энтропийно декодируют другой фрагмент, который соответствует второй подпорции порции предопределенного энтропийного слайса вдоль траектории энтропийного кодирования. «Учет» может вовлекать урегулирование оценок вероятности в начале фрагмента 1b, равного оценкам вероятности, обнаруживая их непосредственно, с помощью адаптирования вероятности, начиная с состояния оценки вероятности в начале фрагмента 1a, в конце 1a подпорции фрагмента 12a, или равного объединению его с энтропийными оценками вероятности от других энтропийных слайсов, как описано выше. Пока рассматривается инициализация вероятности в начале первого фрагмента 12a, ссылка сделана к вышеупомянутому обсуждению, поскольку оно также формирует начало соответствующего энтропийного слайса. Другими словами, если текущий слайс является вторым или последующим фрагментом по порядку 14, то декодер может энтропийно декодировать текущий фрагмент, используя оценки вероятности, которые зависят от оценок вероятности, обнаруживающихся в конце энтропийно декодированного фрагмента, который соответствует подпорции порции предопределенного энтропийного слайса, предшествующей подпорции, соответствующей текущему фрагменту, вдоль траектории 14 энтропийного кодирования.A decoder, such as the decoder in FIG. 6 may cancel the fragment transmission as follows. In particular, the decoder may check to which entropy slice the current fragment belongs. This check may be performed based on the above location information. It can then be checked whether or not the current fragment corresponds to the first sub-portion of the corresponding entropy slice portion along the entropy encoding path 14 . If yes, then the decoder may entropy decode the current slice while adapting the respective probability estimates and take into account the state of the respective probability estimates that are found at the end of entropy decoding of the current slice when another slice is entropy decoded that corresponds to a second sub-portion of a portion of a predefined entropy slice along the path of the entropy slice. coding. "Accounting" may involve setting the probability estimates at the beginning of fragment 1b equal to the probability estimates, finding them directly, by adapting the probability, starting from the state of the probability estimate at the beginning of fragment 1a, at the end of the 1a subportion of fragment 12a, or equal to combining it with entropy estimates probabilities from other entropy slices, as described above. While the probability initialization at the beginning of the first fragment 12a is considered, reference is made to the above discussion since it also forms the beginning of the corresponding entropy slice. In other words, if the current slice is the second or subsequent slice in order 14, then the decoder may entropy decode the current slice using probability estimates that depend on the probability estimates found at the end of the entropy-decoded slice that corresponds to the sub-chunk of the predefined entropy slice slice preceding the sub-chunk corresponding to the current fragment, along the trajectory 14 entropy encoding.

Приведенное выше описание показывает различные способы, которые могут использоваться для параллельного кодирования и декодирования, а также использоваться для оптимизации уже существующих процессов в перспективном стандарте видео кодирования HEVC. Был представлен короткий краткий обзор энтропийных слайсов. Показано, как они могут формироваться, какие преимущества могут обеспечиваться с помощью разделения на слайсы и какие недостатки могут быть результатом этих методов. Было предложено множество способов, которые, как предполагается, улучшают процесс изучения вероятностей по LCU (наибольшей единице кодирования) в кадре, с помощью лучшего использования локальных зависимостей между LCU, а также временных зависимостей между LCU различных кадров. Утверждается, что различные комбинации обеспечивают усовершенствования для обеих концепций с параллелизацией кодирования и декодирования и без нее.The above description shows various methods that can be used for parallel encoding and decoding, as well as used to optimize existing processes in the upcoming HEVC video coding standard. A short overview of entropy slices was presented. It is shown how they can be formed, what advantages can be provided by slicing, and what disadvantages can result from these methods. Many methods have been proposed that are believed to improve the process of learning the probabilities over the LCU (largest coding unit) in a frame, by better exploiting local dependencies between LCUs as well as temporal dependencies between LCUs of different frames. Various combinations are said to provide improvements to both concepts with and without parallelization of encoding and decoding.

Повышение эффективности при высокоэффективном кодировании, например, с помощью наилучшего объединения предложенных подходов, составляет -0,4% при внутреннем, -0,78% при низкой задержке и -0,63% при произвольном доступе по сравнению с HM3.0 без использования энтропийных слайсов или -0,7% при внутреннем, -1,95% при низкой задержке и -1,5% при произвольном доступе по сравнению с подходом энтропийного слайса с обычной повторной инициализацией.Efficiency gains for high-efficiency coding, such as using the best combination of proposed approaches, are -0.4% for internal, -0.78% for low latency, and -0.63% for random access compared to HM3.0 without the use of entropy slices or -0.7% for internal, -1.95% for low latency, and -1.5% for random access compared to the entropy slice approach with normal re-initialization.

В частности, выше были представлены в том числе следующие методы:In particular, the following methods were presented above, including:

для использования не только локальных, но также и временных зависимостей LCU для оптимизации адаптирования вероятностей CABAC перед кодированием каждой LCU, см. фиг. 1-9, 17 и 18;to use not only the local but also the temporal dependencies of the LCU to optimize the adaptation of the CABAC probabilities before encoding each LCU, see FIG. 1-9, 17 and 18;

для обеспечения большей гибкости при декодировании, также энтропийные слайсы могут использоваться так, чтобы определенные области в кадре стали независимыми друг от друга;to provide more flexibility in decoding, also entropy slices can be used so that certain areas in the frame become independent of each other;

для предоставления возможности минимальной сигнализации начальной позиции слайса/энтропийных слайсов для параллелизации, например, волновой обработки данных, см. фиг. 15;to allow minimal signaling of the start position of the slice/entropy slices for parallelization, eg, waveform data processing, see FIG. 15;

для предоставления возможности транспортировки с низкой задержкой в параллелизованной среде кодер - передатчик - приемник - декодер посредством перемежаемой транспортировки энтропийных слайсов/слайсов, см. фиг. 16.to enable low latency transport in a parallelized encoder-transmitter-receiver-decoder environment by interleaved transport of entropy slices/slices, see FIG. sixteen.

Все способы, которые упомянуты выше, были объединены и тестировались в HM3.0. Полученные результаты, где контрольная точка - HM3.0 без какого-либо воплощения энтропийного слайса, представлены в таблицах 1 и 2 (где 2LCU является использованием второй LCU верхней линии; 2LCU+Prob.Adap является способом 2LCU, объединенным со способом адаптирования вероятностей; относящийся к времени - использование временных зависимостей (конечное состояние опорного кадра) с адаптированием вероятностей для каждой LCU).All the methods mentioned above have been combined and tested in HM3.0. The results obtained, where the breakpoint is HM3.0 without any implementation of the entropy slice, are presented in Tables 1 and 2 (where 2LCU is the use of the second upper line LCU; 2LCU+Prob.Adap is the 2LCU method combined with the probability adaptation method; related to time - use of time dependencies (end state of the reference frame) with adaptation of probabilities for each LCU).

Таблица 1Table 1 Обобщенные результаты RD с 1 потокомSummarized RD results with 1 thread 1 поток1 stream 2LCU2LCU 2LCU+Prob.Adap2LCU+Prob.Adap Prob.AdapProb.Adap Относящийся к времениpertaining to time ВнутреннийInterior 0,140.14 -0,31-0.31 -0,4-0.4 С низкой задержкойLow latency 0,660.66 0,090.09 -0,12-0.12 -0,78-0.78 Произвольный доступrandom access 0,480.48 -0,1-0.1 -0,24-0.24 -0,63-0.63

Таблица 2table 2 Обобщенные результаты RD с 4 потокамиGeneralized RD results with 4 threads 4 потока4 threads 2LCU2LCU 2LCU+Prob.Adap2LCU+Prob.Adap Prob.AdapProb.Adap Относящийся к времениpertaining to time ВнутреннийInterior 0,190.19 -0,27-0.27 -0,27-0.27 С низкой задержкойLow latency 1,011.01 0,540.54 0,630.63 0,170.17 Произвольный доступrandom access 0,740.74 0,20.2 0,240.24 0,010.01

Однако, интересно знать, как предложенные подходы затрагивают волновую обработку данных с повторной инициализацией вероятностей в начале каждой линии LCU. Эти результаты иллюстрируются в таблицах 3 и 4 (где orig_neiInit является сравнением HM3.0 без использования энтропийных слайсов с использованием энтропийных слайсов с повторной инициализацией).However, it is interesting to know how the proposed approaches affect wave processing with re-initialization of probabilities at the beginning of each LCU line. These results are illustrated in Tables 3 and 4 (where orig_neiInit is a comparison of HM3.0 without using entropy slices using reinitialized entropy slices).

Таблица 3Table 3 Обобщенные результаты RD с 1 потоком. Опорным элементом является новая инициализацияSummarized RD results with 1 thread. The reference element is the new initialization 1 поток1 stream orig_
neiInit
orig_
neiInit
2LCU2LCU 2LCU+ProbAdap2LCU+ProbAdap ProbAdapProbAdap Относящийся к времениpertaining to time
ВнутреннийInterior 0,30.3 -0,15-0.15 -0,62-0.62 -0,7-0.7 Произвольный доступrandom access 0,90.9 -0,4-0.4 -0,99-0.99 -1,13-1.13 -1,51-1.51 С низкой задержкойLow latency 1,191.19 -0,51-0.51 -1,08-1.08 -1,29-1.29 -1,95-1.95

Таблица 4Table 4 Обобщенные результаты RD с 4 потоками. Опорным элементом является новая инициализацияGeneralized RD results with 4 threads. The reference element is the new initialization 4 потока4 threads orig_
neiInit
orig_
neiInit
2LCU2LCU 2LCU+ProbAdap2LCU+ProbAdap ProbAdapProbAdap Относящийся к времениpertaining to time
ВнутреннийInterior 0,340.34 -0,14-0.14 -0,61-0.61 -0,61-0.61 Произвольный доступrandom access 1,181.18 -0,43-0.43 -0,96-0.96 -0,96-0.96 -1,15-1.15 С низкой задержкойLow latency 1,611.61 -0,5-0.5 -0,92-0.92 -1,05-1.05 -1,41-1.41

Вышеуказанные результаты показывают, что значительно большее использование зависимостей в пределах и между кадрами и рациональное применение уже полученной информации предотвращает усредненные потери.The above results show that a much greater use of dependencies within and between frames and the rational application of the information already obtained prevents the average loss.

Подход волновой обработки данных для кодирования и декодирования видео HEVC объединяет возможность использовать зависимости между смежными LCU, а также временные зависимости кадра с концепцией волновой параллельной обработки. Таким образом потери могут уменьшаться, и может обеспечиваться увеличение эффективности.The waveform approach for encoding and decoding HEVC video combines the ability to exploit dependencies between adjacent LCUs as well as frame time dependencies with the concept of wavelet parallel processing. In this way, losses can be reduced and an increase in efficiency can be achieved.

Увеличение скорости адаптирования вероятности обеспечивается с помощью вычисления адаптирования вероятности пространственно соседних энтропийных слайсов.An increase in the probability adaptation rate is provided by computing the probability adaptation of spatially adjacent entropy slices.

Как уже упомянуто выше, все вышеупомянутые аспекты могут объединяться друг с другом, и таким образом упоминание определенных возможностей воплощения по отношению к определенному аспекту должно, конечно, также относиться к другим аспектам.As already mentioned above, all of the aforementioned aspects can be combined with each other, and thus the mention of certain embodiments in relation to a certain aspect must, of course, also refer to other aspects.

Хотя некоторые аспекты описаны в контексте устройства, ясно, что эти аспекты также представляют описание соответствующего способа, где блок или устройство соответствуют этапу способа или особенности этапа способа. Аналогично, аспекты, описанные в контексте этапа способа, также представляют описание соответствующего блока или элемента или особенности соответствующего устройства. Некоторые или все этапы способа могут выполняться (или использоваться) с помощью аппаратного устройства, как, например, микропроцессор, программируемый компьютер или электронная схема. В некоторых вариантах осуществления один или большее количество самых важных этапов способа могут выполняться с помощью такого устройства.Although some aspects are described in the context of a device, it is clear that these aspects also represent a description of the corresponding method, where the block or device corresponds to a method step or a feature of a method step. Likewise, the aspects described in the context of a method step also provide a description of the corresponding block or element or feature of the corresponding device. Some or all of the steps of the method may be performed (or used) by a hardware device such as a microprocessor, programmable computer, or electronic circuit. In some embodiments, one or more of the most important steps of the method may be performed using such a device.

Упомянутые выше изобретенные кодированные сигналы могут храниться на цифровом носителе данных или могут передаваться по среде передачи, такой как беспроводная среда передачи или проводная среда передачи, такая как Интернет.The inventive coded signals mentioned above may be stored on a digital storage medium or may be transmitted over a transmission medium such as a wireless transmission medium or a wired transmission medium such as the Internet.

В зависимости от определенных требований воплощения варианты осуществления изобретения могут воплощаться в аппаратных средствах или в программном обеспечении. Воплощение может выполняться, используя цифровой носитель данных, например, гибкий диск, DVD (цифровой универсальный диск), Blu-Ray, CD (компакт диск), ПЗУ (постоянное запоминающее устройство), ППЗУ (программируемое ПЗУ), СППЗУ (стираемое программируемое ПЗУ), ЭСППЗУ (электрически стираемое программируемое ПЗУ) или флеш-память, имеющий сохраненные на нем считываемые с помощью электроники управляющие сигналы, которые взаимодействуют (или могут взаимодействовать) с программируемой компьютерной системой таким образом, что выполняется соответствующий способ. Поэтому цифровой носитель данных может быть считываемым компьютером носителем.Depending on certain implementation requirements, embodiments of the invention may be implemented in hardware or software. Embodiment may be performed using a digital storage medium such as floppy disk, DVD (Digital Versatile Disk), Blu-ray, CD (Compact Disk), ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Erasable Programmable ROM) , EEPROM (Electrically Erasable Programmable ROM) or flash memory having stored thereon electronically readable control signals that interact (or can interact) with a programmable computer system in such a way that the corresponding method is performed. Therefore, the digital storage medium may be a computer-readable medium.

Некоторые варианты осуществления согласно изобретению содержат носитель информации, имеющий считываемые с помощью электроники управляющие сигналы, которые могут взаимодействовать с программируемой компьютерной системой таким образом, что выполняется один из описанных способов.Some embodiments of the invention comprise a storage medium having electronically readable control signals that can interact with a programmable computer system such that one of the described methods is performed.

В общем случае варианты осуществления настоящего изобретения могут воплощаться как компьютерный программный продукт с программным кодом, программный код используется для выполнения одного из способов, когда данный компьютерный программный продукт выполняется на компьютере. Программный код может, например, храниться на считываемом компьютером носителе.In general, embodiments of the present invention may be implemented as a computer program product with program code, the program code being used to perform one of the methods when the computer program product is running on a computer. The program code may, for example, be stored on a computer-readable medium.

Другие варианты осуществления содержат компьютерную программу для выполнения одного из описанных способов, хранящуюся на считываемом компьютером носителе.Other embodiments include a computer program for performing one of the described methods, stored on a computer-readable medium.

Другими словами, вариантом осуществления изобретенного способа поэтому является компьютерная программа, имеющая программный код для выполнения одного из описанных способов, когда данная компьютерная программа выполняется на компьютере.In other words, an embodiment of the inventive method is therefore a computer program having program code for performing one of the described methods when the computer program is executed on a computer.

Дополнительным вариантом осуществления изобретенных способов поэтому является носитель информации (или цифровой носитель данных, или считываемый компьютером носитель), содержащий записанную на нем компьютерную программу для выполнения одного из описанных способов. Носитель информации, цифровой носитель данных или записанный носитель обычно являются материальными и/или не временными.A further embodiment of the inventive methods is therefore a storage medium (either a digital storage medium or a computer-readable medium) containing a computer program recorded thereon for performing one of the described methods. The storage medium, digital storage medium, or recorded medium is typically tangible and/or non-transitory.

Дополнительным вариантом осуществления изобретенного способа поэтому является поток данных или последовательность сигналов, представляющие компьютерную программу для выполнения одного из описанных способов. Поток данных или последовательность сигналов могут, например, конфигурироваться для перемещения через соединение для передачи данных, например, через Интернет.An additional embodiment of the inventive method is therefore a data stream or signal sequence representing a computer program for performing one of the described methods. The data stream or signal sequence may, for example, be configured to travel over a data connection, such as the Internet.

Дополнительный вариант осуществления содержит средство обработки, например, компьютер или программируемое логическое устройство, сконфигурированное или адаптированное для выполнения одного из описанных способов.An additional embodiment comprises processing means, such as a computer or programmable logic device, configured or adapted to perform one of the described methods.

Дополнительный вариант осуществления содержит компьютер, установленную на нем компьютерную программу для выполнения одного из описанных способов.An additional embodiment includes a computer, a computer program installed on it for performing one of the described methods.

Дополнительный вариант осуществления согласно изобретению содержит устройство или систему, сконфигурированную для перемещения на приемник (например, с помощью электроники или оптически) компьютерной программы для выполнения одного из описанных способов. Приемник может, например, быть компьютером, мобильным устройством, запоминающим устройством или подобным устройством. Устройство или система могут, например, содержать файловый сервер для передачи на приемник компьютерной программы.An additional embodiment according to the invention comprises an apparatus or system configured to move to the receiver (eg, electronically or optically) a computer program to perform one of the described methods. The receiver may, for example, be a computer, mobile device, storage device, or the like. The device or system may, for example, include a file server for transferring a computer program to a receiver.

В некоторых вариантах осуществления программируемое логическое устройство (например, программируемая пользователем вентильная матрица) может использоваться для выполнения некоторых или всех функциональных возможностей описанных способов. В некоторых вариантах осуществления программируемая пользователем вентильная матрица может совместно работать с микропроцессором для выполнения одного из описанных способов. В общем случае способы предпочтительно выполняются с помощью любого аппаратного устройства.In some embodiments, a programmable logic device (eg, a field programmable gate array) may be used to perform some or all of the functionality of the described methods. In some embodiments, a user-programmable gate array may work with a microprocessor to perform one of the methods described. In general, the methods are preferably performed using any hardware device.

В первом аспекте настоящего изобретения обеспечен декодер для восстановления массива выборок видео из энтропийно закодированного потока данных, причем декодер содержит: энтропийный декодер, сконфигурированный для энтропийного декодирования множества энтропийных слайсов в потоке данных, чтобы восстанавливать различные порции массива выборок видео, причем каждый из множества энтропийных слайсов содержит энтропийно закодированные данные для соответствующей строки массива выборок, при этом для энтропийного декодирования текущего энтропийного слайса из множества энтропийных слайсов, энтропийный декодер сконфигурирован для: декодирования значения разности позиций текущего энтропийного слайса, используя экспоненциальное кодирование Голомба, при этом значение разности позиций извлекается из потока данных и указывает разность между начальной позицией предыдущего энтропийного слайса в потоке данных и начальной позицией текущего энтропийного слайса, при этом текущий энтропийный слайс соответствует текущей строке массива выборок, а предыдущий энтропийный слайс соответствует предыдущей строке массива выборок, причем текущая и предыдущая строки являются последовательными строками массива выборок, и предыдущая строка находится пространственно выше текущей строки и получения начальной позиции в потоке данных текущего энтропийного слайса на основе суммы начальной позиции предыдущего энтропийного слайса и значения разности позиций, при этом энтропийное декодирование предыдущего энтропийного слайса предшествует энтропийному декодированию текущего энтропийного слайса.In a first aspect of the present invention, a decoder is provided for recovering an array of video samples from an entropy encoded data stream, the decoder comprising: contains entropy encoded data for the corresponding row of the array of samples, wherein to entropy decode the current entropy slice from the plurality of entropy slices, the entropy decoder is configured to: and indicates the difference between the starting position of the previous entropy slice in the data stream and the starting position of the current entropy slice, with the current entropy slice corresponding to t the current row of the array of samples, and the previous entropy slice corresponds to the previous row of the array of samples, and the current and previous rows are consecutive rows of the array of samples, and the previous row is spatially above the current row and getting the starting position in the data stream of the current entropy slice based on the sum of the starting position the previous entropy slice and a position difference value, wherein the entropy decoding of the previous entropy slice precedes the entropy decoding of the current entropy slice.

В упомянутом декодере энтропийное декодирование предыдущего энтропийного слайса непосредственно предшествует энтропийному декодированию текущего энтропийного слайса, так что никакой другой энтропийный слайс не декодируется энтропийно между энтропийным декодированием текущего и предыдущего энтропийных слайсов.In said decoder, the entropy decoding of the previous entropy slice immediately precedes the entropy decoding of the current entropy slice, so that no other entropy slice is entropy decoded between the entropy decoding of the current and previous entropy slices.

В упомянутом декодере экспоненциальное кодирование Голомба обеспечивает строку бинов префикса и строку бинов суффикса, связанную со значением разности позиций, а строка бинов префикса идентифицирует один из множества диапазонов значений, к которому принадлежит значение разности позиций.In said decoder, exponential Golomb encoding provides a prefix bin string and a suffix bin string associated with the position delta value, and the prefix bin string identifies one of the plurality of value ranges to which the position delta value belongs.

В упомянутом декодере каждая строка имеет одинаковое количество блоков массива выборок.In said decoder, each row has the same number of sample array blocks.

В упомянутом декодере энтропийный декодер сконфигурирован для выполнения энтропийного декодирования для каждого энтропийного слайса вдоль соответствующей траектории энтропийного кодирования, идущей параллельно вдоль строк блоков.In said decoder, the entropy decoder is configured to perform entropy decoding for each entropy slice along a corresponding entropy encoding path running parallel along the block rows.

В упомянутом декодере энтропийный декодер сконфигурирован для энтропийного декодирования множества энтропийных слайсов в порядке подмножества слайсов, причем порядок подмножества слайсов выбирается таким образом, что по порядку подмножества слайсов различные порции следуют друг за другом в направлении, повернутом относительно траекторий энтропийного кодирования энтропийных слайсов.In said decoder, the entropy decoder is configured to entropy decode a plurality of entropy slices in slice subset order, wherein the slice subset order is chosen in such a way that, according to the slice subset order, different portions follow each other in a direction rotated relative to the entropy coding trajectories of the entropy slices.

В упомянутом декодере энтропийные слайсы подразделяются на фрагменты, и декодер дополнительно содержит деперемежитель для деперемежения фрагментов, а энтропийный декодер сконфигурирован для начала энтропийного декодирования энтропийных слайсов параллельно вдоль траекторий энтропийного кодирования даже до получения всего какого-либо из энтропийных слайсов.In said decoder, the entropy slices are subdivided into fragments, and the decoder further comprises a deinterleaver for deinterleaving the fragments, and the entropy decoder is configured to start entropy decoding of the entropy slices in parallel along the entropy encoding paths, even before obtaining all of any of the entropy slices.

В упомянутом декодере массив выборок является текущим массивом выборок из последовательности массивов выборок, а энтропийный декодер сконфигурирован для энтропийного декодирования энтропийного слайса с использованием первой оценки вероятности, основанной на ранее декодированной части этого энтропийного слайса, и второй оценки вероятности, полученной при энтропийном декодировании ранее декодированного кадра, относящегося к одному из массивов выборок, отличных от текущего массива выборок.In said decoder, the sample array is the current sample array from a sequence of sample arrays, and the entropy decoder is configured to entropy decode an entropy slice using a first probability estimate based on a previously decoded portion of that entropy slice and a second probability estimate obtained from entropy decoding of a previously decoded frame. A that refers to one of the arrays of selections other than the current array of selections.

Упомянутый декодер является по меньшей мере частью программируемого логического устройства, программируемой пользователем вентильной матрицы, микропроцессора, компьютера или аппаратного компонента.Said decoder is at least part of a programmable logic device, a user-programmable gate array, a microprocessor, a computer, or a hardware component.

Во втором аспекте настоящего изобретения обеспечен способ восстановления массива выборок видео из энтропийно закодированного потока данных, содержащий этап, на котором: энтропийно декодируют множество энтропийных слайсов в потоке данных, чтобы восстанавливать различные порции массива выборок видео, причем каждый из множества энтропийных слайсов содержит энтропийно закодированные данные для соответствующей строки массива выборок, при этом для энтропийного декодирования текущего энтропийного слайса из множества энтропийных слайсов, энтропийное декодирование включает в себя: декодирование значения разности позиций текущего энтропийного слайса, используя экспоненциальное кодирование Голомба, при этом значение разности позиций извлекается из потока данных и указывает разность между начальной позицией предыдущего энтропийного слайса в потоке данных и начальной позицией текущего энтропийного слайса, при этом текущий энтропийный слайс соответствует текущей строке массива выборок, а предыдущий энтропийный слайс соответствует предыдущей строке массива выборок, причем текущая и предыдущая строки являются последовательными строками массива выборок, и предыдущая строка находится пространственно выше текущей строки и получение начальной позиции в потоке данных текущего энтропийного слайса на основе суммы начальной позиции предыдущего энтропийного слайса и значения разности позиций, при этом энтропийное декодирование предыдущего энтропийного слайса предшествует энтропийному декодированию текущего энтропийного слайса.In a second aspect of the present invention, there is provided a method for recovering an array of video samples from an entropy encoded data stream, comprising: entropy decoding a plurality of entropy slices in the data stream to recover different portions of the array of video samples, each of the plurality of entropy slices containing entropy encoded data for the corresponding row of the sample array, wherein for entropy decoding the current entropy slice of the plurality of entropy slices, the entropy decoding includes: decoding the position difference value of the current entropy slice using exponential Golomb coding, wherein the position difference value is extracted from the data stream and indicates the difference between the starting position of the previous entropy slice in the data stream and the starting position of the current entropy slice, while the current entropy slice corresponds to the current row of the array of samples, and the previous the entropy slice corresponds to the previous row of the array of samples, where the current and previous rows are consecutive rows of the array of samples, and the previous row is located spatially above the current row, and obtaining the initial position in the data stream of the current entropy slice based on the sum of the initial position of the previous entropy slice and the position difference value, wherein the entropy decoding of the previous entropy slice precedes the entropy decoding of the current entropy slice.

В упомянутом способе энтропийное декодирование предыдущего энтропийного слайса непосредственно предшествует энтропийному декодированию текущего энтропийного слайса, так что никакой другой энтропийный слайс не декодируется энтропийно между энтропийным декодированием текущего и предыдущего энтропийных слайсов.In said method, the entropy decoding of the previous entropy slice immediately precedes the entropy decoding of the current entropy slice, so that no other entropy slice is entropy decoded between the entropy decoding of the current and previous entropy slices.

В упомянутом способе экспоненциальное кодирование Голомба обеспечивает строку бинов префикса и строку бинов суффикса, связанную со значением разности позиций, а строка бинов префикса идентифицирует один из множества диапазонов значений, к которому принадлежит значение разности позиций.In said method, exponential Golomb encoding provides a prefix bin string and a suffix bin string associated with the position delta value, and the prefix bin string identifies one of the plurality of value ranges to which the position delta value belongs.

В упомянутом способе каждая строка имеет одинаковое количество блоков массива выборок.In said method, each row has the same number of sample array blocks.

В упомянутом способе энтропийное декодирование каждого из множества энтропийных слайсов выполняют вдоль соответствующей траектории энтропийного кодирования, идущей параллельно вдоль строк блоков.In said method, entropy decoding of each of the plurality of entropy slices is performed along a respective entropy encoding path running parallel along the block rows.

В упомянутом способе энтропийные слайсы подразделяются на фрагменты, и способ дополнительно содержит деперемежение фрагментов и начало энтропийного декодирования энтропийных слайсов параллельно вдоль траекторий энтропийного кодирования даже до получения всего какого-либо из энтропийных слайсов.In said method, the entropy slices are subdivided into slices, and the method further comprises deinterleaving the slices and starting entropy decoding of the entropy slices in parallel along the entropy encoding paths, even before obtaining all of any of the entropy slices.

В упомянутом способе энтропийное декодирование множества энтропийных слайсов выполняют в порядке подмножества слайсов, причем порядок подмножества слайсов выбирается таким образом, что по порядку подмножества слайсов различные порции следуют друг за другом в направлении, повернутом относительно траекторий энтропийного кодирования энтропийных слайсов.In the mentioned method, the entropy decoding of a plurality of entropy slices is performed in the order of the subset of slices, and the order of the subset of slices is chosen in such a way that, in the order of the subset of slices, different portions follow each other in a direction rotated relative to the trajectories of the entropy coding of the entropy slices.

В упомянутом способе массив выборок является текущим массивом выборок из последовательности массивов выборок, а энтропийное декодирование энтропийного слайса использует первую оценку вероятности, основанную на ранее декодированной части энтропийного слайса, и вторую оценку вероятности, полученную при энтропийном декодировании ранее декодированного кадра, относящегося к одному из массивов выборок, отличных от текущего массива выборок.In said method, the sample array is the current sample array from a sequence of sample arrays, and the entropy decoding of the entropy slice uses a first probability estimate based on a previously decoded portion of the entropy slice and a second probability estimate obtained from entropy decoding of a previously decoded frame belonging to one of the arrays. samples other than the current array of samples.

В третьем аспекте настоящего изобретения обеспечен способ кодирования массива выборок видео в энтропийно закодированный поток данных, содержащий этап, на котором: энтропийно кодируют множество энтропийных слайсов в энтропийно закодированный поток данных, причем каждый из множества энтропийных слайсов содержит энтропийно закодированные данные для соответствующей строки массива выборок, при этом энтропийное кодирование включает в себя кодирование в поток данных, для текущего энтропийного слайса из множества энтропийных слайсов, используя экспоненциальное кодирование Голомба, значения разности позиций, связанного с начальной позицией в потоке данных текущего энтропийного слайса, причем значение разности позиций указывает разность между начальной позицией в потоке данных предыдущего энтропийного слайса и начальной позицией текущего энтропийного слайса, при этом текущий энтропийный слайс соответствует текущей строке массива выборок, а предыдущий энтропийный слайс соответствует предыдущей строке массива выборок, причем текущая и предыдущая строки являются последовательными строками массива выборок, и предыдущая строка находится пространственно выше текущей строки и начальная позиция текущего энтропийного слайса в потоке данных подлежит получению на основе суммы начальной позиции предыдущего энтропийного слайса и значения разности позиций, и энтропийное кодирование предыдущего энтропийного слайса предшествует энтропийному кодированию текущего энтропийного слайса.In a third aspect of the present invention, there is provided a method for encoding an array of video samples into an entropy encoded data stream, comprising the step of: entropy encoding a plurality of entropy slices into an entropy encoded data stream, each of the plurality of entropy slices containing entropy encoded data for a corresponding row of the array of samples, wherein the entropy encoding includes encoding into the data stream, for the current entropy slice of the plurality of entropy slices, using exponential Golomb coding, a position difference value associated with a starting position in the data stream of the current entropy slice, the position difference value indicating the difference between the starting position in the data stream of the previous entropy slice and the starting position of the current entropy slice, while the current entropy slice corresponds to the current row of the array of samples, and the previous entropy slice corresponds to the previous st sample array, where the current and previous rows are consecutive rows of the sample array, and the previous row is spatially above the current row, and the starting position of the current entropy slice in the data stream is to be obtained based on the sum of the starting position of the previous entropy slice and the position difference value, and entropy encoding the previous entropy slice precedes the entropy encoding of the current entropy slice.

В упомянутом способе энтропийное кодирование предыдущего энтропийного слайса непосредственно предшествует энтропийному кодированию текущего энтропийного слайса, так что никакой другой энтропийный слайс не кодируется энтропийно между энтропийным кодированием текущего и предыдущего энтропийных слайсов.In said method, the entropy encoding of the previous entropy slice immediately precedes the entropy encoding of the current entropy slice, so that no other entropy slice is entropy encoded between the entropy encoding of the current and previous entropy slices.

В упомянутом способе экспоненциальное кодирование Голомба обеспечивает строку бинов префикса и строку бинов суффикса, связанную со значением разности позиций, а строка бинов префикса идентифицирует один из множества диапазонов значений, к которому принадлежит значение разности позиций.In said method, exponential Golomb encoding provides a prefix bin string and a suffix bin string associated with the position delta value, and the prefix bin string identifies one of the plurality of value ranges to which the position delta value belongs.

В упомянутом способе каждая строка имеет одинаковое количество блоков массива выборок.In said method, each row has the same number of sample array blocks.

В упомянутом способе энтропийное кодирование каждого из множества энтропийных слайсов выполняют вдоль соответствующей траектории энтропийного кодирования, идущей параллельно вдоль строк блоков.In said method, the entropy encoding of each of the plurality of entropy slices is performed along a respective entropy encoding path running parallel along the rows of blocks.

В упомянутом способе энтропийные слайсы подразделяются на фрагменты, и способ дополнительно содержит деперемежение фрагментов в поток данных.In said method, the entropy slices are subdivided into fragments, and the method further comprises deinterleaving the fragments into a data stream.

В упомянутом способе энтропийное кодирование множества энтропийных слайсов выполняют в порядке подмножества слайсов, причем порядок подмножества слайсов выбирают таким образом, чтобы по порядку подмножества слайсов различные порции следовали друг за другом в направлении, повернутом относительно траекторий энтропийного кодирования энтропийных слайсов.In the mentioned method, the entropy coding of a plurality of entropy slices is performed in the order of a subset of slices, and the order of the subset of slices is chosen in such a way that, in the order of the subset of slices, different portions follow each other in a direction rotated relative to the trajectories of entropy coding of entropy slices.

В упомянутом способе массив выборок является текущим массивом выборок из последовательности массивов выборок, а энтропийное кодирование энтропийного слайса использует первую оценку вероятности, основанную на ранее кодированной части энтропийного слайса, и вторую оценку вероятности, полученную при энтропийном кодировании ранее кодированного кадра, относящегося к одному из массивов выборок, отличных от текущего массива выборок.In said method, the array of samples is the current array of samples from a sequence of arrays of samples, and the entropy encoding of the entropy slice uses a first probability estimate based on the previously encoded portion of the entropy slice and a second probability estimate obtained by entropy encoding the previously encoded frame belonging to one of the arrays. samples other than the current array of samples.

В четвертом аспекте настоящего изобретения обеспечен долговременный считываемый компьютером носитель для хранения данных, связанных с видео, содержащий: поток данных, хранимый на долговременном считываемом компьютером носителе, причем поток данных содержит энтропийно закодированную информацию, связанную с массивом выборок видео, причем энтропийно закодированная информация включает в себя множество энтропийных слайсов, причем каждый из множества энтропийных слайсов содержит энтропийно закодированные данные для соответствующей строки массива выборок, при этом энтропийное кодирование массива выборок включает в себя кодирование в поток данных, для текущего энтропийного слайса из множества энтропийных слайсов, используя экспоненциальное кодирование Голомба, значения разности позиций, связанного с начальной позицией в потоке данных текущего энтропийного слайса, причем значение разности позиций указывает разность между начальной позицией в потоке данных предыдущего энтропийного слайса и начальной позицией текущего энтропийного слайса, при этом текущий энтропийный слайс соответствует текущей строке массива выборок, а предыдущий энтропийный слайс соответствует предыдущей строке массива выборок, причем текущая и предыдущая строки являются последовательными строками массива выборок, и предыдущая строка находится пространственно выше текущей строки, начальная позиция текущего энтропийного слайса в потоке данных подлежит получению на основе суммы начальной позиции предыдущего энтропийного слайса и значения разности позиций, и энтропийное кодирование предыдущего энтропийного слайса предшествует энтропийному кодированию текущего энтропийного слайса.In a fourth aspect of the present invention, a durable computer-readable storage medium for storing video related data is provided, comprising: a data stream stored on a durable computer-readable medium, the data stream comprising entropy encoded information associated with an array of video samples, the entropy encoded information including: a plurality of entropy slices, each of the plurality of entropy slices containing entropy encoded data for a corresponding row of the array of samples, wherein the entropy encoding of the array of samples includes encoding into a data stream, for the current entropy slice of the plurality of entropy slices, using exponential Golomb coding, the values position difference associated with the start position in the data stream of the current entropy slice, and the position difference value indicates the difference between the start position in the data stream of the previous entropy slice and the start position of the current entropy slice, where the current entropy slice corresponds to the current row of the array of samples, and the previous entropy slice corresponds to the previous row of the array of samples, and the current and previous rows are consecutive rows of the array of samples, and the previous row is located spatially above the current row, the starting position of the current entropy slice in the data stream is to be obtained based on the sum of the starting position of the previous entropy slice and the position difference value, and the entropy encoding of the previous entropy slice precedes the entropy encoding of the current entropy slice.

В упомянутом долговременном считываемом компьютером носителе экспоненциальное кодирование Голомба обеспечивает строку бинов префикса и строку бинов суффикса, связанную со значением разности позиций, а строка бинов префикса идентифицирует один из множества диапазонов значений, к которому принадлежит значение разности позиций.In said durable computer-readable medium, exponential Golomb encoding provides a prefix bin string and a suffix bin string associated with the position delta value, and the prefix bin string identifies one of the plurality of value ranges to which the position delta value belongs.

Вышеописанные варианты осуществления являются просто иллюстративными для принципов настоящего изобретения. Подразумевается, что модификации и изменения описанных структур и деталей будут очевидны специалистам. Поэтому существует намерение, чтобы изобретение было ограничено только объемом формулы изобретения рассматриваемого патента, а не конкретными подробностями, представленными посредством описания и объяснения вариантов осуществления в данной работе.The above described embodiments are merely illustrative of the principles of the present invention. It is contemplated that modifications and changes to the structures and details described will be apparent to those skilled in the art. Therefore, it is intended that the invention be limited only by the scope of the claims of the patent in question, and not by the specific details provided through the description and explanation of the embodiments in this work.

Claims (45)

1. Декодер для восстановления массива выборок видео из энтропийно закодированного потока данных, причем декодер содержит:1. A decoder for restoring an array of video samples from an entropy encoded data stream, the decoder comprising: энтропийный декодер, сконфигурированный для энтропийного декодирования множества энтропийных слайсов в потоке данных, чтобы восстанавливать различные порции массива выборок видео, причем каждый из упомянутого множества энтропийных слайсов содержит энтропийно закодированные данные для соответствующей строки массива выборок,an entropy decoder configured to entropy decode a plurality of entropy slices in the data stream to recover different portions of the video sample array, each of said plurality of entropy slices containing entropy encoded data for a corresponding row of the sample array, при этом для энтропийного декодирования текущего энтропийного слайса из упомянутого множества энтропийных слайсов, энтропийный декодер сконфигурирован для:wherein, for entropy decoding of the current entropy slice from said plurality of entropy slices, the entropy decoder is configured to: декодирования значения разности позиций текущего энтропийного слайса, используя экспоненциальное кодирование Голомба, при этом значение разности позиций указывает разность между начальной позицией предыдущего энтропийного слайса в пределах упомянутого потока данных и начальной позицией текущего энтропийного слайса, причем текущий энтропийный слайс соответствует текущей строке массива выборок, а предыдущий энтропийный слайс соответствует предыдущей строке массива выборок, причем текущая и предыдущая строки являются последовательными строками упомянутого массива выборок, иdecoding the position difference value of the current entropy slice using exponential Golomb coding, wherein the position difference value indicates the difference between the start position of the previous entropy slice within said data stream and the start position of the current entropy slice, the current entropy slice corresponding to the current row of the array of samples, and the previous the entropy slice corresponds to the previous row of the array of samples, where the current and previous rows are consecutive rows of said array of samples, and получения начальной позиции в пределах потока данных текущего энтропийного слайса на основе суммы начальной позиции предыдущего энтропийного слайса и значения разности позиций, при этом энтропийное декодирование предыдущего энтропийного слайса предшествует энтропийному декодированию текущего энтропийного слайса.obtaining an initial position within the data stream of the current entropy slice based on the sum of the initial position of the previous entropy slice and the position difference value, wherein the entropy decoding of the previous entropy slice precedes the entropy decoding of the current entropy slice. 2. Декодер по п. 1, в котором энтропийное декодирование предыдущего энтропийного слайса непосредственно предшествует энтропийному декодированию текущего энтропийного слайса, так что никакой другой энтропийный слайс не декодируется энтропийно между энтропийным декодированием текущего и предыдущего энтропийных слайсов.2. The decoder of claim 1, wherein the entropy decoding of the previous entropy slice immediately precedes the entropy decoding of the current entropy slice such that no other entropy slice is entropy decoded between the entropy decoding of the current and previous entropy slices. 3. Декодер по п. 1, в котором экспоненциальное кодирование Голомба обеспечивает строку бинов префикса и строку бинов суффикса, связанную со значением разности позиций, а строка бинов префикса идентифицирует один из множества диапазонов значений, к которому принадлежит значение разности позиций.3. The decoder of claim 1, wherein the exponential Golomb encoding provides a prefix bin string and a suffix bin string associated with the position difference value, and the prefix bin string identifies one of the plurality of value ranges to which the position difference value belongs. 4. Декодер по п. 1, в котором каждая строка имеет одинаковое количество блоков упомянутого массива выборок.4. The decoder according to claim 1, wherein each row has the same number of blocks of said array of samples. 5. Декодер по п. 1, в котором энтропийный декодер сконфигурирован для выполнения для каждого энтропийного слайса энтропийного декодирования вдоль соответствующей траектории энтропийного кодирования, идущей параллельно вдоль строк блоков.5. The decoder of claim 1, wherein the entropy decoder is configured to perform, for each entropy slice, entropy decoding along a corresponding entropy encoding path running parallel along the block rows. 6. Декодер по п. 5, в котором энтропийный декодер сконфигурирован для энтропийного декодирования множества энтропийных слайсов в порядке подмножества слайсов, причем порядок подмножества слайсов выбирается таким образом, что по порядку подмножества слайсов различные порции следуют друг за другом в направлении, повернутом относительно траекторий энтропийного кодирования энтропийных слайсов.6. The decoder of claim 5, wherein the entropy decoder is configured to entropy decode the plurality of entropy slices in slice subset order, the order of the slice subset being chosen such that, in the order of the slice subset, different portions follow each other in a direction rotated relative to the trajectories of the entropy encoding of entropy slices. 7. Декодер по п. 5, в котором энтропийные слайсы подразделяются на фрагменты, и декодер дополнительно содержит деперемежитель для деперемежения фрагментов, а энтропийный декодер сконфигурирован для начала энтропийного декодирования энтропийных слайсов параллельно вдоль траекторий энтропийного кодирования даже до получения всего какого-либо из энтропийных слайсов.7. The decoder of claim 5, wherein the entropy slices are subdivided into slices, and the decoder further comprises a deinterleaver for deinterleaving the slices, and the entropy decoder is configured to start entropy decoding of the entropy slices in parallel along the entropy encoding paths, even before all of any of the entropy slices is obtained. . 8. Декодер по п. 1, в котором массив выборок является текущим массивом выборок из последовательности массивов выборок, а энтропийный декодер сконфигурирован для энтропийного декодирования энтропийного слайса с использованием первой оценки вероятности, основанной на ранее декодированной части этого энтропийного слайса, и второй оценки вероятности, полученной при энтропийном декодировании ранее декодированного кадра, относящегося к одному из массивов выборок, отличных от текущего массива выборок.8. The decoder of claim 1, wherein the sample array is a current sample array from a sequence of sample arrays, and the entropy decoder is configured to entropy decode an entropy slice using a first probability estimate based on a previously decoded portion of that entropy slice and a second probability estimate, obtained by entropy decoding a previously decoded frame belonging to one of the sample arrays other than the current sample array. 9. Декодер по п. 1, при этом декодер является по меньшей мере частью программируемого логического устройства, программируемой вентильной матрицы, микропроцессора, компьютера или аппаратного компонента.9. The decoder of claim 1, wherein the decoder is at least part of a programmable logic device, field-programmable gate array, microprocessor, computer, or hardware component. 10. Способ для восстановления массива выборок видео из энтропийно закодированного потока данных, причем способ содержит:10. A method for recovering an array of video samples from an entropy encoded data stream, the method comprising: энтропийное декодирование множества энтропийных слайсов в потоке данных, чтобы восстанавливать различные порции массива выборок видео, причем каждый из упомянутого множества энтропийных слайсов содержит энтропийно закодированные данные для соответствующей строки массива выборок,entropy decoding a plurality of entropy slices in the data stream to reconstruct different portions of the video sample array, each of said plurality of entropy slices containing entropy encoded data for a respective row of the sample array, при этом для энтропийного декодирования текущего энтропийного слайса из упомянутого множества энтропийных слайсов, энтропийное декодирование включает в себя:wherein, for entropy decoding of the current entropy slice from said plurality of entropy slices, the entropy decoding includes: декодирование значения разности позиций текущего энтропийного слайса, используя экспоненциальное кодирование Голомба, при этом значение разности позиций указывает разность между начальной позицией предыдущего энтропийного слайса в пределах упомянутого потока данных и начальной позицией текущего энтропийного слайса, причем текущий энтропийный слайс соответствует текущей строке массива выборок, а предыдущий энтропийный слайс соответствует предыдущей строке массива выборок, причем текущая и предыдущая строки являются последовательными строками упомянутого массива выборок, иdecoding the position difference value of the current entropy slice using exponential Golomb coding, wherein the position difference value indicates the difference between the start position of the previous entropy slice within said data stream and the start position of the current entropy slice, the current entropy slice corresponding to the current row of the array of samples, and the previous the entropy slice corresponds to the previous row of the array of samples, where the current and previous rows are consecutive rows of said array of samples, and получение начальной позиции в пределах потока данных текущего энтропийного слайса на основе суммы начальной позиции предыдущего энтропийного слайса и значения разности позиций, при этом энтропийное декодирование предыдущего энтропийного слайса предшествует энтропийному декодированию текущего энтропийного слайса.obtaining an initial position within the data stream of the current entropy slice based on the sum of the initial position of the previous entropy slice and the position difference value, wherein the entropy decoding of the previous entropy slice precedes the entropy decoding of the current entropy slice. 11. Способ по п. 10, в котором энтропийное декодирование предыдущего энтропийного слайса непосредственно предшествует энтропийному декодированию текущего энтропийного слайса, так что никакой другой энтропийный слайс не декодируется энтропийно между энтропийным декодированием текущего и предыдущего энтропийных слайсов.11. The method of claim 10, wherein the entropy decoding of the previous entropy slice immediately precedes the entropy decoding of the current entropy slice such that no other entropy slice is entropy decoded between the entropy decoding of the current and previous entropy slices. 12. Способ по п. 10, в котором экспоненциальное кодирование Голомба обеспечивает строку бинов префикса и строку бинов суффикса, связанную со значением разности позиций, а строка бинов префикса идентифицирует один из множества диапазонов значений, к которому это значение разности позиций принадлежит.12. The method of claim 10, wherein exponential Golomb encoding provides a prefix bin string and a suffix bin string associated with the position delta value, and the prefix bin string identifies one of a plurality of value ranges to which the position delta value belongs. 13. Способ по п. 10, в котором каждая строка имеет одинаковое количество блоков упомянутого массива выборок.13. The method of claim 10, wherein each row has the same number of blocks of said array of samples. 14. Способ по п. 10, в котором энтропийное декодирование каждого из множества энтропийных слайсов выполняется вдоль соответствующей траектории энтропийного кодирования, идущей параллельно вдоль строк блоков.14. The method of claim 10, wherein the entropy decoding of each of the plurality of entropy slices is performed along a corresponding entropy encoding path running parallel along the rows of blocks. 15. Способ по п. 14, в котором энтропийные слайсы подразделяются на фрагменты, и способ дополнительно содержит деперемежение фрагментов, и начало энтропийного декодирования энтропийных слайсов параллельно вдоль траекторий энтропийного кодирования даже до получения всего какого-либо из энтропийных слайсов.15. The method of claim 14, wherein the entropy slices are subdivided into slices, and the method further comprises deinterleaving the slices, and starting entropy decoding of the entropy slices in parallel along the entropy encoding paths, even before obtaining all of any of the entropy slices. 16. Способ по п. 14, в котором энтропийное декодирование множества энтропийных слайсов выполняется в порядке подмножества слайсов, причем порядок подмножества слайсов выбирается таким образом, что по порядку подмножества слайсов различные порции следуют друг за другом в направлении, повернутом относительно траекторий энтропийного кодирования энтропийных слайсов.16. The method of claim 14, wherein the entropy decoding of the plurality of entropy slices is performed in slice subset order, wherein the order of the slice subset is chosen such that, in the order of the slice subset, different portions follow each other in a direction rotated relative to the entropy encoding paths of the entropy slices. . 17. Способ по п. 10, в котором массив выборок является текущим массивом выборок из последовательности массивов выборок, а энтропийное декодирование энтропийного слайса использует первую оценку вероятности, основанную на ранее декодированной части этого энтропийного слайса, и вторую оценку вероятности, полученную при энтропийном декодировании ранее декодированного кадра, относящегося к одному из массивов выборок, отличных от текущего массива выборок.17. The method of claim 10, wherein the sample array is the current sample array from a sequence of sample arrays, and the entropy decoding of the entropy slice uses a first probability estimate based on a previously decoded portion of that entropy slice and a second probability estimate obtained from the entropy decoding previously a decoded frame that belongs to one of the sample arrays other than the current sample array. 18. Способ для кодирования массива выборок видео в энтропийно кодируемый поток данных, причем способ содержит:18. A method for encoding an array of video samples into an entropy encoded data stream, the method comprising: энтропийное кодирование множества энтропийных слайсов в энтропийно кодируемый поток данных, причем каждый из упомянутого множества энтропийных слайсов содержит энтропийно кодируемые данные для соответствующей строки массива выборок,entropy encoding a plurality of entropy slices into an entropy encoded data stream, wherein each of said plurality of entropy slices contains entropy encoded data for a corresponding row of the sample array, при этом энтропийное кодирование включает в себя кодирование в поток данных, для текущего энтропийного слайса из множества энтропийных слайсов, используя экспоненциальное кодирование Голомба, значения разности позиций, связанного с начальной позицией в пределах потока данных текущего энтропийного слайса, причем значение разности позиций указывает разность между начальной позицией в пределах потока данных предыдущего энтропийного слайса и начальной позицией текущего энтропийного слайса, при этомwherein the entropy encoding includes encoding into the data stream, for the current entropy slice of the plurality of entropy slices, using exponential Golomb coding, a position difference value associated with an initial position within the data stream of the current entropy slice, the position difference value indicating the difference between the initial position within the data stream of the previous entropy slice and the starting position of the current entropy slice, while текущий энтропийный слайс соответствует текущей строке массива выборок, а предыдущий энтропийный слайс соответствует предыдущей строке массива выборок, причем текущая и предыдущая строки являются последовательными строками упомянутого массива выборок,the current entropy slice corresponds to the current row of the array of samples, and the previous entropy slice corresponds to the previous row of the array of samples, and the current and previous rows are consecutive rows of the mentioned array of samples, начальная позиция текущего энтропийного слайса в пределах потока данных подлежит получению на основе суммы начальной позиции предыдущего энтропийного слайса и значения разности позиций, иthe start position of the current entropy slice within the data stream is to be obtained based on the sum of the start position of the previous entropy slice and the position difference value, and энтропийное кодирование предыдущего энтропийного слайса предшествует энтропийному кодированию текущего энтропийного слайса.the entropy encoding of the previous entropy slice precedes the entropy encoding of the current entropy slice. 19. Способ по п. 18, в котором энтропийное кодирование предыдущего энтропийного слайса непосредственно предшествует энтропийному кодированию текущего энтропийного слайса, так что никакой другой энтропийный слайс не кодируется энтропийно между энтропийным кодированием текущего и предыдущего энтропийных слайсов.19. The method of claim 18, wherein the entropy encoding of the previous entropy slice immediately precedes the entropy encoding of the current entropy slice such that no other entropy slice is entropy encoded between the entropy encoding of the current and previous entropy slices. 20. Способ по п. 18, в котором экспоненциальное кодирование Голомба обеспечивает строку бинов префикса и строку бинов суффикса, связанную со значением разности позиций, а строка бинов префикса идентифицирует один из множества диапазонов значений, к которому это значение разности позиций принадлежит.20. The method of claim 18, wherein exponential Golomb encoding provides a prefix bin string and a suffix bin string associated with the position delta value, and the prefix bin string identifies one of a plurality of value ranges to which the position delta value belongs. 21. Способ по п. 18, в котором каждая строка имеет одинаковое количество блоков упомянутого массива выборок.21. The method of claim 18, wherein each row has the same number of blocks of said sample array. 22. Способ по п. 18, в котором энтропийное кодирование каждого из множества энтропийных слайсов выполняется вдоль соответствующей траектории энтропийного кодирования, идущей параллельно вдоль строк блоков.22. The method of claim 18, wherein the entropy encoding of each of the plurality of entropy slices is performed along a corresponding entropy encoding path running parallel along the rows of blocks. 23. Способ по п. 22, в котором энтропийные слайсы подразделяются на фрагменты, и способ дополнительно содержит деперемежение фрагментов в поток данных.23. The method of claim 22, wherein the entropy slices are subdivided into chunks, and the method further comprises deinterleaving the chunks into a data stream. 24. Способ по п. 22, в котором энтропийное кодирование множества энтропийных слайсов выполняется в порядке подмножества слайсов, причем порядок подмножества слайсов выбирается таким образом, что по порядку подмножества слайсов различные порции следуют друг за другом в направлении, повернутом относительно траекторий энтропийного кодирования энтропийных слайсов.24. The method of claim 22, wherein the entropy encoding of the plurality of entropy slices is performed in slice subset order, wherein the order of the slice subset is chosen such that, in the order of the slice subset, different portions follow each other in a direction rotated relative to the entropy encoding paths of the entropy slices. . 25. Способ по п. 18, в котором массив выборок является текущим массивом выборок из последовательности массивов выборок, а энтропийное кодирование энтропийного слайса использует первую оценку вероятности, основанную на ранее кодированной части этого энтропийного слайса, и вторую оценку вероятности, полученную при энтропийном кодировании ранее кодированного кадра, относящегося к одному из массивов выборок, отличных от текущего массива выборок.25. The method of claim 18, wherein the sample array is the current sample array from a sequence of sample arrays, and the entropy encoding of the entropy slice uses a first probability estimate based on a previously coded portion of that entropy slice and a second probability estimate obtained from the entropy encoding previously an encoded frame that belongs to one of the sample arrays other than the current sample array. 26. Долговременный считываемый компьютером носитель для хранения данных, связанных с видео, содержащий:26. Non-volatile computer-readable media for storing video-related data, comprising: поток данных, хранящийся на этом долговременном считываемом компьютером носителе, при этом поток данных содержит энтропийно закодированную информацию, связанную с массивом выборок видео, причем энтропийно закодированная информация включает в себя множество энтропийных слайсов, каждый из упомянутого множества энтропийных слайсов содержит энтропийно закодированные данные для соответствующей строки массива выборок,a data stream stored on that durable computer-readable medium, wherein the data stream contains entropy encoded information associated with an array of video samples, the entropy encoded information including a plurality of entropy slices, each of said plurality of entropy slices containing entropy encoded data for a respective row array of samples, при этом энтропийное кодирование массива выборок включает в себя кодирование в поток данных, для текущего энтропийного слайса из множества энтропийных слайсов, используя экспоненциальное кодирование Голомба, значения разности позиций, связанного с начальной позицией в пределах потока данных текущего энтропийного слайса, причем значение разности позиций указывает разность между начальной позицией в пределах потока данных предыдущего энтропийного слайса и начальной позицией текущего энтропийного слайса, при этомwherein the entropy encoding of the array of samples includes encoding into the data stream, for the current entropy slice of the plurality of entropy slices, using exponential Golomb coding, a position difference value associated with an initial position within the data stream of the current entropy slice, the position difference value indicating the difference between the starting position within the data stream of the previous entropy slice and the starting position of the current entropy slice, while текущий энтропийный слайс соответствует текущей строке массива выборок, а предыдущий энтропийный слайс соответствует предыдущей строке массива выборок, причем текущая и предыдущая строки являются последовательными строками упомянутого массива выборок,the current entropy slice corresponds to the current row of the array of samples, and the previous entropy slice corresponds to the previous row of the array of samples, and the current and previous rows are consecutive rows of the said array of samples, начальная позиция текущего энтропийного слайса в пределах потока данных подлежит получению на основе суммы начальной позиции предыдущего энтропийного слайса и значения разности позиций, иthe start position of the current entropy slice within the data stream is to be obtained based on the sum of the start position of the previous entropy slice and the position difference value, and энтропийное кодирование предыдущего энтропийного слайса предшествует энтропийному кодированию текущего энтропийного слайса.the entropy encoding of the previous entropy slice precedes the entropy encoding of the current entropy slice. 27. Долговременный считываемый компьютером носитель по п. 26, в котором экспоненциальное кодирование Голомба обеспечивает строку бинов префикса и строку бинов суффикса, связанную со значением разности позиций, а строка бинов префикса идентифицирует один из множества диапазонов значений, к которому принадлежит значение разности позиций.27. The durable computer-readable medium of claim 26, wherein the exponential Golomb encoding provides a prefix bin string and a suffix bin string associated with the position difference value, and the prefix bin string identifies one of the plurality of value ranges to which the position difference value belongs.
RU2022120168A 2011-07-15 2022-07-22 Sample arrige encoding for low delay RU2787846C1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US61/508,477 2011-07-15

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
RU2021137966A Division RU2777499C1 (en) 2011-07-15 2021-12-21 Sample array encoding for low delay

Related Child Applications (1)

Application Number Title Priority Date Filing Date
RU2023100027A Division RU2023100027A (en) 2011-07-15 2023-01-09 SAMPLE ENCODING FOR LOW LATENCY

Publications (1)

Publication Number Publication Date
RU2787846C1 true RU2787846C1 (en) 2023-01-13

Family

ID=

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2093957C1 (en) * 1994-09-20 1997-10-20 Научно-производственное предприятие "Информационные технологии" Device for data compression
WO2003058945A2 (en) * 2002-01-14 2003-07-17 Nokia Corporation Coding dynamic filters
US20080013633A1 (en) * 2006-07-12 2008-01-17 Yan Ye Video compression using adaptive variable length codes
US20090175331A1 (en) * 2008-01-08 2009-07-09 Qualcomm Incorporated Two pass quantization for cabac coders
WO2009119888A1 (en) * 2008-03-28 2009-10-01 Sharp Kabushiki Kaisha Methods, devices and systems for parallel video encoding and decoding
EP2146343A1 (en) * 2008-07-16 2010-01-20 Deutsche Thomson OHG Method and apparatus for synchronizing highly compressed enhancement layer data
US20100092098A1 (en) * 2008-10-10 2010-04-15 Microsoft Corporation Reduced dc gain mismatch and dc leakage in overlap transform processing
WO2011042645A1 (en) * 2009-10-05 2011-04-14 France Telecom Methods for encoding and decoding images, corresponding encoding and decoding devices and computer programs

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2093957C1 (en) * 1994-09-20 1997-10-20 Научно-производственное предприятие "Информационные технологии" Device for data compression
WO2003058945A2 (en) * 2002-01-14 2003-07-17 Nokia Corporation Coding dynamic filters
US20080013633A1 (en) * 2006-07-12 2008-01-17 Yan Ye Video compression using adaptive variable length codes
US20090175331A1 (en) * 2008-01-08 2009-07-09 Qualcomm Incorporated Two pass quantization for cabac coders
WO2009119888A1 (en) * 2008-03-28 2009-10-01 Sharp Kabushiki Kaisha Methods, devices and systems for parallel video encoding and decoding
EP2146343A1 (en) * 2008-07-16 2010-01-20 Deutsche Thomson OHG Method and apparatus for synchronizing highly compressed enhancement layer data
US20100092098A1 (en) * 2008-10-10 2010-04-15 Microsoft Corporation Reduced dc gain mismatch and dc leakage in overlap transform processing
WO2011042645A1 (en) * 2009-10-05 2011-04-14 France Telecom Methods for encoding and decoding images, corresponding encoding and decoding devices and computer programs

Similar Documents

Publication Publication Date Title
RU2763532C2 (en) Encoding of sampling array for low latency
RU2787846C1 (en) Sample arrige encoding for low delay
RU2777499C1 (en) Sample array encoding for low delay