Область техники, к которой относится изобретение
[0001] Настоящее изобретение относится к способу пространственного прогнозирования при кодировании и декодировании изображения и, в частности, к направленной пространственной интерполяции, заключающей в себе обнаружение краев, или к эффективной реализации такой интерполяции.
Уровень техники
[0002] Способы пространственного прогнозирования, а именно пространственная интерполяция, используются во множестве вариантов применения. В частности, пространственная интерполяция составляет существенную часть многих приложений кодирования и обработки изображений и видео. В гибридных алгоритмах кодирования изображений или видео пространственное прогнозирование типично используется для определения прогнозирования для блока изображений на основе пикселей уже кодированных/декодированных блоков. С другой стороны, пространственная интерполяция также может быть использована в качестве части постобработки декодированного изображения или видеосигнала, в частности для маскирования ошибок.
[0003] Большая часть стандартизированных алгоритмов кодирования видео основана на гибридном кодировании видео. Способы гибридного кодирования видео типично комбинируют несколько различных схем сжатия без потерь и с потерями, чтобы достигать требуемого выигрыша от сжатия. Гибридное кодирование видео также является основой для стандартов ITU-T (стандартов H.26x, к примеру, H.261 и H.263), а также стандартов ISO/IEC (стандартов MPEG-X, к примеру, MPEG-1, MPEG-2 и MPEG-4). Самый последний и усовершенствованный стандарт кодирования видео в данный момент представляет собой стандарт, обозначенный как усовершенствованное кодирование видео (AVC) H.264/MPEG-4, который является результатом работы по стандартизации посредством Объединенной группы по видеостандартам (JVT), т.е. объединенной группы из коллективов ITU-T и ISO/IEC MPEG.
[0004] Сигнал изображения (входной сигнал или входной видеосигнал), вводимый в кодер (устройство кодирования изображений), является последовательностью изображений, называемых кадрами (видеокадрами), причем каждый кадр является двумерной матрицей пикселей. Все вышеуказанные стандарты на основе гибридного кодирования видео включают в себя разделение каждого отдельного кадра на меньшие блоки, состоящие из множества пикселей. Типично, макроблок (обычно обозначающий блок 16x16 пикселей) является базовым элементом изображения, для которого выполняется кодирование. Тем не менее, различные конкретные этапы кодирования могут быть выполнены для меньших элементов изображения, обозначенных субблоками или просто блоками и имеющих размер, например, 8x8, 4x4 и 16x8.
[0005] В интракодировании в соответствии с H.264/MPEG-4 AVC пространственное прогнозирование выполняется для субблоков или макроблоков размеров 8x8, 4x4, 16x16, чтобы уменьшить пространственную избыточность. Пространственное прогнозирование также упоминается как пространственная интерполяция, интрапрогнозирование или внутрикадровое прогнозирование. Пространственное прогнозирование с использованием пространственного направления упоминается как направленное пространственное прогнозирование. Кроме того, кодирование с использованием такого пространственного прогнозирования упоминается как интракодирование или пространственное кодирование, и изображение или блок, который интракодирован, является интракодированным изображением или интракодированным блоком. Внутрикадровое прогнозирование использует предварительно заданный набор режимов интрапрогнозирования (режимы пространственного прогнозирования, включающие в себя режим направленного прогнозирования), которые по существу прогнозируют текущий (цель прогнозирования) блок с использованием граничных пикселей уже кодированных соседних блоков.
[0006] Фиг. 1 схематично иллюстрирует восемь режимов направленного пространственного прогнозирования, используемых для субблоков 4x4 пикселей. Различные типы (режимы) направленного пространственного прогнозирования означают различные краевые направления, т.е. направление применяемой двумерной экстраполяции, как проиллюстрировано на фиг. 1. Существует восемь различных режимов направленного прогнозирования и один режим DC-прогнозирования для субблоков размеров 4x4 и 8x8 и три различных режима направленного прогнозирования и один режим DC-прогнозирования для макроблоков 16x16 пикселей.
[0007] Восемь из режимов направленного пространственного прогнозирования помечаются посредством значения 302 диапазона {0, 1, 3, 4, 5, 6, 7, 8} и ассоциируются с прогнозированиями в восьми различных направлениях 301. Оставшийся один режим прогнозирования (режим пространственного прогнозирования) помечается посредством значения 2 и называется "режимом DC-прогнозирования". В режиме DC-прогнозирования все пиксели в блоке прогнозируются посредством одного значения, которое является средним значением окружающих опорных пикселей. В восьми режимах направленного пространственного прогнозирования текущий блок прогнозируется таким образом, что опорные пиксели повторяются вдоль соответствующих направлений 301. Например, вертикальный режим, который является режимом направленного пространственного прогнозирования, помеченным "0", вертикально повторяет опорные пиксели строки непосредственно выше текущего блока. Горизонтальный режим, который является режимом направленного пространственного прогнозирования, помеченным "1", горизонтально повторяет опорные пиксели столбца непосредственно слева от текущего блока. Оставшиеся режимы направленного пространственного прогнозирования, помеченные значениями от 3 до 8, являются диагональными режимами интрапрогнозирования, согласно которым опорные пиксели по диагонали повторяются в соответствующих диагональных направлениях.
[0008] При кодировании видео интракодированные блоки служат для восстановления видеопоследовательности и прекращения распространения ошибки. Тем не менее, эффективность пространственного кодирования ниже производительности временного кодирования (интеркодирования), что приводит к меньшему полному выигрышу от сжатия, а также к высоким варьированиям результирующей скорости передачи битов.
[0009] Чтобы повысить эффективность кодирования, предлагается улучшенное пространственное прогнозирование, при котором число направлений экстраполяции для прогнозирования пикселей блока не ограничивается восемью (см. PTL 1). Наоборот, обнаружение краев выполняется в уже декодированных соседних блоках в PTL 1. На основе обнаружения края, определенного в качестве доминирующего, пиксели блока экстраполируются или интерполируются возможно от субпиксельной позиции между пикселями, принадлежащими соседнему блоку.
[0010] PTL 1 предоставляет более точное определение направления прогнозирования. Это приводит к более точному пространственному прогнозированию, что, с другой стороны, приводит к меньшему сигналу ошибки прогнозирования (разности между текущим блоком и прогнозированным блоком) и, таким образом, к лучшему сжатию.
[0011] Патентные документы
PTL 1
Публикация европейской патентной заявки № 2081386
Сущность изобретения
Техническая задача
[0012] Тем не менее, обнаружение краев и экстраполяция или интерполяция в направлении обнаруженного доминирующего края требуют множества довольно сложных вычислений, к примеру, делений, что повышает сложность и снижает легкость реализации кодирования и/или декодирования. Во многих вариантах применения необходимо, чтобы, по меньшей мере, декодер (устройство декодирования изображений) имел максимально возможно низкую сложность. В частности, использование в устройствах с ограниченным электропитанием и/или способами обработки требует реализаций с низкой сложностью кодера и/или декодера.
[0013] Настоящее изобретение создано, чтобы разрешить упомянутые проблемы, и цель настоящего изобретения состоит в том, чтобы предоставить способ пространственного прогнозирования, который может уменьшить сложность пространственного прогнозирования.
Решение задачи
[0014] Для достижения этой цели способ пространственного прогнозирования согласно аспекту настоящего изобретения является способом пространственного прогнозирования для пространственного прогнозирования пиксельного значения в каждой пиксельной позиции в текущем блоке, включенном в изображение, и способ включает в себя: обнаружение края, который перекрывает текущий блок, посредством получения горизонтального градиента и вертикального градиента между пикселями в блоке, смежном с текущим блоком; вычисление целочисленного наклона на основе, по меньшей мере, одного из горизонтального градиента и вертикального градиента, причем целочисленный наклон указывает целочисленное значение наклона обнаруженного края; определение субпиксельной позиции для каждой из пиксельных позиций в текущем блоке, причем субпиксельная позиция является пересечением между (i) линией, которая имеет вычисленный целочисленный наклон и проходит через пиксельную позицию, и (ii) границей смежного блока; и прогнозирование, для каждой из пиксельных позиций, пиксельного значения в пиксельной позиции на основе пиксельного значения, интерполированного в субпиксельной позиции, определенной для пиксельной позиции, при этом граница смежного блока является строкой или столбцом, который является ближайшим к текущему блоку, из множества строк или множества столбцов пикселей, включенных в смежный блок.
[0015] Таким образом, сначала вычисляется целочисленный наклон края, который перекрывает текущий блок (края, входящего в текущий блок), и субпиксельная позиция, соответствующая каждой из пиксельных позиций в текущем блоке, определяется согласно целочисленному наклону. Здесь, субпиксельная позиция для каждой из пиксельных позиций в текущем блоке может быть определена с использованием целочисленного наклона без деления. Таким образом, можно избегать деления для каждой из пиксельных позиций в текущем блоке. Другими словами, для каждой из пиксельных позиций в текущем блоке возможно избегать (i) умножения значения координат, горизонтального или вертикального для пиксельной позиции, на один из горизонтального компонента и вертикального компонента края, и (ii) деления результата умножения на другой из горизонтального компонента и вертикального компонента. Как результат, даже когда вычисление целочисленного наклона края требует деления только один раз, можно избегать деления для каждой из пиксельных позиций в текущем блоке, и сложность пространственного прогнозирования может быть уменьшена. Другими словами, сложные операции могут быть устранены.
[0016] Другими словами, способ пространственного прогнозирования согласно аспекту настоящего изобретения охарактеризован вычислением целочисленного наклона обнаруженного края только для текущего блока на основе, по меньшей мере, одного из вертикального градиента и горизонтального градиента и определением пересечения линии целочисленного наклона и строки или столбца граничных пикселей в соседних блоках.
[0017] Кроме того, при вычислении, один из горизонтального градиента и вертикального градиента может масштабироваться посредством 2 в степени с и целочисленный наклон может быть вычислен с использованием масштабированного одного из горизонтального градиента и вертикального градиента, где c является положительным целым числом, и при определении, субпиксельная позиция для пиксельной позиции может быть вычислена посредством умножения целочисленного наклона, образованного посредством масштабирования, на значение координат, горизонтальное или вертикальное для пиксельной позиции, которая должна быть прогнозирована в текущем блоке.
[0018] Поскольку целочисленный наклон вычисляется посредством масштабирования одного из вертикального градиента и горизонтального градиента посредством 2 в степени с, точность целочисленного наклона может быть повышена посредством масштабирования, когда целочисленный наклон вычисляется посредством деления, при котором значение, указывающее градиент, который должен быть масштабирован, используется в качестве числа, которое должно быть поделено (числителя). Кроме того, поскольку выполняется масштабирование посредством 2 в степени с, масштабирование может легко выполняться посредством сдвига битов значения влево. Кроме того, субпиксельная позиция, вычисленная посредством этого масштабирования, может легко заново масштабироваться посредством сдвига битов значения вправо. Кроме того, поскольку точность целочисленного наклона является большей, точность субпиксельной позиции может быть повышена.
[0019] Способ пространственного прогнозирования дополнительно может включать в себя вычисление значения с, используя функцию одного из горизонтального градиента и вертикального градиента.
[0020] Соответственно, может быть реализовано масштабирование с использованием надлежащего c. Например, целочисленный наклон вычисляется посредством деления, при котором значение, указывающее градиент, который должен быть масштабирован, используется в качестве числа, которое должно быть поделено (числителя). Когда значение больше, избыток целочисленного наклона может быть предотвращен посредством задания c так, что оно применяется к меньшему градиенту.
[0021] Кроме того, при вычислении результат деления может быть получен при обращении к таблице деления, сохраненной в запоминающем устройстве, и целочисленный наклон может быть вычислен с использованием полученного результата деления, причем при делении используют, в качестве делителя, значение, указывающее один из горизонтального градиента и вертикального градиента, и таблица деления указывает, для каждого предварительно определенного значения, предварительно определенное значение и результат деления с использованием предварительно определенного значения в качестве делителя.
[0022] Соответственно, поскольку для каждого из значений выполняется обращение к таблице деления, указывающей результат деления, при котором предварительно определенное значение используется в качестве делителя (знаменателя), результат может быть легко получен без фактического выполнения деления, при котором значение, указывающее один из горизонтального градиента и вертикального градиента, используется в качестве делителя (знаменателя). Целочисленный наклон может быть легко, т.е. с низкой сложностью, вычислен с использованием результата деления.
[0023] Здесь, запоминающее устройство может быть внутренним запоминающим устройством или внешним запоминающим устройством устройства, которое прогнозирует пиксельное значение (модуля интрапрогнозирования). Кроме того, в результате деления, указываемого в таблице деления, число, которое должно быть поделено (числитель), предпочтительно составляет 2 в степени a, где a является положительным целым числом. Также предпочтительно, что значение a является функцией от горизонтального или вертикального градиента, в частности функцией от градиента, применяемого в качестве делителя. Это обеспечивает выбор большего a для большего делителя и меньшего a для меньшего делителя, приводя к дополнительному повышению точности прогнозирования.
[0024] Кроме того, максимальное значение предварительно определенного значения, указываемого в таблице деления, может быть 2 в степени b, где b является целым числом, и при вычислении, когда значение, указывающее один из горизонтального градиента и вертикального градиента, используемого в качестве делителя, превышает 2 в степени b, один из горизонтального градиента и вертикального градиента может масштабироваться посредством сдвига битов значения вправо, чтобы получать результат деления с использованием, в качестве делителя, значения, указывающего масштабированное один из горизонтального градиента и вертикального градиента.
[0025] Соответственно, когда значение, указывающее один из горизонтального градиента и вертикального градиента в качестве делителя, превышает 2 в степени b, т.е. максимальное предварительно определенное значение, указываемое в таблице деления, биты значения, указывающего градиент, сдвигаются вправо, и результат деления с использованием значения, биты которого сдвинуты, в качестве делителя получается из таблицы деления. Таким образом, даже при ограничении в таблице деления, результат деления может быть легко получен сверх ограничения.
[0026] Кроме того, при вычислении, целочисленный наклон может быть вычислен посредством деления значения, указывающего один из горизонтального градиента и вертикального градиента, на значение, указывающее другое из горизонтального градиента и вертикального градиента, когда пиксельное значение в каждой из пиксельных позиций в текущем блоке прогнозируется, весовые коэффициенты могут задаваться согласно расстоянию, на границе, между субпиксельной позицией, определенной для пиксельной позиции, и каждой из полнопиксельных позиций, смежных с субпиксельной позицией, и пиксельное значение в субпиксельной позиции может быть интерполировано посредством задания соответствующего одного из весовых коэффициентов каждому пиксельному значению полнопиксельных позиций и вычисления взвешенного среднего пиксельных значений.
[0027] Соответственно, пиксельное значение в субпиксельной позиции может быть надлежащим образом интерполировано.
[0028] Кроме того, при вычислении, целочисленный наклон может быть вычислен только для текущего блока, и при определении, субпиксельная позиция может быть определена для каждой из пиксельных позиций в текущем блоке с использованием целочисленного наклона, который является общим для пиксельных позиций.
[0029] Поскольку один целочисленный наклон вычисляется для текущего блока, вычислительная нагрузка может быть уменьшена.
[0030] Настоящее изобретение может быть реализовано не только как такой способ пространственного прогнозирования, но также и как устройство и интегральная схема, каждая из которых прогнозирует пространство посредством способа пространственного прогнозирования как программа, заставляющая компьютер прогнозировать пространство согласно способу пространственного прогнозирования, и как носитель записи, который сохраняет программу. Кроме того, настоящее изобретение также может быть реализовано как устройство кодирования изображений и интегральная схема, каждая из которых кодирует изображение с использованием пространства, прогнозированного посредством способа пространственного прогнозирования, способ кодирования изображений для кодирования изображения как такового, программа, заставляющая компьютер кодировать изображение согласно способу кодирования изображений, и носитель записи, который сохраняет программу. Кроме того, настоящее изобретение также может быть реализовано как устройство декодирования изображений и интегральная схема, каждая из которых декодирует изображение с использованием пространства, прогнозированного посредством способа пространственного прогнозирования, способ декодирования изображений для декодирования изображения как такового, программа, заставляющая компьютер декодировать изображение согласно способу декодирования изображений, и носитель записи, который сохраняет программу.
[0031] Устройство пространственного прогнозирования согласно аспекту настоящего изобретения является устройством пространственного прогнозирования, которое пространственно прогнозирует пиксельное значение в каждой пиксельной позиции в текущем блоке, включенном в изображение, и устройство включает в себя: модуль обнаружения, выполненный с возможностью обнаруживать край, который перекрывает текущий блок, посредством получения горизонтального градиента и вертикального градиента между пикселями в блоке, смежном с текущим блоком; модуль вычисления, выполненный с возможностью вычислять целочисленный наклон на основе, по меньшей мере, одного из горизонтального градиента и вертикального градиента, причем целочисленный наклон указывает целочисленное значение наклона обнаруженного края; модуль определения, выполненный с возможностью определять субпиксельную позицию для каждой из пиксельных позиций в текущем блоке, причем субпиксельная позиция является пересечением между (i) линией, которая имеет вычисленный целочисленный наклон и проходит через пиксельную позицию, и (ii) границей смежного блока; и модуль прогнозирования, выполненный с возможностью прогнозировать, для каждой из пиксельных позиций, пиксельное значение в пиксельной позиции на основе пиксельного значения, интерполированного в субпиксельной позиции, определенной для пиксельной позиции, при этом граница смежного блока является строкой или столбцом, который является ближайшим к текущему блоку из множества строк или множества столбцов пикселей, включенных в смежный блок.
[0032] Кроме того, модуль вычисления может быть выполнен с возможностью масштабировать один из горизонтального градиента и вертикального градиента посредством 2 в степени с и вычислять целочисленный наклон с использованием масштабированного одного из горизонтального градиента и вертикального градиента, где c является положительным целым числом, и модуль определения может быть выполнен с возможностью вычислять субпиксельную позицию для пиксельной позиции посредством умножения целочисленного наклона, образованного посредством масштабирования, на значение координат, горизонтальное или вертикальное к пиксельной позиции, которая должна быть прогнозирована в текущем блоке.
[0033] Устройство пространственного прогнозирования дополнительно может включать в себя модуль вычисления коэффициентов, выполненный с возможностью вычислять значение с использованием функции от одного из горизонтального градиента (Gy) и вертикального градиента (Gx).
[0034] Кроме того, модуль вычисления может быть выполнен с возможностью получать результат деления при обращении к таблице деления, сохраненной в запоминающем устройстве, и вычислять целочисленный наклон с использованием полученного результата деления, причем деление использует, в качестве делителя, значение, указывающее один из горизонтального градиента (Gy) и вертикального градиента (Gx), и таблица деления указывает, для каждого предварительно определенного значения, предварительно определенное значение и результат деления с использованием предварительно определенного значения в качестве делителя.
[0035] Кроме того, максимальное значение предварительно определенного значения, указываемого в таблице деления, может быть 2 в степени b, где b является целым числом, и когда значение, указывающее один из горизонтального градиента (Gy) и вертикального градиента (Gx), используемого в качестве делителя, превышает 2 в степени b, модуль вычисления может быть выполнен с возможностью масштабировать один из горизонтального градиента и вертикального градиента посредством сдвига битов значения вправо, чтобы получать результат деления с использованием, в качестве делителя, значения, указывающего масштабированный один из горизонтального градиента и вертикального градиента.
[0036] Кроме того, модуль вычисления может быть выполнен с возможностью вычислять целочисленный наклон посредством деления значения, указывающего один из горизонтального градиента (Gy) и вертикального градиента (Gx), на значение, указывающее другое из горизонтального градиента и вертикального градиента, и модуль прогнозирования может быть выполнен с возможностью задавать весовые коэффициенты согласно расстоянию, на границе, между субпиксельной позицией, определенной для пиксельной позиции, и каждой из полнопиксельных позиций, смежных с субпиксельной позицией, и интерполировать пиксельное значение в субпиксельной позиции посредством задания соответствующего одного из весовых коэффициентов каждому пиксельному значению полнопиксельных позиций и вычисления взвешенного среднего пиксельных значений.
[0037] Кроме того, модуль вычисления может быть выполнен с возможностью вычислять целочисленный наклон только для текущего блока, и модуль определения может быть выполнен с возможностью определять субпиксельную позицию для каждой из пиксельных позиций в текущем блоке с использованием целочисленного наклона, который является общим для пиксельных позиций.
Преимущества изобретения
[0038] Способ пространственного прогнозирования согласно настоящему изобретению может уменьшить сложность пространственного прогнозирования.
Краткое описание чертежей
[0039] Фиг. 1 схематично иллюстрирует восемь режимов направленного прогнозирования, используемых для субблоков 4x4 пикселей.
Фиг. 2 является блок-схемой устройства кодирования изображений согласно варианту 1 осуществления настоящего изобретения.
Фиг. 3 является блок-схемой устройства декодирования изображений согласно варианту 1 осуществления.
Фиг. 4A иллюстрирует краевой вектор и его проекции на ортогональные оси X и Y согласно варианту 1 осуществления.
Фиг. 4B показывает растр из 4x4 пикселей блока, который должен быть экстраполирован, т.е. блока, который должен быть прогнозирован посредством экстраполяции, согласно варианту 1 осуществления.
Фиг. 4C иллюстрирует пример, в котором край входит в блок, который должен быть прогнозирован, с левой стороны согласно варианту 1 осуществления.
Фиг. 4D иллюстрирует другой пример краевого направления согласно варианту 1 осуществления.
Фиг. 5 является блок-схемой последовательности операций способа, указывающей процессы, выполняемые посредством модуля интрапрогнозирования согласно варианту 1 осуществления.
Фиг. 6 является примером системы согласно варианту 1 осуществления.
Фиг. 7 является блок-схемой последовательности операций способа, указывающей способ пространственного прогнозирования согласно аспекту настоящего изобретения.
Фиг. 8 иллюстрирует общую конфигурацию системы предоставления контента для реализации услуг распространения контента.
Фиг. 9 иллюстрирует общую конфигурацию системы цифровой широковещательной передачи.
Фиг. 10 иллюстрирует блок-схему примера конфигурации телевизионного приемника.
Фиг. 11 является блок-схемой, иллюстрирующей пример конфигурации модуля воспроизведения/записи информации, который считывает и записывает информацию с или на носитель записи, который является оптическим диском.
Фиг. 12 иллюстрирует пример конфигурации носителя записи, который является оптическим диском.
Фиг. 13A иллюстрирует пример сотового телефона.
Фиг. 13B иллюстрирует блок-схему примера конфигурации сотового телефона.
Фиг. 14 иллюстрирует структуру мультиплексированных данных.
Фиг. 15 схематично иллюстрирует, как каждый поток мультиплексируется в мультиплексированные данные.
Фиг. 16 подробнее иллюстрирует, как видеопоток сохраняется в потоке PES-пакетов.
Фиг. 17 иллюстрирует структуру TS-пакетов и исходных пакетов в мультиплексированных данных.
Фиг. 18 иллюстрирует структуру данных PMT.
Фиг. 19 иллюстрирует внутреннюю структуру информации мультиплексированных данных.
Фиг. 20 иллюстрирует внутреннюю структуру информации атрибутов потока.
Фиг. 21 иллюстрирует этапы для идентификации видеоданных.
Фиг. 22 является блок-схемой, иллюстрирующей пример конфигурации интегральной схемы для реализации способа кодирования изображений и способа декодирования изображений согласно каждому из вариантов осуществления.
Фиг. 23 иллюстрирует конфигурацию для переключения между частотами возбуждения.
Фиг. 24 иллюстрирует этапы для идентификации видеоданных и переключения между частотами возбуждения.
Фиг. 25 иллюстрирует пример таблицы соответствия, в которой стандарты видеоданных ассоциированы с частотами возбуждения.
Фиг. 26A иллюстрирует пример конфигурации для совместного использования модуля обработки сигналов.
Фиг. 26B иллюстрирует другой пример конфигурации для совместного использования модуля обработки сигналов.
Подробное описание вариантов осуществления
[0040] Варианты осуществления для реализации настоящего изобретения будут описаны со ссылкой на чертежи.
[0041] Первый вариант осуществления
Фиг. 2 является блок-схемой, иллюстрирующей пример кодера 100 согласно варианту 1 осуществления. Кодер 100 включает в себя модуль 105 вычитания, модуль 110 квантования с преобразованием, модуль 120 обратного квантования и обратного преобразования, модуль 125 сложения, фильтр 130 удаления блочности, запоминающее устройство 140, интерполяционный фильтр 150, модуль 160 прогнозирования с компенсацией движения, модуль 165 оценки движения, модуль 170 интрапрогнозирования, модуль 175 переключения интра-/интеррежима, модуль 180 расчетов для постфильтра и модуль 190 энтропийного кодирования.
[0042] Модуль 105 вычитания сначала определяет разности (сигнал ошибки прогнозирования, остаточный сигнал или блок ошибки прогнозирования) между текущим блоком, который должен быть кодирован, входного видеосигнала (входного сигнала) и соответствующим прогнозированным блоком (сигналом прогнозирования), прогнозированным для текущего блока. Сигнал прогнозирования (прогнозированный блок) получают либо посредством временного прогнозирования (интерпрогнозирования), либо посредством пространственного прогнозирования. Тип прогнозирования может варьироваться на покадровой основе, в расчете на серию последовательных макроблоков или в расчете на макроблок.
[0043] Прогнозирующее кодирование с использованием временного прогнозирования упоминается как интеркодирование и прогнозирующее кодирование с использованием пространственного прогнозирования упоминается как интракодирование. Тип прогнозирования для видеокадра может задаваться пользователем или выбираться посредством кодера 100 с тем, чтобы достигать возможно высокого выигрыша от сжатия. Переключатель 175 интра-/интеррежима предоставляет соответствующий сигнал прогнозирования в модуль 105 вычитания согласно выбранному типу прогнозирования. Сигнал прогнозирования с использованием временного прогнозирования извлекается из ранее кодированных изображений, которые сохраняются в запоминающем устройстве 140. Сигнал прогнозирования с использованием пространственного прогнозирования извлекается из значений граничных пикселей в соседних блоках того же кадра, которые ранее кодированы, декодированы и сохранены в запоминающем устройстве 140. Запоминающее устройство 140 тем самым работает в качестве модуля задержки, который дает возможность сравнения между текущими значениями сигналов (пиксельными значениями), которые должны быть кодированы, и значениями сигналов прогнозирования (пиксельными значениями), сформированными из предыдущих значений сигналов. Запоминающее устройство 140 может сохранять множество ранее кодированных (и декодированных) кадров. Модуль 110 квантования с преобразованием преобразует разности между входным сигналом и сигналом прогнозирования в коэффициенты (частотные коэффициенты) и квантует разности. Разности представляются посредством сигнала ошибки прогнозирования или остаточного сигнала. Модуль 190 энтропийного кодирования выполняет энтропийное кодирование для квантованных коэффициентов (кодированного видеоизображения или кодированной видеопоследовательности), чтобы дополнительно уменьшать объем данных без потерь. Это, главным образом, достигается посредством применения кода к кодовым словам переменной длины, при этом длина кодового слова выбирается на основе вероятности его появления. Модуль 190 энтропийного кодирования выводит кодированный сигнал (поток битов), включающий в себя энтропийно кодированное видео.
[0044] Интракодированные изображения (называемые также изображениями I-типа или I-кадрами) состоят только из макроблоков, которые интракодированы, т.е. интракодированные изображения могут быть декодированы независимо от других ранее декодированных изображений. Интракодированные изображения обеспечивают устойчивость к ошибкам для кодированной видеопоследовательности (кодированного видеоизображения), поскольку они восстанавливают кодированную видеопоследовательность после ошибок, возможно распространяемых между кадрами вследствие временного прогнозирования. Кроме того, I-кадры предоставляют произвольный доступ в последовательности кодированных видеоизображений.
[0045] Модуль 170 интрапрогнозирования использует предварительно заданный набор режимов интрапрогнозирования. Некоторые режимы интрапрогнозирования прогнозируют текущий блок с использованием граничных пикселей уже кодированных соседних блоков. Другие режимы интрапрогнозирования, такие как, например, сопоставление с шаблонами, используют область поиска, состоящую из уже кодированных пикселей, принадлежащих тому же кадру.
[0046] Предварительно заданный набор режимов интрапрогнозирования включает в себя некоторые режимы направленного пространственного интрапрогнозирования. Различные режимы направленного интрапрогнозирования означают различные направления применяемого двумерного прогнозирования. Это дает возможность эффективного пространственного интрапрогнозирования в случае различных краевых направлений. Модуль 105 вычитания вычитает сигнал прогнозирования, полученный посредством такого интрапрогнозирования, из входного сигнала, как описано выше. Кроме того, модуль 170 интрапрогнозирования выводит информацию режима интрапрогнозирования (не показано на фиг. 2), указывающую режим интрапрогнозирования, в модуль 190 энтропийного кодирования. Модуль 190 энтропийного кодирования энтропийно кодирует информацию режима интрапрогнозирования и выводит энтропийно кодированную информацию режима интрапрогнозирования вместе с кодированным сигналом. Модуль 170 интрапрогнозирования согласно варианту 1 осуществления дополнительно выполняет отличительное пространственное прогнозирование, помимо такой обработки. Ниже описывается отличительное пространственное прогнозирование.
[0047] В кодер 100 включен модуль декодирования для получения декодированного сигнала (локального декодированного сигнала). Другими словами, кодер 100 включает в себя обратное квантование и обратное преобразование 120, так что декодирование выполняется согласно обработке кодирования. Модуль 120 обратного квантования и обратного преобразования выполняет обратное квантование и обратное ортогональное преобразование (обратное частотное преобразование) для квантованного значения, полученного посредством выполнения ортогонального преобразования (частотного преобразования) и квантования для сигнала ошибки прогнозирования. Как результат, модуль 120 обратного квантования и обратного преобразования формирует и выводит декодированный сигнал ошибки прогнозирования.
[0048] Декодированный сигнал ошибки прогнозирования отличается от исходного сигнала ошибки прогнозирования вследствие ошибки квантования, называемой также шумом квантования. Модуль 125 сложения суммирует декодированный сигнал ошибки прогнозирования с сигналом прогнозирования, чтобы получить восстановленный сигнал (восстановленное изображение). Чтобы поддерживать совместимость между кодером 100 (устройством кодирования изображений) и декодером (устройством декодирования изображений), составляющие элементы интерполяционного фильтра 150, модуля 170 интрапрогнозирования и модуля 160 прогнозирования с компенсацией движения получают сигнал прогнозирования на основе кодированного и затем декодированного входного сигнала (декодированного сигнала), который известен как в кодере 100, так и в декодере. Вследствие квантования шум квантования накладывается на восстановленный сигнал. Вследствие поблочного кодирования наложенный шум зачастую имеет характеристики блочности, которые приводят, в частности, для сильного квантования, к видимым границам блоков в восстановленном изображении (изображении, указываемом посредством восстановленного сигнала). Чтобы уменьшать эти артефакты, фильтр 130 удаления блочности выполняет фильтрацию для удаления блочности для каждого блока восстановленных изображений. Фильтр 130 удаления блочности сохраняет восстановленный сигнал, для которого выполнена фильтрация для удаления блочности, в качестве декодированного сигнала в запоминающем устройстве 140.
[0049] Для декодирования изображения, кодированные посредством интеркодирования (интеркодированные изображения), требуют ранее кодированного и последующего декодированного изображения (изображения, указываемого посредством декодированного сигнала). Временное прогнозирование (интерпрогнозирование) может быть выполнено однонаправленно, т.е. с использованием только кадров, упорядоченных по времени перед текущим кадром, который должен быть кодирован, или двунаправленно, т.е. с использованием также кадров после текущего кадра. Однонаправленное временное прогнозирование приводит к интеркодированным изображениям, называемым P-кадрами (P-изображениями); и двунаправленное временное прогнозирование приводит к интеркодированным изображениям, называемым B-кадрами (B-изображениями). В общем, интеркодированное изображение может состоять из любых из макроблоков P-, B- или даже I-типа. Интеркодированный макроблок (P- или B-макроблок) прогнозируется посредством использования модуля 160 прогнозирования с компенсацией движения. Во-первых, блок с наилучшим совпадением находится для текущего блока в ранее кодированных и декодированных кадрах посредством модуля 165 оценки движения. Затем модуль 160 прогнозирования с компенсацией движения выводит блок с наилучшим совпадением в качестве сигнала прогнозирования. Кроме того, модуль 165 оценки движения выводит в модуль 160 прогнозирования с компенсацией движения, данные движения, которые указывают относительное смещение между текущим блоком и его блоком с наилучшим совпадением и являются данными, имеющими трехмерную форму (одна временная ось, две пространственных оси) в потоке битов. Чтобы оптимизировать точность прогнозирования, интерполяционный фильтр 150 преобразует разрешение опорного изображения (декодированного изображения) в пространственное субпиксельное разрешение, например полупиксельное или четвертьпиксельное разрешение. Другими словами, интерполяционный фильтр 150 интерполирует субпикселы в опорном изображении. Соответственно, модуль 165 оценки движения оценивает вектор движения с субпиксельной точностью.
[0050] Модуль 110 квантования с преобразованием выполняет ортогональное преобразование (частотное преобразование) и квантует сигнал ошибки прогнозирования, указывающий разности между текущим входным сигналом и сигналом прогнозирования, в режимах интра- и интеркодирования, приводя к формированию квантованного значения, т.е. квантованных коэффициентов (частотных коэффициентов). В общем, используют ортогональное преобразование, к примеру, двумерное дискретное косинусное преобразование (DCT) или его целочисленная версия, поскольку оно эффективно уменьшает корреляцию естественных видеоизображений. После преобразования низкочастотные компоненты обычно представляют большую важность для качества изображений, чем высокочастотные компоненты, так что больше битов может расходоваться для кодирования низкочастотных компонентов, чем для кодирования высокочастотных компонентов. Модуль 190 энтропийного кодирования преобразует двумерную матрицу квантованных значений в одномерный массив. Типично, это преобразование выполняется посредством так называемого зигзагообразного сканирования, которое начинается с DC-коэффициента в верхнем левом углу двумерного массива и сканирует двумерный массив в предварительно определенной последовательности, завершающейся AC-коэффициентом в нижнем правом углу. Поскольку энергия типично концентрируется в верхней левой части двумерной матрицы коэффициентов согласно нижним частотам, зигзагообразное сканирование приводит к массиву, в котором обычно последние значения являются нулем. Это дает возможность эффективного кодирования с использованием кодов длин серий в качестве части фактического энтропийного кодирования /до фактического энтропийного кодирования.
[0051] Кроме того, модуль 110 квантования с преобразованием использует скалярное квантование, которое может управляться посредством параметра квантования (QP) и настраиваемой матрицы квантования (QM). Модуль 110 квантования с преобразованием выбирает один из 52 параметров квантования согласно коэффициентам, которые должны быть квантованы, для каждого макроблока. Помимо этого, матрица квантования специально спроектирована с возможностью поддерживать определенные частоты в источнике, чтобы не допускать потери качества изображений. Матрица квантования может быть приспособлена к кодированной видеопоследовательности и сигнализирована вместе с потоком битов.
[0052] Поток битов (кодированный сигнал) включает в себя два функциональных уровня, уровень кодирования видео (VCL) и уровень абстракции сети (NAL). VCL предоставляет функциональность кодирования, как вкратце описано выше. NAL инкапсулирует информационные элементы в стандартизированные блоки, называемые NAL-блоками, согласно их дальнейшему варианту применения, такому как передача по каналу или сохранение в устройстве хранения. Информационными элементами являются, например, кодированный сигнал ошибки прогнозирования (кодированное видеоизображение) или другая информация, необходимая для декодирования кодированного видеоизображения (например, тип прогнозирования, параметр квантования и векторы движения). Существуют VCL NAL-блоки, содержащие кодированное видеоизображение и связанную информацию, а также не-VCL-блоки, инкапсулирующие дополнительные данные, к примеру, набор параметров, связанный со всей кодированной видеопоследовательностью, или дополнительную информацию для улучшения (SEI), предоставляющую дополнительную информацию, которая может быть использована для того, чтобы повышать производительность декодирования.
[0053] Модуль 180 расчетов для постфильтра рассчитывает информацию постфильтра, к примеру, коэффициенты фильтрации для повышения качества изображений на основе декодированного сигнала и входного сигнала и выводит информацию постфильтра в модуль 190 энтропийного кодирования. Модуль 180 расчетов для постфильтра отправляет информацию постфильтра через SEI потока битов (SEI-сообщение). Другими словами, модуль 180 расчетов для постфильтра сравнивает локально декодированный сигнал и исходный входной сигнал так, что кодер 100 определяет информацию постфильтра. В общем, информация постфильтра является информацией для предоставления возможности декодеру устанавливать надлежащий фильтр. Информацией постфильтра могут быть сами коэффициенты фильтрации или другая информация, предоставляющая возможность устанавливания коэффициентов фильтрации. Информация постфильтра, которая выводится посредством модуля 180 расчетов для постфильтра, также подается в модуль 190 энтропийного кодирования так, что она кодируется и вставляется в кодированный сигнал.
[0054] Фиг. 3 является блок-схемой, иллюстрирующей пример декодера 200, который является устройством декодирования изображений согласно варианту 1 осуществления. Декодер 200 является устройством, которое декодирует кодированный сигнал, сформированный посредством кодера 100, и включает в себя модуль 220 обратного квантования и обратного преобразования, модуль 225 сложения, фильтр 230 удаления блочности, запоминающее устройство 240, интерполяционный фильтр 250, модуль 260 прогнозирования с компенсацией движения, модуль 270 интрапрогнозирования, переключатель 275 интра-/интеррежима, постфильтр 280 и модуль 290 энтропийного декодирования. Модуль 220 обратного квантования и обратного преобразования, модуль 225 сложения, фильтр 230 удаления блочности, запоминающее устройство 240, интерполяционный фильтр 250, модуль 260 прогнозирования с компенсацией движения, модуль 270 интрапрогнозирования и переключатель 275 интра-/интеррежима выполняют обработку, идентичную обработке модуля 120 обратного квантования и обратного преобразования, модуля 125 сложения, фильтра 130 удаления блочности, запоминающего устройства 140, интерполяционного фильтра 150, модуля 160 прогнозирования с компенсацией движения, модуля 170 интрапрогнозирования, модуля 175 переключения интра-/интеррежима, которые включаются в кодер 100, соответственно.
[0055] Более конкретно, модуль 290 энтропийного декодирования получает поток битов, который является кодированным сигналом (входным сигналом в декодер 200). Модуль 290 энтропийного декодирования энтропийно декодирует квантованные значения (кодированное видеоизображение), информационные элементы, необходимые для декодирования, к примеру данные движения, режим прогнозирования и т.д. и информацию постфильтра. Модуль 290 энтропийного декодирования извлекает, из потока битов, информацию режима интрапрогнозирования, указывающую тип/режим пространственного прогнозирования, применяемый к блоку, который должен быть декодирован, по мере необходимости. Модуль 290 энтропийного декодирования выводит извлеченную информацию режима интрапрогнозирования в модуль 270 интрапрогнозирования. Модуль 220 обратного квантования и обратного преобразования получает квантованные значения, размещаемые в одномерном массиве, и обратно сканирует квантованные значения, чтобы получать двумерную матрицу. Кроме того, модуль 220 обратного квантования и обратного преобразования выполняет обратное квантование и обратное преобразование для квантованных значений, чтобы получать декодированный сигнал ошибки прогнозирования, соответствующий разности, полученной посредством вычитания сигнала прогнозирования из входного сигнала кодера 100.
[0056] Модуль 225 сложения получает сигнал прогнозирования либо из модуля 260 прогнозирования с компенсацией движения, либо или из модуля 270 интрапрогнозирования. Переключатель 275 интра-/интеррежима переключается между временным прогнозированием, выполняемым посредством модуля 260 прогнозирования с компенсацией движения, и пространственным прогнозированием, выполняемым посредством модуля 270 интрапрогнозирования. Другими словами, прогнозирование переключается согласно информации переключения для сигнализации прогнозирования, применяемого посредством кодера 100. Информация переключения дополнительно включает в себя информацию, необходимую для прогнозирования (i) типа прогнозирования в случае интрапрогнозирования (информации режима интрапрогнозирования) и (ii) данных движения в случае прогнозирования с компенсацией движения. В зависимости от текущего значения вектора движения, интерполяция пиксельных значений может быть необходима для того, чтобы выполнять прогнозирование с компенсацией движения. Эта интерполяция выполняется посредством интерполяционного фильтра 250. Модуль 225 сложения суммирует декодированный сигнал ошибки прогнозирования в пространственной области с сигналом прогнозирования, полученным либо из модуля 260 прогнозирования с компенсацией движения, либо из модуля 270 интрапрогнозирования.
[0057] Фильтр 230 удаления блочности получает восстановленное изображение (восстановленный сигнал), полученное посредством сложения, выполняет фильтрацию для удаления блочности для изображения и сохраняет результирующий декодированный сигнал в запоминающем устройстве 240. Декодированный сигнал применяется к временному или пространственному прогнозированию следующих блоков. Постфильтр 280 получает информацию постфильтра для установления постфильтрации. Постфильтр 280 затем выполняет постфильтрацию для декодированного сигнала, чтобы дополнительно повышать качество изображений. Соответственно, входной сигнал, который является кодированным сигналом, декодируется, и результат декодирования выводится в качестве выходного сигнала.
[0058] Отличительная обработка, выполненная посредством модулей 170 и 270 интрапрогнозирования согласно варианту 1 осуществления, описывается подробно.
[0059] Задача, лежащая в основе настоящего изобретения, основана на таком наблюдении, что эффективность пространственного (интра-) прогнозирования, применяемого к кодированию изображений и видео, может быть увеличена посредством повышения точности обнаружения краев и последующего прогнозирования. С другой стороны, улучшение обнаружения и прогнозирования краев требует большей вычислительной мощности и применения более сложных операций, таких как деления. Это может приводить к трудностям в эффективной реализации таких более сложных подходов. Например, использование только целочисленной арифметики для обработки изображений ускоряет кодирование и декодирование и обеспечивает эффективные реализации для процессоров общего назначения, процессоров цифровых сигналов или в специализированных либо программируемых аппаратных средствах. Тем не менее, в зависимости от точности целого числа, такие операции, как умножения и деления, могут приводить к избыткам и/или сниженной точности.
[0060] Чтобы повышать производительность прогнозирования интрапрогнозирования, модули 170 и 270 интрапрогнозирования используют улучшенное интрапрогнозирование. В частности, улучшенное интрапрогнозирование основывается на обнаружении краев и вычисляет пересечение между границей блока (или их множеством) и краем, обнаруженным в качестве доминирующего. Пересечение может находиться в субпиксельной позиции, и интерполяция выполняется на основе такой субпиксельной позиции. Соответствующий пример способа интрапрогнозирования раскрывается, например, в PTL 1. Модули 170 и 270 интрапрогнозирования могут более эффективно выполнять направленное пространственное прогнозирование с низкой сложностью по сравнению со способом интрапрогнозирования, раскрытым в PTL 1.
[0061] В общем, края в изображении могут быть обнаружены посредством определения градиентного векторного поля (градиентного вектора или градиентного поля) изображения (между пикселями). Градиентный вектор является большим на краю и является перпендикулярным к нему. Одним из самых популярных подходов к обнаружению градиентного поля является свертка изображения с помощью вертикальных и горизонтальных операторов Собела (Sobel). Операторы выражаются посредством следующих масок (уравнения 1 и 2).
[0062] Математическое выражение 1
(уравнение 1)
[0063]
Математическое выражение 2
(уравнение 2)
[0064] В частности, вертикальная координата градиентного вектора (вертикальная координата или вертикальный градиент) Gx и горизонтальная координата градиентного вектора (горизонтальная координата или горизонтальный градиент) Gy в конкретном пикселе p(x, y) затем получаются посредством фильтрации пикселя p(x, y) с помощью вертикальной маски Sx Собела и горизонтальной маски Sy Собела, соответственно. Многие варианты применения используют оператор Собела для получения градиентного поля. Тем не менее, настоящее изобретение не ограничено обнаружением градиентного поля посредством оператора Собела. В общем, может использоваться любой способ обнаружения краев, который предоставляет градиентное поле. Например, могут быть использованы маски с размерами, отличными от оператора Собела, к примеру, могут быть использованы 2x2 или 4x4 или даже большие маски. Выбор конкретной маски зависит от требуемых результатов. Использование больших масок может прибавлять точность обнаружения краев и подавлять обнаружение небольших локальных краев, но с другой стороны, оно повышает вычислительную сложность. Альтернативно, для обнаружения краев могут использоваться маски, отличные от маски Собела, такие как оператор Щарра (Scharr) или операторы на основе производных высшего порядка.
[0065] После получения вертикальной координаты Gx и горизонтальной координаты Gy градиента G, для множества пикселей блоков, окружающих блок, который должен быть прогнозирован, могут быть определены доминирующий градиент или доминирующий краевой вектор. Доминирующий краевой вектор (называемый просто краем) E с горизонтальной координатой (горизонтальными компонентами) Ex и вертикальной координатой (вертикальными компонентами) Ey является перпендикулярным градиентному вектору G. Соответственно, размеры горизонтальных компонентов Ex и вертикальных компонентов Ey доминирующего краевого вектора E соответствуют размерам горизонтального градиента Gy и вертикального градиента Gx, соответственно (например, Ex=-Gy, Ey=Gx для вращения против часовой стрелки). Типично, доминирующий край для текущего блока, который должен быть прогнозирован, определяется как край с максимум-нормой вне краев (краев, которые перекрывают текущий блок), которые пересекают текущий блок. Тем не менее, также могут быть использованы другие способы, например, рассмотрение взвешенного среднего или краевого направления, обнаруженного для большой части пикселей, и т.д.
[0066] Следует отметить, что вычисление градиента не обязательно выполняется для всех пикселей смежных блоков (соседних блоков, смежных с текущим блоком, который должен быть прогнозирован). В общем, преимущественным является вычисление только градиентного вектора для пикселей около границ соседнего блока, смежного с блоком, который должен быть интерполирован (текущего блока, который должен быть прогнозирован). Посредством вычисления градиентного вектора только для поднабора пикселей в смежном блоке, уменьшается сложность. В частности, строки и/или столбцы, непосредственно смежные с текущим блоком, не являются подходящими для применения маски Собела (или других масок обнаружения градиентного вектора), поскольку маска только частично перекрывает смежный блок. Следовательно, предпочтительно вторая и/или третья ближайшая строка или столбец пикселей, смежных с текущим блоком, используются для того, чтобы вычислять градиентный вектор. Тем не менее, настоящее изобретение не ограничено этим и также могут быть использованы другие пиксели в смежном блоке.
[0067] Кроме того, для прогнозирования имеют значение только края, входящие в блок, который должен быть прогнозирован, так что обнаружение краев около границ также снижает риск обнаружения ложного края.
[0068] Фиг. 4A иллюстрирует краевой вектор E и его проекции Ex и Ey (соответствующие градиентам Gy и Gx, соответственно) на ортогональные оси X и Y. Фиг. 4B показывает растр из 4x4 пикселей блока, который должен быть экстраполирован (прогнозирован). В частности, белые круги и черный квадрат 440 представляют пиксели блока, который должен быть экстраполирован. Черный квадрат 440 представляет текущий пиксель p(x, y), значение которого должно экстраполироваться в нижеприведенном примере. Ортогональная ось X идет через нижний ряд пикселей, принадлежащих блоку, смежному с блоком, который должен быть прогнозирован на его верхней стороне. Пиксели строки проиллюстрированы как черные треугольники или черные круги. Ортогональная ось Y идет через самый правый столбец пикселей, принадлежащих блоку, смежному с блоком, который должен быть прогнозирован на его левой стороне. Пиксели столбца проиллюстрированы как черные круги.
[0069] Стрелка 430 иллюстрирует край, обнаруженный в качестве доминирующего края (доминирующего краевого вектора) E, входящего в блок, который должен быть прогнозирован. Пунктирная стрелка иллюстративно экстраполирует доминирующий край вплоть до текущего пикселя p(x, y). Доминирующий край E входит в блок, который должен быть прогнозирован, под углом α в субпикселе 450 между двумя полными пикселями (целочисленным пикселем) 410 и 420 (проиллюстрированы как два черных треугольника). Субпиксель 450 должен быть интерполирован на основе его расстояния до каждого из двух ближайших полных пикселей 410 и 420.
[0070] Чтобы сохранять резкость, позицию и направление края в максимально возможной степени, текущий пиксель 440 экстраполируется вдоль краевого направления на основе значений обоих из полных пикселей 410 и 420.
[0071] Математическое выражение 3
(уравнение 3)
[0072] Здесь, w1 и w2 являются весовыми коэффициентами, которые предпочтительно определяются на основе расстояния от пересечения (субпикселя) 450 до каждого из полных пикселей 410 и 420. Предполагается, что точка (0,0) находится рядом с верхним левым углом блока, который должен быть прогнозирован. В уравнении 3, значение, умноженное на весовой коэффициент w1 первой правой стороны, указывает пиксельное значение полного пикселя 420, а значение, умноженное на весовой коэффициент w2 второй правой стороны, указывает пиксельное значение полного пикселя 410. Кроме того, δx указывает положительное значение, когда край идет вдоль направления сверху слева вниз вправо в качестве края 430, как проиллюстрировано на фиг. 4B. Кроме того, δx указывает отрицательное значение, когда край идет вдоль направления сверху справа вниз влево. Например, весовые коэффициенты w1 и w2 могут вычисляться, как показано в нижеприведенном уравнении 4.
[0073] Математическое выражение 4
и:
(уравнение 4)
[0074] Здесь, δx является расстоянием между координатой X текущего пикселя 440 и координатой X пересечения 450. Оператор, указываемый посредством выражения 5, обозначает операцию округления в меньшую сторону, которая возвращает для реального операнда его ближайшее меньшее целое число (в этом примере, равное 1). Оператор, указываемый посредством выражения 6, обозначает операцию округления в большую сторону, которая возвращает для реального операнда его ближайшее большее целое число (в этом примере, равное 2).
[0075] Математическое выражение 5
выражение (5)
[0076] Математическое выражение 6
(выражение 6)
[0077] Как можно видеть на фиг. 4B, наклон k края 430 может вычисляться, как показано в нижеприведенном уравнении 7.
[0078] Математическое выражение 7
(уравнение 7)
[0079] Таким образом, расстояние δx может вычисляться, как показано в нижеприведенном уравнении 8.
[0080] Математическое выражение 8
(уравнение 8)
[0081] Таким образом, вычисление δx требует деления. В общем, для каждого пикселя блока, который должен быть прогнозирован, вычисляется расстояние δx от координаты X пикселя, который должен быть прогнозирован, до координаты X пересечения между краем и строкой пикселей верхнего соседнего блока (пересечения, которое должно быть интерполировано между пикселями в строке). На основе вычисленного расстояния δx, затем текущий пиксель 440, т.е. пиксельное значение текущего пикселя 440 p(x, y) прогнозируется в качестве p(x, y)=p(x-δx, 0), что означает, что текущий пиксель 440 (пиксельное значение текущего пикселя 440) экстраполируется в качестве значения интерполированного субпикселя 450.
[0082] Согласно варианту 1 осуществления все вышеуказанные параметры типично являются целочисленными значениями с данной точностью и применяемые операции являются целочисленными операциями. Например, параметры Ex и Ey могут быть представлены посредством соответствующих переменных длиной 8 битов. В таком случае, расстояние δx также вычисляется с использованием целочисленной арифметики посредством выполнения целочисленного умножения y·Ex и затем посредством деления результата на Ey. При целочисленном арифметическом делении результат также является целым числом, так что целочисленное деление может немного уменьшать точность. В общем, уменьшение точности становится большим для меньших значений, которые должны быть поделены (y·Ex), и для больших значений делителя (Ey).
[0083] Чтобы сокращать число операций, выполняемых для прогнозирования блока пикселей, как описано выше, число делений, которые должны быть выполнены, сокращается посредством вычисления сначала наклона k края E, который является общим для всех пикселей блока, который должен быть прогнозирован. Вычисленный наклон k должен быть сохранен в качестве целочисленного наклона K=int(Ex/Ey) с предварительно заданной точностью. Вычисленный целочисленный наклон K затем используется для того, чтобы вычислять расстояние δx для текущего пикселя, который должен быть прогнозирован, как показано в нижеприведенном уравнении 9.
[0084] Математическое выражение 9
(уравнение 9)
[0085] Здесь, обозначение "int" подчеркивает тот факт, что операнд является целым числом с предварительно заданной точностью. Соответственно, деление, используемое для вычисления наклона, выполняется только один раз для всего блока пикселей, которые должны быть прогнозированы. Кроме того, поскольку координата Y пикселя, который должен быть прогнозирован, остается одной и той же в одной и той же строке пикселей, расстояние δx должно быть вычислено только один раз в расчете на строку пикселей в блоке, который должен быть интерполирован (прогнозирован). Точность целого числа типично выбирается согласно окружению реализации. Она может составлять, например, 8 битов, что является обычным, в частности, при обработке изображений, поскольку входные пиксельные компоненты также типично дискретизируются с использованием 8 битов. Тем не менее, точность также может быть большей, к примеру, 12, 16 или любым другим числом битов или даже меньшим 8 битов.
[0086] Тем не менее, выполнение целочисленного деления Ex/Ey только один раз поблочно и затем получение построчно расстояния δx может приводить к уменьшению точности относительно решения, в котором сначала выполняется целочисленное умножение y·Ex, а затем результат делится на Ey. Это вызвано посредством того факта, что число Ex, которое должно быть поделено, меньше. Кроме того, последующее умножение целочисленного наклона на координату Y приводит к дополнительному мультипликативному увеличению неточности по-разному для различных строк. В частности, точность должна быть меньшей для больших значений y.
[0087] Чтобы дополнительно повышать точность вычисления при одновременном сохранении преимущества одного деления поблочно, целочисленный наклон получается посредством умножения числа, которое должно быть поделено, на коэффициент масштабирования 2c, как указано посредством уравнения 10, где c является целым числом. δxblock обозначает целочисленный наклон, полученный посредством умножения коэффициента масштабирования.
[0088] Математическое выражение 10
(уравнение 10)
[0089] Предпочтительно, c является положительным целым числом. Значение c может быть, например, любым значением, к примеру, значением между 1 и 4. Тем не менее, другие значения также являются возможными. Конкретное значение может быть выбрано с учетом размера блока. Например, возможное значение для c может составлять 4. Наибольший размер блока составляет 16x16, приводя к наибольшему значению y в 16 (24=16). Аналогично, значение c для блоков размера 4x4 может составлять 2 и значение может составлять 3 для блоков размера 8x8. Это умножение является эквивалентным сдвигу, влево, c битов числа Ex, которое должно быть поделено. Это увеличивает значение, которое должно быть поделено, и, таким образом, деление на делитель Ey должно приводить к выигрышу с точки зрения точности. Расстояние δx затем может быть получено, как показано в нижеприведенном уравнении 11.
[0090] Математическое выражение 11
(уравнение 11)
[0091] Здесь, соответствующие весовые коэффициенты w1 и w2 могут вычисляться, как показано в нижеприведенных уравнениях 12 и 13.
[0092] Математическое выражение 12
(уравнение 12)
[0093] Математическое выражение 13
(уравнение 13)
[0094] Альтернативно, соответствующие весовые коэффициенты w1 и w2 могут вычисляться, как показано в нижеприведенных уравнениях 14 и 15.
[0095] Математическое выражение 14
(уравнение 14)
[0096] Математическое выражение 15
(уравнение 15)
[0097] Здесь, операция ">>" обозначает сдвиг c битов вправо, что соответствует новому масштабированию обратно посредством деления результата на применяемый коэффициент масштабирования 2c. Операция "<<" обозначает сдвиг c битов влево, что соответствует умножению на коэффициент масштабирования 2c. Операция "and" обозначает побитовый логический оператор AND.
[0098] Значения δx и весовых коэффициентов w1 и w2 являются несдвинутыми и масштабируются на коэффициент 2c. Сдвиг вправо, чтобы делить окончательный результат на применяемый коэффициент масштабирования 2c, должен выполняться после интерполяции субпикселя. Другими словами, пиксельное значение текущего пикселя p(x, y) может вычисляться, как показано в нижеприведенном уравнении 16.
[0099] Математическое выражение 16
(уравнение 16)
[0100] Здесь, смещение 2c-1 служит для округления конечного значения до ближайшего целого числа. В случае если точность значения Ex повышена заранее посредством умножения его на 2p, где p является целым числом (6 - хорошее значение), повышение точности через коэффициент 2c служит для единственной цели деления на 2c ошибки, введенной через умножение на y. Например, значение целочисленного наклона получается посредством нижеприведенного уравнения 17.
[0101] Математическое выражение 17
(уравнение 17)
[0102] Здесь, расстояние δx затем может быть получено, как показано в нижеприведенном уравнении 18. Ошибка, введенная посредством операции деления, умножается на y/2c, и расстояние δx масштабируется на коэффициент 2p. Масштабирование требуется для того, чтобы вычислять расстояние в целочисленной арифметике при сохранении возможности иметь субпиксельную позицию для пересечения.
[0103] Математическое выражение 18
(уравнение 18)
[0104] Весовые коэффициенты w1 и w2 могут быть получены, как показано в нижеприведенных уравнениях 19 и 20.
[0105] Математическое выражение 19
(уравнение 19)
[0106] Математическое выражение 20
(уравнение 20)
[0107] Пиксельное значение текущего пикселя p(x, y), который является прогнозным значением, может вычисляться, как показано в нижеприведенном уравнении 21.
[0108] Математическое выражение 21
(уравнение 21)
[0109] Это вычисление расстояния δx от координаты X текущего пикселя 440, который должен быть прогнозирован, до координаты X пересечения края со строкой пикселей, смежной с вышерасположенным блоком, который должен быть прогнозирован, обеспечивает повышение точности деления. Тем не менее, вследствие умножения на y, умножения могут приводить к довольно высоким значениям, что, с другой стороны, может приводить к переполнению, в зависимости от целочисленной точности, поддерживаемой посредством вычислительного окружения.
[0110] Чтобы поддерживать повышенную точность деления при недопущении переполнения, коэффициент масштабирования в 2c выбирается согласно значению вертикального градиента Gy, согласно значению Ex, как указано посредством уравнения 22. Согласно варианту 1 осуществления каждый из модулей 170 и 270 интрапрогнозирования может включать в себя модуль вычисления коэффициентов, который вычисляет c и коэффициент масштабирования в 2c.
[0111] Математическое выражение 22
(уравнение 22)
[0112] Здесь, функция f() является произвольной функцией. Предпочтительно, значение c является меньшим для больших значений Ex. Один пример для функции f() выражается посредством уравнения 23.
[0113] Математическое выражение 23
(уравнение 23)
[0114] В таком случае, c равно 8 для Ex, равного 1, c равно 1 для Ex, равного 128, и c равно 0 для Ex, равного 256. Если больше битов доступно в системе, можно задавать следующую функцию нижеприведенного уравнения 24.
[0115] Математическое выражение 24
(уравнение 24)
[0116] Здесь, b является максимальным числом битов, доступных в системе. В общем, максимальная возможная точность должна быть использована, когда Ex небольшое (например, равно 1), и максимальная точность минус 8 битов должна быть использована, когда Ex большое (близко к 256). При вычислении параметра c знак координаты Ex краевого вектора не представляет важность, так что c может, в общем, также вычисляться как c=f (|Ex|).
[0117] В соответствии с другим вариантом осуществления настоящего изобретения деление для вычисления целочисленного наклона края полностью исключается. Это упрощается посредством замены деления на обращение к таблице (таблице деления). Соответственно, таблица сохраняется в запоминающем устройстве. Запоминающее устройство может быть либо внутренним запоминающим устройством интерполяционной вычислительной системы (модуля интрапрогнозирования), либо внешним запоминающим устройством. Таблица состоит из ограниченного числа делителей и результата деления предварительно заданного значения. Например, таблица может включать в себя записи с результатом деления числа 2a на различные значения Ey, как указано посредством нижеприведенного уравнения 25.
[0118] Математическое выражение 25
(уравнение 25)
[0119] Здесь, a является положительным целым числом. Например, a может быть равно значению точности p, описанному ранее. Чтобы выполнять обработку с использованием таблицы вместо деления, предпочтительно, табличный коэффициент 2a масштабирования при делении является функцией от размера делителя |Ey|, как указано посредством нижеприведенного уравнения 26.
[0120] Математическое выражение 26
(уравнение 26)
[0121] Функция g() является произвольной функцией. Предпочтительно, значение коэффициента масштабирования a больше для большего размера (абсолютного значения) Ey. Один пример для функции g() выражается посредством уравнения 27.
[0122] Математическое выражение 27
(уравнение 27)
[0123] Здесь, b выбирается таким образом, что значение b+8 не превышает числа битов, доступного в системе. В общем, максимальная возможная точность должна использоваться для Ey, который является большим (близко к 256), и меньшая точность должна использоваться для Ey, который является небольшим (близко к 1). Вышеприведенные примеры функций f() и g() предназначены только для иллюстрации. Значения этих функций могут либо вычисляться на лету, либо предварительно сохраняться в таблице в запоминающем устройстве. Функции f() и g() также могут задаваться посредством таблицы без обращения к аналитическому правилу.
[0124] Затем, масштабированный целочисленный наклон может быть получен, как показано в нижеприведенном уравнении 28.
[0125] Математическое выражение 28
(уравнение 28)
[0126] Здесь, операция sign возвращает знак операнда, а Table[ ] обозначает результат деления на |Ey|, извлеченного из таблицы соответствия в запоминающем устройстве. Расстояние δx затем может быть получено аналогично тому, как описано выше, т.е. посредством нижеприведенного уравнения 29.
[0127] Математическое выражение 29
(уравнение 29)
[0128] В этом случае, расстояние δx масштабируется на коэффициент 2a. Значения весовых коэффициентов и прогнозирующее пиксельное значение пикселя, который должен быть прогнозирован, могут быть выведены из предыдущих уравнений посредством замены p на a. Другая возможность состоит в том, чтобы поддерживать расстояние δx масштабированным на коэффициент 2c+a. В этом случае, конечное прогнозирование должно сдвигаться вправо, чтобы делить значение на 2c+a. Другими словами, эти процессы могут выражаться посредством уравнений 30-33.
[0129] Математическое выражение 30
(уравнение 30)
[0130] Математическое выражение 31
(уравнение 31)
[0131] Математическое выражение 32
(уравнение 32)
[0132] Математическое выражение 33
(уравнение 33)
[0133] Чтобы ограничивать требования к запоминающему устройству для сохранения таблицы деления, предпочтительно только 2b записей таблицы сохраняются. Это означает то, что записи |Ey| только существуют для
[0134] Если делитель Ey превышает наибольший делитель, перечисленный в таблице, то предпочтительно значения обеих координат Ey и Ex краевого вектора сдвигаются вправо на один бит согласно делению на 2. Другими словами, выполняются процессы, указываемые посредством уравнения 34.
[0135] Математическое выражение 34
(уравнение 34)
[0136] После сдвига результат деления извлекается из таблицы на основе нового значения делителя Ey. Если результат деления успешно извлекается, расстояние δx вычисляется, как показано выше. Если значение Ey по-прежнему является слишком высоким, сдвиг повторяется до тех пор, пока результат деления не может быть получен. С этим уменьшением числа записей таблицы немного снижается разрешение краевого направления. Тем не менее, предпочтительно требования к запоминающему устройству ограничены. Посредством задания параметра b компромисс между разрешением краевого направления и требованиями к запоминающему устройству может задаваться надлежащим образом для данного вычислительного окружения, а также для размера блока, который должен быть интерполирован.
[0137] Вышеприведенный пример описан для края 430, входящего с верхней стороны в блок, который должен быть прогнозирован.
[0138] Фиг. 4C иллюстрирует другой пример, в котором край 483 входит в блок, который должен быть прогнозирован, с левой стороны. В этом примере, вычисление наклона также основано на определенных градиентах, тем не менее, координаты X и Y (и, соответственно, координаты Ex и Ey) переставляются, как указано посредством уравнения 35 и 36.
[0139] Математическое выражение 35
(уравнение 35)
[0140] Математическое выражение 36
(уравнение 36)
[0141] Следовательно, конкретные вычисления расстояния
[0142] Фиг. 4D иллюстрирует другой пример возможного краевого направления. Край пересекает левую границу блока, который должен быть прогнозирован. Тем не менее, в отличие от примера, описанного со ссылкой на фиг. 4C, край 482, обрезающий левую границу блока, идет через блок и обрезает нижнюю границу верхнего правого соседнего блока (стрелка 481 на фиг. 4D). В этом случае, прогнозирование является интерполяцией края из двух направлений. Если настоящее изобретение применяется к интрапрогнозированию в системе с растровым сканированием блоков для кодирования/декодирования, верхний правый соседний узел блока, который должен быть интерполирован, уже кодирован/декодирован, и таким образом, его пиксели также могут быть использованы для прогнозирования. В предыдущих примерах прогнозирование выполнено посредством взвешивания двух пикселей в полнопиксельных позициях, окружающих пересечение. Тем не менее, прогнозирование также может быть выполнено посредством взвешивания четырех пикселей: двух пикселей, окружающих пересечение левой границы блока, и двух пикселей, окружающих пересечение верхней правой границы. Весовые коэффициенты дополнительно могут учитывать расстояние конкретного пересечения от пикселя, который должен быть прогнозирован.
[0143] Для простоты, все вышеприведенные примеры описаны для блока 4x4 пикселей. Тем не менее, настоящее изобретение не ограничено такими блоками. В общем, могут быть интерполированы любые другие квадратные и прямоугольные размеры блоков, к примеру, 8x8, 16x16, 8x16, 4x8 и т.д., как описано выше.
[0144] Кроме того, вышеприведенные примеры описаны, главным образом, для развертывания в кодерах и декодерах изображений или видео. Тем не менее, настоящее изобретение не ограничено этим. Настоящее изобретение может легко применяться для других задач обработки изображений, в которых требуется пространственная экстраполяция или интерполяция. Например, экстраполяция/интерполяция согласно настоящему изобретению может использоваться для постобработки, к примеру, маскирования ошибок.
[0145] Фиг. 5 обобщает пространственное прогнозирование блока пикселей (блока) согласно настоящему изобретению, используемого при кодировании/декодировании видео для интрапрогнозирования. Во-первых, каждый из модулей 170 и 270 интрапрогнозирования обнаруживает край (этап S510) и определяет то, обнаружен или нет край (этап S520). Другими словами, обнаруживается доминирующий край, вдоль которого должна быть выполнена экстраполяция или интерполяция. Если нет обнаруженного края ("Нет" на этапе 520), что означает то, что окружение блока, который должен быть прогнозирован, является практически плавным, каждый из модулей 170 и 270 интра-прогнозирования применяет так называемую DC-интерполяцию (прогнозирование с использованием режима DC-прогнозирования) к блоку, который должен быть прогнозирован (этап S530). DC-интерполяция устанавливает все пиксели блока, который должен быть прогнозирован, на одно и то же значение, представленное посредством среднего значения смежных пикселей. Если, с другой стороны, край обнаруживается ("Да" на этапе 520), каждый из модулей 170 и 270 интрапрогнозирования вычисляет целочисленный наклон края (этап S540).
[0146] Затем каждый из модулей 170 и 270 интрапрогнозирования определяет то, присутствует или нет текущий пиксель, который должен быть прогнозирован (следующий пиксель) (этап S550). При определении присутствия он определяет пересечение края с границами блоков (этап S560). Кроме того, каждый из модулей 170 и 270 интрапрогнозирования интерполирует пересекающуюся субпиксельную позицию(и) (пиксельное значение субпикселя) при необходимости (этап S570) и, соответственно, экстраполирует или интерполирует пиксель в текущем пикселе, который должен быть прогнозирован, с использованием пиксельного значения субпикселя (этап S580). При определении отсутствия текущего пикселя, который должен быть прогнозирован ("Нет" на этапе S550), каждый из модулей 170 и 270 интрапрогнозирования завершает пространственное прогнозирование для текущего блока.
[0147] Как проиллюстрировано на фиг. 2 и 3, модуль 170 интрапрогнозирования в кодере 100 и модуль 270 интрапрогнозирования в декодере 200 выполняют пространственное прогнозирование согласно варианту 1 осуществления. В частности, модуль 170 или 270 интрапрогнозирования дополнительно может включать в себя модуль обнаружения краев (модуль обнаружения), модуль определения пересечений (модуль определения), модуль интерполяции, который интерполирует субпиксельные позиции в соседних блоках, и модуль экстраполяции/интерполяции (модуль прогнозирования). Модуль обнаружения краев обнаруживает доминирующий край, обрезающий блок, который должен быть прогнозирован. Модуль определения пересечений определяет субпиксельную позицию, соответствующую пересечению края, определенного посредством модуля обнаружения краев, и строки или столбца пикселей, принадлежащих соседним блокам, окружающим блок, который должен быть прогнозирован. Модуль интерполяции интерполирует пиксельное значение субпиксельной позиции, вычисленное посредством модуля определения пересечений, на основе значения ближайшего полного пикселя. Модуль экстраполяции/интерполяции экстраполирует/интерполирует пиксельное значение текущего пикселя (пикселя в текущем блоке, который должен быть прогнозирован) на основе субпиксельной позиции(й), вычисленной посредством модуля определения пересечений.
[0148] В вышеприведенных примерах изображение кодируется и/или декодируется в растровом сканировании блоков. Смежные блоки, доступные для прогнозирования, всегда являются блоками выше блока, который должен быть прогнозирован, и блоками слева от блока, который должен быть прогнозирован. Тем не менее, настоящее изобретение также должно работать для различных сканирований при условии, что существует, по меньшей мере, один уже кодированный/декодированный блок, смежный с блоком, который должен быть прогнозирован, или при условии, что существует край, обрезающий блок, который должен быть прогнозирован, и проходящий через смежный блок.
[0149] Вышеприведенные примеры описаны для одиночного блока пикселей. Фактически, изображение, подразделяемое на множество блоков, может быть кодировано с использованием других способов кодирования для каждого из блоков. Маскирование ошибок также может применяться к одиночным блокам. Тем не менее, настоящее изобретение также может применяться, чтобы кодировать все изображение или кадр видеопоследовательности.
[0150] Фиг. 6 иллюстрирует примерную систему для передачи потока битов, включающего в себя кодированное видеоизображение, из кодера а декодер в соответствии с настоящим изобретением. Система включает в себя кодер 1401, канал 1402 и декодер 1403. Кодер 1401 соответствует кодеру 100, а декодер 1403 соответствует декодеру 200.
[0151] Кодер (передающее устройство) 1401 кодирует входной видеосигнал и передает результирующий сигнал в канал 1402. Кодер 1401 выполняет кодирование, включающее в себя направленное пространственное прогнозирование, в соответствии с любым из вариантов осуществления настоящего изобретения для интрапрогнозирования, по меньшей мере, одного блока, как описано выше. Канал 1402 является либо устройством хранения, либо любым каналом передачи. Устройство хранения может быть, например, любым энергозависимым или энергонезависимым запоминающим устройством, любым магнитным или оптическим носителем, устройством хранения данных большой емкости и т.д. Канал передачи может формироваться посредством физических ресурсов любой системы передачи, беспроводной или проводной, стационарной или мобильной, такой как xDSL, ISDN, WLAN, GPRS, UMTS, Интернет либо любая стандартизированная или собственная система.
[0152] Кодер 1401 может выполнять преобразование формата для входного видеосигнала и включать в себя передающее устройство для передачи потока битов по каналу 1402. Кроме того, кодер 1401 может включать в себя приложение для передачи потока битов в устройство хранения.
[0153] Поток битов затем получается посредством декодера (приемного устройства) 1403 через канал 1402. Декодер 1403 реализует направленное пространственное прогнозирование в соответствии с вариантом 1 осуществления настоящего изобретения, как описано выше, и декодирует поток битов.
[0154] Декодер 1403 может включать в себя приемное устройство для приема потока битов через канал 1402 или приложение для извлечения потока битов из устройства хранения. Кроме того, декодер 1403 может включать в себя модуль постобработки для постобработки декодированного видеосигнала, такой как преобразование формата.
[0155] Если обобщить, настоящее изобретение связано с эффективной реализацией направленного пространственного прогнозирования. Направленное пространственное прогнозирование включает в себя обнаружение края посредством определения вертикального градиента и горизонтального градиента в смежном блоке, определение для каждого пикселя, который должен быть прогнозирован, пересечения обнаруженного края со строкой или столбцом пикселей смежного блока и экстраполяцию или интерполяцию каждого пикселя (пикселя, который должен быть прогнозирован) в блоке согласно определенному пересечению. Пересечение может быть субпиксельной позицией. В частности, вычисление пересечения включает в себя деление на вертикальный градиент или горизонтальный градиент, чтобы получать целочисленный наклон, общий для всего блока, который должен быть прогнозирован. Это сокращает число делений до одного поблочно. Чтобы повышать точность деления, может применяться масштабирование посредством коэффициента масштабирования в зависимости от значения горизонтального градиента или вертикального градиента. Другими словами, процессы способа пространственного прогнозирования согласно настоящему изобретению выполняются, как указано на фиг. 7.
[0156] Фиг. 7 указывает способ пространственного прогнозирования согласно аспекту настоящего изобретения.
[0157] Способ пространственного прогнозирования является способом для пространственного прогнозирования пиксельного значения в каждой пиксельной позиции в текущем блоке, включенном в изображение. Во-первых, модуль 170 интрапрогнозирования обнаруживает край E, который перекрывает текущий блок, посредством получения горизонтального градиента Gy и вертикального градиента Gx между пикселями в смежном блоке, смежном с текущим блоком (этап S10). Затем, модуль 170 интрапрогнозирования вычисляет целочисленный наклон, указывающий целочисленное значение наклона обнаруженного края, на основе, по меньшей мере, одного из полученного горизонтального градиента Gy и вертикального градиента Gx (этап S11). Затем, модуль 170 интрапрогнозирования определяет, для каждой из пиксельных позиций в текущем блоке, субпиксель 450, который является пересечением между (i) линией 430, которая имеет вычисленный целочисленный наклон и проходит через пиксельную позицию 440, и (ii) границей смежного блока (этап S12). Затем модуль 170 интрапрогнозирования прогнозирует (экстраполирует или интерполирует), для каждой из пиксельных позиций, пиксельное значение в пиксельной позиции 440 на основе значения, интерполированного в субпиксельной позиции 450, определенной для пиксельной позиции 440 (этап S13). Здесь граница смежного блока является строкой или столбцом, который является ближайшим к текущему блоку из множества строк или множества столбцов пикселей, включенных в смежный блок. Модуль 270 интрапрогнозирования также выполняет такие процессы.
[0158] Целочисленный наклон должен только быть вычислен на основе, по меньшей мере, одного из горизонтального градиента Gy и вертикального градиента Gx, и эти два градиента должны не обязательно использоваться для вычисления.
[0159] Кроме того, хотя устройство 100 кодирования изображений включает в себя модуль 160 прогнозирования с компенсацией движения и другие в качестве составляющих элементов, отличных от модуля 170 интрапрогнозирования, она должна обязательно включать в себя только, по меньшей мере, модуль 105 вычитания и модуль 170 интрапрогнозирования и не должна включать в себя другие составляющие элементы.
[0160] Кроме того, хотя устройство 200 декодирования изображений включает в себя модуль 260 прогнозирования с компенсацией движения и другие в качестве составляющих элементов, отличных от модуля 270 интрапрогнозирования, она должна обязательно включать в себя только, по меньшей мере, модуль 225 сложения и модуль 270 интрапрогнозирования и не должна включать в себя другие составляющие элементы.
[0161] Согласно варианту 1 осуществления устройство 100 кодирования изображений энтропийно кодирует информацию режима интрапрогнозирования и выводит энтропийно кодированную информацию режима интрапрогнозирования, и устройство 200 декодирования изображений энтропийно декодирует информацию режима интрапрогнозирования. Здесь информация режима интрапрогнозирования может быть информацией, указывающей режимы направленного интрапрогнозирования, и может быть информацией, указывающей, что только интрапрогнозирование применяется к текущему блоку, который должен быть кодирован или декодирован, без указания режимов направленного интрапрогнозирования.
[0162] Второй вариант осуществления
Независимая компьютерная система может легко выполнять обработку, описанную в каждом из вариантов осуществления, посредством записи, на носителе записи, программы для реализации структуры способа кодирования видео (способа кодирования изображений) или способа декодирования видео (способа декодирования изображений) согласно варианту 1 осуществления. Носитель записи может быть любым при условии, что на него может записываться программа, таким как магнитный диск, оптический диск, оптический магнитный диск и полупроводниковое запоминающее устройство.
[0163] В дальнейшем в этом документе описываются варианты применения способа кодирования видео и способа декодирования видео согласно каждому из вариантов осуществления и системы, использующей такие варианты применения.
[0164] Фиг. 8 иллюстрирует общую конфигурацию системы ex100 предоставления контента для реализации услуг распространения контента. Область для предоставления услуг связи разделяется на соты требуемого размера, и базовые станции ex106-ex110, которые являются стационарными беспроводными станциями, размещаются в каждой из сот.
[0165] Система ex100 предоставления контента подключается к устройствам, таким как компьютер ex111, персональное цифровое устройство (PDA) ex112, камера ex113, сотовый телефон ex114 и игровая машина ex115, через Интернет ex101, поставщика ex102 Интернет-услуг, телефонную сеть ex104, а также базовые станции ex106-ex110.
[0166] Тем не менее, конфигурация системы ex100 предоставления контента не ограничена конфигурацией, показанной на фиг. 8, и комбинация, в которой подключаются любые из элементов, является допустимой. Помимо этого, каждое из устройств может непосредственно подключаться к телефонной сети ex104, а не через базовые станции ex106-ex110, которые являются стационарными беспроводными станциями. Кроме того, устройства могут быть подключены друг к другу через беспроводную связь ближнего действия и т.п.
[0167] Камера ex113, такая как цифровая видеокамера, допускает захват движущихся изображений. Камера ex116, такая как цифровая видеокамера, допускает захват как неподвижных изображений, так и движущихся изображений. Кроме того, сотовый телефон ex114 может быть телефоном, который удовлетворяет любому из таких стандартов, как глобальная система мобильной связи (GSM), множественный доступ с кодовым разделением каналов (CDMA), широкополосный множественный доступ с кодовым разделением каналов (W-CDMA), стандарт долгосрочного развития (LTE) и высокоскоростной пакетный доступ (HSPA). Альтернативно, сотовый телефон ex114 может соответствовать стандарту системы персональных мобильных телефонов (PHS).
[0168] В системе ex100 предоставления контента сервер ex103 потоковой передачи подключается к камере ex113 и т.п. через телефонную сеть ex104 и базовую станцию ex109, которая предоставляет распространение телепередачи в прямом эфире и т.п. Для такого распространения контент (например, видеомузыкального концерта в прямом эфире), захватываемый пользователем с помощью камеры ex113, кодируется, как описано выше в каждом из вариантов осуществления, и кодированный контент передается на сервер ex103 потоковой передачи. С другой стороны, сервер ex103 потоковой передачи выполняет потоковое распространение принимаемых данных контента в клиенты при запросах. Клиенты включают в себя компьютер ex111, PDA ex112, камеру ex113, сотовый телефон ex114 и игровую машину ex115, которые допускают декодирование вышеуказанных кодированных данных. Каждое из устройств, которое принимает распространенные данные, декодирует и воспроизводит кодированные данные.
[0169] Захватываемые данные могут кодироваться посредством камеры ex113 или сервера ex103 потоковой передачи, который передает данные, или процессы кодирования могут быть совместно использованы камерой ex113 и сервером ex103 потоковой передачи. Аналогично, распространенные данные могут быть декодированы посредством клиентов или сервера ex103 потоковой передачи, или процессы декодирования могут быть совместно использованы клиентами и сервером ex103 потоковой передачи. Кроме того, данные неподвижных изображений и движущихся изображений, захватываемых не только посредством камеры ex113, но также и камеры ex116, могут быть переданы на сервер ex103 потоковой передачи через компьютер ex111. Процессы кодирования могут выполняться посредством камеры ex116, компьютера ex111 или сервера ex103 потоковой передачи или совместно использоваться ими.
[0170] Кроме того, в общем, компьютер ex111 и LSI ex500, включенные в каждое из устройств, выполняют такие процессы кодирования и декодирования. LSI ex500 может быть выполнена из одной микросхемы или множества микросхем. Программное обеспечение для кодирования и декодирования движущихся изображений может быть интегрировано в определенный тип носителя записи (такой как CD-ROM, гибкий диск, жесткий диск), который является читаемым посредством компьютера ex111 и т.п., и процессы кодирования и декодирования могут выполняться с использованием программного обеспечения. Кроме того, когда сотовый телефон ex114 содержит камеру, могут передаваться видеоданные, полученные посредством камеры. Видеоданные - это данные, кодированные посредством LSI ex500, включенной в сотовый телефон ex114.
[0171] Кроме того, сервер ex103 потоковой передачи может состоять из серверов и компьютеров и может децентрализовать данные и обрабатывать децентрализованные данные, записывать или распространять данные.
[0172] Как описано выше, клиенты могут принимать и воспроизводить кодированные данные в системе ex100 предоставления контента. Другими словами, клиенты могут принимать и декодировать информацию, передаваемую пользователем, и воспроизводить декодированные данные в режиме реального времени в системе ex100 предоставления контента, так что пользователь, который не имеет конкретных прав и оборудования, может реализовывать персональную широковещательную передачу.
[0173] Настоящее изобретение не ограничено вышеуказанной системой ex100 предоставления контента, и, по меньшей мере, устройство кодирования видео или устройство декодирования видео, описанные в каждом из вариантов осуществления, могут быть включены в систему ex200 цифровой широковещательной передачи, как показано на фиг. 9. Более конкретно, широковещательная станция ex201 сообщает или передает по радиоволнам в широковещательный спутник ex202 мультиплексированные данные, полученные посредством мультиплексирования аудиоданных и видеоданных. Видеоданные являются данными, кодированными согласно способу кодирования видео, описанному в каждом из вариантов осуществления. При приеме видеоданных широковещательный спутник ex202 передает радиоволны для передачи в широковещательном режиме. Затем антенна ex204 для домашнего применения, допускающая прием спутниковой широковещательной передачи, принимает радиоволны. Устройство, такое как телевизионный приемник (приемное устройство) ex300 и абонентская приставка (STB) ex217, декодирует принятые мультиплексированные данные и воспроизводит данные.
[0174] Кроме того, модуль ex218 считывания/записи, который (i) считывает и декодирует мультиплексированные данные, записанные на носителях ex215 записи, таких как DVD и BD, или (ii) кодирует видеосигналы на носителе ex215 записи, и в некоторых случаях записывает данные, полученные посредством мультиплексирования аудиосигнала в кодированных данных, может включать в себя устройство декодирования видео или устройство кодирования видео, как показано в каждом из вариантов осуществления. В этом случае воспроизведенные видеосигналы отображаются на мониторе ex219 и другое устройство или система может воспроизводить видеосигналы с использованием носителя ex215 записи, на котором записываются мультиплексированные данные. Кроме того, также можно реализовывать устройство декодирования видео в абонентской приставке ex217, подключенной к кабелю ex203 для кабельного телевидения или к антенне ex204 для спутниковой и/или наземной широковещательной передачи, чтобы отображать видеосигналы на мониторе ex219 телевизионного приемника ex300. Устройство декодирования видео может быть включено не в абонентскую приставку, а в телевизионный приемник ex300.
[0175] Фиг. 10 иллюстрирует телевизионный приемник (приемное устройство) ex300, который использует способ кодирования видео и способ декодирования видео, описанные в каждом из вариантов осуществления. Телевизионный приемник ex300 включает в себя: тюнер ex301, который получает или предоставляет мультиплексированные данные, полученные посредством мультиплексирования аудиоданных и видеоданных, через антенну ex204 или кабель ex203 и т.д., который принимает широковещательную передачу; модуль ex302 модуляции/демодуляции, который демодулирует принятые мультиплексированные данные или модулирует данные в мультиплексированные данные, которые должны подаваться наружу; и модуль ex303 мультиплексирования/демультиплексирования, который демультиплексирует модулированные мультиплексированные данные в видеоданные и аудиоданные или мультиплексирует видеоданные и аудиоданные, кодированные посредством модуля ex306 обработки сигналов, в данные. Кроме того, телевизионный приемник ex300 дополнительно включает в себя: модуль ex306 обработки сигналов, включающий в себя модуль ex304 обработки аудиосигналов и модуль ex305 обработки видеосигналов, которые декодируют аудиоданные и видеоданные и кодируют аудиоданные и видеоданные, соответственно; динамик ex307, который предоставляет декодированный аудиосигнал; и модуль ex309 вывода, включающий в себя модуль ex308 отображения, который отображает декодированный видеосигнал, такой как дисплей. Кроме того, телевизионный приемник ex300 включает в себя интерфейсный модуль ex317, включающий в себя модуль ex312 функционального ввода, который принимает ввод пользовательской операции. Кроме того, телевизионный приемник ex300 включает в себя модуль ex310 управления, который осуществляет общее управление каждым составляющим элементом телевизионного приемника ex300, и модуль ex311 схемы электропитания, который предоставляет питание в каждый из элементов. Кроме модуля ex312 функционального ввода, интерфейсный модуль ex317 может включать в себя: мост ex313, который подключается к внешнему устройству, такому как модуль ex218 считывания/записи; модуль ex314 гнезда для предоставления возможности присоединения носителя ex216 записи, такого как SD-карта; драйвер ex315, чтобы подключаться к внешнему носителю записи, такому как жесткий диск; и модем ex316, чтобы подключаться к телефонной сети. Здесь, носитель ex216 записи может электрически записывать информацию с использованием элемента энергонезависимого/энергозависимого полупроводникового запоминающего устройства для хранения. Составляющие элементы телевизионного приемника ex300 подключены друг к другу через синхронную шину.
[0176] Во-первых, описывается конфигурация, в которой телевизионный приемник ex300 декодирует мультиплексированные данные, полученные снаружи, через антенну ex204 и т.п. и воспроизводит декодированные данные. В телевизионном приемнике ex300, при приеме пользовательской операции из удаленного контроллера ex220 и т.п., модуль ex303 мультиплексирования/демультиплексирования демультиплексирует мультиплексированные данные, демодулированные посредством модуля ex302 модуляции/демодуляции, под управлением модуля ex310 управления, включающего в себя CPU. Кроме того, модуль ex304 обработки аудиосигналов декодирует демультиплексированные аудиоданные, и модуль ex305 обработки видеосигналов декодирует демультиплексированные видеоданные с использованием способа декодирования, описанного в варианте осуществления 1, в телевизионном приемнике ex300. Модуль ex309 вывода предоставляет декодированный видеосигнал и аудиосигнал наружу. Когда модуль ex309 вывода предоставляет видеосигнал и аудиосигнал, сигналы могут временно сохраняться в буферах ex318 и ex319 и т.п. так, что сигналы воспроизводятся синхронно друг с другом. Кроме того, телевизионный приемник ex300 может считывать мультиплексированные данные не через широковещательную передачу и т.п., а из носителей ex215 и ex216 записи, таких как магнитный диск, оптический диск и SD-карта. Затем описывается конфигурация, в которой телевизионный приемник ex300 кодирует аудиосигнал и видеосигнал и передает данные наружу или записывает данные на носитель записи. В телевизионном приемнике ex300, при приеме пользовательской операции из удаленного контроллера ex220 и т.п., модуль ex304 обработки аудиосигналов кодирует аудиосигнал, и модуль ex305 обработки видеосигналов кодирует видеосигнал под управлением модуля ex310 управления с использованием способа кодирования, как описано в каждом из вариантов осуществления. Модуль ex303 мультиплексирования/демультиплексирования мультиплексирует кодированный видеосигнал и аудиосигнал и предоставляет результирующий сигнал наружу. Когда модуль ex303 мультиплексирования/демультиплексирования мультиплексирует видеосигнал и аудиосигнал, сигналы могут временно сохраняться в буферах ex320 и ex321 и т.п. так, что сигналы воспроизводятся синхронно друг с другом. Здесь буферы ex318-ex321 могут быть множеством, как проиллюстрировано, или, по меньшей мере, один буфер может быть совместно использован в телевизионном приемнике ex300. Кроме того, данные могут быть сохранены в буфере, отличном от буферов ex318-ex321 так, что можно не допускать переполнения и опустошения в системе, например, между модулем ex302 модуляции/демодуляции и модулем ex303 мультиплексирования/демультиплексирования.
[0177] Кроме того, телевизионный приемник ex300 может включать в себя конфигурацию для приема AV-ввода из микрофона или камеры, отличную от конфигурации для получения аудио- и видеоданных из широковещательной передачи или носителя записи, и может кодировать полученные данные. Хотя телевизионный приемник ex300 в описании может кодировать, мультиплексировать и предоставлять данные наружу, он может не допускать выполнение всех процессов, а допускать только одно из приема, декодирования и предоставления данных наружу.
[0178] Кроме того, когда модуль ex218 считывания/записи считывает или записывает мультиплексированные данные с или на носитель записи, один из телевизионного приемника ex300 и модуля ex218 считывания/записи может декодировать или кодировать мультиплексированные данные, и телевизионный приемник ex300 и модуль ex218 считывания/записи могут совместно использовать декодирование или кодирование.
[0179] В качестве примера, фиг. 11 иллюстрирует конфигурацию модуля ex400 воспроизведения/записи информации, когда данные считываются или записываются с или на оптический диск. Модуль ex400 воспроизведения/записи информации включает в себя составляющие элементы ex401-ex407, которые описаны ниже. Оптическая головка ex401 испускает лазерное пятно на поверхности для записи носителя ex215 записи, который является оптическим диском, чтобы записывать информацию, и обнаруживает отраженный свет от поверхности для записи носителя ex215 записи, чтобы считывать информацию. Модуль ex402 модуляционной записи электрически возбуждает полупроводниковый лазер, включенный в оптическую головку ex401, и модулирует лазерное излучение согласно записанным данным. Модуль ex403 воспроизводящей демодуляции усиливает сигнал воспроизведения, полученный посредством электрического обнаружения отраженного света от поверхности для записи, с использованием фотодетектора, включенного в оптическую головку ex401, и демодулирует сигнал воспроизведения посредством разделения компонента сигнала, записанного на носитель ex215 записи, чтобы воспроизводить необходимую информацию. Буфер ex404 временно хранит информацию, которая должна записываться на носитель ex215 записи, и информацию, воспроизведенную из носителя ex215 записи. Двигатель ex405 диска вращает носитель ex215 записи. Модуль ex406 сервоуправления перемещает оптическую головку ex401 в заранее определенную информационную дорожку при одновременном управлении вращательным приводом двигателя ex405 диска, чтобы следовать лазерному пятну. Модуль ex407 управления системой осуществляет общее управление модулем ex400 воспроизведения/записи информации. Процессы считывания и записи могут реализовываться посредством модуля ex407 управления системой с использованием различной информации, хранимой в буфере ex404, и формирования и добавления новой информации по мере необходимости и посредством модуля ex402 модуляционной записи, модуля ex403 демодуляции при воспроизведении и модуля ex406 сервоуправления, которые записывают и воспроизводят информацию через оптическую головку ex401 при координированном управлении. Модуль ex407 управления системой включает в себя, например, микропроцессор и выполняет обработку посредством инструктирования компьютеру выполнять программу для считывания и записи.
[0180] Хотя в описании оптическая головка ex401 испускает лазерное пятно, она может выполнять запись с высокой плотностью с использованием света в поле в ближней зоне.
[0181] Фиг. 12 схематично иллюстрирует носитель ex215 записи, который является оптическим диском. На поверхности для записи носителя ex215 записи направляющие канавки формируются по спирали, и информационная дорожка ex230 записывает, заранее, информацию адреса, указывающую абсолютную позицию на диске, согласно изменению в форме направляющих канавок. Информация адреса включает в себя информацию для определения позиций блоков ex231 записи, которые являются единицей для записи данных. Устройство, которое записывает и воспроизводит данные, воспроизводит информационную дорожку ex230 и считывает информацию адреса, чтобы определять позиции блоков записи. Кроме того, носитель ex215 записи включает в себя зону ex233 записи данных, зону ex232 внутренней окружности и зону ex234 внешней окружности. Зона ex233 записи данных является зоной для использования при записи пользовательских данных. Зона ex232 внутренней окружности и зона ex234 внешней окружности, которые находятся внутри и снаружи зоны ex233 записи данных, соответственно, предназначены для конкретного применения, за исключением записи пользовательских данных. Модуль 400 воспроизведения/записи информации считывает и записывает кодированные аудиоданные, кодированные видеоданные или мультиплексированные данные, полученные посредством мультиплексирования кодированных аудиоданных и кодированных видеоданных, из и в зону ex233 записи данных носителя ex215 записи.
[0182] Хотя оптический диск, имеющий слой, такой как DVD и BD, описывается в качестве примера в описании, оптический диск не ограничен таким образом и может быть оптическим диском, имеющим многослойную структуру и допускающим запись на часть, отличную от поверхности. Кроме того, оптический диск может иметь структуру для многомерной записи/воспроизведения, к примеру, записи информации с использованием света цветов с различными длинами волн в одной части оптического диска и записи информации, имеющей различные слои, с различных углов.
[0183] Кроме того, автомобиль ex210, имеющий антенну ex205, может принимать данные из спутника ex202 и т.п. и воспроизводить видео на устройстве отображения, таком как автомобильная навигационная система ex211, установленная в автомобиле ex210, в системе ex200 цифровой широковещательной передачи. Здесь, конфигурация автомобильной навигационной системы ex211 является конфигурацией, например, включающей в себя приемный GPS-модуль, в конфигурации, проиллюстрированной на фиг. 10. То же применимо для конфигурации компьютера ex111, сотового телефона ex114 и т.п.
[0184] Фиг. 13A иллюстрирует сотовый телефон ex114, который использует способ кодирования видео и способ декодирования видео, описанные в каждом из вариантов осуществления. Сотовый телефон ex114 включает в себя: антенну ex350 для передачи и приема радиоволн через базовую станцию ex110; модуль ex365 камеры, допускающий захват движущихся и неподвижных изображений; и модуль ex358 отображения, к примеру, жидкокристаллический дисплей для отображения данных, таких как декодированное видео, захватываемое посредством модуля ex365 камеры или принимаемое посредством антенны ex350. Сотовый телефон ex114 дополнительно включает в себя: модуль основного корпуса, включающий в себя набор функциональных клавиш ex366; модуль ex357 аудиовывода, к примеру, динамик для вывода аудио; модуль ex356 аудиоввода, к примеру, микрофон для ввода аудио; запоминающее устройство ex367 для сохранения захваченного видео или неподвижных изображений, записанного аудио, кодированных или декодированных данных принимаемого видео, неподвижных изображений, почтовых сообщений и т.п.; и модуль ex364 гнезда, который является интерфейсным модулем для носителя записи, который сохраняет данные таким же образом, как запоминающее устройство ex367.
[0185] Затем, пример конфигурации сотового телефона ex114 описывается со ссылкой на фиг. 13B. В сотовом телефоне ex114 главный модуль ex360 управления, спроектированный с возможностью полностью управлять каждым модулем основного корпуса, включающим в себя модуль ex358 отображения, а также функциональные клавиши ex366 взаимно соединяются через синхронную шину ex370 с модулем ex361 схемы электропитания, модулем ex362 управления функциональным вводом, модулем ex355 обработки видеосигналов, модулем ex363 интерфейса камеры, модулем ex359 управления жидкокристаллическим дисплеем (ЖК-дисплеем), модулем ex352 модуляции/демодуляции, модулем ex353 мультиплексирования/демультиплексирования, модулем ex354 обработки аудиосигналов, модулем ex364 гнезда и запоминающим устройством ex367.
[0186] Когда клавиша завершения вызова или клавиша включения питания включается посредством пользовательской операции, модуль ex361 схемы электропитания предоставляет в соответствующие модули питание из аккумуляторной батареи с тем, чтобы активировать сотовый телефон ex114.
[0187] В сотовом телефоне ex114 модуль ex354 обработки аудиосигналов преобразует аудиосигналы, собираемые посредством модуля ex356 аудиоввода в режиме речевой связи, в цифровые аудиосигналы под управлением главного модуля ex360 управления, включающего в себя CPU, ROM и RAM. Так же, в сотовом телефоне ex114, приемо-передающий модуль ex351 усиливает данные, принимаемые посредством антенны ex350 в режиме речевой связи, и выполняет частотное преобразование и аналого-цифровое преобразование для данных. Затем модуль ex352 модуляции/демодуляции выполняет обработку с обратным расширенным спектром для данных, и модуль ex354 обработки аудиосигналов преобразует их в аналоговые аудиосигналы, с тем чтобы выводить их через модуль ex356 аудиовывода.
[0188] Кроме того, когда передается почтовое сообщение в режиме передачи данных, текстовые данные почтового сообщения, введенные посредством операций с функциональными клавишами ex366 и т.п. основного корпуса, отправляются в главный модуль ex360 управления через модуль ex362 управления функциональным вводом. Главный модуль ex360 управления заставляет модуль ex352 модуляции/демодуляции выполнять обработку с расширенным спектром для текстовых данных, и приемо-передающий модуль ex351 выполняет цифроаналоговое преобразование и частотное преобразование для результирующих данных, чтобы передавать данные в базовую станцию ex110 через антенну ex350. Когда принимается почтовое сообщение, обработка, которая является приблизительно обратной относительно обработки для передачи почтового сообщения, выполняется для принимаемых данных, и результирующие данные предоставляются в модуль ex358 отображения.
[0189] Когда передаются видео, неподвижные изображения или видео и аудио в режиме передачи данных, модуль ex355 обработки видеосигналов и сжимает и кодирует видеосигналы, подаваемые из модуля ex365 камеры, с использованием способа кодирования движущихся изображений, показанного в каждом из вариантов осуществления, и передает кодированные видеоданные в модуль ex353 мультиплексирования/демультиплексирования. Напротив, в течение времени, когда модуль ex365 камеры захватывает видео, неподвижные изображения и т.п., модуль ex354 обработки аудиосигналов кодирует аудиосигналы, собранные посредством модуля ex356 аудиоввода, и передает кодированные аудиоданные в модуль ex353 мультиплексирования/демультиплексирования.
[0190] Модуль ex353 мультиплексирования/демультиплексирования мультиплексирует кодированные видеоданные, подаваемые из модуля ex355 обработки видеосигналов, и кодированные аудиоданные, подаваемые из модуля ex354 обработки аудиосигналов, с использованием предварительно определенного способа. Затем, модуль ex352 модуляции/демодуляции выполняет обработку с расширенным спектром для мультиплексированных данных, и приемо-передающий модуль ex351 выполняет цифроаналоговое преобразование и частотное преобразование для данных, с тем чтобы передавать результирующие данные через антенну ex350.
[0191] При приеме данных видеофайла, который связывается с веб-страницей и т.п., в режиме передачи данных или при приеме почтового сообщения с присоединенным видео и/или аудио, чтобы декодировать мультиплексированные данные, принятые через антенну ex350, модуль ex353 мультиплексирования/демультиплексирования демультиплексирует мультиплексированные данные в поток битов видеоданных и поток битов аудиоданных и предоставляет в модуль ex355 обработки видеосигналов кодированные видеоданные, а в модуль ex354 обработки аудиосигналов кодированные аудиоданные через синхронную шину ex370. Модуль ex355 обработки видеосигналов декодирует видеосигнал с использованием способа декодирования видео, соответствующего способу кодирования видео, показанному в каждом из вариантов осуществления, и затем модуль ex358 отображения отображает, например, видео и неподвижные изображения, включенные в видеофайл, связанный с веб-страницей, через модуль ex359 управления ЖК-дисплеем. Кроме того, модуль ex354 обработки аудиосигналов декодирует аудиосигнал, и модуль ex357 аудиовывода предоставляет аудио.
[0192] Кроме того, аналогично телевизионному приемнику ex300, терминал, такой как сотовый телефон ex114, вероятно, имеет 3 типа реализованных конфигураций, включающих в себя не только (i) приемо-передающий терминал, включающий в себя как устройство кодирования, так и устройство декодирования, но также и (ii) передающий терминал, включающий в себя только устройство кодирования, и (iii) приемный терминал, включающий в себя только устройство декодирования. Хотя в описании система ex200 цифровой широковещательной передачи принимает и передает мультиплексированные данные, полученные посредством мультиплексирования аудиоданных в видеоданные, мультиплексированные данные могут быть данными, полученными посредством мультиплексирования не аудиоданных, а символьных данных, связанных с видео, в видеоданные, и могут быть не мультиплексированными данными, а самими видеоданными.
[0193] По сути, способ кодирования видео и способ декодирования видео в каждом из вариантов осуществления могут использоваться в любых из описанных устройств и систем. Таким образом, могут быть получены преимущества, описанные в каждом из вариантов осуществления.
[0194] Кроме того, настоящее изобретение не ограничено вариантами осуществления и различными модификациями, и изменения возможны без отступления от объема настоящего изобретения.
[0195] Третий вариант осуществления
Видеоданные могут быть сформированы посредством переключения, по мере необходимости, между (i) способом кодирования движущихся изображений или устройством кодирования движущихся изображений, показанными в каждом из вариантов осуществления, и (ii) способом кодирования движущихся изображений или устройством кодирования движущихся изображений в соответствии с другим стандартом, таким как MPEG-2, MPEG4-AVC и VC-1.
[0196] Здесь, когда множество видеоданных, которые соответствуют различным стандартам, формируется и затем декодируется, способы декодирования должны быть выбраны, чтобы соответствовать различным стандартам. Тем не менее, поскольку не может быть обнаружено то, какому стандарту соответствуют каждые из множества из видеоданных, которые должны быть декодированы, имеется проблема в том, что не может быть выбран надлежащий способ декодирования.
[0197] Чтобы разрешать проблему, мультиплексированные данные, полученные посредством мультиплексирования аудиоданных и т.п. в видеоданные, имеют структуру, включающую в себя идентификационную информацию, указывающую то, какому стандарту соответствуют видеоданные. Далее описывается конкретная структура мультиплексированных данных, включающих в себя видеоданные, сформированные в способе кодирования движущихся изображений и посредством устройства кодирования движущихся изображений, показанных в каждом из вариантов осуществления. Мультиплексированные данные являются цифровым потоком в формате транспортных потоков MPEG-2.
[0198] Фиг. 14 иллюстрирует структуру мультиплексированных данных. Как проиллюстрировано на фиг. 14, мультиплексированные данные могут быть получены посредством мультиплексирования, по меньшей мере, одного из видеопотока, аудиопотока, потока презентационной графики (PG) и потока интерактивной графики. Видеопоток представляет первичное видео и вторичное видео фильма, аудиопоток (IG) представляет часть первичного аудио и часть вторичного аудио, которая должна смешиваться с частью первичного аудио, а поток презентационной графики представляет субтитры фильма. Здесь, первичное видео является обычным видео, которое должно отображаться на экране, и вторичное видео является видео, которое должно отображаться в меньшем окне в основном видео. Кроме того, поток интерактивной графики представляет интерактивный экран, который должен быть сформирован посредством размещения GUI-компонентов на экране. Видеопоток кодируется в способе кодирования видео или посредством устройства кодирования видео, показанных в каждом из вариантов осуществления, либо в способе кодирования видео или посредством устройства кодирования видео в соответствии с традиционным стандартом, таким как MPEG-2, MPEG4-AVC и VC-1. Аудиопоток кодируется в соответствии с таким стандартом, как AC-3 Dolby, Dolby Digital Plus, MLP, DTS, DTS-HD и линейная PCM.
[0199] Каждый поток, включенный в мультиплексированные данные, идентифицируется посредством PID. Например, 0x1011 выделяется видеопотоку, который должен быть использован для видео фильма, 0x1100-0x111F выделяются аудиопотокам, 0x1200-0x121F выделяются потокам презентационной графики, 0x1400-0x141F выделяются потокам интерактивной графики, 0x1B00-0x1B1F выделяются видеопотокам, которые должны быть использованы для вторичного видеофильма, и 0x1A00-0x1A1F выделяются аудиопотокам, которые должны быть использованы для вторичного видео, которое должно смешиваться с первичным аудио.
[0200] Фиг. 15 схематично иллюстрирует, как данные мультиплексируются. Во-первых, видеопоток ex235, состоящий из видеокадров, и аудиопоток ex238, состоящий из аудиокадров, преобразуются в поток PES-пакетов ex236 и поток PES-пакетов ex239 и дополнительно в TS-пакеты ex237 и TS-пакеты ex240, соответственно. Аналогично, данные потока ex241 презентационной графики и данные потока ex244 интерактивной графики преобразуются в поток PES-пакетов ex242 и поток PES-пакетов ex245 и дополнительно в TS-пакеты ex243 и TS-пакеты ex246, соответственно. Эти TS-пакеты мультиплексируются в поток, чтобы получать мультиплексированные данные ex247.
[0201] Фиг. 16 подробнее иллюстрирует, как видеопоток сохраняется в потоке PES-пакетов. Первая панель на фиг. 16 показывает поток видеокадров в видеопотоке. Вторая панель показывает поток PES-пакетов. Как указано посредством стрелок, обозначенных как yy1, yy2, yy3 и yy4 на фиг. 16, видеопоток разделяется на изображения, такие как I-изображения, B-изображения и P-изображения, каждое из которых является единицей видеопредставления, и изображения сохраняются в рабочих данных каждого из PES-пакетов. Каждый из PES-пакетов имеет PES-заголовок, и PES-заголовок сохраняет временную метку представления (PTS), указывающую время отображения изображения, и временную метку декодирования (DTS), указывающую время декодирования изображения.
[0202] Фиг. 17 иллюстрирует формат TS-пакетов, которые должны быть в итоге записаны в мультиплексированные данные. Каждый из TS-пакетов является 188-байтовым пакетом фиксированной длины, включающим в себя 4-байтовый TS-заголовок, имеющий такую информацию, как PID для идентификации потока, и 184-байтовые рабочие TS-данные для сохранения данных. PES-пакеты разделяются и сохраняются в рабочих данных TS, соответственно. Когда используется BD-ROM, каждому из TS-пакетов присваивается 4-байтовый TP_Extra_Header, тем самым приводя к 192-байтовым исходным пакетам. Исходные пакеты записываются в мультиплексированные данные. TP_Extra_Header хранит такую информацию, как Arrival_Time_Stamp (ATS). ATS показывает время начала передачи, в которое каждый из TS-пакетов должен быть передан в PID-фильтр. Номера, увеличивающиеся с заголовка мультиплексированных данных, называются номерами исходных пакетов (SPN), как показано в нижней части фиг. 17.
[0203] Каждый из TS-пакетов, включенных в мультиплексированные данные, включает в себя не только потоки аудио, видео, субтитров и т.п., но также и таблицу ассоциаций программ (PAT), таблицу структуры программ (PMT) и временную отметку программ (PCR). PAT показывает то, что указывает PID в PMT, используемом в мультиплексированных данных, и PID самого PAT регистрируется как нуль. PMT сохраняет PID потоков видео, аудио, субтитров и т.п., включенных в мультиплексированные данные, и информацию атрибутов потоков, соответствующих PID. PMT также имеет различные дескрипторы, связанные с мультиплексированными данными. Дескрипторы имеют такую информацию, как информация управления копированием, показывающая то, разрешено или нет копирование мультиплексированных данных. PCR сохраняет информацию STC-времени, соответствующую ATS, показывающей, когда PCR-пакет передается в декодер, чтобы достигать синхронизации между таймером поступления (ATC), т.е. временной осью ATS, и системным таймером (STC), т.е. временной осью PTS и DTS.
[0204] Фиг. 18 подробно поясняет структуру данных PMT. PMT-заголовок располагается в верхней части PMT. PMT-заголовок описывает длину данных, включенных в PMT, и т.п. Множество дескрипторов, связанных с мультиплексированными данными, располагается после PMT-заголовка. Информация, такая как информация управления копированием, описывается в дескрипторах. После дескрипторов располагается множество фрагментов информации потока, связанных с потоками, включенными в мультиплексированные данные. Каждый фрагмент информации потока включает в себя дескрипторы потоков, каждый из которых описывает такую информацию, как тип потока для идентификации кодека сжатия потока, PID потока и информация атрибутов потока (такая как частота кадров или формат изображения). Дескрипторы потоков по числу равны числу потоков в мультиплексированных данных.
[0205] Когда мультиплексированные данные записываются на носителе записи и т.д., они записываются вместе с файлами информации мультиплексированных данных.
[0206] Каждый из файлов информации мультиплексированных данных является управляющей информацией мультиплексированных данных, как показано на фиг. 19. Файлы информации мультиплексированных данных находятся в соответствии "один-к-одному" с мультиплексированными данными, и каждый из файлов включает в себя информацию мультиплексированных данных, информацию атрибутов потока и карту вхождений.
[0207] Как проиллюстрировано на фиг. 19, информация мультиплексированных данных включает в себя системную скорость, время начала воспроизведения и время завершения воспроизведения. Системная скорость указывает максимальную скорость передачи, на которой декодер системных целевых объектов, который должен быть описан ниже, передает мультиплексированные данные в PID-фильтр. Интервалы ATS, включенных в мультиплексированные данные, задаются не больше системной скорости. Время начала воспроизведения указывает PTS в видеокадре в заголовке мультиплексированных данных. Интервал одного кадра добавляется к PTS в видеокадре в конце мультиплексированных данных, и PTS задается равным времени завершения воспроизведения.
[0208] Как показано на фиг. 20, фрагмент информации атрибутов регистрируется в информации атрибутов потока для каждого PID каждого потока, включенного в мультиплексированные данные. Каждый фрагмент информации атрибутов имеет различную информацию в зависимости от того, является соответствующий поток видеопотоком, аудиопотоком, потоком презентационной графики или потоком интерактивной графики. Каждый фрагмент информации атрибутов видеопотока переносит информацию, включающую в себя то, какой кодек сжатия используется для сжатия видеопотока, а также разрешение, формат изображения и частоту кадров фрагментов данных изображений, которые включаются в видеопоток. Каждый фрагмент информации атрибутов аудиопотока переносит информацию, включающую в себя то, какой кодек сжатия используется для сжатия аудиопотока, сколько каналов включается в аудиопоток, какой язык поддерживает аудиопотока и насколько высокой является частота дискретизации. Информация атрибутов видеопотока и информация атрибутов аудиопотока используются для инициализации декодера до того, как проигрыватель воспроизводит информацию.
[0209] В варианте 3 осуществления мультиплексированные данные, которые должны быть использованы, имеют тип потока, включенный в PMT. Кроме того, когда мультиплексированные данные записываются на носителе записи, используется информация атрибутов видеопотока, включенная в информацию мультиплексированных данных. Более конкретно, способ кодирования видео или устройство кодирования видео, описанные в каждом из вариантов осуществления, включают в себя этап или модуль для выделения уникальных видеоданных, указывающих информацию, сформированную посредством способа кодирования видео или устройства кодирования видео в каждом из вариантов осуществления, для типа потока, включенного в PMT, или информации атрибутов видеопотока. При такой структуре, видеоданные, сформированные посредством способа кодирования видео или устройства кодирования видео, описанных в каждом из вариантов осуществления, могут отличаться от видеоданных, которые соответствуют другому стандарту.
[0210] Кроме того, фиг. 21 иллюстрирует этапы способа декодирования видео согласно варианту 3 осуществления. На этапе exS100, тип потока, включенный в PMT или информацию атрибутов видеопотока, получается из мультиплексированных данных. Затем на этапе exS101 определяется то, указывает или нет тип потока или информация атрибутов видеопотока, что мультиплексированные данные формируются посредством способа кодирования видео или устройства кодирования видео в каждом из вариантов осуществления. Когда определяется то, что тип потока или информация атрибутов видеопотока указывает, что мультиплексированные данные формируются посредством способа кодирования видео или устройства кодирования видео в каждом из вариантов осуществления, на этапе exS102 тип потока или информация атрибутов видеопотока декодируется посредством способа декодирования видео в каждом из вариантов осуществления. Кроме того, когда тип потока или информация атрибутов видеопотока указывает соответствие традиционным стандартам, таким как MPEG-2, MPEG4-AVC и VC-1, на этапе exS103 тип потока или информация атрибутов видеопотока декодируется посредством способа декодирования видео в соответствии с традиционными стандартами.
[0211] Также, выделение нового уникального значения для типа потока или информации атрибутов видеопотока предоставляет определение того, могут или нет выполнять декодирование способ декодирования видео или устройство декодирования видео, которые описываются в каждом из вариантов осуществления. Даже после ввода мультиплексированных данных, которые соответствуют другому стандарту, могут быть выбраны надлежащий способ или устройство декодирования. Таким образом, появляется возможность декодировать информацию без ошибок. Кроме того, способ или устройство кодирования видео либо способ или устройство декодирования видео в варианте 3 осуществления могут быть использованы в устройствах и системах, описанных выше.
[0212] Четвертый вариант осуществления
Каждый из способа кодирования видео, устройства кодирования видео, способа декодирования видео и устройства декодирования видео в каждом из вариантов осуществления типично осуществляется в форме интегральной схемы или большой интегральной (LSI) схемы. В качестве примера LSI, фиг. 22 иллюстрирует конфигурацию LSI ex500, которая состоит из одной микросхемы. LSI ex500 включает в себя элементы ex501, ex502, ex503, ex504, ex505, ex506, ex507, ex508 и ex509, которые должны быть описаны ниже, и элементы соединяются друг с другом через шину ex510. Модуль ex505 схемы электропитания активируется посредством предоставления в каждый из элементов питания, когда модуль ex505 схемы электропитания включается.
[0213] Например, когда выполняется кодирование, LSI ex500 принимает AV-сигнал из микрофона ex117, камеры ex113 и т.п. через AV-ввод/вывод ex509 под управлением модуля ex501 управления, включающего в себя CPU ex502, контроллер ex503 запоминающего устройства, потоковый контроллер ex504 и модуль ex512 управления частотой возбуждения. Принимаемый AV-сигнал временно сохраняется во внешнем запоминающем устройстве ex511, к примеру, SDRAM. Под управлением модуля ex501 управления, сохраненные данные сегментируются на части данных согласно объему и скорости обработки так, что они передаются в модуль ex507 обработки сигналов. Затем модуль ex507 обработки сигналов кодирует аудиосигнал и/или видеосигнал. Здесь кодирование видеосигнала является кодированием, описанным в каждом из вариантов осуществления. Кроме того, модуль ex507 обработки сигналов иногда мультиплексирует кодированные аудиоданные и кодированные видеоданные, и потоковый ввод-вывод ex506 предоставляет мультиплексированные данные наружу. Предоставляемый поток битов передается в базовую станцию ex107 или записывается на носители ex215 записи. Когда наборы данных мультиплексируются, наборы данных должны временно сохраняться в буфере ex508 так, что наборы данных являются синхронизированными друг с другом.
[0214] Хотя запоминающее устройство ex511 является элементом вне LSI ex500, это может быть включено в LSI ex500. Буфер ex508 не ограничен одним буфером, а может состоять из буферов. Кроме того, LSI ex500 может состоять из одной микросхем или множества микросхем.
[0215] Кроме того, хотя модуль ex510 управления включает в себя CPU ex502, контроллер ex503 запоминающего устройства, потоковый контроллер ex504, модуль ex512 управления частотой возбуждения, конфигурация модуля ex510 управления не ограничена этой. Например, модуль ex507 обработки сигналов дополнительно может включать в себя CPU. Включение другого CPU в модуль ex507 обработки сигналов может повышать скорость обработки. Кроме того, в качестве другого примера, CPU ex502 может включать в себя модуль ex507 обработки сигналов или модуль обработки аудиосигналов, который является частью модуля ex507 обработки сигналов. В таком случае, модуль ex501 управления включает в себя модуль ex507 обработки сигналов или CPU ex502, включающий в себя часть модуля ex507 обработки сигналов.
[0216] Используемым здесь названием является LSI, но она также может называться IC, системной LSI, супер-LSI или ультра-LSI в зависимости от степени интеграции.
[0217] Кроме того, способы достигать интеграции не ограничены LSI, и специальная схема или процессор общего назначения и т.д. также позволяет достигать интеграции. Программируемая пользователем вентильная матрица (FPGA), которая может программироваться после изготовления LSI, или реконфигурируемый процессор, который дает возможность переконфигурирования соединения или конфигурации LSI, может использоваться для аналогичной цели.
[0218] В будущем, с развитием полупроводниковых технологий, совершенно новая технология может заменять LSI. Функциональные блоки могут быть интегрированы с использованием этой технологии. Имеется возможность того, что настоящее изобретение применимо к биотехнологии.
[0219] Пятый вариант осуществления
Когда видеоданные декодируются посредством способа кодирования видео или посредством устройства кодирования видео, описанных в каждом из вариантов осуществления, по сравнению с тем, когда видеоданные, которые соответствуют традиционному стандарту, такому как MPEG-2, MPEG4-AVC и VC-1, объем вычислений, вероятно, увеличивается. Таким образом, LSI ex500 должен задаваться на частоте возбуждения, превышающей частоту CPU ex502, которая должна быть использована, когда видеоданные декодируются в соответствии с традиционным стандартом. Тем не менее, когда частота возбуждения задается большей, имеется проблема в том, что энергопотребление возрастает.
[0220] Чтобы разрешать проблему, устройство декодирования видео, к примеру, телевизионный приемник ex300 и LSI ex500, выполнен с возможностью определять то, какому стандарту соответствуют видеоданные, и переключаться между частотами возбуждения согласно определенному стандарту. Фиг. 23 иллюстрирует конфигурацию ex800 в варианте 5 осуществления. Модуль ex803 переключения частоты возбуждения задает частоту возбуждения равной большей частоте возбуждения, когда видеоданные формируются посредством способа кодирования видео или устройства кодирования видео, описанных в каждом из вариантов осуществления. Затем модуль ex803 переключения частоты возбуждения предписывает модулю ex801 обработки декодирования, который выполняет способ декодирования видео, описанный в каждом из вариантов осуществления, декодировать видеоданные. Когда видеоданные соответствуют традиционному стандарту, модуль ex803 переключения частоты возбуждения задает частоту возбуждения равной меньшей частоте возбуждения, чем частота возбуждения видеоданных, сформированных посредством способа кодирования видео или устройства кодирования видео, описанных в каждом из вариантов осуществления. Затем модуль ex803 переключения частоты возбуждения предписывает модулю ex802 обработки декодирования, который соответствует традиционному стандарту, декодировать видеоданные.
[0221] Более конкретно, модуль ex803 переключения частоты возбуждения включает в себя CPU ex502 и модуль ex512 управления частотой возбуждения на фиг. 22. Здесь, каждый из модуля ex801 обработки декодирования, который выполняет способ декодирования видео, описанный в каждом из вариантов осуществления, и модуля ex802 обработки декодирования, который соответствует традиционному стандарту, соответствует модулю ex507 обработки сигналов на фиг. 22. CPU ex502 определяет то, какому стандарту соответствуют видеоданные. Затем модуль ex512 управления частотой возбуждения определяет частоту возбуждения на основе сигнала из CPU ex502. Кроме того, модуль ex507 обработки сигналов декодирует видеоданные на основе сигнала из CPU ex502. Например, идентификационная информация, описанная в варианте 3 осуществления, вероятно, используется для идентификации видеоданных. Идентификационная информация не ограничена идентификационной информацией, описанной в варианте 3 осуществления, а может быть любой информацией при условии, что, информация указывает, какому стандарту соответствуют видеоданные. Например, когда то, какому стандарту соответствуют стандартные видеоданные, может быть определено на основе внешнего сигнала для определения того, что видеоданные используются для телевизионного приемника или диска и т.д., определение может выполняться на основе такого внешнего сигнала. Кроме того, CPU ex502 выбирает частоту возбуждения на основе, например, таблицы соответствия, в которой стандарты видеоданных ассоциированы с частотами возбуждения, как показано на фиг. 25. Частота возбуждения может быть выбрана посредством сохранения таблицы соответствия в буфере ex508 и внутреннем запоминающем устройстве LSI и при обращении к таблице соответствия посредством CPU ex502.
[0222] Фиг. 24 иллюстрирует этапы для осуществления способа в варианте 5 осуществления. Во-первых, на этапе exS200, модуль ex507 обработки сигналов получает идентификационную информацию из мультиплексированных данных. Затем на этапе exS201, CPU ex502 определяет то, формируются или нет видеоданные на основе идентификационной информации посредством способа кодирования и устройства кодирования, описанных в каждом из вариантов осуществления. Когда видеоданные формируются посредством способа кодирования и устройства кодирования, описанных в каждом из вариантов осуществления, на этапе exS202, CPU ex502 передает сигнал для задания частоты возбуждения, равной большей частоте возбуждения, в модуль ex512 управления частотой возбуждения. Затем модуль ex512 управления частотой возбуждения задает частоту возбуждения равной большей частоте возбуждения. С другой стороны, когда идентификационная информация указывает, что видеоданные соответствуют традиционному стандарту, такому как MPEG-2, MPEG4-AVC и VC-1, на этапе exS203, CPU ex502 передает сигнал для задания частоты возбуждения, равной меньшей частоте возбуждения, в модуль ex512 управления частотой возбуждения. Затем модуль ex512 управления частотой возбуждения задает частоту возбуждения равной меньшей частоте возбуждения, чем частота возбуждения в случае, если видеоданные формируются посредством способа кодирования и устройства кодирования, описанных в каждом из вариантов осуществления.
[0223] Кроме того, наряду с переключением частот возбуждения, энергосберегающий эффект может быть повышен посредством изменения напряжения, которое должно прикладываться к LSI ex500 или устройству, включающему в себя LSI ex500. Например, когда частота возбуждения задается меньшей, напряжение, которое должно прикладываться к LSI ex500 или устройству, включающему в себя LSI ex500, вероятно, задается равным напряжению, меньшему напряжения в случае, если частота возбуждения задается большей.
[0224] Кроме того, когда объем вычислений для декодирования больше, частота возбуждения может задаваться большей, а когда объем вычислений для декодирования меньше, частота возбуждения может задаваться меньшей в качестве способа для задания частоты возбуждения. Таким образом, способ задания не ограничен способами, описанными выше. Например, когда объем вычислений для декодирования видеоданных в соответствии с MPEG4-AVC превышает объем вычислений для декодирования видеоданных, сформированных посредством способа кодирования видео и устройства кодирования видео, описанных в каждом из вариантов осуществления, частота возбуждения, вероятно, задается в обратном порядке относительно задания, описанного выше.
[0225] Кроме того, способ для задания частоты возбуждения не ограничен способом для задания частоты возбуждения меньшей. Например, когда идентификационная информация указывает, что видеоданные формируются посредством способа кодирования видео и устройства кодирования видео, описанных в каждом из вариантов осуществления, напряжение, которое должно прикладываться к LSI ex500 или устройству, включающему в себя LSI ex500, вероятно, задается большим. Когда идентификационная информация указывает, что видеоданные соответствуют традиционному стандарту, такому как MPEG-2, MPEG4-AVC и VC-1, напряжение, которое должно прикладываться к LSI ex500 или устройству, включающему в себя LSI ex500, вероятно, задается меньшим. В качестве другого примера, когда идентификационная информация указывает, что видеоданные формируются посредством способа кодирования видео и устройства кодирования видео, описанных в каждом из вариантов осуществления, возбуждение CPU ex502, вероятно, не должно приостанавливаться. Когда идентификационная информация указывает, что видеоданные соответствуют традиционному стандарту, такому как MPEG-2, MPEG4-AVC и VC-1, возбуждение CPU ex502, вероятно, приостанавливается в данное время, поскольку CPU ex502 имеет дополнительную производительность обработки. Даже когда идентификационная информация указывает, что видеоданные формируются посредством способа кодирования видео и устройства кодирования видео, описанных в каждом из вариантов осуществления, в случае если CPU ex502 имеет дополнительную производительность обработки, возбуждение CPU ex502, вероятно, приостанавливается в данное время. В таком случае, время приостановки, вероятно, задается меньшим времени приостановки в случае, когда идентификационная информация указывает, что видеоданные соответствуют традиционному стандарту, такому как MPEG-2, MPEG4-AVC и VC-1.
[0226] Соответственно, энергосберегающий эффект может быть повышен посредством переключения между частотами возбуждения согласно стандарту, которому соответствуют видеоданные. Кроме того, когда LSI ex500 или устройство, включающее в себя LSI ex500, возбуждается с использованием аккумулятора, время работы от аккумулятора может быть продлено с помощью энергосберегающего эффекта.
[0227] Шестой вариант осуществления
Возникают случаи, когда множество видеоданных, которые соответствуют различным стандартам, предоставляется в устройства и системы, такие как телевизионный приемник и сотовый телефон. Чтобы обеспечивать декодирование множества видеоданных, которые соответствуют различным стандартам, модуль ex507 обработки сигналов LSI ex500 должен соответствовать различным стандартам. Тем не менее, проблемы увеличения масштаба схемы LSI ex500 и увеличения затрат возникают при отдельном использовании модулей ex507 обработки сигналов, которые соответствуют соответствующим стандартам.
[0228] Чтобы разрешать проблему, задумана конфигурация, в которой частично совместно используются модуль обработки декодирования для реализации способа декодирования видео, описанного в каждом из вариантов осуществления, и модуль обработки декодирования, который соответствует традиционному стандарту, такому как MPEG-2, MPEG4-AVC и VC-1. Ex900 на фиг. 26A показывает пример конфигурации. Например, способ декодирования видео, описанный в каждом из вариантов осуществления, и способ декодирования видео, который соответствует MPEG4-AVC, имеют, частично совместно, подробности обработки, к примеру, энтропийного кодирования, обратного квантования, фильтрации для распаковки блоков и прогнозирования с компенсацией движения. Подробности обработки, которая должна совместно использоваться, вероятно, включают в себя использование модуля ex902 обработки декодирования, который соответствует MPEG4-AVC. Напротив, выделенный модуль ex901 обработки декодирования, вероятно, используется для другой обработки, уникальной для настоящего изобретения. Модуль обработки декодирования для реализации способа декодирования видео, описанного в каждом из вариантов осуществления, может быть совместно использован для обработки, которая должна совместно использоваться, и выделенный модуль обработки декодирования может использоваться для обработки, уникальной для MPEG4-AVC.
[0229] Кроме того, ex1000 на фиг. 26B показывает другой пример, в котором частично совместно используется обработка. Этот пример использует конфигурацию, включающую в себя выделенный модуль ex1001 обработки декодирования, который поддерживает обработку, уникальную для настоящего изобретения, выделенный модуль ex1002 обработки декодирования, который поддерживает обработку, уникальную для другого традиционного стандарта, и модуль ex1003 обработки декодирования, который поддерживает обработку, которая должна совместно использоваться между способом декодирования видео в настоящем изобретении и традиционным способом декодирования видео. Здесь, выделенные модули ex1001 и ex1002 обработки декодирования не обязательно являются специализированными для обработки настоящего изобретения и обработки традиционного стандарта и могут быть модулями обработки, допускающими реализацию общей обработки. Кроме того, конфигурация варианта 6 осуществления может быть реализована посредством LSI ex500.
[0230] Также, уменьшение масштаба схемы LSI и уменьшение затрат являются возможными посредством совместного использования модуля обработки декодирования для обработки, которая должна совместно использоваться между способом декодирования видео в настоящем изобретении и способом декодирования видео в соответствии с традиционным стандартом.
Промышленная применимость
[0231] Способ пространственного прогнозирования согласно настоящему изобретению может уменьшать сложность пространственного прогнозирования и применим к сотовым телефонам, персональным компьютерам, устройствам записи и воспроизведения и т.п., каждое из которых включает в себя, например, по меньшей мере, одно из (i) устройства кодирования изображений, которое кодирует изображение с использованием результата пространственного прогнозирования, (ii) устройства декодирования изображений, которое декодирует изображение с использованием результата пространственного прогнозирования, и (iii) устройства кодирования изображений и устройства декодирования изображений.
Список ссылочных позиций
[0232]
100 - устройство кодирования изображений (кодер)
105 - модуль вычитания
110 - модуль квантования с преобразованием
120 - модуль обратного квантования и обратного преобразования
125 - модуль сложения
130 - фильтр распаковки блоков
140 - запоминающее устройство
150 - интерполяционный фильтр
160 - модуль прогнозирования с компенсацией движения
165 - модуль оценки движения
170 - модуль интрапрогнозирования
175 - модуль переключения интра-/интеррежима
180 - модуль расчетов для постфильтра
190 - модуль энтропийного кодирования
200 - устройство декодирования изображений (декодер)
220 - модуль обратного квантования и обратного преобразования
225 - модуль сложения
230 - фильтр распаковки блоков
240 - запоминающее устройство
250 - интерполяционный фильтр
260 - модуль прогнозирования с компенсацией движения
270 - модуль интрапрогнозирования
275 - модуль переключения интра-/интеррежима
280 - постфильтр
290 - модуль энтропийного декодирования
Изобретение относится к системам кодирования и декодирования видеоданных. Техническим результатом является уменьшение сложности пространственного прогнозирования за счет обнаружения целочисленного наклона края для текущего блока на основе вертикального и горизонтального градиента. Предложен способ пространственного прогнозирования для пространственного прогнозирования пиксельного значения в каждой пиксельной позиции в текущем блоке, включенном в изображение. Способ включает в себя этап, на котором вычисляют целочисленный наклон, который применен к краю изображения, который перекрывает текущий блок, на основе, по меньшей мере, одного из направления горизонтального градиента и направления вертикального градиента между пикселями в блоке, смежном с текущим блоком, каждое из которых указано посредством номера режима пространственного прогнозирования, причем целочисленный наклон указывает целочисленное значение наклона, подлежащего применению к обнаруженному краю. А также, определяют субпиксельную позицию для каждой из пиксельных позиций в текущем блоке, которая является пересечением между линией вычисленного целочисленного наклона края, которая проходит через пиксельную позицию в текущем блоке, и границей блока, смежного с текущим блоком. 12 н. и 6 з.п. ф-лы, 31 ил.
1. Способ пространственного прогнозирования для пространственного прогнозирования пиксельного значения в каждой пиксельной позиции в текущем блоке, включенном в изображение, при этом способ содержит этапы, на которых:
вычисляют целочисленный наклон, который применен к краю изображения, который перекрывает текущий блок, на основе, по меньшей мере, одного из направления горизонтального градиента и направления вертикального градиента между пикселями в блоке, смежном с текущим блоком, каждое из которых указано посредством номера режима пространственного прогнозирования, причем целочисленный наклон указывает целочисленное значение наклона, подлежащего применению к обнаруженному краю;
определяют субпиксельную позицию для каждой из пиксельных позиций в текущем блоке, которая является пересечением между (i) линией вычисленного целочисленного наклона края, которая проходит через пиксельную позицию в текущем блоке, и (ii) границей блока, смежного с текущим блоком; и
прогнозируют для каждой из пиксельных позиций пиксельное значение в пиксельной позиции на основе пиксельного значения, интерполированного в субпиксельной позиции, определенной для пиксельной позиции.
2. Способ пространственного прогнозирования по п. 1,
в котором при вычислении один из горизонтального градиента и вертикального градиента масштабируют посредством 2 в степени с и целочисленный наклон вычисляют с использованием масштабированного одного из горизонтального градиента и вертикального градиента, где с является положительным целым числом, и
при определении субпиксельную позицию для пиксельной позиции вычисляют посредством умножения целочисленного наклона, образованного посредством масштабирования, на значение координат, горизонтальное или вертикальное для пиксельной позиции, которая должна быть прогнозирована в текущем блоке.
3. Способ пространственного прогнозирования по п. 2, дополнительно содержащий этап, на котором:
вычисляют значение с, используя функцию одного из горизонтального градиента и вертикального градиента.
4. Способ пространственного прогнозирования по п. 1,
в котором при вычислении результат деления получают при обращении к таблице деления, сохраненной в запоминающем устройстве, и целочисленный наклон вычисляют с использованием полученного результата деления, причем при делении используют в качестве делителя значение, указывающее один из горизонтального градиента и вертикального градиента, и таблица деления указывает для каждого предварительно определенного значения предварительно определенное значение и результат деления с использованием предварительно определенного значения в качестве делителя.
5. Способ пространственного прогнозирования по п. 4,
в котором максимальное значение предварительно определенного значения, указанного в таблице деления, является 2 в степени b, где b является целым числом, и при вычислении, когда значение, указывающее один из горизонтального градиента и вертикального градиента, используемое в качестве делителя, превышает 2 в степени b, один из горизонтального градиента и вертикального градиента масштабируют посредством сдвига битов значения вправо, чтобы получить результат деления с использованием в качестве делителя значения, указывающего масштабированный один из горизонтального градиента и вертикального градиента.
6. Способ пространственного прогнозирования по п. 1,
в котором при вычислении целочисленный наклон вычисляют посредством деления значения, указывающего один из горизонтального градиента и вертикального градиента, на значение, указывающее другой из горизонтального градиента и вертикального градиента,
когда прогнозируют пиксельное значение в каждой из пиксельных позиций в текущем блоке, весовые коэффициенты задают согласно расстоянию, на границе, между субпиксельной позицией, определенной для пиксельной позиции, и каждой из полнопиксельных позиций, смежных с субпиксельной позицией, и
пиксельное значение в субпиксельной позиции интерполируют посредством задания соответствующего одного из весовых коэффициентов каждому пиксельному значению полнопиксельных позиций и вычисления взвешенного среднего пиксельных значений.
7. Способ пространственного прогнозирования по одному из пп. 1-6,
в котором при вычислении целочисленный наклон вычисляют только для текущего блока и при определении субпиксельную позицию определяют для каждой из пиксельных позиций в текущем блоке с использованием целочисленного наклона, который является общим для пиксельных позиций.
8. Способ для декодирования изображения, кодированного поблочно, при этом способ содержит этапы, на которых:
прогнозируют пиксельное значение в каждой пиксельной позиции в текущем блоке, который должен быть декодирован, с использованием способа пространственного прогнозирования по одному из пп. 1-7, чтобы образовать прогнозированный блок;
получают блок ошибки прогнозирования; и
суммируют прогнозированный блок с блоком ошибки прогнозирования.
9. Способ для кодирования изображения поблочно, при этом способ содержит этапы, на которых:
прогнозируют пиксельное значение в каждой пиксельной позиции в текущем блоке, который должен быть кодирован, с использованием способа пространственного прогнозирования по одному из пп. 1-7, чтобы образовать прогнозированный блок; и
вычитают прогнозированный блок из текущего блока.
10. Устройство пространственного прогнозирования, которое пространственно прогнозирует пиксельное значение в каждой пиксельной позиции в текущем блоке, включенном в изображение, причем устройство содержит:
модуль вычисления, выполненный с возможностью вычислять целочисленный наклон, который применен к краю изображения, который перекрывает текущий блок, на основе, по меньшей мере, одного из направления горизонтального градиента и направления вертикального градиента между пикселями в блоке, смежном с текущим блоком, каждое из которых указано посредством номера режима пространственного прогнозирования, причем целочисленный наклон указывает целочисленное значение наклона, подлежащего применению к обнаруженному краю;
модуль определения, выполненный с возможностью определять субпиксельную позицию для каждой из пиксельных позиций в текущем блоке, которая является пересечением между (i) линией вычисленного целочисленного наклона края, которая проходит через пиксельную позицию в текущем блоке, и (ii) границей блока, смежного с текущим блоком; и
модуль прогнозирования, выполненный с возможностью прогнозировать для каждой из пиксельных позиций пиксельное значение в пиксельной позиции на основе пиксельного значения, интерполированного в субпиксельной позиции, определенной для пиксельной позиции.
11. Устройство декодирования изображений, которое декодирует изображение, кодированное поблочно, причем устройство содержит:
устройство пространственного прогнозирования по п. 10, которое прогнозирует пиксельное значение в каждой пиксельной позиции в текущем блоке, который должен быть декодирован, чтобы образовать прогнозированный блок; и
модуль сложения, выполненный с возможностью получать блок ошибки прогнозирования и суммировать прогнозированный блок с блоком ошибки прогнозирования.
12. Устройство кодирования изображений, которое кодирует изображение поблочно, причем устройство содержит:
устройство пространственного прогнозирования по п. 10, которое прогнозирует пиксельное значение в каждой пиксельной позиции в текущем блоке, который должен быть кодирован, чтобы образовать прогнозированный блок; и
модуль вычитания, выполненный с возможностью вычитать прогнозированный блок из текущего блока.
13. Считываемый компьютером носитель, имеющий сохраненные на нем инструкции для вынуждения компьютера выполнять способ пространственного прогнозирования для пространственного прогнозирования пиксельного значения в каждой пиксельной позиции в текущем блоке, включенном в изображение, причем упомянутый способ содержит этапы, на которых:
вычисляют целочисленный наклон, который применен к краю изображения, который перекрывает текущий блок, на основе, по меньшей мере, одного из направления горизонтального градиента и направления вертикального градиента между пикселями в блоке, смежном с текущим блоком, каждое из которых указано посредством номера режима пространственного прогнозирования, причем целочисленный наклон указывает целочисленное значение наклона, подлежащего применению к обнаруженному краю;
определяют субпиксельную позицию для каждой из пиксельных позиций в текущем блоке, которая является пересечением между (i) линией вычисленного целочисленного наклона края, которая проходит через пиксельную позицию в текущем блоке, и (ii) границей блока, смежного с текущим блоком; и
прогнозируют для каждой из пиксельных позиций пиксельное значение в пиксельной позиции на основе пиксельного значения, интерполированного в субпиксельной позиции, определенной для пиксельной позиции.
14. Считываемый компьютером носитель, имеющий сохраненные на нем инструкции для вынуждения компьютера выполнять способ для декодирования изображения, кодированного поблочно, причем упомянутый способ содержит этапы, на которых:
прогнозируют пиксельное значение в каждой пиксельной позиции в текущем блоке, который должен быть декодирован, с использованием считываемого компьютером носителя по п. 13, чтобы образовать прогнозированный блок;
получают блок ошибки прогнозирования; и
суммируют прогнозированный блок с блоком ошибки прогнозирования.
15. Считываемый компьютером носитель, имеющий сохраненные на нем инструкции для вынуждения компьютера выполнять способ для кодирования изображения поблочно, причем упомянутый способ содержит этапы, на которых:
прогнозируют пиксельное значение в каждой пиксельной позиции в текущем блоке, который должен быть кодирован, с использованием считываемого компьютером носителя по п. 13, чтобы образовать прогнозированный блок; и
вычитают прогнозированный блок из текущего блока.
16. Интегральная схема, которая пространственно прогнозирует пиксельное значение в каждой пиксельной позиции в текущем блоке, включенном в изображение, причем схема содержит:
модуль вычисления, выполненный с возможностью вычислять целочисленный наклон, который применен к краю изображения, который перекрывает текущий блок, на основе, по меньшей мере, одного из направления горизонтального градиента и направления вертикального градиента между пикселями в блоке, смежном с текущим блоком, каждое из которых указано посредством номера режима пространственного прогнозирования, причем целочисленный наклон указывает целочисленное значение наклона, подлежащего применению к обнаруженному краю;
модуль определения, выполненный с возможностью определять субпиксельную позицию для каждой из пиксельных позиций в текущем блоке, которая является пересечением между (i) линией вычисленного целочисленного наклона края, которая проходит через пиксельную позицию в текущем блоке, и (ii) границей блока, смежного с текущим блоком; и
модуль прогнозирования, выполненный с возможностью прогнозировать для каждой из пиксельных позиций пиксельное значение в пиксельной позиции на основе пиксельного значения, интерполированного в субпиксельной позиции, определенной для пиксельной позиции.
17. Интегральная схема для декодирования изображений, которая декодирует изображение, кодированное поблочно, причем схема содержит:
интегральную схему по п. 16, которая прогнозирует пиксельное значение в каждой пиксельной позиции в текущем блоке, который должен быть декодирован, чтобы образовать прогнозированный блок; и
модуль сложения, выполненный с возможностью получать блок ошибки прогнозирования и суммировать прогнозированный блок с блоком ошибки прогнозирования.
18. Интегральная схема для кодирования изображений, которая кодирует изображение поблочно, причем схема содержит:
интегральную схему по п. 16, которая прогнозирует пиксельное значение в каждой пиксельной позиции в текущем блоке, который должен быть кодирован, чтобы образовать прогнозированный блок; и
модуль вычитания, выполненный с возможностью вычитать прогнозированный блок из текущего блока.
Авторы
Даты
2015-12-20—Публикация
2011-04-11—Подача