RU2783041C2 - Image decoding device, image decoding method, image coding device and image coding method - Google Patents
Image decoding device, image decoding method, image coding device and image coding method Download PDFInfo
- Publication number
- RU2783041C2 RU2783041C2 RU2022108854A RU2022108854A RU2783041C2 RU 2783041 C2 RU2783041 C2 RU 2783041C2 RU 2022108854 A RU2022108854 A RU 2022108854A RU 2022108854 A RU2022108854 A RU 2022108854A RU 2783041 C2 RU2783041 C2 RU 2783041C2
- Authority
- RU
- Russia
- Prior art keywords
- block
- division
- image
- target block
- splitting
- Prior art date
Links
Images
Abstract
Description
Область техники, к которой относится изобретениеThe field of technology to which the invention belongs
Настоящее изобретение относится к технологии кодирования и декодирования изображения в единицах блоков, полученных путем разделения.The present invention relates to a technology for encoding and decoding an image in units of blocks obtained by division.
Уровень техникиState of the art
Кодирование и декодирование изображения выполняется на основании блоков, при этом изображение разделяется на блоки, каждый из которых содержит заданное количество пикселей. В настоящем документе разделение на соответствующие блоки блоков позволяет повысить эффективность внутреннего предсказания, внешнего предсказания, ортогонального преобразования, энтропийного кодирования и т.п., тем самым, повышая эффективность кодирования.Image encoding and decoding is performed on a block basis, wherein the image is divided into blocks, each of which contains a given number of pixels. In the present document, division into appropriate blocks of blocks can improve the efficiency of intra prediction, inter prediction, orthogonal transform, entropy coding, and the like, thereby improving coding efficiency.
Список ссылокLink List
Патентная литератураPatent Literature
Патентный документ 1. JP2015-526008 A
Непатентная литератураNon-Patent Literature
Непатентная литература 1. JVET, Универсальное кодирование видео (проект 2), июль 2018 г.Non-Patent
Раскрытие сущности изобретенияDisclosure of the essence of the invention
Эффективность кодирования снижается в случае, когда блок разделен на блоки неподходящего размера и формы. В частности, в конце кадра блок, содержащий пиксели, расположенные за границей изображения, имеет неподходящий размер и форму, и соответственно снижается эффективность кодирования.Encoding efficiency is reduced when a block is divided into blocks of an inappropriate size and shape. In particular, at the end of a frame, a block containing pixels located outside an image boundary is inappropriately sized and shaped, and the encoding efficiency decreases accordingly.
Настоящее изобретение предложено с учетом таких обстоятельств, и поэтому задачей настоящего изобретения является предоставление технологии для повышения эффективности кодирования посредством разделения изображения на блоки для кодирования и декодирования изображений.The present invention has been proposed in view of such circumstances, and therefore, an object of the present invention is to provide a technology for improving coding efficiency by dividing an image into blocks for encoding and decoding images.
Согласно одному аспекту настоящего изобретения для решения вышеописанных задач предложено устройство для декодирования изображения. Это устройство представляет собой устройство для декодирования изображения, выполненное с возможностью декодировать изображения в блоках блоков, полученных путем разделения, устройство для декодирования изображения, включающее в себя декодер (201), выполненный с возможностью декодировать информацию разделения блока в целевом блоке, и разделитель (202) блока, выполненный с возможностью рекурсивно разделять изображение на прямоугольники заданного размера на основании информации разделения блока для генерирования целевого блока. Разделитель блока включает в себя разделитель на четыре, выполненный с возможностью разделять целевой блок, полученный рекурсивным разделением пополам как в горизонтальном направлении, так и в вертикальном направлении, для генерирования четырех блоков, и двоичный/троичный разделитель, выполненный с возможностью разделять целевой блок, полученный рекурсивным разделением на два или три в горизонтальном или вертикальном направлении для генерирования двух или трех блоков. Двоичный/троичный разделитель запрещает разделение целевого блока в горизонтальном направлении, когда разделение целевого блока в горизонтальном направлении побуждает целевой блок, полученный разделением, находиться за правой стороной границы изображения, и запрещает разделение целевого блока в вертикальном направлении, когда разделение целевого блока в вертикальном направлении побуждает целевой блок, полученный разделением, находиться за нижней стороной границы изображения.According to one aspect of the present invention, an apparatus for decoding an image is provided for solving the problems described above. This apparatus is an image decoding apparatus capable of decoding images in blocks of blocks obtained by division, an image decoding apparatus including a decoder (201) adapted to decode block division information in the target block, and a delimiter (202 ) block, configured to recursively divide an image into rectangles of a predetermined size based on block division information to generate a target block. The block delimiter includes a four-delimiter configured to divide a target block obtained by recursively halving in both a horizontal direction and a vertical direction to generate four blocks, and a binary/ternary delimiter configured to divide a target block obtained recursively splitting into two or three in the horizontal or vertical direction to generate two or three blocks. The binary/ternary delimiter prohibits splitting the target box in the horizontal direction when splitting the target box in the horizontal direction causes the split target box to be beyond the right side of the image boundary, and disables splitting the target box in the vertical direction when splitting the target box in the vertical direction prompts the target block resulting from the split is beyond the bottom side of the image boundary.
Согласно другому аспекту настоящего изобретения предложено устройство для декодирования изображения. Это устройство представляет собой устройство для декодирования изображения, выполненное с возможностью декодировать изображение в блоках блоков, полученных путем разделения, устройство для декодирования изображения, включающее в себя декодер (201), выполненный с возможностью декодировать информацию разделения блоков в целевом блоке, и разделитель блока, выполненный с возможностью рекурсивно разделять изображение на прямоугольники заданного размера на основании информации разделения блока для генерирования целевого блока. Разделитель (202) блока включает в себя разделитель на четыре, выполненный с возможностью разделять целевой блок, полученный рекурсивным разделением пополам как в горизонтальном направлении, так и в вертикальном направлении для генерирования четырех блоков, и двоичный/троичный разделитель, выполненный с возможностью разделять целевой блок, полученный посредством рекурсивного разделения на два или три в горизонтальном или вертикальном направлении для генерирования двух или трех блоков. Когда разделение целевого блока в любом из направлений побуждает целевой блок, полученный разделением, находиться за границей изображения, и глубина разделения блока достигает заданной предельной глубины или количество, или пропорция пикселей, содержащихся в блоке, полученном путем разделения и расположенный за границей изображения, больше заданного значения, двоичный/троичный разделитель запрещает разделение целевого блока по направлению.According to another aspect of the present invention, an apparatus for decoding an image is provided. This apparatus is an image decoding apparatus configured to decode an image in blocks of blocks obtained by splitting, an image decoding apparatus including a decoder (201) configured to decode block split information in a target block, and a block separator, configured to recursively divide an image into rectangles of a predetermined size based on the block division information to generate a target block. The block splitter (202) includes a four-part splitter configured to split a target block obtained by recursively splitting in half in both a horizontal direction and a vertical direction to generate four blocks, and a binary/ternary splitter configured to split a target block , obtained by recursively splitting into two or three in the horizontal or vertical direction to generate two or three blocks. When splitting the target block in either direction causes the split target box to be outside the image boundary, and the splitting depth of the block reaches the specified limit depth, or the number or proportion of pixels contained in the split obtained box located outside the image boundary is greater than the specified values, the binary/ternary delimiter prevents the target block from being split by direction.
В соответствии с еще одним аспектом настоящего изобретения предлагается устройство для декодирования изображений. Это устройство представляет собой устройство для декодирования изображения, выполненное с возможностью декодировать изображения в блоках блоков, полученных путем разделения, устройство для декодирования изображения, включающее в себя декодер (201), выполненный с возможностью декодировать информацию разделения блока в целевом блоке, и разделитель (202) блока, выполненный с возможностью рекурсивно разделять изображение на прямоугольники заданного размера на основании информации разделения блока для генерирования целевого блока. Разделитель блока включает в себя разделитель на четыре, выполненный с возможностью разделять целевой блок, полученный рекурсивным разделением пополам как в горизонтальном направлении, так и в вертикальном направлении для генерирования четырех блоков, и двоичный/троичный разделитель, выполненный с возможностью разделять целевой блок, полученный рекурсивным разделением на два или три в горизонтальном или вертикальном направлении для генерирования двух или трех блоков. Двоичный/троичный разделитель определяет направление, в котором целевой блок разделяется, чтобы при разделении целевого блока целевой блок, полученный путем разделения, содержал наибольшее количество пикселей, расположенных за границей изображения.In accordance with yet another aspect of the present invention, an apparatus for decoding images is provided. This apparatus is an image decoding apparatus capable of decoding images in blocks of blocks obtained by division, an image decoding apparatus including a decoder (201) adapted to decode block division information in the target block, and a delimiter (202 ) block, configured to recursively divide an image into rectangles of a predetermined size based on block division information to generate a target block. The block delimiter includes a four-delimiter configured to divide a target block obtained by a recursive halving in both a horizontal direction and a vertical direction to generate four blocks, and a binary/ternary separator configured to divide a target block obtained by a recursive splitting into two or three in horizontal or vertical direction to generate two or three blocks. The binary/ternary delimiter determines the direction in which the target block is divided so that when the target block is divided, the target block obtained by splitting has the largest number of pixels located outside the image boundary.
В соответствии с еще одним аспектом настоящего изобретения предложен способ декодирования изображения. Этот способ представляет собой способ декодирования изображения для декодирования изображения в блоках блоков, полученных путем разделения, способ декодирования изображения включает в себя этап декодирования информации разделения блоков в целевом блоке, и этап разделения блоков рекурсивного разделении изображения на прямоугольники заданного размера на основании информации разделения блока для генерирования целевого блока. Этап разделения блоков включает в себя этап разделения на четыре целевого блока, полученного рекурсивным разделением пополам как в горизонтальном, так и в вертикальном направлениях, для генерирования четырех блоков, и этап двоичного/троичного разделения для разделения целевого блока, полученного рекурсивным разделением на два или три в горизонтальном или вертикальном направлении, чтобы сгенерировать два или три блока. Этап двоичного/тройного разделения запрещает разделение целевого блока в горизонтальном направлении, когда разделение целевого блока в горизонтальном направлении побуждает целевой блок, полученный разделением, находиться за правой стороной границы изображения, и запрещает разделение целевого блока в вертикальном направлении, когда разделение целевого блока в вертикальном направлении побуждает целевой блок, полученный разделением, находиться за нижней стороной границы изображения.In accordance with yet another aspect of the present invention, a method for decoding an image is provided. This method is an image decoding method for decoding an image in blocks of blocks obtained by splitting, the image decoding method includes a step of decoding block split information in a target block, and a step of splitting blocks of recursively dividing an image into rectangles of a predetermined size based on the block split information for target block generation. The block splitting step includes a splitting step into four of a target block obtained by recursively splitting in half in both horizontal and vertical directions to generate four blocks, and a binary/ternary splitting step for splitting the target block obtained by recursively splitting into two or three. in the horizontal or vertical direction to generate two or three blocks. The binary/triple division step prohibits division of the target block in the horizontal direction when division of the target block in the horizontal direction causes the target block obtained by division to be beyond the right side of the image boundary, and inhibits division of the target block in the vertical direction when division of the target block in the vertical direction causes the target block resulting from the split to be behind the bottom side of the image boundary.
Следует отметить, что любая комбинация вышеописанных компонентов или объект, который является результатом замены выражений настоящего изобретения в способе, устройстве, системе, носителе записи, компьютерной программе и т.п., также может рассматриваться в качестве аспекта настоящего изобретения.It should be noted that any combination of the above-described components, or an entity that results from substituting expressions of the present invention in a method, apparatus, system, recording medium, computer program, or the like, may also be considered as an aspect of the present invention.
Настоящее изобретение позволяет разделять блоки, подходящие для кодирования и декодирования изображений и, таким образом, позволяет повысить эффективность кодирования.The present invention makes it possible to separate blocks suitable for encoding and decoding pictures, and thus makes it possible to improve the coding efficiency.
Краткое описание чертежейBrief description of the drawings
Фиг. 1 является блок-схемой устройства для кодирования изображений согласно первому варианту осуществления.Fig. 1 is a block diagram of an image encoding apparatus according to the first embodiment.
Фиг. 2 является блок-схемой устройства для декодирования изображения согласно первому варианту осуществления.Fig. 2 is a block diagram of an apparatus for decoding an image according to the first embodiment.
Фиг. 3 является блок-схемой алгоритма, показывающей разделение на блоки дерева и разделение внутренней части каждого блока дерева.Fig. 3 is a flowchart showing the division into blocks of the tree and the division of the interior of each block of the tree.
Фиг. 4 является схемой, показывающей разделение входного изображения на блоки дерева.Fig. 4 is a diagram showing the division of an input image into tree blocks.
Фиг. 5 представляет собой схему для описания z-сканирования.Fig. 5 is a diagram for describing z-scan.
Фиг. 6 является схемой для описания разделения блока дерева.Fig. 6 is a diagram for describing the division of a tree block.
Фиг. 7 является блок-схемой алгоритма, показывающей процесс, который должен быть выполнен для каждого блока, полученного путем разделения блока дерева на четыре.Fig. 7 is a flowchart showing a process to be performed for each block obtained by dividing the tree block into four.
Фиг. 8 является блок-схемой алгоритма, показывающей процесс, который должен выполняться для каждого блока, полученного путем разделения блока дерева на два или три.Fig. 8 is a flowchart showing a process to be performed for each block obtained by dividing a tree block into two or three.
Фиг. 9 является схемой, показывающей взаимосвязь между блоками дерева и границей изображения.Fig. 9 is a diagram showing a relationship between tree blocks and an image boundary.
Фиг. 10 является схемой, показывающей взаимосвязь между границей изображения и пикселями.Fig. 10 is a diagram showing a relationship between an image border and pixels.
Фиг. 11 является блок-схемой алгоритма, показывающей разделение блока согласно первому варианту осуществления.Fig. 11 is a flowchart showing block division according to the first embodiment.
Фиг. 12 является схемой, показывающей разделение блока согласно первому варианту осуществления.Fig. 12 is a diagram showing block division according to the first embodiment.
Фиг. 13 является схемой, показывающей синтаксис для разделения блока согласно первому варианту осуществления.Fig. 13 is a diagram showing a syntax for block division according to the first embodiment.
Фиг. 14 является блок-схемой алгоритма, показывающей разделение блока согласно второму варианту осуществления.Fig. 14 is a flowchart showing block division according to the second embodiment.
Фиг. 15 является схемой, показывающей разделение блока согласно второму варианту осуществления.Fig. 15 is a diagram showing block division according to the second embodiment.
Фиг. 16 является блок-схемой алгоритма, показывающей разделения блоков согласно третьему варианту осуществления.Fig. 16 is a flowchart showing block divisions according to the third embodiment.
Фиг. 17 является схемой, показывающей разделение блоков согласно третьему варианту осуществления.Fig. 17 is a diagram showing block division according to the third embodiment.
Фиг. 18 является блок-схемой алгоритма, показывающей разделения блоков согласно третьему варианту осуществления.Fig. 18 is a flowchart showing block divisions according to the third embodiment.
Фиг. 19 является схемой, показывающей разделение блоков согласно четвертому варианту осуществления.Fig. 19 is a diagram showing block division according to the fourth embodiment.
Фиг. 20 является блок-схемой алгоритма, показывающей разделения блоков согласно четвертому варианту осуществления.Fig. 20 is a flowchart showing block divisions according to the fourth embodiment.
Фиг. 21 является схемой, показывающей разделение блоков согласно пятому варианту осуществления.Fig. 21 is a diagram showing block division according to the fifth embodiment.
Фиг. 22 является схемой для описания примера структуры аппаратных средств устройства для кодирования и декодирования согласно первому варианту осуществления.Fig. 22 is a diagram for describing an example of a hardware structure of an encoding and decoding device according to the first embodiment.
Осуществление изобретенияImplementation of the invention
Согласно вариантам осуществления настоящего изобретения, предложен способ кодирования и декодирования изображения в блоках блоков, полученных путем разделения.According to embodiments of the present invention, a method for encoding and decoding an image in blocks of blocks obtained by division is provided.
Первый вариант осуществленияFirst Embodiment
Ниже будет дано описание устройства 100 для кодирования изображения и устройства 200 для декодирования изображения согласно первому варианту осуществления настоящего изобретения. Согласно первому варианту осуществления, разделение блоков ограничено в случае разделения блока на два или три.Description will be given below of the image encoding apparatus 100 and the image decoding apparatus 200 according to the first embodiment of the present invention. According to the first embodiment, division of blocks is limited in case of division of a block into two or three.
Фиг. 1 представляет собой блок-схему устройства 100 для кодирования изображений согласно первому варианту осуществления. На фиг. 1 показан только поток данных, относящийся к сигналу изображения, и не показан поток данных, относящийся к дополнительной информации, такой как вектор движения и режим предсказания, кроме сигнала изображения. В устройство 100 для кодирования изображения подается сигнал изображения, по меньшей мере, для одного кадра.Fig. 1 is a block diagram of an image encoding apparatus 100 according to the first embodiment. In FIG. 1 shows only the data stream related to the image signal, and does not show the data stream related to additional information such as motion vector and prediction mode other than the image signal. The image encoding apparatus 100 is supplied with an image signal for at least one frame.
Разделитель 101 на блоки разделяет изображение на целевые блоки кодирования, каждый из которых подвергается процессу кодирования, и подает сигнал изображения в целевых блоках кодирования в генератор 103 остаточного сигнала. Кроме того, разделитель 101 блока подает сигнал изображения целевых блоков кодирования в генератор 102 изображения предсказания для оценки степени совпадения изображения предсказания.The
Разделитель 101 блока рекурсивно разделяет изображение на прямоугольники заданного размера для генерирования целевых блоков кодирования. Разделитель 101 блока включает в себя разделитель на четыре, который разделяет целевой блок, полученный рекурсивным разделением, на четыре для генерирования четырех блоков, и двоичный/троичный разделитель, который разделяет целевой блок, полученный рекурсивным разделением, на два или три для генерирования двух или трех блоков. Подробное описание работы разделителя 101 блока будет дано ниже.The
В генератор 102 изображения предсказания подается сигнал изображения целевого блока кодирования из разделителя 101 блока и сигнал декодированного изображения из памяти 108 декодированных изображений. Генератор 102 изображения предсказания использует поставленные сигналы для выполнения внутреннего предсказания (inter-frame prediction) или внешнего предсказания (inter-frame prediction) на основании режима предсказания и генерирует сигнал изображения предсказания. При внутреннем предсказании из памяти 108 декодированных изображений в генератор 102 изображения предсказания поставляется сигнал изображения кодированного блока, смежного с целевым блоком кодирования в том же изображении (изображение кодирования). Затем генератор 102 изображения предсказания использует это сигнал изображения и сигнал изображения целевого блока кодирования, предоставленные разделителем 101 блока для генерирования сигнала изображения предсказания. При внешнем предсказании, из памяти 108 декодированных изображений в генератор 102 изображения предсказания поставляется сигнал изображения кодированного изображения (опорное изображение), которое предоставлено раньше или позже кодирования изображения во временной последовательности. Затем генератор 102 изображения предсказания использует этот сигнал изображения и целевой блок кодирования, предоставленный разделителем 101 блока, для оценки степени совпадения путем сопоставления блоков или т.п. и получения вектора движения, представляющего величину движения. Генератор 102 изображения предсказания выполняет компенсацию движения на основании этого вектора движения и опорного изображения для генерирования сигнала изображения предсказания. Генератор 102 изображения предсказания подает сигнал изображения предсказания, сгенерированный таким образом, в генератор 103 остаточного сигнала.The
Генератор 103 остаточного сигнала генерирует остаточный сигнал путем вычитания сигнала целевого изображения кодирования и сигнала предсказания, сгенерированного генератором 102 изображения предсказания, и поставляет остаточный сигнал в часть 104 ортогонального преобразования и квантования.The
Часть 104 ортогонального преобразования и квантования ортогонально преобразует и квантует остаточный сигнал, выдаваемый из генератора 103 остаточного сигнала. Часть 104 ортогонального преобразования и квантования предоставляет ортогонально преобразованный и квантованный остаточный сигнал в кодер 105 и часть 106 обратного квантования и обратного ортогонального преобразования.The orthogonal transform and
Кодер 105 генерирует битовый поток, соответствующий ортогонально преобразованному и квантованному остаточному сигналу, предоставленному из части 104 ортогонального преобразования и квантования. Кодер 105 дополнительно генерирует битовый поток, соответствующий дополнительной информации, такой как вектор движения, режим предсказания и информация разделения блоков, предоставляемая каждым компонентом. Затем кодер 105 выводит битовые потоки из устройства 100 для кодирования изображения.The
Часть 106 обратного квантования и обратного ортогонального преобразования выполняет обратное квантование и обратное ортогональное преобразование ортогонально преобразованного и квантованного остаточного сигнала, предоставленного из части 104 ортогонального преобразования и квантования, чтобы получить остаточный сигнал. Часть 106 обратного квантования и обратного ортогонального преобразования предоставляет остаточный сигнал в часть 107 наложения сигнала декодированного изображения.The inverse quantization and inverse
Часть 107 наложения сигнала декодированного изображения накладывает сигнал изображения предсказания, сгенерированный генератором 102 изображения предсказания, и остаточный сигнал, полученный посредством части 106 обратного квантования и обратного ортогонального преобразования, чтобы генерировать декодированное изображение, и сохраняет декодированное изображение в памяти 108 декодированных изображений. Следует отметить, что часть 107 наложения сигналов декодированных изображений перед сохранением декодированного изображения в памяти 108 декодированных изображений может выполнять процесс фильтрации декодированного изображения для уменьшения блочного искажения и т.п., вызванного кодированием.The decoded image
Фиг. 2 является блок-схемой устройства 200 для декодирования изображения согласно первому варианту осуществления. На фиг. 2 показан только поток данных, относящийся к сигналу изображения, и не показан поток данных, относящийся к дополнительной информации, такой как вектор движения и режим предсказания, кроме сигнала изображения. В устройство 200 для декодирования изображения поступает битовый поток.Fig. 2 is a block diagram of an apparatus 200 for decoding an image according to the first embodiment. In FIG. 2 only shows the data stream related to the image signal, and does not show the data stream related to additional information such as motion vector and prediction mode other than the image signal. The image decoding apparatus 200 receives a bit stream.
Декодер 201 декодирует предоставленный битовый поток и поставляет ортогонально преобразованный и квантованный остаточный сигнал в разделитель 202 блоков. Более того, декодер 201 предоставляет дополнительную информацию, такую как вектор движения, режим предсказания и информацию разделения блоков, для каждого компонента для использования дополнительной информации для процесса, связанного с дополнительной информацией.The
Разделитель 202 блока определяет форму целевого блока декодирования на основании информации разделения декодированных блоков и предоставляет ортогонально преобразованный и квантованный остаточный сигнал определенного целевого блока декодирования в часть 203 обратного квантования и обратного ортогонального преобразования.The
Разделитель 202 блока рекурсивно разделяет изображение на прямоугольники заданного размера на основании информации разделения декодированных блоков для генерирования целевого блока декодирования. Разделитель 202 блока включает в себя разделитель на четыре, который разделяет целевой блок, полученный рекурсивным разделением, на четыре для генерирования четырех блоков, и двоичный/троичный разделитель, который разделяет целевой блок, полученный рекурсивным разделением, на два или три блока для генерирования двух или трех блоков. Подробное описание работы разделителя 202 блока будет дано ниже.The
Часть 203 обратного квантования и обратного ортогонального преобразования выполняет обратное квантование и обратное ортогональное преобразование предоставленного ортогонально преобразованного и квантованного остаточного сигнала для получения остаточного сигнала. Остаточный сигнал подается в часть 205 наложения сигналов декодированного изображения.The inverse quantization and inverse orthogonal transform part 203 performs inverse quantization and inverse orthogonal transformation of the provided orthogonally transformed and quantized residual signal to obtain a residual signal. The residual signal is supplied to the
Генератор 204 изображения предсказания генерирует сигнал изображения предсказания из сигнала декодированного изображения, предоставленного из памяти 206 декодированного изображения, и предоставляет сигнал изображения предсказания в часть 205 наложения сигнала декодированного изображения.The
Часть 205 наложения сигнала декодированного изображения накладывает сигнал изображения предсказания, сгенерированный генератором 204 изображения предсказания, и остаточный сигнал, полученный блоком 203 обратного квантования и обратного ортогонального преобразования, чтобы сформировать сигнал декодированного изображения. Кроме того, часть 205 наложения сигнала декодированного изображения сохраняет сигнал декодированного изображения в памяти 206 декодированного изображения. Следует отметить, что часть 205 наложения сигнала декодированного изображения может выполнять процесс фильтрации декодированного изображения для уменьшения искажения блоков и т.п., вызванное кодированием, перед сохранением декодированного изображения в памяти 206 декодированных изображений. Затем часть 205 наложения сигналов декодированного изображения выводит декодированное изображение из устройства 200 для декодирования изображения.The decoded image
Далее со ссылкой на фиг. 3 будет дано описание работы разделителя 101 блока в устройстве 100 для кодирования изображений. Фиг. 3 показывает операцию, в которой разделитель 101 блока разделяет изображение на блоки дерева и разделы или каждый блок дерева на блоки.Next, with reference to FIG. 3, a description will be given of the operation of the
Во-первых, входное изображение разделяется на блоки дерева заданного размера (S1000). Предположим, что блок дерева имеет размер 128 × 128 пикселей. Следует отметить, что блок дерева не ограничен этим размером и может иметь любой размер и любое соотношение сторон, если блок дерева имеет прямоугольную форму. Дополнительно, между устройством для кодирования и устройством для декодирования размер блока дерева может быть заранее определен. Более того, может использоваться конфигурация, в которой устройство для кодирования определяет размер блока дерева и записывает размер в битовом потоке и устройство для декодирования использует размер блока дерева, записанный в битовом потоке. На фиг. 4 показано, как входное изображение разделяется на блоки дерева. Блоки дерева кодируются в порядке растровой развертки слева направо и сверху вниз.First, the input image is divided into tree blocks of a given size (S1000). Let's say the tree block is 128×128 pixels. It should be noted that the tree block is not limited to this size and can be any size and any aspect ratio as long as the tree block is rectangular. Further, between the encoding device and the decoding device, the tree block size may be predetermined. Moreover, a configuration may be used in which the encoding device determines the tree block size and records the size in the bitstream, and the decoding device uses the tree block size recorded in the bitstream. In FIG. 4 shows how the input image is divided into tree blocks. Tree blocks are encoded in raster scan order from left to right and top to bottom.
Внутренняя часть каждого блока дерева дополнительно разделена на прямоугольные блоки. Внутренняя часть блока дерева кодируется в порядке z-сканирования, показанном на фиг. 5. Порядок z-сканирования соответствует порядку: верхний левый, верхний правый, нижний левый и нижний правый. Внутренний блок дерева можно разделить на четыре, два или три.The interior of each tree block is further divided into rectangular blocks. The interior of the tree block is encoded in the z-scan order shown in FIG. 5. The z-scan order follows the order of top left, top right, bottom left, and bottom right. The inner tree block can be divided into four, two or three.
Как показано на фиг. 6A, разделение блока на квадраты выполняется путем разделения блока пополам для генерирования четырех блоков как в горизонтальном направлении, так и в вертикальном направлении.As shown in FIG. 6A, block squaring is performed by splitting the block in half to generate four blocks in both the horizontal direction and the vertical direction.
Разделение блока на два или три выполняется путем разделения блока в горизонтальном или вертикальном направлении. Для разделения блока на два в горизонтальном направлении, блок делится пополам, как показано на фиг. 6B, для формирования двух блоков. Дополнительно, для разделения блока на три в горизонтальном направлении, блок разделяется в соотношении 1:2:1, как показано на фиг. 6C, для формирования трех блоков. С другой стороны, чтобы разделить блок на два в вертикальном направлении, блок делится пополам, как показано на фиг. 6D, для формирования двух блоков. Более того, чтобы разделить блок на три в вертикальном направлении, блок разделяется в соотношении 1:2:1, как показано на фиг. 6E, для формирования трех блоков.Dividing a block into two or three is done by splitting the block in the horizontal or vertical direction. To split a block into two in the horizontal direction, the block is divided in half as shown in FIG. 6B to form two blocks. Additionally, to divide the block into three in the horizontal direction, the block is divided in a ratio of 1:2:1 as shown in FIG. 6C to form three blocks. On the other hand, in order to split a block into two in the vertical direction, the block is divided in half as shown in FIG. 6D to form two blocks. Moreover, in order to divide a block into three in the vertical direction, the block is divided in a ratio of 1:2:1 as shown in FIG. 6E to form three blocks.
Со ссылкой на фиг. 3 будет дано описание функционирования разделителя 101 блока. Прежде всего, определяется, следует ли разделить внутреннюю часть блока дерева пополам как в горизонтальном направлении, так и в вертикальном направлении, чтобы сформировать четыре блока (S1001).With reference to FIG. 3, a description will be given of the operation of the
Для определения оптимального случая из множества условий в настоящее время используется способ, называемый оптимизацией скорости и искажения (R-D optimization), включающий в себя определение, следует ли разделить блок на квадраты. При оптимизации R-D стоимость кодирования вычисляется из объема кодирования и искажения кодирования. Затем вычисляются соответствующие затраты на кодирование при множестве условий, и выбирается случай, когда затраты на кодирование становятся наименьшими. То есть, выполняется определение, следует ли разделить блок на квадраты путем вычисления стоимости кодирования, когда блок разделен на четыре, и стоимости кодирования, когда блок не разделен на четыре, и выбора случая с наименьшей стоимостью кодирования. Для определения оптимального случая из множества условий, может использоваться способ, отличный от R-D оптимизации.To determine the optimal case from a set of conditions, a technique called speed and distortion optimization (R-D optimization) is currently used, which includes determining whether the block should be divided into squares. In R-D optimization, the encoding cost is calculated from the encoding amount and encoding distortion. Then, the corresponding coding costs under a plurality of conditions are calculated, and the case where the coding costs become the smallest is selected. That is, it is determined whether to divide the block into squares by calculating the encoding cost when the block is divided by four, and the encoding cost when the block is not divided by four, and selecting the case with the lowest encoding cost. To determine the optimal case from a set of conditions, a method other than R-D optimization may be used.
При определении, что внутренняя часть блока дерева разделена на четыре (S1001: ДА), внутренняя часть блока дерева разделяется на четыре (S1002). Процесс дополнительного разделения блока на четыре будет описан позже (фиг. 7).When determining that the inside of the tree block is divided into four (S1001: YES), the inside of the tree block is divided into four (S1002). The process of further splitting the block into four will be described later (FIG. 7).
При определении, что внутренняя часть блока дерева не разделена на четыре (S1001: НЕТ), выполняется определение, разделена ли внутренняя часть блока дерева на два или три (S1003).When determining that the inside of the tree block is not divided into four (S1001: NO), a determination is made whether the inside of the tree block is divided into two or three (S1003).
При определении, что внутренняя часть блока дерева разделена на два или три (S1003: ДА), выполняется определение относительно того, является ли направление разделения вертикальным направлением (S1004).When determining that the inside of the tree block is divided into two or three (S1003: YES), a determination is made as to whether the division direction is the vertical direction (S1004).
При определении, что направлением разделения является вертикальным направлением (S1004: ДА), выполняется определение, следует ли разделить внутреннюю часть блока дерева на два (S1005).When determining that the dividing direction is the vertical direction (S1004: YES), a determination is made as to whether to divide the inside of the tree block into two (S1005).
При определении, что внутренняя часть блока дерева разделена на два (S1005: ДА), внутренняя часть блока дерева разделяется на два в вертикальном направлении (S1006). С другой стороны, когда определяется, что внутренняя часть блока дерева разделена на три (S1005: НЕТ), внутренняя часть блока дерева разделяется на три в вертикальном направлении (S1007). Далее будет описан процесс дополнительного разделения блока, разделенного на два или три в вертикальном направлении (фиг. 8).When determining that the inside of the tree block is halved (S1005: YES), the inside of the tree block is halved in the vertical direction (S1006). On the other hand, when it is determined that the inside of the tree block is divided into three (S1005: NO), the inside of the tree block is divided into three in the vertical direction (S1007). Next, a process for further dividing a block divided into two or three in the vertical direction will be described (FIG. 8).
При определении, что направлением разделения является горизонтальное направление (S1004: НЕТ), выполняется определение, следует ли разделить внутреннюю часть блока дерева на два (S1008).When determining that the division direction is the horizontal direction (S1004: NO), a determination is made as to whether to divide the inside of the tree block into two (S1008).
При определении, что внутренняя часть блока дерева разделена на два (S1008: ДА), внутренняя часть блока дерева разделяется на два в горизонтальном направлении (S1009). С другой стороны, когда определяется, что внутренняя часть блока дерева разделена на три (S1008: НЕТ), внутренняя часть блока дерева разделяется на три в горизонтальном направлении (S1010). Ниже будет приведено описание процесса дополнительного разделения блока, разбитого на два или три по горизонтали (фиг. 8).When determining that the inside of the tree block is halved (S1008: YES), the inside of the tree block is halved in the horizontal direction (S1009). On the other hand, when it is determined that the inside of the tree block is divided into three (S1008: NO), the inside of the tree block is divided into three in the horizontal direction (S1010). Below will be a description of the process of additional division of the block, divided into two or three horizontally (Fig. 8).
При определении, что внутренняя часть блока дерева не разделена на два или три (S1003: НЕТ), процесс разделения блока завершается без разделения внутренней части блока дерева (S1011).When determining that the inside of the tree block is not divided into two or three (S1003: NO), the block splitting process ends without dividing the inside of the tree block (S1011).
Далее со ссылкой на блок-схему алгоритма на фиг. 7 будет дано описание процесса, который должен выполняться для каждого из четырех блоков, полученных путем разделения блока дерева пополам как в горизонтальном направлении, так и в вертикальном направлении.Next, with reference to the flowchart of the algorithm in FIG. 7, a description will be given of a process to be performed for each of the four blocks obtained by dividing the tree block in half in both the horizontal direction and the vertical direction.
Прежде всего, определяется, следует ли дополнительно разделить внутреннюю часть блока пополам как в горизонтальном направлении, так и в вертикальном направлении для получения четырех блоков (S1101).First of all, it is determined whether to further divide the inside of the block in half in both the horizontal direction and the vertical direction to obtain four blocks (S1101).
При определении, что внутренняя часть блока дополнительно разделена на четыре (S1101: ДА), внутренняя часть блока дополнительно разделяется на четыре (S1102).When determining that the inside of the block is further divided into four (S1101: YES), the inside of the block is further divided into four (S1102).
При определении, что внутренняя часть блока не разделяется дополнительно на четыре (S1101: НЕТ), выполняется определение, следует ли разделить внутреннюю часть блока на два или три (S1103).When determining that the inside of the block is not further divided into four (S1101: NO), a determination is made whether to divide the inside of the block into two or three (S1103).
При определении, что внутренняя часть блока разделена на два или три (S1103: ДА), выполняется определение относительно того, является ли направление разделения вертикальным направлением (S1104).When determining that the inside of the block is divided into two or three (S1103: YES), a determination is made as to whether the dividing direction is the vertical direction (S1104).
При определении, что направлением разделения является вертикальным направлением (S1104: ДА), выполняется определение, следует ли разделить внутреннюю часть блока на два (S1105).When determining that the dividing direction is the vertical direction (S1104: YES), a determination is made as to whether to divide the inside of the block into two (S1105).
При определении, что внутренняя часть блока разделена на два (S1105: ДА), внутренняя часть блока разделена на два в вертикальном направлении (S1106). С другой стороны, когда определяется, что внутренняя часть блока разделена на три (S1105: НЕТ), внутренняя часть блока разделяется на три в вертикальном направлении (S1107).When determining that the inside of the block is halved (S1105: YES), the inside of the block is halved in the vertical direction (S1106). On the other hand, when it is determined that the inside of the block is divided into three (S1105: NO), the inside of the block is divided into three in the vertical direction (S1107).
При определении, что направлением разделения является горизонтальным направлением (S1104: НЕТ), выполняется определение, следует ли разделить внутреннюю часть блока на два (S1108).When determining that the dividing direction is the horizontal direction (S1104: NO), a determination is made as to whether to divide the inside of the block into two (S1108).
При определении, что внутренняя часть блока разделена на два (S1108: ДА), внутренняя часть блока разделяется на два в горизонтальном направлении (S1109). С другой стороны, когда определяется, что внутренняя часть блока разделена на три (S1108: НЕТ), внутренняя часть блока разделяется на три в горизонтальном направлении (S1110).When determining that the inside of the block is halved (S1108: YES), the inside of the block is halved in the horizontal direction (S1109). On the other hand, when it is determined that the inside of the block is divided into three (S1108: NO), the inside of the block is divided into three in the horizontal direction (S1110).
При определении, что внутренняя часть блока не разделена на два или три (S1103: НЕТ), процесс разделения блока завершается без дополнительного разделения внутренней части блока (S1111).When determining that the inside of the block is not divided into two or three (S1103: NO), the block dividing process is completed without further dividing the inside of the block (S1111).
Процесс, показанный на блок-схеме алгоритма на фиг. 7, рекурсивно выполняется для каждого из четырех блоков, полученных путем разделения. Внутренняя часть блока, разделенного на четыре, кодируется в порядке z-сканирования.The process shown in the flowchart of FIG. 7 is recursively executed for each of the four blocks obtained by splitting. The interior of a block divided by four is encoded in z-scan order.
Далее со ссылкой на блок-схему алгоритма на фиг. 8 будет дано описание процесса, который должен выполняться для каждого из блоков, полученных путем разделения блока дерева на два или три в вертикальном направлении.Next, with reference to the flowchart of the algorithm in FIG. 8, a description will be given of a process to be performed for each of the blocks obtained by dividing a tree block into two or three in the vertical direction.
Когда блок дерева разделен на два или три в вертикальном направлении, определяется, следует ли дополнительно разделить внутреннюю часть каждого из блоков, полученных разделением на два или три (S1201).When the tree block is divided into two or three in the vertical direction, it is determined whether to further divide the inside of each of the blocks obtained by dividing into two or three (S1201).
При определении, что внутренняя часть блока разделена на два или три (S1201: ДА), выполняется определение относительно того, является ли направление разделения вертикальным направлением (S1202).When determining that the inside of the block is divided into two or three (S1201: YES), a determination is made as to whether the dividing direction is the vertical direction (S1202).
При определении, что направлением разделения является вертикальное направление (S1202: ДА), выполняется определение, следует ли разделить внутреннюю часть блока на два (S1203).When determining that the dividing direction is the vertical direction (S1202: YES), a determination is made as to whether to divide the inside of the block into two (S1203).
При определении, что внутренняя часть блока разделена на два (S1203: ДА), внутренняя часть блока разделена на два в вертикальном направлении (S1204). С другой стороны, когда определяется, что внутренняя часть блока разделена на три (S1203: НЕТ), внутренняя часть блока разделяется на три в вертикальном направлении (S1205).When determining that the inside of the block is halved (S1203: YES), the inside of the block is halved in the vertical direction (S1204). On the other hand, when it is determined that the inside of the block is divided into three (S1203: NO), the inside of the block is divided into three in the vertical direction (S1205).
При определении, что направлением разделения является горизонтальное направление (S1202: НЕТ), выполняется определение, следует ли разделить внутреннюю часть блока на два (S1206).When determining that the dividing direction is the horizontal direction (S1202: NO), a determination is made as to whether to divide the inside of the block into two (S1206).
При определении, что внутренняя часть блока разделена на два (S1206: ДА), внутренняя часть блока разделена на два в горизонтальном направлении (S1207). С другой стороны, когда определяется, что внутренняя часть блока разделена на три (S1206: НЕТ), внутренняя часть блока разделяется на три в горизонтальном направлении (S1208).When determining that the inside of the block is halved (S1206: YES), the inside of the block is halved in the horizontal direction (S1207). On the other hand, when it is determined that the inside of the block is divided into three (S1206: NO), the inside of the block is divided into three in the horizontal direction (S1208).
При определении, что внутренняя часть блока не разделена на два или три (S1201: НЕТ), процесс разделения блока завершается без дополнительного разделения внутренней части блока (S1209).When determining that the inside of the block is not divided into two or three (S1201: NO), the block division process is completed without further dividing the inside of the block (S1209).
Процесс, показанный на блок-схеме алгоритма на фиг. 8, рекурсивно выполняется для каждого из блоков, полученных путем разделения на два или три в вертикальном направлении. Внутренняя часть блока, разделенного на два или три, кодируется в порядке слева направо.The process shown in the flowchart of FIG. 8 is recursively executed for each of the blocks obtained by splitting into two or three in the vertical direction. The interior of a block divided into two or three is encoded in order from left to right.
Подобным образом процесс, показанный на блок-схеме алгоритма на фиг. 8, рекурсивно выполняется для каждого из блоков, полученных путем разделения на два или три в горизонтальном направлении. Внутренняя часть блока, разделенного на два или три, кодируется в порядке сверху вниз.Similarly, the process shown in the flowchart of FIG. 8 is recursively executed for each of the blocks obtained by splitting into two or three in the horizontal direction. The interior of a block divided into two or three is encoded in order from top to bottom.
Следует отметить, что был описан процесс дополнительного разделения блоков, полученных путем разделения блока дерева, но родительский блок не обязательно должен быть блоком дерева. Например, когда блок дерева (128 × 128 пикселей) разделен на четыре и результирующие четыре блока (64 × 64 пикселей) дополнительно разделены, описанный выше процесс также применяется к разделению блоков, полученных путем дополнительного разделения. It should be noted that a process for further splitting blocks obtained by splitting a tree block has been described, but the parent block need not be a tree block. For example, when a tree block (128 × 128 pixels) is divided into four and the resulting four blocks (64 × 64 pixels) are further divided, the above process is also applied to the division of blocks obtained by further division.
Для рекурсивного разделения блоков может быть определено количество раз разделения таким образом, чтобы оно было ограничено. Кроме того, количество раз разделения может быть заранее определено между устройством для кодирования и устройством для декодирования. Кроме того, может использоваться конфигурация, в которой устройство для кодирования определяет и записывает количество раз разделения в битовом потоке, и устройство для декодирования использует количество раз разделения, записанное в битовом потоке.For recursive block splitting, the number of split times can be defined so that it is limited. In addition, the number of split times may be predetermined between the encoding device and the decoding device. In addition, a configuration may be used in which the encoder determines and records the number of split times in the bitstream, and the decoder uses the split times recorded in the bitstream.
Ниже будет дано описание разделения блоков в конце кадра. Фиг. 9 показывает взаимосвязь с границей изображения, когда изображение разделяется на блоки дерева. Как показано на фиг. 9, размер изображения не обязательно равен целому кратному размеру блока дерева, так что блок дерева, расположенный в конце кадра, может содержать внутрикадровую и внекадровую часть кадра относительно границы изображения. Блоки 1001, 1002, 1003 дерева показаны как блоки дерева, расположенные в конце кадра. В этом случае, как показано на фиг. 10, часть вне кадра, расположенная за границей изображения, обрабатывается, как и самые удаленные пиксели в кадре. Пиксели 1011, 1012, 1013 показаны как крайние пиксели в кадре.Description will be given below of block division at the end of a frame. Fig. 9 shows the relationship with the border of the image when the image is divided into blocks of the tree. As shown in FIG. 9, the image size is not necessarily equal to an integer multiple of the tree block size, so that a tree block located at the end of a frame may contain an intra-frame and an extra-frame portion of the frame relative to the image boundary. Tree blocks 1001, 1002, 1003 are shown as tree blocks located at the end of a frame. In this case, as shown in FIG. 10, the out-of-frame part located outside the image boundary is treated as the outermost pixels in the frame.
Пиксель 1011 расположен в блоке 1001 дерева и в верхнем правом углу кадра. Пиксель, расположенный на правой стороне пикселя 1011, то есть, пиксель вне кадра, расположенный за границей изображения, обрабатывается как пиксель 1011.
Пиксель 1012 расположен в блоке 1002 дерева и в нижнем левом углу кадра. Пиксель, расположенный на нижней стороне пикселя 1012, то есть, пиксель вне кадра, расположенный за границей изображения, обрабатывается, как пиксель 1012.
Пиксель 1013 расположен в блоке 1003 дерева и в нижнем правом углу кадра. Пиксели, расположенные на правой стороне, нижней стороне и нижней правой стороне пикселя 1013, то есть, пиксели вне кадра, расположенные за границей изображения, обрабатываются так же, как пиксель 1013.
Затем, когда блок разделен на два или три, разделение блоков ограничивается. Это позволяет разделить блок, расположенный в конце кадра, на блоки подходящей формы и, таким образом, повысить эффективность кодирования.Then, when a block is divided into two or three, the division of the blocks is limited. This allows the block located at the end of the frame to be divided into blocks of a suitable shape, and thus improve the coding efficiency.
Ограничения разделения блоков применяются к разделению блока, расположенного в конце кадра, на два или три. То есть, процесс разделения на два или три (с S1004 по S1010), показанный на фиг. 3, заменяется процессом, описанным ниже. Кроме того, процесс разделения на два или три (с S1104 по S1110), показанный на фиг. 7, заменяется процессом, описанным ниже. Кроме того, процесс разделения на два или три (S1202 - S1208), показанный на фиг. 8, заменяется процессом, описанным ниже.Block splitting restrictions apply to splitting a block located at the end of a frame into two or three. That is, the halving or tri-diving process (S1004 to S1010) shown in FIG. 3 is replaced by the process described below. Moreover, the halving or tri-diving process (S1104 to S1110) shown in FIG. 7 is replaced by the process described below. Further, the halving or tri-diving process (S1202 to S1208) shown in FIG. 8 is replaced by the process described below.
Со ссылкой на фиг. 11 будет дано описание ограничений разделения блоков. Во-первых, для всех шаблонов разделения блоков выполняется определение, следует ли ограничивать разделение блоков (S1301). Все шаблоны разделения блоков включают в себя четыре шаблона: шаблон, в котором блок разделен на два в горизонтальном направлении; шаблон, в котором блок разделен на два в вертикальном направлении; шаблон, в котором блок разделен на три по горизонтали; и шаблон, в котором блок разделен на три в вертикальном направлении. Кроме того, определяется, следует ли ограничивать разделение блоков на основании того, разделены ли пиксели, расположенные за границей изображения. Например, когда блок разделен на два в горизонтальном направлении, и пиксели, расположенные за границей изображения, разделены соответствующим образом, разделение блока на два в горизонтальном направлении ограничено.With reference to FIG. 11, a description will be given of block division limitations. First, for all block division patterns, a determination is made as to whether to limit block division (S1301). All block splitting patterns include four patterns: a pattern in which a block is divided into two in a horizontal direction; a pattern in which a block is split in two in the vertical direction; a pattern in which the block is divided into three horizontally; and a pattern in which the block is divided into three in the vertical direction. In addition, it is determined whether or not to limit the division of blocks based on whether pixels located outside the image boundary are divided. For example, when a block is divided into two in the horizontal direction, and pixels located outside the image boundary are divided accordingly, the division of the block into two in the horizontal direction is limited.
Здесь ограничение разделения блока в горизонтальном направлении соответствует запрещению разделения блока в горизонтальном направлении. Кроме того, ограничение разделения блока в вертикальном направлении соответствует запрещению разделения блока в вертикальном направлении. Точно так же ограничение разделения блока на два соответствует запрету разделения блока на два. Дополнительно, ограничение разделения блока на три соответствует запрещению разделения блока на три.Here, limiting block splitting in the horizontal direction corresponds to prohibiting block splitting in the horizontal direction. In addition, limiting block division in the vertical direction corresponds to prohibiting block division in the vertical direction. In the same way, the restriction of splitting a block into two corresponds to the prohibition of splitting a block into two. Additionally, the restriction of splitting a block by three corresponds to prohibiting splitting a block by three.
Затем определяется, следует ли ограничивать разделение блоков для всех шаблонов разделения блоков (S1302). Когда разделение блока ограничено для всех шаблонов (S1302: ДА), блок не разделяется (S1314). С другой стороны, когда разделение блоков не ограничено для всех шаблонов (S1302: НЕТ), выполняется определение, следует ли ограничивать разделение блоков в горизонтальном направлении (S1303).It is then determined whether or not to limit the block division for all block division patterns (S1302). When block division is restricted for all patterns (S1302: YES), the block is not divided (S1314). On the other hand, when the block separation is not limited for all patterns (S1302: NO), a determination is made as to whether to limit the block separation in the horizontal direction (S1303).
Когда разделение блоков в горизонтальном направлении ограничено (S1303: ДА), переходят к следующему процессу (S1306). С другой стороны, когда разделение блоков в горизонтальном направлении не ограничено (S1303: НЕТ), выполняется определение, ограничивать ли разделение блоков в вертикальном направлении (S1304).When the division of blocks in the horizontal direction is limited (S1303: YES), proceed to the next process (S1306). On the other hand, when the block division in the horizontal direction is not limited (S1303: NO), a determination is made whether to restrict the block division in the vertical direction (S1304).
Когда разделение блоков в вертикальном направлении ограничено (S1304: ДА), переходят к следующему процессу (S1310). С другой стороны, когда разделение блока в вертикальном направлении не ограничено (S1304: НЕТ), выполняется определение, следует ли разделить блок в вертикальном направлении (S1305).When the separation of blocks in the vertical direction is limited (S1304: YES), proceed to the next process (S1310). On the other hand, when the division of the block in the vertical direction is not limited (S1304: NO), a determination is made whether to divide the block in the vertical direction (S1305).
Когда определено, что направлением разделения блока является вертикальным направлением (S1305: ДА), выполняется определение, следует ли ограничивать разделение блока на три (S1306). С другой стороны, когда определено, что направлением разделения блока является горизонтальное направление (S1305: НЕТ), переходят к следующему процессу (S1310).When it is determined that the block division direction is the vertical direction (S1305: YES), a determination is made as to whether the block division should be limited to three (S1306). On the other hand, when it is determined that the block dividing direction is the horizontal direction (S1305: NO), proceed to the next process (S1310).
Когда разделение блока на три ограничено (S1306: ДА), блок разделяется на два в вертикальном направлении (S1308). С другой стороны, когда разделение блока на три не ограничено (S1306: НЕТ), выполняется определение, следует ли разделить блок на два (S1307).When the block division into three is limited (S1306: YES), the block is divided into two in the vertical direction (S1308). On the other hand, when dividing a block into three is not limited (S1306: NO), a determination is made whether to divide a block into two (S1307).
Когда определено, что блок разделен на два (S1307: ДА), блок разделен на два в вертикальном направлении (S1308). С другой стороны, когда определяется, что блок разделен на три (S1307: НЕТ), блок делится на три в вертикальном направлении (S1309).When it is determined that the block is divided into two (S1307: YES), the block is divided into two in the vertical direction (S1308). On the other hand, when it is determined that the block is divided into three (S1307: NO), the block is divided into three in the vertical direction (S1309).
Когда разделение в вертикальном направлении ограничено (S1304: ДА) и когда определено, что направлением разделения блока является горизонтальное направление (S1305: НЕТ), выполняется определение, следует ли ограничивать разделение блоков на три (S1310).When the division in the vertical direction is limited (S1304: YES) and when it is determined that the division direction of the block is the horizontal direction (S1305: NO), a determination is made as to whether the division of blocks should be limited to three (S1310).
Когда разделение блока на три ограничено (S1310: ДА), блок разделяется на два в горизонтальном направлении (S1312). С другой стороны, когда разделение блока на три не ограничено (S1310: НЕТ), выполняется определение, следует ли разделить блок на два (S1311).When the division of the block into three is limited (S1310: YES), the block is divided into two in the horizontal direction (S1312). On the other hand, when dividing a block into three is not limited (S1310: NO), a determination is made whether to divide a block into two (S1311).
Когда определено, что блок разделен на два (S1311: ДА), блок разделен на два в горизонтальном направлении (S1312). С другой стороны, когда определяется, что блок разделен на три (S1311: НЕТ), блок делится на три в горизонтальном направлении (S1313).When it is determined that the block is halved (S1311: YES), the block is halved in the horizontal direction (S1312). On the other hand, when it is determined that the block is divided into three (S1311: NO), the block is divided into three in the horizontal direction (S1313).
То есть, когда пиксели, расположенные за границей изображения, разделяются в результате разделения блоков, разделение блоков в соответствующем направлении ограничивается.That is, when pixels located outside the image boundary are separated as a result of block separation, block separation in the corresponding direction is restricted.
Ниже будет дано описание конкретного примера. Блок дерева, расположенный в нижней части кадра, не разделяется на четыре (S1001: НЕТ), но внутренняя часть блока дерева разделяется на два или три (S1003: ДА). На фиг. 12A показано, как блок дерева содержит внутрикадровую и внекадровую части через границу изображения. Здесь определяется, следует ли ограничивать разделение блока для всех шаблонов разделения блока дерева (S1301).A specific example will be described below. The tree block located at the bottom of the frame is not divided into four (S1001: NO), but the inside of the tree block is divided into two or three (S1003: YES). In FIG. 12A shows how the tree block contains in-frame and out-of-frame portions across an image boundary. Here, it is determined whether or not to restrict the block division for all tree block division patterns (S1301).
Фиг. 12A-12D показывают, как блок дерева разделяется в соответствии со всеми шаблонами. Когда блок разделяется на два в вертикальном направлении, как показано на фиг. 12A, пиксели, расположенные за границей изображения, разделяются, так что это разделение блока ограничивается. Аналогично, как показано на фиг. 12B, когда блок разделен на три в вертикальном направлении, пиксели, расположенные за границей изображения, разделяются, так что это разделение блоков ограничивается. С другой стороны, когда блок разделяется на два в горизонтальном направлении, как показано на фиг. 12C, пиксели, расположенные за границей изображения, не разделяются, так что это разделение блока не ограничивается. Аналогичным образом, когда блок разделяется на три в горизонтальном направлении, как показано на фиг. 12D, пиксели, расположенные за границей изображения, не разделяются, так что это разделение блока не ограничивается.Fig. 12A-12D show how the tree block is divided according to all templates. When a block is split in two in the vertical direction, as shown in FIG. 12A, pixels located outside the image boundary are separated so that this block separation is limited. Similarly, as shown in FIG. 12B, when a block is divided into three in the vertical direction, pixels located outside the image boundary are separated so that this separation of the blocks is limited. On the other hand, when a block is halved in the horizontal direction as shown in FIG. 12C, pixels outside the image boundary are not separated, so this block division is not limited. Similarly, when a block is divided into three in the horizontal direction, as shown in FIG. 12D, pixels outside the image boundary are not separated, so this block division is not limited.
Следовательно, разделение блоков не ограничено для всех шаблонов разделения блоков (S1302: НЕТ). Кроме того, разделение блоков в горизонтальном направлении не ограничивается (S1303: НЕТ), и разделение блоков в вертикальном направлении ограничивается (S1304: ДА). Тогда разделение блока на три не ограничивается (S1310: НЕТ). Следовательно, выполняется определение, разделить ли блок на два (S1311). Когда определяется, что блок разделен на два (S1311: ДА), блок разделяется на два в горизонтальном направлении (S1312).Therefore, block division is not limited for all block division patterns (S1302: NO). In addition, block separation in the horizontal direction is not limited (S1303: NO), and block separation in the vertical direction is limited (S1304: YES). Then division of the block into three is not limited (S1310: NO). Therefore, a determination is made whether to divide the block into two (S1311). When it is determined that the block is divided into two (S1311: YES), the block is divided into two in the horizontal direction (S1312).
Такие ограничения разделения блоков позволяют блоку иметь подходящую форму. Это связано с тем, что в блоке, содержащем пиксели вне кадра, значения пикселей части вне кадра являются однородными. Следовательно, изменения значений пикселей внутрикадровой части в блоке малы по сравнению с блоком, не содержащим пикселей вне кадра. Это уменьшает необходимость кодирования небольших изменений пикселей. Следовательно, можно уменьшить объем кодирования и повысить эффективность кодирования путем объединения как можно большего количества пикселей вне кадра в блок.Such block separation restrictions allow the block to have a suitable shape. This is because in a block containing out-of-frame pixels, the pixel values of the out-of-frame portion are uniform. Therefore, changes in pixel values of the intra-frame portion in the block are small compared to a block containing no pixels outside the frame. This reduces the need to encode small pixel changes. Therefore, it is possible to reduce the amount of coding and improve the efficiency of coding by combining as many out-of-frame pixels as possible into a block.
Эти ограничения разделения блоков также применяются к правому концу кадра. Фиг. 12E-12H показывают, как блок дерева разделяется в соответствии со всеми шаблонами. Здесь, когда блок разделяется на два в горизонтальном направлении, как показано на фиг. 12E, пиксели, расположенные за границей изображения, разделяются. Кроме того, когда блок разделяется на три в горизонтальном направлении, как показано на фиг. 12F, пиксели, расположенные за границей изображения, разделяются. Следовательно, такое разделение блоков ограничено. Такие ограничения разделения на блоки позволяют повысить эффективность кодирования.These block separation restrictions also apply to the right end of the frame. Fig. 12E-12H show how the tree block is divided according to all patterns. Here, when a block is halved in the horizontal direction as shown in FIG. 12E, pixels located outside the image boundary are separated. In addition, when the block is divided into three in the horizontal direction, as shown in FIG. 12F, pixels outside the image boundary are separated. Therefore, this division of blocks is limited. Such blocking restrictions improve coding efficiency.
Ниже будет дано описание функционирования разделителя 202 блока устройства 200 для декодирования изображений. Разделитель 202 блока разделяет блок с помощью той же процедуры обработки, что и разделитель 101 блока устройства 100 для кодирования изображений, описанном выше. Разделитель 101 блока выбирает шаблон разделения блоков и выводит выбранную, таким образом, информацию разделения блоков. С другой стороны, разделитель 202 блока разделяет блок на основании информации разделения блоков, полученной посредством декодирования битового потока. Ограничения разделения на блоки являются такими же, как в устройстве 100 для кодирования изображений, описанном выше.Below, a description will be given of the operation of the
На фиг. 13 показан синтаксис (правило синтаксиса битового потока) для разделения блоков согласно первому варианту осуществления. На фиг. 13 QT () представляет синтаксис для процесса разделения блока на четыре, MTT () представляет синтаксис для процесса разделения блока на два или три. Устройство 100 для кодирования изображений выполняет кодирование в соответствии с этим синтаксисом, и устройство 200 для декодирования изображений выполняет декодирование в соответствии с этим синтаксисом.In FIG. 13 shows a syntax (bitstream syntax rule) for block separation according to the first embodiment. In FIG. 13 QT () represents the syntax for the process of dividing a block into four, MTT () represents the syntax for the process of dividing a block into two or three. The image encoding apparatus 100 performs encoding according to this syntax, and the image decoding apparatus 200 performs decoding according to this syntax.
Во-первых, следует ли разделить блок на четыре, представлено посредством QTflag. QTflag установлен на 1 для разрешения разделения на четыре, и QTflag установлен на 0 для запрещения разделения на четыре. Если инициировано разделение на четыре (QTflag = 1), когда каждый из четырех блоков, полученных в результате разделения, может быть дополнительно разделен на четыре (QTvalid = 1), процесс разделения на четыре выполняется рекурсивно. Если разделение на четыре запрещено (QTflag = 0), разделение на два или три отображается с помощью MTTflag. Если инициировано разделение на две или три (MTTflag = 1), то, следует ли выполнять разделение в вертикальном направлении, отображается vertical_flag, и разделение на два представлено посредством BTflag. vertical_flag установлено на 1 для разрешения разделения в вертикальном направлении, и vertical_flag установлен на 0, чтобы разрешить разделение в горизонтальном направлении. Кроме того, для BTflag установлено значение 1 для разрешения разделения на два, и для BTflag установлено значение 0, чтобы разрешить разделение на три. Когда каждый из двух или трех блоков, полученных в результате разделения, может быть дополнительно разделен на два или три (MTTvalid = 1), процесс разделения на два или три выполняется рекурсивно.First, whether the block should be divided into four is represented by QTflag. QTflag is set to 1 to enable split by four, and QTflag is set to 0 to disable split by four. If split by four is initiated (QTflag = 1), when each of the four blocks resulting from the split can be further split by four (QTvalid = 1), the split by four process is performed recursively. If split by four is disabled (QTflag = 0), split by two or three is displayed using the MTTflag. If split-by-two or split-by-two is initiated (MTTflag = 1), then whether split in the vertical direction should be performed is displayed by vertical_flag, and split by two is represented by BTflag. vertical_flag is set to 1 to enable splitting in the vertical direction, and vertical_flag is set to 0 to enable splitting in the horizontal direction. In addition, BTflag is set to 1 to enable split-by-two, and BTflag is set to 0 to enable split-by-three. When each of the two or three blocks resulting from the split can be further split into two or three (MTTvalid = 1), the split into two or three process is performed recursively.
Ниже будет дано описание переменной QTvalid, представляющей, может ли каждый из четырех блоков, полученных путем разделения, быть дополнительно разделен на четыре. QTvalid определяется для каждого из четырех блоков, полученных в результате разделения. Когда четыре блока, полученные путем разделения, не содержат внутрикадровых пикселей, QTvalid устанавливается на 0. В противном случае QTvalid устанавливается на 1.Below, a description will be given of the QTvalid variable representing whether each of the four blocks obtained by splitting can be further split into four. QTvalid is defined for each of the four blocks resulting from the split. When the four split blocks do not contain intra-frame pixels, QTvalid is set to 0. Otherwise, QTvalid is set to 1.
Далее будет дано описание переменной MTTvalid, представляющей, может ли каждый из двух или трех блоков, полученных путем разделения, быть дополнительно разделен на два или три. MTTvalid определяется для каждого из двух или трех блоков, полученных в результате разделения. Когда два или три блока, полученные путем разделения, не содержат внутрикадровых пикселей, MTTvalid устанавливается на 0. В противном случае MTTvalid устанавливается на 1.Next, a description will be given of the MTTvalid variable representing whether each of the two or three blocks obtained by splitting can be further split into two or three. MTTvalid is determined for each of the two or three blocks resulting from the split. When two or three split blocks do not contain intra-frame pixels, MTTvalid is set to 0. Otherwise, MTTvalid is set to 1.
Согласно настоящему варианту осуществления, направление разделения блоков ограничено, что устраняет необходимость в vertical_flag. Следовательно, vertical_flag на фиг. 13 может быть опущено.According to the present embodiment, the block separation direction is limited, which eliminates the need for a vertical_flag. Therefore, the vertical_flag in FIG. 13 may be omitted.
Такие ограничения разделения блоков позволяют разделить блок, расположенный в конце кадра, на блоки подходящей формы и, таким образом, повысить эффективность кодирования. Это дополнительно позволяет разделять блоки, подходящие для кодирования и декодирования изображений.Such block separation restrictions make it possible to divide a block located at the end of a frame into blocks of a suitable shape and thus improve coding efficiency. This further allows separation of blocks suitable for image encoding and decoding.
Второй вариант осуществленияSecond Embodiment
Согласно второму варианту осуществления настоящего изобретения далее приведено описание устройства для кодирования изображения и устройства для декодирования изображения. Согласно второму варианту осуществления разделение блоков ограничивается, когда глубина разделения блоков достигает предельной глубины. Другие конфигурации являются конфигурациями согласно первому варианту осуществления; поэтому описание других конфигураций не приводится.According to the second embodiment of the present invention, a description will now be made of an image encoding apparatus and an image decoding apparatus. According to the second embodiment, the block separation is limited when the block separation depth reaches the limit depth. Other configurations are the configurations according to the first embodiment; therefore, description of other configurations is not given.
Ниже будет дано описание глубины разделения блоков. Согласно первому варианту осуществления был описан процесс разделения блока на два или три, и затем рекурсивного разделения каждого из двух или трех блоков, полученных путем разделения на два или три. Для этого процесса первый процесс разделения на два или три определяется как глубина 0. Кроме того, второй процесс разделения каждого из двух или трех блоков, полученных первым процессом разделения на два или три, определяется как глубина 1, третий процесс разделения каждого из двух или трех блоков, полученных вторым процессом разделения на два или три, определяется как глубина 2, и глубина каждого последующего процесса определяется таким же образом. Более того, глубина для использования при ограничении разделения блоков заранее определена, как предельная глубина.Below, a description will be given of the block separation depth. According to the first embodiment, a process of dividing a block into two or three and then recursively dividing each of the two or three blocks obtained by dividing into two or three has been described. For this process, the first splitting process into two or three is defined as depth 0. In addition, the second splitting process of each of the two or three blocks obtained by the first splitting into two or three blocks is defined as
Ограничения разделения блоков применяются к разделению блока на два или три, расположенного в конце кадра. То есть, процесс разделения на два или три (с S1004 по S1010), показанный на фиг. 3, заменяется процессом, описанным ниже. Кроме того, процесс разделения на два или три (с S1104 по S1110), показанный на фиг. 7, заменяется процессом, описанным ниже. Кроме того, процесс разделения на два или три (S1202 - S1208), показанный на фиг. 8, заменяется процессом, описанным ниже.Block splitting restrictions apply to splitting a block into two or three located at the end of a frame. That is, the halving or tri-diving process (S1004 to S1010) shown in FIG. 3 is replaced by the process described below. Moreover, the halving or tri-diving process (S1104 to S1110) shown in FIG. 7 is replaced by the process described below. Further, the halving or tri-diving process (S1202 to S1208) shown in FIG. 8 is replaced by the process described below.
Со ссылкой на фиг. 14 будет приведено описание ограничений разделения блоков. Во-первых, когда блок разделен на два или три, выполняется определение, достигла ли глубина разделения блоков предельной глубины. (S1401).With reference to FIG. 14, a description will be given of the limitations of block division. First, when a block is divided into two or three, a determination is made whether the separation depth of the blocks has reached the limit depth. (S1401).
Когда глубина не достигла предельной глубины (S1401: НЕТ), определяется не ограничивать разделение блоков (S1402). С другой стороны, когда глубина достигает предельной глубины (S1401: ДА), определяется, следует ли ограничивать разделение блоков для всех шаблонов разделения блоков (S1301). S1301 такой же, как в соответствии с первым вариантом осуществления; следовательно, S1301 не будет описан.When the depth has not reached the limit depth (S1401: NO), it is determined not to limit the block separation (S1402). On the other hand, when the depth reaches the limit depth (S1401: YES), it is determined whether or not to limit the block division for all block division patterns (S1301). S1301 is the same as according to the first embodiment; therefore, S1301 will not be described.
Затем определяется, следует ли ограничивать разделение блоков для всех шаблонов разделения блоков (S1302). S1302 и последующие процессы такие же, как в первом варианте осуществления; поэтому описание S1302 и последующих процессов опущено.It is then determined whether or not to limit the block division for all block division patterns (S1302). S1302 and subsequent processes are the same as in the first embodiment; therefore, the description of S1302 and subsequent processes is omitted.
То есть, когда пиксели, расположенные за границей изображения, разделяются в результате разделения блоков и глубина разделения блоков достигла предельной глубины, разделение блоков ограничивается.That is, when pixels located outside the image boundary are separated as a result of block separation and the block separation depth has reached the limit depth, the block separation is limited.
Ниже будет дано описание конкретного примера. Блок дерева, расположенный в нижней части кадра, не разделяется на четыре части (S1001: НЕТ), но внутренняя часть блока дерева разделяется на два или три (S1003: ДА). Кроме того, предельная глубина устанавливается равной 1. На фиг. 12A показано, как блок дерева содержит внутрикадровую и внекадровую части через границу изображения. Когда этот блок дерева делится на два или три, пиксели, расположенные за границей изображения, разделяются в результате разделения в вертикальном направлении. Следует отметить, что глубина равна 0 и не достигла предельной глубины 1 (S1401: НЕТ). Следовательно, определяется не ограничивать разделение блока (S1402). В частности, разделение блоков ограничено для всех шаблонов (S1302: НЕТ), разделение блоков в горизонтальном направлении не ограничено (S1303: НЕТ), и разделение блоков в вертикальном направлении не ограничено (S1304: НЕТ). Затем определяется, следует ли разделить блок в вертикальном направлении (S1305). Когда определяется разделение блока в вертикальном направлении (S1305: ДА), разделение блока на три не ограничивается (S1306: НЕТ), так что определяется, следует ли разделить блок на два (S1307). Когда определяется разделение блока на два (S1307: ДА), блок разделяется на два в вертикальном направлении (S1308). Вышеупомянутое показано на фиг. 12A.A specific example will be described below. The tree block located at the bottom of the frame is not divided into four parts (S1001: NO), but the inside of the tree block is divided into two or three (S1003: YES). In addition, the limit depth is set to 1. In FIG. 12A shows how the tree block contains in-frame and out-of-frame portions across an image boundary. When this tree block is divided into two or three, the pixels located outside the image boundary are separated as a result of splitting in the vertical direction. Note that the depth is 0 and has not reached the limit depth 1 (S1401: NO). Therefore, it is determined not to restrict block division (S1402). Specifically, block separation is limited for all patterns (S1302: NO), block separation in the horizontal direction is not limited (S1303: NO), and block separation in the vertical direction is not limited (S1304: NO). Then, it is determined whether or not to divide the block in the vertical direction (S1305). When the block division in the vertical direction is determined (S1305: YES), the division of the block into three is not limited (S1306: NO), so it is determined whether to divide the block into two (S1307). When a block halving is determined (S1307: YES), the block is halved in the vertical direction (S1308). The above is shown in Fig. 12A.
Впоследствии из блоков, полученных разделением в вертикальном направлении, левый блок разделяется на два или три. Здесь глубина равна 1 и достигла предельной глубины 1 (S1401: ДА). Следовательно, для всех шаблонов разделения блоков выполняется определение, следует ли ограничивать разделение блоков (S1301).Subsequently, from the blocks obtained by division in the vertical direction, the left block is divided into two or three. Here, the depth is 1 and has reached the limit depth 1 (S1401: YES). Therefore, for all block division patterns, a determination is made as to whether the block division should be limited (S1301).
Фиг. 15A-15D показывают, как блок разделен в соответствии со всеми шаблонами. Когда блок разделяется на два в вертикальном направлении, как показано на фиг. 15A, разделяются пиксели, расположенные за границей изображения, так что это разделение блока ограничивается. Аналогично, как показано на фиг. 15B, когда блок разделяется на три в вертикальном направлении, разделяются пиксели, расположенные за границей изображения, так что это разделение блока ограничивается. С другой стороны, когда блок разделяется на два в горизонтальном направлении, как показано на фиг. 15C, пиксели, расположенные за границей изображения, не разделяются, так что это разделение блока не ограничивается. Аналогичным образом, когда блок разделяется на три в горизонтальном направлении, как показано на фиг. 15D, пиксели, расположенные за границей изображения, не разделяются, так что это разделение блока не ограничивается.Fig. 15A-15D show how the block is divided according to all patterns. When a block is split in two in the vertical direction, as shown in FIG. 15A, pixels located outside the image boundary are separated, so that this block division is limited. Similarly, as shown in FIG. 15B, when a block is divided into three in the vertical direction, pixels located outside the image boundary are divided, so that this division of the block is limited. On the other hand, when a block is halved in the horizontal direction as shown in FIG. 15C, pixels located outside the image boundary are not separated, so this block division is not limited. Similarly, when a block is divided into three in the horizontal direction, as shown in FIG. 15D, pixels outside the image boundary are not separated, so this block division is not limited.
Следовательно, разделение блоков не ограничено для всех шаблонов разделения блоков (S1302: НЕТ). Дополнительно, разделение блоков в горизонтальном направлении не ограничивается (S1303: НЕТ), и разделение блоков в вертикальном направлении ограничивается (S1304: ДА). Тогда разделение блока на три не ограничивается (S1310: НЕТ). Следовательно, выполняется определение, разделить ли блок на два (S1311). Когда определяется, что блок разделен на два (S1311: ДА), блок разделяется на два в горизонтальном направлении (S1312).Therefore, block division is not limited for all block division patterns (S1302: NO). Further, block separation in the horizontal direction is not limited (S1303: NO) and block separation in the vertical direction is limited (S1304: YES). Then division of the block into three is not limited (S1310: NO). Therefore, a determination is made whether to divide the block into two (S1311). When it is determined that the block is divided into two (S1311: YES), the block is divided into two in the horizontal direction (S1312).
Такие ограничения разделения блоков позволяют блоку иметь подходящий размер и форму. Это связано с тем, что в блоке, содержащем пиксели вне кадра, значения пикселей части вне кадра являются однородными. Следовательно, изменения значений пикселей внутрикадровой части в блоке малы по сравнению с блоком, не содержащим пикселей вне кадра. Это снижает необходимость кодирования небольших изменений пикселей. Следовательно, можно уменьшить объем кодирования и повысить эффективность кодирования путем объединения как можно большего количества пикселей вне кадра в блок.Such block separation restrictions allow the block to have an appropriate size and shape. This is because in a block containing out-of-frame pixels, the pixel values of the out-of-frame portion are uniform. Therefore, changes in pixel values of the intra-frame portion in the block are small compared to a block containing no pixels outside the frame. This reduces the need to encode small pixel changes. Therefore, it is possible to reduce the amount of coding and improve the efficiency of coding by combining as many out-of-frame pixels as possible into a block.
Ограничения разделения блоков также применяются к правому концу кадра. Глубина, когда блок дерева разбивается на два или три, равна 0 и не достигла предельной глубины 1, так что разделение блока не ограничивается, и блок разбивается на два или три. Когда блок, полученный путем разделения, дополнительно разделяется, глубина равна 1 и достигает предельной глубины 1, так что выполняется определение, следует ли ограничивать разделение блока. Затем, когда блок разделен на два в горизонтальном направлении или когда блок разделен на три в горизонтальном направлении, пиксели, расположенные за границей изображения, разделяются соответственно. Следовательно, такое разделение блоков ограничено. Такие ограничения на разделение на блоки позволяют повысить эффективность кодирования.Block separation restrictions also apply to the right end of the frame. The depth when a tree block is split into two or three is 0 and has not reached the depth limit of 1, so the block split is not limited and the block is split into two or three. When a block obtained by division is further divided, the depth is 1 and reaches the limit depth of 1, so that a determination is made whether to limit the division of the block. Then, when the block is divided into two in the horizontal direction or when the block is divided into three in the horizontal direction, the pixels outside the image boundary are divided accordingly. Therefore, this division of blocks is limited. Such block division restrictions improve coding efficiency.
Согласно настоящему варианту осуществления определяется глубина разделения блоков для разделения на два или три. Глубина также может быть определена для разделения на четыре. Кроме того, согласно настоящему варианту осуществления, разделение блоков ограничивается на основании глубины разделения блоков. В качестве альтернативы разделение блока ограничено на основании количества или пропорции пикселей, содержащихся в блоке и расположенных за границей изображения. То есть, когда эти значения больше заданных значений, разделение блоков ограничивается. Дополнительно, эти значения могут быть разными для каждой глубины разделения блоков. Это позволяет разделить блок с небольшим количеством или долей пикселей вне кадра и предотвращает разделение блока с большим количеством или долей пикселей вне кадра. Устройством для кодирования в битовом потоке может использоваться конфигурация, в которой записываются значения, относящиеся к ограничениям разделения блока, такие как предельная глубина разделения блока, и количество или пропорция пикселей, содержащихся в блоке и расположенных за границей изображения, и устройство для декодирования использует значения, записанные в битовом потоке.According to the present embodiment, the division depth of the blocks is determined to be divided into two or three. Depth can also be specified to be divided by four. In addition, according to the present embodiment, the block separation is limited based on the block separation depth. Alternatively, the division of the block is limited based on the number or proportion of pixels contained in the block and located outside the image boundary. That is, when these values are greater than the predetermined values, block separation is limited. Additionally, these values may be different for each block separation depth. This allows a block with a small number or fraction of out-of-frame pixels to be split, and prevents a block with a large number or fraction of out-of-frame pixels from being split. The bitstream encoding device may use a configuration in which values relating to block division restrictions such as a limiting block division depth and the number or proportion of pixels contained in the block located outside the picture boundary are recorded, and the decoding device uses the values recorded in the bitstream.
Согласно первому варианту осуществления, разделение блоков ограничено независимо от глубины разделения блоков. С другой стороны, согласно настоящему варианту осуществления, разделение блоков ограничено на основании глубины разделения блоков. Это позволяет разделить блок с малой пропорцией пикселей вне кадра и предотвращает разделение блока с большой пропорцией пикселей вне кадра. Это позволяет разделить блок, расположенный в конце кадра, на блоки подходящего размера и формы и, таким образом, позволяет повысить эффективность кодирования. Это дополнительно позволяет разделять блоки, подходящие для кодирования и декодирования изображений.According to the first embodiment, block separation is limited regardless of the block separation depth. On the other hand, according to the present embodiment, the block separation is limited based on the block separation depth. This allows a block with a small pixel ratio outside the frame to be split and prevents a block with a large pixel ratio out of the frame from being split. This allows a block located at the end of a frame to be divided into blocks of suitable size and shape, and thus improves coding efficiency. This further allows separation of blocks suitable for image encoding and decoding.
Третий вариант осуществленияThird Embodiment
Будет дано описание устройства для кодирования изображения и устройства для декодирования изображения согласно третьему варианту осуществления настоящего изобретения. Согласно третьему варианту осуществления, разделение блоков управляется на основании количества пикселей, расположенных за границей изображения. Другие конфигурации такие же, как в соответствии с первым вариантом осуществления; поэтому описание других конфигураций не приводится.A description will be given of an image encoding apparatus and an image decoding apparatus according to a third embodiment of the present invention. According to the third embodiment, block separation is controlled based on the number of pixels located outside the image boundary. Other configurations are the same as those of the first embodiment; therefore, description of other configurations is not given.
Управление разделением блоков применяется к разделению блока, расположенного в конце кадра, на два или три. То есть, процесс разделения на два или три (с S1004 по S1010), показанный на фиг. 3, заменяется процессом, описанным ниже. Кроме того, процесс разделения на два или три (с S1104 по S1110), показанный на фиг. 7, заменяется процессом, описанным ниже. Кроме того, процесс разделения на два или три (S1202 - S1208), показанный на фиг. 8, заменяется процессом, описанным ниже.The block division control is applied to the division of a block located at the end of a frame into two or three. That is, the halving or tri-diving process (S1004 to S1010) shown in FIG. 3 is replaced by the process described below. Moreover, the halving or tri-diving process (S1104 to S1110) shown in FIG. 7 is replaced by the process described below. Further, the halving or tri-diving process (S1202 to S1208) shown in FIG. 8 is replaced by the process described below.
Со ссылкой на фиг. 16 будет дано описание управления разделением блоков. Сначала для всех шаблонов разделения блоков подсчитывается количество пикселей, расположенных за границей изображения (S1601). Все шаблоны разделения блоков включают в себя четыре шаблона: шаблон, в котором блок разделен на два в горизонтальном направлении; шаблон, в котором блок разделен на два в вертикальном направлении; шаблон, в котором блок разделен на три по горизонтали; и шаблон, в котором блок разделен на три в вертикальном направлении.With reference to FIG. 16, a description will be given of block division control. First, for all block separation patterns, the number of pixels outside the image boundary is counted (S1601). All block splitting patterns include four patterns: a pattern in which a block is divided into two in a horizontal direction; a pattern in which a block is split in two in the vertical direction; a pattern in which the block is divided into three horizontally; and a pattern in which the block is divided into three in the vertical direction.
Затем, как для шаблона, в котором блок разделен на два, так и для шаблона, в котором блок разделен на три, определяется направление разделения, в котором количество пикселей, расположенных за границей изображения, становится наибольшим (S1602).Then, for both the pattern in which the block is divided into two and the pattern in which the block is divided into three, the division direction in which the number of pixels outside the image boundary becomes the largest is determined (S1602).
Затем выполняется определение разделения блока на два (S1603).Then, determination of the division of the block into two is performed (S1603).
Когда определено выполнение разделения на два (S1603: ДА), выполняется разделение на два в направлении разделения, определенном на S1602 (S1604). С другой стороны, когда определяется выполнение разделения на три (S1603: НЕТ), разделение на три выполняется в направлении разделения, определенном на S1602 (S1605).When it is determined to perform split-by-two (S1603: YES), split-by-two is performed in the split-by-two direction determined in S1602 (S1604). On the other hand, when it is determined to perform the division by three (S1603: NO), the division by three is performed in the division direction determined in S1602 (S1605).
То есть, направлением разделения блока управляют так, чтобы побудить блок содержать наибольшее количество пикселей, расположенных за границей изображения.That is, the division direction of the block is controlled to cause the block to contain the largest number of pixels located outside the image boundary.
Ниже будет дано описание конкретного примера. Предположим, что изображение имеет размер 1920 × 1080 пикселей и блок дерева имеет размер 128 × 128 пикселей. Кроме того, блок дерева не разделяется на четыре (S1101: НЕТ) и внутренняя часть блока разделяется на два или три (S1103: ДА). Затем, как показано на фиг. 17A, в нижнем конце кадра 72 пикселя расположены за границей изображения в вертикальном направлении. Здесь, когда блок дерева разделен в соответствии со всеми шаблонами, подсчитывается количество пикселей, расположенных за границей изображения в каждом блоке (S1601).A specific example will be described below. Suppose the image is 1920×1080 pixels and the tree block is 128×128 pixels. In addition, the tree block is not divided into four (S1101: NO) and the inside of the block is divided into two or three (S1103: YES). Then, as shown in FIG. 17A, at the lower end of the frame, 72 pixels are located outside the image boundary in the vertical direction. Here, when a tree block is divided according to all patterns, the number of pixels outside the image boundary in each block is counted (S1601).
Фиг. 17A-17D показывают, как блок дерева разделяется в соответствии со всеми шаблонами. Когда блок разделен на два в вертикальном направлении, как показано на фиг. 17A, левая сторона (500) и правая сторона (501) разделенного блока имеют по 4608 пикселей каждая. С другой стороны, когда блок разделен на два в горизонтальном направлении, как показано на фиг. 17B, верхняя сторона (510) и нижняя сторона (511) разделенного блока имеют 1024 пикселя и 8192 пикселя, соответственно. То есть, наибольшее количество пикселей, расположенных за границей изображения, составляет 8192 пикселя в нижней части, полученной путем разделения блока в горизонтальном направлении. Следовательно, направление разделения, при котором количество пикселей становится наибольшим, является горизонтальным направлением (S1602).Fig. 17A-17D show how the tree block is divided according to all patterns. When a block is divided into two in the vertical direction, as shown in FIG. 17A, the left side (500) and right side (501) of the divided block each have 4608 pixels. On the other hand, when the block is divided into two in the horizontal direction, as shown in FIG. 17B, the top side (510) and bottom side (511) of the divided block have 1024 pixels and 8192 pixels, respectively. That is, the largest number of pixels located outside the image border is 8192 pixels in the lower part obtained by dividing the block in the horizontal direction. Therefore, the separation direction at which the number of pixels becomes the largest is the horizontal direction (S1602).
Аналогичным образом, когда блок разделен на три в вертикальном направлении, как показано на фиг. 17C, левая сторона (520) и правая сторона (522) разделенного блока имеют по 2304 пикселя, и центр (521) имеет 4608 пикселей. С другой стороны, когда блок разделен на три в горизонтальном направлении, как показано на фиг. 17D, верхняя сторона разделенного блока имеет 0 пикселей, центр (531) имеет 5120 пикселей и нижняя сторона (532) имеет 4096 пикселей. То есть, наибольшее количество пикселей, расположенных за границей изображения, составляет 5120 пикселей в центре, полученное путем разделения блока по горизонтали. Следовательно, направление разделения, при котором количество пикселей становится наибольшим, является горизонтальным направлением (S1602).Similarly, when a block is divided into three in the vertical direction, as shown in FIG. 17C, the left side (520) and right side (522) of the divided block each have 2304 pixels, and the center (521) has 4608 pixels. On the other hand, when the block is divided into three in the horizontal direction, as shown in FIG. 17D, the top side of the divided block has 0 pixels, the center (531) has 5120 pixels, and the bottom side (532) has 4096 pixels. That is, the largest number of pixels located outside the image border is 5120 pixels in the center, obtained by dividing the block horizontally. Therefore, the separation direction at which the number of pixels becomes the largest is the horizontal direction (S1602).
Наконец, выполняется определение, следует ли разделить блок на два (S1603). Когда определяется разделить блок на два (S1603: ДА), блок разделен на два в горизонтальном направлении, что является определенным направлением разделения (S1604). С другой стороны, когда определяется разделить блок на три (S1603: НЕТ), блок разделен на три в горизонтальном направлении, который является определенным направлением разделения (S1605).Finally, a determination is made as to whether the block is to be divided into two (S1603). When it is determined to divide the block into two (S1603: YES), the block is divided into two in the horizontal direction, which is the determined division direction (S1604). On the other hand, when it is determined to divide the block into three (S1603: NO), the block is divided into three in the horizontal direction, which is the determined division direction (S1605).
Согласно настоящему варианту осуществления, когда блок разделен на два или три направление разделения блока управляется таким образом, чтобы побудить блок содержать наибольшее количество пикселей, расположенных за пределами границы изображения. Это связано с тем, что в блоке, содержащем внекадровые пиксели, значения пикселей внекадровой части являются равномерными, и фактически отсутствует необходимость кодировать незначительные изменения пикселей. Следовательно, можно уменьшить количество кодирования и повысить эффективность кодирования, приведя как можно больше таких пикселей в блоке.According to the present embodiment, when a block is divided into two or three, the division direction of the block is controlled to cause the block to contain the largest number of pixels outside the image boundary. This is because in a block containing out-of-frame pixels, the pixel values of the out-of-frame portion are uniform, and there is virtually no need to encode minor pixel changes. Therefore, it is possible to reduce the amount of encoding and improve the efficiency of encoding by bringing as many of such pixels in a block as possible.
Дополнительно, могут быть определены не только направление разделения блока, но и количество разделений блока. Как описано выше, наибольшее количество пикселей, расположенных за пределами границы изображения, составляет 8192 пикселя в случае разделения на два и 5120 пикселей в случае разделения на три. То есть, поскольку в блоке, расположенном за границей изображения, количество пикселей на больше при разделении на два, блок разделен на два.Additionally, not only the block division direction but also the number of block divisions can be determined. As described above, the largest number of pixels outside the image boundary is 8192 pixels in the case of division by two and 5120 pixels in the case of division by three. That is, since the block located outside the image boundary has more pixels when divided by two, the block is divided by two.
Это связано с тем, что разделение на три побуждает разделить блок в положении, близко к концу блока по сравнению с разделением на два. Разделение на три имеет тенденцию иметь меньше пикселей, расположенных за пределами границы изображения, чем разделение на два. Следовательно, в конце кадра блок не разделен на три и может быть определено направление, в котором блок разделен на два. Это позволяет сократить процесс, необходимый для разделения блока на три и, таким образом, ускоряет процесс разделения блока.This is because splitting by three encourages splitting the block at a position close to the end of the block compared to splitting by two. A split by three tends to have fewer pixels outside the image boundary than a split by two. Therefore, at the end of the frame, the block is not divided into three, and the direction in which the block is divided into two can be determined. This reduces the process required to split a block into three and thus speeds up the block splitting process.
Управление разделением блока применяется для разделения блока, расположенного в конце кадра на два или три. То есть, процесс разделения на два или три (S1004 до S1010), показанный на фиг. 3, заменен в процессе, описанном ниже. Кроме того, процесс разделения на два или три (S1104 до S1110), показанный на фиг. 7, заменен в процессе, описанном ниже. Кроме того, процесс разбивания на два или три (S1202 до S1208), показанный на фиг. 8, заменен на процесс, описанный ниже.The block split control is used to divide a block located at the end of a frame into two or three. That is, the halving or trifling process (S1004 to S1010) shown in FIG. 3 is replaced in the process described below. In addition, the halving or triple splitting process (S1104 to S1110) shown in FIG. 7 is replaced in the process described below. In addition, the process of splitting into two or three (S1202 to S1208) shown in FIG. 8 is replaced by the process described below.
Со ссылкой на фиг. 18 будет дано описание управления разделением блока. Во-первых, для всех шаблонов разделения блока количество пикселей, расположенных за пределами границы изображения (S1651). Все шаблоны разделения блоков включают в себя два шаблона: шаблон, в котором блок разделен на два в горизонтальном направлении и шаблон, где блок разделен на два в вертикальном направлении.With reference to FIG. 18, a description will be given of the block division control. First, for all block division patterns, the number of pixels outside the image boundary (S1651). All block separation patterns include two patterns: a pattern in which a block is divided into two in the horizontal direction and a pattern in which the block is divided into two in the vertical direction.
Далее определяется (S1652) направление разделения, в котором блок разделяется на два и, с помощью которого число пикселей, расположенных за пределами границы изображения, становится наибольшим. Затем блок разделяется на два в направлении разделения, при этом определяется (S1654).Next, a division direction is determined (S1652) in which a block is divided into two and with which the number of pixels outside the image boundary becomes the largest. Then, the block is divided into two in the dividing direction, whereby (S1654) is determined.
Синтаксис для разделения блоков согласно настоящему варианту осуществления такой же, как показано на фиг. 13, но без vertical_flag. Это связано с тем, что направление разделения блоков управляется согласно настоящему варианту осуществления, что устраняет необходимость в vertical_flag. Кроме того, согласно настоящему варианту осуществления может быть определено количество разделений блоков, и можно предотвратить разделение блока на три. Это устраняет необходимость в BTflag, так что можно использовать конфигурацию без BTflag. Синтаксис для разделения блоков согласно настоящему варианту осуществления может быть таким же, как показано на фиг. 13.The syntax for splitting blocks according to the present embodiment is the same as shown in FIG. 13 but without the vertical_flag. This is because the block division direction is controlled according to the present embodiment, which eliminates the need for a vertical_flag. In addition, according to the present embodiment, the number of block divisions can be determined, and block division into three can be prevented. This eliminates the need for a BTflag so that a configuration without a BTflag can be used. The syntax for splitting blocks according to the present embodiment may be the same as shown in FIG. 13.
В случае 1920 × 1080 пикселей, пиксель отсутствует за границей изображения в правом конце кадра. Однако, когда ширина изображения не равна целому кратному размеру блока дерева, есть пиксели, расположенные за границей изображения, так что разделение блоков управляется таким же образом, как описано выше.In the case of 1920 × 1080 pixels, there is no pixel outside the image boundary at the right end of the frame. However, when the image width is not equal to an integer multiple of the tree block size, there are pixels located outside the image boundary, so the block division is controlled in the same manner as described above.
Согласно настоящему варианту осуществления, направлением разделения блоков управляют на основании количества пикселей, расположенных за границей изображения. Направление разделения блока может управляться на основании пропорции пикселей, расположенных за границей изображения.According to the present embodiment, the block division direction is controlled based on the number of pixels outside the image boundary. The block division direction may be controlled based on the proportion of pixels located outside the image boundary.
Такое управление разделением блоков позволяет разделить блок, расположенный в конце кадра, на блоки подходящего размера и формы и, таким образом, позволяет повысить эффективность кодирования. Это дополнительно позволяет разделять блоки, подходящие для кодирования и декодирования изображений.This block division control allows a block located at the end of a frame to be divided into blocks of a suitable size and shape, and thus improves coding efficiency. This further allows separation of blocks suitable for image encoding and decoding.
Четвертый вариант осуществленияFourth Embodiment
Будет дано описание устройства для кодирования изображения и устройства для декодирования изображения согласно четвертому варианту осуществления настоящего изобретения. Согласно четвертому варианту осуществления будет описан случай, который отличается по границе изображения от описанных выше вариантов осуществления. Другие конфигурации аналогичны с первым вариантом осуществления; поэтому описание других конфигураций не приводится.A description will be given of an image encoding apparatus and an image decoding apparatus according to a fourth embodiment of the present invention. According to the fourth embodiment, a case that differs in an image boundary from the above-described embodiments will be described. Other configurations are similar to the first embodiment; therefore, description of other configurations is not given.
Здесь рассмотрим шаблон, который отличается по границе изображения от фиг. 12. Следует отметить, что даже, когда граница изображения отличается, не рассматривается шаблон, для которого результат определения представляет собой определение ограничения разделение блоков, является таким же, как на фиг. 12. Например, предположим, что граница изображения расположена немного выше, как показано на фиг. 12A. Даже в этом случае разделение блоков ограничено, поскольку пиксели, расположенные за границей изображения, разделены. То есть, для фиг. 12A результат определения, следует ли ограничивать разделение блоков, не изменяется, даже, когда граница изображения изменяется в положении в вертикальном направлении. Это верно для фиг. 12B. Аналогично, для фиг. 12E и фиг. 12F, результат определения, следует ли ограничивать разделение блоков, не изменяется, даже, когда граница изображения изменяется в положении в направлении влево-вправо.Here, consider a pattern that differs in image border from FIG. 12. It should be noted that even when the image boundary is different, no pattern is considered for which the determination result is the block separation limit determination is the same as in FIG. 12. For example, suppose the image border is slightly higher, as shown in FIG. 12A. Even in this case, block separation is limited because pixels outside the image boundary are separated. That is, for FIG. 12A, the result of determining whether or not to limit the block separation does not change even when the image boundary changes in position in the vertical direction. This is true for FIG. 12b. Similarly, for FIG. 12E and FIG. 12F, the result of determining whether or not to limit the block separation does not change even when the image boundary changes in position in the left-right direction.
В итоге, шаблоны, отличающиеся по границам изображения от фиг. 12, являются шаблонами, показанными на фиг. 19A-19D. Граница изображения, показанная на фиг. 19A, расположена выше, чем показано на фиг. 12C. Точно так же граница изображения, показанная на фиг. 19B, расположена выше, чем показано на фиг. 12D. Точно так же границы изображения, показанные на фиг. 19C и фиг. 19D расположены ближе к левому краю, чем показано на фиг. 12G и фиг. 12H.As a result, patterns differing in image boundaries from FIG. 12 are the patterns shown in FIG. 19A-19D. The border of the image shown in Fig. 19A is higher than shown in FIG. 12C. Similarly, the border of the image shown in FIG. 19B is located higher than shown in FIG. 12D. Similarly, the image borders shown in FIG. 19C and FIG. 19D are closer to the left edge than shown in FIG. 12G and FIG. 12H.
Фиг. 19A и фиг. 19B оба показывают разделение в горизонтальном направлении. Однако разделение на два предотвращает разделение пикселей, расположенных за границей изображения, тогда, как разделение на три побуждает разделение пикселей, расположенных за границей изображения. То есть, ограничивается только разделение блока на три.Fig. 19A and FIG. 19B both show separation in the horizontal direction. However, dividing by two prevents the separation of pixels located outside the image boundary, while dividing by three encourages the separation of pixels located outside the image border. That is, only the division of the block into three is limited.
Фиг. 19C и фиг. 19D показывают разделение в вертикальном направлении. Однако разделение на два предотвращает разделение пикселей, расположенных за границей изображения, тогда как разделение на три побуждает разделение пикселей, расположенных за границей изображения. То есть, ограничивается только разделение блока на три.Fig. 19C and FIG. 19D show separation in the vertical direction. However, dividing by two prevents the separation of pixels located outside the image boundary, while dividing by three encourages the separation of pixels located outside the image border. That is, only the division of the block into three is limited.
Конкретно, различается определение, следует ли ограничивать разделение блока, между разделением на два и разделением на три. Это связано с тем, что разделение на три приводит к разделению блока в позиции, близкой к концу блока, по сравнению с разделением на два. Разделение на три имеет тенденцию к разделению пикселей, расположенных за границей изображения, по сравнению с разделением на два. Следовательно, в конце кадра блок не разделяется на три, и может быть принято решение, ограничивать ли направление, в котором блок разделяется на два. Это позволяет сократить процесс, необходимый для разделения блока на три, и, таким образом, ускорить процесс разделения блока.Specifically, the determination of whether to limit the division of a block is different between division by two and division by three. This is because splitting by three results in splitting the block at a position close to the end of the block, compared to splitting by two. Splitting by three tends to separate pixels located outside the image boundary compared to splitting by two. Therefore, at the end of the frame, the block is not divided into three, and it can be decided whether to limit the direction in which the block is divided into two. This makes it possible to shorten the process required to split a block into three, and thus speed up the process of splitting a block.
Ограничения разделения блоков применяются к разделению блока, расположенного в конце кадра, на два или три. То есть, процесс разделения на два или три (с S1004 по S1010), показанный на фиг. 3, заменяется процессом, описанным ниже. Более того, процесс разделения на два или три (с S1104 по S1110), показанный на фиг. 7, заменяется процессом, описанным ниже. Дополнительно, процесс разделения на два или три (S1202 - S1208), показанный на фиг. 8, заменяется процессом, описанным ниже.Block splitting restrictions apply to splitting a block located at the end of a frame into two or three. That is, the halving or tri-diving process (S1004 to S1010) shown in FIG. 3 is replaced by the process described below. Moreover, the process of dividing into two or three (S1104 to S1110) shown in FIG. 7 is replaced by the process described below. Further, the halving or tri-diving process (S1202 to S1208) shown in FIG. 8 is replaced by the process described below.
Со ссылкой на фиг. 20 будет приведено описание ограничений разделения блоков. Фиг. 20 является схемой, аналогичной фиг. 11, но без некоторых процессов. Поэтому назначается тот же номер этапа, что и на фиг. 11, и описание может быть опущено.With reference to FIG. 20, a description will be given of the limitations of block division. Fig. 20 is a diagram similar to FIG. 11, but without some processes. Therefore, the same step number as in FIG. 11 and description may be omitted.
Во-первых, для всех шаблонов разделения блоков выполняется определение, следует ли ограничивать разделение блоков (S1901). Все шаблоны разделения блоков включают в себя два шаблона: шаблон, в котором блок разделен на два в горизонтальном направлении, и шаблон, в котором блок разделен на два в вертикальном направлении. Дополнительно, определяется, следует ли ограничивать разделение блоков на основании того, разделены ли пиксели, расположенные за границей изображения. Например, когда блок разделен на два в горизонтальном направлении, и пиксели, расположенные за границей изображения, разделены соответствующим образом, разделение блока на два в горизонтальном направлении ограничено. S1302 и последующие процессы такие же, как показано на фиг. 11, но без процессов, связанных с разделением на три; поэтому описание S1302 и последующих процессов опущено.First, for all block division patterns, a determination is made as to whether to limit block division (S1901). All block separation patterns include two patterns: a pattern in which a block is divided into two in a horizontal direction, and a pattern in which a block is divided into two in a vertical direction. Further, it is determined whether or not to limit the division of blocks based on whether pixels located outside the image boundary are separated. For example, when a block is divided into two in the horizontal direction, and pixels located outside the image boundary are divided accordingly, the division of the block into two in the horizontal direction is limited. S1302 and subsequent processes are the same as shown in FIG. 11, but without the processes associated with the division into three; therefore, the description of S1302 and subsequent processes is omitted.
Со ссылкой на фиг. 19A приведено описание конкретного примера. В случае фиг. 19A для всех шаблонов разделения блоков выполняется определение, ограничивать ли разделение блоков (S1901). Когда блок разделен на два в горизонтальном направлении, пиксели, расположенные за границей изображения, не разделяются, так что разделение в горизонтальном направлении не ограничивается. Дополнительно, когда блок разделяется на два в вертикальном направлении, пиксели, расположенные за границей изображения, разделяются, так что разделение в вертикальном направлении ограничивается. Следовательно, разделение блоков не ограничено для всех шаблонов разделения блоков (S1302: НЕТ). Разделение блоков в горизонтальном направлении не ограничено (S1303: НЕТ) и разделение блоков в вертикальном направлении ограничено (S1304: ДА). То есть, блок делится на два в горизонтальном направлении (S1312).With reference to FIG. 19A describes a specific example. In the case of FIG. 19A, for all block division patterns, a determination is made whether to restrict block division (S1901). When a block is halved in the horizontal direction, pixels outside the image boundary are not separated, so the division in the horizontal direction is not limited. Further, when a block is split into two in the vertical direction, pixels outside the image boundary are split, so that splitting in the vertical direction is limited. Therefore, block division is not limited for all block division patterns (S1302: NO). Block separation in the horizontal direction is not limited (S1303: NO) and block separation in the vertical direction is limited (S1304: YES). That is, the block is halved in the horizontal direction (S1312).
Рассмотрим шаблон, в котором граница изображения ближе к вершине или налево, чем границы изображения, показанные на фиг. 19. Это приводит к тому, что в любом шаблоне пиксели, расположенные за пределами границы изображения, должны быть разделены. Следовательно, в конце кадра блоки разделены на два, и разделение блока на три всегда ограничено.Consider a pattern in which the image border is closer to the top or to the left than the image borders shown in FIG. 19. This results in the fact that in any pattern, pixels located outside the border of the image must be separated. Therefore, at the end of the frame, the blocks are divided into two, and the division of the block into three is always limited.
Описанный процесс управления разделением блоков обеспечивает разделение блока, расположенного в конце кадра, на блоки подходящего размера и формы и, таким образом, увеличивает эффективность кодирования. Данный процесс дополнительно позволяет разделять блок надлежащим образом для кодирования и декодирования изображения.The described block division control process divides a block located at the end of a frame into blocks of a suitable size and shape, and thus increases coding efficiency. This process further allows the block to be partitioned appropriately for encoding and decoding the image.
Пятый вариант осуществленияFifth Embodiment
Согласно с пятым вариантом осуществления настоящего изобретения приведено описание устройства для кодирования и устройства для декодирования изображения. Согласно пятому варианту осуществления, будут описаны ограничения разделения блока в нижнем правом конце кадра. Другие конфигурации аналогичны конфигурациям согласно первому варианту осуществления; следовательно, описания других конфигураций опущено.According to the fifth embodiment of the present invention, a description will be given of an image encoding apparatus and an image decoding apparatus. According to the fifth embodiment, block division restrictions at the lower right end of a frame will be described. Other configurations are similar to those of the first embodiment; hence, descriptions of other configurations are omitted.
Как показано на фиг. 9, блоки дерева, расположенные в конце кадра, могут находиться в кадре и вне кадра относительно границы изображения. В частности, часть вне кадра, содержащаяся в блоке 1003 дерева, расположенной в нижнем правом конце кадра, имеет тенденцию к увеличению, чем часть вне кадра, содержащаяся в блоке 1001 дерева, расположенного в правом конце кадра или часть вне кадра, содержащаяся в блоке 1002 дерева, расположенной в нижнем конце кадра. Следовательно, ограничения разделения блоков с высокой вероятностью может повысить эффективность кодирования. При разделении блока дерева, разделение блоков, содержащихся в блоке дерева, полученные путем разделения, ограничено.As shown in FIG. 9, tree blocks located at the end of a frame may be in the frame and outside the frame relative to the image boundary. In particular, the out-of-frame part contained in
Со ссылкой на фиг. 20 приведено описание ограничения разделения блока в нижнем правом конце кадра. Блок, расположенный в нижнем правом конце кадра, соответствует блоку 1003 дерева, показанного на фиг. 9.With reference to FIG. 20 describes a block split constraint at the lower right end of a frame. The block located at the lower right end of the frame corresponds to the
Во-первых, для всех шаблонов разделения блока выполнено определение относительно того, ограничивать ли разделение блока (S1901). Все шаблоны разделения блоков включают в себя два шаблона: шаблон, в котором блок разделяется на два в горизонтальном направлении и шаблон, где блок разделяется на два в вертикальном направлении. Дополнительно, определяется, следует ли ограничить разделение блоков на основании, разделяются ли пиксели за пределами границы изображения. Например, когда блок разделен на два в горизонтальном направлении, и пиксели, расположенные за пределами границы изображения, соответствующим образом разделены, разделение блока на два в горизонтальном направлении, ограничено.First, for all block division patterns, a determination is made as to whether to restrict block division (S1901). All block splitting patterns include two patterns: a pattern in which a block is split in two in the horizontal direction and a pattern in which a block is split in two in the vertical direction. Further, it is determined whether or not to limit the separation of blocks based on whether or not pixels are separated outside of the image boundary. For example, when a block is halved in the horizontal direction and pixels outside the image boundary are appropriately divided, the halving of the block in the horizontal direction is limited.
Поскольку блок расположен в нижнем правом конце кадра, пиксели, расположенные за пределами границы изображения, разделены для всех шаблонов разделения блока. Когда разделение блока ограничено для всех шаблонов (S1302: ДА), блок не разделяется (S1314).Because the block is located at the lower right end of the frame, pixels outside the image boundary are split for all block split patterns. When block division is restricted for all patterns (S1302: YES), the block is not divided (S1314).
Со ссылкой на фиг. 21 приведено описание конкретного примера. Фиг. 21A и фиг. 21B показывают все шаблоны разделения блоков для блока дерева, расположенного в нижнем правом конце кадра. Как показано на обоих фиг. 21A и фиг. 21B, пиксели, расположенные за границей изображения, разделяются. Когда разделение блока ограничено для всех шаблонов (S1302: ДА), блок не разделяется (S1314).With reference to FIG. 21 describes a specific example. Fig. 21A and FIG. 21B show all block division patterns for the tree block located at the lower right end of the frame. As shown in both Figs. 21A and FIG. 21B, pixels outside the image boundary are separated. When block division is restricted for all patterns (S1302: YES), the block is not divided (S1314).
Фиг. 21C показывает пример, в котором граница изображения является такой же, как показано на фиг. 21A, и блок дерева разделен на четыре. Предположим, что четыре блока, полученные путем разделения, обозначены блоками 601, 602, 603, 604 в порядке z-сканирования. Описание каждого этапа разделения блока будет дано со ссылкой на фиг. 21C.Fig. 21C shows an example in which the image border is the same as shown in FIG. 21A and the wood block is divided into four. Let us assume that the four blocks obtained by division are indicated by
Фиг. 21C показывает разделение блока, выполненное с помощью следующих этапов. Сначала в процессе, показанном на фиг. 3, изображение разделяется на блоки дерева (S1000), определяется, что внутренняя часть каждого блока дерева разделена на четыре (S1001: ДА) и блок дерева разделяется на четыре (S1002). Процесс, показанный на фиг. 7, выполняется для каждого из блоков 601, 602, 603, 604, полученных путем разделения на четыре.Fig. 21C shows the block division performed by the following steps. First, in the process shown in FIG. 3, the image is divided into tree blocks (S1000), it is determined that the inside of each tree block is divided into four (S1001: YES), and the tree block is divided into four (S1002). The process shown in Fig. 7 is performed for each of the
Как показано на фиг. 7, определяется, что внутренняя часть блока, полученного путем разделения, не разделяется дополнительно на четыре (S1101: НЕТ), и затем определяется, что внутренняя часть блока разделена на два или три (S1103: ДА). Процесс разделения на два или три (с S1104 по S1110), показанный на фиг. 7, заменяется процессом, показанным на фиг. 20.As shown in FIG. 7, it is determined that the inside of the block obtained by dividing is not further divided into four (S1101: NO), and then it is determined that the inside of the block is divided into two or three (S1103: YES). The splitting process into two or three (S1104 to S1110) shown in FIG. 7 is replaced by the process shown in FIG. twenty.
Как показано на фиг. 20, для всех шаблонов разделения блоков выполняется определение, следует ли ограничивать разделение блоков (S1901). Поскольку блок расположен в нижнем правом конце кадра, пиксели, расположенные за границей изображения, разделяются для всех шаблонов разделения блоков. Когда разделение блока ограничено для всех шаблонов (S1302: ДА), блок не разделяется (S1314). Затем завершается разделение на блоки, показанное на фиг. 21C.As shown in FIG. 20, for all block division patterns, a determination is made as to whether the block division should be limited (S1901). Since the block is located at the lower right end of the frame, pixels located outside the image boundary are divided for all block separation patterns. When block division is restricted for all patterns (S1302: YES), the block is not divided (S1314). Then, the block division shown in FIG. 21c.
Фиг. 21D показывает пример, в котором граница изображения отличается от границы изображения, показанной на фиг. 21C, и блок дерева разделен на четыре. Этот пример показывает сложное разделение блоков согласно комбинации вышеописанных вариантов осуществления. Из четырех блоков, полученных путем разделения, блоки 602, 603 дополнительно разделяются на блоки. Будет дано описание каждого этапа разделения блока, который должен быть выполнен после того, как блок дерева разделен на четыре (S1002), на каждом из четырех блоков 601, 602, 603, 604.Fig. 21D shows an example in which the image border is different from the image border shown in FIG. 21C and the tree block is divided into four. This example shows a complex division of blocks according to a combination of the above embodiments. Of the four blocks obtained by division, blocks 602, 603 are further divided into blocks. A description will be given of each block splitting step to be performed after the tree block is divided into four (S1002) at each of the four
Процесс, показанный на фиг. 7, выполняется в блоке 601. На фиг. 7 определяется, что внутренняя часть блока, полученного путем разделения, дополнительно не разделяется на четыре (S1101: НЕТ) и затем определяется, что внутренняя часть блока не делится на два или три (S1103: НЕТ). Процесс разделения блока завершается без дополнительного разделения внутренней части блока 601 (S1111).The process shown in Fig. 7 is executed at
Процесс, показанный на фиг. 7, выполняется в блоке 602. На фиг. 7 определяется, что внутренняя часть блока, полученного путем разделения, дополнительно не разделяется на четыре (S1101: НЕТ) и затем определяется, что внутренняя часть блока разделена на две или три части (S1103: ДА). Процесс разделения на два или три (с S1104 по S1110), показанный на фиг. 7, заменяется процессом, показанным на фиг. 20.The process shown in Fig. 7 is executed at
Как показано на фиг. 20, для всех шаблонов разделения блоков выполняется определение, следует ли ограничивать разделение блоков (S1901). Когда блок разделен на два в горизонтальном направлении, пиксели, расположенные за границей изображения, разделяются, так что разделение в горизонтальном направлении ограничивается. Более того, когда блок разделяется на два в вертикальном направлении, пиксели, расположенные за границей изображения, не разделяются, так что разделение в вертикальном направлении не ограничивается. Следовательно, разделение блоков не ограничено для всех шаблонов разделения блоков (S1302: НЕТ). Затем ограничивается разделение блоков в горизонтальном направлении (S1303: ДА). То есть, блок делится на два в вертикальном направлении (S1308). Затем блок 602 разделяется в вертикальном направлении вдоль раздела 612.As shown in FIG. 20, for all block division patterns, a determination is made as to whether the block division should be limited (S1901). When a block is halved in the horizontal direction, pixels located outside the image boundary are separated, so that the separation in the horizontal direction is limited. Moreover, when a block is split into two in the vertical direction, pixels outside the image boundary are not split, so that splitting in the vertical direction is not limited. Therefore, block division is not limited for all block division patterns (S1302: NO). Then, the division of blocks in the horizontal direction is limited (S1303: YES). That is, the block is halved in the vertical direction (S1308).
В блоке 603 выполняется процесс, показанный на фиг. 7. На фиг. 7 определяется, что внутренняя часть блока, полученного путем разделения, дополнительно не разделяется на четыре (S1101: НЕТ), и затем определяется, что внутренняя часть блока разделена на две или три части (S1103: ДА). Процесс разделения на два или три (с S1104 по S1110), показанный на фиг. 7, заменяется процессом, показанным на фиг. 18.At
Как показано на фиг. 18, для всех шаблонов разделения блоков подсчитывается количество пикселей, расположенных за границей изображения (S1651). Все шаблоны разделения блоков включают в себя два шаблона: шаблон, в котором блок разделен на два в горизонтальном направлении, и шаблон, в котором блок разделен на два в вертикальном направлении. Как показано на фиг. 17A и фиг. 17B, количество пикселей, расположенных за границей изображения, становится наибольшим, когда блок 603 разделяется в горизонтальном направлении. Следовательно, направление разделения, в котором блок разделяется на два и при котором количество пикселей, расположенных за границей изображения, становится наибольшим, определяется как горизонтальное направление (S1652). Затем блок разделяется на два в определенном, таким образом, направлении разделения (S1654). В итоге блок 603 разделяется в горизонтальном направлении вдоль раздела 623.As shown in FIG. 18, for all block separation patterns, the number of pixels outside the image boundary is counted (S1651). All block separation patterns include two patterns: a pattern in which a block is divided into two in a horizontal direction, and a pattern in which a block is divided into two in a vertical direction. As shown in FIG. 17A and FIG. 17B, the number of pixels located outside the image boundary becomes the largest when the
В блоке 604 выполняется процесс, показанный на фиг. 7. Как показано на фиг. 7, определяется, что внутренняя часть блока, полученного путем разделения, дополнительно не разделяется на четыре (S1101: НЕТ) и затем определяется, что внутренняя часть блока разделена на две или три части (S1103: ДА). Процесс разделения на два или три (с S1104 по S1110), показанный на фиг. 7, заменяется процессом, показанным на фиг. 20.At
Как показано на фиг. 20, для всех шаблонов разделения блоков выполняется определение, следует ли ограничивать разделение блоков (S1901). Когда блок разделяется на два в горизонтальном направлении вдоль раздела 624, пиксели, расположенные за границей изображения, разделяются, так что разделение в горизонтальном направлении ограничивается. Дополнительно, когда блок разделяется на два в вертикальном направлении вдоль раздела 614, пиксели, расположенные за границей изображения, разделяются, так что разделение в вертикальном направлении ограничивается. То есть, для всех шаблонов разделения блоков разделяются пиксели, расположенные за границей изображения. Когда разделение блока ограничено для всех шаблонов (S1302: ДА), блок не разделяется (S1314).As shown in FIG. 20, for all block division patterns, a determination is made as to whether the block division should be limited (S1901). When a block is split in two in the horizontal direction along
Такое управление разделением блоков позволяет разделить блок, расположенный в конце кадра, на блоки подходящего размера и формы и, таким образом, позволяет повысить эффективность кодирования. Это дополнительно позволяет разделять блоки, подходящие для кодирования и декодирования изображений.This block division control allows a block located at the end of a frame to be divided into blocks of a suitable size and shape, and thus improves coding efficiency. This further allows separation of blocks suitable for image encoding and decoding.
Согласно всем описанным выше вариантам осуществления, может управляться процесс разделения блоков в положении за границей изображения. Соответственно, с любой заданной желаемой границей, может управляться процесс разделения блоков в положении за границей изображения. Дополнительно, определение более значимых пикселей, чем соседние пиксели, может рассматриваться в качестве любой желаемой границы, предоставляя возможность осуществлять управление разделением блоков, находящихся за границей. Дополнительно, положение за любой желаемой границей не ограничивается нижним концом или правым концом кадра, но может быть верхним концом или левым концом кадра или может быть отличным от таких концов. Это позволяет разделить даже блок, который не расположен в конце кадра, на блоки подходящего размера и формы и, таким образом, позволяет повысить эффективность кодирования.According to all the embodiments described above, the block separation process at a position outside the image boundary can be controlled. Accordingly, with any given desired border, the block separation process at a position outside the image border can be controlled. Additionally, the definition of more significant pixels than neighboring pixels can be considered as any desired border, allowing control over the separation of blocks located outside the border. Additionally, the position beyond any desired boundary is not limited to the bottom end or right end of the frame, but may be the top end or left end of the frame, or may be different from such ends. This makes it possible to divide even a block that is not located at the end of a frame into blocks of a suitable size and shape, and thus can improve coding efficiency.
Все или некоторые из описанных выше вариантов осуществления могут быть объединены.All or some of the embodiments described above may be combined.
Согласно всем описанным выше вариантам осуществления, битовый поток, выводимый устройством для кодирования изображений, имеет определенный формат данных для декодирования в соответствии со способом кодирования, используемым в вариантах осуществления. Битовый поток может быть доставлен через носитель записи, который читается компьютером или тому подобное и на котором записан битовый поток, такой как HDD, SSD, флэш-память или оптический диск, или, альтернативно, может быть доставлен из сервера через проводную или беспроводную сеть. Следовательно, устройство для декодирования изображения, совместимое с этим устройством для кодирования изображения, выполнено с возможностью декодировать битовый поток, имеющий этот конкретный формат данных, независимо от способов доставки.According to all the above-described embodiments, the bitstream output by the image encoding apparatus has a specific data format for decoding according to the encoding method used in the embodiments. The bitstream may be delivered via a recording medium that is readable by a computer or the like and on which the bitstream is recorded, such as an HDD, SSD, flash memory or optical disc, or alternatively may be delivered from a server via a wired or wireless network. Therefore, an image decoding apparatus compatible with this image encoding apparatus is capable of decoding a bitstream having this particular data format regardless of delivery methods.
В случае использования проводной или беспроводной сети для обмена потоком битов между устройством для кодирования изображений и устройством для декодирования изображений, битовый поток может быть преобразован в формат данных, подходящий для формы передачи тракта связи и затем передан. В этом случае устройство передачи, которое преобразует битовый поток, выводимый устройством для кодирования изображений, в кодированные данные, имеющие формат данных, подходящий для формы передачи тракта связи, и передает кодированные данные в сеть, и устройство приема, которое принимает кодированные данные по сети, декодирует кодированные данные в битовый поток и предоставляет битовый поток в устройство для декодирования изображений.In the case of using a wired or wireless network to exchange the bit stream between the image encoding device and the image decoding device, the bit stream can be converted into a data format suitable for the transmission form of the communication path and then transmitted. In this case, a transmission device that converts the bitstream output from the image encoding device into coded data having a data format suitable for the transmission form of the communication path and transmits the coded data to the network, and a reception device that receives the coded data via the network, decodes the encoded data into a bitstream, and provides the bitstream to an image decoding device.
Устройство передачи включает в себя память, которая служит в качестве буфера для хранения битового потока, выводимого устройством для кодирования изображений, процессор пакетов, который пакетирует битовый поток, и передатчик, который передает пакетированные кодированные данные по сети. Устройство приема включает в себя приемник, который принимает пакетированные кодированные данные по сети, память, которая служит буфером для хранения кодированных данных, полученных таким образом, и процессор пакетов, который выполняет пакетную обработку кодированных данных для генерирования битового потока и доставляет битовый поток в устройство для декодирования изображения.The transmission apparatus includes a memory that serves as a buffer for storing a bitstream output from the image encoding apparatus, a packet processor that packetizes the bitstream, and a transmitter that transmits the packetized encoded data over a network. The receiving device includes a receiver that receives the packetized encoded data over a network, a memory that serves as a buffer for storing the encoded data thus obtained, and a packet processor that packetizes the encoded data to generate a bitstream and delivers the bitstream to the device for image decoding.
Когда для обмена битовым потоком между устройством для кодирования изображений и устройством для декодирования изображений используется проводная или беспроводная сеть, в дополнение к устройству передачи и устройству приема используется ретрансляционное устройство, которое принимает кодированные данные, передаваемые устройством передачи, и предоставляет кодированные данные в устройство приема. Ретрансляционное устройство включает в себя приемник, который принимает пакетированные кодированные данные, передаваемые устройством передачи, память, которая служит буфером для хранения кодированных данных, полученных таким образом, и передатчик, который передает пакетированные кодированные данные в сеть. Ретрансляционное устройство может дополнительно включать в себя процессор принимающих пакетов, который выполняет обработку пакетов для пакетированных кодированных данных для генерирования битового потока, носитель записи, который хранит битовый поток, и процессор передаваемых пакетов, который пакетирует битовый поток.When a wired or wireless network is used to exchange the bit stream between the image encoding device and the image decoding device, a relay device is used in addition to the transmission device and the reception device, which receives the encoded data transmitted by the transmission device and provides the encoded data to the reception device. The relay device includes a receiver that receives the packetized coded data transmitted by the transmission device, a memory that serves as a buffer for storing the coded data thus obtained, and a transmitter that transmits the packetized coded data to the network. The relay apparatus may further include a receive packet processor that performs packet processing on the packetized encoded data to generate a bitstream, a recording medium that stores the bitstream, and a transmit packet processor that packetizes the bitstream.
Дополнительно, может быть добавлен как компонент, служащий устройством отображения, такой как дисплей, который отображает изображение, декодированное устройством декодирования изображения. В этом случае дисплей считывает сигнал декодированного изображения, сгенерированный частью 205 наложения сигналов декодированного изображения и сохраненный в памяти 206 декодированного изображения, и отображает на экране сигнал декодированного изображения.Additionally, may be added as a component serving as a display device such as a display that displays an image decoded by the image decoding device. In this case, the display reads the decoded image signal generated by the decoded image
Дополнительно, может быть добавлен компонент, служащий устройством формирования изображения, такой как часть формирования изображения, которая вводит захваченное изображение в устройство для кодирования изображений. В этом случае часть формирования изображения вводит сигнал захваченного изображения в разделитель 101 блока.Additionally, a component serving as an imaging device, such as an imaging part that inputs a captured image to an image encoding device, may be added. In this case, the imaging part inputs the captured image signal into the
Фиг. 22 показывает пример аппаратной структуры устройства для кодирования и декодирования согласно настоящему изобретению. Устройство для кодирования и декодирования включает в себя структуру устройства для кодирования изображений и структуру устройства для декодирования изображений согласно вариантам осуществления настоящего изобретения. Устройство 9000 для кодирования и декодирования включает в себя CPU 9001, IC 9002 кодека, интерфейс 9003 ввода/вывода, память 9004, привод 9005 оптических дисков, сетевой интерфейс 9006 и видеоинтерфейс 9009 и все компоненты подключены через шину 9010.Fig. 22 shows an example of the hardware structure of the device for encoding and decoding according to the present invention. The encoding and decoding apparatus includes an image encoding apparatus structure and an image decoding apparatus structure according to embodiments of the present invention. The encoding and
Кодер 9007 изображения и декодер 9008 изображения обычно реализуются как IC 9002 кодека. Процесс кодирования изображения в устройстве для кодирования изображения согласно вариантам осуществления настоящего изобретения выполняется кодером 9007 изображения и процесс декодирования изображения в устройстве для декодирования изображений согласно вариантам осуществления настоящего изобретения выполняется кодером 9007 изображений. Интерфейс 9003 ввода-вывода реализован, например, через интерфейс USB и подключен к внешней клавиатуре 9104, мыши 9105 или подобного. CPU 9001 управляет устройством 9000 для кодирования и декодирования для выполнения операции, требуемой пользователем, в соответствии с вводом пользовательской операции через интерфейс 9003 ввода-вывода. Операция пользователя, выполняемая с помощью клавиатуры 9104, мыши 9105 или т.п., включает в себя выбор функций кодирования и декодирования, которые должны выполняться, установки качества кодирования, получателей ввода и вывода битового потока, получателей ввода и вывода изображения и т.п.
Когда пользователь желает воспроизвести изображение, записанное на носителе 9100 записи диска, дисковод 9005 оптического диска считывает битовый поток со вставленного носителя записи 9100 диска и передает битовый поток, таким образом считанный, в декодер 9008 изображения кодека IC 9002. по шине 9010. Декодер 9008 изображения выполняет процесс декодирования изображения в устройстве для декодирования изображения согласно вариантам осуществления настоящего изобретения в битовом потоке, введенном таким образом, и передает декодированное изображение на внешний монитор 9103 через видеоинтерфейс 9009. Дополнительно, устройство 9000 для кодирования и декодирования включает в себя сетевой интерфейс 9006 для подключения к внешнему серверу 9106 распространения или мобильному оконечному устройству 9107 по сети 9101. Когда пользователь желает воспроизвести изображение, записанное на сервере 9106 распространения или мобильном оконечном устройстве 9107 вместо изображения, записанного на дисковом носителе 9100 записи, сетевой интерфейс 9006 извлекает битовый поток через сеть 9101 вместо чтения потока битов со вставленного дискового носителя 9100 записи. Дополнительно, когда пользователь желает воспроизвести изображение, записанное в памяти 9004, выполняется процесс декодирования изображения в устройстве для декодирования изображения согласно вариантам осуществления настоящего изобретения на битовом потоке, записанном в памяти 9004.When the user wishes to reproduce an image recorded on the
Когда пользователю требуется операция кодирования изображения, захваченного внешней камерой 9102, и записи изображения, закодированного таким образом, в памяти 9004, видеоинтерфейс 9009 принимает изображение с камеры 9102 и передает изображение в кодер 9007 изображений. кодека 9002 по шине 9010. Кодер 9007 изображения выполняет процесс кодирования изображения в устройстве для кодирования изображения согласно вариантам осуществления настоящего изобретения на входе изображения через видеоинтерфейс 9009 для генерирования битового потока. Затем битовый поток передается в память 9004 по шине 9010. Когда пользователь желает записать битовый поток на дисковый носитель 9100 записи вместо памяти 9004, дисковод 9005 оптических дисков записывает битовый поток на вставленный дисковый носитель 9100 записи.When the user requires an operation to encode an image captured by the
Может быть реализована аппаратная структура, имеющая устройство для кодирования изображения и не имеющая устройства для декодирования изображения, или аппаратная структура, имеющая устройство для декодирования изображения и не имеющая устройства для кодирования изображения. Такая аппаратная структура реализуется, например, путем замены кодека 9002 IC на кодер 9007 изображения или декодер 9008 изображения.A hardware structure having an image encoding device and no image decoding device, or a hardware structure having an image decoding device and no image encoding device can be implemented. Such a hardware structure is implemented, for example, by replacing the
Очевидно, что описанные выше процессы для кодирования и декодирования могут быть реализованы как устройство передачи, запоминающее устройство и устройство приема с использованием аппаратных средств или, альтернативно, могут быть реализованы через встроенное программное обеспечение, сохраненное в постоянном запоминающем устройстве (ROM), флэш-памяти и т.п., или программное обеспечение, установленное на компьютере или т.п. Программа микропрограмм и программное обеспечение могут доставляться через носитель записи, который читается компьютером или т.п. и на котором записаны программа микропрограмм, и программа программного обеспечения могут доставляться с сервера по проводной или беспроводной сети или могут доставляться посредством широковещательной передачи данных, такой как наземное цифровое вещание или спутниковое цифровое вещание.Obviously, the processes described above for encoding and decoding can be implemented as a transmission device, a storage device, and a reception device using hardware, or alternatively, can be implemented via firmware stored in read only memory (ROM), flash memory. or the like, or software installed on a computer, or the like. The firmware program and the software may be delivered via a recording medium that is readable by a computer or the like. and on which the firmware program and the software program are recorded may be delivered from a server via a wired or wireless network, or may be delivered via a data broadcast such as digital terrestrial broadcast or satellite digital broadcast.
Настоящее изобретение было описано на основании вариантов осуществления. Специалистам в данной области техники должно быть понятно, что эти варианты осуществления являются иллюстративными и что возможны различные модификации для комбинации компонентов или процессов, и что такие модификации также находятся в пределах объема настоящего изобретения.The present invention has been described based on embodiments. Those skilled in the art will appreciate that these embodiments are illustrative and that various modifications to the combination of components or processes are possible, and that such modifications are also within the scope of the present invention.
Промышленная применимостьIndustrial Applicability
Настоящее изобретение применимо к способам кодирования и декодирования изображений.The present invention is applicable to image encoding and decoding methods.
Список ссылочных позицийList of reference positions
100-устройство для кодирования изображений, 101-разделитель блока, 102-генератор изображений предсказания, 103-генератор остаточного сигнала, 104-часть ортогонального преобразования и квантования, 105-кодер, 106-часть обратного квантования и обратного ортогонального преобразования, 107-часть наложения сигналов декодированных изображений, 108-память декодированных изображений, 200-устройство для декодирования изображений, 201-декодер, 202-разделитель блока, 203-часть обратного квантования и обратного ортогонального преобразования, 204-генератор изображений предсказания, 205-часть наложения сигналов декодированных изображений, 206-память декодированных изображений.100 image encoding device, 101 block separator, 102 prediction image generator, 103 residual signal generator, 104 orthogonal transform and quantization part, 105 encoder, 106 inverse quantization and inverse orthogonal transform part, 107 overlay part decoded image signals, 108 decoded image memory, 200 image decoding apparatus, 201 decoder, 202 block separator, 203 inverse quantization and inverse orthogonal transform part, 204 prediction image generator, 205 decoded image signal overlay part, 206 - decoded picture memory.
Claims (28)
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018-225467 | 2018-11-30 | ||
JP2018225467 | 2018-11-30 | ||
JP2019-181258 | 2019-10-01 | ||
JP2019181258A JP6835177B2 (en) | 2018-11-30 | 2019-10-01 | Image decoding device, image decoding method and image decoding program |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2021107657A Division RU2769965C1 (en) | 2018-11-30 | 2019-11-29 | Image decoding device and image decoding method |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2022108854A RU2022108854A (en) | 2022-05-06 |
RU2783041C2 true RU2783041C2 (en) | 2022-11-08 |
Family
ID=
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9813735B2 (en) * | 2012-06-27 | 2017-11-07 | Orange | Method for encoding a current block of a first image component relative to a reference block of at least one second image component, encoding device and corresponding computer program |
WO2018070550A1 (en) * | 2016-10-10 | 2018-04-19 | 삼성전자 주식회사 | Method and device for encoding or decoding encoding unit of picture outline |
WO2018110600A1 (en) * | 2016-12-16 | 2018-06-21 | シャープ株式会社 | Image decoding device and image coding device |
RU2667053C1 (en) * | 2011-12-13 | 2018-09-13 | ДжейВиСи КЕНВУД КОРПОРЕЙШН | Moving image encoding device and method, computer readable recording medium with moving image encoding program for moving image encoding |
WO2018177741A1 (en) * | 2017-03-27 | 2018-10-04 | Thomson Licensing | Methods and apparatus for picture encoding and decoding |
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2667053C1 (en) * | 2011-12-13 | 2018-09-13 | ДжейВиСи КЕНВУД КОРПОРЕЙШН | Moving image encoding device and method, computer readable recording medium with moving image encoding program for moving image encoding |
US9813735B2 (en) * | 2012-06-27 | 2017-11-07 | Orange | Method for encoding a current block of a first image component relative to a reference block of at least one second image component, encoding device and corresponding computer program |
WO2018070550A1 (en) * | 2016-10-10 | 2018-04-19 | 삼성전자 주식회사 | Method and device for encoding or decoding encoding unit of picture outline |
WO2018110600A1 (en) * | 2016-12-16 | 2018-06-21 | シャープ株式会社 | Image decoding device and image coding device |
WO2018177741A1 (en) * | 2017-03-27 | 2018-10-04 | Thomson Licensing | Methods and apparatus for picture encoding and decoding |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102740434B1 (en) | Image or video coding based on palette mode | |
KR20230021191A (en) | Image encoding apparatus, image encoding method, image decoding apparatus, and image decoding method | |
KR102736505B1 (en) | Image or video coding based on palette escape coding | |
JP2024177293A (en) | Image decoding device, image decoding method, and image decoding program | |
RU2783041C2 (en) | Image decoding device, image decoding method, image coding device and image coding method | |
AU2020380731B2 (en) | High level syntax signaling method and device for image/video coding | |
KR102787111B1 (en) | Image decoding device, image decoding method, and image decoding program | |
WO2020111240A1 (en) | Image decoding device, image decoding method, and image decoding program | |
JP7208486B2 (en) | Image decoding device, image decoding method and image decoding program | |
CN114982231B (en) | Image decoding method and device therefor | |
CN115004708B (en) | Method and apparatus for signaling image information | |
RU2823775C2 (en) | Method and apparatus for decoding image for deriving weight index information for generating prediction sample | |
RU2794519C2 (en) | Method and device for video encoding/decoding using in-block copying mode and method for bit stream transmission | |
JP2020096346A (en) | Image encoding device, image encoding method, and image encoding program | |
JP2023169361A (en) | Image encoding apparatus, image encoding method, and image encoding program, and image decoding apparatus, image decoding method, and image decoding program | |
JP2020088804A (en) | Image encoding device, image encoding method, and image encoding program | |
JP2021052426A (en) | Image encoding apparatus, image encoding method, image encoding program, image decoding apparatus, image decoding method, and image decoding program |