СПОСОБ ПРИМЕНЕНИЯ КРАЕВОГО СМЕЩЕНИЯ
METHOD OF USING EDGE SHIFT

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Данное изобретение относится к способу адаптивного к выборке смещения для уменьшения разницы (различия) между первоначальными выборками и реконструированными выборками и, более конкретно, к способу адаптивного добавления некоторого смещения к реконструированным выборкам на основе разницы между текущей выборкой и соседними выборками.
УРОВЕНЬ ТЕХНИКИ
Для сжатия видеоданных, было разработано множество стандартов видеоданных. Такими стандартами видеоданных являются, например, MPEG-2, MPEG-4 и H.264/MPEG-4 AVC. Как преемник H.264/MPEG-4 AVC, кодирование видеоданных высокой эффективности (HEVC) в настоящее время находится в разработке посредством ISO/IEC группы экспертов по кинематографии (MPEG) и ITU-T группы экспертов по кодированию видеоданных (VCEG).
Согласно HEVC, одно изображение разделяется на наибольшие блоки кодирования (LCU), один или несколько блоков кодирования каждого LCU кодируется посредством генерации блока предсказания с использованием межкадрового или внутрикадрового предсказания. Разница между первоначальным блоком и блоком предсказания преобразуется для генерации преобразованного блока, и этот преобразованный блок квантуется с использованием некоторого параметра квантования и одной из множества заданных матриц квантования. Квантованные коэффициенты квантованного блока сканируются посредством заданного типа сканирования, а затем статистически кодируются. Эти квантованные коэффициенты обратно (инверсно) квантуются и обратно преобразуются для генерации остаточного блока, который комбинируется с блоком предсказания для генерации реконструированного изображения. Это реконструированное изображение адаптивно фильтруется с использованием одного или нескольких деблокирующих фильтров для удаления блокирующих артефактов.
Но способ деблокирующего фильтра, описанный в H.264 и разрабатываемом HEVC, ухудшает производительность декодирования устройства декодирования, так как этот способ является слишком усложненным. Также, даже если деблокирующая фильтрация применяется к краям блоков, разницы между первоначальными выборками и фильтрованными выборками все же остаются. Для компенсации этих различий, вводится процесс адаптивного к выборке смещения (SAO). Но, согласно текущему процессу SAO, разницы между первоначальными выборками и фильтрованными выборками время от времени увеличиваются, так как оптимальный краевой индекс (показатель) не определяется.
Следовательно, необходим новый способ для уменьшения сложности пост-обработки и улучшения производительности пост-обработки.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
ТЕХНИЧЕСКАЯ ПРОБЛЕМА
Данное изобретение направлено на способ краевого смещения для уменьшения различия между первоначальными выборками и реконструированными выборками и для уменьшения количества битов, необходимых для компенсации этих различий.
ТЕХНИЧЕСКОЕ РЕШЕНИЕ
Один аспект данного изобретения обеспечивает способ применения краевого смещения, предусматривающий: генерацию краевого индекса некоторой текущей выборки и применение краевого смещения, соответствующего этому краевому индексу этой текущей выборки. Этот краевой индекс генерируется с использованием различий между текущей выборкой и двумя соседними выборками.
ВЫГОДНЫЕ ЭФФЕКТЫ
Способ согласно данному изобретению генерирует краевой индекс текущей выборки и применяет краевое смещение, соответствующее этому краевому индексу, к этой текущей выборке. Этот краевой индекс генерируется с использованием различий между текущей выборкой и двумя соседними выборками. Соответственно, различия между первоначальными выборками и реконструированными выборками эффективно уменьшаются посредством генерации оптимального краевого индекса.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг. 1 является блок-схемой, иллюстрирующей устройство кодирования кинофильма согласно данному изобретению.
Фиг. 2 является блок-схемой, иллюстрирующей устройство декодирования кинофильма согласно данному изобретению.
Фиг. 3 является блок-схемой, иллюстрирующей процесс деблокирующей фильтрации согласно данному изобретению.
Фиг. 4 является концептуальной схемой, иллюстрирующей способ определения прочности стыка согласно данному изобретению.
Фиг. 5 является концептуальной схемой, иллюстрирующей 4-выборочный край согласно данному изобретению.
Фиг. 6 является концептуальной схемой, иллюстрирующей способ разделения изображения на множественные области согласно данному изобретению.
Фиг. 7 является концептуальной схемой, иллюстрирующей краевые типы согласно данному изобретению.
Фиг. 8 является концептуальной диаграммой, иллюстрирующей краевые индексы согласно данному изобретению.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
Далее, различные варианты осуществления данного изобретения будут подробно описаны со ссылкой на сопутствующие чертежи. Однако, данное изобретение не ограничено этими примерными вариантами осуществления, раскрытыми ниже, а может быть реализовано различным образом. Следовательно, возможны многие другие модификации и вариации данного изобретения, и следует понимать, что в пределах объема раскрытой концепции данное изобретение может практиковаться образом, отличным от конкретно описанного.
Устройством кодирования кинофильма и устройством декодирования кинофильма согласно данному изобретению может быть терминал пользователя, такой как персональный компьютер, персональный мобильный терминал, мобильный мультимедийный проигрыватель, смартфон или терминал беспроводной связи. Устройство кодирования изображения и устройство декодирования изображения могут включать в себя блок связи для связи с различными устройствами, память для хранения различных программ и данных, используемых для кодирования или декодирования изображений.
Фиг. 1 является блок-схемой, иллюстрирующей устройство 1000 кодирования кинофильма согласно данному изобретению.
Со ссылкой на Фиг. 1, устройство 1000 кодирования кинофильма включает в себя блок 1010 разделения изображения, блок 1020 преобразования, блок 1030 квантования, блок 1040 сканирования, блок 1050 статистического кодирования, блок 1060 внутрикадрового предсказания, блок 1070 межкадрового предсказания, блок 1080 обратного квантования, блок 1090 обратного преобразования, блок 1100 пост-обработки, блок 1110 сохранения изображения, блок 1120 вычитания и блок 1130 сложения.
Блок 1010 разделения изображения разделяет изображение или срез на множественные наибольшие блоки кодирования (LCU) и разделяет каждый LCU на один или несколько блоков кодирования. Размер LCU может быть равен 32×32, 64×64 или 128×128. Блок 1010 разделения изображения определяет режим предсказания и режим разделения для каждого блока кодирования.
LCU включает в себя один или несколько блоков кодирования. LCU имеет рекурсивную структуру дерева квадрантов для определения структуры разделения LCU. Параметры для определения максимального и минимального размеров блока кодирования включены в последовательное множество параметров. Структура разделения определяется посредством одного или нескольких флагов (признаков) расщепленных блоков кодирования. Размер блока кодирования равен 2N×2N. Если размер LCU равен 64×64, и размер наименьшего блока кодирования (SCU) равен 8х8, то размер блока кодирования может быть равен 64×64, 32×32, 16×16 или 8×8.
Блок кодирования включает в себя один или несколько блоков предсказания. При внутрикадровом предсказании, размер блока предсказания равен 2N×2N или N×N. При межкадровом предсказании, размер блока предсказания определяется посредством режима разделения. Этот режим разделения является одним из 2N×2N, 2N×N, N×2N и N×N, если блок кодирования разделен симметрично. Режим разделения является одним из 2N×nU, 2N×nD, nL×2N и nR×2N, если блок кодирования разделен несимметрично.
Блок кодирования включает в себя один или несколько блоков преобразования. Блок преобразования имеет рекурсивную структуру дерева квадрантов для определения структуры разделения блока кодирования. Эта структура разделения определяется посредством одного или нескольких флагов расщепленного блока преобразования. Параметры для определения максимального и минимального размеров блока преобразования включены в последовательное множество параметров.
Блок 1020 преобразования преобразует остаточные сигналы для генерации преобразованного блока. Эти остаточные сигналы преобразуются в базис блока преобразования. Эти остаточные сигналы выводятся посредством вычитания блока предсказания, который генерируется блоком 1060 внутрикадрового предсказания или блоком 1070 межкадрового предсказания, из первоначального блока.
Различные матрицы преобразования могут использоваться согласно режиму предсказания (режима внутрикадрового предсказания или режима межкадрового предсказания). Также, в режиме внутрикадрового предсказания, матрица преобразования может адаптивно определяться на основе режима внутрикадрового предсказания. Этот блок преобразования преобразуется с использованием двух одномерных матриц преобразования (горизонтальной матрицы и вертикальной матрицы). Например, в горизонтальном режиме внутрикадрового предсказания, основанная на DCT матрица целых чисел применяется к вертикальному направлению, а основанная на DCT или основанная на KLT матрица целых чисел применяется к горизонтальному направлению, так как остаточные сигналы могут иметь вертикальную направленность. В вертикальном режиме внутрикадрового предсказания, основанная на DCT матрица целых чисел применяется к горизонтальному направлению, а основанная на DCT или основанная на KLT матрица целых чисел применяется к вертикальному направлению. Альтернативно, вид матрицы преобразования определяется на основе размера блока преобразования.
Блок 1030 квантования определяет параметр квантования для квантования этого преобразованного блока. Этим параметром квантования является размер шага квантования. Этот параметр квантования определяется на блок квантования. Этот блок квантования является блоком кодирования, большим или равным заданному размеру. Этот заданный размер называется минимальным размером блока квантования. Блок квантования, имеющий минимальный размер, называется минимальным блоком квантования. Если размер блока кодирования является равным или большим, чем минимальный размер блока квантования, то этот блок кодирования становится блоком квантования. Множество блоков кодирования может быть включено в минимальный блок квантования. Минимальный блок квантования может быть блоком 8×8 или блоком 16×16. Минимальный размер может быть определен на изображение.
Блок 1030 квантования генерирует предиктор параметра квантования и генерирует дифференциальный параметр квантования посредством вычитания предиктора параметра квантования из параметра квантования. Этот дифференциальный параметр квантования статистически кодируется.
Предиктор параметра квантования генерируется следующим образом.
ПЕРВЫЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ
Параметры квантования левого блока кодирования, верхнего блока кодирования и левого-верхнего блока кодирования последовательно извлекаются в этом порядке. Предиктор параметра квантования генерируется с использованием одного или двух доступных параметров квантования. Например, первый доступный параметр квантования устанавливается в качестве предиктора параметра квантования. Или среднее из первых двух доступных параметров квантования устанавливается в качестве предиктора параметра квантования, и если только один параметр квантования является доступным, то этот доступный параметр квантования устанавливается в качестве предиктора параметра квантования.
ВТОРОЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ
Могут отсутствовать все из левого блока кодирования, верхнего блока кодирования и верхнего-левого блока кодирования текущего блока кодирования. С другой стороны, могут быть предыдущий блок кодирования текущего блока кодирования в порядке кодирования. Таким образом, параметры квантования соседних блоков кодирования, смежных с текущим блоком кодирования, и предыдущий блок кодирования могут использоваться для генерации предиктора параметра квантования. Эти параметры квантования извлекаются в следующем порядке: 1) параметр квантования левого соседнего блока кодирования; 2) параметр квантования верхнего соседнего блока кодирования; 3) параметр квантования верхнего-левого соседнего блока кодирования и 4) параметр квантования предыдущего блока кодирования.
Альтернативно, параметры квантования извлекаются в следующем порядке: 1) параметр квантования левого соседнего блока кодирования; 2) параметр квантования верхнего соседнего блока кодирования и 3) параметр квантования предыдущего блока кодирования.
Среднее из первых двух доступных параметров квантования устанавливается в качестве предиктора параметра квантования, когда доступны два или несколько параметров квантования, а когда доступен только один параметр квантования, этот доступный параметр квантования устанавливается в качестве предиктора параметра квантования. Например, если доступны параметры квантования левого и верхнего блоков кодирования, то среднее из левого и верхнего параметров квантования устанавливается в качестве предиктора параметра квантования. Если доступен только один из параметров квантования левого и верхнего блоков кодирования, то среднее из этого доступного параметра квантования и параметра квантования предыдущего блока кодирования устанавливается в качестве предиктора параметра квантования. Если параметры квантования левого и верхнего блоков кодирования недоступны, то параметр квантования предыдущего блока кодирования устанавливается в качестве предиктора параметра квантования. Это среднее округляется.
Блок 1030 квантования квантует этот преобразованный блок с использованием матрицы квантования и параметра квантования для генерации некоторого квантованного блока. Этот квантованный блок обеспечивается для блока 1080 обратного квантования и блока 1040 сканирования.
Блок 1040 сканирования сканирует квантованные коэффициенты и преобразует эти квантованные коэффициенты в одномерные компоненты квантованных коэффициентов, применяя образец сканирования (развертки) к квантованному блоку.
В режиме внутрикадрового предсказания, распределение квантованных коэффициентов изменяется согласно режиму внутрикадрового предсказания и размеру блока преобразования. Таким образом, образец сканирования определяется на основе режима внутрикадрового предсказания и размера блока преобразования. Этот образец сканирования может быть выбран среди развертки в форме зигзага, вертикальной развертки и горизонтальной развертки. Развертка в форме зигзага может быть заменена диагональной разверткой.
Например, если размер блока преобразования является равным или меньшим, чем 8×8, то горизонтальная развертка выбирается для вертикального режима и заданного числа соседних режимов внутрикадрового предсказания вертикального режима, вертикальная развертка выбирается для горизонтального режима и заданного числа соседних режимов внутрикадрового предсказания, а развертка в форме зигзага или диагональная развертка выбирается для других режимов внутрикадрового предсказания. Когда размер блока преобразования является большим чем 8×8, развертка в форме зигзага или диагональная развертка выбирается для всех режимов внутрикадрового предсказания.
В режиме межкадрового предсказания, используется заданный образец сканирования (развертки). Этим заданным образцом развертки может быть развертка в форме зигзага или диагональная развертка.
Когда размер блока преобразования является большим, чем заданный размер, квантованные коэффициенты разделяются на множество подмножеств, а затем сканируются. Этим заданным размером может быть 4×4. Образец сканирования для сканирования этих подмножеств является таким же, что и образец сканирования для сканирования квантованных коэффициентов в пределах каждого подмножества. Эти квантованные коэффициенты в пределах каждого подмножества сканируются в обратном направлении. Эти подмножества также сканируются в обратном направлении.
Параметр, указывающий последнее ненулевое положение, кодируется и передается к декодеру. Это последнее ненулевое положение определяет положение последнего ненулевого квантованного коэффициента в пределах блока преобразования. Параметр, указывающий положение последнего ненулевого квантованного коэффициента в пределах каждого подмножества, также передается к устройству декодирования.
Блок 1080 обратного квантования обратно квантует эти квантованные коэффициенты. Блок 1090 обратного квантования обратно квантует обратно квантованные коэффициенты для генерации остаточных сигналов.
Блок 1130 сложения суммирует остаточные сигналы, генерируемые блоком 1090 обратного преобразования, с сигналами предсказания, генерируемыми блоком 1060 внутрикадрового предсказания или блоком 1070 межкадрового предсказания. Блок 1120 вычитания вычитает выборки предсказания из первоначальных выборок для генерации остаточных сигналов.
Блок 1100 пост-обработки выполняет процесс деблокирующей фильтрации, процесс адаптивного к выборке смещения и процесс фильтрации нижних частот синхронного детектора.
Этот процесс деблокирующей фильтрации выполняется для удаления блокирующих артефактов, которые появляются в реконструированном изображении.
Этот процесс адаптивного к выборке смещения выполняется после выполнения процесса деблокирующей фильтрации для уменьшения различия между первоначальной выборкой и реконструированной выборкой. На изображении или срезе определяется, выполняется ли процесс адаптивного к выборке смещения или нет. Это изображение или срез может быть разделен на множество областей смещения, и тип смещения может быть определен на каждую область. Имеются четыре типа краевого смещения и два типа полосового смещения. Если типом смещения является один из этих типов смещения, то краевой тип определяется на каждую выборку в пределах этой области смещения, и смещение, соответствующее этому краевому типу, добавляется к каждой выборке. Этот краевой тип определяется путем сравнения текущей выборки с соседними двумя выборками.
Этот процесс адаптивной фильтрации нижних частот синхронного детектора может быть выполнен посредством сравнения реконструированного изображения и первоначального изображения для получения коэффициентов фильтра. Эти коэффициенты фильтра применяются ко всем выборкам в пределах 4×4 блока и 8×8 блока. Выполняется ли адаптивная фильтрация нижних частот синхронного детектора или нет, определяется на блоке кодирования. Следовательно, размер и коэффициенты фильтра нижних частот синхронного детектора могут быть изменены на основе блока кодирования.
Блок 1110 сохранения изображения принимает реконструированные изображения от блока 1100 пост-обработки и сохраняет их в памяти. Это изображение является основанным на кадре изображением или основанным на поле изображением.
Блок 1070 межкадрового предсказания выполняет оценку движения с использованием одного или нескольких изображений, хранимых в блоке 1110 сохранения изображения, и определяет один или несколько эталонных индексов изображений, определяющих одно или несколько эталонных изображений и один или несколько векторов движения. Блок 1070 межкадрового предсказания генерирует блок предсказания с использованием этого одного или нескольких эталонных индексов изображений и этого одного или нескольких векторов движения.
Блок 1060 внутрикадрового предсказания определяет режим внутрикадрового предсказания текущего блока предсказания и генерирует блок предсказания с использованием режима внутрикадрового предсказания.
Блок 1050 статистического кодирования статистически кодирует компоненты квантованных коэффициентов, принятые от блока 1040 сканирования, информацию внутрикадрового предсказания, принятую от блока 1060 внутрикадрового предсказания, информацию о движении, принятую от блока 1070 межкадрового предсказания.
Фиг. 2 является блок-схемой, иллюстрирующей устройство 2000 декодирования кинофильма согласно данному изобретению.
Как показано на Фиг. 2, устройство 2000 декодирования кинофильма включает в себя блок 2010 статистического декодирования, блок 2020 обратного сканирования, блок 2030 обратного квантования, блок 2040 обратного преобразования, блок 2050 внутрикадрового предсказания, блок 2060 межкадрового предсказания, блок 2070 пост-обработки, блок 2080 сохранения изображения и блок 2090 сложения.
Блок 2010 статистического декодирования извлекает и статистически декодирует информацию внутрикадрового предсказания, информацию межкадрового предсказания и компоненты квантованных коэффициентов из принятого битового потока. Блок 2010 статистического декодирования передает информацию межкадрового предсказания к блоку 2050 межкадрового предсказания и передает компоненты квантованных коэффициентов к блоку 2020 обратного сканирования.
Блок 2020 обратного сканирования преобразует эти компоненты квантованных коэффициентов в двумерный квантованный блок с использованием образца обратного сканирования (развертки).
В режиме внутрикадрового предсказания, образец обратного сканирования выбирается на основе режима внутрикадрового предсказания и размера блока преобразования. Этот образец обратного сканирования может выбираться среди развертки в форме зигзага, вертикальной развертки и горизонтальной развертки. Развертка в форме зигзага может быть заменена диагональной разверткой.
Например, если размер блока преобразования является равным или меньшим чем 8×8, то горизонтальная развертка выбирается для вертикального режима и заданного числа соседних режимов внутрикадрового предсказания вертикального режима, вертикальная развертка выбирается для горизонтального режима и заданного числа соседних режимов внутрикадрового предсказания, а развертка в форме зигзага или диагональная развертка выбирается для других режимов внутрикадрового предсказания. Когда размер блока преобразования является большим, чем 8×8, развертка в форме зигзага или диагональная развертка выбирается для всех режимов внутрикадрового предсказания.
В режиме межкадрового предсказания, используется заданный образец сканирования (развертки). Этим заданным образцом развертки может быть развертка в форме зигзага или диагональная развертка.
Если размер текущего блока преобразования является большим, чем заданный размер, то компонент квантованных коэффициентов обратно сканируются в базис подмножества для построения квантованного блока. Это подмножество имеет заданный размер. Этим заданным размером может быть 4×4. Если размер блока преобразования является равным заданному размеру, то компоненты квантованных коэффициентов блока преобразования обратно сканируются для построения блока преобразования. Когда компоненты квантованных коэффициентов обратно сканируются в базис подмножества, один и тот же образец обратного сканирования применяется к компонентам квантованных коэффициентов каждого подмножества.
Эти множественные подмножества обратно сканируются в обратном направлении. Эти компоненты квантованных коэффициентов также обратно сканируются в обратном направлении. Этот образец обратного сканирования, примененный к компонентам квантованных коэффициентов для построения некоторого подмножества, является таким же, что и образец обратного сканирования, примененный к множественным построенным подмножествам. Блок 2020 обратного сканирования выполняет обратное сканирование с использованием параметра, указывающего некоторое положение последнего ненулевого квантованного коэффициента блока преобразования.
Блок 2030 обратного квантования принимает дифференциальный параметр квантования от блока 2010 статистического декодирования и генерирует предиктор параметра квантования для получения параметра квантования текущего блока кодирования.
Этот предиктор параметра квантования генерируется следующим образом.
ПЕРВЫЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ
Параметры квантования левого блока кодирования, верхнего блока кодирования и левого-верхнего блока кодирования последовательно извлекаются в этом порядке. Предиктор параметра квантования генерируется с использованием одного или двух доступных параметров квантования. Например, первый доступный параметр квантования устанавливается в качестве предиктора параметра квантования. Или среднее из первых двух доступных параметров квантования устанавливается в качестве предиктора параметра квантования, и если только один параметр квантования является доступным, то этот доступный параметр квантования устанавливается в качестве предиктора параметра квантования.
ВТОРОЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ
Могут отсутствовать все из левого блока кодирования, верхнего блока кодирования и верхнего-левого блока кодирования текущего блока кодирования. С другой стороны, могут быть предыдущий блок кодирования текущего блока кодирования в порядке кодирования. Таким образом, параметры квантования соседних блоков кодирования, смежных с текущим блоком кодирования, и предыдущий блок кодирования могут использоваться для генерации предиктора параметра квантования. Эти параметры квантования извлекаются в следующем порядке: 1) параметр квантования левого соседнего блока кодирования; 2) параметр квантования верхнего соседнего блока кодирования; 3) параметр квантования верхнего левого соседнего блока кодирования и 4) параметр квантования предыдущего блока кодирования.
Альтернативно, параметры квантования извлекаются в следующем порядке: 1) параметр квантования левого соседнего блока кодирования; 2) параметр квантования верхнего соседнего блока кодирования и 3) параметр квантования предыдущего блока кодирования.
Среднее из первых двух доступных параметров квантования устанавливается в качестве предиктора параметра квантования, когда доступны два или несколько параметров квантования, а когда доступен только один параметр квантования, этот доступный параметр квантования устанавливается в качестве предиктора параметра квантования. Например, если доступны параметры квантования левого и верхнего блоков кодирования, то среднее из левого и верхнего параметров квантования устанавливается в качестве предиктора параметра квантования. Если доступен только один из параметров квантования левого и верхнего блоков кодирования, то среднее из этого доступного параметра квантования и параметра квантования предыдущего блока кодирования устанавливается в качестве предиктора параметра квантования. Если параметры квантования левого и верхнего блоков кодирования недоступны, то параметр квантования предыдущего блока кодирования устанавливается в качестве предиктора параметра квантования. Это среднее округляется.
Блок 2030 обратного квантования генерирует параметр квантования текущего блока кодирования посредством сложения дифференциального параметра квантования и предиктора параметра квантования. Если дифференциальный параметр квантования для текущего блока кодирования не передается со стороны кодирования, то дифференциальный параметр квантования устанавливается на нуль. Этот параметр квантования генерируется на блок квантования.
Блок 2030 обратного квантования обратно квантует квантованный блок.
Блок 2040 обратного преобразования обратно преобразует обратно квантованный блок для генерации остаточного блока. Тип матрицы обратного преобразования определяется на основе режима предсказания (режима внутрикадрового предсказания или режима межкадрового предсказания) и размера блока преобразования.
Блок 2090 сложения генерирует реконструированные выборки посредством сложения остаточного блока с блоком предсказания.
Блок 2050 межкадрового предсказания восстанавливает режим внутрикадрового предсказания на основе информации внутрикадрового предсказания, принятой от блока 2010 статистического декодирования, и генерирует блок предсказания согласно режиму внутрикадрового предсказания.
Блок 2060 межкадрового предсказания восстанавливает один или несколько эталонных индексов изображений и один или несколько векторов движения на основе информации межкадрового предсказания, принятой от блока 2010 статистического декодирования, и генерирует блок предсказания с использованием этого одного или нескольких эталонных изображений и этого одного или нескольких векторов движения.
Работа блока 2070 пост-обработки является такой же, что и работа блока 1100 пост-обработки Фиг. 1.
Блок 2080 сохранения изображения сохраняет изображения, которые являются пост-обработанными посредством блока 2070 пост-обработки.
Фиг. 3 является блок-схемой, иллюстрирующей процесс деблокирующей фильтрации согласно данному изобретению.
Этот процесс деблокирующей фильтрации выполняется посредством блока 1100 пост-обработки устройства 1000 кодирования кинофильма, показанного на Фиг. 1, и посредством блока 2070 пост-обработки устройства 2000 декодирования кинофильма, показанного на Фиг. 2.
Когда определено, что деблокирующая фильтрация выполняется на некотором срезе, процесс деблокирующей фильтрации применяется к этому срезу. Устройство декодирования кинофильма использует флаг 'diable_deblocking_filter_flag', принятый из битового потока для определения того, выполняется ли деблокирующая фильтрация на срез или нет.
Эта деблокирующая фильтрация выполняется на каждом блоке кодирования. Вертикальные края фильтруются, сначала начиная с края левой стороны блока кодирования по направлению к правой стороне блока кодирования. Затем горизонтальные края фильтруются, начиная с края наверху блока кодирования по направлению к нижней части блока кодирования.
Деблокирующий фильтр применяется только к краям блока предсказания и краям блока преобразования. Если ширина или высота блока предсказания или блока преобразования является меньшей чем 8 выборок в длину, то деблокирующий фильтр применяется только к краям, лежащим на сетке выборки 8×8.
Прочность стыка определяется на каждом крае 4 выборок, лежащем на сетке выборки 8×8 (SI 10).
Фиг. 4 является концептуальной схемой, иллюстрирующей способ определения прочности стыка согласно данному изобретению.
Как показано на Фиг. 4, прочность стыка определяется на каждом крае 4 выборок, лежащем на сетке выборки 8×8. Затем прочность стыка определяется на краях 8×8 блока с использованием двух последовательных прочностей стыка.
Соответственно, вычислительная сложность, необходимая для определения прочности стыка согласно данному изобретению, уменьшается на 50% по сравнению с разрабатываемым HEVC. Также, данное изобретение уменьшает емкость памяти и полосу частот, необходимую для определения прочности стыка, на 50%. Следовательно, данное изобретение снижает сложность аппаратного и программного обеспечения без ухудшения качества изображения.
0
3
0
3
Фиг. 5 является концептуальной схемой, иллюстрирующей край 4 выборок согласно данному изобретению. Как показано на Фиг. 5, край 4 выборок расположен между Р блоком, содержащим выборку рО, и Q блоком, содержащим выборку qO. Выборка рО соответствует одной из выборок р0~р0, а выборка qO соответствует одной из выборок qO~q0. Блок Р и Q является блоком предсказания или блоком преобразования.
Прочность стыка определяется следующим образом. Эта прочность стыка определяется на край 4 выборок.
Если блок предсказания, содержащий выборку рО, или блок предсказания, содержащий выборку qO, является статистически кодированным, то прочность стыка края 4 выборок устанавливается равной 2. Этот край 4 выборок является краем блока предсказания. А именно, если блок Р и блок Q являются статистически кодированными, то прочность стыка устанавливается равной 0 или 1.
Если одно или несколько следующих условий выполнено, то прочность стыка устанавливается равной 1.
1) Край 4 выборок является краем блока преобразования, блок преобразования, содержащий выборку рО, или блок преобразования, содержащий выборку qO, содержит один или несколько ненулевых коэффициентов преобразования.
2) Края 4 выборок являются краем блока предсказания, блок предсказания, содержащий выборку рО, и блок предсказания, содержащий выборку qO, взаимо-кодированы, и блок предсказания, содержащий выборку рО, или блок предсказания, содержащий выборку qO, имеют различные эталонные изображения или различное число векторов движения.
3) Блок предсказания, содержащий выборку рО, и блок предсказания, содержащий выборку qO, взаимокодированы, блок предсказания, содержащий выборку рО, или блок предсказания, содержащий выборку qO, имеют один вектор движения, и абсолютная разница между горизонтальным или вертикальным компонентом этого вектора движения является большей или равной заданному значению (например, 1 выборке). Этот край не является частью горизонтальной границы LCU.
4) Блок предсказания, содержащий выборку рО, и блок предсказания, содержащий выборку qO, взаимокодированы, блок предсказания, содержащий выборку рО, или блок предсказания, содержащий выборку qO, имеют два вектора движения, блок предсказания, содержащий выборку рО, или блок предсказания, содержащий выборку qO, имеют по меньшей мере одно и то же эталонное изображение, и абсолютная разница между горизонтальным или вертикальным компонентом двух векторов движения, соответствующих одному и тому же эталонному изображению, является большей или равной заданному значению. Этот край не является частью горизонтальной границы LCU.
Как описано выше, если край 4 выборок не лежит на сетке выборки 8×8, то прочность стыка устанавливается равной 0.
С другой стороны, когда этот край является горизонтальным краем LCU, и блок предсказания, содержащий выборку рО, расположен выше горизонтального края LCU, информация о движении блока предсказания, содержащего выборку рО, может быть заменена информацией о движении левого или правого соседнего блока предсказания блока предсказания, содержащего выборку рО, на основе размера и/или местоположения блока предсказания, содержащего выборку рО.
Затем определяется, выполняется ли деблокирующая фильтрация на краю 4 выборок или нет (S120).
Для края 4 выборок, деблокирующая фильтрация выполняется, если выполнены два следующих условия:
B
-
где bS представляет собой прочность стыка. Значение переменной β определяется на основе граничного параметра квантования QP .
Переменная d задается следующим образом:
Затем, если определено, что деблокирующая фильтрация применяется к краю 4 выборок, то один деблокирующий фильтр выбирается среди сильного фильтра и слабого фильтра. Но если определено, что деблокирующая фильтрация не применяется к краю 4 выборок, то процесс деблокирующей фильтрации завершается для этого края. Как показано на Фиг. 5, для каждого края 4 выборок выбирается некоторый фильтр:
Если следующие условия выполнены, то выбирается сильный фильтр.
или
C
B
В противном случае, выбирается слабый фильтр. Значение переменной t определяется на основе граничного параметра квантования QP.
Затем, если деблокирующий фильтр выбран, то этот край фильтруется с использованием этого деблокирующего фильтра (S140).
Сильный фильтр осуществляется следующим образом:
Слабый фильтр осуществляется следующим образом:
c
B
B
c
Переменные Р и t определяются посредством граничного параметра квантования QP и монотонно возрастают с возрастанием граничного параметра квантования QP. Связь между парами Р и t и этим параметром квантования задается как таблица.
B
P
c
B
Граничный параметр квантования QP является средним из параметра квантования QP Р блока, содержащего выборку рО, и QPQ Q блока, содержащего выборку qO. Это среднее является округленным значением. Если по меньшей мере один из Р блока и Q блока является внутрикодированным, то параметр t возрастает на 0, 1 или 2, когда QP возрастает на 1.
Теперь описывается процесс адаптивного к выборке смещения согласно данному изобретению. Процесс адаптивного к выборке смещения выполняется посредством блока 1100 пост-обработки устройства 1000 кодирования кинофильма, показанного на Фиг. 1, и посредством блока 2070 пост-обработки устройства декодирования кинофильма, показанного на Фиг. 2.
Фиг. 6 является концептуальной схемой, иллюстрирующей способ разделения некоторого изображения на множественные области согласно данному изобретению. Тип SAO задается на область. Как показано на Фиг. 6, эти области генерируются посредством разделения изображения в структуре дерева квадрантов. Этой областью может быть LCU. Имеются три вида типов SAO. Если тип SAO является первым типом (OFF) (выключено), то процесс SAO не выполняется на соответствующей области. Если тип SAO указывает смещение полосы (ВО), то смещение полосы добавляется к каждой выборке в пределах этой области. Если тип SAO указывает краевое смещение (ЕО), то краевое смещение, определенное посредством краевого индекса, добавляется к каждой выборке в пределах этой области.
Фиг. 7 является концептуальной схемой, иллюстрирующей краевые типы согласно данному изобретению.
Как показано на Фиг. 7, существуют четыре краевых типа в краевом смещении. Краевой тип определяется положениями соседних выборок, используемых для вывода краевого индекса. Первый краевой тип указывает идентификатор краевого типа в 0 градусов, второй краевой тип указывает идентификатор краевого типа в 90 градусов, третий краевой тип указывает идентификатор краевого типа в 135 градусов и четвертый краевой тип указывает идентификатор краевого типа в 90 градусов. Выборка С представляет собой текущую выборку, а две заштрихованные выборки представляют собой две соседние выборки, определенные посредством этого краевого типа.
Процесс адаптивного к выборке смещения выполняется следующим образом, когда тип адаптивного к выборке смещения указывает один из типов краевого смещения, согласно данному изобретению.
Сначала краевой индекс выводится с использованием различий между текущей выборкой и двумя соседними выборками. Эти две соседние выборки определяются посредством типа краевого смещения некоторой текущей области. Этот краевой индекс выводится на выборку в пределах этой текущей области. Этот краевой индекс выводится следующим образом:
Функция sign3(y) равна 1, если y является большим чем 0, функция sign3(y) равна -1, если y является меньшим чем 0, и sign3(y) равна 0, если y равно 0.
Переменная recPicture(x) представляет текущее значение выборки, переменные recPicture(x-1) и recPicture(x+1) представляют два значения соседних выборок. Эти две соседние выборки определяются посредством типа краевого смещения текущей области.
Фиг. 8 является концептуальной диаграммой, иллюстрирующей краевые индексы согласно данному изобретению. На Фиг. 8 горизонтальная ось представляет положение выборки, а вертикальная ось представляет значение выборки.
Как показано на Фиг. 8, краевой индекс устанавливается на 0, если оба из двух значений соседних выборок являются большими, чем значение текущей выборки, краевой индекс устанавливается на 1, если одно из двух значений соседних выборок является большим, чем текущая выборка, а другое равно значению текущей выборки, краевой индекс устанавливается на 2, если одно из двух значений соседних выборок является большим, чем текущая выборка, а другое является меньшим, чем значение текущей выборки, краевой индекс устанавливается на 3, если одно из двух значений соседних выборок является меньшим, чем текущая выборка, а другое равно значению текущей выборке, и краевой индекс устанавливается на 4, если оба из двух значений соседних выборок являются меньшими, чем текущая выборка. Краевой индекс также устанавливается на 2, если оба из двух значений соседних выборок равны текущей выборке.
Между тем, когда одна из двух соседних выборок принадлежит к другому LCU, краевое смещение может не применяться к текущей выборке, или другая соседняя выборка в пределах текущего LCU используется вместо соседней выборки, принадлежащей к другому LCU.
Затем краевое смещение добавляется к текущей выборке следующим образом:
Это краевое смещение определяется на основе краевого индекса. В устройстве 2000 декодирования кинофильма, это краевое смещение получается из битового потока, передаваемого от устройства 1000 кодирования кинофильма. Устройство 1000 кодирования кинофильма может передать 4 или 5 краевых смещений. Если передаются 4 краевых смещения, то эти 4 краевые смещения соответствуют краевым индексам 0, 1, 3, 4, соответственно, это краевое смещение считается равным 0.
Краевое смещение может быть положительным значением или отрицательным значением. Количество битов, необходимых для передачи 4 краевых смещений, возрастает с увеличением этой области. Способ уменьшения количества битов согласно данному изобретению состоит в нижеследующем.
ПЕРВЫЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ
Положительное смещение применяется к краевому индексу 0 , а отрицательное смещение применяется к краевому индексу 4. А именно, только абсолютные значения этих двух краевых смещений передаются для уменьшения количества битов. Для краевых индексов 1 и 3, передаются это абсолютное значение и знак краевого смещения.
ВТОРОЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ
Положительное смещение применяется к краевым индексам 0 и 1, а отрицательное смещение применяется к краевым индексам 3 и 4. А именно, только абсолютные значения этих четырех краевых смещений передаются для уменьшения количества битов.
Кроме того, это смещение не добавляется к текущей выборке, если различие между текущей выборкой и соседней выборкой является большим, чем некоторый порог. Например, если абсолютное значение этого различия между текущей выборкой и соседней выборкой является большим, чем этот порог, то значение смещения устанавливается на 0. В противном случае, используется отрицательное смещение или положительное смещение.
Хотя данное изобретение было показано и описано со ссылкой на некоторые примерные варианты его осуществления, для специалистов в данной области техники будет ясно, что различные изменения в форме и подробностях могут быть сделаны в них, не выходя за рамки сущности и объема данного изобретения, заданного посредством прилагаемой формулы изобретения.