Область техники, к которой относится изобретение
Настоящее изобретение касается устройства обработки изображений и способа обработки изображений.
Уровень техники
H.264/AVC, один из стандартов схемы кодирования изображений, применяет фильтр удаления блочности к границе блока в объединениях блоков, каждый из которых содержит, например, 4×4 пикселей, что нужно для предотвращения ухудшения качества изображения из-за блочности изображения при его кодировании. Фильтр удаления блочности требует большого объема обработки и может требовать, например, до 50% всего объема обработки при декодировании изображений.
Стандартная работа для высокоэффективного видеокодирования (HEVC), схема кодирования изображений следующего поколения, предлагает применение фильтра удаления блочности в объединениях блоков, каждый из которых содержит 8×8 пикселей или более в соответствии с JCTVC-A119 (смотри документ 1, который не относится к патентной литературе 1). Технология, предложенная в JCTVC-A119, увеличивает размер блока до минимального элемента, который позволяет применить фильтр удаления блочности для параллельного осуществления процессов фильтрации границ блока в том же направлении в одном макроблоке.
Список цитируемой литературы
Литература, не относящаяся к патентам
Документ 1, который не относится к патентной литературе: К Угур (K. Ugur) (компания Nokia), К.Р. Андерссон (K.R. Andersson) (компания LM Ericsson), А. Фалдсет (A.Fuldseth) (компания Tandberg Telecom), "JCTVC-A119: предложение по технологии видеокодирования, Tandberg, Nokia и Ericsson", документы первого собрания Объединенной команды по видеокодированию (JCT-VC), Дрезден, Германия, 15-23 апреля, 2010.
Сущность изобретения
Техническая задача
Даже при использовании технологии, предложенной в JCTVC-A119, остается зависимость между обработкой вертикальной границы блока и обработкой горизонтальной границы блока. Более конкретно, обработка вертикальной границы блока для одного макроблока ждет осуществления обработки горизонтальной границы соседнего макроблока. Обработка горизонтальной границы блока для одного макроблока ждет осуществления обработки вертикальной границы того же макроблока. Описанная выше технология обеспечивает только очень ограниченную параллельную обработку, осуществляемую фильтром удаления блочности. Соответственно, описанная выше технология не может успешно решить проблемы задержки и уменьшить скорости обработки данных из-за большого объема обработки при применении фильтра удаления блочности.
Технология, соответствующая этому изобретению, направлена на то, чтобы предоставить устройство обработки изображений и способ обработки изображений, которые способны обеспечить дополнительное распараллеливание обработки при применении фильтра удаления блочности.
Решение задачи
В соответствии с некоторым вариантом осуществления настоящего изобретения предложено устройство обработки изображений, содержащее: секцию декодирования, приспособленную для декодирования изображения из закодированного потока, секцию горизонтальной фильтрации, приспособленную для применения фильтра удаления блочности к вертикальной границе блока в изображении, которое должно быть декодировано в секции декодирования, секцию вертикальной фильтрации, приспособленную для применения фильтра удаления блочности к горизонтальной границе блока в изображении, которое должно быть декодировано в секции декодирования, и секцию управления, в результате работы которой в секции горизонтальной фильтрации параллельно фильтруют несколько вертикальных границ блока, содержащихся в обрабатываемом элементе, который включает в себя несколько кодируемых элементов, и в секции вертикальной фильтрации параллельно фильтруют несколько горизонтальных границ блока, содержащихся в обрабатываемом элементе.
Как правило, устройство обработки изображений может быть реализовано в виде устройства декодирования изображений, которое декодирует изображения.
В соответствии с некоторым вариантом осуществления настоящего изобретения предложен способ обработки изображений, включающий в себя следующее: декодируют изображение из закодированного потока, осуществляют горизонтальную фильтрацию путем применения фильтра удаления блочности к вертикальной границе блока в изображении, которое должно быть декодировано, осуществляют вертикальную фильтрацию путем применения фильтра удаления блочности к горизонтальной границе блока в изображении, которое должно быть декодировано, и управляют горизонтальной фильтрацией и вертикальной фильтрацией так, чтобы параллельно фильтровать несколько вертикальных границ блока, содержащихся в обрабатываемом элементе, который включает в себя несколько кодируемых элементов, и параллельно фильтровать несколько горизонтальных границ блока, содержащихся в обрабатываемом элементе.
В соответствии с некоторым вариантом осуществления настоящего изобретения предложено устройство обработки изображений, содержащее: секцию горизонтальной фильтрации, приспособленную для применения фильтра удаления блочности к вертикальной границе блока в изображении, которое должно быть локально декодировано при кодировании изображения, которое должно быть закодировано, секцию вертикальной фильтрации, приспособленную для применения фильтра удаления блочности к горизонтальной границе блока в изображении, секцию управления, в результате работы которой в секции горизонтальной фильтрации параллельно фильтруют несколько вертикальных границ блока, содержащихся в обрабатываемом элементе, который включает в себя несколько кодируемых элементов, и в секции вертикальной фильтрации параллельно фильтруют несколько горизонтальных границ блока, содержащихся в обрабатываемом элементе, и секцию кодирования, приспособленную для кодирования изображения, которое должно быть закодировано, с использованием изображения, прошедшего фильтрацию с помощью секции горизонтальной фильтрации и секции вертикальной фильтрации.
Как правило, устройство обработки изображений может быть реализовано в виде устройства кодирования изображений, которое кодирует изображения.
В соответствии с некоторым вариантом осуществления настоящего изобретения предложен способ обработки изображений, включающий в себя следующее: осуществляют горизонтальную фильтрацию путем применения фильтра удаления блочности к вертикальной границе блока в изображении, которое должно быть локально декодировано при кодировании изображения, которое должно быть закодировано, осуществляют вертикальную фильтрацию путем применения фильтра удаления блочности к горизонтальной границе блока в изображении, управляют горизонтальной фильтрацией и вертикальной фильтрацией так, чтобы параллельно фильтровать несколько вертикальных границ блока, содержащихся в обрабатываемом элементе, который включает в себя несколько кодируемых элементов, и параллельно фильтровать несколько горизонтальных границ блока, содержащихся в обрабатываемом элементе, и кодируют изображение, которое должно быть закодировано, с использованием изображения, прошедшего фильтрацию в ходе горизонтальной фильтрации и вертикальной фильтрации.
Полезные эффекты изобретения
Как описано выше, устройство обработки изображений и способ обработки изображений, соответствующие варианту осуществления настоящего изобретения, дополнительно улучшают параллельную обработку при использовании фильтра удаления блочности.
Краткое описание чертежей
фиг. 1 - вид, показывающий структурную схему одного примера структуры устройства кодирования изображений в соответствии с некоторым вариантом осуществления изобретения;
фиг. 2 - вид, показывающий структурную схему одного примера структуры устройства декодирования изображений в соответствии с некоторым вариантом осуществления изобретения;
фиг. 3 - пояснительный вид, показывающий один пример соседних пикселей вокруг границы;
фиг. 4 - пояснительный вид, иллюстрирующий опорные пиксели во время процессов определения необходимости фильтрации в соответствии с существующей технологией;
фиг. 5 - пояснительный вид, показывающий пиксели, обновленные с помощью процессов фильтрации;
фиг. 6 - пояснительный вид, показывающий определение краев для описания варианта осуществления изобретения;
фиг. 7 - пояснительный вид, иллюстрирующий параллельную обработку в соответствии с существующей технологией.
фиг. 8 - первый пояснительный вид, иллюстрирующий зависимость между процессами, соответствующими существующей технологии;
фиг. 9 - второй пояснительный вид, иллюстрирующий зависимость между процессами, соответствующими существующей технологии;
фиг. 10 - пояснительный вид, иллюстрирующей последовательность процессов в соответствии с существующей технологией;
фиг. 11 - пояснительный вид, иллюстрирующий последовательность процессов в соответствии с первым демонстрационным примером;
фиг. 12 - структурная схема, иллюстрирующая подробную структуру фильтра удаления блочности в соответствии с первым вариантом осуществления изобретения;
фиг. 13 - структурная схема, показывающая подробную структуру секции определения;
фиг. 14 - пояснительный вид, показывающий соседние блоки вокруг границы среза;
фиг. 15 - пояснительный вид, показывающий первый пример последовательности процессов, для каждого среза;
фиг. 16 - пояснительный вид, показывающий второй пример последовательности процессов, для каждого среза;
фиг. 17 - пояснительный вид, иллюстрирующий первый и второй примеры технологии определения, предложенной в модификации;
фиг. 18 - пояснительный вид, иллюстрирующий третий и четвертый примеры технологии определения, предложенной в модификации;
фиг. 19 - пояснительный вид, иллюстрирующий пятый и шестой примеры технологии определения, предложенной в модификации;
фиг. 20 - вид, показывающий блок-схему, иллюстрирующую пример последовательности операций обработки для фильтра удаления блочности в соответствии с первым демонстрационным примером;
фиг. 21 - вид, показывающий блок-схему, иллюстрирующую последовательность операций процесса определения необходимости фильтрации;
фиг. 22 - пояснительный вид, иллюстрирующий последовательность процессов в соответствии со вторым демонстрационным примером;
фиг. 23 - вид, показывающий структурную схему, иллюстрирующую подробную структуру фильтра удаления блочности, в соответствии со вторым демонстрационным примером;
фиг. 24 - вид, показывающий блок-схему, иллюстрирующую пример последовательности операций обработки для фильтра удаления блочности в соответствии со вторым демонстрационным примером;
фиг. 25 - пояснительный вид, показывающий последовательность операций обработки для каждого LCU;
фиг. 26 - вид, показывающий блок-схему, иллюстрирующую последовательность операций обработки для каждого LCU;
фиг.27 - пояснительный вид, иллюстрирующий обзор третьего демонстрационного примера;
фиг. 28 - вид, показывающий структурную схему, иллюстрирующую подробную структуру фильтра удаления блочности в соответствии с третьим демонстрационным примером;
фиг. 29 - пояснительный вид, иллюстрирующий определение веса для взвешенного среднего;
фиг. 30 - пояснительный вид, иллюстрирующий пример веса для взвешенного среднего;
фиг. 31 - пояснительный вид, иллюстрирующий выходное значение пикселя из секции вычисления в соответствии с третьим демонстрационным примером;
фиг. 32 - пояснительный вид, показывающий первый пример последовательности операций обработки для сравнения;
фиг. 33 - пояснительный вид, показывающий первый пример последовательности операций обработки, предусмотренный в третьем демонстрационном примере;
фиг. 34 - пояснительный вид, показывающий второй пример последовательности операций обработки для сравнения;
фиг. 35 - пояснительный вид, показывающий второй пример последовательности операций обработки, предусмотренный в третьем демонстрационном примере;
фиг. 36 - вид, показывающий блок-схему, иллюстрирующую первый пример последовательности операций обработки для фильтра удаления блочности в соответствии с третьим демонстрационным примером;
фиг. 37 - вид, показывающий блок-схему, иллюстрирующую последовательность операций процесса вычисления значений пикселей, который показан на фиг. 36;
фиг. 38 - пояснительный вид, показывающий кодек нескольких видов;
фиг. 39 - пояснительный вид, показывающий процесс кодирования изображений, соответствующий варианту осуществления изобретения, примененному в кодеке нескольких видов;
фиг. 40 - пояснительный вид, показывающий процесс декодирования изображений, соответствующий варианту осуществления изобретения, примененному в кодеке нескольких видов;
фиг. 41 - пояснительный вид, показывающий масштабируемый кодек;
фиг. 42 - пояснительный вид, показывающий процесс кодирования изображений, соответствующий варианту осуществления изобретения, примененному в масштабируемом кодеке;
фиг. 43 - пояснительный вид, показывающий процесс декодирования изображений, соответствующий варианту осуществления изобретения, примененному в масштабируемом кодеке;
фиг. 44 - вид, показывающий схематическую структуру телевизионного устройства;
фиг. 45 - вид, показывающий схематическую структуру устройства мобильного телефона;
фиг. 46 - вид, показывающий схематическую структуру устройства записи/воспроизведения;
фиг. 47 - вид, показывающий схематическую структуру устройства формирования изображений.
Описание вариантов осуществления изобретения
Далее со ссылками на приложенные чертежи будут подробно описаны предпочтительные варианты осуществления настоящего изобретения. Заметим, что в этом описании и на чертежах элементы, выполняющие по существу одинаковые функции и имеющие аналогичную структуру, обозначены одинаковыми ссылочными позициями и их повторное описание опущено.
Вариант осуществления изобретения будет описан в следующем порядке.
1. Обзор устройства
1-1. Устройство кодирования изображений
1-2. Устройство декодирования изображений
2. Существующая технология
2-1. Базовая структура фильтра удаления блочности
2-2. Зависимость между процессами в соответствии с существующей
технологией
3. Первый демонстрационный пример
3-1. Пример структуры фильтра удаления блочности
3-2. Модификации условий определения
3-3. Последовательность операций обработки
4. Второй демонстрационный пример
4-1. Пример структуры фильтра удаления блочности
4-2. Последовательность операций обработки
4-3. Пример процесса для каждого LCU
5. Третий демонстрационный пример
5-1. Обзор
5-2. Пример структуры фильтра удаления блочности
5-3. Пример последовательности операций обработки
5-4. Последовательность операций обработки
6. Применение для различных кодеков
6-1. Кодек нескольких видов
6-2. Масштабируемый кодек
7. Примеры приложений
8. Подведение итогов
1. Обзор устройства
Далее со ссылками на фиг. 1 и 2 приведено общее описание устройства, в котором применима технология, предложенная в этом описании. Технология, предложенная в этом описании, применима, например, к устройству кодирования изображений и устройству декодирования изображений.
[1-1. Устройство кодирования изображений]
На фиг. 1 показана структурная схема одного примера структуры устройства 10 кодирования изображений в соответствии с некоторым вариантом осуществления изобретения. Как показано на фиг. 1, устройство 10 кодирования изображений содержит секцию 11 А/Ц (аналого-цифрового) преобразования, буфер 12 переупорядочивания, секцию 13 вычитания, секцию 14 ортогонального преобразования, секцию 15 квантования, секцию 16 кодирования без потерь, буфер 17 накопления, секцию 18 управления скоростью, секцию 21 обратного квантования, секцию 22 обратного ортогонального преобразования, секцию 23 сложения, фильтр 24а удаления блочности, память 25 кадра, переключатель 26, секцию 30 предсказания без компенсации движения, секцию 40 оценки движения и секцию 50 выбора режима.
В секции 11 А/Ц преобразования преобразуют входной сигнал изображения аналогового формата в данные изображения цифрового формата и подают набор данных цифрового изображения в буфер 12 переупорядочивания.
В буфере 12 переупорядочивания изменяют порядок изображений, содержащихся в наборе данных изображения, который поступил из секции 11 А/Ц преобразования. После переупорядочивания изображений в соответствии со ГИ (группа изображений) структурой согласно процессу кодирования, в буфере 12 переупорядочивания выводят данные изображения, которые были переупорядочены, в секцию 13 вычитания, секцию 30 предсказания без компенсации движения и секцию 40 оценки движения.
Данные изображения, полученные из буфера 12 переупорядочивания, и предсказанные данные изображения, выбранные в секции 50 выбора режима, подают в секцию 13 вычитания. В секции 13 вычитания вычисляют данные предсказанной ошибки, которые являются разностью между данными изображения, полученными из буфера 12 переупорядочивания, и предсказанными данными изображения, полученными из секции 50 выбора режима, и выводят вычисленные данные предсказанной ошибки в секцию 14 ортогонального преобразования.
В секции 14 ортогонального преобразования осуществляют ортогональное преобразование для данных предсказанной ошибки, полученных из секции 13 вычитания. Ортогональное преобразование, которое осуществляют в секции 14 ортогонального преобразования, может быть, например, дискретным косинусным преобразованием (ДКП) или преобразованием Карунена-Лоэва. В секции 14 ортогонального преобразования выводят данные коэффициентов преобразования, полученные в процессе ортогонального преобразования, в секцию 15 квантования.
Данные коэффициентов преобразования, полученные из секции 14 ортогонального преобразования, и сигнал управления скоростью из секции 18 управления скоростью, описанной ниже, подают в секцию 15 квантования. В секции 15 квантования осуществляют квантование данных коэффициентов преобразования и выводят данные коэффициентов преобразования, которые прошли квантование (здесь и далее называются квантованными данными), в секцию 16 кодирования без потерь и секцию 21 обратного квантования. Также в секции 15 квантования переключают параметр квантования (шкала квантования) на основе сигнала управления скоростью от секции 18 управления скоростью, чтобы таким образом изменять скорость передачи квантованных данных, передаваемых в секцию 16 кодирования без потерь.
Квантованные данные, полученные из секции 15 квантования, информацию, описанную ниже и касающуюся предсказания без компенсации движения или предсказания с компенсацией движения и выработанную секцией 30 предсказания без компенсации движения или секцией 40 оценки движения и выбранную секцией 50 выбора режима, подают в секцию 16 кодирования без потерь. Информация о предсказании без компенсации движения может содержать информацию о режиме предсказания, которая показывает, например, оптимальный режим предсказания без компенсации движения для каждого блока. Также информация о предсказании с компенсацией движения может содержать, например, информацию о режиме предсказания для предсказания вектора движения для каждого блока, информацию о разности векторов движения, информацию об опорном изображении и подобную информацию.
В секции 16 кодирования без потерь вырабатывают закодированный поток, что делают путем осуществления процесса кодирования без потерь для квантованных данных. Кодирование без потерь, осуществляемое секцией 16 кодирования без потерь, может быть, например, кодированием с переменной длиной слова или арифметическим кодированием. Более того, в секции 16 кодирования без потерь объединяют информацию о предсказании без компенсации движения или информацию о предсказании с компенсацией движения, которые упомянуты выше, в заголовок закодированного потока (например, заголовок блока, заголовок среза или что-то подобное). Далее в секции 16 кодирования без потерь выводят выработанный закодированный поток в буфер 17 накопления.
В буфере 17 накопления временно сохраняют закодированный поток, полученный из секции 16 кодирования без потерь, с использованием носителя информации, такого как полупроводниковая память. Далее в буфере 17 накопления подают на выход накопленный закодированный поток со скоростью, соответствующей полосе частот линии передачи (или линии вывода из устройства 10 кодирования изображений).
В секции 18 управления скоростью отслеживают свободное пространство буфера 17 накопления. Далее в секции 18 управления скоростью вырабатывают сигнал управления скоростью, соответствующий свободному пространству в буфере 17 накопления, и выводят выработанный сигнал управления скоростью в секцию 15 квантования. Например, когда нет большого количества свободного пространства в буфере 17 накопления, в секции 18 управления скоростью вырабатывают сигнал управления скоростью, предназначенный для снижения скорости передачи квантованных данных. Также, например, когда свободного пространства в буфере 17 накопления достаточно много, в секции 18 управления скоростью вырабатывают сигнал управления скоростью, предназначенный для повышения скорости передачи квантованных данных.
В секции 21 обратного квантования осуществляют процесс, обратный квантованию, для квантованных данных, полученных из секции 15 квантования. Далее в секции 21 обратного квантования выводят данные коэффициентов преобразования, полученные в процессе, обратном квантованию, в секцию 22 обратного ортогонального преобразования.
В секции 22 обратного ортогонального преобразования осуществляют процесс, обратный ортогональному преобразованию, для данных коэффициентов преобразования, полученных из секции 21 обратного квантования, что делают с целью восстановления данных предсказанной ошибки. Далее в секции 22 обратного ортогонального преобразования выводят восстановленные данные предсказанной ошибки в секцию 23 сложения.
В секции 23 сложения складывают восстановленные данные предсказанной ошибки, полученные из секции 22 обратного ортогонального преобразования, и предсказанные данные изображения, полученные из секции 50 выбора режима, что делают с целью выработки данных декодированного изображения. Далее в секции 23 сложения выводят выработанные данные декодированного изображения в фильтр 24а удаления блочности и память 25 кадра.
В фильтре 24а удаления блочности осуществляют процессы фильтрации, направленные на уменьшение блочности изображения, которая возникает при кодировании изображений. Например, в фильтре 24а удаления блочности определяют необходимость фильтрации каждой границы блока для данных декодированного изображения, поданных из секции 23 сложения, и применяют фильтр удаления блочности к границе, для которой определена необходимость фильтрации. Также из секции 23 сложения на фильтр 24а удаления блочности подают информацию, используемую для определения необходимости фильтрации (например, информацию о режиме, информацию о коэффициентах преобразования и информацию о векторе движения), а также данные декодированного изображения. После фильтрации из данных декодированного изображения исключают блочность и с помощью фильтра 24а удаления блочности подают данные декодированного изображения в память 25 кадра. Процесс работы фильтра 24а удаления блочности будет подробнее описан ниже.
В памяти 25 кадра сохраняют с использованием носителя информации данные декодированного изображения, полученные из секции 23 сложения, и данные декодированного изображения после фильтрации, полученные из фильтра 24 удаления блочности.
В переключателе 26 считывают из памяти 25 кадра данные декодированного изображения до фильтрации, то есть данные, которые используют для предсказания без компенсации движения, и подают считанные данные декодированного изображения в секцию 30 предсказания без компенсации движения в качестве данных опорного изображения. Также в переключателе 26 считывают из памяти 25 кадра данные декодированного изображения после фильтрации, которые используют для предсказания с компенсацией движения, и подают считанные данные декодированного изображения в секцию 40 оценки движения в качестве данных опорного изображения.
В секции 30 предсказания без компенсации движения осуществляют процесс предсказания без компенсации движения в каждом режиме предсказания без компенсации движения на основе кодируемых данных изображения, которые получены из буфера 12 переупорядочивания, и данных декодированного изображения, полученных через переключатель 26. Например, в секции 30 предсказания без компенсации движения оценивают результат предсказания для каждого режима предсказания без компенсации движения с использованием заданной целевой функции. Далее в секции 30 предсказания без компенсации движения выбирают в качестве оптимального режима предсказания без компенсации движения режим предсказания без компенсации движения, для которого значение целевой функции принимает наименьшее значение, то есть режим предсказания без компенсации движения с наибольшей степенью сжатия. Более того, в секции 30 предсказания без компенсации движения выводят в секцию 50 выбора режима информацию о режиме предсказания, показывающую оптимальный режим предсказания без компенсации движения, предсказанные данные изображения и информацию о предсказании без компенсации движения, такую как значение целевой функции.
В секции 40 оценки движения осуществляют процесс предсказания с компенсацией движения (процесс предсказания между кадрами) на основе данных изображения для кодирования, поданных из буфера 12 переупорядочивания, и данных декодированного изображения, проданных через переключатель 26. Например, в секции 40 оценки движения оценивают результат предсказания для каждого режима предсказания без компенсации движения с использованием заданной целевой функции. Далее в секции 40 оценки движения выбирают оптимальный режим предсказания, а именно режим предсказания, который минимизирует значение целевой функции или максимизирует степень сжатия. В секции 40 оценки движения вырабатывают предсказанные данные изображения в соответствии с оптимальным режимом предсказания. В секции 40 оценки движения подают на секцию 50 выбора режима информацию о предсказании с компенсацией движения, такую как информация о режиме предсказания, указывающая оптимальный режим предсказания без компенсации движения, предсказанные данные изображения и значение целевой функции.
В секции 50 выбора режима сравнивают значение целевой функции, связанное с предсказанием без компенсации движения, полученным из секции 30 предсказания без компенсации движения, и значение целевой функции, связанное с предсказанием с компенсацией движения, полученным из секции 40 оценки движения. Далее в секции 50 выбора режима выбирают способ предсказания с наименьшим значением целевой функции из предсказания без компенсации движения и предсказания с компенсацией движения. В случае выбора предсказания без компенсации движения с помощью секции 50 выбора режима выдают информацию о предсказании без компенсации движения в секцию 16 кодирования без потерь и также подают предсказанные данные изображения в секцию 13 вычитания и секцию 23 сложения. Также в случае выбора предсказания с компенсацией движения с помощью секции 50 выбора режима подают описанную выше информацию о предсказании с компенсацией движения в секцию 16 кодирования без потерь и также подают предсказанные данные изображения в секцию 13 вычитания и секцию 23 сложения.
[1-2. Устройство декодирования изображений]
На фиг. 2 показана структурная схема одного примера структуры устройства 60 декодирования изображений в соответствии с некоторым вариантом осуществления изобретения. Как показано на фиг. 2, устройство 60 декодирования изображений содержит буфер 61 накопления, секцию 62 декодирования без потерь, секцию 63 обратного квантования, секцию 64 обратного ортогонального преобразования, секцию 65 сложения, фильтр 66 удаления блочности, буфер 67 сортировки, секцию 68 Ц/А (цифро-аналогового) преобразования, память 69 кадра, переключатели 70 и 71, секцию 80 предсказания без компенсации движения и секцию 90 компенсации движения.
В буфере 61 накопления с использованием носителя информации временно хранят закодированный поток, полученный через линию передачи.
В секции 62 декодирования без потерь декодируют закодированный поток, полученный из буфера 61 накопления, что делают в соответствии со способом кодирования, использованным во время кодирования. Также в секции 62 декодирования без потерь декодируют информацию, объединенную в области заголовка закодированного потока. Информация, которая объединена в области заголовка закодированного потока, может содержать, например, информацию о предсказании без компенсации движения и информацию о предсказании с компенсацией движения в заголовке блока. В секции 62 декодирования без потерь выводят в секцию 80 предсказания без компенсации движения информацию о предсказании без компенсации движения. Также в секции 62 декодирования без потерь выводят в секцию 90 компенсации движения информацию о предсказании с компенсацией движения.
В секции 63 обратного квантования осуществляют преобразование, обратное квантованию, для квантованных данных, которые были декодированы в секции 62 декодирования без потерь. В секции 64 обратного ортогонального преобразования вырабатывают данные предсказанной ошибки путем осуществления преобразования, обратного ортогональному преобразованию, для данных коэффициентов преобразования, полученных из секции 63 обратного квантования, что делают в соответствии со способом ортогонального преобразования, используемого во время кодирования. Далее в секции 64 обратного ортогонального преобразования выводят в секцию 65 сложения выработанные данные предсказанной ошибки.
В секции 65 сложения складывают данные предсказанной ошибки, полученные из секции 64 обратного ортогонального преобразования, и предсказанные данные изображения, полученные из переключателя 71, что делают с целью выработки данных декодированного изображения. Далее в секции 65 сложения выводят выработанные данные декодированного изображения в фильтр 24b удаления блочности и память 69 кадра.
В фильтре 24b удаления блочности осуществляют процессы фильтрации, направленные на уменьшение блочности изображения, которая видна в декодированном изображении. В фильтре 24b удаления блочности определяют необходимость фильтрации каждой границы, например, блока для данных декодированного изображения, поданных из секции 65 сложения, и применяют фильтр удаления блочности к границе, для которой определена необходимость фильтрации. Также из секции 65 сложения в фильтр 24b удаления блочности подают информацию, используемую для определения необходимости фильтрации, а также данные декодированного изображения. После фильтрации из данных декодированного изображения исключают блочность изображения и с помощью фильтра 24b удаления блочности подают данные декодированного изображения в буфер 67 переупорядочивания и память 69 кадра. Процесс работы фильтра 24b удаления блочности будет подробнее описан ниже.
В буфере 67 переупорядочивания вырабатывают набор данных изображения во временной последовательности, что делают путем переупорядочивания изображений, полученных из фильтра 24b удаления блочности. Далее в буфере 67 переупорядочивания выводят в секцию 68 Ц/А преобразования выработанные данные изображения.
В секции 68 Ц/А преобразования преобразуют находящиеся в цифровом формате данные изображения, полученные из буфера 67 переупорядочивания, в сигнал изображения аналогового формата. Далее работа секции 68 Ц/А преобразования приводит к отображению изображения путем вывода аналогового сигнала с изображением на дисплей (не показан), который, например, соединен с устройством 60 декодирования изображений.
В памяти 69 кадра используют носитель данных для хранения данных декодированного изображения до фильтрации, полученных из секции 65 сложения, и данных декодированного изображения после фильтрации, полученных из фильтра 24 удаления блочности.
В переключателе 70 переключают путь вывода данных изображения из памяти 69 кадра между секцией 80 предсказания без компенсации движения и секцией 90 компенсации движения для каждого блока в изображении, что делают в соответствии с информацией о режиме, полученной в секции 62 декодирования без потерь. Например, в случае установки режима предсказания без компенсации движения, переключатель 70 в качестве данных опорного изображения выводит в секцию 80 предсказания без компенсации движения данные декодированного изображения до фильтрации, которые были поданы из памяти 69 кадра. Также в случае установки режима предсказания с компенсацией движения, переключатель 70 в качестве данных опорного изображения выводит в секцию 90 компенсации движения данные декодированного изображения после фильтрации, которые были поданы из памяти 69 кадра.
В переключателе 71 переключают источник вывода для предсказанных данных изображения, которые необходимо подать в секцию 65 сложения, между секцией 80 предсказания без компенсации движения и секцией 90 компенсации движения для каждого блока в изображении, что делают в соответствии с информацией о режиме, полученной в секции 62 декодирования без потерь. Например, в случае установки режима предсказания без компенсации движения, переключатель 71 подает в секцию 65 сложения предсказанные данные изображения, поданные на выход из секции 80 предсказания без компенсации движения. В случае установки режима предсказания с компенсацией движения, переключатель 71 подает в секцию 65 сложения предсказанные данные изображения, поданные на выход из секции 90 компенсации движения.
В секции 80 предсказания без компенсации движения осуществляют предсказание «в экране» значения пикселя на основе информации о предсказании без компенсации движения, полученной из секции 62 декодирования без потерь, и данных опорного изображения из памяти 69 кадра и вырабатывают предсказанные данные изображения. Далее в секции 80 предсказания без компенсации движения выводят на переключатель 71 выработанные предсказанные данные изображения.
В секции 90 компенсации движения осуществляют процесс предсказания движения на основе информации о предсказании с компенсацией движения, полученной из секции 62 декодирования без потерь, и данных опорного изображения из памяти 69 кадра и вырабатывают предсказанные данные изображения. Далее в секции 90 компенсации движения выводят выработанные предсказанные данные изображения на переключатель 71.
<2. Существующая технология>
[2-1. Базовая структура фильтра удаления блочности]
В общем, обработка с использованием фильтра удаления блочности в существующей схеме кодирования изображений, такой как H.264/AVC или HEVC, содержит два типа процессов, а именно: процессы определения необходимости фильтрации и процессы фильтрации. Далее описаны эти два процесса, например, в HEVC.
(1) Процессы определения необходимости фильтрации
Процессы определения необходимости фильтрации определяют, нужно ли применять фильтр удаления блочности к каждой границе блоков во входном изображении. Границы блока содержат вертикальную границу между блоками, которые примыкают друг к другу по горизонтали, и горизонтальную границу между блоками, которые примыкают друг к другу по вертикали. JCTVC-A119 использует размер блока, равный 8×8 пикселей, в качестве минимального обрабатываемого элемента. Например, макроблок из 16×16 пикселей содержит четыре блока из 8×8 пикселей. Процесс применяют к одной (левой) вертикальной границе и одной (верхней) горизонтальной границе для каждого блока, а именно четыре границы плюс четыре границы, итого в целом восемь границ. Описание предполагает то, что макроблок, как технический термин, содержит кодируемый элемент (CU) в контексте HEVC.
Фиг. 3 является типовым видом, показывающим пример пикселей в двух блоках (соседних блоках) Ba и Bb, примыкающих друг к другу по некоторой границе. Далее в качестве примера описана вертикальная граница, но очевидно описание применимо к горизонтальной границе. В примере с фиг. 3 для представления пикселя в блоке Ba используется символ pij. В этом символе i обозначает индекс столбца и j обозначает индекс строки. Индексы i столбца являются числами, такими как 0, 1, 2 и 3, которые расположены в порядке (справа налево) от столбца, ближайшего к вертикальной границе. Индексы j строки являются числами от 0, 1, 2, …, 7, которые расположены сверху вниз. На чертеже опущена левая половина блока Ba. Символ qkj используют для обозначения пикселя в блоке Bb. В этом символе k обозначает индекс столбца и j обозначает индекс строки. Индексы k столбца являются числами, такими как 0, 1, 2 и 3, которые расположены в порядке (слева направо) от столбца, ближайшего к вертикальной границе. На чертеже опущена правая половина блока Bb.
Следующие условия могут быть использованы для определения необходимости применения фильтра удаления блочности к вертикальной границе между блоками Ba и Bb, показанными на фиг. 3.
Условие определения для компонента яркости (яркость)… Фильтр удаления блочности применяют, если справедливо как условие А, так и условие В.
Условие А:
(А1) Блок Ba и Bb входит в режим предсказания без компенсации движения;
(А2) Блок Ba и Bb обладает ненулевым коэффициентом ортогонального преобразования; или
(A3) или .
Условие В:
.
Условие A3 предполагает вектор движения для блока Ba равным (MVAx,MVAy) и вектор движения для блока Bb равным (MVBx,MVBy) в соответствии с точностью Qpel (1/4 пикселя). Условие В использует β в качестве порогового значения определения для края. Начальное значение β дано в соответствии с параметром квантования. Значение для β является конкретным для пользователя значением с использованием параметра в заголовке среза.
Условие определения для компонента цветности (цветность)… Фильтр удаления блочности применяют тогда, когда справедливо условие А1.
Условие A1: (А1) Блок Ba или Bb входит в режим предсказания без компенсации движения.
Как показано рамками L3 и L6c из пунктирных линий на фиг. 4, процессы определения необходимости фильтрации для общих вертикальных границ (особенно для условия В определения для компонента яркости) обращаются к пикселям в третьей и шестой строках (в предположении, что верхняя строка является первой) в каждом блоке. Аналогично процессы определения необходимости фильтрации для горизонтальных границ обращаются к пикселям (не показанным на фиг. 4) в третьем и шестом столбцах в каждом блоке. Описанные выше условия определения используют для определения необходимости применения фильтра удаления блочности к границе, с которой осуществляют описанные ниже процессы фильтрации.
(2) Процессы фильтрации
Если определено, что к границе необходимо применять фильтр удаления блочности, то процессы фильтрации осуществляют для пикселей, расположенных справа и слева от вертикальной границы, и для пикселей, расположенных выше и ниже горизонтальной границы. Для компонентов яркости в зависимости от значений пикселей переключают силу фильтра между сильным фильтром и слабым фильтром.
Фильтрация компонентов яркости
Выбор силы… Силу фильтра выбирают для каждой строки или столбца. Сильный фильтр выбирают в том случае, если справедливы все условия С1-С3. Слабый фильтр выбирают в том случае, если не выполняется какое-либо из этих условий.
(С1) d<(β>>2);
(C2) ;
(C3) ,
где через j обозначен индекс строки для вертикальной границы или индекс столбца для горизонтальной границы.
Слабая фильтрация
Δ=Clip(-tC,tC,(13(q0j-p0j)+4(q1j-p1j)-5(q2j-p2j)+l6)>>5));
p0j=Clip0-255(p0j+Δ);
q0j=Clip0-255(q0j-Δ);
p1j=Clip0-255(p1j+Δ/2);
q1j=Clip0-255(q1j-Δ/2).
Сильная фильтрация
p0j=Clip0-255((p2j+2p1j+2p0j+2q0j+q1j+4)>>3);
q0j=Clip0-255((p1j+2p0j+2q0j+2q1j+q2j+4)>>3);
p1j=Clip0-255((p2j+p1j+p0j+q0j+2)>>2);
q1j=Clip0-255((p0j+q0j+q1j+q2j+2)>>2);
p2j=Clip0-255((2p3j+3p2j+p1j+p0j+q0j+4)>>3);
q2j=Clip0-255((p0j+q0j+q1j+3q2j+2q3j+4)>>3),
где через Clip(a,b,c) обозначен процесс расположения значения с в диапазоне a≤c≤b, а через Clip0-255(c) обозначен процесс расположения значения с в диапазоне 0≤с≤255.
Фильтрация компонентов цветности
Δ=Clip(-tC,tC, ((((q0j-p0j)<<2)+p1j-q1j+4)>>3));
p0j=Clip0-255(p0j+Δ);
q0j=Clip0-255(q0j-Δ).
Как обозначено рамками С6-С8 и рамками С1-С3 из пунктирных линий с фиг. 5, процессы фильтрации (особенно сильной фильтрации компонент яркости) для в целом вертикальных границ обновляют значения пикселей для первого - третьего и шестого -восьмого столбцов в каждом блоке. Аналогично, процессы фильтрации для горизонтальных границ обновляют значения пикселей для первой - третьей и шестой - восьмой строк в каждом блоке.
[2-2. Зависимость между процессами для существующей технологии]
Для цели описания, как показано на фиг. 6, каждый макроблок МВх (МВ0, МВ1 …), имеющий размер 16×16 пикселей, содержит верхнюю левую вертикальную границу, обозначенную через Vx,0, верхнюю центральную вертикальную границу, обозначенную через Vx,1, нижнюю левую вертикальную границу, обозначенную через Vx,2, нижнюю центральную вертикальную границу, обозначенную через Vx,3, верхнюю левую горизонтальную границу, обозначенную через Нх,0, верхнюю правую горизонтальную границу, обозначенную через Нх,1, левую центральную горизонтальную границу, обозначенную через Нх,2, и правую центральную горизонтальную границу, обозначенную через Нх,3. Для границы Z, например, процесс определения необходимости фильтрации обозначают как JZ, а процесс фильтрации обозначают как FZ.
Описанная выше существующая технология не является причиной зависимости между процессами на границах в одном направлении в одном макроблоке. Следовательно, технология может осуществлять параллельную фильтрацию для вертикальных и горизонтальных границ, например, в одном макроблоке. В качестве примера, фиг. 7 делает ясным, что не существует зависимости между четырьмя процессами фильтрации FV0,0, FV0,1, FV0,2 и FV0,3 (никакой пиксель не обновляют с избыточностью) в макроблоке МВ0 и процессы фильтрации могут быть осуществлены параллельно.
Тем не менее, описанная выше существующая технология оставляет зависимость между процессами фильтрации для вертикальных границ и процессами определения необходимости фильтрации для горизонтальных границ. Существующая технология также оставляет зависимость между процессами фильтрации для горизонтальных границ и процессами определения необходимости фильтрации для вертикальных границ. Если, например, вертикальную границу обрабатывают до горизонтальной границы, то процессы определения необходимости фильтрации необходимо осуществить для горизонтальных границ в заданном макроблоке после завершения процессов фильтрации для вертикальных границ. В качестве примера, на фиг. 8 показано, что в макроблоке МВ0, процесс JH0,0 определения необходимости фильтрации зависит от результатов процессов FV0,0 и FV0,1 фильтрации и процесс JH0,1 определения необходимости фильтрации зависит от результатов процессов FV0,1 фильтрации. Аналогично, в заданном макроблоке процессы определения необходимости фильтрации необходимо осуществлять для вертикальных границ после завершения процесса фильтрации горизонтальной границы для соседнего макроблока. В качестве примера на фиг. 9 показано, что процесс JV1,0 определения необходимости фильтрации для макроблока МВ1 зависит от результатов процессов FH0,1 и FH0,3 фильтрации для макроблока МВ0 и процесс JV1,2 определения необходимости фильтрации для макроблока МВ1 зависит от результатов процесса FH0,3 фильтрации для макроблока МВ0.
Существующая технология подразумевает зависимость между процессами и, следовательно, обеспечивает очень ограниченную параллельную обработку фильтром удаления блочности, даже при использовании технологии, предложенной в JCTVC-A119.
На фиг. 10 показан вид, иллюстрирующий последовательность процессов, осуществляемых фильтром удаления блочности, в соответствии с существующей технологией. В этом примере предполагают, что на фильтр удаления блочности подают изображение размера 32×32 пикселя. Входное изображение содержит четыре макроблока МВ0-МВ3, каждый из которых имеет размер 16×16 пикселя.
На фиг. 10 рамка из пунктирных линий представляет процесс, который выполняют параллельно. Например, на первом этапе осуществляют параллельно процессы JV0,0, JV0,1, JV0,2 и JV0,3 определения необходимости фильтрации для четырех вертикальных границ макроблока МВ0. На втором этапе осуществляют параллельно процессы FV0,0, FV0,1, FV0,2 и FV0,3 фильтрации для четырех вертикальных границ макроблока МВ0. После завершения второго этапа на третьем этапе осуществляют параллельно процессы JH0,0, JH0,1, JH0,2 и JH0,3 определения необходимости фильтрации для четырех горизонтальных границ макроблока МВ0. На третьем этапе используют значение пикселя после процесса фильтрации вертикальной границы со второго этапа для процесса определения необходимости фильтрации для горизонтальной границы. На четвертом этапе осуществляют параллельно процессы FH0,0, FH0,1, FH0,2 и FH0,3 фильтрации для четырех горизонтальных границ макроблока МВ0. После завершения четвертого этапа процессы (пятый - восьмой этапы) для макроблока МВ1 осуществляют последовательно. На пятом этапе используют значение пикселя после процесса фильтрации горизонтальной границы макроблока МВ0 с четвертого этапа для процесса определения необходимости фильтрации для вертикальной границы макроблока МВ1. После завершения процесса для макроблока МВ1, последовательно осуществляют процессы (девятый - двенадцатый этапы) для макроблока МВ2. После завершения процесса для макроблока МВ2, последовательно осуществляют процессы (тринадцатый - шестнадцатый этапы) для макроблока МВ3.
Такая параллельная обработка в ограниченном объеме не может удовлетворительным образом решить проблему задержки или ухудшения скорости обработки данных из-за большого объема обработки при применении фильтра удаления блочности. Описанные ниже три демонстрационных примера дополнительно улучшают параллельную обработку при использовании определения.
<3. Первый демонстрационный пример>
[3-1. Пример структуры фильтра удаления блочности]
Далее в соответствии с первым демонстрационным примером описаны типовые структуры фильтра 24а удаления блочности для устройства 10 кодирования изображений, показанного на фиг. 1, и фильтра 24b удаления блочности для устройства 60 декодирования изображений, показанного на фиг. 2. Структуры фильтра 24а удаления блочности и фильтра 24b удаления блочности могут совпадать друг с другом. В последующем описании фильтр 24а удаления блочности и фильтр 24b удаления блочности в общем называются фильтром 24 удаления блочности, когда нет необходимости их различать.
(1) Зависимость между новыми процессами
В соответствии с демонстрационным примером процессы, использующие фильтр 24 удаления блочности, также включают в себя два типа процессов, а именно процесс определения необходимости фильтрации и процесс фильтрации. В фильтре 24 удаления блочности используют значения пикселей изображения, поданного на фильтр удаления блочности, с целью определения для нескольких макроблоков в ходе процесса определения необходимости фильтрации или для вертикальной границы или горизонтальной границы. Если, например, вертикальную границу обрабатывают до горизонтальной границы, в фильтре 24 удаления блочности могут осуществлять процесс определения необходимости фильтрации для вертикальной границы для заданного блока без ожидания процесса фильтрации горизонтальной границы для соседних блоков.. Если, например, горизонтальную границу обрабатывают до вертикальной границы, в фильтре 24 удаления блочности могут осуществлять процесс определения необходимости фильтрации для горизонтальной границы для заданного блока без ожидания процесса фильтрации горизонтальной границы для соседних блоков. Результат заключается в уменьшении зависимости процессов между макроблоками.
Уменьшение зависимости процессов между макроблоками позволяет распараллелить процессы между несколькими макроблоками в изображении. Например, это позволяет параллельно осуществить процессы определения необходимости фильтрации для вертикальных границ всех блоков входного изображения. Также это позволяет параллельно осуществить процессы определения необходимости фильтрации для горизонтальных границ всех блоков входного изображения.
На фиг. 11 показан пояснительный вид, иллюстрирующий последовательность процессов в соответствии с демонстрационным примером. В этом примере также предполагают, что на фильтр удаления блочности подают изображение размера 32×32 пикселя. Входное изображение содержит четыре макроблока МВ0-МВ3, каждый из которых имеет размер 16×16 пикселя.
На фиг. 11 рамка из пунктирных линий представляет процесс, который выполняют параллельно. В то время как пример с фиг. 10 требует 16 этапов обработки в последовательности процессов, пример с фиг. 11 группирует некоторое количество процессов в четыре этапа обработки. На первом этапе параллельно осуществляют процессы JV0,0-JV3,3 и JH0,0-JH3,3, определения необходимости фильтрации для всех вертикальных границ и всех горизонтальных границ всех макроблоков МВ0-МВ3. На втором этапе параллельно осуществляют процессы FV0,0-FV3,3 фильтрации для 16 вертикальных границ всех макроблоков МВ0-МВ3. На третьем этапе параллельно осуществляют процессы FH0,0-FH3,3 необходимости фильтрации для всех горизонтальных границ всех макроблоков МВ0-МВ3. На четвертом этапе параллельно осуществляют процессы FH0,0-FH3,3, фильтрации для 16 горизонтальных границ всех макроблоков МВ0-МВ3. Третий и четвертый этапы могут предшествовать первому и второму этапам, если горизонтальную границу обрабатывают до вертикальной границы.
На фиг. 11 приведен пример максимизации распараллеливания (процессы, осуществляемые параллельно) путем распараллеливания процессов по всем макроблокам в изображении. Не ограничиваясь этим примером, процессы могут быть распараллелены по нескольким макроблокам, а не по всем макроблокам изображения.
(2) Подробная структура фильтра удаления блочности
На фиг. 12 показана структурная схема, иллюстрирующая подробную структуру фильтра 24 удаления блочности, который соответствует первому демонстрационному примеру и который осуществляет описанные выше параллельные процессы. Как показано на фиг. 12, фильтр 24 удаления блочности содержит блок 110 вертикального определения, блок 114 горизонтального определения, блок 130 горизонтальной фильтрации, блок 140 вертикальной фильтрации и секцию 150 управления распараллеливанием.
(2-1) Блок вертикального определения
Блок 110 вертикального определения содержит несколько секций 112-1 - 112-n определения для вертикальных границ. На каждую секцию 112 определения для вертикальных границ подают изображения, поданные на фильтр 24 удаления блочности, и информацию для определения, используемую для определения необходимости фильтрации.
В секциях 112-1 - 112-n определения для вертикальных границ определяют, нужно ли применять фильтр удаления блочности для вертикальных границ, что делают с использованием значений пикселей для изображения, поданного на фильтр 24 удаления блочности, для нескольких макроблоков изображения. В каждой секции 112 определения для вертикальных границ подают на блок 130 горизонтальной фильтрации информацию, указывающую результат определения для каждой вертикальной границы, такую как двоичная информация, указывающая результат определения, при котором значение «1» означает необходимость применения фильтра удаления блочности.
(2-2) Блок горизонтальной фильтрации
Блок 130 горизонтальной фильтрации содержит несколько секций 132-1 - 132-n горизонтальной фильтрации. На каждую секцию 132 горизонтальной фильтрации подают из блока 110 вертикального определения входное изображение и результат определения для каждой вертикальной границы.
Результат определения из соответствующей секции 112 определения для вертикальных границ может указывать, что нужно применить фильтр. В таком случае, в каждой секции 132 горизонтальной фильтрации применяют фильтр удаления блочности для вертикальной границы к элементам, расположенным справа и слева от вертикальной границы. В каждой секции 132 горизонтальной фильтрации подают на блок 114 горизонтального определения и блок 140 вертикальной фильтрации значения пикселей после фильтрации для пикселей, к которым был применен фильтр, и значения пикселей входного изображения для других пикселей.
(2-3) Блок горизонтального определения
Блок 114 горизонтального определения содержит несколько секций 116-1 - 116-n определения для горизонтальных границ. На каждую секцию 116 определения для горизонтальных границ подают значения пикселей после фильтрации, осуществленной в блоке 130 горизонтальной фильтрации, и информацию для определения, используемую для определения необходимости фильтрации.
В секциях 116-1 - 116-n определения для горизонтальных границ определяют, нужно ли применять фильтр удаления блочности для горизонтальных границ, что делают с использованием значений пикселей после фильтрации, осуществленной в блоке 130 горизонтальной фильтрации, для нескольких макроблоков изображения. В каждой секции 116 определения для горизонтальных границ подают на блок 140 вертикальной фильтрации информацию, указывающую результат определения для каждой горизонтальной границы.
(2-4) Блок вертикальной фильтрации
Блок 140 вертикальной фильтрации содержит несколько секций 142-1 - 142-n вертикальной фильтрации. На каждую секцию 142 вертикальной фильтрации подают значения пикселей после фильтрации, осуществленной в блоке 130 горизонтальной фильтрации, и результат определения для каждой горизонтальной границы из блока 114 горизонтального определения.
Результат определения из соответствующей секции 116 определения для горизонтальных границ может указывать, что нужно применить фильтр. В таком случае, в каждой секции 142 вертикальной фильтрации применяют фильтр удаления блочности для горизонтальной границы к элементам, расположенным снизу и сверху от горизонтальной границы. В каждой секции 142 вертикальной фильтрации подают пиксели, к которым были применен фильтр, после фильтрации и другие пиксели со значениями пикселей, поданными из блока 130 горизонтальной фильтрации. Выход из каждой секции 142 вертикальной фильтрации может конфигурировать выходное изображение из фильтра 24 удаления блочности.
(3) Более подробная структура секции определения
На фиг. 13 показана блок-схема, иллюстрирующая подробную структуру каждой секции из секций 112 определения для вертикальных границ и секций 116 определения для горизонтальных границ. Как показано на фиг. 13 каждая секция определения содержит секцию 121 формирования набора, секцию 122 вычислений, секцию 123 сравнения с порогом, секцию 124 оценки искажений и секцию 125 определения фильтрации.
В секции 121 формирования набора получают значение опорного пикселя из значений пикселей двух блоков, прилегающих по рассматриваемой границе, входного изображения и формируют набор (набор из значений опорных пикселей) для определения условия В определения для описанного выше компонента яркости. Например, вертикальная граница может быть расположена в блоках, размер каждого из которых равен 8×8 пикселей. В этом случае в секции 121 формирования набора формируют набор из значений пикселей, принадлежащих третьей и шестой строкам двух блоков справа и слева. Если рассматривают горизонтальную границу, в секции 121 формирования набора формируют набор из значений пикселей, принадлежащих третьему и шестому столбцам двух блоков сверху и снизу. В секции 122 вычислений передают набор, сформированный в секции 121 формирования набора, левой стороне выражения для определения в условии В определения и вычисляют краевое значение для сравнения с пороговым значением β определения для края. В секции 123 сравнения с порогом сравнивают значение, вычисленное секцией 122 вычислений, с пороговым значением β определения для края и подают результат сравнения на секцию 125 определения фильтрации.
В секции 124 оценки искажений оценивают условие А определения для описанного выше компонента яркости с использованием информации о режиме (MB режим), информацию о коэффициентах преобразования и информацию о векторе движения, поданную в качестве информации для определения. В секции 124 оценки искажений подают на секцию 125 определения фильтрации результат оценки. В секции 124 оценки искажений оценивают только условие А1 определения для компонента яркости, что делают на основе информации о режиме.
В секции 125 определения фильтрации определяют, применять ли фильтр удаления блочности к рассматриваемой границе, что делают на основе результата сравнения для условия В определения, поданного из секции 123 сравнения с порогом, и результата оценки для условия А определения, поданного из секции 124 оценки искажений. В секции 125 определения фильтрации подают на выход информацию, указывающую результат определения.
(4) Секция управления распараллеливанием
В секции 150 управления распараллеливанием, показанной на фиг. 12, управляют распараллеливанием процессов определения необходимости фильтрации в блоке 110 вертикального определения и блоке 114 горизонтального определения и распараллеливанием процессов фильтрации в блоке 130 горизонтальной фильтрации и блоке 140 вертикальной фильтрации.
Например, в секции 150 управления распараллеливанием могут управлять распараллеливанием процессов для каждого блока на основе размера входного изображения. Более конкретно, в секции 150 управления распараллеливанием увеличивают распараллеливание процессов для каждого блока при сравнительно большом размере входного изображения. Это может гибко предотвращать задержку или уменьшение скорости обработки данных из-за объема обработки, которая увеличивается в соответствии с размерами изображения. Например, в секции 150 управления распараллеливанием могут управлять распараллеливанием процессов для каждого блока на основе набора параметров последовательности, набора параметров картинки или параметров, содержащихся в заголовке среза. Это позволяет гибко конфигурировать распараллеливание в соответствии с требованиями пользователей, которые разрабатывают устройства. Например, распараллеливание может быть структурировано в соответствии с ограничениями на среду установки, такими как количество ядер процессора или количество подпроцессов программного обеспечения.
В демонстрационном примере можно распараллеливать процессы между макроблоками. Это означает, что любая последовательность процессов для блоков в изображении, не оказывает влияния на окончательно получаемый результат. Соответственно, в секции 150 управления распараллеливанием на основе блоков могут управлять последовательностью процессов определения необходимости фильтрации в блоке 110 вертикального определения и блоке 114 горизонтального определения и последовательностью процессов фильтрации в блоке 130 горизонтальной фильтрации и блоке 140 вертикальной фильтрации.
Более конкретно, в секции 150 управления распараллеливанием могут управлять последовательностью процессов фильтрации в соответствии с зависимостью процессов фильтрации между макроблоками. Например, в соответствии с существующей технологией зависимость процессов для соседних макроблоков вокруг границы среза может задерживать параллельные процессы для каждого среза в изображении. Тем не менее, в секции 150 управления распараллеливанием, в соответствии с демонстрационным примером, могут осуществлять процессы фильтрации для соседних макроблоков вокруг границы среза до других макроблоков.
Например, на фиг. 14 показано восемь макроблоков MB10-MB13 и МВ20-МВ23 вокруг границы среза. Макроблоки MB10-MB13 принадлежат срезу SL1. Макроблоки МВ20-МВ23 принадлежат срезу SL2. Для макроблоков процессы фильтрации для горизонтальных границ макроблока МВ20 среза SL2 зависят от процессов фильтрации для вертикальных границ макроблока MB12 среза SL1. Аналогично, процессы фильтрации для горизонтальных границ макроблока МВ21 среза SL2 зависят от процессов фильтрации для вертикальных границ макроблока MB13 среза SL1.
В соответствии с примером на фиг. 15 для этих условий в секции 150 управления распараллеливанием осуществляют процессы фильтрации для вертикальных границ макроблоков MB12 и MB13 из процессов фильтрации для среза SL1 с большим приоритетом по сравнению с процессами для других границ. В результате предотвращают большую задержку процессов фильтрации для горизонтальных границ макроблоков МВ20 и МВ21 из процессов фильтрации для среза SL2. В примере с фиг. 16 изначально осуществляют процессы фильтрации параллельно для вертикальных границ для всех макроблоков, содержащихся в срезе SL1. В этом случае отсутствует задержка процесса фильтрации для горизонтальных границ макроблоков МВ20 и МВ21 среза SL2.
[3-2. Модификации условий определения]
Как описано выше, в каждой секции 112 определения для вертикальных границ обращаются к пикселям, соответствующим третьей и шестой строкам в блоке, и определяют для вертикальных границ каждого блока необходимость фильтрации, что делают аналогично существующей технологии, как показано на фиг. 4. Аналогично, в каждой секции 116 определения для горизонтальных границ обращаются к пикселям, соответствующим третьему и шестому столбцам в блоке, и определяют для горизонтальных границ каждого блока необходимость фильтрации. В таком случае может быть легко встроена структура, которая соответствует демонстрационному примеру, без изменения условий определения для процессов определения необходимости фильтрации, предусмотренных в существующем устройстве.
В каждой секции 112 определения для вертикальных границ и каждой секции 116 определения для горизонтальных границ могут осуществлять определения с использованием условий определения, отличных от условий для существующей технологии. Например, в каждой секции 112 определения для вертикальных границ могут обращаться к пикселям, соответствующим трем или более столбцам в блоке. В каждой секции 116 определения для горизонтальных границ могут обращаться к пикселям, соответствующим трем или более столбцам в блоке. Кроме того, в каждой секции 112 определения для вертикальных границ и каждой секции 116 определения для горизонтальных границ могут использовать выражения для условий определения, отличные от выражений из существующей технологии. Со ссылками на фиг. 17-19, далее описаны шесть примеров технологии определения, соответствующей демонстрационному примеру.
(1) Первый пример
На фиг. 17 показан пояснительный вид, иллюстрирующий первый и второй примеры технологии определения. В первом и втором примерах процессы определения необходимости фильтрации (в частности определение с использованием условия В определения для компонент яркости) для вертикальных границ обращаться к пикселям всех строк L1-L8 от первой до восьмой для каждого блока. В процессах определения необходимости фильтрации для горизонтальных границ также обращаться к пикселям всех столбцов от первого до восьмого в каждом блоке.
Первый пример может установить условия определения для компонент яркости следующим образом.
Условие определения для компонента яркости (яркость)… Фильтр удаления блочности применяют, если справедливо как условие А, так и условие В.
Условие А:
(А1) Блок Ba или Bb входит в режим предсказания без компенсации движения;
(А2) Блок Ba или Bb обладает ненулевым коэффициентом ортогонального преобразования; или
(A3) или
Условие В:
;
;
;
;
.
При таком условии .
Условие определения для компонент яркости могут совпадать с описанными выше условиями существующей технологии. Для вычисления среднего iDave для четырех параметров iD0-iD3 определения может быть вычислено взвешенное среднее.
(2) Второй пример
Второй пример может установить условие В определения для компонент яркости следующим образом.
Условие В:
;
;
;
.
При таком условии iD0<β и iD1<β и iD2<β и iD3<β.
Выражение для вычисления четырех параметров iD0-iD3 определения совпадает с аналогичным выражением для первого примера. Допустимое условие состоит в том, что не все, но, по меньшей мере, три, два или один из четырех параметров iD0-iD3 определения, меньше порогового значения β определения для края.
(3) Третий пример
На фиг. 18 показан пояснительный вид, иллюстрирующий третий и четвертый примеры технологии определения. В третьем и четвертом примерах процессы определения необходимости фильтрации (в частности определение с использованием условия В определения для компонент яркости) для вертикальных границ обращаться к пикселям четырех строк L1, L3, L6 и L8 для каждого блока. В процессах определения необходимости фильтрации для горизонтальных границ также обращаться к пикселям для четырех столбцов в каждом блоке.
Третий пример может установить условия определения для компонент яркости следующим образом.
Условие определения для компонента яркости (яркость)… Фильтр удаления блочности применяют, если справедливо как условие А, так и условие В.
Условие А:
(А1) Блок Ba или Bb входит в режим предсказания без компенсации движения;
(А2) Блок Ba или Bb обладает ненулевым коэффициентом ортогонального преобразования; или
(A3) или .
Условие В:
;
;
iDave=(iD0+iD2)>>1.
При таком условии iDave<β.
Условие определения для компонент яркости могут совпадать с описанными выше условиями существующей технологии. Для вычисления среднего iDave для двух параметров iD0 и iD2 определения может быть вычислено взвешенное среднее.
(4) Четвертый пример
Четвертый пример может установить условие В определения для компонент яркости следующим образом.
Условие В:
;
.
При таком условии iD0<β и iD2<β.
Выражение для вычисления двух параметров iD0 и iD2 определения совпадает с аналогичным выражением для третьего примера. Допустимое условие состоит в том, что не оба, а один из двух параметров iD0 и iD2 определения меньше порогового значения β определения для края.
Хотя был описан пример с обращениями к первой, третьей, шестой и восьмой строкам (или столбцам) L1, L3, L6 и L8 в блоке во время определения, можно обращаться к другим комбинациям строк или столбцов.
(5) Пятый пример
На фиг. 19 показан пояснительный вид, иллюстрирующий пятый и шестой примеры технологии определения. В пятом и шестом примерах процессы определения необходимости фильтрации для вертикальных границ обращаются к пикселям четырех строк L1, L3, L5 и L7 в каждом блоке. В процессах определения необходимости фильтрации для горизонтальных границ также обращаться к пикселям для четырех столбцов в каждом блоке.
Пятый пример может установить условия определения для компонент яркости следующим образом.
Условие определения для компонента яркости (яркость)… Фильтр удаления блочности применяют, если справедливо как условие А, так и условие В.
Условие А:
(А1) Блок Ba или Bb входит в режим предсказания без компенсации движения;
(А2) Блок Ba или Bb обладает ненулевым коэффициентом ортогонального преобразования; или
(A3) или .
Условие В:
;
;
.
При таком условии iDave<β.
Условие определения для компонент яркости могут совпадать с описанными выше условиями существующей технологии. Для вычисления среднего iDave для двух параметров iD0 и iD2 определения может быть вычислено взвешенное среднее.
(6) Шестой пример
Шестой пример может установить условие В определения для компонент яркости следующим образом.
Условие В:
;
.
При таком условии iD0<β и iD2<β.
Выражение для вычисления двух параметров iD0 и iD2 определения совпадает с аналогичным выражением для пятого примера. Допустимое условие состоит в том, что не оба, а один из двух параметров iD0 и iD2 определения меньше порогового значения β определения для края.
В общем, увеличение количества строк и столбцов, к которым обращаются для определения, улучшает точность определения. Следовательно, первый и второй примеры с обращениями к восьми строкам и столбцам могут минимизировать вероятность фильтрации блока, для которого изначально не предполагалось применять фильтр удаления блочности, и вероятность нефильтрации блока, для которого изначально предполагалось применять фильтр удаления блочности. В результате увеличивается качество кодируемого и декодируемого изображения. С другой стороны уменьшение количества строк и столбцов, к которым обращаются для определения, может уменьшить затраты на обработку. Так как существует компромисс между качеством изображения и затратами на обработку, то может быть целесообразно гибко выбирать количество строк и столбцов, к которым обращаются для определения, в зависимости от использования устройства или ограничений на установку. Может быть, целесообразно гибко выбирать комбинации строк и столбцов, к которым обращаются.
Как описано в первом, третьем и пятом примерах, среднее значение iDave параметров определения может быть сравнено с пороговым значением β определения для края для надлежащего осуществления определения на основе блоков без чрезмерного воздействия на изменения параметров каждой строки или столбца.
[3-3. Последовательность операций обработки]
Со ссылками на фиг. 20 и 21 будет описана последовательность операций обработки для фильтра 24 удаления блочности.
На фиг. 20 показана блок-схема, иллюстрирующая пример последовательности операций обработки для фильтра 24 удаления блочности в соответствии с первым демонстрационным примером. Как показано на фиг. 20, в секциях 112-1 - 112-n определения для вертикальных границ параллельно определяют необходимость фильтрации для всех вертикальных границ, содержащихся в нескольких макроблоках входного изображения (этап S110). В секциях 132-1 - 132-n горизонтальной фильтрации применяют фильтр удаления блочности параллельно для всех вертикальных границ, для которых на этапе S110 была определена необходимость применения фильтра удаления блочности (этап S120). В секциях 116-1 - 116-n определения для горизонтальных границ параллельно определяют необходимость фильтрации для всех горизонтальных границ, содержащихся в нескольких макроблоках входного изображения (этап S130). В секциях 142-1 - 142-n вертикальной фильтрации применяют фильтр удаления блочности параллельно для всех горизонтальных границ, для которых на этапе S130 была определена необходимость применения фильтра удаления блочности (этап S140).
Приведенные выше последовательности операций обработки являются только примерами. Например, в фильтре 24 удаления блочности могут распараллеливать процессы на два или большее количество макроблоков. Последовательность процессов может быть изменена.
На фиг. 21 показана блок-схема, иллюстрирующая последовательности операций процесса определения необходимости фильтрации в соответствии с этапами S110 и S130 c фиг. 20. Как показано на фиг. 21, в секции 124 оценки искажений оценивают границы на предмет искажений, что делают на основе информации о режиме, информации о коэффициентах преобразования и информации о векторе движения (этап S150). Процесс переходит на этап S154, если результаты оценки показывают наличие искажений (справедливо условие А определения). Процесс переходит на этап S160, если результаты оценки показывают отсутствие искажений (этап S152).
На этапе S154 в секции 122 вычислений вычисляют краевое значение на основе набора опорных пикселей, сформированного в секции 121 формирования набора (этап S154). В секции 123 сравнения с порогом сравнивают вычисленное значение с пороговым значением β определения для края (этап S156). Процесс переходит на этап S158, если краевое значение меньше порогового значения β (справедливо условие В определения). Процесс переходит на этап S160, если краевое значение не меньше порогового значения β.
На этапе S158 в секции 125 определения фильтрации определяют, что необходимо применять фильтр удаления блочности к определяемой границе (этап S158). На этапе S160 в секции 125 определения фильтрации определяют, что не нужно применять фильтр удаления блочности к определяемой границе (этап S160).
<4. Второй демонстрационный пример>
[4-1. Пример структуры фильтра удаления блочности]
Ниже описан пример структур фильтра 24 удаления блочности в соответствии со вторым демонстрационным примером.
(1) Зависимость между новыми процессами
В соответствии с демонстрационным примером, в фильтре 24 удаления блочности осуществляют процесс определения необходимости фильтрации для вертикальных границ каждого блока без ожидания применения фильтра удаления блочности к другим блокам макроблока, к которому принадлежит первый блок. В фильтре 24 удаления блочности осуществляют процесс определения необходимости фильтрации для горизонтальных границ каждого блока без ожидания применения фильтра удаления блочности к другим блокам макроблока, к которому принадлежит первый блок. Это может уменьшить зависимость процессов в макроблоке.
Как описано выше, уменьшение зависимости процессов может в результате обеспечить распараллеливание процессов определения необходимости фильтрации для вертикальных границ и горизонтальных границ макроблока.
На фиг. 22 изображен пояснительный вид, показывающий первый пример последовательности операций процесса, доступный для фильтра 24 удаления блочности. В этом примере также предполагают, что на фильтр удаления блочности подают изображение размера 32×32 пикселя. Входное изображение содержит четыре макроблока МВ0-МВ3, каждый из которых имеет размер 16×16 пикселя.
На фиг. 22 рамка из пунктирных линий представляет процесс, который выполняют параллельно. В то время как пример с фиг. 10 требует 16 этапов обработки в последовательности процессов, пример с фиг. 22 группирует некоторое количество процессов в 12 этапов обработки. На первом этапе параллельно осуществляют процессы JV0,0-JV0,3 и JH0,0-JH0,3 определения необходимости фильтрации для четырех вертикальных границ и четырех горизонтальных границ макроблока МВ0. На втором этапе параллельно осуществляют процессы FV0,0-FV0,3 фильтрации для четырех вертикальных границ макроблока МВ0. На третьем этапе параллельно осуществляют процессы JV1,0-JV1,3 и JH1,0-JH1,3 определения необходимости фильтрации для четырех вертикальных границ и четырех горизонтальных границ макроблока МВ1. На четвертом этапе параллельно осуществляют процессы FV1,0-FV1,3 фильтрации для четырех вертикальных границ макроблока МВ1. На пятом этапе параллельно осуществляют процессы FH0,0-FH0,3 фильтрации для четырех горизонтальных границ макроблока МВ0. На шестом этапе параллельно осуществляют процессы JV2,0-JV2,3 и JH2,0-JH2,3 определения необходимости фильтрации для четырех вертикальных границ и четырех горизонтальных границ макроблока МВ2. На седьмом этапе параллельно осуществляют процессы FV2,0-FV2,3 фильтрации для четырех вертикальных границ макроблока МВ2. На восьмом этапе параллельно осуществляют процессы FH1,0-FH1,3 фильтрации для четырех горизонтальных границ макроблока МВ1. На девятом этапе параллельно осуществляют процессы JV3,0-JV3,3 и JH3,0-JH3,3 определения необходимости фильтрации для четырех вертикальных границ и четырех горизонтальных границ макроблока МВ3. На десятом этапе параллельно осуществляют процессы FV3,0-FV3,3 фильтрации для четырех вертикальных границ макроблока МВ3. На одиннадцатом этапе параллельно осуществляют процессы FH2,0-FH2,3 фильтрации для четырех горизонтальных границ макроблока МВ2. На двенадцатом этапе параллельно осуществляют процессы FH3,0-FH3,3 фильтрации для четырех горизонтальных границ макроблока МВ3. В этом случае в фильтре 24 удаления блочности могут осуществлять процесс для всего входного изображения с использованием этапов обработки, количество которых меньше количества этапов для существующей технологии.
(2) Подробная структура фильтра удаления блочности
На фиг. 23 показана структурная схема, иллюстрирующая подробную структуру фильтра 24 удаления блочности, который соответствует второму демонстрационному примеру и который осуществляет описанные выше параллельные процессы. Как показано на фиг. 23, фильтр 24 удаления блочности содержит блок 210 вертикального определения, блок 214 горизонтального определения, блок 130 горизонтальной фильтрации, блок 140 вертикальной фильтрации и секцию 150 управления распараллеливанием.
(2-1) Блок вертикального определения
Блок 210 вертикального определения содержит несколько секций 212-1 - 212-n определения для вертикальных границ. В каждой секции 212 определения для вертикальных границ определяют необходимость применения фильтра удаления блочности для вертикальных границ каждого блока без ожидания применения фильтра удаления блочности к другим блокам макроблока, к которому принадлежит первый блок. В каждой секции 212 определения для вертикальных границ подают на блок 130 горизонтальной фильтрации информацию, указывающую результат определения для каждой вертикальной границы, такую как двоичная информация, указывающая результат определения, при котором значение «1» означает необходимость применения фильтра удаления блочности.
(2-2) Блок горизонтального определения
Блок 214 горизонтального определения содержит несколько секций 216-1 - 216-n определения для горизонтальных границ. В каждой секции 216 определения для горизонтальных границ определяют необходимость применения фильтра удаления блочности для горизонтальных границ каждого блока без ожидания применения фильтра удаления блочности к другим блокам макроблока, к которому принадлежит первый блок. В каждой секции 216 определения для горизонтальных границ подают на блок 140 вертикальной фильтрации информацию, указывающую результат определения для каждой горизонтальной границы.
Также в соответствии с демонстрационным примером, в каждой секции 212 определения для вертикальных границ и секции 216 определения для горизонтальных границ могут определить для каждой границы необходимость фильтрации, что делают путем обращения к пикселям в позициях, аналогично существующей технологии. Вместо этого в каждой секции 212 определения для вертикальных границ и секции 216 определения для горизонтальных границ могут определить для каждой границы необходимость фильтрации в соответствии с технологией, описанной в разделе «3-2. Модификации условий определения».
[3-2. Последовательность операций обработки]
На фиг. 24 показана блок-схема, иллюстрирующая последовательность операций обработки для фильтра 24 удаления блочности в соответствии со вторым демонстрационным примером. Как показано на фиг. 24, в секциях 212-1 - 212-n определения для вертикальных границ параллельно определяют необходимость фильтрации для всех вертикальных границ, содержащихся в рассматриваемых макроблоках входного изображения (этап S202). В секциях 214-1 - 214-n определения для горизонтальных границ параллельно определяют необходимость фильтрации для всех горизонтальных границ, содержащихся в рассматриваемом макроблоке (этап S204). Этапы S202 и S204 также выполняют параллельно.
В секциях 132-1 - 132-n горизонтальной фильтрации применяют фильтр удаления блочности параллельно для вертикальных границ рассматриваемого макроблока, для которого на этапе S202 была определена необходимость применения фильтра удаления блочности (этап S210).
Процесс на этапе S220 направлен на рассматриваемый макроблок в последнем цикле. Процесс с этапа S220 может быть опущен для первого рассматриваемого макроблока. В секциях 142-1 - 142-n вертикальной фильтрации применяют фильтр удаления блочности параллельно для горизонтальных границ, для которых в последнем цикле на этапе S204 была определена необходимость применения фильтра удаления блочности (этап S220).
Процесс с этапов S202 - S220 повторяют для новых рассматриваемых макроблоков, если рассматриваемый макроблок остается необработанным во входном изображении (этап S230).
Если не осталось необработанных рассматриваемых макроблоков, в секциях 142-1 -142-n вертикальной фильтрации применяют фильтр удаления блочности параллельно для горизонтальных границ, для которых было определена необходимость применения фильтра удаления блочности в рассматриваемом макроблоке для последнего цикла (этап S240).
Описанная выше последовательность операций процессов также просто является примером. Распараллеливание и последовательность выполнения процессов могут быть изменены. Далее в секции 150 управления распараллеливанием можно управлять распараллеливанием и последовательностью выполнения процессов.
[4-3. Пример процесса для каждого LCU]
Как отмечено выше, технология, соответствующая различным описанным здесь демонстрационным примерам, может быть предложена в виде процесса на основе кодируемого элемента (CU) HEVC. В соответствии с HEVC, кодируемый элемент наибольшего размера называется наибольшим кодируемым элементом (LCU), который может быть выбран, например, в виде 64×64 пикселей. Минимальный размер CU, который может быть выбран, составляет 8×8 пикселей. Обычно, изображение кодируют и декодируют в соответствии с каждым LCU в соответствии с последовательностью растровой развертки из LCU, расположенного сверху слева картинки (или среза). Далее описаны примеры процессов, соответствующих LCU и осуществляемых в фильтре 24 удаления блочности.
На фиг. 25 показан пояснительный вид, иллюстрирующий последовательность операций обработки для каждого LCU в соответствии с описанным выше вторым демонстрационным примером. В примере предполагается, что размер LCU равен 16×16 пикселей и размер CU равен 8×8 пикселей.
На фиг. 25 первая стадия показана сверху слева и она указывает, что фильтрация для LCU завершена до (n-1)-го LCU. Заштрихованные пиксели предназначены для фильтрации вертикальных границ. Заполненные пиксели предназначены для фильтрации горизонтальных границ.
На фиг. 25 второй процесс справа наверху и третий процесс слева внизу предназначены для n-ого LCU. До второго процесса параллельно осуществляют процессы определения необходимости фильтрации для всех вертикальных и горизонтальных границ, принадлежащих n-ому LCU. А именно, процесс определения необходимости фильтрации для границ, принадлежащих CU в n-ом LCU, осуществляют без ожидания применения фильтра удаления блочности для других CU в n-ом LCU. Во втором процессе параллельно осуществляют процессы фильтрации для вертикальных границ, которые принадлежат n-ому LCU и для которых определена необходимость применения фильтра удаления блочности. Во втором процессе параллельно осуществляют процессы фильтрации для горизонтальных границ, которые принадлежат n-ому LCU и для которых определена необходимость применения фильтра удаления блочности.
Процесс для четвертой стадии, показанный на фиг. 25 снизу справа, предназначен для (n+1)-ого LCU. На четвертой стадии процесс фильтрации осуществляют параллельно для вертикальной границы, для которой определена необходимость применения фильтра удаления блочности, после параллельного осуществления процессов определения необходимости фильтрации для границ, принадлежащих всем CU (n+1)-ого LCU.
Хотя в примере предполагается, что размер LCU равен 16×16 пикселей, он может быть установлен равным 32×32 или 64×64 пикселей. Эффект от укорачивания времени обработки в соответствии с распараллеливанием дополнительно усиливается, так как увеличение выбираемого размера LCU также увеличивает количество вертикальных и горизонтальных границ, принадлежащих одному LCU.
На фиг. 26 показана блок-схема, иллюстрирующая последовательность операций обработки для фильтра 24 удаления блочности для каждого LCU.
Как показано на фиг. 26, в секциях 212-1 - 212-n определения для вертикальных границ параллельно определяют необходимость фильтрации для всех вертикальных границ, содержащихся в рассматриваемом LCU входного изображения (этап S252). В секциях 216-1 - 216-n определения для горизонтальных границ параллельно определяют необходимость фильтрации для всех горизонтальных границ, содержащихся в рассматриваемом LCU (этап S254). Этапы S252 и S254 также выполняют параллельно.
В секциях 132-1 - 132-n горизонтальной фильтрации применяют фильтр удаления блочности параллельно для вертикальных границ рассматриваемого LCU, для которого на этапе S252 была определена необходимость применения фильтра удаления блочности (этап S260).
В секциях 142-1 - 142-n вертикальной фильтрации применяют фильтр удаления блочности параллельно для горизонтальных границ рассматриваемого LCU, для которого на этапе S254 была определена необходимость применения фильтра удаления блочности (этап S270).
Процесс с этапов S252 - S270 повторяют для новых рассматриваемых LCU, если рассматриваемый LCU остается необработанным во входном изображении (этап S280). Процесс завершают, если не остается необработанных LCU.
<5. Третий демонстрационный пример>
[5-1. Обзор]
В первом и втором демонстрационных примерах изменяют существующую последовательность процессов, осуществляемых фильтром удаления блочности, что делают с целью улучшения распараллеливания процессов. В частности, в первом демонстрационном примере уменьшают зависимость процессов путем расширения сферы значений пикселей входного изображения, поданного на фильтр удаления блочности, когда определена необходимость применения фильтра удаления блочности. Эту концепцию улучшают в описанном далее третьем демонстрационном примере. В третьем демонстрационном примере дополнительно распараллеливают процессы путем фильтрации входных значений пикселей, поданных на фильтр удаления блочности, во время процесса фильтрации для вертикальных и горизонтальных границ.
На фиг. 27 показан пояснительный вид, иллюстрирующий общее представление для этого демонстрационного примера. Снизу слева фиг. 27 показаны представляющие форму входные пиксели (также называемые восстановленными пикселями) до обработки фильтром удаления блочности. В демонстрационном примере возможно обращаться к значениям пикселей, поданным на фильтр удаления блочности, из процесса определения необходимости фильтрации для вертикальных и горизонтальных границ, а также из процесса фильтрации для вертикальных границ и процесса фильтрации для горизонтальных границ. Соответственно, это позволяет решить проблему зависимости между двумя процессами определения необходимости фильтрации и проблему зависимости между двумя процессами фильтрации.
Процессы фильтрации для вертикальных границ и процессы фильтрации для горизонтальных границ могут обновлять значения дублирующихся пикселей. Заполненные пиксели на фиг. 27 показывают позиции пикселей, которые с большой вероятностью будут дублирующимися. В фильтре удаления блочности, который соответствует демонстрационному примеру, вычисляют одно выходного значение пикселя из двух выходов фильтра для пикселей, которые были обновлены двумя фильтрами, работающими параллельно.
[5-2. Пример структуры фильтра удаления блочности]
На фиг. 28 показана структурная схема, иллюстрирующая подробную структуру фильтра 24 удаления блочности, который соответствует третьему демонстрационному примеру. Как показано на фиг. 28, фильтр 24 удаления блочности содержит линейную память 308, блок 310 определения, блок 330 горизонтальной фильтрации, блок 340 вертикальной фильтрации, секцию 150 управления распараллеливанием и секцию 360 вычислений.
В линейной памяти 308 сохраняют значения пикселей для входного изображения, поданного на фильтр 24 удаления блочности. Процессы фильтрации в блоке 330 горизонтальной фильтрации и блоке 340 вертикальной фильтрации не обновляют значения пикселей, сохраненные в линейной памяти 308. В процессах определения необходимости фильтрации, осуществляемых в описанных ниже секциях в блоке 310 определения, обращаются к значениям пикселей, сохраненным в линейной памяти 308. Устройство содержит другую память для целей, отличных от процессов фильтра 24 удаления блочности. Эта память может быть повторно использована (использована совместно) в качестве линейной памяти 308.
Блок 310 определения содержит секции 312-1 - 312-n определения для вертикальных границ и секции 314-1 - 314-n определения для горизонтальных границ. На секции 312 определения для вертикальных границ и секции 314 определения для горизонтальных границ подают значения пикселей, сохраненные в линейной памяти 308, для изображения, поданного на вход фильтра 24 удаления блочности, и информацию для определения, используемую для определения необходимости фильтрации.
В секциях 312 определения для вертикальных границ используют значения пикселей, поданные на вход фильтра 24 удаления блочности, для определения, нужно ли применять фильтр удаления блочности для каждой вертикальной границы. В секциях 312 определения для вертикальных границ подают на блок 330 горизонтальной фильтрации информацию, указывающую результат определения для каждой вертикальной границы.
В секциях 314 определения для горизонтальных границ также используют значения пикселей, поданные на вход фильтра 24 удаления блочности, для определения, нужно ли применять фильтр удаления блочности для каждой горизонтальной границы. В секциях 314 определения для горизонтальных границ процессы определения осуществляют параллельно процессам определения, осуществляемым в секциях 312 определения для вертикальных границ. Секции 314 определения для горизонтальных границ подают на блок 340 вертикальной фильтрации информацию, указывающую результат определения для каждой горизонтальной границы.
Также в соответствии с демонстрационным примером, в каждой секции 312 определения для вертикальных границ и секции 314 определения для горизонтальных границ могут определить для каждой границы необходимость фильтрации, что делают путем обращения к пикселям в позициях, аналогично существующей технологии. Вместо этого в каждой секции 312 определения для вертикальных границ и секции 314 определения для горизонтальных границ могут определить для каждой границы необходимость фильтрации в соответствии с технологией, описанной в разделе «3-2. Модификации условий определения».
Блок 330 горизонтальной фильтрации содержит секции 332-1 - 332-n горизонтальной фильтрации. На секции 332 горизонтальной фильтрации подают значение входного изображения из линейной памяти 208 и результат определения, касающийся каждой вертикальной границы, из блока 310 определения.
В секциях 332 горизонтальной фильтрации применяют фильтр удаления блочности для вертикальных границ для расположенных справа и слева пикселей вокруг соответствующей вертикальной границы, если результат определения из секции 312 определения для вертикальных границ указывает на необходимость применения фильтра. В секциях 332 горизонтальной фильтрации подают на секцию 360 вычислений значение пикселя после фильтрации для отфильтрованного пикселя или значение входного пикселя для других пикселей.
Блок 340 вертикальной фильтрации содержит секции 342-1 - 342-n вертикальной фильтрации. На секции 342 вертикальной фильтрации подают значение входного пикселя из линейной памяти 308 и результат определения, касающийся каждой горизонтальной границы, из блока 310 определения.
В секциях 342 вертикальной фильтрации применяют фильтр удаления блочности для горизонтальных границ для расположенных сверху и снизу пикселей вокруг соответствующей горизонтальной границы, если результат определения из секции 314 определения для горизонтальных границ указывает на необходимость применения фильтра. Процессы фильтрации секций 342-1 - 342-n вертикальной фильтрации осуществляют параллельно процессам фильтрации секций 332-1 - 332-n горизонтальной фильтрации. В секциях 342 вертикальной фильтрации подают на секцию 360 вычислений значение пикселя после фильтрации для отфильтрованного пикселя или значение входного пикселя для других пикселей.
На секцию 360 вычислений параллельно подают значение выходного пикселя из блока 330 горизонтальной фильтрации и значение выходного пикселя из блока 340 вертикальной фильтрации. Далее на секцию 360 вычислений подают результаты определения из секции 312 определения для вертикальных границ и секции 314 определения для горизонтальных границ. В соответствии с результатом определения, в секции 360 вычислений вычисляют значения выходных пикселей для прошедших фильтрацию пикселей из блока 330 горизонтальной фильтрации и блока 340 вертикальной фильтрации, что делают на основе выходов фильтра из блока 330 горизонтальной фильтрации и блока 340 вертикальной фильтрации.
В соответствии, например, с демонстрационным примером в секции 360 вычислений вычисляют среднее двух выходов фильтров для дважды отфильтрованных пикселей. В секции 360 вычислений могут вычислить простое среднее двух выходов фильтров. Вместо этого в секции 360 вычислений могут вычислить взвешенное среднее двух выходов фильтров. Например, в секции 360 вычислений могут определить вес для взвешенных средних пикселей в соответствии с расстоянием от каждого пикселя до вертикальной границы и до горизонтальной границы.
На фиг. 29 показан пояснительный вид, иллюстрирующий определение веса для взвешенного среднего, вычисленного в секции 360 вычислений. На фиг. 29 показан рассматриваемый пиксель PZ, который покрашен черным цветом и который соответствует одной из дублирующихся позиций, показанных на фиг. 27. Существует три пикселя, соответствующие расстоянию DV между рассматриваемым пикселем PZ и ближайшей вертикальной границей VZ. Существует два пикселя, соответствующие расстоянию DH между рассматриваемым пикселем PZ и ближайшей горизонтальной границей HZ. Расстояние DH меньше расстояния DV. В этом случае, в секции 360 вычислений могут установить вес для выхода фильтра удаления блочности, применяемого к горизонтальной границе HZ, большим веса для выхода фильтра удаления блочности, применяемого к вертикальной границе VZ. В примере с фиг. 29 предполагается, что отношение выхода Vout фильтра для вертикальной границы VZ к выходу Hout фильтра для горизонтальной границы HZ равно 2:3.
Как показано на фиг. 29, вычисление взвешенного среднего выходов двух фильтров может последовательно обеспечить для каждого рассматриваемого пикселя выходное значения пикселя, аналогично случаю применения одного двухмерного фильтра, содержащего набор для фильтра вдоль горизонтального направления и набор для фильтра вдоль вертикального направления. Распараллеливание процессов фильтрации по вертикальной и горизонтальной границам также может надлежащим образом уменьшить блочность изображения, появляющуюся на вертикальных и горизонтальных границах. В качестве другого демонстрационного примера фильтр 24 удаления блочности может содержать один двумерный фильтр, который одновременно осуществляет горизонтальную фильтрацию, вертикальную фильтрацию и вычисление взвешенного среднего. Тем не менее, в этом случае очень сложна установка, так как необходимо различным образом изменять коэффициенты фильтра в соответствии с пикселями. С другой стороны в третьем демонстрационном примере два одномерных фильтра работают параллельно и после этого вычисляют взвешенное среднее. Это легко обеспечивает обработку, по существу, совпадающую с обработкой двумерного фильтра при одновременном обеспечении функциональных возможностей существующих фильтров удаления блочности.
На фиг. 30 показан пояснительный вид, иллюстрирующий пример веса для взвешенных средних, вычисленных на основе примера с фиг. 29. На фиг. 30 показаны 36 пикселей (6×6) вокруг пересечения вертикальной границы и горизонтальной границы. Пиксели соответствуют описанным выше дублирующимся позициям. Для пикселей, расположенных на равном расстоянии от вертикальной и горизонтальной границ, отношение веса для выхода Vout фильтра к весу выхода Hout фильтра равно 1:1 (2:2 или 3:3). Для пикселей, расположенных ближе к вертикальной границе, вес для выхода Vout фильтра больше веса для выхода Hout фильтра. Например, отношение весов для пикселя P1 равно Vout:Hout=3:1. Для пикселей, расположенных ближе к горизонтальной границе, вес для выхода Vout фильтра меньше веса для выхода Hout фильтра. Например, отношение весов для пикселя Р2 равно Vout:Hout=1:3.
Блочность изображения может быть уменьшена более эффективно и качество изображения может быть улучшено путем изменения веса для взвешенных средних в зависимости от расстояния между каждым пикселем и границей.
Приведенные выше веса являются только примерами. Например, секция 360 вычислений может определять вес для взвешенных средних для пикселей в соответствии с контрастностями краев вертикальных и горизонтальных границ для каждого пикселя вместо расстояния между этим пикселем и границей или в дополнение к упомянутому расстоянию. Контрастность края может быть представлена таким параметром, как краевое значение, вычисленное, например, в секции 122 вычислений, как показано на фиг. 13. В этом случае вес выхода фильтра для границы с более контрастным краем может быть установлен равным большему значению по сравнению с весом выхода фильтра для границы с менее контрастным краем. Изменяя вес для взвешенных средних в соответствии с контрастностью края, может адаптивно улучшить действие фильтра удаления блочности на границе, которая вызывает значительную блочность изображения.
В секции 360 вычислений выбирают выходы из фактически отфильтрованных блоков для пикселей, отфильтрованных или блоком 330 горизонтальной фильтрации или блоком 340 вертикальной фильтрации. В секции 360 вычислений непосредственно подают на выход входное значение пикселя, которое должно быть подано на фильтр 24 удаления блочности, для пикселей, которые не были отфильтрованы ни блоком 330 горизонтальной фильтрации ни блоком 340 вертикальной фильтрации. В таблице с фиг. 31 перечислены значения пикселей из секции 360 вычислений в соответствии с результатами определения необходимости фильтрации.
[5-3. Пример последовательности операций обработки]
Ниже описаны два примера последовательности операций обработки, доступные для фильтра 24 удаления блочности в соответствии с демонстрационным примером. В этом примере также предполагают, что на фильтр удаления блочности подают изображение размера 32×32 пикселя. Входное изображение содержит четыре макроблока МВ0-МВ3, каждый из которых имеет размер 16×16 пикселя.
(1) Первый пример
Для сравнения на фиг. 32 показана последовательность операций обработки в случае сохранения зависимости между процессом фильтрации для вертикальной границы и процессом фильтрации для горизонтальной границы. На фиг. 32 на первом этапе параллельно осуществляют процессы JV0,0-JV3,3 и JH0,0-JH3,3 определения необходимости фильтрации для всех вертикальных границ и всех горизонтальных границ всех четырех макроблоков МВ0-МВ3. На втором этапе осуществляют процессы FV0,0-FV3,3 фильтрации для 16 вертикальных границ всех четырех макроблоков МВ0-МВ3. На третьем этапе осуществляют процессы FH0,0-FH3,3 фильтрации для 16 горизонтальных границ всех четырех макроблоков МВ0-МВ3. На четвертом этапе значения пикселей после процесса фильтрации горизонтальной границы сохраняют в памяти, используемой для выходов фильтра 24 удаления блочности.
На фиг. 33 показан первый пример последовательности операций обработки, предусмотренной в демонстрационном примере. На фиг. 33 на первом этапе параллельно осуществляют процессы JV0,0-JV3,3 и JH0,0-JH3,3 определения необходимости фильтрации для всех вертикальных границ и всех горизонтальных границ четырех макроблоков МВ0-МВ3. На втором этапе параллельно осуществляют процессы FV0,0-FV3,3 и FH0,0-FH3,3 фильтрации для всех вертикальных границ и всех горизонтальных границ четырех макроблоков МВ0-МВ3. Фактически на втором этапе фильтруют только границу, для которой определена необходимость фильтрации. На третьем этапе значения пикселей сохраняют в памяти, используемой для выходов фильтра 24 удаления блочности. Взвешенное среднее выходов двух фильтров может быть вычислено в виде выходного значения пикселя для пикселей, которые прошли фильтрацию в блоке 330 горизонтальной фильтрации и блоке 340 вертикальной фильтрации.
(2) Второй пример
В то время как в первом примере максимизируют распараллеливание, фильтр 24 удаления блочности, соответствующий второму примеру, также осуществляет процесс для каждого макроблока.
Для сравнения на фиг. 34 показана последовательность операций обработки для каждого макроблока в случае сохранения зависимости между процессом фильтрации для вертикальной границы и процессом фильтрации для горизонтальной границы. Последовательность операций обработки с фиг. 34 по существу совпадает с последовательностью операций обработки с фиг. 22, которая соответствует первому демонстрационному примеру. На фиг. 36 явным образом показаны четыре этапа обработки (шестой, десятый, четырнадцатый и шестнадцатый), в которых значения пикселей сохраняют в памяти для выхода и которые для простоты опущены на фиг. 22. Шестнадцать этапов обработки, содержащие упомянутые четыре этапа обработки, составляют процесс с фиг. 34.
На фиг. 35 показан второй пример последовательности операций обработки, предусмотренной в демонстрационном примере. На фиг. 35 на первом этапе параллельно осуществляют процессы JV0,0-JV0,3 и JH0,0-JH0,3 определения необходимости фильтрации для четырех вертикальных границ и четырех горизонтальных границ макроблока МВ0. На втором этапе параллельно осуществляют процессы FV0,0-FV0,3 и FH0,0-FH0,3 фильтрации для четырех вертикальных границ и четырех горизонтальных границ макроблока МВ0. На третьем этапе значения пикселей макроблока МВ0 сохраняют в памяти, используемой для выходов фильтра 24 удаления блочности. Взвешенное среднее выходов двух фильтров может быть вычислено в виде выходного значения пикселя для пикселей, которых фильтровались двумя фильтрами. На этапах с четвертого по шестой аналогичным образом обрабатывают макроблок МВ1. На этапах с седьмого по девятый аналогичным образом обрабатывают макроблок МВ2. На этапах с десятого по двенадцатый аналогичным образом обрабатывают макроблок МВ3. Процесс на фиг. 35 содержит двенадцать этапов обработки, то есть их число меньше числа этапов обработки для процесса с фиг. 34.
В третьем демонстрационном примере исключают зависимость между процессами фильтрации для вертикальных границ и процессом фильтрации для горизонтальных границ. Обработка, выполняемая фильтром 24 удаления блочности, может быть осуществлена с использованием меньшего количества этапов обработки по сравнению со случаем, описанным в первом и втором демонстрационных примерах. Одно из преимуществ того, что процессу фильтрации позволяют обращаться только к пикселям, поданным на фильтр удаления блочности, состоит в том, что никакая конфигурация наборов для фильтров не порождает зависимости между процессами фильтрации для вертикальных границ и процессами фильтрации для горизонтальных границ. Третий демонстрационный пример может улучшить качество изображения путем конфигурирования набора для фильтра с использованием большего количества пикселей по сравнению с количеством пикселей, использовавшихся в существующих технологиях. Например, существующая технология использует набор для фильтра из трех пикселей для каждой стороны каждой границы, как описано при рассмотрении фиг. 7. В этом демонстрационном примере не порождают зависимости между процессами, даже если для каждой границы используют набор для фильтра из пяти и более пикселей. Не порождается зависимость между процессами даже при дальнейшем уменьшении размера блока, выступающего в качестве обрабатываемого элемента для фильтра удаления блочности.
Также в третьем демонстрационном примере, а также в первом и втором демонстрационных примерах в секции 150 управления распараллеливанием могут управлять распараллеливанием и последовательностью процессов фильтра 24 удаления блочности.
[5-4. Последовательность операций обработки]
На фиг. 36 показана блок-схема, иллюстрирующая пример последовательности операций обработки для фильтра удаления блочности в соответствии с третьим демонстрационным примером. На фиг. 37 показана блок-схема, иллюстрирующая процесс вычисления значений пикселей, показанный на фиг. 36.
Как показано на фиг. 36, в секциях 312-1 - 312-n определения для вертикальных границ параллельно определяют необходимость фильтрации для всех вертикальных границ, содержащихся во входном изображении или макроблоке (этап S302). В секциях 314-1 - 314-n определения для горизонтальных границ параллельно определяют необходимость фильтрации для всех горизонтальных границ, содержащихся во входном изображении или макроблоке (этап S304). Этапы S302 и S304 также выполняют параллельно.
В секциях 332-1 - 332-n горизонтальной фильтрации применяют фильтр удаления блочности параллельно для всех вертикальных границ, для которых на этапе S302 была определена необходимость применения фильтра удаления блочности (этап S306). В секциях 342-1 - 342-n вертикальной фильтрации применяют фильтр удаления блочности параллельно для всех горизонтальных границ, для которых на этапе S304 была определена необходимость применения фильтра удаления блочности (этап S308). Этапы S306 и S308 также выполняют параллельно.
Далее в секции 360 вычислений осуществляют процесс вычисления значений пикселей, как показано на фиг. 37 (этап S310). Как показано на фиг. 37, обработка с этапа S314 по этап S326 выполняется циклически для каждого обрабатываемого пикселя (этап S312).
На этапе S314 в секции 360 вычислений определяют, осуществили ли два фильтра для вертикальных и горизонтальных границ фильтрацию рассматриваемого пикселя (этап S314). Обработка переходит на этап S322, если два фильтра для вертикальных и горизонтальных границ осуществили фильтрацию рассматриваемого пикселя. Обработка переходит на этап S316, если два фильтра для вертикальных и горизонтальных границ не осуществили фильтрацию рассматриваемого пикселя.
На этапе S316 в секции 360 вычислений определяют, осуществил ли один из двух фильтров для вертикальных и горизонтальных границ фильтрацию рассматриваемого пикселя (этап S316). Обработка переходит на этап S320, если один из двух фильтров осуществил фильтрацию рассматриваемого пикселя. Обработка переходит на этап S318, если ни один из фильтров не осуществил фильтрацию рассматриваемого пикселя.
На этапе S318 в секции 360 вычислений получают входное значение пикселя для фильтра 24 удаления блочности (этап S318). На этапе S320 в секции 360 вычислений получают выход фильтра из фильтра, который фактически осуществлял фильтрацию рассматриваемого пикселя (этап S320).
На этапе S322 в секции 360 вычислений определяют значения весов для вычисления взвешенного среднего выходов двух фильтров, относящихся к рассматриваемому пикселю, в соответствии с расстояниями от рассматриваемого пикселя до вертикальных и горизонтальных границ или в соответствии с контрастностями краев для вертикальных и горизонтальных границ, которые соответствуют рассматриваемому пикселю (этап S322). В секции 360 вычислений с использованием определенного веса вычисляют взвешенное среднее выходов двух фильтров (этап S324).
В секции 360 вычислений сохраняют значение рассматриваемого пикселя в памяти, при этом значение пикселя получают на этапе S318 или S320 или вычисляют на этапе S324 (этап S326). Последовательности процессов, показанные на фиг. 36 и 37, заканчиваются тогда, когда осуществили обработку для всех пикселей, которые нужно обработать.
<6. Применение для различных кодеков>
Технология, соответствующая изобретению, применима к различным кодекам, относящимся к кодированию и декодированию изображений. Ниже описаны примеры применения технологии, соответствующей изобретению, для кодека нескольких видов и масштабируемого кодека.
[6-1. Кодек нескольких видов]
Кодек нескольких видов представляет собой схему кодирования изображений, которая кодирует и декодирует видео с несколькими точками обзора. На фиг. 38 показан пояснительный вид, иллюстрирующий кодек нескольких видов. На фиг. 38 показаны последовательности кадров для трех видов, полученных с трех точек обзора. Каждый вид содержит идентификатор вида (view_id). Один из видов определен как основной вид. Виды, отличные от основного вида, называются неосновными видами. В примере с фиг. 38 показаны основной вид, обозначенный идентификатором "0" вида, и два неосновных вида, обозначенные идентификаторами "1" или "2" вида. Кодирование данных изображения с несколькими видами может в целом уменьшить размер закодированного потока данных путем кодирования кадров неосновных видов на основе информации о кодировании кадров основного вида.
К каждому виду можно применить фильтр удаления блочности во время процесса кодирования и процесса декодирования, которые соответствуют описанному выше кодеку нескольких видов. Применение фильтра удаления блочности к каждому виду может распараллелить горизонтальную фильтрацию и вертикальную фильтрацию в элементах процессов, содержащих несколько CU для каждого вида в соответствии с технологией, соответствующей изобретению. Описанный выше обрабатываемый элемент может представлять собой несколько CU, LCU или картинок. Для каждого вида может быть установлен параметр (такой как параметр, описанный в расположенном выше параграфе 0092) для управления параллельной обработкой. Параметр, установленный для основного вида, может быть повторно использован для неосновного вида.
Горизонтальную фильтрацию и вертикальную фильтрацию можно распараллелить на несколько видов. Несколько видов могут совместно использовать параметр (такой, как параметр, описанный в расположенном выше параграфе 0092) для управления параллельной обработкой. Может быть, целесообразно дополнительно определить флаг, показывающий, что несколько видов совместно используют параметр.
На фиг. 39 показан пояснительный вид, иллюстрирующий процесс кодирования изображений, применяемый в описанном выше кодеке нескольких видов. На фиг. 39 в качестве примера показана структура устройства 710 кодирования нескольких видов. Устройство 710 кодирования нескольких видов содержит первую секцию 720 кодирования, вторую секцию 730 кодирования и секцию 740 мультиплексирования.
Первая секция 720 кодирования кодирует изображение основного вида и вырабатывает закодированный поток для основного вида. Вторая секция 730 кодирования кодирует изображение неосновного вида и вырабатывает закодированный поток для неосновного вида. Секция 740 мультиплексирования мультиплексирует закодированный поток основного вида, выработанный в первой секции 720 кодирования, и один или несколько закодированных потоков для неосновного вида, выработанных во второй секции 730 кодирования, что нужно для выработки мультиплексированного потока для нескольких видов.
Структура первой секции 720 кодирования и второй секции 730 кодирования, которые показаны на фиг. 39, аналогична структуре устройства 10 кодирования изображений, которое соответствует описанному выше варианту осуществления изобретения. Применение фильтра удаления блочности к видам позволяет распараллеливать горизонтальную фильтрацию и вертикальную фильтрацию в элементах процессов, содержащих несколько CU. Параметр для управления этими процессами может быть вставлен в область заголовка закодированного потока для каждого вида или в общую область заголовка в мультиплексированный поток.
На фиг. 40 показан пояснительный вид, иллюстрирующий процесс декодирования изображений, применяемый в описанном выше кодеке нескольких видов. На фиг. 40 в качестве примера показана структура устройства 760 декодирования нескольких видов. Устройство 760 декодирования нескольких видов содержит секцию 770 демультиплексирования, первую секцию 780 декодирования и вторую секцию 790 декодирования.
Секция 770 демультиплексирования демультиплексирует мультиплексированный поток для нескольких видов на закодированный поток основного вида и закодированный поток для одного или нескольких неосновных видов. Первая секция 780 декодирования декодирует изображение основного вида из закодированного потока для основного вида. Вторая секция 730 декодирования декодирует изображение неосновного вида из закодированного потока для неосновного вида.
Структура первой секции 780 декодирования и второй секции 790 декодирования, которые показаны на фиг. 40, аналогична структуре устройства 60 декодирования изображений, которое соответствует описанному выше варианту осуществления изобретения. Применение фильтра удаления блочности к видам позволяет распараллелить горизонтальную фильтрацию в элементах процессов, содержащих несколько CU, и распараллелить вертикальную фильтрацию. Параметр для управления этими процессами может быть получен из области заголовка закодированного потока для каждого вида или из общей области заголовка в мультиплексированном потоке.
[6-2. Масштабируемый кодек]
Масштабируемый кодек является схемой кодирования изображений, предназначенной для обеспечения иерархического кодирования. На фиг. 41 показан пояснительный вид, иллюстрирующий масштабируемый кодек. На фиг. 41 показаны последовательности кадров для трех слоев различных пространственных разрешающих способностей, разрешающих способностей по времени или качеств изображений. Каждый слой содержит идентификатор слоя (layer_id). Эти слои включают в себя основной слой с наименьшей разрешающей способностью (или качеством изображения). Слои, отличные от основного слоя, называются слоями улучшения. В примере с фиг. 41 показаны основной слой, обозначенный идентификатором "0" слоя, и два неосновных слоя, обозначенные идентификаторами "1" или "2" слоя. Кодирование данных изображения с несколькими слоями может в целом уменьшить размер закодированного потока путем кодирования кадров слоя улучшения на основе информации о кодировании кадров основного слоя.
К каждому слою можно применить фильтр удаления блочности во время процесса кодирования и процесса декодирования, которые соответствуют описанному выше масштабируемому кодеку. Применение фильтра удаления блочности к каждому слою может распараллелить горизонтальную фильтрацию и вертикальную фильтрацию в элементах процессов, содержащих несколько CU для каждого вида в соответствии с технологией, соответствующей изобретению. Описанный выше обрабатываемый элемент может представлять собой несколько CU, LCU или картинок. Для каждого слоя может быть установлен параметр (такой как параметр, описанный в расположенном выше параграфе 0092) для управления параллельной обработкой. Параметр, установленный для основного слоя, может быть повторно использован для слоя улучшения.
Горизонтальную фильтрацию и вертикальную фильтрацию можно распараллелить на несколько слоев. Несколько слоев могут совместно использовать параметр (такой, как параметр, описанный в расположенном выше параграфе 0092) для управления параллельной обработкой. Может быть, целесообразно дополнительно определить флаг, показывающий, что несколько слоев совместно используют параметр.
На фиг. 42 показан пояснительный вид, иллюстрирующий процесс кодирования изображений, применяемый в описанном выше масштабируемом кодеке. На фиг. 42 показана в качестве примера структура масштабируемого устройства 810 кодирования. Масштабируемое устройство 810 кодирования содержит первую секцию 820 кодирования, вторую секцию 830 кодирования и секцию 840 мультиплексирования.
Первая секция 820 кодирования кодирует изображение основного слоя и вырабатывает закодированный поток для основного слоя. Вторая секция 830 кодирования кодирует изображение слоя улучшения и вырабатывает закодированный поток для слоя улучшения. Секция 840 мультиплексирования мультиплексирует закодированный поток основного слоя, выработанный в первой секции 820 кодирования, и один или несколько закодированных потоков слоя улучшения, выработанных во второй секции 830 кодирования, что нужно для выработки мультиплексированного потока для нескольких слоев.
Структура первой секции 820 кодирования и второй секции 830 кодирования, которые показаны на фиг. 42, аналогична структуре устройства 10 кодирования изображений, которое соответствует описанному выше варианту осуществления изобретения. Применение фильтра удаления блочности к слоям позволяет распараллелить горизонтальную фильтрацию в элементах процессов, содержащих несколько CU, и распараллелить вертикальную фильтрацию. Параметр для управления этими процессами может быть вставлен в область заголовка закодированного потока для каждого слоя или в общую область заголовка в мультиплексированный поток.
На фиг. 43 показан пояснительный вид, иллюстрирующий процесс декодирования изображений, применяемый в описанном выше масштабируемом кодеке. На фиг. 43 показана в качестве примера структура масштабируемого устройства 860 декодирования. Масштабируемое устройство 860 декодирования содержит секцию 870 демультиплексирования, первую секцию 880 декодирования и вторую секцию 890 декодирования.
Секция 870 демультиплексирования демультиплексирует мультиплексированный поток для нескольких слоев на закодированный поток основного слоя и закодированный поток для одного или нескольких слоев улучшения. Первая секция 880 декодирования декодирует изображение основного слоя из закодированного потока для основного слоя. Вторая секция 830 декодирования декодирует изображение слоя улучшения из закодированного потока для слоя улучшения.
Структура первой секции 880 декодирования и второй секции 890 декодирования, которые показаны на фиг. 43, аналогична структуре устройства 60 декодирования изображений, которое соответствует описанному выше варианту осуществления изобретения. Применение фильтра удаления блочности к слоям позволяет распараллелить горизонтальную фильтрацию в элементах процессов, содержащих несколько CU, и распараллелить вертикальную фильтрацию. Параметр для управления этими процессами может быть получен из области заголовка закодированного потока для каждого слоя или из общей области заголовка в мультиплексированном потоке.
<7. Пример приложения>
Устройство 10 кодирования изображений и устройство 60 декодирования изображений, которые соответствуют описанному выше варианту осуществления изобретения, могут быть применены в различных электронных устройствах, таких как передающее устройство и приемное устройство для спутникового вещания, кабельного вещания, такого как кабельное телевидение, распределения в интернете, распределения по конечным устройствам через сотовую связь и для подобных случаев, в записывающем устройстве, которое записывает изображения на носитель, такой как оптический диск, магнитный диск или флеш-память, в устройстве воспроизведения, которое воспроизводит изображения с такого носителя информации и в подобных устройствах. Ниже будут описаны четыре примера приложений.
[7-1. Первый пример приложения]
На фиг. 44 показана структурная схема, иллюстрирующая пример схематической конфигурации телевизора, в котором применен описанный выше вариант осуществления изобретения. Телевизор 900 содержит антенну 901, тюнер 902, устройство 903 разделения, декодер 904, секцию 905 обработки видеосигнала, секцию 906 отображения, секцию 907 обработки аудиосигнала, динамики 908, внешний интерфейс 909, секцию 910 управления, интерфейс 911 пользователя и шину 912.
В тюнере 902 извлекают сигнал нужного канала из широковещательных сигналов, принятых через антенну 901, и демодулируют извлеченный сигнал. Далее в тюнере 902 выводят на устройство 903 разделения поток закодированных бит, полученный при демодуляции. То есть тюнер 902 служит в качестве средства передачи телевизоров 900 для приема закодированного потока, в котором изображение закодировано.
В устройстве 903 разделения отделяют видеопоток и аудиопоток программы, которую будут просматривать, из потока закодированных бит и выводят на декодер 904 каждый отделенный поток. Также в устройстве 903 разделения выделяют вспомогательные данные, такие как ЭСП (электронный справочник программ), из потока закодированных бит и подают извлеченные данные в секцию 910 управления. Кроме того, в устройстве 903 разделения могут осуществлять расшифрование, в случае шифрования потока закодированных бит.
В декодере 904 декодируют видеопоток и аудиопоток, полученные из устройства 903 разделения. Далее в декодере 904 выводят в секцию 905 обработки видеосигнала видеоданные, выработанные в процессе декодирования. Также в декодере 904 выводят в секцию 907 обработки аудиосигнала аудиоданные, выработанные в процессе декодирования.
В секции 905 обработки видеосигнала воспроизводят видеоданные, полученные из декодера 904, и делают так, чтобы секция 906 отображения отображала видео. Также в секции 905 обработки видеосигнала могут делать так, чтобы секция 906 отображения отображала экран приложения, полученный по сети. Далее в секции 905 обработки видеосигнала в соответствии с настройками могут осуществлять дополнительный процесс, например, такой как подавление шумов, для видеоданных. Более того, в секции 905 обработки видеосигнала могут вырабатывать изображение ГИП (графический интерфейс пользователя), например, такое как меню, кнопка, курсор или подобные изображения, и накладывать выработанное изображение на выводимое изображение.
Секцию 906 отображения приводят в действие сигналом приведения в действие, который подают из секции 905 обработки видеосигнала, и в секции 906 отображения отображают видео или изображение на видеоэкране устройства отображения (например, жидкокристаллическом дисплее, плазменном дисплее, OLED дисплее или подобных).
В секции 907 обработки аудиосигнала осуществляют процессы воспроизведения, такие как Ц/А преобразование и усиление аудиоданных, полученных из декодера 904, и выводят аудио на динамики 908. Также в секции 907 обработки видеосигнала могут осуществлять для аудиоданных дополнительный процесс, такой как подавление шумов.
Внешний интерфейс 909 является интерфейсом для соединения телевизора 909 и внешнего устройства или сети. Например, видеопоток и аудиопоток, принятый через внешний интерфейс 909, могут быть декодированы в декодере 904. То есть внешний интерфейс 909 служит в качестве средства передачи телевизоров 900 для приема закодированного потока, в котором изображение закодировано.
Секция 910 управления содержит процессор, такой как ЦП (центральный процессор), и память, такую как ОЗУ (оперативное запоминающее устройство) и ПЗУ (постоянное запоминающее устройство) или подобные устройства. В памяти хранят программу, которую выполняет ЦП, данные программы, данные ЭСП, данные, полученные по сети, и подобные данные. Программу, хранящуюся в памяти, считывают и выполняют на ЦП, например, во время активации телевизора 900. ЦП управляет работой телевизора 900 путем выполнения программы и в соответствии с сигналом операции, полученным, например, от интерфейса 911 пользователя.
Интерфейс 911 пользователя соединен с секцией 910 управления. Интерфейс 911 пользователя содержит, например, кнопку и переключатель, используемые пользователем для управления телевизором 900, и секцию приема для сигнала дистанционного управления. В интерфейсе 911 пользователя определяют операцию пользователя с помощью этих структурных элементов, вырабатывают сигнал операции и выводят выработанный сигнал операции в секцию 910 управления.
Шина 912 соединяет тюнер 902, устройство 903 разделения, декодер 904, секцию 905 обработки видеосигнала, секции 907 обработки аудиосигнала, внешний интерфейс 909 и секцию 910 управления.
В сконфигурированном таким образом телевизоре 900 декодер 904 обладает функцией устройства 60 декодирования изображений, которое описано выше и соответствует одному варианту осуществления изобретения. Соответственно, также в случае декодирования изображения в телевизоре 900 возможно улучшить параллельность процессов фильтра удаления блочности и обеспечить высокоскоростную обработку.
[7-2. Второй пример приложения]
На фиг. 45 показана структурная схема, иллюстрирующая пример схематической конфигурации мобильного телефона, в котором применен описанный выше вариант осуществления изобретения. Мобильный телефон 920 содержит антенну 921, секцию 922 связи, аудиокодек 923, динамик 924, микрофон 925, секцию 926 фотокамеры, секцию 927 обработки изображений, секцию 928 разделения, секцию 929 записи/воспроизведения, секцию 930 отображения, секцию 931 управления, секцию 932 операции и шину 933.
Антенна 921 соединена с секцией 922 связи. Динамик 924 и микрофон 925 соединены с аудиокодеком 923. Секция 932 операции соединена с секцией 931 управления. Шина 933 соединяет секцию 922 связи, аудиокодек 923, секцию 926 фотокамеры, секцию 927 обработки изображений, секцию 928 разделения, секцию 929 записи/воспроизведения, секцию 930 отображения и секцию 931 управления.
Мобильный телефон 920 осуществляет такие операции, как передача/прием аудиосигнала, передача/прием электронных писем или данных изображения, формирование изображений, запись данных и подобные операции, в различных режимах работы, в том числе в режиме аудиосвязи, режиме обмена данными, режиме формирования изображения и режиме видеотелефона.
В режиме аудиосвязи аналоговый аудиосигнал, выработанный микрофоном 925, подают на аудиокодек 923. В аудиокодеке 923 преобразуют аналоговый аудиосигнал в аудиоданные и осуществляют А/Ц преобразование и сжимают преобразованные аудиоданные. Далее в аудиокодеке 923 выводят в секцию 922 связи сжатые аудиоданные. В секции 922 связи кодируют и модулируют аудиоданные и вырабатывают сигнал передачи. Далее в секции 922 связи передают выработанный сигнал передачи на базовую станцию (не показана) через антенну 921. Также в секции 922 связи усиливают беспроводной сигнал, принятый через антенну 921, и преобразуют частоту беспроводного сигнала и получают принятый сигнал. Далее, в секции 922 связи демодулируют и декодируют принятый сигнал и вырабатывает аудиоданные и выводят выработанные аудиоданные в аудиокодек 923. В аудиокодеке 923 расширяют и осуществляют Ц/А преобразование аудиоданных и вырабатывают аналоговый аудиосигнал. Далее в аудиокодеке 923 подают выработанный аудиосигнал на динамик 924 и делают так, чтобы подать аудио на выход.
Также в режиме обмена данных в секции 931 управления вырабатывают текстовые данные, которые входят в электронное письмо, в соответствии с операцией пользователя, например, через секцию 932 операции. Более того, в секции 931 управления делают так, чтобы текст отображался на секции 930 отображения. Более того, в секции 931 управления вырабатывают данные электронного письма в соответствии с командой передачи пользователя через секцию 932 операции и выдают выработанные данные электронного письма в секцию 922 связи. Далее, в секции 922 связи кодируют и модулируют данные электронного письма и вырабатывают сигнал передачи. Далее в секции 922 связи передают выработанный сигнал передачи на базовую станцию (не показана) через антенну 921. Также в секции 922 связи усиливают беспроводной сигнал, принятый через антенну 921, и преобразуют частоту беспроводного сигнала и получают принятый сигнал. Далее, в секции 922 связи демодулируют и декодируют принятый сигнал и восстанавливают данные электронного письма и выводят восстановленные данные электронного письма в секцию 931 управления. С помощью секции 931 управления делают так, чтобы в секции 930 отображения отображалось содержимое электронного письма, и также делают так, чтобы данные электронного письма сохранились на носителе информации из секции 929 записи/воспроизведения.
Секция 929 записи/воспроизведения содержит носитель информации произвольного доступа для чтения и записи. Например, носитель информации может быть встроенным носителем информации, таким как ОЗУ, флеш-памятью или подобным устройством, или внешне установленным носителем информации, таким как накопитель на жестких дисках, магнитный диск, магнитооптический диск, оптический диск, USB память, карта памяти и подобное устройство.
Более того, в режиме формирования изображения, в секции 926 фотокамеры формируют, например, изображение объекта, вырабатывают данные изображения и выводят выработанные данные изображения в секцию 927 обработки изображений. В секции 927 обработки изображения кодируют данные изображения, полученные из секции 926 фотокамеры, и делают так, чтобы закодированный поток сохранялся на носителе информации секции 929 записи/воспроизведения.
Более того, в режиме видеотелефона в секции 928 разделения объединяют видеопоток, закодированный в секции 927 обработки изображения, и аудиопоток, полученный из аудиокодека 923, и, например, выводят объединенный поток в секцию 922 связи. В секции 922 связи кодируют и модулируют поток и вырабатывают сигнал передачи. Далее в секции 922 связи передают выработанный сигнал передачи на базовую станцию (не показана) через антенну 921. Также в секции 922 связи усиливают беспроводной сигнал, принятый через антенну 921, и преобразуют частоту беспроводного сигнала и получают принятый сигнал. Эти сигнал передачи и сигнал приема могут содержать закодированный поток бит. Далее, в секции 922 связи демодулируют и декодируют принятый сигнал и восстанавливают поток и выводят восстановленный поток в секцию 928 разделения. В секции 928 разделения выделяют видеопоток и аудиопоток из входного потока и выводят видеопоток в секцию 927 обработки изображения и аудиопоток на аудиокодек 923. В секции 927 обработки изображения декодируют видеопоток и вырабатывают видеоданные. Видеоданные подают в секцию 930 отображения, и набор изображений отображают в секции 930 отображения. В аудиокодеке 923 расширяют и осуществляют Ц/А преобразование аудиопотока и вырабатывают аналоговый аудиосигнал. Далее в аудиокодеке 923 подают выработанный аудиосигнал на динамик 924 и делают так, чтобы подать аудио на выход.
В сконфигурированном таким образом мобильном телефоне 920 секция 927 обработки изображения обладает функцией устройства 10 кодирования изображений и устройства 60 декодирования изображений, которые соответствуют описанному выше варианту осуществления изобретения. Соответственно, также в случае кодирования и декодирования изображения в мобильном телефоне 920 возможно улучшить распараллеливание процессов фильтра удаления блочности и обеспечить высокоскоростную обработку.
[7-3. Третий пример приложения]
На фиг. 46 показана структурная схема, иллюстрирующая пример схематической конфигурации устройства записи/воспроизведения, в котором применен описанный выше вариант осуществления изобретения. В устройстве 940 записи/воспроизведения кодируют и записывают на носитель информации, например, аудиоданные и видеоданные принятой широковещательной программы. В устройстве 940 записи/воспроизведения могут также кодировать и записывать на носитель информации, например, аудиоданные и видеоданные, полученные от другого устройства. Более того, в устройстве 940 записи/воспроизведения воспроизводят с использованием монитора или динамиков данные, записанные на носителе информации, что делают, например, в соответствии с командой пользователя. В это время в устройстве 940 записи/воспроизведения декодируют аудиоданные и видеоданные.
Устройство 940 записи/воспроизведения содержит тюнер 941, внешний интерфейс 942, устройство 943 кодирования, НЖМД 944 (накопитель на жестких магнитных дисках), дисковод 945, переключатель 946, устройство 947 декодирования, устройство 948 ОЭ (отображение на экране), секцию 949 управления и интерфейс 950 пользователя.
В тюнере 941 извлекают сигнал нужного канала из широковещательных сигналов, принятых через антенну (не показана), и демодулируют извлеченный сигнал. Далее в тюнере 941 выводят на переключатель 946 поток закодированных бит, полученный при демодуляции. То есть, тюнер 941 служит в качестве средства передачи устройство 940 записи/воспроизведения.
Внешний интерфейс 942 является интерфейсом для соединения устройства 940 записи/воспроизведения и внешнего устройства или сети. Например, внешний интерфейс 942 может быть интерфейсом IEEE 1394, сетевым интерфейсом, USB интерфейсом, интерфейсом флеш-памяти или подобным интерфейсом. Например, видеоданные и аудиоданные, принятые с помощью внешнего интерфейса 942, вводят в устройство 943 кодирования. То есть, внешний интерфейс 942 служит в качестве средства передачи устройства 940 записи/воспроизведения.
В случае, когда видеоданные и аудиоданные, введенные с помощью внешнего интерфейса 942, не закодированы, в устройстве 943 кодирования кодируют видеоданные и аудиоданные. Далее в устройстве 943 кодирования выводят на переключатель 946 поток закодированных бит.
В НЖМД 944 записывают во внутренний накопитель на жестких дисках поток закодированных бит, который является сжатым содержимым видеоданных или аудиоданных, различных программ или других частей данных. Также в НЖМД 944 считывают эти части данных с накопителя на жестких дисках во время воспроизведения видео или аудио.
С помощью дисковода 945 записывают или считывают данные с установленного носителя информации. Носитель информации, установленный в дисковод 945, может быть, например, DVD диском (диском DVD-Video, диском DVD-RAM, диском DVD-R, диском DVD-RW, диском DVD+, диском DVD+RW или подобным диском), диском Blu-ray (зарегистрированная торговая марка) или подобным носителем информации.
В селекторе 946 выбирают, во время записи видео или аудио, поток закодированных бит, полученный из тюнера 941 или устройства 943 кодирования, и выводят выбранный поток закодированных бит на НЖМД 944 или дисковод 945. Также в переключателе 946 выводят, во время воспроизведения видео или аудио, поток закодированных бит, полученный из НЖМД 944 или дисковода 945, на устройство 947 декодирования.
В декодере 947 декодируют поток закодированных бит и вырабатывают видеоданные и аудиоданные. Далее в устройстве 947 декодирования выводят в устройство 948 ОЭ выработанные видеоданные. Также в устройстве 904 декодирования выводят на внешние динамики выработанные аудиоданные.
В устройстве 948 ОЭ воспроизводят видеоданные, полученные из устройства 947 декодирования, и отображают видео. Также в устройстве 948 ОЭ могут накладывать изображение ГИП, например, такое как меню, кнопка, курсор или подобное изображение, на отображаемое видео.
Секция 949 управления содержит процессор, такой как ЦП, и память, такую как ОЗУ или ПЗУ. В памяти хранят программу, выполняемую ЦП, программные данные и подобную информацию. Программу, хранящуюся в памяти, считывают и выполняют на ЦП, например, во время активации устройства 940 записи/воспроизведения. ЦП управляет работой устройства 940 записи/воспроизведения путем выполнения программы и в соответствии с сигналом работы, полученным, например, от интерфейса 950 пользователя.
Интерфейс 950 пользователя соединен с секцией 949 управления. Интерфейс 950 пользователя содержит кнопку и переключатель, используемые пользователем для управления устройством 940 записи/воспроизведения, и секцию приема, например, для сигнала дистанционного управления. В интерфейсе 950 пользователя определяют операцию пользователя с помощью этих структурных элементов, вырабатывают сигнал операции и выводят выработанный сигнал операции в секцию 949 управления.
В сконфигурированном таким образом устройстве 940 записи/воспроизведения декодер 943 обладает функцией устройства 10 декодирования изображений, которое соответствует описанному выше варианту осуществления изобретения. Также устройство 940 записи/воспроизведения декодер 947 обладает функцией устройства 60 декодирования изображений, которое соответствует описанному выше варианту осуществления изобретения. Соответственно, также в случае кодирования и декодирования изображения в устройстве 940 записи/воспроизведения возможно улучшить распараллеливание процессов фильтра удаления блочности и обеспечить высокоскоростную обработку.
[7-4. Четвертый пример приложения]
На фиг. 47 показана структурная схема, иллюстрирующая пример схематической конфигурации устройства формирования изображений, в котором применен описанный выше вариант осуществления изобретения. Устройство 960 формирования изображений формирует изображение объекта, вырабатывает изображение, кодирует данные об изображении и записывает данные об изображении на носитель информации.
Устройство 960 формирования изображений содержит оптический блок 961, секцию 962 формирования изображения, секцию 963 обработки сигнала, секцию 964 обработки изображения, секцию 965 отображения, внешний интерфейс 966, память 967, привод 968 носителя, устройство 969 ОЭ, секцию 970 управления, интерфейс 971 пользователя и шину 972.
Оптический блок 961 соединен с секцией 962 формирования изображения. Секция 962 формирования изображения соединена с секцией 963 обработки сигнала. Секция 965 отображения соединена с секцией 964 обработки изображения. Интерфейс 971 пользователя соединен с секцией 970 управления. Шина 972 соединяет секцию 964 обработки изображений, внешний интерфейс 966, память 967, привод 968 носителя, устройство 969 ОЭ и секцию 970 управления.
Оптический блок 961 содержит объектив, механизм диафрагмы и подобные элементы. В оптическом блоке 961 формируют оптическое изображение объекта на поверхности формирования изображения секции 962 формирования изображений. Секция 962 формирования изображений содержит датчик изображения, такой как ПЗС, КМОП и подобный, и в секции 962 формирования изображений преобразуют с помощью фотоэлектрического преобразования оптическое изображение, полученное на поверхности формирования изображения, в сигнал изображения, который является электрическим сигналом. Далее в секции 962 формирования изображения выводят сигнал изображения в секцию 963 обработки сигнала.
В секции 963 обработки сигнала осуществляют различные процессы обработки сигнала фотокамеры, такие как коррекция изгиба, гамма коррекция, коррекция цвета и подобные процессы, для сигнала изображения, полученного из секции 962 формирования изображения. В секции 963 обработки сигнала выводят данные изображения после процесса обработки сигнала фотокамеры в секцию 964 обработки изображения.
В секции 964 обработки изображения кодируют данные изображения, полученные из секции 963 обработки сигнала, и вырабатывают закодированные данные. Далее в секции 964 обработки изображения выводят выработанные закодированные данные во внешний интерфейс 966 или привод 968 носителя. Также в секции 964 обработки изображения декодируют закодированные данные, полученные из внешнего интерфейса 966 или привода 968 носителя, и вырабатывают данные изображения. Далее в секции 964 обработки изображения выводят выработанные данные изображения в секцию 965 отображения. Также в секции 964 обработки изображения могут вывести данные изображения, полученные из секции 963 обработки сигнала, в секцию 965 отображения и сделать так, чтобы отображать изображение. Более того, в секции 964 обработки изображения могут накладывать данные для отображения, полученные из устройства 969 ОЭ, на изображение, которое будут выводить в секцию 965 отображения.
В устройстве 969 ОЭ вырабатывают изображение ГПИ, например, такое как меню, кнопка, курсор или подобное, и выводят выработанное изображение в секцию 964 обработки изображения.
Внешний интерфейс 966 сконфигурирован, например, как терминал USB входа/выхода. Внешний интерфейс 966 соединяет устройство 960 формирования изображений и принтер, например, во время печати изображения. Также при необходимости к внешнему интерфейсу 966 присоединен привод. В привод устанавливают съемный носитель, например, такой как магнитный диск, оптический диск и подобное, и в устройство 960 формирования изображений может быть установлена программа, считанная со съемного носителя. Более того, внешний интерфейс 966 может быть сконфигурирован в виде сетевого интерфейса для соединения с сетью, такой как локальная сеть, интернет и подобные сети. То есть, внешний интерфейс 966 служит в качестве средства передачи устройства 960 формирования изображений.
Носитель информации, который устанавливают в приводе 968 носителя, может быть носителем информации произвольного доступа для чтения и записи, например, таким как магнитный диск, магнитооптический диск, оптический диск, полупроводниковая память и подобным носителем. Также носитель информации может быть неподвижно установлен в приводе 968 носителя, формируя несъемную секцию хранения, такую как встроенный накопитель на жестких магнитных дисках или SSD (твердотельный накопитель).
Секция 970 управления содержит процессор, такой как ЦП, и память, такую как ОЗУ или ПЗУ. В памяти хранят программу, выполняемую ЦП, программные данные и подобную информацию. Программу, хранящуюся в памяти, считывают и выполняют на ЦП, например, во время активации устройства 960 формирования изображений. ЦП управляет работой устройства 960 формирования изображений путем выполнения программы и в соответствии с сигналом работы, полученным, например, от интерфейса 971 пользователя.
Интерфейс 971 пользователя соединен с секцией 970 управления. Интерфейс 971 пользователя содержит, например, кнопку, переключатель и подобное устройство, используемое пользователем для управления устройством 960 формирования изображений. В интерфейсе 971 пользователя определяют операцию пользователя с помощью этих структурных элементов, вырабатывают сигнал операции и выводят выработанный сигнал операции в секцию 970 управления.
В сконфигурированном таким образом устройстве 960 формирования изображений секция 964 обработки изображений обладает функцией устройства 10 кодирования изображений и устройства 60 декодирования изображений, которые соответствуют описанному выше варианту осуществления изобретения. Соответственно, в случае кодирования и декодирования изображения в устройстве 960 формирования изображений возможно улучшить распараллеливание процессов фильтра удаления блочности и обеспечить высокоскоростную обработку.
<8. Подведение итогов>
Со ссылками на фиг. 1-47 были описаны три демонстрационных примера фильтра удаления блочности для устройства 10 кодирования изображений и устройства 60 декодирования изображений, которые соответствуют варианту осуществления изобретения. Три демонстрационных примера уменьшают зависимость процессов, которые осуществляют в фильтре удаления блочности и которые присущи существующей технологии. Это может улучшить распараллеливание процессов при применении фильтра удаления блочности. В результате возможно исключить задержку или уменьшение скорости обработки данных из-за большого объема обработки для фильтра удаления блочности и обеспечить высокоскоростную обработку. Распараллеливание и последовательности процессов, осуществляемых фильтром удаления блочности, могут быть гибко установлены в соответствии с различными условиями, такими как размеры изображения или среда установки.
В соответствии с первым демонстрационным примером, к значениям пикселей входного изображения, поданного на фильтр удаления блочности, обращаются для нескольких макроблоков изображения при определении необходимости фильтрации для вертикальной границы и горизонтальной границы. Результат заключается в уменьшении зависимости процессов между макроблоками или кодируемыми элементами. Следовательно, возможно распараллелить процессы определения необходимости фильтрации по нескольким макроблокам или всем макроблокам в изображении при максимизации распараллеливания.
В соответствии со вторым демонстрационным примером, для вертикальных и горизонтальных границ каждого блока определения необходимости фильтрации осуществляют без ожидания применения фильтров удаления блочности для других блоков макроблока, к которому принадлежит первый блок. Это уменьшает зависимость процессов между вертикальной границей и горизонтальной границей в макроблоке или кодируемом элементе. Соответственно, возможно распараллелить процессы определения необходимости фильтрации для вертикальных и горизонтальных границ в макроблоке.
В соответствии с третьим демонстрационным примером, процессы фильтрации для вертикальных и горизонтальных границ осуществляют фильтрацию пикселей, поданных на вход фильтра удаления блочности. При такой структуре возможно распараллеливать друг с другом процессы фильтрации для вертикальных и горизонтальных границ. Это может дополнительно ускорить процессы, осуществляемые фильтром удаления блочности. Выходное значение пикселя вычисляют на основе выходов двух фильтров для пикселя, обновленных двумя процессами фильтрации, осуществляемыми параллельно. Распараллеливание двух процессов фильтрации также может надлежащим образом уменьшить блочность изображения, появляющуюся на вертикальной и горизонтальной границах. Выходное значение пикселя может быть вычислено в виде взвешенного среднего выходов двух фильтров. Это может позволить фильтру удаления блочности более эффективно удалять блочность изображения и дополнительно улучшить качество изображения.
В описании в основном содержатся примеры, когда процессы фильтрации для вертикальных границ предшествуют процессам фильтрации для горизонтальных границ. Кроме того, описанные выше эффекты технологии, соответствующей изобретению, в равной степени доступны для случая, когда процессы фильтрации для горизонтальных границ предшествуют процессам фильтрации для вертикальных границ. Фильтр удаления блочности, обрабатывающий блок или макроблок, может иметь другие размеры, отличающиеся от описанных в этом документе. В доступной технологии могут быть опущены процессы определения необходимости фильтрации и может быть распараллелено применение фильтра удаления блочности для вертикальных и горизонтальных границ.
Технология передачи информации, используемая для распараллеливания обработки фильтром удаления блочности от стороны кодирования до стороны декодирования, не ограничена технологией мультиплексирования информации в заголовок закодированного потока. Например, информация может быть не мультиплексирована в закодированный поток бит, но может быть передана или записана в виде отдельных данных, связанных с закодированным потоком бит. Под термином «связана» понимается обеспечение возможности связывания изображения (или части изображения, такой как срез или блок), содержащегося в потоке бит, с информацией, соответствующей изображению. А именно, информация может быть передана по каналу передачи, который отличается от канала, используемого для изображений (или потоков бит). Информация может быть записана на носитель информации (или в другую область записи на том же самом носителе информации), отличный от носителя, используемого для изображений (или потоков бит). Информация и изображение (или поток бит) могут быть связаны друг с другом на основе любых элементов, таких как несколько кадров, один кадр или часть кадра.
Предпочтительные варианты осуществления настоящего изобретения описаны выше со ссылками на приложенные чертежи, при этом настоящее изобретение конечно не ограничено приведенными выше примерами. Специалист в рассматриваемой области может предложить различные изменения и модификации, находящиеся в пределах объема настоящего изобретения, определенного приложенной формулой изобретения, и надо понимать, что эти изменения и модификации естественно находятся в рамках объема настоящего изобретения.
В описании представлены процессы фильтрации для вертикальных границ как «горизонтальная фильтрация» и процессы фильтрации для горизонтальных границ как «вертикальная фильтрация». В общем, процессы фильтрации для вертикальных границ используют горизонтально расположенные наборы для фильтров. Процессы фильтрации для горизонтальных границ используют вертикально расположенные наборы для фильтров. По этой причине описанная выше номенклатура используется для процессов фильтрации.
Список ссылочных позиций
10, 60 устройство обработки изображений
112, 212 первая секция определения (секция определения для вертикальных границ)
116, 216 вторая секция определения (секция определения для горизонтальных границ)
132 первая секция фильтрации (секция горизонтальной фильтрации)
142 вторая секция фильтрации (секция вертикальной фильтрации)
150 секция управления распараллеливанием
Изобретение относится к способу и устройству обработки изображений, и в частности к применению фильтра удаления блочности для стандарта высокоэффективного кодирования видео (HEVC). Техническим результатом является обеспечение дополнительного распараллеливания обработки при применении фильтра удаления блочности. Предложено устройство обработки изображений, содержащее: секцию декодирования, приспособленную для декодирования изображения из закодированного потока, секцию горизонтальной фильтрации, приспособленную для применения фильтра удаления блочности к вертикальной границе блока в изображении, которое должно быть декодировано в секции декодирования, секцию вертикальной фильтрации, приспособленную для применения фильтра удаления блочности к горизонтальной границе блока в изображении, которое должно быть декодировано в секции декодирования, и секцию управления, в результате работы которой в секции горизонтальной фильтрации параллельно фильтруют несколько вертикальных границ блока, содержащихся в обрабатываемом элементе, который включает в себя несколько кодируемых элементов, и в секции вертикальной фильтрации параллельно фильтруют несколько горизонтальных границ блока, содержащихся в обрабатываемом элементе. 2 н. и 10 з.п. ф-лы, 47 ил.
1. Устройство обработки изображений, содержащее:
секцию горизонтальной фильтрации, выполненную с возможностью осуществления горизонтальной фильтрации параллельно для соседних, к вертикальной границе блоков, пикселей множества блоков локально декодированного изображения так, что фильтрация каждой вертикальной границы блока осуществляется вне зависимости от результата фильтрации других вертикальных границ блоков множества блоков, и генерирования первого фильтрованного изображения;
секцию вертикальной фильтрации, выполненную с возможностью осуществления вертикальной фильтрации параллельно для соседних, к горизонтальной границе блоков, пикселей множества блоков первого фильтрованного изображения так, что фильтрация каждой горизонтальной границы блока осуществляется вне зависимости от результата фильтрации других горизонтальных границ блоков множества блоков, и генерирования второго фильтрованного изображения; и
секцию кодирования, выполненную с возможностью кодирования изображения с использованием второго фильтрованного изображения для генерирования кодированного потока.
2. Устройство обработки изображений по п. 1, в котором указанная секция вертикальной фильтрации выполнена с возможностью осуществления вертикальной фильтрации вне зависимости от множества вертикальных фильтраций в горизонтальном направлении.
3. Устройство обработки изображений по п. 1, в котором указанная секция кодирования выполнена с возможностью кодирования изображения на основе кодируемых элементов (CU), причем кодируемый элемент сформирован посредством разделения наибольшего кодируемого элемента (LCU) на меньшие кодируемые элементы в качестве разделения блока, и декодирования кодированного потока на основе CU.
4. Устройство обработки изображений по п. 3, дополнительно содержащее секцию управления, выполненную с возможностью параллельного определения, осуществлять ли горизонтальную фильтрацию соседних, к вертикальной границе блоков, пикселей множества блоков, и осуществления горизонтальной фильтрации в соответствии с результатом определения.
5. Устройство обработки изображений по п. 4, в котором секция управления дополнительно выполнена с возможностью параллельного определения, осуществлять ли вертикальную фильтрацию соседних, к горизонтальной границе блоков, пикселей множества блоков, и осуществления вертикальной фильтрации в соответствии с результатом определения.
6. Устройство обработки изображений по п. 5, в котором указанная секция горизонтальной фильтрации выполнена с возможностью осуществления горизонтальной фильтрации вне зависимости от множества горизонтальных фильтраций в вертикальном направлении.
7. Способ обработки изображений, содержащий этапы, на которых:
осуществляют горизонтальную фильтрацию параллельно для соседних, к вертикальной границе блоков, пикселей множества блоков локально декодированного изображения так, что фильтрация каждой вертикальной границы блока осуществляется вне зависимости от результата фильтрации других вертикальных границ блоков множества блоков, и генерируют первое фильтрованное изображение;
осуществляют вертикальную фильтрацию параллельно для соседних, к горизонтальной границе блоков, пикселей множества блоков первого фильтрованного изображения так, что фильтрация каждой горизонтальной границы блока осуществляется вне зависимости от результата фильтрации других горизонтальных границ блоков множества блоков, и генерируют второе фильтрованное изображение; и
осуществляют кодирование изображения с использованием второго фильтрованного изображения для генерирования кодированного потока.
8. Способ обработки изображений по п. 7, дополнительно содержащий этапы, на которых кодируют изображение на основе кодируемых элементов (CU), причем кодируемый элемент сформирован посредством разделения наибольшего кодируемого элемента (LCU) на меньшие кодируемые элементы в качестве разделения блока, и декодируют кодированный поток на основе CU.
9. Способ обработки изображений по п. 8, дополнительно содержащий этапы, на которых параллельно определяют, осуществлять ли горизонтальную фильтрацию соседних, к вертикальной границе блоков, пикселей множества блоков, и осуществляют горизонтальную фильтрацию в соответствии с результатом определения.
10. Способ обработки изображений по п. 9, дополнительно содержащий этапы, на которых параллельно определяют, осуществлять ли вертикальную фильтрацию соседних, к горизонтальной границе блоков, пикселей множества блоков, и осуществляют вертикальную фильтрацию в соответствии с результатом определения.
11. Способ обработки изображений по п. 7, дополнительно содержащий этап, на котором осуществляют горизонтальную фильтрацию вне зависимости от множества горизонтальных фильтраций в вертикальном направлении.
12. Способ обработки изображений по п. 7, дополнительно содержащий этап, на котором осуществляют вертикальную фильтрацию вне зависимости от множества вертикальных фильтраций в горизонтальном направлении.
US 8116379 В2, 2012-02-14 | |||
US 7715647 В2, 2010-05-11 | |||
WO 2008118562 A1, 2008-10-02 | |||
JPS 63104586 A, 1988-05-10 | |||
US 2006078052 A1, 2006-04-13 | |||
US 2008123750 A1, 2008-05-29 | |||
RU 2367113 C1, 2009-09-10. |
Авторы
Даты
2019-10-07—Публикация
2011-12-02—Подача