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

Область техники, к которой относится изобретение
Настоящее изобретение относится к устройству обработки изображения, способу и программе, и к устройству обработки изображения, способу и программе, которые позволяют улучшить качество изображения.
Уровень техники
Шумы блоков представляют собой фактор, который приводит к ухудшению качества изображения, кодированного с использованием способа MPEG-2 (Экспертная группа по вопросам движущегося изображения, фаза 2). Таким образом, в устройстве, которое кодирует изображения с помощью способа MPEG-4 (Экспертная группа по вопросам движущегося изображения, фаза 4) или с помощью способа H.264/AVC (Расширенное видеокодирование), предусмотрен фильтр удаления блоков, который выполняет обработку удаления блоков для удаления шумов блоков (например, см. Патентный документ 1). При использовании такой обработки удаления блоков, даже, например, в изображении с малой скоростью передачи битов можно подавить ухудшение качества изображения.
Патентный документ 1: японский патент №3489735
Сущность изобретения
Техническая задача
Однако поскольку при обработке удаления блоков выполняют обработку фильтрации низкой частоты для границ между блоками, возникает проблема, состоящая в том, что шумы блока могут быть удалены вместе с потерей подробной информации о структуре и т.п. (ниже также называется текстурой) изображения.
Настоящее изобретение было разработано с учетом описанных выше обстоятельств и с целью улучшить качество изображения путем правильного выполнения обработки удаления блоков.
Техническое решение
Устройство обработки изображения в соответствии с аспектом настоящего изобретения включает в себя фильтр удаления блоков, который выполняет обработку удаления блоков в декодированном изображении, полученном в результате декодирования второго изображения, которое используется для оценки движения первого изображения, в случае, когда первое изображение кодировано, и которое было кодировано перед первым изображением, и средство расчета количества деталей, предназначенное для расчета количества деталей, представляющего сложность второго изображения. Фильтр удаления блоков выполняет управление в отношении, следует или нет применять обработку удаления блоков к декодированному изображению, или выполняет управление степенью, в которой обработку удаления блоков следует применять к декодированному изображению, на основе количества деталей.
Средство расчета количества деталей может рассчитывать сложность кодирования второго изображения как количество деталей.
В случае, когда второе изображение представляет собой изображение, кодированное с использованием прогнозирования между кадрами, средство расчета количества деталей может устанавливать, как количество деталей, значение, полученное в результате нормализации трудности кодирования второго изображения путем использования трудности кодирования третьего изображения, кодированного путем использования прогнозирования внутри кадра перед кодированием второго изображения.
Средство расчета количества деталей может разделять второе изображение, которое не было кодировано, на множество блоков, и рассчитывать количество деталей на основе распределения значений пикселя для каждого из блоков.
Средство расчета количества деталей может разделять второе изображение, которое не было кодировано, на множество блоков, и рассчитывать количество деталей на основе коэффициента преобразования, полученного путем выполнения ортогонального преобразования для каждого из блоков.
Средство расчета количества деталей может рассчитывать количество деталей на основе ошибки прогнозирования, которая представляет собой разницу между прогнозируемым изображением для второго изображения, прогнозируемого на основе прогнозирования между кадрами, и второго изображения, которое не было кодировано.
Устройство обработки изображения может кодировать изображение с использованием способа H.264/AVC (Расширенное видеокодирование). Фильтр удаления блоков может выполнять управление, следует ли или нет применять обработку удаления блоков к декодируемому изображению, или выполнять управление степенью, в которой обработка удаления блоков должна быть применена к декодируемому изображению, путем регулировки значения disable_deblocking_filter_idc, slice_alpha_c0_offset_div2 или slice_beta_offset_div2.
Устройство обработки изображения может кодировать изображение с использованием способа MPEG-4 (Экспертная группа по вопросам движущегося изображения, фаза 4), H.264/AVC (Расширенное видеокодирование), или VC-1 (Видео Кодек 1).
Способ обработки изображения или программа в соответствии с аспектом настоящего изобретения включает в себя этапы расчета количества деталей, представляющего сложность второго изображения, которое используют для оценки движения первого изображения в случае, когда первое изображение кодировано, и которое было кодировано перед первым изображением, и управления, следует или нет применять обработку удаления блоков к декодированному изображению, полученному в результате декодирования второго изображения, или управления степенью, в которой обработку удаления блоков требуется применять к декодированному изображению, на основе количества деталей.
В одном аспекте настоящего изобретения количество деталей, представляющее сложность второго изображения, которое используют для оценки движения первого изображения, в случае, когда первое изображение кодировано, и которое кодируют перед расчетом первого изображения, и управление, следует ли или нет применять обработку удаления блоков к декодированному изображению, полученному в результате декодирования второго изображения, или управления степенью, в которой следует применять обработку удаления блоков к декодированному изображению, выполняют на основе количества деталей.
Предпочтительные эффекты
В соответствии с аспектом настоящего изобретения обработку удаления блоков можно правильно выполнять в соответствии с деталями изображения. Кроме того, в соответствии с аспектом настоящего изобретения можно улучшить качество изображения.
Краткое описание чертежей
На фиг.1 показана блок-схема, представляющая вариант воплощения устройства обработки изображения, в котором применяют настоящее изобретение.
На фиг.2 показана блок-схема последовательности операций, предназначенная для пояснения обработки кодирования, выполняемой устройством обработки изображения по фиг.1.
На фиг.3 показана блок-схема последовательности операций, поясняющая первый вариант воплощения обработки управления удаления блоков, выполняемой с помощью устройства обработки изображения по фиг.1.
На фиг.4 показана блок-схема последовательности операций, предназначенная для пояснения второго варианта воплощения обработки управления удалением блоков, выполняемой с помощью устройства обработки изображения по фиг.2.
На фиг.5 показана блок-схема последовательности операций, предназначенная для пояснения третьего варианта воплощения обработки управления удалением блоков, выполняемой устройством обработки изображения по фиг.3.
На фиг.6 показана блок-схема последовательности операций, поясняющая четвертый вариант воплощения обработки управления удалением блоков, выполняемой устройством обработки изображения по фиг.4.
На фиг.7 показана блок-схема, представляющая пример конфигурации персонального компьютера.
Пояснение номеров ссылочных позиций
101 - устройство обработки изображения, 113 - модуль расчета количества деталей, 114 - сумматор, 115 - модуль ортогонального преобразования, 119 - модуль управления скоростью, 120 - модуль суммирования ошибки прогнозирования, 124 - фильтр удаления блоков, 126 - модуль прогнозирования внутри кадра, 127 - модуль оценки и компенсации движения, 141 - блок расчета активности, 142 - блок ортогонального преобразования.
Подробное описание изобретения
Ниже будут описаны варианты воплощения настоящего изобретения со ссылкой на чертежи.
На фиг.1 показана блок-схема, представляющая конфигурацию варианта воплощения устройства обработки изображения, в котором применяется настоящее изобретение.
Устройство 101 обработки изображения представляет собой устройство, предназначенное для кодирования входного изображения, с использованием способа H.264/AVC (Расширенное видеокодирование) и вывода кодированного изображения, например, в устройство записи или в канал передачи, которые не показаны, на последующем этапе.
Устройство 101 обработки изображения выполнено так, что оно включает в себя модуль 111 A/D преобразования (А/Ц, аналогово-цифровое), буфер 112 изменения компоновки экрана, модуль 113 расчета количества деталей, сумматор 114, модуль 115 ортогонального преобразования, модуль 116 квантования, модуль 117 кодирования без потерь, буфер 118 накопителя, модуль 119 управления скоростью, модуль 120 суммирования ошибки прогнозирования, модуль 121 удаления квантования, модуль 122 инверсного ортогонального преобразования, сумматор 123, фильтр 124 удаления блоков, запоминающее устройство 125 кадра, модуль 126 прогнозирования внутри кадра и модуль 127 оценки и компенсации движения. Кроме того, модуль 113 расчета количества деталей выполнен так, что он включает в себя блок 141 расчета активности и блок 142 ортогонального преобразования.
Модуль 111 А/Ц преобразования выполняет аналогово-цифровое преобразование аналогового изображения, вводимого извне, с получением цифрового изображения, и передает преобразованное цифровое изображение (ниже также называется оригинальным изображением, когда это соответствует) в буфер 112 изменения компоновки экрана.
Буфер 112 изменения компоновки экрана изменяет компоновку оригинальных изображений, передаваемых из модуля 111 А/Ц преобразования, на основе структуры ГРИ (ГРИ, группа изображений), и последовательно передает оригинальные изображения в модуль 113 расчета количества деталей.
Модуль 113 расчета количества деталей рассчитывает количество деталей, представляющее сложность оригинального изображения. Кроме того, модуль 113 расчета количества деталей передает в сумматор 114, модуль 126 прогнозирования внутри кадра и модуль 127 оценки и компенсации движения оригинальное изображение, для которого был закончен подсчет количества деталей.
Среди элементов, составляющих модуль 113 подсчета количества деталей, блок 141 расчета активности разделяет оригинальное изображение на множество блоков и рассчитывает количество деталей оригинального изображения на основе дисперсии значений пикселей в каждом блоке, как описано ниже со ссылкой на фиг.4. Блок 141 расчета активности передает информацию, обозначающую рассчитанное количество деталей, в фильтр 124 удаления блоков.
Кроме того, как описано ниже со ссыпкой на фиг.5, блок 142 ортогонального преобразования разделяет оригинальное изображение на множество блоков, и рассчитывает количество деталей оригинального изображения на основе коэффициента преобразования, полученного в результате выполнения ортогонального преобразования для каждого из блоков. Блок 142 ортогонального преобразования передает информацию, обозначающую рассчитанное количество деталей, в фильтр 124 удаления блоков.
Для каждого макроблока сумматор 114 получает из модуля 126 прогнозирования внутри кадра или модуля 127 оценки и компенсации движения одно из изображения, прогнозируемого внутри кадра, прогнозируемого на основе прогнозирования внутри кадра (прогнозирование внутри, кадра), и изображения, прогнозируемого между кадрами, прогнозируемого на основе прогнозирования между кадрами (прогнозирование между кадрами, прогнозирование компенсации движения) для оригинального изображения. Сумматор 114 рассчитывает для каждого макроблока разность между оригинальным изображением и изображением, прогнозируемым внутри кадра, или изображением, прогнозируемым между кадрами, и применяет к модулю 115 ортогонального преобразования и к модулю 120 суммирования ошибки прогнозирования разностное изображение, формируемое из ошибки прогнозирования, полученной путем расчета разности.
Модуль 115 ортогонального преобразования выполняет ортогональное преобразование, такое как дискретное косинусное преобразование или преобразование Карунена-Лоэва, по разностному изображению для каждого блока, имеющего заданный размер, и передает полученные, таким образом, коэффициенты преобразования в модуль 116 квантования.
Модуль 116 квантования выполняет квантование коэффициентов преобразования, переданных из модуля 115 ортогонального преобразования, используя масштабы квантования, управляемые модулем 119 управления скоростью, и передает квантованные коэффициенты преобразования в модуль 117 кодирования без потерь и в модуль 121 удаления квантования.
Модуль 117 кодирования без потерь получает информацию о прогнозировании внутри кадра из модуля 126 прогнозирования внутри кадра и получает информацию о прогнозировании между кадрами из модуля 127 оценки и компенсации движения. Модуль 117 кодирования без потерь располагает квантованные коэффициенты преобразования, информацию о прогнозировании внутри кадра, информацию о прогнозировании между кадрами и т.п.в заданном порядке, и выполняет обработку кодирования без потерь, такую как кодирование с переменной длиной, такое как CAVLC (КЗАКПД, Контекстнозависимое адаптивное кодирование с переменной длиной кодового слова) или арифметическое кодирование, такое как САВАС (КЗДАК, Контекстнозависимое двоичное арифметическое кодирование), для скомпонованных данных. Модуль 117 кодирования без потерь передает кодированные данные в буфер-накопитель 118 для сохранения в нем.
Буфер-накопитель 118 выводит, как изображение, кодированное с помощью способа H.264/AVC, данные, переданные из модуля 117 кодирования без потерь, например, в устройство записи или в канал передачи, который не представлен на иллюстрации, на следующем этапе.
Модуль 119 управления скоростью управляет на основе количества кода изображения, сохраненного в буфере-накопителе 118, скоростью передачи битов, которая представляет собой количество кода за единицу времени, назначенную для кодируемого изображения.
Например, модуль управления 119 скоростью управляет, путем использования способа управления скоростью, определенного в соответствии с MPEG-2 TestModel 5 (ТМ5), скорость передачи битов, путем управления значением масштаба квантователя, которое представляет собой значение, определяющее коэффициент преобразования, когда модуль 116 квантования выполняет квантование. Кроме того, как описано ниже со ссылкой на фиг.3, модуль 119 управления скоростью рассчитывает сложность кодирования, как количество деталей, представляющих сложность оригинального изображения, и передает рассчитанную сложность кодирования в фильтр 124 удаления блоков.
Модуль 120 суммирования ошибки прогнозирования рассчитывает, как описано ниже со ссылкой на фиг.6, количество деталей, представляющее сложность изображения, на основе ошибок прогнозирования, формирующих разностное изображение, полученное из сумматора 114. Модуль 120 суммирования ошибки прогнозирования передает информацию, обозначающую рассчитанное количество деталей, в фильтр 124 удаления блоков.
Модуль 121 удаления квантования удаляет квантование коэффициентов преобразования, переданных из модуля 116 квантования, и передает коэффициенты преобразования после удаления квантования в модуль 122 инверсного ортогонального преобразования.
Модуль 122 инверсного ортогонального преобразования выполняет инверсное ортогональное преобразование, такое как инверсное дискретно-косинусное преобразование или инверсное преобразование Карунена-Лоэва, для коэффициентов преобразования, переданных из модуля 121 удаления квантования. Таким образом, в результате декодирования получают разностное изображение. Модуль 122 инверсного ортогонального преобразования передает декодированное разностное изображение в сумматор 123.
Сумматор 123 получает из модуля 126 прогнозирования внутри кадра или модуля 127 оценки и компенсации движения изображение, прогнозированное внутри кадра, или изображение, прогнозированное между кадрами, которое использовали для генерирования разностного изображения, и суммирует вместе разностное изображение и полученное изображение, прогнозированное внутри кадра, или изображение, прогнозированное между кадрами. Таким образом, в результате декодирования получают оригинальное изображение. Сумматор 123 передает декодированное изображение (ниже называется декодированным изображением, когда это соответствует) в фильтр 124 удаления блоков.
Фильтр 124 удаления блоков выполняет обработку удаления блоков для удаления шумов блока в декодированном изображении. Следует отметить, что, как описано ниже со ссылкой на фиг.3-6, фильтр 124 удаления блоков выполняет управление, следует ли или нет применять обработку удаления блоков к декодированному изображению, или управляет степенью, в который следует применять обработку удаления блоков к декодированному изображению, на основе количества деталей, полученного из модуля 119 управления скоростью, модуля 120 суммирования ошибки прогнозирования, модуля 141 расчета активности или модуля 142 ортогонального преобразования. Фильтр удаления 124 блоков передает декодированное изображение, которое подверглось обработке удаления блоков, в запоминающее устройство 125 кадра. Кроме того, фильтр 124 удаления блоков непосредственно передает, как изображение для использования при прогнозировании внутри кадра, декодированное изображение, которое не подвергалось обработке удаления блоков, в запоминающее устройство 125 кадра.
Запоминающее устройство 125 кадра сохраняет, как изображение, к которому обращаются в случае выполнения прогнозирования внутри кадра или прогнозирования между кадрами (ниже называется опорным изображением, когда это соответствует), декодированное изображение, переданное из фильтра 124 удаления блоков.
Модуль 126 прогнозирования внутри кадра выполняет для каждого макроблока, используя кодированный пиксель, расположенный рядом с соответствующим макроблоком в одном и том же кадре, сохраненном в запоминающем устройстве 125 кадра, прогнозирование внутри кадра для генерирования прогнозируемого изображения, в качестве оригинального изображения. Следует отметить, что, как описано выше, пиксель декодированного изображения, который не подвергали обработке удаления блоков, используется для прогнозирования внутри кадров.
Модуль 127 оценки и компенсации движения детектирует для каждого макроблока, путем использования опорного изображения в другом кадре, сохраненном в запоминающем устройстве 125 кадра, вектор движения оригинального изображения относительно опорного изображения, и выполняет компенсацию движения для опорного изображения, используя детектированный вектор движения. В соответствии с этим, модуль 127 оценки и компенсации движения выполняет прогнозирование между кадрами для генерирования изображения, прогнозированного между кадрами, для оригинального изображения.
Кроме того, режим прогнозирования, применяемый к каждому макроблоку, определяют, например, с помощью модуля определения режима, который не представлен, с использованием способа Режима малой сложности (высокоскоростной режим). В случае, когда применяемый режим прогнозирования представляет собой режим прогнозирования для прогнозирования внутри кадра, как показано на фиг.1, запоминающее устройство 125 кадра и модуль 126 прогнозирования внутри кадра соединены вместе, и модуль 126 прогнозирования внутри кадра, сумматор 114 и сумматор 123 соединены вместе. Модуль 126 прогнозирования внутри кадра генерирует изображение, прогнозируемое внутри кадра, на основе выбранного режима прогнозирования, и передает сгенерированное изображение, спрогнозированное внутри кадра, в сумматор 114 и в сумматор 123. Кроме того, модуль 126 прогнозирования внутри кадра передает без потерь, как информацию о прогнозировании внутри кадра макроблока, для которого было выполнено прогнозирование внутри кадра, информацию о применяемом режиме прогнозирования и т.п.в модуль 117 кодирования.
Кроме того, в случае, когда используемый режим прогнозирования представляет собой режим прогнозирования для прогнозирования между кадрами, хотя это и не показано на фиг.1, запоминающее устройство 125 кадра и модуль 127 оценки и компенсации движения соединены вместе, и модуль 127 оценки и компенсации движения, сумматор 114 и сумматор 123 соединены вместе. Модуль 127 оценки и компенсации движения генерирует изображение, прогнозируемое между кадрами, на основе выбранного режима прогнозирования и передает сгенерированное изображение, спрогнозированное между кадрами, в сумматор 114 и в сумматор 123. Кроме того, модуль 126 прогнозирования внутри кадра передает без потерь, в качестве информации о прогнозировании между кадрами макроблока, для которого было выполнено прогнозирование между кадрами, информацию о применяемом режиме прогнозирования, детектированный вектор движения, номер изображения (картинки), на которое делается ссылка, и т.п., в модуль 117 кодирования.
Ниже будет описана, со ссылкой на блок-схему последовательности операций, показанную на фиг.2, обработка кодирования, выполняемая устройством 101 обработки изображения по фиг.1. Следует отметить, что эта обработка начинается, например, когда начинается ввод изображения извне в устройство 101 обработки изображения.
На этапе S1 устройство 101 обработки изображения начинает кодировать изображение. Таким образом, в результате начала операций, описанных выше со ссылкой на фиг.1, выполняемых отдельными компонентами устройства 101 обработки изображения, начинается кодирование входного изображения в соответствии со способом H.264/AVC. Кроме того, также начинается обработка управления удаления блоков, которая будет описана ниже со ссылкой на фиг.3-6.
На этапе S2 устройство 101 обработки изображения определяет, были ли кодированы все изображения. Кодирование изображений выполняют до тех пор, пока не будет определено на этапе S2, что все изображения, введенные извне, были кодированы. В случае, когда определяют, что все изображения, введенные извне, были кодированы, обработка кодирования заканчивается.
Далее, со ссылкой на блок-схему последовательности операций, показанную на фиг.3, будет описан первый вариант воплощения обработки управления удаления блоков, выполняемой устройством 101 обработки изображения при обработке процесса кодирования, который был описан со ссылкой на фиг.2.
На этапе S21 модуль 119 управления скоростью рассчитывает сложность кодирования Complexity. В частности, модуль 119 управления скоростью получает кодированное изображение из буфера 118 накопителя. Модуль 119 управления скоростью рассчитывает сложность кодирования Complexity как количество деталей, представляющих сложность изображения, используя следующее уравнение (1):
Здесь PictureGeneratedBis представляет количество сгенерированного кода изображения. Кроме того, PictureAverageQuant представляет среднее значение масштабов квантователя, применяемых к изображению, и рассчитанное по следующему уравнению (2):
[Выражение 1]
k
Здесь, MBNum представляет количество макроблоков изображения. Кроме того, Quant представляет масштаб квантователя, примененный к k-му макроблоку изображения, и его рассчитывают по следующему уравнению (3):
[Выражение 2]
k
Здесь QP представляет собой параметр квантования k-го макроблока в изображении.
Таким образом, значение Complexity, рассчитанное по уравнению (1), представляет собой значение, полученное путем умножения сгенерированного количества кода изображения на среднее значение масштаба квантователя. Таким образом, значение Complexity становится меньшим при уменьшении количества движения в изображении. Кроме того, значение Complexity становится большим, при увеличении количества движения в изображении.
На этапе S22 фильтр 124 удаления блоков регулирует параметры, относящиеся к обработке удаления блоков. В частности, модуль 119 управления скоростью передает информацию, обозначающую рассчитанное значение Complexity, в фильтр 124 удаления блоков. Фильтр 124 удаления блоков регулирует значения disable_deblocking_filter_idc, slice_alpha_c0_offset_div2 и slice_beta_offset_div2 в соответствии со значением Complexity изображения, подвергаемого обработке удаления блоков.
Disable_deblocking_filter_idc представляет собой параметр для установки, следует применять или нет обработку удаления блоков, и может быть установлен для каждого среза. Disable_deblocking_filter_idc устанавливают равным 0 в случае, когда обработку удаления блоков применяют, и устанавливают равным 1 в случае, когда обработку удаления блоков не применяют, и устанавливают равным 2 в случае, когда обработку удаления блоков не применяют на границе между срезами.
Slice_alpha_c0_offset_div2 представляет собой параметр для регулировки степени, в которой обработку удаления блоков применяют к границе между блоками в случае, когда срез разделен на блоки размером 4×4 пикселя, и может быть установлен для каждого среза. Slice_alpha_c0_offset_div2 может быть установлен в пределах диапазона от -6 до +6. По мере уменьшения его значения степень, в которой применяют обработку удаления блоков, становится меньшей. При увеличении его значения степень, в которой применяют обработку удаления блоков, увеличивается.
Slice_beta_offset_div2 представляет собой параметр для регулировки степени, в которой обработку удаления блоков применяют к пикселю в блоке, в случае, когда срез разделен на блоки размером 4x4 пикселя, и может быть установлен для каждого среза. Slice_beta_offset_div2 может быть установлен в пределах диапазона от -6 до +6. По мере уменьшения его значения степень, в которой применяют обработку удаления блоков, становится меньшей. По мере увеличения его значения степень, в которой применяют обработку удаления блоков, становится большей.
На этапе S22, например, в случае, когда значение Complexity меньше, чем заданное пороговое значение Thc, disable_deblocking_filter_idc устанавливают равным 1. Таким образом, для изображения, в котором сгенерированы только незначительные шумы, и происходит очень незначительное движение, обработку удаления блоков не применяют.
Кроме того, например, в случае, когда значение Complexity равно или больше, чем пороговое значение Thc, значения slice_alpha_c0_offset_div2 и slice_beta_offset_div2 регулируют в соответствии со значением Complexity. Например, по мере того, как значение Complexity становится меньше, значения slice_alpha_c0_orfset_div2 и slice_beta_offset_div2 устанавливают близкими к -6. Кроме того, по мере того, как значение Complexity становится больше, значения slice_alpha_c0_offset_div2 и slice_beta_offset_div2 устанавливают близкими к +6. Таким образом, для изображения, в котором шумы блоков менее вероятно будут сгенерированы и в котором происходит малое количество движений, степень, в которой применяют обработку удаления блоков, уменьшают. Кроме того, для изображения, в котором шумы блока, более вероятно, будут сгенерированы, и присутствует большое количество движения, степень, в которой применяют обработку удаление блоков, увеличивается.
На этапе S23 фильтр 124 удаления блоков выполняет обработку удаления блоков, и на этом обработка управления удалением блоков заканчивается. Декодированное изображение, которое подвергли обработке удаления блоков, сохраняют как опорное изображение в запоминающем устройстве 125 кадра. Следует отметить, что в случае, когда disable_deblocking_filter_idc установлен равным 1, обработку удаления блоков не выполняют.
Как описано выше, в соответствии со значением Complexity, обработку удаления блоков соответствующим образом выполняют для декодированного изображения, и генерируют опорное изображение, из которого были удалены шумы блоков, при сохранении текстуры. Таким образом, может быть улучшено качество изображения для изображения, которое подвергали кодированию прогнозирования между кадрами, используя опорные изображения.
Следует отметить, что пороговое значение Thc можно изменять в соответствии с типом изображения, то есть в соответствии с тем, является ли изображение I-изображением, Р-изображением, или В-изображением.
Кроме того, сложность кодирования Р-изображения и В-изображения, которые представляют собой изображения, кодированные с использованием прогнозирования между кадрами, может быть нормализовано путем использования значения Complexity I - изображения, которое представляет собой изображение, кодированное с использованием прогнозирования внутри кадра, перед тем как обработкой изображения и удаления блоков можно управлять на основе нормализованных значений (Norm_Complexity). Norm_ComplexityPpic, которые получают в результате нормализации значения Complexity Р-изображения и Norm_ComplexityBpic, которые получают путем нормализации значения Complexity В-изображения, рассчитывают с помощью следующих уравнений (4)-(8):
Следует отметить, что значение ComplexityIpic, PictureGeneratedBisIpic и PictureAverageQuantIpic представляют сложность кодирования, количество сгенерированного кода и среднее значение масштаба квантователя I-изображения, соответственно. Кроме того, ComplexityPpic, PictureGeneratedBisPpic и PictureAverageQuantPpic представляют сложность кодирования, количество сгенерированного кода и среднее значение масштаба квантователя Р-изображения, соответственно. Кроме того, ComplexityBpic, PictureGeneratedBisBpic и PictureAverageQuantIBic представляют сложность кодирования, количество сгенерированного кода и среднее значение масштаба квантователя В-изображения, соответственно.
Например, в случае, когда изображение, подвергаемое обработке удаления блоков, представляет собой Р-изображение или В-изображение, если Norm_Complexity меньше, чем заданное пороговое значение, Thcn, disable_deblocking_filter_idc устанавливают равным 1. Таким образом, для изображения, в котором генерируется только незначительное количество шумов блоков и происходит очень малое движение, обработку удаления блоков не применяют.
Кроме того, например, в случае, когда Norm_Complexity равно или больше, чем пороговое значение Thcn, значения slice_alpha_c0_offset_div2 и slice_beta_offset_div2 регулируют в соответствии со значением Norm_Complexity. Например, по мере того, как значение Norm_Complexity становится меньше, slice_alpha_c0_offset_div2 и slice_beta_offset_div2 устанавливают близкими -6. Кроме того, по мере того, как значение Norm_Complexity становится больше, slice_alpha_c0_offset_div2 и slice_beta_offset_div2 устанавливают близкими +6. Таким образом, для изображения, в котором шумы блоков менее вероятно будут сгенерированы и присутствует малое количество движения, степень, в которой применяют обработку удаления блоков, уменьшают. Кроме того, для изображения, в котором шумы блоков более вероятно будут сгенерированы и присутствует большое количество движения, степень, в которой применяют обработку удаления блоков, увеличивают.
Поскольку Norm_ComplexityPpic и Norm_ComplexityBpic представляют движение Р-изображения и В-изображения в случае, когда движение I-изображения установлено равным 1, и сложность движения каждого изображения можно, таким образом, более точно выделить, обработку удаления блоков можно выполнять более соответствующим образом. Таким образом, качество изображения для изображения, которое подвергают кодированию с прогнозированием между кадрами, может быть дополнительно улучшено.
Следует отметить, что пороговое значение Thcn можно изменять в соответствии с типом изображения, то есть в соответствии с тем, является ли изображение Р-изображением или В-изображением.
Кроме того, предпочтительно, чтобы I-изображение, используемое для нормализации, представляло собой I-изображение, которое было кодировано самым последним перед изображением, или I-изображением, на которое ссылались при кодировании изображения.
Кроме того, для I-изображения обработкой удаления блоков управляют на основе значения Complexity, как описано выше.
Далее, со ссылкой на блок-схему последовательности операций, показанную на фиг.4, будет описан второй вариант воплощения обработки управления удалением блоков, выполняемой устройством 101 обработки изображения, при обработке кодирования, которая была описана со ссыпкой на фиг.2.
На этапе S41 блок 141 расчета активности рассчитывает значение Activity. В частности, блок 141 расчета активности рассчитывает значение Activity как количество деталей, представляющее сложность изображения, предназначенного для кодирования, используя следующее уравнение (9):
[Выражение 3]
k
Здесь, act представляет активность k-го макроблока изображения, и его рассчитывают с помощью следующего уравнения (10):
[Выражение 4]
Здесь один макроблок разделяют на четыре подблока, сформированных из 8×8 пикселей, и var sblk представляют значение, обозначающее дисперсию значений пикселей разделенного подблока, и ее рассчитывают с помощью следующих уравнений (11) и (12):
[Выражение 5]
k
Здесь P представляет собой значение пикселя для k-го пикселя в подблоке. Кроме того, var sblk получают для каждого подблока в двух случаях, в режиме кодирования DCT кадра и в режиме кодирования DCT поля, и minsblk=1,8 (var sblk) в уравнении (10) представляет минимальное значение полученного var sblk.
Таким образом, значение Activity, рассчитанное по уравнению (9), представляет собой среднее значение активности отдельных макроблоков в изображении, и представляет собой значение, например, используемое для управления скоростью, определенной по MPEG-2 TestModel 5 (ТМ5). Таким образом, значение Activity становится меньшим, по мере того, как степень изменения значений пикселя уменьшается. Кроме того, значение Activity становится большим, по мере того, как степень изменения значений пикселя увеличивается.
На этапе S42 фильтр 124 удаления блоков регулирует параметры, относящиеся к обработке удаления блоков. В частности, блок 141 расчета активности передает информацию, обозначающую рассчитанное значение Activity, в фильтр 124 удаления блоков. Фильтр 124 удаления блоков регулирует значения disable_deblocking_filter_idc, slice_alpha_c0_offset_div2 и slice_beta_offset_div2 в соответствии со значением Activity изображения, подвергаемого обработке удаления блоков.
Например, в случае, когда значение Activity меньше, чем заданное пороговое значение Tha, disable_deblocking_filter_idc устанавливают равным 1. То есть для ровного изображения, в котором генерируется только незначительное количество шумов блоков и происходит очень небольшое количество изменений значений пикселей, обработку удаления блоков не применяют.
Кроме того, например, в случае, когда значение Activity равно или больше, чем пороговое значение Tha, значения slice_alpha_c0_offset_div2 и slice_beta_offset_div2 регулируют в соответствии со значением Activity. Например, по мере того, как значение Activity становится меньше, slice_alpha_c0_offset_div2 и slice_beta_offset_div2 устанавливают равным значениям, близким к -6. Кроме того, по мере того, как значение Activity становится большим, slice_alpha_c0_offset_div2 и slice_beta_offset_div2 устанавливают равными значениям, близким к +6. Таким образом, для изображения, в котором, менее вероятно, будут сгенерированы шумы блока, и небольшое количество изменений происходит в значениях пикселей, степень, в которой применяют обработку удаления блоков, уменьшается. Кроме того, для сложного изображения, в котором более вероятно будут сгенерированы шумы блока, и большое количество изменений происходит в значениях пикселей, степень, в которой применяют обработку удаления блоков, увеличивается.
На этапе S43, как и в описанной выше обработке на этапе S23 по фиг.3, выполняют обработку удаления блоков, и заканчивается обработка управления удалением блоков.
Как описано выше, в соответствии со значением Activity, обработку удаления блоков соответствующим образом выполняют для декодированного изображения, и опорное изображение, в котором были удалены шумы блоков, генерируют при сохранении текстуры. Таким образом, может быть улучшено качество изображения для изображения, которое подвергали кодированию с прогнозированием между кадрами, путем использования опорного изображения.
Кроме того, в случае, когда используют значение Activity, до того, как изображение будет кодировано, может быть получено количество деталей, представляющее сложность изображения.
Кроме того, как описано выше, поскольку значение Activity представляет собой значение, используемое при управлении скоростью, определенном, например, по MPEG-2 TestModel 5 (ТМ5), значение Activity может быть рассчитано модулем 119 управления скоростью.
Кроме того, вместо описанного выше значения Activity, то есть среднего значения действий в отдельных макроблоках, можно использовать значение, отражающее размер дисперсии значений пикселя изображения, например общее значение действий в отдельных макроблоках.
Третий вариант воплощения обработки управления удалением блоков, выполняемой устройством 101 обработки изображения при обработке кодирования, которая была описана выше со ссылкой на фиг.2, будет описан со ссылкой на блок-схему последовательности операций, представленную на фиг.5.
На этапе S61 блок 142 ортогонального преобразования рассчитывает общую сумму коэффициентов ортогонального преобразования. В частности, блок 142 ортогонального преобразования разделяет изображение, предназначенное для кодирования, на блоки, имеющие заданный размер. Следует отметить, что, ниже будет описан пример, в котором выполняют разделение на блоки размером 4x4 пикселя, и используют преобразование Адамара в качестве ортогонального преобразования. Блок 142 ортогонального преобразования выполняет преобразование Адамара каждого блока, используя следующее уравнение (13):
Здесь Р представляет собой матрицу пикселей размером 4×4 пикселя перед выполнением преобразования Адамара, и Р' представляет собой матрицу коэффициентов преобразования размером 4×4, после выполнения преобразования Адамара. Кроме того, Н представляет собой матрицу Адамара четвертого порядка, представленную следующим уравнением (14), и НТ представляет собой транспонированную матрицу для матрицы Адамара четвертого порядка.
[Выражение 6]
Блок 142 ортогонального преобразования рассчитывает для каждого блока сумму Ph абсолютных значений коэффициентов преобразования, других, кроме коэффициентов преобразования координаты (0,0) матрицы Р' коэффициента преобразования (коэффициент преобразования компонента DC (ПТ, постоянного тока)). Таким образом, Ph представляет собой сумму абсолютных значений коэффициентов преобразования компонентов АС (ПерТ, переменного тока), которые скоррелированы с количеством кодов среди коэффициентов преобразования в блоке, после выполнения преобразования Адамара. Кроме того, блок 142 ортогонального преобразования рассчитывает общую сумму DCtotal Ph для всех блоков изображения. Следует отметить, что меньшее значение DCtotal получают, когда изображение становится проще, в котором сконцентрированы компоненты частот. Кроме того, большее значение DCtotal получают, по мере того, как изображение становится усложненным, в котором рассредоточены компоненты частоты.
На этапе S62 фильтр 124 удаления блоков регулирует параметры, относящиеся к обработке удаления блоков. В частности, блок 142 ортогонального преобразования передает информацию, обозначающую рассчитанное значение DCtotal, в фильтр 124 удаления блоков. Фильтр 124 удаления блоков регулирует значения disable_deblocking_filter_idc, slice_alpha_c0_offset_div2 и slice_beta_offset_div2 в соответствии со значением DCtotal изображения, подвергаемого обработке удаления блоков.
Например, в случае, когда DCtotal меньше, чем заданное пороговое значение Thd, disable_deblocking_filter_idc устанавливают равным 1. Таким образом, для очень простого изображения, в котором генерируются только незначительные шумы и частотные компоненты сконцентрированы, обработку удаления блоков не применяют.
Кроме того, например, в случае, когда DCtotal равно или больше, чем пороговое значение Thd, значения slice_alpha_c0_offset_div2 и slice_beta_offset_div2 регулируют в соответствии со значением DCtotal. Например, по мере того, как значение DCtotal становится меньшим, slice_alpha_c0_offset_div2 и slice_beta_offset_div2 устанавливают равными значениям, близким к -6. Кроме того, по мере того, как значение DCtotal становится большим, slice_alpha_c0_offset_div2 и slice_beta_offset_div2 устанавливают равными значениям, близким к +6. Таким образом, для простого изображения, в котором менее вероятно будет сгенерирован шум блоков, и частотные компоненты сконцентрированы, степень, в которой применяют обработку удаления блоков, уменьшается. Кроме того, для сложного изображения, в котором более вероятно будут сгенерированы шумы блоков, и частотные компоненты рассредоточены, степень, в которой применяют обработку удаления блоков, увеличивается.
На этапе S63, как и в описанной выше обработке на этапе S23 по фиг.3, выполняют обработку удаления блоков, и управление обработкой удаления блоков заканчивается.
Следует отметить, что хотя в приведенном выше описании был описан пример, в котором применяется преобразование Адамара в качестве ортогонального преобразования, можно использовать другие типы ортогонального преобразования, такие как, например, DCT (дискретное косинусное преобразование).
Кроме того, независимо от типа ортогонального преобразования, размеры блоков, которые будут получены при разделении, не ограничены описанными выше 4×4 пикселями. Например, размеры блоков могут быть установлены как желательные размеры, например, 8×8 пикселей.
Как описано выше, в соответствии с DCtotal, обработку удаления блоков правильно выполняют над декодированным изображением, и опорное изображение, из которого были удалены шумы блоков, генерируют с сохранением текстуры. Таким образом, качество изображения для изображения, которое подвергали кодированию с прогнозированием между кадрами, используя опорные изображения, может быть улучшено.
Кроме того, поскольку DCtotal представляет собой общую сумму коэффициентов преобразования, разложенных на частотные компоненты при применении ортогонального преобразования, корреляция относительно сложности кодирования изображения увеличивается. Таким образом, сложность изображения может быть выражена с высокой точностью по сравнению с Activity.
Кроме того, в случае, когда используется DCtotal, перед тем, как изображение будет кодировано, может быть получено количество деталей, представляющее сложность изображения.
Кроме того, вместо блока 142 ортогонального преобразования, коэффициенты ортогонального преобразования могут быть рассчитаны с использованием модуля 115 ортогонального преобразования.
Кроме того, вместо описанного выше DCtotal, то есть общей суммы коэффициентов ортогонального преобразования компонентов переменного тока, можно использовать значения, отражающие размеры коэффициентов ортогонального преобразования компонентов переменного тока изображения, такие как, например, среднее значение коэффициентов ортогонального преобразования компонентов переменного тока.
Четвертый вариант воплощения обработки управления удалением блоков, выполняемой устройством 101 обработки изображения при обработке процесса кодирования, которая была описана выше со ссылкой на фиг.2, будет описан со ссылкой на блок-схему последовательности операций по фиг.6.
На этапе S81 модуль 120 суммирования ошибки прогнозирования рассчитывает общую сумму ошибок прогнозирования. В частности, в случае, когда изображение, предназначенное для кодирования, то есть изображение, для которого разность рассчитывают с помощью сумматора 114, представляет собой Р-изображение или В-изображение, модуль 120 суммирования ошибки прогнозирования суммирует для одного изображения ошибки прогнозирования, переданные из сумматора 114. Таким образом, рассчитывают общую сумму Et ошибок прогнозирования. Следует отметить, что, чем проще прогнозируется изображение движения, то есть чем меньше и проще движение изображения, тем меньше значение Et. Кроме того, чем более сложное движение изображения прогнозируют, то есть чем больше и более сложных движений содержит изображение, тем больше значение Et.
На этапе S82 фильтр 124 удаления блоков регулирует параметры, относящиеся к обработке удаления блоков. В частности, модуль 120 суммирования ошибки прогнозирования передает в фильтр 124 удаления блоков информацию, обозначающую рассчитанную общую сумму Et ошибок прогнозирования. Фильтр 124 удаления блоков регулирует значения disable_deblocking_fllter_idc, slice_alpha_c0_offset_div2 и slice_beta_offset_div2 в соответствии со значением Et.
Например, в случае, когда Et меньше, чем заданное пороговое значение The, disable_deblocking_fllter_idc устанавливают равным 1. Таким образом, для изображения, в котором генерируются только незначительные шумы блоков и происходит очень малое движение, обработку удаления блоков не применяют.
Кроме того, например, в случае, когда значение Et равно или больше, чем пороговое значение The, значения slice_alpha_c0_offset_div2 и slice_beta_offset_div2 регулируют в соответствии со значением Et. Например, по мере того, как значение Et становится меньшим, slice_alpha_c0_offset_div2 и slice_beta_offset_div2 устанавливают близкими -6. Кроме того, по мере того, как значение Et становится большим, slice_alpha_c0_offset_div2 и slice_beta_offset_div2 устанавливают близкими +6. Таким образом, для простого изображения, в котором менее вероятно генерируются шумы блока и возникает малое количество движений, степень, в которой применяют обработку удаления блоков, уменьшается. Кроме того, для сложного изображения, в котором более вероятно будут генерированы шумы блока и возникает большее количество движения, степень, в которой применяют обработку удаления блоков, увеличивается.
На этапе S83, как и в описанной выше обработке по этапу S23 на фиг.3, выполняют обработку удавления блоков, и обработка управления удаления блоков заканчивается.
Как описано выше, в соответствии со значением Et, обработку удавления блоков соответствующим образом выполняют над декодированным изображением, и опорное изображение, из которого были удалены шумы блоков, генерируют при сохранении текстуры. Таким образом, качество изображения для изображения, подвергавшегося кодированию с прогнозированием между кадрами, при использовании этого опорного изображения, может быть улучшено.
Кроме того, в случае, когда Et используют перед кодированием изображения, может быть получено количество деталей, представляющее сложность изображения.
Кроме того, вместо описанного выше Et, которое представляет собой общую сумму ошибок прогнозирования, можно использовать значения, отражающие размеры ошибок прогнозирования для изображения, такие как, например, среднее значение коэффициентов ортогонального преобразования.
Как описано выше, в соответствии со свойством изображения, можно правильно выполнять обработку удаления блоков. В результате, субъективное качество изображения может быть улучшено.
Следует отметить, что, хотя в описанном выше описании пример, в котором по отдельности используется любое из значений Complexity, Activity, DCtotal и Et таким образом, что значения disable_deblocking_filter_idc, slice_alpha_c0_offset_div2 и slice_beta_offset_div2 можно регулировать, было представлено, что сложность изображения может быть определена с использованием множества значений таким образом, что значения disable_deblocking_filteri_dc, slice_alpha_c0_offset_div2 и slice_beta_offset_div2 можно регулировать на основе результата.
Кроме того, хотя в приведенном выше описании был описан пример, в котором кодирование выполняют с использованием способа H.264/AVC, настоящее изобретение также применимо для случая, в котором кодирование выполняют с использованием способа кодирования, в котором применяется фильтр удаления блоков в цикле, такой как, например, MPEG-4 (Экспертная группа по вопросам движущегося изображения, фаза 4) или способ VC-1 (Видео Кодек 1).
Описанная выше последовательность обработки может выполняться с помощью аппаратных или программных средств. В случае, когда данные последовательности обработки выполняют с помощью программных средств, программу, составляющую эти программные средства, устанавливают с носителя записи программы в компьютер, встроенный в специализированное аппаратное средство или, например, в персональный компьютер общего назначения, который выполнен с возможностью выполнения различных функций на основе различных программ, установленных в нем.
На фиг.7 показана блок-схема, представляющая пример конфигурации персонального компьютера 300, который выполняет описанную выше последовательность обработки с помощью программы. ЦПУ (центральное процессорное устройство) 301 выполняет различные типы обработки в соответствии с программой, сохраненной в ПЗУ (постоянное запоминающее устройство) 302 или в модуле 308 записи. Программу, выполняемую ЦПУ 301, данные и т.п. в соответствующих случаях сохраняют в ОЗУ (оперативное запоминающее устройство) 303. ЦПУ 301, ПЗУ 302 и ОЗУ 303 соединены друг с другом через шину 304.
Интерфейс 305 ввода/вывода соединен с ЦПУ 301 через шину 304. Модуль 306 ввода, состоящий из клавиатуры, мыши, микрофона и т.п., и модуль 307 вывода, состоящий из дисплея, громкоговорителя и т.п., подключены к интерфейсу 305 ввода/вывода. ЦПУ 301 выполняет различные типы обработки в соответствии с инструкциями, вводимыми модулем 306 ввода. ЦПУ 301 выводит результат обработки в модуль 307 вывода.
Модуль 308 записи, соединенный с интерфейсом 305 ввода/вывода, состоит, например, из жесткого диска. Модуль 308 записи содержит программы, предназначенные для выполнения ЦПУ 301 и различные данные. Модуль 309 передачи данных связывается с внешними устройствами через сеть, такую как Интернет или локальная вычислительная сеть.
Кроме того, программа может быть получена через модуль 309 передачи данных и сохранена в модуле 308 записи.
Когда съемный носитель 311 информации, такой как магнитный диск, оптический диск, магнитооптический диск или полупроводниковая память, установлен в привод 310, соединенный с интерфейсом 305 ввода/вывода, привод 310 осуществляет привод съемного носителя 311 информации и получает программу и данные, записанные на съемном носителе 311. Полученные программу и данные передают и сохраняют в модуле 308 записи, когда это необходимо.
Носитель записи программы, который установлен в компьютер и в котором содержатся программы, выполняемые программы компьютером, состоит из съемного носителя 311, который представляет собой упакованный носитель, такой как магнитный диск (включая в себя гибкий диск), оптический диск (включая в себя CD-ROM (Компакт-диск, предназначенный только для считывания) или DVD (Цифровой универсальный диск)), магнитооптический диск или полупроводниковую память, ПЗУ 302, в которой временно или постоянно записана программа, или жесткий диск, формирующий модуль 308 записи, как показано на фиг.7. Программа сохранена на носителе записи программы, используя проводную или беспроводную среду передачи данных, такую как локальная вычислительная сеть, Интернет или цифровая спутниковая широковещательная передача, через модуль 309 передачи данных, который представляет собой интерфейс, такой как маршрутизатор или модем, когда это необходимо.
Следует отметить, что в данном описании, этапы, описывающие программу, сохраненную на носителе записи программы, включают в себя не только обработку, выполняемую во временной последовательности в соответствии с записанным порядком, но также и обработку, выполняемую параллельно или независимо, при этом обработка не обязательно должна выполняться с соблюдением временной последовательности.
Кроме того, вариант воплощения настоящего изобретения не ограничивается описанными выше вариантами воплощения, и различные изменения могут быть выполнены без выхода за пределы сущности настоящего изобретения.