RU2645269C2 - Video decoding method - Google Patents

Video decoding method Download PDF

Info

Publication number
RU2645269C2
RU2645269C2 RU2013144210A RU2013144210A RU2645269C2 RU 2645269 C2 RU2645269 C2 RU 2645269C2 RU 2013144210 A RU2013144210 A RU 2013144210A RU 2013144210 A RU2013144210 A RU 2013144210A RU 2645269 C2 RU2645269 C2 RU 2645269C2
Authority
RU
Russia
Prior art keywords
clipping
coefficients
memory
quantized coefficients
quantization
Prior art date
Application number
RU2013144210A
Other languages
Russian (ru)
Other versions
RU2013144210A (en
Inventor
Луис Джозеф КЕРОФСКИ
Киран МИСРА
Кристофер Эндрю СИГАЛЛ
Original Assignee
Шарп Кабусики Кайся
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Шарп Кабусики Кайся filed Critical Шарп Кабусики Кайся
Publication of RU2013144210A publication Critical patent/RU2013144210A/en
Application granted granted Critical
Publication of RU2645269C2 publication Critical patent/RU2645269C2/en

Links

Images

Classifications

    • 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/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • 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/184Methods 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 bits, e.g. of the compressed video stream
    • 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/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • 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/124Quantisation
    • 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/176Methods 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 block, e.g. a macroblock
    • 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

Abstract

FIELD: physics.
SUBSTANCE: quantized coefficient dequantizing method comprises the steps of: receiving the quantized coefficients representing a video block representing a plurality of pixels and a quantization matrix; and dequantizing, using, at least, the quantization matrix, the conversion size and the quantized coefficients to determine the conversion coefficients. Dequantization includes: a process of multiplying the quantized coefficients by one integer depending on the quantization parameter, the index of the quantized coefficient, and the size of the conversion; a process of clipping the result of multiplying the quantized coefficients by one integer depending on the quantization parameter, the index of the quantized coefficient, and the size of the conversion. Clipping is a clipping process to the right; a process for cutting off the result of the said clipping process to the predetermined bit depth, and storing the result of the said clipping process in memory.
EFFECT: reducing the memory required when decoding video.
4 cl, 14 dwg

Description

ОБЛАСТЬ ТЕХНИКИFIELD OF TECHNOLOGY

Настоящее изобретение относится к способу для декодирования видео.The present invention relates to a method for decoding video.

ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИBACKGROUND OF THE INVENTION

Существующие стандарты кодирования видео, например H.264/AVC, как правило, обеспечивают относительно высокую эффективность кодирования за счет увеличенной вычислительной сложности. Когда вычислительная сложность увеличивается, скорости кодирования и/или декодирования имеют тенденцию к уменьшению. Также желание высококачественного воспроизведения имеет тенденцию увеличиваться со временем, что имеет тенденцию к возрастающим требованиям к увеличению памяти и к возрастающим требованиям к пропускной способности памяти. Увеличивающаяся требуемая память и увеличивающиеся требования к пропускной способности памяти приводят к все более дорогим и сложным в вычислительном отношении схемам, особенно в случае встраиваемых систем.Existing video coding standards, such as H.264 / AVC, typically provide relatively high coding efficiency due to increased computational complexity. As computational complexity increases, coding and / or decoding rates tend to decrease. Also, the desire for high-quality playback tends to increase over time, which tends to increasing requirements for increasing memory and increasing requirements for memory bandwidth. Increasing memory requirements and increasing memory bandwidth requirements are leading to increasingly expensive and computationally complex circuits, especially in the case of embedded systems.

Ссылаясь на фиг. 1, многие декодеры (и кодеры) принимают (а кодеры - предоставляют) кодированные данные для блоков изображения. Как правило, изображение разделяется на блоки, и каждый из блоков кодируется некоторым способом, например с использованием дискретного косинусного преобразования (DCT), и предоставляется декодеру. Декодер принимает кодированные блоки и декодирует каждый из блоков некоторым способом, например с использованием обратного дискретного косинусного преобразования. Во многих случаях декодирование коэффициентов изображения у блока изображения выполняется с помощью матричного умножения. Матричное умножение может выполняться для горизонтального направления, и матричное умножение может выполняться для вертикального направления. В качестве примера для 8-разрядных значений первое умножение в некоторых случаях может привести к 16-разрядным значениям, а второе умножение может привести к 24-разрядным значениям. К тому же кодирование каждого блока изображения обычно квантуется, что отображает значения кодирования в меньший набор квантованных коэффициентов, используемый для передачи. Квантование требует деквантования с помощью декодера, что отображает набор квантованных коэффициентов, используемый для передачи, в приближенные значения кодирования. Количество желательных разрядов для деквантованных данных является проектным параметром. Возможность больших значений, происходящих из матричного умножения и операции деквантования, является проблематичной для систем с ограниченными ресурсами, особенно для встраиваемых систем.Referring to FIG. 1, many decoders (and encoders) receive (and encoders provide) encoded data for image blocks. Typically, the image is divided into blocks, and each of the blocks is encoded in some way, for example using discrete cosine transform (DCT), and is provided to the decoder. The decoder receives the encoded blocks and decodes each of the blocks in some way, for example, using the inverse discrete cosine transform. In many cases, decoding of the image coefficients of the image block is performed using matrix multiplication. Matrix multiplication can be performed for the horizontal direction, and matrix multiplication can be performed for the vertical direction. As an example, for 8-bit values, the first multiplication in some cases can lead to 16-bit values, and the second multiplication can lead to 24-bit values. In addition, the encoding of each image block is usually quantized, which maps the encoding values to a smaller set of quantized coefficients used for transmission. Quantization requires dequantization using a decoder, which maps the set of quantized coefficients used for transmission to approximate encoding values. The number of desired bits for dequantized data is a design parameter. The possibility of large values resulting from matrix multiplication and the dequantization operation is problematic for systems with limited resources, especially for embedded systems.

СУЩНОСТЬ ИЗОБРЕТЕНИЯSUMMARY OF THE INVENTION

Один вариант осуществления настоящего изобретения раскрывает способ для декодирования видео. Способ содержит (a) прием квантованных коэффициентов, представляющих блок видео, представляющий множество пикселей; (b) деквантование упомянутых квантованных коэффициентов; (c) применение модификации к упомянутым деквантованным коэффициентам на основе матрицы квантования; (d) обратное преобразование упомянутых деквантованных коэффициентов для определения декодированного остатка.One embodiment of the present invention discloses a method for decoding a video. The method comprises (a) receiving quantized coefficients representing a video block representing a plurality of pixels; (b) dequantizing said quantized coefficients; (c) applying a modification to said dequantized coefficients based on a quantization matrix; (d) an inverse transform of said dequantized coefficients to determine a decoded remainder.

Вышеупомянутые и другие цели, признаки и преимущества изобретения станут понятными при рассмотрении нижеследующего подробного описания изобретения в сочетании с прилагаемыми чертежами.The above and other objects, features and advantages of the invention will become apparent upon consideration of the following detailed description of the invention in conjunction with the accompanying drawings.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF THE DRAWINGS

Фиг. 1 иллюстрирует кодер и декодер.FIG. 1 illustrates an encoder and a decoder.

Фиг. 2 иллюстрирует декодер с деквантователем и обратным преобразованием.FIG. 2 illustrates a decoder with a dequantizer and an inverse transform.

Фиг. 3A и фиг. 3B иллюстрируют модифицированный деквантователь.FIG. 3A and FIG. 3B illustrate a modified dequantizer.

Фиг. 4 иллюстрирует модифицированное обратное преобразование.FIG. 4 illustrates a modified inverse transform.

Фиг. 5 иллюстрирует другой декодер.FIG. 5 illustrates another decoder.

Фиг. 6 иллюстрирует еще один декодер.FIG. 6 illustrates another decoder.

Фиг. 7 иллюстрирует другой модифицированный деквантователь.FIG. 7 illustrates another modified dequantizer.

Фиг. 8 иллюстрирует другое модифицированное обратное преобразование.FIG. 8 illustrates another modified inverse transform.

Фиг. 9 иллюстрирует другой модифицированный деквантователь.FIG. 9 illustrates another modified dequantizer.

Фиг. 10 иллюстрирует другое модифицированное обратное преобразование.FIG. 10 illustrates another modified inverse transform.

Фиг. 11 иллюстрирует другой модифицированный деквантователь.FIG. 11 illustrates another modified dequantizer.

Фиг. 12 иллюстрирует другой модифицированный деквантователь.FIG. 12 illustrates another modified dequantizer.

Фиг. 13 иллюстрирует другой модифицированный деквантователь.FIG. 13 illustrates another modified dequantizer.

ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯDESCRIPTION OF EMBODIMENTS

Ссылаясь на фиг. 2, декодер для деквантования и обратного преобразования принятых квантованных коэффициентов от кодера для блока изображения иллюстрируется в релевантной части. Декодер принимает квантованные коэффициенты 200 в деквантователе 210. Коэффициенты, получающиеся из деквантователя 210, сохраняются в памяти 220. Коэффициенты, сохраненные в памяти 220, обрабатываются затем парой обратных преобразований 230 для определения декодированного остатка 310. Обратное преобразование отображает данные из области преобразования в пространственную область с использованием оператора матричного умножения.Referring to FIG. 2, a decoder for dequantizing and inverting received quantized coefficients from an encoder for an image block is illustrated in the relevant part. The decoder receives the quantized coefficients 200 in the dequantizer 210. The coefficients obtained from the dequantifier 210 are stored in the memory 220. The coefficients stored in the memory 220 are then processed by a pair of inverse transforms 230 to determine the decoded remainder 310. The inverse transform maps data from the transform domain to the spatial domain using the matrix multiplication operator.

Деквантователь 210 включает в себя процесс 240 отмены масштабирования. Процесс 240 отмены масштабирования отменяет масштаб у квантованных коэффициентов 200. Процесс отмены масштабирования соответствует умножению значений уровня (также называемых квантованными коэффициентами 200) на одно целое число, зависящее от параметра квантования (QP), индекса коэффициента и размера преобразования (N). Пример процесса 240 отмены масштабирования может включать в себя Уровень*Целочисленное значение (Остаток, индекс коэффициента)*16 для деквантователя, используемого перед обратным преобразованием 8x8, и Уровень*Целочисленное значение (Остаток, индекс коэффициента) для деквантователя, используемого перед другими размерами преобразования. Процесс 240 отмены масштабирования предпочтительно основывается на функции остатков, размере преобразования (N) и/или индексе коэффициента (например, положении), чтобы определить промежуточный набор значений 250. Остаток является суммой параметра квантования (QP) и P*BitIncrement modulo P ((QP+P*BitIncrement)%P). Modulo (остаток от деления), как определено в стандарте H.264/AVC, задается в виде: x % y, как остаток от x, деленного на y, заданный только для целых чисел x и y, причем x>=0 и y>0. В одном варианте осуществления P может принимать значение 6. Механизм A 260 регулировки может применяться к значениям 250, которые могут быть переменной, зависящей от размера преобразования (N) и/или функции принятого Периода. Период является суммой параметра квантования (QP) и P*BitIncrement, деленной на P ((QP+ P*BitIncrement)/P), где "BitIncrement" является приращением битовой глубины. "/", как определено в стандарте H.264/AVC, задается в виде: целочисленное деление с усечением результата в направлении нуля. Например, 7/4 и -7/-4 усекаются до 1, а -7/4 и 7/-4 усекаются до -1. В одном варианте осуществления P может принимать значение 6. Результирующие значения 250, возможно, дополнительно модифицированные механизмом A 260, могут дополнительно модифицироваться с помощью множителя 2(Период+B)270. B является переменной, которая зависит от размера преобразования. Результаты модификации 270 сохраняются в памяти 220. Обратное преобразование 230 может выполнять 1-мерное обратное горизонтальное преобразование 280, которое сохраняется в памяти 290. Обратное преобразование 230 также может выполнять 1-мерное обратное вертикальное преобразование 300, которое приводит к декодированному остатку 310. Преобразования 280 и 300 могут меняться местами по желанию.The decanter 210 includes a process of scaling cancellation 240. The process of canceling scaling cancels the scale of the quantized coefficients 200. The process of canceling scaling corresponds to multiplying the level values (also called quantized coefficients 200) by one integer depending on the quantization parameter (QP), coefficient index, and transform size (N). An example of a de-scaling process 240 may include a Level * Integer value (Remainder, coefficient index) * 16 for the dequantizer used before the inverse 8x8 transform, and Level * An integer value (Remainder, coefficient index) for the dequantifier used before other transform sizes. The de-scaling process 240 is preferably based on a remainder function, a transform size (N), and / or a coefficient index (eg, position) to determine an intermediate set of 250 values. The remainder is the sum of the quantization parameter (QP) and P * BitIncrement modulo P ((QP + P * BitIncrement)% P). Modulo (remainder of division), as defined in the H.264 / AVC standard, is defined as: x% y, as the remainder of x divided by y, specified only for integers x and y, with x> = 0 and y > 0. In one embodiment, P may take the value 6. Adjustment mechanism A 260 may be applied to values 250, which may be a variable depending on the size of the transform (N) and / or the function of the received Period. The period is the sum of the quantization parameter (QP) and P * BitIncrement divided by P ((QP + P * BitIncrement) / P), where "BitIncrement" is an increment of the bit depth. "/", as defined in the H.264 / AVC standard, is defined as: integer division with truncation of the result in the direction of zero. For example, 7/4 and -7 / -4 are truncated to 1, while -7/4 and 7 / -4 are truncated to -1. In one embodiment, P may take the value 6. The resulting values 250, possibly further modified by mechanism A 260, may be further modified by a factor of 2 (Period + B) 270. B is a variable that depends on the size of the transform. The results of modification 270 are stored in memory 220. Inverse transform 230 may perform 1-dimensional inverse horizontal transform 280, which is stored in memory 290. Inverse transform 230 may also perform 1-dimensional inverse vertical transform 300, which leads to decoded remainder 310. Conversions 280 and 300 can be swapped at will.

Пропускная способность памяти декодера видео, проиллюстрированного на фиг. 2, при реализации в рамках "Part 10: Advanced Video Coding", публикации ISO: ISO/IEC 14496-10:2005 - "Information Technology - Coding Of Audio-Visual Objects" (включенной в этот документ посредством ссылки) (стандарт H.264/AVC), может ограничиваться неким ограничительным условием. Например, в разделе 8.5.10 стандарта H.264/AVC ширина выборки из памяти для коэффициентов DC-преобразования яркости 4×4 ограничивается включением следующих положений: "Поток двоичных сигналов не должен содержать данные, которые приводят к какому-либо элементу fij для f при i, j=0, …, 3, который превышает диапазон целочисленных значений от −2(7+bitDepth) до 2(7+bitDepth)−1 включительно" и "Поток двоичных сигналов не должен содержать данные, которые приводят к какому-либо элементу dcYij у dcY при i, j=0, …, 3, который превышает диапазон целочисленных значений от −2(7+bitDepth) до 2(7+bitDepth)−1 включительно". Стандарт H.264/AVC включает в себя аналогичное ограничение по памяти для других остаточных блоков. В дополнение к включению комплексного ограничения по пропускной способности памяти стандарт H.264/AVC не включает в себя никакого механизма, чтобы убедиться, что соблюдается это ограничение. Аналогичным образом документ JCT-VC, "Draft Test Model Under Consideration", JCTVC-A205, Заседание JCT-VC в Дрездене, апрель 2010 г. (JCT-VC), включенный в этот документ посредством ссылки, также не включает в себя механизм соблюдения пропускной способности памяти. Для надежности декодер должен быть подготовлен к приему потоков двоичных сигналов, которые могут нарушать эти границы, что может быть обусловлено ошибками передачи, повреждением совместимого потока двоичных сигналов или несоответствующим кодером. Чтобы смягчить такие возможные ограничения, декодер часто включает в себя дополнительную пропускную способность памяти при дополнительных издержках и сложности, чтобы приспособиться к несовместимым потокам двоичных сигналов, которые предоставляются.The memory bandwidth of the video decoder illustrated in FIG. 2, when implemented as part of Part 10: Advanced Video Coding, publication ISO: ISO / IEC 14496-10: 2005 - “Information Technology - Coding Of Audio-Visual Objects” (incorporated herein by reference) (H. Standard 264 / AVC), may be limited by some restrictive condition. For example, in Section 8.5.10 of the H.264 / AVC standard, the memory sample for 4 × 4 DC conversion factors is limited to including the following provisions: “The binary signal stream must not contain data that leads to any element f ij for f for i, j = 0, ..., 3, which exceeds the range of integer values from −2 (7 + bitDepth) to 2 (7 + bitDepth) −1 inclusive "and" The stream of binary signals should not contain data that leads to which element-or dcY ij y dcY with i, j = 0, ..., 3, which exceeds the range of integer values from -2 (7 + bitDepth) about 2 (7 + bitDepth) -1 inclusive. " The H.264 / AVC standard includes a similar memory limit for other residual blocks. In addition to including a comprehensive memory bandwidth limit, the H.264 / AVC standard does not include any mechanism to ensure that this limit is respected. Similarly, JCT-VC, "Draft Test Model Under Consideration", JCTVC-A205, JCT-VC Meeting in Dresden, April 2010 (JCT-VC), incorporated herein by reference, also does not include a compliance mechanism memory bandwidth. For reliability, the decoder must be prepared to receive binary signal streams that may violate these boundaries, which may be due to transmission errors, damage to the compatible binary signal stream, or an inappropriate encoder. To mitigate such possible limitations, a decoder often includes additional memory bandwidth at additional cost and complexity to accommodate the incompatible binary signal streams that are provided.

Чтобы предоставить более надежный в вычислительном отношении декодер с ограниченной пропускной способностью памяти и/или требованиями к хранению в памяти, декодер следует подходящим образом модифицировать. Однако наряду с модификацией декодера для уменьшения требуемой памяти не следует существенно ухудшать соответствующую характеристику искажения в зависимости от скорости передачи видео. В противном случае, хотя и можно уменьшить требуемую память, результирующее качество видео будет неподходящим для просмотра зрителями. Модификация 270 приводит к изменению значения коэффициента на основе изменений в шагах в параметре P квантования и, соответственно, может существенно увеличить размер требуемой памяти. Например, коэффициенты удваиваются каждые 6 шагов в параметре P квантования. Увеличенное значение приводит к одному или нескольким нулям, включаемым в качестве самых младших разрядов. Предпочтительно, чтобы декодер модифицировался подходящим образом для выполнения механизма соблюдения пропускной способности памяти.To provide a more computationally reliable decoder with limited memory bandwidth and / or storage requirements, the decoder should be suitably modified. However, along with the modification of the decoder to reduce the required memory, the corresponding distortion characteristic should not be significantly degraded depending on the video transmission speed. Otherwise, although it is possible to reduce the required memory, the resulting video quality will not be suitable for viewers to watch. Modification 270 leads to a change in the coefficient value based on changes in steps in the quantization parameter P and, accordingly, can significantly increase the size of the required memory. For example, the coefficients are doubled every 6 steps in the quantization parameter P. An increased value results in one or more zeros that are included as the least significant bits. Preferably, the decoder is modified appropriately to implement a memory bandwidth compliance mechanism.

Ссылаясь на фиг. 3A, при этом понимании работы деквантователя 210 (см. фиг. 2) усовершенствованный деквантователь 400 (см. фиг. 3A и 3B) принимает квантованные коэффициенты 405 и отменяет масштаб (410) у квантованных коэффициентов, предпочтительно на основе функции остатков, размера преобразования (N) и/или индекса коэффициента (например, положения), чтобы определить промежуточный набор значений 420. Параметр квантования может быть в виде матрицы значений, зависящих от частоты. Как правило, положение значения в матрице квантования относится к его частоте (например, пространственной частоте), и соответственно квантователь может быть непостоянным для каждого блока или группы пикселей. Вообще, параметры квантования можно менять любым подходящим способом, например, в каждом кадре, каждом блоке, каждом наборе блоков или иным образом по желанию. Может применяться необязательный механизм 430 регулировки, использующий переменную C, которая предпочтительно является переменной, зависящей от размера преобразования (N) и/или функции одного или нескольких принятых параметров квантования (QP), чтобы определить результирующие данные 440. Результирующие данные 440 из квантованных коэффициентов 405 могут включать в себя ненадежные данные или иные данные, не совместимые со стандартом, и соответственно деквантователь 400 может ввести фиксированное ограничение на результирующие данные 440. Результирующие данные 440 могут отсекаться (450) до заранее установленной битовой глубины, и соответственно блок данных N×N сохраняется в памяти в деквантователе 400. Например, отсечение 450 на заранее установленную битовую глубину в 16 разрядов приводит к тому, что любые значения свыше 32767 устанавливаются в максимальное значение, а именно 32767. Также отсечение на заранее установленную битовую глубину в 16 разрядов приводит к тому, что любые значения меньше -32768 устанавливаются в минимальное значение, а именно -32768. Также могут использоваться другие битовые глубины и значения отсечения. Таким образом, необходимая максимальная пропускная способность памяти ограничивается системой способом, независимым от входных квантованных коэффициентов 405. Это уменьшает вычислительную сложность системы и уменьшает требуемую память, что особенно подходит для встраиваемых систем.Referring to FIG. 3A, with this understanding of the operation of the dequantifier 210 (see FIG. 2), the advanced dequantifier 400 (see FIGS. 3A and 3B) receives the quantized coefficients 405 and cancels the scale (410) of the quantized coefficients, preferably based on the remainder function, the transform size ( N) and / or a coefficient index (eg, position) to determine an intermediate set of values 420. The quantization parameter may be in the form of a matrix of frequency-dependent values. Typically, the position of a value in a quantization matrix refers to its frequency (for example, spatial frequency), and accordingly, the quantizer may be unstable for each block or group of pixels. In general, the quantization parameters can be changed in any suitable way, for example, in each frame, each block, each set of blocks, or otherwise as desired. An optional adjustment mechanism 430 may be used using a variable C, which is preferably a variable depending on the size of the transform (N) and / or the function of one or more received quantization parameters (QP) to determine the resulting data 440. The resulting data 440 from the quantized coefficients 405 may include unreliable data or other data that is not compatible with the standard, and accordingly, the dequantifier 400 may introduce a fixed constraint on the resulting data 440. The result The data 440 can be clipped (450) to a predetermined bit depth, and accordingly, the N × N data block is stored in memory in the dequantifier 400. For example, clipping 450 to a preset bit depth of 16 bits causes any values in excess of 32767 to be set. to the maximum value, namely 32767. Also, clipping to a predetermined bit depth of 16 bits leads to the fact that any values less than -32768 are set to the minimum value, namely -32768. Other bit depths and clipping values may also be used. Thus, the required maximum memory bandwidth is limited by the system in a way independent of the input quantized coefficients 405. This reduces the computational complexity of the system and reduces the required memory, which is especially suitable for embedded systems.

После задания отсечения 450 данные с максимальной заранее установленной битовой глубиной модифицируются с помощью множителя 460 2(Период+B). Результаты модификации 460 предоставляются в виде коэффициентов 470. Результат выполнения 2(Период+B) 460 после отсечения 450 уменьшает потери искажения в зависимости от скорости передачи. Предпочтительно, чтобы механизм 430 регулировки, используемый для коэффициентов преобразования 8×8, был равен 2(5-Период), а 2(Период+B) 460 был равен 2(Период-6). Процесс 460 при желании может основываться на функции размера преобразования (N) или функции принятого параметра квантования (QP). Также механизм 430 регулировки, используемый для коэффициентов преобразования другого размера (например, 4×4, 16×16 и 32×32), имеет предпочтительно установленную в ноль переменную B, и поэтому значение 2(Период+B) 460 равно 2(Период). Результат выражения 2(Период+B) может быть реализован в виде процесса сдвига разряда вправо на (Период + B), как показано в модификации 460. Кроме того, выражения 2(5-Период), 2(Период+B) и 2(Период-6) могут быть реализованы в виде процессов сдвига. Также B может быть функцией N, а C может быть функцией N. Ссылаясь на фиг. 3B, иллюстрируется конкретная реализация фиг. 3A.After setting clipping 450, data with a maximum predetermined bit depth is modified using a factor of 460 2 (Period + B) . Modification results 460 are provided in the form of coefficients 470. Execution result 2 (Period + B) 460 after clipping 450 reduces distortion loss depending on the transmission speed. Preferably, the adjustment mechanism 430 used for 8 × 8 conversion factors is 2 (5-Period) , and 2 (Period + B) 460 is 2 (Period-6) . Process 460 may optionally be based on a transform size function (N) or a received quantization parameter (QP) function. Also, the adjustment mechanism 430 used for transform coefficients of a different size (for example, 4 × 4, 16 × 16 and 32 × 32) preferably has a variable B set to zero, and therefore the value 2 (Period + B) 460 is equal to 2 (Period) . The result of expression 2 (Period + B) can be implemented as a process of shifting the discharge to the right by (Period + B), as shown in modification 460. In addition, expressions 2 (5-Period) , 2 (Period + B) and 2 ( Period-6) can be implemented as shear processes. Also, B may be a function of N, and C may be a function of N. Referring to FIG. 3B, a specific implementation of FIG. 3A.

Ссылаясь на фиг. 3B, деквантователь 8×8 можно описать следующим образом.Referring to FIG. 3B, an 8 × 8 dequantizer can be described as follows.

Int iAdd=(1<<5)>>ПериодInt iAdd = (1 << 5) >> Period

где << является сдвигом разряда влево, >> является сдвигом разряда вправо, Int является целочисленной операцией, а iAdd является переменной.where << is a shift of the discharge to the left, >> is a shift of the discharge to the right, Int is an integer operation, and iAdd is a variable.

Без отсечения:Without clipping:

dstCoef=((iLevel*iDeScale*16+iAdd)<<Период)>>6dstCoef = ((iLevel * iDeScale * 16 + iAdd) << Period) >> 6

С отсечением:With clipping:

dstCoef=(CLIP_TO_16BITS(iLevel*iDeScale*16+iAdd)<<Период)>>6dstCoef = (CLIP_TO_16BITS (iLevel * iDeScale * 16 + iAdd) << Period) >> 6

Ссылаясь на фиг. 3B, 4×4, 16×16, 32×32 и N×N можно описать следующим образом.Referring to FIG. 3B, 4 × 4, 16 × 16, 32 × 32 and N × N can be described as follows.

Без отсечения:Without clipping:

dstCoef=(iLevel*iDeScale)<<ПериодdstCoef = (iLevel * iDeScale) << Period

С отсечением:With clipping:

dstCoef=CLIP_TO_16BITS(iLevel*iDeScale)<<ПериодdstCoef = CLIP_TO_16BITS (iLevel * iDeScale) << Period

В любом случае масштабирование 2Период+B на фиг. 3A или масштабирование 2Период-6 на фиг. 3B выполняется перед тем, как выполняется обратное преобразование, соответственно приводя к тому, что первый этап обратного преобразования зависит от периода QP преобразования. Зависимость от QP вариантов осуществления из фиг. 3A и фиг. 3B после сохранения в памяти увеличивает вычислительную сложность системы, которая могла бы уменьшиться, если бы такая зависимость от QP уменьшилась.In any case, scaling 2 Period + B in FIG. 3A or scaling 2 Period-6 in FIG. 3B is performed before the inverse transform is performed, accordingly, leading to the fact that the first stage of the inverse transform depends on the period of the QP transform. The QP dependency of the embodiments of FIG. 3A and FIG. 3B, after being stored in memory, increases the computational complexity of the system, which could decrease if this dependence on QP decreases.

Ссылаясь на фиг. 4, коэффициенты 470 от деквантователя 400 (см. фиг. 3A и 3B) предоставляются в обратное преобразование 480, предназначенное для предоставления декодированного остатка 490, который имеет приемлемые потери искажения в зависимости от скорости передачи. Коэффициенты 470 предпочтительно преобразуются с помощью 1-мерного обратного горизонтального (или вертикального) преобразования 500. На основе желательного количества выходных разрядов для поддержания приемлемых потерь искажения в зависимости от скорости передачи, результат преобразования 500 можно модифицировать путем процесса 510 сдвига разряда вправо для желательного количества разрядов. Таким образом, выбранное количество самых младших разрядов отбрасывается, чтобы уменьшить требуемую память системы. Например, если 19 разрядов предполагается получить из обратного преобразования 500, а желательно иметь 16-разрядный результат, то процесс 510 сдвига разряда вправо удаляет 3 самых младших разряда. Результирующие сдвинутые разряды отсекаются (520) до заранее установленной пороговой величины. Примером заранее установленной пороговой величины могут быть 16 разрядов. Отсечение 520 дополнительно приводит в исполнение ограничение по пропускной способности памяти, результаты чего сохраняются в памяти 530. Данные, сохраненные в памяти 530, существенно уменьшаются в результате сдвига 510, удаляющего самый младший разряд (разряды). Данные, сохраненные в памяти 530, затем сдвигаются влево с помощью процесса 540 сдвига разряда влево, предпочтительно на такое же количество разрядов, как и в процессе 510 сдвига разряда вправо. Сдвиг приводит к нулям в самом младшем разряде (разрядах). Сдвинутые данные затем предпочтительно преобразуются с помощью 1-мерного обратного вертикального (или горизонтального) преобразования 550, приводя к декодированному остатку 490.Referring to FIG. 4, coefficients 470 from the dequantifier 400 (see FIGS. 3A and 3B) are provided to an inverse transform 480 designed to provide a decoded remainder 490 that has acceptable distortion loss depending on the transmission rate. Coefficients 470 are preferably converted using a 1-dimensional inverse horizontal (or vertical) conversion 500. Based on the desired number of output bits to maintain acceptable distortion losses depending on the transmission rate, the result of the conversion 500 can be modified by the right shift process 510 for the desired number of bits . Thus, the selected number of the least significant bits is discarded in order to reduce the required system memory. For example, if 19 bits are supposed to be obtained from the inverse transform 500, and it is desirable to have a 16-bit result, then the process 510 of shifting the bit to the right removes the 3 least significant bits. The resulting shifted bits are cut off (520) to a predetermined threshold value. An example of a predetermined threshold value may be 16 bits. Clipping 520 further enforces a memory bandwidth constraint, the results of which are stored in memory 530. Data stored in memory 530 is significantly reduced by a shift 510 that removes the least significant bit (s). The data stored in the memory 530 is then shifted to the left by the left shift process 540, preferably by the same number of bits as the right shift process 510. A shift results in zeros in the lowest order (s). The shifted data is then preferably converted using a 1-dimensional inverse vertical (or horizontal) transform 550, resulting in a decoded remainder 490.

Потери искажения в зависимости от скорости передачи зависят от количества разрядов, используемых при обработке, и размера блока данных. Предпочтительно, чтобы процесс 510 сдвига разряда вправо и процесс 540 сдвига разряда влево зависели от размера N блока (количество горизонтальных пикселей × количество вертикальных пикселей для прямоугольного блока пикселей). Например, для блока 4×4 сдвиг может быть равен 3, для блока 8×8 сдвиг может быть равен 2, для блока 16×16 сдвиг может быть равен 8, и для блока 32×32 сдвиг может быть равен 9. В качестве альтернативы процесс 510 сдвига разряда вправо и процесс 540 сдвига разряда влево могут определяться на основе некоего параметра, например параметра квантования (QP), переданного в потоке двоичных сигналов, параметров внутреннего приращения битовой глубины (IBDI), увеличения точности преобразования (TPE) или иных параметров, выбираемых декодером.Loss of distortion depending on the transmission speed depends on the number of bits used in processing and the size of the data block. Preferably, the right shift process 510 and the left shift process 540 are dependent on the block size N (number of horizontal pixels × number of vertical pixels for a rectangular block of pixels). For example, for a 4 × 4 block, the shift can be 3, for an 8 × 8 block, a shift can be 2, for a 16 × 16 block, a shift can be 8, and for a 32 × 32 block, a shift can be 9. Alternatively the right shift process 510 and the left shift process 540 can be determined based on a parameter, for example, a quantization parameter (QP) transmitted in a binary signal stream, internal bit depth increment (IBDI) parameters, conversion precision increase (TPE), or other parameters, selectable by decoder.

Ссылаясь на фиг. 5, в другом варианте осуществления декодер принимает квантованные коэффициенты, которые обрабатываются любым подходящим деквантователем 600 и любым подходящим обратным преобразованием 610. Желательно включить точное ограничение по пропускной способности памяти, которое предпочтительно реализуется путем включения функции 620 отсечения. После функции 620 отсечения данные можно сохранить в памяти 630, которая после этого используется для обратного преобразования 610.Referring to FIG. 5, in another embodiment, the decoder receives the quantized coefficients, which are processed by any suitable dequantizer 600 and any suitable inverse transform 610. It is desirable to include an exact memory bandwidth constraint, which is preferably implemented by enabling clipping function 620. After clipping function 620, data can be stored in memory 630, which is then used for inverse transform 610.

Ссылаясь на фиг. 6, в другом варианте осуществления декодер принимает квантованные коэффициенты, которые обрабатываются любым подходящим деквантователем 700 и любым подходящим обратным преобразованием 710. Например, обратное преобразование может быть преобразованием, проиллюстрированным на фиг. 4. Желательно включить точное ограничение по пропускной способности памяти для уменьшения сложности вычисления, которое предпочтительно реализуется путем включения функции 720 отсечения. После функции 720 отсечения данные можно сохранить в памяти 730, которая после этого используется для обратного преобразования 710. Еще желательно включить явное ограничение по пропускной способности памяти, которое предпочтительно реализуется путем включения функции 740 отсечения между парой 1-мерных преобразований. 1-мерные преобразования могут выполняться в любом порядке или любым способом. После функции 740 отсечения данные можно сохранить в памяти 750.Referring to FIG. 6, in another embodiment, the decoder receives the quantized coefficients, which are processed by any suitable dequantifier 700 and any suitable inverse transform 710. For example, the inverse transform may be the transform illustrated in FIG. 4. It is desirable to include an exact limit on the memory bandwidth to reduce the computational complexity, which is preferably implemented by enabling the clipping function 720. After clipping function 720, data can be stored in memory 730, which is then used for the inverse transform 710. It is also desirable to include an explicit memory bandwidth limit, which is preferably implemented by enabling clipping function 740 between a pair of 1-D transforms. 1-dimensional transformations can be performed in any order or in any way. After clipping function 740, data can be stored in memory 750.

Ссылаясь на фиг. 7, чтобы уменьшить зависимость от QP, вариант осуществления может включать в себя модификацию 460 (см. фиг. 3A и 3B), выполняемую перед сохранением результирующих коэффициентов в памяти, с помощью операции 705 сдвига, например 2(QP/6+B). Аналогично фиг. 3A и фиг. 3B, можно отменить масштаб (410) у квантованных коэффициентов 405 и при желании модифицировать их с помощью механизма 430 регулировки. Таким образом, параметры квантования не нужно сохранять вместе с коэффициентами в памяти, поскольку дальнейшее обратное преобразование может выполняться независимым от параметров квантования способом, как проиллюстрировано на фиг. 8.Referring to FIG. 7, in order to reduce the dependence on QP, an embodiment may include a modification 460 (see FIGS. 3A and 3B) performed before storing the resulting coefficients in memory using shift operation 705, for example 2 (QP / 6 + B) . Similarly to FIG. 3A and FIG. 3B, it is possible to cancel the scale (410) of the quantized coefficients 405 and, if desired, modify them using the adjustment mechanism 430. Thus, the quantization parameters need not be stored together with the coefficients in the memory, since further inverse transformations can be performed in a manner independent of the quantization parameters, as illustrated in FIG. 8.

Ссылаясь на фиг. 9, дополнительный метод включает в себя отсечение количества разрядов при сохранении в памяти до подходящего количества, например 16 разрядов. Ссылаясь на фиг. 10, дополнительный метод включает в себя отсечение количества разрядов при сохранении в памяти до подходящего количества, например 16 разрядов. Хотя такой подход уменьшает вычислительную сложность системы, результирующее видео имеет склонность к ухудшению качества видео.Referring to FIG. 9, an additional method includes cutting off the number of bits while storing in memory to a suitable number, for example 16 bits. Referring to FIG. 10, an additional method includes cutting off the number of bits while storing in memory to a suitable number, for example 16 bits. Although this approach reduces the computational complexity of the system, the resulting video tends to degrade video quality.

Ссылаясь на фиг. 11, модифицированный деквантователь 800 особенно подходит для отмены масштабирования с помощью зависящей от частоты матрицы квантования, которая включает в себя матрицу 820 квантования QP(i, j). Квантованные коэффициенты 805 называются Уровнем (i, j) 815. Отмена 810 масштабирования может основываться на остатке (i, j) 825, который описывается как Остаток (i, j)=(QP(i, j)+P*BitIncrement)%P, где P предпочтительно равно 6, а "BitIncrement" является приращением битовой глубины. Промежуточный результат 835 K(i, j) может описываться как K(i, j)=A(Остаток(i, j))* Уровень(i, j) где процесс 810 отмены масштаба умножает на значение A(Остаток(i, j)), которое зависит от члена Остаток(i, j). Отсечение 850 может описываться как Clip K(i, j) до 16 разрядов. Промежуточный результат 855 J(i, j) может описываться как J(i, j)=Clip(K(i, j),16). Процесс 860 сдвига 2Период(i,j) может описываться как C(i, j)=J(i, j)<<(Период(i, j)), где Период(i, j)=(QP(i, j)+P*BitIncremenet)/P. Предпочтительно, чтобы процесс являлся целочисленным делением, а P равно 6. Соответственно, матрица 820 квантования QP(i, j) предоставляется в процесс 800 отмены масштабирования и процесс 860 сдвига, который является процессом после отсечения 850 и сохранения в памяти. Предоставление матрицы 820 квантования QP(i, j) в процесс 860 сдвига обычно обеспечивается процессом 830 "побочного канала". Таким образом, сдвиг коэффициентов выполняется на соответствующие значения в матрице квантования.Referring to FIG. 11, a modified dequantizer 800 is particularly suited to de-scaling with a frequency-dependent quantization matrix that includes a quantization matrix 820 QP (i, j). The quantized coefficients 805 are called Level (i, j) 815. Cancellation 810 scaling can be based on the remainder (i, j) 825, which is described as Residue (i, j) = (QP (i, j) + P * BitIncrement)% P where P is preferably 6 and "BitIncrement" is an increment of bit depth. An intermediate result of 835 K (i, j) can be described as K (i, j) = A (Remainder (i, j)) * Level (i, j) where the process of scaling off 810 multiplies by the value A (Remainder (i, j )), which depends on the term Residue (i, j). Clipping 850 may be described as Clip K (i, j) up to 16 bits. Intermediate result 855 J (i, j) can be described as J (i, j) = Clip (K (i, j), 16). Shift process 860 2 Period (i, j) can be described as C (i, j) = J (i, j) << (Period (i, j)), where Period (i, j) = (QP (i, j) + P * BitIncremenet) / P. Preferably, the process is integer division, and P is 6. Accordingly, the QP (i, j) quantization matrix 820 is provided to the scaling cancel process 800 and the shift process 860, which is the process after clipping 850 and storing it in memory. The provision of QP (i, j) quantization matrix 820 to the shift process 860 is typically provided by a “side channel” process 830. Thus, the shift of the coefficients is performed by the corresponding values in the quantization matrix.

Чтобы дополнительно уменьшить вычислительную сложность системы, желательно, чтобы в процесс сдвига не нужно было предоставлять всю матрицу квантования, которая может быть значительной в некоторых вариантах осуществления. Ссылаясь на фиг. 12, модифицированный метод 900 отмены масштабирования с зависящей от частоты матрицы квантования включает в себя матрицу 920 квантования QP(i, j). Квантованные коэффициенты 905 называются Уровнем (i, j) 915. Отмена 910 масштабирования может основываться на остатке (i, j) 925, который описывается как Остаток (i, j)=(QP(i, j)+P*BitIncrement)%P, где P предпочтительно равно 6. Промежуточный результат 935 K(i,j) может описываться как K(i, j)=A(Остаток(i, j))* Уровень(i, j)<<(Период(i, j)-Период(QPmin)), где QPmin является минимальным из набора значений QP(i, j) в матрице квантования. Отсечение 950 может описываться как Clip K(i, j) до 16 разрядов. Промежуточный результат 955 J(i, j) может описываться как J(i, j)=Clip(K(i, j), 16). Процесс 960 сдвига 2Период(QPmin) может описываться как C(i, j)=J(i, j)<< Период(QPmin), где Период(QPmin)=(QPmin+P*BitIncrement)/P, где P предпочтительно равно 6. Соответственно, матрица квантования QP(i,j) предоставляется в процесс отмены масштабирования и процесс начального сдвига, который является процессом перед отсечением и сохранением в памяти. Функция 975 минимального квантования определяет значение минимального квантования для матрицы. Это значение 985 минимального квантования предоставляется процессам 960 сдвига. Таким образом, только одно значение, а именно значение минимального квантования или Период(QPmin), обычно предоставляется посредством процесса 990 "побочного канала". Таким образом, сдвиг коэффициентов выполняется на соответствующие значения в матрице квантования, но нужно предоставлять только ограниченный объем данных в дополнение к сохраненным в памяти. Обычно значение минимального квантования может быть любым набором данных меньше всей матрицы квантования.In order to further reduce the computational complexity of the system, it is desirable that the entire quantization matrix, which may be significant in some embodiments, should not be provided in the shift process. Referring to FIG. 12, a modified method 900 for de-scaling a frequency-dependent quantization matrix includes a quantization matrix 920 QP (i, j). The quantized coefficients 905 are called Level (i, j) 915. The cancellation of scaling 910 may be based on the remainder (i, j) 925, which is described as the remainder (i, j) = (QP (i, j) + P * BitIncrement)% P , where P is preferably 6. Intermediate result 935 K (i, j) can be described as K (i, j) = A (Residue (i, j)) * Level (i, j) << (Period (i, j ) -Period (QPmin)), where QPmin is the minimum of the set of values of QP (i, j) in the quantization matrix. Clipping 950 can be described as Clip K (i, j) up to 16 bits. Intermediate result 955 J (i, j) can be described as J (i, j) = Clip (K (i, j), 16). The process 960 shift 2 Period (QPmin) can be described as C (i, j) = J (i, j) << Period (QPmin), where Period (QPmin) = (QPmin + P * BitIncrement) / P, where P is preferred equals 6. Accordingly, the quantization matrix QP (i, j) is provided to the scaling cancel process and the initial shift process, which is the process before clipping and storing in memory. The minimum quantization function 975 determines the minimum quantization value for the matrix. This minimum quantization value 985 is provided to the shift processes 960. Thus, only one value, namely, the minimum quantization value or Period (QPmin), is usually provided by the side channel process 990. Thus, the coefficients are shifted by the corresponding values in the quantization matrix, but only a limited amount of data needs to be provided in addition to those stored in memory. Typically, the minimum quantization value may be any data set smaller than the entire quantization matrix.

Ссылаясь на фиг. 13, модифицированный метод 1000 отмены масштабирования с зависящей от частоты матрицы квантования включает в себя матрицу 1020 квантования QP(i, j). Квантованные коэффициенты 1005 называются Уровнем (i, j) 1015. Отмена 1010 масштабирования может основываться на остатке (i, j) 1025, который описывается как Остаток (i, j)=(QP(i, j)+P*BitIncrement)%P, где P предпочтительно равно 6. Промежуточный результат 1035 K(i, j) может описываться как K(i, j)=A(Остаток(i, j))* Уровень(i, j)<<PERIOD_CALC1(QP(i, j)-QPmin), где PERIOD_CALC1(x)=floor[x/6]. Отсечение 1050 может описываться как Clip K(i, j) до 16 разрядов. Промежуточный результат 1055 J(i, j) может описываться как J(i, j)=Clip(K(i, j), 16). Процесс 1060 сдвига 2PERIOD_CALC2(QPmin) может описываться как C(i, j)=J(i, j)<<PERIOD_CALC2(QPmin), где PERIOD_CALC2(x)=ceil[x+6*BitIncrement)/P], где P предпочтительно равно 6. Функции наибольшего целого (антье) и наименьшего целого (потолок) предпочтительно являются операциями с плавающей запятой. Соответственно, матрица квантования QP(i, j) предоставляется в процесс отмены масштабирования и процесс начального сдвига, который является процессом перед отсечением и сохранением в памяти. Функция 1075 минимального квантования определяет значение минимального квантования для матрицы, например с использованием функций наибольшего целого и наименьшего целого. Это значение 1085 минимального квантования предоставляется процессам 1060 сдвига, чтобы сделать сдвиг меньше, чем он был бы в противном случае, а затем и соответствующий сдвиг в другом направлении на величину меньше, чем он был бы в противном случае. Таким образом, только одно значение, а именно значение минимального квантования или PERIOD_CALC2(QPmin), обычно предоставляется посредством процесса 1090 "побочного канала". Таким образом, сдвиг коэффициентов выполняется на соответствующие значения в матрице квантования, но нужно предоставлять только ограниченный объем данных в дополнение к сохраненным в памяти. Обычно значения наименьшего целого и/или наибольшего целого могут быть любым набором данных меньше всей матрицы квантования.Referring to FIG. 13, a modified de-scaling method 1000 with a frequency-dependent quantization matrix includes a quantization matrix 1020 QP (i, j). The quantized coefficients 1005 are called Level (i, j) 1015. Scaling cancellation 1010 can be based on the remainder (i, j) 1025, which is described as the remainder (i, j) = (QP (i, j) + P * BitIncrement)% P where P is preferably 6. Intermediate result 1035 K (i, j) can be described as K (i, j) = A (Residue (i, j)) * Level (i, j) << PERIOD_CALC1 (QP (i, j) -QPmin), where PERIOD_CALC1 (x) = floor [x / 6]. Clipping 1050 can be described as Clip K (i, j) up to 16 bits. Intermediate result 1055 J (i, j) can be described as J (i, j) = Clip (K (i, j), 16). The process 1060 shift 2 PERIOD_CALC2 (QPmin) can be described as C (i, j) = J (i, j) << PERIOD_CALC2 (QPmin), where PERIOD_CALC2 (x) = ceil [x + 6 * BitIncrement) / P], where P is preferably 6. The functions of the largest integer (antier) and the smallest integer (ceiling) are preferably floating point operations. Accordingly, the quantization matrix QP (i, j) is provided to the scaling cancel process and the initial shift process, which is the process before clipping and storing in memory. The minimum quantization function 1075 determines the minimum quantization value for the matrix, for example, using the largest integer and smallest integer functions. This minimum quantization value 1085 is provided to the shift processes 1060 to make the shift smaller than it would otherwise, and then the corresponding shift in the other direction is less than it would otherwise. Thus, only one value, namely the minimum quantization value or PERIOD_CALC2 (QPmin), is usually provided through the side channel process 1090. Thus, the coefficients are shifted by the corresponding values in the quantization matrix, but only a limited amount of data needs to be provided in addition to those stored in memory. Typically, the values of the smallest integer and / or largest integer can be any data set smaller than the entire quantization matrix.

Термины и выражения, которые применены в предшествующем описании изобретения, используются там как термины описания, а не ограничения, и при использовании таких терминов и выражений отсутствует намерение исключения эквивалентов показанных и описанных признаков или их частей; признается, что объем изобретения задается и ограничивается только формулой изобретения, которая следует ниже.The terms and expressions that are used in the preceding description of the invention are used there as description terms and not limitation, and when using such terms and expressions there is no intention to exclude equivalents of the shown and described features or parts thereof; it is recognized that the scope of the invention is defined and limited only by the claims, which follows.

Некоторые варианты осуществления настоящего изобретения раскрывают способ для декодирования видео, где упомянутое деквантование основывается на индексе коэффициента, двоичном приращении, размере преобразования и упомянутой матрице квантования.Some embodiments of the present invention disclose a method for decoding video, wherein said dequantization is based on a coefficient index, a binary increment, a transform size, and said quantization matrix.

Некоторые варианты осуществления настоящего изобретения раскрывают способ для декодирования видео, где упомянутая модификация основывается на индексе коэффициента, двоичном приращении, размере преобразования и упомянутой матрице квантования.Some embodiments of the present invention disclose a method for video decoding, wherein said modification is based on a coefficient index, a binary increment, a transform size, and said quantization matrix.

Некоторые варианты осуществления настоящего изобретения раскрывают способ для декодирования видео, где упомянутая модификация основывается на 2(QP/6+B), где QP является матрицей квантования, а B относится к размеру преобразования.Some embodiments of the present invention disclose a method for video decoding, wherein said modification is based on 2 (QP / 6 + B) , where QP is a quantization matrix and B refers to a transform size.

Некоторые варианты осуществления настоящего изобретения раскрывают способ для декодирования видео, где упомянутые модифицированные деквантованные коэффициенты отсекаются перед сохранением в памяти, и упомянутые отсеченные коэффициенты считываются из упомянутой памяти для упомянутого обратного преобразования.Some embodiments of the present invention disclose a method for video decoding, wherein said modified dequantized coefficients are cut off before being stored in the memory and said cut off coefficients are read from said memory for said inverse transform.

Некоторые варианты осуществления настоящего изобретения раскрывают способ для декодирования видео, где упомянутое деквантование и упомянутая модификация упомянутых деквантованных коэффициентов вместе основываются на упомянутой матрице квантования.Some embodiments of the present invention disclose a method for decoding a video, wherein said dequantization and said modification of said dequantized coefficients are together based on said quantization matrix.

Некоторые варианты осуществления настоящего изобретения раскрывают способ для декодирования видео, где упомянутая модификация является операцией сдвига.Some embodiments of the present invention disclose a method for decoding a video, wherein said modification is a shift operation.

Некоторые варианты осуществления настоящего изобретения раскрывают способ для декодирования видео, где упомянутые деквантованные коэффициенты отсекаются перед упомянутой модификацией.Some embodiments of the present invention disclose a method for video decoding, wherein said dequantized coefficients are cut off before said modification.

Некоторые варианты осуществления настоящего изобретения раскрывают способ для декодирования видео, где упомянутая модификация основывается на одном значении на основе упомянутой матрицы квантования.Some embodiments of the present invention disclose a method for decoding a video, wherein said modification is based on a single value based on said quantization matrix.

Некоторые варианты осуществления настоящего изобретения раскрывают способ для декодирования видео, где упомянутое одно значение основывается на минимальной функции.Some embodiments of the present invention disclose a method for decoding a video, wherein said single value is based on a minimum function.

Некоторые варианты осуществления настоящего изобретения раскрывают способ для декодирования видео, дополнительно содержащий другую модификацию, действующую на упомянутых деквантованных коэффициентах на основе упомянутой матрицы квантования, а результирующие данные затем отсекаются упомянутым способом.Some embodiments of the present invention disclose a method for decoding video, further comprising another modification acting on said dequantized coefficients based on said quantization matrix, and the resulting data is then cut off by said method.

Некоторые варианты осуществления настоящего изобретения раскрывают способ для декодирования видео, где упомянутые деквантованные коэффициенты дополнительно модифицируются в результате работы механизма регулировки.Some embodiments of the present invention disclose a method for video decoding, wherein said dequantized coefficients are further modified as a result of the operation of the adjustment mechanism.

Некоторые варианты осуществления настоящего изобретения раскрывают способ для декодирования видео, где упомянутый механизм регулировки является переменной, зависящей от размера преобразования.Some embodiments of the present invention disclose a method for decoding video, where said adjustment mechanism is a variable depending on the size of the transform.

Некоторые варианты осуществления настоящего изобретения раскрывают способ для декодирования видео, где упомянутый механизм регулировки является функцией по меньшей мере одного из принятого параметра квантования и размера преобразования.Some embodiments of the present invention disclose a method for decoding a video, wherein said adjustment mechanism is a function of at least one of a received quantization parameter and a transform size.

Другими словами, хотя изобретение описывается таким образом, станет очевидно, что оно может меняться многими способами. Такие изменения не должны рассматриваться как отклонение от сущности и объема изобретения, и все такие модификации, которые были бы очевидны специалисту в данной области техники, предназначаются для включения в объем нижеследующей формулы изобретения.In other words, although the invention is described in this way, it will become apparent that it can be changed in many ways. Such changes should not be construed as a departure from the essence and scope of the invention, and all such modifications that would be obvious to a person skilled in the art are intended to be included in the scope of the following claims.

Claims (10)

1. Способ деквантования квантованных коэффициентов, представляющих блок видео, содержащий этапы, на которых:1. A method for dequantizing quantized coefficients representing a video block containing the steps of: (a) принимают (i) квантованные коэффициенты, представляющие блок видео, представляющий множество пикселей, и (ii) матрицу квантования; и(a) accepting (i) quantized coefficients representing a video block representing a plurality of pixels, and (ii) a quantization matrix; and (b) деквантуют, используя, по меньшей мере, матрицу квантования, размер преобразования и квантованные коэффициенты, для определения коэффициентов преобразования; при этом деквантование включает в себя:(b) de-quantizing using at least a quantization matrix, transform size, and quantized coefficients to determine transform coefficients; while dequantization includes: - процесс умножения квантованных коэффициентов на одно целое число, зависящее от параметра квантования (QP), индекса квантованного коэффициента и размера преобразования (N),- the process of multiplying the quantized coefficients by one integer, depending on the quantization parameter (QP), the index of the quantized coefficient and the size of the transformation (N), - процесс сдвига результата упомянутого процесса умножения квантованных коэффициентов на одно целое число, зависящее от параметра квантования, индекса квантованного коэффициента и размера преобразования, причем сдвиг является операцией сдвига вправо,- the process of shifting the result of the aforementioned process of multiplying the quantized coefficients by one integer, depending on the quantization parameter, the index of the quantized coefficient and the size of the transformation, and the shift is a shift operation to the right, - процесс отсечения результата упомянутого процесса сдвига до предварительно определенной битовой глубины и- a process of cutting off the result of said shift process to a predetermined bit depth and - процесс сохранения результата упомянутого процесса отсечения в памяти.- the process of storing the result of the above clipping process in memory. 2. Способ по п. 1, в котором деквантование использует по меньшей мере двоичное приращение, размер преобразования и матрицу квантования.2. The method of claim 1, wherein the dequantization uses at least a binary increment, a transform size, and a quantization matrix. 3. Способ по п. 1, в котором процесс умножения включает в себя умножение квантованных коэффициентов посредством матрицы квантования, модифицированной с использованием информации квантования.3. The method of claim 1, wherein the multiplication process includes multiplying the quantized coefficients by a quantization matrix modified using quantization information. 4. Способ по п. 1, в котором процесс отсечения включает в себя 16-ти разрядное отсечение.4. The method of claim 1, wherein the clipping process includes 16-bit clipping.
RU2013144210A 2011-03-11 2012-03-09 Video decoding method RU2645269C2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/046,514 2011-03-11
US13/046,514 US20120230395A1 (en) 2011-03-11 2011-03-11 Video decoder with reduced dynamic range transform with quantization matricies
PCT/JP2012/056780 WO2012124787A1 (en) 2011-03-11 2012-03-09 A method for decoding video

Related Child Applications (1)

Application Number Title Priority Date Filing Date
RU2017144555A Division RU2017144555A (en) 2011-03-11 2012-03-09 METHOD FOR QUANTIZED COEFFICIENTS REPRESENTING A VIDEO BLOCK

Publications (2)

Publication Number Publication Date
RU2013144210A RU2013144210A (en) 2015-04-20
RU2645269C2 true RU2645269C2 (en) 2018-02-19

Family

ID=46795565

Family Applications (2)

Application Number Title Priority Date Filing Date
RU2017144555A RU2017144555A (en) 2011-03-11 2012-03-09 METHOD FOR QUANTIZED COEFFICIENTS REPRESENTING A VIDEO BLOCK
RU2013144210A RU2645269C2 (en) 2011-03-11 2012-03-09 Video decoding method

Family Applications Before (1)

Application Number Title Priority Date Filing Date
RU2017144555A RU2017144555A (en) 2011-03-11 2012-03-09 METHOD FOR QUANTIZED COEFFICIENTS REPRESENTING A VIDEO BLOCK

Country Status (3)

Country Link
US (1) US20120230395A1 (en)
RU (2) RU2017144555A (en)
WO (1) WO2012124787A1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2985700A3 (en) 2010-09-28 2016-08-17 Samsung Electronics Co., Ltd. Video encoding method and device and decoding method and device
TWI562621B (en) 2011-06-30 2016-12-11 Samsung Electronics Co Ltd Apparatus of decoding video
CN115278234A (en) 2017-12-15 2022-11-01 Lg电子株式会社 Image encoding and decoding method, image transmitting method, and non-transitory computer-readable storage medium
EP3759917A1 (en) * 2018-02-27 2021-01-06 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. A spectrally adaptive noise filling tool (sanft) for perceptual transform coding of still and moving images

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020081035A1 (en) * 1998-11-04 2002-06-27 Bright Martin James Error reduction in transformed digital data
US20050111554A1 (en) * 2003-11-25 2005-05-26 Minhua Zhou 8x8 Transform and quantization
US20060227867A1 (en) * 2005-04-12 2006-10-12 Lsi Logic Corporation Method for coefficient bitdepth limitation, encoder and bitstream generation apparatus
US20080192838A1 (en) * 2004-01-30 2008-08-14 Tao Chen Picture Coding Method, Picture Decoding Method, Picture Coding Apparatus, Picture Decoding Apparatus, and Program Thereof
US20100061644A1 (en) * 2001-11-30 2010-03-11 Sony Corporation Method and apparatus for coding image information, method and apparatus for decoding image information, method and apparatus for coding and decoding image information, and system of coding and transmitting image information
RU2414093C2 (en) * 2006-02-13 2011-03-10 Кабусики Кайся Тосиба Method and apparatus, and video coding/decoding programme

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10107644A (en) * 1996-09-26 1998-04-24 Sony Corp Quantization device and method, and coder and method
US7194138B1 (en) * 1998-11-04 2007-03-20 International Business Machines Corporation Reduced-error processing of transformed digital data
WO2002091282A2 (en) * 2001-05-07 2002-11-14 Summus, Inc. Color video codec method and system
US7123655B2 (en) * 2001-08-09 2006-10-17 Sharp Laboratories Of America, Inc. Method for reduced bit-depth quantization
US6925542B2 (en) * 2003-03-21 2005-08-02 Freescale Semiconductor, Inc. Memory management in a data processing system
US8045614B2 (en) * 2005-05-11 2011-10-25 Dolby Laboratories Licensing Corporation Quantization control for variable bit depth
US7778327B2 (en) * 2005-02-08 2010-08-17 Texas Instruments Incorporated H.264 quantization
US8571340B2 (en) * 2006-06-26 2013-10-29 Qualcomm Incorporated Efficient fixed-point approximations of forward and inverse discrete cosine transforms
US8401073B2 (en) * 2007-03-28 2013-03-19 Panasonic Corporation Inverse quantization circuit, inverse quantization method and image reproducing apparatus

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020081035A1 (en) * 1998-11-04 2002-06-27 Bright Martin James Error reduction in transformed digital data
US20100061644A1 (en) * 2001-11-30 2010-03-11 Sony Corporation Method and apparatus for coding image information, method and apparatus for decoding image information, method and apparatus for coding and decoding image information, and system of coding and transmitting image information
US20050111554A1 (en) * 2003-11-25 2005-05-26 Minhua Zhou 8x8 Transform and quantization
US20080192838A1 (en) * 2004-01-30 2008-08-14 Tao Chen Picture Coding Method, Picture Decoding Method, Picture Coding Apparatus, Picture Decoding Apparatus, and Program Thereof
US20060227867A1 (en) * 2005-04-12 2006-10-12 Lsi Logic Corporation Method for coefficient bitdepth limitation, encoder and bitstream generation apparatus
RU2414093C2 (en) * 2006-02-13 2011-03-10 Кабусики Кайся Тосиба Method and apparatus, and video coding/decoding programme

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KIRAN MISRA et al., "On transform dynamic range", Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 4th Meeting: Daegu, KR, 20-28 January, 2011, 5 л., Document: JCTVC-D071, опубл. 20.01.2011. *

Also Published As

Publication number Publication date
RU2017144555A (en) 2019-02-18
RU2013144210A (en) 2015-04-20
WO2012124787A1 (en) 2012-09-20
RU2017144555A3 (en) 2019-02-18
US20120230395A1 (en) 2012-09-13

Similar Documents

Publication Publication Date Title
US20210211675A1 (en) Video decoder with reduced dynamic range transform with inverse transform shifting memory
US20130114685A1 (en) Video decoder with constrained dynamic range
US20120307889A1 (en) Video decoder with dynamic range adjustments
RU2645269C2 (en) Video decoding method
US9602830B2 (en) Video decoder with constrained dynamic range
US20130114688A1 (en) Video Decoder with Constrained Dynamic Range
US20120183045A1 (en) Video decoder with reduced dynamic range transform including clipping
US9854242B2 (en) Video decoder with reduced dynamic range transform with inverse transform clipping
AU2021203402B2 (en) Video decoder with reduced dynamic range transform with inverse transform shifting memory
US20120183048A1 (en) Video decoder with reduced dynamic range transform with multiple clipping
US20120183044A1 (en) Video decoder with reduced dynamic range transform with memory storing
US20130114729A1 (en) Video decoder with constrained dynamic range