универсальная корректировка блочности изображения
Классы МПК: | H04N7/30 с использованием кодирования с преобразованием G06T9/00 Кодирование изображения, например из побитового к непобитовому изображению |
Автор(ы): | ТЭН Чиа-Юань (US), МАНДЖУНАТХ Шаратх (US) |
Патентообладатель(и): | КВЭЛКОММ ИНКОРПОРЕЙТЕД (US) |
Приоритеты: |
подача заявки:
2008-10-10 публикация патента:
10.01.2013 |
Изобретение относится к области обработки изображения и, более конкретно, к способам универсальной корректировки блочности изображения при низком быстродействии (малом количестве миллионов команд в секунду) (MIP). Техническим результатом является создание способа универсальной корректировки блочности, включая унаследованную блочность. Указанный технический результат достигается тем, что устройство содержит процессор, выполненный с возможностью реализации набора команд для вызова средства внутрицикловой фильтрации удаления блочности и для универсальной корректировки блочности в декодированном выходном сигнале во время операции постцикловой фильтрации с использованием средства внутрицикловой фильтрации удаления блочности, при этом универсальная корректировка блочности содержит: выполнение операции сильной фильтрации в отношении блоков в декодированном выходном сигнале для корректировки унаследованной блочности, при этом блоки содержат пропущенные макроблоки и блоки с шаблоном кодированного блока, равным нулю, и включение средства внутрицикловой фильтрации удаления блочности для краев фрагмента изображения фиксированного размера, не расположенных на границе блока соответствующего промежуточного макроблока, для корректировки унаследованной блочности; и память, связанную с процессором. 5 н. и 14 з.п. ф-лы, 23 ил., 7 табл.
Формула изобретения
1. Компьютерное устройство, сконфигурированное для корректировки блочности в изображении, содержащее:
процессор, выполненный с возможностью реализации набора команд для вызова средства внутрицикловой фильтрации удаления блочности и для универсальной корректировки блочности в декодированном выходном сигнале во время операции постцикловой фильтрации с использованием средства внутрицикловой фильтрации удаления блочности, при этом универсальная корректировка блочности содержит:
выполнение операции сильной фильтрации в отношении блоков в декодированном выходном сигнале для корректировки унаследованной блочности, при этом блоки содержат пропущенные макроблоки и блоки с шаблоном кодированного блока, равным нулю, и
включение средства внутрицикловой фильтрации удаления блочности для краев фрагмента изображения фиксированного размера, не расположенных на границе блока соответствующего промежуточного макроблока, для корректировки унаследованной блочности; и память, связанную с процессором.
2. Устройство по п.1, в котором набор команд включает в себя команды для корректировки блочности для внутренних макроблоков с использованием вычисленной интенсивности границы, вычисленной на основе размера шага дискретизации, при этом операция постцикловой фильтрации применяется только к пикселям в окрестности границы блока.
3. Устройство по п.1, в котором операция постцикловой фильтрации включает в себя вычисление интенсивности границы на основе параметров кодирования текущего макроблока, фильтрация которого должна быть осуществлена, и при отсутствии информации из соседних макроблоков.
4. Устройство по п.1, в котором средство внутрицикловой фильтрации удаления блочности является совместимым с Н.264.
5. Устройство по п.1, которое является сотовым телефоном, устройством беспроводной связи, игровой видео приставкой, оборудованным беспроводной связью цифровым персональным ассистентом (PDA) или портативным компьютером.
6. Интегральная схема для корректировки блочности в изображении, содержащая:
декодер, имеющий средство внутрицикловой фильтрации удаления блочности;
процессор, выполненный с возможностью реализации набора команд для вызова средства внутрицикловой фильтрации удаления блочности и для универсальной корректировки блочности в декодированном выходном сигнале во время операции постцикловой фильтрации с использованием средства внутрицикловой фильтрации удаления блочности, при этом универсальная корректировка блочности содержит: выполнение операции сильной фильтрации в отношении блоков в декодированном выходном сигнале для корректировки унаследованной блочности, при этом блоки содержат пропущенные макроблоки и блоки с шаблоном кодированного блока, равным нулю, и включение средства внутрицикловой фильтрации удаления блочности для краев фрагмента изображения фиксированного размера, не расположенных на границе блока соответствующего промежуточного макроблока, для корректировки унаследованной блочности; и
память, связанную с процессором.
7. Интегральная схема по п.6, в которой операцию сильной фильтрации применяют к пикселям во внутренней части блока.
8. Интегральная схема по п.6, в которой набор команд включает в себя команды для корректировки блочности для внутренних макроблоков с использованием вычисленной интенсивности границы, вычисленной на основе размера шага дискретизации, при этом операция постцикловой фильтрации применяется только к пикселям в окрестности границы блока.
9. Интегральная схема по п.6, в которой операция постцикловой фильтрации включает в себя вычисление интенсивности границы на основе параметров кодирования текущего макроблока, фильтрация которого должна быть осуществлена, при отсутствии информации из соседних макроблоков.
10. Интегральная схема по п.6, в которой средство внутрицикловой фильтрации удаления блочности является совместимым с Н.264.
11. Интегральная схема по п.6, которая находится в сотовом телефоне, устройстве беспроводной связи, игровой видеоприставке, оборудованном беспроводной связью цифровом персональном ассистенте (PDA) или портативном компьютере.
12. Устройство для корректировки блочности в изображении, содержащее:
средство декодирования, предназначенное для декодирования и имеющее средство фильтрации для внутрицикловой фильтрации удаления блочности;
средство вызова для вызова средства фильтрации; и средство корректировки для универсальной корректировки блочности в декодированном выходном сигнале во время операции постцикловой фильтрации с использованием средства фильтрации, при этом средство корректировки содержит:
средство для выполнения операции сильной фильтрации в отношении блоков в декодированном выходном сигнале для корректировки унаследованной блочности, при этом блоки содержат пропущенные макроблоки и блоки с шаблоном кодированного блока, равным нулю, и
средство для включения средства фильтрации для внутрицикловой фильтрации удаления блочности для краев фрагмента изображения фиксированного размера, не расположенных на границе блока соответствующего промежуточного макроблока, для корректировки унаследованной блочности.
13. Устройство по п.12, в котором средство корректировки включает в себя:
средство вычисления для вычисления интенсивности границы на основе размера шага дискретизации и средство применения для применения операции постцикловой фильтрации только к пикселям в окрестности границы блока для корректировки блочности во внутренних макроблоках.
14. Считываемый компьютером носитель информации, имеющий команды для предписания компьютеру осуществлять способ корректировки блочности в изображении, содержащий этапы, на которых:
вызывают средство внутрицикловой фильтрации удаления блочности; и
универсально корректируют блочность в декодированном выходном сигнале во время операции постцикловой фильтрации с использованием средства внутрицикловой фильтрации удаления блочности, при этом при универсальной корректировке блочности:
выполняют операцию сильной фильтрации в отношении блоков в декодированном выходном сигнале для корректировки унаследованной блочности, при этом блоки содержат пропущенные макроблоки и блоки с шаблоном кодированного блока, равным нулю, и
включают средство внутрицикловой фильтрации удаления блочности для краев фрагмента изображения фиксированного размера, не расположенных на границе блока соответствующего промежуточного макроблока, для корректировки унаследованной блочности.
15. Считываемый компьютером носитель по п.14, в котором при универсальной корректировке блочности вычисляют интенсивность границы на основе размера шага дискретизации и применяют операцию постцикловой фильтрации только к пикселям в окрестности границы блока для корректировки блочности во внутренних макроблоках.
16. Считываемый компьютером носитель по п.14, в котором способ дополнительно содержит этап, на котором во время операции постцикловой фильтрации вычисляют интенсивность границы на основе параметров кодирования текущего макроблока, фильтрация которого должна быть осуществлена, и при отсутствии информации из соседних макроблоков.
17. Считываемый компьютером носитель по п.14, в котором способ дополнительно содержит этап, на котором во время операции постцикловой фильтрации вычисляют интенсивность границы на основе параметров кодирования текущего макроблока и соседнего макроблока.
18. Способ корректировки блочности в изображении, содержащий этапы, на которых
вызывают средство внутрицикловой фильтрации удаления блочности; и
корректируют блочность в декодированном выходном сигнале во время операции постцикловой фильтрации с использованием средства внутрицикловой фильтрации удаления блочности, при этом при корректировке блочности:
выполняют операцию сильной фильтрации в отношении блоков в декодированном выходном сигнале для корректировки унаследованной блочности, при этом блоки содержат пропущенные макроблоки и блоки с шаблоном кодированного блока, равным нулю, и
включают средство внутрицикловой фильтрации удаления блочности для краев фрагмента изображения фиксированного размера, не расположенных на границе блока соответствующего промежуточного макроблока, для корректировки унаследованной блочности.
19. Способ по п.18, в котором при корректировке вычисляют интенсивность границы на основе размера шага дискретизации и применяют операцию постцикловой фильтрации только к пикселям в окрестности границы блока для корректировки блочности во внутренних макроблоках.
Описание изобретения к патенту
Настоящее раскрытие в основном относится к области обработки изображения и, более конкретно, к способам универсальной корректировки блочности изображения при низком быстродействии (малом количестве миллионов команд в секунду) (MIP).
УРОВЕНЬ ТЕХНИКИ
Блочность изображения является одним из наиболее существенных искажений изображения, вносимых при кодировании видеоинформации и изображения на основе блоков. Причины возникновения блочности изображения заключаются в том, что при кодировании на основе блоков в качестве основной единицы для преобразования, дискретизации и кодирования текстуры используют блок (например, 8×8 или 4×4), и при таком кодировании происходит потеря межблочной корреляции. Проблема особенно серьезна при кодировании содержимого видеоинформации/изображения с очень низкой скоростью передачи битов (большой размер qp шага дискретизации). Для внутренних макроблоков (МB) искажения изображения видимы только в окрестности границ блока. Однако для промежуточных МB компенсация движения может вносить искажения внутри блоков. Блочные искажения, исходящие из опорных кадров, называют "унаследованной блочностью", так как блочность наследуется из предыдущих кадров. Унаследованная блочность может быть видимой в любом местоположении и иметь любую протяженность.
Существуют два вида подходов для решения проблемы унаследованной блочности. Первый подход состоит в том, чтобы использовать фильтрацию с длинными ответвлениями на всех пикселях для сглаживания искажений, так как унаследованная блочность может возникать везде. При первом подходе используется режим смещения DC, определенный стандартом экспертной группы по кинематографии (MPEG)-4, в котором применяется фильтрация с 9 ответвлениями на всех восьми соседних пикселях в окрестности края блока. При втором подходе отслеживается траектория перемещения блочности и на перемещаемых искажениях применяют DB.
Проверено, что второй подход является эффективным инструментом для удаления унаследованной блочности, требование на MIP для удаления блочности изображения VGA 30 кадров в секунду (fps) слишком высоко для мобильных или беспроводных приложений.
Известно использование аппаратного устройства (DB) удаления блочности H.264 в качестве постциклового устройства удаления блочности для MPEG-4 и серий Беспроводного Медиа Видео 9 (WMV9). Однако, ранее, постцикловое устройство удаления блочности осуществляло фильтрацию только пикселей в окрестности блоков 8×8, так что унаследованная блочность оставалась. Дополнительно, сила фильтрации для пропущенных блоков МB и блоков 0-го шаблона кодированного блока (CBP) не является достаточной. В стандартной практике для промежуточного МB BS всегда устанавливают в два или менее (если только соседний МB не является внутренним).
Следовательно, существует потребность в способах универсальной корректировки блочности, включая унаследованную блочность, при низком быстродействии (MIP).
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Здесь описаны методики универсальной корректировки блочности при низком быстродействии (малом количестве миллионов команд в секунду) (MIP). В одной конфигурации обеспечено устройство, содержащее процессор, действующий для реализации совокупности команд для принудительного вызова механизма внутрицикловой фильтрации удаления блочности и универсальной корректировки блочности в декодированном выходном сигнале при операции постцикловой фильтрации с использованием механизма внутрицикловой фильтрации удаления блочности. Устройство также содержит память, связанную с процессором.
Согласно другому аспекту обеспечена интегральная схема, содержащая декодер, имеющий механизм внутрицикловой фильтрации удаления блочности. Интегральная схема также включает в себя процессор, действующий для реализации совокупности команд для принудительного вызова механизма внутрицикловой фильтрации удаления блочности и универсальной корректировки блочности в декодированном выходном сигнале при операции постцикловой фильтрации с использованием механизма внутрицикловой фильтрации удаления блочности. Интегральная схема дополнительно содержит память, связанную с процессором.
Согласно еще одному, дополнительному, аспекту обеспечен компьютерный программный продукт, содержащий компьютерно-читаемый носитель информации, который содержит команды для предписания компьютеру принудительно вызывать механизм внутрицикловой фильтрации удаления блочности. Команды дополнительно предписывают компьютеру универсально корректировать блочность в декодированном выходном сигнале при операции постцикловой фильтрации с использованием механизма внутрицикловой фильтрации удаления блочности.
Дополнительные аспекты будут более ясны из подробного описания, в частности, при рассмотрении совместно с приложенными чертежами.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Аспекты и конфигурации раскрытия станут более ясны из изложенного ниже подробного описания при рассмотрении совместно с чертежами, в которых используют сквозную нумерацию.
Фиг.1 изображает блок-схему беспроводного устройства.
Фиг.2A изображает общую блок-схему внутрициклового устройства удаления блочности H264.
Фиг.2B изображает общую блок-схему декодера с устройством постциклового удаления искажения/блочности (DAB), совместно использующих механизм внутрицикловой фильтрации удаления блочности.
Фиг.2C изображает общую блок-схему декодера с устройством постциклового удаления искажения/блочности (DAB).
Фиг.3 изображает местоположения пикселя для края фрагмента изображения фиксированного размера.
Фиг.4A изображает опорный кадр макроблока с блочностью.
Фиг.4B изображает следующий кадр макроблока с унаследованной блочностью фиг.4A.
Фиг.5A изображает унаследованную блочность в изображении.
Фиг.5B изображает изображение без унаследованной блочности.
Фиг.6 изображает блок постциклового удаления искажения/блочности (DAB).
Фиг.7 изображает модуль инициализации постциклового DAB.
Фиг.8 изображает модуль изменения силы постциклового DAB.
Фиг.9 изображает модуль изменения параметров постциклового DAB.
Фиг.10 изображает модуль процедуры постциклового DAB.
Фиг.11 - общая блок-схема последовательности операций адаптируемого процесса послециклового DAB.
Фиг.12 - общая блок-схема последовательности операций процедуры постциклового DAB для внутреннего MB.
Фиг.13 изображает график зависимости силы qp-фильтрации для внутреннего МB.
Фиг.14 изображает возможные местосположения края фрагмента изображения фиксированного размера в блоке 8×8.
Фиг.15 изображает график зависимости силы qp-фильтрации для промежуточных МB.
Фиг.16 изображает возможную зависимость между текущим краем фрагмента изображения фиксированного размера и предыдущим краем фрагмента изображения фиксированного размера.
Фиг.17 изображает общую блок-схему последовательности операций упрощенной процедуры постциклового DAB для промежуточного MB.
Фиг.18 изображает график зависимости силы qp-фильтрации для внутреннего MB для полного варианта.
Фиг.19 изображает график зависимости силы qp-фильтрации для промежуточных MB для полного варианта.
Фиг.20A и фиг.20B изображают блок-схему процедуры для установки интенсивности границы в полном варианте.
Изображения на чертежах упрощены в иллюстративных целях и не изображены в масштабе. Для облегчения понимания, где это возможно, для обозначения идентичных элементов, которые являются общими на чертежах, использованы идентичные ссылочные позиции, за исключением того, что для различения таких элементов могут быть добавлены суффиксы.
Сопроводительные чертежи иллюстрируют возможные конфигурации изобретения, и также не должны рассматриваться как ограничивающие контекст изобретения, которое может допускать другие, в равной степени эффективные конфигурации. Предполагается, что признаки или этапы одной конфигурации предпочтительно могут быть включены в другие конфигурации без дополнительного изложения.
ПОДРОБНОЕ ОПИСАНИЕ
Слово "возможный" используется здесь в значении «служащий в качестве возможного варианта, примера или иллюстрации». Любая конфигурация или разработка, описанная здесь, как "возможная" не обязательно должна рассматриваться как предпочтительная или имеющая преимущества перед другими конфигурациями или разработками, и термины "ядро", "механизм", "машина", "процессор" и "блок обработки" используются взаимозаменяемо.
Описанные здесь методики могут быть использованы для беспроводной связи, вычислительной техники, персональной электроники и т.д. Ниже описано возможное использование способов для беспроводной связи.
Фиг.1 изображает блок-схему конфигурации беспроводного устройства 10 в системе беспроводной связи. Беспроводным устройством 10 может быть телефонная трубка. Телефонной трубкой может быть сотовый телефон или телефон с камерой, терминал, персональный цифровой ассистент (PDA), оборудованный беспроводной связью, устройство беспроводной связи, игровую видеоприставку, портативный компьютер, устройство с возможностями видео или некоторое другое устройство, оборудованное беспроводной связью. Системой беспроводной связи может быть система множественного доступа с кодовым разделением каналов (CDMA), система глобальной системы мобильной связи (GSM) или некоторая другая система.
Беспроводное устройство 10 выполнено с возможностью обеспечения двунаправленной связи через тракт приема и тракт передачи. На тракте приема сигналы, переданные базовыми станциями, принимаются антенной 12 и обеспечиваются на приемник 14 (RCVR). Приемник 14 приводит в определенное состояние и оцифровывает принятый сигнал и обеспечивает выборки на цифровой участок 20 для дальнейшей обработки. На тракте передачи передатчик 16 (TMTR) принимает из цифрового участка 20 данные, которые должны быть переданы, обрабатывает данные и приводит их в определенное состояние, и формирует модулированный сигнал, который передается через антенну 12 в базовые станции.
Цифровой участок 20 содержит различные блоки обработки, интерфейсные блоки и блоки памяти, например такие как процессор 22 модема, видеопроцессор 24, контроллер/процессор 26, процессор 28 отображения, ARM/DSP 32, блок 34 обработки графики (GPU), внутренняя память 36, и интерфейсная (EBI) 38 внутренней шины. Процессор 22 модема выполняет обработку для передачи и приема данных (например, кодирование, модуляцию, демодуляцию и декодирование). Видеопроцессор 24 выполняет обработку на содержимом видеоинформации (например, статических изображениях, движущихся видео и движущихся текстах) для видеоприложений, таких как видеокамера, видеофонограмма и видеоконференция. Контроллер/процессор 26 может управлять функционированием различных блоков обработки и интерфейсных блоков внутри цифрового участка 20. Процессор 28 отображения выполняет обработку, способствующую отображению видеоинформации, графики и текстов на блоке 30 отображения. ARM/DSP 32 может выполнять различные виды обработки для беспроводного устройства 10. Блок 34 обработки графики выполняет обработку графики.
Описанные здесь методики могут быть использованы для любого из процессоров на цифровом участке 20, например видеопроцессора 24. Во внутренней памяти 36 хранятся данные и/или команды для различных блоков внутри цифрового участка 20. EBI 38 способствует передаче данных между цифровым участком 20 (например, внутренней памятью 36) и основной памятью 40 по шине или линии передачи данных DL.
Цифровой участок 20 может быть реализован одним или большим количеством DSP, микропроцессоров, устройств RISC и т.д. Цифровой участок 20 также может быть скомпонован на одной или большем количестве специализированных интегральных схем (ASIC) или некотором другом виде интегральных схем (IC).
Описанные здесь методики могут быть реализованы в различных аппаратных блоках. Например, способы могут быть реализованы в схемах ASIC, процессорах DSP, устройствах RISC, процессорах FRM, устройствах обработки цифрового сигнала (DSPD), программируемых логических устройствах (PLD), программируемых вентильных матрицах (FPGA), процессорах, контроллерах, микроконтроллерах, микропроцессорах и других электронных блоках.
Дополнительно, описанные здесь методики для удаления искажений/блочности, вносимых кодированием видеоинформации, могут быть использованы для стандартов MPEG-4, H.263, WMV9 и H.264. Как может быть замечено из приведенного ниже описания, преимущество указанных способов состоит в удалении раздражающих унаследованных искажений при низких затратах, таких как 2,5-4 миллионов команд в секунду (MIP). Требования на новое устройство 70 постциклового удаления искажения/блочности (DAB) для конфигурации низкой сложности почти с 0% использования CPU для ARM и разумных MIP DSP могут быть достигнуты без размещения какого-либо модуля в ARM и без доступа к пикселю. Дополнительно, действительную фильтрацию выполняют в DSP.
В возможной конфигурации в внутрицикловом устройстве удаления блочности (DB) H.264 используют только фильтр, так как его создают аппаратными средствами (HW). Возможная конфигурация требует вычислений новой интенсивности границы (BS) дополнительно к FilterOffsetA и FilterOffsetB (фиг.2A), определенным в стандарте H.264.
Фиг.2А изображает общую блок-схему обычного внутрициклового устройства 50 удаления блочности. Существуют два вида операций фильтрации, определенных в стандарте H.264 для внутрициклового DB 50. Механизмом 60 фильтрации удаления блочности управляют для выполнения двух видов операций фильтрации. Одним видом фильтрации является операция сильной фильтрации (относится к BS=4) сильным фильтром 62 в механизме 60 фильтрации. Вторым видом фильтрации является операция слабой фильтрации (относится к BS=1, 2 или 3) слабым фильтром 64 в механизме 60 фильтрации удаления блочности. Когда BS равен 4, то применяют фильтрацию 4-ветвлениями или 5-ветвлениями на количестве до 6 пикселей яркости в окрестности края "фрагмента изображения фиксированного размера" посредством сильного фильтра 62. Два вида операций фильтрации также являются функцией FilterOffsetA 52 и FilterOffsetB 54. Внутрицикловое DB 50 принимает в качестве входных данных макроблоки MB, которые фильтруют механизмом 60 фильтрации удаления блочности описанным выше образом. Внутрицикловое DB 50 также содержит устройство 56 вычисления интенсивности границы, которое вычисляет интенсивность границы (BS) для МB. Механизм 60 фильтрации удаления блочности изображен пунктирной линией для обозначения той части внутрициклового DB 50, которая реализована аппаратными средствами. FilterOffsetA 52, FilterOffsetB 54 и устройство 56 вычисления интенсивности границы могут быть реализованы программируемым оборудованием, программным обеспечением или в их комбинации.
Для ясности, «фрагмент изображения фиксированного размера» определен здесь для предотвращения какого-либо недоразумения, вносимого различными определениями "блока" в различных стандартах. В этом раскрытии фрагмент изображения фиксированного размера определен как неперекрывающийся квадрат 4×4, а блок определен как неперекрывающийся квадрат 8×8.
Фиг.3 изображает местоположения пикселя для края фрагмента изображения фиксированного размера TE. С левой стороны от края фрагмента изображения фиксированного размера TE находятся пиксели P1-P4. С правой стороны от края фрагмента изображения фиксированного размера TE находятся пиксели P5-P8. Операция сильной фильтрации (BS=4) для края фрагмента изображения фиксированного размера яркости зарегистрирована в Таблице 1, приведенной ниже, где значение элемента таблицы указывает количество ветвлений фильтрации для пикселей P1-P8. Нулевое количество (0) обозначает отсутствие ветвлений фильтра и, соответственно, отсутствие фильтрации.
Для предотвращения размывания истинных краев в стандарте H.264 для принятия решения по фильтрации определены три условия проверки пространственной активности, определенные в уравнениях Eq.(1)-(3). В стандарте H.264 предполагается, что блочность имеет более слабую разность амплитуды, чем истинный край. Следовательно, реализуют больше ветвлений фильтрации на большем количестве пикселей, когда все три условия сохраняют справедливость, как сформулировано в уравнениях Eq.(1)-(3).
|P5-P4|<Thd1(qp, FilterOffsetA), (1)
|P4-P2|<Thd2(qp, FilterOffsetB), и (2)
|P7-P5 |<Thd2(qp, FilterOffsetB), (3)
где P2 , P4, P5 и P7 являются пикселями; qp является размером шага дискретизации; FilterOffsetA является предварительно определенной константой для установки Thd1; FilterOffsetB является предварительно определенной константой для установки Thd2; Thd1 является пороговым значением для соответствующих qp и FilterOffsetA; и Thd2 является пороговым значением для соответствующих qp и FilterOffsetB. Значения FilterOffsetA и FilterOffsetB влияют на Thd1 и Thd2 и, соответственно, влияют на пиксели, которые должны быть фильтрованы.
Для цветности при фильтрации 3-ветвлениями изменяют только два пикселя (например, P4 и P5).
Таблица 1 Операции фильтрации BS=4 для края фрагмента изображения фиксированного размера яркости | ||||||||
Условие | Р1 | Р2 | Р3 | Р4 | Р5 | Р6 | Р7 | Р8 |
(1) или (2) ложно И (1) или (3) ложно | 0 | 0 | 0 | 3 | 3 | 0 | 0 | 0 |
(1) и (3) (1) сохраняют (1) справедливость (2) ложно | 0 | 0 | 0 | 3 | 5 | 4 | 5 | 0 |
(2) и (3) сохраняют справедливость (1) ложно | 0 | 5 | 4 | 5 | 3 | 0 | 0 | 0 |
(1) и (2) и (3) все истинны | 0 | 5 | 4 | 5 | 5 | 4 | 5 | 0 |
Операция слабой фильтрации (относится к BS=1, 2 и 3) изменяет до 4 пикселей яркости и до 4 пикселей цветности для края фрагмента изображения фиксированного размера, как представлено в Таблице 2. В Таблице 2 символ Y обозначает фильтрацию и N обозначает отсутствие фильтрации.
Таблица 2 Операции фильтрации BS=1, 2 или 3 для края фрагмента изображения фиксированного размера | ||||||||
Условие | Р1 | Р2 | Р3 | Р4 | Р5 | Р6 | Р7 | Р8 |
Цветность или оба (2) и (3) являются ложными | N | N | N | Y | Y | N | N | N |
(3) сохраняет справедливость (2) ложно | N | N | N | Y | Y | Y | N | N |
(2) сохраняет справедливость (3) ложно | N | N | Y | Y | Y | N | N | N |
Оба (2) и (3) являются истинными | N | N | Y | Y | Y | Y | N | N |
Фиг.4A изображает опорный кадр 100 макроблока с блочностью. Блочность обозначена заштрихованными квадратами 102А и 102B. Опорный фрагмент 104 изображения фиксированного размера изображен затененным в центре кадра 100.
Фиг.4B изображает следующий кадр 110 макроблока с унаследованной блочностью фиг.4A. Унаследованная блочность обозначена заштрихованными квадратами 102A' и 102B'. Фрагмент 104' изображения фиксированного размера изображен смещенным от центра кадра 110. Унаследованная блочность также смещена.
Фиг.5А изображает возможный вариант унаследованной блочности в изображении 150A. Область, обозначенная как 155A, 155B и 155C, представляет области унаследованной блочности, созданные кодированием видеоинформации и изображения на основе блоков.
Фиг.2B изображает общую блок-схему декодера 65 с устройством 70 постциклового удаления искажения/блочности (DAB), совместно использующих механизм 60A внутрицикловой фильтрации удаления блочности. Устройство 70 DAB содержит блок 200 постциклового DAB, который осуществляет интерфейс с механизмом 60А внутрицикловой фильтрации удаления блочности и принудительно вызывает механизм 60А внутрицикловой фильтрации удаления блочности для универсальной корректировки блочности. В основном блок 200 постциклового DAB обеспечивает схему вычисления новой BS для управления механизмом 60A фильтрации, как будет более подробно описано ниже.
В иллюстративных целях, для декодирования входного сигнала декодер 65 содержит участок программируемого оборудования, программного обеспечения или их комбинации и участок 66 аппаратных средств декодера. Участок 66 аппаратных средств декодера для декодера 65 содержит модуль 67 компенсации движения и модуль 69 декодирования текстуры. Модуль 67 компенсации движения принимает поток данных в качестве входных данных из анализатора 75 битов и принимает опорный кадр из механизма 60A внутрицикловой фильтрации удаления блочности при операциях внутрицикловой фильтрации. Модуль 67 компенсации движения также формирует выходной сигнал, который передают в модуль 69 декодирования структуры. Модуль 69 декодирования структуры, в свою очередь, формирует выходной сигнал, который передают в механизм 60A внутрицикловой фильтрации удаления блочности. Механизм 60А внутрицикловой фильтрации удаления блочности создает фильтрованные выходные данные, которые содержат опорный кадр для ввода в модуль 67 компенсации движения и фильтрованные выходные данные (далее упомянутые, как "выходные данные внутрицикловой фильтрации"). Пунктирная линия, обозначенная как 72, содержит программное обеспечение, программируемое оборудование или их комбинацию для выполнения операций декодирования в соответствии с процедурой кодека.
При операциях постцикловой фильтрации DAB устройство 70 постциклового удаления искажения/блочности принудительно вызывает механизм 60А внутрицикловой фильтрации удаления блочности, причем выходные данные внутрицикловой фильтрации циклически подают обратно через механизм 60А внутрицикловой фильтрации удаления блочности для операций постцикловой фильтрации под управлением блока 200 постциклового DAB, описанного подробно далее.
Постцикловая фильтрация происходит после декодерирования (декодера), и фильтрованные кадры не используют в качестве опорных кадров для декодера 65. Так как постцикловая фильтрация не определена в стандартах кодека, каждый может произвольно спроектировать свой собственный фильтр. Если операции внутрицикловой фильтрации являются частью декодера 65, то такие операции должны быть полностью согласованы с стандартами кодека.
Фиг.2C изображает общую блок-схему декодера 65' с устройством 70' постциклового удаления искажения/блочности (DAB). Некоторые кодеки, такие как MPEG4 и H263P0, не поддерживают внутрициклового удаления блочности. В некоторых случаях, участок 66' аппаратных средств декодера остается оборудованным механизмами 60В внутрицикловой фильтрации удаления блочности. Соответственно, в этом случае механизм 60В внутрицикловой фильтрации удаления блочности декодера 65' не используют для выполнения внутрициклового удаления блочности. Вместо этого механизм 60В внутрицикловой фильтрации удаления блочности может быть установлен бездействующим. Устройство 70' DAB содержит блок 200 постциклового DAB, который осуществляет интерфейс с механизмом 60В внутрицикловой фильтрации удаления блочности и принудительно вызывает механизм 60В внутрицикловой фильтрации удаления блочности для универсальной корректировки блочности. В основном блок 200 постциклового DAB обеспечивает схему вычисления новой BS для управления механизмом 60В фильтрации.
В иллюстративных целях, для декодирования входного сигнала декодер 65' содержит участок программируемого оборудования, программного обеспечения или их комбинации и участок 66' аппаратных средств декодера. Участок 66' аппаратных средств декодера для декодера 65' содержит модуль 67' компенсации движения и модуль 69' декодирования текстуры. Модуль 67' компенсации движения принимает поток данных в качестве входных данных из анализатора 75 битов и принимает опорный кадр из модуля 69' декодирования текстуры при операциях декодирования. Модуль 67' компенсации движения также формирует выходной сигнал, который передают в модуль 69' декодирования текстуры. Модуль 69' декодирования текстуры формирует декодированный выходной сигнал. Пунктирная линия, обозначенная как 72', содержит программное обеспечение, программируемое оборудование или их комбинацию для выполнения операций декодирования в соответствии с процедурой кодека без внутрицикловой фильтрации.
При операциях фильтрации постциклового DAB устройство 70' постциклового удаления искажения/блочности (DAB) принудительно вызывает механизм 60В внутрицикловой фильтрации удаления блочности, причем декодированный выходной сигнал модуля 69' декодирования текстуры циклически подают обратно через механизм 60В внутрицикловой фильтрации удаления блочности для операций постцикловой фильтрации под управлением блока 200 постциклового DAB.
Фиг.5B изображает изображение 150B без унаследованной блочности с использованием схемы вычисления новой BS из устройства 70 постциклового DAB.
Фиг.6 изображает блок 200 постциклового удаления искажения/блочности (DAB). Блок 200 DAB содержит модуль 202 инициализации постциклового DAB, модуль 204 изменения силы постциклового DAB, модуль 206 изменения параметров постциклового DAB и модуль 208 процедуры постциклового DAB. Блок 200 постциклового DAB может быть автономным блоком. Модуль 202 инициализации постциклового DAB, модуль 204 изменения силы постциклового DAB, модуль 206 изменения параметров постциклового DAB и модуль 208 процедуры постциклового DAB обеспечивают четыре программных интерфейса приложения (API) для внешних пользователей.
Фиг.7 изображает модуль 202 инициализации постциклового DAB. Модуль 202 инициализации постциклового DAB в основном требуется только один раз вначале, или при инсталляции. Модуль 202 инициализации постциклового DAB имеет четыре входных параметра 212. Входные параметры 212 включают в себя кодек, ширину, высоту и силу_DB. Модуль 202 инициализации постциклового DAB также содержит инициализатор 220 для инициализации операций для блока 200 постциклового удаления искажения/блочности (DAB) и устройства 70 DAB. На основе вида введенного кодека модуль 202 инициализации постциклового DAB инициализирует операции для определенного кодека, например, без ограничения, кодек с внутрицикловым DB 50 или без внутрициклового DB и т.д. Это обеспечивает возможность универсального применения блока 200 постциклового удаления искажения/блочности (DAB) к различным декодерам 65 или 65'.
Фиг.8 изображает модуль 204 изменения силы постциклового DAB. Модуль 204 изменения силы постциклового DAB обеспечивает возможность изменения пользователями интенсивности границы (BS), используемой блоком 200 постциклового DAB для управления операциями механизма 60А или 60В внутрицикловой фильтрации удаления блочности для постцикловых операций. Модуль 204 изменения силы постциклового DAB содержит интерфейс 232 для силы DB для изменения post_db_strength и входных параметров 236 DAB, таких как пороговое значение qp и т.д. Дополнительно, соответственно изменяются параметры постциклового DAB (фиг.9). Модуль 204 изменения силы постциклового DAB имеет множество входных параметров 238, которые содержат post_db_strength, ширину и высоту.
Фиг.9 изображает модуль 206 изменения параметров DAB. Модуль 206 изменения параметров DAB является дополнительным вариантом изменения параметров постциклового DAB. Модуль 230 изменения интенсивности границы постциклового DAB получает параметры DAB посредством post_db_strength. Однако модуль 240 изменения параметров постциклового DAB обеспечивает возможность установки параметров DAB непосредственно пользователями.
Модуль 204 изменения параметров постциклового DAB содержит интерфейс 242 установки параметров постциклового DAB для обеспечения установки множества параметров DAB. Множество параметров DAB содержит множество пороговых значений qp. Пороговые значения qp включают в себя intra_mb_qp_thd_0, inter_mb_qp_thd_boundary_0, inter_mb_qp_thd_inside_0, inter_mb_qp_thd_boundary_4, inter_mb_qp_thd_inside_4. Дополнительные параметры включают в себя qp_jump_for_not_coded_block и num_not_coded_blocks_thd. И модуль 204 изменения силы постциклового DAB, и модуль 206 изменения параметров постциклового DAB, факультативно, обозначены пунктирными прямоугольниками на фиг.6. Зависимость между пороговыми значениями qp и силой фильтрации изображена на фиг.15.
Пороговые значения qp являются настраиваемыми. Один параметр "post_db_strength" управляет всеми пятью пороговыми значениями qp. Малый параметр post_db_strength ассоциирован с бóльшими пороговыми значениями qp, которые поднимают планку для осуществления фильтрации. В возможной конфигурации, параметр post_db_strength находится в диапазоне от 0 до 20, и значением по умолчанию является 14.
Фиг.10 изображает модуль 208 процедуры постциклового DAB. Модуль 208 процедуры постциклового DAB выполняет операции постцикловой фильтрации DAB с использованием существующего механизма 60А внутрицикловой фильтрации удаления блочности. Модуль 208 процедуры постциклового DAB содержит вычислитель 262 интенсивности границы, которое вычисляет интенсивность границы (BS) на основе указанных ниже правил, некоторые из которых нарушают стандарт H.264. Модуль 208 процедуры постциклового DAB также содержит программатор 264 регистра HW и вызывающее средство 266 внутрициклового DB HW, которое вызывается один раз на макроблок (МB).
Входные параметры для модуля 208 процедуры постциклового DAB содержат, inter_mb, qp, mb_num_x (номер MB в горизонтальном направлении), mb_num_y (номер MB в вертикальном направлении), not_coded (пропущенный) и CBP (шаблон кодированного блока). Параметр not_coded (пропущенный) является флажком, указывающим, кодирован ли МB. Если флажок установлен, то МB не кодирован. Следовательно, поток битов не переносит вектор движения и информацию текстуры. МB восстанавливают посредством компенсации движения с вектором движения = вектору движения, заданному по умолчанию. Следует отметить, что вектор движения, заданный по умолчанию, определяют по-разному для разных кодеков. Параметр «шаблон кодированного блока CPB» представляет собой набор флажков, где каждый флажок используют для указания, кодирован ли соответствующий блок в MB. Значение 0 обозначает, что соответствующий блок (следует отметить, что здесь единицей скорее является блок, чем МB) не кодирован, и, соответственно, в потоке битов отсутствует информация текстуры.
Вычисление BS
В различных конфигурациях, приведенных ниже, блоки блок-схемы выполняют в указанном порядке или указанные блоки или их части могут быть выполнены одновременно, параллельно или в другом порядке.
Используют новую совокупность правил для процесса решения относительно BS на основе параметров кодирования (Вид МB, qp и т.д.). Как упомянуто ранее, интенсивность границы (BS) непосредственно связана с силой фильтрации. Когда BS=4, используют операцию сильной фильтрации, когда BS=1, 2 или 3, используют операцию слабой фильтрации, и когда BS=0, операцию фильтрации не используют. В возможной конфигурации используют три интенсивности границы, которые включают в себя 4, 2 или 0.
В идеале, содержимое также является важным фактором для процесса решения относительно BS. Операция cильной фильтрации может быть использована в гладких областях, так как искажения более видимы в гладких областях. Однако реализация низкой сложности не допускает наличия доступа к пикселям в конфигурации устройства 70. Соответственно, в некоторых существующих архитектурах отсутствует вариант наличия модуля анализа содержимого (помимо простой проверки пространственной активности в HW).
Фиг.11 - общая блок-схема последовательности операций адаптируемого процесса 300 постциклового DAB. В возможной конфигурации BS определяют на основе четырех параметров кодирования: вид внутренних/промежуточных, qp (размер шага дискретизации), пропущенный МB и CBP. Адаптируемый процесс 300 постциклового DAB начинается с блока 302, где делают определение, является ли внутренним МB. Если определяют, что "ДА", то за блоком 302 следует блок 304. В блоке 304 выполняют изображенную на фиг.12 процедуру 400 постциклового DAB внутреннего MB. Блок 304 заканчивает процесс 300.
На фиг.11 в иллюстративных целях изображен блок 306, который, в общем, обозначает, что делают определение, является ли промежуточным МB. Если текущий МB является промежуточным МB, то в блоке 308 делают определение, является ли промежуточный МВ пропущенным МB. Если в блоке 308 определяют, что "Нет", то за блоком 308 следует блок 310, где делают определение, является ли МB (шаблоном) CBP. Если в обоих блоках, 308 и 310, принимают решение, что "Нет", что означает, что МВ не является ни пропущенным МВ, ни CBP МВ, то процесс 300 переходит к процедуре 500 постциклового DAB для промежуточного MB, как изображено на фиг.17. Однако если в блоке 308 или блоке 310 принимают решение, что "Да", то процесс 300 уменьшает пороговые значения qp и FilterOffsetA, и FilterOffsetB, соответственно, перед выполнением процедуры 500 постциклового DAB для промежуточного MB, которая изображена на фиг.17.
Фиг.12 - общая блок-схема последовательности операций процесса 400 постциклового DAB для внутреннего МB (упрощенный вариант). Процесс 400 будет описан в комбинации с фиг.13 и фиг.14. Фиг.13 изображает зависимость силы qp - фильтрация для внутренних МB. Фиг.14 изображает возможные местоположения края фрагмента изображения фиксированного размера в блоке 450 8x8.
Для внутренних MB решение относительно интенсивности границы (BS) принимают исключительно на основе размера шага дискретизации (qp), так как во внутренних MB отсутствуют случаи, подобные пропущенным МВ и 0-м блокам CPB. Дополнительно, так как внутренние MB не имеют проблем унаследованной блочности, операции фильтрации DAB должны применяться только на пикселях в окрестности границы блока 8x8, как лучше всего заметно на фиг.14.
Процедура 400 постциклового DAB для внутренних MB начинается с блока 402, где определяют qp. За блоком 402 следует блок 404, где делают определение, является ли qp меньшим порогового значения THD, где THD является intra_mb_qp_thd на фиг.13. Если в блоке 404 определяют, что "Да", то в блоке 406 BS устанавливают в ноль (0). Если в блоке 404 определяют, что "Нет", то в блоке 408 определяют края фрагмента изображения фиксированного размера. Блок 408 может быть размещен перед блоком 404. За блоком 408 следует блок 410, где для каждого края фрагмента изображения фиксированного размера делают определение, находится ли край фрагмента изображения фиксированного размера на границе блока. Если в блоке 410 для края фрагмента изображения фиксированного размера определяют, что "Да", то в блоке 414 BS для этого края фрагмента изображения фиксированного размера устанавливают в 4. В блоке 412, для тех краев фрагмента изображения фиксированного размера, которые не расположены на границе блока, BS устанавливают в ноль (0). После блоков 412 и 414 осуществляется переход в блок 420, где имеет место фильтрация с использованием механизма 60А внутрицикловой фильтрации удаления блочности с использованием вычисленного BS. Блок 420 заканчивает процедуру 400. В иллюстративных целях изображен блок 406, после которого осуществляется переход в блок 420 для фильтрации.
Согласно фиг.14 изображен возможный блок 450 8×8. В иллюстративных целях, текущий МВ имеет края фрагмента изображения фиксированного размера V 0, V1, H0, H1. Следует отметить, что V0 расположен на границе блока между текущим блоком и блоком слева; H0 расположен на границе блока между текущим блоком и блоком сверху; V1 удален на четыре выборки от V0 в горизонтальном направлении; и H1 удален на четыре выборки от H0 в вертикальном направлении.
Вычисление правила BS для внутренних MB изображено для определенного возможного варианта фиг.14. Соответственно, значения в Таблице 3 должны изменяться в зависимости от местоположения краев фрагментов изображения фиксированного размера.
Таблица 3 Вычисление BS для внутренних MB | ||||
BS(V 0) | BS(V1) | BS(H0) | BS(H1) | |
qp<intra_mb_qp_thd | 0 | 0 | 0 | 0 |
qp<intra_mb_qp_thd | 4 | 0 | 4 | 0 |
Промежуточные МВ
Унаследованная блочность может стать проблемой для промежуточных МВ. Соответственно, устройство 70 постциклового DAB в основном корректирует унаследованную блочность посредством включения механизма 60А внутрицикловой фильтрации удаления блочности для краев фрагмента изображения фиксированного размера, расположенных не на границе блока. В частности, решение относительно BS края фрагмента изображения фиксированного размера принимают на основе следующего: текущего qp, текущего пропущенного МВ, текущего CBP, вида МВ соседнего (элемента) и qp соседнего (элемента). Разработаны две конфигурации для вычислений BS промежуточного МВ. Эти две конфигурации содержат упрощенный вариант и полный вариант. При вычислении BS в упрощенном варианте решения принимают на основе параметров кодирования текущего МВ, в то время как в полном варианте рассматривают большее количество факторов, включая параметры кодирования соседнего (элемента).
Упрощенный вариант
Фиг.15 изображает график зависимости силы qp-фильтрации для промежуточных MB. Фиг.16 изображает возможную зависимость между краем текущего фрагмента изображения фиксированного размера и краем предыдущего фрагмента изображения фиксированного размера. В упрощенном варианте не используют информацию соседнего (элемента) для вычисления BS. Следовательно, параметры кодирования МВ не должны сохраняться для использования в будущем. Следовательно, упрощенный вариант обеспечивает сбережение MIP и памяти. Фиг.5 иллюстрирует зависимость между qp и силой фильтрации. Как представлено в Таблице 4A, достигается различная сила фильтрации при назначении различных BS для краев фрагмента изображения фиксированного размера V0, V1, H0, H1.
Если интенсивности BS для всех краев фрагмента изображения фиксированного размера больше нуля, то могут быть изменены все пиксели в блоке, например, как в последнем случае в последних трех строках в Таблице 4A. Может существовать более пяти эффективных ветвлений фильтрации, так как некоторые пиксели могут быть фильтрованы дважды. Однако проверка пространственной активности (условия Eq.(1), (2) и (3)) может препятствовать фильтрации некоторых пикселей. Решение относительно фильтрации для каждого пикселя основано на интенсивностях BS текущего и предыдущего фрагментов изображения фиксированного размера и на проверке пространственной активности, перечисленных в Таблице 5, где Vc обозначает край текущего фрагмента изображения фиксированного размера, V p обозначает край предыдущего фрагмента изображения фиксированного размера (фиг.16), 'x' обозначает отсутствие фильтрации, 'w' обозначает слабую фильтрацию, и 's' обозначает сильную фильтрацию. Выборки Q1, Q2, Q 3 и Q4 имеют различные значения для Vc и Vp. При фильтрации Vc выборки Q 1, Q2, Q3 и Q4 эквивалентны P1, P2, P3 и P4 на фиг.3. При фильтрации Vp выборки Q1, Q 2, Q3 и Q4 эквивалентны P5 , P6, P7 и P8 на фиг.3. Наиболее сильная фильтрация происходит, когда BS(Vc)=4, BS(V p)=4, и все условия проверки пространственной активности (1), (2) и (3) сохраняют справедливость.
Таблица 4A Вычисление BS для промежуточных MB (упрощенный вариант) | ||||
qp текущего МВ | BS(V0) | BS(V1) | BS(H0) | BS(H1) |
qp<inter_mb_qp_thd_boundary_0 | 0 | 0 | 0 | 0 |
inter_mb_qp_thd_boundary_0 qp< inter_mb_qp_thd_inside_0 | 2 | 0 | 2 | 0 |
inter_mb_qp_thd_inside_0 qp< inter_mb_qp_thd_ boundary_4 | 2 | 2 | 2 | 2 |
inter_mb_qp_thd_boundary_4 qp< inter_mb_qp_thd_inside_4 | 4 | 2 | 4 | 2 |
qp inter_mb_qp_thd_inside_4 | 4 | 4 | 4 | 4 |
Таблица 4B Пространственная активность для промежуточных MB | |
Случай пространственной активности | Описание |
A | Цветность или Условие (1) или (3) ложны |
B | Яркость и Условие (1) и (3) истинны |
C | Цветность или Условие (3) ложны |
D | Яркость и Условие (3) истинны |
E | Цветность или Условие (1) или (2) ложны |
F | Яркость и Условие (1) и (2) истинны |
G | Цветность или Условие (2) ложны |
H | Яркость и Условие (2) истинны |
Условия (1), (2) и (3) основаны на уравнениях Eq.(1), (2) и (3).
Таблица 5 Действительная фильтрация для каждого пикселя на основе BS текущего фрагмента изображения фиксированного размера, BS предыдущего фрагмента изображения фиксированного размера и проверки пространственной активности | ||||||||
Vp | Vc | Фильтрация | Q1 | Q2 | Q3 | Q4 | ||
BS | Пространственная активность | BS | Пространственная активность | |||||
0 | - | 0 | - | Vp | X | X | X | x |
V c | X | X | X | x | ||||
2 | C | 0 | - | Vp | W | X | X | x |
V c | X | X | X | x | ||||
2 | D | 0 | - | Vp | W | W | X | x |
V c | X | X | X | x | ||||
2 | C | 2 | G | Vp | W | X | X | x |
V c | X | X | X | w | ||||
2 | C | 2 | H | Vp | W | X | X | x |
V c | X | X | W | w | ||||
2 | D | 2 | G | Vp | W | W | X | x |
V c | X | X | X | w | ||||
2 | D | 2 | H | Vp | W | W | X | x |
V c | X | X | W | w | ||||
4 | A | 2 | G | Vp | S | X | X | x |
V c | X | X | X | w | ||||
4 | A | 2 | H | Vp | S | X | X | x |
V c | X | X | W | w | ||||
4 | B | 2 | G | Vp | S | S | S | x |
V c | X | X | X | w | ||||
4 | B | 2 | H | Vp | S | S | S | x |
V c | X | X | W | w | ||||
4 | A | 4 | E | Vp | S | X | X | x |
V c | X | X | X | s | ||||
4 | A | 4 | F | Vp | S | X | X | x |
V c | X | S | S | s | ||||
4 | B | 4 | E | Vp | S | S | S | x |
V c | X | X | X | s | ||||
4 | B | 4 | F | Vp | S | S | S | x |
V c | X | S | S | s |
Пропущенные МВ и 0-ые блоки CBP
Вновь, согласно фиг.11, так как для пропущенных МВ и 0-х блоков CBP кодирование текстуры отсутствует, пропущенные МВ и блоки с CBP=0, наследуют 100% искажений из опорных кадров. Для удаления этих искажений требуется более сильная фильтрация. Это сильно отличается от стандарта кодирования H.264, в котором используют более слабый фильтр для пропущенных МВ, так как конфигурация внутрициклового DB 50 предполагает, что в опорных кадрах была удалена блочность.
Более сильную фильтрацию получают посредством уменьшения всех пороговых значений qp (inter_mb_qp_thd_boundary_0, inter_mb_qp_thd_inside_0, inter_mb_qp_thd_boundary_4 и inter_mb_qp_thd_inside_4) на константу и увеличения значений FilterOffsetA и FilterOffsetB. Причина повышения FilterOffsetA и FilterOffsetB состоит в повышении возможности прохождения проверок (1), (2) и (3) пространственной активности, и при этом, соответственно, фильтруется большее количество выборок.
При реализации, qp искусственно увеличивают на константу qp_jump_for_not_coded_block для пропущенных МВ и 0-х блоков CBP и передают измененный qp в механизм 60А внутрицикловой фильтрации удаления блочности. Эту специальную обработку применяют к блокам с CBP=0 и пропущенным МВ. Для упрощения процедуры МВ обрабатывают идентично пропущенному МВ, если количество 0-х блоков CBP яркости в этом МВ больше порогового значения num_not_coded_blocks_thd.
Фиг.17 изображает общую блок-схему последовательности операций упрощенной процедуры 500 постциклового DAB для промежуточного MB. Упрощенная процедура 500 постциклового DAB для промежуточных MB начинается в блоке 502, где определяют BS и пространственную активность для края Vp предыдущего фрагмента изображения фиксированного размера. Это может иметь место при обработке края предыдущего фрагмента изображения фиксированного размера V p. За блоком 502 следует блок 504, где определяют BS и пространственную активность для края текущего фрагмента изображения фиксированного размера Vc. Например, BS и пространственная активность приведены выше в Таблицах 4A и 4B для фиг.14.
За блоком 504 следует блок 506, где определяют установочные параметры фильтра для каждого пикселя Q1, Q2, Q 3 и Q4 для Vp и Vc, как изображено в Таблице 5, приведенной выше. За блоком 506 следует блок 508, где MB фильтруют в соответствии с Таблицей 5 для возможного варианта фиг.14.
Полный вариант
В полном варианте параметры кодирования соседних MB (слева и сверху) влияют на решение относительно BS в отношении границы MB. Для краев фрагмента изображения фиксированного размера, расположенных внутри MB, интенсивности BS вычисляют идентично упрощенному варианту. Пусть V обозначает границу между двумя MB, А и B, BSA (V) и BSB(V) являются интенсивностями BS, определенными для MB А и B на основе правил, описанных в упрощенном варианте, тогда новую BS(V) вычисляют в соответствии с уравнением Eq.(4)
BS(V)=Max(BSA(V), BSB(V)) (4)
Например, предполагается, что MB А является внутренним MB, а MB B является промежуточным MB с qp<inter_mb_qp_thd_boundary_0, тогда BSA(V)=4, BSB(V)=0. Окончательное решение относительно BS, BS(V), в соответствии с Eq.(4), равно 4. Подробности правила вычисления BS для вертикального края приведены в Таблице 6. Вычисление BS для горизонтального края может быть получено идентичным образом.
Однако, в полном варианте, пропущенные MB и 0-е блоки CBP обрабатывают идентично упрощенному варианту, изображенному на фиг.11 и приведенному в Таблицах 4A, 4B и 5.
Фиг.18 изображает график зависимости силы qp-фильтрации для внутренних MB для полного варианта. Фиг.19 изображает график зависимости силы qp-фильтрации для промежуточных MB для полного варианта.
Таблица 6 Вычисление BS для промежуточных MB (полный вариант) | ||||
Текущий MB | MB слева | BS (V0) | BS (V1) | |
qp | Вид MB | qp | ||
qp<inter_mb_qp_thd_ boundary_0 | inter | qp<inter_mb_qp_thd_ boundary_0 | 0 | 0 |
qp<inter_mb_qp_thd_ boundary_0 | inter | inter_mb_qp_thd_ boundary_0 qp<inter_mb_qp_thd_boundary_4 | 2 | 0 |
inter_mb_qp_thd_ boundary_0 qp<inter_ mb_qp_thd_inside_0 | inter | qp<inter_mb_qp_thd_ boundary_4 | 2 | 0 |
inter_mb_qp_thd_ boundary_0 qp<inter_mb_qp_thd_inside_0 | inter | qp<inter_mb_qp_thd_ boundary_4 | 2 | 2 |
qp<inter_mb_qp_thd_ inside_0 | intra | Any | 4 | 0 |
qp<inter_mb_qp_thd_ inside_0 | inter | qp inter_mb_qp_thd_ boundary_4 | 4 | 0 |
inter_mb_qp_thd_inside_0 qp<inter_mb_qp_thd_inside_4 | intra | Any | 4 | 2 |
inter_mb_qp_thd_inside_0 qp<inter_mb_qp_thd_inside_4 | inter | qp inter_mb_qp_thd_ boundary_4 | 4 | 2 |
inter_mb_qp_thd_ boundary_4 qp<inter_mb_qp_thd_inside_4 | inter | Any | 4 | 2 |
qp<inter_mb_qp_thd_ inside_4 | any | Any | 4 | 4 |
Хотя H.264 содержит внутрицикловое DB 50, при кодировани содержимого при низкой скорости передачи битов проблема искажения остается. Требуется устройство 70 постциклового DAB для удаления искажений, вносимых при кодировании. Хотя внутрицикловое DB 50 H.264 и устройство 70 постциклового DAB совместно используют один основной механизм 60А фильтрации удаления блочности, устройство 70 постциклового DAB обеспечивает более сильную фильтрацию. Фильтрация является более сильной, так как большая BS может быть назначена для края в постцикловом DAB 70, но это невозможно во внутрицикловом DB 50. BS в внутрицикловом DB 50 определена правилами, определенными в стандарте H.264. Максимальная BS равна двум в случае, где оба блока являются промежуточными. Другая причина возможности выполнения более сильной фильтрации состоит в том, что в постцикловом DAB 70 могут быть назначены большие FilterOffsetA и FilterOffsetB, но FilterOffsets, используемый в внутрицикловом DB 50, cчитывают из потока битов.
Фиг.20A и 20B изображают блок-схему процедуры 600 для установки интенсивности границы в полном варианте. Процедура 600 начинается с блока 602, где делают определение, являются ли оба блока (текущий и левый) блоками промежуточного вида. Как может быть очевидно, определение блока 602 может быть пропущено и заменено блоком 604 или некоторым другим определением для определения видов блоков. Если в блоке 602 определяют, что "Нет", что означает, что один блок может быть внутреннего вида, то за блоком 602 следует блок 604. В блоке 604 делают определение, имеет ли один из блоков внутренний вид. Если определяют, что "Да", то за блоком 604 следует блок 606. В блоке 606 делают определение, имеет ли любой блок qp не меньший intra_mb_qp_thd_4. Если в блоке 606 определяют, что "Да", то в блоке 608 BS устанавливают в 4. Однако если в блоке 606 определяют, что "Нет", то за блоком 606 следует блок 610, где делают определение, имеет ли любой блок qp не меньший intra_mb_qp_thd_2. Если в блоке 610 определяют, что "Да", то в блоке 612 BS устанавливают в 2. Однако если в блоке 610 определяют, что "Нет", то BS устанавливают в 0.
Вновь, возвращаясь к блоку 602, если в блоке 602 определяют, что "Да", что означает, что оба блока имеют промежуточный вид, то за блоком 602 следует блок 620. В блоке 620 делают определение, имеет ли любой блок qp не меньший inter_mb_qp_thd_4. Если в блоке 620 определяют, что "Да", то в блоке 622 BS устанавливают в 4. Однако если в блоке 620 определяют, что "Нет", то за блоком 620 следует блок 624, где делают определение, имеет ли любой блок qp не меньший inter_mb_qp_thd_2. Если в блоке 624 определяют, что "Да", то в блоке 626 BS устанавливают в 2. Если в блоке 624 определяют, что "Нет", то в блоке 628 BS устанавливают в 0. Все блоки, 608, 612, 614, 622, 626 и 628, переходят в блок 630 фиг.20B.
В блоке 630 FilterOffsetA увеличивают на константу. За блоком 630 следует блок 632, где FilterOffsetB увеличивают на константу. За блоком 632 следует блок 634, где делают определение, существуют ли в блоке оставшиеся кодированные (элементы). Если определяют, что "Нет", то процедура 600 заканчивается. Однако если определяют, что "Да", то за блоком 634 следует блок 636. В блоке 636 qp увеличивают на константу. Блок 636 также заканчивает процедуру 600.
Процедура 600, в общем, содержит следующее:
(1) Устанавливают BS=4, если один из блоков является внутренним, и любой блок имеет qp не меньший intra_mb_qp_thd_4.
(2) Устанавливают BS=2, если один из блоков является внутренним, и любой блок имеет qp не меньший intra_mb_qp_thd_2.
(3) Устанавливают BS=4, если оба блока являются промежуточными, и любой блок имеет qp не меньший inter_mb_qp_thd_4.
(4) Устанавливают BS=2, если оба блока являются промежуточными, и любой блок имеет qp не меньший inter_mb_qp_thd_2.
(5) Увеличивают FilterOffsetA и FilterOffsetB на константу.
(6) Увеличивают qp на константу, если блок не содержит оставшихся кодированных (элементов).
Увеличение FilterOffsetA и FilterOffsetB повышает возможность прохождения проверок пространственной активности в уравнениях Eq.(1), (2) и (3), и, соответственно, осуществляется фильтрация большего количества выборок.
Кроме того, при увеличении qp на константу уменьшаются параметры nter_mb_qp_thd_4 и inter_mb_qp_thd_2.
Экспериментальные результаты
В экспериментальных результатах в Таблице 7 приведено сравнение второго подхода с использованием постциклового устройства удаления блочности при высоком быстродействии MIP, обозначенного как SMCDB, раскрытых процессов DAB, обозначенных как DAB, и отсутствия операций DAB. В Таблице 7 приведена визуальная оценка MOS, при этом LCDB имеет субъективную оценку, сравнимую с SMCDB, и они оба намного лучше, чем отсутствие DB.
Таблица 7 Визуальная оценка MOS | |||
Отсутствие DAB | SMCDM | DAB | |
Визуальная оценка MOS | 2,0 | 3,9 | 3,9 |
Ввиду вышеизложенного устройство 70 постциклового DAB в качестве основы использует существующие аппаратные средства механизма 60А внутрицикловой фильтрации удаления блочности и тщательно выбирает BS для каждого из краев фрагмента изображения фиксированного размера. Для удаления раздражающей унаследованной блочности может быть осуществлена фильтрация пикселей во внутренней части блока, что достигается установкой ненулевой BS для краев фрагмента изображения фиксированного размера в середине блока. Вкратце, BS определяют qp, промежуточный MB, пропущенный MB и CBP.
Были описаны два варианта для поддержания конфигурации низкой сложности. В упрощенном варианте вычисляют интенсивности BS на основе параметров кодирования текущего MB (MB, фильтрация которого должна быть осуществлена), при этом не требуется информация из соседних MB. Однако в полном варианте вычисляют BS на основе параметров кодирования и текущего и соседнего MB.
Конфигурация низкой сложности устройства 70'DAB на фиг.2C также разработана, как устройство пост-удаления блочности для универсальной корректировки блочности для кодека без внутрициклового DB 50, такого как кодеки MPEG4 и H.263P0. Процедуры вычисления интенсивности границы (BS), описанные в отношении устройства 70 DAB, по существу, идентичны процедурам для 70'. Следовательно, дополнительное описание не требуется. Устройство 70 DAB или 70' успешно удаляет искажения блочности при очень малых MIP (2.5 MIP для упрощенного варианта и 4 MIP для полного варианта) и требованиях на память.
В одной или большем количестве возможных конфигураций описанные функции могут быть реализованы аппаратными средствами, программным обеспечением, программируемым оборудованием или любой их комбинацией. При реализации в программном обеспечении функции в качестве одной или большего количества команд или кода могут быть сохранены на компьютерно-читаемом носителе информации или переданы через него. Компьютерно-читаемый носитель информации содержит и компьютерные носители данных и средства связи, включая любую среду, которая способствует передаче компьютерной программы из одного места в другое. Носителем данных может быть любой доступный носитель информации, к которому может осуществлять доступ компьютер. В виде неограничивающего возможного варианта такой компьютерно-читаемый носитель информации может содержать RAM, ROM, EEPROM, CD-ROM или другое оптическое дисковое запоминающее устройство, магнитное дисковое запоминающее устройство или другие магнитные запоминающие устройства, или любой другой носитель информации, который может быть использован для переноса или хранения требуемого кода программы в виде команд или структур данных и к которому может осуществить доступ компьютер. Также любое соединение правильно называть компьютерно-читаемым носителем информации. Например, если программное обеспечение передают с web-сайта, сервера или из другого удаленного источника с использованием коаксиального кабеля, волоконно-оптического кабеля, витой пары, цифровой абонентской линии (DSL) или беспроводных технологий, таких как инфракрасная, радио и микроволновая (передача), то коаксиальный кабельный, волоконно-оптический кабель, витую пару, DSL или беспроводную технологию, такую как инфракрасная, радио и микроволновая (передача), включают в определение носителя информации. Магнитный диск и немагнитный диск, как здесь используется, содержат компакт-диск (CD), лазерный диск, оптический диск, цифровой универсальный диск (DVD), гибкий диск и диск blu-ray, где магнитные диски, обычно, воспроизводят данные магнитным образом, в то время как немагнитные диски воспроизводят данные оптически с использованием лазеров. Комбинации вышеупомянутого должны быть также включены в контекст компьютерно-читаемого носителя информации.
Предыдущее описание раскрытых конфигураций предложено для обеспечения возможности изготовления или использования этого раскрытия любым специалистом в данной области техники. Этим специалистам будут очевидны различные модификации указанных конфигураций, и, не удаляясь от сути и не выходя из контекста раскрытия, определенные здесь базовые принципы могут быть применены к другим конфигурациям. Соответственно, раскрытие предназначено для охвата наиболее широкого контекста, совместимого с раскрытыми здесь принципами и новыми признаками, а не для ограничения представленными здесь конфигурациями.
Класс H04N7/30 с использованием кодирования с преобразованием
Класс G06T9/00 Кодирование изображения, например из побитового к непобитовому изображению