RU2631992C2 - Method of encoding image and method of decoding image - Google Patents
Method of encoding image and method of decoding image Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/18—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
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
На Фиг. 4C показана таблица, иллюстрирующая соответствие между индексом горизонтального преобразования и матрицами 1D преобразования согласно первому варианту осуществления.In FIG. 4C is a table illustrating the correspondence between the horizontal transform index and the
На Фиг. 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
На фиг. 7D показано графическое представление, иллюстрирующее режим 4 внутреннего предсказания.In FIG. 7D is a graphical view illustrating
На фиг. 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
На Фиг. 18C показана таблица, иллюстрирующая соответствие между индексом горизонтального преобразования и матрицами 1D преобразования согласно второму варианту осуществления.In FIG. 18C is a table illustrating the correspondence between the horizontal transform index and the
На Фиг. 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
На Фиг. 21C показана таблица, иллюстрирующая соответствие между индексом горизонтального преобразования и матрицами 1D преобразования согласно третьему варианту осуществления.In FIG. 21C is a table illustrating the correspondence between the horizontal transform index and the
На Фиг. 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
Устройство кодирования изображения на Фиг. 1 делит каждый из кадров или полей, образующих входное изображение 118, на множество блоков пикселей, осуществляет кодирование с предсказанием блоков пикселей, возникающих в результате деления, и выводит кодированные данные 130. Для упрощения предполагается, что кодирование с предсказанием в дальнейшем в этом документе осуществляется над блоком пикселей от верхнего левого к нижнему правому, как показано на Фиг. 6A. На Фиг. 6A показан целевой кадр f кодирования, в котором кодированные блоки p пикселей расположены слева и выше целевого блока c пикселей кодирования.The image encoding apparatus of FIG. 1 divides each of the frames or fields constituting the
Здесь, блок пикселей относится к, например, единице дерева кодирования, макроблоку, подблоку или пикселю. Блок пикселей в дальнейшем в этом документе в основном используется, чтобы означать единицу дерева кодирования, но может интерпретироваться так, чтобы иметь другое значение в случае необходимости. Единицей дерева кодирования является обычно, например, блок пикселей 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
Устройство кодирования изображения на Фиг. 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
Компоненты устройства кодирования изображения на Фиг. 1 будут описаны ниже.The components of the image encoding device in FIG. 1 will be described below.
Вычитающее устройство 101 вычитает соответствующее предсказанное изображение 127 из целевого блока кодирования во входном изображении 118, чтобы получить ошибку 119 предсказания. Устройство 101 вычитания вводит ошибку 119 предсказания в блок 102 ортогонального преобразования.
Блок 102 ортогонального преобразования преобразует ошибку 119 предсказания из устройства 101 вычитания для получения коэффициентов 120 преобразования. Блок 102 ортогонального преобразования будет подробно описан ниже. Блок 102 ортогонального преобразования вводит коэффициенты преобразования 120 в блок 103 квантования.The
Блок 103 квантования квантует коэффициенты преобразования из блока 102 ортогонального преобразования для получения квантованных коэффициентов 121 преобразования. Конкретно, блок 103 квантования осуществляет квантование в соответствии с информацией квантования, такой как параметр квантования и матрица квантования, которая задана блоком 116 управления кодированием. Параметр квантования указывает разрешение квантования. Матрица квантования используется для назначения веса разрешению квантования для каждого компонента коэффициентов преобразования. Блок 103 квантования вводит коэффициенты 121 преобразования в блок 113 управления порядком коэффициентов и блок 104 деквантования.The
Блок 113 управления порядком коэффициентов преобразует квантованные коэффициенты 121 преобразования, которые являются двухмерным (2D) выражением, в последовательность 117 квантованных коэффициентов преобразования, которая является одномерным (1D) выражением. Блок 113 управления порядком коэффициентов затем вводит последовательность 117 квантованных коэффициентов преобразования в блок 114 энтропийного кодирования. Блок 113 управления коэффициентами будет подробно описан ниже.The coefficient
Блок 114 энтропийного кодирования осуществляет энтропийное кодирование (например, кодирование по алгоритму Хаффмана или арифметическое кодирование) над различными параметрами кодирования, такими как последовательность 117 квантованных коэффициентов преобразования из блока 113 управления коэффициентами, информация 126 предсказания из блока 110 выбора предсказания и информация квантования, которые задаются блоком 116 управления кодирования. Параметры кодирования требуются для декодирования и включают в себя информацию 126 предсказания, информацию по коэффициентам преобразования и информацию по квантованию. Параметры кодирования удерживаются во внутренней памяти (не показана на чертежах) в блоке 116 управления кодированием. Когда кодируется целевой блок предсказания, могут быть использованы параметры кодирования для уже кодированных смежных блоков пикселей. Например, внутреннее предсказание H. 264 позволяет получить предсказанное значение для режима предсказания целевого блока предсказания из информации режима предсказания по кодированному смежному блоку.
Кодированные данные, сгенерированные блоком 114 энтропийного кодирования, например, мультиплексируются и затем временно накапливаются в выходном буфере 115. Данные затем выводятся как кодированные данные 130 в соответствии с должным временным интервалом вывода, управляемым блоком 116 управления кодированием. Кодированные данные 130 выводятся, например, в систему накопления (носитель накопления) или систему передачи (линию связи), которые не показаны на чертежах.The encoded data generated by the
Блок 104 деквантования деквантует квантованные коэффициенты 121 преобразования из блока 103 квантования для получения восстановленных коэффициентов 122 преобразования. Конкретно, блок 104 деквантования осуществляет деквантование в соответствии с информацией квантования, используемой в блоке 103 квантования. Информация квантования, используемая в блоке 103 квантования, загружается из внутренней памяти в блоке 116 управления кодированием. Блок 104 деквантования вводит восстановленные коэффициенты 122 преобразования в блок 105 обратного ортогонального преобразования.The
Блок обратного ортогонального преобразования 105 осуществляет обратное ортогональное преобразование, соответствующее ортогональному преобразованию, выполненному блоком 102 ортогонального преобразования над восстановленными коэффициентами 122 преобразования из блока 104 деквантования, чтобы получить восстановленную ошибку 123 предсказания. Блок 105 обратного ортогонального преобразования будет подробно описан ниже. Блок 105 обратного ортогонального преобразования вводит восстановленную ошибку 123 предсказания в блок 106 сложения.The inverse
Блок 106 сложения складывает восстановленную ошибку 123 предсказания и соответствующее предсказанное изображение 127 вместе, чтобы сгенерировать локально декодированное изображение 124. Локально декодированное изображение 124 сохраняется в память 107 опорного изображения. На локально декодированное изображение 124, сохраненное в память 107 опорного изображения, ссылается блок 108 внутреннего предсказания и блок 109 внешнего предсказания в качестве опорного изображения 125, если необходимо.An
Блок 108 внутреннего предсказания осуществляет внутреннее предсказание, используя опорное изображение 125, сохраненное в память 107 опорного изображения. Например, H. 264 использует значение кодированного опорного пикселя для блока, смежного для целевого блока предсказания для компенсации пикселей (копировать или интерполировать пиксели) вдоль направления предсказания, такого как вертикальное направление или горизонтальное направление, чтобы сгенерировать изображение, предсказанное посредством внутреннего предсказания. На Фиг. 7A показаны направления предсказания для внутреннего предсказания согласно H. 264. К тому же на Фиг. 7B отношение расположения между опорными пикселями и целевыми пикселями кодирования согласно H. 264. На Фиг. 7C показан способ для генерирования предсказанного изображения в режиме 1 (горизонтальное предсказание). На Фиг. 7D показан способ для генерирования предсказанного изображения в режиме 4 (предсказание по диагонали вниз-вправо; Intra_NxN_Diagonal_Down_Right на Фиг. 4A).The
Блок 108 внутреннего предсказания может интерполировать значения пикселей, используя предварительно определенный способ интерполяции, и затем копирует интерполированные значения пикселей в предварительно определенном направлении. Проиллюстрированы направления предсказания для внутреннего предсказания согласно H. 264, но любое число режимов предсказания, таких как 17 или 33 типа режимов предсказания, сделаны доступными посредством задания более подробной классификации направлений предсказания. Например, H. 264 устанавливает углы предсказания с интервалами в 22,5 градуса, но 17 типов режимов предсказания, включая DC предсказание, сделаны доступными посредством задания углов предсказания с интервалами в 11,25 градуса. К тому же 33 типа режимов предсказания, включая DC предсказание, сделаны доступными посредством задания углов предсказания с интервалами в 5,625 градуса. В качестве альтернативы вместо расположения с равными интервалами, углы направлений предсказания могут быть выражены прямой линией, которая соединяет первую опорную точку со второй опорной точкой, полученной посредством перемещения первой опорной точки в горизонтальном направлении и в вертикальном направлении. Как описано выше, число режимов предсказания может быть легко увеличено, и настоящий вариант осуществления является применимым независимо от числа режимов предсказания.The
Блок 109 внешнего предсказания осуществляет внешнее предсказание, используя опорное изображение 125, сохраненное в память 107 опорного изображения. Конкретно, блок 109 внешнего предсказания осуществляет процесс сопоставления блоков между целевым блоком предсказания и опорным изображением 125 для получения величины отклонения в движении (вектор движения). Блок 109 внешнего предсказания осуществляет процесс интерполяции (компенсацию движения) на основе вектора движения, чтобы сгенерировать изображение, предсказанное посредством внешнего предсказания. H. 264 позволяет процессу интерпретации достигнуть точности в 1/4 пикселя. Полученный вектор движения подвергается энтропийному кодированию как часть информации 126 предсказания.The
Переключатель 111 выбора выбирает выходной конец блока 108 внутреннего предсказания или выходной конец блока 109 внешнего предсказания в соответствии с информацией 126 предсказания из блока 110 выбора предсказания. Переключатель 111 выбора затем вводит изображение, предсказанное посредством внутреннего предсказания, или изображение, предсказанное посредством внешнего предсказания, в блок 101 вычитания и блок 106 сложения в качестве предсказанного изображения 127. Информация 126 предсказания указывает внутреннее предсказание, блок 110 выбора получает изображение, предсказанное посредством внутреннего предсказания, из блока 108 внутреннего предсказания, в качестве предсказанного изображения 127. С другой стороны, если информация 126 предсказания указывает внешнее предсказание, блок 110 выбора получает изображение, предсказанное посредством внешнего предсказания, из блока 109 внутреннего предсказания, в качестве предсказанного изображения 127.The
Блок 110 выбора предсказания имеет функцию для задания информации 126 предсказания в соответствии с режимом предсказания, управляемым блоком 116 управления кодированием. Как описано выше, внутреннее предсказание или внешнее предсказание может быть выбрано для генерирования предсказанного изображения 127. Более того, множество режимов могут быть дополнительно выбраны для каждого из внутреннего предсказания и внешнего предсказания. Блок 116 управления кодированием определяет одно из множества режимов предсказания для внутреннего предсказания и внешнего предсказания, чтобы было оптимальным режимом предсказания. Блок 110 выбора предсказания задает информацию предсказания 126 согласно определенному оптимальному режиму предсказания.
Например, в связи с внутренним предсказанием информация режима предсказания от блока 116 управления кодированием задается в блоке 108 внутреннего предсказания. В соответствии с информацией режима предсказания, блок 108 внутреннего предсказания генерирует предсказанное изображение 127. Блок 116 управления кодированием может задавать множество порций информации режима предсказания в порядке увеличения числа режима предсказания или уменьшения числа режима предсказания. К тому же блок 116 управления кодированием может ограничить режим предсказания в соответствии с характеристиками входного изображения. Блок 116 управления кодированием не должен задавать все режимы предсказания, но может задавать по меньшей мере одну порцию информации режима предсказания для целевого блока кодирования.For example, in connection with intra prediction, prediction mode information from
Например, блок 116 управления кодированием определяет оптимальный режим предсказания, используя функцию стоимости, показанную в:For example,
К=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,
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
Блок 116 управления кодированием управляет компонентами устройства кодирования изображения на Фиг. 1. Конкретно, блок 116 управления кодированием выполняет различные операции управления для процесса кодирования, включая вышеописанные операции.The
Блок 112 задания матрицы 1D преобразования генерирует информацию 129 задания матрицы 1D преобразования на основе информации режима предсказания, включенной в информацию 126 предсказания из блока 110 выбора предсказания. Блок задания матрицы 1D преобразования затем выводит информацию 129 задания матрицы 1D преобразования в блок 102 ортогонального преобразования и блок 105 обратного ортогонального преобразования. Информация 129 задания матрицы 1D преобразования будет подробно описана ниже.The
Блок 102 ортогонального преобразования согласно настоящему варианту осуществления будет подробно описан ниже со ссылкой на Фиг. 2.An
Блок 102 ортогонального преобразования включает в себя переключатель 201 выбора, блок 202 вертикального преобразования, блок 203 транспонирования, переключатель 204 выбора и блок 205 горизонтального преобразования. Блок 202 вертикального преобразования включает в себя блок A 206 1D ортогонального преобразования и блок B 207 1D ортогонального преобразования. Блок 205 горизонтального преобразования включает в себя блок A 208 1D ортогонального преобразования и блок B 209 1D ортогонального преобразования. Порядок блока 202 вертикального преобразования и блока 205 горизонтального преобразования является иллюстративным и может быть обратным.The
Блок 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
Переключатель 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
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
Матрица A 1D преобразования и матрица B 1D преобразования может использовать целые числа, полученные посредством спроектированного базиса преобразования, подвергнутые скалярному умножению.The
Здесь, если ошибка 119 предсказания является прямоугольным блоком, выраженным как M×N, размер блока, который следует ортогонально преобразовать, может быть также M×N.Here, if the
Блок 203 транспонирования транспонирует выходную матрицу (Y) из блока 202 вертикального преобразования и предоставляет транспонированную выходную матрицу (Y) переключателю 204 выбора. Однако блок 203 транспонирования является иллюстративным, и соответствующее аппаратное обеспечение не обязательно должно быть подготовлено. Например, выходная матрица (Y) может быть транспонирована без необходимости подготовления аппаратного обеспечения, соответствующего блоку 203 транспонирования, посредством сохранения результатов 1D ортогонального преобразования, осуществляемого блоком 202 вертикального преобразования, (каждого из элементов выходной матрицы из блока 202 вертикального преобразования) и загрузки результатов в должном порядке, когда блок 205 горизонтального преобразования выполняет 1D ортогональное преобразование.The
Переключатель 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
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
Как описано выше, блок 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
Теперь будет описана разница в природе между матрицей A 1D преобразования и матрицей B 1D преобразования. Некоторые режимы внутреннего предсказания, поддерживаемые посредством H. 264 и тому подобным, генерируют предсказанное изображение посредством копирования, вдоль направления предсказания, причем группа опорных пикселей на одной или обеих смежных линиях, размещенные слева от или выше целевого блока предсказания, или осуществляя аналогичное копирование после интерполяции. То есть этот режиме внутреннего предсказания выбирает по меньшей мере один опорный пиксель из группы опорных пикселей в соответствии с направлением предсказания и копирует опорный пиксель или осуществляет интерполяцию используя опорные пиксели, чтобы сгенерировать предсказанное изображение. Режим внутреннего предсказания использует пространственную корреляцию в изображении и таким образом имеет точность предсказания, которая имеет тенденцию уменьшаться с увеличением расстояния от опорного пикселя. То есть абсолютное значение ошибки предсказания вероятно увеличится согласно расстоянию от опорного пикселя. Данная тенденция аналогично проявляется независимо от направления предсказания. Более конкретно, в связи с режимами внутреннего предсказания (например, режим 1 и режим 8 на Фиг. 7A), в которых ссылаются (значения пикселей опорных пикселей копируются, или интерполяция осуществляется, используя опорные пиксели), только на группу опорных пикселей на линии, размещенной слева от или рядом с целевым блоком предсказания, ошибка предсказания проявляет тенденцию в горизонтальном направлении. В связи с режимами предсказания, в которых ссылаются (например, режим 0, режим 3, и режим 7 на Фиг. 7A) только на группу опорных пикселей на линии, размещенной выше или рядом с целевым блоком предсказания, ошибка предсказания проявляет тенденцию в вертикальном направлении. Более того, в связи с режимами предсказания (например, режим 4, режим 5 и режим 6 на Фиг. 7A), в которых ссылаются на группы опорных пикселей на линии, размещенной слева от или рядом с целевым блоком предсказания, и на линии, размещенной выше или рядом с целевым блоком предсказания, ошибка предсказания проявляет такую тенденцию в горизонтальном направлении и вертикальном направлении. В общем, тенденция проявляется в направлении, ортогональном линии группы опорных пикселей, используемом для генерирования предсказанного изображения.Now, a difference in nature between the
Матрица A 1D преобразования генерируется посредством предварительного проектирования общего базиса преобразования, с тем чтобы увеличить, по сравнению с матрицей B 1D преобразования, плотность коэффициентов 1D ортогонального преобразования (то есть уменьшить долю ненулевых коэффициентов в квантованных коэффициентах 121 преобразования) в ортогональном направлении (вертикальном направлении или горизонтальном направлении). С другой стороны, матрица B 1D преобразования генерируется посредством проектирования матрицы преобразования общего назначения, не имеющей такой природы. Например, преобразованием общего назначения является DCT. Эффективность преобразования ошибки предсказания при внутреннем предсказании и таким образом эффективность кодирования улучшается посредством осуществления 1D ортогонального преобразования в ортогональном направлении используя матрицу A 1D преобразования. Например, ошибка 119 предсказания в режиме 0 (вертикальное предсказание) проявляет тенденцию в вертикальном направлении, но не в горизонтальном направлении. Отсюда, эффективность ортогонального преобразования может быть достигнута посредством осуществления 1D ортогонального преобразования в блоке 202 вертикального преобразования, используя матрицу A 1D преобразования, и осуществления 1D ортогонального преобразования в блоке 205 горизонтального преобразования, используя матрицу B 1D преобразования.The
Блок 105 обратного ортогонального преобразования согласно настоящему варианту осуществления будет подробно описан ниже со ссылкой на Фиг. 3.An inverse
Блок 105 обратного ортогонального преобразования включает в себя переключатель 301 выбора, блок 302 вертикального обратного преобразования, блок 303 транспонирования, переключатель 304 выбора и блок 305 горизонтального обратного преобразования. Блок 302 вертикального обратного преобразования включает в себя блок A 306 1D обратного ортогонального преобразования и блок B 307 1D обратного ортогонального преобразования. Блок 305 горизонтального обратного преобразования включает в себя блок A 308 1D обратного ортогонального преобразования и блок B 309 1D обратного ортогонального преобразования. Порядок блока 302 вертикального обратного преобразования и блока 305 горизонтального обратного преобразования является иллюстративным и может быть обратным.The 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
Переключатель 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
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
Блок 303 транспонирования транспонирует выходную матрицу (Y') из блока 202 вертикального обратного преобразования и выводит транспонированную выходную матрицу в переключатель 304 выбора. Однако блок 303 транспонирования является иллюстративным, и соответствующее аппаратное обеспечение не обязательно должно быть подготовлено. Например, выходная матрица (Y') может быть транспонирована без необходимости подготовления аппаратного обеспечения, соответствующего блоку 303 транспонирования, посредством сохранения результатов 1D обратного ортогонального преобразования, осуществляемого блоком 302 обратного вертикального преобразования, (каждого из элементов выходной матрицы из блока 302 обратного вертикального преобразования) и загрузки результатов в должном порядке, когда блок 305 горизонтального обратного преобразования выполняет 1D обратное ортогональное преобразование.The
Переключатель 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
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
Как описано выше, блок 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
Информация 129 задания матрицы 1D преобразования согласно настоящему варианту осуществления, которая генерируется блоком 112 задания матрицы 1D преобразования, будет подробно описана ниже.The setting
Информация 129 задания матрицы 1D преобразования прямо или непрямо указывает индекс вертикального преобразования для выбора матрицы преобразования для использования при вертикальном ортогональном преобразовании и вертикальном обратном ортогональном преобразовании, и индекс горизонтального преобразования для выбора матрицы преобразования для использования при горизонтальном ортогональном преобразовании и горизонтальном обратном ортогональном преобразовании. Например, информация 129 задания матрицы 1D преобразования может быть выражена посредством индекса преобразования (TrasformIdx), показанного на Фиг. 4D. Ссылка на таблицу на Фиг. 4D обеспечивает возможность получения индекса вертикального преобразования (Idx вертикального преобразования) и индекс горизонтального преобразования (Idx горизонтального преобразования) из индекса преобразования.The
Как показано на Фиг. 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
Как показано на Фиг. 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
К тому же на Фиг. 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 преобразования, в то же время избегая использования некоторых или всех таблиц.
Например, 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
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
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
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
Таблица, показанная на Фиг. 4A, назначает информацию 129 задания матрицы 1D преобразования учитывая вышеописанную тенденцию каждого режима внутреннего предсказания. То есть 0 назначается индексу вертикального преобразования для режимов предсказания, проявляющих тенденцию в вертикальном направлении ошибки предсказания. 0 назначается индексу горизонтального преобразования для режимов предсказания, проявляющих тенденцию в горизонтальном направлении. С другой стороны, 1 назначается каждому из направлений, не проявляющих тенденцию.The table shown in FIG. 4A, assigns the setting
Когда вертикальное и горизонтальное направления предсказания классифицируются на два класса, в зависимости от того, существует ли тенденция, и применяется ли адаптивно матрица 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
Блок 113 управления порядком коэффициентов будет подробно описан ниже.The coefficient
Блок 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
В другого качестве примера, блок 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
Для упрощения показан пример, касающийся блока пикселей 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
Блок 511 подсчета частоты возникновения создает, для каждого режима предсказания, гистограмму из числа возникновений ненулевых коэффициентов в каждом элементе последовательности 117 квантованных коэффициентов преобразования. Блок 511 подсчета частоты возникновения вводит созданную гистограмму 513 в блок 512 обновления порядка коэффициентов.The occurrence
Блок 512 обновления порядка коэффициентов обновляет порядок коэффициентов с предварительно определенным временным интервалом на основе гистограммы 513. Временной интервал может быть, например, временным интервалом, когда завершен процесс кодирования, осуществляемый над единицей дерева кодирования, или временным интервалом, когда завершен процесс кодирования, осуществляемый над одной линией в единице дерева кодирования.The coefficient
Конкретно, блок 512 обновления порядка коэффициентов ссылается на гистограмму 513 для обновления порядка коэффициентов для режима предсказания с помощью элемента, для которого подсчитанное число возникновений ненулевых коэффициентов равняется или больше, чем пороговое значение. Например, блок 512 обновления порядка коэффициентов выполняет обновление для режима предсказания с помощью элемента, для которого подсчитанное число возникновений ненулевых коэффициентов является 16 или больше. Задание порогового значения для числа возникновений обеспечивает возможность глобального обновления порядка коэффициентов, таким образом избегая сведения к локальному оптимальному решению.Specifically, the coefficient
Блок 512 обновления порядка коэффициентов сортирует, для режима предсказания цели обновления, элементы в порядке уменьшения частоты возникновения ненулевых коэффициентов. Сортировка может быть достигнута в соответствии с существующим алгоритмом, например, пузырьковая сортировка или быстрая сортировка. Блок 512 обновления порядка коэффициентов вводит информацию 514 обновления порядка коэффициентов, указывающую отсортированный порядок элементов в блок 2D-1D преобразования, соответствующий режиму предсказания цели обновления.
Как только информация 514 обновления порядка коэффициентов введена в блок 2D-1D преобразования, блок 2D-1D преобразования осуществляет 2D-1D преобразование в соответствии с обновленным порядком сканирования. Если порядок сканирования является динамически обновляемым, должны быть заданы первоначальные порядки сканирования для блоков 2D-1D преобразования. Например, зигзагообразное сканирование или порядок сканирования, проиллюстрированные на Фиг. 9 могут быть использованы в качестве первоначального порядка сканирования.Once the coefficient
Динамическое обновление порядка сканирования предполагается для достижения стабильно высокой эффективности кодирования, даже если тенденция для генерирования ненулевых коэффициентов в квантованных коэффициентах 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
Для упрощения был проиллюстрирован 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
Как только входное изображение 118 введено в устройство кодирования изображения на Фиг. 1 в единицах целевого блока кодирования, начинается процесс кодирования целевого блока кодирования (этап S601). Блок 108 внутреннего предсказания и блок 109 внешнего предсказания используют опорное изображение 125, сохраненное в память 107 опорного изображения, для генерирования изображения предсказанного посредством внутреннего предсказания, и изображения, предсказанного посредством внутреннего предсказания, (этап S602). Блок 116 управления кодированием определяет оптимальный режим предсказания в том, что касается вышеописанной стоимости кодирования, чтобы сгенерировать информацию 126 предсказания (этап S603). Информация 126 предсказания вводится в каждый элемент блоком 110 выбора предсказания, как описано выше. Если информация 126 предсказания, сгенерированная на этапе S603, указывает на внутреннее предсказание, обработка переходит к этапу S605. Если информация 126 предсказания, сгенерированная на этапе S603, указывает на внешнее предсказание, обработка переходит к этапу S605'.Once the
На этапе S605 блок 101 вычитания вычитает изображение 127, предсказанное посредством (внутреннего) предсказания из целевого блока кодирования для генерирования ошибки 119 предсказания. Обработка затем переходит к этапу S606. С другой стороны, также на этапе S605' блок 101 вычитания вычитает изображение 127, предсказанное посредством (внешнего) предсказания из целевого блока кодирования для генерирования ошибки 119 предсказания. Обработка затем переходит к этапу S614'.In step S605, the subtracting
На этапе S606 блок 112 задания матрицы 1D преобразования извлекает информацию режима предсказания, включенную в информацию 126 предсказания, сгенерированную на этапе S603. На основе извлеченной информации режима предсказания (например, ссылкой на таблицу на Фиг. 4A) блок 112 задания матрицы 1D преобразования генерирует информацию 129 задания матрицы 1D преобразования (этап S607). Блок 112 задания матрицы 1D преобразования выводит информацию 129 задания матрицы 1D преобразования в блок 102 ортогонального преобразования и блок 105 обратного ортогонального преобразования.In step S606, the determining
Переключатель 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
Например, если индекс преобразования (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),
На этапе S614 блок 102 ортогонального преобразования осуществляет вертикальное преобразование и горизонтальное преобразование, которые соответствуют заданиям, сделанным на этапе S608, ... и этапе S613 ошибки 119 предсказания для генерирования коэффициентов 120 преобразования. Впоследствии, блок 103 квантования квантует коэффициенты 120 преобразования, сгенерированные на этапе S614 (этап S615). Обработка затем переходит к этапу S616.In step S614, the
С другой стороны, на этапе 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
На этапе s616 блок 113 управления порядком коэффициентов задает порядок сканирования (то есть в примере, показанном на Фиг. 5A и Фиг. 5B, блок, к которому присоединен переключатель 501 выбора) на основе информации режима предсказания, включенной в информацию 126 предсказания, сгенерированную на этапе S603. Обработка переходит к этапу S617. Если блок 113 управления порядком коэффициентов осуществляет общее 2D-1D преобразование независимо от режима предсказания, этап S616 может быть опущен.In step s616, the coefficient
На этапе S617 блок 113 управления порядком коэффициентов осуществляет 2D-1D преобразование, соответствующее заданию, сделанному на этапе S616, квантованных коэффициентов 121 преобразования для генерирования последовательности 117 квантованных коэффициентов преобразования. Впоследствии, блок 114 энтропийного кодирования осуществляет энтропийное кодирование параметров кодирования, включающих в себя последовательность 117 квантованных коэффициентов преобразования (этап S618). Кодированные данные выводятся с должным временным интервалом, управляемым блоком 116 управления кодированием. С другой стороны, блок 104 деквантования деквантует квантованные коэффициенты 121 преобразования для генерирования восстановленных квантованных коэффициентов 122 преобразования (этап S619). Обработка переходит к этапу S620.In step S617, the coefficient
На этапе 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
Переключатель 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
Например, если индекс преобразования (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),
Если 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
На этапе 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
На этапе S627 блок 106 сложения прибавляет восстановленную ошибку 123 предсказания, сгенерированную на этапе S626 или S626', к соответствующему предсказанному изображению 127, чтобы сгенерировать локально декодированное изображение 124. Локально декодированное изображение 124 сохраняется в память 107 опорного изображения в качестве опорного изображения. Таким образом, процесс кодирования целевого блока кодирования заканчивается (этап S628).In step S627, the
Метод для проектирования матрицы A 1D преобразования и матрицы B 1D преобразования будет описан ниже. Согласно H. 264, девять типов режимов предсказания установлены для блока пикселей 4×4 и блока пикселей 8×8. Четыре типа режимов предсказания установлены для блока пикселей 16×16.A method for designing the
Сначала генерируется ошибка 119 предсказания для каждого режима предсказания. Собраны те из ошибок 119 предсказания для соответственных режимов предсказания, которые проявляют, в вертикальном направлении или горизонтальном направлении, вышеописанную тенденцию иметь абсолютное значение, увеличивающееся с расстоянием от опорного пикселя. Затем, осуществляется сингулярная декомпозиция матрицы, в которой направление с проявленной в нем тенденцией установлено как направление столбца, и в которой ошибки 119 предсказания расположены в направлении ряда. Таким образом, спроектирован 1D ортогональный базис, который устраняет вертикальную корреляцию в матрице. 1D ортогональный базис расположен в направлении столбца, как векторы-строки, для генерирования матрицы A 1D преобразования.First,
С другой стороны, осуществляется сингулярная декомпозиция матрицы, в которой направление с не проявленной в нем тенденцией установлено как направление столбца, и в которой ошибки 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
Конкретный метод проектирования для 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
Для упрощения был проиллюстрировано проектирование блока пикселей 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
Синтаксис 700 включает в себя три части, то есть высокоуровневый синтаксис 701, синтаксис 702 уровня вырезки и синтаксис 703 уровня дерева кодирования. Высокоуровневый синтаксис 701 включает в себя информацию синтаксиса на уровне более высоком, чем вырезка. Вырезка относится к прямоугольной области или непрерывной области, включенной в кадр или поле. Синтаксис 702 уровня вырезки включает в себя информацию, требуемую для декодирования каждого вырезки. Синтаксис 703 уровня дерева кодирования включает в себя информацию, требуемую для декодирования каждого дерева кодирования (то есть каждой единицы дерева кодирования). Каждая из этих частей включает в себя дополнительно детализированный синтаксис.Syntax 700 includes three parts, that is, high-
Высокоуровневый синтаксис 701 включает в себя синтаксис уровня последовательности и синтаксис уровня картинки, такие как синтаксис 704 задания параметров последовательности и синтаксис 705 задания параметров картинки. Синтаксис 702 уровня вырезки включает в себя синтаксис 706 заголовка вырезки и синтаксис 707 данных вырезки. Синтаксис 703 уровня дерева кодирования включает в себя синтаксис 708 единицы дерева кодирования и синтаксис 709 единицы предсказания.The
Синтаксис 708 единицы дерева кодирования может иметь структуру тетрарного дерева. Конкретно, в качестве элемента синтаксиса синтаксиса 708 единицы дерева кодирования синтаксис 708 единицы дерева кодирования может быть дополнительно рекурсивно привлечен. То есть одна единица дерева кодирования может быть разделена на куски используя тетрарные деревья. К тому же синтаксис 708 единицы дерева кодирования содержит синтаксис 710 единицы преобразования. Синтаксис 710 единицы преобразования привлекается при каждом синтаксисе 708 единицы дерева кодирования, размещенном на конце тетрарного дерева. Синтаксис 710 единицы преобразования имеет информацию по обратному ортогональному преобразованию, квантованию и тому подобном, описанным в ней.The
На Фиг. 12 проиллюстрирован синтаксис 706 заголовка вырезки согласно настоящему варианту осуществления. slice_directional_unified_transform_flag, показанный на Фиг. 12 является, например, элементом синтаксиса, который указывает позволены или запрещены для определенного вырезки ортогональное преобразование и обратное ортогональное преобразование согласно настоящему варианту осуществления.In FIG. 12, the
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 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, синтаксис в нижнем слое (таком как единица дерева кодирования или единица преобразования) может быть задан для указания, позволены или запрещены для каждой локальной области внутри вырезки ортогональное преобразование и обратное ортогональное преобразование согласно настоящему варианту осуществления.In addition, in another example, if
На Фиг. проиллюстрирован синтаксис 708 единицы дерева кодирования согласно настоящему варианту осуществления.In FIG. illustrated
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
ctb_directional_unified_transform_flag кодируется только когда вышеописанный slice_directional_unified_transform_flag 1, и когда тип кодирования единицы дерева кодирования является внутренним предсказанием.ctb_directional_unified_transform_flag is encoded only when
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 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,
Когда флаг, задающий, позволены или запрещены ортогональное преобразование и обратное ортогональное преобразование согласно настоящему варианту осуществления, кодируется в синтаксисе 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
На Фиг. 14 проиллюстрирован синтаксис 710 единицы преобразования согласно настоящему варианту осуществления.In FIG. 14 illustrates a
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
tu_directional_unified_transform_flag кодируется только когда вышеописанный slice_directional_unified_transform_flag 1, и когда тип кодирования единицы дерева кодирования является внутренним предсказанием.tu_directional_unified_transform_flag is encoded only when
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 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,
Когда флаг, задающий, позволены или запрещены ортогональное преобразование и обратное ортогональное преобразование согласно настоящему варианту осуществления, кодируется в синтаксисе 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
Элементы синтаксиса, не заданные согласно настоящему варианту осуществления, или описания других условных переходов могут быть вставлены между рядами в синтаксических таблицах, проиллюстрированных на Фиг. 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
К тому же блок 102 ортогонального преобразования и блок 105 обратного ортогонального преобразования согласно настоящему варианту осуществления подходят как для аппаратной реализации, так и для программной реализации.In addition, the
Выражения (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)
С другой стороны, как показано на Фиг. 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)
К тому же, если выделенный базис преобразования используется для каждого из девяти типов режимов внутреннего предсказания для осуществления ортогонального преобразования и обратного ортогонального преобразования, программная реализация предполагается такой как следует ниже. Девять матриц 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
К тому же подготовка индивидуальных порядков сканирования для соответственных режимов предсказания, как описано в настоящем варианте осуществления, способствует улучшению эффективности кодирования. Квантованные коэффициенты 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
(ВТОРОЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ)(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
Блок 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
Матрица C 1D преобразования, матрица D 1D преобразования и матрица E 1D преобразования согласно настоящему варианту осуществления будут описаны ниже.The
Как описано выше, ошибка 119 предсказания имеет тенденцию иметь абсолютное значение, увеличивающееся с расстоянием от опорного пикселя. Данная тенденция аналогично проявляется независимо от направления предсказания. Однако ошибка предсказания в режиме DC предсказания не проявляет тенденцию в вертикальном направлении или в горизонтальном направлении. Настоящее изобретение использует матрицу E 1D преобразования, описанную ниже для режима DC предсказания. Для режимов предсказания, отличных от режима DC предсказания, настоящий вариант осуществления адаптивно использует матрицу С 1D преобразования и матрицу D 1D преобразования в зависимости от того, присутствует ли тенденция, как в случае с первым вариантом осуществления.As described above,
Конкретно, матрица C 1D преобразования может быть сгенерирована, используя тот же метод проектирования, как метод проектирования для вышеописанной матрицы A 1D преобразования. К тому же матрица D 1D преобразования может быть сгенерирована, используя метод проектирования, аналогичный методу проектирования для вышеописанной матрицы B 1D преобразования. То есть матрица D 1D преобразования может быть сгенерирована посредством осуществления метода проектирования для матрицы B 1D преобразования с включенным в него режимом DC предсказания.Specifically, the
Матрица E 1D преобразования может быть матрицей для DCT. В качестве альтернативы матрица E 1D преобразования может быть сгенерирована посредством предварительного проектирования общего базиса преобразования, с тем чтобы увеличить, по сравнению с матрицей D 1D преобразования, плотность коэффициентов после 1D ортогонального преобразования (то есть чтобы уменьшить долю ненулевых коэффициентов в квантованных коэффициентах 121 преобразования) в вертикальном направлении и горизонтальном направлении.The
Вместо блока 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
Блок 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
Информация 129 задания матрицы 1D преобразования согласно настоящему варианту осуществления, генерируемая блоком 112 задания матрицы 1D преобразования, будет подробно описана ниже.The setting
Информация 129 задания матрицы 1D преобразования прямо или непрямо указывает индекс вертикального преобразования для выбора матрицы преобразования для использования при вертикальном ортогональном преобразовании и вертикальном обратном ортогональном преобразовании, и индекс горизонтального преобразования для выбора матрицы преобразования для использования при горизонтальном ортогональном преобразовании и горизонтальном обратном ортогональном преобразовании. Например, информация 129 задания матрицы 1D преобразования может быть выражена посредством индекса преобразования (TrasformIdx), показанного на Фиг. 18D. Ссылка на таблицу на Фиг. 18D обеспечивает возможность получения индекса вертикального преобразования (Idx вертикального преобразования) и индекс горизонтального преобразования (Idx горизонтального преобразования) из индекса преобразования.The
Как показано на Фиг. 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
Как показано на Фиг. 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
К тому же на Фиг. 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
Например, 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
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
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
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
Здесь, если целевой блок предсказания является прямоугольным блоком, выраженным как 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
Для режимов предсказания, отличных от режима 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
Как описано выше, устройство кодирования изображения согласно настоящему варианту осуществления использует тенденцию внутреннего предсказания иметь уменьшающуюся точность предсказания с увеличением расстояния от опорного пикселя, как в случае первого варианта, в то же время применяя ортогональное преобразование и обратное ортогональное преобразование к 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
(ТРЕТИЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ)(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
Блок 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
Матрица F 1D преобразования, матрица G 1D преобразования и матрица H 1D преобразования согласно настоящему варианту осуществления будут описаны ниже.The
Как описано выше, ошибка 119 предсказания имеет тенденцию иметь абсолютное значение, увеличивающееся с расстоянием от опорного пикселя. Данная тенденция аналогично проявляется независимо от направления предсказания. Однако режимы внутреннего предсказания включают в себя режимы предсказания, в которых ссылаются (значения опорных пикселей копируются, или осуществляется интерпретация используя значения опорных пикселей) только на группу опорных пикселей на линии, размещенной слева от и рядом с целевым блоком предсказания, или на линии, размещенной выше и рядом с целевым блоком предсказания, и режимы предсказания, в которых ссылаются на группы опорных пикселей на линии, размещенной слева от и рядом с целевым блоком предсказания, и на линии, размещенной выше и рядом с целевым блоком предсказания. Образ действий, при котором проявляется данная тенденция, варьируется между режимом предсказания, для которого ссылаются только на группу опорных пикселей на одной линии, и режимом предсказания, для которого ссылаются только на группы опорных пикселей на двух линиях. Таким образом, настоящий вариант осуществления осуществляет ортогональное преобразование и обратное ортогональное преобразование по-разному между режимами предсказания, в которых ссылаются только на группу опорных пикселей на одной линии, и режимами предсказания, в которых ссылаются только на группы опорных пикселей на двух линиях.As described above,
Конкретно, матрица H 1D преобразования, описанная ниже, используется для режимов предсказания, в которых ссылаются на группы опорных пикселей на двух линиях. С другой стороны, матрица F 1D преобразования и матрица G 1D преобразования адаптивно используются для режимов предсказания, в которых ссылаются только на группу опорных пикселей на одной линии, в зависимости от того, присутствует ли тенденция, как в случае с первым вариантом осуществления.Specifically, the
Конкретно, матрица F 1D преобразования может быть сгенерирована, используя метод проектирования, аналогичный методу проектирования для вышеописанной матрицы A 1D преобразования. К тому же матрица F 1D преобразования может быть сгенерирована посредством осуществления метода проектирования для вышеописанной матрицы A 1D преобразования, в то же время исключая режимы предсказания, в которых ссылаются на группы пикселей на двух линиях (например, режим 4, режим 5 и режим 6 на Фиг. 7A). К тому же матрица G 1D преобразования может быть сгенерирована, используя тот же метод проектирования, как метод проектирования для вышеописанной матрицы B 1D преобразования. В качестве альтернативы матрица G 1D преобразования может быть матрицей для DCT.Specifically, the
Матрица H 1D преобразования может быть сгенерирована посредством предварительного проектирования общего базиса преобразования, с тем чтобы увеличить, для ошибки 119 предсказания в режимах предсказания, в которых ссылаются на группы пикселей на двух линиях, плотность коэффициентов после 1D ортогонального преобразования (то есть, чтобы уменьшить долю ненулевых коэффициентов в квантованных коэффициентах 121 преобразования) в вертикальном направлении и горизонтальном направлении.The
Вместо блока 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
Блок 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
Информация 129 задания матрицы 1D преобразования согласно настоящему варианту осуществления, генерируемая блоком 112 задания матрицы 1D преобразования, будет подробно описана ниже.The setting
Информация 129 задания матрицы 1D преобразования прямо или непрямо указывает индекс вертикального преобразования для выбора матрицы преобразования для использования при вертикальном ортогональном преобразовании и вертикальном обратном ортогональном преобразовании, и индекс горизонтального преобразования для выбора матрицы преобразования для использования при горизонтальном ортогональном преобразовании и горизонтальном обратном ортогональном преобразовании. Например, информация 129 задания матрицы 1D преобразования может быть выражена посредством индекса преобразования (TrasformIdx), показанного на Фиг. 21D. Ссылка на таблицу на Фиг. 21D обеспечивает возможность получения индекса вертикального преобразования (Idx вертикального преобразования) и индекс горизонтального преобразования (Idx горизонтального преобразования) из индекса преобразования.The
Как показано на Фиг. 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
Как показано на Фиг. 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
К тому же на Фиг. 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
Например, 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
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
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
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
Здесь, если целевой блок предсказания является прямоугольным блоком, выраженным как 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
Для режимов предсказания, отличных от режимов предсказания, в которых ссылаются на группы опорных пикселей на двух линиях, 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
Как описано выше, устройство кодирования изображения согласно настоящему варианту осуществления использует тенденцию внутреннего предсказания иметь уменьшающуюся точность предсказания с увеличением расстояния от опорного пикселя, как в случае первого варианта, в то же время применяя ортогональное преобразование и обратное ортогональное преобразование к режимам предсказания определенным образом, варьирующимся в зависимости от числа линий, соответствующих группам опорных пикселей. Устройство кодирования изображения классифицирует вертикальное и горизонтальное направления режимов предсказания, отличных от режимов предсказания, в которых ссылаются на группы опорных пикселей на двух линиях, на два класса в зависимости от того, присутствует ли тенденция, и адаптивно применяет матрицу 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
Первый и третий варианты осуществления подготавливают два или три типа матриц 1D преобразования и выбирают одну из матриц 1D преобразования для вертикального преобразования (или вертикального обратного преобразования) и горизонтального преобразования (или горизонтального обратного преобразования) согласно режиму предсказания. Однако вышеописанные два или три типа матриц 1D преобразования являются иллюстративными. Эффективность кодирования может быть увеличена посредством подготовки больше матриц преобразования. Например, второй вариант осуществления и третий вариант осуществления могут быть скомбинированы вместе для подготовки четырех типов матриц 1D преобразования. Однако увеличившееся число типов подготовленных матриц преобразования требует дополнительного аппаратного обеспечения или тому подобного. Таким образом, баланс между эффективностью кодирования и недостатками, возникающими в результате увеличившегося числа типов матриц преобразования, желательно учитывать.The first and third embodiments prepare two or three types of
(ЧЕТВЕРТЫЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ)(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
Устройство декодирования изображения на Фиг. 22 декодирует кодированные данные во входном буфере 401, накапливает декодированное изображение 419 в выходном буфере 412 и выводит декодированное изображение 419 в качестве выходного изображения 425. Кодированные данные 414 выводятся, например, устройством кодирования изображения на Фиг. 1, и временно накапливает во входном буфере 401 посредством системы накопления или системы передачи (не показано на чертежах).The image decoding apparatus of FIG. 22 decodes the encoded data in the
Для того чтобы декодировать кодированные данные 414, блок 402 энтропийного декодирования декодирует каждый кадр или поле на основе синтаксиса. Блок 402 энтропийного декодирования подвергает каждую последовательность кода для энтропийного декодирования, чтобы воспроизвести параметры кодирования для кодирования целевого блока кодирования, такие как информацию 424 предсказания, включающую в себя информацию 421 режима предсказания и последовательность 415 квантованных коэффициентов преобразования. Параметры кодирования требуются для декодирования и включают в себя информацию 424 предсказания, информацию по коэффициентам преобразования и информацию по квантованию. Последовательность 415 квантованных коэффициентов преобразования вводится в блок 403 управления порядком коэффициентов. К тому же информация 421 режима предсказания, включенная в информацию 424 предсказания, аналогично вводится в блок 403 управления порядком коэффициентов. Информация 424 предсказания вводится в блок 411 задания матрицы 1D преобразования и переключатель 410 выбора.In order to decode the encoded
Блок 403 управления порядком коэффициентов преобразует последовательность 415 квантованных коэффициентов преобразования, которая является одномерным выражением, в квантованные коэффициенты 416 преобразования, которые являются двухмерным выражением. Блок 403 управления порядком коэффициентов затем вводит квантованные коэффициенты 416 преобразования в блок 404 деквантования. Блок 403 управления порядком коэффициентов будет подробно описан ниже.The coefficient
Блок 404 деквантования деквантует квантованные коэффициенты 416 преобразования из блока 403 управления порядком коэффициентов для получения восстановленных коэффициентов 417 преобразования. Конкретно, блок 404 деквантования осуществляет деквантование в соответствии с информацией по квантованию, декодированной блоком 402 энтропийного декодирования. Блок 404 деквантования вводит восстановленные коэффициенты 417 преобразования в блок 405 обратного ортогонального преобразования.The
Блок обратного ортогонального преобразования 405 осуществляет обратное ортогональное преобразование, соответствующее ортогональному преобразованию, выполненному на кодирующей стороне, над восстановленными коэффициентами 417 преобразования из блока 404 деквантования, чтобы получить восстановленную ошибку 418 предсказания. Блок 405 обратного ортогонального преобразования вводит восстановленную ошибку 418 предсказания в блок 406 сложения.The inverse
Конкретно, блок 405 обратного ортогонального преобразования согласно настоящему варианту осуществления является компонентом, который является по существу таким же как или аналогичным блоку 105 обратного ортогонального преобразования на Фиг. 3 и таким образом не будет описан подробно ниже. В частности, блок 405 обратного ортогонального преобразования согласно настоящему варианту осуществления использует матрицу A 1D преобразования и матрицу B 1D преобразования, которые являются общими для блока обратного ортогонального преобразования на Фиг. 3. Восстановленные коэффициенты 122 преобразования, информация 129 задания матрицы 1D преобразования и восстановленная ошибка 129 предсказания на Фиг. 3 соответствуют восстановленным коэффициентам 417 преобразования, информации 422 задания матрицы 1D преобразования и восстановленной ошибке 418 предсказания согласно настоящему варианту осуществления, соответственно.Specifically, the inverse
Блок 406 сложения складывает восстановленную ошибку 418 предсказания и соответствующее изображение 423 с предсказанием вместе, чтобы сгенерировать локально декодированное изображение 419. Декодированное изображение 419 временно накапливается в выходном буфере 412 для выходного изображения 425 и также сохраняется в память 407 опорного изображения для опорного изображения 420. На декодированное изображение, сохраненное в память 407 опорного изображения, ссылается в блоках кадра или поля, если необходимо, блок внутреннего предсказания 408 и блок 409 внешнего предсказания в качестве опорного изображения 420. Декодированное изображение 419, временно накапливаемое в выходном буфере 412, выводится с временным интервалом вывода, управляемым блоком 413 управления декодирования.The
Блок 408 внутреннего предсказания, блок 409 внешнего предсказания и переключатель 410 выбора, которые являются по существу таким же как или аналогичными блоку 108 внутреннего предсказания, блоку 109 внешнего предсказания и переключателю 110 выбора на Фиг. 1 и таким образом не будут описаны подробно ниже. Блок 413 управления декодированием управляет компонентами устройства декодирования изображения на Фиг. 22. Конкретно, блок 413 управления декодированием выполняет различные операции управления для процесса декодирования, включая вышеописанные операции.The
Блок 411 задания матрицы 1D преобразования генерирует информацию 422 задания матрицы 1D преобразования на основе информации режима предсказания, включенной в информацию 424 предсказания из блока 402 энтропийного декодирования. Блок 411 задания матрицы 1D преобразования выводит информацию 422 задания матрицы 1D преобразования блок 405 обратного ортогонального преобразования.The
Конкретно, блок 411 задания матрицы 1D преобразования является компонентом, который является по существу таким же как или аналогичными блоку 112 задания матрицы 1D преобразования согласно первому варианту осуществления и таким образом не будет описан подробно ниже. То есть блок 411 задания матрицы 1D преобразования согласно настоящему варианту осуществления использует, например, таблицы на Фиг. 4A, Фиг. 4B, Фиг. 4C, Фиг. 4D и Фиг. 4E для генерирования информации 422 задания матрицы 1D преобразования. Информация 126 предсказания и информация 129 задания матрицы 1D преобразования согласно первому варианту осуществления соответствуют информации 424 предсказания и информации 422 задания матрицы 1D преобразования согласно настоящему варианту осуществления, соответственно.Specifically, the
К тому же устройство декодирования изображения на Фиг. 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
Блок 403 управления порядком коэффициентов преобразует последовательность 415 квантованных коэффициентов преобразования, которая является одномерным выражением, в квантованные коэффициенты 416 преобразования, которые являются двухмерным выражением, посредством расположения элементов последовательности 415 квантованных коэффициентов преобразования в предварительно определенном порядке (то есть порядке, соответствующем порядку, используемому на кодирующей стороне). В качестве примера, если кодирующая сторона осуществляет 2D-1D преобразование независимо от режима предсказания, блок 403 управления порядком коэффициентов может выполнить общее 1D-2D преобразование независимо от режима предсказания. Конкретно, блок 403 управления порядком коэффициентов может использовать обратное зигзагообразное сканирование как в случае с H. 264. Обратное зигзагообразное сканирование является 1D-2D преобразованием, соответствующим вышеописанному зигзагообразному сканированию.The coefficient
В другом примере, если кодирующая сторона осуществляет индивидуальные 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
В другом примере, если кодирующая сторона динамически обновляет порядок сканирования при 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
Блок 1011 подсчета частоты возникновения создает гистограмму из числа возникновений ненулевых коэффициентов в каждом элементе последовательности 416 квантованных коэффициентов преобразования. Блок 1011 подсчета частоты возникновения вводит созданную гистограмму 1013 в блок 1012 обновления порядка коэффициентов.The occurrence
Блок 1012 обновления порядка коэффициентов обновляет порядок коэффициентов с предварительно определенным временным интервалом на основе гистограммы 1013. Временной интервал может быть, например, временным интервалом, когда завершен процесс декодирования, осуществляемый над единицей дерева кодирования, или временным интервалом, когда завершен процесс декодирования, осуществляемый над одной линией в единице дерева кодирования.The coefficient
Конкретно, блок 1012 управления порядком коэффициентов ссылается на гистограмму 1013 для обновления порядка коэффициентов для режима предсказания с помощью элемента, для которого подсчитанное число возникновений ненулевых коэффициентов равняется или больше, чем пороговое значение. Например, блок 1012 управления порядком коэффициентов выполняет обновление для режима предсказания с помощью элемента, для которого подсчитанное число возникновений ненулевых коэффициентов является 16 или больше. Задание порогового значения для числа возникновений обеспечивает возможность глобального обновления порядка коэффициентов, таким образом избегая сведения к локальному оптимальному решению.Specifically, the coefficient
Блок 1012 управления порядком коэффициентов сортирует, для режима предсказания цели обновления, элементы в порядке уменьшения частоты возникновения ненулевых коэффициентов. Сортировка может быть достигнута в соответствии с существующим алгоритмом, например, пузырьковая сортировка или быстрая сортировка. Блок 1012 управления порядком коэффициентов вводит информацию 1014 обновления порядка коэффициентов, указывающую отсортированный порядок элементов в блок 1D-2D преобразования, соответствующий режиму предсказания цели обновления.
Как только информация 1014 обновления порядка коэффициентов введена в блок 1D-2D преобразования, блок 1D-2D преобразования осуществляет 1D-2D преобразование в соответствии с обновленным порядком сканирования. Если порядок сканирования является динамически обновляемым, должны быть заданы первоначальные порядки сканирования для блоков 1D-2D преобразования, которые соответствуют порядку сканирования на кодирующей стороне.Once the coefficient
Для упрощения был проиллюстрирован 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
Блок 411 задания матрицы 1D преобразования согласно настоящему варианту осуществления является компонентом, который является по существу таким же как или аналогичным блоку 112 задания матрицы 1D преобразования согласно второму варианту осуществления и таким образом не будет описан подробно ниже. То есть блок 411 задания матрицы 1D преобразования согласно настоящему варианту осуществления использует, например, таблицы на Фиг. 18A, Фиг. 18B, Фиг. 18C, Фиг. 18D и Фиг. 18E для генерирования информации 422 задания матрицы 1D преобразования. Информация 126 предсказания и информация 129 задания матрицы 1D преобразования согласно второму варианту осуществления соответствуют информации 424 предсказания и информации 422 задания матрицы 1D преобразования согласно настоящему варианту осуществления, соответственно.The
Как описано выше, устройство декодирования изображения согласно настоящему варианту осуществления включает в себя блок обратного ортогонального преобразования, который является таким же или аналогичным блоку обратного ортогонального преобразования устройства кодирования изображения согласно второму варианту осуществления. Отсюда, устройство декодирования изображения согласно настоящему варианту осуществления оказывает воздействия, которые являются такими же или аналогичными воздействиям устройства кодирования изображения согласно второму варианту осуществления.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
Блок 411 задания матрицы 1D преобразования согласно настоящему варианту осуществления является компонентом, который является по существу таким же как или аналогичным блоку 112 задания матрицы 1D преобразования согласно третьему варианту осуществления и таким образом не будет описан подробно ниже. То есть блок 411 задания матрицы 1D преобразования согласно настоящему варианту осуществления использует, например, таблицы на Фиг. 21A, Фиг. 21B, Фиг. 21C, Фиг. 21D и Фиг. 21E для генерирования информации 422 задания матрицы 1D преобразования. Информация 126 предсказания и информация 129 задания матрицы 1D преобразования согласно третьему варианту осуществления соответствуют информации 424 предсказания и информации 422 задания матрицы 1D преобразования согласно настоящему варианту осуществления, соответственно.The
Как описано выше, устройство декодирования изображения согласно настоящему варианту осуществления включает в себя блок обратного ортогонального преобразования, который является таким же или аналогичным блоку обратного ортогонального преобразования устройства кодирования изображения согласно третьему варианту осуществления. Отсюда, устройство декодирования изображения согласно настоящему варианту осуществления оказывает воздействия, которые являются такими же или аналогичными воздействиям устройства кодирования изображения согласно третьему варианту осуществления.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
Модификации вариантов осуществления будут приведены и представлены ниже.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:
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:
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
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:
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)
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)
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 |
-
2016
- 2016-02-25 RU RU2016106331A patent/RU2631992C2/en active
Patent Citations (5)
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 | |
EP2744211A1 (en) | Adaptive transformation of residual blocks depending on the intra prediction mode | |
JP2024096479A (en) | Image decoding method and apparatus relying on intra prediction in image coding system | |
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 | |
JP6310034B2 (en) | Decoding device, decoding method, and decoding program | |
JP6042478B2 (en) | Image decoding device | |
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 |