УСТРОЙСТВО ДЛЯ ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЯ И СПОСОБ ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЯ
IMAGE DECODING DEVICE AND IMAGE DECODING METHOD

Область техники, к которой относится изобретение
Настоящее изобретение относится к технологии кодирования и декодирования изображения в блоках блоков, полученных путем разделения.
Уровень техники
Кодирование и декодирование изображения выполняется на основании блоков, при этом изображение разделяется на блоки, каждый из которых содержит заданное количество пикселей. В настоящем документе разделение на соответствующие блоки блоков позволяет повысить эффективность внутреннего предсказания, внешнего предсказания, ортогонального преобразования, энтропийного кодирования и т.п., тем самым повышая эффективность кодирования.
СПИСОК ССЫЛОК
Патентная литература
Патентный документ 1. JP2015-526008 A
Непатентная литература
Непатентная литература 1. JVET, Универсальное кодирование видео (проект 2), июль 2018 г.
Раскрытие сущности изобретения
Эффективность кодирования снижается в случае, когда блок разделен на блоки неподходящего размера и формы. В частности, в конце кадра блок, содержащий пиксели, расположенные за границей изображения, имеет неподходящий размер и форму, и соответственно снижается эффективность кодирования.
Настоящее изобретение предложено с учетом таких обстоятельств, и поэтому задачей настоящего изобретения является предоставление технологии для повышения эффективности кодирования посредством разделения изображения на блоки для кодирования и декодирования изображений.
Согласно одному аспекту настоящего изобретения для решения вышеописанных задач предложено устройство для декодирования изображения. Это устройство представляет собой устройство для декодирования изображения, выполненное с возможностью декодировать изображения в блоках блоков, полученных путем разделения, устройство для декодирования изображения, включающее в себя декодер (201), выполненный с возможностью декодировать информацию разделения блока в целевом блоке, и разделитель (202) блока, выполненный с возможностью рекурсивно разделять изображение на прямоугольники заданного размера на основании информации разделения блока для генерирования целевого блока. Разделитель блока включает в себя разделитель на четыре, выполненный с возможностью разделять целевой блок, полученный рекурсивным разделением пополам как в горизонтальном направлении, так и в вертикальном направлении, для генерирования четырех блоков, и двоичный/троичный разделитель, выполненный с возможностью разделять целевой блок, полученный рекурсивным разделением на два или три в горизонтальном или вертикальном направлении для генерирования двух или трех блоков. Двоичный/троичный разделитель запрещает разделение целевого блока в горизонтальном направлении, когда разделение целевого блока в горизонтальном направлении побуждает целевой блок, полученный разделением, находиться за правой стороной границы изображения, и запрещает разделение целевого блока в вертикальном направлении, когда разделение целевого блока в вертикальном направлении побуждает целевой блок, полученный разделением, находиться за нижней стороной границы изображения.
Согласно другому аспекту настоящего изобретения предложено устройство для декодирования изображения. Это устройство представляет собой устройство для декодирования изображения, выполненное с возможностью декодировать изображение в блоках блоков, полученных путем разделения, устройство для декодирования изображения, включающее в себя декодер (201), выполненный с возможностью декодировать информацию разделения блоков в целевом блоке, и разделитель блока, выполненный с возможностью рекурсивно разделять изображение на прямоугольники заданного размера на основании информации разделения блока для генерирования целевого блока. Разделитель (202) блока включает в себя разделитель на четыре, выполненный с возможностью разделять целевой блок, полученный рекурсивным разделением пополам как в горизонтальном направлении, так и в вертикальном направлении для генерирования четырех блоков, и двоичный/троичный разделитель, выполненный с возможностью разделять целевой блок, полученный посредством рекурсивного разделения на два или три в горизонтальном или вертикальном направлении для генерирования двух или трех блоков. Когда разделение целевого блока в любом из направлений побуждает целевой блок, полученный разделением, находиться за границей изображения, и глубина разделения блока достигает заданной предельной глубины или количество, или пропорция пикселей, содержащихся в блоке, полученном путем разделения и расположенный за границей изображения, больше заданного значения, двоичный/троичный разделитель запрещает разделение целевого блока по направлению.
В соответствии с еще одним аспектом настоящего изобретения предлагается устройство для декодирования изображений. Это устройство представляет собой устройство для декодирования изображения, выполненное с возможностью декодировать изображения в блоках блоков, полученных путем разделения, устройство для декодирования изображения, включающее в себя декодер (201), выполненный с возможностью декодировать информацию разделения блока в целевом блоке, и разделитель (202) блока, выполненный с возможностью рекурсивно разделять изображение на прямоугольники заданного размера на основании информации разделения блока для генерирования целевого блока. Разделитель блока включает в себя разделитель на четыре, выполненный с возможностью разделять целевой блок, полученный рекурсивным разделением пополам как в горизонтальном направлении, так и в вертикальном направлении для генерирования четырех блоков, и двоичный/троичный разделитель, выполненный с возможностью разделять целевой блок, полученный рекурсивным разделением на два или три в горизонтальном или вертикальном направлении для генерирования двух или трех блоков. Двоичный/троичный разделитель определяет направление, в котором целевой блок разделяется, чтобы при разделении целевого блока целевой блок, полученный путем разделения, содержал наибольшее количество пикселей, расположенных за границей изображения.
В соответствии с еще одним аспектом настоящего изобретения предложен способ декодирования изображения. Этот способ представляет собой способ декодирования изображения для декодирования изображения в блоках блоков, полученных путем разделения, способ декодирования изображения включает в себя этап декодирования информации разделения блоков в целевом блоке, и этап разделения блоков рекурсивного разделении изображения на прямоугольники заданного размера на основании информации разделения блока для генерирования целевого блока. Этап разделения блоков включает в себя этап разделения на четыре целевого блока, полученного рекурсивным разделением пополам как в горизонтальном, так и в вертикальном направлениях, для генерирования четырех блоков, и этап двоичного/троичного разделения для разделения целевого блока, полученного рекурсивным разделением на два или три в горизонтальном или вертикальном направлении, чтобы сгенерировать два или три блока. Этап двоичного/тройного разделения запрещает разделение целевого блока в горизонтальном направлении, когда разделение целевого блока в горизонтальном направлении побуждает целевой блок, полученный разделением, находиться за правой стороной границы изображения, и запрещает разделение целевого блока в вертикальном направлении, когда разделение целевого блока в вертикальном направлении побуждает целевой блок, полученный разделением, находиться за нижней стороной границы изображения.
Следует отметить, что любая комбинация вышеописанных компонентов или объект, который является результатом замены выражений настоящего изобретения в способе, устройстве, системе, носителе записи, компьютерной программе и т.п., также может рассматриваться в качестве аспекта настоящего изобретения.
Настоящее изобретение позволяет разделять блоки, подходящие для кодирования и декодирования изображений и, таким образом, позволяет повысить эффективность кодирования.
Краткое описание чертежей
Фиг.1 является блок-схемой устройства для кодирования изображений согласно первому варианту осуществления.
Фиг.2 является блок-схемой устройства для декодирования изображения согласно первому варианту осуществления.
Фиг.3 является блок-схемой алгоритма, показывающей разделение на блоки дерева и разделение внутренней части каждого блока дерева.
Фиг.4 является схемой, показывающей разделение входного изображения на блоки дерева.
Фиг.5 представляет собой схему для описания z-сканирования.
Фиг.6 является схемой для описания разделения блока дерева.
Фиг.7 является блок-схемой алгоритма, показывающей процесс, который должен быть выполнен для каждого блока, полученного путем разделения блока дерева на четыре.
Фиг.8 является блок-схемой алгоритма, показывающей процесс, который должен выполняться для каждого блока, полученного путем разделения блока дерева на два или три.
Фиг.9 является схемой, показывающей взаимосвязь между блоками дерева и границей изображения.
Фиг.10 является схемой, показывающей взаимосвязь между границей изображения и пикселями.
Фиг.11 является блок-схемой алгоритма, показывающей разделение блока согласно первому варианту осуществления.
Фиг.12 является схемой, показывающей разделение блока согласно первому варианту осуществления.
Фиг.13 является схемой, показывающей синтаксис для разделения блока согласно первому варианту осуществления.
Фиг.14 является блок-схемой алгоритма, показывающей разделение блока согласно второму варианту осуществления.
Фиг.15 является схемой, показывающей разделение блока согласно второму варианту осуществления.
Фиг.16 является блок-схемой алгоритма, показывающей разделения блоков согласно третьему варианту осуществления.
Фиг.17 является схемой, показывающей разделение блоков согласно третьему варианту осуществления.
Фиг.18 является блок-схемой алгоритма, показывающей разделения блоков согласно третьему варианту осуществления.
Фиг.19 является схемой, показывающей разделение блоков согласно четвертому варианту осуществления.
Фиг.20 является блок-схемой алгоритма, показывающей разделения блоков согласно четвертому варианту осуществления.
Фиг.21 является схемой, показывающей разделение блоков согласно пятому варианту осуществления.
Фиг.22 является схемой для описания примера структуры аппаратных средств устройства для кодирования и декодирования согласно первому варианту осуществления.
Осуществление изобретения
Согласно вариантам осуществления настоящего изобретения, предложен способ кодирования и декодирования изображения в блоках блоков, полученных путем разделения.
Первый вариант осуществления
Ниже будет дано описание устройства 100 для кодирования изображения и устройства 200 для декодирования изображения согласно первому варианту осуществления настоящего изобретения. Согласно первому варианту осуществления, разделение блоков ограничено в случае разделения блока на два или три.
Фиг.1 представляет собой блок-схему устройства 100 для кодирования изображений согласно первому варианту осуществления. На фиг.1 показан только поток данных, относящийся к сигналу изображения, и не показан поток данных, относящийся к дополнительной информации, такой как вектор движения и режим предсказания, кроме сигнала изображения. В устройство 100 для кодирования изображения подается сигнал изображения, по меньшей мере, для одного кадра.
Разделитель 101 на блоки разделяет изображение на целевые блоки кодирования, каждый из которых подвергается процессу кодирования, и подает сигнал изображения в целевых блоках кодирования в генератор 103 остаточного сигнала. Кроме того, разделитель 101 блока подает сигнал изображения целевых блоков кодирования в генератор 102 изображения предсказания для оценки степени совпадения изображения предсказания.
Разделитель 101 блока рекурсивно разделяет изображение на прямоугольники заданного размера для генерирования целевых блоков кодирования. Разделитель 101 блока включает в себя разделитель на четыре, который разделяет целевой блок, полученный рекурсивным разделением, на четыре для генерирования четырех блоков, и двоичный/троичный разделитель, который разделяет целевой блок, полученный рекурсивным разделением, на два или три для генерирования двух или трех блоков. Подробное описание работы разделителя 101 блока будет дано ниже.
В генератор 102 изображения предсказания подается сигнал изображения целевого блока кодирования из разделителя 101 блока и сигнал декодированного изображения из памяти 108 декодированных изображений. Генератор 102 изображения предсказания использует поставленные сигналы для выполнения внутреннего предсказания (inter-frame prediction) или внешнего предсказания (inter-frame prediction) на основании режима предсказания и генерирует сигнал изображения предсказания. При внутреннем предсказании из памяти 108 декодированных изображений в генератор 102 изображения предсказания поставляется сигнал изображения кодированного блока, смежного с целевым блоком кодирования в том же изображении (изображение кодирования). Затем генератор 102 изображения предсказания использует это сигнал изображения и сигнал изображения целевого блока кодирования, предоставленные разделителем 101 блока для генерирования сигнала изображения предсказания. При внешнем предсказании, из памяти 108 декодированных изображений в генератор 102 изображения предсказания поставляется сигнал изображения кодированного изображения (опорное изображение), которое предоставлено раньше или позже кодирования изображения во временной последовательности. Затем генератор 102 изображения предсказания использует этот сигнал изображения и целевой блок кодирования, предоставленный разделителем 101 блока, для оценки степени совпадения путем сопоставления блоков или т.п. и получения вектора движения, представляющего величину движения. Генератор 102 изображения предсказания выполняет компенсацию движения на основании этого вектора движения и опорного изображения для генерирования сигнала изображения предсказания. Генератор 102 изображения предсказания подает сигнал изображения предсказания, сгенерированный таким образом, в генератор 103 остаточного сигнала.
Генератор 103 остаточного сигнала генерирует остаточный сигнал путем вычитания сигнала целевого изображения кодирования и сигнала предсказания, сгенерированного генератором 102 изображения предсказания, и поставляет остаточный сигнал в часть 104 ортогонального преобразования и квантования.
Часть 104 ортогонального преобразования и квантования ортогонально преобразует и квантует остаточный сигнал, выдаваемый из генератора 103 остаточного сигнала. Часть 104 ортогонального преобразования и квантования предоставляет ортогонально преобразованный и квантованный остаточный сигнал в кодер 105 и часть 106 обратного квантования и обратного ортогонального преобразования.
Кодер 105 генерирует битовый поток, соответствующий ортогонально преобразованному и квантованному остаточному сигналу, предоставленному из части 104 ортогонального преобразования и квантования. Кодер 105 дополнительно генерирует битовый поток, соответствующий дополнительной информации, такой как вектор движения, режим предсказания и информация разделения блоков, предоставляемая каждым компонентом. Затем кодер 105 выводит битовые потоки из устройства 100 для кодирования изображения.
Часть 106 обратного квантования и обратного ортогонального преобразования выполняет обратное квантование и обратное ортогональное преобразование ортогонально преобразованного и квантованного остаточного сигнала, предоставленного из части 104 ортогонального преобразования и квантования, чтобы получить остаточный сигнал. Часть 106 обратного квантования и обратного ортогонального преобразования предоставляет остаточный сигнал в часть 107 наложения сигнала декодированного изображения.
Часть 107 наложения сигнала декодированного изображения накладывает сигнал изображения предсказания, сгенерированный генератором 102 изображения предсказания, и остаточный сигнал, полученный посредством части 106 обратного квантования и обратного ортогонального преобразования, чтобы генерировать декодированное изображение, и сохраняет декодированное изображение в памяти 108 декодированных изображений. Следует отметить, что часть 107 наложения сигналов декодированных изображений перед сохранением декодированного изображения в памяти 108 декодированных изображений может выполнять процесс фильтрации декодированного изображения для уменьшения блочного искажения и т.п., вызванного кодированием.
Фиг.2 является блок-схемой устройства 200 для декодирования изображения согласно первому варианту осуществления. На фиг.2 показан только поток данных, относящийся к сигналу изображения, и не показан поток данных, относящийся к дополнительной информации, такой как вектор движения и режим предсказания, кроме сигнала изображения. В устройство 200 для декодирования изображения поступает битовый поток.
Декодер 201 декодирует предоставленный битовый поток и поставляет ортогонально преобразованный и квантованный остаточный сигнал в разделитель 202 блоков. Более того, декодер 201 предоставляет дополнительную информацию, такую как вектор движения, режим предсказания и информацию разделения блоков, для каждого компонента для использования дополнительной информации для процесса, связанного с дополнительной информацией.
Разделитель 202 блока определяет форму целевого блока декодирования на основании информации разделения декодированных блоков и предоставляет ортогонально преобразованный и квантованный остаточный сигнал определенного целевого блока декодирования в часть 203 обратного квантования и обратного ортогонального преобразования.
Разделитель 202 блока рекурсивно разделяет изображение на прямоугольники заданного размера на основании информации разделения декодированных блоков для генерирования целевого блока декодирования. Разделитель 202 блока включает в себя разделитель на четыре, который разделяет целевой блок, полученный рекурсивным разделением, на четыре для генерирования четырех блоков, и двоичный/троичный разделитель, который разделяет целевой блок, полученный рекурсивным разделением, на два или три блока для генерирования двух или трех блоков. Подробное описание работы разделителя 202 блока будет дано ниже.
Часть 203 обратного квантования и обратного ортогонального преобразования выполняет обратное квантование и обратное ортогональное преобразование предоставленного ортогонально преобразованного и квантованного остаточного сигнала для получения остаточного сигнала. Остаточный сигнал подается в часть 205 наложения сигналов декодированного изображения.
Генератор 204 изображения предсказания генерирует сигнал изображения предсказания из сигнала декодированного изображения, предоставленного из памяти 206 декодированного изображения, и предоставляет сигнал изображения предсказания в часть 205 наложения сигнала декодированного изображения.
Часть 205 наложения сигнала декодированного изображения накладывает сигнал изображения предсказания, сгенерированный генератором 204 изображения предсказания, и остаточный сигнал, полученный блоком 203 обратного квантования и обратного ортогонального преобразования, чтобы сформировать сигнал декодированного изображения. Кроме того, часть 205 наложения сигнала декодированного изображения сохраняет сигнал декодированного изображения в памяти 206 декодированного изображения. Следует отметить, что часть 205 наложения сигнала декодированного изображения может выполнять процесс фильтрации декодированного изображения для уменьшения искажения блоков и т.п., вызванное кодированием, перед сохранением декодированного изображения в памяти 206 декодированных изображений. Затем часть 205 наложения сигналов декодированного изображения выводит декодированное изображение из устройства 200 для декодирования изображения.
Далее со ссылкой на фиг.3 будет дано описание работы разделителя 101 блока в устройстве 100 для кодирования изображений. Фиг.3 показывает операцию, в которой разделитель 101 блока разделяет изображение на блоки дерева и разделы или каждый блок дерева на блоки.
Во-первых, входное изображение разделяется на блоки дерева заданного размера (S1000). Предположим, что блок дерева имеет размер 128 × 128 пикселей. Следует отметить, что блок дерева не ограничен этим размером и может иметь любой размер и любое соотношение сторон, если блок дерева имеет прямоугольную форму. Дополнительно, между устройством для кодирования и устройством для декодирования размер блока дерева может быть заранее определен. Более того, может использоваться конфигурация, в которой устройство для кодирования определяет размер блока дерева и записывает размер в битовом потоке и устройство для декодирования использует размер блока дерева, записанный в битовом потоке. На фиг.4 показано, как входное изображение разделяется на блоки дерева. Блоки дерева кодируются в порядке растровой развертки слева направо и сверху вниз.
Внутренняя часть каждого блока дерева дополнительно разделена на прямоугольные блоки. Внутренняя часть блока дерева кодируется в порядке z-сканирования, показанном на фиг.5. Порядок z-сканирования соответствует порядку: верхний левый, верхний правый, нижний левый и нижний правый. Внутренний блок дерева можно разделить на четыре, два или три.
Как показано на фиг.6A, разделение блока на квадраты выполняется путем разделения блока пополам для генерирования четырех блоков как в горизонтальном направлении, так и в вертикальном направлении.
Разделение блока на два или три выполняется путем разделения блока в горизонтальном или вертикальном направлении. Для разделения блока на два в горизонтальном направлении, блок делится пополам, как показано на фиг.6B, для формирования двух блоков. Дополнительно, для разделения блока на три в горизонтальном направлении, блок разделяется в соотношении 1:2:1, как показано на фиг. 6C, для формирования трех блоков. С другой стороны, чтобы разделить блок на два в вертикальном направлении, блок делится пополам, как показано на фиг.6D, для формирования двух блоков. Более того, чтобы разделить блок на три в вертикальном направлении, блок разделяется в соотношении 1:2:1, как показано на фиг.6E, для формирования трех блоков.
Со ссылкой на фиг.3 будет дано описание функционирования разделителя 101 блока. Прежде всего, определяется, следует ли разделить внутреннюю часть блока дерева пополам как в горизонтальном направлении, так и в вертикальном направлении, чтобы сформировать четыре блока (S1001).
Для определения оптимального случая из множества условий в настоящее время используется способ, называемый оптимизацией скорости и искажения (R-D optimization), включающий в себя определение, следует ли разделить блок на квадраты. При оптимизации R-D стоимость кодирования вычисляется из объема кодирования и искажения кодирования. Затем вычисляются соответствующие затраты на кодирование при множестве условий, и выбирается случай, когда затраты на кодирование становятся наименьшими. То есть, выполняется определение, следует ли разделить блок на квадраты путем вычисления стоимости кодирования, когда блок разделен на четыре, и стоимости кодирования, когда блок не разделен на четыре, и выбора случая с наименьшей стоимостью кодирования. Для определения оптимального случая из множества условий, может использоваться способ, отличный от R-D оптимизации.
При определении, что внутренняя часть блока дерева разделена на четыре (S1001: ДА), внутренняя часть блока дерева разделяется на четыре (S1002). Процесс дополнительного разделения блока на четыре будет описан позже (фиг.7).
При определении, что внутренняя часть блока дерева не разделена на четыре (S1001: НЕТ), выполняется определение, разделена ли внутренняя часть блока дерева на два или три (S1003).
При определении, что внутренняя часть блока дерева разделена на два или три (S1003: ДА), выполняется определение относительно того, является ли направление разделения вертикальным направлением (S1004).
При определении, что направлением разделения является вертикальным направлением (S1004: ДА), выполняется определение, следует ли разделить внутреннюю часть блока дерева на два (S1005).
При определении, что внутренняя часть блока дерева разделена на два (S1005: ДА), внутренняя часть блока дерева разделяется на два в вертикальном направлении (S1006). С другой стороны, когда определяется, что внутренняя часть блока дерева разделена на три (S1005: НЕТ), внутренняя часть блока дерева разделяется на три в вертикальном направлении (S1007). Далее будет описан процесс дополнительного разделения блока, разделенного на два или три в вертикальном направлении (фиг.8).
При определении, что направлением разделения является горизонтальное направление (S1004: НЕТ), выполняется определение, следует ли разделить внутреннюю часть блока дерева на два (S1008).
При определении, что внутренняя часть блока дерева разделена на два (S1008: ДА), внутренняя часть блока дерева разделяется на два в горизонтальном направлении (S1009). С другой стороны, когда определяется, что внутренняя часть блока дерева разделена на три (S1008: НЕТ), внутренняя часть блока дерева разделяется на три в горизонтальном направлении (S1010). Ниже будет приведено описание процесса дополнительного разделения блока, разбитого на два или три по горизонтали (фиг.8).
При определении, что внутренняя часть блока дерева не разделена на два или три (S1003: НЕТ), процесс разделения блока завершается без разделения внутренней части блока дерева (S1011).
Далее со ссылкой на блок-схему алгоритма на фиг.7 будет дано описание процесса, который должен выполняться для каждого из четырех блоков, полученных путем разделения блока дерева пополам как в горизонтальном направлении, так и в вертикальном направлении.
Прежде всего, определяется, следует ли дополнительно разделить внутреннюю часть блока пополам как в горизонтальном направлении, так и в вертикальном направлении для получения четырех блоков (S1101).
При определении, что внутренняя часть блока дополнительно разделена на четыре (S1101: ДА), внутренняя часть блока дополнительно разделяется на четыре (S1102).
При определении, что внутренняя часть блока не разделяется дополнительно на четыре (S1101: НЕТ), выполняется определение, следует ли разделить внутреннюю часть блока на два или три (S1103).
При определении, что внутренняя часть блока разделена на два или три (S1103: ДА), выполняется определение относительно того, является ли направление разделения вертикальным направлением (S1104).
При определении, что направлением разделения является вертикальным направлением (S1104: ДА), выполняется определение, следует ли разделить внутреннюю часть блока на два (S1105).
При определении, что внутренняя часть блока разделена на два (S1105: ДА), внутренняя часть блока разделена на два в вертикальном направлении (S1106). С другой стороны, когда определяется, что внутренняя часть блока разделена на три (S1105: НЕТ), внутренняя часть блока разделяется на три в вертикальном направлении (S1107).
При определении, что направлением разделения является горизонтальным направлением (S1104: НЕТ), выполняется определение, следует ли разделить внутреннюю часть блока на два (S1108).
При определении, что внутренняя часть блока разделена на два (S1108: ДА), внутренняя часть блока разделяется на два в горизонтальном направлении (S1109). С другой стороны, когда определяется, что внутренняя часть блока разделена на три (S1108: НЕТ), внутренняя часть блока разделяется на три в горизонтальном направлении (S1110).
При определении, что внутренняя часть блока не разделена на два или три (S1103: НЕТ), процесс разделения блока завершается без дополнительного разделения внутренней части блока (S1111).
Процесс, показанный на блок-схеме алгоритма на фиг.7, рекурсивно выполняется для каждого из четырех блоков, полученных путем разделения. Внутренняя часть блока, разделенного на четыре, кодируется в порядке z-сканирования.
Далее со ссылкой на блок-схему алгоритма на фиг.8 будет дано описание процесса, который должен выполняться для каждого из блоков, полученных путем разделения блока дерева на два или три в вертикальном направлении.
Когда блок дерева разделен на два или три в вертикальном направлении, определяется, следует ли дополнительно разделить внутреннюю часть каждого из блоков, полученных разделением на два или три (S1201).
При определении, что внутренняя часть блока разделена на два или три (S1201: ДА), выполняется определение относительно того, является ли направление разделения вертикальным направлением (S1202).
При определении, что направлением разделения является вертикальное направление (S1202: ДА), выполняется определение, следует ли разделить внутреннюю часть блока на два (S1203).
При определении, что внутренняя часть блока разделена на два (S1203: ДА), внутренняя часть блока разделена на два в вертикальном направлении (S1204). С другой стороны, когда определяется, что внутренняя часть блока разделена на три (S1203: НЕТ), внутренняя часть блока разделяется на три в вертикальном направлении (S1205).
При определении, что направлением разделения является горизонтальное направление (S1202: НЕТ), выполняется определение, следует ли разделить внутреннюю часть блока на два (S1206).
При определении, что внутренняя часть блока разделена на два (S1206: ДА), внутренняя часть блока разделена на два в горизонтальном направлении (S1207). С другой стороны, когда определяется, что внутренняя часть блока разделена на три (S1206: НЕТ), внутренняя часть блока разделяется на три в горизонтальном направлении (S1208).
При определении, что внутренняя часть блока не разделена на два или три (S1201: НЕТ), процесс разделения блока завершается без дополнительного разделения внутренней части блока (S1209).
Процесс, показанный на блок-схеме алгоритма на фиг.8, рекурсивно выполняется для каждого из блоков, полученных путем разделения на два или три в вертикальном направлении. Внутренняя часть блока, разделенного на два или три, кодируется в порядке слева направо.
Подобным образом процесс, показанный на блок-схеме алгоритма на фиг.8, рекурсивно выполняется для каждого из блоков, полученных путем разделения на два или три в горизонтальном направлении. Внутренняя часть блока, разделенного на два или три, кодируется в порядке сверху вниз.
Следует отметить, что был описан процесс дополнительного разделения блоков, полученных путем разделения блока дерева, но родительский блок не обязательно должен быть блоком дерева. Например, когда блок дерева (128 × 128 пикселей) разделен на четыре и результирующие четыре блока (64 × 64 пикселей) дополнительно разделены, описанный выше процесс также применяется к разделению блоков, полученных путем дополнительного разделения.
Для рекурсивного разделения блоков может быть определено количество раз разделения таким образом, чтобы оно было ограничено. Кроме того, количество раз разделения может быть заранее определено между устройством для кодирования и устройством для декодирования. Кроме того, может использоваться конфигурация, в которой устройство для кодирования определяет и записывает количество раз разделения в битовом потоке, и устройство для декодирования использует количество раз разделения, записанное в битовом потоке.
Ниже будет дано описание разделения блоков в конце кадра. Фиг.9 показывает взаимосвязь с границей изображения, когда изображение разделяется на блоки дерева. Как показано на фиг.9, размер изображения не обязательно равен целому кратному размеру блока дерева, так что блок дерева, расположенный в конце кадра, может содержать внутрикадровую и внекадровую часть кадра относительно границы изображения. Блоки 1001, 1002, 1003 дерева показаны как блоки дерева, расположенные в конце кадра. В этом случае, как показано на фиг.10, часть вне кадра, расположенная за границей изображения, обрабатывается, как и самые удаленные пиксели в кадре. Пиксели 1011, 1012, 1013 показаны как крайние пиксели в кадре.
Пиксель 1011 расположен в блоке 1001 дерева и в верхнем правом углу кадра. Пиксель, расположенный на правой стороне пикселя 1011, то есть, пиксель вне кадра, расположенный за границей изображения, обрабатывается как пиксель 1011.
Пиксель 1012 расположен в блоке 1002 дерева и в нижнем левом углу кадра. Пиксель, расположенный на нижней стороне пикселя 1012, то есть, пиксель вне кадра, расположенный за границей изображения, обрабатывается, как пиксель 1012.
Пиксель 1013 расположен в блоке 1003 дерева и в нижнем правом углу кадра. Пиксели, расположенные на правой стороне, нижней стороне и нижней правой стороне пикселя 1013, то есть, пиксели вне кадра, расположенные за границей изображения, обрабатываются так же, как пиксель 1013.
Затем, когда блок разделен на два или три, разделение блоков ограничивается. Это позволяет разделить блок, расположенный в конце кадра, на блоки подходящей формы и, таким образом, повысить эффективность кодирования.
Ограничения разделения блоков применяются к разделению блока, расположенного в конце кадра, на два или три. То есть, процесс разделения на два или три (с S1004 по S1010), показанный на фиг.3, заменяется процессом, описанным ниже. Кроме того, процесс разделения на два или три (с S1104 по S1110), показанный на фиг.7, заменяется процессом, описанным ниже. Кроме того, процесс разделения на два или три (S1202 - S1208), показанный на фиг.8, заменяется процессом, описанным ниже.
Со ссылкой на фиг.11 будет дано описание ограничений разделения блоков. Во-первых, для всех шаблонов разделения блоков выполняется определение, следует ли ограничивать разделение блоков (S1301). Все шаблоны разделения блоков включают в себя четыре шаблона: шаблон, в котором блок разделен на два в горизонтальном направлении; шаблон, в котором блок разделен на два в вертикальном направлении; шаблон, в котором блок разделен на три по горизонтали; и шаблон, в котором блок разделен на три в вертикальном направлении. Кроме того, определяется, следует ли ограничивать разделение блоков на основании того, разделены ли пиксели, расположенные за границей изображения. Например, когда блок разделен на два в горизонтальном направлении, и пиксели, расположенные за границей изображения, разделены соответствующим образом, разделение блока на два в горизонтальном направлении ограничено.
Здесь ограничение разделения блока в горизонтальном направлении соответствует запрещению разделения блока в горизонтальном направлении. Кроме того, ограничение разделения блока в вертикальном направлении соответствует запрещению разделения блока в вертикальном направлении. Точно так же ограничение разделения блока на два соответствует запрету разделения блока на два. Дополнительно, ограничение разделения блока на три соответствует запрещению разделения блока на три.
Затем определяется, следует ли ограничивать разделение блоков для всех шаблонов разделения блоков (S1302). Когда разделение блока ограничено для всех шаблонов (S1302: ДА), блок не разделяется (S1314). С другой стороны, когда разделение блоков не ограничено для всех шаблонов (S1302: НЕТ), выполняется определение, следует ли ограничивать разделение блоков в горизонтальном направлении (S1303).
Когда разделение блоков в горизонтальном направлении ограничено (S1303: ДА), переходят к следующему процессу (S1306). С другой стороны, когда разделение блоков в горизонтальном направлении не ограничено (S1303: НЕТ), выполняется определение, ограничивать ли разделение блоков в вертикальном направлении (S1304).
Когда разделение блоков в вертикальном направлении ограничено (S1304: ДА), переходят к следующему процессу (S1310). С другой стороны, когда разделение блока в вертикальном направлении не ограничено (S1304: НЕТ), выполняется определение, следует ли разделить блок в вертикальном направлении (S1305).
Когда определено, что направлением разделения блока является вертикальным направлением (S1305: ДА), выполняется определение, следует ли ограничивать разделение блока на три (S1306). С другой стороны, когда определено, что направлением разделения блока является горизонтальное направление (S1305: НЕТ), переходят к следующему процессу (S1310).
Когда разделение блока на три ограничено (S1306: ДА), блок разделяется на два в вертикальном направлении (S1308). С другой стороны, когда разделение блока на три не ограничено (S1306: НЕТ), выполняется определение, следует ли разделить блок на два (S1307).
Когда определено, что блок разделен на два (S1307: ДА), блок разделен на два в вертикальном направлении (S1308). С другой стороны, когда определяется, что блок разделен на три (S1307: НЕТ), блок делится на три в вертикальном направлении (S1309).
Когда разделение в вертикальном направлении ограничено (S1304: ДА) и когда определено, что направлением разделения блока является горизонтальное направление (S1305: НЕТ), выполняется определение, следует ли ограничивать разделение блоков на три (S1310).
Когда разделение блока на три ограничено (S1310: ДА), блок разделяется на два в горизонтальном направлении (S1312). С другой стороны, когда разделение блока на три не ограничено (S1310: НЕТ), выполняется определение, следует ли разделить блок на два (S1311).
Когда определено, что блок разделен на два (S1311: ДА), блок разделен на два в горизонтальном направлении (S1312). С другой стороны, когда определяется, что блок разделен на три (S1311: НЕТ), блок делится на три в горизонтальном направлении (S1313).
То есть, когда пиксели, расположенные за границей изображения, разделяются в результате разделения блоков, разделение блоков в соответствующем направлении ограничивается.
Ниже будет дано описание конкретного примера. Блок дерева, расположенный в нижней части кадра, не разделяется на четыре (S1001: НЕТ), но внутренняя часть блока дерева разделяется на два или три (S1003: ДА). На фиг.12A показано, как блок дерева содержит внутрикадровую и внекадровую части через границу изображения. Здесь определяется, следует ли ограничивать разделение блока для всех шаблонов разделения блока дерева (S1301).
Фиг.12A-12D показывают, как блок дерева разделяется в соответствии со всеми шаблонами. Когда блок разделяется на два в вертикальном направлении, как показано на фиг.12A, пиксели, расположенные за границей изображения, разделяются, так что это разделение блока ограничивается. Аналогично, как показано на фиг.12B, когда блок разделен на три в вертикальном направлении, пиксели, расположенные за границей изображения, разделяются, так что это разделение блоков ограничивается. С другой стороны, когда блок разделяется на два в горизонтальном направлении, как показано на фиг.12C, пиксели, расположенные за границей изображения, не разделяются, так что это разделение блока не ограничивается. Аналогичным образом, когда блок разделяется на три в горизонтальном направлении, как показано на фиг.12D, пиксели, расположенные за границей изображения, не разделяются, так что это разделение блока не ограничивается.
Следовательно, разделение блоков не ограничено для всех шаблонов разделения блоков (S1302: НЕТ). Кроме того, разделение блоков в горизонтальном направлении не ограничивается (S1303: НЕТ), и разделение блоков в вертикальном направлении ограничивается (S1304: ДА). Тогда разделение блока на три не ограничивается (S1310: НЕТ). Следовательно, выполняется определение, разделить ли блок на два (S1311). Когда определяется, что блок разделен на два (S1311: ДА), блок разделяется на два в горизонтальном направлении (S1312).
Такие ограничения разделения блоков позволяют блоку иметь подходящую форму. Это связано с тем, что в блоке, содержащем пиксели вне кадра, значения пикселей части вне кадра являются однородными. Следовательно, изменения значений пикселей внутрикадровой части в блоке малы по сравнению с блоком, не содержащим пикселей вне кадра. Это уменьшает необходимость кодирования небольших изменений пикселей. Следовательно, можно уменьшить объем кодирования и повысить эффективность кодирования путем объединения как можно большего количества пикселей вне кадра в блок.
Эти ограничения разделения блоков также применяются к правому концу кадра. Фиг.12E-12H показывают, как блок дерева разделяется в соответствии со всеми шаблонами. Здесь, когда блок разделяется на два в горизонтальном направлении, как показано на фиг.12E, пиксели, расположенные за границей изображения, разделяются. Кроме того, когда блок разделяется на три в горизонтальном направлении, как показано на фиг.12F, пиксели, расположенные за границей изображения, разделяются. Следовательно, такое разделение блоков ограничено. Такие ограничения разделения на блоки позволяют повысить эффективность кодирования.
Ниже будет дано описание функционирования разделителя 202 блока устройства 200 для декодирования изображений. Разделитель 202 блока разделяет блок с помощью той же процедуры обработки, что и разделитель 101 блока устройства 100 для кодирования изображений, описанном выше. Разделитель 101 блока выбирает шаблон разделения блоков и выводит выбранную, таким образом, информацию разделения блоков. С другой стороны, разделитель 202 блока разделяет блок на основании информации разделения блоков, полученной посредством декодирования битового потока. Ограничения разделения на блоки являются такими же, как в устройстве 100 для кодирования изображений, описанном выше.
На фиг.13 показан синтаксис (правило синтаксиса битового потока) для разделения блоков согласно первому варианту осуществления. На фиг.13 QT () представляет синтаксис для процесса разделения блока на четыре, MTT () представляет синтаксис для процесса разделения блока на два или три. Устройство 100 для кодирования изображений выполняет кодирование в соответствии с этим синтаксисом, и устройство 200 для декодирования изображений выполняет декодирование в соответствии с этим синтаксисом.
Во-первых, следует ли разделить блок на четыре, представлено посредством 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), процесс разделения на два или три выполняется рекурсивно.
Ниже будет дано описание переменной QTvalid, представляющей, может ли каждый из четырех блоков, полученных путем разделения, быть дополнительно разделен на четыре. QTvalid определяется для каждого из четырех блоков, полученных в результате разделения. Когда четыре блока, полученные путем разделения, не содержат внутрикадровых пикселей, QTvalid устанавливается на 0. В противном случае QTvalid устанавливается на 1.
Далее будет дано описание переменной MTTvalid, представляющей, может ли каждый из двух или трех блоков, полученных путем разделения, быть дополнительно разделен на два или три. MTTvalid определяется для каждого из двух или трех блоков, полученных в результате разделения. Когда два или три блока, полученные путем разделения, не содержат внутрикадровых пикселей, MTTvalid устанавливается на 0. В противном случае MTTvalid устанавливается на 1.
Согласно настоящему варианту осуществления, направление разделения блоков ограничено, что устраняет необходимость в vertical_flag. Следовательно, vertical_flag на фиг.13 может быть опущено.
Такие ограничения разделения блоков позволяют разделить блок, расположенный в конце кадра, на блоки подходящей формы и, таким образом, повысить эффективность кодирования. Это дополнительно позволяет разделять блоки, подходящие для кодирования и декодирования изображений.
Второй вариант осуществления
Согласно второму варианту осуществления настоящего изобретения далее приведено описание устройства для кодирования изображения и устройства для декодирования изображения. Согласно второму варианту осуществления разделение блоков ограничивается, когда глубина разделения блоков достигает предельной глубины. Другие конфигурации являются конфигурациями согласно первому варианту осуществления; поэтому описание других конфигураций не приводится.
Ниже будет дано описание глубины разделения блоков. Согласно первому варианту осуществления был описан процесс разделения блока на два или три, и затем рекурсивного разделения каждого из двух или трех блоков, полученных путем разделения на два или три. Для этого процесса первый процесс разделения на два или три определяется как глубина 0. Кроме того, второй процесс разделения каждого из двух или трех блоков, полученных первым процессом разделения на два или три, определяется как глубина 1, третий процесс разделения каждого из двух или трех блоков, полученных вторым процессом разделения на два или три, определяется как глубина 2, и глубина каждого последующего процесса определяется таким же образом. Более того, глубина для использования при ограничении разделения блоков заранее определена, как предельная глубина.
Ограничения разделения блоков применяются к разделению блока на два или три, расположенного в конце кадра. То есть, процесс разделения на два или три (с S1004 по S1010), показанный на фиг.3, заменяется процессом, описанным ниже. Кроме того, процесс разделения на два или три (с S1104 по S1110), показанный на фиг.7, заменяется процессом, описанным ниже. Кроме того, процесс разделения на два или три (S1202 - S1208), показанный на фиг.8, заменяется процессом, описанным ниже.
Со ссылкой на фиг.14 будет приведено описание ограничений разделения блоков. Во-первых, когда блок разделен на два или три, выполняется определение, достигла ли глубина разделения блоков предельной глубины. (S1401).
Когда глубина не достигла предельной глубины (S1401: НЕТ), определяется не ограничивать разделение блоков (S1402). С другой стороны, когда глубина достигает предельной глубины (S1401: ДА), определяется, следует ли ограничивать разделение блоков для всех шаблонов разделения блоков (S1301). S1301 такой же, как в соответствии с первым вариантом осуществления; следовательно, S1301 не будет описан.
Затем определяется, следует ли ограничивать разделение блоков для всех шаблонов разделения блоков (S1302). S1302 и последующие процессы такие же, как в первом варианте осуществления; поэтому описание S1302 и последующих процессов опущено.
То есть, когда пиксели, расположенные за границей изображения, разделяются в результате разделения блоков и глубина разделения блоков достигла предельной глубины, разделение блоков ограничивается.
Ниже будет дано описание конкретного примера. Блок дерева, расположенный в нижней части кадра, не разделяется на четыре части (S1001: НЕТ), но внутренняя часть блока дерева разделяется на два или три (S1003: ДА). Кроме того, предельная глубина устанавливается равной 1. На фиг.12A показано, как блок дерева содержит внутрикадровую и внекадровую части через границу изображения. Когда этот блок дерева делится на два или три, пиксели, расположенные за границей изображения, разделяются в результате разделения в вертикальном направлении. Следует отметить, что глубина равна 0 и не достигла предельной глубины 1 (S1401: НЕТ). Следовательно, определяется не ограничивать разделение блока (S1402). В частности, разделение блоков ограничено для всех шаблонов (S1302: НЕТ), разделение блоков в горизонтальном направлении не ограничено (S1303: НЕТ), и разделение блоков в вертикальном направлении не ограничено (S1304: НЕТ). Затем определяется, следует ли разделить блок в вертикальном направлении (S1305). Когда определяется разделение блока в вертикальном направлении (S1305: ДА), разделение блока на три не ограничивается (S1306: НЕТ), так что определяется, следует ли разделить блок на два (S1307). Когда определяется разделение блока на два (S1307: ДА), блок разделяется на два в вертикальном направлении (S1308). Вышеупомянутое показано на фиг.12A.
Впоследствии из блоков, полученных разделением в вертикальном направлении, левый блок разделяется на два или три. Здесь глубина равна 1 и достигла предельной глубины 1 (S1401: ДА). Следовательно, для всех шаблонов разделения блоков выполняется определение, следует ли ограничивать разделение блоков (S1301).
Фиг.15A-15D показывают, как блок разделен в соответствии со всеми шаблонами. Когда блок разделяется на два в вертикальном направлении, как показано на фиг.15A, разделяются пиксели, расположенные за границей изображения, так что это разделение блока ограничивается. Аналогично, как показано на фиг.15B, когда блок разделяется на три в вертикальном направлении, разделяются пиксели, расположенные за границей изображения, так что это разделение блока ограничивается. С другой стороны, когда блок разделяется на два в горизонтальном направлении, как показано на фиг.15C, пиксели, расположенные за границей изображения, не разделяются, так что это разделение блока не ограничивается. Аналогичным образом, когда блок разделяется на три в горизонтальном направлении, как показано на фиг.15D, пиксели, расположенные за границей изображения, не разделяются, так что это разделение блока не ограничивается.
Следовательно, разделение блоков не ограничено для всех шаблонов разделения блоков (S1302: НЕТ). Дополнительно, разделение блоков в горизонтальном направлении не ограничивается (S1303: НЕТ), и разделение блоков в вертикальном направлении ограничивается (S1304: ДА). Тогда разделение блока на три не ограничивается (S1310: НЕТ). Следовательно, выполняется определение, разделить ли блок на два (S1311). Когда определяется, что блок разделен на два (S1311: ДА), блок разделяется на два в горизонтальном направлении (S1312).
Такие ограничения разделения блоков позволяют блоку иметь подходящий размер и форму. Это связано с тем, что в блоке, содержащем пиксели вне кадра, значения пикселей части вне кадра являются однородными. Следовательно, изменения значений пикселей внутрикадровой части в блоке малы по сравнению с блоком, не содержащим пикселей вне кадра. Это снижает необходимость кодирования небольших изменений пикселей. Следовательно, можно уменьшить объем кодирования и повысить эффективность кодирования путем объединения как можно большего количества пикселей вне кадра в блок.
Ограничения разделения блоков также применяются к правому концу кадра. Глубина, когда блок дерева разбивается на два или три, равна 0 и не достигла предельной глубины 1, так что разделение блока не ограничивается, и блок разбивается на два или три. Когда блок, полученный путем разделения, дополнительно разделяется, глубина равна 1 и достигает предельной глубины 1, так что выполняется определение, следует ли ограничивать разделение блока. Затем, когда блок разделен на два в горизонтальном направлении или когда блок разделен на три в горизонтальном направлении, пиксели, расположенные за границей изображения, разделяются соответственно. Следовательно, такое разделение блоков ограничено. Такие ограничения на разделение на блоки позволяют повысить эффективность кодирования.
Согласно настоящему варианту осуществления определяется глубина разделения блоков для разделения на два или три. Глубина также может быть определена для разделения на четыре. Кроме того, согласно настоящему варианту осуществления, разделение блоков ограничивается на основании глубины разделения блоков. В качестве альтернативы разделение блока ограничено на основании количества или пропорции пикселей, содержащихся в блоке и расположенных за границей изображения. То есть, когда эти значения больше заданных значений, разделение блоков ограничивается. Дополнительно, эти значения могут быть разными для каждой глубины разделения блоков. Это позволяет разделить блок с небольшим количеством или долей пикселей вне кадра и предотвращает разделение блока с большим количеством или долей пикселей вне кадра. Устройством для кодирования в битовом потоке может использоваться конфигурация, в которой записываются значения, относящиеся к ограничениям разделения блока, такие как предельная глубина разделения блока, и количество или пропорция пикселей, содержащихся в блоке и расположенных за границей изображения, и устройство для декодирования использует значения, записанные в битовом потоке.
Согласно первому варианту осуществления, разделение блоков ограничено независимо от глубины разделения блоков. С другой стороны, согласно настоящему варианту осуществления, разделение блоков ограничено на основании глубины разделения блоков. Это позволяет разделить блок с малой пропорцией пикселей вне кадра и предотвращает разделение блока с большой пропорцией пикселей вне кадра. Это позволяет разделить блок, расположенный в конце кадра, на блоки подходящего размера и формы и, таким образом, позволяет повысить эффективность кодирования. Это дополнительно позволяет разделять блоки, подходящие для кодирования и декодирования изображений.
Третий вариант осуществления
Будет дано описание устройства для кодирования изображения и устройства для декодирования изображения согласно третьему варианту осуществления настоящего изобретения. Согласно третьему варианту осуществления, разделение блоков управляется на основании количества пикселей, расположенных за границей изображения. Другие конфигурации такие же, как в соответствии с первым вариантом осуществления; поэтому описание других конфигураций не приводится.
Управление разделением блоков применяется к разделению блока, расположенного в конце кадра, на два или три. То есть, процесс разделения на два или три (с S1004 по S1010), показанный на фиг.3, заменяется процессом, описанным ниже. Кроме того, процесс разделения на два или три (с S1104 по S1110), показанный на фиг.7, заменяется процессом, описанным ниже. Кроме того, процесс разделения на два или три (S1202 - S1208), показанный на фиг.8, заменяется процессом, описанным ниже.
Со ссылкой на фиг.16 будет дано описание управления разделением блоков. Сначала для всех шаблонов разделения блоков подсчитывается количество пикселей, расположенных за границей изображения (S1601). Все шаблоны разделения блоков включают в себя четыре шаблона: шаблон, в котором блок разделен на два в горизонтальном направлении; шаблон, в котором блок разделен на два в вертикальном направлении; шаблон, в котором блок разделен на три по горизонтали; и шаблон, в котором блок разделен на три в вертикальном направлении.
Затем, как для шаблона, в котором блок разделен на два, так и для шаблона, в котором блок разделен на три, определяется направление разделения, в котором количество пикселей, расположенных за границей изображения, становится наибольшим (S1602).
Затем выполняется определение разделения блока на два (S1603).
Когда определено выполнение разделения на два (S1603: ДА), выполняется разделение на два в направлении разделения, определенном на S1602 (S1604). С другой стороны, когда определяется выполнение разделения на три (S1603: НЕТ), разделение на три выполняется в направлении разделения, определенном на S1602 (S1605).
То есть, направлением разделения блока управляют так, чтобы побудить блок содержать наибольшее количество пикселей, расположенных за границей изображения.
Ниже будет дано описание конкретного примера. Предположим, что изображение имеет размер 1920 × 1080 пикселей и блок дерева имеет размер 128 × 128 пикселей. Кроме того, блок дерева не разделяется на четыре (S1101: НЕТ) и внутренняя часть блока разделяется на два или три (S1103: ДА). Затем, как показано на фиг.17A, в нижнем конце кадра 72 пикселя расположены за границей изображения в вертикальном направлении. Здесь, когда блок дерева разделен в соответствии со всеми шаблонами, подсчитывается количество пикселей, расположенных за границей изображения в каждом блоке (S1601).
Фиг.17A-17D показывают, как блок дерева разделяется в соответствии со всеми шаблонами. Когда блок разделен на два в вертикальном направлении, как показано на фиг.17A, левая сторона (500) и правая сторона (501) разделенного блока имеют по 4608 пикселей каждая. С другой стороны, когда блок разделен на два в горизонтальном направлении, как показано на фиг.17B, верхняя сторона (510) и нижняя сторона (511) разделенного блока имеют 1024 пикселя и 8192 пикселя, соответственно. То есть, наибольшее количество пикселей, расположенных за границей изображения, составляет 8192 пикселя в нижней части, полученной путем разделения блока в горизонтальном направлении. Следовательно, направление разделения, при котором количество пикселей становится наибольшим, является горизонтальным направлением (S1602).
Аналогичным образом, когда блок разделен на три в вертикальном направлении, как показано на фиг.17C, левая сторона (520) и правая сторона (522) разделенного блока имеют по 2304 пикселя, и центр (521) имеет 4608 пикселей. С другой стороны, когда блок разделен на три в горизонтальном направлении, как показано на фиг.17D, верхняя сторона разделенного блока имеет 0 пикселей, центр (531) имеет 5120 пикселей и нижняя сторона (532) имеет 4096 пикселей. То есть, наибольшее количество пикселей, расположенных за границей изображения, составляет 5120 пикселей в центре, полученное путем разделения блока по горизонтали. Следовательно, направление разделения, при котором количество пикселей становится наибольшим, является горизонтальным направлением (S1602).
Наконец, выполняется определение, следует ли разделить блок на два (S1603). Когда определяется разделить блок на два (S1603: ДА), блок разделен на два в горизонтальном направлении, что является определенным направлением разделения (S1604). С другой стороны, когда определяется разделить блок на три (S1603: НЕТ), блок разделен на три в горизонтальном направлении, который является определенным направлением разделения (S1605).
Согласно настоящему варианту осуществления, когда блок разделен на два или три направление разделения блока управляется таким образом, чтобы побудить блок содержать наибольшее количество пикселей, расположенных за пределами границы изображения. Это связано с тем, что в блоке, содержащем внекадровые пиксели, значения пикселей внекадровой части являются равномерными, и фактически отсутствует необходимость кодировать незначительные изменения пикселей. Следовательно, можно уменьшить количество кодирования и повысить эффективность кодирования, приведя как можно больше таких пикселей в блоке.
Дополнительно, могут быть определены не только направление разделения блока, но и количество разделений блока. Как описано выше, наибольшее количество пикселей, расположенных за пределами границы изображения, составляет 8192 пикселя в случае разделения на два и 5120 пикселей в случае разделения на три. То есть, поскольку в блоке, расположенном за границей изображения, количество пикселей на больше при разделении на два, блок разделен на два.
Это связано с тем, что разделение на три побуждает разделить блок в положении, близко к концу блока по сравнению с разделением на два. Разделение на три имеет тенденцию иметь меньше пикселей, расположенных за пределами границы изображения, чем разделение на два. Следовательно, в конце кадра блок не разделен на три и может быть определено направление, в котором блок разделен на два. Это позволяет сократить процесс, необходимый для разделения блока на три и, таким образом, ускоряет процесс разделения блока.
Управление разделением блока применяется для разделения блока, расположенного в конце кадра на два или три. То есть, процесс разделения на два или три (S1004 до S1010), показанный на фиг.3, заменен в процессе, описанном ниже. Кроме того, процесс разделения на два или три (S1104 до S1110), показанный на фиг.7, заменен в процессе, описанном ниже. Кроме того, процесс разбивания на два или три (S1202 до S1208), показанный на фиг.8, заменен на процесс, описанный ниже.
Со ссылкой на фиг.18 будет дано описание управления разделением блока. Во-первых, для всех шаблонов разделения блока количество пикселей, расположенных за пределами границы изображения (S1651). Все шаблоны разделения блоков включают в себя два шаблона: шаблон, в котором блок разделен на два в горизонтальном направлении и шаблон, где блок разделен на два в вертикальном направлении.
Далее определяется (S1652) направление разделения, в котором блок разделяется на два и, с помощью которого число пикселей, расположенных за пределами границы изображения, становится наибольшим. Затем блок разделяется на два в направлении разделения, при этом определяется (S1654).
Синтаксис для разделения блоков согласно настоящему варианту осуществления такой же, как показано на фиг.13, но без vertical_flag. Это связано с тем, что направление разделения блоков управляется согласно настоящему варианту осуществления, что устраняет необходимость в vertical_flag. Кроме того, согласно настоящему варианту осуществления может быть определено количество разделений блоков, и можно предотвратить разделение блока на три. Это устраняет необходимость в BTflag, так что можно использовать конфигурацию без BTflag. Синтаксис для разделения блоков согласно настоящему варианту осуществления может быть таким же, как показано на фиг.13.
В случае 1920 × 1080 пикселей, пиксель отсутствует за границей изображения в правом конце кадра. Однако, когда ширина изображения не равна целому кратному размеру блока дерева, есть пиксели, расположенные за границей изображения, так что разделение блоков управляется таким же образом, как описано выше.
Согласно настоящему варианту осуществления, направлением разделения блоков управляют на основании количества пикселей, расположенных за границей изображения. Направление разделения блока может управляться на основании пропорции пикселей, расположенных за границей изображения.
Такое управление разделением блоков позволяет разделить блок, расположенный в конце кадра, на блоки подходящего размера и формы и, таким образом, позволяет повысить эффективность кодирования. Это дополнительно позволяет разделять блоки, подходящие для кодирования и декодирования изображений.
Четвертый вариант осуществления
Будет дано описание устройства для кодирования изображения и устройства для декодирования изображения согласно четвертому варианту осуществления настоящего изобретения. Согласно четвертому варианту осуществления будет описан случай, который отличается по границе изображения от описанных выше вариантов осуществления. Другие конфигурации аналогичны с первым вариантом осуществления; поэтому описание других конфигураций не приводится.
Здесь рассмотрим шаблон, который отличается по границе изображения от фиг.12. Следует отметить, что даже, когда граница изображения отличается, не рассматривается шаблон, для которого результат определения представляет собой определение ограничения разделение блоков, является таким же, как на фиг.12. Например, предположим, что граница изображения расположена немного выше, как показано на фиг.12A. Даже в этом случае разделение блоков ограничено, поскольку пиксели, расположенные за границей изображения, разделены. То есть, для фиг.12A результат определения, следует ли ограничивать разделение блоков, не изменяется, даже, когда граница изображения изменяется в положении в вертикальном направлении. Это верно для фиг.12B. Аналогично, для фиг.12E и фиг.12F, результат определения, следует ли ограничивать разделение блоков, не изменяется, даже, когда граница изображения изменяется в положении в направлении влево-вправо.
В итоге, шаблоны, отличающиеся по границам изображения от фиг.12, являются шаблонами, показанными на фиг.19A-19D. Граница изображения, показанная на фиг.19A, расположена выше, чем показано на фиг.12C. Точно так же граница изображения, показанная на фиг.19B, расположена выше, чем показано на фиг.12D. Точно так же границы изображения, показанные на фиг.19C и фиг.19D расположены ближе к левому краю, чем показано на фиг.12G и фиг.12H.
Фиг.19A и фиг.19B оба показывают разделение в горизонтальном направлении. Однако разделение на два предотвращает разделение пикселей, расположенных за границей изображения, тогда, как разделение на три побуждает разделение пикселей, расположенных за границей изображения. То есть, ограничивается только разделение блока на три.
Фиг.19C и фиг.19D показывают разделение в вертикальном направлении. Однако разделение на два предотвращает разделение пикселей, расположенных за границей изображения, тогда как разделение на три побуждает разделение пикселей, расположенных за границей изображения. То есть, ограничивается только разделение блока на три.
Конкретно, различается определение, следует ли ограничивать разделение блока, между разделением на два и разделением на три. Это связано с тем, что разделение на три приводит к разделению блока в позиции, близкой к концу блока, по сравнению с разделением на два. Разделение на три имеет тенденцию к разделению пикселей, расположенных за границей изображения, по сравнению с разделением на два. Следовательно, в конце кадра блок не разделяется на три, и может быть принято решение, ограничивать ли направление, в котором блок разделяется на два. Это позволяет сократить процесс, необходимый для разделения блока на три, и, таким образом, ускорить процесс разделения блока.
Ограничения разделения блоков применяются к разделению блока, расположенного в конце кадра, на два или три. То есть, процесс разделения на два или три (с S1004 по S1010), показанный на фиг.3, заменяется процессом, описанным ниже. Более того, процесс разделения на два или три (с S1104 по S1110), показанный на фиг.7, заменяется процессом, описанным ниже. Дополнительно, процесс разделения на два или три (S1202 - S1208), показанный на фиг.8, заменяется процессом, описанным ниже.
Со ссылкой на фиг. 20 будет приведено описание ограничений разделения блоков. Фиг.20 является схемой, аналогичной фиг.11, но без некоторых процессов. Поэтому назначается тот же номер этапа, что и на фиг.11, и описание может быть опущено.
Во-первых, для всех шаблонов разделения блоков выполняется определение, следует ли ограничивать разделение блоков (S1901). Все шаблоны разделения блоков включают в себя два шаблона: шаблон, в котором блок разделен на два в горизонтальном направлении, и шаблон, в котором блок разделен на два в вертикальном направлении. Дополнительно, определяется, следует ли ограничивать разделение блоков на основании того, разделены ли пиксели, расположенные за границей изображения. Например, когда блок разделен на два в горизонтальном направлении, и пиксели, расположенные за границей изображения, разделены соответствующим образом, разделение блока на два в горизонтальном направлении ограничено. S1302 и последующие процессы такие же, как показано на фиг.11, но без процессов, связанных с разделением на три; поэтому описание S1302 и последующих процессов опущено.
Со ссылкой на фиг.19A приведено описание конкретного примера. В случае фиг.19A для всех шаблонов разделения блоков выполняется определение, ограничивать ли разделение блоков (S1901). Когда блок разделен на два в горизонтальном направлении, пиксели, расположенные за границей изображения, не разделяются, так что разделение в горизонтальном направлении не ограничивается. Дополнительно, когда блок разделяется на два в вертикальном направлении, пиксели, расположенные за границей изображения, разделяются, так что разделение в вертикальном направлении ограничивается. Следовательно, разделение блоков не ограничено для всех шаблонов разделения блоков (S1302: НЕТ). Разделение блоков в горизонтальном направлении не ограничено (S1303: НЕТ) и разделение блоков в вертикальном направлении ограничено (S1304: ДА). То есть, блок делится на два в горизонтальном направлении (S1312).
Рассмотрим шаблон, в котором граница изображения ближе к вершине или налево, чем границы изображения, показанные на фиг.19. Это приводит к тому, что в любом шаблоне пиксели, расположенные за пределами границы изображения, должны быть разделены. Следовательно, в конце кадра блоки разделены на два, и разделение блока на три всегда ограничено.
Описанный процесс управления разделением блоков обеспечивает разделение блока, расположенного в конце кадра, на блоки подходящего размера и формы и, таким образом, увеличивает эффективность кодирования. Данный процесс дополнительно позволяет разделять блок надлежащим образом для кодирования и декодирования изображения.
Пятый вариант осуществления
Согласно с пятым вариантом осуществления настоящего изобретения приведено описание устройства для кодирования и устройства для декодирования изображения. Согласно пятому варианту осуществления, будут описаны ограничения разделения блока в нижнем правом конце кадра. Другие конфигурации аналогичны конфигурациям согласно первому варианту осуществления; следовательно, описания других конфигураций опущено.
Как показано на фиг.9, блоки дерева, расположенные в конце кадра, могут находиться в кадре и вне кадра относительно границы изображения. В частности, часть вне кадра, содержащаяся в блоке 1003 дерева, расположенной в нижнем правом конце кадра, имеет тенденцию к увеличению, чем часть вне кадра, содержащаяся в блоке 1001 дерева, расположенного в правом конце кадра или часть вне кадра, содержащаяся в блоке 1002 дерева, расположенной в нижнем конце кадра. Следовательно, ограничения разделения блоков с высокой вероятностью может повысить эффективность кодирования. При разделении блока дерева, разделение блоков, содержащихся в блоке дерева, полученные путем разделения, ограничено.
Со ссылкой на фиг.20 приведено описание ограничения разделения блока в нижнем правом конце кадра. Блок, расположенный в нижнем правом конце кадра, соответствует блоку 1003 дерева, показанного на фиг.9.
Во-первых, для всех шаблонов разделения блока выполнено определение относительно того, ограничивать ли разделение блока (S1901). Все шаблоны разделения блоков включают в себя два шаблона: шаблон, в котором блок разделяется на два в горизонтальном направлении и шаблон, где блок разделяется на два в вертикальном направлении. Дополнительно, определяется, следует ли ограничить разделение блоков на основании, разделяются ли пиксели за пределами границы изображения. Например, когда блок разделен на два в горизонтальном направлении, и пиксели, расположенные за пределами границы изображения, соответствующим образом разделены, разделение блока на два в горизонтальном направлении, ограничено.
Поскольку блок расположен в нижнем правом конце кадра, пиксели, расположенные за пределами границы изображения, разделены для всех шаблонов разделения блока. Когда разделение блока ограничено для всех шаблонов (S1302: ДА), блок не разделяется (S1314).
Со ссылкой на фиг.21 приведено описание конкретного примера. Фиг.21A и фиг.21B показывают все шаблоны разделения блоков для блока дерева, расположенного в нижнем правом конце кадра. Как показано на обоих фиг.21A и фиг.21B, пиксели, расположенные за границей изображения, разделяются. Когда разделение блока ограничено для всех шаблонов (S1302: ДА), блок не разделяется (S1314).
Фиг.21C показывает пример, в котором граница изображения является такой же, как показано на фиг.21A, и блок дерева разделен на четыре. Предположим, что четыре блока, полученные путем разделения, обозначены блоками 601, 602, 603, 604 в порядке z-сканирования. Описание каждого этапа разделения блока будет дано со ссылкой на фиг.21C.
Фиг.21C показывает разделение блока, выполненное с помощью следующих этапов. Сначала в процессе, показанном на фиг.3, изображение разделяется на блоки дерева (S1000), определяется, что внутренняя часть каждого блока дерева разделена на четыре (S1001: ДА) и блок дерева разделяется на четыре (S1002). Процесс, показанный на фиг.7, выполняется для каждого из блоков 601, 602, 603, 604, полученных путем разделения на четыре.
Как показано на фиг.7, определяется, что внутренняя часть блока, полученного путем разделения, не разделяется дополнительно на четыре (S1101: НЕТ), и затем определяется, что внутренняя часть блока разделена на два или три (S1103: ДА). Процесс разделения на два или три (с S1104 по S1110), показанный на фиг.7, заменяется процессом, показанным на фиг.20.
Как показано на фиг.20, для всех шаблонов разделения блоков выполняется определение, следует ли ограничивать разделение блоков (S1901). Поскольку блок расположен в нижнем правом конце кадра, пиксели, расположенные за границей изображения, разделяются для всех шаблонов разделения блоков. Когда разделение блока ограничено для всех шаблонов (S1302: ДА), блок не разделяется (S1314). Затем завершается разделение на блоки, показанное на фиг. 21C.
Фиг.21D показывает пример, в котором граница изображения отличается от границы изображения, показанной на фиг.21C, и блок дерева разделен на четыре. Этот пример показывает сложное разделение блоков согласно комбинации вышеописанных вариантов осуществления. Из четырех блоков, полученных путем разделения, блоки 602, 603 дополнительно разделяются на блоки. Будет дано описание каждого этапа разделения блока, который должен быть выполнен после того, как блок дерева разделен на четыре (S1002), на каждом из четырех блоков 601, 602, 603, 604.
Процесс, показанный на фиг.7, выполняется в блоке 601. На фиг.7 определяется, что внутренняя часть блока, полученного путем разделения, дополнительно не разделяется на четыре (S1101: НЕТ) и затем определяется, что внутренняя часть блока не делится на два или три (S1103: НЕТ). Процесс разделения блока завершается без дополнительного разделения внутренней части блока 601 (S1111).
Процесс, показанный на фиг.7, выполняется в блоке 602. На фиг.7 определяется, что внутренняя часть блока, полученного путем разделения, дополнительно не разделяется на четыре (S1101: НЕТ) и затем определяется, что внутренняя часть блока разделена на две или три части (S1103: ДА). Процесс разделения на два или три (с S1104 по S1110), показанный на фиг.7, заменяется процессом, показанным на фиг.20.
Как показано на фиг.20, для всех шаблонов разделения блоков выполняется определение, следует ли ограничивать разделение блоков (S1901). Когда блок разделен на два в горизонтальном направлении, пиксели, расположенные за границей изображения, разделяются, так что разделение в горизонтальном направлении ограничивается. Более того, когда блок разделяется на два в вертикальном направлении, пиксели, расположенные за границей изображения, не разделяются, так что разделение в вертикальном направлении не ограничивается. Следовательно, разделение блоков не ограничено для всех шаблонов разделения блоков (S1302: НЕТ). Затем ограничивается разделение блоков в горизонтальном направлении (S1303: ДА). То есть, блок делится на два в вертикальном направлении (S1308). Затем блок 602 разделяется в вертикальном направлении вдоль раздела 612.
В блоке 603 выполняется процесс, показанный на фиг.7. На фиг. 7 определяется, что внутренняя часть блока, полученного путем разделения, дополнительно не разделяется на четыре (S1101: НЕТ), и затем определяется, что внутренняя часть блока разделена на две или три части (S1103: ДА). Процесс разделения на два или три (с S1104 по S1110), показанный на фиг.7, заменяется процессом, показанным на фиг.18.
Как показано на фиг.18, для всех шаблонов разделения блоков подсчитывается количество пикселей, расположенных за границей изображения (S1651). Все шаблоны разделения блоков включают в себя два шаблона: шаблон, в котором блок разделен на два в горизонтальном направлении, и шаблон, в котором блок разделен на два в вертикальном направлении. Как показано на фиг.17A и фиг.17B, количество пикселей, расположенных за границей изображения, становится наибольшим, когда блок 603 разделяется в горизонтальном направлении. Следовательно, направление разделения, в котором блок разделяется на два и при котором количество пикселей, расположенных за границей изображения, становится наибольшим, определяется как горизонтальное направление (S1652). Затем блок разделяется на два в определенном, таким образом, направлении разделения (S1654). В итоге блок 603 разделяется в горизонтальном направлении вдоль раздела 623.
В блоке 604 выполняется процесс, показанный на фиг.7. Как показано на фиг.7, определяется, что внутренняя часть блока, полученного путем разделения, дополнительно не разделяется на четыре (S1101: НЕТ) и затем определяется, что внутренняя часть блока разделена на две или три части (S1103: ДА). Процесс разделения на два или три (с S1104 по S1110), показанный на фиг.7, заменяется процессом, показанным на фиг.20.
Как показано на фиг.20, для всех шаблонов разделения блоков выполняется определение, следует ли ограничивать разделение блоков (S1901). Когда блок разделяется на два в горизонтальном направлении вдоль раздела 624, пиксели, расположенные за границей изображения, разделяются, так что разделение в горизонтальном направлении ограничивается. Дополнительно, когда блок разделяется на два в вертикальном направлении вдоль раздела 614, пиксели, расположенные за границей изображения, разделяются, так что разделение в вертикальном направлении ограничивается. То есть, для всех шаблонов разделения блоков разделяются пиксели, расположенные за границей изображения. Когда разделение блока ограничено для всех шаблонов (S1302: ДА), блок не разделяется (S1314).
Такое управление разделением блоков позволяет разделить блок, расположенный в конце кадра, на блоки подходящего размера и формы и, таким образом, позволяет повысить эффективность кодирования. Это дополнительно позволяет разделять блоки, подходящие для кодирования и декодирования изображений.
Согласно всем описанным выше вариантам осуществления, может управляться процесс разделения блоков в положении за границей изображения. Соответственно, с любой заданной желаемой границей, может управляться процесс разделения блоков в положении за границей изображения. Дополнительно, определение более значимых пикселей, чем соседние пиксели, может рассматриваться в качестве любой желаемой границы, предоставляя возможность осуществлять управление разделением блоков, находящихся за границей. Дополнительно, положение за любой желаемой границей не ограничивается нижним концом или правым концом кадра, но может быть верхним концом или левым концом кадра или может быть отличным от таких концов. Это позволяет разделить даже блок, который не расположен в конце кадра, на блоки подходящего размера и формы и, таким образом, позволяет повысить эффективность кодирования.
Все или некоторые из описанных выше вариантов осуществления могут быть объединены.
Согласно всем описанным выше вариантам осуществления, битовый поток, выводимый устройством для кодирования изображений, имеет определенный формат данных для декодирования в соответствии со способом кодирования, используемым в вариантах осуществления. Битовый поток может быть доставлен через носитель записи, который читается компьютером или тому подобное и на котором записан битовый поток, такой как HDD, SSD, флэш-память или оптический диск, или, альтернативно, может быть доставлен из сервера через проводную или беспроводную сеть. Следовательно, устройство для декодирования изображения, совместимое с этим устройством для кодирования изображения, выполнено с возможностью декодировать битовый поток, имеющий этот конкретный формат данных, независимо от способов доставки.
В случае использования проводной или беспроводной сети для обмена потоком битов между устройством для кодирования изображений и устройством для декодирования изображений, битовый поток может быть преобразован в формат данных, подходящий для формы передачи тракта связи и затем передан. В этом случае устройство передачи, которое преобразует битовый поток, выводимый устройством для кодирования изображений, в кодированные данные, имеющие формат данных, подходящий для формы передачи тракта связи, и передает кодированные данные в сеть, и устройство приема, которое принимает кодированные данные по сети, декодирует кодированные данные в битовый поток и предоставляет битовый поток в устройство для декодирования изображений.
Устройство передачи включает в себя память, которая служит в качестве буфера для хранения битового потока, выводимого устройством для кодирования изображений, процессор пакетов, который пакетирует битовый поток, и передатчик, который передает пакетированные кодированные данные по сети. Устройство приема включает в себя приемник, который принимает пакетированные кодированные данные по сети, память, которая служит буфером для хранения кодированных данных, полученных таким образом, и процессор пакетов, который выполняет пакетную обработку кодированных данных для генерирования битового потока и доставляет битовый поток в устройство для декодирования изображения.
Когда для обмена битовым потоком между устройством для кодирования изображений и устройством для декодирования изображений используется проводная или беспроводная сеть, в дополнение к устройству передачи и устройству приема используется ретрансляционное устройство, которое принимает кодированные данные, передаваемые устройством передачи, и предоставляет кодированные данные в устройство приема. Ретрансляционное устройство включает в себя приемник, который принимает пакетированные кодированные данные, передаваемые устройством передачи, память, которая служит буфером для хранения кодированных данных, полученных таким образом, и передатчик, который передает пакетированные кодированные данные в сеть. Ретрансляционное устройство может дополнительно включать в себя процессор принимающих пакетов, который выполняет обработку пакетов для пакетированных кодированных данных для генерирования битового потока, носитель записи, который хранит битовый поток, и процессор передаваемых пакетов, который пакетирует битовый поток.
Дополнительно, может быть добавлен как компонент, служащий устройством отображения, такой как дисплей, который отображает изображение, декодированное устройством декодирования изображения. В этом случае дисплей считывает сигнал декодированного изображения, сгенерированный частью 205 наложения сигналов декодированного изображения и сохраненный в памяти 206 декодированного изображения, и отображает на экране сигнал декодированного изображения.
Дополнительно, может быть добавлен компонент, служащий устройством формирования изображения, такой как часть формирования изображения, которая вводит захваченное изображение в устройство для кодирования изображений. В этом случае часть формирования изображения вводит сигнал захваченного изображения в разделитель 101 блока.
Фиг.22 показывает пример аппаратной структуры устройства для кодирования и декодирования согласно настоящему изобретению. Устройство для кодирования и декодирования включает в себя структуру устройства для кодирования изображений и структуру устройства для декодирования изображений согласно вариантам осуществления настоящего изобретения. Устройство 9000 для кодирования и декодирования включает в себя CPU 9001, IC 9002 кодека, интерфейс 9003 ввода/вывода, память 9004, привод 9005 оптических дисков, сетевой интерфейс 9006 и видеоинтерфейс 9009 и все компоненты подключены через шину 9010.
Кодер 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.
Когда пользователю требуется операция кодирования изображения, захваченного внешней камерой 9102, и записи изображения, закодированного таким образом, в памяти 9004, видеоинтерфейс 9009 принимает изображение с камеры 9102 и передает изображение в кодер 9007 изображений. кодека 9002 по шине 9010. Кодер 9007 изображения выполняет процесс кодирования изображения в устройстве для кодирования изображения согласно вариантам осуществления настоящего изобретения на входе изображения через видеоинтерфейс 9009 для генерирования битового потока. Затем битовый поток передается в память 9004 по шине 9010. Когда пользователь желает записать битовый поток на дисковый носитель 9100 записи вместо памяти 9004, дисковод 9005 оптических дисков записывает битовый поток на вставленный дисковый носитель 9100 записи.
Может быть реализована аппаратная структура, имеющая устройство для кодирования изображения и не имеющая устройства для декодирования изображения, или аппаратная структура, имеющая устройство для декодирования изображения и не имеющая устройства для кодирования изображения. Такая аппаратная структура реализуется, например, путем замены кодека 9002 IC на кодер 9007 изображения или декодер 9008 изображения.
Очевидно, что описанные выше процессы для кодирования и декодирования могут быть реализованы как устройство передачи, запоминающее устройство и устройство приема с использованием аппаратных средств или, альтернативно, могут быть реализованы через встроенное программное обеспечение, сохраненное в постоянном запоминающем устройстве (ROM), флэш-памяти и т.п., или программное обеспечение, установленное на компьютере или т.п. Программа микропрограмм и программное обеспечение могут доставляться через носитель записи, который читается компьютером или т.п. и на котором записаны программа микропрограмм, и программа программного обеспечения могут доставляться с сервера по проводной или беспроводной сети или могут доставляться посредством широковещательной передачи данных, такой как наземное цифровое вещание или спутниковое цифровое вещание.
Настоящее изобретение было описано на основании вариантов осуществления. Специалистам в данной области техники должно быть понятно, что эти варианты осуществления являются иллюстративными и что возможны различные модификации для комбинации компонентов или процессов, и что такие модификации также находятся в пределах объема настоящего изобретения.
Промышленная применимость
Настоящее изобретение применимо к способам кодирования и декодирования изображений.
СПИСОК ССЫЛОЧНЫХ ПОЗИЦИЙ
100 - устройство для кодирования изображений, 101 - разделитель блока, 102 - генератор изображений предсказания, 103 - генератор остаточного сигнала, 104 - часть ортогонального преобразования и квантования, 105 - кодер, 106 - часть обратного квантования и обратного ортогонального преобразования, 107 - часть наложения сигналов декодированных изображений, 108 - память декодированных изображений, 200 - устройство для декодирования изображений, 201 - декодер, 202 - разделитель блока, 203 - часть обратного квантования и обратного ортогонального преобразования, 204 - генератор изображений предсказания, 205 - часть наложения сигналов декодированных изображений, 206 - память декодированных изображений.