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 PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/12—Selection 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/122—Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/40—Tree coding, e.g. quadtree, octree
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/18—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/186—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/96—Tree coding, e.g. quad-tree coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
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 ×
декодируют, после того как декодированы массивы остаточных коэффициентов яркости, множество массивов остаточных коэффициентов цветности для первого канала цвета, при этом каждый массив остаточных коэффициентов цветности соответствует блоку цветности 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 ×
кодируют, после того как закодированы массивы остаточных коэффициентов яркости, множество массивов остаточных коэффициентов цветности для первого канала цвета, при этом каждый массив остаточных коэффициентов цветности соответствует блоку цветности 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
[0041] Как иллюстрируется, устройство-источник 110 включает в себя источник 112 видео, кодер 114 видео и передатчик 116. Источник 112 видео, как правило, выполнен в виде источника: захваченных данных видео кадра, такого как датчик формирования изображения; ранее захваченной последовательности видео, хранящейся на не временном записывающем носителе информации; или видео, подаваемого от удаленного датчика формирования изображения. Примеры устройств-источников 110, которые могут включать в себя датчик формирования изображения в качестве источника 112 видео, включают в себя интеллектуальные телефоны, видеокамеры и сетевые видеокамеры. Кодер 114 видео конвертирует захваченные данные кадра от источника 112 видео в закодированные видео данные и будет описан далее со ссылкой на Фиг. 3. Закодированные видео данные, как правило, передаются передатчиком 116 по каналу 120 связи в качестве закодированной видеоинформации. Также возможно, чтобы закодированные видео данные сохранялись на некотором устройстве хранения, таком как «Флэш» память или накопитель на жестком диске, до тех пор, пока последние не передаются по каналу 120 связи.[0041] As illustrated, the source device 110 includes a
[0042] Устройство-получатель 130 включает в себя приемник 132, декодер 134 видео и устройство 136 отображения. Приемник 132 принимает закодированную видеоинформацию от канала 120 связи и пересылает принятые видеоданные к декодеру 134 видео. Декодер 134 видео затем выводит декодированные данные кадра на устройство 136 отображения. Примеры устройства 136 отображения включают в себя электроннолучевую трубку, жидкокристаллический дисплей, такой как в интеллектуальных телефонах, планшетных компьютерах, компьютерных мониторах или стационарных телевизорах. Также возможно, чтобы функциональные возможности каждого из устройства-источника 110 и устройства-получателя 130 были воплощены в одном устройстве.[0042] The
[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
[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]
[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).
[0046] Компоненты с 205 по 213 компьютерного модуля 201, как правило, осуществляют связь через взаимосвязанную шину 204 и образом, который приводит к обычному режиму функционирования компьютерной системы 200, известной специалистам в соответствующей области. Например, процессор 205 сопрягается с системной шиной 204 при помощи соединения 218. Аналогичным образом, память 206 и накопитель 212 на оптическом диске сопрягаются с системной шиной 204 посредством соединений 219. Примеры компьютеров, на которых описанные компоновки могут быть выполнены на практике, включают в себя IBM-PC и совместимые, Sun SPARCstations, Apple Mac™ или подобные компьютерные системы.[0046]
[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
Программное обеспечение может быть сохранено на считываемом компьютером носителе информации, включающем в себя описываемые ниже устройства хранения, например. Программное обеспечение загружается в компьютерную систему 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
[0049] Программное обеспечение 233, как правило, хранится на HDD 210 или в памяти 206. Программное обеспечение загружается в компьютерную систему 200 считываемого компьютером со считываемого компьютером носителя информации, и исполняется компьютерной системой 200. Таким образом, например, программное обеспечение 233 может быть сохранено на оптически-читаемом дисковом запоминающем носителе 225 информации (например, CD-ROM), который считывается накопителем 212 на оптическом диске.[0049] The
[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,
[0051] Вторая часть прикладных программ 233 и соответствующие модули кода, упомянутые выше, могут быть исполнены для реализации одного или более графических интерфейсов пользователя (GUI) для визуализации или иного представления на дисплее 214. Посредством манипуляции, как правило, клавиатурой 202 и мышью 203, пользователь компьютерной системы 200 и приложение могут манипулировать интерфейсом функционально гибким образом для предоставления команд управления и/или ввода приложениям, связанным с GUI. Также могут быть реализованы другие формы функционально гибких интерфейсов пользователя, такие как аудиоинтерфейс, использующий вывод речевых подсказок через громкоговорители 217 и ввод голосовых команд пользователя через микрофон 280.[0051] The second part of the
[0052] Фиг. 2B является подробной принципиальной структурной схемой процессора 205 и «памяти» 234. Память 234 представляет собой логическую агрегацию всех модулей памяти (включая HDD 209 и полупроводниковую память 206), доступ к которым может быть получен посредством компьютерного модуля 201 на Фиг. 2A.[0052] FIG. 2B is a detailed schematic structural diagram of a
[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
[0054] Операционная система 253 управляет памятью 234 (209, 206) чтобы гарантировать то, что каждый процесс или приложение, запущенное на компьютерном модуле 201, имеет достаточно памяти, для исполнения без конфликта с памятью, выделенной другому процессу. Кроме того, различные типы памяти, доступные в компьютерной системе 200 с Фиг. 2A, должны быть использованы правильно с тем, чтобы каждый процесс мог выполняться эффективно. Соответственно, агрегированная память 234 не предназначена проиллюстрировать то, каким образом выделяются конкретные сегменты памяти (до тех пор, пока не изложено иначе), а скорее для предоставления общего вида памяти, доступной компьютерной системе 200, и то, как таковая используется.[0054] The
[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
[0056] Прикладная программа 233 включает в себя последовательность инструкций 231, которые могут включать в себя условные переходы и цикловые инструкции. Программа 233 также может включать в себя данные 232, которые используются при исполнении программы 233. Инструкции 231 и данные 232 хранятся в ячейках 228, 229, 230 и 235, 236, 237 памяти, соответственно. В зависимости от относительного размера инструкций 231 и ячеек 228-230 памяти, конкретная инструкция может быть сохранена в одной ячейке памяти, как изображено инструкцией, показанной в ячейке 230 памяти. В качестве альтернативы, инструкции могут быть сегментированы на некоторое количество частей, каждая из которых хранится в отдельной ячейке памяти, как изображено сегментами инструкции, показанными в ячейках 228 и 229 памяти.[0056] The
[0057] В целом, процессор 205 выдается набор инструкций, которые в нем выполняются. Процессор 205 ожидает последующего ввода, на который процессор 205 реагирует посредством исполнения другого набора инструкций. Каждый ввод может быть предоставлен от одного или более из некоторого количества источников, включая данные, генерируемые одним или более устройствами 202, 203 ввода, данные извлеченные из одного из устройств 206, 209 хранения или данные извлеченные из запоминающего носителя 225 информации, вставленного в соответствующее считывающее устройство 212, все изображенные на Фиг. 2A. Исполнение набора инструкций может в некоторых случаях приводить к выводу данных. Исполнение также может вызывать сохранение данных или переменных в памяти 234.[0057] In general, the
[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
[0059] Обращаясь к процессору 205 с Фиг. 2B, регистры 244, 245, 246, арифметико-логическое устройство 240 (ALU), и узел 239 управления работают совместно для выполнения последовательностей микроопераций, требуемых для выполнения циклов «выборки, декодирования, и исполнения» для каждой инструкции в наборе инструкций, составляющих программу 233. Каждый цикл выборки, декодирования, и исполнения содержат:[0059] Turning to the
(a) операцию выборки, которая выбирает и считывает инструкцию 231 из ячейки 228, 229, 230 памяти;(a) a sampling operation that selects and reads
(b) операцию декодирования, при которой узел 239 управления определяет, какая инструкция была отобрана; и(b) a decoding operation in which the
(c) операцию исполнения, при которой узел 239 управления и/или ALU 240 исполняет инструкцию.(c) an execution operation in which the
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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)
[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
[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
[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
[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
[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
[0089] Когда кодер 114 видео и декодер 134 видео сконфигурированы для 4:4:4 формата цветности, область цветности каждого канала цветности любой заданной единицы преобразования (TU) размера, который не является одним из предварительно определенного набора размеров единицы преобразования (TU), имеет размерности идентичные областям яркости заданной единицы преобразования (TU) (т.е., когда не имеет место подразумеваемое разбиение). Когда кодер 114 видео и декодер 134 видео сконфигурированы для 4:4:4 формата цветности, область цветности каждого канала цветности любой заданной единицы преобразования (TU) размера, который является одним из предварительно определенного набора размеров единицы преобразования (TU), имеет размерности меньше чем области яркости заданной единицы преобразования (т.е., когда не имеет место подразумеваемое разбиение).[0089] When the video encoder 114 and the
[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
[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
[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
[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 (
[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
[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
[0099] Структура 903 синтаксиса задает кодирование концевой вершины концевой вершины 932 дерева преобразования (т.е., где не имеет место дальнейшее подразделение). Флаг 940 разбиения преобразования кодирует значение флага разбиения преобразования равное нулю, такое как значение 704 флага разбиения преобразования.[0099] The syntax structure 903 defines the encoding of the end vertex of the
[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,
[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
[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
[0103] Структура 930 синтаксиса, как иллюстрируется на Фиг. 9B, показывает первое и второе преобразование каждого канала цветности кодируемое смежно для подразумеваемого разбиения преобразования. В качестве альтернативы могут быть использованы прочие компоновки, как например смежное кодирование элементов синтаксиса для каждого цветности, или кодирование элементов синтаксиса для каждого канала цветности чередующихся с другими элементами синтаксиса.[0103] The
[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
[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
[0106] Реализации также могут компоновать структуру 9102 синтаксиса дерева преобразования так, что флаг 9124 кодированного блока и участок 9126 единицы преобразования яркости (если присутствует) помещаются раньше в структуре 9102 синтаксиса дерева преобразования, как например, между флагом 9114 кодированного блока и структурой 9116 синтаксиса дерева преобразования.[0106] Implementations can also compose the transform
[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
[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
[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
[0110] Структуры 9130 и 9160 синтаксиса, как иллюстрируется на Фиг. 9D и 9E, показывают первый и второй флаг кодированного блока закодированные смежно с последующим первым и вторым массивом остаточных коэффициентов цветности каждого канала цветности для подразумеваемого разбиения преобразования. В качестве альтернативы могут быть использованы другие компоновки, такие как кодирование флага кодированного блока и массива остаточных коэффициентов цветности смежно для каждого канала цветности.[0110]
[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
[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
[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
[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
[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.
[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
[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
[0118] Этап 1008 применения прямого преобразования выполняет прямое преобразование для каждого из максимального количества преобразований по соответствующей области, которая имеет значение флага кодированного блока равное единице. Этап 1008 кодирования массивов остаточных элементов дискретизации цветности, как правило, выполняется модулем 320 преобразования. Это приводит к конвертации каждого массива остаточных элементов дискретизации цветности (представления в пространственной области) в массив остаточных коэффициентов цветности (представление в частотной области).[0118]
[0119] Этап 1010 кодирования массивов остаточных коэффициентов цветности кодирует массив остаточных коэффициентов цветности для каждого из максимального количества областей преобразования каждого канала цветности со значением флага кодированного блока равным единице в закодированный битовый поток 312. Количество массивов остаточных коэффициентов цветности, кодируемых для заданной единицы преобразования для заданного канала цветности, зависит от значения флага кодированного блока каждого преобразования и, следовательно, будет варьироваться от нуля до (в большинстве) максимального количества преобразований. Например, когда количество преобразований равно двум и оба канала цветности имеют значения флага кодированного блока равные единице для каждого из значений счетчика, тогда остаточные блоки 956, 958, 960 и 962 цветности кодируются в закодированном битовом потоке. Если значение флага кодированного блока для каждого преобразования для заданного канала цветности равно нулю, тогда остаточный блок цветности не кодируется в закодированном битовом потоке для канала цветности. Этап 1010 кодирования массива остаточных коэффициентов цветности, как правило, выполняется посредством энтропийного кодера 324.[0119]
[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
[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
[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
[0123] Этап 1106 декодирования массивов остаточных коэффициентов цветности декодирует массив остаточных коэффициентов цветности для каждого из максимального количества областей преобразования каждого канала цветности из закодированного битового потока 312 с значением флага кодированного блока равным единице. Количество массивов остаточных коэффициентов, декодируемых для заданной единицы преобразования для заданного канала цветности, зависит от значения флага кодированного блока каждого преобразования и, следовательно, будет варьироваться от нуля до (в большинстве) ‘количества (n) преобразований’. Например, когда количество преобразований равно двум и оба канала цветности имеют флаги кодированного блока равные единице для каждого из значений счетчика, тогда остаточные блоки 956, 958, 960 и 962 цветности декодируются из закодированного битового потока 312. Этап 1106 декодирования массива остаточных коэффициентов цветности, как правило, выполняется посредством энтропийного декодера 420 для каждого массива остаточных коэффициентов цветности со значением флага кодированного блока равным единице.[0123]
[0124] Этап 1108 выбора обратного преобразования затем выбирает обратное преобразование из предварительно определенного набора обратных преобразований, для каждого из максимального количества преобразований со значением флага кодированного блока равным единице для каждого канала цветности. Например, когда максимальное количество преобразований равно двум и размер области равен 16×32, а значение флага кодированного блока для каждого из двух преобразований равно единице, тогда 16×16 обратное преобразование выбирается для каждой из 16×16 областей, полученных в результате подразумеваемого разбиения.[0124]
[0125] Этап 1110 применения обратного преобразования затем выполняет обратное преобразование для каждой из максимального количества областей преобразований по соответствующей области со значением флага кодированного блока равным единице. Это приводит к конвертации каждого массива остаточных коэффициентов цветности (представления в частотной области) в массив остаточных элементов дискретизации цветности (представление в пространственной области), представляющий собой декодированный видео кадр. Этап 1110 применения обратного преобразования, как правило, выполняется посредством модуля 422 обратного масштабирования и преобразования.[0125]
[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
[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
[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
[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
[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
[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
[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
случай 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
[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
[0139] Фиг. 18 является схематичным представлением 1800, показывающим операцию пропуска преобразования, применяемую к 4×8 области цветности (с 4×8 не квадратным преобразованием) для каждого канала цвета. На Фиг. 18 изображены канал яркости (‘Y’) и каждый канал цветности (‘U’ и ‘V’). На Фиг. 18 изображены два случая:[0139] FIG. 18 is a
[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
[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: '
[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
[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
[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
[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
7.3.12 Синтаксис единицы преобразования7.3.12 Syntax of conversion unit
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
7.3.12 Синтаксис единицы преобразования7.3.12 Syntax of conversion unit
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)
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)
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)
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)
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)
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 |
-
2012
- 2012-09-28 AU AU2012232992A patent/AU2012232992A1/en not_active Abandoned
- 2012-11-08 AU AU2012247040A patent/AU2012247040A1/en not_active Abandoned
-
2013
- 2013-09-27 KR KR1020177033755A patent/KR101911200B1/en active IP Right Grant
- 2013-09-27 KR KR1020157005799A patent/KR101969620B1/en active IP Right Grant
- 2013-09-27 EP EP20156165.1A patent/EP3684057B1/en active Active
- 2013-09-27 CN CN201810750914.8A patent/CN108683914B/en active Active
- 2013-09-27 EP EP13841668.0A patent/EP2901673B1/en active Active
- 2013-09-27 CN CN201810750830.4A patent/CN108683913B/en active Active
- 2013-09-27 US US14/431,724 patent/US9854241B2/en active Active
- 2013-09-27 PL PL13841668T patent/PL2901673T3/en unknown
- 2013-09-27 RU RU2016143994A patent/RU2642825C1/en active
- 2013-09-27 CN CN201810750800.3A patent/CN108769676B/en active Active
- 2013-09-27 CN CN201380050888.3A patent/CN104685872B/en active Active
- 2013-09-27 WO PCT/AU2013/001116 patent/WO2014047693A1/en active Application Filing
- 2013-09-27 KR KR1020177012164A patent/KR20170054558A/en active Search and Examination
- 2013-09-27 KR KR1020177024785A patent/KR20170104646A/en not_active Application Discontinuation
- 2013-09-27 US US14/440,861 patent/US10075713B2/en active Active
- 2013-09-27 RU RU2015115514/08A patent/RU2604986C2/en active
- 2013-09-27 JP JP2015533379A patent/JP6282278B2/en active Active
- 2013-09-27 AU AU2013325121A patent/AU2013325121B2/en active Active
- 2013-09-27 CN CN201810750515.1A patent/CN108683912B/en active Active
- 2013-09-27 BR BR112015006767-0A patent/BR112015006767B1/en active IP Right Grant
- 2013-09-27 KR KR1020167035829A patent/KR101802322B1/en active IP Right Grant
- 2013-09-27 RU RU2017144172A patent/RU2673704C1/en active
- 2013-09-27 ES ES13841668T patent/ES2788757T3/en active Active
- 2013-09-27 BR BR112015004116-7A patent/BR112015004116B1/en active IP Right Grant
-
2017
- 2017-02-22 AU AU2017201208A patent/AU2017201208B2/en active Active
- 2017-11-21 US US15/819,585 patent/US10382756B2/en active Active
- 2017-12-25 JP JP2017248473A patent/JP2018085738A/en active Pending
-
2018
- 2018-01-24 JP JP2018009529A patent/JP6567100B2/en active Active
- 2018-05-22 US US15/986,087 patent/US20180270481A1/en not_active Abandoned
Patent Citations (4)
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)
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)
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
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 |