RU2673704C1 - Method, device and system for encoding and decoding conversion units for encoding units - Google Patents

Method, device and system for encoding and decoding conversion units for encoding units Download PDF

Info

Publication number
RU2673704C1
RU2673704C1 RU2017144172A RU2017144172A RU2673704C1 RU 2673704 C1 RU2673704 C1 RU 2673704C1 RU 2017144172 A RU2017144172 A RU 2017144172A RU 2017144172 A RU2017144172 A RU 2017144172A RU 2673704 C1 RU2673704 C1 RU 2673704C1
Authority
RU
Russia
Prior art keywords
residual
chroma
arrays
channel
coefficients
Prior art date
Application number
RU2017144172A
Other languages
Russian (ru)
Inventor
Кристофер Джеймс РОУЗВОРН
Original Assignee
Кэнон Кабусики Кайся
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Кэнон Кабусики Кайся filed Critical Кэнон Кабусики Кайся
Application granted granted Critical
Publication of RU2673704C1 publication Critical patent/RU2673704C1/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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/40Tree coding, e.g. quadtree, octree
    • 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/136Incoming video signal characteristics or properties
    • 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/18Methods 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 a set of transform coefficients
    • 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/186Methods 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 a colour or a chrominance component
    • 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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • 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/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/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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Abstract

FIELD: data processing.
SUBSTANCE: invention relates to the field of video processing. Method for converting a plurality of arrays of residual coefficients from a video bitstream configured for a 4:2:2 format into a plurality of arrays of residual bins contains the steps of: decoding four arrays of residual luminance coefficients for luminance channel, each of these four arrays of residual luminance corresponding to one 4x4 brightness block out of four 4x4 brightness blocks, and these four 4x4 brightness blocks together occupy a 8x8 brightness region; decoding two arrays of residual chromaticity coefficients for the first chrominance channel; decoding two arrays of residual chromaticity coefficients for the second chroma channel; and applying a transform to each of the four decoded arrays of residual luminance coefficients for the luminance channel, decoded two arrays of residual chromaticity coefficients for the first chrominance channel and decoded two arrays of residual chromaticity coefficients for the second chroma channel to create residual discretization luminance elements for the luminance channel, residual chrominance bin of the first chrominance channel and residual chrominance bin of the second chrominance channel.
EFFECT: improved efficiency of encoding/decoding arrays of residual coefficients of the bit stream.
6 cl, 28 dwg, 4 tbl

Description

Перекрестная ссылка на родственную заявку(и)Cross reference to related application (s)

[0001] По данной заявке испрашивается приоритет согласно § 119 Раздела 35 Свода Законов США по дате подачи Австралийской Патентной Заявки № 2012247040, поданной 08 ноября 2012г., которая настоящим во всей своей полноте включена в данный документ посредством ссылки. Данная заявка является выделенной заявкой Австралийской Патентной Заявки №№ 2012232992, поданной 28 сентября 2012г., которая настоящим во всей своей полноте включена в данный документ посредством ссылки.[0001] This application claims priority under Section 119 of Section 35 of the US Code for the filing date of Australian Patent Application No. 2012247040, filed November 8, 2012, which is hereby incorporated by reference in its entirety. This application is a highlighted application of Australian Patent Application No. 2012232992, filed September 28, 2012, which is hereby incorporated by reference in its entirety.

Область техники, к которой относится изобретениеFIELD OF THE INVENTION

[0002] Настоящее изобретение, в целом, относится к цифровой обработке видео сигнала, и, в частности, к способу, устройству и системе для кодирования и декодирования остаточных коэффициентов единицы преобразования (TU), при этом единица преобразования (TU) включает в себя одну или более единицы преобразования (TU) и может быть сконфигурирована для нескольких форматов цветности, включая 4:2:2 формат цветности, и при этом остаточные коэффициенты единицы преобразования (TU) могут представлять собой данные либо в частотной области, либо в пространственной области.[0002] The present invention relates generally to digital processing of a video signal, and in particular, to a method, apparatus, and system for encoding and decoding residual coefficients of a transform unit (TU), wherein the transform unit (TU) includes one or more conversion unit (TU) and can be configured for several color formats, including a 4: 2: 2 color format, and the residual conversion unit (TU) coefficients can be data in either the frequency domain or spatial th field.

Предпосылки создания изобретенияBACKGROUND OF THE INVENTION

[0003] В настоящее время существует много приложений для кодирования видео, включая приложения для передачи и хранения видео данных. Также было разработано много стандартов кодирования видео, а прочие разрабатываются в настоящее время. Последние разработки в стандартизации кодирования видео привели к образованию группы, именуемой «Объединенной Командой по Кодированию Видео» (JCT-VC). Объединенная Команда по Кодированию Видео (JCT-VC) включает в себя членов Исследовательской Группы 16, Проблема 6 (SG16/Q6) Сектора Стандартизации Телекоммуникаций (ITU-T) Международного Союза Электросвязи (ITU), известной также как Группа Экспертов по Кодированию Видео (VCEG) и членов Международной Организации по Стандартизации/ Объединенного Технического Комитета 1 Международной Электротехнической Комиссии/ Подкомитет 29/ Рабочая Группа 11 (ISO/IEC JCT1/SC29/WG11), также известной как Экспертная Группа по Кинематографии (MPEG).[0003] Currently, there are many video encoding applications, including applications for transmitting and storing video data. Many video coding standards have also been developed, while others are under development. Recent developments in the standardization of video coding have led to the formation of a group called the “Joint Video Coding Team” (JCT-VC). The Joint Video Coding Team (JCT-VC) includes members of Study Group 16, Issue 6 (SG16 / Q6) of the Telecommunication Standardization Sector (ITU-T) of the International Telecommunication Union (ITU), also known as the Video Coding Experts Group (VCEG) ) and members of the International Organization for Standardization / Joint Technical Committee 1 of the International Electrotechnical Commission / Subcommittee 29 / Working Group 11 (ISO / IEC JCT1 / SC29 / WG11), also known as the Expert Group on Cinematography (MPEG).

[0004] Объединенная Команда по Кодированию Видео (JCT-VC) имеет целью создание нового стандарта кодирования видео для обеспечения значительного превосходства над существующим в настоящее время стандартом кодирования видео, известного как «H.264/MPEG-4 AVC». Сам по себе стандарт H.264/MPEG-4 AVC является большим улучшением в сравнении с предыдущими стандартами кодирования видео, такими как MPEG-4 и ITU-T H.263. Находящийся на стадии разработки новый стандарт кодирования был назван «высокоэффективным кодированием видео (HEVC)». Объединенная Команда по Кодированию Видео (JCT-VC) также, учитывает проблемы реализации, связанные с предлагаемой технологией для высокоэффективного кодирования видео (HEVC), которая создает трудности при масштабируемых реализациях стандарта для функционирования при высоких разрешениях в режиме реального времени или высоких частотах кадра. Одной проблемой реализации является сложность и размер логики, используемой для обеспечения нескольких размеров ‘преобразования’ для преобразования видео данных между частотной областью и пространственной областью.[0004] The Combined Video Encoding Team (JCT-VC) aims to create a new video encoding standard to provide significant superiority over the current video encoding standard known as “H.264 / MPEG-4 AVC”. The H.264 / MPEG-4 AVC standard in itself is a big improvement over previous video coding standards such as MPEG-4 and ITU-T H.263. The new coding standard, which is under development, has been called "High Performance Video Coding (HEVC)." The Joint Video Coding Team (JCT-VC) also takes into account implementation problems associated with the proposed technology for high-performance video coding (HEVC), which creates difficulties with scalable implementations of the standard for operation at high resolutions in real time or at high frame rates. One implementation problem is the complexity and size of the logic used to provide multiple ‘transform’ sizes for converting video data between the frequency domain and the spatial domain.

Сущность изобретенияSUMMARY OF THE INVENTION

[0005] Цель настоящего изобретения состоит, по существу, в преодолении или, по меньшей мере, улучшении, одного или более недостатков существующих компоновок.[0005] An object of the present invention is essentially to overcome or at least improve one or more of the disadvantages of existing arrangements.

[0006] В соответствии с одним аспектом настоящего изобретения предоставляется способ декодирования преобразования яркости и множества преобразований цветности из битового потока видео, причем множество преобразований цветности содержит данные цветности для одного канала цвета, при этом способ содержит этапы, на которых:[0006] In accordance with one aspect of the present invention, there is provided a method for decoding luma transforms and a plurality of color transforms from a video bitstream, the plurality of color transforms comprising color data for one color channel, the method comprising the steps of:

определяют значение флага пропуска преобразования яркости для преобразования яркости, причем флаг пропуска преобразования яркости, указывающий на то, закодированы ли данные преобразования яркости в битовом потоке видео как представление в пространственной области;determining a luminance conversion skip flag for luminance conversion, the luminance conversion skipping flag indicating whether the luminance conversion data is encoded in the video bitstream as a representation in the spatial domain;

определяют значение флага пропуска преобразования цветности для первого преобразования цветности из множества преобразований цветности, причем флаг пропуска преобразования цветности, указывающий на то, закодированы ли данные преобразования цветности в битовом потоке видео как представление в пространственной области; иdetermining a color conversion skip flag value for a first color conversion from a plurality of color transforms, the color conversion skipping flag indicating whether the color conversion data is encoded in the video bitstream as a representation in the spatial domain; and

декодируют преобразование яркости в соответствии с определенным значением флага пропуска преобразования яркости и множество преобразований цветности в соответствии с определенным значение флага пропуска преобразования цветности для первого преобразования цветности.decode the luminance conversion in accordance with a specific value of the luminance conversion skip flag and a plurality of color conversions in accordance with the determined value of the color mismatch flag for the first color conversion.

[0007] В соответствии с другим аспектом предоставляется способ декодирования единицы преобразования с преобразованием яркости и двумя преобразованиями цветности из битового потока видео, причем два преобразования цветности, содержащие данные цветности для одного канала цвета в соответствии с 4:2:2 форматом цветности, при этом способ содержит этапы, на которых:[0007] In accordance with another aspect, a method for decoding a transform unit with a luminance conversion and two color transforms from a video bit stream is provided, wherein two color transforms comprising color data for one color channel in accordance with a 4: 2: 2 color format, wherein The method comprises the steps of:

определяют значение флага пропуска преобразования яркости для преобразования яркости, причем флаг пропуска преобразования яркости, указывающий на то, закодированы ли данные преобразования яркости в битовом потоке видео как представление в пространственной области;determining a luminance conversion skip flag for luminance conversion, the luminance conversion skipping flag indicating whether the luminance conversion data is encoded in the video bitstream as a representation in the spatial domain;

определяют значение флага пропуска преобразования цветности для первого преобразования цветности из двух преобразований цветности, причем флаг пропуска преобразования цветности, указывающий на то, закодированы ли данные преобразований цветности в битовом потоке видео как представление в пространственной области; и determining a color conversion skip flag for a first color conversion from two color transforms, the color conversion skipping flag indicating whether the color conversion data is encoded in the video bitstream as a representation in the spatial domain; and

декодируют преобразование яркости в соответствии с определенным значением флага пропуска преобразования яркости и декодируют два преобразования цветности в соответствии с определенным значением флага пропуска преобразования цветности для первого преобразования цветности.decode the luminance conversion in accordance with a specific value of the luminance conversion skip flag, and decode two color transforms in accordance with the determined value of the mismatch color conversion flag for the first color conversion.

[0008] В соответствии с еще одним другим аспектом, предоставляется способ декодирования преобразования яркости и множества преобразований цветности из битового потока видео, причем множество преобразований цветности содержит данные для одного канала цвета, при этом способ содержит этапы, на которых:[0008] In accordance with yet another aspect, a method for decoding luma transforms and a plurality of color transforms from a video bitstream is provided, the plurality of color transforms containing data for one color channel, the method comprising the steps of:

разбивают по меньшей мере одно прямоугольное одно из преобразований на множество квадратных преобразований; иbreaking at least one rectangular one of the transformations into a plurality of square transformations; and

декодируют квадратные преобразования.decode square transforms.

[0009] Желательно, чтобы этап, на котором разбивают, содержал этап, на котором разбивают все прямоугольные преобразования на квадратные преобразования с тем, чтобы этап, на котором декодируют, проводился только над квадратными преобразованиями.[0009] It is desirable that the step at which to split is comprised of a step at which all rectangular transformations are partitioned into square transforms, so that the step at which decode is carried out only on the square transforms.

[0010] В соответствии с другим аспектом, предоставляется способ декодирования единицы преобразования, содержащей остаточные коэффициенты цветности, из битового потока видео, причем единица преобразования, содержащая по меньшей мере один массив остаточных коэффициентов цветности, связанный с одним каналом цветности, при этом способ содержит этапы, на которых:[0010] In accordance with another aspect, a method is provided for decoding a conversion unit containing residual chroma coefficients from a video bitstream, wherein a conversion unit comprising at least one array of residual chroma coefficients associated with one chroma channel, the method comprising the steps of , where:

определяют размер единицы преобразования, причем размер имеющий отношение к иерархическому уровню единицы преобразования в соответствующей единице кодирования;determining the size of the conversion unit, the size related to the hierarchical level of the conversion unit in the corresponding coding unit;

декодируют из битового потока видео по меньшей мере один массив остаточных коэффициентов цветности, используя предварительно определенное максимальное количество преобразований для канала цветности единицы преобразования;at least one array of residual chroma coefficients is decoded from the video bitstream using a predetermined maximum number of transformations for the chroma channel of the transform unit;

выбирают обратное преобразование для декодированных массивов остаточных коэффициентов цветности, причем обратное преобразование, выбираемое из предварительно определенного набора обратных преобразований; иselecting an inverse transform for the decoded arrays of residual chroma, the inverse transform being selected from a predefined set of inverse transforms; and

применяют выбранное обратное преобразование к каждому из массивов остаточных коэффициентов цветности для декодирования остаточных элементов дискретизации цветности для канала цветности единицы преобразования.apply the selected inverse transform to each of the arrays of residual chroma coefficients to decode the residual chroma sampling elements for the chroma channel of the transform unit.

[0011] В еще одном другом аспекте, раскрывается способ для декодирования остаточных данных для области в единице преобразования (TU) в канале цвета, закодированном в битовом потоке видео, при этом способ содержит этапы, на которых:[0011] In yet another aspect, a method is disclosed for decoding residual data for a region in a transform unit (TU) in a color channel encoded in a video bitstream, the method comprising the steps of:

в первую очередь определяют из битового потока то, что задействован флаг пропуска преобразования;first of all, it is determined from the bitstream that the conversion skip flag is enabled;

во вторую очередь определяют, является ли область первой областью в канале цвета и в единице преобразования (TU) со значение флага кодированного блока (CBF) равным единице, и если так, декодируют и сохраняют значение флага пропуска преобразования, в противном случае извлекают значение флага пропуска преобразования; иsecondly, it is determined whether the region is the first region in the color channel and in the transform unit (TU) with the flag value of the encoded block (CBF) equal to one, and if so, the value of the transform skip flag is decoded and stored, otherwise, the value of the skip flag is retrieved transformations; and

декодируют остаточные данные области, используя значение флага пропуска преобразования.decode the residual region data using the transform skip flag value.

[0012] Здесь, предпочтительно первый этап определения дополнительно содержит этап, на котором определяют, что флаг обхода квантования преобразования единицы кодирования не задействован и размер преобразования составляет 4х4.[0012] Here, preferably, the first determination step further comprises determining that the coding unit transform quantization bypass flag is not enabled and the transform size is 4x4.

[0013] В соответствии с другим аспектом настоящего изобретения, предоставляется способ для обратного преобразования множества массивов остаточных коэффициентов из битового потока видео, сконфигурированного для формата цветности 4:2:2, при этом способ содержит этапы, на которых:[0013] In accordance with another aspect of the present invention, there is provided a method for inverting a plurality of arrays of residual coefficients from a video bitstream configured for a 4: 2: 2 color format, the method comprising the steps of:

блоку яркости 4×4 из множества блоков яркости 4×4, причем каждый блок яркости 4×4 совместно расположен с одной единицей преобразования 4×4 из множества единиц преобразования 4×4, причем множество блоков яркости 4×4 вместе занимают область яркости 8×8;a 4 × 4 brightness unit from a plurality of 4 × 4 brightness units, each 4 × 4 brightness unit being co-located with one 4 × 4 conversion unit from a plurality of 4 × 4 conversion units, wherein a plurality of 4 × 4 brightness units together occupy an 8 × brightness area 8;

декодируют, после того как декодированы массивы остаточных коэффициентов яркости, множество массивов остаточных коэффициентов цветности для первого канала цвета, при этом каждый массив остаточных коэффициентов цветности соответствует блоку цветности 4×4 и каждый блок цветности 4×4 для первого канала цвета совместно расположен с двумя из множества единиц преобразования 4×4;decode, after the arrays of residual luminance coefficients are decoded, a plurality of arrays of residual chromaticity coefficients for the first color channel, wherein each array of residual chroma coefficients corresponds to a 4 × 4 color block and each 4 × 4 chroma block for the first color channel is co-located with two of sets of 4 × 4 transformation units;

декодируют, после того как декодированы массивы остаточных коэффициентов цветности для первого канала цвета, множество массивов остаточных коэффициентов цветности для второго канала цвета, при этом каждый массив остаточных коэффициентов цветности соответствует блоку цветности 4×4 и каждый блок цветности для второго канала цвета совместно расположен с двумя из множества единиц преобразования 4×4; иdecode, after the arrays of residual chroma coefficients for the first color channel are decoded, a plurality of arrays of residual chroma coefficients for the second color channel, wherein each array of residual chroma coefficients corresponds to a 4x4 color block and each chroma block for the second color channel is co-located with two from a plurality of 4x4 transformation units; and

применяют обратное преобразование к каждому из декодированного множества массивов остаточных коэффициентов яркости, декодированного множества массивов остаточных коэффициентов цветности для первого канала цвета и декодированного множества массивов остаточных коэффициентов цветности для второго канала цвета.apply an inverse transform to each of the decoded plurality of arrays of residual luma coefficients, the decoded plurality of arrays of residual luma coefficients for the first color channel, and the decoded plurality of arrays of residual luma coefficients for the second color channel.

[0014] Предпочтительно, количество массивов остаточных коэффициентов яркости во множестве массивов остаточных коэффициентов яркости равно четырем. Желательно, при этом количество массивов остаточных коэффициентов цветности во множестве массивов остаточных коэффициентов цветности равно двум. Преимущественно один массив остаточных коэффициентов включает в себя все коэффициенты, необходимые для обратного преобразования одного блока 4×4.[0014] Preferably, the number of arrays of residual brightness coefficients in the plurality of arrays of residual brightness coefficients is four. Preferably, the number of arrays of residual color coefficients in the set of arrays of residual color coefficients is equal to two. Advantageously, one array of residual coefficients includes all coefficients necessary for the inverse transform of one 4x4 block.

[0015] В соответствии с другим аспектом, раскрывается способ для прямого преобразования множества массивов остаточных коэффициентов в битовый поток видео, сконфигурированный для формата цветности 4:2:2, при этом способ содержит этапы, на которых:[0015] In accordance with another aspect, a method is disclosed for directly converting multiple arrays of residual coefficients into a video bitstream configured for a 4: 2: 2 color format, the method comprising the steps of:

применяют прямое преобразование к каждому из: множества массивов остаточных коэффициентов яркости, множества массивов остаточных коэффициентов цветности для первого канала цвета и множества массивов остаточных коэффициентов цветности для второго канала цвета;apply a direct conversion to each of: a plurality of arrays of residual luma coefficients, a plurality of arrays of residual chroma for the first color channel, and a plurality of arrays of residual chroma for the second color channel;

блоку яркости 4×4 из множества блоков яркости 4×4, причем каждый блок яркости 4×4 совместно расположен с одной единицей преобразования 4×4 из множества единиц преобразования 4×4, причем множество блоков яркости 4×4 вместе занимают область яркости 8×8;a 4 × 4 brightness unit from a plurality of 4 × 4 brightness units, each 4 × 4 brightness unit being co-located with one 4 × 4 conversion unit from a plurality of 4 × 4 conversion units, wherein a plurality of 4 × 4 brightness units together occupy an 8 × brightness area 8;

кодируют, после того как закодированы массивы остаточных коэффициентов яркости, множество массивов остаточных коэффициентов цветности для первого канала цвета, при этом каждый массив остаточных коэффициентов цветности соответствует блоку цветности 4×4 и каждый блок цветности 4×4 для первого канала цвета совместно расположен с двумя из множества единиц преобразования 4×4; иencode, after the arrays of residual luminance coefficients have been encoded, a plurality of arrays of residual chromaticity coefficients for the first color channel, wherein each array of residual chroma coefficients corresponds to a 4x4 color block and each 4x4 color block for the first color channel is co-located with two of sets of 4 × 4 transformation units; and

кодируют, после того как закодированы массивы остаточных коэффициентов цветности для первого канала цвета, множество массивов остаточных коэффициентов цветности для второго канала цвета, при этом каждый массив остаточных коэффициентов цветности соответствует блоку цветности 4×4 и каждый блок цветности для второго канала цвета совместно расположен с двумя из множества единиц преобразования 4×4.encode, after the arrays of residual chroma coefficients for the first color channel are encoded, a plurality of arrays of residual chroma coefficients for the second color channel, wherein each array of residual chroma coefficients corresponds to a 4x4 color block and each chroma block for the second color channel is co-located with two from the set of 4 × 4 transformation units.

[0016] Также раскрываются другие аспекты, включающие в себя дополнительные кодеры.[0016] Other aspects, including additional encoders, are also disclosed.

Краткое описание чертежейBrief Description of the Drawings

[0017] По меньшей мере один вариант осуществления настоящего изобретения теперь будет описан со ссылкой на следующие чертежи, на которых:[0017] At least one embodiment of the present invention will now be described with reference to the following drawings, in which:

[0018] Фиг. 1 является принципиальной структурной схемой, показывающей систему кодирования и декодирования видео;[0018] FIG. 1 is a schematic structural diagram showing a video encoding and decoding system;

[0019] Фиг. 2A и 2B образуют принципиальную структурную схему компьютерной системы общего назначения на которой может быть на практике реализована одна или обе из систем кодирования и декодирования видео с Фиг. 1.[0019] FIG. 2A and 2B form a schematic structural diagram of a general-purpose computer system on which one or both of the video encoding and decoding systems of FIG. one.

[0020] Фиг. 3 является принципиальной структурной схемой, показывающей функциональные модули кодера видео;[0020] FIG. 3 is a schematic structural diagram showing functional modules of a video encoder;

[0021] Фиг. 4 является принципиальной структурной схемой, показывающей функциональные модули декодера видео;[0021] FIG. 4 is a schematic structural diagram showing functional modules of a video decoder;

[0022] Фиг. 5A и 5B схематично иллюстрируют форматы цветности для представления данных кадра;[0022] FIG. 5A and 5B schematically illustrate color formats for representing frame data;

[0023] Фиг. 6A является схематическим представлением примерного дерева преобразования единицы кодирования;[0023] FIG. 6A is a schematic representation of an example encoding unit transform tree;

[0024] Фиг. 6B является схематическим представлением примерного дерева преобразования скомпонованного по сетке элементов дискретизации яркости;[0024] FIG. 6B is a schematic representation of an exemplary transform tree of grid-arranged brightness discretization elements;

[0025] Фиг. 6C является схематическим представлением примерного дерева преобразования скомпонованного по сетке элементов дискретизации цветности;[0025] FIG. 6C is a schematic representation of an exemplary transform tree of a grid-arranged color sampling element;

[0026] Фиг. 7 является схематической иллюстрацией структуры данных, представляющей собой канал яркости примерного дерева преобразования;[0026] FIG. 7 is a schematic illustration of a data structure representing a luminance channel of an exemplary transform tree;

[0027] Фиг. 8 иллюстрирует структуру данных, представляющую собой канал цветности примерного дерева преобразования;[0027] FIG. 8 illustrates a data structure representing a color channel of an exemplary transform tree;

[0028] Фиг. 9A и 9B схематично показывают структуру битового потока, которая кодирует примерное дерево преобразования;[0028] FIG. 9A and 9B schematically show a bitstream structure that encodes an exemplary transform tree;

[0029] Фиг. 9C, 9D и 9E схематично показывают альтернативную структуру битового потока, которая кодирует примерное дерево преобразования;[0029] FIG. 9C, 9D, and 9E schematically show an alternative bitstream structure that encodes an example transform tree;

[0030] Фиг. 10 является принципиальной блок-схемой, показывающей способ для кодирования примерного дерева преобразования;[0030] FIG. 10 is a schematic flowchart showing a method for encoding an example transform tree;

[0031] Фиг. 11 является принципиальной блок-схемой, показывающей способ для декодирования примерного дерева преобразования;[0031] FIG. 11 is a schematic flowchart showing a method for decoding an example transform tree;

[0032] Фиг. 12A-12C схематично показывают остаточные шаблоны сканирования 4х8 единицы преобразования;[0032] FIG. 12A-12C schematically show residual 4x8 scan unit conversion units;

[0033] Фиг. 13 является принципиальной блок-схемой, показывающей способ для кодирования примерной единицы преобразования;[0033] FIG. 13 is a schematic flowchart showing a method for encoding an example conversion unit;

[0034] Фиг. 14 является принципиальной блок-схемой, показывающей способ для декодирования примерной единицы преобразования;[0034] FIG. 14 is a schematic flowchart showing a method for decoding an example conversion unit;

[0035] Фиг. 15 схематично показывает возможные компоновки 4×4 преобразований для 4×4 и 8×8 единиц преобразования (TU);[0035] FIG. 15 schematically shows possible arrangements of 4 × 4 transformations for 4 × 4 and 8 × 8 transform units (TU);

[0036] Фиг. 16 схематично иллюстрирует примерные области цветности для реализации;[0036] FIG. 16 schematically illustrates exemplary color regions for implementation;

[0037] Фиг. 17 является принципиальной блок-схемой, показывающей способ для декодирования остаточных данных примерной единицы преобразования; и[0037] FIG. 17 is a schematic flowchart showing a method for decoding residual data of an exemplary conversion unit; and

[0038] Фиг. 18 схематично иллюстрирует операцию пропуска преобразования, применяемую к 4×8 области цветности с (не квадратным) 4×8 преобразованием.[0038] FIG. 18 schematically illustrates a conversion skip operation applied to a 4 × 8 color region with a (non-square) 4 × 8 transform.

Подробное описание, включающее в себя предпочтительный вариант осуществленияDetailed Description Including Preferred Embodiment

[0039] Там, где на одном или более сопроводительных чертежах делается ссылка на этапы и/или признаки, которые имеют одинаковые цифровые обозначения, эти этапы и/или признаки, в целях данного описания, обладают одинаковой функцией(ями) или операцией(ями), до тех пор, пока не появляется противоположное намерение.[0039] Where reference is made to steps and / or features that have the same numeric designations in one or more of the accompanying drawings, these steps and / or features, for the purposes of this description, have the same function (s) or operation (s) until the opposite intention appears.

[0040] Фиг. 1 является принципиальной структурной схемой, показывающей функциональные модули системы 100 кодирования и декодирования видео, которая может использовать методики для кодирования элементов синтаксиса, представляющих собой подразумеваемое подразделение единиц преобразования на несколько преобразований для канала цветности. Система 100 включает в себя устройство-источник 110 и устройство-получатель 130. Канал 120 связи используется для передачи закодированной видеоинформации от устройства-источника 110 устройству-получателю 130. В некоторых случаях, устройство-источник 110 и устройство-получатель 130 могут быть выполнены в виде соответствующих мобильных телефонных трубок, и в этом случае канал 120 связи является беспроводным каналом. В других случаях, устройство-источник 110 и устройство-получатель 130 могут быть выполнены в виде оборудования для видео конференций, и в этом случае канал 120 связи, как правило, является проводным каналом, таким как Интернет соединение. Более того, устройство-источник 110 и устройство-получатель 130 могут быть выполнены в виде любого из широкого диапазона устройств, включая устройства, поддерживающие эфирное телевизионное вещание, приложения кабельного телевидения, приложения Интернет видео и включая приложения, где закодированное видео захватывается на запоминающий носитель информации или файловый сервер.[0040] FIG. 1 is a schematic block diagram showing the functional modules of a video encoding and decoding system 100 that can use techniques to encode syntax elements, which are the implicit division of conversion units into multiple transformations for a color channel. System 100 includes a source device 110 and a receiver device 130. A communication channel 120 is used to transmit encoded video information from the source device 110 to the receiver device 130. In some cases, the source device 110 and the receiver device 130 may be configured in the form of corresponding mobile handsets, in which case, communication channel 120 is a wireless channel. In other cases, the source device 110 and the recipient device 130 may be made in the form of equipment for video conferencing, and in this case, the communication channel 120, as a rule, is a wired channel, such as an Internet connection. Moreover, the source device 110 and the receiver device 130 can be made in the form of any of a wide range of devices, including devices that support broadcast television, cable television applications, Internet video applications, and including applications where the encoded video is captured on a storage medium or file server.

[0041] Как иллюстрируется, устройство-источник 110 включает в себя источник 112 видео, кодер 114 видео и передатчик 116. Источник 112 видео, как правило, выполнен в виде источника: захваченных данных видео кадра, такого как датчик формирования изображения; ранее захваченной последовательности видео, хранящейся на не временном записывающем носителе информации; или видео, подаваемого от удаленного датчика формирования изображения. Примеры устройств-источников 110, которые могут включать в себя датчик формирования изображения в качестве источника 112 видео, включают в себя интеллектуальные телефоны, видеокамеры и сетевые видеокамеры. Кодер 114 видео конвертирует захваченные данные кадра от источника 112 видео в закодированные видео данные и будет описан далее со ссылкой на Фиг. 3. Закодированные видео данные, как правило, передаются передатчиком 116 по каналу 120 связи в качестве закодированной видеоинформации. Также возможно, чтобы закодированные видео данные сохранялись на некотором устройстве хранения, таком как «Флэш» память или накопитель на жестком диске, до тех пор, пока последние не передаются по каналу 120 связи.[0041] As illustrated, the source device 110 includes a video source 112, a video encoder 114, and a transmitter 116. The video source 112 is typically configured as a source: captured video frame data, such as an image forming sensor; a previously captured video sequence stored on a non-temporary recording medium; or video from a remote imaging sensor. Examples of source devices 110, which may include an image forming sensor as a video source 112, include smart phones, video cameras, and network video cameras. A video encoder 114 converts the captured frame data from a video source 112 into encoded video data and will be described later with reference to FIG. 3. The encoded video data is typically transmitted by the transmitter 116 over the communication channel 120 as encoded video information. It is also possible that the encoded video data is stored on some storage device, such as a “flash” memory or a hard disk drive, until the latter is transmitted over the communication channel 120.

[0042] Устройство-получатель 130 включает в себя приемник 132, декодер 134 видео и устройство 136 отображения. Приемник 132 принимает закодированную видеоинформацию от канала 120 связи и пересылает принятые видеоданные к декодеру 134 видео. Декодер 134 видео затем выводит декодированные данные кадра на устройство 136 отображения. Примеры устройства 136 отображения включают в себя электроннолучевую трубку, жидкокристаллический дисплей, такой как в интеллектуальных телефонах, планшетных компьютерах, компьютерных мониторах или стационарных телевизорах. Также возможно, чтобы функциональные возможности каждого из устройства-источника 110 и устройства-получателя 130 были воплощены в одном устройстве.[0042] The recipient device 130 includes a receiver 132, a video decoder 134, and a display device 136. The receiver 132 receives the encoded video information from the communication channel 120 and forwards the received video data to the video decoder 134. The video decoder 134 then outputs the decoded frame data to the display device 136. Examples of the display device 136 include a cathode ray tube, a liquid crystal display, such as in smart phones, tablet computers, computer monitors, or stationary televisions. It is also possible that the functionality of each of the source device 110 and the recipient device 130 are embodied in one device.

[0043] Несмотря на упомянутые выше примерные устройства, каждое из устройств: устройство-источник 110 и устройство-получатель 130, могут быть выполнены в рамках вычислительной системы общего назначения, как правило, посредством сочетания компонентов аппаратного и программного обеспечения. Фиг. 2A иллюстрирует такую компьютерную систему 200, которая включает в себя: компьютерный модуль 201; устройства ввода, такие как клавиатура 202, указывающее устройство 203 мышь, сканер 226, камера 227, которая может быть сконфигурирована в качестве источника 112 видео, и микрофон 280; и устройств вывода, включающих в себя принтер 215, устройство 214 отображения, которое может быть сконфигурировано в качестве устройства 136 отображения, и громкоговорители 217. Внешнее устройство 216 приемопередатчика Модулятора-Демодулятора (Модема) может быть использовано компьютерным модулем 201 для передачи в и приема от сети 220 связи через соединение 221. Сеть 220 связи, которая может представлять собой канал 120 связи, может быть глобальной сетью (WAN), такой как Интернет, сетью сотовой связи, или частной WAN. В случае, когда соединение 221 является телефонной линией, модем 216 может быть традиционным «коммутируемым» модемом. В качестве альтернативы, в случае, когда соединение 221 является соединением с высокой емкостью (например, кабелем), модем 216 может быть широкополосным модемом. Беспроводной модем также может быть использован для беспроводного соединения с сетью 220 связи. Устройство 216 приемопередатчика может обеспечивать функциональные возможности передатчика 116 и приемника 132, а канал 120 связи может быть воплощен в соединении 221.[0043] Despite the above-mentioned exemplary devices, each of the devices: the source device 110 and the receiver device 130, can be implemented within a general-purpose computing system, typically by a combination of hardware and software components. FIG. 2A illustrates such a computer system 200 that includes: a computer module 201; input devices such as a keyboard 202, a pointing device 203, a mouse, a scanner 226, a camera 227 that can be configured as a video source 112, and a microphone 280; and output devices including a printer 215, a display device 214 that can be configured as a display device 136, and loudspeakers 217. An external modulator-Demodulator (Modem) transceiver device 216 can be used by a computer module 201 to transmit to and receive from a communication network 220 via a connection 221. A communication network 220, which may be a communication channel 120, may be a wide area network (WAN), such as the Internet, a cellular network, or a private WAN. In the case where the connection 221 is a telephone line, the modem 216 may be a traditional “switched” modem. Alternatively, in the case where connection 221 is a high capacity connection (eg, cable), modem 216 may be a broadband modem. A wireless modem may also be used to wirelessly connect to a communications network 220. The transceiver device 216 may provide the functionality of the transmitter 116 and the receiver 132, and the communication channel 120 may be embodied in the connection 221.

[0044] Компьютерный модуль 201, как правило, включает в себя по меньшей мере один узел 205 процессора, и узел 206 памяти. Например, узел 206 памяти может иметь полупроводниковое запоминающее устройство с произвольной выборкой (RAM) и полупроводниковое постоянное запоминающее устройство (ROM). Компьютерный модуль 201 также включает в себя некоторое количество интерфейсов ввода/вывода (I/O), включая: аудио-видео интерфейс 207, который обеспечивает сопряжение с видео дисплеем 214, громкоговорителем 217 и микрофоном 280; интерфейс 213 I/O, который обеспечивает сопряжение с клавиатурой 202, мышью 203, сканером 226, камерой 227 и опционально джойстиком или другим устройством интерфейса с человеком (не проиллюстрировано); и интерфейс 208 для внешнего модема 216 и принтера 215. В некоторых реализациях, модем 216 может быть встроен в компьютерный модуль 201, например, внутри интерфейса 208. Компьютерный модуль 201 также имеет интерфейс 211 локальной сети, который разрешает сопряжение компьютерной системы 200 через соединение 223 с локальной сетью 222 связи, известной как Локальная Сеть (LAN). Как иллюстрируется на Фиг. 2A, локальная сеть 222 связи также может сопрягаться с глобальной сетью 220 через соединение 224, которое, как правило, будет включать в себя так называемое устройство «брандмауэр» или устройство с подобными функциональными возможностями. Интерфейс 211 локальной сети может содержать монтажную плату Ethernet™, беспроводную компоновку Bluetooth™ или беспроводную компоновку IEEE 802.11; тем не менее, многочисленные другие типы интерфейсов могут быть на практике реализованы применительно к интерфейсу 211. Интерфейс 211 локальной сети 211 также может предоставлять функциональные возможности передатчика 116 и приемника 132, а канал 120 связи также может быть воплощен в локальной сети 222 связи.[0044] Computer module 201 typically includes at least one processor node 205 and a memory node 206. For example, the memory unit 206 may have a random access memory (RAM) and a semiconductor read only memory (ROM). Computer module 201 also includes a number of input / output (I / O) interfaces, including: an audio-video interface 207, which interfaces with a video display 214, a speaker 217, and a microphone 280; an I / O interface 213 that interfaces with a keyboard 202, a mouse 203, a scanner 226, a camera 227, and an optional joystick or other human interface device (not illustrated); and an interface 208 for an external modem 216 and a printer 215. In some implementations, the modem 216 may be integrated into a computer module 201, for example, within an interface 208. The computer module 201 also has a local area network interface 211 that allows the computer system 200 to be coupled through connection 223 with a local area network 222 connection known as a Local Area Network (LAN). As illustrated in FIG. 2A, a local area network 222 can also interface with a wide area network 220 via a connection 224, which will typically include a so-called “firewall” device or device with similar functionality. The LAN interface 211 may include an Ethernet ™ circuit board, a Bluetooth ™ wireless configuration, or an IEEE 802.11 wireless configuration; however, numerous other types of interfaces can be practiced with respect to the interface 211. The interface 211 of the local area network 211 can also provide the functionality of the transmitter 116 and the receiver 132, and the communication channel 120 can also be implemented in the local communication network 222.

[0045] Интерфейсы 208 и 213 I/O могут обеспечивать либо одну из, либо обе из возможностей последовательного и параллельного соединения, причем первая, как правило, реализуется в соответствии со стандартами Универсальной Последовательной Шины (USB) и при помощи соответствующих разъемов USB (не проиллюстрировано). Устройства 209 хранения обеспечиваются, и, как правило, включают в себя накопитель 210 на жестком диске (HDD). Также могут быть использованы прочие устройства хранения, такие как накопитель на гибком диске и накопитель на магнитной ленте (не проиллюстрировано). Накопитель 212 на оптическом диске, как правило, предусматривается для работы в качестве энергонезависимого источника данных. Портативные устройства памяти, такие как оптические диски (например, CD-ROM, DVD, Blu-ray Disc™), USB-RAM, портативные, внешние накопители на жестком диске, и гибкие диски, например, могут быть использованы в качестве соответствующих источников данных для компьютерной системы 200. Как правило, любой из компонентов: HDD 210, оптический накопитель 212, сети 220 и 222, также может быть выполнен с возможностью функционирования в качестве источника 112 видео, или в качестве получателя применительно к декодированным видео данным, для сохранения с целью воспроизведения через дисплей 214.[0045] The I / O interfaces 208 and 213 can provide either one or both of serial and parallel connectivity, the former typically being implemented in accordance with Universal Serial Bus (USB) standards and using appropriate USB connectors (not illustrated). Storage devices 209 are provided, and typically include a hard disk drive (HDD) 210. Other storage devices, such as a floppy disk drive and a magnetic tape drive (not illustrated), may also be used. An optical disk drive 212 is typically provided for operation as a non-volatile data source. Portable memory devices such as optical discs (e.g. CD-ROM, DVD, Blu-ray Disc ™), USB-RAM, portable, external hard drives, and floppy disks, for example, can be used as appropriate data sources for a computer system 200. As a rule, any of the components: HDD 210, optical drive 212, networks 220 and 222, can also be configured to function as a video source 112, or as a receiver in relation to decoded video data, for storage with reproduction Res display 214.

[0046] Компоненты с 205 по 213 компьютерного модуля 201, как правило, осуществляют связь через взаимосвязанную шину 204 и образом, который приводит к обычному режиму функционирования компьютерной системы 200, известной специалистам в соответствующей области. Например, процессор 205 сопрягается с системной шиной 204 при помощи соединения 218. Аналогичным образом, память 206 и накопитель 212 на оптическом диске сопрягаются с системной шиной 204 посредством соединений 219. Примеры компьютеров, на которых описанные компоновки могут быть выполнены на практике, включают в себя IBM-PC и совместимые, Sun SPARCstations, Apple Mac™ или подобные компьютерные системы.[0046] Components 205 to 213 of the computer module 201 typically communicate via an interconnected bus 204 and in a manner that leads to the normal operation of the computer system 200 known to those skilled in the art. For example, processor 205 interfaces with system bus 204 via connection 218. Similarly, memory 206 and optical drive 212 are coupled to system bus 204 via connections 219. Examples of computers on which the described arrangements may be practiced include IBM-PC and compatible, Sun SPARCstations, Apple Mac ™ or similar computer systems.

[0047] В случае необходимости или по желанию, кодер 114 видео и декодер 134 видео, как впрочем и описываемые ниже способы, могут быть реализованы при помощи компьютерной системы 200, при этом кодер 114 видео, декодер 134 видео и процессы с Фиг. 10-13, которые будут описаны, могут быть реализованы в качестве одной или более прикладных программ 233 программного обеспечения, исполняемых в компьютерной системе 200. В частности, кодер 114 видео, декодер 134 видео и этапы описываемых способов совершаются посредством инструкций 231 (см. Фиг. 2B) в программном обеспечении 233, которое выполняется в компьютерной системе 200. Инструкции 231 программного обеспечения могут быть сформированы в качестве одного или более модулей кода, каждый для выполнения одной или более конкретных задач. Программное обеспечение также может быть разделено на две отдельные части, из которых первая часть и соответствующие модули кода выполняют описанные способы, а вторая часть и соответствующие модули кода управляют интерфейсом пользователя между первой частью и пользователем.[0047] If necessary or desired, the video encoder 114 and the video decoder 134, as well as the methods described below, can be implemented using the computer system 200, the video encoder 114, the video decoder 134 and the processes of FIG. 10-13, which will be described, can be implemented as one or more software applications 233 executable on a computer system 200. In particular, a video encoder 114, a video decoder 134, and steps of the described methods are performed by instructions 231 (see FIG. . 2B) in software 233 that runs on computer system 200. Software instructions 231 may be formed as one or more code modules, each for one or more specific tasks. The software can also be divided into two separate parts, of which the first part and the corresponding code modules perform the described methods, and the second part and the corresponding code modules control the user interface between the first part and the user.

Программное обеспечение может быть сохранено на считываемом компьютером носителе информации, включающем в себя описываемые ниже устройства хранения, например. Программное обеспечение загружается в компьютерную систему 200 считываемого компьютером со считываемого компьютером носителя информации, и затем исполняется компьютерной системой 200. Считываемый компьютером носитель информации с таким программным обеспечением или компьютерной программой, записанной на считываемом компьютером носителе информации, является компьютерным программным продуктом. Использование компьютерного программного продукта в компьютерной системе 200 предпочтительно воплощает преимущественное устройство для реализации кодера 114 видео, декодера 134 видео и описываемых способов.The software may be stored on a computer-readable storage medium including storage devices described below, for example. The software is loaded into a computer system 200 readable by a computer from a computer readable storage medium, and then executed by a computer system 200. A computer readable storage medium with such software or a computer program recorded on a computer readable storage medium is a computer program product. The use of a computer program product in a computer system 200 preferably embodies an advantageous device for implementing a video encoder 114, a video decoder 134, and the described methods.

[0049] Программное обеспечение 233, как правило, хранится на HDD 210 или в памяти 206. Программное обеспечение загружается в компьютерную систему 200 считываемого компьютером со считываемого компьютером носителя информации, и исполняется компьютерной системой 200. Таким образом, например, программное обеспечение 233 может быть сохранено на оптически-читаемом дисковом запоминающем носителе 225 информации (например, CD-ROM), который считывается накопителем 212 на оптическом диске.[0049] The software 233 is typically stored on the HDD 210 or in the memory 206. The software is downloaded to a computer system 200 readable by a computer from a computer readable medium, and executed by the computer system 200. Thus, for example, the software 233 may be stored on an optically readable disk storage medium 225 information (for example, CD-ROM), which is read by the drive 212 on the optical disk.

[0050] В некоторых случаях, прикладные программы 233 могут быть поставлены пользователю закодированными на одном или более CD-ROM 225 и считаны через соответствующий накопитель 212, или, в качестве альтернативы, могут быть считаны пользователем из сетей 220 или 222. В еще одном случае, программное обеспечение также может быть загружено в компьютерную систему 200 с других считываемых компьютером носителей информации. Считываемые компьютером запоминающие носители информации относятся к любым не временным вещественным запоминающим носителям информации, которые предоставляют записанные инструкции и/или данные компьютерной системе 200 для исполнения и/или обработки. Примеры таких запоминающих носителей информации включают в себя гибкие диски, магнитную ленту, CD-ROM, DVD, Blu-ray Disc, накопитель на жестком диске, ROM или интегральную микросхему, память USB, магнитооптический диск, или считываемую компьютером карту, такую как карта PCMCIA и подобная, являются или нет такие устройства внутренними или внешними по отношению к компьютерному модулю 201. Примеры временных или не вещественных считываемых компьютером средств передачи, которые также могут участвовать в предоставлении программного обеспечения, прикладных программ, инструкций и/или видео данных или закодированных видео данных компьютерному модулю 401, включают в себя радио или инфракрасные каналы передачи, как, впрочем, и сетевое соединение с другим компьютером или сетевым устройством, Интернет или Интрасетями, включая передачи электронной почты и информации, записанной на web-сайтах и подобном.[0050] In some cases, application programs 233 can be delivered to a user encoded on one or more CD-ROMs 225 and read through an appropriate drive 212, or, alternatively, can be read by a user from networks 220 or 222. In yet another case, , the software can also be downloaded to the computer system 200 from other computer readable storage media. Computer-readable storage media refers to any non-temporary physical storage media that provide recorded instructions and / or data to computer system 200 for execution and / or processing. Examples of such storage media include floppy disks, magnetic tape, CD-ROM, DVD, Blu-ray Disc, hard disk drive, ROM or integrated circuit, USB memory, magneto-optical disk, or a computer-readable card such as a PCMCIA card and the like, whether or not such devices are internal or external to computer module 201. Examples of temporary or non-material computer-readable transmission media that may also be involved in providing software applications frames, instructions and / or video data or encoded video data to computer module 401, include radio or infrared transmission channels, as well as a network connection to another computer or network device, the Internet or Intranets, including email and information transfers, recorded on web sites and the like.

[0051] Вторая часть прикладных программ 233 и соответствующие модули кода, упомянутые выше, могут быть исполнены для реализации одного или более графических интерфейсов пользователя (GUI) для визуализации или иного представления на дисплее 214. Посредством манипуляции, как правило, клавиатурой 202 и мышью 203, пользователь компьютерной системы 200 и приложение могут манипулировать интерфейсом функционально гибким образом для предоставления команд управления и/или ввода приложениям, связанным с GUI. Также могут быть реализованы другие формы функционально гибких интерфейсов пользователя, такие как аудиоинтерфейс, использующий вывод речевых подсказок через громкоговорители 217 и ввод голосовых команд пользователя через микрофон 280.[0051] The second part of the application programs 233 and corresponding code modules mentioned above can be executed to implement one or more graphical user interfaces (GUIs) for visualization or other presentation on the display 214. By manipulating, as a rule, the keyboard 202 and the mouse 203 , the user of the computer system 200 and the application can manipulate the interface in a functionally flexible manner to provide control and / or input commands to GUI-related applications. Other forms of functionally flexible user interfaces may also be implemented, such as an audio interface using the output of voice prompts through the speakers 217 and inputting voice commands from the user through the microphone 280.

[0052] Фиг. 2B является подробной принципиальной структурной схемой процессора 205 и «памяти» 234. Память 234 представляет собой логическую агрегацию всех модулей памяти (включая HDD 209 и полупроводниковую память 206), доступ к которым может быть получен посредством компьютерного модуля 201 на Фиг. 2A.[0052] FIG. 2B is a detailed schematic structural diagram of a processor 205 and “memory” 234. Memory 234 is a logical aggregation of all memory modules (including HDD 209 and semiconductor memory 206) that can be accessed by computer module 201 of FIG. 2A.

[0053] Когда исходно на компьютерный модуль 201 подается питание, исполняется программа 250 самотестирования при включении питания (POST). Программа 250 POST, как правило, хранится в ROM 249 полупроводниковой памяти 206 с Фиг. 2A. Устройство аппаратного обеспечения, такое как ROM 249, хранящее программное обеспечение, иногда именуется встроенным программным обеспечением. Программа 250 POST исследует аппаратное обеспечение внутри компьютерного модуля 201, чтобы гарантировать правильное функционирование, и, как правило, проверяет процессор 205, память 234 (209, 206), и модуль 251 программного обеспечения базовых систем ввода вывода (BIOS), также, как правило, хранящийся в ROM 249, для корректного функционирования. Как только программа 250 POST выполнена успешно, BIOS 251 активирует накопитель 210 на жестком диске с Фиг. 2A. Активация накопителя 210 на жестком диске вызывает программу 252 начального загрузчика, которая является резидентной на накопителе 210 на жестком диске, для исполнения через процессор 205. Это загружает операционную систему 253 в память 206 RAM, после чего операционная система 253 начинает функционировать. Операционная система 253 является приложением системного уровня, исполняемым процессором 205, для исполнения различных высокоуровневых функций, включая управление процессором, управление памятью, управление устройствами, управление хранением, прикладной интерфейс программного обеспечения, и общий интерфейс пользователя.[0053] When power is initially supplied to the computer module 201, a power-on self-test (POST) program 250 is executed. The POST program 250 is typically stored in the ROM 249 of the semiconductor memory 206 of FIG. 2A. A hardware device, such as a software storage ROM 249, is sometimes referred to as firmware. The POST program 250 examines the hardware inside the computer module 201 to ensure proper functioning, and typically checks the processor 205, memory 234 (209, 206), and basic input / output system (BIOS) software module 251, also typically stored in ROM 249 for proper operation. Once the POST program 250 is completed successfully, the BIOS 251 activates the hard disk drive 210 of FIG. 2A. Activating the hard disk drive 210 calls the bootloader program 252, which is resident on the hard disk drive 210, for execution through the processor 205. This loads the operating system 253 into the RAM memory 206, after which the operating system 253 starts to function. Operating system 253 is a system-level application executed by processor 205 to perform various high-level functions, including processor control, memory management, device management, storage management, a software application interface, and a common user interface.

[0054] Операционная система 253 управляет памятью 234 (209, 206) чтобы гарантировать то, что каждый процесс или приложение, запущенное на компьютерном модуле 201, имеет достаточно памяти, для исполнения без конфликта с памятью, выделенной другому процессу. Кроме того, различные типы памяти, доступные в компьютерной системе 200 с Фиг. 2A, должны быть использованы правильно с тем, чтобы каждый процесс мог выполняться эффективно. Соответственно, агрегированная память 234 не предназначена проиллюстрировать то, каким образом выделяются конкретные сегменты памяти (до тех пор, пока не изложено иначе), а скорее для предоставления общего вида памяти, доступной компьютерной системе 200, и то, как таковая используется.[0054] The operating system 253 controls the memory 234 (209, 206) to ensure that each process or application running on the computer module 201 has enough memory to execute without conflict with the memory allocated to another process. In addition, the various types of memory available in the computer system 200 of FIG. 2A must be used correctly so that each process can be performed efficiently. Accordingly, aggregated memory 234 is not intended to illustrate how particular segments of memory are allocated (unless otherwise stated), but rather to provide a general view of the memory available to computer system 200 and how it is used.

[0055] Как показано на Фиг. 2B, процессор 205 включает в себя некоторое количество функциональных модулей, включая узел 239 управления, арифметико-логическое устройство 240 (ALU), и локальную или внутреннюю память 248, иногда именуемую кэш-памятью. Кэш-память 248, как правило, включает в себя некоторое количество регистров 244-246 хранения в секции регистра. Одна или более внутренние шины 241 функциональным образом взаимно соединяют эти функциональные модули. Процессор 205, как правило, также имеет один или более интерфейсы 242 для осуществления связи с внешними устройствами через системную шину 204, используя соединение 218. Память 234 сопрягается с шиной 204 при помощи соединения 219.[0055] As shown in FIG. 2B, the processor 205 includes a number of functional modules, including a control unit 239, an arithmetic logic unit 240 (ALU), and local or internal memory 248, sometimes referred to as cache memory. The cache memory 248 typically includes a number of storage registers 244-246 in the register section. One or more internal buses 241 functionally interconnect these function modules. The processor 205 typically also has one or more interfaces 242 for communicating with external devices via a system bus 204 using a connection 218. A memory 234 is coupled to a bus 204 using a connection 219.

[0056] Прикладная программа 233 включает в себя последовательность инструкций 231, которые могут включать в себя условные переходы и цикловые инструкции. Программа 233 также может включать в себя данные 232, которые используются при исполнении программы 233. Инструкции 231 и данные 232 хранятся в ячейках 228, 229, 230 и 235, 236, 237 памяти, соответственно. В зависимости от относительного размера инструкций 231 и ячеек 228-230 памяти, конкретная инструкция может быть сохранена в одной ячейке памяти, как изображено инструкцией, показанной в ячейке 230 памяти. В качестве альтернативы, инструкции могут быть сегментированы на некоторое количество частей, каждая из которых хранится в отдельной ячейке памяти, как изображено сегментами инструкции, показанными в ячейках 228 и 229 памяти.[0056] The application program 233 includes a sequence of instructions 231, which may include conditional branches and loop instructions. Program 233 may also include data 232 that is used to execute program 233. Instructions 231 and data 232 are stored in memory cells 228, 229, 230, and 235, 236, 237, respectively. Depending on the relative size of the instructions 231 and the memory cells 228-230, a particular instruction may be stored in one memory cell, as depicted by the instruction shown in the memory cell 230. Alternatively, instructions may be segmented into a number of parts, each of which is stored in a separate memory location, as depicted by instruction segments shown in memory locations 228 and 229.

[0057] В целом, процессор 205 выдается набор инструкций, которые в нем выполняются. Процессор 205 ожидает последующего ввода, на который процессор 205 реагирует посредством исполнения другого набора инструкций. Каждый ввод может быть предоставлен от одного или более из некоторого количества источников, включая данные, генерируемые одним или более устройствами 202, 203 ввода, данные извлеченные из одного из устройств 206, 209 хранения или данные извлеченные из запоминающего носителя 225 информации, вставленного в соответствующее считывающее устройство 212, все изображенные на Фиг. 2A. Исполнение набора инструкций может в некоторых случаях приводить к выводу данных. Исполнение также может вызывать сохранение данных или переменных в памяти 234.[0057] In general, the processor 205 is issued a set of instructions that are executed in it. The processor 205 awaits subsequent input, to which the processor 205 responds by executing another set of instructions. Each input can be provided from one or more of a number of sources, including data generated by one or more input devices 202, 203, data extracted from one of the storage devices 206, 209, or data extracted from a storage medium 225 of information inserted into an appropriate reader device 212, all depicted in FIG. 2A. The execution of a set of instructions may in some cases lead to data output. Execution may also cause the storage of data or variables in memory 234.

[0058] Кодер 114 видео, декодер 134 видео и описываемые способы могут использовать входные переменных 254, которые хранятся в памяти 235 в соответствующих ячейках 255, 256, 257 памяти. Кодер 114 видео, декодер 134 видео и описываемые способы создают выходные переменные 261, которые сохраняются в памяти 234 в соответствующих ячейках 262, 263, 264 памяти. Промежуточные переменные 258 могут быть сохранены в ячейках 259, 260, 266 и 267 памяти.[0058] The video encoder 114, the video decoder 134, and the described methods can use the input variables 254, which are stored in the memory 235 in the corresponding memory cells 255, 256, 257. The video encoder 114, the video decoder 134 and the described methods create output variables 261, which are stored in the memory 234 in the corresponding memory cells 262, 263, 264. Intermediate variables 258 may be stored in memory cells 259, 260, 266, and 267.

[0059] Обращаясь к процессору 205 с Фиг. 2B, регистры 244, 245, 246, арифметико-логическое устройство 240 (ALU), и узел 239 управления работают совместно для выполнения последовательностей микроопераций, требуемых для выполнения циклов «выборки, декодирования, и исполнения» для каждой инструкции в наборе инструкций, составляющих программу 233. Каждый цикл выборки, декодирования, и исполнения содержат:[0059] Turning to the processor 205 of FIG. 2B, registers 244, 245, 246, the arithmetic logic unit 240 (ALU), and the control unit 239 work together to perform the sequences of microoperations required to complete the “fetch, decode, and execute” cycles for each instruction in the instruction set constituting the program 233. Each cycle of sampling, decoding, and execution contains:

(a) операцию выборки, которая выбирает и считывает инструкцию 231 из ячейки 228, 229, 230 памяти;(a) a sampling operation that selects and reads instruction 231 from memory cell 228, 229, 230;

(b) операцию декодирования, при которой узел 239 управления определяет, какая инструкция была отобрана; и(b) a decoding operation in which the control unit 239 determines which instruction has been selected; and

(c) операцию исполнения, при которой узел 239 управления и/или ALU 240 исполняет инструкцию.(c) an execution operation in which the control unit 239 and / or the ALU 240 executes the instruction.

[0060] После этого может быть исполнен дополнительный цикл выборки, декодирования, и исполнения для следующей инструкции. Аналогичным образом, может быть выполнен цикл сохранения, посредством которого узел 239 управления сохраняет или записывает значение в ячейку 232 памяти.[0060] After this, an additional sampling, decoding, and execution cycle for the next instruction may be executed. Similarly, a save cycle may be performed by which the control unit 239 stores or writes a value to the memory cell 232.

[0061] Каждый этап или субпроцесс в процессах с Фиг. 10-13, которые будут описаны, связан с одним или более сегментами программы 233 и, как правило, выполняется секцией 244, 245, 247 регистра, ALU 240, и узлом 239 управления в процессоре 205, работающими совместно для выполнения циклов выборки, декодирования, и исполнения для каждой инструкции в наборе инструкций для отмеченных сегментов программы 233.[0061] Each step or subprocess in the processes of FIG. 10-13, which will be described, is associated with one or more segments of the program 233 and, as a rule, is performed by the register section 244, 245, 247, ALU 240, and the control unit 239 in the processor 205, working together to perform sampling, decoding, and the execution for each instruction in the instruction set for the marked segments of program 233.

[0062] Фиг. 3 является принципиальной структурной схемой, показывающей функциональные модули кодера 114 видео. Фиг. 4 является принципиальной структурной схемой, показывающей функциональные модули декодера 134 видео. Кодер 114 видео и декодер 134 видео могут быть реализованы при помощи компьютерной системы 200 общего назначения, как показано на Фиг. 2A и 2B, где различные функциональные модули могут быть реализованы посредством специализированного аппаратного обеспечения в компьютерной системе 200, посредством программного обеспечения, исполняемого в компьютерной системе 200, такого как один или более модули кода программного обеспечения прикладной программы 233 программного обеспечения, постоянно находящейся на накопителе 205 на жестком диске и управляемой при ее исполнении процессором 205, или в качестве альтернативы, посредством сочетания специализированного аппаратного обеспечения и программного обеспечения, исполняемого в компьютерной системе 200. Кодер 114 видео, декодер 134 видео и описываемые способы могут, альтернативно, быть реализованы в специализированном аппаратном обеспечении, таком как одна или более интегральные микросхемы, выполняющие функции или субфункции описываемых способов. Такое специализированное аппаратное обеспечение может включать в себя графические процессоры, цифровые сигнальные процессоры, проблемно-ориентированные интегральные микросхемы (ASIC), программируемые вентильные матрицы (FPGA), или один или более микропроцессоры и связанные запоминающие устройства. В частности, кодер 114 видео содержит модули 320-344, а декодер 134 видео содержит модули 420-434, каждый из которых может быть реализован в качестве одного или более модулей кода программного обеспечения прикладной программы 233 программного обеспечения.[0062] FIG. 3 is a schematic block diagram showing the functional modules of a video encoder 114. FIG. 4 is a schematic block diagram showing the functional modules of a video decoder 134. Video encoder 114 and video decoder 134 may be implemented using general purpose computer system 200, as shown in FIG. 2A and 2B, where various functional modules may be implemented by specialized hardware in a computer system 200, by software executing in a computer system 200, such as one or more software code modules of a software application 233 residing on a drive 205 on the hard drive and controlled by the processor 205, or alternatively, through a combination of specialized hardware and software executing in the computer system 200. The encoder 114, video decoder 134 and the described methods may alternatively be implemented in dedicated hardware such as one or more integrated circuits performing the functions or subfunctions described methods. Such specialized hardware may include graphic processors, digital signal processors, problem oriented integrated circuits (ASICs), programmable gate arrays (FPGAs), or one or more microprocessors and associated storage devices. In particular, video encoder 114 comprises modules 320-344, and video decoder 134 comprises modules 420-434, each of which may be implemented as one or more software code modules of a software application 233.

[0063] Несмотря на то, что кодер 114 видео с Фиг. 3 является примером конвейерной обработки кодирования видео стандарта высокоэффективного кодирования видео (HEVC), стадии обработки, выполняемые модулями 320-344 являются общими для других видео кодеков, таких как VC-1 или H.264/MPEG-4 AVC. Кодер 114 видео принимает захваченные данные кадра, такие как захваченные данные кадра, в качестве ряда кадров, причем каждый кадр включающий в себя один или более каналы цвета. Каждый кадр содержит одну сетку элементов дискретизации на канал цвета. Информация о цвете представляется при помощи ‘цветового пространства’, такого как рекомендация ITU-R BT.709 (‘YUV’), несмотря на то, что также возможны другие цветовые пространства. Когда используется цветовое пространство YUV, каналы цвета включают в себя канал (‘Y’) яркости и два канала (‘U’ и ‘V’) цветности. Более того, отличающиеся объемы информации могут быть включены в сетку элементов дискретизации каждого канала цвета, в зависимости от дискретизации изображения или посредством применения фильтрации для передискретизации захваченных данных кадра. Существует несколько подходов передискретизации, известных как ‘форматы цветности’, некоторые из которых будут описаны со ссылкой на Фиг. 5A и 5B.[0063] Although the video encoder 114 of FIG. 3 is an example of a high-performance video coding (HEVC) video coding pipeline, the processing steps performed by modules 320-344 are common to other video codecs such as VC-1 or H.264 / MPEG-4 AVC. Video encoder 114 receives captured frame data, such as captured frame data, as a series of frames, with each frame including one or more color channels. Each frame contains one grid of bins per color channel. Color information is represented using ‘color space’, such as ITU-R BT.709 (‘YUV’), although other color spaces are also possible. When the YUV color space is used, color channels include a luminance channel (‘Y’) and two color channels (‘U’ and ‘V’). Moreover, different amounts of information can be included in the grid of discretization elements of each color channel, depending on the sampling of the image or by applying filtering to oversampling the captured frame data. There are several resampling approaches known as ‘color formats’, some of which will be described with reference to FIG. 5A and 5B.

[0064] Кодер 114 видео делит каждый кадр захваченных данных кадра, таких как данные 310 кадра, на области, как правило, именуемые ‘блоки дерева кодирования’ (CTB). Каждый блок дерева кодирования (CTB) включает в себя иерархическое подразделение квадродерева в виде участка кадра в коллекции ‘единиц кодирования’ (CU). Блок дерева кодирования (CTB), как правило, занимает зону из 64×64 элементов дискретизации яркости, несмотря на то, что возможны другие размеры, такие как 16×16 или 32×32. В некоторых случаях могут быть использованы даже еще большие размеры, такие как 128×128. Блок дерева кодирования (CTB) может быть подразделен через разбиение на четыре равного размера области для создания нового иерархического уровня. Разбиение может быть применено рекурсивно, приводя к формированию иерархии квадродерева. Поскольку боковые размерности блока единицы кодирования (CTB) всегда являются степенями двух и разбиение квадродерева всегда приводит к разделению пополам ширины и высоты, размерности стороны области всегда являются степенями двух. Когда дальнейшее разбиение области не выполняется, говорят о том, что в области существует ‘единица кодирования’ (CU). Когда разбиение не выполняется на верхнем уровне блока дерева кодирования, область, занимающая весь блок дерева кодирования, содержит одну единицу кодирования (CU), которая, как правило, именуется ‘наибольшей единицей кодирования’ (LCU). Для каждой единицы кодирования также существует минимальный размер, такой как зона, занимаемая 8х8 элементами дискретизации яркости, несмотря на то, что также возможны другие минимальные размеры. Единицы кодирования данного размера, как правило, именуются ‘наименьшими единицами кодирования’ (SCU). В результате данной иерархии квадродерева, весь блок дерева кодирования (CTB) занимается одной или более единицами кодирования (CU).[0064] The video encoder 114 divides each frame of the captured frame data, such as frame data 310, into areas commonly referred to as “coding tree blocks” (CTBs). Each block of a coding tree (CTB) includes a hierarchical subdivision of a quad tree in the form of a section of a frame in a collection of ‘coding units’ (CU). A coding tree block (CTB) typically occupies an area of 64 × 64 brightness sampling elements, although other sizes, such as 16 × 16 or 32 × 32, are possible. In some cases, even larger sizes, such as 128 × 128, can be used. A coding tree block (CTB) can be subdivided into four equally sized regions to create a new hierarchical level. Partitioning can be applied recursively, leading to the formation of a quad tree hierarchy. Since the lateral dimensions of a coding unit (CTB) block are always powers of two and splitting a quad tree always leads to halving the width and height, the dimensions of the side of the region are always powers of two. When further partitioning of the region is not performed, it is said that there is a ‘coding unit’ (CU) in the region. When the splitting is not performed at the upper level of the coding tree block, the area occupying the entire coding tree block contains one coding unit (CU), which is usually referred to as the ‘largest coding unit’ (LCU). For each coding unit, there is also a minimum size, such as the area occupied by 8x8 brightness sampling elements, although other minimum sizes are also possible. Coding units of a given size are generally referred to as ‘smallest coding units’ (SCU). As a result of this quad tree hierarchy, the entire coding tree block (CTB) is occupied by one or more coding units (CUs).

[0065] Кодер 114 видео создает один или более массивы из элементов дискретизации, как правило, именуемые ‘единицами предсказания’ (PU) для каждой единицы кодирования (CU). Возможны различные компоновки единиц предсказания (PU) в каждой единице кодирования (CU), при условии, что единицы предсказания (PU) не пересекаются и что вся единица кодирования (CU) занимается одной или более единицами предсказания (PU). Данная схема гарантирует то, что единицы предсказания (PU) охватывают всю зону кадра.[0065] The video encoder 114 creates one or more arrays of sampling units, typically referred to as ‘prediction units’ (PUs) for each coding unit (CU). Different prediction unit (PU) arrangements are possible in each coding unit (CU), provided that the prediction units (PU) do not intersect and that the entire coding unit (CU) is occupied by one or more prediction units (PU). This scheme ensures that prediction units (PUs) cover the entire frame area.

[0066] Кодер 114 видео функционирует посредством вывода, из модуля 340 мультиплексора, единицы 382 предсказания (PU). Модуль 344 разности выводит разность между единицей 382 предсказания (PU) и соответствующим 2D массивом элементов дискретизации данных, в пространственной области, из единицы кодирования (CU) блока дерева кодирования (CTB) данных 310 кадра, причем разность известная как ‘массив остаточных элементов дискретизации’ 360. Массив 360 остаточных элементов дискретизации может быть преобразован в частотную область в модуле 320 преобразования, или массив 360 остаточных элементов дискретизации может оставаться в пространственной области, при этом выбор из двух вариантов выполняется мультиплексором 321, функционирующим под управление модуля 346 управления пропуском преобразования, и сигнализируется при помощи флага 386 пропуска преобразования. Модуль 346 управления пропуском преобразования определяет флаг 386 пропуска преобразования, который указывает на то, используется ли модуль 320 преобразования для преобразования массива 360 остаточных элементов дискретизации в массив 362 остаточных коэффициентов, или пропускается ли модуль 320 преобразования. Пропуск модуля 320 преобразования именуется ‘пропуском преобразования’. Когда преобразование не пропускается, массив 360 остаточных элементов дискретизации от модуля 344 разности принимается модулем 320 преобразования, который конвертирует (или ‘кодирует’) массив 360 остаточных элементов дискретизации из пространственного представления в представление в частотной области посредством применения ‘прямого преобразования’. Модуль 320 преобразование создает коэффициенты преобразования, сконфигурированные в качестве массива 362 остаточных преобразований для каждого преобразования в единице преобразования (TU) в иерархическом подразделении единицы кодирования (CU) в одной или более единицах преобразования (TU), как правило, именуемом ‘дерево преобразования’. Когда выполняется пропуск преобразования, массив 360 остаточных элементов дискретизации представляется в закодированном битовом потоке 312 в пространственной области и выполняется обход модуля 320 преобразования, что приводит к непосредственной пересылке массива 360 остаточных элементов дискретизации к модулю 322 масштабирования и квантования через мультиплексор 321, который функционирует под управлением флага 386 пропуска преобразования. Модуль 346 управления пропуском преобразования может тестировать битовую скорость передачи, требуемую в закодированном битовом потоке 312, для каждого значения флага 386 пропуска преобразования (т.е., пропущенного преобразования, или нормальной операции преобразования). Модуль 346 управления пропуском преобразования может выбирать значение для флага 386 пропуска преобразования, которое приводит к более низкой скорости передачи битов в закодированном битовом потоке 312, тем самым достигая более высокой эффективности сжатия. Каждый тест, выполняемый модулем 346 управления пропуском преобразования, увеличивает сложность кодера 114 видео, и, следовательно, желательно сократить количество случаев, для которых модуль 346 пропуска преобразования выполняет тест, до тех, для которых преимущество выбора пропуска преобразования перевешивает затраты на выполнение теста. Например, это может быть достигнуто посредством ограничения пропуска преобразования конкретными размерами преобразования и типами блока, как например, только 4х4 преобразованиями для блоков с внутренним предсказанием (как описывается дополнительно ниже) в разрабатываемом стандарте высокоэффективного кодирования видео (HEVC). Функциональная возможность пропуска преобразования особенно полезна для кодирования массивов 360 остаточных элементов дискретизации, которые содержат большой объем ‘высокочастотной’ информации. Высокочастотная информация, как правило, присутствует в данных 310 кадра, содержащих много резких краев, как например, где в данные 310 кадра включены буквенно-цифровые символы. Прочие источники данных 310 кадра, такие как графика, сгенерированная компьютером, также могут содержать значительный объем высокочастотной информации. DCT-подобное преобразование модуля 320 преобразования оптимизировано для данных 310 кадра, содержащих главным образом низкочастотную информацию, как например та, что получена от датчика формирования изображения, захватывающего естественное изображение. Таким образом, наличие функциональной возможности пропуска преобразования обеспечивает значительный прирост эффективности кодирования для приложений, которые имеют отношение к разрабатываемому стандарту высокоэффективного кодирования видео (HEVC). Применительно к кодеру 114 видео, один недостаток поддержки функциональной возможности пропуска преобразования состоит в необходимости тестирования двух возможных режимов для флага 386 пропуска преобразования. Как рассматривается ниже, функциональная возможность пропуска преобразования поддерживается для массива 360 остаточных элементов дискретизации размера 4×4 элементов дискретизации и когда массив 360 остаточных элементов дискретизации соответствует блоку с внутренним предсказанием, как описывается со ссылкой на модуль 336 внутреннего кадрового предсказания. Тем не менее, флаг 386 пропуска преобразования желательно сигнализируется отдельно для каждого канала цвета и, следовательно, отдельный тест может быть выполнен модулем 346 управления пропуском преобразования для каждого канала цвета. Отдельная сигнализация для каждого канала цвета является преимущественной так как высокочастотная информация может быть сконцентрирована в одном или в обоих каналах цвета, тем самым, подходит для пропуска преобразования, тогда как канал яркости может иметь минимальную высокочастотную информацию и, следовательно, преимущество от использования преобразования. Например, цветной текст на цветном фоне приведет к такому сценарию.[0066] The video encoder 114 operates by outputting, from the multiplexer module 340, the prediction unit (PU) 382. Difference module 344 derives the difference between the prediction unit (PU) 382 and the corresponding 2D array of data sampling elements, in the spatial domain, from the coding unit (CU) of the coding tree block (CTB) of frame data 310, the difference known as the 'residual sampling array' 360. An array 360 of residual sampling elements may be converted to a frequency domain in the transform module 320, or an array 360 of residual sampling elements may remain in the spatial domain, with two x options are performed by the multiplexer 321, operating under the control of the conversion skip control module 346, and is signaled by the conversion skip flag 386. The transform skip control module 346 determines a transform skip flag 386, which indicates whether the transform module 320 is used to convert the residual sampler array 360 to the residual coefficient array 362, or if the transform module 320 is skipped. The omission of the transform module 320 is referred to as a “transform omission”. When the conversion is not skipped, the array 360 of residual bins from the difference module 344 is received by the transform module 320, which converts (or ‘encodes’) the array 360 of residual bins from the spatial representation to the frequency domain representation by applying ‘direct transform’. The transform module 320 creates transform coefficients configured as an array 362 of residual transforms for each transform in a transform unit (TU) in the hierarchy of a coding unit (CU) in one or more transform units (TU), typically referred to as a “transform tree’. When the conversion skip is performed, the array 360 of residual sampling elements is represented in the encoded bitstream 312 in the spatial domain and the bypass of the transform module 320 is performed, which leads to the direct transfer of the array 360 of residual sampling elements to the scaling and quantization module 322 through the multiplexer 321, which operates under control flag 386 pass conversion. Conversion skip control module 346 can test the bit rate required in encoded bitstream 312 for each value of the conversion skip flag 386 (i.e., a skipped conversion, or a normal conversion operation). Transmission skipping control module 346 may select a value for the conversion skipping flag 386, which results in a lower bit rate in the encoded bitstream 312, thereby achieving higher compression efficiency. Each test performed by the conversion skip control module 346 increases the complexity of the video encoder 114, and therefore it is desirable to reduce the number of cases for which the conversion skip module 346 performs the test to those for which the advantage of selecting the conversion skip outweighs the cost of performing the test. For example, this can be achieved by restricting the conversion skip to specific transform sizes and block types, such as only 4x4 transforms for intra-predicted blocks (as described further below) in the emerging high-performance video coding (HEVC) standard. The conversion skipping functionality is especially useful for encoding arrays of 360 residual sampling elements that contain a large amount of ‘high-frequency’ information. High frequency information is typically present in frame data 310 containing many sharp edges, such as where alphanumeric characters are included in frame data 310. Other frame data sources 310, such as computer-generated graphics, may also contain a significant amount of high-frequency information. The DCT-like transform of the transform module 320 is optimized for frame data 310 containing mainly low-frequency information, such as that obtained from an imaging sensor capturing a natural image. Thus, the presence of the conversion skipping functionality provides a significant increase in coding efficiency for applications that are related to the emerging standard for high-performance video coding (HEVC). For video encoder 114, one drawback of supporting the skip conversion functionality is the need to test two possible modes for the skip conversion flag 386. As discussed below, the conversion skipping functionality is supported for an array of residual bins of 4 × 4 bins and when the array 360 of residual bins corresponds to an intra-prediction block, as described with reference to the intra-frame prediction module 336. However, the conversion skip flag 386 is desirably signaled separately for each color channel, and therefore, a separate test can be performed by the conversion skip control module 346 for each color channel. Separate signaling for each color channel is advantageous since the high-frequency information can be concentrated in one or both color channels, thereby being suitable for skipping the conversion, while the luminance channel can have minimal high-frequency information and, therefore, the advantage of using the conversion. For example, colored text on a colored background will lead to this scenario.

[0067] Применительно к разрабатываемому стандарту высокоэффективного кодирования видео (HEVC), конвертирование в представление в частотной области реализуется при помощи модифицированного дискретного косинусного преобразования (DCT), в котором обычное DCT модифицировано с тем, чтобы реализовываться при помощи сдвигов и сложений. Возможны различные размеры применительно к массиву 360 остаточных элементов дискретизации и коэффициентам 362 преобразования, в соответствии с поддерживаемыми размерами преобразования. В разрабатываемом стандарте высокоэффективного кодирования видео (HEVC), преобразования выполняются над 2D массивами элементов дискретизации с конкретными размерами, такими как 32×32, 16×16, 8×8 и 4×4. Следовательно, можно сказать, что существует предварительно определенный набор размеров преобразования, доступных кодеру 114 видео. Более того, как предзнаменовано выше, набор размеров преобразования может различаться между каналом яркости и каналами цветности. Двумерные преобразования, как правило, выполняются ‘раздельными’, предоставляя возможность реализации в качестве первого набора 1D преобразований, оперирующих над 2D массивом элементов дискретизации в одном направлении (например, по строкам), за которым следует второй набор 1D преобразований, оперирующих над 2D массивом элементов дискретизации, выводимым из первого набора 1D преобразования в другом направлении (например, по столбцам). Преобразования с одинаковой шириной и высотой, как правило, именуются ‘квадратными преобразованиями’. Дополнительно, также возможны преобразования с разными ширинами и высотами и они, в общем, именуются ‘не квадратными преобразованиями’. Оптимизированные реализации преобразований могут объединять одномерные преобразования по строкам и столбцам в конкретных модулях аппаратного или программного обеспечения, таких как модуле 4х4 преобразования или модуле 8х8 преобразования. Преобразования с большими размерностями требуют большего количества схем для реализации, даже несмотря на то, что они могут редко использоваться. Соответственно, в разрабатываемом стандарте высокоэффективного кодирования видео (HEVC) существует максимальный размер преобразования равный 32×32. Комплексный характер реализации преобразования также вносит предпочтение в отношении сокращения количества поддерживаемых не квадратных размеров преобразования, так как они, как правило, будут требовать полностью нового аппаратного обеспечения для реализации, вместо повторного использования существующей логики одномерного преобразования, присутствующей в соответствующих квадратных преобразованиях.[0067] In relation to the emerging high-performance video coding (HEVC) standard, conversion to frequency domain representation is implemented using a modified discrete cosine transform (DCT), in which a conventional DCT is modified to be implemented using shifts and additions. Various sizes are possible with respect to the array 360 of residual sampling elements and transform coefficients 362, in accordance with the supported transform sizes. In the emerging standard for high-performance video coding (HEVC), conversions are performed on 2D arrays of sampling elements with specific sizes, such as 32 × 32, 16 × 16, 8 × 8 and 4 × 4. Therefore, it can be said that there is a predefined set of transform sizes available to video encoder 114. Moreover, as foreshadowed above, a set of transform sizes may vary between a luminance channel and a color channel. Two-dimensional transformations are usually performed 'separate', making it possible to implement as a first set of 1D transformations that operate on a 2D array of discretization elements in one direction (for example, in rows), followed by a second set of 1D transformations that operate on a 2D array of elements discretization output from the first set of 1D transforms in the other direction (for example, in columns). Transformations with the same width and height are usually referred to as ‘square transforms’. Additionally, transformations with different widths and heights are also possible and they are generally referred to as ‘non-square transformations’. Optimized transform implementations can combine one-dimensional transforms in rows and columns in specific hardware or software modules, such as a 4x4 transform module or an 8x4 transform module. Transformations with large dimensions require more schemes to implement, even though they can rarely be used. Accordingly, in the emerging standard for high-performance video coding (HEVC), there is a maximum conversion size of 32 × 32. The complex nature of the transformation implementation also makes it preferable to reduce the number of supported non-square transform sizes, since they will usually require completely new hardware to implement, instead of reusing the existing one-dimensional transformation logic present in the corresponding square transforms.

[0068] Преобразования применяются как к каналам яркости, так и цветности. Существуют отличия между обработкой каналов яркости и цветности в отношении единиц преобразования (TU) и они будут описаны ниже со ссылкой на Фиг. 5A и 5B. Каждое дерево преобразования занимает одну единицу кодирования (CU) и задается в качестве декомпозиции квадродерева единицы кодирования (CU) в иерархию, содержащую одну единицу преобразования (TU) на каждой концевой вершине иерархии дерева (квадродерева) преобразования, при этом каждая единица преобразования (TU) имеет возможность использования преобразований поддерживаемых размеров преобразования. Аналогично блоку дерева кодирования (CTB), необходимо, чтобы вся единица кодирования (CU) занималась одной или более единицами преобразования (TU). На каждом уровне иерархии квадродерева дерева преобразования ‘значение флага кодированного блока’ сигнализирует о возможном наличии преобразования в каждом канале цвета, либо на настоящем уровне иерархии, когда дальнейшие разбиения отсутствуют, либо для сигнализации того, что более низкие уровни иерархии могут содержать по меньшей мере одно преобразование из результирующих единиц преобразования (TU). Когда значение флага кодированного блока равно нулю, для соответствующего канала цвета не выполняется преобразование любых единиц преобразования (TU) дерева преобразования, либо на настоящем иерархическом уровне, либо на более низких иерархических уровнях. Когда значение флага кодированного блока равно нулю, область содержит преобразование, которое должно иметь по меньшей мере один не нулевой остаточный коэффициент. Таким образом, для каждого канала цвета, ноль или более преобразований могут охватывать участок зоны единицы кодирования (CU), варьирующийся от никакого до полной единицы кодирования (CU). Для каждого канала цвета существуют отдельные значения флага кодированного блока. Не требуется чтобы кодировалось каждое значение флага кодированного блока, так как существуют случаи, когда существует только одно возможное значение флага кодированного блока.[0068] The transforms apply to both luminance and chrominance channels. There are differences between luminance and chrominance channel processing with respect to transform units (TUs) and will be described below with reference to FIG. 5A and 5B. Each transformation tree occupies one coding unit (CU) and is defined as a decomposition of the coding unit (CU) quad tree into a hierarchy containing one transformation unit (TU) at each end vertex of the transformation tree (quad tree) hierarchy, with each conversion unit (TU) has the ability to use transforms supported transform sizes. Similar to the coding tree block (CTB), it is necessary that the entire coding unit (CU) is occupied by one or more transform units (TU). At each level of the hierarchy of the quadtree of the transformation tree, the 'encoded block flag value' signals that there may be a conversion in each color channel, either at the current hierarchy level when there are no further partitions, or to signal that lower hierarchy levels may contain at least one Conversion from Resulting Transformation Units (TU). When the flag value of the encoded block is equal to zero, no conversion unit (TU) of the transformation tree is converted for the corresponding color channel, either at the present hierarchical level or at lower hierarchical levels. When the flag value of the encoded block is zero, the region contains a transform that must have at least one non-zero residual coefficient. Thus, for each color channel, zero or more transformations can span a portion of the area of the coding unit (CU), ranging from none to a full coding unit (CU). For each color channel, there are separate flag values for the encoded block. Each flag value of the encoded block is not required to be encoded, as there are cases where there is only one possible flag value of the encoded block.

[0069] Таким образом выходными данными мультиплексора 321 являются одно из следующего: массив 360 остаточных элементов дискретизации или массив 362 коэффициентов преобразования, и просто помечены как массив 363 на Фиг. 3. Массив 363 является входными данными для модуля 322 масштабирования и квантования, где его значения элементов дискретизации масштабируются и квантуются в соответствии с определенным параметром 384 квантования для создания массива 364 остаточных данных. Процесс масштабирования и квантования приводит к потере точности, в зависимости от значения определенного параметра 384 квантования. Более высокое значение определенного параметра 384 квантования приводит к большему количеству информации, которое теряется из остаточных данных. Это увеличивает сжатие, достигаемое кодером 114 видео, ценой сокращения визуального качества вывода из декодера 134 видео. Определенный параметр 384 квантования может быть адаптирован во время кодирования каждого кадра данных 310 кадра, или он может быть фиксированным для участка данных 310 кадра, такого как полный кадр. Также возможны прочие адаптации определенного параметра 384 квантования, как например, квантование разных остаточных коэффициентов с помощью отдельных значений. Массив 364 остаточных данных и определенный параметр 384 квантования берутся в качестве входных данных для модуля 326 обратного масштабирования, который реверсирует масштабирование, выполненное модулем 322 масштабирования и квантования, для создания массивов 366 перемасштабированных данных, которые являются перемасштабированными версиями массива 364 остаточных данных. Разрабатываемый стандарт высокоэффективного кодирования видео (HEVC) также поддерживает режим кодирования ‘без потерь’. Когда используется кодирование без потерь, выполняется обход как модуля 320 преобразования, так и модуля 322 масштабирования и квантования, приводя к тому, что массив 360 остаточного кодирования непосредственно вводится в энтропийный кодер 324. В режиме без потерь, также выполняется обход модуля 326 обратного масштабирования и модуля 328 обратного преобразования. Выбор режима кодирования без потерь (как противоположности обычному режиму ‘с потерями’) кодируется в закодированном битовом потоке 312 посредством энтропийного кодера 324. Логика для реализации обхода применительно к режиму без потерь не иллюстрируется на Фиг. 3. Обход модуля 322 масштабирования и квантования приводит к отсутствию квантования массива 362 остаточных коэффициентов или массива 360 остаточных элементов дискретизации, и строгое представление данных 310 кадра кодируется в закодированном битовом потоке 312 посредством энтропийного кодера 324. Режим кодирования без потерь приводит к низкой эффективности сжатия кодера 114 видео и, вследствие этого, как правило, используется только в приложениях, где крайне желательно кодирование без потерь, как например, в медицинских приложениях.[0069] Thus, the output of multiplexer 321 is one of the following: an array 360 of residual sampling elements or an array 362 of transform coefficients, and are simply labeled as an array 363 in FIG. 3. Array 363 is the input to scaling and quantization module 322, where its sample elements are scaled and quantized in accordance with a specific quantization parameter 384 to create a residual data array 364. The scaling and quantization process leads to a loss of accuracy, depending on the value of a specific quantization parameter 384. A higher value of the determined quantization parameter 384 leads to more information that is lost from the residual data. This increases the compression achieved by video encoder 114, at the cost of reducing the visual quality of output from video decoder 134. The determined quantization parameter 384 may be adapted during the encoding of each frame of frame data 310, or it may be fixed for a portion of frame data 310, such as a full frame. Other adaptations of a certain quantization parameter 384 are also possible, such as quantization of different residual coefficients using separate values. The residual data array 364 and the determined quantization parameter 384 are taken as input to the reverse scaling module 326, which reverses the scaling performed by the scaling and quantization module 322 to create rescaled data arrays 366, which are rescaled versions of the residual data array 364. The high-performance video coding standard (HEVC) under development also supports ‘lossless’ coding mode. When lossless coding is used, both the transform module 320 and the scaling and quantization module 322 are crawled, resulting in the residual coding array 360 being directly inserted into the entropy encoder 324. In lossless mode, crawling of the inverse scaling module 326 is also performed and module 328 inverse transformation. The selection of a lossless coding mode (as opposed to the conventional ‘lossy’ mode) is encoded in the encoded bitstream 312 by an entropy encoder 324. The logic for implementing a bypass with respect to the lossless mode is not illustrated in FIG. 3. Bypassing the scaling and quantization module 322 results in the absence of quantization of the residual coefficient array 362 or the residual sampling array 360, and a strict representation of the frame data 310 is encoded in the encoded bitstream 312 by the entropy encoder 324. The lossless encoding mode results in low encoder compression efficiency 114 videos and, as a result, is usually used only in applications where lossless coding is highly desirable, such as in medical applications.

[0070] Массив 364 остаточных данных, определенный параметр 384 квантования и флаг 386 пропуска преобразования также берутся в качестве входных данных для модуля 324 энтропийного кодера, который кодирует значения массива 364 остаточных данных в закодированном битовом потоке 312 (или ‘битовом потоке видео’). Массив 364 остаточных данных в каждой единице преобразования кодируется в группах, в общем, именуемых ‘субблоками’. Субблоки должны предпочтительно иметь одинаковые размерности независимо от размера преобразования, так как это разрешает повторное использование логики, которая относится к обработке субблока. Остаточные данные в одном субблоке, как правило, именуются ‘группой данных’ (или ‘группой коэффициентов’, даже когда применяется пропуск преобразования и ‘группа коэффициентов’ включает в себя представление в пространственной области вместо представления в частотной области) и для каждой группы данных, как правило, кодируется флаг группы данных для указания того, является ли по меньшей мере одно значение остаточных данных в группе данных не нулевым. В некоторых случаях флаг группы данных может подразумеваться и, следовательно, не кодируется. Флаг кодируется для каждого значения остаточных данных, принадлежащего к группе данных со значением флага группы данных равным единице для указания того, является ли значение остаточных данных не нулевым (‘значимым’) или нулевым (‘незначимым’). Из-за потери точности, проистекающей от модуля 322 масштабирования и квантования, массивы 366 перемасштабированных данных не идентичны исходным значениям в массиве 363. Массивы 366 перемасштабированных данных из модуля 326 обратного масштабирования затем выводятся на модуль 328 обратного преобразования. Модуль 328 обратного преобразования выполняет обратное преобразование из частотной области в пространственную область для создания представления 368 в пространственной области массивов 366 перемасштабированных коэффициентов преобразования, идентичное представлению в пространственной области, которое создается в декодере 134 видео. Мультиплексор 369 выполнен с возможностью дополнения операции мультиплексора 321. Мультиплексор 369 выполнен с возможностью приема каждого из массивов 366 перемасштабированных данных и (преобразованного) представления 368 в пространственной области в качестве входных данных и, под управлением флага 386 пропуска преобразования, выбора одних из входных данных 366 или 368 в качестве входных данных для модуля 342 суммирования.[0070] The residual data array 364, the determined quantization parameter 384, and the conversion skip flag 386 are also taken as input to the entropy encoder module 324, which encodes the values of the residual data array 364 in the encoded bitstream 312 (or видео video bitstream ’). An array of 364 residual data in each transform unit is encoded in groups, collectively referred to as ‘subblocks’. The subunits should preferably have the same dimensions regardless of the size of the transformation, since this allows reuse of logic that relates to the processing of the subunit. Residual data in one subunit is usually referred to as a “data group” (or “coefficient group”, even when a conversion skip is applied and the “coefficient group” includes a spatial representation instead of a frequency domain representation) and for each data group, typically, a data group flag is encoded to indicate whether at least one value of the residual data in the data group is non-zero. In some cases, a data group flag may be implied and therefore not encoded. A flag is encoded for each residual data value belonging to the data group with the data group flag value equal to one to indicate whether the residual data value is non-zero (‘significant’) or zero (‘insignificant’). Due to the loss of accuracy resulting from the scaling and quantization module 322, the rescaled data arrays 366 are not identical to the original values in the 363 array. The rescaled data arrays 366 from the downscaling unit 326 are then output to the inverse transform unit 328. The inverse transform module 328 performs the inverse transform from the frequency domain to the spatial domain to create a spatial representation 368 of the arrays 366 of rescaled transform coefficients identical to the spatial domain representation that is created in the video decoder 134. The multiplexer 369 is configured to complement the operation of the multiplexer 321. The multiplexer 369 is configured to receive each of the arrays 366 of the rescaled data and the (converted) representation 368 in the spatial domain as input data and, under the control of the conversion skip flag 386, select one of the input data 366 or 368 as input to summing module 342.

[0071] Модуль 338 оценки движения создает векторы 374 движения посредством сравнения данных 310 кадра с предыдущими данными кадра из одного или более наборов кадров, хранящихся в модуле 332 буфера кадров, как правило, выполненного в памяти 206. Набор кадров известен как ‘список опорных картинок’. Векторы 374 движения затем вводятся в модуль 334 компенсации движения, который создает единицу 374 предсказания (PU) с взаимным предсказанием посредством фильтрации элементов дискретизации, хранящихся в модуле 332 буфера кадра, учитывая пространственное смещение, извлеченное из векторов 374 движения. Не иллюстрируется на Фиг. 3, но также возможна пересылка векторов 374 движения в качестве элементов синтаксиса к модулю 324 энтропийного кодера для кодирования в закодированном битовом потоке 312. Модуль 336 внутреннего кадрового предсказания создает единицу 378 предсказания (PU) с внутренним предсказанием используя элементы 370 дискретизации, полученные от модуля 342 суммирования, который суммирует единицу 382 предсказания (PU) от модуля 340 мультиплексора и выходные данные в пространственной области мультиплексора 369. Модуль 336 внутреннего кадрового предсказания также создает режим 380 внутреннего предсказания, который отправляется энтропийному кодеру 324 для кодирования в закодированном битовом потоке 312.[0071] The motion estimation module 338 creates motion vectors 374 by comparing frame data 310 with previous frame data from one or more frame sets stored in the frame buffer module 332, typically executed in memory 206. The frame set is known as the “reference picture list” '. The motion vectors 374 are then input to the motion compensation unit 334, which creates a mutual predictive prediction unit (PU) 374 by filtering the bins stored in the frame buffer module 332, taking into account the spatial displacement extracted from the motion vectors 374. Not illustrated in FIG. 3, but it is also possible to send motion vectors 374 as syntax elements to an entropy encoder module 324 for encoding in encoded bitstream 312. The intra prediction unit 336 creates an intra prediction unit (PU) 378 using the sampling elements 370 received from the module 342 an adder that sums the prediction unit (PU) 382 from the multiplexer module 340 and outputs in the spatial domain of the multiplexer 369. The intra-frame prediction module 336 also creates t intra prediction mode 380, which is sent to the entropy encoder 324 for encoding in the encoded bitstream 312.

[0072] Единицы предсказания (PU) могут быть сгенерированы используя способ либо внутреннего предсказания, либо взаимного предсказания. Режимы внутреннего предсказания используют элементы дискретизации смежные с единицей предсказания (PU), которые были ранее декодированы (как правило, над и слева от единицы предсказания) для того, чтобы сгенерировать опорные элементы дискретизации в единице предсказания (PU). Возможны различные направления внутреннего предсказания, именуемые ‘режимом внутреннего предсказания’. Способы взаимного предсказания используют вектор движения для ссылки на блок из выбранного опорного кадра. Поскольку блок может иметь любое выравнивание вплоть до с точностью до субэлемента дискретизации, например, в одну восьмую элемента дискретизации, требуется фильтрация для создания блока опорных элементов дискретизации для единицы предсказания (PU). Решение, в отношении того, какой способ использовать, принимается в соответствии с компромиссом по скорости-искажению между требуемой скоростью передачи битов результирующего закодированного битового потока 312 и объемом искажения качества изображения, вносимого способом либо внутреннего предсказания, либо взаимного предсказания. Если используется внутреннее предсказание, один режим внутреннего предсказания выбирается из набора режимов возможного внутреннего предсказания, также в соответствии с компромиссом по скорости-искажению. Модуль 340 мультиплексора выбирает либо опорные элементы 378 дискретизации с внутренним предсказанием от модуля 336 внутреннего кадрового предсказания, либо единицу 376 предсказания (PU) с взаимным предсказанием от модуля 334 компенсации движения, в зависимости от решения, принятого алгоритмом скорости-искажения. Модуль 342 суммирования создает сумму 370, которая вводится в модуль 330 фильтра устранения блочности. Модуль 330 фильтра устранения блочности выполняет фильтрацию по границам блока, создавая элементы 372 дискретизации с устраненной блочностью, которые записываются в модуль 332 буфера кадров, выполненный в памяти 206. Модуль 332 буфера кадров является буфером достаточной емкости для удержания данных из одного или более прошлых кадров для будущего обращения как части списка опорных картинок.[0072] Prediction units (PUs) may be generated using either the intra prediction method or the inter prediction method. The intra-prediction modes use the bins adjacent to the prediction unit (PU) that were previously decoded (typically above and to the left of the prediction unit) in order to generate reference bins in the prediction unit (PU). Various directions of intra prediction, referred to as ‘intra prediction mode’, are possible. Mutual prediction methods use a motion vector to refer to a block from a selected reference frame. Since a block can have any alignment up to an accuracy of a sub-sampling element, for example, in one-eighth of a sampling element, filtering is required to create a block of reference sampling elements for a prediction unit (PU). The decision as to which method to use is made in accordance with a speed-distortion trade-off between the required bit rate of the resulting encoded bitstream 312 and the amount of image quality distortion introduced by either intra prediction or mutual prediction. If intra prediction is used, one intra prediction mode is selected from a set of possible intra prediction modes, also in accordance with a speed-distortion tradeoff. The multiplexer module 340 selects either intra-prediction reference bins 378 from the intra-frame prediction module 336 or a cross-prediction unit (PU) 376 from the motion compensation module 334, depending on the decision made by the rate-distortion algorithm. Summing module 342 creates a sum 370 that is input to deblocking filter module 330. The deblocking filter module 330 performs filtering by block boundaries, creating the deblocked sampling elements 372, which are written to the frame buffer module 332 made in the memory 206. The frame buffer module 332 is a buffer of sufficient capacity to hold data from one or more past frames for future reference as part of the reference picture list.

[0073] Применительно к разрабатываемому стандарту высокоэффективного кодирования видео (HEVC), закодированный битовый поток 312, созданный энтропийным кодером 324, разграничивается в единицах уровня сетевой абстракции (NAL). Как правило, каждый слайс кадра содержится в одной единице NAL. Энтропийный кодер 324 кодирует остаточный массив 364, режим 380 внутреннего предсказания, векторы движения и прочие параметры, собирательно именуемые ‘элементы синтаксиса’, в закодированном битовом потоке 312 посредством выполнения алгоритма контекстно-зависимого адаптивного бинарного арифметического кодирования (CABAC). Элементы синтаксиса группируются вместе в ‘структуры синтаксиса’, причем эти группировки могут содержать рекурсию для описания иерархических структур. В дополнение к значениям порядковых числительных, таким как режим внутреннего предсказания, или целочисленным значениям, таким как вектор движения, элементы синтаксиса также включают в себя флаги, такие как те, чтобы указывать разбиение квадродерева. Модуль 338 оценки движения и модуль 334 компенсации движения оперируют над векторами 374 движения, с точностью в 1/8 элемента дискретизации яркости, обеспечивая точное моделирование движения между кадрами в данных 310 кадра.[0073] In relation to the emerging high-performance video coding (HEVC) standard, the encoded bitstream 312 created by the entropy encoder 324 is delimited in units of the network abstraction layer (NAL). Typically, each frame slice is contained in one NAL unit. Entropy encoder 324 encodes a residual array 364, intra prediction mode 380, motion vectors, and other parameters collectively referred to as “syntax elements” in encoded bitstream 312 by executing a context-sensitive adaptive binary arithmetic coding (CABAC) algorithm. Syntax elements are grouped together into ‘syntax structures’, and these groups may contain recursion to describe hierarchical structures. In addition to ordinal values, such as intra prediction mode, or integer values, such as a motion vector, syntax elements also include flags, such as those to indicate a split quad tree. The motion estimation module 338 and the motion compensation module 334 operate on the motion vectors 374 with an accuracy of 1/8 of the brightness sampling element, providing accurate simulation of the motion between frames in frame data 310.

[0074] Несмотря на то, что декодер 134 видео с Фиг. 4 описывается со ссылкой на конвейер декодирования видео по стандарту высокоэффективного кодирования видео (HEVC), стадии обработки, выполняемые модулями 420-434, являются общими для других кодеков видео, которые используют энтропийное кодирование, таких как H.264/MPEG-4 AVC, MPEG-2 и VC-1. Закодированная видео информация также может быть считана из памяти 206, накопителя 210 на жестком диске, CD-ROM, диска Blu-ray™ или другого считываемого компьютером запоминающего носителя информации. В качестве альтернативы, закодированная видеоинформация может быть принята от внешнего источника, такого как сервер, соединенного с сетью 220 связи или радиочастотным приемником.[0074] Although the video decoder 134 of FIG. 4 is described with reference to a high-performance video coding (HEVC) video decoding pipeline, processing steps performed by modules 420-434 are common to other video codecs that use entropy coding, such as H.264 / MPEG-4 AVC, MPEG -2 and VC-1. The encoded video information may also be read from memory 206, a hard disk drive 210, a CD-ROM, a Blu-ray ™ disc, or other computer-readable storage medium. Alternatively, the encoded video information may be received from an external source, such as a server, connected to a communications network 220 or radio frequency receiver.

[0075] Как видно на Фиг. 4, принятые видеоданные, такие как закодированный битовый поток 312, вводятся в декодер 134 видео. Закодированный битовый поток 312 может быть считан из памяти 206, накопителя 210 на жестком диске, CD-ROM, диска Blu-ray™ или другого считываемого компьютером запоминающего носителя информации. В качестве альтернативы, закодированный битовый поток 312 может быть принят от внешнего источника, такого как сервер, соединенного с сетью 220 связи или радиочастотным приемником. Закодированный битовый поток 312 содержит закодированные элементы синтаксиса, представляющие собой захваченные данные кадра, которые должны быть декодированы.[0075] As seen in FIG. 4, received video data, such as encoded bitstream 312, is input to video decoder 134. The encoded bitstream 312 may be read from memory 206, a hard disk drive 210, a CD-ROM, a Blu-ray ™ disc, or other computer-readable storage medium. Alternatively, encoded bitstream 312 may be received from an external source, such as a server, connected to a communications network 220 or radio frequency receiver. The encoded bitstream 312 contains encoded syntax elements representing captured frame data that must be decoded.

[0076] Закодированный битовый поток 312 является входными данными для модуля 420 энтропийного декодера, который извлекает элементы синтаксиса из закодированного битового потока 312 и пересылает значения элементов синтаксиса к другим блокам в декодере 134 видео. Модуль 420 энтропийного декодера применяет алгоритм контекстно-зависимого адаптивного бинарного арифметического кодирования (CABAC) для декодирования элементов синтаксиса из закодированного битового потока 312. Декодированные элементы синтаксиса используются для восстановления параметров в декодере 134 видео. Параметры включают в себя ноль или более из следующего: массив 450 остаточных данных, векторы 452 движения, режим 454 предсказания и флаг 468 пропуска преобразования. Массив 450 остаточных данных пересылается модулю 421 обратного масштабирования, векторы 452 движения пересылаются модулю 434 компенсации движения, и режима 454 предсказания пересылается модулю 426 внутреннего кадрового предсказания и мультиплексору 428. Модуль 421 обратного масштабирования выполняет обратное масштабирование над остаточными данными для создания воссозданных данных 455. Когда флаг 468 пропуска преобразования равен нулю, модуль 421 обратного масштабирования выводит воссозданные данные 455 на модуль 422 обратного преобразования. Модуль 422 обратного преобразования применяет ‘обратное преобразование’ для конвертирования (или ‘декодирования’) воссозданных данных, которые в данном случае являются коэффициентами преобразования, из представления в частотной области в представление в пространственной области, выводя массив 456 остаточных элементов дискретизации через модуль 423 мультиплексора. Когда значение флага 468 пропуска преобразования равно единице, воссозданные данные 455, которые в данном случае находятся в пространственной области, выводятся в качестве массива 456 остаточных элементов дискретизации через модуль 423 мультиплексора. Модуль 422 обратного преобразования выполняет ту же операцию, что и модуль 328 обратного преобразования. Модуль 422 обратного преобразования, вследствие этого, должен быть выполнен с возможностью предоставления предварительно определенного набора размеров преобразования, требуемых для декодирования закодированного битового потока 312, который совместим с разрабатываемым стандартом высокоэффективного кодирования видео (HEVC). Когда сигнализация в закодированном битовом потоке 312 указывает на то, что был использован режим без потерь, декодер 134 видео выполнен с возможностью обхода модуля 421 обратного масштабирования и модуля 422 обратного преобразования (не иллюстрируется на Фиг. 4), что приводит к тому, что массив 450 остаточных данных непосредственно вводится в модуль 424 суммирования.[0076] The encoded bitstream 312 is input to an entropy decoder module 420 that extracts syntax elements from the encoded bitstream 312 and transfers the values of the syntax elements to other blocks in the video decoder 134. Entropy decoder module 420 employs a context-sensitive adaptive binary arithmetic coding (CABAC) algorithm to decode syntax elements from encoded bitstream 312. Decoded syntax elements are used to reconstruct parameters in video decoder 134. Parameters include zero or more of the following: residual data array 450, motion vectors 452, prediction mode 454, and transform skip flag 468. The residual data array 450 is sent to the backscaling unit 421, the motion vectors 452 are sent to the motion compensation unit 434, and the prediction mode 454 is sent to the intra-frame prediction unit 426 and the multiplexer 428. The backscaling unit 421 backscales the residual data to create recreated data 455. When the conversion skip flag 468 is zero, the inverse scaling unit 421 outputs the recreated data 455 to the inverse transforming unit 422. The inverse transform module 422 uses ‘inverse transform’ to convert (or ‘decode’) the reconstructed data, which in this case are transform coefficients, from the frequency domain representation to the spatial domain representation, outputting an array of 456 residual sampling elements through the multiplexer module 423. When the value of the conversion skip flag 468 is one, the reconstructed data 455, which in this case is in the spatial domain, is output as an array 456 of residual sampling elements through the multiplexer module 423. The inverse transform module 422 performs the same operation as the inverse transform module 328. The inverse transform module 422, therefore, must be configured to provide a predetermined set of transform sizes required to decode the encoded bitstream 312, which is compatible with the emerging high-performance video encoding (HEVC) standard. When the signaling in the encoded bitstream 312 indicates that a lossless mode has been used, the video decoder 134 is configured to bypass the inverse scaling unit 421 and the inverse transform unit 422 (not illustrated in FIG. 4), resulting in an array 450 residual data is directly input to summing unit 424.

[0077] Модуль 434 компенсации движения использует векторы 452 движения от модуля 420 энтропийного декодера, объединенные с данными 460 опорного кадра от блока 432 буфера кадров, выполненного в памяти 206, для создания единицы 462 предсказания (PU) с взаимным предсказанием для единицы предсказания (PU), являющейся предсказанием выходных декодированных данных кадра. Когда режим 454 предсказания указывает на то, что текущая единица предсказания была закодирована при помощи внутреннего предсказания, модуль 426 внутреннего кадрового предсказания создает единицу 464 предсказания (PU) с внутренним предсказанием для единицы предсказания (PU), используя элементы дискретизации, пространственно соседние с единицей предсказания (PU), и направление предсказания, также обеспечиваемое режимом 454 предсказания. Пространственно соседние элементы дискретизации получаются из суммы 458, выводимой из модуля 424 суммирования. Модуль 428 мультиплексора выбирает единицу 464 предсказания (PU) с внутренним предсказанием или единицу 462 предсказания (PU) с взаимным предсказанием для единицы 466 предсказания (PU), в зависимости от текущего режима 454 предсказания. Единица 466 предсказания (PU), которая выводится из модуля 428 мультиплексора, складывается с массивом 456 остаточных элементов дискретизации из модуля 422 обратного масштабирования и преобразования посредством модуля 424 суммирования для создания суммы 458, которая затем вводится в каждый из модулей: модуль 430 фильтра устранения блочности и модуль 426 внутреннего кадрового предсказания. Модуль 430 фильтра устранения блочности выполняет фильтрацию по границам блока данных, таким как границы единицы преобразования (TU), для сглаживания видимых артефактов. Выходные данные модуля 430 фильтра устранения блочности записываются в модуль 432 буфера кадров, выполненный в памяти 206. Модуль 432 буфера кадров обеспечивает достаточное хранилище для удержания одного или более декодированных кадров для обращения в будущем. Декодированные кадры 412 также выводятся из модуля 432 буфера кадров на устройство отображения, такое как устройство 136 отображения.[0077] The motion compensation module 434 uses motion vectors 452 from an entropy decoder module 420 combined with reference frame data 460 from a frame buffer unit 432 made in memory 206 to create a mutual predictive prediction unit (PU) 462 for a prediction unit (PU ), which is the prediction of the output decoded frame data. When prediction mode 454 indicates that the current prediction unit has been encoded using intra prediction, intra prediction unit 426 creates intra prediction unit (PU) 464 for intra prediction unit (PU) using sampling elements spatially adjacent to the prediction unit (PU), and a prediction direction also provided by prediction mode 454. Spatially adjacent bins are obtained from the sum 458 output from the summing unit 424. Multiplexer module 428 selects an intra-prediction prediction unit (PU) 464 or an inter-prediction prediction unit (PU) 462 for the prediction unit (PU) 466, depending on the current prediction mode 454. The prediction unit (PU) 466, which is output from the multiplexer module 428, is added to the array 456 of residual sampling elements from the inverse scaling and conversion module 422 by means of the summing module 424 to create a sum 458, which is then input into each of the modules: deblocking filter module 430 and an intra-frame prediction module 426. The deblocking filter module 430 filters by the boundaries of the data block, such as transform unit (TU) boundaries, to smooth out visible artifacts. The output of the deblocking filter module 430 is written to a frame buffer module 432 made in the memory 206. The frame buffer module 432 provides sufficient storage to hold one or more decoded frames for future reference. The decoded frames 412 are also output from the frame buffer module 432 to a display device, such as a display device 136.

[0078] Фиг. 5A и 5B каждая показывают сетки элементов дискретизации участка 500 кадра и участка 510 кадра, закодированного при помощи 4:2:0 и формата цветности 4:2:2 соответственно. Формат цветности указывается в качестве параметра конфигурации кодеру 114 видео и кодер 114 видео кодирует элемент синтаксиса ‘chroma_format_idc’ в закодированном битовом потоке 312, который указывает формат цветности. Декодер 134 видео декодирует элемент синтаксиса ‘chroma_format_idc’ из закодированного битового потока 312 для определения используемого формата цветности. Например, когда используется 4:2:0 формат цветности, значение chroma_format_idc равно единице, когда используется 4:2:2 формат цветности, значение chroma_format_idc равно двум, а когда используется 4:4:4 формат цветности, значение chroma_format_idc равно трем. На Фиг. 5A и 5B, местоположения элементов дискретизации яркости, такое как местоположение 501 элемента дискретизации яркости, иллюстрируются при помощи символов ‘Х’, а местоположения элементов дискретизации цветности, такое как местоположение 502 элемента дискретизации цветности, иллюстрируются при помощи символов ‘O’. Посредством дискретизации участка 500 кадра в указанных точках, получается сетка элементов дискретизации для каждого канала цвета, когда применяется 4:2:0 формат цветности. В каждом местоположении X элемента дискретизации яркости, осуществляется дискретизация канала яркости (‘Y’), а в каждом местоположении O элемента дискретизации цветности, осуществляется дискретизация обоих каналов цветности (‘U’ и ‘V’). Как показано на Фиг. 5A, для каждого местоположения элемента дискретизации цветности, существует 2х2 компоновка местоположений элементов дискретизации яркости. Посредством дискретизации элементов дискретизации яркости в местоположениях элементов дискретизации яркости и элементов дискретизации цветности в местоположениях элементов дискретизации цветности, указанных на участке 510 кадра, получается сетка элементов дискретизации для каждого канала цвета, когда применяется 4:2:2 формат цветности. Точно такое же распределение элементов дискретизации для каналов цвета выполнено для участка 510 кадра, как и для участка 500 кадра. В противоположность участку 500 кадра, на участке 510 кадра существует в два раза больше местоположений элементов дискретизации цветности. На участке 510 кадра местоположения элементов дискретизации цветности совместно располагаются с каждым вторым местоположением элемента дискретизации яркости. Соответственно, на Фиг. 5B, для каждого местоположения цветности, существует компоновка из 2х1 местоположений элементов дискретизации яркости.[0078] FIG. 5A and 5B each show a grid of discretization elements of a frame portion 500 and a frame portion 510 encoded with 4: 2: 0 and a color format of 4: 2: 2, respectively. The color format is indicated as a configuration parameter to the video encoder 114 and the video encoder 114 encodes a syntax element ‘chroma_format_idc’ in the encoded bitstream 312, which indicates the color format. The video decoder 134 decodes the syntax element ‘chroma_format_idc’ from the encoded bitstream 312 to determine the color format used. For example, when a 4: 2: 0 color format is used, the chroma_format_idc value is one, when a 4: 2: 2 color format is used, the chroma_format_idc value is two, and when a 4: 4: 4 color format is used, the chroma_format_idc value is three. In FIG. 5A and 5B, the locations of luminance bins, such as the location 501 of the luma bins, are illustrated with ‘X’ symbols, and the locations of the color bins, such as the location 502 of the bins, are illustrated with ‘O’ characters. By sampling a portion of frame 500 at the indicated points, a grid of sampling elements is obtained for each color channel when a 4: 2: 0 color format is applied. At each location X of the luma sampling element, the luma channel is sampled (‘Y’), and at each location O of the chroma sampling element, both color channels are sampled (‘U’ and ‘V’). As shown in FIG. 5A, for each location of the chroma element, there is a 2x2 arrangement of the locations of the luma elements. By sampling the brightness sampling elements at the locations of the brightness sampling elements and the color sampling elements at the locations of the color sampling elements indicated on the frame portion 510, a grid of sampling elements for each color channel is obtained when the 4: 2: 2 color format is applied. Exactly the same distribution of bins for color channels is made for section 510 of the frame, as for section 500 of the frame. In contrast to the frame portion 500, in the frame portion 510 there are twice as many locations of the color sampling elements. In a portion 510 of the frame, the locations of the color sampling elements are co-located with each second location of the brightness sampling element. Accordingly, in FIG. 5B, for each chroma location, there is a 2x1 arrangement of luma sampling locations.

[0079] Различные допустимые размерности единиц преобразования были описаны выше в единицах элементов дискретизации яркости. Область, охватываемая преобразованием, применяемым к каналу яркости, следовательно, будет иметь такие же размерности, что и размерности единицы преобразования. Так как единицы преобразования также кодируют каналы цветности, применяемое преобразование для каждого канала цветности будет иметь размерности адаптированные в соответствии с конкретным используемым форматом цветности. Например, когда используется 4:2:0 формат цветности, 16×16 единица преобразования (TU) будет использовать 16×16 преобразование для канала яркости, и 8х8 преобразование для каждого канала цветности. Один особый случай заключается в том, что когда 4×4 преобразование используется для канала яркости, отсутствует соответствующее доступное 2х2 преобразование (когда применяется 4:2:0 формат цветности) или доступное 4×2 преобразование (когда применяется 4:2:2 формат цветности), которое может быть использовано для каналов цветности. В данном особом случае, 4×4 преобразование для каждого канала цветности может охватывать область, занимаемую несколькими преобразованиями яркости.[0079] The various allowable dimensions of the conversion units have been described above in units of brightness sampling units. The area covered by the transformation applied to the luminance channel, therefore, will have the same dimensions as the dimensions of the transformation unit. Since conversion units also encode color channels, the applied conversion for each color channel will have dimensions adapted to the particular color format used. For example, when a 4: 2: 0 color format is used, a 16 × 16 transform unit (TU) will use a 16 × 16 transform for the luminance channel, and an 8x8 transform for each chrominance channel. One special case is that when a 4x4 conversion is used for a luminance channel, there is no corresponding available 2x2 conversion (when a 4: 2: 0 color format is applied) or an available 4 × 2 conversion (when a 4: 2: 2 color format is applied ), which can be used for color channels. In this particular case, the 4x4 transformation for each color channel may span the area occupied by several brightness transformations.

[0080] Фиг. 6A является схематическим представлением примерного дерева преобразования единицы 602 кодирования (CU) (изображенной с помощью толстой границы), в блоке 600 дерева кодирования (CTB) кадра. Одно подразделение квадродерева делит блок 600 дерева кодирования (CTB) на четыре 32×32 единицы кодирования (CU), такие как единица 602 кодирования (CU). Примерное дерево преобразования существует в единице 602 кодирования (CU). Примерное дерево кодирования включает в себя несколько подразделений квадродерева, которые приводят к десяти единицам преобразования (TU), пронумерованным, как такая, что на Фиг. 6A, например, единица 604 преобразования #9 (TU). Единицы преобразования #1-#10 охватывают всю единицу 602 кодирования (CU). Каждое подразделение квадродерева пространственно делит область на четыре четверти, что дает четыре более мелких области. Каждая единица преобразования (TU) имеет значение глубины преобразования, соответствующее иерархическому уровню единицы преобразования (TU) в дереве преобразования. Иерархический уровень указывает количество подразделений квадродерева, выполняемых до того, как завершает подразделение квадродерева, что приводит к экземпляру единицы преобразования (TU), который занимает соответствующую область. Например, единица 604 преобразования #9 (TU), занимает одну четвертую зоны единицы 602 кодирования (CU) и, вследствие этого, имеет глубину преобразования равную единице. Каждая единица преобразования (TU) имеет связанный размер (или ‘размер преобразования’), как правило, описываемый размерностями области, содержащей единицу преобразования (TU) по сетке элементов дискретизации яркости. Размер зависит от размера единицы кодирования (CU) и глубины преобразования. Единицы преобразования (TU) с глубиной преобразования равной нулю имеют размер равный размеру соответствующей единицы кодирования (CU). Каждое приращение глубины преобразования приводит к делению пополам размера единиц преобразования (TU), присутствующих в дереве преобразования на заданной глубине преобразования. Так как кадр включает в себя канал яркости и каналы цветности, единица 602 кодирования (CU) занимает область как по сетке элементов дискретизации яркости, так и по сетке элементов дискретизации цветности, и, следовательно, каждая единица преобразования (TU) включает в себя информацию, описывающую как элементы дискретизации яркости по сетке элементов дискретизации яркости, так и элементы дискретизации цветности по сетке элементов дискретизации цветности. Характер информации для каждой единицы преобразования (TU) зависит от стадии обработки кодера 114 видео или декодера 134 видео. На входе модуля 320 преобразования и на выходе модуля 422 обратного масштабирования и преобразования, массив 360 и 456 остаточных элементов дискретизации соответственно содержит информацию для каждой единицы преобразования (TU) в пространственной области. Массив 360 и 456 остаточных элементов дискретизации может быть дополнительно разделен на ‘массив остаточных элементов дискретизации цветности’ и ‘массив остаточных элементов дискретизации яркости’, из-за отличий в обработке между каналом яркости и каналами цветности. На выходе из модуля 322 масштабирования и квантования и на входе модуля 422 обратного масштабирования и преобразования, массив 364 и 450 остаточных данных соответственно содержит информацию для каждой единицы преобразования (TU) в частотной области. Массивы 364 и 450 остаточных данных могут быть дополнительно разделены на ‘массив остаточных данных цветности’ и ‘массив остаточных данных яркости’, из-за отличий в обработке между каналом яркости и каналами цветности.[0080] FIG. 6A is a schematic representation of an example transform tree of a coding unit (CU) 602 (depicted by a thick border) in a frame coding tree (CTB) block 600. One quad-tree division divides the coding tree block (CTB) 600 into four 32 × 32 coding units (CUs), such as coding unit 602 (CUs). An exemplary transform tree exists in coding unit 602 (CU). An exemplary coding tree includes several quad-tree divisions that result in ten transformation units (TUs), numbered such as those in FIG. 6A, for example, conversion unit 604 # 9 (TU). Conversion units # 1 to # 10 span the entire coding unit (CU) 602. Each quad-tree unit spatially divides the area into four quarters, giving four smaller areas. Each transformation unit (TU) has a conversion depth value corresponding to the hierarchical level of a transformation unit (TU) in the transformation tree. The hierarchical level indicates the number of quad-tree divisions that are completed before the quad-tree divisions complete, resulting in a transform unit (TU) instance that spans the corresponding area. For example, conversion unit # 9 (TU) 604 occupies one fourth of the zone of a coding unit (CU) 602 and, therefore, has a conversion depth of one. Each transform unit (TU) has an associated size (or преобразования transform size ’), typically described by the dimensions of the region containing the transform unit (TU) over the grid of luminance sampling elements. The size depends on the size of the coding unit (CU) and the conversion depth. Conversion units (TUs) with a conversion depth of zero are equal to the size of the corresponding coding unit (CU). Each increment of the conversion depth leads to halving the size of the transformation units (TU) present in the transformation tree at a given conversion depth. Since the frame includes a luminance channel and chrominance channels, a coding unit (CU) occupies an area both in the grid of luma sampling elements and in the grid of chroma sampling elements, and therefore, each transform unit (TU) includes information, describing both luma sampling elements on a grid of luma sampling elements and chroma sampling elements on a grid of chroma sampling elements. The nature of the information for each transform unit (TU) depends on the processing stage of the video encoder 114 or video decoder 134. At the input of the transform module 320 and the output of the inverse scaling and transform module 422, the array 360 and 456 of residual sampling elements respectively contains information for each transform unit (TU) in the spatial domain. An array of 360 and 456 residual sampling units can be further divided into ‘an array of residual sampling elements’ and ‘an array of residual sampling elements’, due to differences in processing between the luminance channel and the color channels. At the output of the scaling and quantization module 322 and at the input of the inverse scaling and transform module 422, the residual data array 364 and 450 respectively contains information for each transform unit (TU) in the frequency domain. Arrays 364 and 450 of residual data can be further divided into ‘an array of residual chroma data’ and ‘an array of residual luminance data’, due to differences in processing between the luminance channel and the color channels.

[0081] Фиг. 6B иллюстрирует примерное дерево 630 преобразования, соответствующее примерному дереву преобразования с Фиг. 6A, для канала яркости 32х32 единицы кодирования (CU), содержащей набор единиц преобразования (TU), и занимающей единицу 602 кодирования (CU), которая занимает 32×32 массив элементов дискретизации яркости по сетке элементов дискретизации яркости. Фиг. 7 иллюстрирует структуру 700 данных, которая представляет собой примерное дерево 630 преобразования. На Фиг. 6B, рамки, пронумерованные от 1 до 10, указывают единицы преобразования, присутствующие в области 632 (проиллюстрированной посредством нескольких единиц 640 преобразования (TU)), и каждая рамка содержится в области, которая более не подразделяется (указана с помощью рамки с пунктирной границей).[0081] FIG. 6B illustrates an example transform tree 630 corresponding to the example transform tree of FIG. 6A, for a 32x32 luminance channel, a coding unit (CU) containing a set of transform units (TU), and occupying a coding unit 602 (CU), which occupies a 32 × 32 array of brightness sampling elements over a grid of brightness sampling elements. FIG. 7 illustrates a data structure 700, which is an example transform tree 630. In FIG. 6B, frames numbered 1 to 10 indicate conversion units present in region 632 (illustrated by several transformation units (TU) 640), and each frame is contained in an area that is no longer subdivided (indicated by a dotted border) .

[0082] На Фиг. 6B, рамки, пронумерованные 1 и 9, содержат 16×16 преобразования для канала яркости, рамки, пронумерованные 2, 3 и 8 содержат 8×8 преобразования для канала яркости, а рамки, пронумерованные от 4 до 7, содержат 4×4 преобразования для канала яркости. Соответствующая область (пунктирная рамка) для каждой из этих рамок имеет значение флага кодированного блока равное единице, для указания наличия преобразования.[0082] FIG. 6B, frames numbered 1 and 9 contain 16 × 16 transforms for a luminance channel, frames numbered 2, 3, and 8 contain 8 × 8 transforms for a luminance channel, and frames numbered 4 to 7 contain 4 × 4 transforms for channel brightness. The corresponding area (dashed frame) for each of these frames has a flag value of the encoded block equal to one, to indicate the presence of conversion.

[0083] Наличие или отсутствие преобразования для каждого канала цвета указывается отдельным значением флага кодированного блока, которое используется как при кодировании, так и декодировании битового потока, но которое не обязательно должно передаваться в битовом потоке, как будет рассмотрено ниже. Следовательно, количество массивов 450 остаточных коэффициентов, выводимое из энтропийного декодера 420, зависит от значений флага кодированного блока. Когда отсутствуют значимые коэффициенты (т.е., все коэффициенты равны нулю) в любом канале цвета, количество массивов 450 остаточных данных (коэффициентов), выводимое из энтропийного декодера 420, равно нулю.[0083] The presence or absence of a conversion for each color channel is indicated by a separate flag value of the encoded block, which is used both in encoding and decoding the bitstream, but which does not have to be transmitted in the bitstream, as discussed below. Therefore, the number of arrays 450 of residual coefficients output from the entropy decoder 420 depends on the flag values of the encoded block. When there are no significant coefficients (i.e., all coefficients are zero) in any color channel, the number of arrays 450 of residual data (coefficients) output from the entropy decoder 420 is zero.

[0084] На Фиг. 7, круги представляют собой значения флага разбиения преобразования с указываемым внутри соответствующего круга значением флага разбиения преобразования. На Фиг. 7, треугольники представляют собой значения флага кодированного блока, с указываемым внутри соответствующих треугольников значением флага кодированного блока. Квадраты представляют собой единицы преобразования, при этом каждое преобразование пронумеровано, чтобы согласовываться с нумерацией преобразования, представленной на Фиг. 6B.[0084] FIG. 7, the circles represent the values of the transform split flag with the value of the transform split flag indicated inside the corresponding circle. In FIG. 7, the triangles are the flag values of the encoded block, with the flag value of the encoded block indicated inside the corresponding triangles. The squares are transformation units, with each transformation numbered to match the numbering of the transformation shown in FIG. 6B.

[0085] Самый верхний иерархический уровень примерного дерева 630 преобразования содержит область 632, занимающую 32х32 единицу кодирования (CU). Значение 702 флага разбиения преобразования указывает на то, что область 632 подразделяется на четыре 16х16 области, такие как область 634, тем самым задавая ‘не концевую’ вершину примерного дерева 630 преобразования. Для каждой 16×16 области, дальнейшее значение флага разбиения преобразования, такое как значение 704 флага разбиения преобразования, указывает на то, что соответствующая 16×16 область должна быть дополнительно подразделена на четыре 8х8 области. Например, область 634 далее не подразделяется, как указывается значением 704 флага разбиения преобразования равным нулю, тем самым задается ‘концевая’ вершина примерного дерева 630 преобразования. В противоположность, область 638 дополнительно подразделяется на четыре 4×4 области (как например область 636), как указывается значением 712 флага разбиения преобразования равным единице. Структура рекурсивного разбиения, присутствующая в дереве 630 преобразования, аналогична разбиению квадродерева, присутствующему в блоке дерева кодирования (CTB). Применительно к каналу яркости, в ‘концевых’ вершинах квадродерева, наличие преобразования в единице преобразования (TU) сигнализируется значением флага кодированного блока, например, значение 708 флага кодированного блока равное единице указывает на наличие преобразования 710 в области 634.[0085] The topmost hierarchical level of the exemplary transform tree 630 comprises a region 632 occupying a 32x32 coding unit (CU). The conversion splitting flag value 702 indicates that the area 632 is subdivided into four 16x16 areas, such as the area 634, thereby setting the “non-terminal” vertex of the example transformation tree 630. For each 16 × 16 area, a further transform split flag value, such as a transform split flag value 704, indicates that the corresponding 16 × 16 area should be further subdivided into four 8 × 8 areas. For example, the region 634 is not further subdivided, as indicated by the value of the conversion splitting flag 704 to zero, thereby setting the ‘end’ vertex of the example transformation tree 630. In contrast, region 638 is further subdivided into four 4x4 regions (such as region 636), as indicated by a conversion split flag value 712 of one. The recursive splitting structure present in the transform tree 630 is similar to the quad tree splitting present in the coding tree block (CTB). With respect to the luminance channel, at the ых end ’vertices of the quad tree, the presence of a transformation in a transform unit (TU) is signaled by the flag value of the encoded block, for example, a value of 708 flag of the encoded block equal to one indicates the presence of transform 710 in region 634.

[0086] Так как преобразование может быть использовано для представления остаточных данных в каждой области, областям не разрешено быть меньше чем наименьший поддерживаемый размер преобразования, такой как 4х4 элементы дискретизации яркости для канала яркости. Дополнительно, для областей больше наибольшего доступного размера преобразования, значение флага разбиения преобразования подразумевается равным единице. Например, для дерева преобразования с верхним уровнем в виде 64х64 единицы кодирования, автоматическое подразделение (т.е., не сигнализируемое в закодированном битовом потоке 312) на четыре 32х32 области происходит, когда наибольшим поддерживаемым размером преобразования является 32х32 элементов дискретизации яркости.[0086] Since the transform can be used to represent residual data in each region, regions are not allowed to be smaller than the smallest supported transform size, such as 4x4 luma sampling elements for a luminance channel. Additionally, for areas larger than the largest available transform size, the value of the transform split flag is assumed to be one. For example, for a transform tree with a top level of 64x64 coding units, automatic division (i.e., not signaled in encoded bitstream 312) into four 32x32 regions occurs when the largest supported transform size is 32x32 brightness sampling elements.

[0087] Нижняя правая 16×16 область 642 содержит единицу преобразования (TU) (пронумерована 10 (десять) и заштрихована) с отсутствующим преобразованием для канала яркости и, вследствие этого, имеет соответствующее значение 716 флага кодированного блока равное нулю.[0087] The lower right 16 × 16 region 642 contains a transform unit (TU) (numbered 10 (ten) and shaded) with no transform for the luminance channel and, therefore, has a corresponding encoded block flag value 716 equal to zero.

[0088] Фиг. 6C и 8 иллюстрируют примерное дерево 630 преобразования, соответствующее примерному дереву преобразования с Фиг. 6A, для канала цветности, сконфигурированного для формата цветности 4:2:2, и содержащее набор преобразований для канала цветности, соответствующий дереву 630 преобразования для канала яркости, и представленное структурой 800 данных. Так как иерархия дерева преобразования общая в силу структуры с Фиг. 6A между каналом яркости и каналами цветности, значения флага разбиения преобразования совместно используются между структурами 700 и 800 данных. В противоположность структуре 700 данных, структура 800 данных включает в себя значение флага кодированного блока с каждым значением флага разбиения преобразования равным единице (т.е., на не концевых вершинах дерева преобразования). Например, значение 802 флага кодированного блока равное единице связано с флагом 702 разбиения преобразования. Если значение флага кодированного блока на не концевой вершине дерева преобразования равно нулю, значения флага кодированного блока на вершинах потомках подразумеваются равными нулю (и соответствующие флаги кодированного блока не кодируются в закодированном битовом потоке 312). Значения флага кодированного блока на не концевых областях разрешают завершение кодирования флагов кодированного блока на боле низких уровнях дерева преобразования для каждого канала цветности если, не присутствуют значимые остаточные коэффициенты в любой из областей потомков, даже несмотря на то, что значимые остаточные коэффициенты могут присутствовать в канале цветности. Это общая ситуация для типичных захваченных данных кадра, так как большая часть информации представлена в канале яркости.[0088] FIG. 6C and 8 illustrate an example transform tree 630 corresponding to the example transform tree of FIG. 6A, for a color channel configured for a 4: 2: 2 color format, and comprising a transform set for a color channel corresponding to a transform tree 630 for a luminance channel, and represented by a data structure 800. Since the hierarchy of the transformation tree is common due to the structure of FIG. 6A between the luminance channel and the color channels, conversion splitting flag values are shared between data structures 700 and 800. In contrast to the data structure 700, the data structure 800 includes a coded block flag value with each transform split flag value equal to one (i.e., at non-terminal vertices of the transform tree). For example, a coded block flag value of 802 equal to one is associated with a conversion splitting flag 702. If the flag value of the encoded block at the non-terminal vertex of the transformation tree is zero, the flag values of the encoded block at the vertices of the descendants are assumed to be zero (and the corresponding flags of the encoded block are not encoded in the encoded bitstream 312). The flag values of the encoded block at non-terminal areas allow completion of the encoding of the flags of the encoded block at lower levels of the transformation tree for each color channel if significant residual coefficients are not present in any of the descendant regions, even though significant residual coefficients may be present in the channel chroma. This is a common situation for typical captured frame data, since most of the information is presented in the luminance channel.

[0089] Когда кодер 114 видео и декодер 134 видео сконфигурированы для 4:4:4 формата цветности, область цветности каждого канала цветности любой заданной единицы преобразования (TU) размера, который не является одним из предварительно определенного набора размеров единицы преобразования (TU), имеет размерности идентичные областям яркости заданной единицы преобразования (TU) (т.е., когда не имеет место подразумеваемое разбиение). Когда кодер 114 видео и декодер 134 видео сконфигурированы для 4:4:4 формата цветности, область цветности каждого канала цветности любой заданной единицы преобразования (TU) размера, который является одним из предварительно определенного набора размеров единицы преобразования (TU), имеет размерности меньше чем области яркости заданной единицы преобразования (т.е., когда не имеет место подразумеваемое разбиение).[0089] When the video encoder 114 and the video decoder 134 are configured for a 4: 4: 4 color format, a color region of each color channel of any predetermined transform unit (TU) size that is not one of a predetermined set of transform unit (TU) sizes, has dimensions identical to the brightness regions of a given transformation unit (TU) (i.e., when an implied partition does not occur). When the video encoder 114 and the video decoder 134 are configured for a 4: 4: 4 color format, the color region of each color channel of any given transform unit (TU) size, which is one of a predefined set of transform unit (TU) sizes, has dimensions less than brightness areas of a given transformation unit (i.e., when an implied partition does not occur).

[0090] Когда используется 4:2:2 формат цветности, это приводит к единице 602 кодирования (CU), включающей в себя 16×32 область 662 с Фиг. 6C из элементов дискретизации цветности для каждого канала цветности и, следовательно, занимающей 16×32 область по сетке элементов дискретизации цветности. Фиг. 6C иллюстрирует области по сетке элементов дискретизации цветности, нарисованные как массив элементов дискретизации цветности, при этом каждый элемент дискретизации цветности равноудален по горизонтали и вертикали (в противоположность Фиг. 5B). Из-за использования формата цветности 4:2:2, каждая из областей цветности с Фиг. 6C становится горизонтально сжатой по отношению к соответствующей области яркости с Фиг. 6B. Значение 702 флага разбиения преобразования равное единице делит 16×32 область 662, соответствующую единице 602 кодирования (CU), на четыре 8х16 области, такие как 8×16 область 664. 8×16 область 664 имеет не квадратную форму и также больше по размеру чем другие не квадратные области, иллюстрируемые на Фиг. 6C, такие как 4×8 область 670. Для каждой 8х16 области, значение флага разбиения преобразования, такое как значение 704 флага разбиения преобразования, указывает, должна ли соответствующая 8×16 область быть дополнительно подразделена на четыре меньшие 4×8 области, образом аналогичным разбиению квадродерева, присутствующему в дереве 630 преобразования для массива элементов дискретизации яркости. Верхняя правая 8×16 область 672 дополнительно подразделена на четыре 4×8 области. Значение 804 флага кодированного блока равное единице указывает на то, что каждая из четырех 4×8 областей может содержать значимые остаточные коэффициенты. Флаг кодированного блока для каждой 4×8 области, таким образом, требуется для указания на наличие преобразования для соответствующей области. Из этих четырех 4×8 областей, нижняя левая 4×8 область 674 (заштрихована) содержит единицу преобразования (TU), но не содержит преобразования и, вследствие этого, имеет значение 814 флага кодированного блока равное нулю. Оставшиеся 4×8 области, такие как область 670, каждая имеет преобразование и, вследствие этого, имеет соответствующие значения флага кодированного блока равные единице. Верхняя левая 8×16 область подразделена на две одинакового размера 8×8 области. В противоположность подразделению квадродерева, в закодированном битовом потоке 312 не присутствует соответствующий флаг разбиения преобразования.[0090] When a 4: 2: 2 color format is used, this leads to a coding unit (CU) 602 including a 16 × 32 region 662 of FIG. 6C from chroma sampling elements for each chroma channel and, therefore, occupying a 16 × 32 region along the grid of chroma sampling elements. FIG. 6C illustrates areas on a grid of color sampling elements drawn as an array of color sampling elements, with each color sampling element equidistant horizontally and vertically (as opposed to Fig. 5B). Due to the use of a 4: 2: 2 color format, each of the color areas of FIG. 6C becomes horizontally compressed with respect to the corresponding luminance region of FIG. 6B. A conversion splitting flag value of 702 equal to one divides the 16 × 32 region 662 corresponding to the coding unit 602 (CU) into four 8 × 16 regions, such as the 8 × 16 region 664. The 8 × 16 region 664 is non-square and also larger than other non-square areas illustrated in FIG. 6C, such as a 4 × 8 region 670. For each 8 × 16 region, a transform split flag value, such as a transform split flag value 704, indicates whether the corresponding 8 × 16 region should be further subdivided into four smaller 4 × 8 regions, in the same way the quad tree partition present in the transform tree 630 for the array of luminance sampling elements. The upper right 8 × 16 region 672 is further subdivided into four 4 × 8 regions. A coded block flag value of 804 equal to one indicates that each of the four 4 × 8 regions may contain significant residual coefficients. The flag of the coded block for each 4 × 8 region, therefore, is required to indicate the presence of a transform for the corresponding region. Of these four 4 × 8 regions, the lower left 4 × 8 region 674 (shaded) contains a transform unit (TU) but does not contain a transform and, therefore, has a coded block flag value 814 equal to zero. The remaining 4 × 8 regions, such as region 670, each have a transform and, therefore, has corresponding flag values of the encoded block equal to one. The upper left 8 × 16 region is divided into two equally sized 8 × 8 regions. In contrast to the quad tree division, the corresponding transform split flag is not present in the encoded bitstream 312.

[0091] Разбиение области канала, такого как канал цветности, единицы преобразования (TU) на несколько областей (каждая из которых может иметь преобразование), без присутствия сигнализации в закодированном битовом потоке 312, именуется ‘подразумеваемым разбиением’. Подразумеваемое разбиение исключает потребность в ведении аппаратного обеспечения, поддерживающего не квадратное преобразование для данного случая (8×16). Вместо этого, используются преобразования, такие как первое 8×8 преобразование 666. Так как существует возможность того, что каждая из областей, полученная из подразумеваемого разбиения, содержит всю нулевую остаточную информацию, необходимо указать наличие преобразования в каждой области, получаемой из подразумеваемого разбиения. Соответственно, отдельные значения флага кодированного блока требуются для каждой области, получаемой из подразумеваемого разбиения. В данном случае, значения 806 и 808 флага кодированного блока соответствуют первому 8×8 преобразованию 666 и второму 8х8 преобразованию 668 соответственно. Применительно к единицам преобразования (TU), в которых не имеет место подразумеваемое разбиение, значение флага кодированного блока для каждого канала цветности указывает на наличие или отсутствие преобразования для области, занимаемой единицей преобразования (TU) для канала цветности. Когда подразумеваемое разбиение имеет место, отдельное значение флага кодированного блока (не иллюстрируется на Фиг. 8) требуется для каждой из результирующих областей, тем не менее, реализации могут сохранять значение флага кодированного блока, свойственное для всей единицы преобразования (TU). Отдельное значение флага кодированного блока может подразумеваться как ‘единица’ во всех случаях, или отдельное значение флага кодированного блока может быть определено посредством выполнения логической операции 'ИЛИ’ в отношении значения флага кодированного блока каждой области, получаемой из разбиения. Если отдельное значение флага кодированного блока определяется из значения флага кодированного блока каждой области, получаемой из разбиения, отдельное значение флага кодированного блока может быть закодировано в закодированном битовом потоке 312 посредством энтропийного кодера 324 и декодировано из закодированного битового потока 312 посредством энтропийного декодера 420 в качестве дополнительного флага кодированного блока (не иллюстрируется на Фиг. 9). В таком случае, когда отдельное значение флага кодированного блока равно нулю, значение флага кодированного блока каждой области из разбиения может подразумеваться равным нулю, а когда отдельное значение флага кодированного блока равно единице, флаги кодированного блока для каждой области из разбиения кодируются в закодированном битовом потоке 312 энтропийным кодером 324 и декодируются из закодированного битового потока 312 энтропийным декодером 420.[0091] A partition of a channel region, such as a color channel, transform units (TUs) into several regions (each of which may have a transform), without the presence of signaling in encoded bitstream 312, is referred to as “implied splitting”. Implied partitioning eliminates the need for maintaining hardware that supports non-square transform for this case (8 × 16). Instead, transforms are used, such as the first 8 × 8 transform of 666. Since it is possible that each area obtained from an implied partition contains all zero residual information, it is necessary to indicate the presence of a transformation in each region obtained from an implied partition. Accordingly, separate flag values of the encoded block are required for each region obtained from the implied partition. In this case, the flag values 806 and 808 of the encoded block correspond to the first 8 × 8 transform 666 and the second 8 × 8 transform 668, respectively. For conversion units (TUs) in which there is no implied splitting, the flag value of the coded block for each color channel indicates the presence or absence of conversion for the area occupied by the conversion unit (TU) for the color channel. When an implied splitting takes place, a separate flag value of the encoded block (not illustrated in Fig. 8) is required for each of the resulting areas, however, implementations can retain the flag value of the encoded block, which is typical for the entire transform unit (TU). A single coded block flag value may be implied as ца one ’in all cases, or a single coded block flag value may be determined by performing a logical OR operation with respect to the coded block flag value of each region obtained from the partition. If a single encoded block flag value is determined from a coded block flag value of each region obtained from the partition, a single encoded block flag value can be encoded in encoded bitstream 312 by entropy encoder 324 and decoded from encoded bitstream 312 by entropy decoder 420 as an additional flag encoded block (not illustrated in Fig. 9). In this case, when an individual flag value of the encoded block is equal to zero, the flag value of the encoded block of each region from the partition can be assumed to be zero, and when a separate flag value of the encoded block is equal to one, the flags of the encoded block for each region of the partition are encoded in the encoded bitstream 312 entropy encoder 324 and are decoded from encoded bitstream 312 by entropy decoder 420.

[0092] Нижняя левая 8×16 область 680 16×32 области 662 иллюстрирует подразумеваемое разбиение, где 8×8 преобразование присутствует в верхней 8×8 подразумеваемой области 682, но 8х8 преобразование не присутствует в нижней 8×8 подразумеваемой области 684. Нижний правый 8×16 массив 676 (заштрихован) содержит единицу преобразования (TU), но не содержит преобразование ни в одной квадратной 8×8 области, полученной из подразумеваемого разбиения, и, вследствие этого, имеет значения 810, 812 флага кодированного блока равные нулю.[0092] The lower left 8 × 16 region 680 16 × 32 of region 662 illustrates an implied partition, where an 8 × 8 transform is present in the upper 8 × 8 implied region 682, but an 8x8 transform is not present in the lower 8 × 8 implied region 684. Lower right The 8 × 16 array 676 (shaded) contains the transform unit (TU), but does not contain the conversion in any square 8 × 8 region obtained from the implied partition, and, therefore, has the encoded block flag values 810, 812 equal to zero.

[0093] Наличие двух каналов цветности приводит к дублированию структуры, изображенной на Фиг. 6C, с отдельными значениями флага кодированного блока используемыми для указания наличия преобразования для каждого канала цветности. В данной реализации, разбиение подразумевалось для размеров области применительно к цветности отличных от размера 4×8, приводя к использованию 4×8 прямоугольного преобразования, такого как 4×8 преобразование 816 (содержащееся в области 670), и обеспечивая повторное использование существующих квадратных преобразования в других случаях (например, 8×8, 16×16). Таким образом, можно сказать что существует набор предварительно определенных размеров областей (таких как 8×16 и 16×32), для которых могут быть использованы разбиение на две области, и, следовательно, два преобразования (размеров 8×8 и 16×16). Разные определения предварительно определенного набора размеров областей, для которых происходит подразумеваемое разбиение, также возможно и будет предоставлять возможность использования разного сочетания существующих квадратных преобразования и прямоугольных преобразований. Также применительно к определенным реализациям существует возможность всегда подразумевать разбиение, и в этом случае не вводится прямоугольное преобразование для каналов цвета 4:2:2 цветности. В таком случае, предварительно определенный набор размеров областей, для которых происходит подразумеваемое разбиение, содержит все возможные размеры области цветности (например, 4×8, 8×16 и 16×32 для формата цветности 4:2:2, или 4×4, 8×8, 16×16 и 32×32 для 4:4:4 формата цветности).[0093] The presence of two color channels leads to duplication of the structure depicted in FIG. 6C, with individual encoded block flag values used to indicate the presence of a transform for each chroma channel. In this implementation, a partition was implied for region sizes with respect to color other than 4 × 8, resulting in the use of a 4 × 8 rectangular transform, such as the 4 × 8 transform 816 (contained in region 670), and reusing existing square transforms in other cases (e.g. 8 × 8, 16 × 16). Thus, we can say that there is a set of predefined sizes of regions (such as 8 × 16 and 16 × 32), for which a split into two regions can be used, and, therefore, two transformations (sizes 8 × 8 and 16 × 16) . Different definitions of a predefined set of sizes of regions for which an implied partition occurs is also possible and will provide the possibility of using a different combination of existing square transformations and rectangular transformations. Also, in relation to certain implementations, it is possible to always imply a partition, and in this case a rectangular transformation for color channels 4: 2: 2 is not introduced. In this case, the predefined set of sizes of the regions for which the implied splitting occurs contains all possible sizes of the chroma region (for example, 4 × 8, 8 × 16 and 16 × 32 for the color format 4: 2: 2, or 4 × 4, 8 × 8, 16 × 16 and 32 × 32 for 4: 4: 4 color formats).

[0094] Фиг. 16 является схематичным представлением, показывающим пример ‘не прямоугольного преобразования’ для реализации ‘всегда’ подразумеваемого разбиения для всех возможных размеров областей (4×8, 8×16 и 16×32) для 4:2:2 форматов цветности. Как иллюстрируется на Фиг. 16 с помощью маркировки ‘1’ (один) и ‘2’ (два) для каждой области цветности, получаемой из подразумеваемого разбиения.[0094] FIG. 16 is a schematic view showing an example of ‘non-rectangular transform’ for implementing ‘always’ implied splitting for all possible area sizes (4 × 8, 8 × 16 and 16 × 32) for 4: 2: 2 color formats. As illustrated in FIG. 16 by marking ‘1’ (one) and ‘2’ (two) for each color region obtained from the implied partition.

[0095] Когда используется 4:2:0 формат цветности, подразумеваемое разбиение не имеет места для любой области цветности в единице преобразования (TU), вследствие этого, максимальное количество преобразований для каждого канала цветности всегда равно одному (значение флага кодированного блока для каждого канала цветности управляет тем, происходит ли преобразование цветности).[0095] When a 4: 2: 0 color format is used, an implied partition does not occur for any color region in a transform unit (TU), therefore, the maximum number of conversions for each color channel is always one (the value of the encoded block flag for each channel chroma controls whether chroma conversion occurs).

[0096] Несмотря на то, что кодер 114 видео и декодер 134 видео описываются независимо от отличий между каналами яркости и цветности, отличающиеся сетки элементов дискретизации, получаемые из форматов цветности, неизбежно влекут за собой потребность в отличиях в модулях. Практические реализации могут иметь отдельные ‘маршруты обработки’ для канала яркости и для каналов цветности. Такая реализация, следовательно, может разъединять обработку элементов дискретизации яркости и элементов дискретизации цветности. Так как закодированный битовый поток 312 является одним битовым потоком для каналов яркости и цветности, энтропийный кодер 324 и энтропийный декодер не разъединяются. Дополнительно, один буфер кадров, такой как буфер 332432 кадров, удерживает элементы дискретизации яркости и цветности и, следовательно, не разъединяется. Тем не менее, модули 322-330 и 334-340 и модули 422-430 и 434 могут иметь разъединенные обработки яркости и цветности, позволяя реализациям иметь отдельную логику для яркости и цветности, тем самым, создавая ‘маршрут обработки яркости’ и ‘маршрут обработки цветности’.[0096] Although the video encoder 114 and the video decoder 134 are described regardless of differences between the luminance and chrominance channels, different nets of sampling elements obtained from chroma formats inevitably entail a need for differences in modules. Practical implementations may have separate обработки processing routes ’for the luminance channel and for the color channels. Such an implementation, therefore, can disconnect the processing of luma sampling elements and chroma sampling elements. Since encoded bitstream 312 is one bitstream for luminance and chrominance channels, the entropy encoder 324 and the entropy decoder are not disconnected. Additionally, a single frame buffer, such as a frame buffer 332432, holds luma and chroma sampling elements and, therefore, is not disconnected. However, modules 322-330 and 334-340 and modules 422-430 and 434 can have separate luminance and chrominance processing, allowing implementations to have separate logic for luminance and chrominance, thereby creating a 'luminance processing route' and 'processing route color '.

[0097] Некоторые реализации могут подразумевать разбиение для 16х32 области канала цветности единицы преобразования (TU) на две 16х16 области, но не подразумевают разбиение для случаев 8х16 и 4х8. Такие реализации избегают необходимости введения 32-точечной логики преобразования в маршрут обработки цветности, вместо этого полагаясь на 4, 8 или 16-точечную логику преобразования, хорошо разработанную в данной области техники.[0097] Some implementations may imply a partition for a 16x32 region of a color channel of a transform unit (TU) into two 16x16 regions, but do not imply a partition for cases 8x16 and 4x8. Such implementations avoid the need to introduce a 32-point conversion logic into a color processing route, instead relying on 4, 8, or 16-point conversion logic, well developed in the art.

[0098] Фиг. 9A и 9B иллюстрируют структуру синтаксиса, которая может быть использована для кодирования или иного представления иерархического уровня дерева преобразования. На не концевых вершинах дерева преобразования, структура 900 синтаксиса рекурсивно расширяется в соответствии со структурами данных, такими как структуры 700 и 800 данных, для задания элементов синтаксиса, присутствующих в участке закодированного битового потока 312, соответствующем дереву преобразования. На концевых вершинах дерева преобразования (где не имеет место дальнейшее подразделение в дереве преобразования) структура 930 синтаксиса задает элементы синтаксиса, присутствующие в участке закодированного битового потока 312. Как правило, присутствует одна структура данных для яркости и две структуры данных для цветности, несмотря на то, что возможны дополнительные структуры данных, как например для кодирования альфа-канала или карты глубины. В качестве альтернативы, может быть использовано меньшее число структур данных, как в случае, где одна структура данных совместно используется каналами цветности и существует возможность совместного использования значений флага кодированного блока каналами цветности. Структура 902 синтаксиса не концевой вершины дерева преобразования задает кодирование одного иерархического уровня дерева преобразования, такого как дерево 630 преобразования. Флаг 910 разбиения преобразования кодирует значение флага разбиения преобразования равное единице, такое как значение 702 флага разбиения преобразования. Данное значение указывает на то, что структура 902 синтаксиса не концевой вершины дерева преобразования включает в себя более низкий иерархический уровень, который содержит дополнительные экземпляры структуры 902 синтаксиса не концевой вершины дерева преобразования или структуры 902 синтаксиса концевой вершины дерева преобразования, или ‘вершины потомки’. Флаг 912 кодированного блока кодирует значение 802 флага кодированного блока равное единице для канала цветности ‘U’, а флаг 914 кодированного блока кодирует дополнительное значение флага кодированного блока для канала цветности ‘V’. Если структура 902 синтаксиса не концевой вершины дерева преобразования является задающей верхний уровень иерархии дерева преобразования, тогда присутствуют флаги 912 914 кодированного блока. Если структура 902 синтаксиса не концевой вершины дерева преобразования не является задающей верхний уровень иерархии дерева преобразования, тогда флаги 912 914 кодированного блока присутствуют только если соответствующие флаги кодированного блока на родительском уровне иерархии дерева преобразования присутствуют и имеют значение единицы. Так как в дереве 630 преобразования существует более низкий иерархический уровень (относительно верхнего иерархического уровня), имеет место подразделение квадродерева. Данное подразделение приводит к четырем структурам 916, 918, 920, 922 синтаксиса дерева преобразования (идентифицируемых посредством переменной ‘blkIdx’ (индекс-блока), пронумерованной от нуля до трех), включенным в структуру 902 синтаксиса не концевой вершины дерева преобразования.[0098] FIG. 9A and 9B illustrate a syntax structure that can be used to encode or otherwise represent the hierarchical level of a transform tree. At non-terminal vertices of the transform tree, the syntax structure 900 is recursively expanded in accordance with data structures, such as data structures 700 and 800, to define syntax elements present in a portion of the encoded bitstream 312 corresponding to the transform tree. At the ends of the transform tree (where there is no further division in the transform tree), the syntax structure 930 defines the syntax elements present in the portion of the encoded bitstream 312. As a rule, there is one data structure for luminance and two data structures for chroma, despite that additional data structures are possible, such as for encoding an alpha channel or depth map. Alternatively, fewer data structures may be used, as in the case where one data structure is shared by color channels and it is possible to share the flag values of the encoded block with color channels. The non-end vertex syntax structure of the transform tree 902 defines encoding of one hierarchical level of the transform tree, such as transform tree 630. The conversion splitting flag 910 encodes a conversion splitting flag value of one, such as the conversion splitting flag value 702. This value indicates that the syntax structure 902 of the non-end vertex of the transform tree includes a lower hierarchical level that contains additional instances of the syntax structure 902 of the non-end vertex of the transform tree or the syntax structure 902 of the end vertex of the transform tree, or ‘descendants’. The coded block flag 912 encodes the coded block flag value 802 equal to one for the color channel ‘U’, and the coded block flag 914 encodes the additional coded block flag value for the color channel ‘V’. If the syntax structure 902 of the non-end vertex of the transform tree is the upper level hierarchy of the transform tree, then there are flags 912,914 of the encoded block. If the syntax structure 902 of the non-end vertex of the transform tree does not define the top level of the hierarchy of the transform tree, then the flags of the encoded block 912 914 are present only if the corresponding flags of the encoded block at the parent level of the hierarchy of the transform tree are present and have a value of one. Since in the transformation tree 630 there is a lower hierarchical level (relative to the upper hierarchical level), there is a subdivision of the quad tree. This subdivision leads to four transformation tree syntax structures 916, 918, 920, 922 (identified by the ‘blkIdx’ variable (block index), numbered from zero to three) that are included in the non-end vertex syntax structure 902 of the transformation tree.

[0099] Структура 903 синтаксиса задает кодирование концевой вершины концевой вершины 932 дерева преобразования (т.е., где не имеет место дальнейшее подразделение). Флаг 940 разбиения преобразования кодирует значение флага разбиения преобразования равное нулю, такое как значение 704 флага разбиения преобразования.[0099] The syntax structure 903 defines the encoding of the end vertex of the end vertex 932 of the transform tree (that is, where no further division takes place). The transform splitting flag 940 encodes a transform splitting flag value of zero, such as the transform splitting flag value 704.

[0100] Флаг разбиения преобразования кодируется только если соответствующая область больше минимального размера. Например, область 636 имеет наименьший возможный размер для области из 4×4 элементов дискретизации яркости (соответствующий наименьшему поддерживаемому размеру преобразования яркости), так что значение 714 флага разбиения преобразования подразумевается нулем и флаг разбиения преобразования не кодируется для соответствующей структуры синтаксиса дерева преобразования.[0100] The conversion split flag is only encoded if the corresponding area is larger than the minimum size. For example, region 636 has the smallest possible size for a region of 4 × 4 luma sampling elements (corresponding to the smallest supported luma conversion size), so that the transform split flag value 714 is assumed to be zero and the transform split flag is not encoded for the corresponding transform tree syntax structure.

[0101] Применительно к области 636, остаточные элементы дискретизации цветности преобразуются при помощи 4×8 преобразования цветности, следовательно, не присутствует подразумеваемое разбиение преобразования. Флаги кодированного блока, такие как флаг 942 кодированного блока и флаг 946 кодированного блока, могут присутствовать для сигнализации наличия преобразования для каждого из каналов цветности. Флаг 950 кодированного блока сигнализирует наличие преобразования для канала яркости. Остаточные коэффициенты для каналов яркости и цветности (если присутствуют) присутствуют в структуре 952 синтаксиса единицы преобразования (TU). Если значение флага 950 кодированного блока равно единице, флаг 964 пропуска преобразования яркости и блок 954 остаточных данных яркости, кодирующий либо остаточные коэффициенты для преобразования яркости, либо остаточные элементы дискретизации, когда преобразование пропускается, присутствуют в закодированном битовом потоке 312. Значение флага 964 пропуска преобразования яркости указывает на то, используются (при нормальной операции) или обходятся (при операции пропуска преобразования) модуль 320 преобразования в кодере 114 видео и модуль 422 обратного преобразования в декодере 134 видео. Если значение флага кодированного блока для каждого канала цветности равно единице, соответствующие флаги 966 и 968 пропуска преобразования цветности и остаточные блоки 956 и 960 цветности присутствуют в закодированном битовом потоке 312. Флаг 966 пропуска преобразования сигнализирует режим пропуска преобразования для остаточного блока 956 цветности, а флаг 968 пропуска преобразования сигнализирует режим пропуска преобразования для остаточного блока 960 цветности. Когда не происходит подразумеваемого разбиения преобразования, флаг 944 и 948 кодированного блока и остаточные блоки 958 и 962 цветности отсутствуют в закодированном битовом потоке 312. Когда не происходит подразумеваемого разбиения преобразования, флаг пропуска преобразования для каждого канала цветности, следовательно, сигнализирует режим пропуска преобразования для соответствующего канала цветности во всей области 636.[0101] With respect to region 636, the residual chroma sampling elements are converted using a 4 × 8 chroma conversion, therefore, no implied conversion splitting is present. Coded block flags, such as coded block flag 942 and coded block flag 946, may be present to signal the presence of a transform for each of the color channels. A coded block flag 950 signals the presence of a transform for the luminance channel. Residual coefficients for luminance and chrominance channels (if present) are present in the transform unit (TU) syntax structure 952. If the value of the encoded block flag 950 is equal to one, the luminance conversion skip flag 964 and the luminance residual data unit 954 encoding either the residual coefficients for the luminance conversion or the residual sampling elements when the conversion is skipped are present in the encoded bitstream 312. The value of the mismatch conversion flag 964 brightness indicates whether the conversion module 320 in the video encoder 114 and the rotary module 422 are used (during normal operation) or bypassed (during the conversion skip operation) atnogo conversion to video decoder 134. If the flag value of the encoded block for each color channel is one, the corresponding color conversion skip flags 966 and 968 and residual color blocks 956 and 960 are present in the encoded bitstream 312. The conversion skip flag 966 signals the conversion skip mode for the residual color block 956, and the flag The conversion skip 968 signals the conversion skip mode for the residual color block 960. When an implied splitting of a transform does not occur, the encoded block flag 944 and 948 and color residual blocks 958 and 962 are absent in the encoded bitstream 312. When an implied splitting of a transform does not occur, the transform skip flag for each color channel therefore signals the conversion skip mode for the corresponding color channel in the entire area 636.

[0102] Применительно к области 664, остаточные элементы дискретизации цветности преобразуются при помощи двух 8х8 преобразований цветности, следовательно, присутствует подразумеваемое разбиение преобразования. Флаги 942 и 946 кодированного блока, если присутствуют, сигнализируют наличие 8х8 преобразований для каждого канала цветности первого 8х8 преобразования 666. Флаг 944 кодированного блока и флаг 948 кодированного блока, если присутствуют, сигнализируют наличие 8х8 преобразований для каждого канала цветности второго 8х8 преобразования 668. Если значение флага 944 кодированного блока равно единице, остаточный блок 958 цветности присутствует в закодированном битовом потоке 312. Если значение флага 948 кодированного блока равно единице, остаточный блок 962 цветности присутствует в закодированном битовом потоке 312. Флаг 966 пропуска преобразования сигнализирует режим пропуска преобразования для остаточных блоков 956 и 958 цветности, а флаг 968 пропуска преобразования сигнализирует режим пропуска преобразования для остаточных блоков 960 и 962 цветности. Когда присутствует подразумеваемое разбиение преобразования, флаг пропуска преобразования для каждого канала цветности, следовательно, является сигнализирующим режим пропуска преобразования для соответствующего канала цветности во всей области 664, в соответствии с поведением, когда не присутствует подразумеваемое разбиение преобразования.[0102] With respect to region 664, residual chroma sampling units are converted using two 8x8 color transforms, therefore, an implied partition of the transform is present. Flags 942 and 946 of the encoded block, if present, signal the presence of 8x8 transformations for each color channel of the first 8x8 transform 666. Flag 944 of the encoded block and flag 948 of the encoded block, if present, signal the presence of 8x8 transforms for each color channel of the second 8x8 transform 668. If the value of the flag 944 of the encoded block is one, the residual chroma block 958 is present in the encoded bitstream 312. If the value of the flag 948 of the encoded block is one, the residual block 962 of color a validity value is present in the encoded bitstream 312. The conversion skipping flag 966 signals the conversion skipping mode for the residual color blocks 956 and 958, and the conversion skipping flag 968 signals the conversion skipping mode for the residual color blocks 960 and 962. When an implied transform partition is present, the transform skip flag for each color channel is therefore a signal of the transform skip mode for the corresponding chroma channel in the entire region 664, in accordance with the behavior when the implied transform partition is not present.

[0103] Структура 930 синтаксиса, как иллюстрируется на Фиг. 9B, показывает первое и второе преобразование каждого канала цветности кодируемое смежно для подразумеваемого разбиения преобразования. В качестве альтернативы могут быть использованы прочие компоновки, как например смежное кодирование элементов синтаксиса для каждого цветности, или кодирование элементов синтаксиса для каждого канала цветности чередующихся с другими элементами синтаксиса.[0103] The syntax structure 930, as illustrated in FIG. 9B shows the first and second transforms of each chroma channel encoded adjacent to the implicit splitting transform. Alternatively, other arrangements may be used, such as adjacent coding of syntax elements for each chroma, or coding of syntax elements for each chroma channel alternating with other syntax elements.

[0104] Фиг. 9C, 9D и 9E иллюстрируют альтернативную структуру 9100 синтаксиса, которая может быть использована для кодирования или иного представления иерархического уровня дерева преобразования. На не концевых вершинах дерева преобразования, альтернативная структура 9100 синтаксиса рекурсивно расширяется в соответствии со структурами данных, такими как структуры 700 и 800 данных, для задания элементов синтаксиса присутствующих в участке закодированного битового потока 312, соответствующем дереву преобразования. Экземпляр альтернативной структуры 9100 синтаксиса существует для каждой вершины в дереве преобразования, включая концевые вершины, каждая из которых содержит единицу преобразования (TU). Где происходит ‘подразумеваемое разбиение’ для подразделения единицы преобразования (TU) для каждого канала цветности, структура 9130 синтаксиса задает элементы синтаксиса, присутствующие в участке закодированного битового потока 312 для первой субобласти, получаемой из подразумеваемого разбиения (например, верхняя половина области цветности, когда используется 4:2:2 формат цветности или верхняя левая четверть области цветности, когда используется 4:4:4 формат цветности). Кроме того, структура 9160 синтаксиса задает элементы синтаксиса, присутствующие в участке закодированного битового потока 312 для последующих субобластей, получаемых из подразумеваемого разбиения (например, еще одной субобласти для нижней половины области цветности, когда используется 4:2:2 формат цветности, и оставшихся трех субобластей области цветности, когда используется 4:4:4 формат цветности). Отсылка на ‘первую’ субобласть и ‘последующую’ субобласть (например, вторую и возможно третью и четвертую субобласть) подразумевается в очередности сканирования субобластей области в квадродереве. Очередность сканирования такова, что субобласти пересекаются сначала слева направо, а затем сверху вниз. Как правило, присутствует одна структура данных для яркости и две структуры данных для цветности, несмотря на то, что возможны дополнительные структуры данных, как например для кодирования альфа-канала или карты глубины. В качестве альтернативы, может быть использовано меньшее число структур данных, как например в случае, где одна структура данных совместно используется каналами цветности и существует возможность совместного использования значений флага кодированного блока между каналами цветности. Структура 9102 синтаксиса дерева преобразования задает кодирование одного иерархического уровня дерева преобразования, такого как дерево 630 преобразования.[0104] FIG. 9C, 9D, and 9E illustrate an alternative syntax structure 9100 that can be used to encode or otherwise represent the hierarchical level of a transform tree. At non-terminal vertices of the transform tree, an alternative syntax structure 9100 is recursively expanded in accordance with data structures, such as data structures 700 and 800, to specify syntax elements present in a portion of encoded bitstream 312 corresponding to the transform tree. An instance of an alternative syntax structure 9100 exists for each vertex in the transform tree, including end vertices, each of which contains a transform unit (TU). Where there is an 'implied split' for subdividing a transform unit (TU) for each color channel, syntax structure 9130 defines syntax elements present in a portion of encoded bitstream 312 for the first sub-region obtained from the implied split (e.g., the upper half of the chrominance, when used 4: 2: 2 chroma format or upper left quarter of the chroma area when 4: 4: 4 chroma format is used). In addition, syntax structure 9160 defines syntax elements present in a portion of encoded bitstream 312 for subsequent subregions obtained from an implied partition (e.g., another subdomain for the lower half of the chroma region when the 4: 2: 2 color format is used, and the remaining three subregions of the chroma region when a 4: 4: 4 chroma format is used). Sending to the ‘first’ subregion and ‘the subsequent’ subregion (for example, the second and possibly the third and fourth subregions) is implied in the sequence of scanning subregions of the area in the quad tree. The scanning sequence is such that the subregions intersect first from left to right, and then from top to bottom. Typically, there is one data structure for luminance and two data structures for chroma, although additional data structures are possible, such as for encoding an alpha channel or depth map. Alternatively, fewer data structures may be used, such as in the case where one data structure is shared by color channels and it is possible to share the flag values of an encoded block between color channels. The transform tree syntax structure 9102 defines encoding of one hierarchical level of the transform tree, such as transform tree 630.

[0105] Применительно к экземпляру структуры 9102 синтаксиса дерева преобразования на не концевой вершине дерева преобразования, такого как дерево 630 преобразования, флаг 9110 разбиения преобразования кодирует значение флага разбиения преобразования равное единице, такое как значение 702 флага разбиения преобразования. Данное значение указывает на то, что экземпляр структуры 9102 синтаксиса дерева преобразования включает в себя более низкий иерархический уровень, содержащий дополнительные экземпляры структуры 9102 синтаксиса дерева преобразования или ‘вершины потомки’. Флаг 9112 кодированного блока кодирует значение флага кодированного блока в соответствии с описанием флага 912 кодированного блока. Флаг 9114 кодированного блока кодирует значение флага кодированного блока в соответствии с описанием флага 914 кодированного блока. Так как существует более низкий иерархический уровень в дереве 630 преобразования (относительно верхнего иерархического уровня), имеет место подразделение квадродерева. Данное подразделение приводит к четырем структурам 9116, 9118, 9120, 9122 синтаксиса дерева преобразования (идентифицируемым посредством переменной ‘blkIdx’, пронумерованной от нуля до трех), включенным в структуру 9102 синтаксиса вершины дерева преобразования. Каждая из структур 9116, 9118, 9120, 9122 синтаксиса дерева преобразования является другим экземпляром структуры 9102 синтаксиса дерева преобразования. Флаг 9124 кодированного блока и участок 9126 единицы преобразования яркости, кодирующий либо остаточные коэффициенты для преобразования яркости, либо остаточные элементы дискретизации, когда преобразование пропускается, будут отсутствовать в структуре 9102 синтаксиса дерева преобразования.[0105] With respect to an instance of the transform tree syntax structure 9102 at the non-terminal top of the transform tree, such as transform tree 630, the transform split flag 9110 encodes the transform split flag value of one, such as the transform split flag value 702. This value indicates that an instance of the transform tree syntax structure 9102 includes a lower hierarchical level containing additional instances of the transform tree syntax structure 9102 or ‘descendants’. The coded block flag 9112 encodes the coded block flag value in accordance with the description of the coded block flag 912. The coded block flag 9114 encodes the coded block flag value in accordance with the description of the coded block flag 914. Since there is a lower hierarchical level in the transform tree 630 (relative to the upper hierarchical level), there is a subdivision of the quad tree. This subdivision leads to four transform tree syntax structures 9116, 9118, 9120, 9122 (identified by the variable ‘blkIdx’, numbered from zero to three) that are included in the transform tree top syntax structure 9102. Each of the transform tree syntax structures 9116, 9118, 9120, 9122 is a different instance of the transform tree syntax structure 9102. The encoded block flag 9124 and the luminance conversion unit section 9126, encoding either the residual coefficients for the luminance conversion or the residual sampling elements when the transform is skipped, will be absent from the transform tree syntax structure 9102.

[0106] Реализации также могут компоновать структуру 9102 синтаксиса дерева преобразования так, что флаг 9124 кодированного блока и участок 9126 единицы преобразования яркости (если присутствует) помещаются раньше в структуре 9102 синтаксиса дерева преобразования, как например, между флагом 9114 кодированного блока и структурой 9116 синтаксиса дерева преобразования.[0106] Implementations can also compose the transform tree syntax structure 9102 so that the encoded block flag 9124 and the luminance conversion unit section 9126 (if present) are placed earlier in the transform tree syntax structure 9102, such as between the encoded block flag 9114 and the syntax structure 9116 transformation tree.

[0107] Применительно к экземпляру структуры 9102 синтаксиса дерева преобразования на концевой вершине дерева преобразования, таком как дерево 630 преобразования, флаг 9110 разбиения преобразования кодирует значение флага разбиения преобразования равное нулю, такое как значение 704 флага разбиения преобразования. Экземпляр структуры 9102 синтаксиса дерева преобразования, следовательно, соответствует единице преобразования (TU) в дереве 930 преобразования. Единица преобразования (TU) имеет размер, который определяется в соответствии с единицей кодирования (CU), содержащей единицу преобразования (TU), такой как единица 602 кодирования (CU), и глубиной преобразования. Флаг 9112 кодированного блока кодирует значение флага кодированного блока равное единице для указания того, что любая из областей цветности, получаемая из подразумеваемого разбиения для канала цветности ‘U’, может иметь значение флага кодированного блока равное единице. Если флаг 9112 кодированного блока кодирует значение равное нулю, тогда значение флага кодированного блока для каждой области цветности, получаемой из подразумеваемого разбиения для канала цветности ‘U’, имеет значение флага кодированного блока, подразумеваемое как ноль. Даже когда флаг 9112 кодированного блока кодирует значение равное единице, реализации могут все же кодировать флаг кодированного блока со значение равным нулю для каждой области цветности, получаемой из подразумеваемого разбиения. Вследствие этого, реализации могут опускать флаг 9112 кодированного блока в закодированном битовом потоке 312, вместо всегда подразумеваемого значения флага кодированного блока равного единице для опускаемого флага 9112 кодированного блока. Флаг 9114 кодированного блока кодирует дополнительное значение флага кодированного блока для канала цветности ‘V’ образом аналогичным тому, что используется для флага 9112 кодированного блока. Применительно к размерам единицы преобразования (TU), которые согласуются с теми, для которых происходит подразумеваемое разбиение на четыре области цветности (максимальное количество массивов остаточных коэффициентов цветности составляет четыре), четыре структуры 9116 9118 9120 9122 синтаксиса дерева преобразования (идентифицируемые ‘blkIdx’ от нуля до трех) включаются в структуру 9102 синтаксиса вершины дерева преобразования. Применительно к размерам единицы преобразования (TU), которые согласуются с теми, для которых происходит подразумеваемое разбиение на две области цветности (максимальное количество массивов остаточных коэффициентов цветности составляет два), две структуры синтаксиса дерева преобразования, такие как структуры 9116 9118 синтаксиса дерева преобразования (идентифицируемые ‘blkIdx’ от нуля до единицы) включаются в структуру 9102 синтаксиса вершины дерева преобразования. Каждая из структур 9116 9118 9120 9122 синтаксиса дерева преобразования является экземпляром дерева преобразования для структуры 9132 синтаксиса цветности. Флаг 9124 кодированного блока кодирует значение флага кодированного блока, такое как значение 708 флага кодированного блока, указывающее на наличие отсутствия преобразования для канала яркости единицы преобразования (TU). Участок яркости единицы 9126 преобразования кодирует флаг пропуска преобразования яркости в качестве флага 9127 пропуска преобразования и массив остаточных коэффициентов яркости в качестве остаточных элементов 9128 синтаксиса яркости.[0107] With respect to an instance of the transform tree syntax structure 9102 at the end vertex of the transform tree, such as the transform tree 630, the transform split flag 9110 encodes the transform split flag value of zero, such as the transform split flag value 704. An instance of the transform tree syntax structure 9102 therefore corresponds to a transform unit (TU) in the transform tree 930. A transform unit (TU) has a size that is determined in accordance with a coding unit (CU) containing a transform unit (TU), such as a coding unit (CU) 602, and a transform depth. The coded block flag 9112 encodes a coded block flag value of one to indicate that any of the color areas obtained from the implied partition for the ‘U’ color channel may have a coded block flag value of one. If the encoded block flag 9112 encodes a value of zero, then the encoded block flag value for each color region obtained from the implicit splitting for the color channel ‘U’ has the encoded block flag value implied as zero. Even when the encoded block flag 9112 encodes a value equal to one, implementations can still encode the encoded block flag with a value equal to zero for each color region obtained from the implied partition. Because of this, implementations may omit the encoded block flag 9112 in encoded bitstream 312, instead of the always-implied coded block flag value of one for the omitted encoded block flag 9112. The coded block flag 9114 encodes the additional coded block flag value for the канала V ’color channel in a manner similar to that used for the coded block flag 9112. With respect to transform unit (TU) sizes that are consistent with those for which an implied division into four color regions occurs (the maximum number of arrays of residual chroma coefficients is four), four transform tree syntax structures 9116 9118 9120 9122 (identifiable by 'blkIdx' from zero up to three) vertices of the transform tree are included in the syntax structure 9102. For transform unit (TU) sizes that are consistent with those for which an implied split into two color regions occurs (the maximum number of arrays of residual chroma coefficients is two), two transform tree syntax structures, such as transform tree syntax structures 9116 9118 (identifiable 'blkIdx' from zero to one) are included in the top structure of the transform tree syntax 9102. Each of the transform tree syntax structures 9116 9118 9120 9122 is an instance of a transform tree for the chroma syntax structure 9132. A coded block flag 9124 encodes a coded block flag value, such as a coded block flag value 708, indicating that there is no conversion for a luminance channel of a transform unit (TU). The luminance section of the transform unit 9126 encodes a luminance conversion skip flag as a transform skip flag 9127 and an array of residual luminance factors as residual luminance syntax elements 9128.

[0108] Дерево преобразования для структуры 9132 синтаксиса яркости, существующей только для первой области цветности (или ‘субобласти’), когда имеет место подразумеваемое разбиение, включает в себя сокращенный набор синтаксиса структуры 930 синтаксиса дерева преобразования. Флаг 9142 кодированного блока кодирует значение флага кодированного блока для канала цветности ‘U’ области цветности. Флаг 9144 кодированного блока кодирует значение флага кодированного блока для канала цветности ‘V’ области цветности. Участок цветности единицы 9146 преобразования (TU), кодирует подмножество структуры 952 синтаксиса единицы преобразования (TU). Участок цветности единицы 9146 преобразования (TU) кодирует преобразования цветности, содержащие данные цветности для одного канала цвета. Преобразования цветности кодируются в форме массива остаточных коэффициентов цветности как остаточные элементы 9150 синтаксиса цветности для канала цветности ‘U’, если значение флага 9142 кодированного блока равно единице, и массива остаточных коэффициентов цветности как остаточных элементов 9152 синтаксиса цветности для канала цветности ‘V’, если значение флага 9144 кодированного блока равно единице (собирательно, массивы остаточных коэффициентов для ‘преобразований цветности’). Флаг 9148 пропуска преобразования связан с остаточными элементами 9150 синтаксиса цветности и кодирует значение флага пропуска преобразования для канала цветности ‘U’, для каждой области цветности, получаемой из подразумеваемого разбиения. Флаг 9151 пропуска преобразования связан с остаточными элементами 9152 синтаксиса цветности и кодирует значение флага пропуска преобразования для канала цветности ‘V’, для каждой области цветности, получаемой из подразумеваемого разбиения. Эта связь посредством того, что флаг пропуска преобразования кодируется в структуре синтаксиса ‘остаточного кодирования’, которая включает в себя соответствующие остаточные элементы синтаксиса.[0108] The transform tree for the luminance syntax structure 9132 that exists only for the first color region (or ‘subregion’), when an implied partition occurs, includes a reduced syntax set of the transform tree syntax structure 930. The coded block flag 9142 encodes the coded block flag value for the chroma channel ‘U’ of the chroma region. A coded block flag 9144 encodes a coded block flag value for a color channel ‘V’ of a color domain. The color section of the transform unit (TU) 9146 encodes a subset of the transform unit (TU) syntax structure 952. The color section of the conversion unit 9146 (TU) encodes color transforms containing color data for one color channel. The color transforms are encoded in the form of an array of residual chroma coefficients as residual chroma syntax elements 9150 for the color channel 'U' if the value of flag 9142 of the encoded block is one, and an array of residual chroma coefficients as residual chroma syntax elements 9152 for the chroma channel 'V' if the value of flag 9144 of the encoded block is equal to one (collectively, arrays of residual coefficients for 'color conversions'). The conversion skipping flag 9148 is associated with the residual chroma syntax elements 9150 and encodes the value of the conversion skipping flag for the канала U ’color channel, for each color region obtained from the implied partition. The conversion skipping flag 9151 is associated with the residual color syntax elements 9152 and encodes the value of the conversion skipping flag for the color channel ‘V’, for each color area obtained from the implied partition. This relationship is through the fact that the conversion skip flag is encoded in a ‘residual encoding’ syntax structure that includes the corresponding residual syntax elements.

[0109] Дерево преобразования для структуры 9162 синтаксиса цветности, существующей только для областей цветности отличных от первой области цветности (или ‘субобласти’), когда имеет место подразумеваемое разбиение, включает в себя сокращенный набор синтаксиса структуры 930 синтаксиса дерева преобразования. Флаг 9172 кодированного блока кодирует значение флага кодированного блока для канала цветности ‘U’ области цветности. Флаг 9174 кодированного блока кодирует значение флага кодированного блока для канала цветности ‘V’ области цветности. Участок цветности единицы 9176 преобразования (TU), кодирует подмножество структуры 952 синтаксиса единицы преобразования (TU). Участок яркости единицы 9176 преобразования (TU) кодирует массив остаточных коэффициентов цветности как остаточные элементы 9180 синтаксиса цветности для канала цветности ‘U’, если значение флага 9172 кодированного блока равно единице. Участок цветности единицы 9176 преобразования (TU) кодирует массив остаточных коэффициентов цветности как остаточные элементы 9182 синтаксиса цветности для канала цветности ‘V’, если значение флага 9174 кодированного блока равно единице. Режим пропуска преобразования для области, соответствующей остаточным элементам 9180 синтаксиса цветности, определяется из флага 9148 пропуска преобразования. Режим пропуска преобразования для области, соответствующей области, соответствующей каждому остаточным элементам 9182 синтаксиса цветности, определяется из флага 9151 пропуска преобразования. Реализации могут использовать регистры аппаратного обеспечения, такие как регистры 246, или память 206, для сохранения флага пропуска преобразования из первой области цветности для использования в последующей субобласти(ях).[0109] The transformation tree for a chroma syntax structure 9162 that exists only for chroma regions other than the first chroma region (or ‘subregion’), when an implied partition occurs, includes an abbreviated syntax set of the transform tree syntax structure 930. The coded block flag 9172 encodes the coded block flag value for the chrominance channel ‘U’ of the chroma region. A coded block flag 9174 encodes a coded block flag value for a color channel ‘V’ of a color domain. The color section of the transform unit (TU) 9176 encodes a subset of the transform unit (TU) syntax structure 952. The luminance portion of a transform unit (TU) 9176 encodes an array of residual chroma coefficients as residual chroma syntax elements 9180 for a color channel ‘U’ if the value of flag 9172 of the encoded block is one. The color portion of the transform unit 9176 (TU) encodes an array of residual chroma coefficients as residual chroma syntax elements 9182 for a color channel ‘V’ if the value of flag 9174 of the encoded block is one. The conversion skipping mode for the area corresponding to the residual color syntax elements 9180 is determined from the conversion skipping flag 9148. The conversion skipping mode for the area corresponding to the region corresponding to each residual color syntax elements 9182 is determined from the conversion skipping flag 9151. Implementations may use hardware registers, such as registers 246, or memory 206, to store the skip flag of the transform from the first color region for use in subsequent sub-region (s).

[0110] Структуры 9130 и 9160 синтаксиса, как иллюстрируется на Фиг. 9D и 9E, показывают первый и второй флаг кодированного блока закодированные смежно с последующим первым и вторым массивом остаточных коэффициентов цветности каждого канала цветности для подразумеваемого разбиения преобразования. В качестве альтернативы могут быть использованы другие компоновки, такие как кодирование флага кодированного блока и массива остаточных коэффициентов цветности смежно для каждого канала цветности.[0110] Syntax structures 9130 and 9160, as illustrated in FIG. 9D and 9E, show the first and second flag of the encoded block encoded adjacent to, followed by the first and second array of residual chroma coefficients of each chroma channel for the implicit splitting of the transform. Alternatively, other arrangements may be used, such as encoding the flag of the encoded block and the array of residual chroma coefficients adjacent to each chroma channel.

[0111] Несмотря на то, что подразумеваемое разбиение преобразования иллюстрируется с помощью 8×16 области 664, разбитой на две 8×8 области, альтернативные реализации могут выполнять разбиение для других областей. Например, некоторые реализации могут подразумевать разбиение 16×32 области на две 16×16 области. Такие реализации преимущественно избегают потребности в 32-точечном 1D преобразовании по маршруту обработки цветности. Поскольку 32-точечное 1D преобразование не требуется для маршрута обработки цветности, когда применяется 4:2:0 формат цветности, требование в отношении 32-точечного 1D преобразования полностью удаляется из маршрута обработки цветности. Реализации, которые используют отдельную схему обработки для разъединения каналов яркости и цветности, следовательно, могут получать более низкую стоимость реализации в схеме обработки цветности.[0111] Although the implicit splitting of the transform is illustrated using the 8 × 16 area 664, divided into two 8 × 8 areas, alternative implementations can perform the splitting for other areas. For example, some implementations may involve splitting a 16 × 32 region into two 16 × 16 regions. Such implementations mainly avoid the need for 32-point 1D conversion along the color processing path. Since a 32-point 1D conversion is not required for a color processing route when a 4: 2: 0 color format is applied, the requirement for a 32-point 1D conversion is completely removed from the color processing route. Implementations that use a separate processing scheme to decouple the luminance and color channels, therefore, can receive a lower implementation cost in the color processing scheme.

[0112] 4:4:4 формат цветности существует там, где присутствует одно местоположение элемента дискретизации цветности для каждого местоположения элемента дискретизации яркости. Соответственно, при данном формате, преобразования для канала цветности и канала яркости могут иметь одинаковые размеры. При наибольшем размере преобразования равном 32×32 в маршруте обработки яркости, это потребует ввода 32×32 преобразования в маршрут обработки цветности применительно к разъединенной реализации. Конкретные реализации могут подразумевать разбиение применительно к каждому каналу цветности разбиение 32×32 области на четыре 16×16 области, разрешая повторное использование существующего 16×16 преобразования в маршруте обработке цветности. Поскольку 32×32 преобразование будет использоваться только в маршруте обработки цветности для 4:4:4 формата цветности, подразумевание разбиения для каждого канала цветности для разбиения 32×32 области на четыре 16×16 области позволит удалить 32×32 преобразование из маршрута обработки цветности, уменьшая требуемую схему обработки. Такие реализации будут требовать четыре значения флага кодированного блока для каждого канала цветности, и, следовательно, вплоть до четырех флагов кодированного блока, кодированы в структуре 930 синтаксиса для каждого канала цветности в закодированном битовом потоке 312.[0112] 4: 4: 4 a color format exists where there is one location of a color sampling element for each location of a brightness sampling element. Accordingly, with this format, the transformations for the color channel and the luminance channel can have the same dimensions. With the largest conversion size equal to 32 × 32 in the brightness processing route, this will require entering 32 × 32 conversion into the chroma processing route for a disconnected implementation. Specific implementations may involve splitting for each color channel, splitting a 32 × 32 region into four 16 × 16 regions, allowing reuse of the existing 16 × 16 transform in the color processing path. Since the 32 × 32 transform will be used only in the color processing path for a 4: 4: 4 color format, implying a split for each color channel to divide a 32 × 32 region into four 16 × 16 regions will remove the 32 × 32 transform from the color processing path, reducing the required processing scheme. Such implementations will require four encoded block flag values for each chroma channel, and therefore, up to four encoded block flags, are encoded in the syntax structure 930 for each chroma channel in encoded bitstream 312.

[0113] Реализации, поддерживающие 4:2:2 формат цветности также могут подразумевать разбиение для каждого канала цветности для разбиения 32×16 области на четыре 8×16 области. Такие реализации требуют четыре значения флага кодированного блока для каждого канала цветности, и, следовательно, четыре флага кодированного блока кодированы в структуре 930 синтаксиса для каждого канала цветности в закодированном битовом потоке 312, следовательно, флаг ‘CU3’, ‘CU4’, ‘CV3’ и ‘CV4’ кодированного блока (не иллюстрируется на Фиг. 9B), может быть введен в структуру 952 синтаксиса единицы преобразования (TU). Такие реализации избегают введения 32-точечной логики преобразования в маршрут обработки цветности и, там, где 8×16 области не подразделяются, могут повторно использовать логику 8×16 преобразования, требуемую для единиц преобразования (TU) размера 16×16 (в канале яркости), которые требуют выполнения преобразования над преобразованием размера 8×16 для каналов цветности.[0113] Implementations that support a 4: 2: 2 color format may also include dividing for each color channel to divide a 32 × 16 region into four 8 × 16 regions. Such implementations require four encoded block flag values for each color channel, and therefore, four encoded block flags are encoded in the syntax structure 930 for each color channel in encoded bitstream 312, therefore, the flag is 'CU3', 'CU4', 'CV3' and a 'CV4' encoded block (not illustrated in FIG. 9B) may be introduced into a transform unit (TU) syntax structure 952. Such implementations avoid introducing a 32-point conversion logic into the color processing route and, where 8 × 16 areas are not subdivided, they can reuse the 8 × 16 conversion logic required for 16 × 16 transformation unit (TUs) (in the luminance channel) that require conversion on an 8 × 16 size conversion for color channels.

[0114] Фиг. 10 является принципиальной блок-схемой, показывающей способ 1000 для кодирования единицы преобразования (TU) посредством кодирования структуры 902 синтаксиса не концевой вершины дерева преобразования и структуры 932 синтаксиса концевой вершины дерева преобразования. Способ 1000 описывается со ссылкой на канал цветности единицы преобразования (TU), тем не менее, способ 1000 может быть применен к любому каналу цветности единицы преобразования (TU). Так как структура 902 синтаксиса не концевой вершины дерева преобразования и структура 932 синтаксиса концевой вершины дерева преобразования описывают одну вершину в дереве преобразования, способ 1000 кодирует одну вершину дерева преобразования в закодированном битовом потоке 312. Способ 1000 может быть реализован в аппаратном обеспечении или программном обеспечении, исполняемом на процессоре 205, например. Способ 1000 исходно вызывается для верхнего уровня дерева преобразования и выполнен с возможностью вызова себя самого (рекурсивно) для кодирования вершин потомков дерева преобразования. Этап 1002 определения размера единицы преобразования определяет размер единицы преобразования (TU) в дереве преобразования в соответствии с размером единицы кодирования (CU), которая содержит дерево преобразования, и значением глубины преобразования единицы преобразования (TU). Когда способ 1000 вызывается на верхнем уровне дерева преобразования, значение глубины преобразования устанавливается равным нулю, в противном случае значение глубины преобразования предоставляется родительским экземпляром способа 1000. Значение флага разбиения преобразования, такое как значение 702 флага разбиения преобразования, кодируется в закодированном битовом потоке 312 как флаг 910 разбиения преобразования, если значение глубины преобразования меньше максимально разрешенной глубины преобразования.[0114] FIG. 10 is a schematic flowchart showing a method 1000 for encoding a transform unit (TU) by encoding a non-end vertex syntax syntax structure 902 and a transform tree end syntax 932. Method 1000 is described with reference to a color unit of a transform unit (TU), however, method 1000 can be applied to any color unit of a transform unit (TU). Since the non-end vertex syntax structure of the transform tree 902 and the end tree syntax structure of the transform tree 932 describe one vertex in the transform tree, method 1000 encodes one vertex of the transform tree in encoded bitstream 312. Method 1000 may be implemented in hardware or software, executable on processor 205, for example. The method 1000 is initially called for the top level of the transform tree and is configured to call itself (recursively) to encode the vertices of the descendants of the transform tree. Step 1002 determining the size of the conversion unit determines the size of the conversion unit (TU) in the conversion tree in accordance with the size of the coding unit (CU) that contains the conversion tree, and the conversion depth value of the conversion unit (TU). When method 1000 is invoked at the top level of the transform tree, the transform depth value is set to zero; otherwise, the transform depth value is provided by the parent instance of method 1000. The value of the transform split flag, such as the transform split flag value 702, is encoded in encoded bitstream 312 as a flag 910 conversion splitting if the conversion depth value is less than the maximum allowed conversion depth

[0115] Когда значение флага разбиения преобразования равно единице, флаги 912 и 914 кодированного блока цветности кодируются для каждого канала цветности только если родительская вершина иерархии дерева преобразования имеет соответствующее значение флага кодированного блока равное единице. Способ 1000 затем вызывает новый экземпляр способа 1000 для каждой вершины потомка (представленной в участке закодированного битового потока 312 посредством структур 916, 918, 920 и 922 синтаксиса дерева преобразования) дерева преобразования. Каждому экземпляру способа 1000, вызванному для вершин потомков, предоставляется значение глубины преобразования равное значению глубины преобразования настоящего экземпляра способа 1000, увеличенному на единицу.[0115] When the value of the conversion split flag is one, the color coded block flags 912 and 914 are encoded for each color channel only if the parent node of the transformation tree hierarchy has a corresponding coded block flag value equal to one. Method 1000 then calls up a new instance of method 1000 for each vertex of the descendant (represented in the encoded bitstream portion 312 by transform tree syntax structures 916, 918, 920, and 922) of the transform tree. Each instance of method 1000 invoked for descendant vertices is provided with a conversion depth value equal to the conversion depth value of the current instance of method 1000 increased by one.

[0116] Когда значение флага разбиения преобразования равно нулю, этап 1004 идентификации максимального количества прямых преобразований определяет максимальное количество (n) преобразований для каждого канала цветности кодируемой области. Когда имеет место подразумеваемое разбиение, это количество n будет равно единицей. Когда используется 4:2:2 формат цветности и сталкиваются с прямоугольной областью канала цветности, такой как 8×16 область 664, и размер области соответствует одному из предварительно определенного набора размеров области (такому как 16×32 и 8×16), имеет место подразумеваемое разбиение и максимальное количество преобразований будет равно двум (в противном случае количество преобразований будет равно одному). В противном случае (размер области не соответствует одному из предварительно определенного набора размеров области) максимальное количество преобразований будет равно одному. Например, если 4×8 не является одним из предварительно определенного набора размеров области, тогда максимальное количество преобразований будет равно одному. Когда используется 4:4:4 формат цветности и размером области, с которым сталкиваются является одним из предварительно определенного набора размеров области (таким как 32×32 область), имеет место подразумеваемое разбиение и максимальное количество преобразований будет равно четырем. В противном случае (размер области не является одним из предварительно определенного набора размеров области) максимальное количество будет равно одному. Например, если 8×8 не является одним из предварительно определенного набора размеров области, тогда максимальное количество преобразований будет равно одному. Несмотря на то, что предварительно определенный набор размеров области включает в себя 8×16, возможен другой предварительно определенный набор размеров области, такой, как только 16×32, когда используется 4:2:2 формат цветности или 32×32, когда используется 4:4:4 формат цветности.[0116] When the value of the transform split flag is zero, the step 1004 of identifying the maximum number of direct transforms determines the maximum number (n) of transforms for each color channel of the encoded area. When an implied partition takes place, this number n will be equal to one. When a 4: 2: 2 color format is used and they encounter a rectangular region of the color channel, such as an 8 × 16 region 664, and the size of the region corresponds to one of a predefined set of region sizes (such as 16 × 32 and 8 × 16), the implied partition and the maximum number of conversions will be equal to two (otherwise the number of transformations will be equal to one). Otherwise (the size of the region does not correspond to one of the predefined set of sizes of the region), the maximum number of transformations will be equal to one. For example, if 4 × 8 is not one of a predefined set of area sizes, then the maximum number of transformations will be one. When the 4: 4: 4 format is used, the color format and size of the area that is encountered is one of a predefined set of area sizes (such as the 32 × 32 area), an implied splitting takes place and the maximum number of transformations will be four. Otherwise (the area size is not one of a predefined set of area sizes) the maximum number will be equal to one. For example, if 8 × 8 is not one of a predefined set of area sizes, then the maximum number of transformations will be one. Although a predefined set of area sizes includes 8 × 16, another predefined set of area sizes is possible, such as only 16 × 32 when using a 4: 2: 2 color format or 32 × 32 when using 4 : 4: 4 color format.

[0117] Для каждого канала цветности, если родительская вершина имела значение флага кодированного блока равное единице, тогда для каждого из n, флаг кодированного блока кодируется в закодированном битовом потоке 312. Например, когда количество преобразований равно двум, флаги 942 и 944 кодированного блока указывают на наличие преобразования для каждой из двух областей, подразумеваемых посредством разбиения. Этап 1006 выбора прямого преобразования выбирает прямое преобразование из предварительно определенного набора прямых преобразований, для каждого из максимального количества преобразований, на основании размера единицы преобразования (TU), который в свою очередь зависит от глубины преобразования, и, следовательно, относится к иерархическому уровню единицы преобразования в наибольшей единице кодирования. Когда глубина преобразования равна нулю, размер единицы преобразования (TU) равен размеру единицы кодирования (CU). Для каждого приращения глубины преобразования, размер единицы преобразования (TU) делится пополам. Применительно к 32×32 размеру единицы кодирования (CU), глубине преобразования равной нулю и использованию формата цветности 4:2:2, размер единицы преобразования (TU), следовательно, будет 32×32, а размер преобразования для цветности, следовательно, будет 16×32. Например, когда максимальное количество преобразований равно двум и размер области для цветности равен 16×32, тогда 16×16 прямое преобразование выбирается для каждой из 16×16 областей для цветности, полученных в результате подразумеваемого разбиения.[0117] For each color channel, if the parent vertex had a coded block flag value equal to one, then for each of n, the coded block flag is encoded in encoded bitstream 312. For example, when the number of conversions is two, coded block flags 942 and 944 indicate for the presence of a transformation for each of the two areas implied by the partition. The direct conversion selection step 1006 selects the direct transformation from a predefined set of direct transformations, for each of the maximum number of transformations, based on the size of the transform unit (TU), which in turn depends on the depth of the transform, and therefore relates to the hierarchical level of the transform unit in the largest coding unit. When the conversion depth is zero, the size of the transformation unit (TU) is equal to the size of the coding unit (CU). For each increment of transform depth, the transform unit size (TU) is halved. For a 32 × 32 coding unit (CU) size, a conversion depth of zero, and using a 4: 2: 2 color format, the conversion unit (TU) size will therefore be 32 × 32, and the conversion size for chroma will therefore be 16 × 32. For example, when the maximum number of transformations is two and the size of the region for chroma is 16 × 32, then a 16 × 16 direct transformation is selected for each of the 16 × 16 regions for chroma obtained as a result of the implicit partition.

[0118] Этап 1008 применения прямого преобразования выполняет прямое преобразование для каждого из максимального количества преобразований по соответствующей области, которая имеет значение флага кодированного блока равное единице. Этап 1008 кодирования массивов остаточных элементов дискретизации цветности, как правило, выполняется модулем 320 преобразования. Это приводит к конвертации каждого массива остаточных элементов дискретизации цветности (представления в пространственной области) в массив остаточных коэффициентов цветности (представление в частотной области).[0118] Step 1008 of applying the direct transform performs a direct transform for each of the maximum number of transformations in the corresponding region, which has a flag value of the encoded block equal to one. A step 1008 of encoding arrays of residual chroma samples is typically performed by the transform module 320. This leads to the conversion of each array of residual chroma sampling elements (representations in the spatial domain) into an array of residual chroma coefficients (representations in the frequency domain).

[0119] Этап 1010 кодирования массивов остаточных коэффициентов цветности кодирует массив остаточных коэффициентов цветности для каждого из максимального количества областей преобразования каждого канала цветности со значением флага кодированного блока равным единице в закодированный битовый поток 312. Количество массивов остаточных коэффициентов цветности, кодируемых для заданной единицы преобразования для заданного канала цветности, зависит от значения флага кодированного блока каждого преобразования и, следовательно, будет варьироваться от нуля до (в большинстве) максимального количества преобразований. Например, когда количество преобразований равно двум и оба канала цветности имеют значения флага кодированного блока равные единице для каждого из значений счетчика, тогда остаточные блоки 956, 958, 960 и 962 цветности кодируются в закодированном битовом потоке. Если значение флага кодированного блока для каждого преобразования для заданного канала цветности равно нулю, тогда остаточный блок цветности не кодируется в закодированном битовом потоке для канала цветности. Этап 1010 кодирования массива остаточных коэффициентов цветности, как правило, выполняется посредством энтропийного кодера 324.[0119] Step 1010 of encoding the arrays of residual chroma coefficients encodes an array of residual chroma coefficients for each of the maximum number of transform areas of each chroma channel with the flag value of the encoded block equal to one in the encoded bitstream 312. The number of arrays of residual chroma coefficients encoded for a given conversion unit for of a given color channel, depends on the flag value of the encoded block of each transform and, therefore, will vary range from zero to (in most) the maximum number of conversions. For example, when the number of conversions is two and both chroma channels have a coded block flag value equal to one for each of the counter values, then the residual chroma blocks 956, 958, 960 and 962 are encoded in the encoded bitstream. If the flag value of the encoded block for each transform for a given chroma channel is zero, then the residual chroma block is not encoded in the encoded bitstream for the chroma channel. An encoding step 1010 of an array of residual chroma coefficients is typically performed by an entropy encoder 324.

[0120] Фиг. 11 является принципиальной блок-схемой, показывающей способ 1100 для декодирования единицы преобразования (TU) посредством декодирования структуры 902 синтаксиса не концевой вершины дерева преобразования и структуры 932 синтаксиса концевой вершины дерева преобразования. Способ 1100 описывается со ссылкой на канал цветности единицы преобразования (TU), тем не менее, способ 1100 может быть применен к любому каналу цветности единицы преобразования (TU). Так как структура 902 синтаксиса не концевой вершины дерева преобразования и структура 932 синтаксиса концевой вершины дерева преобразования описывает одну вершину в дереве преобразования, способ 1100 декодирует одну вершину дерева преобразования из закодированного битового потока 312. Способ 1100 может быть выполнен в соответствующем аппаратном обеспечении или альтернативно в программном обеспечении, например, исполняемом процессором 205. Способ 1100 исходно вызывается для верхнего уровня дерева преобразования и, выполнен с возможностью, вызова себя самого (рекурсивно) для декодирования вершин потомков дерева преобразования. Этап 1102 определения размера единицы преобразования (TU) определяет размер единицы преобразования (TU) образом идентичным этапу 1002 определения размера единицы преобразования. Этап 1102 определения размера единицы преобразования определяет размер единицы преобразования (TU) в дереве преобразования в соответствии с размером единицы кодирования (CU), которая содержит дерево преобразования, и значением глубины преобразования единицы преобразования (TU). Когда способ 1100 вызывается на верхнем уровне дерева преобразования, значение глубины преобразования устанавливается равным нулю, в противном случае значение глубины преобразования предоставляется родительским экземпляром способа 1100. Значение флага разбиения преобразования, такое как значение 702 флага разбиения преобразования, декодируется из закодированного битового потока 312 в качестве флага 910 разбиения преобразования, если значение глубины преобразования меньше максимальной разрешенной глубины преобразования.[0120] FIG. 11 is a schematic flowchart showing a method 1100 for decoding a transform unit (TU) by decoding a non-end syntax structure of a transform tree and syntax structure 932 of an end vertex of a transform tree. Method 1100 is described with reference to a color unit of a transform unit (TU), however, method 1100 can be applied to any color unit of a transform unit (TU). Since the syntax structure 902 of the non-end vertex of the transform tree and the syntax structure 932 of the end vertex of the transform tree describes one vertex in the transform tree, method 1100 decodes one vertex of the transform tree from encoded bitstream 312. Method 1100 can be executed in appropriate hardware or alternatively in software, for example, executed by the processor 205. Method 1100 is initially called for the top level of the transformation tree and, configured to, call yourself (recursively) to decode the vertices of the descendants of the transformation tree. The transform unit size (TU) determining step 1102 determines the transform unit (TU) size in a manner identical to the transform unit size determining step 1002. Step 1102 determining the size of the transform unit determines the size of the transform unit (TU) in the transform tree in accordance with the size of the coding unit (CU) that contains the transform tree and the depth value of the transform unit (TU). When method 1100 is invoked at the upper level of the transform tree, the transform depth value is set to zero, otherwise the transform depth value is provided by the parent instance of method 1100. The transform split flag value, such as the transform split flag value 702, is decoded from the encoded bitstream 312 as a conversion splitting flag 910 if the conversion depth value is less than the maximum allowed conversion depth.

[0121] Когда значение флага разбиения преобразования равно единице, флаги 912 и 914 кодированного блока цветности декодируются для каждого канала цветности только если родительская вершина иерархии дерева преобразования имеет соответствующее значение флага кодированного блока равное единице. Способ 1100 затем вызывает новый экземпляр способа 1100 для каждой вершины потомка (представленной в участке закодированного битового потока 312 структурами 916, 918, 920 и 922 синтаксиса дерева преобразования) дерева преобразования. Каждому экземпляру способа 1100, вызванному для вершин потомков, предоставляется значение глубины преобразования равное значению глубины преобразования настоящего экземпляра способа 1100 увеличенному на единицу.[0121] When the value of the conversion split flag is one, the flags of the color coded block 912 and 914 are decoded for each color channel only if the parent node of the transformation tree hierarchy has the corresponding flag value of the coded block equal to one. Method 1100 then calls a new instance of method 1100 for each vertex of the child (represented in the encoded bitstream portion 312 by transform tree syntax structures 916, 918, 920 and 922) of the transform tree. Each instance of method 1100 invoked for descendant vertices is provided with a conversion depth value equal to the conversion depth value of the current instance of method 1100 increased by one.

[0122] Когда значение флага разбиения преобразования равно нулю, этап 1104 идентификации максимального количества обратных преобразований определяет (максимальное) количество (n) преобразований для каждого из по меньшей мере одного массивов остаточных коэффициентов цветности, присутствующих в каждом канале цветности декодируемой области, образом идентичным этапу 1004 идентификации максимального количества (n) прямых преобразований. Когда не имеет место подразумеваемое разбиение, данное количество n будет равно одному. Когда используется 4:2:2 формат цветности и сталкиваются с прямоугольной областью канала цветности, такой как 8×16 область 664, и размер области соответствует одному из предварительно определенного набора размеров областей (такому как 16×32 и 8×16), имеет место подразумеваемое разбиение и максимальное количество преобразований будет равно двум (в противном случае количество преобразований будет равно одному). В противном случае (размер области не соответствует одному из предварительно определенного набора размеров области) максимальное количество преобразований будет равно одному. Например, если 4×8 не является одним из предварительно определенного набора размеров области, тогда максимальное количество преобразований будет равно одному. Когда используется 4:4:4 формат цветности и размер области с которым сталкиваются является одним из предварительно определенного набора размеров области (таким как 32×32 область), имеет место подразумеваемое разбиение и максимальное количество преобразований будет равно четырем. В противном случае (размер области не является одним из предварительно определенного набора размеров области) максимальное количество будет равно одному. Например, если 8×8 не является одним из предварительно определенного набора размеров области, тогда максимальное количество преобразований будет равно одному. Несмотря на то, что предварительно определенный набор размеров области включает в себя 8×16, возможен другой предварительно определенный набор размеров области, такой, как только 16×32, когда используется 4:2:2 формат цветности, или 32×32, когда используется 4:4:4 формат цветности. Для каждого канала цветности, если родительская вершина имела значение флага кодированного блока равное единице, тогда для каждого из (n) преобразований, флаг кодированного блока декодируется в закодированном битовом потоке 312. Например, когда максимальное количество преобразований равно двум, флаги 942 и 944 кодированного блока указывают на наличие преобразования для каждой из двух областей, подразумеваемых посредством разбиения.[0122] When the value of the transform split flag is zero, the step 1104 of identifying the maximum number of inverse transforms determines the (maximum) number (n) transforms for each of the at least one arrays of residual color coefficients present in each color channel of the decoded region in a manner identical to the step 1004 identifying the maximum number (n) of direct conversions. When the implied partition does not take place, the given number n will be equal to one. When a 4: 2: 2 color format is used and they encounter a rectangular region of the color channel, such as an 8 × 16 region 664, and the size of the region corresponds to one of a predefined set of region sizes (such as 16 × 32 and 8 × 16), the implied partition and the maximum number of conversions will be two (otherwise, the number of transformations will be one). Otherwise (the size of the region does not correspond to one of the predefined set of sizes of the region), the maximum number of transformations will be equal to one. For example, if 4 × 8 is not one of a predefined set of area sizes, then the maximum number of transformations will be one. When using a 4: 4: 4 color format and the size of the area that is encountered is one of a predefined set of area sizes (such as a 32 × 32 area), an implied splitting takes place and the maximum number of transformations will be four. Otherwise (the area size is not one of a predefined set of area sizes) the maximum number will be equal to one. For example, if 8 × 8 is not one of a predefined set of area sizes, then the maximum number of transformations will be one. Although the predefined set of area sizes includes 8 × 16, another predefined set of area sizes is possible, such as only 16 × 32 when using a 4: 2: 2 color format, or 32 × 32 when using 4: 4: 4 color format. For each color channel, if the parent vertex had a coded block flag equal to one, then for each of the (n) transforms, the coded block flag is decoded in encoded bitstream 312. For example, when the maximum number of conversions is two, coded block flags 942 and 944 indicate the presence of a transformation for each of the two areas implied by the partition.

[0123] Этап 1106 декодирования массивов остаточных коэффициентов цветности декодирует массив остаточных коэффициентов цветности для каждого из максимального количества областей преобразования каждого канала цветности из закодированного битового потока 312 с значением флага кодированного блока равным единице. Количество массивов остаточных коэффициентов, декодируемых для заданной единицы преобразования для заданного канала цветности, зависит от значения флага кодированного блока каждого преобразования и, следовательно, будет варьироваться от нуля до (в большинстве) ‘количества (n) преобразований’. Например, когда количество преобразований равно двум и оба канала цветности имеют флаги кодированного блока равные единице для каждого из значений счетчика, тогда остаточные блоки 956, 958, 960 и 962 цветности декодируются из закодированного битового потока 312. Этап 1106 декодирования массива остаточных коэффициентов цветности, как правило, выполняется посредством энтропийного декодера 420 для каждого массива остаточных коэффициентов цветности со значением флага кодированного блока равным единице.[0123] Step 1106 of decoding the arrays of residual chroma coefficients decodes the array of residual chroma coefficients for each of the maximum number of transform areas of each chroma channel from the encoded bitstream 312 with the flag value of the encoded block equal to one. The number of arrays of residual coefficients decoded for a given transform unit for a given chroma channel depends on the flag value of the encoded block of each transform and, therefore, will vary from zero to (in most) ‘the number of (n) transformations’. For example, when the number of conversions is two and both chroma channels have coded block flags equal to one for each counter value, then chroma residual blocks 956, 958, 960 and 962 are decoded from the encoded bitstream 312. Step 1106 of decoding the array of residual chroma coefficients as typically performed by an entropy decoder 420 for each array of residual chroma with a flag value of the encoded block equal to one.

[0124] Этап 1108 выбора обратного преобразования затем выбирает обратное преобразование из предварительно определенного набора обратных преобразований, для каждого из максимального количества преобразований со значением флага кодированного блока равным единице для каждого канала цветности. Например, когда максимальное количество преобразований равно двум и размер области равен 16×32, а значение флага кодированного блока для каждого из двух преобразований равно единице, тогда 16×16 обратное преобразование выбирается для каждой из 16×16 областей, полученных в результате подразумеваемого разбиения.[0124] Step 1108 select the inverse transform then selects the inverse transform from a predefined set of inverse transforms, for each of the maximum number of transformations with the flag value of the encoded block equal to one for each color channel. For example, when the maximum number of transformations is two and the size of the region is 16 × 32, and the flag value of the encoded block for each of the two transformations is one, then the 16 × 16 inverse transform is selected for each of the 16 × 16 regions resulting from the implied partition.

[0125] Этап 1110 применения обратного преобразования затем выполняет обратное преобразование для каждой из максимального количества областей преобразований по соответствующей области со значением флага кодированного блока равным единице. Это приводит к конвертации каждого массива остаточных коэффициентов цветности (представления в частотной области) в массив остаточных элементов дискретизации цветности (представление в пространственной области), представляющий собой декодированный видео кадр. Этап 1110 применения обратного преобразования, как правило, выполняется посредством модуля 422 обратного масштабирования и преобразования.[0125] Step 1110 applying the inverse transform then performs the inverse transform for each of the maximum number of transform regions in the corresponding region with the flag value of the encoded block equal to one. This leads to the conversion of each array of residual chroma (representation in the frequency domain) into an array of residual chroma sampling elements (representation in the spatial domain), which is a decoded video frame. An inverse transform application step 1110 is typically performed by the inverse scaling and transform module 422.

[0126] Фиг. 12A показывает шаблон 1201 диагонального сканирования, Фиг. 12B показывает шаблон 1202 горизонтального сканирования, а Фиг. 12C показывает шаблон 1203 вертикального сканирования, каждый для 4×8 единицы 1200 преобразования. Эти реализации, которые сканируют 4×8 единицу 1200 преобразования, при помощи иллюстрируемых шаблонов сканирования, обладают свойством того, что остаточные коэффициенты группируются в 4×4 блоки, известные как ‘субблоки’. Флаг ‘группы коэффициентов’, присутствующий в закодированном битовом потоке 312, вследствие этого, может быть использован для указания, для каждого субблока, на наличие по меньшей мере одного значимого (не нулевого) остаточного коэффициента. Применение 4×4 размера субблока для 4×8 преобразования достигает связанности с шаблоном сканирования, присутствующем в других размерах преобразования, где коэффициенты всегда группируются в субблоках.[0126] FIG. 12A shows a diagonal scan pattern 1201, FIG. 12B shows a horizontal scan pattern 1202, and FIG. 12C shows a vertical scan pattern 1203, each for a 4 × 8 conversion unit 1200. These implementations, which scan a 4 × 8 conversion unit 1200 using the illustrated scanning patterns, have the property that residual coefficients are grouped into 4 × 4 blocks, known as ‘subblocks’. The ‘coefficient group’ flag present in the encoded bitstream 312 can therefore be used to indicate, for each subunit, the presence of at least one significant (non-zero) residual coefficient. The application of a 4 × 4 sub-block size for a 4 × 8 transform achieves coherence with the scan pattern present in other transform sizes, where the coefficients are always grouped in sub-blocks.

[0127] Конкретные реализации могут применять флаг группы коэффициентов для сигнализации наличия по меньшей мере одного не нулевого остаточного коэффициента в каждом субблоке. Преимущественно, эти шаблоны сканирования разрешают повторное использование программного обеспечения управления или цифровой схемы, которая обрабатывает остаточные коэффициенты, посредством повторного использования обработки субблока для всех размеров преобразования. Конкретный используемый шаблон сканирования может быть выбран в соответствии с критерием, таким как направление внутреннего предсказания совместно расположенной единицы предсказания (PU). Где преобразование кодирует элементы дискретизации цветности по сетке элементов дискретизации формата цветности 4:2:2, зависимость между направлением внутреннего предсказания и шаблоном сканирования изменяется, так как каждый элемент дискретизации цветности соотносится с не квадратным (2×1) массивом элементов дискретизации яркости, оказывая влияние на ‘направление’ или угол режима внутреннего предсказания. Сканирование показано в ‘обратном’ направлении на Фиг. 12A-12C, заканчиваясь на DC коэффициенте, расположенном в верхнем левом углу единицы преобразования (TU). Кроме того, не требуется, чтобы сканирование начиналось в нижнем правом углу единицы преобразования (TU). Из-за преобладания ненулевых остаточных коэффициентов в верхней левой области единицы преобразования (TU), сканирование может начинаться из ‘позиции последнего значимого коэффициента’ и проходить в обратном направлении вплоть до достижения верхнего левого коэффициента.[0127] Specific implementations may apply a coefficient group flag to signal the presence of at least one non-zero residual coefficient in each subunit. Advantageously, these scanning patterns permit reuse of control software or a digital circuit that processes residual coefficients by reusing subunit processing for all transform sizes. The particular scan pattern used may be selected according to a criterion, such as an intra-prediction direction of a co-located prediction unit (PU). Where the conversion encodes chroma sampling elements over a 4: 2: 2 chroma format sampling element grid, the relationship between the intra prediction direction and the scanning pattern changes, since each chroma sampling element corresponds to a non-square (2 × 1) array of brightness sampling elements, influencing to the 'direction' or angle of the intra prediction mode. The scan is shown in the ‘reverse’ direction in FIG. 12A-12C, ending in a DC coefficient located in the upper left corner of the transform unit (TU). In addition, the scan does not need to start in the lower right corner of the conversion unit (TU). Due to the predominance of non-zero residual coefficients in the upper left region of the transformation unit (TU), scanning can start from the ‘position of the last significant coefficient’ and go in the opposite direction until the upper left coefficient is reached.

[0128] Прочие реализации могут применять одно сканирование для заданной области для кодирования остаточных коэффициентов и затем применять более одного преобразования к этим остаточным коэффициентам. В данном случае, только один флаг кодированного блока используется для области и, вследствие этого, для всех преобразований, охватываемых шаблоном сканирования. Флаг кодированного блока устанавливается равным единице, если по меньшей мере один значимый остаточный коэффициент существует в любом из сканирований. Например, 4×8 шаблоны сканирования на Фиг. 12A-12C могут быть применены для кодирования остаточных коэффициентов двух 4×4 преобразований. Два 4×4 массива остаточных коэффициентов могут быть сцеплены для формирования 4×8 массива, подходящего для шаблона сканирования. Так как одно сканирование выполняется над массивом, одна позиция ‘последнего значимого коэффициента’ кодируется в битовом потоке для шаблона сканирования и одного значения флага кодированного блока достаточно для массива. Свойство уплотнения энергии модифицированного дискретного косинусного преобразования (DCT) дает преимущество в сравнении с другими схемами, такое как чередование коэффициентов каждого квадратного преобразования по маршруту шаблона сканирования в прямоугольном массиве коэффициентов. Это дает преимущество, заключенное в том, что плотность значений остаточных коэффициентов в каждом 4×4 массиве остаточных коэффициентов приблизительно выравнивается в объединенном 4×8 массиве, обеспечивая достижение более высокой эффективности сжатия энтропийным кодером 324, для последующего декодирования энтропийным декодером 420.[0128] Other implementations may apply a single scan for a given area to encode residual coefficients and then apply more than one transform to these residual coefficients. In this case, only one flag of the encoded block is used for the region and, therefore, for all the transformations covered by the scan pattern. The flag of the coded block is set to unity if at least one significant residual coefficient exists in any of the scans. For example, 4 × 8 scan patterns in FIG. 12A-12C may be used to code the residual coefficients of two 4x4 transforms. Two 4 × 4 arrays of residual coefficients can be concatenated to form a 4 × 8 array suitable for the scan pattern. Since one scan is performed on the array, one position ‘the last significant coefficient’ is encoded in the bitstream for the scan pattern and one flag value of the encoded block is enough for the array. The energy compaction property of the modified discrete cosine transform (DCT) provides an advantage over other schemes, such as alternating the coefficients of each square transform along the scan pattern path in a rectangular coefficient array. This gives the advantage that the density of residual coefficients in each 4 × 4 array of residual coefficients is approximately equalized in the combined 4 × 8 array, providing a higher compression efficiency by the entropy encoder 324, for subsequent decoding by the entropy decoder 420.

[0129] Некоторые реализации кодирования каналов цвета по цветности могут использовать первое преобразование для кодирования остаточных элементов дискретизации в местоположениях элементов дискретизации цветности, соответствующих 4:2:0 сетке элементов дискретизации цветности, и второе преобразование для кодирования остаточных элементов дискретизации в дополнительных местоположениях элементов дискретизации цветности, вносимых при 4:2:2 сетке элементов дискретизации цветности, относительно 4:2:0 сетки элементов дискретизации цветности. Такие реализации могут преимущественно использовать упрощенное преобразование для второго преобразования, такое как преобразование Адамара, при этом выходные данные второго преобразования складываются (или иным образом объединяются) с остаточными элементами дискретизации для первого преобразования, чтобы создать остаточные элементы дискретизации для второго преобразования. Преимущественно стадия предварительной обработки, реализующая преобразование, такое как преобразование Адамара, может быть использована для дискретизации сетки элементов дискретизации цветности для формата цветности 4:2:2 в сетку элементов дискретизации цветности для 4:2:0 формата цветности. Такие конфигурации должны передавать дополнительные остаточные коэффициенты из стадии предварительной обработки в качестве побочной информации, причем такой остаток, применяемый к каждой наибольшей единице кодирования (LCU) в случае, когда преобразование предварительной обработки применяется на уровне наибольшей единицы кодирования (LCU).[0129] Some color channel color coding implementations may use the first transform to encode residual bins at the locations of chroma bins corresponding to a 4: 2: 0 grid of color bins, and the second transform to encode residual bins at additional locations of chroma applied at a 4: 2: 2 grid of chroma sampling elements, relative to a 4: 2: 0 grid of chroma sampling elements. Such implementations may advantageously use a simplified transform for the second transform, such as a Hadamard transform, wherein the output of the second transform is added (or otherwise combined) with the residual bins for the first transform to create residual bins for the second transform. Advantageously, a preprocessing step that implements a transform, such as a Hadamard transform, can be used to sample a grid of chroma elements for a 4: 2: 2 chroma format into a grid of chroma bins for a 4: 2: 0 chroma format. Such configurations must transmit additional residual coefficients from the preprocessing stage as collateral information, such a residue applied to each largest coding unit (LCU) in the case where the preprocessing transform is applied at the level of the largest coding unit (LCU).

[0130] Реализации с несколькими преобразованиями для заданной области могут использовать либо одно объединенное сканирование, охватывающее всю область, либо отдельное сканирование для каждого преобразования. Если сканирование для нескольких преобразований объединяется в одно сканирование, тогда только один флаг кодированного блока требуется для каждой сканируемой области. Эти реализации, использующие одно объединенное сканирование, могут достигать более высокого сжатия остаточных коэффициентов посредством чередования остаточных коэффициентов каждого преобразования, такого как чередование на основе коэффициент-за-коэффициентом, для того, чтобы совместно располагать остаточные коэффициенты из каждого преобразования с подобными спектральными свойствами.[0130] Implementations with multiple transforms for a given area can use either a single combined scan covering the entire area, or a separate scan for each transformation. If a scan for several transformations is combined into one scan, then only one flag of the encoded block is required for each scanned area. These implementations using one combined scan can achieve higher compression of the residual coefficients by alternating the residual coefficients of each transform, such as coefficient-by-coefficient interleaving, in order to co-locate the residual coefficients from each transform with similar spectral properties.

[0131] Фиг. 13 является принципиальной блок-схемой, показывающей способ 1300 кодирования единицы преобразования. Способ 1300, выполняемый кодером 114 видео, кодирует канал яркости и канал цветности единицы преобразования. На этапе 1302 определения значения флага пропуска преобразования яркости, модуль 346 управления пропуском преобразования определяет значение флага пропуска преобразования, такого как флаг 964 или 9127 пропуска преобразования, для канала яркости, как правило, посредством тестирования затрат на кодирование массива 360 остаточных элементов дискретизации как в пространственной области (пропуск преобразования выполняется), так и частотной области (пропуск преобразования не выполняется). На этапе 1304 определения значения флага пропуска преобразования цветности, модуль 346 управления пропуском преобразования определяет или иным образом устанавливает значение флага пропуска преобразования, такого как флаг 966 или 9148 пропуска преобразования, для одного из каналов цветности, который будет применен ко всем субобластям, получающимся из подразумеваемого разбиения, и принадлежащих к одному и тому же каналу цветности. Модуль 346 управления пропуском преобразования может применять логику подобную той, что применяется к каналу яркости, тем не менее определение затрат скорости передачи битов должно учитываться для каждого из массивов остаточных элементов дискретизации цветности, получаемых из подразумеваемого разбиения, при определении затрат либо на выполнение пропуска преобразования для всех массивов остаточных элементов дискретизации цветности в канале цветности (или ‘канале цвета’), либо на выполнение пропуска преобразования для ни одного из массивов остаточных элементов дискретизации цветности в канале цветности. Этап 1304 определения значения флага пропуска преобразования цветности повторяется для каждого канала цветности, определяя значения флага пропуска преобразования для других каналов цветности, таких как флаг 968 или 9151 пропуска преобразования. Этап 1306 кодирования преобразования яркости и преобразования цветности кодирует массив остаточных элементов дискретизации яркости в закодированном битовом потоке 312 при помощи энтропийного кодера 324 и кодирует массивы остаточных элементов дискретизации цветности для канала цветности в закодированном битовом потоке 312 при помощи энтропийного кодера 324. Массив остаточных элементов дискретизации яркости определяется в соответствии с флагом пропуска преобразования яркости, либо посредством преобразования в модуле 320 преобразования массива остаточных элементов дискретизации в массив остаточных коэффициентов, либо выполняя обход модуля 320 преобразования, когда пропуск преобразования выполняется кодером 114 видео. Впоследствии, остаточный массив 363 пересылается модулю 322 масштабирования и квантования для создания массива 364 остаточных данных. Когда по меньшей мере одно из значений в массиве 364 остаточных данных не нулевое, значения массива 364 остаточных данных кодируются в закодированном битовом потоке 312 посредством энтропийного кодера 324 (в блоке остаточных данных, таком как блок 954, 956, 958, 960 или 962 остаточных данных) и соответствующий флаг кодированного блока устанавливается равным единице. Массивы остаточных элементов дискретизации цветности определяются подобно массивам остаточных элементов дискретизации яркости, за исключением того, что массивы остаточных элементов дискретизации цветности отличные от первого совместно используют флаг пропуска преобразования с первым массивом остаточных элементов дискретизации цветности. Этап 1306 кодирования массивов остаточных элементов дискретизации цветности повторяется для каждого канала цветности.[0131] FIG. 13 is a schematic flowchart showing a conversion unit encoding method 1300. The method 1300 performed by video encoder 114 encodes a luminance channel and a color channel of a transform unit. In step 1302 of determining the value of the luminance conversion skip flag, the conversion skipping control module 346 determines the value of the conversion skipping flag, such as the conversion skipping flag 964 or 9127, for the luminance channel, as a rule, by testing the costs of encoding an array of 360 residual bins as in spatial area (skipping conversion is performed), and the frequency domain (skipping conversion is not performed). In step 1304 of determining the value of the color conversion skip flag, the conversion skipping control module 346 determines or otherwise sets the value of the conversion skipping flag, such as the conversion skipping flag 966 or 9148, for one of the color channels that will be applied to all subregions resulting from the implied partitions, and belonging to the same color channel. Transmission skip control module 346 can apply logic similar to that applied to the luminance channel, however, the determination of the bit rate costs should be considered for each of the arrays of residual color sampling elements obtained from the implicit partition when determining the costs or to perform the conversion skipping for all arrays of residual chroma sampling elements in the chroma channel (or 'color channel'), or to perform conversion skipping for none of the ma Sivov residual chroma sampling elements in the chrominance channel. The step 1304 for determining the value of the color conversion skipping flag is repeated for each color channel, determining the values of the conversion skipping flag for other color channels, such as the conversion skipping flag 968 or 9151. Luminance conversion and chroma conversion encoding step 1306 encodes an array of residual luma sampling elements in the encoded bitstream 312 using an entropy encoder 324 and encodes arrays of residual chroma sampling elements for a color channel in the encoded bitstream 312 using an entropy encoder 324. An array of luma residual sampling elements determined in accordance with the luminance conversion skip flag, or by conversion in the mass conversion module 320 iva residual sample elements in an array of residual coefficients, or by performing bypass module 320 conversion when conversion is performed pass video encoder 114. Subsequently, the residual array 363 is sent to the scaling and quantization module 322 to create the residual data array 364. When at least one of the values in the residual data array 364 is non-zero, the values of the residual data array 364 are encoded in the encoded bitstream 312 by an entropy encoder 324 (in the residual data block, such as residual data block 954, 956, 958, 960, or 962 residual data ) and the corresponding flag of the encoded block is set to unity. Arrays of residual chroma sampling elements are defined similarly to arrays of residual chroma sampling elements, except that arrays of residual chroma sampling elements other than the first share the conversion skipping flag with the first array of chroma residual sampling elements. Step 1306 of encoding arrays of residual chroma sampling elements is repeated for each chroma channel.

[0132] Фиг. 14 является принципиальной блок-схемой, показывающей способ 400 для декодирования единицы преобразования. Способ 1400, выполняемый декодером 134 видео, декодирует канал яркости и канал цветности единицы преобразования. Этап 1402 определения значения флага пропуска преобразования яркости определяет значение флага пропуска преобразования для канала яркости посредством декодирования флага пропуска преобразования, такого как флаг 964 или 9127 пропуска преобразования, из закодированного битового потока 312 при помощи энтропийного декодера 420. Этап 1404 определения значения флага пропуска преобразования цветности определяет значение флага пропуска преобразования для одного из массивов остаточных элементов дискретизации цветности в канале цветности, которое должно быть применено ко всем массивам остаточных элементов дискретизации цветности в канале цветности и в той же самой единице преобразования (TU). Этап 1404 декодирует флаг пропуска преобразования, такой как флаг 966 или 9148 пропуска преобразования, из закодированного битового потока 312, при помощи энтропийного декодера 420. Реализации, которые связывают флаг пропуска преобразования с первым массивом остаточных элементов дискретизации цветности, избегают потребности в буферизации более ранних массивов остаточных элементов дискретизации перед определением флага пропуска преобразования из более позднего массива остаточных коэффициентов (который затем будет использован для продолжения обработки более раннего массива остаточных элементов дискретизации, тем самым вводя внутреннюю буферизацию). Этап 1404 также может определять флаг пропуска преобразования для дополнительных каналов цветности, как например посредством декодирования флага 968 или 9151 пропуска преобразования из закодированного битового потока 312 при помощи энтропийного декодера 420. Этап 1406 декодирования преобразования яркости и преобразования цветности предписывает энтропийному декодеру 420 декодировать массив остаточных коэффициентов яркости, такой как блок 954 остаточных данных яркости, когда соответствующий флаг кодированного блока равен единице, такой как флаг 950 кодированного блока, и массивы остаточных коэффициентов цветности, связанных с конкретным каналом цветности, таких как массивы 956 и 958 остаточных коэффициентов цветности, когда каждый соответствующий флаг кодированного блока, такой как флаги 942 и 944 кодированного блока, равны единице. При декодировании преобразования яркости, массив остаточных коэффициентов яркости пересылается только через модуль 422 обратного преобразования, если пропуск преобразования не выполняется, в противном случае массив остаточных коэффициентов яркости обходит модуль 422 обратного преобразования. При декодировании преобразования цветности, для каждого массива остаточных элементов дискретизации цветности в единице преобразования, применяется флаг пропуска преобразования, присутствующий в закодированном битовом потоке 312 и связанный с первым массивом остаточных элементов дискретизации яркости.[0132] FIG. 14 is a schematic flowchart showing a method 400 for decoding a transform unit. The method 1400 performed by video decoder 134 decodes a luminance channel and a color channel of a transform unit. Step 1402 for determining the luminance skipping flag value determines the conversion skipping flag for the luminance channel by decoding the conversion skipping flag, such as conversion skipping flag 964 or 9127, from the encoded bitstream 312 using the entropy decoder 420. Step 1404 for determining the color conversion skipping flag value determines the value of the conversion skipping flag for one of the arrays of residual chroma sampling elements in the chroma channel, which lzhno be applied to all arrays residual chroma sampling the chrominance components in the channel and the same conversion unit (TU). Step 1404 decodes a transform skip flag, such as transform skip flag 966 or 9148, from encoded bitstream 312, using an entropy decoder 420. Implementations that associate the transform skip flag with the first array of residual chroma chips avoid the need for buffering earlier arrays residual sampling elements before defining the conversion skip flag from a later array of residual coefficients (which will then be used to continue I processing of an earlier array of residual bins, thereby introducing internal buffering). Step 1404 may also determine a conversion skip flag for additional color channels, such as by decoding a conversion skip flag 968 or 9151 from encoded bitstream 312 using an entropy decoder 420. The brightness conversion and color conversion decoding step 1406 instructs the entropy decoder 420 to decode an array of residual coefficients luminance, such as residual luminance data block 954, when the corresponding flag of the encoded block is one, such as a flag 950 of the encoded block, and arrays of residual chroma coefficients associated with a particular chroma channel, such as arrays 956 and 958 of residual chroma, when each corresponding flag of the encoded block, such as flags of the encoded block 942 and 944, is equal to one. When decoding the luminance conversion, the array of residual luminance coefficients is sent only through the inverse transform module 422 if a skipping conversion is not performed, otherwise the array of residual luminance coefficients bypasses the inverse transform module 422. When decoding a chroma conversion, for each array of residual chroma sampling elements in a transform unit, a transform skip flag is present in the encoded bitstream 312 and associated with the first array of residual luma sampling elements.

[0133] Описание способов 1300 и 1400 относятся к ‘единице преобразования’, которая может содержать несколько массивов остаточных элементов дискретизации цветности для заданного канала цветности, когда имеет место подразумеваемое разбиение. Это согласуется со структурой 930 синтаксиса. Когда используются структуры 9100, 9130 и 9160 синтаксиса, каждая область цветности, полученная из подразумеваемого разбиения, иллюстрируется в качестве отдельной единицы преобразования (TU), помеченной в качестве единиц преобразования цветности (CTU) на Фиг. 9C, 9D и 9E. Для целей способов 1300 и 1400, единицы преобразования цветности (CTU) являются лишь артефактом использования структуры 9100 синтаксиса дерева преобразования для разбиения областей цветности. На Фиг. 9C, пространственная область, занимаемая единицей 9126 преобразования яркости (LTU), может считаться ‘единицей преобразования’ поскольку она занимает точно такую же пространственную область, что и единица 952 преобразования. Единицы 9116 9118 и 9120-9122 преобразования цветности (CTU) (если присутствуют) могут считаться субобластями цветности, полученными из подразумеваемого разбиения.[0133] The description of methods 1300 and 1400 relates to a преобразования conversion unit ’, which may contain several arrays of residual chroma sampling elements for a given chroma channel when an implied partition occurs. This is consistent with syntax structure 930. When syntax structures 9100, 9130, and 9160 are used, each color region obtained from the implied partition is illustrated as a separate transform unit (TU), labeled as color transform unit (CTU) in FIG. 9C, 9D and 9E. For the purposes of methods 1300 and 1400, color conversion units (CTUs) are merely an artifact of using the transform tree syntax structure 9100 to partition color areas. In FIG. 9C, the spatial area occupied by the luminance conversion unit (LTU) 9126 may be considered a преобразования conversion unit ’because it occupies exactly the same spatial area as the conversion unit 952. The color conversion units (CTUs) 9116 9118 and 9120-9122 (if present) can be considered color sub-regions derived from an implied partition.

[0134] Преимущественно, оба способа 1300 и 1400 приводят к одному флагу пропуска преобразования, кодируемому для каждого канала цвета, независимо от наличия или отсутствия операции подразумеваемого разбиения (которая может быть применена, когда используются 4:2:2 и 4:4:4 форматы цветности). Данная характеристика приводит к единообразному характеру при 4:2:0 формате цветности, где один флаг пропуска преобразования присутствует для каждого массива остаточных коэффициентов, и только один массив остаточных коэффициентов присутствует для каждого канала цвета применительно к заданной единице преобразования. Например, 8×8 единица преобразования в 4:2:0 будет иметь 8×8 преобразование для яркости и 4×4 преобразование цветности для каждого канала цветности. Один флаг пропуска преобразования будет присутствовать для каждого канала цветности в данном случае. В случае 4:2:2, при подразумеваемом разбиении, два 4×4 преобразования цветности будут присутствовать в каждом канале цветности. Флаг пропуска преобразования кодированный с первым 4×4 преобразованием цветности, но применяемый к обоим 4×4 преобразованиям цветности, будет управлять статусом пропуска преобразования для той же самой пространственной области, как и в случае 4:2:0. Данный единообразный характер приводит к обработке пропуска преобразования для 4:2:2, которая обратно совместима со случаем 4:2:0 (т.е., не происходит перекомпоновки элементов синтаксиса в 4:2:0 из-за поддержки пропуска преобразования в 4:2:2). Наличие общего пропуска преобразования для цветности приводит к подразумеваемому разбиению, которое избегает искусственного разделения единицы преобразования на верхнюю половину и нижнюю половину в целях указания пропуска преобразования.[0134] Advantageously, both methods 1300 and 1400 result in a single conversion skip flag encoded for each color channel, regardless of the presence or absence of an implied splitting operation (which can be applied when 4: 2: 2 and 4: 4: 4 are used color formats). This characteristic leads to a uniform character with a 4: 2: 0 color format, where one conversion skip flag is present for each array of residual coefficients, and only one array of residual coefficients is present for each color channel in relation to a given conversion unit. For example, an 8 × 8 4: 2: 0 conversion unit will have 8 × 8 conversion for luminance and 4 × 4 color conversion for each color channel. One conversion skip flag will be present for each color channel in this case. In the case of 4: 2: 2, with implied splitting, two 4x4 color transformations will be present in each color channel. The conversion skip flag encoded with the first 4 × 4 color conversion, but applied to both 4 × 4 color conversions, will control the conversion skip status for the same spatial area as in the case of 4: 2: 0. This uniform nature leads to processing of the conversion skip for 4: 2: 2, which is backward compatible with the 4: 2: 0 case (i.e., there is no rearrangement of the syntax elements in 4: 2: 0 due to the support of the conversion skip to 4 : 2: 2). Having a common conversion gap for chroma results in an implied split that avoids artificially dividing the conversion unit into the upper half and lower half in order to indicate the conversion gap.

[0135] Фиг. 15 является схематичным представлением, показывающим возможные компоновки 4×4 преобразований в 4×4 и 8×8 единице преобразования, для кодера 114 видео и декодера 134 видео. Каналы Y, U и V цвета изображены на Фиг. 15 в столбцах, а три случая изображены вдоль строк. Во всех изображенных случаях кодер 114 видео и декодер 134 видео сконфигурированы для использования формата цветности 4:2:2. Также, во всех случаях, кодер 114 видео и декодер 134 видео поддерживают подразумеваемое разбиение 4×8 области цветности на две 4×4 области цветности, и, следовательно, два 4×4 преобразования цветности изображено для каждого канала цвета. Изображенными тремя случаями являются:[0135] FIG. 15 is a schematic view showing possible arrangements of 4 × 4 transformations in a 4 × 4 and 8 × 8 transform unit, for a video encoder 114 and a video decoder 134. Color channels Y, U, and V are shown in FIG. 15 in columns, and three cases are shown along the rows. In all the cases depicted, video encoder 114 and video decoder 134 are configured to use a 4: 2: 2 color format. Also, in all cases, the video encoder 114 and the video decoder 134 support the implicit splitting of the 4 × 8 chroma region into two 4 × 4 chroma regions, and therefore, two 4 × 4 color transforms are shown for each color channel. The three cases depicted are:

случай 1: 8×8 единица преобразования (TU) (верхняя строка);case 1: 8 × 8 conversion unit (TU) (top row);

случай 2: четыре 4×4 единицы преобразования (TU) с первым упорядочением (очередность 1) преобразований (средняя строка); иcase 2: four 4 × 4 transformation units (TU) with the first ordering (order 1) of transformations (middle row); and

случай 3: четыре 4×4 единицы преобразования (TU) со вторым упорядочением (очередность 2) преобразований (нижняя строка).case 3: four 4 × 4 transform units (TU) with second ordering (order 2) of transformations (bottom line).

[0136] Для каждого случая, преобразования пронумерованы в очередности, в которой они появляются в закодированном битовом потоке 312. Случай 1 показывает единицу преобразования (TU) с 8×8 преобразованием яркости и двумя 4×4 преобразованиями, для каждого канала цветности. Преобразование яркости не имеет флага пропуска преобразования поскольку преобразование яркости является 8×8. Случай 2 и 3 дополнительно иллюстрируют случай, где четыре 4×4 единицы преобразования приводят к областям яркости для каждого преобразования цветности, которые распространяются на несколько единиц преобразования (TU). В Случаях 2 и 3, четыре единицы преобразования (TU) пронумерованы от нуля до трех и проиндексированы с помощью переменной ‘blkIdx’, как используемой в разрабатываемом стандарте высокоэффективного кодирования видео (HEVC). Для каждого преобразования, изображенного на Фиг. 15, если поддерживается пропуск преобразования, рамка включается в верхний левый угол преобразования. Для преобразований, в которых флаг пропуска преобразования всегда явно кодируется, рамка заштрихована (такая как заштрихованная рамка 1502). Незаштрихованная рамка (такая как незаштрихованная рамка 1504) иллюстрирует случай, когда флаг пропуска преобразования для настоящего преобразования извлекается из более раннего (такого как преобразование сверху). Реализации, которые не поддерживают данное извлечение, будут явным образом кодировать флаг пропуска преобразования в закодированном битовом потоке 312 для преобразований с незаштрихованными рамками. В Случае 2 и Случае 3, структура синтаксиса единицы преобразования, такая как структура 952 синтаксиса единицы преобразования, вызывается четыре раза (со значением для ‘blkIdx’, увеличивающимся от нуля до трех), один раз для каждой 4х4 единицы преобразования. Таким образом, четыре экземпляра структуры синтаксиса единицы преобразования присутствует в закодированном битовом потоке 312. На каждом вызове, остаточный блок яркости, такой как блок 954 остаточных данных яркости, присутствует в закодированном битовом потоке 312, если соответствующий флаг кодированного блока, такой как флаг 950 кодированного блока, имеет значение равное единице. В Случае 2, на четвертом вызове (‘blkIdx’ равна трем), остаточные блоки цветности для каналов цветности, такие как остаточные блоки 956, 958, 960, 962 цветности, кодируются в закодированном битовом потоке 312 (если соответствующие флаги кодированного блока, такие как флаги 942, 944, 946, 948 кодированного блока имеют значение равное единице). Упорядочение остаточных блоков яркости и цветности с Фиг. 9B соответствует упорядочению преобразований, присутствующих в Случае 2. В случае 3, упорядочение меняется из-за следующего: Остаточные блоки цветности для верхней половины (такие как остаточные 956, 960 цветности) обрабатываются на втором вызове структуры синтаксиса единицы преобразования (т.е., когда ‘blkIdx’ равна единице), а остаточные блоки цветности для нижней половины (такие как остаточные блоки 958, 962 цветности) обрабатываются на четвертом вызове структуры синтаксиса единицы преобразования (т.е., когда ‘blkIdx’ равна трем).[0136] For each case, the transforms are numbered in the order in which they appear in the encoded bitstream 312. Case 1 shows a transform unit (TU) with 8 × 8 brightness conversion and two 4 × 4 transformations, for each color channel. The luminance conversion does not have a skip conversion flag because the luminance conversion is 8 × 8. Case 2 and 3 further illustrate the case where four 4 × 4 conversion units result in luminance regions for each color conversion that apply to multiple conversion units (TUs). In Cases 2 and 3, four conversion units (TUs) are numbered from zero to three and indexed using the ‘blkIdx’ variable, as used in the emerging high-performance video coding (HEVC) standard. For each transformation depicted in FIG. 15, if a conversion skip is supported, the frame is included in the upper left corner of the transformation. For conversions in which the conversion skip flag is always explicitly encoded, the frame is hatched (such as hatched frame 1502). An unshaded frame (such as an unshaded frame 1504) illustrates a case where the transform skip flag for the present transform is extracted from an earlier one (such as the transform on top). Implementations that do not support this extraction will explicitly encode the conversion skip flag in encoded bitstream 312 for unshaded frames transforms. In Case 2 and Case 3, a conversion unit syntax structure, such as conversion unit syntax structure 952, is called four times (with a value for ‘blkIdx’ increasing from zero to three), once for each 4x4 conversion unit. Thus, four instances of the transform unit syntax structure are present in the encoded bitstream 312. On each call, a residual luminance block, such as a residual luminance data block 954, is present in the encoded bitstream 312 if the corresponding flag of the encoded block, such as the encoded flag 950 block, has a value equal to one. In Case 2, on the fourth call ('blkIdx' is three), residual chroma blocks for chroma channels, such as chroma residual blocks 956, 958, 960, 962, are encoded in encoded bitstream 312 (if the corresponding flags of the encoded block, such as flags 942, 944, 946, 948 of the encoded block have a value of one). The ordering of the residual luma and chroma blocks of FIG. 9B corresponds to the ordering of the transformations present in Case 2. In Case 3, the ordering changes due to the following: Residual chroma blocks for the upper half (such as residual chroma 956, 960) are processed on the second call of the transform unit syntax structure (i.e., when 'blkIdx' is one), and residual chroma blocks for the lower half (such as chroma residual blocks 958, 962) are processed on the fourth call of the transform unit syntax structure (i.e., when 'blkIdx' is three).

[0137] Другой случай, не иллюстрируемый на Фиг. 15, состоит в том, что из 4×4 единицы преобразования, когда используется 4:2:0 формат цветности, одно 4×4 преобразование для цветности применяется к зоне по сетке элементов дискретизации цветности, которая соответствует четырем 4×4 единицам преобразования для яркости на одном и том же иерархическом уровне квадродерева (вместе занимающими 8×8 область по сетке элементов дискретизации яркости). Когда 4×8 преобразование доступно в цветности, пропуск преобразования для случая 4:2:2 применяется к 4×8 преобразованию (в дополнение к 4×4 преобразованию), как описывается со ссылкой на Фиг. 18 ниже. Когда 4×8 преобразование не доступно в цветности и используется 4:2:2 формат цветности, реализации должны использовать два 4×4 преобразования для каждого канала цветности и могут кодировать флаг пропуска преобразования для одного 4×4 преобразования, такого как верхнее 4×4 преобразование, но применять закодированный флаг пропуска преобразования для обоих 4×4 преобразований для заданного канала цветности.[0137] Another case not illustrated in FIG. 15, consists of that of a 4 × 4 conversion unit, when a 4: 2: 0 color format is used, one 4 × 4 conversion for color is applied to the area along the color sampling grid, which corresponds to four 4 × 4 conversion units for brightness at the same hierarchical level of the quad tree (together occupying an 8 × 8 region along the grid of brightness discretization elements). When a 4 × 8 conversion is available in chroma, the conversion skip for the 4: 2: 2 case applies to the 4 × 8 conversion (in addition to the 4 × 4 conversion), as described with reference to FIG. 18 below. When a 4 × 8 transform is not available in chroma and a 4: 2: 2 chroma format is used, implementations must use two 4 × 4 transforms for each color channel and can encode a transform skip flag for one 4 × 4 transform, such as the top 4 × 4 transform, but apply the encoded transform skip flag for both 4x4 transforms for a given color channel.

[0138] Фиг. 17 является принципиальной блок-схемой, показывающей способ 1700 для декодирования остаточных данных для единицы преобразования (TU), развивая аспекты способа 1400 с Фиг. 14. Способ 1700 определяет флаг пропуска преобразования для заданной области и декодирует остаточные данные для области. Когда способ 1700 вызывается для канала яркости единицы преобразования (TU), существует только одна область. Применительно к одному каналу цветности единицы преобразования (TU) и когда происходит подразумеваемое разбиение, две области присутствуют и способ 1700 вызывается для каждой области со значением флага кодированного блока равным единице. Способ 1700 начинается с этапа 1702 тестирования поддерживаемого пропуска преобразования. Этап 1702 тестирует флаг задействованного пропуска преобразования и флаг обхода квантования преобразования единицы кодирования и размер преобразования для настоящей области. Флаг задействованного пропуска преобразования, закодированный в закодированном битовом потоке 312, указывает на то, доступна ли в закодированном битовом потоке 312 функция пропуска преобразования. Флаг обхода квантования преобразования единицы кодирования, закодированный в закодированном битовом потоке 312, указывает на то, был ли кодером 114 видео выбран режим кодирования ‘без потерь’, посредством которого выполняется обход как модуля 320 преобразования, так и модуля 322 квантования, и, следовательно, кодер 114 видео функционирует в режиме без потерь, позволяя декодеру 134 видео точно воспроизводить захваченные данные кадра от источника 112 видео. Размер преобразования для настоящей области, указываемый переменной ‘log2TrafoSize’ в разрабатываемом стандарте высокоэффективного кодирования видео (HEVC), который задается как log2 боковой размерности квадратного преобразования. Когда флаг пропуска преобразования соответствует значению истина (т.е., задействовано), а флаг обхода квантования преобразования единицы кодирования соответствует значению ложь (т.е., не задействовано) и размер преобразования составляет 4×4 (т.е., log2TrafoSize равна 2), управление переходит к этапу 1704 тестирования первой области с истинным флагом кодированного блока (CBF) в канале цвета, в противном случае управление переходит к этапу 1712 декодирования остаточных данных. Этап 1704 тестирования определяет, является ли настоящая область первой областью в канале цвета (и в единице преобразования (TU) со значением флага кодированного блока (CBF) равным единице). Так как способ 1700 вызывается только если значение флага кодированного блока для настоящей области равно единице, возможно два случая. Если способ 1700 вызывается для первой области цветности (верхней области, когда используется 4:2:2 формат цветности, например, области 682 или 666 на Фиг. 6C) подразумеваемого разбиения, тогда этап 1704 тестирования дает оценку, соответствующую значению истина, и управление переходит к этапу 1706 декодирования флага пропуска преобразования. Если способ 1700 вызывается для последующей области(ей) цветности подразумеваемого разбиения (нижней области, когда используется 4:2:2 формат цветности, например, области 684 или 668 на Фиг. 6C), этап 1704 тестирования дает оценку, соответствующую значению ложь, когда способ 1700 был ранее вызван для первой области цветности (применительно к настоящей единице преобразования), и соответствующую значению истина, когда способ 1700 не был ранее вызван для первой области цветности (применительно к настоящей единице преобразования). Когда этап 1704 тестирования дает оценку, соответствующую значению истина, управление переходит к этапу 1706 декодирования флага пропуска преобразования. На этапе 1706, энтропийный декодер 420 декодирует флаг пропуска преобразования из закодированного битового потока 312, чтобы определить значение флага пропуска преобразования. Этап 1708 сохранения значения флага пропуска преобразования сохраняет значение флага пропуска преобразования в памяти, такой как регистры аппаратного обеспечения или регистры 246, для использования позже при последующих вызовах способа 1700. Если этап 1704 тестирования дает оценку, соответствующую значению ложь, управление переходит к этапу 1710 извлечения флага пропуска преобразования, где значение флага пропуска преобразования, определенное и сохраненное на предыдущем вызове способа 1700, извлекается из памяти, такой как регистры аппаратного обеспечения или регистры 246. На этапе 1712 декодирования остаточных данных, блок остаточных данных, такой как блок 954, 956, 958, 960 или 962 остаточных данных, декодируется из закодированного битового потока 312 энтропийным декодером 420. Определенное значение флага пропуска преобразования пересылается в качестве значения 468 флага пропуска преобразования для управления операцией пропуска преобразования, как описывается выше со ссылкой на мультиплексор 423. Этапы 1702-1710 соответствуют этапу 1402 с Фиг. 14, когда способ 1700 вызывается для канала яркости, и этапы 1702-1710 соответствуют этапу 1404 с Фиг. 14, когда способ 1700 вызывается для канала цветности. Этап 1712 декодирования остаточных данных соответствует декодированию остатка яркости этапа 1406 с Фиг. 14 и декодированию остатка цветности этапа 1406 с Фиг. 14. Способ 1700 также соответствует структуре синтаксиса ‘остаточного кодирования’, как задается в разрабатываемом стандарте высокоэффективного кодирования видео (HEVC).[0138] FIG. 17 is a schematic flowchart showing a method 1700 for decoding residual data for a transform unit (TU), developing aspects of the method 1400 of FIG. 14. Method 1700 determines a conversion skip flag for a given area and decodes residual data for the area. When method 1700 is invoked for a luminance channel of a transform unit (TU), there is only one area. For a single color channel of a transform unit (TU), and when an implied partition occurs, two areas are present and a method 1700 is called for each area with a flag value of the encoded block equal to one. The method 1700 begins with step 1702 testing supported conversion skip. Step 1702 tests the enabled transform skip flag and the coding unit transform quantization bypass flag and the transform size for the present domain. The enable conversion skip flag encoded in encoded bitstream 312 indicates whether the conversion skip function is available in encoded bitstream 312. The encoding unit transform quantization bypass flag, encoded in encoded bitstream 312, indicates whether the 'lossless' encoding mode has been selected by the video encoder 114, by which both the transform module 320 and the quantization module 322 are bypassed, and therefore video encoder 114 operates in a lossless mode, allowing video decoder 134 to accurately reproduce captured frame data from video source 112. The transform size for the real area, indicated by the variable ‘log2TrafoSize’ in the emerging High-Performance Video Coding (HEVC) standard, which is defined as log2 of the side dimension of the square transform. When the conversion skip flag matches true (i.e., enabled) and the coding unit conversion quantization bypass flag matches false (i.e., not enabled) and the conversion size is 4 × 4 (i.e., log2TrafoSize is 2), control proceeds to step 1704 of testing the first area with the true flag of the encoded block (CBF) in the color channel, otherwise, control proceeds to step 1712 of decoding the residual data. Testing step 1704 determines whether the present area is the first area in the color channel (and in the transform unit (TU) with the coded block flag value (CBF) equal to one). Since the method 1700 is called only if the flag value of the encoded block for this area is equal to one, two cases are possible. If method 1700 is invoked for the first chroma region (upper region when a 4: 2: 2 chroma format is used, for example, region 682 or 666 in FIG. 6C) of the implied partition, then test block 1704 gives an estimate corresponding to true and control proceeds to step 1706 decoding the flag skip conversion. If method 1700 is invoked for the subsequent color region (s) of an implied partition (lower region when a 4: 2: 2 color format is used, for example, region 684 or 668 in Fig. 6C), test step 1704 gives an estimate corresponding to false when method 1700 was previously called for the first chroma region (in relation to the present conversion unit), and the corresponding value is true when method 1700 was not previously called for the first chroma region (in relation to the present conversion unit). When test step 1704 provides an estimate corresponding to true, control proceeds to step 1706 of decoding the skip conversion flag. At step 1706, the entropy decoder 420 decodes the conversion skip flag from the encoded bitstream 312 to determine the value of the conversion skip flag. Step 1708 storing the value of the conversion skip flag stores the value of the conversion skip flag in memory, such as hardware registers or registers 246, for use later in subsequent calls to method 1700. If test step 1704 gives an estimate corresponding to false, control proceeds to retrieve step 1710 conversion skipping flag, where the conversion skipping flag value defined and stored in the previous call to method 1700 is retrieved from memory, such as hardware registers software or registers 246. In a residual data decoding step 1712, a residual data block, such as residual data block 954, 956, 958, 960 or 962, is decoded from encoded bitstream 312 by an entropy decoder 420. The determined value of the conversion skip flag is sent as the value 468 conversion skipping flag to control the conversion skipping operation, as described above with reference to multiplexer 423. Steps 1702-1710 correspond to step 1402 of FIG. 14, when method 1700 is invoked for the luminance channel, and steps 1702-1710 correspond to step 1404 of FIG. 14, when method 1700 is invoked for a color channel. The residual data decoding step 1712 corresponds to decoding the brightness remainder of step 1406 of FIG. 14 and decoding the color residue of step 1406 of FIG. 14. The 1700 method also follows the syntax structure of ‘residual coding’ as defined in the emerging high-performance video coding (HEVC) standard.

[0139] Фиг. 18 является схематичным представлением 1800, показывающим операцию пропуска преобразования, применяемую к 4×8 области цветности (с 4×8 не квадратным преобразованием) для каждого канала цвета. На Фиг. 18 изображены канал яркости (‘Y’) и каждый канал цветности (‘U’ и ‘V’). На Фиг. 18 изображены два случая:[0139] FIG. 18 is a schematic view 1800 showing a skip conversion operation applied to a 4 × 8 color region (with 4 × 8 non-square transform) for each color channel. In FIG. 18 shows a luminance channel (‘Y’) and each color channel (‘U’ and ‘V’). In FIG. 18 shows two cases:

[0140] Случай 1: ‘8×8 TU’ (верхняя строка на Фиг. 18) изображает 8×8 единицу преобразования (TU), с 8×8 преобразованием 1802 для канала яркости и 4×8 (не квадратным или прямоугольным) преобразованием 1804 для каждого канала цветности. Флаг пропуска преобразования изображен с помощью заштрихованной рамки в верхнем правом углу преобразования для которого поддерживается операция пропуска преобразования. В данном случае, операция пропуска преобразования также поддерживается в случае 4×8 преобразования (в дополнение к случаю 4×4 преобразования) и, следовательно, каждое из 4×8 преобразований включает в себя флаг 1806 пропуска преобразования, как иллюстрируется на Фиг. 18.[0140] Case 1: The '8 × 8 TU' (top row in Fig. 18) represents an 8 × 8 transform unit (TU), with an 8 × 8 transform 1802 for a luminance channel and a 4 × 8 (non-square or rectangular) transform 1804 for each color channel. The conversion skipping flag is shown with a hatched frame in the upper right corner of the conversion for which the conversion skipping operation is supported. In this case, the skip conversion operation is also supported in the 4 × 8 transform case (in addition to the 4 × 4 transform case) and, therefore, each of the 4 × 8 transforms includes a transform skip flag 1806, as illustrated in FIG. eighteen.

[0141] Случай 2: ‘Четыре 4×4 TU’ (нижняя строка на Фиг. 18) изображает четыре 4×4 единицы преобразования (TU), с четырьмя 4×4 преобразованиями 1808 для канала яркости и 4×8 (не квадратным или прямоугольным) преобразованием 1810 для каждого канала цветности. 4×8 преобразование для каждого канала цветности совместно располагается (по сетке элементов дискретизации цветности) с преобразованием яркости (по сетке элементов дискретизации яркости) и совместно используется среди четырех единиц преобразования 4×4 (TU). В данной реализации, операция пропуска преобразования также поддерживается в случае 4×8 преобразования (в дополнение к случаю 4×4 преобразования) и, следовательно, 4×8 преобразования включают в себя флаг 1812 пропуска преобразования, как иллюстрируется на Фиг. 18.[0141] Case 2: 'Four 4 × 4 TUs' (bottom row in Fig. 18) depicts four 4 × 4 transform units (TU), with four 4 × 4 transforms 1808 for the luminance channel and 4 × 8 (not square or rectangular) conversion 1810 for each color channel. The 4 × 8 transform for each chroma channel is co-located (along the grid of chroma sampling elements) with the luminance conversion (along the grid of chroma sampling elements) and shared among the four 4 × 4 transformation units (TU). In this implementation, the conversion skipping operation is also supported in the 4 × 8 conversion case (in addition to the 4 × 4 conversion case) and, therefore, the 4 × 8 conversion includes a conversion skipping flag 1812, as illustrated in FIG. eighteen.

[0142] Применительно к реализации, поддерживающей Случаи 1 и 2 с Фиг. 18, модифицированные этап 1702 тестирования и этапы 1706 и 1712 способа 1700 выполняются декодером 134 видео. Модифицированный этап 1702 тестирования функционирует как этап 1702 тестирования с Фиг. 17, за исключением того, что размер преобразования 4×8 включается (в дополнение к размеру преобразования 4×4) в качестве возможного размера преобразования для которого поддерживается операция пропуска преобразования, тем самым позволяя модифицированному этапу 1702 тестирования выдавать оценку, соответствующую значению истина, как в случае 4×4, так и в случае 4×8 преобразования.[0142] With respect to an implementation supporting Cases 1 and 2 of FIG. 18, the modified test step 1702 and steps 1706 and 1712 of method 1700 are performed by video decoder 134. The modified testing step 1702 functions as the testing step 1702 of FIG. 17, except that the 4 × 8 transform size is included (in addition to the 4 × 4 transform size) as a possible transform size for which the skip conversion operation is supported, thereby allowing the modified test step 1702 to provide an estimate corresponding to true as in the case of 4 × 4, and in the case of 4 × 8 transformation.

[0143] Приложение A иллюстрирует возможный ‘текст’ применительно к разрабатываемому стандарту высокоэффективного кодирования (HEVC), который соответствует структуре 900 синтаксиса и структуре 930 синтаксиса. Каждый экземпляр функции transform_tree() в приложении A, изображается в качестве участка структуры синтаксиса промаркированной ‘TT’ на Фиг. 9A и 9C, а каждый экземпляр функции transform_unit() в Приложении A изображается в качестве участка структуры синтаксиса промаркированной ‘TU’ на Фиг. 9A и 9B. Текст, предоставленный в Приложении A, является одним примером текста, который согласуется со структурами 900 и 930 синтаксиса и возможны прочие примеры. Текст, который согласуется со структурами 900 и 930 синтаксиса, предполагает, что кодер 114 видео выполняет способ 1000 для кодирования битового потока, а декодер 134 видео выполняет способ 1100 для декодирования битового потока.[0143] Appendix A illustrates a possible ‘text’ in relation to a high-performance coding standard (HEVC) being developed that corresponds to syntax structure 900 and syntax structure 930. Each instance of the transform_tree () function in Appendix A is depicted as a portion of the syntax structure marked ‘TT’ in FIG. 9A and 9C, and each instance of the transform_unit () function in Appendix A is depicted as a portion of the syntax structure marked ‘TU’ in FIG. 9A and 9B. The text provided in Appendix A is one example of a text that is consistent with syntax structures 900 and 930 and other examples are possible. Text that is consistent with syntax structures 900 and 930 assumes that video encoder 114 performs method 1000 for encoding a bitstream, and video decoder 134 performs method 1100 for decoding a bitstream.

[0144] Приложение B иллюстрирует возможный текст применительно к разрабатываемому стандарту высокоэффективного кодирования видео (HEVC), который соответствует структуре 9100 синтаксиса и структуре 9130 синтаксиса. Каждый экземпляр функции transform_tree() в приложении B, изображается в качестве участка структуры синтаксиса промаркированной ‘TT’ на Фиг. 9C, 9D и 9E, а каждый экземпляр функции transform_unit() в Приложении B изображается в качестве участка структуры синтаксиса промаркированной ‘TU’ на Фиг. 9C, 9D и 9E. Текст, предоставленный в Приложении B, является одним примером текста, который согласуется со структурами 9100 и 9130 синтаксиса и возможны прочие примеры. Текст, который согласуется со структурами 9100 и 9130 синтаксиса, также предполагает, что кодер 114 видео выполняет способ 1000 для кодирования битового потока, а декодер 134 видео выполняет способ 1100 для декодирования битового потока.[0144] Appendix B illustrates possible text in relation to a high-performance video coding standard (HEVC) being developed that corresponds to syntax structure 9100 and syntax structure 9130. Each instance of the transform_tree () function in Appendix B is depicted as a portion of the syntax structure marked ‘TT’ in FIG. 9C, 9D, and 9E, and each instance of the transform_unit () function in Appendix B is depicted as a portion of the syntax structure marked ‘TU’ in FIG. 9C, 9D and 9E. The text provided in Appendix B is one example of text that is consistent with syntax structures 9100 and 9130 and other examples are possible. Text that is consistent with syntax structures 9100 and 9130 also assumes that video encoder 114 performs method 1000 for encoding a bitstream, and video decoder 134 performs method 1100 for decoding a bitstream.

[0145] Текст в Приложении A и Приложении B приводят к реализации, посредством которой 32×32 область цветности, с которой сталкиваются в единице преобразования (TU) размера 32×32, сконфигурированной для 4:4:4 формата цветности, приводит к применяемым (максимальному количеству) четырем 16×16 преобразованиям цветности, а 16×32 область цветности, с которой сталкиваются в единице преобразования (TU) размером 32×32, сконфигурированной для формата цветности 4:2:2, приводит к применяемым (максимальному количеству) двум 16×16 преобразованиям цветности. Реализация, получаемая из текста в Приложении A и Приложении B, когда применяется к единицам преобразования (TU) меньшего размера и сконфигурированным для формата цветности 4:2:2, применяет (максимум) одно преобразование цветности. Например, 8×16 преобразование применяется в 8×16 области цветности и 4×8 преобразование применяется к 4×8 области цветности.[0145] The text in Appendix A and Appendix B leads to an implementation whereby a 32 × 32 color region encountered in a 32 × 32 size conversion unit (TU) configured for a 4: 4: 4 color format results in applicable ( the maximum number) of four 16 × 16 color conversions, and the 16 × 32 color region encountered in a 32 × 32 transform unit (TU) configured for a 4: 2: 2 color format results in two (16) applied × 16 color transforms. An implementation derived from the text in Appendix A and Appendix B, when applied to smaller conversion units (TUs) and configured for a 4: 2: 2 color format, applies (maximum) one color conversion. For example, an 8 × 16 transform is applied to an 8 × 16 chroma region and a 4 × 8 transform is applied to a 4 × 8 chroma region.

Промышленная применимостьIndustrial applicability

[0146] Описанные компоновки применимы в компьютерной отрасли и отрасли обработки данных и в частности для цифровой обработки сигналов применительно к кодированию и декодированию сигналов, таких как видеосигналы.[0146] The described arrangements are applicable in the computer and data processing industries, and in particular for digital signal processing as applied to encoding and decoding signals, such as video signals.

[0147] Вышеприведенное описывает только некоторые варианты осуществления настоящего изобретения, и модификации и/или изменения могут быть в этом сделаны, не отступая от объема и сущности изобретения, при этом варианты осуществления являются иллюстрирующими, а не ограничивающими.[0147] The foregoing describes only certain embodiments of the present invention, and modifications and / or changes may be made therein without departing from the scope and spirit of the invention, the embodiments being illustrative and not limiting.

[0148] (Только для Австралии) В контексте данного технического описания, слово «содержащий» означает «включающий в себя главным образом, но не обязательно исключительно» или «обладающий» или «включающий в себя», и не «состоящий только из». Вариации слова «содержащий», такие как «содержать» и «содержит» имеют соответственно измененные значения.[0148] (Australia only) In the context of this technical description, the word “comprising” means “including mainly, but not necessarily exclusively” or “possessing” or “including”, and not “consisting only of”. Variations of the word “comprising”, such as “contain” and “contains”, have correspondingly changed meanings.

ПРИЛОЖЕНИЕ AAPPENDIX A

TRANSFORM_TREE() И TRANSFORM_UNIT() РЕАЛИЗУЮТ ПОДРАЗУМЕВАЕМОЕ РАЗБИЕНИЕ ЦВЕТНОСТИ, ИСПОЛЬЗУЯ ОПЕРАТОР ЦИКЛАTRANSFORM_TREE () AND TRANSFORM_UNIT () IMPLEMENT AN IMPLIED DIVISION OF COLOR USING THE CYCLE OPERATOR

7.3.11 Синтаксис дерева преобразования7.3.11 Transformation tree syntax

Figure 00000001
Figure 00000002
Figure 00000001
Figure 00000002

7.3.12 Синтаксис единицы преобразования7.3.12 Syntax of conversion unit

Figure 00000003
Figure 00000003

7.4.8.1 Общая семантика единицы кодирования7.4.8.1 General semantics of the coding unit

Переменные TrafoCrCbHorCnt и TrafoCrCbVertCnt извлекаются следующим образом:The variables TrafoCrCbHorCnt and TrafoCrCbVertCnt are retrieved as follows:

- Если log2TrafoSize равна 5 и split_transform_flag равна 0, TransformIdxMax извлекается следующим образом:- If log2TrafoSize is 5 and split_transform_flag is 0, TransformIdxMax is retrieved as follows:

- Если chroma_format_idc равна 1, TrafoCrCbHorCnt и TrafoCrCbVertCnt равны 1.- If chroma_format_idc is 1, TrafoCrCbHorCnt and TrafoCrCbVertCnt are 1.

- Если chroma_format_idc равна 2, TrafoCrCbHorCnt равна 1, а TrafoCrCbVertCnt равна 2.- If chroma_format_idc is 2, TrafoCrCbHorCnt is 1, and TrafoCrCbVertCnt is 2.

- В противном случае, если chroma_format_idc равна 3, TrafoCrCbHorCnt и TrafoCrCbVertCnt равны 2.- Otherwise, if chroma_format_idc is 3, TrafoCrCbHorCnt and TrafoCrCbVertCnt are 2.

- В противном случае, TrafoCrCbHorCnt и TrafoCrCbVertCnt равны 1.- Otherwise, TrafoCrCbHorCnt and TrafoCrCbVertCnt are 1.

Переменная TrafoCrCbCnt извлекается как TrafoCrCbHorCnt * TrafoCrCbVertCnt.The variable TrafoCrCbCnt is retrieved as TrafoCrCbHorCnt * TrafoCrCbVertCnt.

Переменные log2CrCbTrafoHorSize и log2CrCbTrafoVertSize извлекаются следующим образом:The variables log2CrCbTrafoHorSize and log2CrCbTrafoVertSize are retrieved as follows:

- Если chroma_format_idc равна 1, log2CrCbTrafoHorSize и log2CrCbTrafoVertSize равны log2TrafoSize - 1.- If chroma_format_idc is 1, log2CrCbTrafoHorSize and log2CrCbTrafoVertSize are log2TrafoSize - 1.

- В противном случае, если chroma_format_idc равна 2, log2CrCbTrafoHorSize равна log2TrafoSize, а log2CrCbTrafoVertSize равна min(log2TrafoSize - 1, 4).- Otherwise, if chroma_format_idc is 2, log2CrCbTrafoHorSize is log2TrafoSize and log2CrCbTrafoVertSize is min (log2TrafoSize - 1, 4).

- В противном случае, если chroma_format_idc равна 3, log2CrCbTrafoHorSize и log2CrCbTrafoVertSize равны min(log2TrafoSize, 4).- Otherwise, if chroma_format_idc is 3, log2CrCbTrafoHorSize and log2CrCbTrafoVertSize are min (log2TrafoSize, 4).

Конец Приложения AEnd of Appendix A

ПРИЛОЖЕНИЕ BAPPENDIX B

ВЫЗЫВАЮТ TRANSFORM_TREE() ОДИН РАЗ НА ПАРУ КАНАЛОВ ЦВЕТНОСТИ ДЛЯ КАЖДОГО ПРЕОБРАЗОВАНИЯ ЦВЕТНОСТИ, ПОЛУЧАЕМОГО ИЗ ПОДРАЗУМЕВАЕМОГО РАЗБИЕНИЯTRANSFORM_TREE () is called ONCE ONE PAIR OF COLOR CHANNELS FOR EVERY COLOR CONVERSION OBTAINED FROM AN IMPORTANT DIVISION

7.3.11 Синтаксис дерева преобразования7.3.11 Transformation tree syntax

Figure 00000004
Figure 00000005
Figure 00000004
Figure 00000005

7.3.12 Синтаксис единицы преобразования7.3.12 Syntax of conversion unit

Figure 00000006
Figure 00000006

7.4.8.1 Общая семантика единицы кодирования7.4.8.1 General semantics of the coding unit

Переменные TrafoCrCbHorCnt и TrafoCrCbVertCnt извлекаются следующим образом:The variables TrafoCrCbHorCnt and TrafoCrCbVertCnt are retrieved as follows:

- Если log2TrafoSize равна 5 и split_transform_flag равна 0, TransformIdxMax извлекается следующим образом:- If log2TrafoSize is 5 and split_transform_flag is 0, TransformIdxMax is retrieved as follows:

- Если chroma_format_idc равна 1, TrafoCrCbHorCnt и TrafoCrCbVertCnt равны 1.- If chroma_format_idc is 1, TrafoCrCbHorCnt and TrafoCrCbVertCnt are 1.

- Если chroma_format_idc равна 2, TrafoCrCbHorCnt равна 1, а TrafoCrCbVertCnt равна 2.- If chroma_format_idc is 2, TrafoCrCbHorCnt is 1, and TrafoCrCbVertCnt is 2.

- В противном случае, если chroma_format_idc равна 3, TrafoCrCbHorCnt и TrafoCrCbVertCnt равны 2.- Otherwise, if chroma_format_idc is 3, TrafoCrCbHorCnt and TrafoCrCbVertCnt are 2.

- В противном случае, TrafoCrCbHorCnt и TrafoCrCbVertCnt равны 1.- Otherwise, TrafoCrCbHorCnt and TrafoCrCbVertCnt are 1.

Переменная TrafoCrCbCnt извлекается как TrafoCrCbHorCnt * TrafoCrCbVertCnt.The variable TrafoCrCbCnt is retrieved as TrafoCrCbHorCnt * TrafoCrCbVertCnt.

Конец Приложения BEnd of Appendix B

Claims (22)

1. Способ преобразования множества массивов остаточных коэффициентов из битового потока видео, сконфигурированного для формата 4:2:2, во множество массивов остаточных элементов дискретизации, при этом способ содержит этапы, на которых: 1. A method of converting multiple arrays of residual coefficients from a video bitstream configured for a 4: 2: 2 format to a plurality of arrays of residual sampling elements, the method comprising the steps of: декодируют четыре массива остаточных коэффициентов яркости для канала яркости, при этом каждый из этих четырех массивов остаточных коэффициентов яркости соответствует одному блоку яркости 4x4 из четырех блоков яркости 4x4, причем эти четыре блока яркости 4x4 вместе занимают область яркости 8x8; decode four arrays of residual luminance factors for the luminance channel, wherein each of these four arrays of residual luminance coefficients corresponds to one 4x4 luminance block of four 4x4 luminance blocks, and these four 4x4 luminance blocks together occupy an 8x8 luminance region; декодируют, после того как декодированы упомянутые четыре массива остаточных коэффициентов яркости, два массива остаточных коэффициентов цветности для первого канала цветности, при этом каждый из этих двух массивов остаточных коэффициентов цветности для первого канала цветности соответствует блоку цветности 4x4 и каждый блок цветности 4x4 для первого канала цветности совместно расположен с двумя из упомянутых четырех блоков яркости 4x4; decode, after the four arrays of residual luminance coefficients are decoded, two arrays of residual chroma for the first color channel, wherein each of these two arrays of residual chroma for the first chroma channel corresponds to a 4x4 chroma block and each 4x4 chroma block for the first chroma channel co-located with two of the four 4x4 brightness units; декодируют, после того как декодированы упомянутые два массива остаточных коэффициентов цветности для первого канала цветности, два массива остаточных коэффициентов цветности для второго канала цветности, при этом каждый из этих двух массивов остаточных коэффициентов цветности для второго канала цветности соответствует блоку цветности 4x4 и каждый блок цветности для второго канала цветности совместно расположен с двумя из упомянутых четырех блоков яркости 4x4; decode, after the two arrays of residual chroma coefficients for the first chroma channel are decoded, two arrays of residual chroma coefficients for the second chroma channel, wherein each of these two arrays of residual chroma coefficients for the second chroma channel corresponds to a 4x4 chroma block and each chroma block for a second color channel is co-located with two of the four 4x4 luma blocks; применяют преобразование к каждому из декодированных четырех массивов остаточных коэффициентов яркости для канала яркости, декодированных двух массивов остаточных коэффициентов цветности для первого канала цветности и декодированных двух массивов остаточных коэффициентов цветности для второго канала цветности для создания остаточных элементов дискретизации яркости для канала яркости, остаточных элементов дискретизации цветности первого канала цветности и остаточных элементов дискретизации цветности второго канала цветности. apply a conversion to each of the decoded four arrays of residual luma coefficients for the luminance channel, the decoded two arrays of residual luma coefficients for the first chroma channel and the decoded two arrays of residual luma coefficients for the second chroma channel to create residual luma sampling elements for the luma channel, residual chroma sampling elements the first color channel and the residual color discretization elements of the second color channel. 2. Способ преобразования множества массивов остаточных элементов дискретизации во множество массивов остаточных коэффициентов битового потока видео, сконфигурированного для формата 4:2:2, при этом способ содержит этапы, на которых: 2. A method for converting a plurality of arrays of residual sampling elements into a plurality of arrays of residual coefficients of a video bitstream configured for a 4: 2: 2 format, the method comprising the steps of: применяют преобразование к множеству массивов остаточных элементов дискретизации для создания четырех массивов остаточных коэффициентов яркости для канала яркости, двух массивов остаточных коэффициентов цветности для первого канала цветности и двух массивов остаточных коэффициентов цветности для второго канала цветности; applying the transform to a plurality of arrays of residual sampling elements to create four arrays of residual luminance coefficients for a luminance channel, two arrays of residual chroma for a first color channel, and two arrays of residual chroma for a second chroma channel; кодируют четыре массива остаточных коэффициентов яркости, при этом каждый из этих четырех массивов остаточных коэффициентов яркости соответствует одному блоку яркости 4x4 из четырех блоков яркости 4x4, причем эти четыре блока яркости 4x4 вместе занимают область яркости 8x8; encode four arrays of residual brightness coefficients, wherein each of these four arrays of residual brightness coefficients corresponds to one 4x4 brightness block of four 4x4 brightness blocks, and these four 4x4 brightness blocks together occupy an 8x8 brightness region; кодируют, после того как кодированы упомянутые четыре массива остаточных коэффициентов яркости, два массива остаточных коэффициентов цветности для первого канала цветности, при этом каждый из этих двух массивов остаточных коэффициентов цветности для первого канала соответствует блоку цветности 4x4 и каждый блок цветности 4x4 для первого канала цветности располагается совместно с двумя блоками яркости 4x4; encode after the four arrays of residual luminance coefficients are encoded, two arrays of residual chroma for the first color channel, wherein each of these two arrays of residual chroma for the first channel corresponds to a 4x4 chroma block and each 4x4 chroma block for the first chroma channel together with two blocks of brightness 4x4; кодируют, после того как кодированы упомянутые два массива остаточных коэффициентов цветности для первого канала цветности, два массива остаточных коэффициентов цветности для второго канала цветности, при этом каждый из этих массивов остаточных коэффициентов цветности соответствует блоку цветности 4x4 и каждый из этих двух блоков цветности для второго канала цветности располагается совместно с двумя блоками яркости 4x4. encode after said two arrays of residual chroma coefficients for the first chroma channel are encoded, two arrays of residual chroma coefficients for the second chroma channel, wherein each of these arrays of residual chroma coefficients corresponds to a 4x4 chroma block and each of these two chroma blocks for the second channel color is located in conjunction with two blocks of brightness 4x4. 3. Декодер для преобразования множества массивов остаточных коэффициентов из битового потока видео, сконфигурированного для формата 4:2:2, во множество массивов остаточных элементов дискретизации, причем декодер содержит:3. A decoder for converting a plurality of arrays of residual coefficients from a video bitstream configured for a 4: 2: 2 format into a plurality of arrays of residual sampling elements, the decoder comprising: первый декодер для декодирования четырех массивов остаточных коэффициентов яркости для канала яркости, при этом каждый из этих четырех массивов остаточных коэффициентов яркости соответствует одному блоку яркости 4x4 из четырех блоков яркости 4x4, причем множество блоков яркости 4x4 вместе занимают область яркости 8x8; a first decoder for decoding four arrays of residual luminance coefficients for the luminance channel, wherein each of these four arrays of residual luminance coefficients corresponds to one 4x4 luminance block of four 4x4 luminance blocks, wherein a plurality of 4x4 luminance blocks together occupy an 8x8 luminance region; второй декодер для декодирования, после того как декодированы упомянутые четыре массива остаточных коэффициентов яркости, двух массивов остаточных коэффициентов для первого канала цветности, при этом каждый из этих двух массивов остаточных коэффициентов цветности соответствует блоку цветности 4x4 и каждый блок цветности 4x4 для первого канала цветности располагается совместно с двумя из упомянутых четырех блоков яркости; the second decoder for decoding, after the four arrays of residual luminance coefficients are decoded, two arrays of residual coefficients for the first chroma channel, wherein each of these two arrays of residual chroma coefficients corresponds to a 4x4 chroma block and each 4x4 chroma block for the first chroma channel with two of the four blocks of brightness; третий декодер для декодирования, после того как декодированы упомянутые два массива остаточных коэффициентов цветности для первого канала цветности, двух массивов остаточных коэффициентов цветности для второго канала цветности, при этом каждый из этих двух массивов остаточных коэффициентов цветности соответствует блоку цветности 4x4 и каждый блок цветности для второго канала цветности располагается совместно с двумя из упомянутых четырех блоков яркости 4x4; и a third decoder for decoding, after said two arrays of residual chroma coefficients for the first chroma channel are decoded, two arrays of residual chroma coefficients for the second chroma channel, wherein each of these two arrays of residual chroma coefficients corresponds to a 4x4 chroma block and each chroma block for the second the color channel is located in conjunction with two of the four four 4x4 brightness units; and блок преобразования для применения преобразования к каждому из декодированных четырех массивов остаточных коэффициентов яркости, декодированных двух массивов остаточных коэффициентов цветности для первого канала цветности и декодированных двух массивов остаточных коэффициентов цветности для второго канала цветности для создания остаточных элементов дискретизации яркости для канала яркости, остаточных элементов дискретизации цветности первого канала цветности и остаточных элементов дискретизации цветности второго канала цветности.a conversion unit for applying a conversion to each of the decoded four arrays of residual luma coefficients, the decoded two arrays of residual chroma for the first color channel, and the decoded two arrays of residual chroma for the second color channel to create residual luma sampling elements for the luma channel, residual chroma the first color channel and the residual color discretization elements of the second color channel awns. 4. Кодер для преобразования множества массивов остаточных элементов дискретизации во множество массивов остаточных коэффициентов битового потока видео, сконфигурированного для формата 4:2:2, причем кодер содержит: 4. An encoder for converting multiple arrays of residual sampling elements into multiple arrays of residual coefficients of a video bitstream configured for a 4: 2: 2 format, the encoder comprising: блок преобразования для применения преобразования ко множеству массивов остаточных элементов дискретизации для создания каждого из множества массивов остаточных коэффициентов яркости для канала яркости, двух массивов остаточных коэффициентов цветности для первого канала цветности и двух массивов остаточных коэффициентов цветности для второго канала цветности;a transform unit for applying the transform to the plurality of arrays of residual sampling elements to create each of the plurality of arrays of residual luminance coefficients for the luminance channel, two arrays of residual chroma for the first color channel, and two arrays of residual chroma for the second chroma channel; первый кодер для кодирования четырех массивов остаточных коэффициентов яркости, при этом каждый массив остаточных коэффициентов яркости соответствует одному блоку яркости 4x4 из четырех блоков яркости 4x4, причем эти четыре блока яркости 4x4 вместе занимают область яркости 8x8; a first encoder for encoding four arrays of residual brightness coefficients, wherein each array of residual brightness coefficients corresponds to one 4x4 brightness block of four 4x4 brightness blocks, and these four 4x4 brightness blocks together occupy an 8x8 brightness region; второй кодер для кодирования, после того как кодированы упомянутые четыре массива остаточных коэффициентов яркости, двух массивов остаточных коэффициентов цветности для первого канала цветности, при этом каждый из этих двух массивов остаточных коэффициентов цветности соответствует блоку цветности 4x4 и каждый блок цветности 4x4 для первого канала цветности совместно расположен с двумя из упомянутых четырех блоков яркости 4x4; и a second encoder for encoding, after the four arrays of residual luminance coefficients are encoded, two arrays of residual chromaticity coefficients for the first chroma channel, wherein each of these two arrays of residual chroma coefficients corresponds to a 4x4 chroma block and each 4x4 chroma block for the first chroma channel located with two of the four 4x4 brightness units mentioned; and третий кодер для кодирования, после того как кодированы упомянутые два массива остаточных коэффициентов цветности для первого канала цветности, двух массивов остаточных коэффициентов цветности для второго канала цветности, при этом каждый из этих двух массивов остаточных коэффициентов цветности соответствует блоку цветности 4x4 и каждый блок цветности для второго канала цветности совместно расположен с двумя из упомянутых четырех блоков яркости 4x4.a third encoder for encoding, after said two arrays of residual chroma coefficients for the first chroma channel are encoded, two arrays of residual chroma coefficients for the second chroma channel, wherein each of these two arrays of residual chroma coefficients corresponds to a 4x4 chroma block and each chroma block for the second The color channel is co-located with two of the four 4x4 luma blocks. 5. Долговременный считываемый компьютером запоминающий носитель информации с записанной на нем программой, при этом программа, когда исполняется процессором, выполняет способ по п. 1.5. A long-term computer-readable storage medium with a program recorded on it, while the program, when executed by the processor, performs the method of claim 1. 6. Долговременный считываемый компьютером запоминающий носитель информации с записанной на нем программой, при этом программа, когда исполняется процессором, выполняет способ по п. 2.6. A long-term computer-readable storage medium with a program recorded on it, while the program, when executed by the processor, performs the method of claim 2.
RU2017144172A 2012-09-28 2013-09-27 Method, device and system for encoding and decoding conversion units for encoding units RU2673704C1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
AU2012232992A AU2012232992A1 (en) 2012-09-28 2012-09-28 Method, apparatus and system for encoding and decoding the transform units of a coding unit
AU2012247040 2012-11-08
AU2012247040A AU2012247040A1 (en) 2012-09-28 2012-11-08 Method, apparatus and system for encoding and decoding the transform units of a coding unit

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
RU2015117258A Division RU2641223C2 (en) 2012-11-08 2013-09-27 Method, device and system for coding and decoding units of coding unit conversion

Publications (1)

Publication Number Publication Date
RU2673704C1 true RU2673704C1 (en) 2018-11-29

Family

ID=50386719

Family Applications (3)

Application Number Title Priority Date Filing Date
RU2016143994A RU2642825C1 (en) 2012-09-28 2013-09-27 Method, device and system for encoding and decoding transformation units of encoding unit
RU2015115514/08A RU2604986C2 (en) 2012-09-28 2013-09-27 Method, apparatus and system for encoding and decoding transformation units of coding units
RU2017144172A RU2673704C1 (en) 2012-09-28 2013-09-27 Method, device and system for encoding and decoding conversion units for encoding units

Family Applications Before (2)

Application Number Title Priority Date Filing Date
RU2016143994A RU2642825C1 (en) 2012-09-28 2013-09-27 Method, device and system for encoding and decoding transformation units of encoding unit
RU2015115514/08A RU2604986C2 (en) 2012-09-28 2013-09-27 Method, apparatus and system for encoding and decoding transformation units of coding units

Country Status (11)

Country Link
US (4) US9854241B2 (en)
EP (2) EP3684057B1 (en)
JP (3) JP6282278B2 (en)
KR (5) KR101911200B1 (en)
CN (5) CN108683914B (en)
AU (4) AU2012232992A1 (en)
BR (2) BR112015006767B1 (en)
ES (1) ES2788757T3 (en)
PL (1) PL2901673T3 (en)
RU (3) RU2642825C1 (en)
WO (1) WO2014047693A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023229762A1 (en) * 2022-05-27 2023-11-30 Tencent America LLC Dynamic mesh compression using inter and intra prediction

Families Citing this family (100)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9609353B2 (en) * 2010-12-14 2017-03-28 M&K Holdings Inc. Apparatus for encoding a moving picture
CN107105282B (en) * 2010-12-14 2019-11-12 M&K控股株式会社 Equipment for decoding moving pictures
US9473789B2 (en) * 2010-12-14 2016-10-18 M&K Holdings Inc. Apparatus for decoding a moving picture
WO2013109026A1 (en) * 2012-01-18 2013-07-25 엘지전자 주식회사 Method and device for entropy coding/decoding
US10616581B2 (en) 2012-01-19 2020-04-07 Huawei Technologies Co., Ltd. Modified coding for a transform skipped block for CABAC in HEVC
US9654139B2 (en) 2012-01-19 2017-05-16 Huawei Technologies Co., Ltd. High throughput binarization (HTB) method for CABAC in HEVC
US9860527B2 (en) 2012-01-19 2018-01-02 Huawei Technologies Co., Ltd. High throughput residual coding for a transform skipped block for CABAC in HEVC
US20130188736A1 (en) 2012-01-19 2013-07-25 Sharp Laboratories Of America, Inc. High throughput significance map processing for cabac in hevc
US9743116B2 (en) 2012-01-19 2017-08-22 Huawei Technologies Co., Ltd. High throughput coding for CABAC in HEVC
CN108712652A (en) 2012-06-29 2018-10-26 韩国电子通信研究院 Method for video coding and computer-readable medium
AU2012232992A1 (en) 2012-09-28 2014-04-17 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the transform units of a coding unit
US9332257B2 (en) * 2012-10-01 2016-05-03 Qualcomm Incorporated Coded black flag coding for 4:2:2 sample format in video coding
JP6270861B2 (en) * 2012-11-08 2018-01-31 キヤノン株式会社 Method, apparatus and system for encoding and decoding transform units of a coding unit
GB2512825A (en) * 2013-04-05 2014-10-15 British Broadcasting Corp Transmitting and receiving a composite image
GB2512658B (en) * 2013-04-05 2020-04-01 British Broadcasting Corp Transmitting and receiving a composite image
US9686561B2 (en) * 2013-06-17 2017-06-20 Qualcomm Incorporated Inter-component filtering
WO2015056566A1 (en) * 2013-10-15 2015-04-23 ソニー株式会社 Image processing device and method
JP6066945B2 (en) * 2014-02-21 2017-01-25 キヤノン株式会社 Image decoding apparatus, image decoding method and program
AU2015228999B2 (en) * 2014-03-14 2018-02-01 Vid Scale, Inc. Systems and methods for RGB video coding enhancement
WO2016054774A1 (en) * 2014-10-08 2016-04-14 Mediatek Singapore Pte. Ltd. A method for the co-existence of color-space transform and cross-component prediction
WO2016206590A1 (en) * 2015-06-23 2016-12-29 Mediatek Singapore Pte. Ltd. Method and apparatus for transform coefficient coding of non-square blocks
US11076153B2 (en) * 2015-07-31 2021-07-27 Stc.Unm System and methods for joint and adaptive control of rate, quality, and computational complexity for video coding and video delivery
US10491922B2 (en) 2015-09-29 2019-11-26 Qualcomm Incorporated Non-separable secondary transform for video coding
US10674146B2 (en) 2015-09-30 2020-06-02 Lg Electronics Inc. Method and device for coding residual signal in video coding system
US10277896B2 (en) 2016-01-22 2019-04-30 Apple Inc. Intra-frame prediction systems and methods
WO2017135759A1 (en) * 2016-02-04 2017-08-10 삼성전자 주식회사 Video decoding method and apparatus by chroma-multi-transform, and video encoding method and apparatus by chroma-multi-transform
EP3430808A4 (en) * 2016-03-16 2020-01-15 Mediatek Inc. Method and apparatus of video data processing with restricted block size in video coding
CN108886613B (en) * 2016-03-28 2022-04-19 株式会社Kt Method and apparatus for processing video signal
CN116647680A (en) * 2016-10-28 2023-08-25 韩国电子通信研究院 Video encoding/decoding method and apparatus, and recording medium storing bit stream
CN116847069A (en) 2016-11-25 2023-10-03 株式会社Kt Method for encoding and decoding video
US10666937B2 (en) 2016-12-21 2020-05-26 Qualcomm Incorporated Low-complexity sign prediction for video coding
EP3565249A4 (en) * 2016-12-28 2019-12-18 Sony Corporation Image processing apparatus and method
WO2018174457A1 (en) * 2017-03-22 2018-09-27 엘지전자(주) Image processing method and device therefor
US10779007B2 (en) * 2017-03-23 2020-09-15 Mediatek Inc. Transform coding of video data
JP6680260B2 (en) * 2017-04-28 2020-04-15 株式会社Jvcケンウッド IMAGE ENCODING DEVICE, IMAGE ENCODING METHOD, IMAGE ENCODING PROGRAM, IMAGE DECODING DEVICE, IMAGE DECODING METHOD, AND IMAGE DECODING PROGRAM
EP3451663A1 (en) * 2017-08-31 2019-03-06 Thomson Licensing Pools of transforms for local selection of a set of transforms in video coding
US20190116374A1 (en) * 2017-10-17 2019-04-18 Qualcomm Incorporated Coding motion information of video data using coding structure-based candidate list construction
US10368071B2 (en) * 2017-11-03 2019-07-30 Arm Limited Encoding data arrays
CN115002459A (en) 2018-01-05 2022-09-02 Sk电信有限公司 Video decoding apparatus, video encoding apparatus, and non-transitory computer readable medium
KR102524628B1 (en) 2018-01-05 2023-04-21 에스케이텔레콤 주식회사 Method and Apparatus for Video Encoding or Decoding
US10812797B2 (en) * 2018-02-05 2020-10-20 Tencent America LLC Method, apparatus and medium for decoding or encoding using a low-complexity transform
CN116600141A (en) * 2018-03-27 2023-08-15 株式会社Kt Method for decoding or encoding image and method for transmitting image data
CN111971958B (en) * 2018-04-18 2023-01-13 华为技术有限公司 Block segmentation method and apparatus in video coding
US10798382B2 (en) * 2018-04-26 2020-10-06 Tencent America LLC Sub-block transform
US10630748B1 (en) * 2018-05-01 2020-04-21 Amazon Technologies, Inc. Video-based encoder alignment
US10958987B1 (en) 2018-05-01 2021-03-23 Amazon Technologies, Inc. Matching based on video data
US10630990B1 (en) 2018-05-01 2020-04-21 Amazon Technologies, Inc. Encoder output responsive to quality metric information
JP2021502771A (en) * 2018-05-03 2021-01-28 エルジー エレクトロニクス インコーポレイティド Image decoding methods and devices that use block size conversion in image coding systems
US11449256B2 (en) 2018-05-15 2022-09-20 Samsung Electronics Co., Ltd. Method for accelerating image storing and retrieving differential latency storage devices based on access rates
US10949087B2 (en) 2018-05-15 2021-03-16 Samsung Electronics Co., Ltd. Method for rapid reference object storage format for chroma subsampled images
WO2019219685A1 (en) 2018-05-17 2019-11-21 Telefonaktiebolaget Lm Ericsson (Publ) Deblocking of implicit transform unit boundaries
KR20210016581A (en) 2018-06-05 2021-02-16 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Interaction between IBC and ATMVP
WO2019244117A1 (en) 2018-06-21 2019-12-26 Beijing Bytedance Network Technology Co., Ltd. Unified constrains for the merge affine mode and the non-merge affine mode
JP7096374B2 (en) * 2018-06-21 2022-07-05 北京字節跳動網絡技術有限公司 Subblock motion vector inheritance between color components
WO2020003268A2 (en) * 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Definition of zero unit
WO2020003264A2 (en) * 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Filtering of zero unit
WO2020018267A1 (en) * 2018-07-17 2020-01-23 Futurewei Technologies, Inc. Constrained coding tree for video coding
AU2018217333A1 (en) * 2018-08-17 2020-03-05 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a transformed block of video samples
KR20210142779A (en) * 2018-08-24 2021-11-25 삼성전자주식회사 A method and an apparatus for video decoding, a method and an apparatus for video encoding
AU2018233042A1 (en) 2018-09-21 2020-04-09 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a tree of blocks of video samples
WO2020065517A1 (en) 2018-09-24 2020-04-02 Beijing Bytedance Network Technology Co., Ltd. Simplified history based motion vector prediction
KR20210089155A (en) 2018-11-10 2021-07-15 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Rounding in the fairwise average candidate calculation
US11064219B2 (en) * 2018-12-03 2021-07-13 Cloudinary Ltd. Image format, systems and methods of implementation thereof, and image processing
PH12019000380A1 (en) * 2018-12-17 2020-09-28 Nokia Technologies Oy An apparatus, a method and a computer program for video coding and decoding
WO2020141908A1 (en) * 2019-01-01 2020-07-09 엘지전자 주식회사 Image coding method and apparatus using transform skip flag
WO2020141159A2 (en) * 2019-01-02 2020-07-09 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Unified transform type signaling and transform type dependent transform coefficient level coding
WO2020145798A1 (en) * 2019-01-13 2020-07-16 엘지전자 주식회사 Video encoding method and apparatus using transform skip flag
CN113545049B (en) 2019-03-08 2024-04-19 北京字节跳动网络技术有限公司 Constraints on model-based shaping in video processing
AU2019201653A1 (en) * 2019-03-11 2020-10-01 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a tree of blocks of video samples
CN117692640A (en) * 2019-03-22 2024-03-12 华为技术有限公司 Transform unit partitioning method for video coding
US11451826B2 (en) * 2019-04-15 2022-09-20 Tencent America LLC Lossless coding mode and switchable residual coding
WO2020211862A1 (en) 2019-04-18 2020-10-22 Beijing Bytedance Network Technology Co., Ltd. Restriction on applicability of cross component mode
WO2020216176A1 (en) * 2019-04-20 2020-10-29 Beijing Bytedance Network Technology Co., Ltd. Signaling of chroma syntax elements in video coding
AU2020263199B2 (en) 2019-04-23 2023-10-19 Beijing Bytedance Network Technology Co., Ltd. Methods for cross component dependency reduction
WO2020223496A1 (en) * 2019-04-30 2020-11-05 Beijing Dajia Internet Informationtechnology Co., Ltd. Methods and apparatus of joint coding of chroma residuals
CN117499641A (en) 2019-05-10 2024-02-02 北京字节跳动网络技术有限公司 Conditional use of simplified quadratic transforms for video processing
US11381847B2 (en) * 2019-05-31 2022-07-05 Qualcomm Incorporated Coefficient coding for transform skip mode in video coding
KR20220016844A (en) 2019-06-07 2022-02-10 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Conditional signaling of reduced quadratic transform in video bitstreams
EP3977728A4 (en) * 2019-06-21 2022-08-17 Huawei Technologies Co., Ltd. Method and apparatus of still picture and video coding
CN113994697A (en) 2019-06-22 2022-01-28 北京字节跳动网络技术有限公司 Syntax element for chroma residual scaling
BR112021026544A2 (en) * 2019-06-24 2022-02-15 Lg Electronics Inc Image encoding/decoding method, apparatus and method for transmitting bit stream using chroma block maximum transform size adjustment
US11202054B2 (en) * 2019-07-05 2021-12-14 Tencent America LLC Method and apparatus for inter-channel prediction and transform for point-cloud attribute coding
WO2021004445A1 (en) 2019-07-07 2021-01-14 Beijing Bytedance Network Technology Co., Ltd. Signaling of chroma residual scaling
US11232599B2 (en) * 2019-07-11 2022-01-25 Tencent America LLC Method and apparatus for inter-channel prediction and transform for point cloud attribute coding
KR20220038682A (en) 2019-08-03 2022-03-29 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Selection of matrices for reduced quadratic transformation in video coding
CN114223208B (en) 2019-08-17 2023-12-29 北京字节跳动网络技术有限公司 Context modeling for side information of reduced secondary transforms in video
WO2021047540A1 (en) * 2019-09-09 2021-03-18 Beijing Bytedance Network Technology Co., Ltd. Coefficient scaling for high precision image and video coding
CN114402547A (en) * 2019-09-13 2022-04-26 阿里巴巴集团控股有限公司 Method and device for identifying subblock transformation information
CN114731392A (en) 2019-09-21 2022-07-08 北京字节跳动网络技术有限公司 High precision transform and quantization for image and video coding
CN114503566A (en) * 2019-10-10 2022-05-13 韩国电子通信研究院 Image encoding/decoding method and apparatus, and recording medium storing bit stream
KR102192631B1 (en) * 2019-11-28 2020-12-17 주식회사우경정보기술 Parallel forensic marking device and forensic marking mehod
AU2019275553B2 (en) * 2019-12-03 2022-10-06 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a coding tree unit
AU2019275552B2 (en) * 2019-12-03 2022-10-13 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a coding tree unit
WO2021112950A1 (en) * 2019-12-05 2021-06-10 Alibaba Group Holding Limited Method and apparatus for chroma sampling
EP4107951A4 (en) * 2020-02-21 2023-07-26 Alibaba Group Holding Limited Signaling of maximum transform size and residual coding method
WO2021167421A1 (en) * 2020-02-21 2021-08-26 엘지전자 주식회사 Image coding method based on transform, and device therefor
US20230019471A1 (en) * 2020-02-25 2023-01-19 Lg Electronics Inc. Image decoding method related to residual coding, and device therefor
EP4158893A4 (en) * 2020-06-12 2023-11-22 Beijing Dajia Internet Information Technology Co., Ltd. Methods and apparatus of video coding in 4:4:4 color format
US20220279185A1 (en) * 2021-02-26 2022-09-01 Lemon Inc. Methods of coding images/videos with alpha channels
WO2023057487A2 (en) * 2021-10-05 2023-04-13 Interdigital Vc Holdings France, Sas Transform unit partitioning for cloud gaming video coding

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080170615A1 (en) * 2007-01-12 2008-07-17 Mitsubishi Electric Corporation Moving image decoding device and moving image decoding method
RU2426269C2 (en) * 2005-07-22 2011-08-10 Мицубиси Электрик Корпорейшн Image encoder and image decoder, image encoding method and image decoding method, image encoding programme and image decoding programme and computer readable recording medium on which image encoding programme is recorded and computer readable recording medium on which image decoding programme is recorded
US20120177116A1 (en) * 2011-01-12 2012-07-12 General Instrument Corporation Efficient Transform Unit Representation
US20120183080A1 (en) * 2011-01-13 2012-07-19 Texas Instruments Incorporated Method and apparatus for a low complexity transform unit partitioning structure for hevc

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5196946A (en) * 1990-03-14 1993-03-23 C-Cube Microsystems System for compression and decompression of video data using discrete cosine transform and coding techniques
US5278647A (en) * 1992-08-05 1994-01-11 At&T Bell Laboratories Video decoder using adaptive macroblock leak signals
JP3423835B2 (en) 1996-05-01 2003-07-07 沖電気工業株式会社 Compression encoding device with scramble and decompression reproduction device thereof
JP3203659B2 (en) * 1996-06-06 2001-08-27 松下電器産業株式会社 Recording device, playback device, and conversion device
JP2002521884A (en) 1998-07-15 2002-07-16 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ HDTV signal recording and editing
KR100838902B1 (en) * 2000-11-29 2008-06-16 소니 가부시끼 가이샤 Stream processor
JP4217398B2 (en) * 2001-09-12 2009-01-28 キヤノン株式会社 Image data processing method, image data processing apparatus, storage medium, and program
CN100499810C (en) * 2001-11-16 2009-06-10 株式会社Ntt都科摩 Image encoding method, image decoding method, image encoder, image decode, and image transmission system
KR100884402B1 (en) * 2002-06-20 2009-02-17 삼성전자주식회사 Digital Broadcasting system for inserting pilot tone of the diferencial number according to data priority of data
US7292634B2 (en) * 2002-09-24 2007-11-06 Matsushita Electric Industrial Co., Ltd. Image coding method and apparatus
JP4617644B2 (en) 2003-07-18 2011-01-26 ソニー株式会社 Encoding apparatus and method
US7933337B2 (en) 2005-08-12 2011-04-26 Microsoft Corporation Prediction of transform coefficients for image compression
US20100014584A1 (en) * 2008-07-17 2010-01-21 Meir Feder Methods circuits and systems for transmission and reconstruction of a video block
US8483285B2 (en) * 2008-10-03 2013-07-09 Qualcomm Incorporated Video coding using transforms bigger than 4×4 and 8×8
WO2010041858A2 (en) 2008-10-06 2010-04-15 Lg Electronics Inc. A method and an apparatus for decoding a video signal
JP5234368B2 (en) 2009-09-30 2013-07-10 ソニー株式会社 Image processing apparatus and method
KR101703327B1 (en) * 2010-01-14 2017-02-06 삼성전자 주식회사 Method and apparatus for video encoding using pattern information of hierarchical data unit, and method and apparatus for video decoding using pattern information of hierarchical data unit
US8942282B2 (en) * 2010-04-12 2015-01-27 Qualcomm Incorporated Variable length coding of coded block pattern (CBP) in video compression
US9172963B2 (en) 2010-11-01 2015-10-27 Qualcomm Incorporated Joint coding of syntax elements for video coding
WO2012090504A1 (en) * 2010-12-28 2012-07-05 Panasonic Corporation Methods and apparatuses for coding and decoding video stream
US9848197B2 (en) 2011-03-10 2017-12-19 Qualcomm Incorporated Transforms in video coding
US9807426B2 (en) * 2011-07-01 2017-10-31 Qualcomm Incorporated Applying non-square transforms to video data
US9807401B2 (en) * 2011-11-01 2017-10-31 Qualcomm Incorporated Transform unit partitioning for chroma components in video coding
US9237358B2 (en) * 2011-11-08 2016-01-12 Qualcomm Incorporated Context reduction for context adaptive binary arithmetic coding
US20130128971A1 (en) * 2011-11-23 2013-05-23 Qualcomm Incorporated Transforms in video coding
US9912944B2 (en) * 2012-04-16 2018-03-06 Qualcomm Incorporated Simplified non-square quadtree transforms for video coding
GB2501535A (en) 2012-04-26 2013-10-30 Sony Corp Chrominance Processing in High Efficiency Video Codecs
AU2012232992A1 (en) 2012-09-28 2014-04-17 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the transform units of a coding unit
US9332257B2 (en) * 2012-10-01 2016-05-03 Qualcomm Incorporated Coded black flag coding for 4:2:2 sample format in video coding

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2426269C2 (en) * 2005-07-22 2011-08-10 Мицубиси Электрик Корпорейшн Image encoder and image decoder, image encoding method and image decoding method, image encoding programme and image decoding programme and computer readable recording medium on which image encoding programme is recorded and computer readable recording medium on which image decoding programme is recorded
US20080170615A1 (en) * 2007-01-12 2008-07-17 Mitsubishi Electric Corporation Moving image decoding device and moving image decoding method
US20120177116A1 (en) * 2011-01-12 2012-07-12 General Instrument Corporation Efficient Transform Unit Representation
US20120183080A1 (en) * 2011-01-13 2012-07-19 Texas Instruments Incorporated Method and apparatus for a low complexity transform unit partitioning structure for hevc

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
BENJAMIN BROSS et al., "High efficiency video coding (HEVC) text specification draft 8", Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 10th Meeting: Stockholm, SE, 11-20 July, 2012, 260 л., Document: JCTVC-J1003_d7, опубл. 28.07.2012, разделы 3.65; 6.2; 8.4.1; 8.5.3; 8.5.3.1; 8.5.3.2; 7.3.9. *
P. SILCOCK et al., "Extension of HM7 to Support Additional Chroma Formats", Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 10th Meeting: Stockholm, SE, 11-20 July, 2012, 16 л., Document: *
P. SILCOCK et al., "Extension of HM7 to Support Additional Chroma Formats", Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 10th Meeting: Stockholm, SE, 11-20 July, 2012, 16 л., Document: JCTVC-J0191, опубл. 17.07.2012. *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023229762A1 (en) * 2022-05-27 2023-11-30 Tencent America LLC Dynamic mesh compression using inter and intra prediction

Also Published As

Publication number Publication date
EP3684057B1 (en) 2023-08-16
US20180098068A1 (en) 2018-04-05
CN108769676B (en) 2022-01-11
US9854241B2 (en) 2017-12-26
ES2788757T3 (en) 2020-10-22
RU2015115514A (en) 2016-11-20
CN104685872A (en) 2015-06-03
KR20170132342A (en) 2017-12-01
AU2012232992A1 (en) 2014-04-17
US20150326883A1 (en) 2015-11-12
JP6567100B2 (en) 2019-08-28
KR20150050559A (en) 2015-05-08
AU2013325121B2 (en) 2017-03-09
BR112015004116B1 (en) 2022-10-11
CN108769676A (en) 2018-11-06
AU2013325121A1 (en) 2015-03-05
BR112015004116A2 (en) 2017-07-04
JP2018085738A (en) 2018-05-31
PL2901673T3 (en) 2020-09-21
CN104685872B (en) 2018-07-17
CN108683912A (en) 2018-10-19
RU2642825C1 (en) 2018-01-29
EP3684057A1 (en) 2020-07-22
CN108683914A (en) 2018-10-19
KR20170000394A (en) 2017-01-02
JP2018101984A (en) 2018-06-28
AU2017201208B2 (en) 2018-11-15
JP6282278B2 (en) 2018-02-21
CN108683914B (en) 2022-05-03
EP2901673A4 (en) 2016-03-30
AU2017201208A1 (en) 2017-03-16
EP2901673B1 (en) 2020-03-18
AU2012247040A1 (en) 2014-04-17
CN108683912B (en) 2022-05-03
EP2901673A1 (en) 2015-08-05
KR101911200B1 (en) 2018-10-23
KR101802322B1 (en) 2017-11-29
WO2014047693A1 (en) 2014-04-03
KR101969620B1 (en) 2019-04-16
CN108683913B (en) 2023-03-10
US20150249828A1 (en) 2015-09-03
CN108683913A (en) 2018-10-19
US20180270481A1 (en) 2018-09-20
BR112015006767B1 (en) 2022-11-29
KR20170054558A (en) 2017-05-17
BR112015006767A2 (en) 2017-07-04
US10382756B2 (en) 2019-08-13
JP2015534373A (en) 2015-11-26
US10075713B2 (en) 2018-09-11
RU2604986C2 (en) 2016-12-20
KR20170104646A (en) 2017-09-15

Similar Documents

Publication Publication Date Title
RU2673704C1 (en) Method, device and system for encoding and decoding conversion units for encoding units
RU2641223C2 (en) Method, device and system for coding and decoding units of coding unit conversion
US20190289332A1 (en) Method, apparatus and system for de-blocking video data