СПОСОБ И УСТРОЙСТВО ОБРАБОТКИ ИЗОБРАЖЕНИЯ
IMAGE PROCESSING METHOD AND APPARATUS

Область техники, к которой относится изобретение
Настоящее изобретение относится к способу и устройству обработки изображения и, в частности, относится к способу и устройству для обработки изображения, которые позволяют не допустить увеличения объема сжатой информации, а также повысить точность прогнозирования.
Предпосылки к созданию изобретения
В последние годы широкое распространение получили устройства, в которых изображение подвергают сжимающему кодированию с использованием системы кодирования, обрабатывающей информацию изображения в форме цифровых сигналов, и в этот момент сжимают изображение посредством ортогонального преобразования, такого как дискретное косинусное преобразование или другое подобное преобразование, и компенсации движения, используя преимущества избыточности, которая является свойством информации изображения, для осуществления передачи и накопления информации с высокой эффективностью. Примеры такого способа кодирования включают алгоритмы MPEG (группа экспертов по кинематографии) и т.п.
В частности, стандарт MPEG2 (ISO/IEC 13818-2) определен в качестве системы кодирования изображения общего назначения и является стандартом, охватывающим как изображения с чересстрочной разверткой, так и изображения с построчной разверткой, а также изображения со стандартным разрешением и изображения высокой четкости. Например, стандарты MPEG2 широко использовались до последнего времени самыми разнообразными приложениями, как для профессионального, так и для потребительского применения. При использовании системы MPEG2 сжатия для изображения с чересстрочной разверткой и стандартным разрешением, имеющего размер, например, 720×480 пикселов, выделяют объем кода (скорость передачи информации) от 4 до 8 Мбит/с. В то же время, при использовании системы MPEG2 сжатия для изображения с чересстрочной разверткой и высокой четкостью, имеющего размер, например, 1920×1088 пикселов, выделяют объем кода (скорость передачи информации) от 18 до 22 Мбит/с. Таким способом можно реализовать высокий коэффициент сжатия и превосходное качество изображения.
Стандарт MPEG2 был принципиально направлен на реализацию высококачественного кодирования изображения применительно к области широкого вещания, но не работает с более низкими объемами кода (скоростью передачи информации), чем объем кода для стандартов MPEG1, т.е. для системы кодирования, имеющей более высокий коэффициент сжатия. Ожидается, что потребность в такой системе кодирования будет только возрастать вследствие распространения персональных цифровых помощников, и в ответ на такие потребности была произведена стандартизация системы MPEG4 кодирования. Технические характеристики такой системы кодирования были утверждены в качестве международного стандарта ISO/IEC 14496-2 в Декабре 1998.
Кроме того, в последние годы продвигался процесс оформления стандарта, именуемого H.26L (ITU-T Q6/16 VCEG) и имеющего целью кодирование изображения для использования в ходе телеконференций. Относительно стандарта H.26L было обнаружено, что хотя при кодировании и декодировании в этом стандарте требуется выполнить больший объем вычислений по сравнению с обычной системой кодирования, такой как MPEG2 или MPEG4, тем не менее, реализуется более высокая эффективность кодирования. Кроме того, в настоящее время в рамках работы над стандартами MPEG4 ведется разработка стандартов, позволяющих использовать преимущества функций, не поддерживаемых стандартами H.26L, причем стандарты H.26L взяты за основу для реализации повышенной эффективности кодирования. Эти работы велись под названием «Совместная модель видео кодирования с повышенной степенью сжатия» (Joint Model of Enhanced-Compression Video Coding). В рамках этих работ по стандартизации, стандарты Н.264 и MPEG-4 Part 10 (Усовершенствованное видео кодирование (Advanced Video Coding), именуемое далее H.264/AVC) стали международными стандартами в марте 2003.
Далее, в качестве развития этих стандартов в феврале 2005 г. была завершена работа по разработке стандарта FRExt (Расширение диапазона точности воспроизведения (Fidelity Range Extension)), включая инструмент кодирования, необходимый для коммерческого применения, такого как RGB, 4:2:2 или 4:4:4, 8x8DCT и матрицу квантования, определенные в стандартах MPEG-2. Таким образом, стандарт H.264/AVC стал системой кодирования, позволяющей адекватным образом представить даже шумы пленки, входящие в движущееся изображение (кинофильм), и был использован в самых разнообразных приложениях, таких как диски «блю-рей» (Blue-Ray Disc) (зарегистрированная торговая марка) и т.п.
Однако в настоящее время возросла потребность в кодировании с высокой степенью сжатия, например в целях сжатия изображения размером около 4000×2000 пикселов, представляющего собой изображение с четырехкратной высокой четкостью. В альтернативном варианте выросла потребность в дальнейшем увеличении степени сжатия при кодировании, например с целью передачи изображения высокой четкости в среде с ограниченной пропускной способностью, такой как Интернет. Поэтому упомянутая выше VCEG (= Экспертная группа по видео кодированию (Video Coding Expert Group)) продолжает под руководством Международного союза электросвязи (ITU-T) исследования в области повышения эффективности кодирования.
Например, при использовании системы MPEG2 обработка данных для прогнозирования и компенсации движения с точностью 1/2 пиксела производилась посредством линейной интерполяции. С другой стороны, при использовании системы H.264/AVC обработка данных для прогнозирования и компенсации с точностью 1/4 пиксела производится с применением имеющего 6 отводов фильтра с конечной импульсной характеристикой (КИХ-фильтра (FIR)).
Для реализации обработки данных для прогнозирования и компенсации с точностью 1/4 пиксела в последние годы были проведены исследования с целью еще более повысить эффективность системы H.264/AVC. В качестве одной из систем кодирования с этой целью в источнике NPL 1 (Непатентная литература 1) была предложена система прогнозирования движения с точностью 1/8 пиксела.
В частности, согласно NPL 1 интерполяционная обработка данных с точностью 1/2 пиксела осуществляется посредством фильтра [-3, 12, -39, 158, 158, -39, 12, -3] / 256. Кроме того, интерполяционная обработка данных с точностью 1/4 пиксела осуществляется посредством фильтра [-3, 12, -37, 229, 71, -21, 6, -1] / 256 и интерполяционная обработка данных с точностью 1/8 пиксела осуществляется путем линейной интерполяции.
Таким образом, осуществляется прогнозирование движения с использованием интерполяционной обработки данных с более высокой точностью в пикселах, что делает возможным улучшение точности прогнозирования и реализацию повышенной эффективности кодирования, в частности при относительно медленной последовательности движения, обеспечивающей разрешение высокой текстуры.
В частности, в качестве одного из факторов, способствующих реализации системой H.264/AVC более высокой эффективности кодирования по сравнению с обычной системой MPEG2 или аналогичной системой, используют способ внутрикадрового прогнозирования, который будет описан позднее.
В системе H.264/AVC разработаны девять видов режимов прогнозирования для блоков размером 4×4 пикселов и 8×8 пикселов и четыре вида режимов прогнозирования для макроблоков размером 16×16 пикселов для яркостных сигналов. Для цветоразностных сигналов предложены четыре вида режимов внутрикадрового прогнозирования для блоков размером 8×8 пикселов. Режимы внутрикадрового прогнозирования для цветоразностных сигналов можно устанавливать независимо от режимов внутрикадрового прогнозирования для яркостных сигналов. Отметим, что виды режимов прогнозирования соответствуют направлениям 0,1 и 3-8, показанным на фиг.1, Режим 2 прогнозирования представляет собой прогнозирование средней величины.
Использование такой системы внутрикадрового прогнозирования позволило реализовать повышение точности прогнозирования. Однако в системе H.264/AVC, как показывают направления на фиг.1, применяется только внутрикадровое прогнозирование с шагом 22,5 градусов. Соответственно, если угол наклона края отличается от этого, степень повышения эффективности кодирования оказывается ограничена.
Поэтому в непатентной литературе NPL 2 был предложен способ дальнейшего повышения эффективности кодирования, отличающийся тем, что прогнозирование осуществляется с угловым шагом меньше 22,5 градусов.
Перечень литературы
Непатентная литература
NPL 1: «Способ прогнозирования с компенсацией движения при разрешении вектора движения в 1/8 пиксела» ("Motion compensated prediction with 1/8-pel displacement vector resolution", VCEG-AD09, ITU-Telecommunications Standardization Sector STUDY GROUP Question 6 Video coding Experts Group (VCEG), 23-27 Oct 2006)
NPL 2: «Способ прогнозирования края с высокой точностью при внутрикадровом кодировании» (Virginie Drugeon, Thomas Wedi, and Torsten Palmer, "High Precision Edge Prediction for Intra Coding", 2008)
Раскрытие изобретения
Техническая проблема
Хотя при внутрикадровом прогнозировании в системе H.264/AVC для прогнозирования используют заданный соседний пиксел для блока, подлежащего кодированию, с другой стороны, согласно предложению, описанному в источнике NPL 2, используют также пиксел, отличный от указанного соседнего пиксела для блока, подлежащего кодированию.
Соответственно, при использовании предложения, описанного в документе NPL 2, даже при выполнении прогнозирования с более мелким шагом угла, чем 22,5 градусов, число обращений к памяти и общий объем обработки данных увеличиваются.
Настоящее изобретение сделано в свете такой ситуации, чтобы еще больше повысить эффективность кодирования при внутрикадровом прогнозировании и при этом не допустить увеличения числа обращений к памяти и объема обработки данных.
Решение проблемы
Устройство обработки изображения согласно первому аспекту настоящего изобретения включает в себя: средство определения режима, выполненное с возможностью определения режима прогнозирования для внутрикадрового прогнозирования применительно к блоку внутрикадрового прогнозирования, подлежащему внутрикадровому прогнозированию, в качестве данных изображения; фазосдвигающее средство, выполненное с возможностью сдвига фазы соседнего пиксела, примыкающего к блоку внутрикадрового прогнозирования в заданном позиционном отношении, в соответствии с направлением сдвига согласно режиму прогнозирования, определяемому средством определения режима, на величину сдвига, являющуюся кандидатом; средство определения величины сдвига, выполненное с возможностью определения оптимальной величины сдвига указанной фазы для указанного соседнего пиксела с использованием указанного соседнего пиксела и указанного соседнего пиксела с фазой, сдвинутой фазосдвигающим средством; и средство генерирования прогнозируемого изображения, выполненное с возможностью генерирования прогнозируемого изображения блока внутрикадрового прогнозирования с использованием соседнего пиксела, фаза которого сдвинута на оптимальную величину сдвига, определяемую средством определения величины сдвига.
Устройство обработки изображения может дополнительно включать в себя: кодирующее средство, выполненное с возможностью кодирования разностной информации между изображением блока внутрикадрового прогнозирования и прогнозируемым изображением, генерируемым средством генерирования прогнозируемого изображения, для формирования кодированного потока данных; и передающее средство, выполненное с возможностью передачи вместе с кодированным потоком данных, формируемым модулем, информации о величине сдвига, указывающей оптимальную величину сдвига, определяемую средством определения величины сдвига, и информации о режиме прогнозирования, указывающей режим прогнозирования, определяемый средством определения режима.
Кодирующее средство может кодировать разностную информацию, указывающую разность между оптимальной величиной сдвига, определенной для блока внутрикадрового прогнозирования, и оптимальной величиной сдвига, определенной для блока, обеспечивающего наиболее вероятный режим (MostProbableMode), в качестве информации о величине сдвига, а передающее средство может передавать кодированный поток данных, формируемый кодирующим средством, и разностную информацию.
Фазосдвигающее средство может запретить сдвиг фазы, если режим прогнозирования, определенный средством определения режима, представляет собой прогнозирование по среднему значению (DC-прогнозирование).
Фазосдвигающее средство может сдвигать фазу в горизонтальном направлении для верхнего соседнего пиксела из совокупности соседних пикселов в соответствии с величиной сдвига, служащей кандидатом, и запретить сдвиг фазы в вертикальном направлении для левого соседнего пиксела из совокупности соседних пикселов, если режим прогнозирования, определенный средством определения режима, представляет собой режим Вертикального прогнозирования (Vertical prediction mode), режим прогнозирования «Вниз и влево по диагонали» (Diag_Down_Left prediction mode) или режим прогнозирования «По вертикали и влево» (Vertical_Left prediction mode).
Фазосдвигающее средство может сдвигать фазу в вертикальном направлении для левого соседнего пиксела из совокупности соседних пикселов в соответствии с величиной сдвига, служащей кандидатом, и запретить сдвиг фазы в горизонтальном направлении для верхнего соседнего пиксела из совокупности соседних пикселов, если режим прогнозирования, определенный средством определения режима, представляет собой режим Горизонтального прогнозирования (Horizontal prediction mode) или режим прогнозирования «По горизонтали и вверх» (Horizontal_Up prediction mode).
Средство определения режима может определять все режимы прогнозирования для внутрикадрового прогнозирования, фазосдвигающее средство может сдвигать фазу соседнего пиксела в соответствующем направлении сдвига во всех режимах прогнозирования, определенных средством определения режима, и на величину сдвига, служащую кандидатом, а средство определения величины сдвига может использовать указанный соседний пиксел и указанный соседний пиксел, фаза которого сдвинута фазосдвигающим средством, для определения оптимальной величины фазового сдвига и оптимального режима прогнозирования для соседнего пиксела.
Устройство обработки изображения может дополнительно включать в себя средство прогнозирования и компенсации движения, выполненное с возможностью выполнения межкадрового прогнозирования движения в отношении блока межкадрового прогнозирования движения на изображении, а фазосдвигающее средство может использовать фильтр, применяемый при прогнозировании с точностью до долей пиксела средством прогнозирования и компенсации движения, для сдвига фазы соседнего пиксела.
Способ обработки изображения согласно первому аспекту настоящего изобретения может включать в себя этапы, на которых: с помощью устройства обработки изображения определяют режим прогнозирования для внутрикадрового прогнозирования применительно к блоку внутрикадрового прогнозирования, подлежащему внутрикадровому прогнозированию, в качестве данных изображения; сдвигают фазу соседнего пиксела, примыкающего к блоку внутрикадрового прогнозирования в заданном позиционном отношении, в соответствии с направлением сдвига согласно режиму прогнозирования на величину сдвига, служащую кандидатом; определяют оптимальную величину сдвига указанной фазы для указанного соседнего пиксела с использованием указанного соседнего пиксела и указанного соседнего пиксела со сдвинутой фазой; и генерируют прогнозируемое изображение блока внутрикадрового прогнозирования с использованием соседнего пиксела, фаза которого сдвинута на оптимальную величину сдвига.
Устройство обработки изображения согласно второму аспекту настоящего изобретения включает в себя: приемное средство, выполненное с возможностью приема информации о режиме прогнозирования, указывающей режим прогнозирования для внутрикадрового прогнозирования применительно к блоку внутрикадрового прогнозирования, подлежащему обработке для внутрикадрового прогнозирования, и информации о величине сдвига, указывающей величину сдвига фазы соседнего пиксела, примыкающего к блоку внутрикадрового прогнозирования в заданном позиционном отношении, в соответствии с режимом прогнозирования, указанным информацией о режиме прогнозирования; фазосдвигающее средство, выполненное с возможностью сдвига фазы указанного соседнего пиксела в соответствии с направлением сдвига на величину сдвига согласно режиму прогнозирования, принимаемому приемным средством; и средство генерирования прогнозируемого изображения, выполненное с возможностью генерирования прогнозируемого изображения блока внутрикадрового прогнозирования с использованием соседнего пиксела, фаза которого сдвинута фазосдвигающим средством.
Приемное средство может принимать разностную информацию, указывающую разность между величиной сдвига, определяемой для блока внутрикадрового прогнозирования, и величиной сдвига, определяемой для блока, реализующего наиболее вероятный режим (MostProbableMode), в качестве информации о величине сдвига.
Устройство обработки изображения может дополнительно включать в себя декодирующее средство, выполненное с возможностью декодирования блока внутрикадрового прогнозирования с использованием прогнозируемого изображения, генерируемого средством генерирования прогнозируемого изображения.
Декодирующее средство может декодировать информацию о режиме прогнозирования, принимаемую приемным средством, и информацию о величине сдвига.
Фазосдвигающее средство может запретить сдвиг фазы соседнего пиксела, когда режим прогнозирования, декодированный декодирующим средством, является режимом DC-прогнозирования.
Фазосдвигающее средство может сдвигать фазу в горизонтальном направлении для верхнего соседнего пиксела из совокупности соседних пикселов в соответствии с величиной сдвига, декодируемой декодирующим средством, и запретить сдвиг фазы в вертикальном направлении для левого соседнего пиксела из совокупности соседних пикселов, если режим прогнозирования, декодируемый декодирующим средством, представляет собой режим вертикального прогнозирования (Vertical prediction mode), режим прогнозирования «вниз и влево по диагонали» (Diag_Down_Left prediction mode) или режим прогнозирования «по вертикали и влево» (Vertical_Left prediction mode).
Фазосдвигающее средство может сдвигать фазу в вертикальном направлении для левого соседнего пиксела из совокупности соседних пикселов в соответствии с величиной сдвига, декодируемой декодирующим средством, и запретить сдвиг фазы в горизонтальном направлении для верхнего соседнего пиксела из совокупности соседних пикселов, если режим прогнозирования, декодируемый декодирующим средством, представляет собой режим горизонтального прогнозирования (Horizontal prediction mode) или режим прогнозирования «по горизонтали и вверх» (Horizontal_Up prediction mode).
Устройство обработки изображения может дополнительно включать в себя модуль прогнозирования и компенсации движения, выполненный с возможностью выполнения межкадрового прогнозирования движения применительно к блоку межкадрового прогнозирования движения с использованием вектора движения, подлежащего декодированию декодирующим средством, вместе с кодированным блоком межкадрового прогнозирования движения, а фазосдвигающее средство может сдвигать фазу соседнего пиксела с использованием фильтра, применяемого при прогнозировании с точностью до долей пиксела средством прогнозирования и компенсации движения.
Способ обработки изображения согласно второму аспекту настоящего изобретения может включать в себя этапы, на которых: с помощью устройства обработки изображения по изобретению принимают информацию о режиме прогнозирования, указывающую режим прогнозирования при внутрикадровом прогнозировании применительно к блоку внутрикадрового прогнозирования, подлежащего обработке для внутрикадрового прогнозирования, и информацию о величине сдвига, указывающую величину сдвига фазы соседнего пиксела, примыкающего к блоку внутрикадрового прогнозирования в заданном позиционном отношении, в соответствии с режимом прогнозирования, указанным информацией о режиме прогнозирования; сдвигают фазу указанного соседнего пиксела в соответствии с направлением сдвига на величину сдвига согласно режиму прогнозирования, принятому приемным модулем; и генерируют прогнозируемое изображение блока внутрикадрового прогнозирования с использованием соседнего пиксела со сдвинутой фазой.
Согласно первому аспекту настоящего изобретения режим прогнозирования при внутрикадровом прогнозировании определяют применительно к блоку внутрикадрового прогнозирования, подлежащему обработке для внутрикадрового прогнозирования в качестве данных изображения, и сдвигают фазу соседнего пиксела, примыкающего к блоку внутрикадрового прогнозирования в заданном позиционном отношении, в соответствии с направлением сдвига согласно определенному режиму прогнозирования, на величину сдвига, служащую кандидатом. После этого определяют оптимальную величину фазового сдвига для указанного соседнего пиксела с использованием указанного соседнего пиксела и указанного соседнего пиксела со сдвинутой фазой; и генерируют прогнозируемое изображение блока внутрикадрового прогнозирования с использованием указанного соседнего пиксела, фаза которого сдвинута в соответствии с оптимальной величиной сдвига.
Согласно второму аспекту настоящего изобретения принимают информацию о режиме прогнозирования, указывающую режим прогнозирования при внутрикадровом прогнозировании применительно к блоку внутрикадрового прогнозирования, подлежащего обработке для внутрикадрового прогнозирования, и информацию о величине сдвига, указывающую величину сдвига фазы соседнего пиксела, примыкающего к блоку внутрикадрового прогнозирования в заданном позиционном отношении, в соответствии с режимом прогнозирования, указанным информацией о режиме прогнозирования, и сдвигают фазу указанного соседнего пиксела в соответствии с направлением сдвига и величиной сдвига согласно режиму прогнозирования, указанному принятой информацией о режиме прогнозирования. После этого генерируют прогнозируемое изображение блока внутрикадрового прогнозирования с использованием соседнего пиксела, фаза которого сдвинута.
Отметим, что указанные выше устройства обработки изображения могут быть автономными устройствами или могут быть внутренними блоками, составляющими одно устройство для кодирования изображения или устройство для декодирования изображения.
Преимущества изобретения
Согласно первому аспекту настоящего изобретения прогнозируемое изображение можно генерировать посредством внутрикадрового прогнозирования. Кроме того, согласно этому первому аспекту настоящего изобретения можно повысить эффективность кодирования без увеличения числа обращений к памяти и объема обработки данных.
Согласно второму аспекту настоящего изобретения прогнозируемое изображение можно генерировать посредством внутрикадрового прогнозирования. Кроме того, согласно этому второму аспекту настоящего изобретения можно повысить эффективность кодирования без увеличения числа обращений к памяти и объема обработки данных.
Краткое описание чертежей
Фиг.1 представляет диаграмму для описания направления внутрикадрового прогнозирования для блока 4×4 пикселов.
Фиг.2 представляет блок-схему, иллюстрирующую конфигурацию варианта устройства для кодирования изображений, в котором применено настоящее изобретение.
Фиг.3 представляет диаграмму для описания обработки данных при прогнозировании и компенсации движения с точностью 1/4 пиксела.
Фиг.4 представляет диаграмму для описания способа прогнозирования и компенсации движения для случая с несколькими опорными кадрами.
Фиг.5 представляет диаграмму для описания примера способа генерации информации вектора движения.
Фиг.6 представляет блок-схему, иллюстрирующую пример конфигурации модуля внутрикадрового прогнозирования и модуля интерполяции соседнего пиксела.
Фиг.7 представляет логическую схему для описания процесса кодирования в устройстве для кодирования изображения, показанном на фиг.2.
Фиг.8 представляет логическую схему для описания процесса прогнозирования на этапе S21, показанном на фиг.7.
Фиг.9 представляет диаграмму для описания последовательности обработки данных в режиме внутрикадрового прогнозирования для блока размером 16×16 пикселов.
Фиг.10 представляет диаграмму, иллюстрирующую виды режимов внутрикадрового прогнозирования для блоков размером 4×4 пикселов для яркостных сигналов.
Фиг.11 представляет диаграмму, иллюстрирующую виды режимов внутрикадрового прогнозирования для блоков размером 4×4 пикселов для яркостных сигналов.
Фиг.12 представляет диаграмму для описания направления внутрикадрового прогнозирования для блоков размером 4×4 пикселов.
Фиг.13 представляет диаграмму для описания внутрикадрового прогнозирования для блоков размером 4×4 пикселов.
Фиг.14 представляет диаграмму для описания кодирования в режиме внутрикадрового прогнозирования для блоков размером 4×4 пикселов для яркостных сигналов.
Фиг.15 представляет диаграмму, иллюстрирующую виды режимов внутрикадрового прогнозирования для блоков размером 16×16 пикселов для яркостных сигналов.
Фиг.16 представляет диаграмму, иллюстрирующую виды режимов внутрикадрового прогнозирования для блоков размером 16×16 пикселов для яркостных сигналов.
Фиг.17 представляет диаграмму для описания внутрикадрового прогнозирования для блоков 16×16 пикселов.
Фиг.18 представляет диаграмму для описания работы с целью реализации внутрикадрового прогнозирования с точностью до долей пиксела.
Фиг.19 представляет диаграмму для описания предпочтительного примера внутрикадрового прогнозирования с точностью до долей пиксела.
Фиг.20 представляет логическую схему для описания процедуры внутрикадрового прогнозирования на этапе S31, показанном на фиг.8.
Фиг.21 представляет логическую схему для описания процедуры интерполяции соседнего пиксела на этапе S45, показанном на фиг.20.
Фиг.22 представляет логическую схему для описания процесса внутрикадрового прогнозирования движения на этапе S32, показанном на фиг.8.
Фиг.23 представляет блок-схему, иллюстрирующую другой пример конфигурации модуля внутрикадрового прогнозирования и модуля интерполяции соседнего пиксела.
Фиг.24 представляет логическую схему для описания другого примера процесса внутрикадрового прогнозирования на этапе S31, показанном на фиг.8.
Фиг.25 представляет логическую схему для описания процесса интерполяции соседнего пиксела на этапе S101, показанном на фиг.24.
Фиг.26 представляет блок-схему, иллюстрирующую конфигурацию варианта устройства для декодирования изображений, в котором применено настоящее изобретение.
Фиг.27 представляет блок-схему, иллюстрирующую другой пример конфигурации модуля внутрикадрового прогнозирования и модуля интерполяции соседнего пиксела.
Фиг.28 представляет логическую схему для описания процесса декодирования в устройстве для декодирования изображения, показанном на фиг.26.
Фиг.29 представляет логическую схему для описания процесса прогнозирования на этапе S138, показанном на фиг.28.
Фиг.30 представляет блок-схему, иллюстрирующую пример конфигурации аппаратуры компьютера.
Описание вариантов осуществления
Далее вариант настоящего изобретения будет описан со ссылками на перечисленные чертежи.
Пример конфигурации устройства для кодирования изображения
На фиг.2 представлена конфигурация варианта устройства для кодирования изображения, служащего устройством для обработки изображения, в котором применено настоящее изобретение.
Это устройство 51 для кодирования изображения осуществляет сжимающее кодирование с использованием, например, систем Н.264 и MPEG-4 Part 10 (Усовершенствованное видео кодирование) (далее именуемое 264/AVC).
В примере, показанном на фиг.2, устройство 51 для кодирования изображения конфигурировано в составе аналого-цифрового (A/D) преобразователя 61, буфера 62 сортировки экрана, вычислительного модуля 63, модуля 64 ортогонального преобразования, модуля 65 квантования, модуля 66 кодирования без потерь, накопительного буфера 67, модуля 68 обратного квантования, модуля 69 обратного ортогонального преобразования, вычислительного модуля 70, деблокирующего фильтра 71, памяти кадров 72, переключателя 73, модуля 74 внутрикадрового прогнозирования, модуля 75 интерполяции соседнего пиксела, модуля 76 прогнозирования/компенсации движения, модуля 77 выбора прогнозируемого изображения и модуля 78 управления частотой квантования.
Аналого-цифровой преобразователь 61 преобразует входное изображение из аналоговой в цифровую форму и передает буферу 62 сортировки экрана для сохранения. Этот буфер 62 сортировки экрана сортирует изображения кадров, расположенных в порядке записи, для представления на дисплее в порядке кадров для кодирования в соответствии с Группой изображений (GOP).
Вычислительный модуль 63 вычитает из изображения, считываемого из буфера 62 сортировки экрана, прогнозируемое изображение от модуля 74 внутрикадрового прогнозирования, выбранное модулем 77 выбора прогнозируемого изображения, или прогнозируемое изображение от модуля 76 прогнозирования/компенсации движения и передает полученную разностную информацию модулю 64 ортогонального преобразования. Модуль 64 ортогонального преобразования осуществляет ортогональное преобразование, такое как дискретное косинусное преобразование, преобразование Карунена-Лоэва и т.п., этой разностной информации от вычислительного модуля 63 и передает на выход коэффициенты преобразования. Модуль 65 квантования осуществляет квантование этих коэффициентов преобразования с выхода модуля 64 ортогонального преобразования.
Квантованные коэффициенты преобразования с выхода модуля 65 квантования поступают в модуль 66 кодирования без потерь, где к ним применяют кодирование без потерь, такое как кодирование в коде переменной длины, арифметическое кодирование и т.п., и сжимают.
Модуль 66 кодирования без потерь получает информацию индикации внутрикадрового прогнозирования и т.п. от модуля 74 внутрикадрового прогнозирования и получает информацию индикации режима межкадрового прогнозирования и т.п. от модуля 76 прогнозирования/компенсации движения. Отметим, что в дальнейшем информация индикации внутрикадрового прогнозирования будет именоваться информацией режима внутрикадрового прогнозирования. Кроме того, информация индикации режима межкадрового прогнозирования будет именоваться информацией режима межкадрового прогнозирования.
Модуль 66 кодирования без потерь кодирует квантованные коэффициенты преобразования, а также кодирует информацию индикации режима внутрикадрового прогнозирования, информацию индикации режима межкадрового прогнозирования и т.п., и берет все эти данные в качестве части информации заголовка в сжатом изображении. Модуль 66 кодирования без потерь передает кодированные данные в накопительный буфер 67 для накопления.
Например, модуль 66 кодирования без потерь осуществляет обработку данных для кодирования без потерь, такого как кодирование в коде переменной длины, арифметическое кодирование и т.п. Примеры кодирования в коде переменной длины включают CAVLC (Контекстно-адаптивное кодирование в коде переменной длины (Context-Adaptive Variable Length Coding)), определенное в системе H.264/AVC. Примеры арифметического кодирования включают САВАС (Контекстно-адаптивное двоичное арифметическое кодирование (Context-Adaptive Binary Arithmetic Coding)).
Накопительный буфер 67 передает данные, поступившие от модуля 66 кодирования без потерь в, например, расположенное далее по логической схеме запоминающее устройство или в тракт передачи данных и т.п., не показанные на чертеже, в качестве сжатого изображения, кодированного в системе H.264/AVC.
Кроме того, квантованные коэффициенты преобразования с выхода модуля 65 квантования поступают также на вход модуля 68 обратного квантования, где их подвергают операции обратного квантования и затем выполняют обратное ортогональное преобразование полученных коэффициентов в модуле 69 обратного ортогонального преобразования. Вычислительный модуль 70 суммирует результат обратного ортогонального преобразования с прогнозируемым изображением, поступающим от модуля 77 выбора прогнозируемого изображения, и получает локально декодированное изображение. Деблокирующий фильтр 71 устраняет блочные искажения из декодированного изображения и затем передает результат в память 72 кадров для накопления. Изображение, имевшее место перед деблокирующей фильтрацией, выполняемой в деблокирующем фильтре 71, также направляют в память кадров 72 для накопления.
Переключатель 73 передает опорные изображения, накопленные в памяти 72 кадров, модулю 76 прогнозирования/компенсации движения или модулю 74 внутрикадрового прогнозирования.
В таком устройстве 51 для кодирования изображения опорный кадр (I-кадр), аппроксимированный кадр (В-кадр) и прогнозируемый кадр (Р-кадр) из буфера 62 сортировки экрана передают в модуль 74 внутрикадрового прогнозирования в качестве изображения, подлежащего внутрикадровому прогнозированию (именуемому также внутрикадровой обработкой данных), например. Кроме того, В-кадр и Р-кадр, считываемые из буфера 62 сортировки экрана, направляют в модуль 76 прогнозирования/компенсации движения в качестве изображения, подлежащего межкадровому прогнозированию (именуемому также межкадровой обработкой данных).
Модуль 74 внутрикадрового прогнозирования выполняет обработку данных внутрикадрового прогнозирования для всех режимов внутрикадрового прогнозирования, служащих кандидатами, на основе подлежащего внутрикадровому прогнозированию изображения, считываемого из буфера 62 сортировки экрана, и опорного изображения, поступающего из памяти 72 кадров, для генерации прогнозируемого изображения.
Модуль 74 внутрикадрового прогнозирования вычисляет величину целевой функции для режимов внутрикадрового прогнозирования, когда сформировано прогнозируемое изображение, и выбирает режим внутрикадрового прогнозирования, которому соответствует минимальная величина вычисленной целевой функции, в качестве оптимального режима внутрикадрового прогнозирования. Этот модуль 74 внутрикадрового прогнозирования передает пиксел, соседний с текущим блоком для внутрикадрового прогнозирования, и информацию оптимального режима внутрикадрового прогнозирования в модуль 75 интерполяции соседнего пиксела.
Модуль 75 интерполяции соседнего пиксела сдвигает фазу соседнего пиксела в направлении сдвига согласно оптимальному режиму внутрикадрового прогнозирования от модуля 74 внутрикадрового прогнозирования на величину сдвига, служащую кандидатом. На самом деле модуль 75 интерполяции соседнего пиксела применяет к соседнему пикселу имеющий 6 отводов фильтр с конечной импульсной характеристикой (КИХ (FIR)) для выполнения линейной интерполяции относительно направления сдвига согласно оптимальному режиму внутрикадрового прогнозирования, сдвигая тем самым фазу соседнего пиксела с точностью до долей пиксела. Соответственно, в дальнейшем для удобства описания соседний пиксел, фаза которого сдвинута посредством 6-отводного КИХ-фильтра и линейной интерполяции, будет именоваться, где как удобнее, интерполированным соседним пикселом или соседним пикселом со сдвинутой фазой, но оба этих термина будут иметь одинаковое значение.
Модуль 75 интерполяции соседнего пиксела передает соседний пиксел со сдвинутой фазой модулю 74 внутрикадрового прогнозирования.
Этот модуль 74 внутрикадрового прогнозирования использует величину соседнего пиксела из буфера 81 соседнего изображения и величину соседнего пиксела, фаза которого сдвинута в модуле 75 интерполяции соседнего пиксела, для определения оптимальной величины сдвига фазы соседнего пиксела. Кроме того, модуль 74 внутрикадрового прогнозирования использует величину соседнего пиксела со сдвинутой фазой вместе с найденной оптимальной величиной сдвига для генерации прогнозируемого изображения текущего блока и передает сформированное прогнозируемое изображение и величину целевой функции, вычисленную для соответствующего оптимального режима внутрикадрового прогнозирования, в модуль 77 выбора прогнозируемого изображения.
Если модуль 77 выбора прогнозируемого изображения выбрал прогнозируемое изображение, сформированное в оптимальном режиме внутрикадрового прогнозирования, модуль 74 внутрикадрового прогнозирования передает информацию индикации оптимального режима внутрикадрового прогнозирования и информацию об оптимальной величине сдвига в модуль 66 кодирования без потерь. Когда такая информация поступила от модуля 74 внутрикадрового прогнозирования, модуль 66 кодирования без потерь кодирует эту информацию и принимает ее в качестве части информации заголовка сжатого изображения.
Модуль 76 прогнозирования/компенсации движения осуществляет обработку данных для прогнозирования и компенсации движения во всех режимах межкадрового кодирования, служащих кандидатами. В частности, в модуль 76 прогнозирования/компенсации движения поступают подлежащее межкадровой обработке изображение, считываемое из буфера 62 сортировки экрана, и опорное изображение, приходящее из памяти 72 кадров через переключатель 73. Модуль 76 прогнозирования/компенсации движения определяет векторы движения для всех режимов межкадрового прогнозирования, служащих кандидатами, на основе указанных изображения, подлежащего межкадровой обработке, и опорного изображения, выполняет компенсационную обработку для опорного изображения на основе векторов движения и генерирует прогнозируемое изображение.
Кроме того, модуль 76 прогнозирования/компенсации движения вычисляет величины целевой функции для всех режимов межкадрового прогнозирования, служащих кандидатами. Этот модуль 76 прогнозирования/компенсации движения определяет на основе вычисленных величин целевой функции режим прогнозирования, которому соответствует минимальная величина, в качестве оптимального режима межкадрового прогнозирования.
Указанный модуль 76 прогнозирования/компенсации движения передает прогнозируемое изображение, генерируемое в оптимальном режиме межкадрового прогнозирования, и величину целевой функции для этого режима в модуль 77 выбора прогнозируемого изображения. Если модуль 77 выбора прогнозируемого изображения выбрал прогнозируемое изображение, сформированное в оптимальном режиме межкадрового прогнозирования, модуль 76 прогнозирования/компенсации движения передает информацию индикации оптимального режима межкадрового прогнозирования (информацию режима межкадрового прогнозирования) в модуль 66 кодирования без потерь.
Отметим, что информацию векторов движения, информацию флага, информацию опорного кадра и т.п. передают по мере необходимости модулю 66 кодирования без потерь. Этот модуль 66 кодирования без потерь подвергает также информацию от модуля 76 прогнозирования/компенсации движения кодированию без потерь, такому как кодирование в коде переменной длины или арифметическое кодирование, и вставляет результат в участок заголовка сжатого изображения.
Модуль 77 выбора прогнозируемого изображения определяет оптимальный режим прогнозирования из оптимального режима внутрикадрового прогнозирования и оптимального режима межкадрового прогнозирования на основе величин целевой функции, поступающих от модуля 74 внутрикадрового прогнозирования или модуля 76 прогнозирования/компенсации движения. Затем модуль 77 выбора прогнозируемого изображения выбирает прогнозируемое изображение, соответствующее найденному оптимальному режиму прогнозирования, и передает его вычислительным модулям 63 и 70. В этот момент модуль 77 выбора прогнозируемого изображения передает информацию выбора прогнозируемого изображения модулю 74 внутрикадрового прогнозирования или модулю 76 прогнозирования/компенсации движения.
Модуль 78 управления частотой квантования управляет частотой квантования, осуществляемого в модуле 65 квантования, на основе сжатого изображения, накопленного в накопительном буфере 67, таким образом, чтобы не вызвать переполнения или недостаточного заполнения.
Описание системы H.264/AVC
Фиг.3 представляет диаграмму, иллюстрирующую пример размера блока при прогнозировании и компенсации движения в системе H.264/AVC. В системе H.264/AVC прогнозирование и компенсацию движения осуществляют с использованием размера блока в качестве переменной.
Макроблоки, содержащие 16×16 пикселов и разбитые на секции размером 16×16 пикселов, 16×8 пикселов, 8×16 пикселов и 8×8 пикселов, показаны по порядку слева направо на верхнем ярусе фиг.3. Кроме того, секции, содержащие 8×8 пикселов и разбитые на подсекции размером 8×8 пикселов, 8×4 пикселов, 4×8 пикселов и 4×4 пикселов, показаны по порядку слева направо на нижнем ярусе фиг.3.
В частности, в системе H.264/AVC один макроблок может быть разбит на секции какого-либо одного размера 16×16 пикселов, 16х8 пикселов, 8×16 пикселов или 8×8 пикселов, так что каждая секция имеет независимую информацию вектора движения. Кроме того, секция, содержащая 8×8 пикселов, может быть разбита на подсекции какого-либо одного размера 8×8 пикселов, 8×4 пикселов, 4×8 пикселов или 4×4 пикселов, так что каждая секция имеет независимую информацию вектора движения.
Фиг.4 представляет диаграмму для описания обработки данных при прогнозировании и компенсации движения с точностью до 1/4 пиксела в системе H.264/AVC. В такой системе H.264/AVC обработка данных при прогнозировании и компенсации движения с точностью до 1/4 пиксела осуществляется с использованием имеющего 6 отводов КИХ-фильтра.
В примере на фиг.4 позиции А обозначают позиции с точностью до целых пикселов, позиции b, с и d обозначают позиции с точностью 1/2 пиксела и позиции е1, е2 и е3 обозначают позиции с точностью 1/4 пиксела. Затем определяют сначала функцию Clip() в соответствии со следующим Выражением (1).
<mrow><mi>C</mi><mi>l</mi><mi>i</mi><mi>p</mi><mi>l</mi><mrow><mo>(</mo><mi>a</mi><mo>)</mo></mrow><mo>=</mo><mrow><mo>{</mo><mrow><mtable><mtr><mtd><mrow><mn>0</mn><mo>;</mo><mtext> если </mtext><mrow><mo>(</mo><mrow><mtext>a</mtext><mo><</mo><mtext>0</mtext></mrow><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mtext>a; в иных случаях</mtext><mtext> </mtext><mrow><mo>(</mo><mtext>1</mtext><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mtext>max_pix; если </mtext><mrow><mo>(</mo><mrow><mtext>a</mtext><mo>></mo><mtext>max_pix</mtext></mrow><mo>)</mo></mrow></mrow></mtd></mtr></mtable></mrow></mrow><mtext> </mtext><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>
Отметим, что, когда входное изображение имеет точность 8 бит, величина параметра max_pix становится равной 255.
Величины пикселов в позициях b и d генерируют в соответствии со следующим Выражением (2) с использованием имеющего 6 отводов КИХ-фильтра (FIR).
<mrow><mtable columnalign="left"><mtr columnalign="left"><mtd columnalign="left"><mrow><mi>F</mi><mo>=</mo><msub><mi>A</mi><mrow><mo>−</mo><mn>2</mn></mrow></msub><mo>−</mo><mn>5</mn><mo>⋅</mo><msub><mi>A</mi><mrow><mo>−</mo><mn>1</mn></mrow></msub><mo>+</mo><mn>20</mn><mo>⋅</mo><msub><mi>A</mi><mn>0</mn></msub><mo>+</mo><mn>20</mn><mo>⋅</mo><msub><mi>A</mi><mn>1</mn></msub><mo>−</mo><mn>5</mn><mo>⋅</mo><msub><mi>A</mi><mn>2</mn></msub><mo>+</mo><msub><mi>A</mi><mn>3</mn></msub></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mi>b</mi><mo>,</mo><mi>d</mi><mo>=</mo><mi>C</mi><mi>l</mi><mi>i</mi><mi>p</mi><mi>l</mi><mrow><mo>(</mo><mrow><mrow><mo>(</mo><mrow><mi>F</mi><mo>+</mo><mn>16</mn></mrow><mo>)</mo></mrow><mo>></mo><mo>></mo><mn>5</mn></mrow><mo>)</mo></mrow><mtext> </mtext><mo>…</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow></mtd></mtr></mtable></mrow>
Величину пиксела в позиции с генерируют в соответствии со следующим Выражением (3) путем применения имеющего 6 отводов КИХ-фильтра (FIR) в горизонтальном направлении и в вертикальном направлении.
<mrow><mtable columnalign="left"><mtr columnalign="left"><mtd columnalign="left"><mrow><mi>F</mi><mo>=</mo><msub><mi>b</mi><mrow><mo>−</mo><mn>2</mn></mrow></msub><mo>−</mo><mn>5</mn><mo>⋅</mo><msub><mi>b</mi><mrow><mo>−</mo><mn>1</mn></mrow></msub><mo>+</mo><mn>20</mn><mo>⋅</mo><msub><mi>b</mi><mn>0</mn></msub><mo>+</mo><mn>20</mn><mo>⋅</mo><msub><mi>b</mi><mn>1</mn></msub><mo>−</mo><mn>5</mn><mo>⋅</mo><msub><mi>b</mi><mn>2</mn></msub><mo>+</mo><msub><mi>b</mi><mn>3</mn></msub></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mi>и</mi><mi>л</mi><mi>и</mi></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mi>F</mi><mo>=</mo><msub><mi>d</mi><mrow><mo>−</mo><mn>2</mn></mrow></msub><mo>−</mo><mn>5</mn><mo>⋅</mo><msub><mi>d</mi><mrow><mo>−</mo><mn>1</mn></mrow></msub><mo>+</mo><mn>20</mn><mo>⋅</mo><msub><mi>d</mi><mn>0</mn></msub><mo>+</mo><mn>20</mn><mo>⋅</mo><msub><mi>d</mi><mn>1</mn></msub><mo>−</mo><mn>5</mn><mo>⋅</mo><msub><mi>d</mi><mn>2</mn></msub><mo>+</mo><msub><mi>d</mi><mn>3</mn></msub></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mi>c</mi><mo>=</mo><mi>C</mi><mi>l</mi><mi>i</mi><mi>p</mi><mi>l</mi><mrow><mo>(</mo><mrow><mrow><mo>(</mo><mrow><mi>F</mi><mo>+</mo><mn>512</mn></mrow><mo>)</mo></mrow><mo>></mo><mo>></mo><mn>10</mn></mrow><mo>)</mo></mrow><mtext> </mtext><mo>…</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow></mtd></mtr></mtable></mrow>
Отметим, что обработку данных для вычисления функции Clip выполняют в конце только один раз после вычисления обеих сумм произведений в горизонтальном направлении и в вертикальном направлении.
Величины позиций с е1 по е3 генерируют посредством линейной интерполяции в соответствии со следующим Выражением (4).
<mrow><mtable columnalign="left"><mtr columnalign="left"><mtd columnalign="left"><mrow><msub><mi>e</mi><mn>1</mn></msub><mo>=</mo><mrow><mo>(</mo><mrow><mi>A</mi><mo>+</mo><mi>b</mi><mo>+</mo><mn>1</mn></mrow><mo>)</mo></mrow><mo>></mo><mo>></mo><mn>1</mn></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><msub><mi>e</mi><mn>2</mn></msub><mo>=</mo><mrow><mo>(</mo><mrow><mi>b</mi><mo>+</mo><mi>d</mi><mo>+</mo><mn>1</mn></mrow><mo>)</mo></mrow><mo>></mo><mo>></mo><mn>1</mn></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><msub><mi>e</mi><mn>3</mn></msub><mo>=</mo><mrow><mo>(</mo><mrow><mi>b</mi><mo>+</mo><mi>c</mi><mo>+</mo><mn>1</mn></mrow><mo>)</mo></mrow><mo>></mo><mo>></mo><mn>1</mn><mtext> </mtext><mo>…</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow></mtd></mtr></mtable></mrow>
В системе H.264/AVC в результате выполнения обработки данных для прогнозирования и компенсации движения, описанной со ссылками на фиг.3 и 4, получают очень большой объем информации векторов движения, что ведет к деградации эффективности кодирования в случае кодирования этой информации без изменений. Поэтому в системе H.264/AVC согласно способу, показанному на фиг.5, реализовано уменьшение объема информации кодированных векторов движения.
На фиг.5 представлена диаграмма для описания способа генерации информации векторов движения в системе H.264/AVC.
В примере, показанном на фиг.5, изображены текущий блок Е, подлежащий кодированию в настоящий момент, (например, размером 16×16 пикселов) и уже кодированные блоки с А по D, расположенные рядом с текущим блоком Е.
В частности, блок D соседствует с текущим блоком Е сверху слева, блок В соседствует с текущим блоком Е сверху, блок С соседствует с текущим блоком Е сверху справа и блок А соседствует с текущим блоком Е слева. Отметим, что причина, по которой блоки с А по D не разбиты на секции, состоит в том, что каждый из этих блоков представляет собой блок одной структуры, выбранной из ряда от 16×16 пикселов по 4×4 пикселов, описанного выше со ссылками на фиг.2.
x
E
Например, предположим, что информация вектора Х (= А, В, С, D, Е) движения обозначена mv. Сначала генерируют информацию pmv прогнозируемого вектора движения для текущего блока Е в соответствии со следующим Выражением (5) посредством медианного прогнозирования с использованием информации векторов движения для блоков А, В и С
<mrow><mi>p</mi><mi>m</mi><msub><mi>v</mi><mi>E</mi></msub><mo>=</mo><mi>m</mi><mi>e</mi><mi>d</mi><mrow><mo>(</mo><mrow><mi>m</mi><msub><mi>v</mi><mi>A</mi></msub><mo>,</mo><msub><mrow><mtext> mv</mtext></mrow><mtext>B</mtext></msub><msub><mrow><mtext>, mv</mtext></mrow><mtext>C</mtext></msub></mrow><mo>)</mo></mrow><mtext> </mtext><mo>…</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow>
Информацию вектора движения для блока С можно не использовать (она может отсутствовать) по какой-либо причине, такой как край кадра изображения перед кодированием и т.п. В этом случае используют информацию вектора движения для блока D вместо информации вектора движения для блока С.
E
E
Добавляемые к области заголовка сжатого изображения данные mvd, служащие информацией вектора движения для текущего блока Е, генерируют в соответствии со следующим Выражением (6) с использованием pmv.
<mrow><mi>m</mi><mi>v</mi><msub><mi>d</mi><mi>E</mi></msub><mo>=</mo><mi>m</mi><msub><mi>v</mi><mi>E</mi></msub><mo>−</mo><mi>p</mi><mi>m</mi><msub><mi>v</mi><mi>E</mi></msub><mtext> </mtext><mo>…</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow>
Отметим, что на деле обработку данных для составляющих информации вектора движения в горизонтальном направлении и в вертикальном направлении выполняют независимо.
E
Таким образом, генерируют информацию прогнозируемого вектора движения и добавляют к области заголовка сжатого изображения данные mvd, представляющие собой разность между информацией прогнозируемого вектора движения, сформированной на основе корреляции с соседним блоком, и найденной информацией вектора движения, в качестве информации вектора движения, что позволяет уменьшить объем такой информации вектора движения.
Здесь обработку данных для прогнозирования и компенсации движения с точностью 1/4 пиксела в системе H.264/AVC, описанную выше со ссылками на фиг.4, выполняют в модуле прогнозирования/компенсации движения, но в устройстве 51 для кодирования изображения, показанном на фиг.2, прогнозирование с точностью 1/4 пиксела выполняется также в режиме внутрикадрового прогнозирования. Такое внутрикадровое прогнозирование с точностью до долей пиксела выполняют посредством модуля 74 внутрикадрового прогнозирования и модуля 75 интерполяции соседнего пиксела, как это будет описано дальше.
Пример конфигурации модуля внутрикадрового прогнозирования и модуля интерполяции соседнего пиксела
Фиг.6 представляет блок-схему, иллюстрирующую подробный пример конфигурации модуля внутрикадрового прогнозирования и модуля интерполяции соседнего пиксела.
В примере, показанном на фиг.6, модуль 74 внутрикадрового прогнозирования конфигурирован в составе буфера 81 соседнего изображения, модуля 82 определения оптимального режима, модуля 83 определения оптимальной величины сдвига и модуля 84 генерации прогнозируемого изображения.
Модуль 75 интерполяции соседнего пиксела конфигурирован в составе модуля 91 определения режима, модуля 92 интерполяции в горизонтальном направлении и модуля 93 интерполяции в вертикальном направлении.
Буфер 81 соседнего изображения накапливает соседний пиксел блока, подлежащего внутрикадровому прогнозированию, из памяти 72 кадров, на фиг.6 изображение переключателя 73 опущено, но соседний пиксел поступает из памяти 72 кадров в буфер 81 соседнего изображения через переключатель 73.
Подлежащее внутрикадровому прогнозированию изображение, считываемое из буфера 62 сортировки экрана, поступает на вход модуля 82 определения оптимального режима. Этот модуль 82 определения оптимального режима считывает соседний пиксел, соответствующий блоку, подлежащему внутрикадровому прогнозированию, из буфера 81 соседнего изображения.
Модуль 82 определения оптимального режима осуществляет обработку данных для внутрикадрового прогнозирования во всех режимах внутрикадрового прогнозирования, служащих кандидатами, с использованием соседнего пиксела, соответствующего изображению блока, подлежащего внутрикадровому прогнозированию, для генерации прогнозируемого изображения. Модуль 82 определения оптимального режима вычисляет величины целевой функции в режимах внутрикадрового прогнозирования, для которых были сформированы прогнозируемые изображения, и определяет режим внутрикадрового прогнозирования, которому соответствует минимальная из вычисленных величин целевой функции, в качестве оптимального режима внутрикадрового прогнозирования. Информацию найденного режима прогнозирования передают в модуль 91 определения режима, модуль 83 определения оптимальной величины сдвига и модуль 84 генерации прогнозируемого изображения. Кроме того, величину целевой функции, соответствующую этому режиму прогнозирования, передают в модуль 84 генерации прогнозируемого изображения.
Подлежащее внутрикадровому прогнозированию изображение, считываемое из буфера 62 сортировки экрана, и информацию режима прогнозирования, выбранного в качестве оптимального модулем 82 определения оптимального режима, передают в модуль 83 определения оптимальной величины сдвига. Кроме того, соседний пиксел, который был подвергнут линейной интерполяции модулем 92 интерполяции в горизонтальном направлении и модулем 93 интерполяции в вертикальном направлении и фаза которого была сдвинута в соответствии оптимальным режимом внутрикадрового прогнозирования, передают в модуль 83 определения оптимальной величины сдвига. Этот модуль 83 определения оптимальной величины сдвига считывает соседний пиксел, соответствующий блоку, подлежащему внутрикадровому прогнозированию, из буфера 81 соседнего изображения.
Модуль 83 определения оптимальной величины сдвига использует изображение блока, подлежащего внутрикадровому прогнозированию, соответствующий соседний пиксел и величину соответствующего интерполированного соседнего пиксела, относящегося к режиму прогнозирования, найденному модулем 82 определения оптимального режима, чтобы определить оптимальную величину сдвига. Этот модуль 83 определения оптимальной величины сдвига вычисляет, например, погрешность прогнозирования (остаточную погрешность) и т.п. и определяет величину сдвига, которой соответствует наименьшая из вычисленных погрешностей прогнозирования, в качестве оптимальной величины сдвига. Информацию об оптимальной величине сдвига, найденной модулем 83 определения оптимальной величины сдвига, передают в модуль 84 генерации прогнозируемого изображения.
Величину целевой функции, соответствующую информации режима прогнозирования, найденного модулем 82 определения оптимального режима, и информацию оптимальной величины сдвига, найденную модулем 83 определения оптимальной величины сдвига, вводят в модуль 84 генерации прогнозируемого изображения. Этот модуль 84 генерации прогнозируемого изображения считывает соседний пиксел, соответствующий блоку, подлежащему внутрикадровому прогнозированию, из буфера 81 соседнего изображения и сдвигает фазу этого считываемого соседнего пиксела в направлении фазового сдвига согласно рассматриваемому режиму прогнозирования на эту оптимальную величину сдвига.
Модуль 84 генерации прогнозируемого изображения осуществляет внутрикадровое прогнозирование в оптимальном режиме внутрикадрового прогнозирования, найденном модулем 82 определения оптимального режима, с использованием соседнего пиксела, фаза которого была сдвинута, для генерации прогнозируемого изображения блока, подлежащего обработке. Модуль 84 генерации прогнозируемого изображения передает сформированное им прогнозируемое изображение и соответствующую величину целевой функции в модуль 77 выбора прогнозируемого изображения.
Кроме того, когда прогнозируемое изображение, сформированное в оптимальном режиме внутрикадрового прогнозирования, выбрано модулем 77 выбора прогнозируемого изображения, модуль 84 генерации прогнозируемого изображения передает информацию индикации оптимального режима внутрикадрового прогнозирования и информацию о величине сдвига в модуль 66 кодирования без потерь.
Модуль 91 определения режима передает сигнал управления, соответствующий режиму прогнозирования, найденному модулем 82 определения оптимального режима, в модуль 92 интерполяции в горизонтальном направлении и модуль 93 интерполяции в вертикальном направлении. Например, согласно рассматриваемому режиму прогнозирования может быть передан сигнал управления, указывающий состояние «Включения» (ON) интерполяционной обработки данных согласно этому режиму прогнозирования.
Каждый из модулей - модуль 92 интерполяции в горизонтальном направлении и модуль 93 интерполяции в вертикальном направлении - считывает соседний пиксел из буфера 81 соседнего изображения в соответствии с сигналом управления от модуля 91 определения режима. Каждый из этих модулей - модуль 92 интерполяции в горизонтальном направлении и модуль 93 интерполяции в вертикальном направлении - сдвигает фазу считываемого соседнего пиксела в горизонтальном направлении и в вертикальном направлении посредством имеющего 6-отводов КИХ-фильтра (FIR) и линейной интерполяции. Информацию соседнего пиксела, интерполированную посредством модуля 92 интерполяции в горизонтальном направлении и модуля 93 интерполяции в вертикальном направлении, передают в модуль 83 определения оптимальной величины сдвига.
Описание обработки данных при кодировании в устройстве для кодирования изображения
Далее обработка данных при кодировании в устройстве 51 для кодирования изображения, показанном на фиг.2, будет описана со ссылками на логическую схему, изображенную на фиг.7.
На этапе S11 аналого-цифровой преобразователь 61 осуществляет преобразование входного изображения из аналоговой формы в цифровую форму. На этапе S12 буфер 62 сортировки экрана сохраняет изображение, поступающее от аналого-цифрового преобразователя 61, и осуществляет сортировку из последовательности для представления кадров на дисплее в последовательность для кодирования.
На этапе S13 вычислительный модуль 63 вычисляет разность между изображением, отсортированным на этапе S12, и прогнозируемым изображением. Это прогнозируемое изображение поступает в вычислительный модуль 63 от модуля 76 прогнозирования/компенсации движения в случае выполнения межкадрового прогнозирования или от модуля 74 внутрикадрового прогнозирования в случае осуществления внутрикадрового прогнозирования через модуль 77 выбора прогнозируемого изображения.
Разностные данные имеют меньший объем по сравнению с данными исходного изображения. Соответственно, объем данных может быть сжат по сравнению со случаем кодирования исходного изображения без изменений.
На этапе S14 модуль 64 ортогонального преобразования осуществляет ортогональное преобразование разностной информации, поступающей от вычислительного модуля 63. В частности, осуществляется ортогональное преобразование, такое как дискретное косинусное преобразование, преобразование Карунена-Лоэва и т.п., и происходит передача коэффициентов преобразования на выход. На этапе S15 модуль 65 квантования осуществляет квантование коэффициентов преобразования. В момент этого квантования управление частотой квантования осуществляется в соответствии с описанием, приведенным далее для этапа S25.
Квантованную таким способом разностную информацию локально декодируют следующим образом. В частности, на этапе S16 модуль 68 обратного квантования осуществляет обратное квантование коэффициентов преобразования, квантованных модулем 65 квантования, с использованием функции, соответствующей функции модуля 65 квантования. На этапе S17 модуль 69 обратного ортогонального преобразования осуществляет обратное ортогональное преобразование коэффициентов преобразования, прошедших процедуру обратного квантования в модуле 68 обратного квантования, с использованием функции, соответствующей функции модуля 64 ортогонального преобразования.
На этапе S18 вычислительный модуль 70 суммирует прогнозируемое изображение, поступающее через модуль 77 выбора прогнозируемого изображения, с локально декодированной разностной информацией и генерирует локально декодированное изображение (изображение, соответствующее данным, поступающим на входы вычислительного модуля 63). На этапе S19 деблокирующий фильтр 71 осуществляет фильтрацию изображения, поступающего с выхода вычислительного модуля 70. В результате происходит удаление искажений блоков. На этапе S20 память 72 кадров сохраняет изображение, прошедшее фильтрацию. Отметим, что изображение, не подвергавшееся фильтрации в деблокирующем фильтре 71, также поступает от вычислительного модуля 70 в память 72 кадров для сохранения.
На этапе S21 модуль 74 внутрикадрового прогнозирования и модуль 76 прогнозирования/компенсации движения осуществляют, каждый, обработку данных для прогнозирования изображения. В частности, на этапе S21 модуль 74 внутрикадрового прогнозирования осуществляет обработку данных внутрикадрового прогнозирования в режиме внутрикадрового прогнозирования. Модуль 76 прогнозирования/компенсации движения осуществляет обработку данных прогнозирования и компенсации движения в режиме межкадрового прогнозирования.
Подробности процедуры обработки данных при прогнозировании на этапе S21 будут описаны позднее со ссылками на фиг.8, однако в соответствии с этой процедурой выполняют операции прогнозирования для всех режимов прогнозирования, служащих кандидатами, и вычисляют величины целевой функции для всех этих режимов прогнозирования, служащих кандидатами. На основе этих вычисленных величин целевой функции выбирают оптимальный режим внутрикадрового прогнозирования и передают прогнозируемое изображение, генерируемое посредством операций внутрикадрового прогнозирования в выбранном оптимальном режиме внутрикадрового прогнозирования, и соответствующую величину целевой функции в модуль 77 выбора прогнозируемого изображения.
В частности, в этот момент модуль 74 внутрикадрового прогнозирования передает прогнозируемое изображение, сформированное посредством внутрикадрового прогнозирования с использованием соседнего пиксела, фаза которого сдвинута в направлении сдвига фазы, соответствующем оптимальному режиму внутрикадрового прогнозирования, посредством имеющего 6 отводов КИХ-фильтра (FIR) и линейной интерполяции на оптимальную величину сдвига, в модуль 77 выбора прогнозируемого изображения. Отметим, что соответствующую оптимальному режиму внутрикадрового прогнозирования величину целевой функции также передают в модуль 77 выбора прогнозируемого изображения вместе с прогнозируемым изображением.
С другой стороны, выбирают оптимальный режим межкадрового прогнозирования из рассмотренной совокупности режимов межкадрового прогнозирования на основе этих вычисленных величин целевой функции и передают прогнозируемое изображение, генерируемое в выбранном оптимальном режиме межкадрового прогнозирования, и соответствующую величину целевой функции в модуль 77 выбора прогнозируемого изображения.
На этапе S22 модуль 77 выбора прогнозируемого изображения определяет один из режимов - оптимальный режим внутрикадрового прогнозирования или оптимальный режим межкадрового прогнозирования, в качестве оптимального режима прогнозирования на основе величин целевой функции, поступающих от модуля 74 внутрикадрового прогнозирования и от модуля 76 прогнозирования/компенсации движения. Затем модуль 77 выбора прогнозируемого изображения выбирает прогнозируемое изображение в определенном им оптимальном режиме прогнозирования и передает вычислительным модулям 63 и 70. Это прогнозируемое изображение используется, как указано выше, для вычислений на этапах S13 и S18.
Отметим, что информацию о выборе этого прогнозируемого изображения передают в модуль 74 внутрикадрового прогнозирования или в модуль 76 прогнозирования/компенсации движения. Если было выбрано прогнозируемое изображение согласно оптимальному режиму внутрикадрового прогнозирования, модуль 74 внутрикадрового прогнозирования передает информацию индикации оптимального режима внутрикадрового прогнозирования (т.е. информацию режима внутрикадрового прогнозирования) и информацию об оптимальной величине сдвига в модуль 66 кодирования без потерь.
Если было выбрано прогнозируемое изображение для оптимального режима межкадрового прогнозирования, модуль 76 прогнозирования/компенсации движения передает информацию индикации оптимального режима межкадрового прогнозирования и, при необходимости, информацию в соответствии с оптимальным режимом межкадрового прогнозирования модулю 66 кодирования без потерь. Примеры информации в соответствии с оптимальным режимом межкадрового прогнозирования включают информацию векторов движения, информацию флага и информацию опорного кадра. Конкретнее, когда выбрано прогнозируемое изображение, соответствующее режиму межкадрового прогнозирования, являющемуся оптимальным режимом межкадрового прогнозирования, модуль 76 прогнозирования/компенсации движения передает информацию режима межкадрового прогнозирования, информацию вектора движения и информацию опорного кадра модулю 66 кодирования без потерь.
На этапе S23, модуль 66 кодирования без потерь кодирует квантованные коэффициенты преобразования, поступающие с выхода модуля 65 квантования. В частности, разностное изображение подвергают кодированию без потерь, такому как кодирование в коде переменной длины, арифметическое кодирование и т.п., и сжимают. В этот момент информацию режима внутрикадрового прогнозирования от модуля 74 внутрикадрового прогнозирования или информацию в соответствии с оптимальным режимом межкадрового прогнозирования от модуля 76 прогнозирования/компенсации движения и т.п., переданные модулю 66 кодирования без потерь на этапе S22, описанном выше, также кодируют и добавляют к информации заголовка.
На этапе S24 накопительный буфер 67 накапливает разностное изображение в качестве сжатого изображения. Это сжатое изображение, накопленное в указанном накопительном буфере 67, считывают по мере необходимости и передают на декодирующую сторону по тракту передачи данных.
На этапе S25 модуль 78 управления частотой квантования управляет частотой квантования, выполняемого модулем 65 квантования, на основе сжатого изображения, накопленного в указанном накопительном буфере 67, таким образом, чтобы не вызвать переполнения или недостаточного заполнения.
Описание обработки данных при прогнозировании
Далее процедура прогнозирования на этапе S21, показанном на фиг.7, будет описана со ссылками на логическую схему, представленную на фиг.8.
Если подлежащее обработке изображение, поступающее из буфера 62 сортировки экрана, представляет собой изображение блока, подлежащего внутрикадровой обработке, декодированное изображение, которое должно служить опорой, считывают из памяти 72 кадров и направляют в модуль 74 внутрикадрового прогнозирования через переключатель 73.
На этапе S31 модуль 74 внутрикадрового прогнозирования использует информацию переданного ему изображения, что осуществить обработку данных пикселов блока, подлежащего обработке, для внутрикадрового прогнозирования во всех режимах внутрикадрового прогнозирования, служащих кандидатами. Отметим, что здесь в качестве декодированных пикселов, которые должны служить опорой, используют пикселы, не подвергавшиеся деблокирующей фильтрации в указанном деблокирующем фильтре 71.
Подробнее обработка данных для внутрикадрового прогнозирования, выполняемая на этапе S31, будет описана позднее со ссылками на фиг.20, однако в ходе такой обработки данных выполняют внутрикадровое прогнозирование с использованием всех режимов внутрикадрового прогнозирования, служащих кандидатами. В каждом из режимов внутрикадрового прогнозирования, служащих кандидатами, вычисляют целевую функцию и определяют оптимальный режим внутрикадрового прогнозирования на основе вычисленных величин целевой функции.
В дальнейшем с использованием 6 отводов КИХ-фильтра (FIR) и линейной интерполяции сдвигают фазу соседнего пиксела на оптимальную величину сдвига в направлении сдвига согласно найденному оптимальному режиму внутрикадрового прогнозирования. После этого генерируют прогнозируемое изображение посредством внутрикадрового прогнозирования в найденном оптимальном режиме внутрикадрового прогнозирования с использованием соседнего пиксела со сдвинутой фазой. Сформированное прогнозируемое изображение и величину целевой функции, соответствующие оптимальному режиму внутрикадрового прогнозирования, передают в модуль 77 выбора прогнозируемого изображения.
Когда подлежащее обработке изображение, поступающее из буфера 62 сортировки экрана, представляет собой изображение, подлежащее межкадровой обработке, опорное изображение для такой обработки считывают из памяти 72 кадров и передают в модуль 76 прогнозирования/компенсации движения через переключатель 73. На этапе S32 на основе этих изображений модуль 76 прогнозирования/компенсации движения осуществляет обработку данных для межкадрового прогнозирования. Иными словами, модуль 76 прогнозирования/компенсации движения использует изображение, поступающее из памяти 72 кадров, в качестве опорного изображения для выполнения обработки данных для межкадрового прогнозирования во всех режимах межкадрового прогнозирования, служащих кандидатами.
Подробнее обработка данных при межкадровом прогнозировании на этапе S32 будет описана позднее со ссылками на фиг.22, однако в ходе такой обработки осуществляют межкадровое прогнозирование с использованием всех режимов межкадрового прогнозирования, служащих кандидатами, и вычисляют величину целевой функции во всех режимах межкадрового прогнозирования, служащих кандидатами.
На этапе S33 модуль 76 прогнозирования/компенсации движения сравнивает величины целевой функции, вычисленные на этапе S32 для различных режимов межкадрового прогнозирования, и определяет режим прогнозирования, которому соответствует минимальная величина целевой функции, в качестве оптимального режима межкадрового прогнозирования. Этот модуль 76 прогнозирования/компенсации движения передает прогнозируемое изображение, сформированное в оптимальном режиме межкадрового прогнозирования, и величину целевой функции в этом режиме в модуль 77 выбора прогнозируемого изображения.
Описание обработки данных при внутрикадровом прогнозировании в системе H.264/AVC
Далее будут описаны режимы внутрикадрового прогнозирования, применяемые в системе H.264/AVC.
Сначала будут рассмотрены режимы внутрикадрового прогнозирования для яркостных сигналов. Применительно к режимам внутрикадрового прогнозирования для яркостного сигнала разработаны три системы прогнозирования - режим 4×4 внутрикадрового прогнозирования, режим 8×8 внутрикадрового прогнозирования и режим 16×16 внутрикадрового прогнозирования. Это режимы для определения единиц блоков, так что их устанавливают для каждого макроблока. Кроме того, режим внутрикадрового прогнозирования для цветоразностных сигналов можно устанавливать независимо от режима внутрикадрового прогнозирования для яркостных сигналов для каждого макроблока.
Далее, в случае режима 4×4 внутрикадрового прогнозирования может быть установлен один режим прогнозирования, выбранный из девяти видов режимов прогнозирования, для каждого текущего блока размером 4×4 пикселов. В случае режима 8×8 внутрикадрового прогнозирования может быть установлен один режим прогнозирования, выбранный из девяти видов режимов прогнозирования, для каждого текущего блока размером 8х8 пикселов. В случае режима 16×16 внутрикадрового прогнозирования для текущего макроблока размером 16×16 пикселов может быть установлен один режим прогнозирования, выбранный из четырех видов режимов прогнозирования.
Отметим, что в дальнейшем режим 4×4 внутрикадрового прогнозирования, режим 8×8 внутрикадрового прогнозирования и режим 16×16 внутрикадрового прогнозирования будут также именоваться, где это подходит, режим внутрикадрового прогнозирования для блоков размером 4×4 пикселов, режим внутрикадрового прогнозирования для блоков размером 8×8 пикселов и режим внутрикадрового прогнозирования для блоков размером 16×16 пикселов соответственно.
В примере, показанном на фиг.9, числа от -1 до 25, добавленные к блокам, представляют последовательность потока битов (последовательность обработки данных на декодирующей стороне) для этих блоков. Отметим, что для яркостных сигналов макроблок разбивают на блоки размером 4×4 пикселов и выполняют дискретное косинусное преобразование (DCT) для таких блоков размером 4×4 пикселов. Только в случае режима 16×16 внутрикадрового прогнозирования, как показано в блоке под номером «-1», собирают DC-составляющие для этих блоков, генерируют матрицу 4×4 и в дальнейшем осуществляют ее ортогональное преобразование.
С другой стороны, при обработке цветоразностных сигналов после разбиения макроблока на блоки размером 4×4 пикселов осуществляют дискретное косинусное преобразование (DCT) блоков размером 4×4 пикселов, как показано в блоках под номерами 16 и 17, собирают DC-составляющие этих блоков, генерируют матрицу 2×2 и осуществляют ее ортогональное преобразование.
Отметим, что в режиме 8×8 внутрикадрового прогнозирования это может быть применено только в случае, когда текущий макроблок подвергают ортогональному преобразованию 8×8 с высоким профилем или с профилем за пределами этого.
Фиг.10 и фиг.11 представляют диаграммы, показывающие девять видов режимов внутрикадрового прогнозирования для блоков размером 4×4 пикселов (intra_4×4_pred_mode) для яркостных сигналов. Восемь видов режимов, отличных от режима 2, показывающего среднюю величину (DC) прогнозирования, соответствуют направлениям, обозначенным номерами 0, 1, 3-8, на фиг.8, соответственно.
Эти девять видов режимов intra_4×4_pred_mode будут описаны со ссылками на фиг.12. В примере, показанном на фиг.12, пикселы а-p представляют пикселы текущего блока, подлежащего обработке данных в режиме внутрикадрового прогнозирования, а величины А-М пикселов представляют величины пикселов, принадлежащих соседнему блоку. В частности, пикселы а-p представляют подлежащее обработке изображение, считываемое из буфера 62 сортировки экрана, а величины А-М пикселов представляют величины пикселов декодированного изображения, которые необходимо считывать из памяти 72 кадров и использовать в качестве опоры.
В режимах внутрикадрового прогнозирования, иллюстрируемых на фиг.6 и фиг.7, прогнозируемые величины пикселов а-p генерируют следующим образом с использованием величин А-М пикселов, относящихся к соседнему пикселу. Здесь, утверждение, что величина пиксела «доступна», означает, что величина пиксела имеется в наличии независимо от каких-либо причин ее возможного отсутствия, таких как нахождение рассматриваемого пиксела на краю кадра изображения или ситуация, когда рассматриваемый пиксел еще не был закодирован. С другой стороны, если величина пиксела «недоступна», это означает, что величина этого пиксела недоступна по такой причине, как нахождение рассматриваемого пиксела на краю кадра изображения или ситуация, когда рассматриваемый пиксел еще не был закодирован.
Режим 0 представляет собой режим Вертикального прогнозирования и применяется только в том случае, когда величины А-D пикселов «доступны». В этом случае прогнозируемые величины пикселов а-p генерируют с использованием следующего Выражения (7).
<mtable columnalign="left"><mtr><mtd><mi>П</mi><mi>р</mi><mi>о</mi><mi>г</mi><mi>н</mi><mi>о</mi><mi>з</mi><mi>и</mi><mi>р</mi><mi>о</mi><mi>в</mi><mi>а</mi><mi>н</mi><mi>и</mi><mi>е</mi><mi></mi><mi>в</mi><mi>е</mi><mi>л</mi><mi>и</mi><mi>ч</mi><mi>и</mi><mi>н</mi><mi>ы</mi><mi></mi><mi>п</mi><mi>и</mi><mi>к</mi><mi>с</mi><mi>е</mi><mi>л</mi><mi>о</mi><mi>в</mi><mi></mi><mi>a</mi><mo>,</mo><mi></mi><mi>e</mi><mo>,</mo><mi></mi><mi>i</mi><mi></mi><mi>и</mi><mi></mi><mi>m</mi><mi></mi><mo>=</mo><mi></mi><mi>A</mi></mtd></mtr><mtr><mtd><mtext>Прогнозирование величины пикселов b</mtext><mtext>, f</mtext><mtext>, j и n </mtext><mo>=</mo><mtext> B</mtext></mtd></mtr><mtr><mtd><mtext>Прогнозирование величины пикселов c</mtext><mtext>, g</mtext><mtext>, k и o  </mtext><mo>=</mo><mtext> C</mtext></mtd></mtr><mtr><mtd><mi>П</mi><mi>р</mi><mi>г</mi><mi>н</mi><mi>о</mi><mi>з</mi><mi>и</mi><mi>р</mi><mi>о</mi><mi>в</mi><mi>а</mi><mi>н</mi><mi>и</mi><mi>е</mi><mtext> </mtext><mi>в</mi><mi>е</mi><mi>л</mi><mi>и</mi><mi>ч</mi><mi>и</mi><mi>н</mi><mi>ы</mi><mi></mi><mi>п</mi><mi>и</mi><mi>к</mi><mi>с</mi><mi>е</mi><mi>л</mi><mi>о</mi><mi>в</mi><mi></mi><mi>d</mi><mo>,</mo><mi></mi><mi>h</mi><mo>,</mo><mi></mi><mi>l</mi><mi></mi><mi>и</mi><mi></mi><mi>p</mi><mi></mi><mo>=</mo><mi></mi><mi>D</mi><mtext> </mtext><mo>…</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mtd></mtr></mtable>
Режим 1 представляет собой режим Горизонтального Прогнозирования и применяется только в том случае, когда величины I-L пикселов «доступны». В этом случае прогнозируемые величины пикселов а-p генерируют с использованием следующего Выражения (8).
<mrow><mtable columnalign="left"><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозирование величины пикселов a</mtext><mtext>, b</mtext><mtext>, c и d </mtext><mo>=</mo><mtext> I</mtext></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозирование величины пикселов e</mtext><mtext>, f</mtext><mtext>, g и h </mtext><mo>=</mo><mtext> J</mtext></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозирование величины пикселов i</mtext><mtext>, j</mtext><mtext>, k и l </mtext><mo>=</mo><mtext> K</mtext></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозирование величины пикселов m</mtext><mtext>, n</mtext><mtext>, o и p </mtext><mo>=</mo><mtext> L </mtext><mo>…</mo><mrow><mo>(</mo><mtext>8</mtext><mo>)</mo></mrow></mrow></mtd></mtr></mtable></mrow>
Режим 2 представляет собой режим DC-прогнозирования, в котором прогнозируемую величину пиксела генерируют в соответствии с Выражением (9), когда величины А, В, С, D, I, J, К и L пикселов «доступны».
<mrow><mtext>(A</mtext><mo>+</mo><mtext>B</mtext><mo>+</mo><mtext>C</mtext><mo>+</mo><mtext>D</mtext><mo>+</mo><mtext>I</mtext><mo>+</mo><mtext>J</mtext><mo>+</mo><mtext>K</mtext><mo>+</mo><mtext>L</mtext><mo>+</mo><mtext>4)</mtext><mo>></mo><mo>></mo><mtext>3</mtext><mtext> </mtext><mo>…</mo><mrow><mo>(</mo><mtext>9</mtext><mo>)</mo></mrow></mrow>
Кроме того, когда величины А, В, С и D пикселов все «недоступны», прогнозируемую величину пиксела генерируют в соответствии с Выражением (10).
<mrow><mtext>(I</mtext><mo>+</mo><mtext>J</mtext><mo>+</mo><mtext>K</mtext><mo>+</mo><mtext>L</mtext><mo>+</mo><mtext>2)</mtext><mo>></mo><mo>></mo><mtext>2</mtext><mtext> </mtext><mo>…</mo><mrow><mo>(</mo><mrow><mtext>10</mtext></mrow><mo>)</mo></mrow></mrow>
Кроме того, когда величины I, J, К и L пикселов все «недоступны», прогнозируемую величину пиксела генерируют в соответствии с Выражением (11).
<mrow><mtext>(A</mtext><mo>+</mo><mtext>B</mtext><mo>+</mo><mtext>C</mtext><mo>+</mo><mtext>D</mtext><mo>+</mo><mtext>2)</mtext><mo>></mo><mo>></mo><mtext>2</mtext><mtext> </mtext><mo>…</mo><mrow><mo>(</mo><mrow><mtext>11</mtext></mrow><mo>)</mo></mrow></mrow>
Отметим, что, когда величины А, В, С, D, I, J, К и L пикселов все «недоступны», в качестве прогнозируемой величины пиксела принимают число 128.
Режим 3 представляет собой режим прогнозирования вниз-влево по диагонали (Diagonal_Down_Left) и применяется только в том случае, когда величины А, В, С, D, I, J, К, L и М пикселов «доступны». В этом случае прогнозируемые величины пикселов а-p генерируют с использованием следующего Выражения (12).
<mrow><mtable columnalign="left"><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемая величина пиксела </mtext><mo>=</mo><mtext>(A</mtext><mo>+</mo><mtext>2B</mtext><mo>+</mo><mtext>C</mtext><mo>+</mo><mtext>2)</mtext><mo>></mo><mo>></mo><mtext>2</mtext></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемые величины пикселов b и e </mtext><mo>=</mo><mtext>(B</mtext><mo>+</mo><mtext>2C</mtext><mo>+</mo><mi>D</mi><mo>+</mo><mtext>2)</mtext><mo>></mo><mo>></mo><mtext>2</mtext></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемые величины пикселов c</mtext><mtext>, f и i </mtext><mo>=</mo><mtext>(C</mtext><mo>+</mo><mtext>2C</mtext><mo>+</mo><mi>E</mi><mo>+</mo><mtext>2)</mtext><mo>></mo><mo>></mo><mtext>2</mtext></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемые величины пикселов d</mtext><mtext>, g</mtext><mtext>, j и m </mtext><mo>=</mo><mtext>(D</mtext><mo>+</mo><mtext>2E</mtext><mo>+</mo><mi>F</mi><mo>+</mo><mtext>2)</mtext><mo>></mo><mo>></mo><mtext>2</mtext></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемые величины пикселов h</mtext><mtext>, k и n </mtext><mo>=</mo><mtext>(E</mtext><mo>+</mo><mtext>2F</mtext><mo>+</mo><mi>G</mi><mo>+</mo><mtext>2)</mtext><mo>></mo><mo>></mo><mtext>2</mtext></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемые величины пикселов l</mtext><mtext>, и o </mtext><mo>=</mo><mtext>(F</mtext><mo>+</mo><mtext>2G</mtext><mo>+</mo><mi>H</mi><mo>+</mo><mtext>2)</mtext><mo>></mo><mo>></mo><mtext>2</mtext></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемая величина пиксела p </mtext><mo>=</mo><mtext>(G</mtext><mo>+</mo><mn>3</mn><mi>H</mi><mo>+</mo><mn>2</mn><mtext>)</mtext><mo>></mo><mo>></mo><mtext>2</mtext><mtext> </mtext><mo>…</mo><mrow><mo>(</mo><mrow><mtext>12</mtext></mrow><mo>)</mo></mrow></mrow></mtd></mtr></mtable></mrow>
Режим 4 представляет собой режим прогнозирования вниз-вправо по диагонали (Diagonal_Down_Right) и применяется только в том случае, когда величины А, В, С, D, I, J, К, L и М пикселов «доступны». В этом случае прогнозируемые величины пикселов а-p генерируют с использованием следующего Выражения (13).
<mrow><mtable columnalign="left"><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемая величина пиксела m </mtext><mo>=</mo><mtext> (J</mtext><mo>+</mo><mtext>2K</mtext><mo>+</mo><mi>L</mi><mo>+</mo><mtext>2)</mtext><mo>></mo><mo>></mo><mtext>2</mtext></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемые величины пикселов i и n </mtext><mo>=</mo><mtext>(I</mtext><mo>+</mo><mtext>2J</mtext><mo>+</mo><mi>K</mi><mo>+</mo><mtext>2)</mtext><mo>></mo><mo>></mo><mtext>2</mtext></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемые величины пикселов e</mtext><mtext>, j и o </mtext><mo>=</mo><mtext>(M</mtext><mo>+</mo><mtext>2I</mtext><mo>+</mo><mi>J</mi><mo>+</mo><mtext>2)</mtext><mo>></mo><mo>></mo><mtext>2</mtext></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемые величины пикселов a</mtext><mtext>, f</mtext><mtext>, k и p </mtext><mo>=</mo><mtext>(A</mtext><mo>+</mo><mtext>2M</mtext><mo>+</mo><mi>I</mi><mo>+</mo><mtext>2)</mtext><mo>></mo><mo>></mo><mtext>2</mtext></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемые величины пикселов b</mtext><mtext>, g и l </mtext><mo>=</mo><mtext>(M</mtext><mo>+</mo><mtext>2A</mtext><mo>+</mo><mi>B</mi><mo>+</mo><mtext>2)</mtext><mo>></mo><mo>></mo><mtext>2</mtext></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемые величины пикселов c и h </mtext><mo>=</mo><mtext> (A</mtext><mo>+</mo><mtext>2B</mtext><mo>+</mo><mi>C</mi><mo>+</mo><mtext>2)</mtext><mo>></mo><mo>></mo><mtext>2</mtext></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемая величина пиксела d </mtext><mo>=</mo><mtext> (B</mtext><mo>+</mo><mtext>2C</mtext><mo>+</mo><mi>D</mi><mo>+</mo><mtext>2)</mtext><mo>></mo><mo>></mo><mtext>2</mtext><mtext> </mtext><mo>…</mo><mrow><mo>(</mo><mrow><mtext>13</mtext></mrow><mo>)</mo></mrow></mrow></mtd></mtr></mtable></mrow>
Режим 5 представляет собой режим прогнозирования по диагонали и вертикально вправо (Diagonal_Vertical_Right) и применяется только в том случае, когда величины А, В, С, D, I, J, К, L и М пикселов «доступны». В этом случае прогнозируемые величины пикселов а-p генерируют с использованием следующего Выражения (14).
<mrow><mtable columnalign="left"><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемые величины пикселов a и j </mtext><mo>=</mo><mtext> (M</mtext><mo>+</mo><mi>A</mi><mo>+</mo><mn>1</mn><mtext>)</mtext><mo>></mo><mo>></mo><mn>1</mn></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемые величины пикселов b</mtext><mtext>, и k </mtext><mo>=</mo><mtext>(A</mtext><mo>+</mo><mi>B</mi><mo>+</mo><mn>1</mn><mtext>)</mtext><mo>></mo><mo>></mo><mn>1</mn></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемые величины пикселов c и l </mtext><mo>=</mo><mtext>(B</mtext><mo>+</mo><mi>C</mi><mo>+</mo><mn>1</mn><mtext>)</mtext><mo>></mo><mo>></mo><mn>1</mn></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемая величина пиксела d </mtext><mo>=</mo><mtext> (C</mtext><mo>+</mo><mi>D</mi><mo>+</mo><mn>1</mn><mtext>)</mtext><mo>></mo><mo>></mo><mn>1</mn></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемые величины пикселов e и n </mtext><mo>=</mo><mtext> (1</mtext><mo>+</mo><mtext>2M</mtext><mo>+</mo><mi>A</mi><mo>+</mo><mn>2</mn><mtext>)</mtext><mo>></mo><mo>></mo><mn>2</mn></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемые величины пикселов f и o </mtext><mo>=</mo><mtext> (M</mtext><mo>+</mo><mn>2</mn><mi>A</mi><mo>+</mo><mi>B</mi><mo>+</mo><mn>2</mn><mtext>)</mtext><mo>></mo><mo>></mo><mn>2</mn></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемые величины пикселов g и p </mtext><mo>=</mo><mtext> (A</mtext><mo>+</mo><mtext>2B</mtext><mo>+</mo><mtext>C</mtext><mo>+</mo><mtext>2)</mtext><mo>></mo><mo>></mo><mn>2</mn></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемая величина пиксела h </mtext><mo>=</mo><mtext> (B</mtext><mo>+</mo><mtext>2C</mtext><mo>+</mo><mi>D</mi><mo>+</mo><mn>2</mn><mtext>)</mtext><mo>></mo><mo>></mo><mn>2</mn></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемая величина пиксела i </mtext><mo>=</mo><mtext> (M</mtext><mo>+</mo><mtext>2I</mtext><mo>+</mo><mtext>J</mtext><mo>+</mo><mtext>2)</mtext><mo>></mo><mo>></mo><mn>2</mn></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемая величина пиксела m </mtext><mo>=</mo><mtext> (I</mtext><mo>+</mo><mtext>2J</mtext><mo>+</mo><mtext>K</mtext><mo>+</mo><mtext>2)</mtext><mo>></mo><mo>></mo><mn>2</mn><mtext> </mtext><mo>…</mo><mrow><mo>(</mo><mrow><mtext>14</mtext></mrow><mo>)</mo></mrow></mrow></mtd></mtr></mtable></mrow>
Режим 6 представляет собой режим прогнозирования по горизонтали и вниз (Horizontal_Down) и применяется только в том случае, когда величины А, В, С, D, I, J, К, L и М пикселов «доступны». В этом случае прогнозируемые величины пикселов а-p генерируют с использованием следующего Выражения (15).
<mrow><mtable columnalign="left"><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемые величины пикселов a и g </mtext><mo>=</mo><mtext> (M</mtext><mo>+</mo><mi>I</mi><mo>+</mo><mn>1</mn><mtext>)</mtext><mo>></mo><mo>></mo><mn>1</mn></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемые величины пикселов b и h</mtext><mo>=</mo><mtext>(I</mtext><mo>+</mo><mn>2</mn><mi>M</mi><mo>+</mo><mi>A</mi><mo>+</mo><mn>2</mn><mtext>)</mtext><mo>></mo><mo>></mo><mn>2</mn></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемая величина пиксела c </mtext><mo>=</mo><mtext> (M</mtext><mo>+</mo><mn>2</mn><mi>A</mi><mo>+</mo><mi>B</mi><mo>+</mo><mn>2</mn><mtext>)</mtext><mo>></mo><mo>></mo><mn>2</mn></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемая величина пиксела d </mtext><mo>=</mo><mtext> (A</mtext><mo>+</mo><mtext>2B</mtext><mo>+</mo><mtext>C</mtext><mo>+</mo><mtext>2)</mtext><mo>></mo><mo>></mo><mn>2</mn></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемые величины пикселов e и k </mtext><mo>=</mo><mtext> (I</mtext><mo>+</mo><mtext>J</mtext><mo>+</mo><mtext>1)</mtext><mo>></mo><mo>></mo><mn>1</mn></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемые величины пикселов f и l </mtext><mo>=</mo><mtext> (M</mtext><mo>+</mo><mn>2</mn><mi>I</mi><mo>+</mo><mi>J</mi><mo>+</mo><mn>2</mn><mtext>)</mtext><mo>></mo><mo>></mo><mn>2</mn></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемые величины пикселов i и o </mtext><mo>=</mo><mtext> (J</mtext><mo>+</mo><mi>K</mi><mo>+</mo><mn>1</mn><mtext>)</mtext><mo>></mo><mo>></mo><mn>1</mn></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемые величины пикселов j и p </mtext><mo>=</mo><mtext> (I</mtext><mo>+</mo><mtext>2J</mtext><mo>+</mo><mi>K</mi><mo>+</mo><mn>2</mn><mtext>)</mtext><mo>></mo><mo>></mo><mn>2</mn></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемая величина пиксела m </mtext><mo>=</mo><mtext> (K</mtext><mo>+</mo><mtext>L</mtext><mo>+</mo><mtext>1)</mtext><mo>></mo><mo>></mo><mn>1</mn></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемая величина пиксела n </mtext><mo>=</mo><mtext> (J</mtext><mo>+</mo><mtext>2K</mtext><mo>+</mo><mtext>L</mtext><mo>+</mo><mrow><mn>2</mn><mo>)</mo></mrow><mo>></mo><mo>></mo><mn>2</mn><mtext> </mtext><mtext> </mtext><mo>…</mo><mrow><mo>(</mo><mrow><mtext>15</mtext></mrow><mo>)</mo></mrow></mrow></mtd></mtr></mtable></mrow>
Режим 7 представляет собой режим прогнозирования по вертикали и влево (Vertical_Left) и применяется только в том случае, когда величины А, В, С, D, I, J, К, L и М пикселов «доступны». В этом случае прогнозируемые величины пикселов а-p генерируют с использованием следующего Выражения (16).
<mrow><mtable columnalign="left"><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемая величина пиксела a </mtext><mo>=</mo><mtext> (A</mtext><mo>+</mo><mi>B</mi><mo>+</mo><mn>1</mn><mtext>)</mtext><mo>></mo><mo>></mo><mn>1</mn></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемые величины пикселов b и i </mtext><mo>=</mo><mtext>(B</mtext><mo>+</mo><mtext>C</mtext><mo>+</mo><mtext>1)</mtext><mo>></mo><mo>></mo><mn>1</mn></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемые величины пикселов c и j</mtext><mo>=</mo><mtext>(C</mtext><mo>+</mo><mtext>D</mtext><mo>+</mo><mtext>1)</mtext><mo>></mo><mo>></mo><mn>1</mn></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемые величины пикселов d и k</mtext><mo>=</mo><mtext>(D</mtext><mo>+</mo><mtext>E</mtext><mo>+</mo><mtext>1)</mtext><mo>></mo><mo>></mo><mn>1</mn></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемая величина пиксела l </mtext><mo>=</mo><mtext> (E</mtext><mo>+</mo><mi>F</mi><mo>+</mo><mn>1</mn><mtext>)</mtext><mo>></mo><mo>></mo><mn>1</mn></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемая величина пиксела e </mtext><mo>=</mo><mtext> (A</mtext><mo>+</mo><mn>2</mn><mi>B</mi><mo>+</mo><mi>C</mi><mo>+</mo><mn>2</mn><mtext>)</mtext><mo>></mo><mo>></mo><mn>2</mn></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемые величины пикселов f и m  </mtext><mo>=</mo><mtext> (B</mtext><mo>+</mo><mtext>2C</mtext><mo>+</mo><mtext>D</mtext><mo>+</mo><mtext>2)</mtext><mo>></mo><mo>></mo><mn>2</mn></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемые величины пикселов g и n </mtext><mo>=</mo><mtext> (C</mtext><mo>+</mo><mtext>2D</mtext><mo>+</mo><mtext>E</mtext><mo>+</mo><mtext>2)</mtext><mo>></mo><mo>></mo><mn>2</mn></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемые величины пикселов h и o </mtext><mo>=</mo><mtext> (D</mtext><mo>+</mo><mtext>2E</mtext><mo>+</mo><mtext>F</mtext><mo>+</mo><mtext>2)</mtext><mo>></mo><mo>></mo><mn>2</mn></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемая величина пиксела p </mtext><mo>=</mo><mtext> (E</mtext><mo>+</mo><mn>2</mn><mi>F</mi><mo>+</mo><mi>G</mi><mo>+</mo><mn>2</mn><mtext>)</mtext><mo>></mo><mo>></mo><mn>2</mn><mtext> </mtext><mo>…</mo><mrow><mo>(</mo><mrow><mtext>16</mtext></mrow><mo>)</mo></mrow></mrow></mtd></mtr></mtable></mrow>
Режим 8 представляет собой режим прогнозирования по горизонтали и вверх (Horizontal_Up) и применяется только в том случае, когда величины А, В, С, D, I, J, К, L и М пикселов «доступны». В этом случае прогнозируемые величины пикселов а-p генерируют с использованием следующего Выражения (17).
<mrow><mtable columnalign="left"><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемая величина пиксела a </mtext><mo>=</mo><mtext> (I</mtext><mo>+</mo><mtext>J</mtext><mo>+</mo><mtext>1)</mtext><mo>></mo><mo>></mo><mn>1</mn></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемая величина пиксела b </mtext><mo>=</mo><mtext> (I</mtext><mo>+</mo><mtext>2J</mtext><mo>+</mo><mtext>K</mtext><mo>+</mo><mtext>2)</mtext><mo>></mo><mo>></mo><mn>2</mn></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемые величины пикселов c и e </mtext><mo>=</mo><mtext>(J</mtext><mo>+</mo><mtext>K</mtext><mo>+</mo><mtext>1)</mtext><mo>></mo><mo>></mo><mn>1</mn></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемые величины пикселов d и f</mtext><mo>=</mo><mtext>(J</mtext><mo>+</mo><mtext>2K</mtext><mo>+</mo><mtext>L</mtext><mo>+</mo><mtext>2)</mtext><mo>></mo><mo>></mo><mn>2</mn></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемые величины пикселов g и i</mtext><mo>=</mo><mtext>(K</mtext><mo>+</mo><mtext>L</mtext><mo>+</mo><mtext>1)</mtext><mo>></mo><mo>></mo><mn>1</mn></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемые величины пикселов h и j </mtext><mo>=</mo><mtext> </mtext><mrow><mo>(</mo><mrow><mtext>K</mtext><mo>+</mo><mtext>3L</mtext><mo>+</mo><mtext>2</mtext></mrow><mo>)</mo></mrow><mo>></mo><mo>></mo><mn>2</mn></mrow></mtd></mtr><mtr columnalign="left"><mtd columnalign="left"><mrow><mtext>Прогнозируемые величины пикселов k</mtext><mtext>, l</mtext><mtext>, m</mtext><mtext>, n</mtext><mtext>, o и p </mtext><mo>=</mo><mi>L</mi><mtext> </mtext><mo>…</mo><mrow><mo>(</mo><mrow><mtext>17</mtext></mrow><mo>)</mo></mrow></mrow></mtd></mtr></mtable></mrow>
Далее система кодирования в режиме внутрикадрового прогнозирования с размером блока 4×4 пикселов (Intra_4×4_pred_mode) для яркостных сигналов будет описана со ссылками на фиг.13. В примере, представленном на фиг.13, показан текущий блок С, служащий объектом кодирования и содержащий 4×4 пикселов, а также показаны блок А и блок В, расположенные рядом с текущим блоком С и содержащие по 4×4 пикселов каждый.
В этом случае, можно понять, что режим Intra_4×4_pred_mode для текущего блока С и режим Intra_4×4_pred_mode для блока А и блока В обладают сильной корреляцией. Обработку данных при кодировании осуществляют, как описано далее, с использованием этой корреляции, что позволяет реализовать более высокую эффективность кодирования.
В частности, в примере, показанном на фиг.13, режимы Intra_4×4_pred_mode для блока А и блока В обозначены Intra_4×4_pred_modeA и Intra_4x4_pred_modeB, соответственно, и наиболее вероятный режим (MostProbableMode) определен в соответствии со следующим Выражением (18).
<mrow><mi>M</mi><mi>o</mi><mi>s</mi><mi>t</mi><mi>Pr</mi><mi>o</mi><mi>b</mi><mi>a</mi><mi>b</mi><mi>l</mi><mi>e</mi><mi>M</mi><mi>o</mi><mi>d</mi><mi>e</mi><mo>=</mo><mi>M</mi><mi>i</mi><mi>n</mi><mrow><mo>(</mo><mrow><mi>I</mi><mi>n</mi><mi>t</mi><mi>r</mi><mi>a</mi><mo>_</mo><mn>4</mn><mo>×</mo><mn>4</mn><mo>_</mo><mi>p</mi><mi>r</mi><mi>e</mi><mi>d</mi><mo>_</mo><mi>mod</mi><mi>e</mi><mi>A</mi><mo>,</mo><mi>I</mi><mi>n</mi><mi>t</mi><mi>r</mi><mi>a</mi><mo>_</mo><mn>4</mn><mo>×</mo><mn>4</mn><mo>_</mo><mi>p</mi><mi>r</mi><mi>e</mi><mi>d</mi><mo>_</mo><mi>mod</mi><mi>e</mi><mi>B</mi></mrow><mo>)</mo></mrow><mtext> </mtext><mo>…</mo><mrow><mo>(</mo><mrow><mtext>18</mtext></mrow><mo>)</mo></mrow></mrow>
Иными словами, из блока А и блока В в качестве наиболее вероятного режима MostProbableMode, принимают тот, которому назначен меньший номер режима (mode_number).
В потоке битов определены две величины, именуемые prev_intra4x4_pred_mode_flag[luma4×4Blkldx], в качестве параметров для текущего блока С, и обработку данных для декодирования осуществляют на основе псевдо-кода, представленного следующим Выражением (19), что позволяет получить величины параметров режимов Intra_4×4_pred_mode и Intra_4×4_pred_mode и Intra4×4PredMode  [luma4×4Blkldx] для текущего блока С.
Далее будет описан режим внутрикадрового прогнозирования для блоков размером 16×16 пикселов. Фиг.14 и фиг.15 представляют диаграммы, показывающие четыре вида режимов внутрикадрового прогнозирования для блоков размером 16×16 пикселов (Intra_16×l6_pred_mode) для яркостных сигналов.
Эти четыре вида режимов внутрикадрового прогнозирования будут описаны со ссылками на фиг.16. В примере, показанном на фиг.16, изображен текущий макроблок А, подлежащий обработке для внутрикадрового прогнозирования, а Р(х, у); х, у=-1, 0,…, 15 представляет величину пиксела, соседствующего с текущим макроблоком А.
Режим 0 представляет собой режим Вертикального прогнозирования, применяемый только тогда, когда величина Р(х, -1); х, у=-1, 0,…, 15 «доступна». В этом случае прогнозируемую величину Pred(x, у) каждого пиксела в текущем макроблоке А генерируют в соответствии со следующим Выражением (20).
<mrow><mtext>Pred(x</mtext><mtext>, y)</mtext><mo>=</mo><mtext>P(x</mtext><mtext>,  -1)</mtext><mtext>, x</mtext><mtext>, y</mtext><mo>=</mo><mtext>0</mtext><mtext>,</mtext><mo>…</mo><mtext>,15</mtext><mtext> </mtext><mo>…</mo><mrow><mo>(</mo><mrow><mtext>20</mtext></mrow><mo>)</mo></mrow></mrow>
Режим 1 представляет собой режим горизонтального прогнозирования и применяется только тогда, когда величина Р(-1, у); х, у=-1, 0,…, 15 «доступна». В этом случае прогнозируемую величину Pred(x, у) каждого пиксела в текущем макроблоке А генерируют в соответствии со следующим Выражением (21).
<mrow><mtext>Pred(x</mtext><mtext>, y)</mtext><mo>=</mo><mtext>P(-1</mtext><mtext>,  y)</mtext><mtext>, x</mtext><mtext>, y</mtext><mo>=</mo><mtext>0</mtext><mtext>,</mtext><mo>…</mo><mtext>,15</mtext><mtext> </mtext><mo>…</mo><mrow><mo>(</mo><mrow><mtext>21</mtext></mrow><mo>)</mo></mrow></mrow>
Режим 2 представляет собой режим DC-прогнозирования, и в случае, когда все величины Р(х, -1) и Р(-1, у); х, у=-1, 0,…, 15 «доступны», прогнозируемую величину Pred(x, у) каждого пиксела в текущем макроблоке А генерируют в соответствии со следующим Выражением (22).
<mrow><mi>Pr</mi><mi>e</mi><mi>d</mi><mrow><mo>(</mo><mrow><mi>x</mi><mo>,</mo><mtext> y</mtext></mrow><mo>)</mo></mrow><mo>=</mo><mrow><mo>[</mo><mrow><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi>x</mi><mo>'</mo><mo>=</mo><mn>0</mn></mrow><mrow><mn>15</mn></mrow></munderover><mi>P</mi></mstyle><mrow><mo>(</mo><mrow><mi>x</mi><mo>'</mo><mo>,</mo><mtext>  -1</mtext></mrow><mo>)</mo></mrow><mo>+</mo><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi>y</mi><mo>'</mo><mo>=</mo><mn>0</mn></mrow><mrow><mn>15</mn></mrow></munderover><mrow><mi>P</mi><mrow><mo>(</mo><mrow><mo>−</mo><mn>1,</mn><mtext>  y'</mtext></mrow><mo>)</mo></mrow><mo>+</mo><mn>16</mn></mrow></mstyle></mrow><mo>]</mo></mrow><mo>></mo><mo>></mo><mn>5,</mn><mtext> где x</mtext><mtext>, y</mtext><mo>=</mo><mtext>0</mtext><mtext>,</mtext><mo>…</mo><mtext>,15</mtext><mtext> </mtext><mrow><mo>(</mo><mrow><mtext>22</mtext></mrow><mo>)</mo></mrow></mrow>
,
Кроме того, если величина Р(х, -1); х, у=-1, 0,…, 15 «недоступна», прогнозируемую величину Pred(x, у) каждого пиксела в текущем макроблоке А генерируют в соответствии со следующим Выражением (23).
<mrow><mi>Pr</mi><mi>e</mi><mi>d</mi><mrow><mo>(</mo><mrow><mi>x</mi><mo>,</mo><mtext> y</mtext></mrow><mo>)</mo></mrow><mo>=</mo><mrow><mo>[</mo><mrow><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi>y</mi><mo>'</mo><mo>=</mo><mn>0</mn></mrow><mrow><mn>15</mn></mrow></munderover><mi>P</mi></mstyle><mrow><mo>(</mo><mrow><mo>−</mo><mn>1,</mn><mtext>  y'</mtext></mrow><mo>)</mo></mrow><mo>+</mo><mn>8</mn></mrow><mo>]</mo></mrow><mo>></mo><mo>></mo><mn>4,</mn><mtext> где x</mtext><mtext>, y</mtext><mtext>, 0</mtext><mtext>,</mtext><mo>…</mo><mtext>,15</mtext><mtext> </mtext><mrow><mo>(</mo><mrow><mn>23</mn></mrow><mo>)</mo></mrow></mrow>
Если величина Р(-1, у); х, у=-1, 0,…, 15 «недоступна», прогнозируемую величину Pred(x, у) каждого пиксела в текущем макроблоке А генерируют в соответствии со следующим Выражением (24).
<mrow><mi>Pr</mi><mi>e</mi><mi>d</mi><mrow><mo>(</mo><mrow><mi>x</mi><mo>,</mo><mtext> y</mtext></mrow><mo>)</mo></mrow><mo>=</mo><mrow><mo>[</mo><mrow><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi>y</mi><mo>'</mo><mo>=</mo><mn>0</mn></mrow><mrow><mn>15</mn></mrow></munderover><mi>P</mi></mstyle><mrow><mo>(</mo><mrow><mi>x</mi><mo>'</mo><mo>,</mo><mtext>  -1</mtext></mrow><mo>)</mo></mrow><mo>+</mo><mn>8</mn></mrow><mo>]</mo></mrow><mo>></mo><mo>></mo><mn>4,</mn><mtext> </mtext><mi>г</mi><mi>д</mi><mi>е</mi><mtext> x</mtext><mtext>, y</mtext><mtext>, -0</mtext><mtext>,</mtext><mo>…</mo><mtext>,15</mtext><mtext> </mtext><mrow><mo>(</mo><mrow><mn>24</mn></mrow><mo>)</mo></mrow></mrow>
Если все величины Р(х, -1) и Р(-1, у); х, у=-1, 0,…, 15 «недоступны», в качестве прогнозируемой величины пиксела используют 128.
Режим 3 представляет собой режим прогнозирования в плоскости (Plane Prediction) и применяется, только если все величины Р(х, -1) и Р(-1, у); х, у=-1, 0,…, 15 «доступны». В этом случае прогнозируемую величину Pred(x, у) каждого пиксела в текущем макроблоке А генерируют в соответствии со следующим Выражением (25).
<mrow><mtext>Pred</mtext><mrow><mo>(</mo><mrow><mtext>x</mtext><mtext>, y</mtext></mrow><mo>)</mo></mrow><mo>=</mo><mi>C</mi><mi>l</mi><mi>i</mi><mi>p</mi><mn>1</mn><mrow><mo>(</mo><mrow><mrow><mo>(</mo><mrow><mi>a</mi><mo>+</mo><mi>b</mi><mo>⋅</mo><mrow><mo>(</mo><mrow><mi>x</mi><mo>−</mo><mn>7</mn></mrow><mo>)</mo></mrow><mo>+</mo><mi>c</mi><mo>⋅</mo><mrow><mo>(</mo><mrow><mi>y</mi><mo>−</mo><mn>7</mn></mrow><mo>)</mo></mrow><mo>+</mo><mn>16</mn></mrow><mo>)</mo></mrow><mo>></mo><mo>></mo><mn>5</mn></mrow><mo>)</mo></mrow></mrow>
<mrow><mi>a</mi><mo>=</mo><mn>16</mn><mo>⋅</mo><mrow><mo>(</mo><mrow><mi>P</mi><mrow><mo>(</mo><mrow><mo>−</mo><mn>1,15</mn></mrow><mo>)</mo></mrow><mo>+</mo><mi>P</mi><mrow><mo>(</mo><mrow><mn>15,</mn><mo>−</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow><mo>)</mo></mrow></mrow>
<mrow><mi>b</mi><mo>=</mo><mrow><mo>(</mo><mrow><mn>5</mn><mo>⋅</mo><mi>H</mi><mo>+</mo><mn>32</mn></mrow><mo>)</mo></mrow><mo>></mo><mo>></mo><mn>6</mn></mrow>
<mrow><mi>c</mi><mo>=</mo><mrow><mo>(</mo><mrow><mn>5</mn><mo>⋅</mo><mi>V</mi><mo>+</mo><mn>32</mn></mrow><mo>)</mo></mrow><mo>></mo><mo>></mo><mn>6</mn></mrow>
<mrow><mi>H</mi><mo>=</mo><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi>x</mi><mo>=</mo><mn>1</mn></mrow><mn>8</mn></munderover><mi>x</mi></mstyle><mo>⋅</mo><mrow><mo>(</mo><mrow><mi>P</mi><mrow><mo>(</mo><mrow><mn>7</mn><mo>+</mo><mi>x</mi><mo>,</mo><mtext> </mtext><mo>−</mo><mn>1</mn></mrow><mo>)</mo></mrow><mo>−</mo><mi>P</mi><mrow><mo>(</mo><mrow><mn>7</mn><mo>−</mo><mi>x</mi><mo>,</mo><mtext> </mtext><mo>−</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow><mo>)</mo></mrow></mrow>
<mrow><mi>V</mi><mo>=</mo><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi>y</mi><mo>=</mo><mn>1</mn></mrow><mn>8</mn></munderover><mi>y</mi></mstyle><mo>⋅</mo><mrow><mo>(</mo><mrow><mi>P</mi><mrow><mo>(</mo><mrow><mo>−</mo><mn>1,</mn><mtext> </mtext><mn>7</mn><mo>+</mo><mi>y</mi></mrow><mo>)</mo></mrow><mo>−</mo><mi>P</mi><mrow><mo>(</mo><mrow><mo>−</mo><mn>1,</mn><mtext> </mtext><mn>7</mn><mo>−</mo><mi>y</mi></mrow><mo>)</mo></mrow></mrow><mo>)</mo></mrow><mtext> </mtext><mo>…</mo><mrow><mo>(</mo><mrow><mtext>25</mtext></mrow><mo>)</mo></mrow></mrow>
Далее будут рассмотрены режимы внутрикадрового прогнозирования для цветоразностных сигналов. Фиг.17 представляет диаграмму, показывающую четыре вида режимов внутрикадрового прогнозирования для цветоразностных сигналов (Intra_chroma_pred_mode). Эти режимы внутрикадрового прогнозирования для цветоразностных сигналов могут быть установлены независимо от режимов внутрикадрового прогнозирования для яркостных сигналов. Эти режимы внутрикадрового прогнозирования для цветоразностных сигналов соответствуют указанным выше режимам внутрикадрового прогнозирования для блоков размером 16×16 пикселов для яркостных сигналов.
Однако режимы внутрикадрового прогнозирования для блоков размером 16×16 пикселов для яркостных сигналов используют в качестве цели блок размером 16×16 пикселов, но, с другой стороны, режимы внутрикадрового прогнозирования для цветоразностных сигналов используют блоки размером 8×8 пикселов в качестве цели. Далее, как показано на упомянутых выше фиг.14 и фиг.17, номера режимов для яркостных сигналов не соответствуют номерам режимов для цветоразностных сигналов.
Теперь, будем поддерживать соответствие определений величин пикселов текущего блока А в режиме внутрикадрового прогнозирования для блоков размером 16×16 пикселов для яркостного сигнала и величины соседнего пиксела. Например, предположим, что величина пиксела, соседнего с текущим макроблоком А (размер блока 8×8 пикселов в случае цветоразностного сигнала), подлежащим внутрикадровой обработке данных, обозначена Р(х, у); х, у=-1, 0,…, 7.
Режим 0 представляет собой режим DC-прогнозирования, так что в случае, когда все величины Р(х, -1) и Р(-1, у); х, у=-1, 0,…, 7 «доступны», прогнозируемую величину Pred(x, у) каждого пиксела в текущем макроблоке А генерируют в соответствии со следующим Выражением (26).
<mrow><mi>Pr</mi><mi>e</mi><mi>d</mi><mrow><mo>(</mo><mrow><mtext>x</mtext><mtext>, y</mtext></mrow><mo>)</mo></mrow><mo>=</mo><mrow><mo>(</mo><mrow><mrow><mo>(</mo><mrow><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi>n</mi><mo>=</mo><mn>0</mn></mrow><mn>7</mn></munderover><mrow><mrow><mo>(</mo><mrow><mi>P</mi><mrow><mo>(</mo><mrow><mo>−</mo><mn>1,</mn><mtext> </mtext><mi>n</mi></mrow><mo>)</mo></mrow><mo>+</mo><mi>P</mi><mrow><mo>(</mo><mrow><mi>n</mi><mo>,</mo><mtext> </mtext><mn>1</mn></mrow><mo>)</mo></mrow></mrow><mo>)</mo></mrow></mrow></mstyle></mrow><mo>)</mo></mrow><mo>+</mo><mn>8</mn></mrow><mo>)</mo></mrow><mo>></mo><mo>></mo><mn>4,</mn><mtext> где x</mtext><mtext>, y</mtext><mo>=</mo><mtext>0</mtext><mtext>,</mtext><mo>…</mo><mtext>,7</mtext><mtext> </mtext><mrow><mo>(</mo><mrow><mtext>26</mtext></mrow><mo>)</mo></mrow></mrow>
Кроме того, если величина Р(-1, у); х, у=-1, 0,…, 7 «недоступна», прогнозируемую величину Pred(x, у) каждого пиксела в текущем макроблоке А генерируют в соответствии со следующим Выражением (27).
<mrow><mtext>Pred</mtext><mrow><mo>(</mo><mrow><mtext>x</mtext><mtext>, y</mtext></mrow><mo>)</mo></mrow><mo>=</mo><mrow><mo>[</mo><mrow><mrow><mo>(</mo><mrow><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi>n</mi><mo>=</mo><mn>0</mn></mrow><mn>7</mn></munderover><mrow><mi>P</mi><mrow><mo>(</mo><mrow><mi>n</mi><mo>,</mo><mtext> </mtext><mo>−</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow></mstyle></mrow><mo>)</mo></mrow><mo>+</mo><mn>4</mn></mrow><mo>]</mo></mrow><mo>></mo><mo>></mo><mn>3,</mn><mtext> где x</mtext><mtext>, y</mtext><mo>=</mo><mtext>0</mtext><mtext>,</mtext><mo>…</mo><mtext>,7</mtext><mtext> </mtext><mrow><mo>(</mo><mrow><mtext>27</mtext></mrow><mo>)</mo></mrow></mrow>
Кроме того, если величина Р(х, -1); х, у=-1, 0,…, 7 «недоступна», прогнозируемую величину Pred(x, у) каждого пиксела в текущем макроблоке А генерируют в соответствии со следующим Выражением (28).
<mrow><mtext>Pred</mtext><mrow><mo>(</mo><mrow><mtext>x</mtext><mtext>, y</mtext></mrow><mo>)</mo></mrow><mo>=</mo><mrow><mo>[</mo><mrow><mrow><mo>(</mo><mrow><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi>n</mi><mo>=</mo><mn>0</mn></mrow><mn>7</mn></munderover><mrow><mi>P</mi><mrow><mo>(</mo><mrow><mo>−</mo><mn>1,</mn><mtext> </mtext><mi>n</mi></mrow><mo>)</mo></mrow></mrow></mstyle></mrow><mo>)</mo></mrow><mo>+</mo><mn>4</mn></mrow><mo>]</mo></mrow><mo>></mo><mo>></mo><mn>3,</mn><mtext> где x</mtext><mtext>, y</mtext><mo>=</mo><mtext>0</mtext><mtext>,</mtext><mo>…</mo><mtext>,7</mtext><mtext> </mtext><mrow><mo>(</mo><mrow><mtext>28</mtext></mrow><mo>)</mo></mrow></mrow>
Режим 1 представляет собой режим Горизонтального прогнозирования и применяется только в том случае, когда величина Р(-1, у); х, у=-1, 0,…, 7 «доступна». В этом случае прогнозируемую величину Pred(x, у) каждого пиксела в текущем макроблоке А генерируют в соответствии со следующим Выражением (29).
<mrow><mtext>Pred(x</mtext><mtext>, y)</mtext><mo>=</mo><mtext>P(-1</mtext><mtext>, y); x</mtext><mtext>, y</mtext><mo>=</mo><mtext>0</mtext><mtext>,</mtext><mo>…</mo><mtext>,7</mtext><mtext> </mtext><mo>…</mo><mrow><mo>(</mo><mrow><mtext>29</mtext></mrow><mo>)</mo></mrow></mrow>
Режим 2 представляет собой режим Вертикального прогнозирования и применяется только в том случае, когда величина Р(х, -1); х, у=-1, 0,…, 7 «доступна». В этом случае прогнозируемую величину Pred(x, у) каждого пиксела в текущем макроблоке А генерируют в соответствии со следующим Выражением (30).
<mrow><mtext>Pred(x</mtext><mtext>, y)</mtext><mo>=</mo><mtext>P(x</mtext><mtext>, -1); x</mtext><mtext>, y</mtext><mo>=</mo><mtext>0</mtext><mtext>,</mtext><mo>…</mo><mtext>,7</mtext><mtext> </mtext><mo>…</mo><mrow><mo>(</mo><mrow><mtext>30</mtext></mrow><mo>)</mo></mrow></mrow>
Режим 3 представляет собой режим прогнозирования в плоскости и применяется, только если величины Р(х, -1) и Р(-1, у); х, у=-1, 0,…, 7 «доступны». В этом случае прогнозируемую величину Pred(x, у) каждого пиксела в текущем макроблоке А генерируют в соответствии со следующим Выражением (31).
<mrow><mtext>Pred</mtext><mrow><mo>(</mo><mrow><mtext>x</mtext><mtext>, y</mtext></mrow><mo>)</mo></mrow><mo>=</mo><mi>C</mi><mi>l</mi><mi>i</mi><mi>p</mi><mn>1</mn><mrow><mo>(</mo><mrow><mi>a</mi><mo>+</mo><mi>b</mi><mo>⋅</mo><mrow><mo>(</mo><mrow><mi>x</mi><mo>−</mo><mn>3</mn></mrow><mo>)</mo></mrow><mo>+</mo><mi>c</mi><mo>⋅</mo><mrow><mo>(</mo><mrow><mi>e</mi><mo>−</mo><mn>3</mn></mrow><mo>)</mo></mrow><mo>+</mo><mn>16</mn></mrow><mo>)</mo></mrow><mo>></mo><mo>></mo><mn>5</mn><mo>;</mo><mtext> x</mtext><mtext>, y</mtext><mo>=</mo><mtext>0</mtext><mtext>,</mtext><mo>…</mo><mtext>7</mtext></mrow>
<mrow><mi>a</mi><mo>=</mo><mn>16</mn><mo>⋅</mo><mrow><mo>(</mo><mrow><mi>P</mi><mrow><mo>(</mo><mrow><mo>−</mo><mn>1,17</mn></mrow><mo>)</mo></mrow><mo>+</mo><mi>P</mi><mrow><mo>(</mo><mrow><mn>7,</mn><mo>−</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow><mo>)</mo></mrow></mrow>
<mrow><mi>b</mi><mo>=</mo><mrow><mo>(</mo><mrow><mn>17</mn><mo>⋅</mo><mi>H</mi><mo>+</mo><mn>16</mn></mrow><mo>)</mo></mrow><mo>></mo><mo>></mo><mn>5</mn></mrow>
<mrow><mi>c</mi><mo>=</mo><mrow><mo>(</mo><mrow><mn>17</mn><mo>⋅</mo><mi>V</mi><mo>+</mo><mn>16</mn></mrow><mo>)</mo></mrow><mo>></mo><mo>></mo><mn>5</mn></mrow>
<mrow><mi>H</mi><mo>=</mo><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi>x</mi><mo>=</mo><mn>1</mn></mrow><mn>8</mn></munderover><mi>x</mi></mstyle><mo>⋅</mo><mrow><mo>[</mo><mrow><mi>P</mi><mrow><mo>(</mo><mrow><mn>3</mn><mo>+</mo><mi>x</mi><mo>,</mo><mtext> </mtext><mo>−</mo><mn>1</mn></mrow><mo>)</mo></mrow><mo>−</mo><mi>P</mi><mrow><mo>(</mo><mrow><mn>3</mn><mo>−</mo><mi>x</mi><mo>,</mo><mtext> </mtext><mo>−</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow><mo>]</mo></mrow></mrow>
<mrow><mi>V</mi><mo>=</mo><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi>y</mi><mo>=</mo><mn>1</mn></mrow><mn>8</mn></munderover><mi>y</mi></mstyle><mo>⋅</mo><mrow><mo>[</mo><mrow><mi>P</mi><mrow><mo>(</mo><mrow><mo>−</mo><mn>1,</mn><mtext> </mtext><mn>3</mn><mo>+</mo><mi>y</mi></mrow><mo>)</mo></mrow><mo>−</mo><mi>P</mi><mrow><mo>(</mo><mrow><mo>−</mo><mn>1,</mn><mtext> </mtext><mn>3</mn><mo>−</mo><mi>y</mi></mrow><mo>)</mo></mrow></mrow><mo>]</mo></mrow><mtext> </mtext><mo>…</mo><mrow><mo>(</mo><mrow><mtext>31</mtext></mrow><mo>)</mo></mrow></mrow>
Как описано выше, режимы внутрикадрового прогнозирования для яркостных сигналов включают девять видов режимов прогнозирования для блоков размером 4×4 пиксела и блоков размером 8×8 пикселов и четыре вида режимов прогнозирования для макроблоков размером 16×16 пикселов. Режимы для таких блоков устанавливают для каждого макроблока. Режимы внутрикадрового прогнозирования для цветоразностных сигналов включают четыре вида режимов прогнозирования для блоков размером 8×8 пикселов. Режимы внутрикадрового прогнозирования для цветоразностных сигналов могут быть установлены независимо от режимов внутрикадрового прогнозирования для яркостных сигналов.
Кроме того, применительно к режимам внутрикадрового прогнозирования для блоков размером 4×4 пикселов (режимы 4×4 внутрикадрового прогнозирования) и режимам внутрикадрового прогнозирования для блоков размером 8×8 пикселов (режимы 8×8 внутрикадрового прогнозирования) для яркостных сигналов устанавливают один режим внутрикадрового прогнозирования для каждого блока размером 4×4 пикселов и размером 8х8 пикселов яркостного сигнала. Применительно к режимам внутрикадрового прогнозирования для блоков размером 16×16 пикселов к режимам внутрикадрового прогнозирования для блоков размером 16×16 пикселов (режимы 16×16 внутрикадрового прогнозирования) для яркостных сигналов и к режимам внутрикадрового прогнозирования для цветоразностных сигналов устанавливают один режим внутрикадрового прогнозирования для одного макроблока.
Отметим, что указанные режимы прогнозирования соответствуют направлениям, обозначенным упомянутыми выше номерами 0, 1, 3-8 на фиг.1. Режим 2 прогнозирования представляет собой прогнозирование средней величины.
Как описано выше внутрикадровое прогнозирование в системе H.264/AVC выполняют с точностью до целого пиксела. С другой стороны, в устройстве 51 для кодирования изображения осуществляют внутрикадровое прогнозирование с точностью до долей пиксела.
Выполнение внутрикадрового прогнозирования с точностью до долей пиксела
Далее, реализация внутрикадрового прогнозирования с точностью до долей пиксела будет описана со ссылками на фиг.18. Отметим, что пример, показанный на фиг.18, иллюстрирует пример, когда текущий блок имеет размер 4×4 пикселов.
-1
-1
0
1
2
0
1
2
В примере, показанном на фиг.18, темные кружки представляют пикселы текущего блока, подлежащего внутрикадровому прогнозированию, а белые кружки представляют соседние пикселы, расположенные рядом с текущим блоком. Более подробно, среди соседних пикселов, представленных белыми кружками, верхний левый соседний пиксел, расположенный рядом с верхней левой частью текущего блока, обозначен A и также I, и этот пиксел эквивалентен изображенному на фиг.12 пикселу, величина которого равна М. Среди соседних пикселов, представленных белыми кружками, верхние соседние пикселы, расположенные рядом с верхней частью текущего блока, обозначены A, A, A и т.д., причем эти пикселы эквивалентны пикселам с величинами А-Н, показанным на фиг.12. Среди соседних пикселов, представленных белыми кружками, левые соседние пикселы, расположенные рядом с левой частью текущего блока, обозначены I, I, I и т.д., причем эти пикселы эквивалентны пикселам с величинами I-L, показанным на фиг.12.
-0.5
+0.5
-0.5
+0.5
-0.75
-0.25
+0.25
+0.75
-0.75
-0.25
+0.25
+0.75
-0.5
+0.5
-0.5
+0.5
Кроме того, а, а и т.д. и i, i и т.д., показанные между соседними пикселами, представляют пикселы с точностью 1/2 пиксела. Далее, а, а, а, а и т.д. и i, i, i, i и т.д., показанные между пикселами а, а и т.д. и i, i и т.д., представляют пикселы с точностью 1/4 пикселов.
Сначала, на первом этапе работы с модулем 74 внутрикадрового прогнозирования, выполняют внутрикадровое прогнозирование в различных режимах внутрикадрового прогнозирования с использованием величин А-М пикселов, показанных на фиг.12, и определяют оптимальный режим внутрикадрового прогнозирования из этих режимов внутрикадрового прогнозирования. Когда текущий блок имеет размер 4×4, этим оптимальным режимом внутрикадрового прогнозирования является один из девяти режимов прогнозирования, показанных на фиг.10 или фиг.11.
0
1
2
3
Например, предположим, что в качестве оптимального режима внутрикадрового прогнозирования был выбран Режим 0 (режим Вертикального прогнозирования). В этот момент соседними пикселами, используемыми для прогнозирования текущего блока, являются пикселы А, A, А и А, показанные на фиг.18, имеющие величины А-D пикселов, представленные на фиг.12.
-0.5
+0.5
-0.5
На втором этапе работы, модуль 75 интерполяции соседнего пиксела с использованием имеющего 6 отводов КИХ-фильтра (FIR) в соответствии с принципами системы H.264/AVC, описанными выше со ссылками на фиг.4, генерирует изображенные на фиг.18 пикселы а, а и т.д. с точностью 1/2 пиксела. Иными словами пиксел а вычисляют в соответствии со следующим Выражением (32).
<mrow><msub><mi>a</mi><mrow><mo>−</mo><mn>0.5</mn></mrow></msub><mo>=</mo><mrow><mo>(</mo><mrow><msub><mi>A</mi><mrow><mo>−</mo><mn>2</mn></mrow></msub><mo>−</mo><mn>5</mn><mo>*</mo><msub><mi>A</mi><mrow><mo>−</mo><mn>1</mn></mrow></msub><mo>+</mo><mn>20</mn><mo>*</mo><msub><mi>A</mi><mn>0</mn></msub><mo>+</mo><mn>20</mn><mo>*</mo><msub><mi>A</mi><mn>1</mn></msub><mo>+</mo><msub><mi>A</mi><mn>2</mn></msub><mo>+</mo><mn>16</mn></mrow><mo>)</mo></mrow><mo>></mo><mo>></mo><mn>5</mn><mtext> </mtext><mo>…</mo><mrow><mo>(</mo><mrow><mtext>32</mtext></mrow><mo>)</mo></mrow></mrow>
+0.5
+1.5
Это же может быть применено и к другим пикселам а, a и т.д. с точностью 1/2 пиксела.
-0.75
-0.25
+0.25
+0.75
0
1
2
3
-0.5
+0.5
+0.25
На третьем этапе работы, модуль 75 интерполяции соседнего пиксела генерирует изображенные на фиг.18 пикселы а, а, а и а с точностью 1/4 пиксела на основе пикселов А, A, А, А и пикселов а, а и т.д. посредством линейной интерполяции. В частности, пиксел а вычисляют в соответствии со следующим Выражением (33).
<mrow><msub><mi>a</mi><mrow><mo>−</mo><mn>0.5</mn></mrow></msub><mo>=</mo><msub><mi>A</mi><mn>0</mn></msub><mo>+</mo><msub><mi>a</mi><mrow><mo>+</mo><mn>0.5</mn></mrow></msub><mo>+</mo><mrow><mn>1</mn><mo>)</mo></mrow><mo>></mo><mo>></mo><mn>2</mn><mtext> </mtext><mo>…</mo><mrow><mo>(</mo><mrow><mtext>33</mtext></mrow><mo>)</mo></mrow></mrow>
Это же может быть применено и к другим пикселам с точностью 1/4 пиксела.
На четвертом этапе работы модуль 74 внутрикадрового прогнозирования для случая Режима 0 принимает величины -0.75, -0.50, -0.25, +0.25, +0.50 и +0.75, представляющие собой разности фаз между пикселом с целочисленной точностью и каждым из пикселов с точностью до долей пиксела, в качестве кандидатов величины сдвига в горизонтальном направлении и определяет оптимальную величину сдвига.
+0.25
+1.25
+2.25
+3.25
0
1
2
3
Например, если величина сдвига равна +0.25, внутрикадровое прогнозирование выполняют с использованием величин пикселов а, a, a и а вместо величин пикселов А, A, А и А.
Таким образом, оптимальную величину сдвига определяют применительно к оптимальному режиму внутрикадрового прогнозирования, выбранному на первом этапе работы. Например, возможен случай, когда в качестве оптимальной выбрана величина сдвига, равная 0, и тогда используют величину пиксела с точностью до целого пиксела.
Отметим, что из девяти режимов прогнозирования, показанных на фиг.10 и фиг.11, применительно к режиму 2 (режим DC-прогнозирования) вычисляют среднюю величину. В этом случае, даже если выполнить сдвиг, это не будет непосредственно связано с повышением эффективности кодирования, так что, соответственно, указанная выше операция оказывается запрещена и не выполняется.
0
1
2
В Режиме 0 (режим вертикального прогнозирования), Режиме 3 (режим прогнозирования вниз-влево по диагонали) или Режиме 7 (режим прогнозирования по вертикали и влево) сдвигают только показанные на фиг.18 верхние соседние пикселы A, A, А и т.д., служащие кандидатами.
0
1
2
В Режиме 1 (режим горизонтального прогнозирования) или Режиме 8 (режим прогнозирования по горизонтали и вверх) сдвигают только показанные на фиг.18 левые соседние пикселы I, I, I и т.д., служащие кандидатами.
В других режимах (Режимы 4-6) рассматривают сдвиг относительно пикселов обоих типов - верхних соседних пикселов и левых соседних пикселов.
Кроме того, для верхних соседних пикселов определяют только величину сдвига в горизонтальном направлении, а для левых соседних пикселов - только величину сдвига в вертикальном направлении.
Перечисленные выше этапы работы с первого по четвертый выполняют, чтобы определить оптимальную величину сдвига, что позволяет расширить выбор величин пикселов, используемых в режиме внутрикадрового прогнозирования, и затем выполнить оптимальное внутрикадровое прогнозирование. Таким образом, можно дополнительно повысить эффективность кодирования при внутрикадровом прогнозировании.
Кроме того, в системе H.264/AVC, описанной выше со ссылками на фиг.4, схему имеющего 6 отводов КИХ-фильтра (FIR), используемую только для прогнозирования и компенсации движения при межкадровом прогнозировании, можно также эффективно применить для внутрикадрового прогнозирования. Таким образом, можно повысить эффективность без увеличения схемы.
Далее, можно осуществить внутрикадровое прогнозирование с более тонким разрешением, чем 22,5 градусов, представляющим собой разрешение при внутрикадровом прогнозировании в системе H.264/AVC.
Пример преимуществ обработки данных при внутрикадровом прогнозировании с точностью до долей пиксела
В примере, показанном на фиг.19, штриховые линии представляют направления режимов прогнозирования при внутрикадровом прогнозировании в системе H.264/AVC, описанной выше со ссылками на фиг.1. Номера этих штриховых линий соответствуют номерам девяти режимов прогнозирования, показанных на фиг.10 или фиг.11, соответственно. Отметим, что режим 2 представляет собой прогнозирование средней величины, и, соответственно, номер его не показан.
В системе H.264/AVC внутрикадровое прогнозирование может быть выполнено только с разрешением 22.5 градусов, показанным штриховыми линиями. С другой стороны, в устройстве 51 для кодирования изображения выполняют внутрикадровое прогнозирование с точностью до долей пиксела, а внутрикадровое прогнозирование с разрешением еще тоньше, чем 22,5 градусов, обозначено жирной сплошной линией. Таким образом, можно, в частности, повысить эффективность кодирования текстуры, имеющей наклонный край.
Описание обработки данных при внутрикадровом прогнозировании
Далее, обработка данных при внутрикадровом прогнозировании в виде перечисленных выше этапов работы будет описана со ссылками на логическую схему, представленную на фиг.20. Отметим, что такая обработка данных при внутрикадровом прогнозировании, представляет собой обработку данных для внутрикадрового прогнозирования на этапе S31, показанном на фиг.8, а в примере, представленном на фиг.20, описание может быть дано для случая яркостных сигналов, например.
На этапе S41 модуль 82 определения оптимального режима осуществляет внутрикадровое прогнозирование в режимах внутрикадрового прогнозирования для блоков размеров 4×4 пикселов, 8×8 пикселов и 16×16 пикселов.
Как описано выше, в режимах внутрикадрового прогнозирования 4×4 пикселов и режимах внутрикадрового прогнозирования 8×8 пикселов предусмотрены по девять видов таких режимов прогнозирования, так что для каждого блока может быть назначен один режим прогнозирования. В случае режима внутрикадрового прогнозирования 16×16 пикселов и в режиме внутрикадрового прогнозирования для цветоразностных сигналов один режим прогнозирования может быть определен для одного макроблока.
Модуль 82 определения оптимального режима использует декодированный соседний пиксел, считываемый из буфера 81 соседнего изображения, в качестве опоры, чтобы выполнить внутрикадровое прогнозирование применительно к пикселу блока, подлежащего обработке, с использованием всех видов режимов внутрикадрового прогнозирования. Отметим, что в качестве декодируемого пиксела для использования в качестве опоры применяют пиксел, не подвергавшийся деблокирующей фильтрации посредством деблокирующего фильтра 71.
На этапе S42 модуль 82 определения оптимального режима вычисляет величину целевой функции в режимах внутрикадрового прогнозирования для блоков размером 4×4 пикселов, 8×8 пикселов и 16×16 пикселов. Здесь величину целевой функции вычисляют на основе одного из методов - варианта Высокой сложности (High Complexity mode) или варианта Низкой сложности (Low Complexity mode). Эти варианты определены в Совместной модели (JM (Joint Model)), являющейся базовым пакетом программного обеспечения в системе H.264/AVC.
В частности, в варианте Высокой сложности в качестве эксперимента осуществляли кодирование для всех режимов прогнозирования, служащих кандидатами, как при обработке данных на этапе S41. При этом вычисляли величину целевой функции, представленной приведенным ниже Выражением (34), для каждого режима прогнозирования и выбирали режим прогнозирования, которому соответствует минимальная величина целевой функции, в качестве оптимального режима прогнозирования.
<mrow><mtext>Cost</mtext><mrow><mo>(</mo><mrow><mtext>Mode</mtext></mrow><mo>)</mo></mrow><mo>=</mo><mi>D</mi><mo>+</mo><mi>λ</mi><mo>⋅</mo><mi>R</mi><mtext> </mtext><mo>…</mo><mrow><mo>(</mo><mrow><mn>34</mn></mrow><mo>)</mo></mrow></mrow>
Здесь D обозначает разность (искажения) между исходным изображением и декодированным изображением, R обозначает объем сформированного кода, включающего коэффициент ортогонального преобразования, и λ обозначает множитель Лагранжа, определяемый в функции параметра QP квантования.
С другой стороны, в варианте Низкой сложности генерируют прогнозируемое изображение и вычисляют для добавления к заголовку биты информации векторов движения, информации режима прогнозирования, информации флага и т.п. для всех режимов прогнозирования, служащих кандидатами, как при обработке данных на этапе S41. Для всех режимов прогнозирования вычисляют величину целевой функции в соответствии с приведенным ниже Выражением (35) и выбирают режим прогнозирования, которому соответствует минимальная величина целевой функции, в качестве оптимального режима прогнозирования.
<mrow><mtext>Cost</mtext><mrow><mo>(</mo><mrow><mtext>Mode</mtext></mrow><mo>)</mo></mrow><mo>=</mo><mi>D</mi><mo>+</mo><mi>Q</mi><mi>P</mi><mi>t</mi><mi>o</mi><mi>Q</mi><mi>u</mi><mi>a</mi><mi>n</mi><mi>t</mi><mrow><mo>(</mo><mrow><mi>Q</mi><mi>P</mi></mrow><mo>)</mo></mrow><mo>⋅</mo><mi>H</mi><mi>e</mi><mi>a</mi><mi>d</mi><mi>e</mi><mi>r</mi><mo>_</mo><mi>B</mi><mi>i</mi><mi>t</mi><mtext> </mtext><mo>…</mo><mrow><mo>(</mo><mrow><mn>35</mn></mrow><mo>)</mo></mrow></mrow>
Здесь D обозначает разность (искажения) между исходным изображением и декодированным изображением, Header_Bit обозначает биты заголовка в режиме прогнозирования и QPtoQuant обозначает функцию параметра QP квантования.
В варианте Низкой сложности генерируют только прогнозируемые изображения во всех режимах прогнозирования, и при этом нет необходимости выполнять обработку кодирования данных и обработку декодирования данных и, соответственно, можно уменьшить объем вычислений.
На этапе S43 модуль 82 определения оптимального режима определяет оптимальный режим из совокупности режимов внутрикадрового прогнозирования для блоков размером 4×4 пиксела, 8×8 пикселов и 16×16 пикселов. В частности, как описано выше, для режима 4×4 внутрикадрового прогнозирования и режима 8×8 внутрикадрового прогнозирования число различных видов прогнозирования равно девяти, а для режима 16×16 внутрикадрового прогнозирования, число различных видов прогнозирования равно четырем. Соответственно, модуль 82 определения оптимального режима определяет на основе величин целевой функции, вычисленных на этапе S42, оптимальный режим 4×4 внутрикадрового прогнозирования, оптимальный режим 8×8 внутрикадрового прогнозирования и оптимальный режим 16×16 внутрикадрового прогнозирования из этой совокупности видов прогнозирования, is four.
На этапе S44 модуль 82 определения оптимального режима выбирает оптимальный режим внутрикадрового прогнозирования из совокупности оптимальных режимов внутрикадрового прогнозирования для блоков 4×4 пиксела, 8×8 пикселов и 16×16 пикселов на основе величин целевой функции, вычисленных на этапе S42. В частности, модуль 82 определения оптимального режима выбирает из оптимальных режимов, найденных для размеров блока 4×4 пиксела, 8×8 пикселов и 16×16 пикселов, режим, которому соответствует минимальная величина целевой функции, в качестве оптимального режима внутрикадрового прогнозирования.
Информацию найденного режима прогнозирования передают в модуль 91 определения режима, модуль 83 определения оптимальной величины сдвига и модуль 84 генерации прогнозируемого изображения. Кроме того, в модуль 84 генерации прогнозируемого изображения передают величину целевой функции, соответствующую рассматриваемому режиму прогнозирования.
На этапе S45, модуль 75 интерполяции соседнего пиксела и модуль 83 определения оптимальной величины сдвига осуществляют интерполяцию соседнего пиксела. Подробности такой обработки данных для интерполяции соседнего пиксела на этапе S45 будут описаны позднее со ссылками на фиг.21, но в ходе такой обработки определяют оптимальную величину сдвига в направлении сдвига в соответствии с найденным оптимальным режимом внутрикадрового прогнозирования. Информацию относительно найденной оптимальной величины сдвига передают в модуль 84 генерации прогнозируемого изображения.
На этапе S46 модуль 84 генерации прогнозируемого изображения формирует прогнозируемое изображение с использованием соседнего пиксела, фаза которого сдвинута на оптимальную величину сдвига.
В частности, модуль 84 генерации прогнозируемого изображения считывает соседний пиксел, соответствующий текущему блоку, подлежащему внутрикадровому прогнозированию, из буфера 81 соседнего изображения. Затем модуль 84 генерации прогнозируемого изображения сдвигают фазу считываемого соседнего пиксела в направлении фазы согласно выбранному режиму прогнозирования на оптимальную величину сдвига посредством имеющего 6 отводов КИХ-фильтра (FIR) и линейной интерполяции. Этот модуль 84 генерации прогнозируемого изображения осуществляет внутрикадровое прогнозирование в режиме прогнозирования, найденном посредством модуля 82 определения оптимального режима, с использованием сдвинутой фазы для генерации прогнозируемого изображения текущего блока и передает сформированное прогнозируемое изображение и соответствующую величину целевой функции в модуль 77 выбора прогнозируемого изображения.
Отметим, что если оптимальная величина сдвига равна 0, используют величину соседнего пиксела из буфера 81 соседнего изображения.
Когда модуль 77 выбора прогнозируемого изображения выбрал прогнозируемое изображение, сформированное в оптимальном режиме внутрикадрового прогнозирования, информацию индикации оптимального режима внутрикадрового прогнозирования и информацию о величине сдвига передают в модуль 66 кодирования без потерь от модуля 84 генерации прогнозируемого изображения. Эти данные кодируют в модуле 66 кодирования без потерь и добавляют к информации заголовка сжатого изображения (указанный выше этап S23, показанный на фиг.7).
Отметим, что для кодирования информации о величине сдвига осуществляют кодирование разности между найденной величиной сдвига для текущего блока и величиной сдвига для блока, реализующего наиболее вероятный режим (MostProbableMode) и описанного выше со ссылками на фиг.13.
Однако если, например, наиболее вероятный режим (MostProbableMode) представляет собой Режим 2 (DC-прогнозирование), а для текущего блока использован режим 0 прогнозирования (Вертикальное прогнозирование), в блоке, реализующем наиболее вероятный режим (MostProbableMode), нет сдвига в горизонтальном направлении. Кроме того, даже если этот блок представляет собой внутренний макроблок в межкадровом срезе, в блоке, реализующем наиболее вероятный режим (MostProbableMode), нет сдвига в горизонтальном направлении.
В этом случае обработка данных для кодирования разности будет выполнена в предположении, что величина сдвига в горизонтальном направлении в блоке, реализующем наиболее вероятный режим (MostProbableMode), равна 0.
Описание обработки данных при интерполяции соседнего пиксела
Далее, обработка данных при интерполяции соседнего пиксела на этапе S45, показанном на фиг.20, будет описана со ссылками на логическую схему, представленную на фиг.21. В примере, показанном на фиг.21, описание дано для случая, когда текущий блок имеет размер 4×4 пиксела.
Информацию о режиме прогнозирования, найденном посредством модуля 82 определения оптимального режима, передают в модуль 91 определения режима. На этапе S51 модуль 91 определения режима определяет, является ли оптимальный режим внутрикадрового прогнозирования DC-режимом. Если на этапе S51 определено, что оптимальный режим внутрикадрового прогнозирования не является DC-режимом, процесс обработки данных переходит к этапу S52.
На этапе S52 модуль 91 определения режима определяет, является ли оптимальный режим внутрикадрового прогнозирования режимом Вертикального прогнозирования, режимом прогнозирования вниз-влево по диагонали или режимом прогнозирования по вертикали и влево.
Если на этапе S52 определено, что оптимальный режим внутрикадрового прогнозирования представляет собой режим Вертикального прогнозирования, режим прогнозирования вниз-влево по диагонали или режим прогнозирования по вертикали и влево, процесс обработки данных переходит к этапу S53.
На этапе S53 модуль 91 определения режима передает сигнал управления модулю 92 интерполяции в горизонтальном направлении для осуществления интерполяции в горизонтальном направлении. В частности, в ответ на сигнал управления от модуля 91 определения режима модуль 92 интерполяции в горизонтальном направлении считывает верхний соседний пиксел из буфера 81 соседнего изображения и сдвигает фазу этого верхнего соседнего пиксела в горизонтальном направлении посредством имеющего 6 отводов КИХ-фильтра (FIR) и линейной интерполяции. Этот модуль 92 интерполяции в горизонтальном направлении передает информацию интерполированного верхнего соседнего пиксела в модуль 83 определения оптимальной величины сдвига.
На этапе S54 модуль 83 определения оптимальной величины сдвига определяет оптимальную величину сдвига верхнего соседнего пиксела в пределах от -0.75 до +0.75 для режима прогнозирования, найденного модулем 82 определения оптимального режима. Отметим, что при таком определении используют изображение текущего блока, подлежащего внутрикадровому прогнозированию, информацию верхнего соседнего пиксела, считываемого из буфера 81 соседнего изображения, и интерполированный верхний соседний пиксел. Кроме того, в этот момент оптимальную величину сдвига для левых соседних пикселов, устанавливают равной 0. Информацию найденной оптимальной величины сдвига передают в модуль 84 генерации прогнозируемого изображения.
Если на этапе S52 определено, что оптимальный режим внутрикадрового прогнозирования не является ни режимом Вертикального прогнозирования, ни режимом прогнозирования вниз-влево по диагонали ни режимом прогнозирования по вертикали и влево, процесс обработки данных переходит к этапу S55.
На этапе S55 модуль 91 определения режима определяет, является ли оптимальный режим внутрикадрового прогнозирования режимом горизонтального прогнозирования или режимом прогнозирования по горизонтали и вверх. Если на этапе S55 определено, что оптимальный режим внутрикадрового прогнозирования является режимом горизонтального прогнозирования или режимом прогнозирования по горизонтали и вверх, процесс обработки данных переходит к этапу S56.
На этапе S56 модуль 91 определения режима передает модулю 93 интерполяции в вертикальном направлении сигнал управления для осуществления интерполяции в вертикальном направлении. В частности, в ответ на сигнал управления от модуля 91 определения режима модуль 93 интерполяции в вертикальном направлении считывает левый соседний пиксел из буфера 81 соседнего изображения и сдвигает фазу этого левого соседнего пиксела в вертикальном направлении посредством имеющего 6 отводов КИХ-фильтра (FIR) и линейной интерполяции. Этот модуль 93 интерполяции в вертикальном направлении передает информацию интерполированного левого соседнего пиксела в модуль 83 определения оптимальной величины сдвига.
На этапе S57 модуль 83 определения оптимальной величины сдвига определяет оптимальную величину сдвига левого соседнего пиксела в пределах от -0.75 до+0.75 для режима прогнозирования, найденного модулем 82 определения оптимального режима. Отметим, что при таком определении используют изображение текущего блока, подлежащего внутрикадровому прогнозированию, информацию левого соседнего пиксела, считываемого из буфера 81 соседнего изображения, и интерполированный левый соседний пиксел. Кроме того, в этот момент оптимальную величину сдвига для верхних соседних пикселов, устанавливают равной 0. Информацию найденной оптимальной величины сдвига передают в модуль 84 генерации прогнозируемого изображения.
Если на этапе S55 определено, что оптимальный режим внутрикадрового прогнозирования не является режимом горизонтального прогнозирования или режимом прогнозирования по горизонтали и вверх, процесс обработки данных переходит к этапу S58.
На этапе S58 модуль 91 определения режима передает модулю 92 интерполяции в горизонтальном направлении сигнал управления для осуществления интерполяции в горизонтальном направлении и передает модулю 93 интерполяции в вертикальном направлении сигнал управления для осуществления интерполяции в вертикальном направлении.
В частности, в ответ на сигнал управления от модуля 91 определения режима указанный модуль 92 интерполяции в горизонтальном направлении считывает верхний соседний пиксел из буфера 81 соседнего изображения и сдвигает фазу этого верхнего соседнего пиксела в горизонтальном направлении посредством имеющего 6 отводов КИХ-фильтра (FIR) и линейной интерполяции. Этот модуль 92 интерполяции в горизонтальном направлении передает информацию интерполированного верхнего соседнего пиксела в модуль 83 определения оптимальной величины сдвига.
Кроме того, в ответ на сигнал управления от модуля 91 определения режима указанный модуля 93 интерполяции в вертикальном направлении считывает левый соседний пиксел из буфера 81 соседнего изображения и сдвигает фазу этого левого соседнего пиксела в вертикальном направлении посредством имеющего 6 отводов КИХ-фильтра (FIR) и линейной интерполяции. Этот модуль 93 интерполяции в вертикальном направлении передает информацию интерполированного левого соседнего пиксела в модуль 83 определения оптимальной величины сдвига.
На этапе S59 модуль 83 определения оптимальной величины сдвига определяет оптимальные величины сдвига верхнего и левого соседних пикселов в пределах от -0.75 до +0.75 для режима прогнозирования, найденного модулем 82 определения оптимального режима. При таком определении используют изображение текущего блока, подлежащего внутрикадровому прогнозированию, информацию верхнего и левого соседних пикселов, считываемых из буфера 81 соседнего изображения, и интерполированные верхний и левый соседние пикселы. Информацию найденной оптимальной величины сдвига передают в модуль 84 генерации прогнозируемого изображения.
С другой стороны, если на этапе S51 определено, что оптимальным режимом внутрикадрового прогнозирования является DC-режим, процесс интерполяции соседних пикселов завершается. В частности, ни модуль 92 интерполяции в горизонтальном направлении, ни модуль 93 интерполяции в вертикальном направлении не работают, а модуль 83 определения оптимальной величины сдвига принимает нулевое значение оптимальной величины сдвига.
Описание обработки данных при межкадровом прогнозировании движения
Далее, обработка данных при межкадровом прогнозировании движения на этапе S32, показанном на фиг.8, будет описана со ссылками на логическую схему, изображенную на фиг.22.
На этапе S61 модуль 76 прогнозирования/компенсации движения определяет вектор движения и опорное изображение для каждого из восьми видов режимов межкадрового прогнозирования для блоков размером от 16×16 пикселов до 4×4 пиксела. Иными словами вектор движения и опорное изображение определяют для подлежащего обработке блока в каждом из режимов межкадрового прогнозирования.
На этапе S62 модуль 76 прогнозирования/компенсации движения выполняет обработку данных для прогнозирования и компенсации движения применительно к опорному изображению на основе вектора движения, найденного на этапе S61 в каждом из восьми видов режимов межкадрового прогнозирования для блоков размером от 16×16 пикселов до 4×4 пикселов. В результате такой обработки данных для прогнозирования и компенсации движения генерируют прогнозируемое изображение для каждого из режимов межкадрового прогнозирования.
На этапе S63 модуль 76 прогнозирования/компенсации движения генерирует информацию вектора движения для добавления к сжатому изображению для каждого из восьми видов режимов межкадрового прогнозирования для блоков размером от 16×16 пикселов до 4×4 пикселов. В этот момент, используется способ генерации вектора движения, описанный выше со ссылками на фиг.5.
Сформированную информацию вектора движения используют также в момент вычисления величины целевой функции на следующем этапе S64 и, если соответствующее прогнозируемое изображение будет в конечном итоге выбрано модулем 77 выбора прогнозируемого изображения, передают это прогнозируемое изображение в модуль 66 кодирования без потерь вместе с информацией прогнозируемого режима и информацией опорного кадра.
На этапе S64 модуль 76 прогнозирования/компенсации движения вычисляет величину целевой функции в соответствии с указанными выше Выражением (34) или Выражением (35) для каждого из восьми видов режимов межкадрового прогнозирования для блоков размером от 16×16 пикселов до 4×4 пикселов. Вычисленные здесь величины целевой функции используют при определении оптимального режима внутрикадрового прогнозирования на этапе S34, показанном на фиг.8, описанном выше.
Отметим, что общие принципы работы согласно настоящему изобретению не ограничиваются операциями, описанными выше со ссылками на фиг.18, фиг.20 и фиг.21.
Например, возможен вариант, когда для всех режимов внутрикадрового прогнозирования вычисляют все величины сдвига, служащие кандидатами, затем вычисляют остаточную погрешность и определяют оптимальный режим внутрикадрового прогнозирования и оптимальную величину сдвига. Пример конфигурации модуля внутрикадрового прогнозирования и модуля интерполяции соседнего пиксела для выполнения таких операций будет показан на фиг.23.
Другой пример конфигурации модуля внутрикадрового прогнозирования и модуля интерполяции соседнего пиксела
Фиг.23 представляет блок-схему, иллюстрирующую другой пример конфигурации модуля внутрикадрового прогнозирования и модуля интерполяции соседнего пиксела.
В примере, показанном на фиг.23, модуль 74 внутрикадрового прогнозирования конфигурирован в составе буфера 101 соседнего изображения, модуля 102 определения оптимального режима/оптимальной величины сдвига и модуля 103 генерации прогнозируемого изображения.
Модуль 75 интерполяции соседнего пиксела конфигурирован в составе модуля 111 интерполяции в горизонтальном направлении и модуля 112 интерполяции в вертикальном направлении.
Буфер 101 соседнего изображения накапливает соседний пиксел текущего блока, подлежащего внутрикадровому прогнозированию, из памяти кадров 72. На чертеже фиг.23 переключатель 73 отсутствует, но на самом деле соседний пиксел поступает из памяти 72 кадров в буфер 101 соседнего изображения через переключатель 73.
Пикселы текущего блока, подлежащего внутрикадровому прогнозированию, поступают из буфера 62 сортировки экрана в модуль 102 определения оптимального режима/оптимальной величины сдвига. Этот модуль 102 определения оптимального режима/оптимальной величины сдвига считывает соседний пиксел, соответствующий текущему блоку, подлежащему внутрикадровому кодированию, из буфера 101 соседнего изображения.
Модуль 102 определения оптимального режима/оптимальной величины сдвига передает информацию режима внутрикадрового прогнозирования, служащего кандидатом (далее именуемый режим-кандидат), в модуль 111 интерполяции в горизонтальном направлении и модуль 112 интерполяции в вертикальном направлении. Информацию соседнего пиксела, интерполированного согласно режиму-кандидату, передают на вход модуля 102 определения оптимального режима/оптимальной величины сдвига от модуля 111 интерполяции в горизонтальном направлении и модуля 112 интерполяции в вертикальном направлении.
Модуль 102 определения оптимального режима/оптимальной величины сдвига выполняет внутрикадровое прогнозирование для всех режимов-кандидатов и для всех кандидатов величин сдвига с использованием пикселов текущего блока, подлежащего внутрикадровому прогнозированию, соответствующего соседнего пиксела и величины интерполированного соседнего пиксела для генерации прогнозируемого изображения. Затем этот модуль 102 определения оптимального режима/оптимальной величины сдвига вычисляет величину целевой функции, погрешность прогнозирования и т.п. для определения оптимального режима внутрикадрового прогнозирования и оптимальной величины сдвига из совокупности всех режимов-кандидатов и всех кандидатов величин сдвига. Информацию о найденных режиме прогнозирования и величине сдвига передают в модуль 103 генерации прогнозируемого изображения. Отметим, что в этот момент величину целевой функции в выбранном режиме прогнозирования также передают в модуль 103 генерации прогнозируемого изображения.
Этот модуль 103 генерации прогнозируемого изображения считывает соседний пиксел, соответствующий текущему блоку, подлежащему внутрикадровому прогнозированию, из буфера 101 соседнего изображения и сдвигает фазу этого считываемого соседнего пиксела в направлении фазы согласно режиму прогнозирования посредством имеющего 6-отводов КИХ-фильтра (FIR) и линейной интерполяции на оптимальную величину сдвига.
Модуль 103 генерации прогнозируемого изображения выполняет внутрикадровое прогнозирование в оптимальном режиме внутрикадрового прогнозирования, найденном посредством модуля 102 определения оптимального режима/оптимальной величины сдвига, с использованием соседнего пиксела, фаза которого была сдвинута, для генерации прогнозируемого изображения текущего блока. Этот модуль 103 генерации прогнозируемого изображения передает сформированное прогнозируемое изображения и соответствующую величину целевой функции в модуль 77 выбора прогнозируемого изображения.
Кроме того, когда модуль 77 выбора прогнозируемого изображения выбрал прогнозируемое изображение, сформированное в оптимальном режиме внутрикадрового прогнозирования, модуль 103 генерации прогнозируемого изображения передает информацию индикации оптимального режима внутрикадрового прогнозирования и информацию о величине сдвига в модуль 66 кодирования без потерь.
Каждый из модулей - модуль 111 интерполяции в горизонтальном направлении и модуль 112 интерполяции в вертикальном направлении - считывает соседний пиксел из буфера 101 соседнего изображения в соответствии с режимом-кандидатом из модуля 102 определения оптимального режима/оптимальной величины сдвига. Эти модуль 111 интерполяции в горизонтальном направлении и модуль 112 интерполяции в вертикальном направлении сдвигают фазу считываемого соседнего пиксела в горизонтальном направлении и в вертикальном направлении, соответственно, посредством имеющего 6-отводов КИХ-фильтра (FIR) и линейной интерполяции.
Описание другого варианта обработки данных при внутрикадровом прогнозировании
Далее, обработка данных для внутрикадрового прогнозирования, выполняемая модулем 74 внутрикадрового прогнозирования и модулем 75 интерполяции соседнего пиксела, показанными на фиг.23, будет описана со ссылками на логическую схему, представленную на фиг.24. Отметим, что этот способ обработки данных при внутрикадровом прогнозировании представляет собой другой пример обработки данных при внутрикадровом прогнозировании на этапе S31, показанном на фиг.8.
Этот модуль 102 определения оптимального режима/оптимальной величины сдвига передает информацию о режимах-кандидатах внутрикадрового прогнозирования в модуль 111 интерполяции в горизонтальном направлении и модуль 112 интерполяции в вертикальном направлении.
На этапе S101 модуль 111 интерполяции в горизонтальном направлении и модуль 112 интерполяции в вертикальном направлении выполняют интерполяцию соседнего пиксела для всех режимов-кандидатов внутрикадрового прогнозирования. В частности, на этапе S101 выполняют обработку данных для интерполяции соседнего пиксела в каждом из режимов внутрикадрового прогнозирования для блоков размером 4×4 пикселов, 8×8 пикселов и 16×16 пикселов.
Подробнее обработка данных при интерполяции соседнего пиксела на этапе S101 будет описана позднее со ссылками на фиг.25, но согласно такой обработке информацию соседнего пиксела, интерполированного в направлении сдвига в соответствии с каждым из режимов внутрикадрового прогнозирования, передают в модуль 102 определения оптимального режима/оптимальной величины сдвига.
На этапе S102 модуль 102 определения оптимального режима/оптимальной величины сдвига осуществляет внутрикадровое прогнозирования в различных режимах внутрикадрового прогнозирования для блоков размером 4×4 пикселов, 8×8 пикселов и 16×16 пикселов при соответствующих величинах сдвига.
В частности, модуль 102 определения оптимального режима/оптимальной величины сдвига выполняет внутрикадровое прогнозирование во всех режимах внутрикадрового прогнозирования и при всех кандидатах величинах сдвига с использованием пикселов текущего блока, подлежащего внутрикадровому прогнозированию, соответствующего соседнего пиксела и величины интерполированного соседнего пиксела. В результате генерируют прогнозируемое изображение во всех режимах внутрикадрового прогнозирования и для всех кандидатов величин сдвига.
На этапе S103 модуль 102 определения оптимального режима/оптимальной величины сдвига вычисляет величину целевой функции в соответствии с указанными выше Выражением (34) или Выражением (35) для каждого из режимов внутрикадрового прогнозирования с размером блоков 4×4 пикселов, 8х8 пикселов и 16×16 пикселов, генерируя при этом прогнозируемое изображение, и каждую величину сдвига.
На этапе S104 модуль 102 определения оптимального режима/оптимальной величины сдвига сравнивает вычисленные величины целевой функции с целью определения оптимального режима и оптимальной величины сдвига в каждом из режимов внутрикадрового прогнозирования с размером блоков 4×4 пикселов, 8×8 пикселов и 16×16 пикселов.
На этапе S105 модуль 102 определения оптимального режима/оптимальной величины сдвига выбирает оптимальный режим внутрикадрового прогнозирования и оптимальную величину сдвига из совокупности оптимальных режимов и оптимальных величин сдвига, найденных на этапе S104, на основе величин целевой функции, вычисленных на этапе S103. В частности, оптимальный режим внутрикадрового прогнозирования и оптимальную величину сдвига выбирают из совокупности оптимальных режимов и оптимальных величин сдвига, найденных для режимов внутрикадрового прогнозирования с размером блоков 4×4 пикселов, 8×8 пикселов и 16×16 пикселов. Информацию о выбранных режиме прогнозирования и величине сдвига передают в модуль 103 генерации прогнозируемого изображения вместе с соответствующей величиной целевой функции.
На этапе S106 модуль 103 генерации прогнозируемого изображения формирует прогнозируемое изображение с использованием соседнего пиксела, фаза которого сдвинута на оптимальную величину сдвига.
В частности, модуль 103 генерации прогнозируемого изображения считывает соседний пиксел, соответствующий текущему блоку, подлежащему внутрикадровому прогнозированию, из буфера 101 соседнего изображения. Модуль 103 генерации прогнозируемого изображения затем сдвигает фазу этого считываемого соседнего пиксела в направлении фазы согласно найденному режиму прогнозирования на оптимальную величину сдвига посредством имеющего 6-отводов КИХ-фильтра (FIR) и линейной интерполяции.
Модуль 103 генерации прогнозируемого изображения осуществляет внутрикадровое прогнозирование в режиме прогнозирования, найденном посредством модуля 102 определения оптимального режима/оптимальной величины сдвига, с использованием соседнего пиксела, фаза которого была сдвинута, для генерации прогнозируемого изображения текущего блока. Сформированное прогнозируемое изображение передают в модуль 77 выбора прогнозируемого изображения вместе с соответствующей величиной целевой функции.
Описание обработки данных при интерполяции соседнего пиксела
Далее, обработка данных при интерполяции соседнего пиксела на этапе S101, показанном на фиг.24, будет описана со ссылками на логическую схему, показанную на фиг.25. Отметим, что эта обработка данных при интерполяции соседнего пиксела представляет собой обработку данных, которую следует выполнять для каждого режима-кандидата внутрикадрового прогнозирования. Кроме того, на этапах с Sill no S116, показанных на фиг.25, выполняют такую же обработку данных, как и на этапах с S51 по S53, S55, S56 и S58, показанных на фиг.21, вследствие чего подробное описание этой обработки данных будет по мере возможности опущено.
Информация режима-кандидата внутрикадрового прогнозирования от модуля 102 определения оптимального режима/оптимальной величины сдвига поступает в модуль 111 интерполяции в горизонтальном направлении и модуль 112 интерполяции в вертикальном направлении. На этапе S111 модуль 111 интерполяции в горизонтальном направлении и модуль 112 интерполяции в вертикальном направлении определяют, является ли режим-кандидат внутрикадрового прогнозирования DC-режимом. Если на этапе S111 определено, что режим-кандидат внутрикадрового прогнозирования не является DC-режимом, процесс обработки данных переходит к этапу S112.
На этапе S112 модуль 111 интерполяции в горизонтальном направлении и модуль 112 интерполяции в вертикальном направлении определяют, является ли оптимальный режим внутрикадрового прогнозирования режимом Вертикального прогнозирования, режимом прогнозирования вниз-влево по диагонали или режимом прогнозирования по вертикали и влево.
Если на этапе S112 определено, что оптимальный режим внутрикадрового прогнозирования представляет собой режим Вертикального прогнозирования, режим прогнозирования вниз-влево по диагонали или режим прогнозирования по вертикали и влево, процесс обработки данных переходит к этапу S113.
На этапе S113 модуль 111 интерполяции в горизонтальном направлении выполняет интерполяцию в горизонтальном направлении в соответствии с режимом-кандидатом внутрикадрового прогнозирования. Этот модуль 111 интерполяции в горизонтальном направлении передает информацию интерполированного верхнего соседнего пиксела в модуль 102 определения оптимального режима/оптимальной величины сдвига. В этот момент модуль 112 интерполяции в вертикальном направлении не выполняет интерполяционную обработку данных в вертикальном направлении.
Если на этапе S112 определено, что режим-кандидат внутрикадрового прогнозирования представляет собой режим Вертикального прогнозирования, режим прогнозирования вниз-влево по диагонали или режим прогнозирования по вертикали и влево, процесс обработки данных переходит к этапу S114.
На этапе S114 модуль 111 интерполяции в горизонтальном направлении и модуль 112 интерполяции в вертикальном направлении определяют, является ли оптимальный режим внутрикадрового прогнозирования режимом горизонтального прогнозирования или режимом прогнозирования по горизонтали и вверх. Если на этапе S114 определено, что режим-кандидат внутрикадрового прогнозирования является режимом горизонтального прогнозирования или режимом прогнозирования по горизонтали и вверх, процесс обработки данных переходит к этапу S115.
На этапе S115 модуль 112 интерполяции в вертикальном направлении выполняет интерполяцию в вертикальном направлении в соответствии с режимом-кандидатом внутрикадрового прогнозирования. Этот модуль 112 интерполяции в вертикальном направлении передает информацию интерполированного левого соседнего пиксела в модуль 102 определения оптимального режима/оптимальной величины сдвига. В этот момент модуль 111 интерполяции в горизонтальном направлении не выполняет интерполяционную обработку данных в горизонтальном направлении.
Если на этапе S114 определено, что режим-кандидат внутрикадрового прогнозирования не является режимом горизонтального прогнозирования или режимом прогнозирования по горизонтали и вверх, процесс обработки данных переходит к этапу S116.
На этапе S116 модуль 111 интерполяции в горизонтальном направлении и модуль 112 интерполяции в вертикальном направлении выполняют интерполяцию в горизонтальном направлении и интерполяцию в вертикальном направлении, соответственно, согласно рассматриваемому режиму-кандидату внутрикадрового прогнозирования. Эти модуль 111 интерполяции в горизонтальном направлении и модуль 112 интерполяции в вертикальном направлении передают информацию об интерполированных верхнем соседнем пикселе и левом соседнем пикселе в модуль 102 определения оптимального режима/оптимальной величины сдвига, соответственно.
Кодированное сжатое изображение передают по заданному тракту передачи и декодируют в устройстве для декодирования изображения.
Пример конфигурации устройства для декодирования изображения
На фиг.26 представлена конфигурации варианта устройства для декодирования изображения, служащего устройством для обработки изображения, в котором применено настоящее изображение.
Устройство 151 для декодирования изображения конфигурировано в составе накопительного буфера 161, модуля 162 декодирования без потерь, модуля 163 обратного квантования, модуля 164 обратного ортогонального преобразования, вычислительного модуля 165, деблокирующего фильтра 166, буфера 167 сортировки экрана, модуля 168 цифро-аналогового преобразователя, памяти 169 кадров, переключателя 170, модуля 171 внутрикадрового прогнозирования, модуля 172 интерполяции соседнего пиксела, модуля 173 прогнозирования/компенсации движения и переключателя 174.
Накопительный буфер 161 накапливает переданное сжатое изображение. Модуль 162 декодирования без потерь декодирует информацию, поступающую из накопительного буфера 161 и кодированную в модуле 66 кодирования без потерь, показанном на фиг.2, с использованием системы, соответствующей системе кодирования, примененной в модуле 66 кодирования без потерь. Модуль 163 обратного квантования выполняет обратное квантование изображения, декодированного в модуле 162 декодирования без потерь, с использованием системы, соответствующей системе квантования, примененной в модуле 65 квантования, показанном на фиг.2. Модуль 164 обратного ортогонального преобразования осуществляет обратное ортогональное преобразование выходных данных модуля 163 обратного квантования с использованием системы, соответствующей системе ортогонального преобразования, примененной в модуле 64 ортогонального преобразования, показанном на фиг.2.
Выходные данные после обратного ортогонального преобразования декодируют путем суммирования с прогнозируемым изображением, поступающим от переключателя 174, в вычислительном модуле 165. Деблокирующий фильтр 166 устраняет блочные искажения в декодированном изображении и передает результат в память 169 кадров для накопления, а также в буфер 167 сортировки экрана.
Буфер 167 сортировки экрана осуществляет сортировку изображений. В частности, последовательность кадров, отсортированную в виде последовательности кодирования в буфере 62 сортировки экрана, показанном на фиг.2, подвергают обратной сортировке для получения первоначальной последовательности представления на дисплее. Модуль цифроаналогового преобразователя 168 осуществляет преобразование изображения, поступающего из буфера 167 сортировки экрана, из цифровой формы в аналоговую форму и передает не показанному на схеме дисплею для представления на экране.
Переключатель 170 считывает изображение, подлежащее межкадровой обработке, и изображение, которое должно служить опорным изображением, из памяти 169 кадров и передает их в модуль 173 прогнозирования/компенсации движения, а также считывает из памяти 169 кадров изображение для использования при внутрикадровом прогнозировании и передает его в модуль 171 внутрикадрового прогнозирования.
Информацию индикации режима внутрикадрового прогнозирования, полученную в результате декодирования информации заголовка, и информацию о величине сдвига соседнего пиксела передают из модуля 162 декодирования без потерь в модуль 171 внутрикадрового прогнозирования. Этот модуль 171 внутрикадрового прогнозирования передает также эту информацию в модуль 172 интерполяции соседнего пиксела.
Модуль 171 внутрикадрового прогнозирования на основе этой информации передает по мере необходимости модулю 172 интерполяции соседнего пиксела команду, в ответ на которую этот модуль 172 сдвигает фазу соседнего пиксела, генерирует прогнозируемое изображение с использованием пиксела, соседствующего с указанным соседним пикселом со сдвинутой фазой, и передает сформированное прогнозируемое изображение переключателю 174.
Этот модуль 172 интерполяции соседнего пиксела сдвигает фазу соседнего пиксела в направлении сдвига согласно указанию режима внутрикадрового прогнозирования, поступившему от модуля 171 внутрикадрового прогнозирования, на величину сдвига, переданную от модуля 171 внутрикадрового прогнозирования. На деле модуль 172 интерполяции соседнего пиксела выполняет линейную интерполяцию посредством применения имеющего 6 отводов КИХ-фильтра (FIR) к соседнему пикселу в направлении сдвига согласно режиму внутрикадрового прогнозирования, сдвигая фазу соседнего пиксела с точностью до долей пиксела. Этот модуль 172 интерполяции соседнего пиксела передает соседний пиксел со сдвинутой фазой в модуль 171 внутрикадрового прогнозирования.
Информацию, полученную в результате декодирования информации заголовка, (информацию режима прогнозирования, информацию вектора движения и информацию опорного кадра) передают от модуля 162 декодирования без потерь в модуль 173 прогнозирования/компенсации движения. В случае получения информации индикации режима межкадрового прогнозирования модуль 173 прогнозирования/компенсации движения осуществляет обработку данных изображения с целью прогнозирования и компенсации движения на основе информации вектора движения и информации опорного кадра для генерации прогнозируемого изображения. Этот модуль 173 определения точности вектора движения передает прогнозируемое изображение, генерируемое в режиме межкадрового прогнозирования, переключателю 174.
Переключатель 174 выбирает прогнозируемое изображение, генерируемое модулем 173 прогнозирования/компенсации движения или модулем 171 внутрикадрового прогнозирования, и передает вычислительному модулю 165.
Пример конфигурации модуля внутрикадрового прогнозирования и модуля интерполяции соседнего пиксела.
Фиг.27 представляет блок-схему, иллюстрирующую подробный пример конфигурации модуля внутрикадрового прогнозирования и модуля интерполяции соседнего пиксела.
В примере, показанном на фиг.27, модуль 171 внутрикадрового прогнозирования конфигурирован в составе модуля 181 приема указания режима прогнозирования, модуля 182 приема величины сдвига и модуля 183 генерации прогнозируемого изображения при внутрикадровом прогнозировании. Модуль 172 интерполяции соседнего пиксела конфигурирован в составе модуля 191 интерполяции в горизонтальном направлении и модуля 192 интерполяции в вертикальном направлении.
Модуль 181 приема указания режима прогнозирования принимает информацию режима внутрикадрового прогнозирования, декодированную модулем 162 декодирования без потерь. Этот модуль 181 приема указания режима прогнозирования передает принятую информацию режима внутрикадрового прогнозирования в модуль 183 генерации прогнозируемого изображения при внутрикадровом прогнозировании, модуль 191 интерполяции в горизонтальном направлении и модуль 192 интерполяции в вертикальном направлении.
Модуль 182 приема величины сдвига принимает информацию о величинах сдвига (в горизонтальном направлении и в вертикальном направлении), декодированную модулем 162 декодирования без потерь. Этот модуль 182 приема величины сдвига из принятых им величин сдвига передает величину сдвига в горизонтальном направлении в модуль 191 интерполяции в горизонтальном направлении и передает величину сдвига в вертикальном направлении в модуль 192 интерполяции в вертикальном направлении.
Информацию режима внутрикадрового прогнозирования, принятую модулем 181 приема указания режима прогнозирования, передают на вход модуля 183 генерации прогнозируемого изображения при внутрикадровом прогнозировании. Кроме того, информацию верхнего соседнего пиксела или интерполированного верхнего соседнего пиксела от модуля 191 интерполяции в горизонтальном направлении и информацию левого соседнего пиксела или интерполированного левого соседнего пиксела от модуля 192 интерполяции в вертикальном направлении также передают на вход модуля 183 генерации прогнозируемого изображения при внутрикадровом прогнозировании.
Модуль 183 генерации прогнозируемого изображения при внутрикадровом прогнозировании осуществляет внутрикадровое прогнозирование в режиме прогнозирования, указываемом поступившей информацией режима внутрикадрового прогнозирования, с использованием величины соседнего пиксела или интерполированного соседнего пиксела для генерации прогнозируемого изображения и передачи сформированного прогнозируемого изображения переключателю 174.
Модуль 191 интерполяции в горизонтальном направлении считывает верхний соседний пиксел из памяти 169 кадров в соответствии с индикацией режима прогнозирования, поступившей от модуля 181 приема указания режима прогнозирования. Этот модуль 191 интерполяции в горизонтальном направлении сдвигает фазу считываемого им верхнего соседнего пиксела на величину сдвига в горизонтальном направлении, поступившую от модуля 182 приема величины сдвига, посредством имеющего 6 отводов КИХ-фильтра (FIR) и линейной интерполяции. Информацию интерполированного верхнего соседнего пиксела или неинтерполированного верхнего соседнего пиксела (т.е. соседнего пиксела из памяти 169 кадров) передают в модуль 183 генерации прогнозируемого изображения при внутрикадровом прогнозировании. В случае, показанном на фиг.27, изображение переключателя 170 опущено, но соседний пиксел считывают из памяти кадров 169 через переключатель 170.
Модуль 192 интерполяции в вертикальном направлении считывает левый соседний пиксел из памяти 169 кадров в соответствии с индикацией режима прогнозирования, поступившей от модуля 181 приема указания режима прогнозирования. Этот модуль 192 интерполяции в вертикальном направлении сдвигает фазу считываемого им левого соседнего пиксела на величину сдвига в вертикальном направлении, поступившую от модуля 182 приема величины сдвига, посредством имеющего 6 отводов КИХ-фильтра (FIR) и линейной интерполяции. Информацию линейно интерполированного левого соседнего пиксела или неинтерполированного левого соседнего пиксела (т.е. соседнего пиксела из памяти 169 кадров) передают в модуль 183 генерации прогнозируемого изображения при внутрикадровом прогнозировании.
Описание обработки данных при декодировании в устройстве для декодирования изображения
Далее, обработка данных при декодировании, выполняемая устройством 151 для декодирования изображений, будет описана со ссылками на логическую схему, показанную на фиг.28.
На этапе S131 накопительный буфер 161 накапливает переданное изображение. На этапе S132 модуль 162 декодирования без потерь декодирует это сжатое изображение, поступающее от накопительного буфера 161. В частности, происходит декодирование I-кадра, Р-кадра и В-кадра, кодированных в модуле 66 кодирования без потерь, показанном на фиг.2.
В этот момент также декодируют информацию векторов движения, информацию опорного кадра, информацию режима прогнозирования (информацию индикации режима внутрикадрового прогнозирования или режима межкадрового прогнозирования), информацию флага, информацию величины сдвига и т.п.
В частности, если информация режима прогнозирования представляет собой информацию режима внутрикадрового прогнозирования, эту информацию режима прогнозирования и информацию о величине сдвига передают в модуль 171 внутрикадрового прогнозирования. Если информация режима прогнозирования представляет собой информацию режима межкадрового прогнозирования, информацию векторов движения и информацию опорного кадра, соответствующие этой информации режима прогнозирования, передают в модуль 173 прогнозирования/компенсации движения.
На этапе S133 модуль 163 обратного квантования осуществляет обратное квантование коэффициента преобразования, декодированного в модуле 162 декодирования без потерь, с использованием функции, соответствующей функции модуля 65 квантования, показанного на фиг.2. На этапе S134 модуль 164 обратного ортогонального преобразования осуществляет обратное ортогональное преобразование коэффициентов преобразования, прошедших процедуру обратного квантования в модуле 163 обратного квантования, с использованием функции, соответствующей функции модуля 64 ортогонального преобразования, показанного на фиг.2. Это означает, что разностная информация, соответствующая входным данным модуля 64 ортогонального преобразования, показанного на фиг.2 (выходные данные вычислительного модуля 63) была декодирована.
На этапе S135 вычислительный модуль 165 суммирует прогнозируемое изображение, выбранное в процессе обработки данных на описываемом позднее этапе S141 и поступившее через переключатель 174, с указанной разностной информацией. Таким образом, исходное изображение оказывается декодировано. На этапе S136 деблокирующий фильтр 166 осуществляет фильтрацию изображения с выхода вычислительного модуля 165. Таким образом, происходит удаление блочных искажений.
На этапе S137 память 169 кадров сохраняет изображение, прошедшее фильтрацию.
На этапе S138 модуль 171 внутрикадрового прогнозирования или модуль 173 прогнозирования/компенсации движения выполняет соответствующую обработку данных для прогнозирования изображения в ответ на информацию режима прогнозирования, поступающую от модуля 162 декодирования без потерь.
В частности, в случае поступления информации режима внутрикадрового прогнозирования от модуля 162 декодирования без потерь модуль 171 внутрикадрового прогнозирования осуществляет обработку данных в режиме внутрикадрового прогнозирования. В этот момент, модуль 171 внутрикадрового прогнозирования осуществляет обработку данных в режиме внутрикадрового прогнозирования с использованием соседнего пиксела, фаза которого сдвинута в направлении сдвига в соответствии с режимом внутрикадрового прогнозирования на величину сдвига, поступившую от модуля 162 декодирования без потерь.
Подробнее обработка данных для прогнозирования на этапе S138 будет описана позднее со ссылками на фиг.29, но в соответствии с этой обработкой данных к переключателю 174 поступает прогнозируемое изображение, генерируемое модулем 171 внутрикадрового прогнозирования, или прогнозируемое изображение, генерируемое модулем 173 прогнозирования/компенсации движения.
На этапе S139 переключатель 174 выбирает прогнозируемое изображение. В частности, передают прогнозируемое изображение, генерируемое модулем 171 внутрикадрового прогнозирования, или прогнозируемое изображение, генерируемое модулем 173 прогнозирования/компенсации движения. Соответственно, выбирают это поступившее прогнозируемое изображение, передают его вычислительному модулю 165 и на этапе S134, как описано выше, суммируют с выходным изображением модуля 164 обратного ортогонального преобразования.
На этапе S140 буфер 167 сортировки экрана осуществляет такую сортировку. В частности, последовательность кадров, отсортированную для кодирования буфером 62 сортировки экрана в устройстве 51 для кодирования изображения, сортируют для возвращения к исходной последовательности для представления на дисплее.
На этапе S141 модуль 168 цифро-аналогового преобразователя осуществляет преобразование изображения, поступающего с выхода буфера 167 сортировки экрана, из цифровой формы в аналоговую форму. Это изображение передают не показанному на схеме дисплею для представления на экране этого дисплея.
Описание обработки данных при прогнозировании
Далее, обработка данных для прогнозирования на этапе S138, показанном на фиг.28, будет описана со ссылками на логическую схему, представленную на фиг.29.
На этапе S171 модуль 181 приема указания режима прогнозирования определяет, был ли текущий блок подвергнут процедуре внутрикадрового кодирования. После получения информации режима внутрикадрового прогнозирования от модуля 162 декодирования без потерь в модуле 181 приема указания режима прогнозирования этот модуль 181 приема указания режима прогнозирования на этапе S171 определяет, что текущий блок был подвергнут внутрикадровому кодированию, после чего обработка переходит к этапу S172.
На этапе S172 модуль 181 приема указания режима прогнозирования принимает и получает информацию режима внутрикадрового прогнозирования от модуля 162 декодирования без потерь. Этот модуль 181 приема указания режима прогнозирования передает принятую им информацию режима внутрикадрового прогнозирования в модуль 183 генерации прогнозируемого изображения при внутрикадровом прогнозировании, модуль 191 интерполяции в горизонтальном направлении и модуль 192 интерполяции в вертикальном направлении.
На этапе S173 модуль 182 приема величины сдвига принимает и получает информацию о величинах сдвига (в горизонтальном направлении и в вертикальном направлении) соседнего пиксела, декодированную в модуле 162 декодирования без потерь. Этот модуль 182 приема величины сдвига передает принятые величины сдвига - величину сдвига в горизонтальном направлении в модуль 191 интерполяции в горизонтальном направлении и величину сдвига в вертикальном направлении в модуль 192 интерполяции в вертикальном направлении.
Указанные модуль 191 интерполяции в горизонтальном направлении и модуль 192 интерполяции в вертикальном направлении считывают соседний пиксел из памяти 169 кадров и выполняют на этапе S174 интерполяционную обработку данных соседнего пиксела. Подробности интерполяционной обработки соседнего пиксела на этапе S174 в основном совпадают с подробностями интерполяционной обработки соседнего пиксела, описанной со ссылками на фиг.25, вследствие чего описание и иллюстрации такой обработки будут опущены.
В соответствии с требованиями такой обработки соседний пиксел, интерполированный в направлении сдвига согласно режиму внутрикадрового прогнозирования, указанному модулем 181 приема указания режима прогнозирования, или соседний пиксел, не прошедший интерполяцию в этом режиме внутрикадрового прогнозирования, передают в модуль 183 генерации прогнозируемого изображения при внутрикадровом прогнозировании.
В частности, если режим внутрикадрового прогнозирования представляет собой Режим 2 (DC-прогнозирование), модуль 191 интерполяции в горизонтальном направлении и модуль 192 интерполяции в вертикальном направлении передают верхний и левый соседние пикселы, считываемые из памяти 169 кадров, в модуль 183 генерации прогнозируемого изображения при внутрикадровом прогнозировании без выполнения интерполяции этих соседних пикселов.
Если режим внутрикадрового прогнозирования представляет собой Режим 0 (Вертикальное прогнозирование), Режим 3 (прогнозирование вниз-влево по диагонали (Diagonal_Down_Left)) или Режим 7 (прогнозирование по вертикали и влево (Vertical_Left)), будет выполнена только интерполяция в горизонтальном направлении. В частности, модуль 191 интерполяции в горизонтальном направлении осуществляет интерполяцию верхнего соседнего пиксела, считываемого из памяти 169 кадров, на величину сдвига в горизонтальном направлении, полученную от модуля 182 приема величины сдвига, и передает интерполированный верхний соседний пиксел в модуль 183 генерации прогнозируемого изображения при внутрикадровом прогнозировании. В этот момент модуль 192 интерполяции в вертикальном направлении передает левый соседний пиксел, считываемый из памяти 169 кадров, в модуль 183 генерации прогнозируемого изображения при внутрикадровом прогнозировании без выполнения интерполяции этого левого соседнего пиксела.
Если режим внутрикадрового прогнозирования представляет собой Режим 1 (Горизонтальное прогнозирование) или режим 8 (прогнозирование по горизонтали и вверх (Horizontal_Up)), будет выполнена только интерполяция в вертикальном направлении. В частности, модуль 192 интерполяции в вертикальном направлении осуществляет интерполяцию левого соседнего пиксела, считываемого из памяти 169 кадров, на величину сдвига в вертикальном направлении, полученную от модуля 182 приема величины сдвига, и передает интерполированный левый соседний пиксел в модуль 183 генерации прогнозируемого изображения при внутрикадровом прогнозировании. В этот момент модуль 191 интерполяции в горизонтальном направлении передает верхний соседний пиксел, считываемый из памяти 169 кадров, в модуль 183 генерации прогнозируемого изображения при внутрикадровом прогнозировании без выполнения интерполяции этого верхнего соседнего пиксела.
В случае другого, отличного от перечисленных, режима внутрикадрового прогнозирования выполняется интерполяция и в горизонтальном направлении, и в вертикальном направлении. В частности, модуль 191 интерполяции в горизонтальном направлении осуществляет интерполяцию верхнего соседнего пиксела, считываемого из памяти 169 кадров, на величину сдвига в горизонтальном направлении, полученную от модуля 182 приема величины сдвига, и передает интерполированный верхний соседний пиксел в модуль 183 генерации прогнозируемого изображения при внутрикадровом прогнозировании. Модуль 192 интерполяции в вертикальном направлении осуществляет интерполяцию левого соседнего пиксела, считываемого из памяти 169 кадров, на величину сдвига в вертикальном направлении, полученную от модуля 182 приема величины сдвига, и передает интерполированный левый соседний пиксел в модуль 183 генерации прогнозируемого изображения при внутрикадровом прогнозировании.
На этапе S175 модуль 183 генерации прогнозируемого изображения при внутрикадровом прогнозировании осуществляет внутрикадровое прогнозирование в режиме прогнозирования, указанном входной информацией режима внутрикадрового прогнозирования, с использованием величин соседних пикселов или интерполированных соседних пикселов от модуля 191 интерполяции в горизонтальном направлении и модуля 192 интерполяции в вертикальном направлении. В результате такого внутрикадрового прогнозирования генерируют прогнозируемое изображение и передают это сформированное прогнозируемое изображение переключателю 174.
С другой стороны, если на этапе S171 определено, что текущий блок не был подвергнут внутрикадровому кодированию, процесс обработки данных переходит к этапу S176.
Если изображение, подлежащее обработке, представляет собой изображение, предназначенное для межкадровой обработки данных, информацию режима межкадрового прогнозирования, информацию опорного кадра и информацию вектора движения передают от модуля 162 декодирования без потерь в модуль 173 прогнозирования/компенсации движения. В этом случае, на этапе S176 модуль 173 прогнозирования/компенсации движения получает информацию режима межкадрового прогнозирования, информацию опорного кадра, информацию векторов движения и т.п.от модуля 162 декодирования без потерь.
На этапе S177 модуль 173 прогнозирования/компенсации движения осуществляет обработку данных межкадрового прогнозирования движения. В частности, когда обрабатываемое изображение представляет собой изображение, подлежащее обработке данных для межкадрового прогнозирования, необходимое изображение считывают из памяти 169 кадров и передают в модуль 173 прогнозирования/компенсации движения через переключатель 170. На этапе S177 модуль 173 прогнозирования/компенсации движения осуществляет прогнозирование движения в режиме межкадрового прогнозирования на основе вектора движения, полученного на этапе S176, для генерации прогнозируемого изображения. Сформированное прогнозируемое изображение передают переключателю 174.
Как описано выше, в устройстве 51 для кодирования изображения пиксел с точностью до долей пиксела получают посредством имеющего 6 отводов КИХ-фильтра (FIR) и линейной интерполяции и определяют оптимальную величину сдвига, что расширяет выбор величин пикселов для использования в режиме внутрикадрового прогнозирования. Таким образом, можно осуществить оптимальное внутрикадровое прогнозирование и еще больше повысить эффективность кодирования при внутрикадровом прогнозировании.
Кроме того, в системе H.264/AVC схему имеющего 6 отводов КИХ-фильтра (FIR) использовавшуюся только при реализации межкадрового прогнозирования и компенсации движения, описанного выше со ссылками на фиг.4, можно также эффективно применить при внутрикадровом прогнозировании. Таким образом, можно повысить эффективность без увеличения размеров схемы.
Кроме того, можно осуществить внутрикадровое прогнозирование с еще более тонким разрешением, чем 22,5 градусов, т.е. разрешение при внутрикадровом прогнозировании в системе H.264/AVC.
Отметим, что в устройстве 51 для кодирования изображения, в отличие от предложения, рассмотренного в документе NPL 2, при обработке текущего блока, подлежащего внутрикадровому прогнозированию, в системе H.264/AVC используют только пиксел, соседствующий с текущим блоком и расположенный в заданной позиции относительно этого текущего блока. Иными словами, пиксел, подлежащий считыванию из буфера 81 соседних пикселов, может представлять собой единственный соседний пиксел.
Тем самым можно предотвратить увеличение числа обращений к памяти и объема обработки данных из-за используемых в предложении документа NPL 2 пикселов, отличных от соседнего пиксела для блока, подлежащего кодированию, т.е. можно избежать деградации эффективности обработки данных.
Отметим, что приведенное выше описание случая режима внутрикадрового прогнозирования для блоков размером 4×4 пикселов для яркостных сигналов дано лишь в качестве примера интерполяционной обработки соседних пикселов, тогда как настоящее изобретение может быть также применено в случаях режимов внутрикадрового прогнозирования для блоков размером 8×8 пикселов и блоков размером 16×16 пикселов. Кроме того, настоящее изобретение может быть применено в различных режимах внутрикадрового прогнозирования для цветоразностных сигналов.
Отметим, что в случае режима внутрикадрового прогнозирования для блоков размером 8×8 пикселов, выполняют обработку для вычисления средней величины в Режиме 2 (режим DC-прогнозирования) таким же образом, как и в случае режима внутрикадрового прогнозирования для блоков размером 4×4 пикселов. Соответственно, даже при выполнении сдвига, это не связано непосредственно с повышением эффективности кодирования, и, следовательно, перечисленные выше операции оказываются запрещены и не выполняются.
0
1
2
В Режиме 0 (Вертикальное прогнозирование). Режиме 3 (прогнозирование вниз-влево по диагонали (Diagonal_Down_Left)) или Режиме 7 (прогнозирование по вертикали и влево (Vertical_Left)) кандидатами служат только сдвиги верхних соседних пикселов А, A, A, и т.д., показанных на фиг.18.
0
1
2
В Режиме 1 (Горизонтальное прогнозирование) или Режиме 8 (прогнозирование по горизонтали и вверх (Horizontal_Up)) кандидатами служат только сдвиги левых соседних пикселов I, I, I, и т.д., показанных на фиг.18.
В других режимах (режимы с 4 по 6) следует учитывать сдвиги и тех, и других, т.е. и верхних соседних пикселов, и левых соседних пикселов.
Кроме того, в случае режима внутрикадрового прогнозирования для блоков размером 16×16 пикселов и режима внутрикадрового прогнозирования для цветоразностных сигналов в варианте Режима Вертикального прогнозирования осуществляется только сдвиг верхних соседних пикселов в горизонтальном направлении. В варианте Режима Горизонтального прогнозирования осуществляется только сдвиг левых соседних пикселов в вертикальном направлении. В Режиме DC-прогнозирования сдвиг вообще не производится. В режиме прогнозирования в плоскости (Plane Prediction) выполняют и сдвиг верхних соседних пикселов в горизонтальном направлении, и сдвиг левых соседних пикселов в вертикальном направлении.
Далее, когда, как описано в документе NPL 1, при прогнозировании движения применяется интерполяционная обработка данных с точностью до 1/8 пиксела, согласно настоящему изобретению также осуществляют интерполяционную обработку данных с точностью до 1/8 пиксела.
Предшествующее описание относится к использованию системы H.264/AVC в качестве системы кодирования, однако настоящее изобретение этим не ограничивается, так что можно применить и другую систему кодирования/декодирования для выполнения внутрикадрового прогнозирования с использованием соседних пикселов.
Отметим, что настоящее изобретение может быть применено в устройстве для кодирования изображения и в устройстве для декодирования изображения, используемых при приеме информации изображения (потоков битов данных), сжатой посредством ортогонального преобразования, такого как дискретное косинусное преобразование или аналогичное преобразование, и компенсации движения, через сеть связи, такую как система спутникового вещания, система кабельного телевидения, Интернет, система сотовой связи или аналогичная система, например, на основе стандартов MPEG, Н.26х или аналогичных стандартов. Кроме того, настоящее изобретение может быть применено в устройстве для кодирования изображения и в устройстве для декодирования изображения, используемых при обработке информации изображения, записанной на носителе записи, таком как оптический диск, магнитный диск или флэш-память. Далее, настоящее изобретение может быть применено в устройстве для прогнозирования и компенсации движения в составе таких устройства для кодирования изображения и устройства для декодирования изображения и т.п.
Описанная выше последовательность операций обработки данных может быть выполнена аппаратным или программным способом. В случае выполнения этой последовательности операций посредством программного обеспечения, программы, составляющие это программное обеспечение, инсталлируют на компьютере. В качестве примеров таких компьютеров можно указать компьютер, встроенный в специализированное оборудование, или персональный компьютер общего назначения, что позволяет реализовать разнообразные функции посредством инсталлированных на компьютере программ разного типа.
Фиг.30 представляет блок-схему, иллюстрирующую пример конфигурации аппаратуры компьютера, выполняющего указанную выше последовательность операций обработки данных с использованием соответствующих программ.
В таком компьютере центральный процессор (CPU) 301, постоянное запоминающее устройство (ПЗУ (ROM)) 302 и запоминающее устройство с произвольной выборкой (ЗУПВ (RAM)) 303 соединены одно с другим посредством шины 304.
Далее, с шиной 304 соединен интерфейс 305 ввода/вывода. С этим интерфейсом 305 ввода/вывода соединены также устройство 306 ввода, устройство 307 вывода, запоминающее устройство 308, устройство 309 связи и накопитель 310.
Устройство 306 ввода может быть выполнено на основе клавиатуры, мыши, микрофона и т.п. Устройство 307 вывода может быть выполнено на основе дисплея, громкоговорителя и т.п. Запоминающее устройство 308 построено на основе жесткого диска, энергонезависимой памяти и т.п. Устройство 309 связи образовано сетевым интерфейсом и т.п. Накопитель 310 служит приводом для сменного носителя 311 записи, такого как магнитный диск, оптический диск, магнитооптический диск, полупроводниковая память или аналогичное устройство.
В компьютере с такой конфигурацией, например, центральный процессор CPU 301 загружает программу, записанную в запоминающем устройстве 308, в ЗУПВ (RAM) 303 через интерфейс 305 ввода/вывода и шину 304 и выполняет эту программу, осуществляя тем самым описанную выше последовательность операций обработки данных.
Программа, выполняемая компьютером (процессором CPU 301), может быть предоставлена путем записи на сменном носителе 311, служащем пакетным носителем, например, или на аналогичном устройстве. Кроме того, программа может быть предоставлена по кабельной или радио сети связи, такой как локальная сеть связи, Интернет или система цифрового вещания.
В таком компьютере программа может быть инсталлирована в запоминающем устройстве 308 через интерфейс 305 ввода/вывода путем установки сменного носителя 311 в накопителе 310. Кроме того, программа может быть принята устройством 309 связи из кабельной или радио системы связи и инсталлирована в запоминающем устройстве 308. В дополнение к этому программа может быть предварительно инсталлирована в ПЗУ (ROM) 302 или запоминающем устройстве 308.
Отметим, что программа, выполняемая компьютером, может представлять собой программу, согласно которой обработка данных осуществляется последовательно во времени в соответствии с последовательностью операций, рассмотренной в настоящем Описании, или это может быть программа, согласно которой обработка данных осуществляется параллельно или в нужные моменты времени, например при поступлении вызова.
Возможные варианты настоящего изобретения не ограничиваются вариантом, рассмотренным выше, так что могут быть выполнены разнообразные модификации, не отклоняясь от существа настоящего изобретения.
Перечень позиционных обозначений
51 устройство для кодирования изображения 66 модуль кодирования без потерь
74 модуль внутрикадрового прогнозирования
75 модуль интерполяции соседнего пиксела
76 модуль прогнозирования/компенсации движения
77 модуль выбора прогнозируемого изображения
81 буфер соседнего пиксела
82 модуль определения оптимального режима
83 модуль определения оптимальной величины сдвига
84 модуль генерации прогнозируемого изображения
91 модуль определения режима
92 модуль интерполяции в горизонтальном направлении
93 модуль интерполяции в вертикальном направлении
151 устройство для декодирования изображений
162 модуль декодирования без потерь
171 модуль внутрикадрового прогнозирования
172 модуль интерполяции соседнего пиксела
173 модуль прогнозирования/компенсации движения
174 переключатель
181 модуль приема указания режима прогнозирования
182 модуль приема величины сдвига
183 модуль генерации прогнозируемого изображения при внутрикадровом прогнозировании
191 модуль интерполяции в горизонтальном направлении
192 модуль интерполяции в вертикальном направлении