RU2666628C1 - Coding of samples array for low delay - Google Patents

Coding of samples array for low delay Download PDF

Info

Publication number
RU2666628C1
RU2666628C1 RU2018101438A RU2018101438A RU2666628C1 RU 2666628 C1 RU2666628 C1 RU 2666628C1 RU 2018101438 A RU2018101438 A RU 2018101438A RU 2018101438 A RU2018101438 A RU 2018101438A RU 2666628 C1 RU2666628 C1 RU 2666628C1
Authority
RU
Russia
Prior art keywords
entropy
slice
slices
coding
probability estimates
Prior art date
Application number
RU2018101438A
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=46548436&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=RU2666628(C1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by ДжиИ Видео Компрешн, ЭлЭлСи filed Critical ДжиИ Видео Компрешн, ЭлЭлСи
Application granted granted Critical
Publication of RU2666628C1 publication Critical patent/RU2666628C1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3068Precoding preceding compression, e.g. Burrows-Wheeler transformation
    • H03M7/3071Prediction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/97Matching pursuit coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/98Adaptive-dynamic-range coding [ADRC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/99Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals involving fractal coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4031Fixed length to variable length coding
    • H03M7/4037Prefix coding

Abstract

FIELD: data processing.SUBSTANCE: invention relates to means for encoding an array of samples. Entropy coding of the current part of the predetermined entropy slice is based not only on the corresponding estimates of the probability of a predetermined entropy slice, that adapt using the previously encoded part of the predetermined entropy slice, but also on the probability estimates, that are used for entropy coding of spatially adjacent, orderly entropy slices of the previous entropy slice in its neighboring part. Thereby estimate of probability used for entropy coding are adapted to the actual statistical information of the symbol more approximate, thus reducing the reduction in coding efficiency, usually caused by lower delay concepts. Time correlations are used additionally or alternatively.EFFECT: technical result is to reduce the delay in encoding the array of samples.20 cl, 4 tbl, 20 dwg

Description

Настоящая заявка имеет отношение к кодированию массива выборок (элементов дискретизации), такому как кодирование изображений или видео.This application relates to encoding an array of samples (sampling elements), such as encoding images or video.

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

Кодирование или декодирование LCU происходит при растровом сканировании, с помощью которого вероятность CABAC адаптируют к конкретным особенностям каждого изображения. Пространственные зависимости существуют между смежными LCU. Каждая LCU (наибольшая единица кодирования) зависит от ее левой, верхней, верхней-левой и верхней-правой соседних LCU, из-за различных компонент, например, вектора движения, предсказания, внутреннего предсказания и других. Из-за предоставления возможности распараллеливания при декодировании эти зависимости обычно необходимо прерывать или они прерываются в современных применениях.LCU encoding or decoding occurs during raster scanning, with which the probability of CABAC 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 neighboring LCUs, due to various components, for example, motion vector, prediction, intra prediction and others. Because of the ability to parallelize during decoding, these dependencies usually need to be interrupted or interrupted in modern applications.

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

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

Эту задачу обеспечивают с помощью содержимого прилагаемых независимых пунктов формулы изобретения.This task is provided by the contents of the attached 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, which 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 a spatially adjacent entropy in order of entropy slices of the previous entropy slice in its neighboring part, then the probability estimates used in entropy coding Manners adapt to the actual statistical information of the characters more closely, thereby reducing the reduction in coding efficiency typically caused by lower latency concepts. Temporary relationships can be used additionally or alternatively.

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

Дополнительно, вышеупомянутая зависимость от оценок вероятности, которые используются при энтропийном кодировании пространственно соседнего, по порядку энтропийных слайсов предыдущего энтропийного слайса, может вовлекать процесс адаптирования, состоящий из адаптирования оценок вероятности, непосредственно используемых при энтропийном кодировании текущего/предопределенного энтропийного слайса. Адаптирование оценки вероятности вовлекает использование только что закодированной части, то есть только что закодированного символа(ов), для адаптирования текущего состояния оценок вероятности к фактической статистической информации символов. С помощью этих мер инициализированные оценки вероятности адаптируются с некоторой скоростью адаптирования к фактической статистической информации символа. Данная скорость адаптирования увеличивается с помощью выполнения только что упомянутого адаптирования оценки вероятности, основываясь не только на кодируемом в настоящее время символе текущего/предопределенного энтропийного слайса, но также и в зависимости от оценок вероятности, которые были обнаружены в соседней части пространственно соседнего, по порядку энтропийных слайсов предыдущего энтропийного слайса. Снова, с помощью выбора пространственно соседней текущей части текущего энтропийного слайса и соседней части предыдущего энтропийного слайса, соответственно, волновая обработка данных все еще возможна. Преимуществом от соединения адаптирования собственной оценки вероятности по текущему энтропийному слайсу с адаптированием вероятности предыдущего энтропийного слайса является увеличение скорости, с которой происходит адаптирование к фактической статистической информации символов, поскольку множество символов, через которые перемещаются в текущем и предыдущем энтропийных слайсах, вносят вклад в адаптирование, а не просто символы текущего энтропийного слайса.Additionally, the aforementioned dependence on the probability estimates that are used in entropy coding of a spatially adjacent, in the order of entropy slices of the previous entropy slice, may involve an adaptation process consisting of adapting probability estimates directly used in entropy coding of the current / predetermined entropy slice. Adaptation of the probability estimate involves the use of the just-encoded part, that is, the just-encoded character (s), to adapt the current state of the probability estimates to the actual statistical information of the symbols. Using these measures, initialized probability estimates are adapted with some speed of adaptation to the actual statistical information of the symbol. This adaptation speed 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 were found in the neighboring part of the spatially neighboring, in the order of the entropy slices of the previous entropy slice. Again, by selecting the spatially adjacent current part of the current entropy slice and the neighboring part of the previous entropy slice, respectively, wave data processing is still possible. The advantage of combining the adaptation of one’s own probability estimate for the current entropy slice with the adaptation of the probability of the previous entropy slice is the increase in the rate at which the adaptation to the actual statistical information of the symbols occurs, since the many symbols through which the current and previous entropy slices move through contribute to the adaptation, not just the 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 example encoder;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

фиг. 17 схематично и примерно иллюстрирует возможное соединение между кадрами;FIG. 17 schematically and approximately 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 propagating 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, служит просто в качестве иллюстративной среды, в которой могут использоваться варианты осуществления настоящей заявки. Обобщения и альтернативные варианты для кодеров и декодеров в соответствии с вариантами осуществления настоящего изобретения также кратко обсуждаются.To facilitate understanding of the following measures to improve low latency with fewer disadvantages with respect to coding efficiency, the encoder in FIG. 1 is first described more generally without first discussing preferred concepts of embodiments of the present application and how it can be integrated into the embodiment of FIG. 1. It should be mentioned, however, that the structure shown in FIG. 1 serves merely 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 10 samples into an entropy encoded data stream 20. As shown in FIG. 1, the sample array 10 may be one of the sequences 30 of sample arrays, and the encoder may be configured to encode the sequence 30 into the data stream 20.

Кодер на фиг. 1 в общем случае обозначен ссылочным символом 40 и содержит предварительный кодер 42, за которым следует каскад 44 энтропийного кодирования, выход которого выводит поток 20 данных. Предварительный кодер 42 сконфигурирован для приема и обработки массива 10 выборок для описания его содержимого посредством синтаксических элементов с предопределенным синтаксисом, причем каждый синтаксический элемент является соответствующим одним из предопределенного набора типов синтаксических элементов, которые, в свою очередь, связанны с соответствующей семантикой.The encoder in FIG. 1 is generally indicated by a reference symbol 40 and comprises a pre-encoder 42, followed by an entropy encoding stage 44, the output of which is output from the data stream 20. The precoder 42 is configured to receive and process an array of 10 samples to describe its contents through syntax elements with a predetermined syntax, each syntax element being a corresponding one of a predetermined set of types of syntax elements, which, in turn, are associated with 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 an array of 10 samples using syntax elements, pre-encoder 42 may subdivide an array of 10 samples into coding units 50. The term “coding unit” may, for reasons indicated in more detail below, be alternatively referred to as “coding tree units” (CTUs). One possibility of how pre-encoder 42 can subdivide an array of 10 samples into coding units 50 is shown by way of example in FIG. 2. In accordance with this example, this division regularly divides the array of 10 samples into coding units 50, so that the latter are arranged in rows and columns, so that without a gap cover the entire array of 10 samples without overlap. In other words, pre-encoder 42 may be configured to describe each coding unit 50 by means of syntax elements. Some of these syntax elements may generate unit information for an additional unit of the corresponding coding unit 50. For example, by dividing into multiple trees, dividing information may describe the division of the corresponding coding unit 50 into prediction blocks 52, with the pre-encoder 42 associating the prediction mode with the associated prediction parameters for each of these prediction blocks 52. This prediction unit may allow prediction blocks 52 to be of different sizes, as illustrated in FIG. 2. The preliminary encoder 42 may also associate the residual subdivision information with the prediction blocks 52 to further subdivide the prediction blocks 52 into the residual blocks 54 to describe the prediction error for each prediction block 52. Thus, the precoder can be configured to generate a syntax description of the array of 10 samples in accordance with the hybrid coding scheme. However, as noted above, the just-mentioned method by which the pre-encoder 42 describes an array of 10 samples by means of syntax elements was presented merely for purposes of illustration, and it may also be embodied 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 spatial relationships between the contents of neighboring coding units 50 from an array of 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 upper and left neighboring elements serve for prediction, which is illustrated by arrows 60 and 62. In addition, the preliminary encoder 42 in the intra prediction method can already extrapolate the encoded contents of neighboring coding units 50 into the current coding unit 50 to obtain sample prediction current coding unit 50. As illustrated in FIG. 1, precoder 42 may, without spatial relationships, in the time domain, predict samples and / or syntax elements for the current coding unit 50 from previously encoded sample arrays, as illustratively shown in FIG. 1 by arrow 64. That is, this motion-compensated prediction can be used by the pre-encoder 42, and the motion vectors themselves can be a temporal prediction object from the motion vectors of previously encoded sample arrays.

То есть предварительный кодер 42 может описывать содержимое массива 10 выборок по отношению к единицам кодирования, и для этой цели он может использовать пространственное предсказание. Пространственное предсказание ограничено для каждой единицы 50 кодирования пространственно соседними единицами кодирования того же самого массива 10 выборок таким образом, что когда придерживаются порядка 66 кодирования среди единиц 50 кодирования массива 10 выборок, через соседние единицы кодирования, служащие в качестве опоры предсказания для пространственного предсказания, в общем случае уже перемещались по порядку 66 кодирования перед текущей единицей 50 кодирования. Как показывается на фиг. 2, порядок 66 кодирования, определенный среди единиц 50 кодирования, может, например, быть порядком растрового сканирования, согласно которому через единицы 50 кодирования перемещаются строка за строкой сверху вниз. Необязательно, подразделение массива 10 на массив тайлов может приводить к тому, что порядок сканирования 66 перемещается - по порядку растрового сканирования - через единицы 50 кодирования, которые создают один тайл, сначала перед переходом к следующему по порядку тайлу, который, в свою очередь, может также иметь тип растрового сканирования. Например, пространственное предсказание может вовлекать просто соседние единицы 50 кодирования в пределах строки единиц кодирования выше строки единиц кодирования, в пределах которой находится текущая единица 50 кодирования, и единицу кодирования в пределах той же самой строки единиц кодирования, но слева относительно текущей единицы кодирования. Как будет объяснено более подробно ниже, это ограничение на пространственную взаимосвязь/пространственное предсказание предоставляет возможность параллельной волновой обработки данных.That is, pre-encoder 42 may describe the contents of an array of 10 samples with respect to coding units, and it may use spatial prediction for this purpose. Spatial prediction is limited for each coding unit 50 to spatially adjacent coding units of the same array of 10 samples such that when coding order 66 is kept among the coding units 50 of the array of 10 samples, through adjacent coding units serving as a prediction support for spatial prediction, in general, coding order 66 has already been moved before the current coding unit 50. As shown in FIG. 2, the coding order 66 defined among coding units 50 may, for example, be a raster scan order according to which coding units 50 move line by line from top to bottom. Optionally, subdividing array 10 into an array of tiles can 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 tile in order, which, in turn, can also have a raster scan type. For example, spatial prediction may involve simply adjacent coding units 50 within a line of coding units above a line of coding units within which the current coding unit 50 is located, and a coding unit within the same line of coding units, but to the left of the current coding unit. As will be explained in more detail below, this restriction on spatial relationship / spatial prediction provides the possibility of parallel wave data processing.

Предварительный кодер 42 направляет синтаксические элементы к каскаду 44 энтропийного кодирования. Как только что изложено, некоторые из этих синтаксических элементов закодированы с предсказанием, то есть представляют ошибки предсказания. Предварительный кодер 42 может, таким образом, расцениваться как кодер с предсказанием. Кроме того, предварительный кодер 42 может быть кодером с преобразованием, сконфигурированном для преобразования остатков кодов предсказания содержимого единиц 50 кодирования.The precoder 42 directs the syntax elements to the entropy coding stage 44. As just stated, some of these syntax elements are prediction encoded, i.e. represent prediction errors. The precoder 42 may thus be regarded as a predictive encoder. In addition, the precoder 42 may be a transform encoder configured to transform the remainder of the prediction codes of the contents of the encoding 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 coding stage 44 is also shown in FIG. 1. As shown, the entropy coding stage 44 may optionally comprise symbolic representation for converting each of the syntax elements received from the preliminary encoder 42, the number of possible states of which exceeds the number of elements of the alphabet of characters, into a sequence of characters s i of the character alphabet based on which the means (engine) 44 of entropy coding works. In addition to this optional symbolic representation means 70, entropy encoding means 44 may include context selection means 72 and initialization means 74, probability estimation control means 76, probability estimation adaptation means 78 and entropy encoding core 80. The output of the entropy coding core generates the output of the entropy coding stage 44. In addition, entropy encoding core 80 contains two inputs, namely, one for receiving symbols s i of a sequence of symbols, and the other for receiving estimates of probability p i for each of the symbols.

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

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

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

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

Средство 78 адаптирования имеет доступ к парам символов si и соответствующим оценкам pi вероятности и, соответственно, адаптирует оценки вероятности в средстве 76 управления. То есть каждый раз, когда оценка вероятности применяется ядром 80 энтропийного кодирования для энтропийного кодирования соответствующего символа si в поток 20 данных, средство 78 адаптирования может изменять эту оценку вероятности в соответствии со значением данного текущего символа si, так, чтобы эта оценка pi вероятности была лучше адаптирована к фактической статистической информации символа, когда кодируют следующий символ, который связан с данной оценкой вероятности (посредством его контекста). То есть средство 78 адаптирования принимает оценку вероятности для выбранного контекста от средства 76 управления наряду с соответствующим символом si и адаптирует оценку pi вероятности, соответственно так, чтобы для следующего символа si того же самого контекста ci использовалась адаптивная оценка вероятности.The adaptation means 78 has access to symbol pairs s i and the corresponding probability estimates p i and accordingly adapts the probability estimates in the control means 76. 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 adaptation means 78 can change this probability estimate in accordance with the value of the current symbol s i so that this estimate p i The probability was better adapted to the actual statistical information of the symbol when the next symbol that is associated with a given probability estimate (through its context) is encoded. That is, the adaptation means 78 receives a probability estimate for the selected context from the control means 76 along with the corresponding symbol s i and adapts the probability estimate p i , respectively, 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, for example, is configured to operate in accordance with an arithmetic coding scheme or with an entropy coding scheme with a separation of a probability interval. In arithmetic coding, the entropy coding core 80, for example, continuously updates its state when it encodes a sequence of characters, with a state, for example, defined by a probability interval defined using a probability interval width value and a probability interval offset value. When operating in the pipeline concept, the entropy coding core 80, for example, divides the range of possible values of the probability estimates into different intervals with performing entropy coding with a fixed probability with respect to each of these intervals, thereby obtaining a substream for each of the sub-intervals whose coding efficiency, accordingly, it is configured for the associated probability interval. In the case of entropy encoding, the output of the data stream 20 is an arithmetically encoded data stream that transmits information to the decoding side, which provides the ability to emulate or re-execute the process of dividing this interval.

Естественно, возможно для состояния 44 энтропийного кодирования энтропийно кодировать всю информацию, то есть все синтаксические элементы/символы si, относящиеся к массиву 10 выборок, с помощью инициализации оценок вероятности просто один раз в его начале, и затем непрерывного обновления оценки вероятности с помощью средства 78 адаптирования. Это, однако, привело бы к созданию потока 20 данных, который пришлось бы последовательно декодировать на стороне декодирования. Другими словами, не было бы возможности, чтобы какой-либо декодер подразделял результирующий поток данных на несколько подпорций и декодировал подпорции параллельно. Это, в свою очередь, препятствовало бы всем усилиям уменьшить задержку.Naturally, it is possible for entropy coding state 44 to entropy encode all the information, that is, all syntactic elements / symbols s i belonging to an array of 10 samples, by initializing probability estimates just once at its beginning, and then continuously updating the probability estimate using 78 adaptations. This, however, would lead to the creation of 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 several sub-portions and decode the sub-portions in parallel. This, in turn, would prevent all efforts to reduce the delay.

Соответственно, как будет изложено более подробно ниже, удобно подразделять множество данных, описывающих массив 10 выборок, на так называемые энтропийные слайсы. Каждый из этих энтропийных слайсов, соответственно, охватывает отличающийся набор синтаксических элементов, относящихся к массиву 10 выборок. Если бы каскад 44 энтропийного кодирования, однако, энтропийно кодировал каждый энтропийный слайс полностью независимо друг от друга, сначала инициализируя оценку вероятности один раз с последующим постоянным обновлением оценок вероятности отдельно для каждого энтропийного слайса, то эффективность кодирования уменьшилась бы из-за увеличенного процента от данных, которые относятся и описывают массив 10 выборок, для которого используемые оценки вероятности (все же) менее точно адаптированы к фактической статистической информации символа.Accordingly, as will be described in more detail below, it is convenient to subdivide the data set describing an array of 10 samples into so-called entropy slices. Each of these entropy slices, respectively, covers a different set of syntax elements related to an array of 10 samples. If cascade 44 of entropy encoding, however, entropy encoded 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 an increased percentage of the data that relate and describe an array of 10 samples for which the used probability estimates are (nevertheless) less accurately adapted to the actual statistical information symbol but.

Для преодоления только что упомянутых проблем при согласовании необходимости низкой задержки кодирования с одной стороны и высокой эффективности кодирования с другой стороны, может использоваться следующая схема кодирования, которая далее описана по отношению к фиг. 3.In order to overcome the problems just mentioned while matching the need for a low coding delay on the one hand and high coding efficiency on the other, the following coding scheme can be used, which is described below 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 divided into portions, called hereinafter “entropy slices”. Unit 80 does not have to be without overlays. On the other hand, this division may at least partially correspond to the spatial division of the array of 10 samples into different portions. That is, according to subdivision 80, the syntax elements describing the array 10 of samples can be allocated to different entropy slices depending on the location of the coding unit 50, which refers to the corresponding syntax element. See, for example, FIG. 2. FIG. 2 shows an example subdivision of an array of 10 samples into different portions 12. Each portion corresponds to a corresponding entropy slice. As an example, it is shown that each portion 12 corresponds to a line of coding units 50. Other divisions, however, may also be performed. However, it is preferable if the division of the array of samples 10 into portions 12 adheres to the aforementioned encoding order 66, so that the portions 12 cover consecutive passes of the encoding units 12 in encoding order 66. Even so, however, it is not required that the start and end positions of the portion 12 in coding order 66 coincide with the left and right edges of the lines of coding units 50, respectively. It is not even necessary to match the boundaries of the coding units 50, which immediately follow one another, and the coding order 66.

С помощью такого разделения массива 10 выборок среди порций 12 определяют порядок 16 энтропийных слайсов, по которому порции 12 следуют друг за другом по порядку 66 кодирования. Кроме того, для каждого энтропийного слайса определяется соответствующая траектория 14 энтропийного кодирования, а именно, фрагмент траектории 66 кодирования, направленный к соответствующей порции 12. В примере на фиг. 2, где порции 12 совпадают со строками единиц 50 кодирования, траектории 14 энтропийного кодирования из каждой точки энтропийного слайса вдоль направления строки параллельны друг другу, то есть в данном случае с левой стороны в правую сторону.Using this division of the array of 10 samples among the portions 12, the order of 16 entropy slices is determined, according to which the portions 12 follow each other in coding order 66. In addition, for each entropy slice, a corresponding entropy encoding path 14 is determined, namely, a fragment of the encoding path 66 directed to the corresponding portion 12. In the example of FIG. 2, where the portions 12 coincide with the lines of the coding units 50, the entropy encoding paths 14 from each point of the entropy slice along the line 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 limit the spatial predictions performed by the precoder 42 and the context obtaining performed by the context selector 72 so that they do not cross the slice boundaries, that is, so that the spatial predictions and the context selection results are independent of the data 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 from each other, with the exception of the probability initialization / adaptation dependence below. However, it is also acceptable to provide the possibility that spatial predictions and context selection results, i.e. generally speaking dependencies, cross slice boundaries to use local / spatial interdependencies, since WPP processing can still be performed while precoding inversion is considered, then there is a restoration based on syntactic elements, and a choice of the entropy context. Until now, the entropy slices have somehow corresponded to “dependent slices”.

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

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

Затем, чтобы избежать вышеизложенного недостатка, который является результатом энтропийного кодирования каждого энтропийного слайса полностью независимо друг от друга, процессом энтропийного кодирования 82 управляют таким образом, что текущая часть, например, текущая единица кодирования текущего энтропийного слайса энтропийно кодируется, основываясь на соответствующих оценках вероятности текущего энтропийного слайса, которые адаптируются, используя ранее закодированные части текущего энтропийного слайса, то есть части текущего энтропийного слайса слева от текущей единицы 50 кодирования в случае на фиг. 2, и на оценках вероятности, которые используются при энтропийном кодировании пространственно соседних, по порядку 16 энтропийных слайсов предыдущих энтропийных слайсов в его соседней части, то есть в соседней единице кодирования.Then, in order to avoid the above drawback, which is the result of the entropy encoding of each entropy slice completely independently of each other, the entropy encoding process 82 is controlled so that the current part, for example, the current encoding unit of the current entropy slice, is entropy encoded based on the corresponding probability estimates of the current entropy slice, which adapt using previously encoded parts of the current entropy slice, that is, parts of the current en of the tropical 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 order of 16 entropy slices of previous entropy slices in its neighboring part, that is, in the neighboring coding unit.

Чтобы описать приведенную выше зависимость более четко, ссылка сделана к фиг. 4. Фиг. 4 иллюстрирует n-1-й, n-й и n+1-й энтропийные слайсы по порядку 16 энтропийных слайсов с помощью ссылочного знака 90. Каждый энтропийный слайс 90 охватывает последовательность синтаксических элементов, описывающих порцию 12 массива 10 выборок, с которой связан соответствующий энтропийный слайс 90. Вдоль траектории 14 энтропийного кодирования энтропийный слайс 19 сегментирован на последовательность сегментов 92, каждый из которых соответствует соответствующей одной из единиц 50 кодирования порции 12, к которой относится энтропийный слайс 90.To describe the above relationship more clearly, reference is made to FIG. 4. FIG. 4 illustrates the nth, nth, and n + 1th entropy slices in order of 16 entropy slices with a reference character 90. Each entropy slice 90 covers a sequence of syntax elements describing a portion 12 of an array of 10 samples to which a corresponding entropy slice 90. Along the path 14 of entropy encoding, the entropy slice 19 is segmented into a sequence of segments 92, each of which corresponds to one of the encoding units 50 of portion 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 entropy encoding of entropy slices 90 are continuously updated during phase 86 of continuing along entropy encoding path 14 so that the probability estimates are better and better adapted to the actual statistical information of the symbol of the corresponding entropy slice 90 - i.e., estimates probabilities are associated with the corresponding entropy slice. Although the probability estimates 94 used to entropy encode the entropy slice 90, continuation is continuously updated during phase 86, in FIG. 4 simply states of probability estimates 94 that appear in the start and end positions of segments 92 are illustrated and are further mentioned below. In particular, the state before entropy encoding of the first segment 92, which is initialized during the initial phase 84, is shown as 96, the state detected after encoding the first fragment is illustrated as 98, and the state detected after encoding the first two fragments is indicated as 100. Those the same elements are shown in FIG. 4 also for the entropy slice n-1 in order of 16 entropy slices, and the next entropy slice, i.e., the 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 dependency, the initial state 96 for entropy encoding of the nth entropy slice 90 is set depending on any intermediate state of probability estimates 94 detected during encoding of the previous entropy slice n-1. An “intermediate state” shall mean any state of probability estimates 94, excluding the initial state 96 and the final state detected after entropy encoding of the entire entropy slice n-1. By doing so, the entropy coding of the sequence of entropy slices 90 in order of 16 entropy slices can be parallelized with the degree of parallelization, which is determined by the ratio of the number of segments 92 preceding the state used to initialize the probability estimates 94 for 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. 4a, for example, is set equal to, by initialization, that is, adaptation, state 100, so as to set state 96 of the current entropy slice to state 100 of the previous entropy slice, illustrated by arrow 104.

С помощью этих мер энтропийное кодирование любого сегмента 92 после состояния 100 по порядку 14 траектории энтропийного кодирования будет зависеть от оценки 94 вероятности, которую адаптируют во время фазы 86 продолжения, основываясь на предыдущих фрагментах того же самого энтропийного слайса, а также от оценки вероятности, которая используется при энтропийном кодировании третьего сегмента 92 предыдущего энтропийного слайса 90.With these measures, the entropy coding of any segment 92 after state 100 in order 14 of the trajectory of the entropy coding will depend on the probability estimate 94, which 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 entropy coding of the third segment 92 of the previous entropy slice 90.

Соответственно, энтропийное кодирование энтропийных слайсов 90 может выполняться параллельно при конвейерном планировании. Единственными ограничениями, введенными на время планирования, является то, что энтропийное кодирование некоторого энтропийного слайса может начинаться сразу после окончания энтропийного кодирования a-го сегмента 92 предыдущего энтропийного слайса. Энтропийные слайсы 90 непосредственно друг после друга по порядку 16 энтропийных слайсов не подлежат каким-либо другим ограничениям относительно выравнивания по времени процедуры энтропийного кодирования во время фазы 86 продолжения.Accordingly, entropy encoding of entropy slices 90 may be performed in parallel with pipeline scheduling. The only restrictions introduced during planning are that the entropy coding of a certain entropy slice can begin immediately after the end of the entropy coding of the a-th segment 92 of the previous entropy slice. The 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 coding 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, a more intense compound is additionally and / or alternatively used. In particular, as illustrated in FIG. 4 using the usual arrows 106, adapting the probability estimate during the continuation phase 86 causes the data of the coding unit corresponding to some segment 92 to change the probability estimates 94 from the state at the beginning of the corresponding segment 92 to the end of this segment 92, thereby improving the approximation actual statistical information of the symbol as indicated above. That is, for the entropy slice n-1, adaptation 106 is performed that simply depends on the data of the entropy slice n-1, and the same applies to adaptation 106 of the probability estimate for the entropy slice n, etc. For example, you can perform initialization, as explained above using arrows 104, by performing adaptation 106 of the probability estimate without further mutual influence between the entropy slices 90. However, to speed up the approximation of the probability estimate to the actual statistical information of the symbol, adapting 106 the probability estimate of successive entropy slices can be connected so that adaptation 106 of the probability estimate of the previous n-1 entropy slice also influences or is taken into account when the cut adapts tat adapting probability estimates current entropy slice n. This is illustrated in FIG. 4, using arrow 108 facing away from state 110 of spatially adjacent probability estimates 94 for entropy encoding of the nth entropy slice 90 to state 100 of estimates 94 of the probability of entropy coding of the nth entropy slice 90. When using the above initialization of state 96, compound 108 probability adaptation can, for example, be used in any of the b probability estimation states that are found after entropy coding of b segments 92 of the previous entropy slice. More precisely, the probability estimates that are detected immediately after the entropy coding of the first segment 92 of the current entropy slice can be the result of the usual adaptation of 106 probability and by taking into account 108 states of the probability estimates resulting from the adaptation of 106 probability estimates during the entropy coding of (a + 1) segment 92 of the previous entropy slice n-1. “Accounting” may, for example, involve some averaging operation. An example will be further described below. In other words, state 98 of the probability estimates 94 of the entropy encoding 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 probability estimates 94 for entropy encoding of the current entropy slice n, which are adapted using adaptation 106, and the state before the entropy encoding of the (a + 1) th segment 92 of the previous entropy slice n-1, modified according to probability adaptation 106. Similarly, state 100 may be the result of averaging the result of adaptation 106 performed during entropy coding of the current entropy slice n, and the result of adapting the probability during entropy coding of the (a + 2) th segment 92 of the previous entropy slice n-1, etc.

Более конкретно, предполагают, чтоMore specifically, it is believed 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 (moreover, (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 () determines the order of 66 trajectories,

P{i, j} является оценкой вероятности, используемой при энтропийном кодировании единицы кодирования {i, j}; иP {i, j} is the probability estimate used in entropy coding 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 adaptation 106 of 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) ) by

Pp(n+1)=среднее значение (T(Pp(n)), T(P{i, j}1), ..., T(P{i, j}N)),P p (n + 1) = average value (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 more than 1 and {i, j} 1 ... N is chosen from (are within) any previous (in order of 16 entropy slices) entropy slice 90 and associated portion 12, respectively. The “mean value” function may be one of a weighted summation, a median function, etc. p (n) = {i, j} is the current coding unit, and p (n + 1) is next in accordance with coding orders 14 and 66, respectively. In the presented embodiments, 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, and p (n) = {i, j} is the current coding unit (that is, any of the second or subsequent coding units of the current entropy slice), that is, they are not located outside the wave.

В последнем альтернативном варианте планирование во времени энтропийного кодирования, когда параллельно выполняют энтропийное кодирование энтропийных слайсов 90, более интенсивно соединяется друг с другом. То есть во время фазы 86 продолжения следующий сегмент 92 на линии текущего энтропийного слайса может начинаться сразу после окончания соответствующего сегмента предыдущего энтропийного слайса, который расположен дальше по порядку траектории 14 энтропийного кодирования.In the latter alternative embodiment, the time planning of entropy coding, when entropy coding of entropy slices 90 is performed in parallel, is more intensively connected to each other. That is, during the continuation phase 86, the next segment 92 on the line of the current entropy slice may begin immediately after the end of the corresponding segment of the previous entropy slice, which is located further in the order of the entropy coding 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 the entropy slice 90, such as the nth, to initialize its probability estimates 94 before decoding the first segment 92 corresponding to the first coding unit / to the first block 50 of portion 12, corresponding to the nth entropy slice along the corresponding encoding path 14, using probability estimates found after entropy decoding of the second unit gical encoding / block 50 of portions 12, 16 corresponding to the order entropy slice, the previous entropy slice along the respective trajectories 14 encoding. Additionally, or alternatively, the decoder 40 and, in particular, the entropy encoding stage 44 can be configured to perform entropy decoding for each entropy slice 90 and adapt the probability estimates in such a way that, after the current encoding part / block / unit 50 of the current the entropy slice was 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 adapt to depending on this current part of the current entropy slice and probability estimates that are detected by entropy decoding of a neighboring encoding part / block / unit 50 of a spatially adjacent previous entropy slice, such as a slice in the aforementioned adjacent row in the second column to the right of the current part / block / coding unit current entropy slice.

Как стало ясно из вышеупомянутого обсуждения, оценка вероятности должна адаптироваться/управляться для каждого энтропийного слайса 50 отдельно. Это может быть сделано с помощью последовательной обработки энтропийных слайсов и сохранения состояний оценки вероятности в качестве состояний, которые для примера показаны и упомянуты относительно фиг. 4, то есть 96, 98, 100, 110 и 102, на соответствующем запоминающем устройстве 120 оценки вероятности (см. фиг. 1). Альтернативно, больше одного каскада 44 энтропийного кодирования может обеспечиваться для декодирования энтропийных слайсов параллельно. Это иллюстрируется на фиг. 5, где показано множество реализаций каскадов 44 энтропийного кодирования, каждый связан с соответствующим одним из энтропийных слайсов и соответствующими порциями 12 массива 10 выборок, соответственно. Фиг. 5 также иллюстрирует процесс декодирования и его возможные воплощения при использовании параллельных реализаций соответствующего каскада 130 энтропийного декодирования. На каждый каскад 130 энтропийного декодирования подается соответствующий один из энтропийных слайсов, передаваемых через поток 20 данных.As it became 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 states of the probability estimates as states that are shown and mentioned by way of example with respect to FIG. 4, i.e., 96, 98, 100, 110, and 102, on the corresponding probability estimation memory 120 (see FIG. 1). Alternatively, more than one entropy encoding stage 44 may be provided for decoding entropy slices in parallel. This is illustrated in FIG. 5, where a plurality of implementations of entropy encoding cascades 44 are shown, each is associated with a corresponding one of the entropy slices and corresponding 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. For each stage 130 of entropy decoding, a corresponding one of the entropy slices is transmitted through the data stream 20.

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

Фиг. 5 показывает в иллюстративных целях также возможный порядок перемещения для перемещения через результаты возможного разделения единиц 50 кодирования, такой как порядок 140 перемещения, определенный среди блоков 52 предсказания в пределах одной единицы 50 кодирования. Для всех этих блоков 52 предсказания соответствующие синтаксические элементы содержатся в пределах соответствующего сегмента 92 и соответствуют значениям этих синтаксических элементов, оценки 94 вероятности адаптируются во время перемещения по траектории 140, причем адаптирование во время перемещения через единицы 50 кодирования определяется вышеупомянутым «T». В CABAC согласно H.264 и HEVC, «T» выполняют, основываясь на таблице, то есть «таблице маршрута», определяющей переходы из текущего состояния оценки вероятности для текущего контекста к следующему состоянию в зависимости от текущего значения символа, связанного с этим контекстом.FIG. 5 shows, for illustrative purposes, also a possible movement order for moving through the results of a possible separation of coding units 50, such as a moving order 140 defined among prediction units 52 within a single 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, probability estimates 94 are adapted while moving along the path 140, and adaptation while moving through coding units 50 is determined by the aforementioned “T”. In CABAC according to H.264 and HEVC, “T” is performed based on a table, that is, a “route table” that defines 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 this context.

Перед переходом на фиг. 6, которая показывает вариант осуществления декодера, соответствующий варианту осуществления кодера на фиг. 1, нужно отметить, что предсказывающая сущность предварительного кодера 42 служит просто иллюстративным вариантом осуществления. В соответствии даже с альтернативными вариантами осуществления, предварительный кодер 42 может быть оставлен с синтаксическими элементами, с которыми работает каскад 44 энтропийного кодирования, которые являются, например, исходными типовыми значениями массива 10 выборок. Даже альтернативно, предварительный кодер 42 может быть сконфигурирован для формирования разложения поддиапазонов массива 10 выборок, так как в JPEG. Дополнительная сущность средства 72 выбора контекста была уже упомянута выше. То же самое применяется относительно средства инициализации 74. То же самое может реализовываться по-другому.Before proceeding to FIG. 6, which shows an embodiment of a decoder corresponding to an embodiment of the encoder of FIG. 1, it should be noted that the predictive nature of the preliminary encoder 42 serves merely as an illustrative embodiment. In accordance with alternative embodiments, the pre-encoder 42 may be left with syntax elements that the entropy coding stage 44 operates with, which are, for example, the original sample values of the array of 10 samples. Even alternatively, pre-encoder 42 may be configured to decompose the subbands of the array of 10 samples, as in JPEG. An additional entity of the context selector 72 has already been mentioned above. The same applies with respect to the initialization means 74. The same may 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. Figure 6 shows that the design of decoder 200 essentially reflects the design of encoder 40. That is, decoder 200 comprises an input 202 for receiving a data stream 20, followed by a series connection of the entropy decoding stage 204 and creation means 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 creation tool 206, which in turn requests the syntax elements from the entropy decoding stage 204 using the corresponding request 208. In other words, the creation tool 206 is also responsible for analyzing the stream of syntax elements created by the preliminary encoder 42 in the limits of the encoder. Accordingly, the authoring tool 206 sequentially requests syntax elements from the entropy decoding stage 204. The entropy decoding stage 204 has essentially the same structure as the entropy encoding stage 44. Accordingly, the same reference signs of the internal blocks of the entropy decoding stage 204 are again used. The symbolic means 70, if present, converts the syntax elements requests into symbol requests, and the entropy decoding core 80 responds with the corresponding symbol value si, the means 70 representations in symbolic form displays the sequence of received characters forming the actual words of the characters with syntactic elements, and directs them to the means 206 creation. Creation means 206 restores an array 10 of samples from a stream of syntax elements received from entropy decoding stage 204, such as described above, using prediction decoding, etc. More specifically, the creation tool 206 also uses the encoding order 66 and performs decoding on the coding units to perform predictions 60, 62, and 64. One or more predictions for the syntax elements or for sample values are combined, for example, summed, if desired, using the remainder of the prediction derived from the syntax elements of a stream of syntax elements. The entropy decoding core 80, as well as the entropy coding core 80 supports the arithmetic decoding concept or the entropy decoding concept with a separation of the probability interval. In the case of arithmetic decoding, entropy decoding core 80 may continuously update the internal state in the form of a partial value of the interval width and such a value as an offset value indicative of this partial interval. The update is performed using an inbound data stream. The current partial interval is subdivided similarly to the entropy coding core 80 using the estimate pi probabilities provided for each character si by means of a context selector 72 along with a probability estimation control means 76. The adaptation means 78 performs the adaptation of the probability estimate using the value si decoded character to update p valuesi context probability estimates ci, associated with the character siusing the context selector 72. Initialization using initialization means 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. At step 230, an array of 10 samples is divided into entropy slices. See, for example, FIG. 8. FIG. 8 shows a data stream 20 that arrives at input 202 and, in particular, entropy slices 90 contained therein. At step 230, each of these entropy slices 90 is associated with a portion 12, this corresponding entropy slice 90 is connected 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. The division of the array of samples, or more precisely, the binding of the entropy slices 90 with their corresponding portions 12, can be performed using the creation tool 206. Linking can be achieved through various measures, such as side information contained in the data stream 20 in non-entropy encoded portions, or by definition.

Энтропийные слайсы 90 затем в процессе энтропийного декодирования 232 энтропийно декодируют способом, который отражает обработку 82 кодирования, а именно, с выполнением для каждого энтропийного слайса 90 начальной фазы 234 и фазы 236 продолжения с инициализацией оценки вероятности и адаптированием тем же способом и в тех же самых реализациях, как в процедуре кодирования.The entropy slices 90 are then, in the process of entropy decoding 232, entropy decoded in a manner that reflects the encoding processing 82, namely, for each entropy slice 90, performing an initial phase 234 and a continuation phase 236 with initialization of the probability estimate and adaptation in the same way and in the same implementations, as in the encoding 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 implementations 130 of the entropy decoding stage shown in FIG. 5 may each be embodied, as shown with respect to the entropy decoding stage 204 in FIG. 6. A probability estimator 240 may be used to store the state of the probability estimates for use in the entropy decoding stage 130 responsible for entropy decoding of a subsequent entropy slice in entropy encoding order 16.

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

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

Текущая 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, denoted by x, is assumed to be entropy encoded using a probability estimate p 1 that is adapted before the entropy coding of the left-handed LCUs to the left of the LCU x is completed. However, if the 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 can be provided when adapting the probability.

Как описано выше, при энтропийном декодировании и энтропийном кодировании энтропийных слайсов новые оценки вероятности вычисляются перед кодированием или декодированием каждой LCU с помощью уже существующих вероятностей (оценок вероятности) от других LCU. Точнее, адаптирование вероятности выполняется не только от любых предшествующих LCU текущего энтропийного слайса, но также и от LCU энтропийных слайсов, предшествующих по порядку энтропийных слайсов. Этот подход снова представлен на фиг. 9. Начальная вероятность текущей LCU, которая обозначена X на фиг. 9, может вычисляться соответственно:As described above, in entropy decoding and entropy encoding of entropy slices, new probability estimates are computed before encoding or decoding each LCU using existing probabilities (probability estimates) from other LCUs. More precisely, probability adaptation is performed not only from any previous LCUs of the current entropy slice, but also from LCUs of entropy slices preceding the order of entropy slices. This approach is again presented 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 LCU weighting factors.

Протестировано, какое взвешивание вероятностей обеспечивает лучшие результаты. В данном эксперименте использовались только соседние LCU. Исследование показывает использование взвешивания: 75% от левой LCU и 25% от верхней правой LCU. На фиг. 10-13 представлены результаты. Графики, озаглавленные, используя «prob. Adapt.», используют описанное выше адаптирование вероятности.It is 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. Charts entitled using prob. Adapt. ”, Use the probability adaptation described above.

Однако при адаптировании оценки вероятности могут использоваться не только смежные блоки. У каждой ближайшей LCU есть собственные соседи, использование которых для оптимизации вероятности может быть существенным. Другими словами, могут применяться не только LCU из ближайшей верхней строки. На фиг. 9 можно видеть пример, в котором в качестве источников оценок вероятности были взяты сначала соседи и могут быть взяты каждая верхняя правая LCU каждой следующей верхней строки, сравни p5 и pk.However, when adapting a probability estimate, not only adjacent blocks can be used. Each nearest LCU has its own neighbors, the use of which to optimize the probability can be significant. In other words, not only the LCUs from the nearest top row can be applied. In FIG. 9 you can see an example in which neighbors were taken as the sources of probability estimates 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 was introduced using the foregoing recalculation of probability or the adaptation of a probability estimate. A new calculation of the probability estimate occurs, for example, in three stages: first, the probability estimates of each candidate must be obtained from each state of the context. This is done by saving to the storage device 120 and 240, respectively, or by directing the parallel processing of decoding the entropy slice n in such a way 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 adapted probability estimates of various entropy slices. As a last step, the new context state is converted from p new and replaces the old one. That is, the probability estimation control means 76 borrows new probability estimates obtained in this way. This implementation for each syntax element, in particular, using the operations of multiplication, can extremely increase the complexity. The only way to eliminate this drawback is to try to avoid these three steps. If the number of candidates and their weights are determined, then a pre-calculated table can be approximated for each situation. Thus, only one simple access to the table data is needed using candidate indices (context states).

Утверждается, что эта методика может обеспечивать хорошие результаты для обоих применений - с использованием и без использования энтропийных слайсов. Первое применение использует только один слайс в кадре, таким образом адаптирование вероятности оптимизировано без каких-либо других изменений. В случае энтропийных слайсов адаптирование вероятностей происходит в пределах каждого слайса, независимо от других слайсов. Это учитывает быстрое изучение вероятностей текущей LCU.It is argued that this technique can provide good results for both applications - with and without 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 the other slices. This allows for a quick study of the probabilities of the current LCU.

В вышеупомянутом описании также представлено использование второй LCU верхней линии, то есть использование второй LCU для инициализации оценки вероятности. Параллелизация кодирования и декодирования возможна, если обеспечиваются некоторые условия битового потока, которые упомянуты выше (энтропийных слайсов). Зависимость вероятностей CABAC между LCU должна быть устранена. Волновая параллельная обработка важна, чтобы сделать первую LCU каждой линии независимой от последней LCU предыдущей линии. Это может обеспечиваться, если, например, вероятности CABAC повторно инициализируются в начале каждой линии LCU. Однако, этот способ не оптимален, потому что каждая повторная инициализация теряет обеспеченные вероятности CABAC, которые адаптированы к специфическим особенностям изображения. Этот недостаток можно уменьшать, если инициализация вероятностей CABAC первой LCU каждой линии происходит с помощью вероятностей, полученных после второй LCU предыдущей линии.The above description also describes the use of a second upper line LCU, that is, the use of a second LCU to initiate a probability estimate. Parallelization of encoding and decoding is possible if certain conditions of the bit stream, which are mentioned above (entropy slices), are provided. The CABAC probability relationship 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 beginning of each LCU line. However, this method is not optimal, because each reinitialization loses the provided CABAC probabilities, which are adapted to the specific features of the image. This disadvantage can be reduced if the initialization of the CABAC probabilities of the first LCU of each line occurs using the probabilities obtained after the second LCU of the previous line.

Как описано выше, увеличение скорости адаптирования вероятности может обеспечиваться с помощью соединения адаптирования вероятностей пространственно соседних энтропийных слайсов. В частности, другими словами, приведенное выше обсуждение также предвосхищает декодер, такой как декодер на фиг. 6, для восстановления массива (10) выборок из энтропийно закодированного потока данных, сконфигурированный для энтропийного декодирования (выполняемого с помощью каскада энтропийного декодирования) множества энтропийных слайсов в потоке данных энтропийного кодера для восстановления различных порций (12) массива выборок, связанных с энтропийными последовательностями, соответственно, с помощью выполнения для каждого энтропийного слайса энтропийного декодирования вдоль соответствующей траектории (14) энтропийного кодирования, используя соответствующие оценки вероятности, адаптирования (выполняемого с помощью средства 78 адаптирования) соответствующих оценок вероятности вдоль соответствующей траектории энтропийного кодирования, используя ранее декодированную часть соответствующего энтропийного слайса, запуска энтропийного декодирования множества энтропийных слайсов последовательно, используя порядок (16) энтропийных слайсов, и выполнения при энтропийном декодировании предопределенного энтропийного слайса энтропийного декодирования текущей части (x) предопределенного энтропийного слайса, основываясь на соответствующих оценках вероятности предопределенного энтропийного слайса, которые адаптируются, используя ранее декодированную часть предопределенного энтропийного слайса (включающего в себя p1, например), и оценках вероятности, которые используются при энтропийном декодировании пространственно соседнего, по порядку энтропийных слайсов предыдущего энтропийного слайса (слайса, содержащего X, например) в соседней части (такой как p4) пространственно соседнего энтропийного слайса.As described above, an increase in the probability adaptation speed 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 restoring an array (10) of samples from an entropy encoded data stream, configured for entropy decoding (performed by the cascade of entropy decoding) of a multitude of entropy slices in a data stream of an entropy encoder to restore various portions (12) of an array of samples associated with entropy sequences, accordingly, by performing entropy decoding for each entropy slice along the corresponding entropy coding path (14), using corresponding probability estimates, adapting (performed using adaptation tool 78) corresponding probability estimates along the corresponding path of entropy coding, using the previously decoded portion of the corresponding entropy slice, triggering the entropy decoding of the set of entropy slices sequentially, using the order of (16) entropy slices, and performing at the entropy decoding a predetermined entropy slice entropy decoding of the current part (x) is predetermined entropy slice, based on the corresponding probability estimates of the predetermined entropy slice, which are adapted using the previously decoded part of the predetermined entropy slice (including p1, for example), and probability estimates, which are used in the entropy decoding of a spatially adjacent entropy slice of the previous entropy a slice (a slice containing X, for example) in a neighboring part (such as p4) of a spatially adjacent entropy slice.

Различные порции могут быть строками блоков (например, LCU или макроблоков) массива выборок. Последний может быть видео. Траектория энтропийного кодирования может распространяться по строкам. Энтропийное кодирование, и таким образом также адаптирование вероятности, может адаптироваться к контексту. Порядок энтропийных слайсов может в общем случае выбираться таким образом, чтобы по порядку энтропийных слайсов различные порции следовали друг за другом в направлении (16), повернутом относительно траекторий (14) энтропийного кодирования энтропийных слайсов, которые, в свою очередь, распространяются по существу параллельно друг другу. С помощью этих мер «волна» в настоящее время декодируемых частей (таких как p1, p4, p5+1 и pk на данной фигуре) энтропийных слайсов может в общем случае располагаться вдоль линии, формирующей угол к направлению энтропийного слайса, который меньше, чем направление последовательности порций. Волне, вероятно, придется иметь наклон 1y на 2x для положений блока для того, чтобы верхний левый опорный элемент всегда был там для всех потоков, обрабатывающих слайсы параллельно.Different portions may be block rows (for example, LCUs or macroblocks) of an array of samples. The latter may be a video. The trajectory of entropy coding can propagate along the lines. Entropy coding, and thus also adaptation of probability, can adapt to the context. The order of entropy slices can generally be chosen so that, in order of entropy slices, different portions follow each other in a direction (16) that is rotated relative to the paths (14) of entropy encoding of entropy slices, which, in turn, propagate essentially parallel to each other to a friend. Using these measures, the “wave” of the currently decoded parts (such as p1, p4, p5 + 1 and pk in this figure) of the entropy slices can generally be located along a line forming an angle to the direction of the entropy slice, which is smaller than the direction serving sequences. The wave will probably have to have a 1y to 2x slope for the block positions so that the upper left support element is always there for all threads processing slices in parallel.

Декодер может быть сконфигурирован для выполнения для каждого энтропийного слайса энтропийного декодирования вдоль соответствующей траектории энтропийного кодирования в единицах частей порции массива выборок соответствующего энтропийного слайса так, чтобы энтропийные слайсы состояли из одного и того же количества частей, соответственно, и последовательность частей порций вдоль траекторий энтропийного слайса была выровнена друг относительно друга в направлении, поперечном к траекториям энтропийного слайса. Текущая часть порции предопределенного энтропийного слайса принадлежит результирующей сетке из частей (например, LCU или макроблоков). При выполнении для каждого энтропийного слайса энтропийного декодирования вдоль соответствующей траектории энтропийного кодирования, декодер может сохранять смещения/сдвиги между начальными временами между непосредственно следующими друг за другом энтропийными слайсами по порядку энтропийных слайсов так, чтобы волна в настоящее время декодируемых частей энтропийных слайсов формировала диагональ, такую как соответствующая линии с наклоном положений блоков 0,5x по отношению к траектории энтропийного слайса и направлению по порядку энтропийных слайсов. Смещение/сдвиг могут соответствовать двум частям для всех пар непосредственно следующих друг за другом энтропийных слайсов. Альтернативно, декодер может просто не допускать, чтобы расстояние между в настоящее время декодируемыми частями непосредственно следующих друг за другом (и непосредственно граничащих, пока рассматривают их порции 12 массива выборок) энтропийных слайсов стало меньше двух частей. См., фигуру выше: как только часть/блок p4 декодирована, часть/блок справа от нее декодируется согласно порядку 16 траекторий, и одновременно, если имеется, X декодируется или любая из предшествующих частей/блоков). С помощью этих мер декодер может использовать оценки вероятности, которые уже адаптированы, основываясь на содержимом части/блока p4, то есть части в пределах пространственно соседней порции, выровненной к части порции 12 предопределенного энтропийного слайса, следующей за текущей частью X по порядку 16 траекторий для определения оценок вероятности, которые будут использоваться при декодировании X. В случае постоянного смещения при декодировании непосредственно следующих друг за другом энтропийных слайсов двух частей, декодер имеет возможность использовать оценки вероятности, которые уже адаптированы, основываясь на содержимом части/блока p4 одновременно для энтропийного декодирования последующей части (то есть части справа от p4) пространственно соседнего энтропийного слайса.The decoder can be configured to perform entropy decoding for each entropy slice along the corresponding entropy coding path in units of portions of the sample array of the corresponding entropy slice so that the entropy slices consist of the same number of parts, respectively, and the sequence of portions along the paths of the entropy slice was aligned relative to each other in a direction transverse to the trajectories of the entropy slice. The current portion of the portion of the predefined entropy slice belongs to the resulting grid of parts (for example, LCUs or macroblocks). When entropy decoding is performed for each entropy slice along the corresponding entropy coding path, the decoder can save the offsets / shifts between the initial times between the directly following successive entropy slices in the order of the entropy slices so that the wave of the currently decoded parts of the entropy slices forms a diagonal such as the corresponding line with a slope of the positions of 0.5x blocks with respect to the trajectory of the entropy slice and the direction in order ntropiynyh slices. The offset / shift can correspond to two parts for all pairs of immediately following entropy slices. Alternatively, the decoder may simply prevent the entropy slices from becoming smaller than two parts between the currently decoded portions immediately following one after another (and directly bordering while the portions of the 12 array of samples are considering them). See the figure above: as soon as 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 there is, X is decoded or any of the previous parts / blocks). Using these measures, the decoder can use probability estimates that are already adapted based on the contents of part / block p4, that is, the part within a spatially adjacent portion aligned with the portion of portion 12 of the predetermined entropy slice following the current part X in order of 16 paths for determining probability estimates that will be used when decoding X. In the case of constant bias when decoding the directly following entropy slices of two parts, the decoder can the ability to use probability estimates that are already adapted based on the contents of the p4 part / block at the same time to entropy decode the next part (i.e. the part to the right of p4) of the spatially adjacent entropy slice.

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

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

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

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

Для лучшего понимания контекста вышеупомянутых вариантов осуществления и, в частности, описанных ниже дополнительных вариантов осуществления, а именно - использование LCU, можно сначала взглянуть на структуру H.264/AVC.For a better understanding of the context of the aforementioned embodiments, and in particular the additional embodiments described below, namely the use of LCUs, you can 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 collected 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 images. An encoded frame may be an entire frame or a single field. Each image is divided into fixed-sized macroblocks (in HEVC: LCU). Several macroblocks or LCUs can be combined together into one slice. An image is therefore a collection of one or more slices. The purpose of this data separation is to enable independent decoding of samples in the image area that is represented by this slice, without using data from other slices.

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

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

Прежде всего, главная цель состоит в создании битового потока, который подходит для процесса параллельного кодирования и декодирования. Нужно учитывать, что 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 the process of parallel encoding and decoding. Keep in mind that LCUs can only be encoded if neighboring LCUs (left, top, top-right) are already available as an encoded version to use spatial and motion information for prediction. To allow parallelism using separation, a shift between slice processing (e.g., a shift of 2 LCUs, which is typical of a wave approach) should be implemented. Due to the adaptation of the CABAC probabilities, the LCU uses the probabilities that are available from the previous coded LCU. Regarding the order of the raster scan, the problem that arises with the separation of the image is to avoid parallelism, since the first LCU of each line depends on the last LCU of the previous line. This is influenced by the fact that the dependencies of CABAC probabilities between slices must 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 bit rate may increase.

Затем каждый слайс генерирует свой собственный битовый субпоток, который может помещаться последовательно в главный поток. Но необходимо передавать в декодер специальную информацию, так, чтобы эти слайсы и их положения в главном потоке могли правильно идентифицироваться. Поддерживаются два сценария сигнализации. Информация расположения может храниться в заголовке изображения (информация длины слайса) или в каждом заголовке слайса (точки, как начало кода). Выравнивание байта в конце каждого энтропийного слайса и информация расположения увеличивают потери.Each slice then generates its own bitstream substream, which can be placed sequentially in the main stream. But it is necessary to transmit 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. Location information can be stored in the image header (slice length information) or in each slice header (points, as the beginning of the code). Byte alignment at the end of each entropy slice and location information increases the loss.

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

В менее строгих сценариях с низкой задержкой, однако, возможность сохранения длины слайса (смещений) кажется более подходящей. Одним известным способом кодирования такой информации является кодирование с переменной длиной кода (VLC) или экспоненциальное кодирование Голомба. Главной особенностью VLC является добавление пустой информации (нолей) перед реальной информацией. С помощью этих нолей может определяться код, который хранит информацию о длине смещения. Авторы предлагают другую методику для реализации этого, схема которой показана на фиг. 15, где =EntropySliceSize - количество байтов, содержащихся в энтропийном слайсе. Каждое следующее X (смещение) определяется как разность в размере между предыдущим уже закодированным и переданным смещением энтропийного слайса и текущим слайсом. Главные особенности этой концепции формируются из разностных значений, в зависимости от размера X, таким образом количество данных может уменьшаться и составлять 3 бита, что предоставляет возможность извлекать точную информацию о размере каждого энтропийного слайса с помощью декодера. По сравнению с VLC может быть получена экономия количества битов в заголовке энтропийного слайса.In less stringent low-latency scenarios, however, the ability to preserve the slice length (offsets) seems more appropriate. One known method for encoding such information is variable-length coding (VLC) or Golomb exponential coding. The main feature of VLC is the addition of empty information (zeros) before real information. Using these zeros, a code can be defined that stores information about the offset length. The authors propose another technique for implementing this, a diagram 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 offset of the entropy slice and the current slice. The main features of this concept are formed from 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, a reduction in the number of bits in the header of the entropy slice can be obtained.

То есть, в соответствии с аспектом фиг. 15, например, обеспечивается концепция энтропийного кодирования информационного сигнала, которая предоставляет возможность более высокой степени сжатия, несмотря на возможность параллельную обработки, по сравнению с доступными в настоящее время концепциями. В соответствии с этим аспектом, энтропийно кодированная секция 20 потока данных, в который кодируется массив выборок, содержит энтропийные слайсы, такие как 90 на фиг. 8, в которые различные порции 12 массива выборок энтропийно кодируются, и заголовок, иллюстрированный пунктирными линиями 300 на фиг. 9, содержит информацию, которая показывает начальные позиции 302 энтропийных слайсов 90, измеренные в области энтропийного декодирования, в пределах энтропийно закодированного потока данных, данная информация содержит для предопределенного энтропийного слайса разностное значение, раскрывающее разность между начальной позицией предыдущего энтропийного слайса n-1 и начальной позицией предопределенного энтропийного слайса n, поток данных включает в себя данные разностные значения, как последовательность битов VLC.That is, in accordance with an aspect of FIG. 15, for example, provides the concept of entropy coding of an information signal, which allows a higher degree of compression, despite the possibility of parallel processing, compared with currently available concepts. In accordance with this aspect, the entropy encoded section 20 of the data stream into which the sample array is encoded contains entropy slices, such as 90 in FIG. 8, in which various portions 12 of the sample array are entropy encoded, and the header illustrated by dashed lines 300 in FIG. 9 contains information that shows the initial positions 302 of the entropy slice 90, measured in the region of entropy decoding, within the entropy encoded data stream, this information contains a difference value for the predetermined entropy slice, revealing the difference between the initial position of the previous entropy slice n-1 and the initial By the position of the predetermined entropy slice n, the data stream includes data difference 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 into the y-th sequence of the number of z intervals [0.2 a -1], [2 a , 2 b +2 a -1], [ 2 b +2 a, 2 b +2 c +2 a -1], and so on, and the encoded via PCM suffix y-th sequence of lengths a, b, c ... If a, b, c ... are selected 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, all are powers of two, then byte alignment can be preserved. The number z is not limited to three, as selected by way of example in FIG. fifteen.

Кодер, такой как кодер на фиг. 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 of FIG. 1, respectively, is designed to convert the difference of consecutive starting positions into a sequence of VLC bits, that is, by first determining the prefix, that is, in which the difference (y-th) is in the sub-interval, and then setting the suffix plus the difference, the starting position minus the y-th of 0 , 2 a , 2 b +2 a and so on. A decoder, such as in FIG. 6, respectively, is designed to obtain the initial position of the current entropy slice n from the VLC bit sequence, that is, by first examining the prefix to obtain y, then setting the difference 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 entropy slice n-1.

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

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

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

HEVC предусматривает так называемую волновую обработку данных на стороне декодера. Ее собираются обеспечивать при помощи энтропийных слайсов. В обычном случае данные всего слайса доставляются в один момент времени. Процесс декодирования начинается, как только закодированные данные прибывают в средство волнового декодера. Чтобы уменьшить время, когда декодер может начинать и завершать кадр, сегментация энтропийных слайсов на маленькие фрагменты, используя подход перемежения, используется в соответствии с настоящим вариантом осуществления. Следовательно, кодер может доставлять данные, соответствующие определенному энтропийному слайсу, к транспортному уровню раньше, чем в обычном случае. Это приводит в таком случае к более быстрой передаче и более раннему началу параллельного процесса декодирования в клиенте.HEVC provides the so-called wave data processing on the side of the decoder. They are going to provide it with the help of entropy slices. In the usual case, the data of the entire slice is delivered at one time. The decoding process begins as soon as the encoded data arrives at the wave decoder facility. In order to reduce the time that a decoder can start and end a frame, the segmentation of entropy slices into small fragments using the interleaving approach is used in accordance with the present embodiment. Therefore, the encoder can deliver data corresponding to a specific entropy slice to the transport layer earlier than in the normal case. In this case, this 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 для каждого из них, далее мультиплексируя и с помощью этого перемежая их в транспортном канале.Creating slices fragments can be additionally ensured by dividing the entropy slice into additional slices, while preserving all the 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 methods that take into account the transmission of fragments in interleaved form and restoration, 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). Another systemic method may consist in applying fragments of the wave substream to another transport stream, as in MEPG-2 systems, by assigning different PIDs for each of them, then multiplexing and thereby interleaving them in the transport channel.

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

Изображение может кодироваться с помощью одного энтропийного слайса на строку(и) наибольших единиц кодирования (LCU), как изображено на фиг. 2 и 9. Предпочтительно использовать волновые методы на стороне декодера. Во время процесса кодирования битовый поток каждого слайса может делиться на сегменты постоянного размера. Затем результирующие сегменты перемежаются и могут передаваться для передачи. Постоянный размер сегментов может создавать проблему в конце битового потока из-за его переменной длины.An image may be encoded with one entropy slice per line (s) of largest coding units (LCUs), as shown in FIG. 2 and 9. It is preferable to use wave methods on the side of the decoder. During the encoding process, the bitstream of each slice can be divided into segments of constant size. Then the resulting segments are interleaved and can be transmitted for transmission. The constant size of the segments can cause 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 single-byte segments (usually a bitstream representing a slice is aligned with a byte), and control the consumption of bytes using each decoder tool, that is, the decoder determines the end of the entropy slice.

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

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

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

Таким образом, в соответствии с аспектом фиг. 16, например, обеспечена концепция энтропийного кодирования массива выборок, которая обеспечивает более низкую задержку по сравнению с доступными в настоящее время концепциями. В соответствии с этим аспектом кодированный поток 20 данных, в который кодируется информационный сигнал, содержит слайсы, такие как энтропийные слайсы 90 или просто полностью независимо декодируемые слайсы (показаны с левой стороны), в которые различные порции 12 информационного сигнала (с предсказанием и/или энтропийно) кодируются, причем данные слайсы 90 подразделяются на фрагменты (заштрихованные прямоугольники 310), которые располагаются в кодированном потоке 20 данных перемежаемым способом (показаны с правой стороны), перемежение представлено скобкой 312.Thus, in accordance with an aspect of FIG. 16, for example, a concept of entropy coding of an array of samples is provided, which provides lower latency compared to 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 decoded slices (shown on the left), in which various portions 12 of the information signal (with prediction and / or entropy) are encoded, and these slices 90 are divided into fragments (shaded rectangles 310), which are located in the encoded data stream 20 in an intermittent manner (shown on the right side), interleaving indicated by bracket 312.

Как обозначено выше и описано относительно других аспектов, слайсы могут быть энтропийными слайсами 90, которые, в свою очередь, могут быть соответствующими подмножествами слайсов кадров, и соответственно, кодированный поток данных может быть энтропийно кодированным потоком 20 данных.As indicated above and described with respect to other aspects, the 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 доступен, и потенциальные зависимости между частями определяют, сравни с волновым подходом.The interleaving 312 of slices 90 allows a lower delay, since the decoder responsible for decoding any of the slices 90 does not have to wait for the length of time spent on previous slices of the other decoders (according to the order of 16 slices). Instead, all available decoders have the ability to start decoding the slices associated with them as soon as the first fragment 310 is available, and the potential dependencies between the parts are determined, compared with the wave approach.

Различные порции 12 могут энтропийно кодироваться в энтропийные слайсы 90, используя оценки вероятности, которые устанавливаются независимо среди энтропийных слайсов, или используя заимствование между энтропийными слайсами оценки вероятности, как описано выше, например, именно в которых различные порции 12 кодируются в энтропийные слайсы 90 вдоль соответствующих траекторий 14 энтропийного кодирования, и зависимые энтропийные слайсы имеют соответствующие им порции 12, закодированные в них, используя оценки вероятностей, полученные в том числе из оценок вероятности, используемых в энтропийных слайсах более высокого ранга в пространственно соседних частях соответствующей порции, как описано ранее.Different portions 12 can be entropy encoded into entropy slices 90, using probability estimates that are set independently among entropy slices, or using borrowing between entropy slices of probability estimates, as described above, for example, in which different portions 12 are encoded into entropy slices 90 along the corresponding trajectories 14 of entropy coding, and dependent entropy slices have corresponding portions 12 encoded in them using probability estimates obtained including after the probability estimates used in entropy slices of a higher rank in spatially adjacent parts of the corresponding portion, 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 additional feature in FIG. 16. The header 300 may be associated with a frame (array of samples) of the sequence 30, the header 300 contains information that shows the length of the entropy slices. Information regarding the length of the entropy slices 90 may be encoded within the header 300, as described above, using VLC codes. Using 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. The initial positions of the slice can also be identified simply by a decoding process that knows the completion of the slice. Therefore, it may be possible to simply rely on instructions from the decoder, but this requires signaling between the decoders and in some cases, if the “earlier” entropy slice ends later than the “later” slice in the stream. This may require, for certain cases, “adaptive” signaling in the stream, which may be based on initial codes.

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

Фрагменты 310 могут иметь равную длину, по меньшей мере пока это касается начальной смежной порции последовательности фрагментов 310 от первого из фрагментов по порядку, в котором фрагменты располагаются в энтропийно кодированном потоке 20 данных. Последующие фрагменты могут изменяться по длине. Последующие фрагменты могут быть равны длине начальной смежной порции последовательности или меньше этой длины. Длина последующих фрагментов может получаться из вышеупомянутой информации в заголовке 300, которая раскрывает длину энтропийных слайсов 90 или положение начала. Фрагменты 310 могут располагаться в энтропийно кодированном потоке 20 данных циклически в соответствии с порядком, определенным среди энтропийных слайсов. Для энтропийных слайсов, фрагменты которых полностью находятся в предыдущих циклах, они могут пропускаться в текущем и последующем циклах.Fragments 310 may be of equal length, at least as far as 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 beginning. Fragments 310 may be arranged in the entropy-encoded data stream 20 cyclically in accordance with the order defined among the entropy slices. For entropy slices, fragments of which are completely in previous cycles, they can be skipped in the current and subsequent cycles.

Другие информационные сигналы, чем последовательность массива выборок, такие как видеосигнал, могут также передаваться через поток 20 данных. Различные порции 12 таким образом должны не быть порциями предопределенного массива выборок, такого как изображение/кадр.Other information signals than the sequence of the array of samples, such as a video signal, can also be transmitted through the data stream 20. The various portions 12 thus need not be portions of a predetermined 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 an array of 10 samples encoded therein by prediction coding, using prediction between entropy slices and / or inter-frame prediction, entropy encoding of prediction errors to predict between entropy slices and / or inter-frame prediction. That is, as described above, different portions can be spatially different portions of frame 10 or multiple frames 30. The latter case applies if the slice (s) of the next frame (s) or the entropy slice (s) can already be decoded, for example, by the wave method based on the knowledge of the requested information for decoding the entropy slice of the next frame due to the available inter-frame links. Already decoded data of a frame following the decoding order can be obtained from the maximum allowed / transmitted length of the motion vector or from additional information in the stream indicating the dependences of the data parts on the previous frame (s)), and the prediction between the entropy slices may involve internal prediction, while inter prediction may involve motion compensation prediction. An example is outlined below.

Вышеупомянутая независимость установки оценки вероятности среди энтропийных слайсов может относиться и к адаптированию вероятности, а также к моделированию содержимого. То есть содержимое, выбранное в пределах энтропийного слайса, может выбираться независимо из других энтропийных слайсов, и оценка вероятности содержимого может также инициализироваться и адаптироваться независимо от любого другого энтропийного слайса.The aforementioned independence of the probability estimate setting among entropy slices can apply to probability adaptation as well as content modeling. That is, the content selected within the entropy slice can be selected independently from other entropy slices, and the probability assessment of the content can 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 arranged in an entropy encoded data stream 20 in an intermittent manner, as configured shown in FIG. 6, and may further comprise a de-interleaver configured to de-interleave fragments 310, shown by symbol 314 in FIG. 16.

В частности, как иллюстрировано на фиг. 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 running in different processing cores, with the deinterleaver being configured for each entropy slice to direct fragments 310 thereof to the entropy decoder 44 associated with the corresponding entropy slice.

Другими словами, энтропийные слайсы могут разделяться на фрагменты, которые, в свою очередь, могут перемежаться, и декодер может содержать деперемежитель для деперемежения фрагментов и может начинать обрабатывать энтропийные слайсы параллельно вдоль траекторий 16 даже перед приемом любого из энтропийных слайсов в целом. Следует вспомнить, что длина фрагментов, предпочтительно, измеряется в области энтропийного кодирования, а не в синтаксической области так, чтобы соответствовать, например, множеству определенных пространственных частей/блоков на изображении и т.п., хотя последняя возможность также будет доступна.In other words, the entropy slices can be divided into fragments, which, in turn, can be interleaved, and the decoder may contain a deinterleaver to deinterleave the fragments and can begin to process entropy slices in parallel along trajectories 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 region of entropy coding, and not in the syntactic region so as to correspond, for example, to the set of certain spatial parts / blocks in the image and the like, although the latter option will also be available.

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

Образец волновой обработки данных, как он описан в данном случае, можно расширять на энтропийное кодирование с новым вычислением вероятностей для каждой LCU, чтобы использовать также временные зависимости между кадрами.The wave data processing sample, as described in this case, can be extended to entropy coding with a new calculation of probabilities for each LCU, so as to use the time dependencies between frames.

Как известно, вероятности будут повторно инициализироваться в начале каждого кадра (первая LCU). Таким образом вероятности, которые были уже получены в предыдущем кадре, теряются. Чтобы уменьшить потерю эффективности кодирования, можно передавать конечное состояние изображения (сравни 320) или, в случае использования энтропийного слайса, конечное состояние слайса (сравни 322) вероятностей от опорного кадра 324 к первой LCU 50 текущего кадра 10 или энтропийного слайса 12, соответственно (фиг. 17). Такие данные соответствующего слайса в опорном кадре могут быть получены не только в конечном положении, но также и в предыдущем положении в опорных слайсах, так как параллельная волновая обработка данных может также проходить через границы кадра, то есть пока кодируют слайс кадра, процесс кодирования слайса предыдущего кадра еще может быть не закончен. Поэтому сигнализация может использоваться для указания опорной позиции, или она может обозначаться с помощью схемы.As you know, 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 of coding efficiency, it is possible to transmit the final state of the image (compare 320) or, in the case of using the entropy slice, the final state of the slice (compare 322) of probabilities from the reference frame 324 to the first LCU 50 of the current frame 10 or entropy slice 12, respectively (Fig. . 17). Such data of the corresponding slice in the reference frame can be obtained not only in the final position, but also in the previous position in the reference slices, since parallel wave processing of the data can also pass through the frame boundaries, that is, while the frame slice is encoded, the encoding process of the previous slice frame still may not be finished. Therefore, an alarm can be used to indicate a reference position, or it can 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 initialize in the initial phase 84 and 234, respectively, to set P {i, j} , and {i, j} denotes the first CU 50 in the kth entropy slice of the current array of samples equal to, or at least depending on any T (P {i, j} ' ), and {i, j}' denotes CU within the previous (in the order of coding of the 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 be done only for k = 0, or for each entropy slice k∈ {1 ... K}, and K denotes the number of entropy slices in the current frame. Temporary initialization can be done additionally 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, can be set equal to some combination (such as the average 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} , and {i, j} denotes the first (in order of 14 entropy coding) CU 50 in the kth (in order of 14 entropy coding) entropy slice of the current array of samples, can be set equal to T (P {i, j} ' ), and {i, j}' denotes the last (in order of 14 entropy coding) CU within the kth (in order of entropy slices) entropy slice in the previous (in order encoding an array of samples) an array of samples or the last CU within the last (in order of entropy slices) entropy slice in the previous cm (in order of coding the samples arrays) array samples. Again, this temporary initialization can only be performed for the first entropy slice in the sample array.

Процесс анализа конечного состояния опорного кадра тестировался с помощью способа адаптирования вероятностей, эти результаты иллюстрируются на фиг. 10 - фиг. 19 (временной график).The process of analyzing the final state of the reference frame was tested using the method of adapting probabilities, 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 the obtained probabilities between the associated LCUs. The main idea is based on the assertion that the properties of the reference frame are not very different from the current frame. To speed up the study of probabilities by LCU in a frame, you can try to transfer the final state of each LCU to the corresponding LCU in the current frame. This proposal is illustrated in FIG. eighteen.

Под опорным кадром могут пониматься различные возможности. Например, кадр, который кодируется последним, может использоваться в качестве опорного кадра. Иначе последний закодированный кадр только от того же самого временного уровня может назначаться в качестве опорного.A reference frame can be understood as various possibilities. For example, the frame that is last encoded can be used as a reference frame. Otherwise, the last encoded frame only from the same time level can 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) of information from the reference frame, adapting probabilities, and using the second LCU of the upper line.

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

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 more 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 array of 10 samples and the associated portion 12, accordingly, M can be 1 or more than 1 and {i, j} ' 1 ... M is within the previous array of samples 350. It may happen that at least one of the CU 50 {i, j}' 1. ..M is combined with p (n). Regarding the possible choices CU 50 {i, j} 1 ... N reference is made to the above description. The “mean value” function may be one of a weighted summation, a median function, etc.

Вышеупомянутый процесс пространственного адаптирования может быть заменен наThe above spatial adaptation process may 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 more 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 value” function may be one of a weighted summation, a median function, etc. It may happen that at least {i, j} ' 1 ... M is aligned with p (n).

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

Ранее упомянутые методы используют полученную информацию только от непосредственных соседей в текущем кадре или в опорных кадрах. Однако это не подразумевает, что полученные вероятности в данном случае являются лучшими. Смежные LCU, согласно разделениям изображения (разностная информация), не всегда имеют лучшие модели вероятностей. Предполагается, что лучшие результаты могут обеспечиваться с помощью блоков, на основе которых будет выполняться предсказание. И таким образом, этот соответствующий блок может использоваться в качестве опорного для текущего LCU.The previously mentioned methods use the information received only from immediate neighbors in the current frame or in reference frames. However, this does not imply that the probabilities obtained are in this case the best. Adjacent LCUs, according to image partitions (difference information), do not always have better probability models. It is contemplated that better results can be achieved using the blocks on the basis of which the prediction will be performed. And thus, this corresponding unit 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 can be selected depending on the use of CU as sources of prediction parameters for p (n).

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

В соответствии с последним аспектом, увеличение скорости адаптирования вероятности обеспечивается с помощью объединения адаптирования вероятности во временной области соседних/связанных кадров. Описанное является декодером, таким как декодер на фиг. 6, причем данный декодер сконфигурирован для восстановления последовательности массивов выборок из потока данных энтропийного кодера, и сконфигурирован для энтропийного декодирования текущего кадра потока данных энтропийного кодера для восстановления текущего массива выборок последовательности массивов выборок, выполнения энтропийного декодирования вдоль траектории энтропийного кодирования и использования оценок вероятности и адаптирования оценок вероятности вдоль траектории энтропийного кодирования, используя ранее декодированную часть текущего кадра, причем каскад энтропийного декодирования сконфигурирован для инициализации или определения оценки вероятности для текущего кадра, основываясь на оценках вероятности, используемых при декодировании ранее декодированного кадра энтропийно закодированного потока данных.In accordance with the latter aspect, an increase in the probability adaptation rate is achieved by combining probability adaptation in the time domain of adjacent / related frames. Described is a decoder, such as the decoder in FIG. 6, and this decoder is configured to restore a sequence of arrays of samples from a data stream of an entropy encoder, and is configured to entropy decode the current frame of a data stream of an entropy encoder to restore the current array of samples of a sequence of arrays of samples, perform entropy decoding along the path of entropy encoding and use probability estimates and adaptation probability estimates along the trajectory of entropy coding, using previously decoded a portion of the current frame, wherein the entropy decoding stage is configured to initialize or determine a probability estimate for the current frame based on probability estimates used in decoding a 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 of a previously decoded frame of an entropy encoded data stream. Therefore, buffer requirements are low, since it is just that 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 of FIG. 1-9 in that for the first parts of each portion 12, not only probability estimates used for spatially adjacent parts in previous entropy slices (if available) are used, but also in a weighted way, for example, the final state of probability estimates (for example, spatially) corresponding entropy slice in the previous frame. Such data of the corresponding part in the reference frame can be obtained not only in the final position, but also from the previous position in the reference slices, since parallel wave processing of the data can also pass through the frame boundaries, that is, when the frame slice is encoded, the slice encoding process of the previous the frame may not be finished yet. Therefore, an alarm can be used to indicate a reference position, or it can be indicated by a circuit.

Дополнительно, например, оценки вероятности, используемые для кодирования частей/блоков ранее декодированного кадра, буферизируются все, а не только конечное состояние, и декодер будет энтропийно декодировать предопределенный энтропийный слайс (со ссылкой к вышеупомянутому описанию пространственно объединенного получения вероятности), выполнять энтропийное декодирование текущей части (X) предопределенного энтропийного слайса, основываясь на соответствующих оценках вероятности предопределенного энтропийного слайса, которые адаптированы, используя ранее декодированную часть предопределенного энтропийного слайса (включающего в себя p1, например), и на оценках вероятности, которые используются при энтропийном декодировании пространственно соответствующей части энтропийного слайса ранее декодированного кадра, при желании, дополнительно используя оценки вероятности, которые используются при энтропийном декодировании пространственно соседнего, по порядку энтропийных слайсов предыдущего энтропийного слайса (слайса, содержащего X, например) в соседней части (такого как p4) пространственно соседнего энтропийного слайса, как описано выше. Как было также описано выше, пространственное соответствие между частями и идентификация соответствующей части для заимствования вероятности для текущего кадра среди ранее декодированного кадра может определяться с помощью информации движения, такой как индексы движения, векторы движения и т.п., текущей части/блока.Additionally, for example, the probability estimates used to encode parts / blocks of a previously decoded frame are buffered everything, not just the final state, and the decoder will entropy decode a predetermined entropy slice (with reference to the above description of 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 adapt are used using the previously decoded part of the predetermined 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 in the previously decoded frame, if desired, additionally using the probability estimates that are used in the entropy decoding spatially adjacent, in the order of entropy slices of the previous entropy slice (a slice containing X, for example) in the neighboring part (such both p4) spatially neighboring entropy slice, as described above. As also described above, the spatial correspondence between the parts and the identification of the corresponding part for borrowing 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.Until now, the wave propagating during wave processing of the data has been primarily described as being propagated obliquely through one array of 10 samples, and encoding / decoding is performed one array of samples after another. However, this is not a necessity. Reference is made to FIG. 19. FIG. 19 shows a portion of a sequence of sample arrays, wherein sequence arrays of samples are defined among it and depicted as arranged in order 380 of encoding of sample arrays, 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 hatched. Four coding / decoding streams (coding / decoding cascade) 382 are currently performed 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 having number 5 in FIG. 19, works to encode / decode the next array of samples on the line, i.e., n + 1, in portions for which it is guaranteed that the corresponding reference portions in the currently encoded / decoded frame n are already available, that is, already processed by any of the streams 1 -four. These portions are reference, for example, in the predictions shown as 64 in FIG. one.

Фиг. 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 a dashed 384 line extending through an array of n + 1 samples that is already aligned with the boundary between the processed, i.e., encoded / decoded portion of the array of n samples, i.e., the shaded portion within the n array of samples on one side, and not yet processed portion, that is, an unshaded portion of an array of n samples on the other hand. Using the bidirectional arrows of FIG. 19 also shows the maximum possible length of motion vectors measured in the column and row directions, i.e., y max and x max , respectively. Accordingly, FIG. 19 also shows, with a dash-dotted line 386, a displaced version of line 384, namely, line 386, which is spaced apart from line 384 at the minimum possible distance so that the distance does not fall below y max in the direction of the column and x max in the direction of the line. As can be seen, there are 50 coding units in an array of n + 1 samples for which any supporting portion in an array of n samples is guaranteed to be found as being completely contained within the already processed portion of this array of n samples, namely those that are located in half of the array of n + 1 samples located on the upper side relative to line 386. Accordingly, stream 5 already has the ability to work to decode / encode these coding units, as shown in FIG. 19. As can be seen, even the sixth stream can process the second entropy slice in 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 the space-time space filled with a sequence of 30 arrays of samples.

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

Дополнительно, относительно вышеизложенного аспекта фрагмента, нужно также отметить, что разделение энтропийных слайсов на меньшие части, то есть фрагменты, не ограничено выполнением в области энтропийного кодирования, то есть в энтропийно сжатой области. Если подумать о вышеприведенном обсуждении: энтропийные слайсы, которые описаны выше, имеют преимущество сокращения потери эффективности кодирования несмотря на возможность волновой обработки данных из-за происхождения оценок вероятности от ранее закодированных/декодированных энтропийных слайсов того же самого или ранее закодированного/декодированного кадра, то есть инициализации и/или адаптирования оценок вероятности, основываясь на оценках вероятности таких предыдущих энтропийных слайсов. Каждый из этих энтропийных слайсов, как предполагается, энтропийно кодируется/декодируется одним потоком в случае волновой обработки данных. То есть, когда разделяют энтропийные слайсы, не является необходимым обрабатывать фрагменты, которые могут кодироваться/декодироваться параллельно. Вместо этого кодер просто обеспечивается возможностью выводить разделы битового потока его энтропийного слайса до завершения энтропийного кодирования, и декодер обеспечивается возможностью обрабатывать эти разделы, то есть фрагменты, до приема оставшихся фрагментов того же самого энтропийного слайса. Кроме того, перемежение должно быть разрешено на стороне приема. Чтобы позволить последнее деперемежение, однако, не требуется выполнять разделение в области энтропийного кодирования. В частности, можно выполнять вышепредставленное разделение энтропийных слайсов на меньшие фрагменты без серьезной потери эффективности кодирования, периодически просто перезагружая внутреннее состояние интервала вероятности, то есть значение ширины интервала вероятности, и значение смещения, соответственно, ядра энтропийного кодирования/декодирования. Оценки вероятности, однако, не перезагружаются. Вместо этого они непрерывно обновляются/адаптируются с начала до завершения энтропийных слайсов, соответственно. С помощью этих мер можно разделять энтропийные слайсы на отдельные фрагменты, причем разделение выполняется в области синтаксических элементов, а не в области сжатого битового потока. Разделение может быть результатом пространственного разделения, как изложено ниже, для облегчения передачи к декодеру границ между фрагментами. Каждый из фрагментов может обеспечиваться своим собственным заголовком фрагмента, который раскрывает, например, его начальную позицию в массиве выборок, измеренную, например, по порядку 14 кодирования относительно начального положения соответствующего энтропийного слайса наряду с индексом его энтропийного слайса, или относительно известного местоположения массива 10 выборок, такого как верхний левый угол.Additionally, regarding the foregoing aspect of the fragment, it should also be noted that the separation of entropy slices into smaller parts, that is, fragments, is not limited to performing in the field of entropy coding, that is, in the entropy compressed region. If you think about the discussion above: the entropy slices described above have the advantage of reducing the loss of coding efficiency despite the possibility of wave data 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 probability estimates based on probability estimates of such previous entropy slices. Each of these entropy slices is assumed to be entropy encoded / decoded by a single stream in the case of wave data processing. That is, when the entropy slices are shared, it is not necessary to process fragments 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 the completion of entropy encoding, and the decoder is provided with the ability to process these sections, i.e. fragments, before receiving the remaining fragments of the same entropy slice. In addition, interleaving should be allowed on the receiving side. To allow the last de-interleaving, however, separation in the field of entropy coding is not required. In particular, it is possible to perform the above separation of entropy slices into smaller fragments without serious loss of coding efficiency, periodically simply reloading the internal state of the probability interval, i.e., the value of the width of the probability interval, and the offset value, respectively, of the entropy encoding / decoding core. Probability estimates, however, are not reloaded. Instead, they are continuously updated / adapted from the beginning to the end of the entropy slices, respectively. Using these measures, it is possible to separate entropy slices into separate fragments, and the separation is performed in the field of syntactic elements, and not in the area of a compressed bit stream. Separation may be the result of spatial separation, as described below, to facilitate the transfer of boundaries between fragments to the decoder. Each of the fragments can be provided with its own fragment header, which reveals, for example, its initial position in the array of samples, measured, for example, in coding order 14 relative to the initial position of the corresponding entropy slice along with the index of its entropy slice, or relative to the known location of the array of 10 samples such as the upper 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 last 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 array of 10 samples are shown as hatched. Three streams currently perform entropy encoding of an array of 10 samples and output fragments of entropy slices based on direct consideration: see, for example, the first entropy slice in order of 16 entropy slices, which corresponds to a portion 12 of an array of 10 samples. After section 12a of portion 12 is encoded, the encoder generates a fragment 390 from it, that is, the entropy encoding core 80 performs some final procedure to complete the arithmetic bit stream obtained from subport 12a in the case of arithmetic encoding to form fragment 390. The encoding procedure is then resumed with respect to the subsequent subportion 12b of the entropy slice 12 in coding order 14, starting a new entropy bitstream. This implies, for example, that internal states, such as the value of the width of the probability interval and the value of the offset of the probability interval of the entropy coding kernel 80, are reloaded. Probability estimates, however, are not reloaded. They are left unchanged. This is illustrated in FIG. 20 using arrow 392. FIG. 20 as an example, it is shown that the entropy slice or portion 12 is divided into more than two subportions, and accordingly, even the second 1b fragment must be somewhat entropically completed before reaching the final portion 12 in encoding order 14, after which the next fragment on the line begins, and so on. d.

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

С помощью оси 394 времени фиг. 20 иллюстрирует, что фрагменты 390 выводятся, как только они завершены. Это приводит к перемежению, аналогичному перемежению, изображенному на фиг. 16. Каждый фрагмент можно пакетировать в пакет и транспортировать к стороне декодирования через некоторый транспортный уровень в любом порядке. Транспортный уровень иллюстрируется, используя стрелку 396.Using 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 packetized into a packet and transported to the decoding side through a 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 fragments to subports 12a, 12b, etc. For this purpose, each fragment 390 may have a header section 398, which reveals the initial location of the associated subport 12a or 12b, that is, a subport of syntax elements describing the same thing is entropy encoded in the corresponding fragment. Using this information, the decoder has the ability to associate each fragment 390 with its entropy sequence and with its subportion within portion 12 of this entropy slice.

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

Как стало ясно от вышеприведенного обсуждения, почти отсутствие потери эффективности кодирования является результатом подразделения энтропийных слайсов на фрагменты. Просто процессы энтропийного завершения и пакетирования могут вовлекать некоторую потерю эффективности кодирования, но с другой стороны уменьшение задержки является огромным.As it became clear from the discussion above, the almost no loss of coding efficiency is the result of dividing the entropy slices into fragments. Simply entropy termination and packaging processes may involve some loss in coding efficiency, but on the other hand, reducing latency is enormous.

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

Декодер, такой как декодер на фиг. 6, может отменять передачу фрагмента следующим образом. В частности, декодер может проверять, которому энтропийному слайсу принадлежит текущий фрагмент. Эта проверка может выполняться, основываясь на вышеупомянутой информации расположения. Затем может проверяться, соответствует или нет текущий фрагмент первой подпорции порции соответствующего энтропийного слайса вдоль траектории 14 энтропийного кодирования. Если «да», то декодер может энтропийно декодировать текущий фрагмент при адаптировании соответствующих оценок вероятности и учитывать состояние соответствующих оценок вероятности, которые обнаруживаются в конце энтропийного декодирования текущего фрагмента, когда энтропийно декодируют другой фрагмент, который соответствует второй подпорции порции предопределенного энтропийного слайса вдоль траектории энтропийного кодирования. «Учет» может вовлекать урегулирование оценок вероятности в начале фрагмента 1b, равного оценкам вероятности, обнаруживая их непосредственно, с помощью адаптирования вероятности, начиная с состояния оценки вероятности в начале фрагмента 1a, в конце 1a подпорции фрагмента 12a, или равного объединению его с энтропийными оценками вероятности от других энтропийных слайсов, как описано выше. Пока рассматривается инициализация вероятности в начале первого фрагмента 12a, ссылка сделана к вышеупомянутому обсуждению, поскольку оно также формирует начало соответствующего энтропийного слайса. Другими словами, если текущий слайс является вторым или последующим фрагментом по порядку 14, то декодер может энтропийно декодировать текущий фрагмент, используя оценки вероятности, которые зависят от оценок вероятности, обнаруживающихся в конце энтропийно декодированного фрагмента, который соответствует подпорции порции предопределенного энтропийного слайса, предшествующей подпорции, соответствующей текущему фрагменту, вдоль траектории 14 энтропийного кодирования.A decoder, such as the decoder in FIG. 6 may cancel fragment transfer as follows. In particular, the decoder can check to which entropy slice the current fragment belongs. This check may be performed based on the above location information. Then, it can be checked whether or not the current fragment of the first portion of the portion of the corresponding entropy slice corresponds along the entropy coding path 14. If yes, then the decoder can entropy decode the current fragment when adapting the corresponding probability estimates and take into account the state of the corresponding probability estimates that are found at the end of the entropy decoding of the current fragment when another fragment is entropically decoded, which corresponds to the second subportion of a portion of a predetermined entropy slice along the path of the entropy coding. “Accounting” may involve settling probability estimates at the beginning of fragment 1b, equal to probability estimates, detecting them directly, by adapting the probability, starting from the state of the probability estimate at the beginning of fragment 1a, at the end 1a of the subportation of fragment 12a, or equal to combining it with entropy estimates probabilities from other entropy slices, as described above. While the initialization of probability 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 fragment in order of 14, then the decoder can entropy decode the current fragment using probability estimates that depend on the probability estimates found at the end of the entropy-decoded fragment, which corresponds to a subportation of a portion of a predetermined entropy slice preceding a subportation corresponding to the current fragment along the path 14 of entropy coding.

Приведенное выше описание показывает различные способы, которые могут использоваться для параллельного кодирования и декодирования, а также использоваться для оптимизации уже существующих процессов в перспективном стандарте видео кодирования HEVC. Был представлен короткий краткий обзор энтропийных слайсов. Показано, как они могут формироваться, какие преимущества могут обеспечиваться с помощью разделения на слайсы и какие недостатки могут быть результатом этих методов. Было предложено множество способов, которые, как предполагается, улучшают процесс изучения вероятностей по LCU (наибольшей единице кодирования) в кадре, с помощью лучшего использования локальных зависимостей между LCU, а также временных зависимостей между LCU различных кадров. Утверждается, что различные комбинации обеспечивают усовершенствования для обеих концепций с параллелизацией кодирования и декодирования и без нее.The above description shows various methods that can be used for parallel coding and decoding, as well as used to optimize existing processes in the promising 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 supposed to improve the process of studying probabilities by LCU (largest coding unit) in a frame by making better use of local dependencies between LCUs, as well as time dependencies between LCUs of different frames. Various combinations are argued to provide improvements for both concepts with and without parallelization of coding and decoding.

Повышение эффективности при высокоэффективном кодировании, например, с помощью наилучшего объединения предложенных подходов, составляет -0,4% при внутреннем, -0,78% при низкой задержке и -0,63% при произвольном доступе по сравнению с HM3.0 без использования энтропийных слайсов или -0,7% при внутреннем, -1,95% при низкой задержке и -1,5% при произвольном доступе по сравнению с подходом энтропийного слайса с обычной повторной инициализацией.The increase in efficiency with high-performance coding, for example, using the best combination of the proposed approaches, is -0.4% for internal, -0.78% for low latency and -0.63% for random access compared to HM3.0 without using 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 conventional re-initialization.

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

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

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

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

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

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

Таблица 1Table 1 Обобщенные результаты RD с 1 потокомGeneralized RD results with 1 thread 1 поток1 thread 2LCU2LCU 2LCU+Prob.Adap2LCU + Prob.Adap Prob.AdapProb.Adap Относящийся к времениTime related Внутренний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 потоками4-thread generalized RD results 4 потока4 threads 2LCU2LCU 2LCU+Prob.Adap2LCU + Prob.Adap Prob.AdapProb.Adap Относящийся к времениTime related Внутренний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 involve wave data processing with reinitialization 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 entropy slices with reinitialization).

Таблица 3Table 3 Обобщенные результаты RD с 1 потоком. Опорным элементом является новая инициализацияGeneralized RD results with 1 thread. The reference element is the new initialization. 1 поток1 thread orig_
neiInit
orig_
neiInit
2LCU2LCU 2LCU+ProbAdap2LCU + ProbAdap ProbAdapProbadap Относящийся к времениTime related
Внутренний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 Относящийся к времениTime related
Внутренний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 significantly greater use of dependencies within and between frames and the rational use of information already received prevents averaged losses.

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

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

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

Хотя некоторые аспекты описаны в контексте устройства, ясно, что эти аспекты также представляют описание соответствующего способа, где блок или устройство соответствуют этапу способа или особенности этапа способа. Аналогично, аспекты, описанные в контексте этапа способа, также представляют описание соответствующего блока или элемента или особенности соответствующего устройства. Некоторые или все этапы способа могут выполняться (или использоваться) с помощью аппаратного устройства, как, например, микропроцессор, программируемый компьютер или электронная схема. В некоторых вариантах осуществления один или большее количество самых важных этапов способа могут выполняться с помощью такого устройства.Although some aspects are described in the context of the device, it is clear that these aspects also represent a description of the corresponding method, where the unit or device corresponds to a method step or a feature of a method step. Similarly, the aspects described in the context of a method step also provide a description of the corresponding unit or element or feature of the corresponding device. Some or all of the steps of the method can be performed (or used) using 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 can be performed using such a device.

Упомянутые выше изобретенные кодированные сигналы могут храниться на цифровом носителе данных или могут передаваться по среде передачи, такой как беспроводная среда передачи или проводная среда передачи, такая как Интернет.The above-mentioned inventive encoded signals 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 the specific requirements of the embodiment, embodiments of the invention may be embodied in hardware or in software. Embodiment can be performed using a digital storage medium, for example, a floppy disk, DVD (digital versatile disk), Blu-ray, CD (compact disk), ROM (read-only memory), ROM (programmable ROM), EPROM (erasable programmable ROM) , An EEPROM (electrically erasable programmable ROM) or flash memory having electronically readable control signals that interact (or can interact) with the programmable computer system in such a way that the corresponding s the way. 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 in such a way that one of the described methods is performed.

В общем случае варианты осуществления настоящего изобретения могут воплощаться как компьютерный программный продукт с программным кодом, программный код используется для выполнения одного из способов, когда данный компьютерный программный продукт выполняется на компьютере. Программный код может, например, храниться на считываемом компьютером носителе.In general, embodiments of the present invention may be embodied 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 executed 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 methods described, stored on a computer-readable medium.

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

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

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

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

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

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

В некоторых вариантах осуществления программируемое логическое устройство (например, программируемая пользователем вентильная матрица) может использоваться для выполнения некоторых или всех функциональных возможностей описанных способов. В некоторых вариантах осуществления программируемая пользователем вентильная матрица может совместно работать с микропроцессором для выполнения одного из описанных способов. В общем случае способы предпочтительно выполняются с помощью любого аппаратного устройства.In some embodiments, a programmable logic device (eg, a user 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 cooperate with a microprocessor to perform one of the described methods. In general, the methods are preferably performed using any hardware device.

Вышеописанные варианты осуществления являются просто иллюстративными для принципов настоящего изобретения. Подразумевается, что модификации и изменения описанных структур и деталей будут очевидны специалистам. Поэтому существует намерение, чтобы изобретение было ограничено только объемом формулы изобретения рассматриваемого патента, а не конкретными подробностями, представленными посредством описания и объяснения вариантов осуществления в данной работе.The above described embodiments are merely illustrative of the principles of the present invention. It is understood that modifications and changes to the described structures and details 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 presented by describing and explaining the embodiments in this work.

Claims (47)

1. Декодер для восстановления массива (10) выборок из энтропийно закодированного потока данных, сконфигурированный для1. Decoder for restoring an array (10) of samples from an entropy encoded data stream, configured for энтропийного декодирования множества энтропийных слайсов в энтропийно закодированном потоке данных для того, чтобы восстанавливать различные порции (12) массива выборок, связанные с энтропийными слайсами, соответственно, с помощьюentropy decoding of a plurality of entropy slices in an entropy encoded data stream in order to recover various portions (12) of an array of samples associated with entropy slices, respectively, using выполнения, для каждого энтропийного слайса, энтропийного декодирования вдоль соответствующей траектории (14) энтропийного кодирования, используя соответствующие оценки вероятности,performing, for each entropy slice, entropy decoding along the corresponding path (14) of entropy encoding using the corresponding probability estimates, адаптирования соответствующих оценок вероятности вдоль соответствующей траектории энтропийного кодирования, используя ранее декодированную часть соответствующего энтропийного слайса,adapting the corresponding probability estimates along the corresponding path of entropy coding using the previously decoded part of the corresponding entropy slice, запуска энтропийного декодирования множества энтропийных слайсов последовательно, используя порядок (16) энтропийных слайсов, иtriggering entropy decoding of multiple entropy slices sequentially using the order (16) of entropy slices, and выполнения, при энтропийном декодировании предопределенного энтропийного слайса, энтропийного декодирования текущей части предопределенного энтропийного слайса, основываясь на соответствующих оценках вероятности предопределенного энтропийного слайса, которые адаптированы, используя ранее декодированную часть предопределенного энтропийного слайса, и оценках вероятности, которые использовались при энтропийном декодировании пространственно соседнего, по порядку энтропийных слайсов предыдущего энтропийного слайса в соседней части пространственно соседнего энтропийного слайса,performing, upon entropy decoding of a predetermined entropy slice, entropy decoding of the current part of the predetermined entropy slice based on the corresponding probability estimates of the predetermined entropy slice, which are adapted using the previously decoded part of the predetermined entropy slice, and probability estimates that were used in the entropy decoding the order of the entropy slices of the previous entropy slice in the next hour te spatially adjacent entropy slice, при этом декодер сконфигурирован для сохранения оценок вероятности, проявляющих себя после энтропийного декодирования второго, вдоль соответствующей траектории энтропийного кодирования, блока порции, соответствующей, по порядку энтропийных слайсов, предыдущему энтропийному слайсу, и использования сохраненных оценок вероятности для инициализации, перед декодированием, первого, вдоль соответствующей траектории энтропийного кодирования, блока порции, соответствующей соответствующему энтропийному слайсу.the decoder is configured to save the probability estimates that appear after the entropy decoding of the second, along the corresponding path of entropy coding, a portion block corresponding, in order of entropy slices, to the previous entropy slice, and use the stored probability estimates for initialization, before decoding, the first, along the corresponding trajectory of entropy coding, a portion block corresponding to the corresponding entropy slice. 2. Декодер по п. 1, в котором различными порциями являются строки блоков массива выборок.2. The decoder according to claim 1, in which the various portions are the rows of blocks of the array of samples. 3. Декодер по п. 1, в котором порядок энтропийных слайсов выбирают таким образом, что по порядку энтропийных слайсов различные порции следуют друг за другом в направлении (16), повернутом относительно траекторий (14) энтропийного кодирования энтропийных слайсов, которые, в свою очередь, распространяются параллельно друг другу.3. The decoder according to claim 1, in which the order of the entropy slices is chosen so that, in the order of the entropy slices, the different portions follow each other in the direction (16), turned relative to the paths (14) of the entropy encoding of the entropy slices, which, in turn, are distributed parallel to each other. 4. Декодер по п. 1, в котором каждый энтропийный слайс имеет энтропийно закодированные в нем данные для соответствующей порции массива выборок, различные порции формируют строки блоков массива выборок, причем блоки регулярно расположены в строках и столбцах так, чтобы порции, соответствующие энтропийным слайсам, состояли из одного и того же количества блоков и траектория энтропийного кодирования указывала параллельно вдоль строк блоков, причем декодер сконфигурирован для выполнения, для каждого энтропийного слайса (90), инициализации, для соответствующего энтропийного слайса, оценок (94) вероятности, перед декодированием, первого блока порции (12), соответствующей соответствующему энтропийному слайсу вдоль соответствующей траектории (14) энтропийного кодирования, оценами вероятности, проявляющими себя после энтропийного декодирования второго блока (50) порции (12), соответствующей, по порядку (16) энтропийных слайсов, предыдущему энтропийному слайсу вдоль соответствующей траектории энтропийного кодирования.4. The decoder according to claim 1, in which each entropy slice has entropy encoded data therein for the corresponding portion of the array of samples, different portions form rows of blocks of the array of samples, the blocks being regularly arranged in rows and columns so that the portions corresponding to the entropy slices consisted of the same number of blocks and the path of entropy coding indicated parallel to the lines of blocks, and the decoder is configured to perform, for each entropy slice (90), initialization, for the corresponding entropy slice, probability estimates (94), before decoding, the first portion block (12), the corresponding entropy slice along the corresponding entropy coding path (14), probability estimates that manifest themselves after the entropy decoding of the second portion block (50) (12) corresponding, in order (16) of the entropy slices, to the previous entropy slice along the corresponding path of entropy coding. 5. Декодер по п. 1, в котором каждый энтропийный слайс имеет энтропийно закодированные в нем данные для соответствующей порции массива выборок, различные порции формируют строки блоков массива выборок, причем блоки регулярно расположены в строках и столбцах так, чтобы порции, соответствующие энтропийным слайсам, состояли из одного и того же количества блоков, и траектория энтропийного кодирования указывала параллельно вдоль строк блоков, причем декодер сконфигурирован для выполнения для каждого энтропийного слайса, энтропийного декодирования вдоль соответствующей траектории энтропийного кодирования и адаптирования соответствующих оценок вероятности вдоль соответствующей траектории энтропийного кодирования таким образом, что после того как текущая часть предопределенного энтропийного слайса энтропийно декодирована, основываясь на соответствующих оценках (94) вероятности предопределенного энтропийного слайса, соответствующие оценки (94) вероятности предопределенного энтропийного слайса адаптируются в зависимости от текущей части предопределенного энтропийного слайса и оценок вероятности, которые проявляют себя при энтропийном декодировании соседней части пространственно соседнего энтропийного слайса.5. The decoder according to claim 1, in which each entropy slice has entropy-encoded data in it for the corresponding portion of the array of samples, the various portions form the rows of blocks in the array of samples, the blocks being regularly arranged in rows and columns so that the portions corresponding to the entropy slices consisted of the same number of blocks, and the path of entropy coding indicated parallel along the lines of blocks, and the decoder is configured to perform, for each entropy slice, an entropy decoder along the corresponding path of entropy coding and adapting the corresponding probability estimates along the corresponding path of entropy coding in such a way that after the current part of the predetermined entropy slice is entropy decoded based on the corresponding estimates (94) of the probability of the predetermined entropy slice, the corresponding estimates (94) of the probability of the predetermined entropy slice adapt depending on the current part of the predetermined entropy slice and probability estimates which manifest themselves during entropy decoding of spatially neighboring parts of the neighboring entropy slice. 6. Декодер по п. 5, в котором декодер сконфигурирован таким образом, чтобы адаптирование соответствующих оценок вероятности предопределенного энтропийного слайса, после того как текущая часть предопределенного энтропийного слайса энтропийно декодирована, основываясь на соответствующих оценках вероятности предопределенного энтропийного слайса, выполнялось с помощью первого адаптирования в зависимости от текущей части предопределенного энтропийного слайса и усреднения результата первого адаптирования с помощью оценок вероятности, которые использовались при энтропийном декодировании соседней части пространственно соседнего энтропийного слайса.6. The decoder of claim 5, wherein the decoder is configured to adapt the corresponding probability estimates of the predetermined entropy slice after the current portion of the predetermined entropy slice is entropy decoded based on the corresponding probability estimates of the predetermined entropy slice using the first adaptation in depending on the current part of the predefined entropy slice and averaging the result of the first adaptation using probability estimates, which matured used during entropy decoding of spatially neighboring parts of the neighboring entropy slice. 7. Декодер по п. 4, в котором декодер сконфигурирован для направления энтропийного декодирования непосредственно следующих друг за другом энтропийных слайсов по порядку энтропийных слайсов так, чтобы не допускать того, что расстояние между в настоящее время декодируемыми блоками порций, соответствующих непосредственно следующим друг за другом энтропийным слайсам, измеренное в блоках вдоль траекторий энтропийного кодирования, стало меньше двух блоков.7. The decoder according to claim 4, wherein the decoder is configured to direct entropy decoding of directly following entropy slices in order of entropy slices so as to prevent the distance between the currently decoded portion blocks corresponding directly immediately following one another entropy slices, measured in blocks along the paths of entropy coding, became less than two blocks. 8. Декодер по п. 4, в котором декодер сконфигурирован для направления энтропийного декодирования непосредственно следующих друг за другом энтропийных слайсов по порядку энтропийных слайсов так, чтобы расстояние между декодируемыми в настоящее время блоками порций, соответствующих непосредственно следующим друг за другом энтропийным слайсам, измеренное в блоках вдоль траекторий энтропийного кодирования, оставалось равным двум блокам.8. The decoder according to claim 4, in which the decoder is configured to direct entropy decoding of directly following entropy slices in order of entropy slices so that the distance between the currently decoded blocks of portions corresponding directly to successive entropy slices, measured in blocks along the paths of entropy coding, remained equal to two blocks. 9. Декодер по п. 1, в котором энтропийные слайсы подразделяются на фрагменты, и декодер содержит деперемежитель для деперемежения фрагментов и сконфигурирован для начала энтропийного декодирования энтропийных слайсов параллельно вдоль траекторий энтропийного кодирования даже перед приемом целиком любого из энтропийных слайсов.9. The decoder according to claim 1, in which the entropy slices are divided into fragments, and the decoder contains a deinterleaver for deinterleaving the fragments and is configured to start entropy decoding of the entropy slices in parallel along the paths of entropy encoding even before receiving any of the entropy slices. 10. Декодер по п. 1, в котором энтропийные слайсы подразделяются на фрагменты, и декодер сконфигурирован для10. The decoder according to claim 1, in which the entropy slices are divided into fragments, and the decoder is configured to проверки, соответствует или нет текущий фрагмент первой подпорции порции предопределенного энтропийного слайса вдоль траектории энтропийного кодирования, иchecking whether or not the current fragment of the first portion of the portion of the predetermined entropy slice corresponds along the path of entropy coding, and если «да», энтропийного декодирования текущего фрагмента при адаптировании соответствующих оценок вероятности и учета состояния соответствующих оценок вероятности, которые проявляют себя в конце энтропийного декодирования текущего фрагмента, когда энтропийно декодируют другой фрагмент, который соответствует второй подпорции порции предопределенного энтропийного слайса вдоль траектории энтропийного кодирования, иif yes, entropy decoding of the current fragment when adapting the corresponding probability estimates and taking into account the state of the corresponding probability estimates that manifest themselves at the end of the entropy decoding of the current fragment, when another fragment is entropically decoded, which corresponds to the second subportion of a portion of a predetermined entropy slice along the path of entropy encoding, and если «нет», энтропийного декодирования текущего фрагмента, используя оценки вероятности, которые зависят от оценок вероятности, проявляющих себя в конце энтропийного декодирования фрагмента, который соответствует подпорции порции предопределенного энтропийного слайса, предшествующей подпорции, соответствующей текущему фрагменту, вдоль траектории энтропийного кодирования.if not, entropy decoding of the current fragment using probability estimates that depend on the probability estimates manifesting themselves at the end of the entropy decoding of the fragment that corresponds to a subportation of a portion of a predetermined entropy slice preceding a subportion corresponding to the current fragment along the entropy encoding path. 11. Декодер по п. 1, в котором массив (10) выборок является текущим массивом выборок последовательности массивов выборок и декодер сконфигурирован для того, чтобы при энтропийном декодировании предопределенного энтропийного слайса, энтропийно декодировать текущую часть предопределенного энтропийного слайса, основываясь на соответствующих оценках вероятности предопределенного энтропийного слайса, которые адаптированы, используя ранее декодированную часть предопределенного энтропийного слайса, оценках вероятности, использованных при энтропийном декодировании пространственно соседнего, по порядку энтропийных слайсов, предыдущего энтропийного слайса в соседней части пространственно соседнего энтропийного слайса, и оценках вероятности, использованных при декодировании ранее декодированного кадра энтропийно закодированного потока данных, относящегося к другому массиву выборок, чем текущий массив выборок.11. The decoder according to claim 1, in which the array (10) of samples is the current array of samples of the sequence of arrays of samples and the decoder is configured to entropy decode the current part of the predetermined entropy slice based on the corresponding estimates of the probability of the predetermined entropy slice entropy slice, which are adapted using the previously decoded portion of the predefined entropy slice, probability estimates used in entropy decoding of a spatially adjacent, in order of entropy slices, previous entropy slice in the neighboring part of a spatially neighboring entropy slice, and probability estimates used in decoding a previously decoded frame of an entropy encoded data stream belonging to a different array of samples than the current array of samples. 12. Декодер по п. 1, в котором энтропийно закодированный поток данных является временным многоуровневым потоком данных.12. The decoder according to claim 1, in which the entropy encoded data stream is a temporary multi-level data stream. 13. Кодер для кодирования массива (10) выборок в энтропийно закодированный поток данных, сконфигурированный для13. An encoder for encoding an array of (10) samples into an entropy encoded data stream configured for энтропийного кодирования множества энтропийных слайсов в поток данных энтропийного кодера, каждый энтропийный слайс связан с отличающейся порцией (12) массива выборок, соответственно, с помощьюentropy encoding of a plurality of entropy slices into a data stream of an entropy encoder, each entropy slice is associated with a different portion (12) of the array of samples, respectively, using выполнения, для каждого энтропийного слайса, энтропийного кодирования вдоль соответствующей траектории (14) энтропийного кодирования, используя соответствующие оценки вероятности,performing, for each entropy slice, entropy coding along the corresponding path (14) of entropy coding using the corresponding probability estimates, адаптирования соответствующих оценок вероятности вдоль соответствующей траектории энтропийного кодирования, используя ранее закодированную часть соответствующего энтропийного слайса,adapting the corresponding probability estimates along the corresponding path of entropy coding using the previously encoded part of the corresponding entropy slice, запуска энтропийного кодирования множества энтропийных слайсов последовательно, используя порядок (16) энтропийных слайсов, иrun entropy coding of multiple entropy slices sequentially using the order (16) of entropy slices, and выполнения, при энтропийном кодировании предопределенного энтропийного слайса, энтропийного кодирования текущей части предопределенного энтропийного слайса, основываясь на соответствующих оценках вероятности предопределенного энтропийного слайса, которые адаптированы, используя ранее закодированную часть предопределенного энтропийного слайса, и на оценках вероятности, которые использовались при энтропийном кодировании пространственно соседнего, по порядку энтропийных слайсов, предыдущего энтропийного слайса в соседней части пространственно соседнего энтропийного слайса,performing, when entropy encoding a predetermined entropy slice, entropy encoding the current part of a predetermined entropy slice, based on the corresponding probability estimates of the predetermined entropy slice, which are adapted using the previously encoded part of the predetermined entropy slice, and on the probability estimates that were used in the entropy slice encoding the entropy slice in order of entropy slices, previous entropy slice in the adjacent part rostranstvenno neighboring entropy slice, при этом кодер сконфигурирован для сохранения оценок вероятности, проявляющих себя после энтропийного кодирования второго, вдоль соответствующей траектории энтропийного кодирования, блока порции, соответствующей, по порядку энтропийных слайсов, предыдущему энтропийному слайсу, и использования сохраненных оценок вероятности для инициализации, перед кодированием, первого, вдоль соответствующей траектории энтропийного кодирования, блока порции, соответствующей соответствующему энтропийному слайсу.the encoder is configured to save probability estimates that appear after the entropy encoding of the second, along the corresponding path of the entropy encoding, a portion block corresponding, in order of entropy slices, to the previous entropy slice, and use the stored probability estimates for initialization, before encoding, the first, along the corresponding trajectory of entropy coding, a portion block corresponding to the corresponding entropy slice. 14. Кодер по п. 13, в котором энтропийно закодированный поток данных является временным многоуровневым потоком данных.14. The encoder of claim 13, wherein the entropy encoded data stream is a temporary multi-level data stream. 15. Способ восстановления массива (10) выборок из энтропийно закодированного потока данных, содержащий этап, на котором15. A method of restoring an array (10) of samples from an entropy encoded data stream, comprising the step of: энтропийно декодируют множество энтропийных слайсов в потоке данных энтропийного кодера так, чтобы восстанавливать различные порции (12) массива выборок, связанные с энтропийными слайсами, соответственно, с помощьюentropy decode a plurality of entropy slices in the data stream of the entropy encoder so as to restore different portions (12) of the array of samples associated with the entropy slices, respectively, using выполнения, для каждого энтропийного слайса, энтропийного декодирования вдоль соответствующей траектории (14) энтропийного кодирования, используя соответствующие оценки вероятности,performing, for each entropy slice, entropy decoding along the corresponding path (14) of entropy encoding using the corresponding probability estimates, адаптирования соответствующих оценок вероятности вдоль соответствующей траектории энтропийного кодирования, используя ранее декодированную часть соответствующего энтропийного слайса,adapting the corresponding probability estimates along the corresponding path of entropy coding using the previously decoded part of the corresponding entropy slice, запуска энтропийного декодирования множества энтропийных слайсов последовательно, используя порядок (16) энтропийных слайсов, иtriggering entropy decoding of multiple entropy slices sequentially using the order (16) of entropy slices, and выполнения, при энтропийном декодировании предопределенного энтропийного слайса, энтропийного декодирования текущей части предопределенного энтропийного слайса, основываясь на соответствующих оценках вероятности предопределенного энтропийного слайса, которые адаптированы, используя ранее декодированную часть предопределенного энтропийного слайса, и на оценках вероятности, которые использовались при энтропийном декодировании пространственно соседнего, по порядку энтропийных слайсов, предыдущего энтропийного слайса в соседней части пространственно соседнего энтропийного слайса,performing, upon entropy decoding of a predetermined entropy slice, entropy decoding of the current part of the predetermined entropy slice based on the corresponding probability estimates of the predetermined entropy slice, which are adapted using the previously decoded part of the predetermined entropy slice, and on the probability estimates that were used in the entropy decoding in order of entropy slices, previous entropy slice in neighboring parts of a spatially adjacent entropy slice, при этом сохраняют оценки вероятности, проявляющие себя после энтропийного декодирования второго, вдоль соответствующей траектории энтропийного кодирования, блока порции, соответствующей, по порядку энтропийных слайсов, предыдущему энтропийному слайсу, и используют сохраненные оценки вероятности для инициализации, перед декодированием, первого, вдоль соответствующей траектории энтропийного кодирования, блока порции, соответствующей соответствующему энтропийному слайсу.at the same time, the probability estimates that manifest themselves after the entropy decoding of the second, along the corresponding path of the entropy coding, of the portion block corresponding in the order of the entropy slices to the previous entropy slice are stored, and the stored probability estimates are used to initialize, before decoding, the first along the corresponding path of the entropy encoding, a portion block corresponding to the corresponding entropy slice. 16. Способ кодирования массива (10) выборок в энтропийно закодированный поток данных, содержащий этап, на котором16. A method of encoding an array (10) of samples into an entropy encoded data stream, comprising the step of: энтропийно кодируют множество энтропийных слайсов в энтропийно закодированный поток данных, причем каждый энтропийный слайс связан с отличающейся порцией (12) массива выборок, соответственно, с помощьюentropy encode many entropy slices into an entropy encoded data stream, each entropy slice associated with a different portion (12) of the array of samples, respectively, using выполнения, для каждого энтропийного слайса, энтропийного кодирования вдоль соответствующей траектории (14) энтропийного кодирования, используя соответствующие оценки вероятности,performing, for each entropy slice, entropy coding along the corresponding path (14) of entropy coding using the corresponding probability estimates, адаптирования соответствующих оценок вероятности вдоль соответствующей траектории энтропийного кодирования, используя ранее закодированную часть соответствующего энтропийного слайса,adapting the corresponding probability estimates along the corresponding path of entropy coding using the previously encoded part of the corresponding entropy slice, запуска энтропийного кодирования множества энтропийных слайсов последовательно, используя порядок (16) энтропийных слайсов, иrun entropy coding of multiple entropy slices sequentially using the order (16) of entropy slices, and выполнения, при энтропийном кодировании предопределенного энтропийного слайса, энтропийного кодирования текущей части предопределенного энтропийного слайса, основываясь на соответствующих оценках вероятности предопределенного энтропийного слайса, которые адаптированы, используя ранее закодированную часть предопределенного энтропийного слайса, и на оценках вероятности, которые использовались при энтропийном кодировании пространственно соседнего, по порядку энтропийных слайсов, предыдущего энтропийного слайса в соседней части пространственно соседнего энтропийного слайса,performing, when entropy encoding a predetermined entropy slice, entropy encoding the current part of a predetermined entropy slice, based on the corresponding probability estimates of the predetermined entropy slice, which are adapted using the previously encoded part of the predetermined entropy slice, and on the probability estimates that were used in the entropy slice encoding the entropy slice in order of entropy slices, previous entropy slice in the adjacent part rostranstvenno neighboring entropy slice, при этом сохраняют оценки вероятности, проявляющие себя после энтропийного кодирования второго, вдоль соответствующей траектории энтропийного кодирования, блока порции, соответствующей, по порядку энтропийных слайсов, предыдущему энтропийному слайсу, и используют сохраненные оценки вероятности для инициализации, перед кодированием, первого, вдоль соответствующей траектории энтропийного кодирования, блока порции, соответствующей соответствующему энтропийному слайсу.at the same time, the probability estimates that manifest themselves after the entropy encoding of the second, along the corresponding path of the entropy coding, of the portion block corresponding, in the order of entropy slices, to the previous entropy slice are stored, and the stored probability estimates are used to initialize, before encoding, the first, along the corresponding path of the entropy encoding, a portion block corresponding to the corresponding entropy slice. 17. Считываемый компьютером носитель, хранящий компьютерную программу, имеющую программный код, сконфигурированный для выполнения, при выполнении на компьютере, способа по п. 15.17. A computer-readable medium storing a computer program having a program code configured to execute, when executed on a computer, the method of claim 15. 18. Считываемый компьютером носитель, хранящий компьютерную программу, имеющую программный код, сконфигурированный для выполнения, при выполнении на компьютере, способа по п. 16.18. A computer-readable medium storing a computer program having a program code configured to execute, when executed on a computer, the method of claim 16. 19. Цифровой носитель данных, хранящий энтропийно закодированный поток данных, сгенерированный способом по п. 16.19. A digital storage medium storing an entropy encoded data stream generated by the method of claim 16. 20. Цифровой носитель данных по п. 19, в котором энтропийно закодированный поток данных является временным многоуровневым потоком данных.20. The digital storage medium according to claim 19, in which the entropy encoded data stream is a temporary multi-level data stream.
RU2018101438A 2011-07-15 2018-01-16 Coding of samples array for low delay RU2666628C1 (en)

Applications Claiming Priority (2)

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

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
RU2016137910A Division RU2643647C1 (en) 2011-07-15 2012-07-16 Sample array encoding for low delay

Related Child Applications (1)

Application Number Title Priority Date Filing Date
RU2018131100A Division RU2682922C1 (en) 2011-07-15 2018-08-29 Coding of samples array for low delay

Publications (1)

Publication Number Publication Date
RU2666628C1 true RU2666628C1 (en) 2018-09-11

Family

ID=46548436

Family Applications (5)

Application Number Title Priority Date Filing Date
RU2014105554A RU2610668C2 (en) 2011-07-15 2012-07-16 Coding of samples array for low delay
RU2016137910A RU2643647C1 (en) 2011-07-15 2012-07-16 Sample array encoding for low delay
RU2018101438A RU2666628C1 (en) 2011-07-15 2018-01-16 Coding of samples array for low delay
RU2018131100A RU2682922C1 (en) 2011-07-15 2018-08-29 Coding of samples array for low delay
RU2019107150A RU2763532C2 (en) 2011-07-15 2019-03-14 Encoding of sampling array for low latency

Family Applications Before (2)

Application Number Title Priority Date Filing Date
RU2014105554A RU2610668C2 (en) 2011-07-15 2012-07-16 Coding of samples array for low delay
RU2016137910A RU2643647C1 (en) 2011-07-15 2012-07-16 Sample array encoding for low delay

Family Applications After (2)

Application Number Title Priority Date Filing Date
RU2018131100A RU2682922C1 (en) 2011-07-15 2018-08-29 Coding of samples array for low delay
RU2019107150A RU2763532C2 (en) 2011-07-15 2019-03-14 Encoding of sampling array for low latency

Country Status (32)

Country Link
US (13) US9596469B2 (en)
EP (3) EP2732625B1 (en)
JP (6) JP6177775B2 (en)
KR (9) KR102385848B1 (en)
CN (5) CN108111854B (en)
AP (2) AP2016009466A0 (en)
AU (7) AU2012285851B2 (en)
BR (1) BR112014001026B1 (en)
CA (1) CA2841888C (en)
CL (1) CL2014000116A1 (en)
CO (1) CO6880051A2 (en)
DK (2) DK3425805T3 (en)
ES (2) ES2694848T3 (en)
FI (1) FI3425805T3 (en)
HK (4) HK1254387A1 (en)
HR (1) HRP20230228T1 (en)
HU (2) HUE061192T2 (en)
IL (10) IL299633B1 (en)
LT (1) LT3425805T (en)
MA (1) MA35416B1 (en)
MX (3) MX2020003540A (en)
MY (2) MY191000A (en)
PH (5) PH12018500198A1 (en)
PL (2) PL3425805T3 (en)
PT (2) PT2732625T (en)
RS (1) RS64037B1 (en)
RU (5) RU2610668C2 (en)
SI (1) SI3425805T1 (en)
TN (1) TN2014000015A1 (en)
UA (3) UA111362C2 (en)
WO (1) WO2013010997A1 (en)
ZA (1) ZA201401075B (en)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102957914B (en) * 2008-05-23 2016-01-06 松下知识产权经营株式会社 Picture decoding apparatus, picture decoding method, picture coding device and method for encoding images
FR2972588A1 (en) 2011-03-07 2012-09-14 France Telecom METHOD FOR ENCODING AND DECODING IMAGES, CORRESPONDING ENCODING AND DECODING DEVICE AND COMPUTER PROGRAMS
FR2977111A1 (en) * 2011-06-24 2012-12-28 France Telecom METHOD FOR ENCODING AND DECODING IMAGES, CORRESPONDING ENCODING AND DECODING DEVICE AND COMPUTER PROGRAMS
LT3425805T (en) 2011-07-15 2023-03-27 Ge Video Compression, Llc Sample array coding for low-delay
KR20130085389A (en) * 2012-01-19 2013-07-29 삼성전자주식회사 Method and apparatus for video encoding capable of parallel entropy encoding for sub regions, method and apparatus for video decoding capable of parallel entropy decoding for sub regions
KR101863179B1 (en) 2012-01-20 2018-05-31 지이 비디오 컴프레션, 엘엘씨 Coding concept allowing parallel processing, transport demultiplexer and video bitstream
EP2823409A4 (en) 2012-03-04 2015-12-02 Adam Jeffries Data systems processing
GB2513111A (en) * 2013-04-08 2014-10-22 Sony Corp Data encoding and decoding
US20140362098A1 (en) * 2013-06-10 2014-12-11 Sharp Laboratories Of America, Inc. Display stream compression
US9578328B2 (en) 2013-07-15 2017-02-21 Qualcomm Incorporated Cross-layer parallel processing and offset delay parameters for video coding
WO2015089623A1 (en) * 2013-12-16 2015-06-25 Mcafee, Inc. Process efficient preprocessing for an encryption standard
WO2016041507A1 (en) * 2014-09-17 2016-03-24 Mediatek Inc. Syntax parsing apparatus with multiple syntax parsing circuits for processing multiple image regions within same frame or processing multiple frames and related syntax parsing method
CN105206302B (en) * 2015-09-14 2019-05-31 联想(北京)有限公司 A kind of information processing method and electronic equipment
CN105939479B (en) * 2016-06-15 2019-06-21 北京奇艺世纪科技有限公司 A kind of parallel encoding method and apparatus
US10218979B2 (en) * 2016-11-01 2019-02-26 Cisco Technology, Inc. Entropy coding state segmentation and retention
EP3358754A1 (en) * 2017-02-02 2018-08-08 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Antenna array codebook with beamforming coefficients adapted to an arbitrary antenna response of the antenna array
US10554977B2 (en) * 2017-02-10 2020-02-04 Intel Corporation Method and system of high throughput arithmetic entropy coding for video coding
WO2019000443A1 (en) * 2017-06-30 2019-01-03 华为技术有限公司 Inter-frame prediction method and device
CN109558888A (en) * 2017-09-27 2019-04-02 武汉嫦娥信息科技有限公司 A kind of parallelization accelerating algorithm of Classification of hyperspectral remote sensing image
US10664477B2 (en) * 2017-12-21 2020-05-26 Futurewei Technologies, Inc. Cardinality estimation in databases
JP7187572B2 (en) * 2018-03-29 2022-12-12 フラウンホーファー-ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン Enhancement concept of parallel coding function
EP3780607A4 (en) * 2018-04-13 2021-02-17 Zhejiang University Information maintaining encoding and decoding method and device
EP3588800A1 (en) 2018-06-29 2020-01-01 FRAUNHOFER-GESELLSCHAFT zur Förderung der angewandten Forschung e.V. Antenna array codebook with beamforming coefficients adapted to an arbitrary antenna response of the antenna array
JP6982253B2 (en) * 2018-10-31 2021-12-17 日本電信電話株式会社 Decoding device, coding device, decoding method, coding method, and program
US11538221B2 (en) * 2020-05-21 2022-12-27 Samsung Electronics Co., Ltd. Re-reference aware tile walk order for primitive binner
WO2022231452A1 (en) * 2021-04-26 2022-11-03 Huawei Technologies Co., Ltd. Parallel entropy coding
CN117472591B (en) * 2023-12-27 2024-03-22 北京壁仞科技开发有限公司 Method for data calculation, electronic device and storage medium

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

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9108199D0 (en) 1991-04-17 1991-06-05 Rhone Poulenc Agriculture New compositions of matter
US6104752A (en) * 1996-10-01 2000-08-15 Victor Company Of Japan, Ltd. Apparatus and method of decoding high efficiency coded picture data with picture size resizing
US6832005B2 (en) 2001-03-23 2004-12-14 Microsoft Corporation Adaptive encoding and decoding of bi-level images
US8401084B2 (en) 2002-04-01 2013-03-19 Broadcom Corporation System and method for multi-row decoding of video with dependent rows
JP2003319391A (en) * 2002-04-26 2003-11-07 Sony Corp Encoding apparatus and method, decoding apparatus and method, recording medium, and program
US20040258162A1 (en) 2003-06-20 2004-12-23 Stephen Gordon Systems and methods for encoding and decoding video data in parallel
US7693339B2 (en) * 2003-12-17 2010-04-06 Andreas Wittenstein Method and apparatus for faster-than-real-time lossless compression and decompression of images
US7450770B2 (en) * 2003-12-19 2008-11-11 National Taiwan University Architecture and method for parallel embedded block coding
US20070014367A1 (en) * 2005-07-13 2007-01-18 Yaxiong Zhou Extensible architecture for multi-standard variable length decoding
US8401082B2 (en) * 2006-03-27 2013-03-19 Qualcomm Incorporated Methods and systems for refinement coefficient coding in video compression
US8306125B2 (en) * 2006-06-21 2012-11-06 Digital Video Systems, Inc. 2-bin parallel decoder for advanced video processing
JP4660433B2 (en) * 2006-06-29 2011-03-30 株式会社東芝 Encoding circuit, decoding circuit, encoder circuit, decoder circuit, CABAC processing method
US8000388B2 (en) 2006-07-17 2011-08-16 Sony Corporation Parallel processing apparatus for video compression
US7365659B1 (en) 2006-12-06 2008-04-29 Silicon Image Gmbh Method of context adaptive binary arithmetic coding and coding apparatus using the same
JP5150129B2 (en) 2007-04-20 2013-02-20 株式会社ミマキエンジニアリング Printer device
US9648325B2 (en) * 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit
CN101389021B (en) 2007-09-14 2010-12-22 华为技术有限公司 Video encoding/decoding method and apparatus
BRPI0818444A2 (en) 2007-10-12 2016-10-11 Qualcomm Inc adaptive encoding of video block header information
JP4314315B1 (en) * 2008-03-31 2009-08-12 株式会社東芝 Information processing apparatus and decoding control method
FR2931280B1 (en) 2008-05-19 2011-01-07 Envivio France METHOD AND DEVICE FOR ENCODING OR DECODING IMAGE WITH PARALLELISATIOON OF PROCESSING ON MULTIPLE PROCESSORS AND COPROCESSORS, COMPUTER PROGRAM AND CORRESPONDING STORAGE MEANS.
US7932843B2 (en) * 2008-10-17 2011-04-26 Texas Instruments Incorporated Parallel CABAC decoding for video decompression
US9467699B2 (en) 2008-12-03 2016-10-11 Hfi Innovation Inc. Method for performing parallel coding with ordered entropy slices, and associated apparatus
WO2010063184A1 (en) 2008-12-03 2010-06-10 Mediatek Inc. Method for performing parallel cabac processing with ordered entropy slices, and associated apparatus
CN102687510B (en) 2009-07-06 2014-11-05 松下电器产业株式会社 Image decoding device, image encoding device, image decoding method, image encoding method, program, and integrated circuit
JP5389187B2 (en) * 2009-10-29 2014-01-15 パナソニック株式会社 Image encoding method and image encoding apparatus
CN102098503B (en) * 2009-12-14 2012-11-28 中兴通讯股份有限公司 Method and device for decoding image in parallel by multi-core processor
US20110280314A1 (en) * 2010-05-12 2011-11-17 Texas Instruments Incorporated Slice encoding and decoding processors, circuits, devices, systems and processes
CN101888554B (en) * 2010-07-09 2013-05-22 西安交通大学 VLSI (Very Large Scale Integration) structure design method for parallel flowing motion compensating filter
US8344917B2 (en) * 2010-09-30 2013-01-01 Sharp Laboratories Of America, Inc. Methods and systems for context initialization in video coding and decoding
US8995523B2 (en) * 2011-06-03 2015-03-31 Qualcomm Incorporated Memory efficient context modeling
CN107529709B (en) 2011-06-16 2019-05-07 Ge视频压缩有限责任公司 Decoder, encoder, decoding and encoded video method and storage medium
US20130003823A1 (en) * 2011-07-01 2013-01-03 Kiran Misra System for initializing an arithmetic coder
LT3425805T (en) 2011-07-15 2023-03-27 Ge Video Compression, Llc Sample array coding for low-delay

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

Also Published As

Publication number Publication date
AP2014007416A0 (en) 2014-02-28
IL265152A (en) 2019-05-30
IL291443B2 (en) 2023-06-01
KR102187171B1 (en) 2020-12-04
RU2643647C1 (en) 2018-02-02
US10771800B2 (en) 2020-09-08
JP2022033819A (en) 2022-03-02
IL299633B1 (en) 2024-03-01
EP2732625A1 (en) 2014-05-21
AU2017208363A1 (en) 2017-08-17
JP2014525187A (en) 2014-09-25
IL258274A (en) 2018-05-31
KR101730586B1 (en) 2017-04-26
WO2013010997A1 (en) 2013-01-24
IL299633A (en) 2023-03-01
JP2016187194A (en) 2016-10-27
EP3425805B1 (en) 2022-12-07
RU2763532C2 (en) 2021-12-30
US10924754B2 (en) 2021-02-16
IL253274A0 (en) 2017-08-31
AU2012285851B2 (en) 2015-11-12
CN103797793A (en) 2014-05-14
AU2012285851A1 (en) 2014-02-06
CA2841888A1 (en) 2013-01-24
IL258274B (en) 2019-03-31
MX2020003540A (en) 2022-03-25
AU2019275583A1 (en) 2020-01-02
PH12018500196B1 (en) 2018-09-24
AU2022202573B2 (en) 2023-08-10
PH12018500198B1 (en) 2018-09-24
EP2732625B1 (en) 2018-09-05
KR20170047405A (en) 2017-05-04
US9860547B2 (en) 2018-01-02
AU2017208363B2 (en) 2019-09-12
AU2019275583B2 (en) 2020-09-03
KR20190124341A (en) 2019-11-04
CN107995491B (en) 2021-12-28
US20170134741A1 (en) 2017-05-11
US10652564B2 (en) 2020-05-12
US20200366919A1 (en) 2020-11-19
KR20180086525A (en) 2018-07-31
HUE061192T2 (en) 2023-05-28
CN107948645A (en) 2018-04-20
MY191000A (en) 2022-05-27
IL276219A (en) 2020-09-30
IL230399A (en) 2017-07-31
ES2939239T3 (en) 2023-04-20
PH12018500198A1 (en) 2018-09-24
PL3425805T3 (en) 2023-05-08
UA114670C2 (en) 2017-07-10
RU2682922C1 (en) 2019-03-22
FI3425805T3 (en) 2023-03-22
JP6659767B2 (en) 2020-03-04
CN103797793B (en) 2018-01-09
ES2694848T3 (en) 2018-12-27
JP2018152896A (en) 2018-09-27
US11595675B2 (en) 2023-02-28
RU2019107150A (en) 2020-09-14
HK1255113A1 (en) 2019-08-02
ZA201401075B (en) 2015-02-25
KR20200136515A (en) 2020-12-07
US10659798B2 (en) 2020-05-19
HK1254885A1 (en) 2019-07-26
LT3425805T (en) 2023-03-27
AU2022202573A1 (en) 2022-05-12
AP2016009466A0 (en) 2016-09-30
IL253274B (en) 2018-04-30
IL265152B (en) 2019-11-28
KR101882979B9 (en) 2021-10-27
US20170302944A1 (en) 2017-10-19
MX2014000542A (en) 2014-07-14
PH12018500195A1 (en) 2018-09-24
RU2019107150A3 (en) 2021-10-22
US20200236378A1 (en) 2020-07-23
US20140105293A1 (en) 2014-04-17
JP7164692B2 (en) 2022-11-01
MY168583A (en) 2018-11-14
US20180367810A1 (en) 2018-12-20
IL310690A (en) 2024-04-01
CL2014000116A1 (en) 2014-08-01
CN108111854B (en) 2021-04-02
US20200280731A1 (en) 2020-09-03
AU2016200182A1 (en) 2016-02-04
MA35416B1 (en) 2014-09-01
TN2014000015A1 (en) 2015-07-01
BR112014001026A2 (en) 2017-02-14
HK1254424A1 (en) 2019-07-19
US20200021830A1 (en) 2020-01-16
AU2020280994A1 (en) 2021-01-07
CN107959854A (en) 2018-04-24
HK1254387A1 (en) 2019-07-19
SI3425805T1 (en) 2023-04-28
CN107948645B (en) 2021-12-24
CN107959854B (en) 2021-07-23
IL282796A (en) 2021-06-30
AP3992A (en) 2017-01-08
CA2841888C (en) 2017-01-03
RU2014105554A (en) 2015-08-27
DK2732625T3 (en) 2018-12-17
HRP20230228T1 (en) 2023-04-14
CN107995491A (en) 2018-05-04
AU2020280994B2 (en) 2022-03-03
PL2732625T3 (en) 2019-02-28
US9866857B2 (en) 2018-01-09
US11949897B2 (en) 2024-04-02
KR102085171B1 (en) 2020-03-06
KR102444757B1 (en) 2022-09-19
UA111362C2 (en) 2016-04-25
BR112014001026B1 (en) 2022-05-03
EP4152749A1 (en) 2023-03-22
PH12018502511A1 (en) 2020-03-16
IL282796B (en) 2022-04-01
US20210211701A1 (en) 2021-07-08
IL270426B (en) 2020-08-31
MX2022003601A (en) 2022-06-17
EP3425805A1 (en) 2019-01-09
HUE039959T2 (en) 2019-02-28
US20180084267A1 (en) 2018-03-22
UA124568C2 (en) 2021-10-13
KR20140042893A (en) 2014-04-07
US20170302945A1 (en) 2017-10-19
RS64037B1 (en) 2023-04-28
US9860544B2 (en) 2018-01-02
KR20200024959A (en) 2020-03-09
KR20220129114A (en) 2022-09-22
AU2016200182B2 (en) 2017-05-04
KR102385848B1 (en) 2022-04-14
KR101882979B1 (en) 2018-08-24
EP4152749B1 (en) 2024-04-10
PH12018500197A1 (en) 2018-09-24
KR102039049B1 (en) 2019-11-15
KR20220047686A (en) 2022-04-18
PH12018500197B1 (en) 2018-09-24
US9729891B2 (en) 2017-08-08
IL291443A (en) 2022-05-01
CO6880051A2 (en) 2014-02-28
PH12018500196A1 (en) 2018-09-24
JP6985436B2 (en) 2021-12-22
AU2023258453A1 (en) 2023-11-23
US11019352B2 (en) 2021-05-25
CN108111854A (en) 2018-06-01
KR20160049028A (en) 2016-05-04
PH12018500195B1 (en) 2018-09-24
US20230179786A1 (en) 2023-06-08
KR101721487B1 (en) 2017-03-30
JP2023017786A (en) 2023-02-07
IL276219B (en) 2021-05-31
RU2610668C2 (en) 2017-02-14
JP6177775B2 (en) 2017-08-09
US10085035B2 (en) 2018-09-25
US9596469B2 (en) 2017-03-14
US20170302943A1 (en) 2017-10-19
PT3425805T (en) 2023-03-13
JP2020092437A (en) 2020-06-11
PT2732625T (en) 2018-12-17
DK3425805T3 (en) 2023-03-06

Similar Documents

Publication Publication Date Title
RU2682922C1 (en) Coding of samples array for low delay
RU2777499C1 (en) Sample array encoding for low delay
RU2787846C1 (en) Sample arrige encoding for low delay