RU2631992C2 - Method of encoding image and method of decoding image - Google Patents

Method of encoding image and method of decoding image Download PDF

Info

Publication number
RU2631992C2
RU2631992C2 RU2016106331A RU2016106331A RU2631992C2 RU 2631992 C2 RU2631992 C2 RU 2631992C2 RU 2016106331 A RU2016106331 A RU 2016106331A RU 2016106331 A RU2016106331 A RU 2016106331A RU 2631992 C2 RU2631992 C2 RU 2631992C2
Authority
RU
Russia
Prior art keywords
transform
matrix
unit
transformation
prediction
Prior art date
Application number
RU2016106331A
Other languages
Russian (ru)
Other versions
RU2016106331A (en
Inventor
Дзун ЯМАГУТИ
Акиюки ТАНИЗАВА
Original Assignee
Кабусики Кайся Тосиба
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Кабусики Кайся Тосиба filed Critical Кабусики Кайся Тосиба
Priority to RU2016106331A priority Critical patent/RU2631992C2/en
Publication of RU2016106331A publication Critical patent/RU2016106331A/en
Application granted granted Critical
Publication of RU2631992C2 publication Critical patent/RU2631992C2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Abstract

FIELD: physics.
SUBSTANCE: image decoding method in which the transform coefficients for the target image to be decoded and the information indicative of the internal prediction mode for the target image are decoded; scanning coefficients for generating scanned conversion coefficients; a combination of a matrix of a vertical inverse transform and a horizontal inverse transform matrix corresponding to the target image is determined based on a predetermined ratio; inversely converting the scanned transform coefficients along the vertical direction and the horizontal direction using a combination of a vertical inverse transformation matrix and a horizontal inverse transformation matrix when the internal prediction mode is the first mode or the second mode to obtain the prediction error; and a decoded image is generated based on the prediction error.
EFFECT: increasing the efficiency of video decoding.
46 dwg

Description

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

Варианты осуществления настоящего изобретения относятся к ортогональному преобразованию и обратному ортогональному преобразованию при кодировании и декодировании видео.Embodiments of the present invention relate to orthogonal transform and inverse orthogonal transform when encoding and decoding a video.

УРОВЕНЬ ТЕХНИКИBACKGROUND

В последние годы способ кодирования изображения со значительно улучшенной эффективностью кодирования был совместно рекомендован ITU-T и ISO/IEC как ITU-T REC. H. 264 и ISO/IEC 14496-10 (в дальнейшем в этом документе называемый как "H. 264"). H. 264 осуществляет дискретное косинусное преобразование (DCT) и обратное дискретное косинусное преобразование (IDCT) в качестве ортогонального преобразования и обратного ортогонального преобразования ошибок предсказания в целевом блоке пикселей независимо от схемы предсказания, примененной к целевому блоку пикселей.In recent years, an image encoding method with significantly improved encoding efficiency has been jointly recommended by ITU-T and ISO / IEC as ITU-T REC. H. 264 and ISO / IEC 14496-10 (hereinafter referred to as "H. 264"). H. 264 performs discrete cosine transform (DCT) and inverse discrete cosine transform (IDCT) as the orthogonal transform and inverse orthogonal transform of prediction errors in the target pixel block regardless of the prediction scheme applied to the target pixel block.

Расширенный H. 264 предполагается для осуществления ортогонального преобразования и обратного ортогонального преобразования используя индивидуальные базисы преобразования для соответственных девяти типов режимов предсказания, заданных для предсказания внутри картинки (внутреннее предсказание), таким образом увеличивая эффективность кодирования.Advanced H. 264 is intended to perform orthogonal transform and inverse orthogonal transform using individual transform bases for the respective nine types of prediction modes specified for intra-picture prediction (intra prediction), thereby increasing the coding efficiency.

СПИСОК ЦИТИРУЕМОЙ ЛИТЕРАТУРЫLIST OF REFERENCES

НЕПАТЕНТНАЯ ЛИТЕРАТУРАNON-PATENT LITERATURE

Непатентная литература 1: M. Karczewicz, "Improved intra coding", ITU-T SG16/Q. 6, Документ VCEG, VCEG-AF15, апрель 2007.Non-Patent Literature 1: M. Karczewicz, "Improved intra coding", ITU-T SG16 / Q. 6, VCEG Document, VCEG-AF15, April 2007.

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

ТЕХНИЧЕСКАЯ ПРОБЛЕМАTECHNICAL PROBLEM

Однако сложно в связи с реализацией осуществить ортогональное преобразование и обратное ортогональное преобразование, используя индивидуальные базисы преобразования для соответственных многочисленных типов режимов предсказания. Например, аппаратная реализация требует не только выделенного аппаратного обеспечения для DCT и IDCT, требуемых для H. 264, но также выделенного аппаратного обеспечения для индивидуальных ортогональных преобразований и обратных ортогональных преобразований для соответственных многочисленных типов направлений предсказания. Добавление выделенного аппаратного обеспечение увеличивает масштаб релевантных схем.However, in connection with the implementation, it is difficult to carry out orthogonal transformation and inverse orthogonal transformation using individual transformation bases for the respective numerous types of prediction modes. For example, a hardware implementation requires not only the dedicated hardware for DCT and IDCT required for H. 264, but also dedicated hardware for individual orthogonal transforms and inverse orthogonal transforms for the respective multiple types of prediction directions. Adding dedicated hardware increases the scale of relevant circuits.

Программная реализация позволяет загрузить из памяти в случае необходимости и удерживать в кэш-памяти в случае необходимости. В этом случае желаемые ортогональное преобразование и обратное ортогональное преобразование могут быть реализованы посредством устройства умножения общего назначения. Однако непредпочтительно то, что расходы увеличиваются в результате увеличения пропускной способности памяти или размера кэш-памяти.The software implementation allows you to load from memory if necessary and store in the cache if necessary. In this case, the desired orthogonal transform and the inverse orthogonal transform can be realized by a general purpose multiplication device. However, it is not preferable that the costs increase as a result of increased memory bandwidth or cache size.

Таким образом, целью вариантов осуществления является предоставить ортогональное преобразование и обратное ортогональное преобразование, которые позволяют улучшить эффективность кодирования.Thus, the aim of the embodiments is to provide an orthogonal transform and an inverse orthogonal transform that can improve coding efficiency.

РЕШЕНИЕ ПРОБЛЕМЫSOLUTION

Согласно одному аспекту способ кодирования изображения включает в себя предсказание ошибки предсказания целевого изображения, которое следует кодировать, на основе режима внутреннего предсказания. Способ включает себя задание комбинации из матрицы вертикального преобразования и матрицы горизонтального преобразования, соответствующей целевому изображению на основе предварительно определенного отношения. Данная комбинация включает в себя любую из множества матриц преобразования, включая первую матрицу преобразования и вторую матрицу преобразования, которая увеличивает плотность коэффициентов по сравнению с первой матрицей преобразования, если одномерное ортогональное преобразование, в направлении, ортогональном линии из группы опорных пикселей на по меньшей мере одной линии, выполняется над ошибкой предсказания в режиме внутреннего предсказания, в котором ссылаются на группу опорных пикселей для генерирования изображения с внутренним предсказанием. Способ включает в себя преобразование ошибки предсказания, используя комбинацию из матрицы вертикального преобразования и матрицы горизонтального преобразования, для получения коэффициентов преобразования. Способ включает в себя кодирование коэффициентов преобразования и информации, указывающей режим внутреннего предсказания для целевого изображения.According to one aspect, an image encoding method includes predicting a prediction error of a target image to be encoded based on an intra prediction mode. The method includes setting a combination of a vertical transformation matrix and a horizontal transformation matrix corresponding to the target image based on a predetermined ratio. This combination includes any of a variety of transformation matrices, including a first transformation matrix and a second transformation matrix, which increases the coefficient density compared to the first transformation matrix if the one-dimensional orthogonal transformation, in the direction orthogonal to the line from the group of reference pixels on at least one the line is executed on the prediction error in the intra prediction mode, in which a group of reference pixels is referenced to generate an image from the inner him a prediction. The method includes predicting error conversion using a combination of a vertical transformation matrix and a horizontal transformation matrix to obtain transform coefficients. The method includes coding transform coefficients and information indicating an intra prediction mode for a target image.

Согласно другому аспекту способ декодирования изображения включает в себя декодирование коэффициентов преобразования для целевого изображения, которое следует декодировать, и информации, указывающей режим внутреннего предсказания для целевого изображения. Способ включает себя задание комбинации из матрицы вертикального обратного преобразования и матрицы горизонтального обратного преобразования, соответствующей целевому изображению на основе предварительно определенного отношения. Данная комбинация включает в себя любую из множества транспонированных матриц из множества матриц преобразования, включая первую матрицу преобразования и вторую матрицу преобразования, которая увеличивает плотность коэффициентов по сравнению с первой матрицей преобразования, если одномерное ортогональное преобразование, в направлении, ортогональном линии из группы опорных пикселей на по меньшей мере одной линии, выполняется над ошибкой предсказания в режиме внутреннего предсказания, в котором ссылаются на группу опорных пикселей для генерирования изображения с внутренним предсказанием. Способ включает в себя выполнение обратного преобразования коэффициентов предсказания, используя комбинацию из матрицы вертикального обратного преобразования и матрицы горизонтального обратного преобразования, для получения ошибки предсказания. Способ включает в себя генерирование декодированного изображения на основе ошибки предсказания.According to another aspect, an image decoding method includes decoding transform coefficients for a target image to be decoded, and information indicating an intra prediction mode for the target image. The method includes setting a combination of a vertical inverse transform matrix and a horizontal inverse transform matrix corresponding to the target image based on a predetermined ratio. This combination includes any of a plurality of transposed matrices from a plurality of transformation matrices, including a first transformation matrix and a second transformation matrix, which increases the coefficient density compared to the first transformation matrix if the one-dimensional orthogonal transformation is in the direction orthogonal to the line from the group of reference pixels by at least one line is executed on the prediction error in the intra prediction mode, which refers to a group of reference pixels for To generate an intra-prediction image. The method includes performing an inverse transform of the prediction coefficients using a combination of a vertical inverse transform matrix and a horizontal inverse transform matrix to obtain a prediction error. The method includes generating a decoded image based on a prediction error.

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

На Фиг. 1 показана блок-схема, иллюстрирующая устройство кодирования изображения согласно первому варианту осуществления.In FIG. 1 is a block diagram illustrating an image encoding apparatus according to a first embodiment.

На Фиг. 2 показана блок-схема, иллюстрирующая блок ортогонального преобразования согласно первому варианту осуществления.In FIG. 2 is a block diagram illustrating an orthogonal transform unit according to the first embodiment.

На Фиг. 3 показана блок-схема, иллюстрирующая блок обратного ортогонального преобразования согласно первому варианту осуществления.In FIG. 3 is a block diagram illustrating an inverse orthogonal transform unit according to the first embodiment.

На Фиг. 4A показана таблица, иллюстрирующая соответствие между режимами предсказания и индексом вертикального преобразования и индексом горизонтального преобразования согласно первому варианту осуществления.In FIG. 4A is a table illustrating a correspondence between prediction modes and a vertical transform index and a horizontal transform index according to the first embodiment.

На Фиг. 4B показана таблица, иллюстрирующая соответствие между индексом вертикального преобразования и матрицами 1D преобразования согласно первому варианту осуществления.In FIG. 4B is a table illustrating the correspondence between the vertical transformation index and the transformation matrices 1D according to the first embodiment.

На Фиг. 4C показана таблица, иллюстрирующая соответствие между индексом горизонтального преобразования и матрицами 1D преобразования согласно первому варианту осуществления.In FIG. 4C is a table illustrating the correspondence between the horizontal transform index and the transform matrices 1D according to the first embodiment.

На Фиг. 4D показана таблица, иллюстрирующая соответствие между индексом преобразования и индексом вертикального преобразования и индексом горизонтального преобразования согласно первому варианту осуществления.In FIG. 4D is a table illustrating a correspondence between a transform index and a vertical transform index and a horizontal transform index according to the first embodiment.

На Фиг. 4E показана таблица, полученная посредством объединения Фиг. 4A с 4D.In FIG. 4E shows a table obtained by combining FIG. 4A with 4D.

На Фиг. 5A показана блок-схема, иллюстрирующая блок управления порядком коэффициентов согласно первому варианту осуществления.In FIG. 5A is a block diagram illustrating a coefficient order control unit according to the first embodiment.

На Фиг. 5B показана блок-схема, иллюстрирующая блок управления порядком коэффициентов согласно первому варианту осуществления.In FIG. 5B is a block diagram illustrating a coefficient order control unit according to the first embodiment.

На фиг. 6A показано графическое представление, иллюстрирующее порядок кодирования с предсказанием блока пикселей.In FIG. 6A is a graphical representation illustrating a pixel block prediction coding order.

На фиг. 6B показано графическое представление, иллюстрирующее пример размера блока пикселей.In FIG. 6B is a graphical view illustrating an example of a block size of pixels.

На фиг. 6C показано графическое представление, иллюстрирующее пример размера блока пикселей.In FIG. 6C is a graphical view illustrating an example of pixel block size.

На фиг. 6D показано графическое представление, иллюстрирующее пример размера блока пикселей.In FIG. 6D is a graphical view illustrating an example of a block size of pixels.

На фиг. 7A показано графическое представление, иллюстрирующее режим внутреннего предсказания.In FIG. 7A is a graphical view illustrating an intra prediction mode.

На фиг. 7B показано графическое представление, иллюстрирующее отношение расположения между целевыми пикселями предсказания и опорными пикселями.In FIG. 7B is a graphical view illustrating an arrangement relationship between prediction target pixels and reference pixels.

На фиг. 7C показано графическое представление, иллюстрирующее режим 1 внутреннего предсказания.In FIG. 7C is a graphical view illustrating intra prediction mode 1.

На фиг. 7D показано графическое представление, иллюстрирующее режим 4 внутреннего предсказания.In FIG. 7D is a graphical view illustrating intra prediction mode 4.

На фиг. 8A показано графическое представление, иллюстрирующее зигзагообразное сканирование.In FIG. 8A is a graphical view illustrating a zigzag scan.

На фиг. 8B показано графическое представление, иллюстрирующее зигзагообразное сканирование.In FIG. 8B is a graphical view illustrating a zigzag scan.

На Фиг. 8C показана таблица, показывающая 2D-1D преобразование, использующее зигзагообразное сканирование.In FIG. 8C is a table showing a 2D-1D transformation using a zigzag scan.

На Фиг. 9 показана таблица, показывающая индивидуальные 2D-1D преобразования для соответственных режимов предсказания.In FIG. 9 is a table showing individual 2D-1D transformations for respective prediction modes.

На Фиг. 10A показана схема последовательности операций, иллюстрирующая обработку, осуществляемую над целевым блоком кодирования посредством устройства кодирования изображения на Фиг. 1.In FIG. 10A is a flowchart illustrating processing performed on the encoding target block by the image encoding apparatus of FIG. one.

На Фиг. 10B показана схема последовательности операций, иллюстрирующая обработку, осуществляемую над целевым блоком кодирования посредством устройства кодирования изображения на Фиг. 1.In FIG. 10B is a flowchart illustrating processing performed on the encoding target block by the image encoding apparatus in FIG. one.

На фиг. 11 показано графическое представление, иллюстрирующее структуру синтаксиса.In FIG. 11 is a graphical representation illustrating a syntax structure.

На фиг. 12 показано графическое представление, иллюстрирующее синтаксис заголовка вырезки.In FIG. 12 is a graphical representation illustrating the syntax of a clipping header.

На фиг. 13 показано графическое представление, иллюстрирующее синтаксис единицы дерева кодирования.In FIG. 13 is a graphical representation illustrating the syntax of a coding tree unit.

На фиг. 14 показано графическое представление, иллюстрирующее синтаксис единицы преобразования.In FIG. 14 is a graphical representation illustrating the syntax of a conversion unit.

На Фиг. 15 показана блок-схема, иллюстрирующая блок ортогонального преобразования, который осуществляет ортогональное преобразование по каждому из девяти типов направлений предсказания, используя конкретный базис преобразования.In FIG. 15 is a block diagram illustrating an orthogonal transform unit that performs orthogonal transform on each of the nine types of prediction directions using a specific transform basis.

На Фиг. 16 показана блок-схема, иллюстрирующая блок ортогонального преобразования согласно второму варианту осуществления.In FIG. 16 is a block diagram illustrating an orthogonal transform unit according to the second embodiment.

На Фиг. 17 показана блок-схема, иллюстрирующая блок обратного ортогонального преобразования согласно второму варианту осуществления.In FIG. 17 is a block diagram illustrating an inverse orthogonal transform unit according to the second embodiment.

На Фиг. 18A показана таблица, иллюстрирующая соответствие между режимами предсказания и индексом вертикального преобразования и индексом горизонтального преобразования согласно второму варианту осуществления.In FIG. 18A is a table illustrating a correspondence between prediction modes and a vertical transform index and a horizontal transform index according to the second embodiment.

На Фиг. 18B показана таблица, иллюстрирующая соответствие между индексом вертикального преобразования и матрицами 1D преобразования согласно второму варианту осуществления.In FIG. 18B is a table illustrating a correspondence between the vertical transformation index and the transformation matrices 1D according to the second embodiment.

На Фиг. 18C показана таблица, иллюстрирующая соответствие между индексом горизонтального преобразования и матрицами 1D преобразования согласно второму варианту осуществления.In FIG. 18C is a table illustrating the correspondence between the horizontal transform index and the transform matrices 1D according to the second embodiment.

На Фиг. 18D показана таблица, иллюстрирующая соответствие между индексом преобразования и индексом вертикального преобразования и индексом горизонтального преобразования согласно второму варианту осуществления.In FIG. 18D is a table illustrating a correspondence between a transform index and a vertical transform index and a horizontal transform index according to the second embodiment.

На Фиг. 18E показана таблица, полученная посредством объединения Фиг. 18A с 18D.In FIG. 18E shows a table obtained by combining FIG. 18A with 18D.

На Фиг. 19 показана блок-схема, иллюстрирующая блок ортогонального преобразования согласно третьему варианту осуществления.In FIG. 19 is a block diagram illustrating an orthogonal transform unit according to a third embodiment.

На Фиг. 20 показана блок-схема, иллюстрирующая блок обратного ортогонального преобразования согласно третьему варианту осуществления.In FIG. 20 is a block diagram illustrating an inverse orthogonal transform block according to a third embodiment.

На Фиг. 21A показана таблица, иллюстрирующая соответствие между режимами предсказания и индексом вертикального преобразования и индексом горизонтального преобразования согласно третьему варианту осуществления.In FIG. 21A is a table illustrating a correspondence between prediction modes and a vertical transform index and a horizontal transform index according to the third embodiment.

На Фиг. 21B показана таблица, иллюстрирующая соответствие между индексом вертикального преобразования и матрицами 1D преобразования согласно третьему варианту осуществления.In FIG. 21B is a table illustrating a correspondence between the vertical transformation index and the transformation matrices 1D according to the third embodiment.

На Фиг. 21C показана таблица, иллюстрирующая соответствие между индексом горизонтального преобразования и матрицами 1D преобразования согласно третьему варианту осуществления.In FIG. 21C is a table illustrating the correspondence between the horizontal transform index and the transform matrices 1D according to the third embodiment.

На Фиг. 21D показана таблица, иллюстрирующая соответствие между индексом преобразования и индексом вертикального преобразования и индексом горизонтального преобразования согласно третьему варианту осуществления.In FIG. 21D is a table illustrating a correspondence between a transform index and a vertical transform index and a horizontal transform index according to the third embodiment.

На Фиг. 21E показана таблица, полученная посредством объединения Фиг. 21A с 21D.In FIG. 21E shows a table obtained by combining FIG. 21A with 21D.

На Фиг. 22 показана блок-схема, иллюстрирующая устройство декодирования изображения согласно четвертому варианту осуществления.In FIG. 22 is a block diagram illustrating an image decoding apparatus according to a fourth embodiment.

На Фиг. 23A показана блок-схема, иллюстрирующая блок управления порядком коэффициентов согласно четвертому варианту осуществления.In FIG. 23A is a block diagram illustrating a coefficient order control unit according to a fourth embodiment.

На Фиг. 23B показана блок-схема, иллюстрирующая блок управления порядком коэффициентов согласно четвертому варианту осуществления.In FIG. 23B is a block diagram illustrating a coefficient order control unit according to a fourth embodiment.

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

Варианты осуществления будут описаны ниже со ссылкой на чертежи. В описании ниже, термин "изображение" может быть заменен термином "сигнал изображения", "данные изображения", или тому подобным в случае необходимости.Embodiments will be described below with reference to the drawings. In the description below, the term “image” may be replaced by the term “image signal”, “image data”, or the like, if necessary.

(ПЕРВЫЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ)(FIRST EMBODIMENT)

Первый вариант осуществления относится к устройству кодирования изображения. Устройство декодирования изображения, соответствующее устройству кодирования изображения согласно настоящему варианту осуществления, будет описано в четвертом варианте осуществления. Устройство кодирования изображения может быть реализовано посредством аппаратного обеспечения, такого как кристаллы БИС (большой интегральной схемы), DSP (процессоры цифровой обработки сигналов), FPGA (программируемые пользователем вентильные матрицы) и тому подобного. К тому же устройство кодирования изображения может быть также реализовано посредством обеспечения возможности компьютеру исполнять программу кодирования изображения.The first embodiment relates to an image encoding device. An image decoding apparatus corresponding to an image encoding apparatus according to the present embodiment will be described in the fourth embodiment. An image encoding device may be implemented by hardware such as LSI (large integrated circuit) crystals, DSP (digital signal processing processors), FPGA (user programmable gate arrays), and the like. In addition, the image encoding device may also be implemented by enabling the computer to execute the image encoding program.

Как показано на Фиг. 1, устройство кодирования изображения согласно настоящему варианту осуществления включает в себя блок 101 вычитания, блок 102 ортогонального преобразования, блок 103 квантования, блок деквантования, блок 105 обратного ортогонального преобразования, блок 106 сложения, память 107 опорного изображения, блок 108 внутреннего предсказания, блок 109 внешнего предсказания, блок 110 выбора предсказания, переключатель 111 выбора предсказания, блок 112 задания матрицы 1D (одномерного) преобразования, блок 113 управления порядком коэффициентов, блок 114 энтропийного кодирования, выходной буфер 115 и блок 116 управления кодированием.As shown in FIG. 1, the image encoding apparatus according to the present embodiment includes a subtraction unit 101, an orthogonal transform unit 102, a quantization unit 103, a dequantization unit, an orthogonal transform unit 105, an addition unit 106, a reference image memory 107, an intra prediction unit 108, a block 109 prediction block, prediction selection block 110, prediction selection switch 111, block 112 of setting the matrix 1D (one-dimensional) transformation, block 113 control the order of the coefficients, block 114 of the entropy to encoding, output buffer 115, and encoding control unit 116.

Устройство кодирования изображения на Фиг. 1 делит каждый из кадров или полей, образующих входное изображение 118, на множество блоков пикселей, осуществляет кодирование с предсказанием блоков пикселей, возникающих в результате деления, и выводит кодированные данные 130. Для упрощения предполагается, что кодирование с предсказанием в дальнейшем в этом документе осуществляется над блоком пикселей от верхнего левого к нижнему правому, как показано на Фиг. 6A. На Фиг. 6A показан целевой кадр f кодирования, в котором кодированные блоки p пикселей расположены слева и выше целевого блока c пикселей кодирования.The image encoding apparatus of FIG. 1 divides each of the frames or fields constituting the input image 118 into a plurality of pixel blocks, performs prediction coding of blocks of pixels resulting from division, and outputs encoded data 130. For simplicity, it is assumed that prediction coding is further performed in this document above the block of pixels from upper left to lower right, as shown in FIG. 6A. In FIG. 6A shows a coding target frame f in which the encoded blocks of p pixels are located to the left and above the coding pixel target block c.

Здесь, блок пикселей относится к, например, единице дерева кодирования, макроблоку, подблоку или пикселю. Блок пикселей в дальнейшем в этом документе в основном используется, чтобы означать единицу дерева кодирования, но может интерпретироваться так, чтобы иметь другое значение в случае необходимости. Единицей дерева кодирования является обычно, например, блок пикселей 16 x 16, показанный на Фиг. 6B, но может быть блоком пикселей 32 x 32, показанным на Фиг. 6C, блоком пикселей 64 x 64, показанным на Фиг. 6D, или блоком пикселей 8 x 8 или блоком пикселей 4 x 4, показанными на чертежах. Единица дерева кодирования необязательно должна быть квадратной. Целевой блок кодирования или единица дерева кодирования во входном изображении в дальнейшем в этом документе иногда называется как "целевой блок предсказания". К тому же единица кодирования не ограничена блоком пикселей, таким как единица дерева кодирования, но может быть кадром, полем, или их комбинацией.Here, a pixel block refers to, for example, a coding tree unit, a macroblock, a subblock, or a pixel. The pixel block is hereinafter mainly used to mean a unit of a coding tree, but can be interpreted to have a different value if necessary. A coding tree unit is typically, for example, a 16 x 16 pixel block shown in FIG. 6B, but may be the 32 x 32 pixel block shown in FIG. 6C, by the 64 x 64 pixel block shown in FIG. 6D, or an 8 x 8 pixel block or a 4 x 4 pixel block shown in the drawings. The coding tree unit does not have to be square. The encoding target block or coding tree unit in the input image is hereinafter sometimes referred to as the "prediction target block". In addition, the coding unit is not limited to a block of pixels, such as a coding tree unit, but may be a frame, field, or a combination thereof.

Устройство кодирования изображения на Фиг. 1 осуществляет внутреннее предсказание (также называемое как внутрикадровое, внутрикадровое предсказание или тому подобное) или внешнее предсказание (также называемое как предсказание между картинками, межкадровое предсказание или тому подобное) для генерирования предсказанного изображения 127. Устройство кодирования изображения ортогонально преобразует и квантует ошибку 119 предсказания между блоком пикселей (входное изображение 118) и предсказанным изображением 127. Устройство кодирования изображения затем осуществляет энтропийное кодирование преобразованной и квантованной ошибки предсказания, чтобы сгенерировать и вывести кодированные данные 130.The image encoding apparatus of FIG. 1 performs intra prediction (also referred to as intra-frame prediction, intra-frame prediction or the like) or inter prediction (also called inter-picture prediction, inter prediction or the like) to generate a predicted image 127. The image encoding apparatus orthogonally converts and quantizes the prediction error 119 between a block of pixels (input image 118) and a predicted image 127. The image encoding device then performs an entropy to dirovanie transformed and quantized prediction error to generate and output the encoded data 130.

Устройство кодирования изображения на Фиг. 1 осуществляет кодирование посредством выборочного применения множества режимов предсказания, предусматривающих разные размеры блоков и разные способы для генерирования предсказанного изображения 127. Способ для генерирования предсказанного изображения 127 грубо классифицируется на два типа: внутреннее предсказание, которое осуществляет предсказание внутри целевого кадра кодирования, и внешнее предсказание, которое осуществляет предсказание, используя один или более опорных кадров, временно отличающихся друг от друга. В настоящем варианте осуществления, ортогональное преобразование и обратное ортогональное преобразование, осуществляемые для генерирования предсказанного изображения, используя внутреннее предсказание, будут описаны подробно.The image encoding apparatus of FIG. 1 performs encoding by selectively applying a plurality of prediction modes involving different block sizes and different methods for generating the predicted image 127. The method for generating the predicted image 127 is roughly classified into two types: intra prediction, which performs prediction within the encoding target frame, and inter prediction, which predicts using one or more reference frames temporarily different from each other. In the present embodiment, the orthogonal transform and inverse orthogonal transform performed to generate the predicted image using intra prediction will be described in detail.

Компоненты устройства кодирования изображения на Фиг. 1 будут описаны ниже.The components of the image encoding device in FIG. 1 will be described below.

Вычитающее устройство 101 вычитает соответствующее предсказанное изображение 127 из целевого блока кодирования во входном изображении 118, чтобы получить ошибку 119 предсказания. Устройство 101 вычитания вводит ошибку 119 предсказания в блок 102 ортогонального преобразования.Subtractor 101 subtracts the corresponding predicted image 127 from the encoding target block in the input image 118 to obtain a prediction error 119. Subtractor 101 introduces prediction error 119 into orthogonal transform unit 102.

Блок 102 ортогонального преобразования преобразует ошибку 119 предсказания из устройства 101 вычитания для получения коэффициентов 120 преобразования. Блок 102 ортогонального преобразования будет подробно описан ниже. Блок 102 ортогонального преобразования вводит коэффициенты преобразования 120 в блок 103 квантования.The orthogonal transform unit 102 converts the prediction error 119 from the subtractor 101 to obtain transform coefficients 120. An orthogonal transform unit 102 will be described in detail below. An orthogonal transform unit 102 inputs transform coefficients 120 into a quantization unit 103.

Блок 103 квантования квантует коэффициенты преобразования из блока 102 ортогонального преобразования для получения квантованных коэффициентов 121 преобразования. Конкретно, блок 103 квантования осуществляет квантование в соответствии с информацией квантования, такой как параметр квантования и матрица квантования, которая задана блоком 116 управления кодированием. Параметр квантования указывает разрешение квантования. Матрица квантования используется для назначения веса разрешению квантования для каждого компонента коэффициентов преобразования. Блок 103 квантования вводит коэффициенты 121 преобразования в блок 113 управления порядком коэффициентов и блок 104 деквантования.The quantization unit 103 quantizes the transform coefficients from the orthogonal transform unit 102 to obtain quantized transform coefficients 121. Specifically, the quantization unit 103 quantizes in accordance with the quantization information, such as a quantization parameter and a quantization matrix, which is specified by the encoding control unit 116. The quantization parameter indicates the quantization resolution. A quantization matrix is used to assign weights to the quantization resolution for each component of the transform coefficients. The quantization unit 103 inputs transform coefficients 121 to the coefficient order control unit 113 and the dequantization unit 104.

Блок 113 управления порядком коэффициентов преобразует квантованные коэффициенты 121 преобразования, которые являются двухмерным (2D) выражением, в последовательность 117 квантованных коэффициентов преобразования, которая является одномерным (1D) выражением. Блок 113 управления порядком коэффициентов затем вводит последовательность 117 квантованных коэффициентов преобразования в блок 114 энтропийного кодирования. Блок 113 управления коэффициентами будет подробно описан ниже.The coefficient order control unit 113 converts the quantized transform coefficients 121, which are a two-dimensional (2D) expression, into a sequence 117 of quantized transform coefficients, which is a one-dimensional (1D) expression. The coefficient order control unit 113 then introduces a sequence 117 of quantized transform coefficients into the entropy encoding unit 114. The coefficient control unit 113 will be described in detail below.

Блок 114 энтропийного кодирования осуществляет энтропийное кодирование (например, кодирование по алгоритму Хаффмана или арифметическое кодирование) над различными параметрами кодирования, такими как последовательность 117 квантованных коэффициентов преобразования из блока 113 управления коэффициентами, информация 126 предсказания из блока 110 выбора предсказания и информация квантования, которые задаются блоком 116 управления кодирования. Параметры кодирования требуются для декодирования и включают в себя информацию 126 предсказания, информацию по коэффициентам преобразования и информацию по квантованию. Параметры кодирования удерживаются во внутренней памяти (не показана на чертежах) в блоке 116 управления кодированием. Когда кодируется целевой блок предсказания, могут быть использованы параметры кодирования для уже кодированных смежных блоков пикселей. Например, внутреннее предсказание H. 264 позволяет получить предсказанное значение для режима предсказания целевого блока предсказания из информации режима предсказания по кодированному смежному блоку.Entropy encoding unit 114 performs entropy encoding (e.g., Huffman coding or arithmetic coding) over various encoding parameters, such as a sequence 117 of quantized transform coefficients from coefficient control unit 113, prediction information 126 from prediction selection unit 110 and quantization information that are set a coding control unit 116. Encoding parameters are required for decoding and include prediction information 126, transform coefficient information, and quantization information. Encoding parameters are held in internal memory (not shown in the drawings) in encoding control unit 116. When the prediction target block is encoded, encoding parameters for already encoded adjacent pixel blocks may be used. For example, H. 264 intra prediction allows obtaining the predicted value for the prediction mode of the prediction target block from the prediction mode information from the encoded adjacent block.

Кодированные данные, сгенерированные блоком 114 энтропийного кодирования, например, мультиплексируются и затем временно накапливаются в выходном буфере 115. Данные затем выводятся как кодированные данные 130 в соответствии с должным временным интервалом вывода, управляемым блоком 116 управления кодированием. Кодированные данные 130 выводятся, например, в систему накопления (носитель накопления) или систему передачи (линию связи), которые не показаны на чертежах.The encoded data generated by the entropy encoding unit 114, for example, is multiplexed and then temporarily accumulated in the output buffer 115. The data is then output as encoded data 130 in accordance with the proper output time interval controlled by the encoding control unit 116. Coded data 130 is output, for example, to an accumulation system (storage medium) or transmission system (communication line), which are not shown in the drawings.

Блок 104 деквантования деквантует квантованные коэффициенты 121 преобразования из блока 103 квантования для получения восстановленных коэффициентов 122 преобразования. Конкретно, блок 104 деквантования осуществляет деквантование в соответствии с информацией квантования, используемой в блоке 103 квантования. Информация квантования, используемая в блоке 103 квантования, загружается из внутренней памяти в блоке 116 управления кодированием. Блок 104 деквантования вводит восстановленные коэффициенты 122 преобразования в блок 105 обратного ортогонального преобразования.The dequantization unit 104 quantizes the quantized transform coefficients 121 from the quantization unit 103 to obtain the reconstructed transform coefficients 122. Specifically, the dequantization unit 104 dequantizes in accordance with the quantization information used in the quantization unit 103. The quantization information used in the quantization unit 103 is loaded from the internal memory in the encoding control unit 116. The dequantization unit 104 introduces the reconstructed transform coefficients 122 into the inverse orthogonal transform unit 105.

Блок обратного ортогонального преобразования 105 осуществляет обратное ортогональное преобразование, соответствующее ортогональному преобразованию, выполненному блоком 102 ортогонального преобразования над восстановленными коэффициентами 122 преобразования из блока 104 деквантования, чтобы получить восстановленную ошибку 123 предсказания. Блок 105 обратного ортогонального преобразования будет подробно описан ниже. Блок 105 обратного ортогонального преобразования вводит восстановленную ошибку 123 предсказания в блок 106 сложения.The inverse orthogonal transform unit 105 performs the inverse orthogonal transform corresponding to the orthogonal transform performed by the orthogonal transform unit 102 on the reconstructed transform coefficients 122 from the dequantization unit 104 to obtain a reconstructed prediction error 123. An inverse orthogonal transform unit 105 will be described in detail below. The inverse orthogonal transform unit 105 introduces the reconstructed prediction error 123 into the addition unit 106.

Блок 106 сложения складывает восстановленную ошибку 123 предсказания и соответствующее предсказанное изображение 127 вместе, чтобы сгенерировать локально декодированное изображение 124. Локально декодированное изображение 124 сохраняется в память 107 опорного изображения. На локально декодированное изображение 124, сохраненное в память 107 опорного изображения, ссылается блок 108 внутреннего предсказания и блок 109 внешнего предсказания в качестве опорного изображения 125, если необходимо.An addition unit 106 adds the reconstructed prediction error 123 and the corresponding predicted image 127 together to generate a locally decoded image 124. The locally decoded image 124 is stored in the reference image memory 107. A locally decoded image 124 stored in the reference image memory 107 is referenced by the intra prediction unit 108 and the inter prediction unit 109 as the reference image 125, if necessary.

Блок 108 внутреннего предсказания осуществляет внутреннее предсказание, используя опорное изображение 125, сохраненное в память 107 опорного изображения. Например, H. 264 использует значение кодированного опорного пикселя для блока, смежного для целевого блока предсказания для компенсации пикселей (копировать или интерполировать пиксели) вдоль направления предсказания, такого как вертикальное направление или горизонтальное направление, чтобы сгенерировать изображение, предсказанное посредством внутреннего предсказания. На Фиг. 7A показаны направления предсказания для внутреннего предсказания согласно H. 264. К тому же на Фиг. 7B отношение расположения между опорными пикселями и целевыми пикселями кодирования согласно H. 264. На Фиг. 7C показан способ для генерирования предсказанного изображения в режиме 1 (горизонтальное предсказание). На Фиг. 7D показан способ для генерирования предсказанного изображения в режиме 4 (предсказание по диагонали вниз-вправо; Intra_NxN_Diagonal_Down_Right на Фиг. 4A).The intra prediction unit 108 performs intra prediction using the reference image 125 stored in the reference image memory 107. For example, H. 264 uses the encoded reference pixel value for a block adjacent to the prediction target block to compensate for pixels (copy or interpolate pixels) along a prediction direction, such as a vertical direction or a horizontal direction, to generate an image predicted by intra prediction. In FIG. 7A shows the prediction directions for intra prediction according to H. 264. In addition, in FIG. 7B, the arrangement relationship between the reference pixels and the encoding target pixels according to H. 264. In FIG. 7C shows a method for generating a predicted image in mode 1 (horizontal prediction). In FIG. 7D shows a method for generating a predicted image in mode 4 (downward-right diagonal prediction; Intra_NxN_Diagonal_Down_Right in FIG. 4A).

Блок 108 внутреннего предсказания может интерполировать значения пикселей, используя предварительно определенный способ интерполяции, и затем копирует интерполированные значения пикселей в предварительно определенном направлении. Проиллюстрированы направления предсказания для внутреннего предсказания согласно H. 264, но любое число режимов предсказания, таких как 17 или 33 типа режимов предсказания, сделаны доступными посредством задания более подробной классификации направлений предсказания. Например, H. 264 устанавливает углы предсказания с интервалами в 22,5 градуса, но 17 типов режимов предсказания, включая DC предсказание, сделаны доступными посредством задания углов предсказания с интервалами в 11,25 градуса. К тому же 33 типа режимов предсказания, включая DC предсказание, сделаны доступными посредством задания углов предсказания с интервалами в 5,625 градуса. В качестве альтернативы вместо расположения с равными интервалами, углы направлений предсказания могут быть выражены прямой линией, которая соединяет первую опорную точку со второй опорной точкой, полученной посредством перемещения первой опорной точки в горизонтальном направлении и в вертикальном направлении. Как описано выше, число режимов предсказания может быть легко увеличено, и настоящий вариант осуществления является применимым независимо от числа режимов предсказания.The intra prediction unit 108 may interpolate the pixel values using a predetermined interpolation method, and then copy the interpolated pixel values in a predetermined direction. The prediction directions for intra prediction according to H. 264 are illustrated, but any number of prediction modes, such as 17 or 33 types of prediction modes, are made available by defining a more detailed classification of the prediction directions. For example, H. 264 sets prediction angles at intervals of 22.5 degrees, but 17 types of prediction modes, including DC prediction, are made available by setting prediction angles at intervals of 11.25 degrees. In addition, 33 types of prediction modes, including DC prediction, are made available by setting prediction angles at intervals of 5.625 degrees. Alternatively, instead of being spaced at equal intervals, the angles of the prediction directions can be expressed by a straight line that connects the first reference point with the second reference point obtained by moving the first reference point in the horizontal direction and in the vertical direction. As described above, the number of prediction modes can be easily increased, and the present embodiment is applicable regardless of the number of prediction modes.

Блок 109 внешнего предсказания осуществляет внешнее предсказание, используя опорное изображение 125, сохраненное в память 107 опорного изображения. Конкретно, блок 109 внешнего предсказания осуществляет процесс сопоставления блоков между целевым блоком предсказания и опорным изображением 125 для получения величины отклонения в движении (вектор движения). Блок 109 внешнего предсказания осуществляет процесс интерполяции (компенсацию движения) на основе вектора движения, чтобы сгенерировать изображение, предсказанное посредством внешнего предсказания. H. 264 позволяет процессу интерпретации достигнуть точности в 1/4 пикселя. Полученный вектор движения подвергается энтропийному кодированию как часть информации 126 предсказания.The inter prediction unit 109 performs inter prediction using the reference image 125 stored in the reference image memory 107. Specifically, the inter prediction unit 109 performs a block matching process between the prediction target block and the reference image 125 to obtain a motion deviation value (motion vector). The inter prediction unit 109 performs an interpolation process (motion compensation) based on the motion vector to generate an image predicted by inter prediction. H. 264 allows the interpretation process to achieve 1/4 pixel accuracy. The resulting motion vector is subjected to entropy encoding as part of the prediction information 126.

Переключатель 111 выбора выбирает выходной конец блока 108 внутреннего предсказания или выходной конец блока 109 внешнего предсказания в соответствии с информацией 126 предсказания из блока 110 выбора предсказания. Переключатель 111 выбора затем вводит изображение, предсказанное посредством внутреннего предсказания, или изображение, предсказанное посредством внешнего предсказания, в блок 101 вычитания и блок 106 сложения в качестве предсказанного изображения 127. Информация 126 предсказания указывает внутреннее предсказание, блок 110 выбора получает изображение, предсказанное посредством внутреннего предсказания, из блока 108 внутреннего предсказания, в качестве предсказанного изображения 127. С другой стороны, если информация 126 предсказания указывает внешнее предсказание, блок 110 выбора получает изображение, предсказанное посредством внешнего предсказания, из блока 109 внутреннего предсказания, в качестве предсказанного изображения 127.The selection switch 111 selects the output end of the intra prediction block 108 or the output end of the inter prediction block 109 in accordance with the prediction information 126 from the prediction selection block 110. The selection switch 111 then inputs the image predicted by the intra prediction or the image predicted by the inter prediction into the subtracting unit 101 and the addition unit 106 as the predicted image 127. The prediction information 126 indicates the intra prediction, the selection unit 110 obtains the image predicted by the intra the prediction, from the intra prediction block 108, as the predicted image 127. On the other hand, if the prediction information 126 indicates With the external prediction, the selection unit 110 obtains an image predicted by the inter prediction from the intra prediction unit 109 as the predicted image 127.

Блок 110 выбора предсказания имеет функцию для задания информации 126 предсказания в соответствии с режимом предсказания, управляемым блоком 116 управления кодированием. Как описано выше, внутреннее предсказание или внешнее предсказание может быть выбрано для генерирования предсказанного изображения 127. Более того, множество режимов могут быть дополнительно выбраны для каждого из внутреннего предсказания и внешнего предсказания. Блок 116 управления кодированием определяет одно из множества режимов предсказания для внутреннего предсказания и внешнего предсказания, чтобы было оптимальным режимом предсказания. Блок 110 выбора предсказания задает информацию предсказания 126 согласно определенному оптимальному режиму предсказания.Prediction selection section 110 has a function for setting prediction information 126 in accordance with the prediction mode controlled by coding control section 116. As described above, intra prediction or inter prediction can be selected to generate the predicted image 127. Moreover, a plurality of modes can be further selected for each of intra prediction and inter prediction. The encoding control unit 116 determines one of a plurality of prediction modes for intra prediction and inter prediction to be an optimal prediction mode. Prediction selection unit 110 sets prediction information 126 according to the determined optimum prediction mode.

Например, в связи с внутренним предсказанием информация режима предсказания от блока 116 управления кодированием задается в блоке 108 внутреннего предсказания. В соответствии с информацией режима предсказания, блок 108 внутреннего предсказания генерирует предсказанное изображение 127. Блок 116 управления кодированием может задавать множество порций информации режима предсказания в порядке увеличения числа режима предсказания или уменьшения числа режима предсказания. К тому же блок 116 управления кодированием может ограничить режим предсказания в соответствии с характеристиками входного изображения. Блок 116 управления кодированием не должен задавать все режимы предсказания, но может задавать по меньшей мере одну порцию информации режима предсказания для целевого блока кодирования.For example, in connection with intra prediction, prediction mode information from coding control unit 116 is set in intra prediction unit 108. According to the prediction mode information, the intra prediction unit 108 generates the predicted image 127. The encoding control unit 116 may specify a plurality of pieces of prediction mode information in order to increase the number of prediction mode or decrease the number of prediction mode. In addition, the encoding control unit 116 may limit the prediction mode in accordance with the characteristics of the input image. The encoding control unit 116 does not need to specify all the prediction modes, but can specify at least one piece of prediction mode information for the encoding target.

Например, блок 116 управления кодированием определяет оптимальный режим предсказания, используя функцию стоимости, показанную в:For example, coding control unit 116 determines the optimal prediction mode using the cost function shown in:

К=SAD+λ×OH (1)K = SAD + λ × OH (1)

В Выражении (1), OH обозначает объем кода для информации 126 предсказания (например, информацию вектора движения и информацию размера блока предсказания), и SAD обозначает сумму абсолютной разности между целевым блоком предсказания и предсказанным изображением 127 (то есть накопленная сумма абсолютных значений ошибки 119 предсказания). К тому же λ обозначает множитель Лагранжа, определенный на основе значения информация квантования (параметра квантования), и K обозначает стоимость кодирования. Если используется Выражение (1), режим предсказания, который минимизирует стоимость кодирования K, определяется так, чтобы быть оптимальным в том, что касается объема сгенерированного кода и ошибок предсказания. В качестве модификации Выражения (1) стоимость кодирования может быть оценена только исходя из OH или SAD, посредством использования значения, полученного посредством осуществления преобразования Адамара над SAD или значении, приближенном к нему.In Expression (1), OH denotes a code amount for prediction information 126 (e.g., motion vector information and prediction block size information), and SAD denotes the sum of the absolute difference between the prediction target block and the predicted image 127 (i.e., the accumulated sum of absolute error values 119 predictions). In addition, λ denotes the Lagrange multiplier determined based on the value of the quantization information (quantization parameter), and K denotes the encoding cost. If Expression (1) is used, the prediction mode that minimizes the encoding cost K is determined to be optimal in terms of the amount of generated code and prediction errors. As a modification of Expression (1), the encoding cost can only be estimated based on OH or SAD, by using the value obtained by performing the Hadamard transform on the SAD or a value close to it.

К тому же оптимальный режим предсказания может быть определен, используя блок предварительного кодирования (не показан на чертежах). Например, блок 116 управления кодированием определяет оптимальный режим предсказания, используя функцию стоимости, показанную в:In addition, the optimal prediction mode can be determined using a precoding unit (not shown in the drawings). For example, coding control unit 116 determines the optimal prediction mode using the cost function shown in:

J=D+λ×R (2)J = D + λ × R (2)

В Выражении (2), D обозначает сумму квадратов разностей (то есть искажение кодирования) между целевым блоком предсказания и локально декодированным изображением, R обозначает объем кода, оцененный посредством предварительного кодирования ошибки предсказания между целевым блоком предсказания и предсказанным изображением 127 для режима предсказания, и J обозначает стоимость кодирования. Чтобы получить стоимость кодирования в Выражении (2), процесс предварительного кодирования и процесс локального декодирования должны быть осуществлены в каждом режиме предсказания. Это увеличивает масштаб релевантных схем или объем вычисления. С другой стороны, стоимость кодирования J получена на основе более точного искажения кодирования и более точного объема кода. Вследствие этого оптимальный режим предсказания точно определяется для обеспечения возможности простого поддержания высокой эффективности кодирования. В качестве модификации Выражения (2) стоимость кодирования может быть оценена только исходя из R или D или посредством использования значения, приближенного к R или D. К тому же блок 116 управления кодированием может, заранее, уменьшить число кандидатов для режима предсказания, один из которых определяется, используя Выражение (1) или Выражение (2), на основе информации, предварительно полученной для целевого блока предсказания (режимы предсказания для окружающих блоков пикселей, результаты анализа изображения и тому подобное).In Expression (2), D denotes the sum of the squared differences (i.e., coding distortion) between the prediction target block and the locally decoded image, R denotes the amount of code estimated by precoding the prediction error between the prediction target block and the predicted image 127 for the prediction mode, and J stands for coding cost. In order to obtain the encoding cost in Expression (2), the precoding process and the local decoding process must be carried out in each prediction mode. This increases the scale of the relevant schemas or the amount of computation. On the other hand, the cost of coding J is obtained based on a more accurate coding distortion and a more accurate code size. As a result, the optimum prediction mode is precisely determined to enable easy maintenance of high coding efficiency. As a modification of Expression (2), the encoding cost can only be estimated based on R or D or by using a value close to R or D. Moreover, the encoding control unit 116 may, in advance, reduce the number of candidates for the prediction mode, one of which is determined using Expression (1) or Expression (2) based on information previously obtained for the prediction target block (prediction modes for surrounding pixel blocks, image analysis results and the like).

Блок 116 управления кодированием управляет компонентами устройства кодирования изображения на Фиг. 1. Конкретно, блок 116 управления кодированием выполняет различные операции управления для процесса кодирования, включая вышеописанные операции.The encoding control unit 116 controls the components of the image encoding device in FIG. 1. Specifically, the encoding control unit 116 performs various control operations for the encoding process, including the operations described above.

Блок 112 задания матрицы 1D преобразования генерирует информацию 129 задания матрицы 1D преобразования на основе информации режима предсказания, включенной в информацию 126 предсказания из блока 110 выбора предсказания. Блок задания матрицы 1D преобразования затем выводит информацию 129 задания матрицы 1D преобразования в блок 102 ортогонального преобразования и блок 105 обратного ортогонального преобразования. Информация 129 задания матрицы 1D преобразования будет подробно описана ниже.The transformation matrix 1D definition unit 112 of the transformation matrix generates the transformation matrix 1D information 129 of the transformation matrix based on the prediction mode information included in the prediction information 126 from the prediction selection unit 110. The setting unit of the transformation matrix 1D then outputs the information 129 of the setting of the transformation matrix 1D to the orthogonal transformation unit 102 and the inverse orthogonal transformation unit 105. Information 129 setting matrix 1D conversion will be described in detail below.

Блок 102 ортогонального преобразования согласно настоящему варианту осуществления будет подробно описан ниже со ссылкой на Фиг. 2.An orthogonal transform unit 102 according to the present embodiment will be described in detail below with reference to FIG. 2.

Блок 102 ортогонального преобразования включает в себя переключатель 201 выбора, блок 202 вертикального преобразования, блок 203 транспонирования, переключатель 204 выбора и блок 205 горизонтального преобразования. Блок 202 вертикального преобразования включает в себя блок A 206 1D ортогонального преобразования и блок B 207 1D ортогонального преобразования. Блок 205 горизонтального преобразования включает в себя блок A 208 1D ортогонального преобразования и блок B 209 1D ортогонального преобразования. Порядок блока 202 вертикального преобразования и блока 205 горизонтального преобразования является иллюстративным и может быть обратным.The orthogonal transform unit 102 includes a select switch 201, a vertical transform unit 202, a transpose unit 203, a select switch 204, and a horizontal transform unit 205. The vertical transform unit 202 includes an orthogonal transform unit A 206 1D and an orthogonal transform unit B 207 1D. The horizontal transform block 205 includes an orthogonal transform block A 208 1D and an orthogonal transform block B 209 1D. The order of the vertical transform unit 202 and the horizontal transform unit 205 is illustrative and may be inverse.

Блок A 206 1D ортогонального преобразования и блок A 208 1D ортогонального преобразования имеют общие функции в том, что оба блока умножают входную матрицу на матрицу A 1D преобразования. Блок B 207 1D ортогонального преобразования и блок B 209 1D ортогонального преобразования имеют общие функции в том, что оба блока умножают входную матрицу на матрицу B 1D преобразования. Таким образом, блок A 206 1D ортогонального преобразования и блок A 208 1D ортогонального преобразования могут быть также реализованы посредством использования физически одинакового аппаратного обеспечения с разделением по времени. Это также применяется к блоку B 207 1D ортогонального преобразования и блоку B 209 1D ортогонального преобразования.The orthogonal transform block A 206 1D and the orthogonal transform block A 208 1D have common functions in that both blocks multiply the input matrix by the transform matrix A 1D. The orthogonal transform block B 207 1D and the orthogonal transform block B 209 1D have common functions in that both blocks multiply the input matrix by the transform matrix B 1D. Thus, the orthogonal transform unit A 206 1D and the orthogonal transform unit A 208 1D can also be implemented by using physically the same time-division hardware. This also applies to the orthogonal transform block B 207 1D and the orthogonal transform block B 209 1D.

Переключатель 201 выбора приводит ошибку 119 предсказания в один из блока A 206 1D ортогонального преобразования и блок B 207 1D ортогонального преобразования в соответствии с индексом вертикального преобразования, включенным в информацию 129 задания матрицы 1D преобразования. Блок A 206 1D ортогонального преобразования умножает входную ошибку 119 предсказания (матрицу) на матрицу A 1D преобразования и выводит произведение. Блок B 207 1D ортогонального преобразования умножает входную ошибку 119 предсказания на матрицу B 1D преобразования и выводит произведение. Конкретно, блок A 206 1D ортогонального преобразования и блок B 207 1D ортогонального преобразования (то есть блок 202 вертикального преобразования) осуществляют одномерное ортогональное преобразование, показанное в Равенстве (3), для устранения вертикальной корреляции в ошибке 119 предсказания.The selection switch 201 results in a prediction error 119 to one of the orthogonal transform block A 206 1D and the orthogonal transform block B 207 1D in accordance with the vertical transform index included in the definition information 129 of the transform matrix 1D. The orthogonal transform unit A 206 1D multiplies the input prediction error 119 (matrix) by the transform matrix A 1D and outputs the product. The orthogonal transform unit B 207 1D multiplies the input prediction error 119 by the transform matrix B 1D and outputs the product. Specifically, the orthogonal transform unit A 206 1D and the orthogonal transform unit B 207 1D (i.e., vertical transform unit 202) perform the one-dimensional orthogonal transform shown in Equality (3) to eliminate the vertical correlation in the prediction error 119.

Y=VX (3)Y = VX (3)

В Выражении (3), X обозначает матрицу (N×N) ошибки 119 предсказания, V всесторонне обозначает матрицу A 1D преобразования и матрицу B 1D преобразования (обе являются матрицами N×N), и Y обозначает выходную матрицу (N×N) из каждого из блока A 206 1D ортогонального преобразования и блока B 207 1D ортогонального преобразования. Конкретно, матрица V преобразования является матрицей преобразования N×N, в которой базис преобразования, спроектированный для устранения вертикальной корреляции в матрице X, является вертикальным как векторы-строки. Однако, как описано ниже, матрица A 1D преобразования и матрица B 1D преобразования спроектированы разным образом и имеют разные типы природы.In Expression (3), X denotes a prediction error matrix (N × N) 119, V comprehensively denotes a transformation matrix A 1D and a transformation matrix B 1D (both are N × N matrices), and Y denotes an output matrix (N × N) from of each of the orthogonal transform unit A 206 1D and the orthogonal transform unit B 207 1D. Specifically, the transform matrix V is an N × N transform matrix in which the transform basis designed to eliminate vertical correlation in the matrix X is vertical as row vectors. However, as described below, the transformation matrix A 1D and the transformation matrix B 1D are designed in different ways and have different types of nature.

Матрица A 1D преобразования и матрица B 1D преобразования может использовать целые числа, полученные посредством спроектированного базиса преобразования, подвергнутые скалярному умножению.The transformation matrix A 1D and the transformation matrix B 1D can use integers obtained by means of the designed transformation basis, subjected to scalar multiplication.

Здесь, если ошибка 119 предсказания является прямоугольным блоком, выраженным как M×N, размер блока, который следует ортогонально преобразовать, может быть также M×N.Here, if the prediction error 119 is a rectangular block expressed as M × N, the size of the block to be converted orthogonally can also be M × N.

Блок 203 транспонирования транспонирует выходную матрицу (Y) из блока 202 вертикального преобразования и предоставляет транспонированную выходную матрицу (Y) переключателю 204 выбора. Однако блок 203 транспонирования является иллюстративным, и соответствующее аппаратное обеспечение не обязательно должно быть подготовлено. Например, выходная матрица (Y) может быть транспонирована без необходимости подготовления аппаратного обеспечения, соответствующего блоку 203 транспонирования, посредством сохранения результатов 1D ортогонального преобразования, осуществляемого блоком 202 вертикального преобразования, (каждого из элементов выходной матрицы из блока 202 вертикального преобразования) и загрузки результатов в должном порядке, когда блок 205 горизонтального преобразования выполняет 1D ортогональное преобразование.The transpose unit 203 transposes the output matrix (Y) from the vertical conversion unit 202 and provides the transposed output matrix (Y) to the selection switch 204. However, the transpose unit 203 is illustrative, and the corresponding hardware need not be prepared. For example, the output matrix (Y) can be transposed without having to prepare the hardware corresponding to the transpose unit 203 by storing the results 1D of the orthogonal transform performed by the vertical transform unit 202 (each of the elements of the output matrix from the vertical transform unit 202) and load the results into in order, when the horizontal transform unit 205 performs 1D orthogonal transform.

Переключатель 204 выбора приводит входную матрицу из блока 203 транспонирования в один из блока A 208 1D ортогонального преобразования и блока B 209 1D ортогонального преобразования в соответствии с индексом горизонтального преобразования, включенным в информацию 129 задания матрицы 1D преобразования. Блок A 208 1D ортогонального преобразования умножает входную матрицу на матрицу A 1D преобразования и выводит произведение. Блок B 209 1D ортогонального преобразования умножает входную матрицу на матрицу B 1D преобразования и выводит произведение. Конкретно, блок A 208 1D ортогонального преобразования и блок B 209 1D ортогонального преобразования (то есть блок 205 горизонтального преобразования) осуществляют одномерное ортогональное преобразование, показанное в Равенстве (4), для устранения горизонтальной корреляции в ошибке предсказания.The selection switch 204 brings the input matrix from the transpose unit 203 to one of the orthogonal transform unit A 208 1D and the orthogonal transform unit B 209 1D in accordance with the horizontal transform index included in the definition information 129 of the transform matrix 1D. The orthogonal transform unit A 208 1D multiplies the input matrix by the transform matrix A 1D and outputs the product. An orthogonal transform unit B 209 1D multiplies the input matrix by a transform matrix B 1D and outputs the product. Specifically, the orthogonal transform block A 208 1D and the orthogonal transform block B 209 1D (i.e., the horizontal transform block 205) perform the one-dimensional orthogonal transform shown in Equality (4) to eliminate horizontal correlation in the prediction error.

Z=HYT (4)Z = HYT (4)

В Равенстве (4), H всесторонне обозначает матрицу A 1D преобразования и матрицу B 1D преобразования (обе являются матрицами N×N), и Z обозначает выходную матрицу (N×N) от каждого из блока A 208 1D ортогонального преобразования и блока B 209 1D ортогонального преобразования; выходная матрица указывает коэффициенты 120 преобразования. Конкретно, матрица H преобразования является матрицей преобразования N×N, в которой базис преобразования, спроектированный для устранения горизонтальной корреляции в матрице Y, является вертикально расположенным как векторы-строки. Как описано выше, матрица A 1D преобразования и матрица B 1D преобразования спроектированы разным образом и имеют разные типы природы. К тому же матрица A 1D преобразования и матрица B 1D преобразования может использовать целые числа, полученные посредством спроектированного базиса преобразования, подвергнутые скалярному умножению.In Equality (4), H comprehensively denotes the A 1D transform matrix and the B 1D transform matrix (both are N × N matrices), and Z denotes the output matrix (N × N) from each of the orthogonal transform block A 208 1D and the B 209 block 1D orthogonal transform; the output matrix indicates transform coefficients 120. Specifically, the transform matrix H is an N × N transform matrix in which a transform basis designed to eliminate horizontal correlation in the Y matrix is vertically arranged as row vectors. As described above, the transformation matrix A 1D and the transformation matrix B 1D are designed in different ways and have different types of nature. In addition, the transformation matrix A 1D and the transformation matrix B 1D can use integers obtained by means of the designed transformation basis, subjected to scalar multiplication.

Как описано выше, блок 102 ортогонального преобразования осуществляет ортогональное преобразование, в соответствии с информацией 129 задания матрицы 1D преобразования, введенной из блока 112 задания матрицы 1D преобразования, ошибки 119 предсказания (матрицы) для генерирования коэффициентов 120 преобразования (матрицы). С помощью принятого во внимание H. 264, блок 102 ортогонального преобразования может включать в себя блок DCT (не показан на чертежах) или одна из матрицы A 1D преобразования и матрицы B 1D преобразования может быть заменена матрицей для DCT. Например, матрица B 1D преобразования может быть матрицей преобразования для DCT. Более того, блок 102 ортогонального преобразования может реализовать, в дополнение к DCT, различные ортогональные преобразования, такие как преобразование Адамара, преобразование Карунена-Лоэва, описанное ниже, и дискретное синусное преобразование.As described above, the orthogonal transform unit 102 performs orthogonal transform, in accordance with the definition information 129 of the transform matrix 1D input from the set block 112 of the transform matrix 1D, the prediction error (matrix) 119 for generating transform coefficients 120 (matrix). Using the H. 264 taken into account, the orthogonal transform unit 102 may include a DCT block (not shown in the drawings) or one of the transform matrix A 1D and the transform matrix B 1D may be replaced by a matrix for DCT. For example, the transformation matrix B 1D may be a transformation matrix for DCT. Moreover, the orthogonal transform unit 102 may implement, in addition to the DCT, various orthogonal transforms, such as the Hadamard transform, the Karunen-Loeve transform described below, and the discrete sine transform.

Теперь будет описана разница в природе между матрицей A 1D преобразования и матрицей B 1D преобразования. Некоторые режимы внутреннего предсказания, поддерживаемые посредством H. 264 и тому подобным, генерируют предсказанное изображение посредством копирования, вдоль направления предсказания, причем группа опорных пикселей на одной или обеих смежных линиях, размещенные слева от или выше целевого блока предсказания, или осуществляя аналогичное копирование после интерполяции. То есть этот режиме внутреннего предсказания выбирает по меньшей мере один опорный пиксель из группы опорных пикселей в соответствии с направлением предсказания и копирует опорный пиксель или осуществляет интерполяцию используя опорные пиксели, чтобы сгенерировать предсказанное изображение. Режим внутреннего предсказания использует пространственную корреляцию в изображении и таким образом имеет точность предсказания, которая имеет тенденцию уменьшаться с увеличением расстояния от опорного пикселя. То есть абсолютное значение ошибки предсказания вероятно увеличится согласно расстоянию от опорного пикселя. Данная тенденция аналогично проявляется независимо от направления предсказания. Более конкретно, в связи с режимами внутреннего предсказания (например, режим 1 и режим 8 на Фиг. 7A), в которых ссылаются (значения пикселей опорных пикселей копируются, или интерполяция осуществляется, используя опорные пиксели), только на группу опорных пикселей на линии, размещенной слева от или рядом с целевым блоком предсказания, ошибка предсказания проявляет тенденцию в горизонтальном направлении. В связи с режимами предсказания, в которых ссылаются (например, режим 0, режим 3, и режим 7 на Фиг. 7A) только на группу опорных пикселей на линии, размещенной выше или рядом с целевым блоком предсказания, ошибка предсказания проявляет тенденцию в вертикальном направлении. Более того, в связи с режимами предсказания (например, режим 4, режим 5 и режим 6 на Фиг. 7A), в которых ссылаются на группы опорных пикселей на линии, размещенной слева от или рядом с целевым блоком предсказания, и на линии, размещенной выше или рядом с целевым блоком предсказания, ошибка предсказания проявляет такую тенденцию в горизонтальном направлении и вертикальном направлении. В общем, тенденция проявляется в направлении, ортогональном линии группы опорных пикселей, используемом для генерирования предсказанного изображения.Now, a difference in nature between the transformation matrix A 1D and the transformation matrix B 1D will be described. Some intra prediction modes supported by H. 264 and the like generate a predicted image by copying along the prediction direction, wherein a group of reference pixels on one or both adjacent lines located to the left of or above the prediction target block, or performing similar copying after interpolation . That is, this intra prediction mode selects at least one reference pixel from the group of reference pixels in accordance with the direction of the prediction and copies the reference pixel or performs interpolation using the reference pixels to generate the predicted image. The intra prediction mode uses spatial correlation in the image and thus has prediction accuracy, which tends to decrease with increasing distance from the reference pixel. That is, the absolute value of the prediction error is likely to increase according to the distance from the reference pixel. This trend is similarly manifested regardless of the direction of prediction. More specifically, in connection with intra prediction modes (e.g., mode 1 and mode 8 in Fig. 7A), referenced (pixel values of reference pixels are copied, or interpolation is performed using reference pixels), only a group of reference pixels on a line, located to the left of or next to the prediction target block, the prediction error tends to be horizontal. Due to the prediction modes referenced (for example, mode 0, mode 3, and mode 7 in Fig. 7A) only to a group of reference pixels on a line located above or next to the prediction target block, the prediction error tends to be in the vertical direction . Moreover, in connection with prediction modes (e.g., mode 4, mode 5 and mode 6 in Fig. 7A), which refer to reference pixel groups on a line located to the left of or next to the prediction target block, and on a line placed above or next to the prediction target block, the prediction error exhibits such a tendency in the horizontal direction and the vertical direction. In general, the trend is manifested in a direction orthogonal to the line of the reference pixel group used to generate the predicted image.

Матрица A 1D преобразования генерируется посредством предварительного проектирования общего базиса преобразования, с тем чтобы увеличить, по сравнению с матрицей B 1D преобразования, плотность коэффициентов 1D ортогонального преобразования (то есть уменьшить долю ненулевых коэффициентов в квантованных коэффициентах 121 преобразования) в ортогональном направлении (вертикальном направлении или горизонтальном направлении). С другой стороны, матрица B 1D преобразования генерируется посредством проектирования матрицы преобразования общего назначения, не имеющей такой природы. Например, преобразованием общего назначения является DCT. Эффективность преобразования ошибки предсказания при внутреннем предсказании и таким образом эффективность кодирования улучшается посредством осуществления 1D ортогонального преобразования в ортогональном направлении используя матрицу A 1D преобразования. Например, ошибка 119 предсказания в режиме 0 (вертикальное предсказание) проявляет тенденцию в вертикальном направлении, но не в горизонтальном направлении. Отсюда, эффективность ортогонального преобразования может быть достигнута посредством осуществления 1D ортогонального преобразования в блоке 202 вертикального преобразования, используя матрицу A 1D преобразования, и осуществления 1D ортогонального преобразования в блоке 205 горизонтального преобразования, используя матрицу B 1D преобразования.The transformation matrix A 1D of the transformation is generated by preliminary designing a common transformation basis in order to increase, in comparison with the transformation matrix B 1D, the density of orthogonal transformation coefficients 1D (i.e., to reduce the proportion of non-zero coefficients in the quantized transformation coefficients 121) in the orthogonal direction (vertical direction or horizontal direction). On the other hand, the transformation matrix B 1D is generated by designing a general-purpose transformation matrix that is not of this nature. For example, a general purpose transformation is DCT. The intra prediction error conversion efficiency and thus the coding efficiency is improved by performing 1D orthogonal transformation in the orthogonal direction using the transformation matrix A 1D. For example, prediction error 119 in mode 0 (vertical prediction) tends to be in the vertical direction, but not in the horizontal direction. Hence, the orthogonal transform efficiency can be achieved by performing 1D orthogonal transform in the vertical transform block 202 using the transform matrix A 1D, and performing 1D orthogonal transform in the horizontal transform block 205 using the transform matrix B 1D.

Блок 105 обратного ортогонального преобразования согласно настоящему варианту осуществления будет подробно описан ниже со ссылкой на Фиг. 3.An inverse orthogonal transform unit 105 according to the present embodiment will be described in detail below with reference to FIG. 3.

Блок 105 обратного ортогонального преобразования включает в себя переключатель 301 выбора, блок 302 вертикального обратного преобразования, блок 303 транспонирования, переключатель 304 выбора и блок 305 горизонтального обратного преобразования. Блок 302 вертикального обратного преобразования включает в себя блок A 306 1D обратного ортогонального преобразования и блок B 307 1D обратного ортогонального преобразования. Блок 305 горизонтального обратного преобразования включает в себя блок A 308 1D обратного ортогонального преобразования и блок B 309 1D обратного ортогонального преобразования. Порядок блока 302 вертикального обратного преобразования и блока 305 горизонтального обратного преобразования является иллюстративным и может быть обратным.The inverse orthogonal transform unit 105 includes a select switch 301, a vertical inverse transform unit 302, a transpose unit 303, a select switch 304 and a horizontal inverse transform unit 305. The vertical inverse transform unit 302 includes an inverse orthogonal transform unit A 306 1D and an inverse orthogonal transform unit B 307 1D. The horizontal inverse transform unit 305 includes an inverse orthogonal transform block A 308 1D and an inverse orthogonal transform block B 309 1D. The order of the vertical inverse transform unit 302 and the horizontal inverse transform unit 305 is illustrative and may be inverse.

Блок A 306 1D обратного ортогонального преобразования и блок A 308 1D обратного ортогонального преобразования имеют общие функции в том, что оба блока умножают входную матрицу на транспонированную матрицу матрицы A 1D преобразования. Блок B 307 1D обратного ортогонального преобразования и блок B 309 1D обратного ортогонального преобразования имеют общие функции в том, что оба блока умножают входную матрицу на транспонированную матрицу матрицы B 1D преобразования. Таким образом, блок A 306 1D обратного ортогонального преобразования и блок A 308 1D обратного ортогонального преобразования могут быть также реализованы посредством использования физически одинакового аппаратного обеспечения с разделением по времени. Это также применяется к блоку B 307 1D обратного ортогонального преобразования и блоку B 309 1D обратного ортогонального преобразования.The inverse orthogonal transform block A 306 1D and the inverse orthogonal transform block A 308 1D have common functions in that both blocks multiply the input matrix by the transposed matrix of the transform matrix A 1D. The inverse orthogonal transform block B 307 1D and the inverse orthogonal transform block B 309 1D have common functions in that both blocks multiply the input matrix by the transposed matrix of the B 1D transform matrix. Thus, the inverse orthogonal transform block A 306 1D and the inverse orthogonal transform block A 308 1D can also be implemented using physically the same time-division hardware. This also applies to the inverse orthogonal transform block B 307 1D and the inverse orthogonal transform block B 309 1D.

Переключатель 301 выбора приводит восстановленные коэффициенты 122 преобразования в один из блока A 306 1D обратного ортогонального преобразования и блока B 307 1D обратного ортогонального преобразования в соответствии с индексом вертикального преобразования, включенным в информацию 129 задания матрицы 1D преобразования. Блок A 306 1D обратного ортогонального преобразования умножает входные коэффициенты 122 преобразования (форма матрицы) на транспонированную матрицу матрицы A 1D преобразования и выводит произведение. Блок B 307 1D обратного ортогонального преобразования умножает входные коэффициенты 122 преобразования на транспонированную матрицу матрицы B 1D преобразования и выводит произведение. Конкретно, блок A 306 обратного ортогонального преобразования и блок B 307 обратного ортогонального преобразования (то есть блок 302 вертикального обратного преобразования) осуществляют одномерное обратное ортогональное преобразование, показанное в:The selection switch 301 brings the restored transform coefficients 122 to one of the inverse orthogonal transform block A 306 1D and the inverse orthogonal transform block B 307 1D in accordance with the vertical transform index included in the definition information 129 of the transform matrix 1D. An inverse orthogonal transform unit A 306 1D multiplies the input transform coefficients 122 (matrix form) by the transposed matrix of the transform matrix A 1D and outputs the product. An inverse orthogonal transform block B 307 1D multiplies the input transform coefficients 122 by the transposed matrix of the transform matrix B 1D and outputs the product. Specifically, the inverse orthogonal transform unit A 306 and the inverse orthogonal transform unit B 307 (i.e., the vertical inverse transform unit 302) perform the one-dimensional inverse orthogonal transform shown in:

Y'=VTZ' (5)Y '= VTZ' (5)

В Выражении (5), Z' обозначает матрицу (N×N) восстановленных коэффициентов 122 преобразования, VT всесторонне обозначает транспонированные матрицы для матрицы A 1D преобразования и матрицы B 1D преобразования (обе являются матрицами N×N), и Y обозначает выходную матрицу (N×N) из каждого из блока A 306 1D обратного ортогонального преобразования и блока B 307 1D обратного ортогонального преобразования.In Expression (5), Z ′ denotes a matrix (N × N) of reconstructed transform coefficients 122, VT comprehensively denotes transposed matrices for a transform matrix A 1D and a transform matrix B 1D (both are N × N matrices), and Y denotes an output matrix ( N × N) from each of the inverse orthogonal transform block A 306 1D and the inverse orthogonal transform block B 307 1D.

Блок 303 транспонирования транспонирует выходную матрицу (Y') из блока 202 вертикального обратного преобразования и выводит транспонированную выходную матрицу в переключатель 304 выбора. Однако блок 303 транспонирования является иллюстративным, и соответствующее аппаратное обеспечение не обязательно должно быть подготовлено. Например, выходная матрица (Y') может быть транспонирована без необходимости подготовления аппаратного обеспечения, соответствующего блоку 303 транспонирования, посредством сохранения результатов 1D обратного ортогонального преобразования, осуществляемого блоком 302 обратного вертикального преобразования, (каждого из элементов выходной матрицы из блока 302 обратного вертикального преобразования) и загрузки результатов в должном порядке, когда блок 305 горизонтального обратного преобразования выполняет 1D обратное ортогональное преобразование.The transpose unit 303 transposes the output matrix (Y ') from the vertical inverse transform unit 202 and outputs the transposed output matrix to the selection switch 304. However, the transpose unit 303 is illustrative, and the corresponding hardware need not be prepared. For example, the output matrix (Y ') can be transposed without having to prepare the hardware corresponding to the transpose unit 303 by storing the results of the 1D inverse orthogonal transform performed by the inverse vertical transform unit 302 (each of the elements of the output matrix from the inverse vertical transform unit 302) and loading the results in the proper order when the horizontal inverse transform unit 305 performs a 1D inverse orthogonal transform Waning.

Переключатель 304 выбора приводит входную матрицу из блока 303 транспонирования в один из блока A 308 1D обратного ортогонального преобразования и блока B 309 1D обратного ортогонального преобразования в соответствии с индексом горизонтального преобразования, включенным в информацию 129 задания матрицы 1D преобразования. Блок A 308 1D обратного ортогонального преобразования умножает входную матрицу на транспонированную матрицу матрицы A 1D преобразования и выводит произведение. Блок B 309 1D обратного ортогонального преобразования умножает входную матрицу на транспонированную матрицу матрицы B 1D преобразования и выводит произведение. Конкретно, блок A 308 обратного ортогонального преобразования и блок B 309 обратного ортогонального преобразования (то есть блок 305 горизонтального обратного преобразования) осуществляют одномерное обратное ортогональное преобразование, показанное в:The selection switch 304 brings the input matrix from the transpose block 303 to one of the inverse orthogonal transform block A 308 1D and the inverse orthogonal transform block B 309 1D in accordance with the horizontal transform index included in the definition information 129 of the transform matrix 1D. An inverse orthogonal transform unit A 308 1D multiplies the input matrix by the transposed matrix of the transform matrix A 1D and outputs the product. An inverse orthogonal transform block B 309 1D multiplies the input matrix by the transposed matrix of the transform matrix B 1D and outputs the product. Specifically, the inverse orthogonal transform unit A 308 and the inverse orthogonal transform unit B 309 (i.e., the horizontal inverse transform unit 305) perform the one-dimensional inverse orthogonal transform shown in:

X'=HTY'T (6)X '= HTY'T (6)

В Равенстве (6) HT всесторонне обозначает транспонированные матрицы для матрицы A 1D преобразования и матрицы B 1D преобразования (обе являются матрицами N×N), и X' обозначает выходную матрицу (N×N) от каждого из блока A 308 1D обратного ортогонального преобразования и блока B 309 1D обратного ортогонального преобразования; выходная матрица указывает восстановленную ошибку 123 предсказания.In Equality (6), HT comprehensively denotes the transposed matrices for the transform matrix A 1D and the transform matrix B 1D (both are N × N matrices), and X 'denotes the output matrix (N × N) from each of the inverse orthogonal transform block A 308 1D and block B 309 1D inverse orthogonal transform; the output matrix indicates the reconstructed prediction error 123.

Как описано выше, блок 105 обратного ортогонального преобразования осуществляет ортогональное преобразование, в соответствии с информацией 129 задания матрицы 1D преобразования, введенной из блока 112 задания матрицы 1D преобразования, восстановленных коэффициентов 122 преобразования (матрицы) для генерирования восстановленной ошибки 123 предсказания (матрицы). С помощью принятого во внимание H. 264, блок 105 обратного ортогонального преобразования может включать в себя блок IDCT (не показан на чертежах) или одна из матрицы A 1D преобразования и матрицы B 1D преобразования может быть заменена матрицей для DCT. Например, матрица B 1D преобразования может быть матрицей преобразования для DCT. Более того, блок 105 обратного ортогонального преобразования может реализовать, в дополнение к IDCT, обратные ортогональные преобразования, соответствующие различным ортогональным преобразованиям, такие как преобразование Адамара, преобразование Карунена-Лоэва, описанное ниже, и дискретное синусное преобразование для координации с блоком 102 ортогонального преобразования.As described above, the inverse orthogonal transform unit 105 performs orthogonal transform, in accordance with the definition information 129 of the transform matrix 1D input from the transform block 112 of the transform matrix 1D, the reconstructed transform coefficients (matrices) 122 to generate a reconstructed prediction error (matrix) 123. Using the consideration of H. 264, the inverse orthogonal transform unit 105 may include an IDCT block (not shown in the drawings) or one of the transform matrix A 1D and the transform matrix B 1D may be replaced by a matrix for DCT. For example, the transformation matrix B 1D may be a transformation matrix for DCT. Moreover, the inverse orthogonal transform unit 105 may implement, in addition to the IDCT, inverse orthogonal transforms corresponding to various orthogonal transforms, such as the Hadamard transform, the Karunen-Loeve transform described below, and the discrete sine transform for coordination with the orthogonal transform block 102.

Информация 129 задания матрицы 1D преобразования согласно настоящему варианту осуществления, которая генерируется блоком 112 задания матрицы 1D преобразования, будет подробно описана ниже.The setting information 129 of the transformation matrix 1D according to the present embodiment, which is generated by the determining unit 112 of the transformation matrix 1D, will be described in detail below.

Информация 129 задания матрицы 1D преобразования прямо или непрямо указывает индекс вертикального преобразования для выбора матрицы преобразования для использования при вертикальном ортогональном преобразовании и вертикальном обратном ортогональном преобразовании, и индекс горизонтального преобразования для выбора матрицы преобразования для использования при горизонтальном ортогональном преобразовании и горизонтальном обратном ортогональном преобразовании. Например, информация 129 задания матрицы 1D преобразования может быть выражена посредством индекса преобразования (TrasformIdx), показанного на Фиг. 4D. Ссылка на таблицу на Фиг. 4D обеспечивает возможность получения индекса вертикального преобразования (Idx вертикального преобразования) и индекс горизонтального преобразования (Idx горизонтального преобразования) из индекса преобразования.The mapping matrix 1D information 129 of the transform matrix 1D directly or indirectly indicates a vertical transform index for selecting a transform matrix for use in vertical orthogonal transform and vertical inverse orthogonal transform, and a horizontal transform index for selecting a transform matrix for use in horizontal orthogonal transform and horizontal inverse orthogonal transform. For example, the job information 129 of the transform matrix 1D may be expressed by the transform index (TrasformIdx) shown in FIG. 4D. The reference to the table in FIG. 4D provides the ability to obtain a vertical transform index (Idx vertical transform) and a horizontal transform index (Idx horizontal transform) from the transform index.

Как показано на Фиг. 4B, индекс вертикального преобразования "0" обеспечивает возможность выбора матрицы A 1D преобразования (1D_Transform_Matrix_A) или ее транспонированной матрицы для вертикального ортогонального преобразования или вертикального обратного ортогонального преобразования. С другой стороны, индекс вертикального преобразования "1" обеспечивает возможность выбора матрицы B 1D преобразования (1D_Transform_Matrix_B) или ее транспонированной матрицы для вертикального ортогонального преобразования или вертикального обратного ортогонального преобразования.As shown in FIG. 4B, the vertical transformation index “0” allows selection of the transformation matrix A 1D (1D_Transform_Matrix_A) or its transposed matrix for vertical orthogonal transformation or vertical inverse orthogonal transformation. On the other hand, the vertical transformation index “1” allows the selection of the transformation matrix B 1D (1D_Transform_Matrix_B) or its transposed matrix for vertical orthogonal transformation or vertical inverse orthogonal transformation.

Как показано на Фиг. 4С, индекс горизонтального преобразования "0" обеспечивает возможность выбора матрицы A 1D преобразования (1D_Transform_Matrix_A) или ее транспонированной матрицы для горизонтального ортогонального преобразования или горизонтального обратного ортогонального преобразования. С другой стороны, индекс горизонтального преобразования "1" обеспечивает возможность выбора матрицы B 1D преобразования (1D_Transform_Matrix_B) или ее транспонированной матрицы для горизонтального ортогонального преобразования или горизонтального обратного ортогонального преобразования.As shown in FIG. 4C, the horizontal transformation index “0” allows the selection of the transformation matrix A 1D (1D_Transform_Matrix_A) or its transposed matrix for horizontal orthogonal transformation or horizontal inverse orthogonal transformation. On the other hand, the horizontal transformation index “1” allows the selection of the transformation matrix B 1D (1D_Transform_Matrix_B) or its transposed matrix for horizontal orthogonal transformation or horizontal inverse orthogonal transformation.

К тому же на Фиг. 4A проиллюстрирован индекс для каждого режима (внутреннего) предсказания (IntraN×NPredModeIndex), его имя (имя IntraN×NPredMode), и соответствующий индекс вертикального преобразования и индекс горизонтального преобразования. На Фиг. 4A, "N×N" указывает размер целевого блока предсказания (N=4, 8, 16 или тому подобные). Размер целевого блока предсказания может быть расширен до "M×N" (то есть прямоугольники вместо квадратов).Also in FIG. 4A illustrates an index for each (internal) prediction mode (IntraN × NPredModeIndex), its name (IntraN × NPredMode name), and the corresponding vertical transform index and horizontal transform index. In FIG. 4A, “N × N” indicates the size of the prediction target block (N = 4, 8, 16 or the like). The size of the prediction target block can be expanded to “M × N” (that is, rectangles instead of squares).

На Фиг. 4E получено посредством объединения Фиг. 4A и Фиг. 4D вместе и показан индекс для каждого режима предсказания, имя индекса и соответствующий индекс преобразования.In FIG. 4E is obtained by combining FIG. 4A and FIG. 4D together and shows an index for each prediction mode, an index name, and a corresponding transform index.

Блок 112 задания матрицы 1D преобразования детектирует индекс режима предсказания из информации режима предсказания, включенной в информацию 126 предсказания. Блок 112 задания матрицы 1D преобразования затем генерирует соответствующую информацию 129 задания матрицы 1D преобразования. Таблицы, показанные на Фиг. 4A, Фиг. 4B, Фиг. 4C, Фиг. 4D и Фиг. 4E, являются иллюстративными. Блок 112 задания матрицы 1D преобразования может генерировать информацию 129 задания матрицы 1D преобразования, в то же время избегая использования некоторых или всех таблиц.Block 112 of the definition matrix 1D conversion detects the index of the prediction mode from the information of the prediction mode included in the information 126 prediction. Block 112 specify the matrix 1D conversion then generates the corresponding information 129 of the task matrix 1D conversion. The tables shown in FIG. 4A, FIG. 4B, FIG. 4C, FIG. 4D and FIG. 4E are illustrative. The conversion matrix 1D transformation unit 112 may generate the conversion matrix 1D information 129 of the transformation matrix, while avoiding the use of some or all of the tables.

Например, TransformIdx, указывающий 0, означает, что индекс вертикального преобразования указывает 0, и что индекс горизонтального преобразования указывает 0. Это означает, что матрица A 1D преобразования используется для вертикального ортогонального преобразования, и что матрица A 1D преобразования используется для горизонтального ортогонального преобразования. Эти значения также означают, что транспонированная матрица матрицы A 1D преобразования используется для вертикального обратного ортогонального преобразования, и что транспонированная матрица матрицы A 1D преобразования используется для горизонтального обратного ортогонального преобразования.For example, a TransformIdx indicating 0 means that the vertical transform index indicates 0, and that the horizontal transform index indicates 0. This means that the transform matrix A 1D is used for vertical orthogonal transforms, and that the transform matrix A 1D is used for horizontal orthogonal transforms. These values also mean that the transposed matrix of the transformation matrix A 1D is used for vertical inverse orthogonal transformation, and that the transposed matrix of the transformation matrix A 1D is used for horizontal inverse orthogonal transformation.

TransformIdx, указывающий 1, означает, что индекс вертикального преобразования указывает 0, и что индекс горизонтального преобразования указывает 1. Это означает, что матрица A 1D преобразования используется для вертикального ортогонального преобразования, и что матрица B 1D преобразования используется для горизонтального ортогонального преобразования. Эти значения также означают, что транспонированная матрица матрицы A 1D преобразования используется для вертикального обратного ортогонального преобразования, и что транспонированная матрица матрицы B 1D преобразования используется для горизонтального обратного ортогонального преобразования.A TransformIdx indicating 1 means that the vertical transformation index indicates 0, and that the horizontal transformation index indicates 1. This means that the transformation matrix A 1D is used for vertical orthogonal transformation, and that the transformation matrix B 1D is used for horizontal orthogonal transformation. These values also mean that the transposed matrix of the transformation matrix A 1D is used for vertical inverse orthogonal transformation, and that the transposed matrix of the transformation matrix B 1D is used for horizontal inverse orthogonal transformation.

TransformIdx, указывающий 2, означает, что индекс вертикального преобразования указывает 1, и что индекс горизонтального преобразования указывает 0. Это означает, что матрица B 1D преобразования используется для вертикального ортогонального преобразования, и что матрица A 1D преобразования используется для горизонтального ортогонального преобразования. Эти значения также означают, что транспонированная матрица матрицы B 1D преобразования используется для вертикального обратного ортогонального преобразования, и что транспонированная матрица матрицы A 1D преобразования используется для горизонтального обратного ортогонального преобразования.TransformIdx indicating 2 means that the vertical transformation index indicates 1, and that the horizontal transformation index indicates 0. This means that the transformation matrix B 1D is used for vertical orthogonal transformation, and that the transformation matrix A 1D is used for horizontal orthogonal transformation. These values also mean that the transposed matrix of the transformation matrix B 1D is used for vertical inverse orthogonal transformation, and that the transposed matrix of the transformation matrix A 1D is used for horizontal inverse orthogonal transformation.

TransformIdx, указывающий 3, означает, что индекс вертикального преобразования указывает 1, и что индекс горизонтального преобразования указывает 1. Это означает, что матрица B 1D преобразования используется для вертикального ортогонального преобразования, и что матрица B 1D преобразования используется для горизонтального ортогонального преобразования. Эти значения также означают, что транспонированная матрица матрицы B 1D преобразования используется для вертикального обратного ортогонального преобразования, и что транспонированная матрица матрицы B 1D преобразования используется для горизонтального обратного ортогонального преобразования.TransformIdx indicating 3 means that the vertical transformation index indicates 1, and that the horizontal transformation index indicates 1. This means that the transformation matrix B 1D is used for vertical orthogonal transformation, and that the transformation matrix B 1D is used for horizontal orthogonal transformation. These values also mean that the transposed matrix of the transformation matrix B 1D is used for vertical inverse orthogonal transformation, and that the transposed matrix of the transformation matrix B 1D is used for horizontal inverse orthogonal transformation.

Таблица, показанная на Фиг. 4A, назначает информацию 129 задания матрицы 1D преобразования учитывая вышеописанную тенденцию каждого режима внутреннего предсказания. То есть 0 назначается индексу вертикального преобразования для режимов предсказания, проявляющих тенденцию в вертикальном направлении ошибки предсказания. 0 назначается индексу горизонтального преобразования для режимов предсказания, проявляющих тенденцию в горизонтальном направлении. С другой стороны, 1 назначается каждому из направлений, не проявляющих тенденцию.The table shown in FIG. 4A, assigns the setting information 129 of the transform matrix 1D considering the above-described trend of each intra prediction mode. That is, 0 is assigned to a vertical conversion index for prediction modes exhibiting a tendency in the vertical direction of prediction errors. 0 is assigned to the horizontal transform index for prediction modes exhibiting a trend in the horizontal direction. On the other hand, 1 is assigned to each of the directions that do not show a trend.

Когда вертикальное и горизонтальное направления предсказания классифицируются на два класса, в зависимости от того, существует ли тенденция, и применяется ли адаптивно матрица A 1D преобразования или матрица B 1D преобразования к каждому из вертикального и горизонтального направлений, может быть достигнута более высокая эффективность преобразования, чем в случае, где фиксированное ортогональное преобразование, такое как DCT, единообразно применяется к режимам предсказания.When the vertical and horizontal directions of the prediction are classified into two classes, depending on whether there is a trend and whether the conversion matrix A 1D or the conversion matrix B 1D is adaptively applied to each of the vertical and horizontal directions, higher conversion efficiency can be achieved than in the case where a fixed orthogonal transform, such as DCT, is applied uniformly to prediction modes.

Блок 113 управления порядком коэффициентов будет подробно описан ниже.The coefficient order control unit 113 will be described in detail below.

Блок 113 управления порядком коэффициентов преобразует квантованные коэффициенты 121 преобразования, которые являются двухмерным выражением, в последовательность 117 квантованных коэффициентов преобразования, которая является одномерным выражением, посредством расположения элементов квантованных коэффициентов 121 преобразования согласно предварительно определенному порядку. В качестве примера блок 113 управления порядком коэффициентов может осуществлять общее 2D-1D преобразование независимо от режима предсказания. Конкретно, блок 113 управления порядком коэффициентов может использовать зигзагообразное сканирование как в случае с H. 264. Зигзагообразное сканирование располагает элементы квантованных коэффициентов 121 преобразования в таком порядке, как показано на Фиг. 8A, и преобразует элементы в такую последовательность 117 квантованных коэффициентов преобразования как показано на Фиг. 8B. На Фиг. 8A и Фиг. 8B, (i, j) обозначает координаты (информацию о положении) каждого элемента в квантованных коэффициентах 121 преобразования (матрице). К тому же на Фиг. 2C показано 2D-1D преобразование, использующее зигзагообразное сканирование (в случае блока пикселей 4×4). Конкретно, на Фиг. 8C показан индекс (idx), указывающий порядок коэффициентов (порядок сканирований) в последовательности 117 квантованных коэффициентов преобразования, подверженной 2D-1D преобразованию, использующему зигзагообразное сканирование, и соответствующие элементы (cij) квантованных коэффициентов 121 преобразования. На Фиг. 8C, cij обозначает элементы с координатами (i, j) в квантованных коэффициентах 121 преобразования (матрице).The coefficient order control unit 113 converts the quantized transform coefficients 121, which are a two-dimensional expression, into a sequence 117 of quantized transform coefficients, which is a one-dimensional expression, by arranging the elements of the quantized transform coefficients 121 according to a predetermined order. As an example, coefficient order control unit 113 may perform a general 2D-1D transform regardless of the prediction mode. Specifically, the coefficient order control unit 113 may use a zigzag scan as in the case of H. 264. The zigzag scan arranges the elements of the quantized transform coefficients 121 in the order shown in FIG. 8A, and converts the elements into such a sequence 117 of quantized transform coefficients as shown in FIG. 8B. In FIG. 8A and FIG. 8B, (i, j) denotes the coordinates (position information) of each element in the quantized transform coefficients 121 (matrix). Also in FIG. 2C shows a 2D-1D transformation using a zigzag scan (in the case of a 4 × 4 pixel block). Specifically, in FIG. 8C is an index (idx) indicating the order of the coefficients (scan order) in a sequence 117 of quantized transform coefficients subjected to a 2D-1D transform using a zigzag scan, and corresponding elements (cij) of the quantized transform coefficients 121. In FIG. 8C, cij denotes elements with coordinates (i, j) in the quantized transform coefficients 121 (matrix).

В другого качестве примера, блок 113 управления порядком коэффициентов может осуществлять индивидуальные 2D-1D преобразования для соответствующих режимов предсказания. Блок 113 управления порядком коэффициентов, выполняющий такую операцию, проиллюстрирован на Фиг. 5A. Блок 113 управления порядком коэффициентов включает в себя переключатель 501 выбора и блоки индивидуального 2D-1D преобразования 502, ..., и 510 для соответственных девяти типов режимов предсказания. В соответствии с информацией режима предсказания (например, индексы режимов предсказания на Фиг. 4A), включенной в информацию 126 предсказания, переключатель 501 выбора приводит квантованные коэффициенты 121 преобразования в блок 2D-1D преобразования, соответствующий режиму предсказания (один из блоков 502, ..., 510 2D-1D преобразования). Например, индекс режима предсказания 0 обеспечивает возможность переключателю 501 выбора приводить квантованные коэффициенты 121 преобразования в блок 502 2D-1D преобразования. На Фиг. 5A, режимы предсказания и блоки 2D-1D преобразования находятся во взаимно-однозначном соответствии. Квантованные коэффициенты 121 преобразования приводятся в один блок 2D-1D преобразования, соответствующий режиму предсказания. На Фиг. 9 показано 2D-1D преобразование, осуществляемое посредством каждого из блоков 502, ..., 510 2D-1D преобразования (в случае блока пикселей 4×4). Конкретный метод проектирования для 2D-1D преобразования для каждого режима предсказания, как показано на Фиг. 9, будет описан ниже. На Фиг. 9 показан индекс (idx), указывающий порядок коэффициентов (порядок сканирований) в последовательности 117 квантованных коэффициентов преобразования, подверженной 2D-1D преобразованию посредством блока 2D-1D преобразования, и соответствующие элементы (cij) квантованных 121 коэффициентов преобразования. На Фиг. 9, cij обозначает элементы с координатами (i, j) в квантованных коэффициентах 121 преобразования (матрице). К тому же на Фиг. 9, каждый режим предсказания выражен своим именем, и соответствие между именами и индексом режима предсказания является как показано на Фиг. 4A. Таким образом, применение индивидуальных 2D-1D преобразований для соответственных режимов предсказания, например, обеспечивает возможность сканирования коэффициентов в порядке, подходящем для данной тенденции, чтобы сгенерировать ненулевые коэффициенты в квантованных коэффициентах 121 преобразования для каждого режима предсказания. Это увеличивает эффективность кодирования.As another example, coefficient order control unit 113 may perform individual 2D-1D transformations for respective prediction modes. The coefficient order control unit 113 performing such an operation is illustrated in FIG. 5A. The coefficient order control unit 113 includes a select switch 501 and individual 2D-1D transform units 502, ..., and 510 for the respective nine types of prediction modes. According to the prediction mode information (for example, the prediction mode indices in FIG. 4A) included in the prediction information 126, the selection switch 501 converts the quantized transform coefficients 121 into a 2D-1D transform block corresponding to the prediction mode (one of the blocks 502, .. ., 510 2D-1D conversion). For example, the prediction mode index 0 enables the selector switch 501 to bring the quantized transform coefficients 121 into a 2D-1D transform block 502. In FIG. 5A, prediction modes and 2D-1D transform blocks are in one-to-one correspondence. The quantized transform coefficients 121 are given in one 2D-1D transform block corresponding to the prediction mode. In FIG. 9 shows a 2D-1D conversion performed by each of the blocks 502, ..., 510 of a 2D-1D conversion (in the case of a 4 × 4 pixel block). A specific design method for 2D-1D conversion for each prediction mode, as shown in FIG. 9 will be described below. In FIG. 9 is an index (idx) indicating the order of the coefficients (scan order) in the sequence 117 of quantized transform coefficients subjected to 2D-1D transform by the 2D-1D transform block, and corresponding elements (cij) of the quantized 121 transform coefficients. In FIG. 9, cij denotes elements with coordinates (i, j) in the quantized transform coefficients 121 (matrix). Also in FIG. 9, each prediction mode is expressed by its name, and the correspondence between the names and the index of the prediction mode is as shown in FIG. 4A. Thus, the use of individual 2D-1D transforms for the respective prediction modes, for example, allows the coefficients to be scanned in the order appropriate for a given trend to generate non-zero coefficients in the quantized transform coefficients 121 for each prediction mode. This increases coding efficiency.

Для упрощения показан пример, касающийся блока пикселей 4×4. Однако для блока пикселей 8×8, блока пикселей 16×16 и тому подобных, индивидуальные 2D-1D преобразования для соответственных режимов предсказания могут быть аналогично установлены. К тому же блок пикселей является прямоугольным блоком, выраженным как M×N, размер блока, который следует подвергнуть 2D-1D преобразованию, может быть также M×N. В этом случае для прямоугольного блока, такие индивидуальные 2D-1D преобразования, как проиллюстрировано на Фиг. 9, могут быть установлены для соответственных режимов предсказания.For simplicity, an example is shown regarding a 4x4 pixel block. However, for an 8 × 8 pixel block, a 16 × 16 pixel block, and the like, individual 2D-1D transforms for respective prediction modes can be similarly set. In addition, the block of pixels is a rectangular block expressed as M × N, the size of the block to be subjected to 2D-1D conversion may also be M × N. In this case, for a rectangular block, such individual 2D-1D transformations as illustrated in FIG. 9 can be set for respective prediction modes.

В еще одном примере блок 113 управления порядком коэффициентов может динамически обновлять порядок сканирования для 2D-1D преобразования. Блок 113 управления порядком коэффициентов, выполняющий такую операцию, проиллюстрирован на Фиг. 5B. Блок 113 управления порядком коэффициентов включает в себя переключатель 501 выбора, блоки индивидуального 2D-1D преобразования 502, ..., и 510 для соответственных девяти типов режимов предсказания, блок 511 подсчета частоты возникновения и блок 512 обновления порядка коэффициентов. Переключатель 501 выбора является таким, как описано со ссылкой на Фиг 5A. Блоки индивидуального 2D-1D преобразования 502, ..., и 510 для соответственных девяти типов режимов предсказания отличаются от блоков 2D-1D преобразования, показанных на Фиг. 5A в том, что порядок сканирования для блоков 502, ..., и 510 2D-1D преобразования обновляется блоком 512 обновления порядка коэффициентов.In yet another example, coefficient order control unit 113 may dynamically update the scan order for 2D-1D conversion. The coefficient order control unit 113 performing such an operation is illustrated in FIG. 5B. The coefficient order control unit 113 includes a select switch 501, individual 2D-1D transform units 502, ..., and 510 for the respective nine types of prediction modes, an occurrence frequency calculation unit 511, and a coefficient order update unit 512. The selection switch 501 is as described with reference to FIG. 5A. The individual 2D-1D transform blocks 502, ..., and 510 for the respective nine types of prediction modes are different from the 2D-1D transform blocks shown in FIG. 5A is that the scan order for blocks 502, ..., and 510 2D-1D conversion is updated by block 512 updates the order of the coefficients.

Блок 511 подсчета частоты возникновения создает, для каждого режима предсказания, гистограмму из числа возникновений ненулевых коэффициентов в каждом элементе последовательности 117 квантованных коэффициентов преобразования. Блок 511 подсчета частоты возникновения вводит созданную гистограмму 513 в блок 512 обновления порядка коэффициентов.The occurrence frequency calculation unit 511 creates, for each prediction mode, a histogram of the occurrence of nonzero coefficients in each element of the sequence 117 of quantized transform coefficients. The occurrence frequency calculation unit 511 introduces the generated histogram 513 into the coefficient order updating unit 512.

Блок 512 обновления порядка коэффициентов обновляет порядок коэффициентов с предварительно определенным временным интервалом на основе гистограммы 513. Временной интервал может быть, например, временным интервалом, когда завершен процесс кодирования, осуществляемый над единицей дерева кодирования, или временным интервалом, когда завершен процесс кодирования, осуществляемый над одной линией в единице дерева кодирования.The coefficient order updating unit 512 updates the coefficient order with a predetermined time interval based on histogram 513. The time interval may be, for example, the time interval when the encoding process performed on a unit of the coding tree is completed, or the time interval when the encoding process completed on the one line in a coding tree unit.

Конкретно, блок 512 обновления порядка коэффициентов ссылается на гистограмму 513 для обновления порядка коэффициентов для режима предсказания с помощью элемента, для которого подсчитанное число возникновений ненулевых коэффициентов равняется или больше, чем пороговое значение. Например, блок 512 обновления порядка коэффициентов выполняет обновление для режима предсказания с помощью элемента, для которого подсчитанное число возникновений ненулевых коэффициентов является 16 или больше. Задание порогового значения для числа возникновений обеспечивает возможность глобального обновления порядка коэффициентов, таким образом избегая сведения к локальному оптимальному решению.Specifically, the coefficient order updating unit 512 refers to a histogram 513 for updating the coefficient order for the prediction mode using an element for which the calculated number of occurrences of non-zero coefficients is equal to or greater than the threshold value. For example, the coefficient order updating unit 512 performs an update for the prediction mode using an element for which the counted number of occurrences of non-zero coefficients is 16 or more. Setting a threshold value for the number of occurrences provides the ability to globally update the order of coefficients, thereby avoiding reduction to a local optimal solution.

Блок 512 обновления порядка коэффициентов сортирует, для режима предсказания цели обновления, элементы в порядке уменьшения частоты возникновения ненулевых коэффициентов. Сортировка может быть достигнута в соответствии с существующим алгоритмом, например, пузырьковая сортировка или быстрая сортировка. Блок 512 обновления порядка коэффициентов вводит информацию 514 обновления порядка коэффициентов, указывающую отсортированный порядок элементов в блок 2D-1D преобразования, соответствующий режиму предсказания цели обновления.Unit 512 updates the order of the coefficients sorts, for the prediction mode of the target update, the elements in order to reduce the frequency of occurrence of non-zero coefficients. Sorting can be achieved according to an existing algorithm, for example, bubble sorting or quick sorting. The coefficient order updating unit 512 inputs coefficient order updating information 514 indicating the sorted order of the elements into the 2D-1D transform unit corresponding to the prediction mode of the update target.

Как только информация 514 обновления порядка коэффициентов введена в блок 2D-1D преобразования, блок 2D-1D преобразования осуществляет 2D-1D преобразование в соответствии с обновленным порядком сканирования. Если порядок сканирования является динамически обновляемым, должны быть заданы первоначальные порядки сканирования для блоков 2D-1D преобразования. Например, зигзагообразное сканирование или порядок сканирования, проиллюстрированные на Фиг. 9 могут быть использованы в качестве первоначального порядка сканирования.Once the coefficient order updating information 514 is input to the 2D-1D conversion unit, the 2D-1D conversion unit performs 2D-1D conversion in accordance with the updated scan order. If the scan order is dynamically updated, the initial scan orders for the 2D-1D transform blocks must be specified. For example, the zigzag scan or scan order illustrated in FIG. 9 can be used as the initial scan order.

Динамическое обновление порядка сканирования предполагается для достижения стабильно высокой эффективности кодирования, даже если тенденция для генерирования ненулевых коэффициентов в квантованных коэффициентах 121 преобразования варьируется в зависимости от природы предсказанного изображения, информации квантования (параметра квантования) и тому подобного. Конкретно, объем кода, сгенерированного при кодировании длины серий в блоке 114 энтропийного кодирования, может быть уменьшена.Dynamic updating of the scan order is assumed to achieve consistently high coding efficiency, even if the tendency to generate non-zero coefficients in the quantized transform coefficients 121 varies depending on the nature of the predicted image, quantization information (quantization parameter), and the like. Specifically, the amount of code generated by encoding the length of the series in the entropy encoding unit 114 may be reduced.

Для упрощения был проиллюстрирован H. 264 и был описан случай девяти типов режимов предсказания. Однако, даже если число типов режима предсказания увеличено до 17, 33 или тому подобного, индивидуальные 2D-1D преобразования для соответственных режимов предсказания могут быть достигнуты посредством добавления блоков 2D-1D преобразования, соответствующих режимам предсказания, возникающим в результате данного увеличения.For simplicity, H. 264 was illustrated and a case of nine types of prediction modes was described. However, even if the number of prediction mode types is increased to 17, 33 or the like, individual 2D-1D transforms for respective prediction modes can be achieved by adding 2D-1D transform blocks corresponding to the prediction modes resulting from this increase.

Обработка, осуществляемая над целевым блоком кодирования (единицей дерева кодирования) устройством кодирования изображения на Фиг. 1, будет описана ниже со ссылкой на Фиг. 10A и Фиг. 10B. В примере, показанном на Фиг. 10A и Фиг. 10B, предполагается, что позволены ортогональное преобразование и обратное ортогональное преобразование согласно настоящему варианту осуществления (то есть адаптивное ортогональное преобразование и обратное ортогональное преобразование на основе информации 129 задания матрицы 1D преобразования). Однако, как описано ниже, синтаксис может быть задан, чтобы запретить ортогональное преобразование и обратное ортогональное преобразование согласно настоящему варианту осуществления.The processing performed on the encoding target block (coding tree unit) by the image encoding device in FIG. 1 will be described below with reference to FIG. 10A and FIG. 10B. In the example shown in FIG. 10A and FIG. 10B, it is assumed that orthogonal transformation and inverse orthogonal transformation are allowed according to the present embodiment (that is, adaptive orthogonal transformation and inverse orthogonal transformation based on the information 129 of the determination matrix 1D transformation). However, as described below, syntax may be defined to prohibit orthogonal transformation and inverse orthogonal transformation according to the present embodiment.

Как только входное изображение 118 введено в устройство кодирования изображения на Фиг. 1 в единицах целевого блока кодирования, начинается процесс кодирования целевого блока кодирования (этап S601). Блок 108 внутреннего предсказания и блок 109 внешнего предсказания используют опорное изображение 125, сохраненное в память 107 опорного изображения, для генерирования изображения предсказанного посредством внутреннего предсказания, и изображения, предсказанного посредством внутреннего предсказания, (этап S602). Блок 116 управления кодированием определяет оптимальный режим предсказания в том, что касается вышеописанной стоимости кодирования, чтобы сгенерировать информацию 126 предсказания (этап S603). Информация 126 предсказания вводится в каждый элемент блоком 110 выбора предсказания, как описано выше. Если информация 126 предсказания, сгенерированная на этапе S603, указывает на внутреннее предсказание, обработка переходит к этапу S605. Если информация 126 предсказания, сгенерированная на этапе S603, указывает на внешнее предсказание, обработка переходит к этапу S605'.Once the input image 118 is input to the image encoding apparatus of FIG. 1 in units of the encoding target block, the encoding process of the encoding target block begins (step S601). The intra prediction unit 108 and the inter prediction unit 109 use the reference image 125 stored in the reference image memory 107 to generate an image predicted by intra prediction and an image predicted by intra prediction (step S602). The encoding control unit 116 determines the optimum prediction mode with respect to the above-described encoding cost to generate prediction information 126 (step S603). Prediction information 126 is input to each element by the prediction selector 110, as described above. If the prediction information 126 generated in step S603 indicates an intra prediction, the processing proceeds to step S605. If the prediction information 126 generated in step S603 indicates an inter prediction, the processing proceeds to step S605 '.

На этапе S605 блок 101 вычитания вычитает изображение 127, предсказанное посредством (внутреннего) предсказания из целевого блока кодирования для генерирования ошибки 119 предсказания. Обработка затем переходит к этапу S606. С другой стороны, также на этапе S605' блок 101 вычитания вычитает изображение 127, предсказанное посредством (внешнего) предсказания из целевого блока кодирования для генерирования ошибки 119 предсказания. Обработка затем переходит к этапу S614'.In step S605, the subtracting unit 101 subtracts the image 127 predicted by the (intra) prediction from the encoding target to generate the prediction error 119. Processing then proceeds to step S606. On the other hand, also in step S605 ′, the subtracting unit 101 subtracts the image 127 predicted by the (external) prediction from the encoding target block to generate the prediction error 119. Processing then proceeds to step S614 '.

На этапе S606 блок 112 задания матрицы 1D преобразования извлекает информацию режима предсказания, включенную в информацию 126 предсказания, сгенерированную на этапе S603. На основе извлеченной информации режима предсказания (например, ссылкой на таблицу на Фиг. 4A) блок 112 задания матрицы 1D преобразования генерирует информацию 129 задания матрицы 1D преобразования (этап S607). Блок 112 задания матрицы 1D преобразования выводит информацию 129 задания матрицы 1D преобразования в блок 102 ортогонального преобразования и блок 105 обратного ортогонального преобразования.In step S606, the determining unit 112 of the transformation matrix 1D extracts prediction mode information included in the prediction information 126 generated in step S603. Based on the extracted prediction mode information (for example, referring to the table in FIG. 4A), the transform matrix 1D setting unit 112 generates the transform matrix 1D setting information 129 (step S607). The conversion matrix 1D definition unit 112 converts the conversion matrix information 1D 129 to the orthogonal transform unit 102 and the inverse orthogonal transform unit 105.

Переключатель 201 выбора в блоке 102 ортогонального преобразования выбирает блок A 206 1D ортогонального преобразования или блок B 207 1D ортогонального преобразования на основе информации 129 задания матрицы 1D преобразования (этап S608, этап S609 и этап S610). С другой стороны, переключатель 204 выбора в блоке 102 ортогонального преобразования выбирает блок A 208 1D ортогонального преобразования или блок B 209 ортогонального преобразования на основе информации 129 задания матрицы 1D преобразования (этап S611, этап S612 и этап S613). Обработка затем переходит к этапу S614.The selection switch 201 in the orthogonal transform block 102 selects the orthogonal transform block A 206 1D or the orthogonal transform block B 207 1D based on the setting information 129 of the transform matrix 1D (step S608, step S609 and step S610). On the other hand, the selection switch 204 in the orthogonal transform block 102 selects the orthogonal transform block A 208 1D or the orthogonal transform block B 209 based on the setting information 129 of the transform matrix 1D (step S611, step S612 and step S613). Processing then proceeds to step S614.

Например, если индекс преобразования (TransformIdx), пример информации 129 задания матрицы 1D преобразования, 0, переключатель 201 выбора выбирает блок A 206 1D ортогонального преобразования в блоке 202 вертикального преобразования (этап S609). Если TransformIdx 0, переключатель 204 выбора выбирает блок A 208 1D ортогонального преобразования в блоке 205 горизонтального преобразования (этап S612). Если TransformIdx 1, переключатель 201 выбора выбирает блок A 206 1D ортогонального преобразования в блоке 202 вертикального преобразования (этап S609). Если TransformIdx 1, переключатель 204 выбора выбирает блок B 209 1D ортогонального преобразования в блоке 205 горизонтального преобразования (этап S613). Если TransformIdx 2, переключатель 201 выбора выбирает блок B 207 1D ортогонального преобразования в блоке 202 вертикального преобразования (этап S610). Если TransformIdx 2, переключатель 204 выбора выбирает блок A 208 1D ортогонального преобразования в блоке 205 горизонтального преобразования (этап S612). Если TransformIdx 3, переключатель 201 выбора выбирает блок B 207 1D ортогонального преобразования в блоке 202 вертикального преобразования (этап S610). Если TransformIdx 3, переключатель 204 выбора выбирает блок B 209 1D ортогонального преобразования в блоке 205 горизонтального преобразования (этап S613).For example, if the transformation index (TransformIdx), example information 129 of setting the transformation matrix 1D, 0, the selection switch 201 selects the orthogonal transformation unit A 206 1D in the vertical transformation unit 202 (step S609). If TransformIdx 0, the selection switch 204 selects the orthogonal transform block A 208 1D in the horizontal transform block 205 (step S612). If TransformIdx 1, the select switch 201 selects the orthogonal transform unit A 206 1D in the vertical transform unit 202 (step S609). If TransformIdx 1, the selection switch 204 selects the orthogonal transform block B 209 1D in the horizontal transform block 205 (step S613). If TransformIdx 2, the selection switch 201 selects the orthogonal transform block B 207 1D in the vertical transform block 202 (step S610). If TransformIdx 2, the selection switch 204 selects the orthogonal transform block A 208 1D in the horizontal transform block 205 (step S612). If TransformIdx 3, the selection switch 201 selects the orthogonal transform block B 207 1D in the vertical transform block 202 (step S610). If TransformIdx 3, the selection switch 204 selects the orthogonal transform block B 209 1D in the horizontal transform block 205 (step S613).

На этапе S614 блок 102 ортогонального преобразования осуществляет вертикальное преобразование и горизонтальное преобразование, которые соответствуют заданиям, сделанным на этапе S608, ... и этапе S613 ошибки 119 предсказания для генерирования коэффициентов 120 преобразования. Впоследствии, блок 103 квантования квантует коэффициенты 120 преобразования, сгенерированные на этапе S614 (этап S615). Обработка затем переходит к этапу S616.In step S614, the orthogonal transform unit 102 performs vertical transform and horizontal transform, which correspond to the tasks made in step S608, ... and step S613 of prediction error 119 for generating transform coefficients 120. Subsequently, the quantization unit 103 quantizes the transform coefficients 120 generated in step S614 (step S615). Processing then proceeds to step S616.

С другой стороны, на этапе S614' блок 102 ортогонального преобразования осуществляет фиксированное ортогональное преобразование, например, DCT, ошибки 119 предсказания для генерирования коэффициентов 120 преобразования. Впоследствии, блок 103 квантования квантует коэффициенты 120 преобразования, сгенерированные на этапе S614' для генерирования квантованных коэффициентов 121 преобразования (этап S615'). Обработка переходит к этапу S617'. Ортогональное преобразование, осуществляемое на этапе S614', может быть реализовано блоком DCT (не показан на чертежах) или блоком B 207 1D ортогонального преобразования и блоком B 209 1D ортогонального преобразования.On the other hand, in step S614 ', the orthogonal transform unit 102 performs a fixed orthogonal transform, for example, DCT, prediction errors 119 to generate transform coefficients 120. Subsequently, the quantization unit 103 quantizes the transform coefficients 120 generated in step S614 ′ to generate the quantized transform coefficients 121 (step S615 ′). Processing proceeds to step S617 '. The orthogonal transformation performed in step S614 ′ may be implemented by a DCT block (not shown in the drawings) or an orthogonal transform block B 207 1D and an orthogonal transform block B 209 1D.

На этапе s616 блок 113 управления порядком коэффициентов задает порядок сканирования (то есть в примере, показанном на Фиг. 5A и Фиг. 5B, блок, к которому присоединен переключатель 501 выбора) на основе информации режима предсказания, включенной в информацию 126 предсказания, сгенерированную на этапе S603. Обработка переходит к этапу S617. Если блок 113 управления порядком коэффициентов осуществляет общее 2D-1D преобразование независимо от режима предсказания, этап S616 может быть опущен.In step s616, the coefficient order control unit 113 sets the scanning order (i.e., in the example shown in Fig. 5A and Fig. 5B, the unit to which the select switch 501 is connected) based on the prediction mode information included in the prediction information 126 generated on step S603. Processing proceeds to step S617. If the coefficient order control unit 113 performs a general 2D-1D transform regardless of the prediction mode, step S616 may be omitted.

На этапе S617 блок 113 управления порядком коэффициентов осуществляет 2D-1D преобразование, соответствующее заданию, сделанному на этапе S616, квантованных коэффициентов 121 преобразования для генерирования последовательности 117 квантованных коэффициентов преобразования. Впоследствии, блок 114 энтропийного кодирования осуществляет энтропийное кодирование параметров кодирования, включающих в себя последовательность 117 квантованных коэффициентов преобразования (этап S618). Кодированные данные выводятся с должным временным интервалом, управляемым блоком 116 управления кодированием. С другой стороны, блок 104 деквантования деквантует квантованные коэффициенты 121 преобразования для генерирования восстановленных квантованных коэффициентов 122 преобразования (этап S619). Обработка переходит к этапу S620.In step S617, the coefficient order control unit 113 performs a 2D-1D conversion corresponding to the job done in step S616 of the quantized transform coefficients 121 to generate a sequence 117 of quantized transform coefficients. Subsequently, the entropy encoding unit 114 performs entropy encoding of the encoding parameters including a sequence 117 of quantized transform coefficients (step S618). The encoded data is output at an appropriate time interval controlled by the encoding control unit 116. On the other hand, the dequantization unit 104 quantizes the quantized transform coefficients 121 to generate the reconstructed quantized transform coefficients 122 (step S619). Processing proceeds to step S620.

На этапе S617' блок 113 управления порядком коэффициентов осуществляет, например, фиксированное 2D-1D преобразование, такое как зигзагообразное сканирование, или 2D-1D преобразование, соответствующее Intra_NxN_DC на Фиг. 9, квантованных коэффициентов 121 преобразования для генерирования последовательности 117 квантованных коэффициентов преобразования. Впоследствии, блок 114 энтропийного кодирования осуществляет энтропийное кодирование параметров кодирования, включающих в себя последовательность 117 квантованных коэффициентов преобразования (этап S618'). Кодированные данные выводятся с должным временным интервалом, управляемым блоком 116 управления кодированием. С другой стороны, блок 104 деквантования деквантует квантованные коэффициенты 121 преобразования для генерирования восстановленных квантованных коэффициентов 122 преобразования (этап S619'). Обработка затем переходит к этапу S626'.In step S617 ′, the coefficient order control unit 113 performs, for example, a fixed 2D-1D transformation, such as a zigzag scan, or a 2D-1D transformation corresponding to the Intra_NxN_DC in FIG. 9, quantized transform coefficients 121 to generate a sequence of 117 quantized transform coefficients. Subsequently, the entropy encoding unit 114 performs entropy encoding of the encoding parameters including a sequence 117 of quantized transform coefficients (step S618 ′). The encoded data is output at an appropriate time interval controlled by the encoding control unit 116. On the other hand, the dequantization unit 104 quantizes the quantized transform coefficients 121 to generate the reconstructed quantized transform coefficients 122 (step S619 ′). Processing then proceeds to step S626 '.

Переключатель 301 выбора в блоке 105 обратного ортогонального преобразования выбирает блок A 306 1D обратного ортогонального преобразования или блок B 307 1D обратного ортогонального преобразования на основе информации 129 задания матрицы 1D преобразования (этап S620, этап S621 и этап S622). С другой стороны, переключатель 304 выбора в блоке 105 обратного ортогонального преобразования выбирает блок A 308 1D обратного ортогонального преобразования или блок B 309 1D обратного ортогонального преобразования на основе информации 129 задания матрицы 1D преобразования (этап S623, этап S624 и этап S625). Обработка затем переходит к этапу S626.The selection switch 301 in the inverse orthogonal transform block 105 selects the inverse orthogonal transform block A 306 1D or the inverse orthogonal transform block B 307 1D based on the setting information 129 of the transform matrix 1D (step S620, step S621 and step S622). On the other hand, the selection switch 304 in the inverse orthogonal transform block 105 selects the inverse orthogonal transform block A 308 1D or the inverse orthogonal transform block B 309 1D based on the determination information 129 of the transform matrix 1D (step S623, step S624 and step S625). Processing then proceeds to step S626.

Например, если индекс преобразования (TransformIdx), пример информации 129 задания матрицы 1D преобразования, 0, переключатель 301 выбора выбирает блок A 306 1D обратного ортогонального преобразования в блоке 302 вертикального обратного преобразования (этап S621). Если TransformIdx 0, переключатель 304 выбора выбирает блок A 308 1D обратного ортогонального преобразования в блоке 305 горизонтального обратного преобразования (этап S624). Если TransformIdx 1, переключатель 301 выбора выбирает блок A 306 1D обратного ортогонального преобразования в блоке 302 вертикального обратного преобразования (этап S621). Если TransformIdx 1, переключатель 304 выбора выбирает блок B 309 1D обратного ортогонального преобразования в блоке 305 горизонтального обратного преобразования (этап S625).For example, if the transform index (TransformIdx), example information 129 of setting the transformation matrix 1D, 0, the select switch 301 selects the inverse orthogonal transform block A 306 1D in the vertical inverse transform block 302 (step S621). If TransformIdx 0, the selection switch 304 selects the inverse orthogonal transform block A 308 1D in the horizontal inverse transform block 305 (step S624). If TransformIdx 1, the select switch 301 selects the inverse orthogonal transform block A 306 1D in the vertical inverse transform block 302 (step S621). If TransformIdx 1, the selection switch 304 selects the inverse orthogonal transform block B 309 1D in the horizontal inverse transform block 305 (step S625).

Если TransformIdx 2, переключатель 301 выбора выбирает блок B 307 1D обратного ортогонального преобразования в блоке 302 вертикального обратного преобразования (этап S622). Если TransformIdx 2, переключатель 304 выбора выбирает блок A 308 1D обратного ортогонального преобразования в блоке 305 горизонтального обратного преобразования (этап S624). Если TransformIdx 3, переключатель 301 выбора выбирает блок B 307 1D обратного ортогонального преобразования в блоке 302 вертикального обратного преобразования (этап S622). Если TransformIdx 3, переключатель 304 выбора выбирает блок B 309 1D обратного ортогонального преобразования в блоке 305 горизонтального обратного преобразования (этап S625).If TransformIdx 2, the select switch 301 selects the inverse orthogonal transform block B 307 1D in the vertical inverse transform block 302 (step S622). If TransformIdx 2, the selection switch 304 selects the inverse orthogonal transform block A 308 1D in the horizontal inverse transform block 305 (step S624). If TransformIdx 3, the selection switch 301 selects the inverse orthogonal transform block B 307 1D in the vertical inverse transform block 302 (step S622). If TransformIdx 3, the selection switch 304 selects the inverse orthogonal transform block B 309 1D in the horizontal inverse transform block 305 (step S625).

На этапе S626 блок 105 обратного ортогонального преобразования осуществляет вертикальное преобразование и горизонтальное преобразование, которые соответствуют заданиям, сделанным на этапе S620, ... и этапе S625 восстановленных коэффициентов 122 преобразования для генерирования восстановленной ошибки 123 предсказания. Обработка переходит к этапу S627. На этапе S626' блок 105 обратного ортогонального преобразования осуществляет обратное ортогональное преобразование, например, IDCT, восстановленных коэффициентов 122 преобразования для генерирования восстановленной ошибки 123 предсказания. Обработка затем переходит к этапу S627. Фиксированное обратное ортогональное преобразование, осуществляемое на этапе S626', может быть реализовано блоком IDCT (не показан на чертежах) или блоком B 307 1D обратного ортогонального преобразования и блоком B 309 1D обратного ортогонального преобразования.In step S626, the inverse orthogonal transform unit 105 performs vertical transform and horizontal transform, which correspond to the tasks made in step S620, ... and step S625 of the reconstructed transform coefficients 122 to generate a reconstructed prediction error 123. Processing proceeds to step S627. In step S626 ', the inverse orthogonal transform unit 105 performs inverse orthogonal transform, for example, IDCT, of the reconstructed transform coefficients 122 to generate a reconstructed prediction error 123. Processing then proceeds to step S627. The fixed inverse orthogonal transformation performed in step S626 ′ may be implemented by an IDCT block (not shown in the drawings) or an inverse orthogonal transform block B 307 1D and an inverse orthogonal transform block B 309 1D.

На этапе S627 блок 106 сложения прибавляет восстановленную ошибку 123 предсказания, сгенерированную на этапе S626 или S626', к соответствующему предсказанному изображению 127, чтобы сгенерировать локально декодированное изображение 124. Локально декодированное изображение 124 сохраняется в память 107 опорного изображения в качестве опорного изображения. Таким образом, процесс кодирования целевого блока кодирования заканчивается (этап S628).In step S627, the addition unit 106 adds the reconstructed prediction error 123 generated in step S626 or S626 'to the corresponding predicted image 127 to generate a locally decoded image 124. The locally decoded image 124 is stored in the reference image memory 107 as a reference image. Thus, the encoding process of the encoding target block ends (step S628).

Метод для проектирования матрицы A 1D преобразования и матрицы B 1D преобразования будет описан ниже. Согласно H. 264, девять типов режимов предсказания установлены для блока пикселей 4×4 и блока пикселей 8×8. Четыре типа режимов предсказания установлены для блока пикселей 16×16.A method for designing the transformation matrix A 1D and the transformation matrix B 1D will be described below. According to H. 264, nine types of prediction modes are set for a 4 × 4 pixel block and an 8 × 8 pixel block. Four types of prediction modes are set for a block of 16 × 16 pixels.

Сначала генерируется ошибка 119 предсказания для каждого режима предсказания. Собраны те из ошибок 119 предсказания для соответственных режимов предсказания, которые проявляют, в вертикальном направлении или горизонтальном направлении, вышеописанную тенденцию иметь абсолютное значение, увеличивающееся с расстоянием от опорного пикселя. Затем, осуществляется сингулярная декомпозиция матрицы, в которой направление с проявленной в нем тенденцией установлено как направление столбца, и в которой ошибки 119 предсказания расположены в направлении ряда. Таким образом, спроектирован 1D ортогональный базис, который устраняет вертикальную корреляцию в матрице. 1D ортогональный базис расположен в направлении столбца, как векторы-строки, для генерирования матрицы A 1D преобразования.First, prediction error 119 is generated for each prediction mode. Those of the prediction errors 119 for the respective prediction modes that exhibit, in the vertical direction or horizontal direction, the above tendency to have an absolute value increasing with distance from the reference pixel are collected. Then, a singular matrix decomposition is performed in which the direction with the tendency manifested in it is set as the column direction, and in which the prediction errors 119 are located in the row direction. Thus, a 1D orthogonal basis is designed that eliminates vertical correlation in the matrix. The 1D orthogonal basis is arranged in the column direction as row vectors to generate the transformation matrix A 1D.

С другой стороны, осуществляется сингулярная декомпозиция матрицы, в которой направление с не проявленной в нем тенденцией установлено как направление столбца, и в которой ошибки 119 предсказания расположены в направлении ряда. Таким образом, сгенерирована 1D ортогональный базис, который устраняет вертикальную корреляцию в матрице. 1D ортогональный базис расположен в направлении столбца, как векторы-строки, для генерирования матрицы B 1D преобразования. Матрица B 1D преобразования может быть просто заменена матрицей для DCT. Для упрощения было проиллюстрировано проектирование для блока пикселей 4×4. Однако матрицы 1D преобразования для блоков пикселей 8×8 и блоков пикселей 16×16 могут быть аналогично спроектированы. К тому же вышеописанный метод проектирования является иллюстративным, и проектирование может быть осуществлено в случае необходимости из-за вышеописанной природы учтенной ошибки предсказания.On the other hand, a singular matrix decomposition is performed in which the direction with no tendency shown in it is set as the column direction, and in which the prediction errors 119 are located in the row direction. Thus, a 1D orthogonal basis is generated that eliminates vertical correlation in the matrix. The 1D orthogonal basis is located in the column direction as row vectors to generate the B 1D transform matrix. The B 1D transform matrix can simply be replaced by a matrix for DCT. For simplicity, design was illustrated for a block of 4 × 4 pixels. However, transformation matrices 1D for 8 × 8 pixel blocks and 16 × 16 pixel blocks can be similarly designed. In addition, the above-described design method is illustrative, and design can be carried out if necessary due to the above-described nature of the recorded prediction error.

Конкретный метод проектирования для 2D-1D преобразования для каждого режима предсказания (порядок сканирования), как проиллюстрировано на Фиг. 9, будет описан ниже. Порядок сканирования для каждого режима предсказания может быть спроектирован на основе квантованных коэффициентов 121 преобразования, сгенерированных блоком 103 квантования. Например, проектирование для блока пикселей 4×4 подготавливает множество обучающих изображений для генерирования ошибки 119 предсказания для каждого из девяти типов режимов предсказания. Ортогональные преобразования, показанные в Выражении (3) и Выражении (4) осуществляются над каждой ошибкой 119 предсказания для генерирования коэффициентов 120 преобразования. Затем, коэффициенты 120 преобразования квантуются. В связи с квантованными коэффициентами 121 преобразования число возникновений ненулевых коэффициентов кумулятивно добавляется для каждого из элементов блока пикселей 4×4. Кумулятивное добавление осуществляется на всех обучающих изображений для создания гистограммы, указывающей частоту возникновения ненулевых коэффициентов для каждого из 16 элементов блока пикселей 4×4. На основе гистограммы индексы от 0 до 15 назначаются элементам в порядке уменьшения частоты возникновения. Такое назначение индексов индивидуально осуществляется на всех режимах предсказания. Порядок назначенных индексов используется в качестве порядка сканирования, соответствующего каждому режиму предсказания.A specific design method for 2D-1D conversion for each prediction mode (scan order), as illustrated in FIG. 9 will be described below. The scan order for each prediction mode can be designed based on the quantized transform coefficients 121 generated by the quantization unit 103. For example, designing for a 4 × 4 pixel block prepares a plurality of training images to generate prediction error 119 for each of the nine types of prediction modes. The orthogonal transforms shown in Expression (3) and Expression (4) are performed on each prediction error 119 to generate transform coefficients 120. Then, transform coefficients 120 are quantized. In connection with the quantized transform coefficients 121, the number of occurrences of nonzero coefficients is cumulatively added for each of the elements of a 4 × 4 pixel block. Cumulative addition is carried out on all training images to create a histogram indicating the frequency of occurrence of non-zero coefficients for each of the 16 elements of a 4 × 4 pixel block. Based on the histogram, indices from 0 to 15 are assigned to elements in decreasing order of occurrence frequency. Such assignment of indices is individually carried out in all prediction modes. The order of the assigned indices is used as the scan order corresponding to each prediction mode.

Для упрощения был проиллюстрировано проектирование блока пикселей 4×4. Однако порядки сканирования для блоков пикселей 8×8 и блоков пикселей 16×16 могут быть аналогично спроектированы. К тому же, даже если число режимов предсказания увеличено до 17, 33 или любого другого значения, данное проектирование может быть достигнуто, используя аналогичный метод. Метод для динамического обновления порядка сканирования описан со ссылкой на Фиг. 5B.For simplicity, a 4 × 4 pixel block design was illustrated. However, scan orders for 8 × 8 pixel blocks and 16 × 16 pixel blocks can be similarly designed. In addition, even if the number of prediction modes is increased to 17, 33, or any other value, this design can be achieved using a similar method. A method for dynamically updating the scan order is described with reference to FIG. 5B.

Синтаксис, используемый устройством кодирования изображения на Фиг. 1, будет описан.The syntax used by the image encoding apparatus of FIG. 1 will be described.

Синтаксис указывает структуру кодированных данных (пример, кодированных данных 130 на Фиг. 1), полученных устройства кодирования изображения, кодирующего видеоданные. Когда кодированные данные декодируются, устройство декодирования изображения ссылается на ту же структуру данных для интерпретации синтаксиса. На Фиг. 11 проиллюстрирован синтаксис 700, используемый устройством кодирования изображения на Фиг. 1.The syntax indicates the structure of the encoded data (example, encoded data 130 in FIG. 1) obtained by an image encoding apparatus encoding video data. When the encoded data is decoded, the image decoding apparatus refers to the same data structure for interpreting the syntax. In FIG. 11 illustrates the syntax 700 used by the image encoding apparatus of FIG. one.

Синтаксис 700 включает в себя три части, то есть высокоуровневый синтаксис 701, синтаксис 702 уровня вырезки и синтаксис 703 уровня дерева кодирования. Высокоуровневый синтаксис 701 включает в себя информацию синтаксиса на уровне более высоком, чем вырезка. Вырезка относится к прямоугольной области или непрерывной области, включенной в кадр или поле. Синтаксис 702 уровня вырезки включает в себя информацию, требуемую для декодирования каждого вырезки. Синтаксис 703 уровня дерева кодирования включает в себя информацию, требуемую для декодирования каждого дерева кодирования (то есть каждой единицы дерева кодирования). Каждая из этих частей включает в себя дополнительно детализированный синтаксис.Syntax 700 includes three parts, that is, high-level syntax 701, cut-level syntax 702, and coding tree level syntax 703. The high-level syntax 701 includes syntax information at a level higher than clipping. A cut refers to a rectangular region or a continuous region included in a frame or field. The cut-level syntax 702 includes information required to decode each cut. The encoding tree layer syntax 703 includes information required to decode each encoding tree (i.e., each unit of the encoding tree). Each of these parts includes additionally detailed syntax.

Высокоуровневый синтаксис 701 включает в себя синтаксис уровня последовательности и синтаксис уровня картинки, такие как синтаксис 704 задания параметров последовательности и синтаксис 705 задания параметров картинки. Синтаксис 702 уровня вырезки включает в себя синтаксис 706 заголовка вырезки и синтаксис 707 данных вырезки. Синтаксис 703 уровня дерева кодирования включает в себя синтаксис 708 единицы дерева кодирования и синтаксис 709 единицы предсказания.The high level syntax 701 includes sequence level syntax and picture level syntax, such as sequence parameter setting syntax 704 and picture parameter setting syntax 705. The cut-level syntax 702 includes the cut header syntax 706 and the cut data syntax 707. The coding tree level syntax 703 includes the coding tree unit syntax 708 and the prediction unit syntax 709.

Синтаксис 708 единицы дерева кодирования может иметь структуру тетрарного дерева. Конкретно, в качестве элемента синтаксиса синтаксиса 708 единицы дерева кодирования синтаксис 708 единицы дерева кодирования может быть дополнительно рекурсивно привлечен. То есть одна единица дерева кодирования может быть разделена на куски используя тетрарные деревья. К тому же синтаксис 708 единицы дерева кодирования содержит синтаксис 710 единицы преобразования. Синтаксис 710 единицы преобразования привлекается при каждом синтаксисе 708 единицы дерева кодирования, размещенном на конце тетрарного дерева. Синтаксис 710 единицы преобразования имеет информацию по обратному ортогональному преобразованию, квантованию и тому подобном, описанным в ней.The syntax 708 units of the coding tree may have the structure of a tetra tree. Specifically, as an element of the syntax syntax 708 of the coding tree unit, the syntax 708 of the coding tree unit may be further recursively involved. That is, one unit of the coding tree can be divided into pieces using tetra trees. In addition, the syntax 708 units of the encoding tree contains the syntax 710 conversion unit. The transform unit syntax 710 is invoked with each syntax 708 of the coding tree unit located at the end of the tetra tree. The transform unit syntax 710 has information on the inverse orthogonal transform, quantization, and the like described therein.

На Фиг. 12 проиллюстрирован синтаксис 706 заголовка вырезки согласно настоящему варианту осуществления. slice_directional_unified_transform_flag, показанный на Фиг. 12 является, например, элементом синтаксиса, который указывает позволены или запрещены для определенного вырезки ортогональное преобразование и обратное ортогональное преобразование согласно настоящему варианту осуществления.In FIG. 12, the clipping header syntax 706 according to the present embodiment is illustrated. slice_directional_unified_transform_flag shown in FIG. 12 is, for example, a syntax element that indicates whether the orthogonal transform and the inverse orthogonal transform according to the present embodiment are allowed or prohibited for a particular cut.

slice_directional_unified_transform_flag 0 означает, что ортогональное преобразование и обратное ортогональное преобразование согласно настоящему варианту осуществления позволены в данной вырезке. Отсюда, блок 102 ортогонального преобразования и блок 105 обратного ортогонального преобразования осуществляют фиксированные ортогональное преобразование и обратное ортогональное, такие как DCT и IDCT. Фиксированные ортогональное преобразование и обратное ортогональное преобразование могут быть осуществлены блоком B 207 1D ортогонального преобразования, блоком B 209 1D ортогонального преобразования, блоком B 307 1D обратного ортогонального преобразования и блоком B 209 1D обратного ортогонального преобразования (то есть посредством матрицы B 1D преобразования) или блоком DCT и IDCT (ни один из блоков не показан на чертежах). К тому же блок 113 управления порядком коэффициентов осуществляет фиксированное 2D-1D преобразование (например, зигзагообразное сканирование). Фиксированное 2D-1D преобразование может быть осуществлено блоком 504 2D-1D преобразования (режим 2) или блоком 2D-1D преобразования, не показанным не чертежах.slice_directional_unified_transform_flag 0 means that the orthogonal transform and inverse orthogonal transform according to the present embodiment are allowed in this clipping. Hence, the orthogonal transform unit 102 and the inverse orthogonal transform unit 105 perform fixed orthogonal and inverse orthogonal transforms, such as DCT and IDCT. The fixed orthogonal transform and inverse orthogonal transform can be performed by the orthogonal transform block B 207 1D, the orthogonal transform block B 209 1D, the inverse orthogonal transform block B 307 1D, and the inverse orthogonal transform block B 209 1D (i.e., by the transform matrix B 1D) or block DCT and IDCT (none of the blocks are shown in the drawings). In addition, the coefficient order control unit 113 performs a fixed 2D-1D transformation (e.g., zigzag scanning). A fixed 2D-1D conversion may be performed by a 2D-1D conversion unit 504 (mode 2) or a 2D-1D conversion unit not shown in the drawings.

В качестве примера slice_directional_unified_transform_flag 1 означает, что ортогональное преобразование и обратное ортогональное преобразование согласно настоящему варианту осуществления позволены во всей данной вырезке. То есть процесс кодирования осуществляется в соответствии с вышеописанной схемой последовательности операций кодирования на Фиг. 10A и Фиг. 10B. То есть переключатель 201 выбора выбирает блок A 206 1D ортогонального преобразования или блок B 207 1D ортогонального преобразования на основе информации 129 задания матрицы 1D преобразования. Переключатель 204 выбора выбирает блок A 208 1D ортогонального преобразования или блок B 209 1D ортогонального преобразования на основе информации 129 задания матрицы 1D преобразования. К тому же переключатель 301 выбора выбирает блок A 306 1D обратного ортогонального преобразования или блок B 307 1D обратного ортогонального преобразования на основе информации 129 задания матрицы 1D преобразования. Переключатель 304 выбора выбирает блок A 308 1D обратного ортогонального преобразования или блок B 309 1D обратного ортогонального преобразования на основе информации 129 задания матрицы 1D преобразования. Более того, переключатель 501 выбора выбирает один из блоков 502, ... и 510 2D-1D преобразования в соответствии с информацией режима предсказания, включенной в информацию 126 предсказания.By way of example, slice_directional_unified_transform_flag 1 means that the orthogonal transform and inverse orthogonal transform according to the present embodiment are allowed throughout this clipping. That is, the encoding process is carried out in accordance with the above-described encoding flowchart in FIG. 10A and FIG. 10B. That is, the select switch 201 selects the orthogonal transform unit A 206 1D or the orthogonal transform unit B 207 1D based on the information 129 of the definition of the transform matrix 1D. The selection switch 204 selects the orthogonal transform block A 208 1D or the orthogonal transform block B 209 1D based on the information 129 of the definition of the transform matrix 1D. In addition, the select switch 301 selects the inverse orthogonal transform block A 306 1D or the inverse orthogonal transform block B 307 1D based on the information 129 of the definition of the transform matrix 1D. The selection switch 304 selects the inverse orthogonal transform block A 308 1D or the inverse orthogonal transform block B 309 1D based on the information 129 of the set matrix 1D transform. Moreover, the selection switch 501 selects one of the 2D-1D transform units 502, ... and 510 in accordance with the prediction mode information included in the prediction information 126.

К тому же в другом примере, если slice_directional_unified_transform_flag 1, синтаксис в нижнем слое (таком как единица дерева кодирования или единица преобразования) может быть задан для указания, позволены или запрещены для каждой локальной области внутри вырезки ортогональное преобразование и обратное ортогональное преобразование согласно настоящему варианту осуществления.In addition, in another example, if slice_directional_unified_transform_flag 1, the syntax in the bottom layer (such as a coding tree unit or transform unit) can be specified to indicate whether orthogonal transform and inverse orthogonal transform according to the present embodiment are allowed or denied for each local region within the clipping .

На Фиг. проиллюстрирован синтаксис 708 единицы дерева кодирования согласно настоящему варианту осуществления.In FIG. illustrated syntax 708 units of the coding tree according to the present embodiment.

ctb_directional_unified_transform_flag, показанный на Фиг. 13, является элементом синтаксиса, указывающим позволены или запрещены для определенной единицы кодирования ортогональное преобразование и обратное ортогональное преобразование согласно настоящему варианту осуществления. К тому же pred_mode, показанный на Фиг. 13, является элементом синтаксиса, включенным в синтаксис 709 единицы предсказания, и указывает тип кодирования в единице дерева кодирования или макроблоке. MODE_INTRA указывает, что типом кодирования является внутреннее предсказание.ctb_directional_unified_transform_flag shown in FIG. 13 is a syntax element indicating whether the orthogonal transform and the inverse orthogonal transform according to the present embodiment are allowed or prohibited for a particular coding unit. In addition, pred_mode shown in FIG. 13 is a syntax element included in the prediction unit syntax 709, and indicates a coding type in a coding tree unit or macroblock. MODE_INTRA indicates that the encoding type is intra prediction.

ctb_directional_unified_transform_flag кодируется только когда вышеописанный slice_directional_unified_transform_flag 1, и когда тип кодирования единицы дерева кодирования является внутренним предсказанием.ctb_directional_unified_transform_flag is encoded only when slice_directional_unified_transform_flag 1 is described above, and when the encoding type of the encoding tree unit is an intra prediction.

ctb_directional_unified_transform_flag 0 означает, что ортогональное преобразование и обратное ортогональное преобразование согласно настоящему варианту осуществления запрещены в единице дерева кодирования. Отсюда, блок 102 ортогонального преобразования и блок 105 обратного ортогонального преобразования осуществляют фиксированные ортогональное преобразование и обратное ортогональное, такие как DCT и IDCT. Фиксированные ортогональное преобразование и обратное ортогональное преобразование могут быть осуществлены блоком B 207 1D ортогонального преобразования, блоком B 209 1D ортогонального преобразования, блоком B 307 1D обратного ортогонального преобразования и блоком B 209 1D обратного ортогонального преобразования (то есть посредством матрицы B 1D преобразования) или блоком DCT и IDCT (ни один из блоков не показан на чертежах). К тому же блок 113 управления порядком коэффициентов осуществляет фиксированное 2D-1D преобразование (например, зигзагообразное сканирование). Фиксированное 2D-1D преобразование может быть быть осуществлено блоком 504 2D-1D преобразования (режим 2) или блоком 2D-1D преобразования, не показанным не чертежах.ctb_directional_unified_transform_flag 0 means that the orthogonal transform and inverse orthogonal transform according to the present embodiment are prohibited in the coding tree unit. Hence, the orthogonal transform unit 102 and the inverse orthogonal transform unit 105 perform fixed orthogonal and inverse orthogonal transforms, such as DCT and IDCT. The fixed orthogonal transform and inverse orthogonal transform can be performed by the orthogonal transform block B 207 1D, the orthogonal transform block B 209 1D, the inverse orthogonal transform block B 307 1D, and the inverse orthogonal transform block B 209 1D (i.e., by the transform matrix B 1D) or block DCT and IDCT (none of the blocks are shown in the drawings). In addition, the coefficient order control unit 113 performs a fixed 2D-1D transformation (e.g., zigzag scanning). A fixed 2D-1D conversion may be performed by a 2D-1D conversion unit 504 (mode 2) or a 2D-1D conversion unit not shown in the drawings.

С другой стороны, ctb_directional_unified_transform_flag 1 позволяет ортогональное преобразование и обратное ортогональное преобразование согласно настоящему варианту осуществления в единице кодирования. Затем, процесс кодирования осуществляется в соответствии с вышеописанной схемой последовательности операций кодирования на Фиг. 10A и Фиг. 10B. То есть переключатель 201 выбора выбирает блок A 206 1D ортогонального преобразования или блок B 207 1D ортогонального преобразования на основе информации 129 задания матрицы 1D преобразования. Переключатель 204 выбора выбирает блок A 208 1D ортогонального преобразования или блок B 209 1D ортогонального преобразования на основе информации 129 задания матрицы 1D преобразования. К тому же переключатель 301 выбора выбирает блок A 306 1D обратного ортогонального преобразования или блок B 307 1D обратного ортогонального преобразования на основе информации 129 задания матрицы 1D преобразования. Переключатель 304 выбора выбирает блок A 308 1D обратного ортогонального преобразования или блок B 309 1D обратного ортогонального преобразования на основе информации 129 задания матрицы 1D преобразования. Более того, переключатель 501 выбора выбирает один из блоков 502, ... и 510 2D-1D преобразования в соответствии с информацией режима предсказания, включенной в информацию 126 предсказания.On the other hand, ctb_directional_unified_transform_flag 1 allows the orthogonal transform and the inverse orthogonal transform according to the present embodiment in a coding unit. Then, the encoding process is carried out in accordance with the above-described encoding flowchart in FIG. 10A and FIG. 10B. That is, the select switch 201 selects the orthogonal transform unit A 206 1D or the orthogonal transform unit B 207 1D based on the information 129 of the definition of the transform matrix 1D. The selection switch 204 selects the orthogonal transform block A 208 1D or the orthogonal transform block B 209 1D based on the information 129 of the definition of the transform matrix 1D. In addition, the select switch 301 selects the inverse orthogonal transform block A 306 1D or the inverse orthogonal transform block B 307 1D based on the information 129 of the definition of the transform matrix 1D. The selection switch 304 selects the inverse orthogonal transform block A 308 1D or the inverse orthogonal transform block B 309 1D based on the information 129 of the set matrix 1D transform. Moreover, the selection switch 501 selects one of the 2D-1D transform units 502, ... and 510 in accordance with the prediction mode information included in the prediction information 126.

Когда флаг, задающий, позволены или запрещены ортогональное преобразование и обратное ортогональное преобразование согласно настоящему варианту осуществления, кодируется в синтаксисе 708 единицы дерева кодирования как в примере на Фиг. 13, объем информации (объем кода) увеличивается по сравнению с тем, когда флаг не кодируется. Однако кодирование флага позволяет осуществления оптимального ортогонального преобразования для каждой локальной области (то есть для каждой единицы дерева кодирования).When a flag specifying whether orthogonal transformation and inverse orthogonal transformation according to the present embodiment is enabled or disabled is encoded in the syntax 708 of a coding tree unit, as in the example of FIG. 13, the amount of information (code amount) is increased compared to when the flag is not encoded. However, flag coding allows optimal orthogonal transformations to be performed for each local area (i.e., for each unit of the coding tree).

На Фиг. 14 проиллюстрирован синтаксис 710 единицы преобразования согласно настоящему варианту осуществления.In FIG. 14 illustrates a transform unit syntax 710 according to the present embodiment.

tu_directional_unified_transform_flag, показанный на Фиг. 14, является элементом синтаксиса, указывающим позволены или запрещены для определенной единицы преобразования ортогональное преобразование и обратное ортогональное преобразование согласно настоящему варианту осуществления. К тому же pred_mode, показанный на Фиг. 14, является элементом синтаксиса, включенным в синтаксис 709 единицы предсказания, и указывает тип кодирования в определенной единице дерева кодирования или макроблоке. MODE_INTRA указывает, что типом кодирования является внутреннее предсказание.tu_directional_unified_transform_flag shown in FIG. 14 is a syntax element indicating whether the orthogonal transformation and the inverse orthogonal transformation according to the present embodiment are allowed or prohibited for a particular transformation unit. In addition, pred_mode shown in FIG. 14 is a syntax element included in the prediction unit syntax 709 and indicates a coding type in a particular coding tree unit or macroblock. MODE_INTRA indicates that the encoding type is intra prediction.

tu_directional_unified_transform_flag кодируется только когда вышеописанный slice_directional_unified_transform_flag 1, и когда тип кодирования единицы дерева кодирования является внутренним предсказанием.tu_directional_unified_transform_flag is encoded only when slice_directional_unified_transform_flag 1 is described above, and when the encoding type of the encoding tree unit is an intra prediction.

tu_directional_unified_transform_flag 0 запрещает ортогональное преобразование и обратное ортогональное преобразование согласно настоящему варианту осуществления в единице преобразования. Отсюда, блок 102 ортогонального преобразования и блок 105 обратного ортогонального преобразования осуществляют фиксированные ортогональное преобразование и обратное ортогональное, такие как DCT и IDCT. Фиксированные ортогональное преобразование и обратное ортогональное преобразование могут быть осуществлены блоком B 207 1D ортогонального преобразования, блоком B 209 1D ортогонального преобразования, блоком B 307 1D обратного ортогонального преобразования и блоком B 209 1D обратного ортогонального преобразования (то есть посредством матрицы B 1D преобразования) или блоком DCT и IDCT (ни один из блоков не показан на чертежах). К тому же блок 113 управления порядком коэффициентов осуществляет фиксированное 2D-1D преобразование (например, зигзагообразное сканирование). Фиксированное 2D-1D преобразование может быть осуществлено блоком 504 2D-1D преобразования (режим 2) или блоком 2D-1D преобразования, не показанным не чертежах.tu_directional_unified_transform_flag 0 prohibits orthogonal transformation and inverse orthogonal transformation according to the present embodiment in the transformation unit. Hence, the orthogonal transform unit 102 and the inverse orthogonal transform unit 105 perform fixed orthogonal and inverse orthogonal transforms, such as DCT and IDCT. The fixed orthogonal transform and inverse orthogonal transform can be performed by the orthogonal transform block B 207 1D, the orthogonal transform block B 209 1D, the inverse orthogonal transform block B 307 1D, and the inverse orthogonal transform block B 209 1D (i.e., by the transform matrix B 1D) or block DCT and IDCT (none of the blocks are shown in the drawings). In addition, the coefficient order control unit 113 performs a fixed 2D-1D transformation (e.g., zigzag scanning). A fixed 2D-1D conversion may be performed by a 2D-1D conversion unit 504 (mode 2) or a 2D-1D conversion unit not shown in the drawings.

С другой стороны, tu_directional_unified_transform_flag 1 позволяет ортогональное преобразование и обратное ортогональное преобразование согласно настоящему варианту осуществления в единице преобразования. Затем, процесс кодирования осуществляется в соответствии с вышеописанной схемой последовательности операций кодирования на Фиг. 10A и Фиг. 10B. То есть переключатель 201 выбора выбирает блок A 206 1D ортогонального преобразования или блок B 207 1D ортогонального преобразования на основе информации 129 задания матрицы 1D преобразования. Переключатель 204 выбора выбирает блок A 208 1D ортогонального преобразования или блок B 209 1D ортогонального преобразования на основе информации 129 задания матрицы 1D преобразования. К тому же переключатель 301 выбора выбирает блок A 306 1D обратного ортогонального преобразования или блок B 307 1D обратного ортогонального преобразования на основе информации 129 задания матрицы 1D преобразования. Переключатель 304 выбора выбирает блок A 308 1D обратного ортогонального преобразования или блок B 309 1D обратного ортогонального преобразования на основе информации 129 задания матрицы 1D преобразования. Более того, переключатель 501 выбора выбирает один из блоков 502, ... и 510 2D-1D преобразования в соответствии с информацией режима предсказания, включенной в информацию 126 предсказания.On the other hand, tu_directional_unified_transform_flag 1 allows the orthogonal transform and inverse orthogonal transform according to the present embodiment in a transform unit. Then, the encoding process is carried out in accordance with the above-described encoding flowchart in FIG. 10A and FIG. 10B. That is, the select switch 201 selects the orthogonal transform unit A 206 1D or the orthogonal transform unit B 207 1D based on the information 129 of the definition of the transform matrix 1D. The selection switch 204 selects the orthogonal transform block A 208 1D or the orthogonal transform block B 209 1D based on the information 129 of the definition of the transform matrix 1D. In addition, the select switch 301 selects the inverse orthogonal transform block A 306 1D or the inverse orthogonal transform block B 307 1D based on the information 129 of the definition of the transform matrix 1D. The selection switch 304 selects the inverse orthogonal transform block A 308 1D or the inverse orthogonal transform block B 309 1D based on the information 129 of the set matrix 1D transform. Moreover, the selection switch 501 selects one of the 2D-1D transform units 502, ... and 510 in accordance with the prediction mode information included in the prediction information 126.

Когда флаг, задающий, позволены или запрещены ортогональное преобразование и обратное ортогональное преобразование согласно настоящему варианту осуществления, кодируется в синтаксисе 710 единицы преобразования как в примере на Фиг. 14, объем информации (объем кода) увеличивается по сравнению с тем, когда флаг не кодируется. Однако кодирование флага позволяет осуществления оптимального ортогонального преобразования для каждой локальной области (то есть для каждой единицы преобразования).When a flag specifying whether orthogonal transform and inverse orthogonal transform according to the present embodiment is enabled or disabled is encoded in transform unit syntax 710 as in the example of FIG. 14, the amount of information (code amount) is increased compared to when the flag is not encoded. However, flag coding allows optimal orthogonal transformations to be performed for each local area (i.e., for each transform unit).

Элементы синтаксиса, не заданные согласно настоящему варианту осуществления, или описания других условных переходов могут быть вставлены между рядами в синтаксических таблицах, проиллюстрированных на Фиг. 12, Фиг. 13 и Фиг. 14. К тому же синтаксическая таблица может быть разделена на множество таблиц или множество синтаксических таблиц может быть унифицировано. Дополнительно, проиллюстрированные термины для элементов синтаксиса может быть опционально изменены.Syntax elements not defined according to the present embodiment or descriptions of other conditional branches may be inserted between rows in the syntax tables illustrated in FIG. 12, FIG. 13 and FIG. 14. In addition, the syntax table may be divided into a plurality of tables, or the plurality of syntax tables may be unified. Additionally, illustrated terms for syntax elements may be optionally changed.

Как описано выше, устройство кодирования изображения согласно настоящему варианту осуществления использует тенденцию внутреннего предсказания, чтобы иметь точность предсказания, уменьшающуюся с увеличением расстояния от опорного пикселя. Устройство кодирования изображения классифицирует вертикальное и горизонтальное направления режимов предсказания на два класса в зависимости от того, присутствует или нет данная тенденция. Устройство кодирования изображения дополнительно адаптивно применяет матрицу A 1D преобразования или матрицу матрицы B 1D преобразования к каждому из вертикального и горизонтального направлений. Матрица A 1D преобразования генерируется посредством предварительного проектирования общего базиса преобразования, с тем чтобы увеличить плотность коэффициентов после 1D ортогонального преобразования (то есть чтобы уменьшить долю ненулевых коэффициентов в квантованных коэффициентах 121 преобразования) в направлении, ортогональном линии группы опорных пикселей (вертикальное направление и горизонтальное направление). С другой стороны, матрица B 1D преобразования генерируется посредством проектирования матрицы преобразования общего назначения, не имеющей такой природы. Например, преобразованием общего назначения является DCT. Отсюда, устройство кодирования изображения согласно настоящему варианту осуществления достигает высокой эффективности преобразования по сравнению со случаем, где фиксированное ортогональное преобразование, такое как DCT, единообразно применяется к режимам предсказания.As described above, the image encoding apparatus according to the present embodiment uses the intra prediction trend to have prediction accuracy decreasing with increasing distance from the reference pixel. The image encoding device classifies the vertical and horizontal directions of the prediction modes into two classes, depending on whether or not this trend is present. The image encoding apparatus further adaptively applies the transform matrix A 1D or the transform matrix matrix B 1D to each of the vertical and horizontal directions. The transformation matrix A 1D of the transformation is generated by preliminary designing a common transformation basis in order to increase the coefficient density after 1D orthogonal transformation (that is, to reduce the proportion of non-zero coefficients in the quantized transformation coefficients 121) in the direction orthogonal to the line of the reference pixel group (vertical direction and horizontal direction ) On the other hand, the transformation matrix B 1D is generated by designing a general-purpose transformation matrix that is not of this nature. For example, a general purpose transformation is DCT. Hence, the image encoding apparatus according to the present embodiment achieves a high conversion efficiency compared to the case where a fixed orthogonal transformation, such as DCT, is applied uniformly to the prediction modes.

К тому же блок 102 ортогонального преобразования и блок 105 обратного ортогонального преобразования согласно настоящему варианту осуществления подходят как для аппаратной реализации, так и для программной реализации.In addition, the orthogonal transform unit 102 and the inverse orthogonal transform unit 105 according to the present embodiment are suitable for both a hardware implementation and a software implementation.

Выражения (3) по Выражение (6) выражают умножения фиксированных матриц. Таким образом, когда блок ортогонального преобразования и блок обратного ортогонального преобразования реализованы посредством аппаратного обеспечения, предполагается, что реализация сконфигурирована используя схемно реализованную логику вместо умножающих устройств.Expressions (3) by Expression (6) express the multiplications of fixed matrices. Thus, when the orthogonal transform block and the inverse orthogonal transform block are implemented by hardware, it is assumed that the implementation is configured using circuit-implemented logic instead of multiplying devices.

Если выделенный базис преобразования используется для каждого из девяти типов режимов внутреннего предсказания для осуществления ортогонального преобразования и обратного ортогонального преобразования, нужно подготовить девять блоков 2D ортогонального преобразования или нужно подготовить 18 (= 9×2) блоков 1D ортогонального преобразования как показано на Фиг. 15. Девять блоков 2D ортогонального преобразования или 18 блоков 1D ортогонального преобразования осуществляют умножения разных матриц преобразования. В результате, кроме выделенного аппаратного обеспечения для DCT, требуемого для H. 264, дополнительно предоставляются девять блоков 2D ортогонального преобразования или 18 блоков 1D ортогонального преобразования. Это увеличивает масштаб релевантных схем.If a dedicated transform basis is used for each of the nine types of intra-prediction modes to perform orthogonal transform and inverse orthogonal transform, you need to prepare nine 2D orthogonal transform blocks or prepare 18 (= 9 × 2) orthogonal transform blocks 1D as shown in FIG. 15. Nine 2D orthogonal transform blocks or 18 orthogonal transform blocks 1D multiply different transform matrices. As a result, in addition to the dedicated DCT hardware required for H. 264, nine orthogonal transform 2D blocks or 18 orthogonal transform blocks 1D are additionally provided. This increases the scale of the relevant schemas.

С другой стороны, как показано на Фиг. 2 и Фиг. 3, блок ортогонального преобразования и блок обратного ортогонального преобразования согласно настоящему варианту осуществления использует комбинацию из двух (если блок вертикального (обратного) преобразования и блок горизонтального (обратного) преобразования совместно используются с разделением по времени) блоков 1D ортогонального преобразования со схемой для транспонирования матрицы, чтобы осуществлять четыре типа двухмерных ортогональных преобразований. Отсюда, блок ортогонального преобразования и блок обратного ортогонального преобразования согласно настоящему варианту осуществления обеспечивают возможность значительного подавления увеличения в масштабе схем при аппаратной реализации.On the other hand, as shown in FIG. 2 and FIG. 3, the orthogonal transform unit and the inverse orthogonal transform unit according to the present embodiment uses a combination of two (if the vertical (inverse) transform unit and the horizontal (inverse) transform unit are shared with time division) orthogonal transform units 1D with a circuit for transposing a matrix, to implement four types of two-dimensional orthogonal transforms. Hence, the orthogonal transform block and the inverse orthogonal transform block according to the present embodiment provide the possibility of significantly suppressing the magnification in the scale of the circuits in hardware implementation.

К тому же, если выделенный базис преобразования используется для каждого из девяти типов режимов внутреннего предсказания для осуществления ортогонального преобразования и обратного ортогонального преобразования, программная реализация предполагается такой как следует ниже. Девять матриц 2D ортогонального преобразования или 18(=9×2) матриц 1D ортогонального преобразования сохраняются в памяти. Каждая из матриц преобразования привлекается для соответствующего одного из режимов предсказания, ортогональное преобразование реализуется используя устройство умножения общего назначения. Это может увеличить размер памяти, в которую сохраняются матрицы преобразования, и таким образом расходы, и также увеличить пропускную способность памяти в результате загрузки матрицы преобразования в память для каждого преобразования.In addition, if a dedicated transform basis is used for each of the nine types of intra prediction modes to perform orthogonal transform and inverse orthogonal transform, the software implementation is assumed to be as follows. Nine 2D orthogonal transform matrices or 18 (= 9 × 2) 1D orthogonal transform matrices are stored in memory. Each of the transformation matrices is used for the corresponding one of the prediction modes, orthogonal transformation is implemented using a general purpose multiplication device. This can increase the size of the memory into which the transformation matrices are stored, and thus the expense, and also increase the throughput of the memory as a result of loading the transformation matrix into the memory for each transformation.

С другой стороны, блок ортогонального преобразования и блок обратного ортогонального преобразования согласно настоящему варианту осуществления комбинирует вертикальное преобразование и горизонтальное преобразование, используя матрицы 1D преобразования, чтобы осуществить четыре типа ортогональных преобразований. Таким образом, блок ортогонального преобразования и блок обратного ортогонального преобразования согласно настоящему варианту осуществления обеспечивают возможность значительного подавления увеличения в размере памяти при программной реализации.On the other hand, the orthogonal transform unit and the inverse orthogonal transform unit according to the present embodiment combines the vertical transform and the horizontal transform using transform matrices 1D to carry out four types of orthogonal transforms. Thus, the orthogonal transform unit and the inverse orthogonal transform unit according to the present embodiment make it possible to significantly suppress the increase in memory size in a software implementation.

К тому же подготовка индивидуальных порядков сканирования для соответственных режимов предсказания, как описано в настоящем варианте осуществления, способствует улучшению эффективности кодирования. Квантованные коэффициенты 121 преобразования показывают, что тенденция для генерирования ненулевых коэффициентов смещается в зависимости от элемента. Тенденция для генерирования ненулевых коэффициентов варьируется в зависимости от направления предсказания внутреннего предсказания. Более того, при том же направлении предсказания, даже кодирование блоков пикселей из разных входных изображений 118 приводит к аналогичным тенденциям для генерирования ненулевых коэффициентов. Отсюда, когда блок 113 управления порядком коэффициентов преобразует элементы в соответственные последовательностей 122 одномерных квантованных коэффициентов преобразования в порядке уменьшения вероятности возникновения ненулевых коэффициентов в квантованных 121 коэффициентах преобразования, ненулевые коэффициенты очень вероятно плотно возникают в последовательности 122 квантованных коэффициентов преобразования. Это позволяет уменьшение в объеме кода, сгенерированного в результате кодирования длины серий в блоке 114 энтропийного кодирования. Как описано со ссылкой на Фиг. 5A и Фиг. 5B, блок 113 управления порядком коэффициентов может неизменно использовать порядки сканирования, изученные для соответственных режимов предсказания, или использовать порядок сканирования, динамически обновляемый во время процесса кодирования. Использование порядков сканирования, оптимизированных для соответственных режимов предсказания, блок 114 энтропийного кодирования может уменьшить, по сравнению с H. 264, объем сгенерированного кода на основе последовательности 122 квантованных коэффициентов преобразования без значительного увеличения объема вычислений.In addition, the preparation of individual scan orders for the respective prediction modes, as described in the present embodiment, improves coding efficiency. The quantized transform coefficients 121 show that the tendency to generate nonzero coefficients shifts depending on the element. The trend for generating nonzero coefficients varies depending on the direction of prediction of the intra prediction. Moreover, with the same prediction direction, even encoding blocks of pixels from different input images 118 leads to similar trends for generating nonzero coefficients. Hence, when the coefficient order control unit 113 converts the elements into corresponding sequences of 122 one-dimensional quantized transform coefficients in order of decreasing the probability of occurrence of non-zero coefficients in the quantized 121 transform coefficients, non-zero coefficients very likely densely appear in the sequence 122 of quantized transform coefficients. This allows a reduction in the amount of code generated as a result of encoding the length of the series in the entropy encoding unit 114. As described with reference to FIG. 5A and FIG. 5B, the coefficient order control unit 113 may invariably use the scan orders studied for the respective prediction modes, or use the scan order dynamically updated during the encoding process. Using scan orders optimized for the respective prediction modes, entropy encoding unit 114 can reduce, compared to H. 264, the amount of generated code based on a sequence of 122 quantized transform coefficients without significantly increasing the amount of computation.

(ВТОРОЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ)(SECOND EMBODIMENT)

Устройство кодирования изображения согласно второму варианту осуществления отличается от устройства кодирования изображения согласно первому варианту осуществления в деталях ортогонального преобразования и обратного ортогонального преобразования. Одинаковые компоненты настоящего варианта осуществления, как соответствующие компоненты первого варианта осуществления, в дальнейшем в этом документе обозначены одинаковыми ссылочными номерами, и в основном разные компоненты будут описаны ниже. Устройство декодирования изображения, соответствующее устройству кодирования изображения согласно настоящему варианту осуществления, будет описано в пятом варианте осуществления.The image encoding apparatus according to the second embodiment is different from the image encoding apparatus according to the first embodiment in the details of the orthogonal transform and inverse orthogonal transform. The same components of the present embodiment, as the corresponding components of the first embodiment, are hereinafter denoted by the same reference numbers, and basically the different components will be described below. An image decoding apparatus corresponding to an image encoding apparatus according to the present embodiment will be described in the fifth embodiment.

Вместо блока 102 ортогонального преобразования, проиллюстрированного на Фиг. 2, устройство кодирования изображения согласно настоящему варианту осуществления включает в себя блок 102 ортогонального преобразования, проиллюстрированный на Фиг. 16. Блок 102 ортогонального преобразования на Фиг. 16 включает в себя переключатель 801 выбора, блок 802 вертикального преобразования, блок 203 транспонирования, переключатель 804 выбора и блок 805 горизонтального преобразования. Блок 802 вертикального преобразования включает в себя блок C 806 1D ортогонального преобразования, блок D 807 1D ортогонального преобразования и блок E 808 1D ортогонального преобразования. Блок 805 горизонтального преобразования включает в себя блок C 809 1D ортогонального преобразования, блок D 810 1D ортогонального преобразования и блок E 811 1D ортогонального преобразования. Порядок блока 802 вертикального преобразования и блока 805 горизонтального преобразования является иллюстративным и может быть обратным.Instead of the orthogonal transform block 102 illustrated in FIG. 2, the image encoding apparatus according to the present embodiment includes the orthogonal transform unit 102 illustrated in FIG. 16. The orthogonal transform unit 102 of FIG. 16 includes a select switch 801, a vertical transform unit 802, a transpose unit 203, a select switch 804, and a horizontal transform unit 805. The vertical transform unit 802 includes an orthogonal transform block C 806 1D, an orthogonal transform block D 807 1D, and an orthogonal transform block E 808 1D. The horizontal transform block 805 includes an orthogonal transform block C 809 1D, an orthogonal transform block D 810 1D, and an orthogonal transform block E 811 1D. The order of the vertical transform unit 802 and the horizontal transform unit 805 is illustrative and may be inverse.

Блок C 806 1D ортогонального преобразования и блок C 809 1D ортогонального преобразования имеют общие функции в том, что оба блока умножают входную матрицу на матрицу C 1D преобразования. Блок D 807 1D ортогонального преобразования и блок D 810 1D ортогонального преобразования имеют общие функции в том, что оба блока умножают входную матрицу на матрицу D 1D преобразования. Блок E 808 1D ортогонального преобразования и блок E 811 1D ортогонального преобразования имеют общие функции в том, что оба блока умножают входную матрицу на матрицу E 1D преобразования.The orthogonal transform block C 806 1D and the orthogonal transform block C 809 1D have common functions in that both blocks multiply the input matrix by the transform matrix C 1D. The orthogonal transform block D 807 1D and the orthogonal transform block D 810 1D have common functions in that both blocks multiply the input matrix by the transform matrix D 1D. The orthogonal transform block E 808 1D and the orthogonal transform block E 811 1D have common functions in that both blocks multiply the input matrix by the transform matrix E 1D.

Матрица C 1D преобразования, матрица D 1D преобразования и матрица E 1D преобразования согласно настоящему варианту осуществления будут описаны ниже.The conversion matrix C 1D, the conversion matrix D 1D, and the conversion matrix E 1D according to the present embodiment will be described below.

Как описано выше, ошибка 119 предсказания имеет тенденцию иметь абсолютное значение, увеличивающееся с расстоянием от опорного пикселя. Данная тенденция аналогично проявляется независимо от направления предсказания. Однако ошибка предсказания в режиме DC предсказания не проявляет тенденцию в вертикальном направлении или в горизонтальном направлении. Настоящее изобретение использует матрицу E 1D преобразования, описанную ниже для режима DC предсказания. Для режимов предсказания, отличных от режима DC предсказания, настоящий вариант осуществления адаптивно использует матрицу С 1D преобразования и матрицу D 1D преобразования в зависимости от того, присутствует ли тенденция, как в случае с первым вариантом осуществления.As described above, prediction error 119 tends to have an absolute value increasing with distance from the reference pixel. This trend is similarly manifested regardless of the direction of prediction. However, the prediction error in the DC prediction mode does not tend in the vertical direction or in the horizontal direction. The present invention uses the transformation matrix E 1D described below for the DC prediction mode. For prediction modes other than the DC prediction mode, the present embodiment adaptively uses a transformation matrix C 1D and a transformation matrix D 1D depending on whether a trend is present, as is the case with the first embodiment.

Конкретно, матрица C 1D преобразования может быть сгенерирована, используя тот же метод проектирования, как метод проектирования для вышеописанной матрицы A 1D преобразования. К тому же матрица D 1D преобразования может быть сгенерирована, используя метод проектирования, аналогичный методу проектирования для вышеописанной матрицы B 1D преобразования. То есть матрица D 1D преобразования может быть сгенерирована посредством осуществления метода проектирования для матрицы B 1D преобразования с включенным в него режимом DC предсказания.Specifically, the C 1D transform matrix can be generated using the same design method as the design method for the above described A 1D transform matrix. Moreover, the transformation matrix D 1D can be generated using a design method similar to the design method for the above-described transformation matrix B 1D. That is, the transform matrix D 1D can be generated by implementing a design method for the transform matrix B 1D with the DC prediction mode included.

Матрица E 1D преобразования может быть матрицей для DCT. В качестве альтернативы матрица E 1D преобразования может быть сгенерирована посредством предварительного проектирования общего базиса преобразования, с тем чтобы увеличить, по сравнению с матрицей D 1D преобразования, плотность коэффициентов после 1D ортогонального преобразования (то есть чтобы уменьшить долю ненулевых коэффициентов в квантованных коэффициентах 121 преобразования) в вертикальном направлении и горизонтальном направлении.The transformation matrix E 1D may be a matrix for DCT. Alternatively, the transformation matrix E 1D can be generated by preliminary designing a common transformation basis in order to increase, in comparison with the transformation matrix D 1D, the coefficient density after 1D orthogonal transformation (i.e., to reduce the proportion of non-zero coefficients in the quantized transformation coefficients 121) in the vertical direction and horizontal direction.

Вместо блока 105 обратного ортогонального преобразования, проиллюстрированного на Фиг. 3, устройство кодирования изображения согласно настоящему варианту осуществления включает в себя блок 105 обратного ортогонального преобразования, проиллюстрированный на Фиг. 17. Блок 105 обратного ортогонального преобразования на Фиг. 17 включает в себя переключатель 901 выбора, блок 902 вертикального обратного преобразования, блок 303 транспонирования, переключатель 904 выбора и блок 905 горизонтального обратного преобразования. Блок 902 вертикального обратного преобразования включает в себя блок C 906 1D обратного ортогонального преобразования, блок D 907 1D обратного ортогонального преобразования и блок E 908 1D обратного ортогонального преобразования. Блок 905 горизонтального обратного преобразования включает в себя блок C 909 1D обратного ортогонального преобразования, блок D 910 1D обратного ортогонального преобразования и блок E 911 1D обратного ортогонального преобразования. Порядок блока 902 вертикального обратного преобразования и блока 905 горизонтального обратного преобразования является иллюстративным и может быть обратным.Instead of the inverse orthogonal transform unit 105 illustrated in FIG. 3, the image encoding apparatus according to the present embodiment includes an inverse orthogonal transform unit 105 illustrated in FIG. 17. The inverse orthogonal transform unit 105 of FIG. 17 includes a select switch 901, a vertical inverse transform unit 902, a transpose unit 303, a select switch 904 and a horizontal inverse transform unit 905. The vertical inverse transform unit 902 includes an inverse orthogonal transform block C 906 1D, an inverse orthogonal transform block D 907 1D, and an inverse orthogonal transform block E 908 1D. The horizontal inverse transform unit 905 includes an inverse orthogonal transform block C 909 1D, an inverse orthogonal transform block D 910 1D, and an inverse orthogonal transform block E 911 1D. The order of the vertical inverse transform unit 902 and the horizontal inverse transform unit 905 is illustrative and may be inverse.

Блок C 906 1D обратного ортогонального преобразования и блок C 909 1D обратного ортогонального преобразования имеют общие функции в том, что оба блока умножают входную матрицу на транспонированную матрицу матрицы C 1D преобразования. Блок D 907 1D обратного ортогонального преобразования и блок D 910 1D обратного ортогонального преобразования имеют общие функции в том, что оба блока умножают входную матрицу на транспонированную матрицу матрицы D 1D преобразования. Блок E 908 1D обратного ортогонального преобразования и блок E 911 1D обратного ортогонального преобразования имеют общие функции в том, что оба блока умножают входную матрицу на транспонированную матрицу матрицы E 1D преобразования.The inverse orthogonal transform block C 906 1D and the inverse orthogonal transform block C 909 1D have common functions in that both blocks multiply the input matrix by the transposed matrix of the C 1D transform matrix. The inverse orthogonal transform block D 907 1D and the inverse orthogonal transform block D 910 1D have common functions in that both blocks multiply the input matrix by the transposed matrix of the transform matrix D 1D. The inverse orthogonal transform block E 908 1D and the inverse orthogonal transform block E 911 1D have common functions in that both blocks multiply the input matrix by the transposed matrix of the transform matrix E 1D.

Информация 129 задания матрицы 1D преобразования согласно настоящему варианту осуществления, генерируемая блоком 112 задания матрицы 1D преобразования, будет подробно описана ниже.The setting information 129 of the transformation matrix 1D according to the present embodiment, generated by the setting unit 112 of the transformation matrix 1D, will be described in detail below.

Информация 129 задания матрицы 1D преобразования прямо или непрямо указывает индекс вертикального преобразования для выбора матрицы преобразования для использования при вертикальном ортогональном преобразовании и вертикальном обратном ортогональном преобразовании, и индекс горизонтального преобразования для выбора матрицы преобразования для использования при горизонтальном ортогональном преобразовании и горизонтальном обратном ортогональном преобразовании. Например, информация 129 задания матрицы 1D преобразования может быть выражена посредством индекса преобразования (TrasformIdx), показанного на Фиг. 18D. Ссылка на таблицу на Фиг. 18D обеспечивает возможность получения индекса вертикального преобразования (Idx вертикального преобразования) и индекс горизонтального преобразования (Idx горизонтального преобразования) из индекса преобразования.The mapping matrix 1D information 129 of the transform matrix 1D directly or indirectly indicates a vertical transform index for selecting a transform matrix for use in vertical orthogonal transform and vertical inverse orthogonal transform, and a horizontal transform index for selecting a transform matrix for use in horizontal orthogonal transform and horizontal inverse orthogonal transform. For example, the job information 129 of the transform matrix 1D may be expressed by the transform index (TrasformIdx) shown in FIG. 18D. The reference to the table in FIG. 18D provides the ability to obtain a vertical transform index (Idx vertical transform) and a horizontal transform index (Idx horizontal transform) from the transform index.

Как показано на Фиг. 18B, индекс вертикального преобразования "0" обеспечивает возможность выбора вышеописанной матрицы C 1D преобразования (1D_Transform_Matrix_C) или ее транспонированной матрицы для вертикального ортогонального преобразования или вертикального обратного ортогонального преобразования. С другой стороны, индекс вертикального преобразования "1" обеспечивает возможность выбора вышеописанной матрицы D 1D преобразования (1D_Transform_Matrix_D) или ее транспонированной матрицы для вертикального ортогонального преобразования или вертикального обратного ортогонального преобразования. Более того, индекс вертикального преобразования "2" обеспечивает возможность выбора вышеописанной матрицы E 1D преобразования (1D_Transform_Matrix_E) или ее транспонированной матрицы для вертикального ортогонального преобразования или вертикального обратного ортогонального преобразования.As shown in FIG. 18B, the vertical transformation index “0” allows selection of the above-described transformation matrix C 1D transformation (1D_Transform_Matrix_C) or its transposed matrix for vertical orthogonal transformation or vertical inverse orthogonal transformation. On the other hand, the vertical transformation index “1” allows the selection of the above-described transformation matrix D 1D (1D_Transform_Matrix_D) or its transposed matrix for vertical orthogonal transformation or vertical inverse orthogonal transformation. Moreover, the vertical transformation index “2” allows the selection of the above-described transformation matrix E 1D (1D_Transform_Matrix_E) or its transposed matrix for vertical orthogonal transformation or vertical inverse orthogonal transformation.

Как показано на Фиг. 18С, индекс горизонтального преобразования "0" обеспечивает возможность выбора матрицы C 1D преобразования (1D_Transform_Matrix_C) или ее транспонированной матрицы для горизонтального ортогонального преобразования или горизонтального обратного ортогонального преобразования. С другой стороны, индекс горизонтального преобразования "1" обеспечивает возможность выбора матрицы D 1D преобразования (1D_Transform_Matrix_D) или ее транспонированной матрицы для горизонтального ортогонального преобразования или горизонтального обратного ортогонального преобразования. Более того, индекс горизонтального преобразования "2" обеспечивает возможность выбора матрицы E 1D преобразования (1D_Transform_Matrix_E) или ее транспонированной матрицы для горизонтального ортогонального преобразования или горизонтального обратного ортогонального преобразования.As shown in FIG. 18C, the horizontal transform index “0” allows the selection of the C 1D transform matrix (1D_Transform_Matrix_C) or its transposed matrix for horizontal orthogonal transform or horizontal inverse orthogonal transform. On the other hand, the horizontal transformation index “1” allows the selection of the transformation matrix D 1D (1D_Transform_Matrix_D) or its transposed matrix for horizontal orthogonal transformation or horizontal inverse orthogonal transformation. Moreover, the horizontal transformation index “2” allows the selection of the transformation matrix E 1D (1D_Transform_Matrix_E) or its transposed matrix for horizontal orthogonal transformation or horizontal inverse orthogonal transformation.

К тому же на Фиг. 18A проиллюстрирован индекс для каждого режима (внутреннего) предсказания (IntraN×NPredModeIndex), его имя (имя IntraN×NPredMode), и соответствующий индекс вертикального преобразования и индекс горизонтального преобразования. На Фиг. 18A "N×N" указывает размер целевого блока предсказания (N=4, 8, 16 или тому подобные). Размер целевого блока предсказания может быть расширен до "M×N" (то есть прямоугольники вместо квадратов).Also in FIG. 18A, an index for each (intra) prediction mode (IntraN × NPredModeIndex), its name (IntraN × NPredMode name), and the corresponding vertical transform index and horizontal transform index are illustrated. In FIG. 18A "N × N" indicates the size of the prediction target block (N = 4, 8, 16 or the like). The size of the prediction target block can be expanded to “M × N” (that is, rectangles instead of squares).

На Фиг. 18E получено посредством объединения Фиг. 18A и Фиг. 18D вместе и показан индекс для каждого режима предсказания, имя режима предсказания и соответствующий индекс преобразования.In FIG. 18E is obtained by combining FIG. 18A and FIG. 18D together and shows an index for each prediction mode, a prediction mode name, and a corresponding transform index.

Блок 112 задания матрицы 1D преобразования детектирует индекс режима предсказания в информации режима предсказания, включенной в информацию 126 предсказания. Блок 112 задания матрицы 1D преобразования затем генерирует соответствующую информацию 129 задания матрицы 1D преобразования. Таблицы, показанные на Фиг. 18A, Фиг. 18B, Фиг. 18C, Фиг. 18D и Фиг. 18E, являются иллюстративными. Блок 112 задания матрицы 1D преобразования может генерировать информацию 129 задания матрицы 1D преобразования, в то же время избегая использования некоторых или всех таблиц.The block 112 setting matrix 1D conversion detects the index of the prediction mode in the information of the prediction mode included in the information 126 prediction. Block 112 specify the matrix 1D conversion then generates the corresponding information 129 of the task matrix 1D conversion. The tables shown in FIG. 18A, FIG. 18B, FIG. 18C, FIG. 18D and FIG. 18E are illustrative. The conversion matrix 1D transformation unit 112 may generate the conversion matrix 1D information 129 of the transformation matrix, while avoiding the use of some or all of the tables.

Например, TransformIdx, указывающий 0, означает, что индекс вертикального преобразования указывает 0, и что индекс горизонтального преобразования указывает 0. Это означает, что матрица C 1D преобразования используется для вертикального ортогонального преобразования, и что матрица C 1D преобразования используется для горизонтального ортогонального преобразования. Эти значения также означают, что транспонированная матрица матрицы C 1D преобразования используется для вертикального обратного ортогонального преобразования, и что транспонированная матрица матрицы C 1D преобразования используется для горизонтального обратного ортогонального преобразования.For example, a TransformIdx indicating 0 means that the vertical transform index indicates 0, and that the horizontal transform index indicates 0. This means that the transform matrix C 1D is used for vertical orthogonal transforms, and that the transform matrix C 1D is used for horizontal orthogonal transforms. These values also mean that the transposed matrix of the transformation matrix C 1D is used for vertical inverse orthogonal transformation, and that the transposed matrix of the transformation matrix C 1D is used for horizontal inverse orthogonal transformation.

TransformIdx, указывающий 1, означает, что индекс вертикального преобразования указывает 0, и что индекс горизонтального преобразования указывает 1. Это означает, что матрица C 1D преобразования используется для вертикального ортогонального преобразования, и что матрица D 1D преобразования используется для горизонтального ортогонального преобразования. Эти значения также означают, что транспонированная матрица матрицы C 1D преобразования используется для вертикального обратного ортогонального преобразования, и что транспонированная матрица матрицы D 1D преобразования используется для горизонтального обратного ортогонального преобразования.A TransformIdx indicating 1 means that the vertical transformation index indicates 0, and that the horizontal transformation index indicates 1. This means that the transformation matrix C 1D is used for vertical orthogonal transformation, and that the transformation matrix D 1D is used for horizontal orthogonal transformation. These values also mean that the transposed matrix of the transformation matrix C 1D is used for vertical inverse orthogonal transformation, and that the transposed matrix of the transformation matrix D 1D is used for horizontal inverse orthogonal transformation.

TransformIdx, указывающий 2, означает, что индекс вертикального преобразования указывает 1, и что индекс горизонтального преобразования указывает 0. Это означает, что матрица D 1D преобразования используется для вертикального ортогонального преобразования, и что матрица C 1D преобразования используется для горизонтального ортогонального преобразования. Эти значения также означают, что транспонированная матрица матрицы D 1D преобразования используется для вертикального обратного ортогонального преобразования, и что транспонированная матрица матрицы C 1D преобразования используется для горизонтального обратного ортогонального преобразования.TransformIdx indicating 2 means that the vertical transformation index indicates 1, and that the horizontal transformation index indicates 0. This means that the transformation matrix D 1D is used for vertical orthogonal transformation, and that the transformation matrix C 1D is used for horizontal orthogonal transformation. These values also mean that the transposed matrix of the transformation matrix D 1D is used for vertical inverse orthogonal transformation, and that the transposed matrix of the transformation matrix C 1D is used for horizontal inverse orthogonal transformation.

TransformIdx, указывающий 3, означает, что индекс вертикального преобразования указывает 2, и что индекс горизонтального преобразования указывает 2. Это означает, что матрица E 1D преобразования используется для вертикального ортогонального преобразования, и что матрица E 1D преобразования используется для горизонтального ортогонального преобразования. Эти значения также означают, что транспонированная матрица матрицы E 1D преобразования используется для вертикального обратного ортогонального преобразования, и что транспонированная матрица матрицы E 1D преобразования используется для горизонтального обратного ортогонального преобразования.TransformIdx indicating 3 means that the vertical transformation index indicates 2, and that the horizontal transformation index indicates 2. This means that the transformation matrix E 1D is used for vertical orthogonal transformation, and that the transformation matrix E 1D is used for horizontal orthogonal transformation. These values also mean that the transposed matrix of the transformation matrix E 1D is used for vertical inverse orthogonal transformation, and that the transposed matrix of the transformation matrix E 1D is used for horizontal inverse orthogonal transformation.

Здесь, если целевой блок предсказания является прямоугольным блоком, выраженным как M×N, размер блока, который следует ортогонально преобразовать, может быть также M×N.Here, if the prediction target block is a rectangular block expressed as M × N, the size of the block to be converted orthogonally can also be M × N.

Таблица, показанная на Фиг. 18A, назначает информацию 129 задания матрицы 1D преобразования, учитывая вышеописанную тенденцию каждого режима внутреннего предсказания. То есть для режима DC предсказания 2 назначается как индексу вертикального преобразования, так и индексу горизонтального преобразования. Отсюда для режима DC предсказания ортогональное преобразование и обратное ортогональное преобразование осуществляются в вертикальном направлении и горизонтальном направлении, используя матрицу E 1D преобразования и ее транспонированную матрицу. В результате достигает высокая эффективность преобразования.The table shown in FIG. 18A, assigns setting information 129 of the transform matrix 1D, given the above trend of each intra prediction mode. That is, for DC prediction mode 2, both a vertical transform index and a horizontal transform index are assigned. Hence, for the DC prediction mode, the orthogonal transform and the inverse orthogonal transform are performed in the vertical direction and the horizontal direction using the transform matrix E 1D and its transposed matrix. As a result, high conversion efficiency is achieved.

Для режимов предсказания, отличных от режима DC предсказания, 0 назначается индексу вертикального преобразования, если тенденция проявляется в вертикальном направлении ошибки предсказания. 0 назначается индексу горизонтального преобразования, если тенденция проявляется в горизонтальном направлении ошибки предсказания. С другой стороны, 1 назначается каждому из направлений, не проявляющих тенденцию. Высокая эффективность преобразования достигается посредством классифицирования вертикального и горизонтального направлений режимов предсказания, отличных от режима DC предсказания, на два класса в зависимости от того, присутствует ли тенденция, и адаптивного применения матрицы C 1D преобразования или матрицы D 1D преобразования к вертикальному и горизонтальному направлениям.For prediction modes other than the DC prediction mode, 0 is assigned to the vertical transform index if the trend appears in the vertical direction of the prediction error. 0 is assigned to the horizontal transformation index if the trend appears in the horizontal direction of the prediction error. On the other hand, 1 is assigned to each of the directions that do not show a trend. High conversion efficiency is achieved by classifying the vertical and horizontal directions of the prediction modes other than the DC prediction mode into two classes depending on whether there is a trend, and adaptively applying the transformation matrix C 1D or the transformation matrix D 1D to the vertical and horizontal directions.

Как описано выше, устройство кодирования изображения согласно настоящему варианту осуществления использует тенденцию внутреннего предсказания иметь уменьшающуюся точность предсказания с увеличением расстояния от опорного пикселя, как в случае первого варианта, в то же время применяя ортогональное преобразование и обратное ортогональное преобразование к DC предсказанию, определенным образом, отличным от образа действий для других режимов предсказания. Устройство кодирования изображения классифицирует вертикальное и горизонтальное направления режимов предсказания, на два класса в зависимости от того, присутствует ли тенденция, и адаптивно применяет матрицу C 1D преобразования или матрицу D 1D преобразования к вертикальному и горизонтальному направлениям. Устройство кодирования изображения применяет матрицу E 1D преобразования к режиму DC предсказания. Матрица C 1D преобразования генерируется посредством предварительного проектирования общего базиса преобразования, с тем чтобы увеличить плотность коэффициентов после 1D ортогонального преобразования (то есть, чтобы уменьшить долю ненулевых коэффициентов в квантованных коэффициентах 121 преобразования) в направлении, ортогональном линии группы опорных пикселей (вертикальное направление и горизонтальное направление). Матрица D 1D преобразования генерируется посредством проектирования матрицы преобразования общего назначения, не имеющей такой природы с включенным в него режимом DC предсказания. Матрица E 1D преобразования может быть матрицей для DCT. В качестве альтернативы матрица E 1D преобразования генерируется посредством предварительного проектирования общего базиса преобразования, с тем чтобы увеличить, для ошибки 119 предсказания в режиме DC предсказания, плотность коэффициентов после 1D ортогонального преобразования (то есть, чтобы уменьшить долю ненулевых коэффициентов в квантованных коэффициентах 121 преобразования) в вертикальном направлении и горизонтальном направлении. Отсюда, устройство кодирования изображения согласно настоящему варианту осуществления достигает более высокой эффективности преобразования, чем в случае где фиксированное ортогональное преобразование, такое как DCT, единообразно применяется к режимам предсказания.As described above, the image encoding apparatus according to the present embodiment uses the tendency of intra prediction to have decreasing prediction accuracy with increasing distance from the reference pixel, as in the case of the first embodiment, while applying orthogonal transform and inverse orthogonal transform to DC prediction in a specific way, different from the course of action for other prediction modes. The image encoding device classifies the vertical and horizontal directions of the prediction modes into two classes depending on whether there is a trend, and adaptively applies the transformation matrix C 1D or the transformation matrix D 1D to the vertical and horizontal directions. The image encoding apparatus applies the transform matrix E 1D to the DC prediction mode. The C 1D transform matrix is generated by preliminary designing a common transform basis in order to increase the coefficient density after 1D orthogonal transform (i.e., to reduce the fraction of non-zero coefficients in the quantized transform coefficients 121) in the direction orthogonal to the line of the reference pixel group (vertical and horizontal direction). The transformation matrix D 1D is generated by designing a general-purpose transformation matrix that is not of this nature with the DC prediction mode included. The transformation matrix E 1D may be a matrix for DCT. Alternatively, the transform matrix E 1D is generated by preliminary designing a common transform basis in order to increase, for prediction error 119 in DC prediction mode, the coefficient density after 1D orthogonal transform (i.e., to reduce the proportion of non-zero coefficients in quantized transform coefficients 121) in the vertical direction and horizontal direction. Hence, the image encoding apparatus according to the present embodiment achieves higher conversion efficiency than in the case where a fixed orthogonal transformation, such as DCT, is applied uniformly to the prediction modes.

(ТРЕТИЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ)(THIRD EMBODIMENT)

Устройство кодирования изображения согласно третьему варианту осуществления отличается от устройств кодирования изображения согласно первому варианту осуществления и второму варианту осуществления в деталях ортогонального преобразования и обратного ортогонального преобразования. Одинаковые компоненты настоящего варианта осуществления, как соответствующие компоненты первого варианта осуществления и второго варианта осуществления, в дальнейшем в этом документе обозначены одинаковыми ссылочными номерами, и в основном разные компоненты будут описаны ниже. Устройство декодирования изображения, соответствующее устройству кодирования изображения согласно настоящему варианту осуществления, будет описано в шестом варианте осуществления.The image encoding device according to the third embodiment differs from the image encoding devices according to the first embodiment and the second embodiment in the details of the orthogonal transform and the inverse orthogonal transform. The same components of the present embodiment, as the corresponding components of the first embodiment and the second embodiment, are hereinafter denoted by the same reference numbers, and basically the different components will be described below. An image decoding apparatus corresponding to an image encoding apparatus according to the present embodiment will be described in the sixth embodiment.

Вместо блока 102 ортогонального преобразования, проиллюстрированного на Фиг. 2, устройство кодирования изображения согласно настоящему варианту осуществления включает в себя блок 102 ортогонального преобразования, проиллюстрированный на Фиг. 19. Блок 102 ортогонального преобразования на Фиг. 19 включает в себя переключатель 1201 выбора, блок 1202 вертикального преобразования, блок 203 транспонирования, переключатель 1204 выбора и блок 1205 горизонтального преобразования. Блок 1202 вертикального преобразования включает в себя блок F 1206 1D ортогонального преобразования, блок G 1207 1D ортогонального преобразования и блок H 1208 1D ортогонального преобразования. Блок 1205 горизонтального преобразования включает в себя блок F 1209 1D ортогонального преобразования, блок G 1210 1D ортогонального преобразования и блок H 1211 1D ортогонального преобразования. Порядок блока 1202 вертикального преобразования и блока 1205 горизонтального преобразования является иллюстративным и может быть обратным.Instead of the orthogonal transform block 102 illustrated in FIG. 2, the image encoding apparatus according to the present embodiment includes the orthogonal transform unit 102 illustrated in FIG. 19. The orthogonal transform unit 102 of FIG. 19 includes a select switch 1201, a vertical transform unit 1202, a transpose unit 203, a select switch 1204, and a horizontal transform unit 1205. The vertical transform unit 1202 includes an orthogonal transform unit F 1206 1D, the orthogonal transform unit G 1207 1D, and the orthogonal transform unit H 1208 1D. The horizontal transform block 1205 includes an orthogonal transform block F 1209 1D, an orthogonal transform block G 1210 1D, and an orthogonal transform block H 1211 1D. The order of the vertical transform unit 1202 and the horizontal transform unit 1205 is illustrative and may be inverse.

Блок F 1206 1D ортогонального преобразования и блок F 1209 1D ортогонального преобразования имеют общие функции в том, что оба блока умножают входную матрицу на матрицу F 1D преобразования. Блок G 1207 1D ортогонального преобразования и блок G 1210 1D ортогонального преобразования имеют общие функции в том, что оба блока умножают входную матрицу на матрицу G 1D преобразования. Блок H 1208 1D ортогонального преобразования и блок H 1211 1D ортогонального преобразования имеют общие функции в том, что оба блока умножают входную матрицу на матрицу H 1D преобразования.The orthogonal transform block F 1206 1D and the orthogonal transform block F 1209 1D have common functions in that both blocks multiply the input matrix by the transform matrix F 1D. The orthogonal transform block G 1207 1D and the orthogonal transform block G 1210 1D have common functions in that both blocks multiply the input matrix by the transform matrix G 1D. The orthogonal transform block H 1208 1D and the orthogonal transform block H 1211 1D have common functions in that both blocks multiply the input matrix by the transform matrix H 1D.

Матрица F 1D преобразования, матрица G 1D преобразования и матрица H 1D преобразования согласно настоящему варианту осуществления будут описаны ниже.The conversion matrix F 1D, the conversion matrix G 1D, and the conversion matrix H 1D according to the present embodiment will be described below.

Как описано выше, ошибка 119 предсказания имеет тенденцию иметь абсолютное значение, увеличивающееся с расстоянием от опорного пикселя. Данная тенденция аналогично проявляется независимо от направления предсказания. Однако режимы внутреннего предсказания включают в себя режимы предсказания, в которых ссылаются (значения опорных пикселей копируются, или осуществляется интерпретация используя значения опорных пикселей) только на группу опорных пикселей на линии, размещенной слева от и рядом с целевым блоком предсказания, или на линии, размещенной выше и рядом с целевым блоком предсказания, и режимы предсказания, в которых ссылаются на группы опорных пикселей на линии, размещенной слева от и рядом с целевым блоком предсказания, и на линии, размещенной выше и рядом с целевым блоком предсказания. Образ действий, при котором проявляется данная тенденция, варьируется между режимом предсказания, для которого ссылаются только на группу опорных пикселей на одной линии, и режимом предсказания, для которого ссылаются только на группы опорных пикселей на двух линиях. Таким образом, настоящий вариант осуществления осуществляет ортогональное преобразование и обратное ортогональное преобразование по-разному между режимами предсказания, в которых ссылаются только на группу опорных пикселей на одной линии, и режимами предсказания, в которых ссылаются только на группы опорных пикселей на двух линиях.As described above, prediction error 119 tends to have an absolute value increasing with distance from the reference pixel. This trend is similarly manifested regardless of the direction of prediction. However, intra prediction modes include prediction modes in which they refer (reference pixel values are copied, or interpreted using reference pixel values) only to a group of reference pixels on a line to the left of and next to the prediction target block, or on a line placed above and next to the prediction target block, and prediction modes that refer to reference pixel groups on a line located to the left of and next to the prediction target block, and on a line placed yshe and adjacent to the prediction target block. The way in which this tendency manifests itself varies between a prediction mode for which only a group of reference pixels on one line are referenced and a prediction mode for which only a group of reference pixels on two lines are referenced. Thus, the present embodiment performs orthogonal conversion and inverse orthogonal conversion differently between prediction modes that refer only to a group of reference pixels on one line and prediction modes that refer only to groups of reference pixels on two lines.

Конкретно, матрица H 1D преобразования, описанная ниже, используется для режимов предсказания, в которых ссылаются на группы опорных пикселей на двух линиях. С другой стороны, матрица F 1D преобразования и матрица G 1D преобразования адаптивно используются для режимов предсказания, в которых ссылаются только на группу опорных пикселей на одной линии, в зависимости от того, присутствует ли тенденция, как в случае с первым вариантом осуществления.Specifically, the H 1D transform matrix described below is used for prediction modes in which reference pixel groups on two lines are referenced. On the other hand, the transformation matrix F 1D and the transformation matrix G 1D are adaptively used for prediction modes in which only a group of reference pixels on one line are referenced, depending on whether a trend is present, as is the case with the first embodiment.

Конкретно, матрица F 1D преобразования может быть сгенерирована, используя метод проектирования, аналогичный методу проектирования для вышеописанной матрицы A 1D преобразования. К тому же матрица F 1D преобразования может быть сгенерирована посредством осуществления метода проектирования для вышеописанной матрицы A 1D преобразования, в то же время исключая режимы предсказания, в которых ссылаются на группы пикселей на двух линиях (например, режим 4, режим 5 и режим 6 на Фиг. 7A). К тому же матрица G 1D преобразования может быть сгенерирована, используя тот же метод проектирования, как метод проектирования для вышеописанной матрицы B 1D преобразования. В качестве альтернативы матрица G 1D преобразования может быть матрицей для DCT.Specifically, the transformation matrix F 1D can be generated using a design method similar to the design method for the above-described transformation matrix A 1D. In addition, the transformation matrix F 1D can be generated by implementing the design method for the above transformation matrix A 1D, while at the same time excluding prediction modes that refer to groups of pixels on two lines (for example, mode 4, mode 5 and mode 6 on Fig. 7A). In addition, the transformation matrix G 1D can be generated using the same design method as the design method for the above described transformation matrix B 1D. Alternatively, the transformation matrix G 1D may be a matrix for DCT.

Матрица H 1D преобразования может быть сгенерирована посредством предварительного проектирования общего базиса преобразования, с тем чтобы увеличить, для ошибки 119 предсказания в режимах предсказания, в которых ссылаются на группы пикселей на двух линиях, плотность коэффициентов после 1D ортогонального преобразования (то есть, чтобы уменьшить долю ненулевых коэффициентов в квантованных коэффициентах 121 преобразования) в вертикальном направлении и горизонтальном направлении.The H 1D transform matrix can be generated by pre-designing a common transform basis in order to increase, for prediction error 119 in prediction modes that refer to pixel groups on two lines, the coefficient density after 1D orthogonal transform (i.e., to reduce the fraction nonzero coefficients in quantized transform coefficients 121) in the vertical direction and horizontal direction.

Вместо блока 105 обратного ортогонального преобразования, проиллюстрированного на Фиг. 3, устройство кодирования изображения согласно настоящему варианту осуществления включает в себя блок 105 обратного ортогонального преобразования, проиллюстрированный на Фиг. 20. Блок 105 обратного ортогонального преобразования на Фиг. 20 включает в себя переключатель 1301 выбора, блок 1302 вертикального обратного преобразования, блок 303 транспонирования, переключатель 1304 выбора и блок 1305 горизонтального обратного преобразования. Блок 1302 вертикального обратного преобразования включает в себя блок F 1306 1D обратного ортогонального преобразования, блок G 1307 1D обратного ортогонального преобразования и блок H 1308 1D обратного ортогонального преобразования. Блок 1305 горизонтального обратного преобразования включает в себя блок F 1309 1D обратного ортогонального преобразования, блок G 1310 1D обратного ортогонального преобразования и блок H 1311 1D обратного ортогонального преобразования. Порядок блока 1302 вертикального обратного преобразования и блока 1305 горизонтального обратного преобразования является иллюстративным и может быть обратным.Instead of the inverse orthogonal transform unit 105 illustrated in FIG. 3, the image encoding apparatus according to the present embodiment includes an inverse orthogonal transform unit 105 illustrated in FIG. 20. The inverse orthogonal transform unit 105 of FIG. 20 includes a select switch 1301, a vertical inverse transform unit 1302, a transpose unit 303, a select switch 1304, and a horizontal inverse transform unit 1305. The vertical inverse transform unit 1302 includes an inverse orthogonal transform block F 1306 1D, an inverse orthogonal transform block G 1307 1D, and an inverse orthogonal transform block H 1308 1D. The horizontal inverse transform unit 1305 includes an inverse orthogonal transform block F 1309 1D, an inverse orthogonal transform block G 1310 1D, and an inverse orthogonal transform block H 1311 1D. The order of the vertical inverse transform unit 1302 and the horizontal inverse transform unit 1305 is illustrative and may be inverse.

Блок F 1306 1D обратного ортогонального преобразования и блок F 1309 1D обратного ортогонального преобразования имеют общие функции в том, что оба блока умножают входную матрицу на транспонированную матрицу матрицы F 1D преобразования. Блок G 1307 1D обратного ортогонального преобразования и блок G 1310 1D обратного ортогонального преобразования имеют общие функции в том, что оба блока умножают входную матрицу на транспонированную матрицу матрицы G 1D преобразования. Блок H 1308 1D обратного ортогонального преобразования и блок H 1311 1D обратного ортогонального преобразования имеют общие функции в том, что оба блока умножают входную матрицу на транспонированную матрицу матрицы H 1D преобразования.The inverse orthogonal transform block F 1306 1D and the inverse orthogonal transform block F 1309 1D have common functions in that both blocks multiply the input matrix by the transposed matrix of the transform matrix F 1D. The inverse orthogonal transform block G 1307 1D and the inverse orthogonal transform block G 1310 1D have common functions in that both blocks multiply the input matrix by the transposed matrix of the G 1D transform matrix. The inverse orthogonal transform block H 1308 1D and the inverse orthogonal transform block H 1311 1D have common functions in that both blocks multiply the input matrix by the transposed matrix of the H 1D transform matrix.

Информация 129 задания матрицы 1D преобразования согласно настоящему варианту осуществления, генерируемая блоком 112 задания матрицы 1D преобразования, будет подробно описана ниже.The setting information 129 of the transformation matrix 1D according to the present embodiment, generated by the setting unit 112 of the transformation matrix 1D, will be described in detail below.

Информация 129 задания матрицы 1D преобразования прямо или непрямо указывает индекс вертикального преобразования для выбора матрицы преобразования для использования при вертикальном ортогональном преобразовании и вертикальном обратном ортогональном преобразовании, и индекс горизонтального преобразования для выбора матрицы преобразования для использования при горизонтальном ортогональном преобразовании и горизонтальном обратном ортогональном преобразовании. Например, информация 129 задания матрицы 1D преобразования может быть выражена посредством индекса преобразования (TrasformIdx), показанного на Фиг. 21D. Ссылка на таблицу на Фиг. 21D обеспечивает возможность получения индекса вертикального преобразования (Idx вертикального преобразования) и индекс горизонтального преобразования (Idx горизонтального преобразования) из индекса преобразования.The mapping matrix 1D information 129 of the transform matrix 1D directly or indirectly indicates a vertical transform index for selecting a transform matrix for use in vertical orthogonal transform and vertical inverse orthogonal transform, and a horizontal transform index for selecting a transform matrix for use in horizontal orthogonal transform and horizontal inverse orthogonal transform. For example, the job information 129 of the transform matrix 1D may be expressed by the transform index (TrasformIdx) shown in FIG. 21D. The reference to the table in FIG. 21D provides the ability to obtain a vertical conversion index (Idx vertical conversion) and a horizontal conversion index (Idx horizontal conversion) from the conversion index.

Как показано на Фиг. 21B, индекс вертикального преобразования "0" обеспечивает возможность выбора вышеописанной матрицы F 1D преобразования (1D_Transform_Matrix_F) или ее транспонированной матрицы для вертикального ортогонального преобразования или вертикального обратного ортогонального преобразования. С другой стороны, индекс вертикального преобразования "1" обеспечивает возможность выбора вышеописанной матрицы G 1D преобразования (1D_Transform_Matrix_G) или ее транспонированной матрицы для вертикального ортогонального преобразования или вертикального обратного ортогонального преобразования. Более того, индекс вертикального преобразования "2" обеспечивает возможность выбора вышеописанной матрицы H 1D преобразования (1D_Transform_Matrix_H) или ее транспонированной матрицы для вертикального ортогонального преобразования или вертикального обратного ортогонального преобразования.As shown in FIG. 21B, the vertical transformation index “0” allows selection of the above-described transformation matrix F 1D transformation (1D_Transform_Matrix_F) or its transposed matrix for vertical orthogonal transformation or vertical inverse orthogonal transformation. On the other hand, the vertical transformation index “1” allows the selection of the above-described transformation matrix G 1D (1D_Transform_Matrix_G) or its transposed matrix for vertical orthogonal transformation or vertical inverse orthogonal transformation. Moreover, the vertical transformation index "2" allows you to select the above matrix H 1D transformation (1D_Transform_Matrix_H) or its transposed matrix for vertical orthogonal transformation or vertical inverse orthogonal transformation.

Как показано на Фиг. 21С, индекс горизонтального преобразования "0" обеспечивает возможность выбора матрицы F 1D преобразования (1D_Transform_Matrix_F) или ее транспонированной матрицы для горизонтального ортогонального преобразования или горизонтального обратного ортогонального преобразования. С другой стороны, индекс горизонтального преобразования "1" обеспечивает возможность выбора матрицы G 1D преобразования (1D_Transform_Matrix_G) или ее транспонированной матрицы для горизонтального ортогонального преобразования или горизонтального обратного ортогонального преобразования. Более того, индекс горизонтального преобразования "2" обеспечивает возможность выбора матрицы H 1D преобразования (1D_Transform_Matrix_H) или ее транспонированной матрицы для горизонтального ортогонального преобразования или горизонтального обратного ортогонального преобразования.As shown in FIG. 21C, the horizontal transformation index “0” allows the selection of the transformation matrix F 1D (1D_Transform_Matrix_F) or its transposed matrix for horizontal orthogonal transformation or horizontal inverse orthogonal transformation. On the other hand, the horizontal transformation index “1” allows the selection of the transformation matrix G 1D (1D_Transform_Matrix_G) or its transposed matrix for horizontal orthogonal transformation or horizontal inverse orthogonal transformation. Moreover, the horizontal transformation index “2” allows the selection of the transformation matrix H 1D (1D_Transform_Matrix_H) or its transposed matrix for horizontal orthogonal transformation or horizontal inverse orthogonal transformation.

К тому же на Фиг. 21A проиллюстрирован индекс для каждого режима (внутреннего) предсказания (IntraN×NPredModeIndex), его имя (имя IntraN×NPredMode), и соответствующий индекс вертикального преобразования и индекс горизонтального преобразования. На Фиг. 21A, "N×N" указывает размер целевого блока предсказания (N=4, 8, 16 или тому подобные). Размер целевого блока предсказания может быть расширен до "M×N" (то есть прямоугольники вместо квадратов).Also in FIG. 21A, an index for each (intra) prediction mode (IntraN × NPredModeIndex), its name (IntraN × NPredMode name), and the corresponding vertical transform index and horizontal transform index are illustrated. In FIG. 21A, “N × N” indicates the size of the prediction target block (N = 4, 8, 16 or the like). The size of the prediction target block can be expanded to “M × N” (that is, rectangles instead of squares).

На Фиг. 21E получено посредством объединения Фиг. 21A и Фиг. 21D вместе и показан индекс для каждого режима предсказания, имя индекса и соответствующий индекс преобразования.In FIG. 21E is obtained by combining FIG. 21A and FIG. 21D together and shows an index for each prediction mode, an index name, and a corresponding transform index.

Блок 112 задания матрицы 1D преобразования детектирует индекс режима предсказания в информации режима предсказания, включенной в информацию 126 предсказания. Блок 112 задания матрицы 1D преобразования затем генерирует соответствующую информацию 129 задания матрицы 1D преобразования. Таблицы, показанные на Фиг. 21A, Фиг. 21B, Фиг. 21C, Фиг. 21D и Фиг. 21E, являются иллюстративными. Блок 112 задания матрицы 1D преобразования может генерировать информацию 129 задания матрицы 1D преобразования, в то же время избегая использования некоторых или всех таблиц.The block 112 setting matrix 1D conversion detects the index of the prediction mode in the information of the prediction mode included in the information 126 prediction. Block 112 specify the matrix 1D conversion then generates the corresponding information 129 of the task matrix 1D conversion. The tables shown in FIG. 21A, FIG. 21B, FIG. 21C, FIG. 21D and FIG. 21E are illustrative. The conversion matrix 1D transformation unit 112 may generate the conversion matrix 1D information 129 of the transformation matrix, while avoiding the use of some or all of the tables.

Например, TransformIdx, указывающий 0, означает, что индекс вертикального преобразования указывает 2, и что индекс горизонтального преобразования указывает 2. Это означает, что матрица H 1D преобразования используется для вертикального ортогонального преобразования, и что матрица H 1D преобразования используется для горизонтального ортогонального преобразования. Эти значения также означают, что транспонированная матрица матрицы H 1D преобразования используется для вертикального обратного ортогонального преобразования, и что транспонированная матрица матрицы H 1D преобразования используется для горизонтального обратного ортогонального преобразования.For example, a TransformIdx indicating 0 means that the vertical transform index indicates 2, and that the horizontal transform index indicates 2. This means that the transform matrix H 1D is used for vertical orthogonal transforms, and that the transform matrix H 1D is used for horizontal orthogonal transforms. These values also mean that the transposed matrix of the transformation matrix H 1D is used for vertical inverse orthogonal transformation, and that the transposed matrix of the transformation matrix H 1D is used for horizontal inverse orthogonal transformation.

TransformIdx, указывающий 1, означает, что индекс вертикального преобразования указывает 0, и что индекс горизонтального преобразования указывает 1. Это означает, что матрица F 1D преобразования используется для вертикального ортогонального преобразования, и что матрица G 1D преобразования используется для горизонтального ортогонального преобразования. Эти значения также означают, что транспонированная матрица матрицы F 1D преобразования используется для вертикального обратного ортогонального преобразования, и что транспонированная матрица матрицы G 1D преобразования используется для горизонтального обратного ортогонального преобразования.A TransformIdx indicating 1 means that the vertical transformation index indicates 0, and that the horizontal transformation index indicates 1. This means that the transformation matrix F 1D is used for vertical orthogonal transformation, and that the transformation matrix G 1D is used for horizontal orthogonal transformation. These values also mean that the transposed matrix of the transformation matrix F 1D is used for vertical inverse orthogonal transformation, and that the transposed matrix of the transformation matrix G 1D is used for horizontal inverse orthogonal transformation.

TransformIdx, указывающий 2, означает, что индекс вертикального преобразования указывает 1, и что индекс горизонтального преобразования указывает 0. Это означает, что матрица G 1D преобразования используется для вертикального ортогонального преобразования, и что матрица F 1D преобразования используется для горизонтального ортогонального преобразования. Эти значения также означают, что транспонированная матрица матрицы G 1D преобразования используется для вертикального обратного ортогонального преобразования, и что транспонированная матрица матрицы F 1D преобразования используется для горизонтального обратного ортогонального преобразования.TransformIdx indicating 2 means that the vertical transformation index indicates 1, and that the horizontal transformation index indicates 0. This means that the transformation matrix G 1D is used for vertical orthogonal transformation, and that the transformation matrix F 1D is used for horizontal orthogonal transformation. These values also mean that the transposed matrix of the transformation matrix G 1D is used for vertical inverse orthogonal transformation, and that the transposed matrix of the transformation matrix F 1D is used for horizontal inverse orthogonal transformation.

TransformIdx, указывающий 3, означает, что индекс вертикального преобразования указывает 1, и что индекс горизонтального преобразования указывает 1. Это означает, что матрица G 1D преобразования используется для вертикального ортогонального преобразования, и что матрица G 1D преобразования используется для горизонтального ортогонального преобразования. Эти значения также означают, что транспонированная матрица матрицы G 1D преобразования используется для вертикального обратного ортогонального преобразования, и что транспонированная матрица матрицы G 1D преобразования используется для горизонтального обратного ортогонального преобразования.A TransformIdx indicating 3 means that the vertical transformation index indicates 1, and that the horizontal transformation index indicates 1. This means that the transformation matrix G 1D is used for vertical orthogonal transformation, and that the transformation matrix G 1D is used for horizontal orthogonal transformation. These values also mean that the transposed matrix of the transformation matrix G 1D is used for vertical inverse orthogonal transformation, and that the transposed matrix of the transformation matrix G 1D is used for horizontal inverse orthogonal transformation.

Здесь, если целевой блок предсказания является прямоугольным блоком, выраженным как M×N, размер блока, который следует ортогонально преобразовать, может быть также M×N.Here, if the prediction target block is a rectangular block expressed as M × N, the size of the block to be converted orthogonally can also be M × N.

Таблица, показанная на Фиг. 21A, назначает информацию 129 задания матрицы 1D преобразования, учитывая вышеописанную тенденцию каждого режима внутреннего предсказания. То есть для режимов предсказания, в которых ссылаются на группы опорных пикселей на двух линиях, 2 назначается как индексу вертикального преобразования, так и индексу горизонтального преобразования. Отсюда, для режимов предсказания, в которых ссылаются на группы опорных пикселей на двух линиях, ортогональное преобразование и обратное ортогональное преобразование осуществляются в вертикальном направлении и горизонтальном направлении, используя матрицу H 1D преобразования и ее транспонированную матрицу. В результате, достигает высокая эффективность преобразования.The table shown in FIG. 21A, assigns setting information 129 of the transform matrix 1D, given the above trend of each intra prediction mode. That is, for prediction modes in which reference pixel groups on two lines are referenced, 2 is assigned both a vertical transformation index and a horizontal transformation index. Hence, for prediction modes in which reference pixel groups on two lines are referenced, orthogonal transformation and inverse orthogonal transformation are performed in the vertical direction and the horizontal direction using the transform matrix H 1D and its transposed matrix. As a result, high conversion efficiency is achieved.

Для режимов предсказания, отличных от режимов предсказания, в которых ссылаются на группы опорных пикселей на двух линиях, 0 назначается индексу вертикального преобразования, если тенденция проявляется в вертикальном направлении ошибки предсказания. 0 назначается индексу горизонтального преобразования, если тенденция проявляется в горизонтальном направлении ошибки предсказания. С другой стороны, 1 назначается каждому из направлений, не проявляющих тенденцию. Высокая эффективность преобразования достигается посредством классифицирования вертикального и горизонтального направлений режимов предсказания, отличных от режимов предсказания, в которых ссылаются на группы опорных пикселей на двух линиях, на два класса в зависимости от того, присутствует ли тенденция, и адаптивного применения матрицы F 1D преобразования или матрицы G 1D преобразования к вертикальному и горизонтальному направлениям.For prediction modes other than prediction modes in which reference pixel groups on two lines are referenced, 0 is assigned a vertical transformation index if the trend appears in the vertical direction of the prediction error. 0 is assigned to the horizontal transformation index if the trend appears in the horizontal direction of the prediction error. On the other hand, 1 is assigned to each of the directions that do not show a trend. High conversion efficiency is achieved by classifying the vertical and horizontal directions of the prediction modes other than the prediction modes in which reference pixel groups on two lines are referenced, into two classes depending on whether a trend is present, and adaptively applying the transformation matrix F 1D or the matrix G 1D conversion to vertical and horizontal directions.

Как описано выше, устройство кодирования изображения согласно настоящему варианту осуществления использует тенденцию внутреннего предсказания иметь уменьшающуюся точность предсказания с увеличением расстояния от опорного пикселя, как в случае первого варианта, в то же время применяя ортогональное преобразование и обратное ортогональное преобразование к режимам предсказания определенным образом, варьирующимся в зависимости от числа линий, соответствующих группам опорных пикселей. Устройство кодирования изображения классифицирует вертикальное и горизонтальное направления режимов предсказания, отличных от режимов предсказания, в которых ссылаются на группы опорных пикселей на двух линиях, на два класса в зависимости от того, присутствует ли тенденция, и адаптивно применяет матрицу F 1D преобразования или матрицу G 1D преобразования к вертикальному и горизонтальному направлениям. С другой стороны, устройство кодирования изображения применяет матрицу H 1D преобразования в режимам предсказания, в которых ссылаются на группы опорных пикселей на двух линиях. Для режимов предсказания, в которых ссылаются только на группу опорных пикселей на одной линии, матрица F 1D преобразования генерируется посредством предварительного проектирования общего базиса преобразования, с тем чтобы увеличить плотность коэффициентов после 1D ортогонального преобразования (то есть, чтобы уменьшить долю ненулевых коэффициентов в квантованных коэффициентах 121 преобразования) в направлении, ортогональном линии группы опорных пикселей (вертикальное направление и горизонтальное направление). С другой стороны, матрица G 1D преобразования генерируется посредством проектирования матрицы преобразования общего назначения, не имеющей такой природы. Более того, матрица H 1D преобразования генерируется посредством предварительного проектирования общего базиса преобразования, с тем чтобы увеличить, для ошибки 119 предсказания в каждом режиме предсказания, для которого ссылаются на группы пикселей на двух линиях, плотность коэффициентов после 1D ортогонального преобразования (то есть, чтобы уменьшить долю ненулевых коэффициентов в квантованных коэффициентах 121 преобразования) в вертикальном направлении и горизонтальном направлении. Отсюда, устройство кодирования изображения согласно настоящему варианту осуществления достигает более высокой эффективности преобразования, чем в случае где фиксированное ортогональное преобразование, такое как DCT, единообразно применяется к режимам предсказания.As described above, the image encoding apparatus according to the present embodiment uses the tendency of intra prediction to have decreasing prediction accuracy with increasing distance from the reference pixel, as in the case of the first embodiment, while applying orthogonal transform and inverse orthogonal transform to prediction modes in a certain way varying depending on the number of lines corresponding to groups of reference pixels. The image encoding device classifies the vertical and horizontal directions of the prediction modes other than the prediction modes, which refer to reference pixel groups on two lines, into two classes depending on whether a trend is present, and adaptively applies the transformation matrix F 1D or the matrix G 1D conversions to vertical and horizontal directions. On the other hand, the image encoding device uses the matrix H 1D conversion in prediction modes, which refer to groups of reference pixels on two lines. For prediction modes that refer only to a group of reference pixels on one line, the transformation matrix F 1D is generated by preliminary designing a common transformation basis in order to increase the coefficient density after 1D orthogonal transformation (that is, to reduce the fraction of non-zero coefficients in the quantized coefficients 121 transformations) in a direction orthogonal to a line of a group of reference pixels (vertical direction and horizontal direction). On the other hand, the transformation matrix G 1D is generated by designing a general-purpose transformation matrix that is not of this nature. Moreover, the H 1D transform matrix is generated by preliminary designing a common transform basis in order to increase, for prediction error 119 in each prediction mode, for which pixel groups on two lines are referenced, the coefficient density after 1D orthogonal transform (i.e., so that reduce the proportion of nonzero coefficients in the quantized transform coefficients 121) in the vertical direction and horizontal direction. Hence, the image encoding apparatus according to the present embodiment achieves higher conversion efficiency than in the case where a fixed orthogonal transformation, such as DCT, is applied uniformly to the prediction modes.

Первый и третий варианты осуществления подготавливают два или три типа матриц 1D преобразования и выбирают одну из матриц 1D преобразования для вертикального преобразования (или вертикального обратного преобразования) и горизонтального преобразования (или горизонтального обратного преобразования) согласно режиму предсказания. Однако вышеописанные два или три типа матриц 1D преобразования являются иллюстративными. Эффективность кодирования может быть увеличена посредством подготовки больше матриц преобразования. Например, второй вариант осуществления и третий вариант осуществления могут быть скомбинированы вместе для подготовки четырех типов матриц 1D преобразования. Однако увеличившееся число типов подготовленных матриц преобразования требует дополнительного аппаратного обеспечения или тому подобного. Таким образом, баланс между эффективностью кодирования и недостатками, возникающими в результате увеличившегося числа типов матриц преобразования, желательно учитывать.The first and third embodiments prepare two or three types of transform matrices 1D and select one of the transform matrices 1D for vertical transform (or vertical inverse transform) and horizontal transform (or horizontal inverse transform) according to the prediction mode. However, the above two or three types of 1D transformation matrices are illustrative. Coding efficiency can be increased by preparing more transformation matrices. For example, a second embodiment and a third embodiment can be combined together to prepare four types of 1D transformation matrices. However, the increased number of types of prepared transformation matrices requires additional hardware or the like. Thus, it is desirable to consider the balance between coding efficiency and disadvantages resulting from the increased number of types of transformation matrices.

(ЧЕТВЕРТЫЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ)(FOURTH EMBODIMENT)

Четвертый вариант осуществления относится к устройству декодирования изображения. Устройство кодирования изображения, соответствующее устройству декодирования изображения согласно настоящему варианту осуществления, описано в первом варианте осуществления. То есть устройство декодирования изображения согласно настоящему варианту осуществления декодирует кодированные данные, сгенерированные, например, устройством кодирования изображения согласно первому варианту осуществления.A fourth embodiment relates to an image decoding apparatus. An image encoding apparatus corresponding to an image decoding apparatus according to the present embodiment is described in the first embodiment. That is, the image decoding apparatus according to the present embodiment decodes the encoded data generated, for example, by the image encoding apparatus according to the first embodiment.

Как показано на Фиг. 22, устройство декодирования изображения согласно настоящему варианту осуществления включает в себя входной буфер 401, блок 402 энтропийного декодирования, блок 403 управления порядком коэффициентов, блок 404 деквантования, блок 405 обратного ортогонального преобразования, блок 406 сложения, память 407опорного изображения, блок 408 внутреннего предсказания, блок 409 внешнего предсказания, переключатель 410 выбора, блок 411 задания матрицы 1D преобразования и выходной буфер 412.As shown in FIG. 22, the image decoding apparatus according to the present embodiment includes an input buffer 401, an entropy decoding unit 402, a coefficient order control unit 403, a dequantization unit 404, an inverse orthogonal transform unit 405, an addition unit 406, a reference image memory 407, an intra prediction unit 408, an inter prediction unit 409, a select switch 410, a transform matrix 1D block 411, and an output buffer 412.

Устройство декодирования изображения на Фиг. 22 декодирует кодированные данные во входном буфере 401, накапливает декодированное изображение 419 в выходном буфере 412 и выводит декодированное изображение 419 в качестве выходного изображения 425. Кодированные данные 414 выводятся, например, устройством кодирования изображения на Фиг. 1, и временно накапливает во входном буфере 401 посредством системы накопления или системы передачи (не показано на чертежах).The image decoding apparatus of FIG. 22 decodes the encoded data in the input buffer 401, accumulates the decoded image 419 in the output buffer 412, and outputs the decoded image 419 as the output image 425. The encoded data 414 is output, for example, by the image encoding device in FIG. 1, and temporarily accumulates in the input buffer 401 by means of an accumulation system or transmission system (not shown in the drawings).

Для того чтобы декодировать кодированные данные 414, блок 402 энтропийного декодирования декодирует каждый кадр или поле на основе синтаксиса. Блок 402 энтропийного декодирования подвергает каждую последовательность кода для энтропийного декодирования, чтобы воспроизвести параметры кодирования для кодирования целевого блока кодирования, такие как информацию 424 предсказания, включающую в себя информацию 421 режима предсказания и последовательность 415 квантованных коэффициентов преобразования. Параметры кодирования требуются для декодирования и включают в себя информацию 424 предсказания, информацию по коэффициентам преобразования и информацию по квантованию. Последовательность 415 квантованных коэффициентов преобразования вводится в блок 403 управления порядком коэффициентов. К тому же информация 421 режима предсказания, включенная в информацию 424 предсказания, аналогично вводится в блок 403 управления порядком коэффициентов. Информация 424 предсказания вводится в блок 411 задания матрицы 1D преобразования и переключатель 410 выбора.In order to decode the encoded data 414, the entropy decoding unit 402 decodes each frame or field based on syntax. Entropy decoding unit 402 subjects each code sequence for entropy decoding to reproduce encoding parameters for encoding the encoding target block, such as prediction information 424 including prediction mode information 421 and a quantized transform coefficient sequence 415. Encoding parameters are required for decoding and include prediction information 424, transform coefficient information, and quantization information. A sequence 415 of quantized transform coefficients is input to a coefficient order control unit 403. Moreover, the prediction mode information 421 included in the prediction information 424 is likewise input to the coefficient order control unit 403. Prediction information 424 is inputted to a block 411 for setting a transform matrix 1D and a selection switch 410.

Блок 403 управления порядком коэффициентов преобразует последовательность 415 квантованных коэффициентов преобразования, которая является одномерным выражением, в квантованные коэффициенты 416 преобразования, которые являются двухмерным выражением. Блок 403 управления порядком коэффициентов затем вводит квантованные коэффициенты 416 преобразования в блок 404 деквантования. Блок 403 управления порядком коэффициентов будет подробно описан ниже.The coefficient order control unit 403 converts a sequence 415 of quantized transform coefficients, which is a one-dimensional expression, into quantized transform coefficients 416, which are a two-dimensional expression. The coefficient order control unit 403 then introduces the quantized transform coefficients 416 to the dequantization unit 404. A coefficient order control unit 403 will be described in detail below.

Блок 404 деквантования деквантует квантованные коэффициенты 416 преобразования из блока 403 управления порядком коэффициентов для получения восстановленных коэффициентов 417 преобразования. Конкретно, блок 404 деквантования осуществляет деквантование в соответствии с информацией по квантованию, декодированной блоком 402 энтропийного декодирования. Блок 404 деквантования вводит восстановленные коэффициенты 417 преобразования в блок 405 обратного ортогонального преобразования.The dequantization unit 404 dequantizes the quantized transform coefficients 416 from the coefficient order control unit 403 to obtain the reconstructed transform coefficients 417. Specifically, the dequantization unit 404 dequantizes in accordance with the quantization information decoded by the entropy decoding unit 402. The dequantization unit 404 introduces the reconstructed transform coefficients 417 into the inverse orthogonal transform unit 405.

Блок обратного ортогонального преобразования 405 осуществляет обратное ортогональное преобразование, соответствующее ортогональному преобразованию, выполненному на кодирующей стороне, над восстановленными коэффициентами 417 преобразования из блока 404 деквантования, чтобы получить восстановленную ошибку 418 предсказания. Блок 405 обратного ортогонального преобразования вводит восстановленную ошибку 418 предсказания в блок 406 сложения.The inverse orthogonal transform unit 405 performs the inverse orthogonal transform corresponding to the orthogonal transform performed on the encoding side on the reconstructed transform coefficients 417 from the dequantization unit 404 to obtain a reconstructed prediction error 418. The inverse orthogonal transform unit 405 introduces the reconstructed prediction error 418 into the addition unit 406.

Конкретно, блок 405 обратного ортогонального преобразования согласно настоящему варианту осуществления является компонентом, который является по существу таким же как или аналогичным блоку 105 обратного ортогонального преобразования на Фиг. 3 и таким образом не будет описан подробно ниже. В частности, блок 405 обратного ортогонального преобразования согласно настоящему варианту осуществления использует матрицу A 1D преобразования и матрицу B 1D преобразования, которые являются общими для блока обратного ортогонального преобразования на Фиг. 3. Восстановленные коэффициенты 122 преобразования, информация 129 задания матрицы 1D преобразования и восстановленная ошибка 129 предсказания на Фиг. 3 соответствуют восстановленным коэффициентам 417 преобразования, информации 422 задания матрицы 1D преобразования и восстановленной ошибке 418 предсказания согласно настоящему варианту осуществления, соответственно.Specifically, the inverse orthogonal transform unit 405 according to the present embodiment is a component that is substantially the same as or similar to the inverse orthogonal transform unit 105 in FIG. 3 and thus will not be described in detail below. In particular, the inverse orthogonal transform block 405 according to the present embodiment uses the transform matrix A 1D and the transform matrix B 1D that are common to the inverse orthogonal transform block in FIG. 3. The reconstructed transform coefficients 122, the definition information 129 of the transform matrix 1D, and the reconstructed prediction error 129 of FIG. 3 correspond to the reconstructed transform coefficients 417, the job information 422 of the transform matrix 1D of the transform, and the reconstructed prediction error 418 according to the present embodiment, respectively.

Блок 406 сложения складывает восстановленную ошибку 418 предсказания и соответствующее изображение 423 с предсказанием вместе, чтобы сгенерировать локально декодированное изображение 419. Декодированное изображение 419 временно накапливается в выходном буфере 412 для выходного изображения 425 и также сохраняется в память 407 опорного изображения для опорного изображения 420. На декодированное изображение, сохраненное в память 407 опорного изображения, ссылается в блоках кадра или поля, если необходимо, блок внутреннего предсказания 408 и блок 409 внешнего предсказания в качестве опорного изображения 420. Декодированное изображение 419, временно накапливаемое в выходном буфере 412, выводится с временным интервалом вывода, управляемым блоком 413 управления декодирования.The addition unit 406 adds the reconstructed prediction error 418 and the corresponding prediction image 423 together to generate a locally decoded image 419. The decoded image 419 is temporarily accumulated in the output buffer 412 for the output image 425 and is also stored in the reference image memory 407 for the reference image 420. On the decoded image stored in the reference image memory 407 is referenced in blocks of a frame or field, if necessary, an intra prediction block 408 and an outside block 409 it as a prediction reference image 420. The decoded image 419 is temporarily accumulated in the output buffer 412 is output from the output time interval controlled by the decoding control unit 413.

Блок 408 внутреннего предсказания, блок 409 внешнего предсказания и переключатель 410 выбора, которые являются по существу таким же как или аналогичными блоку 108 внутреннего предсказания, блоку 109 внешнего предсказания и переключателю 110 выбора на Фиг. 1 и таким образом не будут описаны подробно ниже. Блок 413 управления декодированием управляет компонентами устройства декодирования изображения на Фиг. 22. Конкретно, блок 413 управления декодированием выполняет различные операции управления для процесса декодирования, включая вышеописанные операции.The intra prediction block 408, the inter prediction block 409, and the selection switch 410, which are substantially the same as or similar to the intra prediction block 108, the inter prediction block 109, and the selection switch 110 in FIG. 1 and thus will not be described in detail below. The decoding control unit 413 controls the components of the image decoding apparatus in FIG. 22. Specifically, the decoding control unit 413 performs various control operations for the decoding process, including the operations described above.

Блок 411 задания матрицы 1D преобразования генерирует информацию 422 задания матрицы 1D преобразования на основе информации режима предсказания, включенной в информацию 424 предсказания из блока 402 энтропийного декодирования. Блок 411 задания матрицы 1D преобразования выводит информацию 422 задания матрицы 1D преобразования блок 405 обратного ортогонального преобразования.The transformation matrix 1D definition unit 411 generates the transformation matrix 1D information 422 based on the prediction mode information included in the prediction information 424 from the entropy decoding unit 402. The transformation matrix 1D definition unit 411 outputs the transformation matrix 1D information 422 of the transformation matrix 1D, the inverse orthogonal transformation unit 405.

Конкретно, блок 411 задания матрицы 1D преобразования является компонентом, который является по существу таким же как или аналогичными блоку 112 задания матрицы 1D преобразования согласно первому варианту осуществления и таким образом не будет описан подробно ниже. То есть блок 411 задания матрицы 1D преобразования согласно настоящему варианту осуществления использует, например, таблицы на Фиг. 4A, Фиг. 4B, Фиг. 4C, Фиг. 4D и Фиг. 4E для генерирования информации 422 задания матрицы 1D преобразования. Информация 126 предсказания и информация 129 задания матрицы 1D преобразования согласно первому варианту осуществления соответствуют информации 424 предсказания и информации 422 задания матрицы 1D преобразования согласно настоящему варианту осуществления, соответственно.Specifically, the transform matrix 1D setting unit 411 is a component that is substantially the same as or similar to the transform matrix 1D setting unit 112 according to the first embodiment, and thus will not be described in detail below. That is, the block 411 for setting the transform matrix 1D according to the present embodiment uses, for example, the tables in FIG. 4A, FIG. 4B, FIG. 4C, FIG. 4D and FIG. 4E for generating information 422 of specifying a transformation matrix 1D. The prediction information 126 and the setting information 129 of the transform matrix 1D according to the first embodiment correspond to the prediction information 424 and the setting information 422 of the transform matrix 1D according to the present embodiment, respectively.

К тому же устройство декодирования изображения на Фиг. 22 использует синтаксис, который является таким же как или аналогичным синтаксису, описанному со ссылкой на Фиг. 11, Фиг. 12, Фиг. 13 и Фиг. 14. Таким образом, подробное описание синтаксиса опущено.In addition, the image decoding apparatus of FIG. 22 uses a syntax that is the same as or similar to the syntax described with reference to FIG. 11, FIG. 12, FIG. 13 and FIG. 14. Thus, a detailed description of the syntax is omitted.

Блок 403 управления порядком коэффициентов будет подробно описан ниже.A coefficient order control unit 403 will be described in detail below.

Блок 403 управления порядком коэффициентов преобразует последовательность 415 квантованных коэффициентов преобразования, которая является одномерным выражением, в квантованные коэффициенты 416 преобразования, которые являются двухмерным выражением, посредством расположения элементов последовательности 415 квантованных коэффициентов преобразования в предварительно определенном порядке (то есть порядке, соответствующем порядку, используемому на кодирующей стороне). В качестве примера, если кодирующая сторона осуществляет 2D-1D преобразование независимо от режима предсказания, блок 403 управления порядком коэффициентов может выполнить общее 1D-2D преобразование независимо от режима предсказания. Конкретно, блок 403 управления порядком коэффициентов может использовать обратное зигзагообразное сканирование как в случае с H. 264. Обратное зигзагообразное сканирование является 1D-2D преобразованием, соответствующим вышеописанному зигзагообразному сканированию.The coefficient order control unit 403 converts a sequence 415 of quantized transform coefficients, which is a one-dimensional expression, into quantized transform coefficients 416, which are a two-dimensional expression, by arranging the elements of a sequence 415 of quantized transform coefficients in a predetermined order (i.e., the order corresponding to the order used on coding side). As an example, if the coding side performs 2D-1D conversion regardless of the prediction mode, coefficient order control unit 403 can perform a general 1D-2D conversion regardless of the prediction mode. Specifically, the coefficient order control unit 403 may use an inverse zigzag scan as in the case of H. 264. An inverse zigzag scan is a 1D-2D transformation corresponding to the above zigzag scan.

В другом примере, если кодирующая сторона осуществляет индивидуальные 2D-1D преобразования для соответственных режимов предсказания, блок 403 управления порядком коэффициентов может также выполнять индивидуальные 1D-2D преобразования для соответственных режимов предсказания. Блок 403 управления порядком коэффициентов, выполняющий такую операцию, проиллюстрирован на Фиг. 23A. Блок 403 управления порядком коэффициентов включает в себя переключатель 1001 выбора и блоки индивидуального 1D-2D преобразования 1002, ..., и 1010 для соответственных режимов предсказания. В соответствии с информацией режима предсказания (например, индексы режимов предсказания на Фиг. 4A), включенной в информацию 424 предсказания, переключатель 1001 выбора приводит последовательность 415 квантованных коэффициентов преобразования в блок 1D-2D преобразования (один из 1002, ... и 1010), соответствующий режиму предсказания. Например, индекс режима предсказания 0 обеспечивает возможность переключателю 1001 выбора приводить последовательность 415 квантованных коэффициентов преобразования в блок 1002 1D-2D преобразования. На Фиг. 23A, режимы предсказания и блоки 1D-2D преобразования находятся во взаимно-однозначном соответствии. Последовательность 415 квантованных коэффициентов преобразования приводится в один блок 1D-2D преобразования, соответствующий режиму предсказания. Последовательность 415 квантованных коэффициентов преобразования затем преобразуется в квантованные коэффициенты 416 преобразования.In another example, if the coding side performs individual 2D-1D transforms for the respective prediction modes, the coefficient order control unit 403 can also perform individual 1D-2D transforms for the respective prediction modes. A coefficient order control unit 403 performing such an operation is illustrated in FIG. 23A. The coefficient order control unit 403 includes a selection switch 1001 and individual 1D-2D transform units 1002, ..., and 1010 for respective prediction modes. According to the prediction mode information (for example, the prediction mode indices in FIG. 4A) included in the prediction information 424, the selection switch 1001 brings the sequence 415 of the quantized transform coefficients into a 1D-2D transform unit (one of 1002, ... and 1010) corresponding to the prediction mode. For example, the prediction mode index 0 enables the selection switch 1001 to cast a sequence 415 of quantized transform coefficients into a 1D-2D transform unit 1002. In FIG. 23A, prediction modes and 1D-2D transform blocks are in one-to-one correspondence. The sequence 415 of quantized transform coefficients is given in one block 1D-2D conversion corresponding to the prediction mode. The sequence 415 of quantized transform coefficients is then converted to quantized transform coefficients 416.

В другом примере, если кодирующая сторона динамически обновляет порядок сканирования при 2D-1D преобразовании, блок 403 управления порядком коэффициентов может также динамически обновлять порядок сканирования при 1D-2D преобразовании определенным образом, соответствующим образу действий, используемому на кодирующей стороне. Блок 403 управления порядком коэффициентов, выполняющий такую операцию, проиллюстрирован на Фиг. 23B. Блок 403 управления порядком коэффициентов включает в себя переключатель 1001 выбора, блоки индивидуального 1D-2D преобразования 1002, ..., и 1010 для соответственных девяти типов режимов предсказания, блок 1011 подсчета частоты возникновения и блок 1012 обновления порядка коэффициентов. Переключатель 1001 выбора является таким, как описано со ссылкой на Фиг 23A. Блоки индивидуального 1D-2D преобразования 1002, ..., и 1010 для соответственных девяти типов режимов предсказания отличаются от блоков 1D-2D преобразования, показанных на Фиг. 23A в том, что порядок сканирования для блоков 1002, ..., и 1010 1D-2D преобразования обновляется блоком 1012 обновления порядка коэффициентов.In another example, if the coding side dynamically updates the scan order during 2D-1D conversion, the coefficient order control unit 403 can also dynamically update the scan order in 1D-2D conversion in a specific manner corresponding to the procedure used on the coding side. A coefficient order control unit 403 performing such an operation is illustrated in FIG. 23B. The coefficient order control unit 403 includes a selection switch 1001, individual 1D-2D transform blocks 1002, ..., and 1010 for the respective nine types of prediction modes, an occurrence frequency calculation unit 1011, and a coefficient order update unit 1012. The selection switch 1001 is as described with reference to FIG. 23A. The individual 1D-2D transform blocks 1002, ..., and 1010 for the respective nine types of prediction modes are different from the 1D-2D transform blocks shown in FIG. 23A is that the scan order for blocks 1002, ..., and 1D-2D conversion blocks 1010 is updated by coefficient order updating block 1012.

Блок 1011 подсчета частоты возникновения создает гистограмму из числа возникновений ненулевых коэффициентов в каждом элементе последовательности 416 квантованных коэффициентов преобразования. Блок 1011 подсчета частоты возникновения вводит созданную гистограмму 1013 в блок 1012 обновления порядка коэффициентов.The occurrence frequency calculation unit 1011 creates a histogram from the occurrence of nonzero coefficients in each element of the sequence 416 of quantized transform coefficients. The occurrence frequency calculation unit 1011 introduces the generated histogram 1013 into the coefficient order updating unit 1012.

Блок 1012 обновления порядка коэффициентов обновляет порядок коэффициентов с предварительно определенным временным интервалом на основе гистограммы 1013. Временной интервал может быть, например, временным интервалом, когда завершен процесс декодирования, осуществляемый над единицей дерева кодирования, или временным интервалом, когда завершен процесс декодирования, осуществляемый над одной линией в единице дерева кодирования.The coefficient order updating unit 1012 updates the coefficient order with a predetermined time interval based on histogram 1013. The time interval may be, for example, the time interval when the decoding process performed on a unit of the coding tree is completed, or the time interval when the decoding process completed on the one line in a coding tree unit.

Конкретно, блок 1012 управления порядком коэффициентов ссылается на гистограмму 1013 для обновления порядка коэффициентов для режима предсказания с помощью элемента, для которого подсчитанное число возникновений ненулевых коэффициентов равняется или больше, чем пороговое значение. Например, блок 1012 управления порядком коэффициентов выполняет обновление для режима предсказания с помощью элемента, для которого подсчитанное число возникновений ненулевых коэффициентов является 16 или больше. Задание порогового значения для числа возникновений обеспечивает возможность глобального обновления порядка коэффициентов, таким образом избегая сведения к локальному оптимальному решению.Specifically, the coefficient order control unit 1012 refers to a histogram 1013 for updating the coefficient order for the prediction mode with an element for which the counted number of occurrences of non-zero coefficients is equal to or greater than the threshold value. For example, coefficient order control block 1012 performs an update for prediction mode using an element for which the counted number of occurrences of nonzero coefficients is 16 or more. Setting a threshold value for the number of occurrences provides the ability to globally update the order of coefficients, thereby avoiding reduction to a local optimal solution.

Блок 1012 управления порядком коэффициентов сортирует, для режима предсказания цели обновления, элементы в порядке уменьшения частоты возникновения ненулевых коэффициентов. Сортировка может быть достигнута в соответствии с существующим алгоритмом, например, пузырьковая сортировка или быстрая сортировка. Блок 1012 управления порядком коэффициентов вводит информацию 1014 обновления порядка коэффициентов, указывающую отсортированный порядок элементов в блок 1D-2D преобразования, соответствующий режиму предсказания цели обновления.Unit 1012 controls the order of the coefficients sorts, for the prediction mode of the update target, elements in order to reduce the frequency of occurrence of non-zero coefficients. Sorting can be achieved according to an existing algorithm, for example, bubble sorting or quick sorting. The coefficient order control unit 1012 inputs coefficient order update information 1014 indicating the sorted element order into the 1D-2D transform unit corresponding to the prediction mode of the update target.

Как только информация 1014 обновления порядка коэффициентов введена в блок 1D-2D преобразования, блок 1D-2D преобразования осуществляет 1D-2D преобразование в соответствии с обновленным порядком сканирования. Если порядок сканирования является динамически обновляемым, должны быть заданы первоначальные порядки сканирования для блоков 1D-2D преобразования, которые соответствуют порядку сканирования на кодирующей стороне.Once the coefficient order updating information 1014 is input to the 1D-2D conversion unit, the 1D-2D conversion unit performs 1D-2D conversion in accordance with the updated scan order. If the scan order is dynamically updated, the initial scan orders for the 1D-2D conversion units that correspond to the scan order on the encoding side must be specified.

Для упрощения был проиллюстрирован H. 264 и был описан случай девяти типов режимов предсказания. Однако, даже если число типов режима предсказания увеличено до 17, 33 или тому подобного, индивидуальные 1D-2D преобразования для соответственных режимов предсказания могут быть достигнуты посредством добавления блоков 1D-2D преобразования, соответствующих режимам предсказания, возникающим в результате данного увеличения.For simplicity, H. 264 was illustrated and a case of nine types of prediction modes was described. However, even if the number of prediction mode types is increased to 17, 33 or the like, individual 1D-2D transforms for respective prediction modes can be achieved by adding 1D-2D transform blocks corresponding to the prediction modes resulting from this increase.

Как описано выше, устройство декодирования изображения согласно настоящему варианту осуществления включает в себя блок обратного ортогонального преобразования, который является таким же или аналогичным блоку обратного ортогонального преобразования устройства кодирования изображения согласно первому варианту осуществления. Отсюда, устройство декодирования изображения согласно настоящему варианту осуществления оказывает воздействия, которые являются такими же или аналогичными воздействиям устройства кодирования изображения согласно первому варианту осуществления.As described above, the image decoding apparatus according to the present embodiment includes an inverse orthogonal transform unit that is the same or similar to the inverse orthogonal transform unit of the image encoding apparatus according to the first embodiment. Hence, the image decoding apparatus according to the present embodiment has effects that are the same or similar to the effects of the image encoding apparatus according to the first embodiment.

(ПЯТЫЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ)(FIFTH EMBODIMENT)

Устройство декодирования изображения согласно пятому варианту осуществления отличается от устройства декодирования изображения согласно четвертому варианту осуществления в деталях обратного ортогонального преобразования. Одинаковые компоненты настоящего варианта осуществления, как соответствующие компоненты четвертого варианта осуществления, в дальнейшем в этом документе обозначены одинаковыми ссылочными номерами, и в основном разные компоненты будут описаны ниже. Устройство кодирования изображения, соответствующее устройству декодирования изображения согласно настоящему варианту осуществления, описано во втором варианте осуществления.The image decoding apparatus according to the fifth embodiment is different from the image decoding apparatus according to the fourth embodiment in the details of the inverse orthogonal transform. The same components of this embodiment as corresponding components of the fourth embodiment are hereinafter denoted by the same reference numbers, and basically the different components will be described below. An image encoding apparatus corresponding to an image decoding apparatus according to the present embodiment is described in the second embodiment.

Блок 405 обратного ортогонального преобразования согласно настоящему варианту осуществления является компонентом, который является по существу таким же как или аналогичным блоку 105 обратного ортогонального преобразования на Фиг. 17 и таким образом не будет описан подробно ниже. В частности, блок 405 обратного ортогонального преобразования согласно настоящему варианту осуществления использует матрицу C 1D преобразования, матрицу D 1D преобразования и матрицу E 1D преобразования, которые являются общими для блока 105 обратного ортогонального преобразования на Фиг. 17. Восстановленные коэффициенты 122 преобразования, информация 129 задания матрицы 1D преобразования и восстановленная ошибка 129 предсказания на Фиг. 17 соответствуют восстановленным коэффициентам 417 преобразования, информации 422 задания матрицы 1D преобразования и сигналу 418 восстановленной ошибки предсказания согласно настоящему варианту осуществления, соответственно.The inverse orthogonal transform unit 405 according to the present embodiment is a component that is substantially the same as or similar to the inverse orthogonal transform unit 105 in FIG. 17 and thus will not be described in detail below. In particular, the inverse orthogonal transform block 405 according to the present embodiment uses the transform matrix C 1D, the transform matrix D 1D and the transform matrix E 1D, which are common to the inverse orthogonal transform block 105 in FIG. 17. The reconstructed transform coefficients 122, the definition information 129 of the transform matrix 1D of the transform, and the reconstructed prediction error 129 of FIG. 17 correspond to the reconstructed transform coefficients 417, the job information 422 of the transform matrix 1D of the transform, and the reconstructed prediction error signal 418 according to the present embodiment, respectively.

Блок 411 задания матрицы 1D преобразования согласно настоящему варианту осуществления является компонентом, который является по существу таким же как или аналогичным блоку 112 задания матрицы 1D преобразования согласно второму варианту осуществления и таким образом не будет описан подробно ниже. То есть блок 411 задания матрицы 1D преобразования согласно настоящему варианту осуществления использует, например, таблицы на Фиг. 18A, Фиг. 18B, Фиг. 18C, Фиг. 18D и Фиг. 18E для генерирования информации 422 задания матрицы 1D преобразования. Информация 126 предсказания и информация 129 задания матрицы 1D преобразования согласно второму варианту осуществления соответствуют информации 424 предсказания и информации 422 задания матрицы 1D преобразования согласно настоящему варианту осуществления, соответственно.The conversion matrix 1D definition unit 411 according to the present embodiment is a component that is substantially the same as or similar to the transformation matrix 1D determination unit 112 according to the second embodiment and thus will not be described in detail below. That is, the block 411 for setting the transform matrix 1D according to the present embodiment uses, for example, the tables in FIG. 18A, FIG. 18B, FIG. 18C, FIG. 18D and FIG. 18E for generating information 422 of specifying a transformation matrix 1D. The prediction information 126 and the setting information 129 of the transformation matrix 1D according to the second embodiment correspond to the prediction information 424 and the setting information 422 of the transformation matrix 1D according to the present embodiment, respectively.

Как описано выше, устройство декодирования изображения согласно настоящему варианту осуществления включает в себя блок обратного ортогонального преобразования, который является таким же или аналогичным блоку обратного ортогонального преобразования устройства кодирования изображения согласно второму варианту осуществления. Отсюда, устройство декодирования изображения согласно настоящему варианту осуществления оказывает воздействия, которые являются такими же или аналогичными воздействиям устройства кодирования изображения согласно второму варианту осуществления.As described above, the image decoding apparatus according to the present embodiment includes an inverse orthogonal transform unit that is the same or similar to the inverse orthogonal transform unit of the image encoding apparatus according to the second embodiment. Hence, the image decoding apparatus according to the present embodiment has effects that are the same or similar to the effects of the image encoding apparatus according to the second embodiment.

(ШЕСТОЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ)(SIXTH EMBODIMENT)

Устройство декодирования изображения согласно шестому варианту осуществления отличается от устройств декодирования изображения согласно четвертому варианту осуществления и пятому варианту осуществления в деталях обратного ортогонального преобразования. Одинаковые компоненты настоящего варианта осуществления, как соответствующие компоненты четвертого варианта осуществления и пятого варианта осуществления, в дальнейшем в этом документе обозначены одинаковыми ссылочными номерами, и в основном разные компоненты будут описаны ниже. Устройство кодирования изображения, соответствующее устройству декодирования изображения согласно настоящему варианту осуществления, описано в третьем варианте осуществления.The image decoding apparatus according to the sixth embodiment is different from the image decoding apparatuses according to the fourth embodiment and the fifth embodiment in the details of the inverse orthogonal transform. The same components of the present embodiment, as the corresponding components of the fourth embodiment and the fifth embodiment, are hereinafter denoted by the same reference numbers, and basically the different components will be described below. An image encoding apparatus corresponding to an image decoding apparatus according to the present embodiment is described in the third embodiment.

Блок 405 обратного ортогонального преобразования согласно настоящему варианту осуществления является компонентом, который является по существу таким же как или аналогичным блоку 105 обратного ортогонального преобразования на Фиг. 20 и таким образом не будет описан подробно ниже. В частности, блок 405 обратного ортогонального преобразования согласно настоящему варианту осуществления использует матрицу F 1D преобразования, матрицу G 1D преобразования и матрицу H 1D преобразования, которые являются общими для блока 105 обратного ортогонального преобразования на Фиг. 20. Восстановленные коэффициенты 122 преобразования, информация 129 задания матрицы 1D преобразования и восстановленная ошибка 129 предсказания на Фиг. 20 соответствуют восстановленным коэффициентам 417 преобразования, информации 422 задания матрицы 1D преобразования и сигналу 418 восстановленной ошибки предсказания согласно настоящему варианту осуществления, соответственно.The inverse orthogonal transform unit 405 according to the present embodiment is a component that is substantially the same as or similar to the inverse orthogonal transform unit 105 in FIG. 20 and thus will not be described in detail below. In particular, the inverse orthogonal transform unit 405 according to the present embodiment uses the transform matrix F 1D, the transform matrix G 1D, and the transform matrix H 1D, which are common to the inverse orthogonal transform block 105 in FIG. 20. The reconstructed transform coefficients 122, the definition information 129 of the transform matrix 1D of the transform, and the reconstructed prediction error 129 of FIG. 20 correspond to the reconstructed transform coefficients 417, the job information 422 of the transform matrix 1D of the transform, and the reconstructed prediction error signal 418 according to the present embodiment, respectively.

Блок 411 задания матрицы 1D преобразования согласно настоящему варианту осуществления является компонентом, который является по существу таким же как или аналогичным блоку 112 задания матрицы 1D преобразования согласно третьему варианту осуществления и таким образом не будет описан подробно ниже. То есть блок 411 задания матрицы 1D преобразования согласно настоящему варианту осуществления использует, например, таблицы на Фиг. 21A, Фиг. 21B, Фиг. 21C, Фиг. 21D и Фиг. 21E для генерирования информации 422 задания матрицы 1D преобразования. Информация 126 предсказания и информация 129 задания матрицы 1D преобразования согласно третьему варианту осуществления соответствуют информации 424 предсказания и информации 422 задания матрицы 1D преобразования согласно настоящему варианту осуществления, соответственно.The transform matrix 1D setting unit 411 according to the present embodiment is a component that is substantially the same as or similar to the transform matrix 1D setting unit 112 according to the third embodiment, and thus will not be described in detail below. That is, the block 411 for setting the transform matrix 1D according to the present embodiment uses, for example, the tables in FIG. 21A, FIG. 21B, FIG. 21C, FIG. 21D and FIG. 21E for generating information 422 of specifying a transformation matrix 1D. The prediction information 126 and the setting information 129 of the transformation matrix 1D according to the third embodiment correspond to the prediction information 424 and the setting information 422 of the transformation matrix 1D according to the present embodiment, respectively.

Как описано выше, устройство декодирования изображения согласно настоящему варианту осуществления включает в себя блок обратного ортогонального преобразования, который является таким же или аналогичным блоку обратного ортогонального преобразования устройства кодирования изображения согласно третьему варианту осуществления. Отсюда, устройство декодирования изображения согласно настоящему варианту осуществления оказывает воздействия, которые являются такими же или аналогичными воздействиям устройства кодирования изображения согласно третьему варианту осуществления.As described above, the image decoding apparatus according to the present embodiment includes an inverse orthogonal transform unit that is the same or similar to the inverse orthogonal transform unit of the image encoding apparatus according to the third embodiment. Hence, the image decoding apparatus according to the present embodiment has effects that are the same or similar to the effects of the image encoding apparatus according to the third embodiment.

С четвертого по шестой варианты осуществления подготавливают два или три типа матриц 1D преобразования и выбирают одну из матриц 1D преобразования для вертикального обратного преобразования и горизонтального обратного преобразования согласно режиму предсказания. Однако вышеописанные два или три типа матриц 1D преобразования являются иллюстративными. Эффективность кодирования может быть увеличена посредством подготовки больше матриц преобразования. Например, пятый вариант осуществления и шестой вариант осуществления могут быть скомбинированы вместе для подготовки четырех типов матриц 1D преобразования. Однако увеличившееся число типов подготовленных матриц преобразования требует дополнительного аппаратного обеспечения или тому подобного. Таким образом, баланс между эффективностью кодирования и недостатками, возникающими в результате увеличившегося числа типов матриц преобразования, желательно учитывать.Fourth to sixth embodiments prepare two or three types of transform matrices 1D and select one of the transform matrices 1D for vertical inverse transform and horizontal inverse transform according to the prediction mode. However, the above two or three types of 1D transformation matrices are illustrative. Coding efficiency can be increased by preparing more transformation matrices. For example, the fifth embodiment and the sixth embodiment can be combined together to prepare four types of 1D transformation matrices. However, the increased number of types of prepared transformation matrices requires additional hardware or the like. Thus, it is desirable to consider the balance between coding efficiency and disadvantages resulting from the increased number of types of transformation matrices.

Модификации вариантов осуществления будут приведены и представлены ниже.Modifications of the embodiments will be given and presented below.

С первого по шестой варианты осуществления описывают пример, в котором кадр разделяется на прямоугольные блоки с размером 16×16 пикселей или тому подобным, и в котором кодирование или декодирование осуществляется над каждым блоков в порядке с верхнего левого к нижнему правому на картинке (смотри Фиг. 6A). Однако порядок кодирования и порядок декодирования не ограничены этим примером. Например, кодирование и декодирование могут осуществляться в порядке с нижнего правого к верхнему левому или по спирали от центра к краю картинки. Более того, кодирование и декодирование могут осуществляться в порядке с верхнего правого к нижнему левому или по спирали от края к центру картинки.The first to sixth embodiments describe an example in which a frame is divided into rectangular blocks with a size of 16 × 16 pixels or the like, and in which encoding or decoding is performed on each block in the order from upper left to lower right in the picture (see FIG. 6A). However, the encoding order and decoding order are not limited to this example. For example, encoding and decoding can be done in order from lower right to upper left or in a spiral from the center to the edge of the picture. Moreover, encoding and decoding can be carried out in order from the upper right to the lower left or in a spiral from the edge to the center of the picture.

С первого по шестой варианты осуществления иллюстрируют размеры целевого блока предсказания, такие как блок пикселей 4×4, блок пикселей 8×8 и блок пикселей 16×16 для описания. Однако целевой блок предсказания не должен обязательно иметь единообразную форму блока. Например, примеры размера целевого блока предсказания могут включать в себя блок пикселей 16×8, блок пикселей 8×16, блок пикселей 8×4 или блок пикселей 4×8. К тому же не все блоки в пределах одной единицы дерева кодирования должны иметь одинаковый размер блока, и множество разных размеров блоков могут быть приняты вместе внутри единицы дерева кодирования. Если множество разных размеров блоков могут быть приняты вместе внутри единицы дерева кодирования, увеличившееся число блоков, на которые разделена единица дерева кодирования, увеличивает объем кода, требуемого для кодирования или декодирования информации деления. Таким образом, размер блока желательно выбирается, учитывая баланс между объемом кода для информации деления и качеством локально декодированного изображения или декодированного изображения.The first to sixth embodiments illustrate the sizes of the prediction target block, such as a 4 × 4 pixel block, an 8 × 8 pixel block, and a 16 × 16 pixel block for description. However, the prediction target block need not have a uniform block shape. For example, examples of the size of the prediction target block may include a 16 × 8 pixel block, an 8 × 16 pixel block, an 8 × 4 pixel block, or a 4 × 8 pixel block. In addition, not all blocks within the same coding tree unit must have the same block size, and many different block sizes can be taken together within the coding tree unit. If many different block sizes can be taken together within a coding tree unit, the increased number of blocks into which the coding tree unit is divided increases the amount of code required to encode or decode division information. Thus, the block size is desirably selected, given the balance between the amount of code for the division information and the quality of the locally decoded image or decoded image.

Для упрощения с первого по шестой варианты осуществления всесторонне описывают компоненты цветного сигнала, не различая сигналы яркости от цветоразностных сигналов. Однако, если процесс предсказания варьируется между сигналом яркости и цветоразностным сигналом, может быть использована та же схема предсказания или другие схемы предсказания. Если разные схемы предсказания используются для сигнала яркости или для цветоразностного сигнала, схема предсказания, выбранная для цветоразностного сигнала, может быть кодирована или декодирована определенным образом, аналогичным образу действий для сигнала яркости.To simplify the first to sixth embodiments, the components comprehensively describe the components of a color signal without distinguishing luminance signals from color difference signals. However, if the prediction process varies between a luminance signal and a color difference signal, the same prediction scheme or other prediction schemes can be used. If different prediction schemes are used for the luminance signal or for the color difference signal, the prediction scheme selected for the color difference signal can be encoded or decoded in a certain way, similar to the procedure for the luminance signal.

Для упрощения с первого по шестой варианты осуществления всесторонне описывают компоненты цветного сигнала, не различая сигнал яркости от цветоразностного сигнала. Однако, если процесс ортогонального преобразования варьируется между сигналом яркости и цветоразностным сигналом, может быть использована та же схема ортогонального преобразования или другие схемы ортогонального преобразования. Если разные схемы ортогонального преобразования используются для сигнала яркости или для цветоразностного сигнала, схема ортогонального преобразования, выбранная для цветоразностного сигнала, может быть кодирована или декодирована определенным образом, аналогичным образу действий для сигнала яркости.To simplify the first to sixth embodiments, the components comprehensively describe the components of a color signal without distinguishing a luminance signal from a color difference signal. However, if the orthogonal transform process varies between a luminance signal and a color difference signal, the same orthogonal transform scheme or other orthogonal transform schemes can be used. If different orthogonal transform schemes are used for the luminance signal or for the color difference signal, the orthogonal transform circuit selected for the color difference signal can be encoded or decoded in a certain way, similar to the procedure for the luminance signal.

Как описано, каждый из вариантов осуществления достигает эффективного ортогонального преобразования и обратного ортогонального преобразования, в то же время облегчая трудности в аппаратной реализации и программной реализации. Отсюда, каждый вариант осуществления улучшает эффективность кодирования и таким образом субъективное качество изображения.As described, each of the embodiments achieves an effective orthogonal transform and an inverse orthogonal transform, while at the same time alleviating difficulties in hardware implementation and software implementation. Hence, each embodiment improves coding efficiency and thus subjective image quality.

Тогда как определенные варианты осуществления были описаны, эти варианты осуществления были представлены только в качестве примера и не предназначены для ограничения объема данных изобретений. На самом деле, новые способы и системы, описанные в настоящем документе, могут быть осуществлены в многообразии других форм; к тому же различные упущения, замены и изменения в формах способов и систем, описанных в настоящем документе, могут быть сделаны не отступления от сущности данных изобретений. Сопутствующие пункты формулы изобретения и их эквиваленты предназначены охватывать такие формы или модификации, как могли бы попадать в пределы объема и сущности данных изобретений.While certain embodiments have been described, these embodiments have been provided by way of example only and are not intended to limit the scope of these inventions. In fact, the new methods and systems described herein can be implemented in a variety of other forms; in addition, various omissions, replacements, and changes in the forms of the methods and systems described herein can be made without departing from the essence of these inventions. The accompanying claims and their equivalents are intended to cover such forms or modifications as might fall within the scope and essence of these inventions.

Например, может быть предоставлена программа, которая хранится в считываемом компьютером носителе информации и выполнена с возможностью реализации обработки согласно каждому из вариантов осуществления. Носитель информации может быть в любом формате хранения, предоставляющем, что программа может быть сохранена в носителе информации и считана с носителя информации компьютером; носителем информации может быть магнитный диск, оптический диск (CD-ROM, CD-R, DVD или тому подобные), магнитооптический диск (MO или тому подобный), полупроводниковая память, или тому подобным.For example, a program may be provided that is stored in a computer readable storage medium and configured to implement processing according to each of the embodiments. The storage medium may be in any storage format providing that the program can be stored in the storage medium and read from the storage medium by a computer; the storage medium may be a magnetic disk, an optical disk (CD-ROM, CD-R, DVD or the like), a magneto-optical disk (MO or the like), a semiconductor memory, or the like.

К тому же программа, выполненная с возможностью реализации обработки согласно каждому из вариантов осуществления, может быть сохранена на компьютере (сервере), присоединенном к сети, такой как Интернет. Таким образом, программа может быть загружена в компьютер (клиент) через сеть.In addition, a program configured to implement processing according to each of the embodiments may be stored on a computer (server) connected to a network, such as the Internet. Thus, the program can be downloaded to a computer (client) through the network.

СПИСОК ССЫЛОЧНЫХ ПОЗИЦИЙLIST OF REFERENCE POSITIONS

101: блок вычитания101: subtraction block

102: блок ортогонального преобразования102: orthogonal transform unit

103: блок квантования103: quantization unit

104: блок деквантования104: dequantization unit

105: блок обратного ортогонального преобразования105: inverse orthogonal transform block

106: блок сложения106: addition block

107: память опорного изображения107: reference image memory

108: блок внутреннего предсказания108: intra prediction block

109: блок внешнего предсказания109: inter prediction block

110: блок выбора предсказания110: prediction selection unit

111: переключатель выбора предсказания111: prediction selection switch

112: блок задания матрицы 1D преобразования112: block definition matrix 1D conversion

113: блок управления порядком коэффициентов113: coefficient order control unit

114: блок энтропийного кодирования114: entropy coding unit

115: выходной буфер115: output buffer

116: блок управления кодированием116: coding control unit

117: последовательность квантованных коэффициентов преобразования117: a sequence of quantized transform coefficients

118: входное изображение118: input image

119: ошибка предсказания119: prediction error

120: коэффициент преобразования120: conversion rate

121: квантованный коэффициент преобразования121: quantized transform coefficient

122: восстановленный коэффициент преобразования122: restored conversion coefficient

123: восстановленная ошибка предсказания123: recovered prediction error

124: локально декодированное изображение124: locally decoded image

125: опорное изображение125: reference image

126: информация предсказания126: prediction information

127: предсказанное изображение127: predicted image

129: информация задания матрицы 1D преобразования129: 1D transformation matrix setting information

130: кодированные данные130: encoded data

201, 204, 801, 804, 1101, 1104, 1201, 1204: переключатель выбора201, 204, 801, 804, 1101, 1104, 1201, 1204: select switch

202, 802, 1102, 1202: блок вертикального преобразования202, 802, 1102, 1202: vertical conversion unit

206, ..., 209, 806, ..., 811, 1206, ..., 1211: блок 1D ортогонального преобразования206, ..., 209, 806, ..., 811, 1206, ..., 1211: orthogonal transform unit 1D

203, 1103: блок транспонирования203, 1103: transpose block

205, 805, 1105, 1205: блок горизонтального преобразования205, 805, 1105, 1205: horizontal conversion unit

301, 304, 901, 904, 1301, 1304: переключатель выбора301, 304, 901, 904, 1301, 1304: select switch

302, 902, 1302: блок вертикального обратного преобразования302, 902, 1302: vertical inverse transform unit

303: блок транспонирования303: transpose block

305, 905, 1305: блок горизонтального обратного преобразования305, 905, 1305: horizontal inverse transform unit

306, ..., 309, 906, ..., 911, 1306, ..., 1311: блок 1D обратного ортогонального преобразования306, ..., 309, 906, ..., 911, 1306, ..., 1311: inverse orthogonal transform unit 1D

401: входной буфер401: input buffer

402: блок энтропийного декодирования402: entropy decoding unit

403: блок управления порядком коэффициентов403: coefficient order control unit

404: блок деквантования404: dequantization unit

405: блок обратного ортогонального преобразования405: inverse orthogonal transform block

406: блок сложения406: addition block

407: память опорного изображения407: reference image memory

408: блок внутреннего предсказания408: intra prediction block

409: блок внешнего предсказания409: inter prediction block

410: переключатель выбора410: select switch

411: блок задания матрицы 1D преобразования411: 1D transformation matrix setting unit

412: выходной буфер412: output buffer

413: блок управления декодированием413: decoding control unit

414: кодированные данные414: encoded data

415: последовательность квантованных коэффициентов преобразования415: a sequence of quantized transform coefficients

416: квантованный коэффициент преобразования416: quantized transform coefficient

417: восстановленный коэффициент преобразования417: restored conversion coefficient

418: восстановленная ошибка предсказания418: recovered prediction error

419: декодированное изображение419: decoded image

420: опорное изображение420: reference image

421: информация режима предсказания421: prediction mode information

422: информация задания матрицы 1D преобразования422: job information matrix 1D conversion

423: изображение с предсказанием423: predictive image

424: информация предсказания424: prediction information

425: выходное изображение425: output image

501: переключатель выбора501: select switch

502, ..., 510: блок 2D-1D преобразования502, ..., 510: 2D-1D conversion block

511: блок подсчета частоты возникновения511: occurrence rate counter

512: блок обновления порядка коэффициентов512: coefficient order updating unit

513: гистограмма513: bar chart

514: информация обновления порядка коэффициентов514: coefficient order update information

700: синтаксис700: syntax

701: высокоуровневый синтаксис701: high level syntax

702: синтаксис уровня вырезки702: clipping level syntax

703: синтаксис уровня дерева кодирования703: coding tree level syntax

704: синтаксис задания параметров последовательности704: syntax for setting sequence parameters

705: синтаксис задания параметров картинки705: picture parameter syntax

706: синтаксис заголовка вырезки706: clipping header syntax

707: синтаксис данных вырезки707: clipping data syntax

708: синтаксис единицы дерева кодирования708: coding tree unit syntax

709: синтаксис единицы предсказания709: Prediction Unit Syntax

710: синтаксис единицы преобразования710: conversion unit syntax

1001: переключатель выбора1001: select switch

1002, ..., 1010: блок 1D-2D преобразования1002, ..., 1010: 1D-2D transform block

1011: блок подсчета частоты возникновения1011: occurrence rate counter

1012: блок обновления порядка коэффициентов1012: coefficient order update block

1013: гистограмма1013: histogram

1014: информация обновления порядка коэффициентов1014: coefficient order update information

Claims (7)

Способ декодирования изображения, характеризующийся тем, что содержит этапы, на которых:A method of decoding an image, characterized in that it comprises the steps in which: декодируют коэффициенты преобразования для целевого изображения, которое следует декодировать, и информацию, указывающую режим внутреннего предсказания для целевого изображения;decoding transform coefficients for the target image to be decoded, and information indicating an intra prediction mode for the target image; сканируют коэффициенты преобразования для генерации сканированных коэффициентов преобразования; scanning conversion coefficients to generate scanned conversion coefficients; задают комбинацию из матрицы вертикального обратного преобразования и матрицы горизонтального обратного преобразования, соответствующую целевому изображению, на основе предварительно определенного отношения;setting a combination of a vertical inverse transform matrix and a horizontal inverse transform matrix corresponding to the target image based on a predetermined ratio; выполняют обратное преобразование сканированных коэффициентов преобразования вдоль вертикального направления и горизонтального направления, используя комбинацию из матрицы вертикального обратного преобразования и матрицы горизонтального обратного преобразования, когда режим внутреннего предсказания является первым режимом или вторым режимом, для получения ошибки предсказания, причем оба из первого режима и второго режима являются другими, чем (1) третий режим, соответствующий вертикальному направлению, или (2) четвертый режим, соответствующий горизонтальному направлению, при этом первый режим содержит по меньшей мере пятый режим, соответствующий первому диагональному направлению, шестой режим, соответствующий второму диагональному направлению, седьмой режим, соответствующий третьему диагональному направлению; иperforming the inverse transform of the scanned transform coefficients along the vertical direction and the horizontal direction using a combination of a vertical inverse transform matrix and a horizontal inverse transform matrix when the intra prediction mode is the first mode or the second mode to obtain a prediction error, both from the first mode and the second mode are other than (1) the third mode corresponding to the vertical direction, or (2) the fourth mode, co sponds to the horizontal direction, wherein the first mode comprises at least a fifth mode corresponding to the first diagonal direction, the sixth mode corresponding to a second diagonal direction, the seventh mode corresponding to a third diagonal direction; and генерируют декодированное изображение на основе ошибки предсказания, и при этомgenerating a decoded image based on the prediction error, and wherein упомянутая комбинация соответствует любой из множества комбинаций кандидатов, включающих в себя первую комбинацию кандидатов и вторую комбинацию кандидатов, обе из матрицы вертикального обратного преобразования и матрицы горизонтального обратного преобразования являются первой матрицей преобразования в первой комбинации кандидатов, когда режим внутреннего предсказания является первым режимом, и обе из матрицы вертикального обратного преобразования и матрицы горизонтального обратного преобразования являются второй матрицей преобразования во второй комбинации кандидатов, когда режим внутреннего предсказания является вторым режимом, причем первая матрица преобразования отличается от второй матрицы преобразования.said combination corresponds to any one of a plurality of candidate combinations including a first candidate combination and a second candidate combination, both of the vertical inverse transformation matrix and the horizontal inverse transformation matrix are the first transformation matrix in the first candidate combination when the intra prediction mode is the first mode, and both from the matrix of the vertical inverse transform and the matrix of the horizontal inverse transform are the second matrix of pre rofessional second combination candidates when the intra prediction mode is the second mode, the first matrix transformation differs from the second transform matrix.
RU2016106331A 2016-02-25 2016-02-25 Method of encoding image and method of decoding image RU2631992C2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2016106331A RU2631992C2 (en) 2016-02-25 2016-02-25 Method of encoding image and method of decoding image

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2016106331A RU2631992C2 (en) 2016-02-25 2016-02-25 Method of encoding image and method of decoding image

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
RU2014127123/08A Division RU2580088C2 (en) 2010-07-15 2014-07-02 Image encoding method and image decoding method

Publications (2)

Publication Number Publication Date
RU2016106331A RU2016106331A (en) 2017-08-30
RU2631992C2 true RU2631992C2 (en) 2017-09-29

Family

ID=59798641

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2016106331A RU2631992C2 (en) 2016-02-25 2016-02-25 Method of encoding image and method of decoding image

Country Status (1)

Country Link
RU (1) RU2631992C2 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6990506B2 (en) * 2000-12-13 2006-01-24 Sharp Laboratories Of America, Inc. Integer cosine transform matrix for picture coding
US20070121731A1 (en) * 2005-11-30 2007-05-31 Akiyuki Tanizawa Image encoding/image decoding method and image encoding/image decoding apparatus
US20080170615A1 (en) * 2007-01-12 2008-07-17 Mitsubishi Electric Corporation Moving image decoding device and moving image decoding method
RU2329615C2 (en) * 2003-12-01 2008-07-20 Самсунг Электроникс Ко., Лтд. Video signal coding-decoding method and device for its implementation
US20100034286A1 (en) * 2002-09-26 2010-02-11 Ntt Docomo, Inc. Low complexity and unified transforms for video coding

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6990506B2 (en) * 2000-12-13 2006-01-24 Sharp Laboratories Of America, Inc. Integer cosine transform matrix for picture coding
US20100034286A1 (en) * 2002-09-26 2010-02-11 Ntt Docomo, Inc. Low complexity and unified transforms for video coding
RU2329615C2 (en) * 2003-12-01 2008-07-20 Самсунг Электроникс Ко., Лтд. Video signal coding-decoding method and device for its implementation
US20070121731A1 (en) * 2005-11-30 2007-05-31 Akiyuki Tanizawa Image encoding/image decoding method and image encoding/image decoding apparatus
US20080170615A1 (en) * 2007-01-12 2008-07-17 Mitsubishi Electric Corporation Moving image decoding device and moving image decoding method

Also Published As

Publication number Publication date
RU2016106331A (en) 2017-08-30

Similar Documents

Publication Publication Date Title
RU2580088C2 (en) Image encoding method and image decoding method
US11445194B2 (en) Method and apparatus for processing video signal
US20210084292A1 (en) Method and device for processing video signal
EP2744211A1 (en) Adaptive transformation of residual blocks depending on the intra prediction mode
AU2015201843B2 (en) Image encoding method and image decoding method
JP5622954B2 (en) Image decoding apparatus, method and program
JP5535361B2 (en) Image coding apparatus, method and program
JP5537695B2 (en) Image decoding apparatus, method and program
RU2631992C2 (en) Method of encoding image and method of decoding image
JP6042478B2 (en) Image decoding device
JP6310034B2 (en) Decoding device, decoding method, and decoding program
JP5925855B2 (en) Image decoding apparatus, method and program, first program and second program, server system, and download control method
JP2009021802A (en) Moving image encoder and method