СПОСОБ И СИСТЕМА ДЛЯ ОБРАБОТКИ ИЗОБРАЖЕНИЯ
METHOD AND SYSTEM FOR IMAGE PROCESSING

Область техники
Настоящее изобретение относится, в общем, к области цифровой обработки изображений и видео и, в частности, к повышению разрешения изображения и уровня детализации входного изображения.
Уровень техники
Устройства отображения с разрешением сверхвысокой четкости имеют разрешение экрана, которое в два раза превышает разрешение большей части существующего видеоконтента. Конвейер обработки видео (фиг. 1) для устройства отображения сверхвысокой четкости обычно состоит из приемника 101, который принимает видеосигнал 102 высокой четкости, передаваемый в устройство 103 масштабирования, которое преобразует его в видеосигнал 104 сверхвысокой четкости, передаваемый в конечном итоге на дисплей 105 сверхвысокой четкости, как показано на фиг. 1. Видео сверхвысокой четкости, полученное из устройства 103 масштабирования, реализующего известные методики повышения разрешения, обычно слабо представляет детали высокой частоты по сравнению с видео сверхвысокой четкости, снятым видеокамерой сверхвысокой четкости. Для решения этой проблемы были разработаны специальные методики повышения разрешения изображения. На фиг. 2 показан подход для повышения разрешения изображения с использованием информации из нескольких последовательных кадров низкого разрешения для реконструкции на кадре высокого разрешения. На фиг. 3 показан тот же подход в применении к контенту низкого разрешения из цифровых видеокамер. В документах US 6434280, US 8306121, US 20130114892, US 7373019 описан подход с применением нескольких кадров низкого разрешения.
В US 6434280 описана система формирования мозаичного изображения с повышенным сверхвысоким разрешением (сверхразрешением), которая формирует мозаичное изображение с повышенным сверхвысоким разрешением, используя множество кадров изображения, где каждый кадр представляет часть сцены для выходного изображения. Описанная система состоит из генератора мозаичного изображения и генератора сверхвысокого разрешения. Первая часть формирует из кадров изображения данные мозаичного изображения, которые представлены мозаичным изображением. Вторая часть берет данные мозаичного изображения и данные изображения, представленные в кадрах, и выдает мозаичное изображение с повышенным сверхвысоким разрешением. В процессе формирования мозаичного изображения с повышенным сверхвысоким разрешением мозаичное изображение делится на множество патчей (фрагментов изображения) (каждый патч связан, по меньшей мере, с одним кадром изображения), и выполняется операция сверхвысокого разрешения в связи с этим патчем для формирования мозаичного изображения с повышенным сверхвысоким разрешением.
В US 8306121 описан другой способ формирования изображения сверхвысокого разрешения с применением последовательности изображений низкого разрешения. Способ содержит генератор оцененного изображения высокого разрешения, модуль оценки движения между оцененным изображением высокого разрешения и сравнения изображений низкого разрешения из этой последовательности, проектор по методу обратной проекции с компенсацией движения и проектор без компенсации движения, который выдает требуемое изображение сверхвысокого разрешения. Кроме того, система формирования содержит интерфейсы ввода и вывода.
В US 20130114892 предусмотрен ввод, по меньшей мере, двух изображений, представленных цифровыми выборками, и вывод изображения сверхвысокого разрешения, которое имеет более высокое разрешение, чем, по меньшей мере, одно из, по меньшей мере, двух входных изображений. В этом способе сначала получают модель искажения для всех входных изображений, затем каждое изображение регистрируют на эталонной сетке для конечного разрешения. После этого каждое изображение деформируют в деформированное изображение согласно модели искажения и вычисляют искаженные координаты соответственно для цифровых выборок входных изображений. Во время этой процедуры определяют вес вклада каждой цифровой выборки для каждого входного изображения, и этот вес применяют в зависимости от искаженных координат цифровой выборки. Конечное разрешение получают путем объединения взвешенных цифровых выборок в их положениях.
В US 7373019 предложена система формирования изображения с повышенным сверхвысоким разрешением из изображения, представляющего сцену, которая содержит основное изображение, и, по меньшей мере, одно другое изображение. Система состоит из генератора исходного изображения с повышенным сверхвысоким разрешением, модуля проектора изображения и модуля генератора обновления оценки изображения с повышенным сверхвысоким разрешением. Модуль генератора исходного изображения с повышенным сверхвысоким разрешением формирует оценку изображения с повышенным сверхвысоким разрешением для изображения сцены, модуль проектора изображения избирательно использует операторы деформации, размывания и прореживания, применяемые к другим изображениям, для оценки изображения с повышенным сверхвысоким разрешением, и генератор обновления оценки изображения с повышенным сверхвысоким разрешением использует предыдущие оценки изображения с повышенным сверхвысоким разрешением для формирования окончательной обновленной оценки изображения с повышенным сверхвысоким разрешением.
В другом известном подходе предлагается создавать кадр высокого разрешения, используя всего один кадр низкого разрешения. Это можно сделать без дополнительного обучения или с использованием некоторой предварительно обученной базы данных.
Способы без дополнительного обучения могут быть основаны на репроекции, например, как описано в JPA 2008-140012, где предлагается использовать метод Гаусса-Зейделя для вычисления значения обратной связи, добавляемого к изображению низкого разрешения, разрешение которого увеличивается каким-либо известным способом.
В US 20130044965 раскрыты способ и система сверхвысокого разрешения с синтезом текстуры, который не зависит от какой-либо дополнительной информации из базы данных. Всю информацию для повышающей дискретизации изображения получают из самого изображения. Сначала увеличивают разрешение изображения, затем определяют, имеет ли изображение с повышенным разрешением какие-либо гладкие области. Система усиливает края изображения с повышенным разрешением, и если обнаруживается гладкий участок, обходит его краем. В завершение, генерируется текстура для улучшенного и неулучшенного изображений с повышенной дискретизацией. Текстура покрывает гладкие области и синтезируется с применением входного изображения в качестве примера текстуры.
Способы, включающие в себя предварительно обученную базу данных для хранения модели текстуры, можно включить в состав конвейера обработки видео дисплея сверхвысокой четкости, как показано на фиг. 4. Примеры способов сверхвысокого разрешения с использованием предварительно обученной базы данных описаны в US 20130156345 и US 6766067.
В US 20130156345 предложено использовать множество кадров, отснятых с высокой частотой кадров, для реконструкции кадра с высоким разрешением. После слияния этих кадров осуществляется улучшение качества изображения с использованием нелинейного фильтра, реализованного в форме предварительно обученной нейронной сети. Автор предложил использовать этот способ для мобильного приложения в случае съемки увеличенных фрагментов. Нейронная сеть обучается для каждой конкретной модели камеры с использованием тестового изображения, включающего в себя радиальные и синусоидальные испытательные таблицы.
В US 8655108 B2 масштабирование изображения осуществляется с использованием группы фильтров на основании набора данных низкого разрешения и набора данных высокого разрешения. Фильтры имеют форму регрессионных коэффициентов, полученных для подпространств окрестностей точки обучающих изображений, при этом классификация окрестностей выполняется с помощью алгоритма CART (дерево классификации и регрессии) в виде дерева решений, и в качестве предсказателей принимаются нормированные значения пикселей из окрестности 3×3 изображения низкого разрешения. Модель регрессии создается для каждого класса, и окрестность 2×2 изображения высокого разрешения обрабатывается как выход.
Прототипом настоящего изобретения является решение, описанное в US 6766067. На первом этапе этого алгоритма осуществляют первоначальную интерполяцию изображения. Полученное изображение делят на перекрывающиеся патчи. После этого все операции выполняются для каждого патча в порядке растрового сканирования: система генерирует масштабированный среднечастотный патч, используя данный патч низкого разрешения, затем она моделирует вектор поиска по пикселям масштабированного среднечастотного входного патча, а также по перекрывающимся высокочастотным патчам, которые были сформированы ранее. Система находит в ранее заполненной базе данных наиболее близкий вектор к данному вектору поиска и соответствующий высокочастотный выходной патч. На последнем этапе алгоритма выполняется интерполяция высокочастотного выходного патча с учетом интерполированного патча низкого разрешения и объединение всех патчей в одно изображение сверхвысокого разрешения.
Способы многокадрового сверхвысокого разрешения обладают следующими недостатками:
- очень высокая чувствительность к точности оценки движения субпикселя;
- очень высокая сложность аппаратных средств (из-за необходимости сохранения нескольких кадров и выполнения точной оценки движения между этими кадрами);
- высокая чувствительность к захвату изображения и модели деградации (типа функции рассеяния точки, параметров размытости, вызванной движением, уровня шума).
Известным недостатком способов на основе реконструкции являются дефекты структурного типа.
В способах типа US 8655108 B2 рассматривается очень малая окрестность входного изображения, что приводит к слабому отличию текстуры в случае достаточного количества подпространств (например, 8, как предложено в наилучшем способе реализации).
Известный основанный на обучении способ, описанный в US 6766067, позволяет обеспечить результаты высокого качества, однако имеет следующие проблемы:
- для каждого входного патча в качестве сгенерированной текстуры используется всего один среднечастотный патч, что обуславливает линейное соотношение между качеством синтезированной текстуры и количеством записей в базе данных, следовательно, очень высокую сложность аппаратных средств;
- для подавления блочных дефектов способ должен быть реализован с использованием перекрывающихся блоков, что повышает сложность аппаратных средств в несколько раз;
- способ можно обучать только для одной кратности увеличения;
- способ всегда дает точно один и тот же результат для одного и того же патча изображения низкого разрешения, что может приводить к дефектам структурного типа, если текстура исходного изображения низкого разрешения недостаточно разнообразна.
Сущность изобретения
Согласно первому аспекту настоящего изобретения предложен способ обработки изображения с использованием первой и второй базы данных патчей, причем количество патчей в первой базе данных равно количеству патчей во второй базе данных, причем способ содержит этапы, на которых:
- осуществляют низкочастотную или полосовую фильтрацию исходного изображения;
- делят отфильтрованное изображение на блоки такого же размера, как размер патчей в первой базе данных патчей;
- генерируют текстуру для каждого блока, выполняя следующие этапы:
- выполняют предварительную обработку;
- для каждого патча во второй базе данных вычисляют коэффициенты проекции как сумму произведений пикселей внутри блока предварительно обработанного изображения и соответствующих значений пикселей патча из первой базы данных;
- вычисляют пиксели блока выходной текстуры как сумму произведений коэффициентов проекции и патчей из второй базы данных;
- выполняют нормализацию текстуры;
- осуществляют постобработку сгенерированной текстуры; и
- добавляют постобработанную текстуру к исходным значениям пикселей внутри блока.
Согласно одному варианту осуществления настоящего изобретения первая база данных содержит ортонормированный базис патчей, полученных из обучающих патчей отфильтрованного обучающего изображения, и вторая база данных содержит ортонормированный базис патчей, полученных из обучающих патчей изображения текстуры, полученной путем вычитания отфильтрованного обучающего изображения из обучающего изображения.
Согласно другому варианту осуществления настоящего изобретения при предварительной обработке осуществляют удаление тренда, включающее в себя вычитание среднего значения яркости блока, или вычитание линейной или квадратичной регрессионной модели, описывающей здесь упомянутый входной патч.
Согласно другому варианту осуществления настоящего изобретения предварительная обработка содержит удаление тренда, содержащее этапы, на которых:
- вычисляют первого кандидата предварительно обработанного блока путем вычитания из каждого пикселя среднего строчного значения;
- вычисляют второго кандидата предварительно обработанного блока путем вычитания из каждого пикселя среднего постолбцового значения;
- вычисляют третьего кандидата предварительно обработанного блока путем вычитания из каждого пикселя среднего значения для пикселей, лежащих на одной и той же главной диагонали;
- вычисляют четвертого кандидата предварительно обработанного блока путем вычитания из каждого пикселя среднего значения для пикселей, лежащих на одной и той же дополнительной диагонали;
- выбирают из первого, второго, третьего и четвертого кандидатов предварительно обработанного блока кандидата, имеющего наименьшее расхождение или стандартное отклонение, в качестве целевого предварительно обработанного блока;
- вычисляют отношение между расхождением или стандартным отклонением целевого предварительно обработанного блока и расхождением или стандартным отклонением исходного блока;
- вычисляют коэффициент смешивания в качестве убывающей функции этого отношения, которая принимает значение между единицей и нулем;
- вычисляют окончательные значения предварительно обработанных пикселей как сумму произведения коэффициента смешивания и пикселей целевого предварительно обработанного блока и произведения «один минус коэффициент смешивания» (1-коэффициент смешивания) и пикселей исходного блока.
Согласно другому варианту осуществления настоящего изобретения предварительно обработанный пиксель в рамках предварительной обработки вычисляют как сумму или произведение с пикселем из некоторой дополнительной структуры данных, имеющей такой же размер, как изображение.
Согласно другому варианту осуществления настоящего изобретения дополнительную структуру данных формируют как гладкую функцию нескольких случайных или псевдослучайных (в зависимости от положения блока) аргументов.
Согласно другому варианту осуществления настоящего изобретения элементы дополнительной структуры данных формируют как
<mrow><msub><mi>D</mi><mrow><mi>x</mi><mi>y</mi></mrow></msub><mo>=</mo><msub><mi>c</mi><mn>1</mn></msub><mo>⋅</mo><msup><mi>e</mi><mrow><mo>−</mo><mfrac><mrow><msup><mrow><mo stretchy="false">(</mo><mo stretchy="false">(</mo><mi>x</mi><mi>%</mi><mi>p</mi><mo stretchy="false">)</mo><mtext> </mtext><mo>−</mo><msub><mi>X</mi><mn>1</mn></msub><mo stretchy="false">)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo stretchy="false">(</mo><mo stretchy="false">(</mo><mi>y</mi><mi>%</mi><mi>q</mi><mo stretchy="false">)</mo><mo>−</mo><msub><mi>Y</mi><mn>1</mn></msub><mo stretchy="false">)</mo></mrow><mn>2</mn></msup></mrow><mrow><msubsup><mi>σ</mi><mn>1</mn><mn>2</mn></msubsup></mrow></mfrac></mrow></msup><mo>+</mo><msub><mi>c</mi><mn>2</mn></msub><mo>⋅</mo><msup><mi>e</mi><mrow><mo>−</mo><mfrac><mrow><msup><mrow><mo stretchy="false">(</mo><mo stretchy="false">(</mo><mi>x</mi><mi>%</mi><mi>p</mi><mo stretchy="false">)</mo><mo>−</mo><msub><mi>X</mi><mn>2</mn></msub><mo stretchy="false">)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo stretchy="false">(</mo><mo stretchy="false">(</mo><mi>y</mi><mi>%</mi><mi>q</mi><mo stretchy="false">)</mo><mo>−</mo><msub><mi>Y</mi><mn>2</mn></msub><mo stretchy="false">)</mo></mrow><mn>2</mn></msup></mrow><mrow><msubsup><mi>σ</mi><mn>2</mn><mn>2</mn></msubsup></mrow></mfrac></mrow></msup></mrow>
,
1
2
1
1
2
2
где x, y - положение пикселя на строке и в столбце внутри изображения, p - ширина блока, q - высота блока, и c, c, , , X, Y, X, Y - псевдослучайные числа, зависящие от положения на строке floor(y/q) и положения в столбце floor(x/p) текущего блока пикселей.
ij
Согласно другому варианту осуществления настоящего изобретения нормализацию текстуры вычисляют как  или , где f(·) - некая неубывающая функция, принимающая положительные значения на правом полуинтервале, и R - значения пикселей текстуры.
k
k
Согласно другому варианту осуществления настоящего изобретения нормализацию текстуры вычисляют как  или , где  или , где N и M - некие положительные числа, и f() - некая неубывающая функция, принимающая положительные значения на правом полуинтервале, b - коэффициенты проекции, и T - высокочастотные патчи из высокочастотной базы данных.
Согласно другому варианту осуществления настоящего изобретения выполнение постобработки сгенерированной текстуры содержит этапы, на которых:
- устанавливают попиксельный коэффициент усиления для каждого пикселя в текущем блоке равным единице;
- вычисляют для каждого блока норму сгенерированной текстуры и нормы текстур, сгенерированных в соседних блоках: верхнем слева, верхнем, верхнем справа, левом, правом, нижнем слева, нижнем справа и нижнем;
- для каждого соседнего блока, который имеет норму текстуры ниже предварительно заданного порога, производят обновление коэффициентов усиления в текущих блоках, содержащее этапы, на которых:
- вычисляют среднее значение яркости соседнего блока входного изображения;
- вычисляют медианное значение яркости соседнего блока входного изображения;
- для каждого пикселя текущего блока, если он имеет абсолютное отличие от среднего значения яркости ниже первого предварительно заданного порога или абсолютное отличие от медианного значения яркости ниже второго предварительно заданного порога, вычисляют заново попиксельный коэффициент усиления как минимальное значение предыдущего значения попиксельного коэффициента усиления и отношения между нормой текстуры соответствующего соседнего блока и нормой текстуры исходного блока;
- вычисляют заново каждый пиксель текстуры в текущем блоке путем умножения на соответствующий попиксельный коэффициент усиления.
Согласно другому варианту осуществления настоящего изобретения выполнение постобработки сгенерированной текстуры содержит этапы, на которых:
- устанавливают попиксельный коэффициент усиления каждого пикселя в текущем блоке равным единице;
- вычисляют для каждого блока норму сгенерированной текстуры и нормы текстур, сгенерированных в соседних блоках: верхнем слева, верхнем, верхнем справа, левом, правом, нижнем слева, нижнем справа и нижнем;
- для каждого соседнего блока, который имеет норму текстуры ниже предварительно заданного порога, производят обновление коэффициентов усиления в текущем блоке, содержащее этапы, на которых:
- вычисляют средние значения соседнего блока входного изображения в каждом цветовом канале (RGB, YCbCr или другом цветовом пространстве);
- вычисляют медианные значения соседнего входного блока изображения в каждом цветовом канале (RGB, YCbCr или другом цветовом пространстве);
- для каждого пикселя текущего блока вычисляют первое тестовое значение как некую монотонно возрастающую функцию трех аргументов абсолютных значений разностей значений пикселей входного изображения и соответствующих средних значений из соседнего блока в каждом цветовом канале;
- для каждого пикселя текущего блока вычисляют второе тестовое значение как некую монотонно возрастающую функцию трех аргументов абсолютных значений разностей значений пикселей входного изображения и соответствующих медианных значений из соседнего блока в каждом цветовом канале;
- для каждого пикселя текущего блока, если его первое тестовое значение ниже первого предварительно заданного порога или второе тестовое значение ниже второго предварительно заданного порога, вычисляют заново попиксельный коэффициент усиления как минимальное значение предыдущего значения попиксельного коэффициента усиления и отношения между нормой текстуры соответствующего соседнего блока и нормой текстуры исходного блока;
- вычисляют заново каждый пиксель текстуры в текущем блоке путем умножения на соответствующий попиксельный коэффициент усиления.
Согласно другому варианту осуществления настоящего изобретения выполнение постобработки сгенерированной текстуры содержит этапы, на которых:
- для каждого блока (который может иметь размер, отличный от размера блока, использованного для генерации текстуры) выполняют сегментацию на k классов;
- для каждого класса вычисляют среднее абсолютное значение сгенерированной текстуры;
- для каждого пикселя внутри блока вычисляют отношение между средним абсолютным значением сгенерированной текстуры в некоторой небольшой окрестности и средним абсолютным значением соответствующего сегмента;
- вычисляют попиксельный коэффициент усиления, который принимает нулевое или очень малое значение, если упомянутое отношение очень большое, и единичное значение, если это отношение меньше единицы или очень близко к ней;
- вычисляют заново каждый пиксель текстуры в текущем блоке путем умножения на соответствующий попиксельный коэффициент усиления.
Согласно другому варианту осуществления настоящего изобретения в упомянутом способе используют перекрывающееся расположение блоков.
Согласно другому варианту осуществления настоящего изобретения вторая база данных состоит из патчей, заполняющих только неперекрывающуюся часть входного блока.
Согласно другому варианту осуществления настоящего изобретения текстуру, сгенерированную для соседних блоков, умножают на некую функцию смешивания координат пикселей внутри блока.
Согласно другому варианту осуществления настоящего изобретения текстуру, сгенерированную для соседних блоков, сшивают по пути минимальной энергии.
Согласно другому варианту осуществления настоящего изобретения блоки имеют прямоугольную форму.
Согласно другому варианту осуществления настоящего изобретения все блоки имеют одинаковую форму и образуют плоскую мозаичную фрагментацию.
Согласно другому варианту осуществления настоящего изобретения входное изображение разделяют на блоки двух или нескольких различных форм и/или размеров и для каждой формы и/или размера блока сохраняют отдельные первую и вторую базы данных.
Согласно второму аспекту настоящего изобретения предложен способ обработки изображения с использованием первой и второй базы данных патчей, причем количество патчей в первой базе данных равно количеству патчей во второй базе данных, причем способ содержит этапы, на которых:
- осуществляют низкочастотную или полосовую фильтрацию входного изображения;
- делят отфильтрованное изображение на блоки такого же размера, как размер патчей в первой базе данных патчей;
- генерируют текстуру для каждого блока, выполняя следующие этапы:
- выполняют предварительную обработку;
- для каждого патча во второй базе данных вычисляют коэффициенты проекции как сумму произведений пикселей внутри блока предварительно обработанного изображения и соответствующих значений пикселей патча из первой базы данных;
- вычисляют пиксели выходного блока текстуры как сумму коэффициентов проекции и патчей из второй базы данных;
- выполняют нормализацию текстуры;
- интерполируют входное изображение посредством метода двухмерной интерполяции;
- выполняют постобработку сгенерированной нормализованной текстуры; и
- получают изображение сверхвысокого разрешения путем добавления постобработанной текстуры к интерполированному изображению.
Согласно одному варианту осуществления настоящего изобретения размер патча первой базы данных равен размеру патча второй базы данных, и интерполяция входного изображения содержит интерполяцию входного изображения до размера, равного размеру требуемого сверхвысокого разрешения.
Согласно другому варианту осуществления настоящего изобретения горизонтальный размер патча из первой базы данных в m раз меньше, чем горизонтальный размер патчей из второй базы данных, и вертикальный размер патча из первой базы данных в n раз меньше, чем вертикальный размер патчей из второй базы данных, и:
- интерполяция входного изображения содержит интерполяцию каждого блока входного изображения горизонтально в m раз и вертикально в n раз больше;
- добавление постобработанной текстуры к интерполированному изображению содержит добавление постобработанной текстуры к каждому интерполированному блоку входного изображения; и
- изображение сверхвысокого разрешения имеет горизонтальный размер в m раз больше, чем входное изображение, и вертикальный размер в n раз больше, чем входное изображение.
Согласно третьему аспекту настоящего изобретения предложен способ многомасштабной обработки изображения с использованием, по меньшей мере, двух масштабов, каждый из которых использует первую и вторую базу данных патчей, причем количество патчей в первой базе данных равно количеству патчей во второй базе данных, причем способ содержит этапы, на которых:
- создают слой текстуры для каждого масштаба, выполняя следующие этапы:
- осуществляют низкочастотную или полосовую фильтрацию входного изображения;
- делят отфильтрованное изображение на блоки такой же формы и размера, как форма и размер патчей в первой базе данных данного масштаба;
- генерируют текстуру для каждого блока, выполняя следующие этапы:
- выполняют предварительную обработку;
- для каждого патча во второй базе данных вычисляют коэффициенты проекции как сумму произведений пикселей внутри блока предварительно обработанного изображения и соответствующих значений пикселей патча из первой базы данных;
- вычисляют пиксели выходного блока текстуры как сумму коэффициентов проекции и патчей из второй базы данных;
- выполняют нормализацию текстуры;
- составляют результирующую текстуру из слоев текстуры, сгенерированных для множества масштабов;
- осуществляют постобработку результирующей текстуры; и
- добавляют постобработанную текстуру к исходным значениям пикселей внутри блока.
Согласно одному варианту осуществления настоящего изобретения первая база данных каждого масштаба содержит ортонормированный базис патчей, полученных из обучающих патчей отфильтрованного обучающего изображения, и вторая база данных каждого масштаба содержит ортонормированный базис патчей, полученных из обучающих патчей изображения текстуры, полученного путем вычитания отфильтрованного обучающего изображения из обучающего изображения, и фильтры, используемые для получения отфильтрованного обучающего изображения в каждом масштабе представляют собой некоторые низкочастотные и полосовые фильтры, которые могут быть различными для каждого масштаба.
Согласно другому варианту осуществления настоящего изобретения составление результирующей текстуры из слоев текстуры, сгенерированных для, по меньшей мере, двух масштабов, вычисляют как взвешенную сумму пикселей текстуры, вычисленную в каждом масштабе.
Согласно другому варианту осуществления настоящего изобретения составление результирующей текстуры из слоев текстуры, сгенерированных для, по меньшей мере, двух масштабов, содержит этапы, на которых:
- вычисляют для каждого блока норму сгенерированной текстуры в наименьшем масштабе (масштабе, который имеет полосовую или низкочастотную фильтрацию, поддерживающую наивысший диапазон частоты среди всех других масштабов);
- вычисляют коэффициент усиления как некую монотонную функцию нормы текстуры блока в наименьшем масштабе, которая принимает малое или нулевое значение, когда норма текстуры мала (ниже порога), затем постепенно возрастает и принимает некоторое большее предварительно заданное значение, если норма текстуры выше предварительно заданного порога;
- вычисляют заново слои текстур в каждом масштабе, за исключением наименьшего, путем умножения каждого блока текстуры на коэффициент усиления.
Согласно четвертому аспекту настоящего изобретения предложен способ многомасштабной обработки изображения с использованием, по меньшей мере, двух масштабов, каждый из которых использует первую и вторую базу данных патчей, причем количество патчей в первой базе данных равно количеству патчей во второй базе данных, причем способ содержит этапы, на которых:
- создают слой текстуры для каждого масштаба, выполняя следующие этапы:
- осуществляют низкочастотную или полосовую фильтрацию входного изображения;
- делят отфильтрованное изображение на блоки такой же формы и размера, как форма и размер патчей в первой базе данных патчей данного масштаба;
- генерируют текстуру для каждого блока, выполняя следующие этапы:
- выполняют предварительную обработку для каждого патча во второй базе данных путем вычисления коэффициентов проекции как суммы произведений пикселей внутри блока предварительно обработанного изображения и соответствующих значений пикселей патча из первой базы данных;
- вычисляют пиксели выходного блока текстуры как сумму коэффициентов проекции и патчей из второй базы данных;
- выполняют нормализацию текстуры;
- интерполируют входное изображение, используя метод двухмерной интерполяции;
- составляют результирующую текстуру из слоев текстуры, сгенерированных для, по меньшей мере, двух масштабов;
- выполняют постобработку результирующей текстуры;
- создают изображение сверхвысокого разрешения путем добавления постобработанной текстуры к интерполированному изображению.
Согласно одному варианту осуществления настоящего изобретения размер патча первой базы данных равен размеру патча второй базы данных, и интерполяция входного изображения содержит интерполяцию входного изображения до размера, равного размеру требуемого изображения сверхвысокого разрешения.
Согласно другому варианту осуществления настоящего изобретения интерполяция входного изображения содержит интерполяцию каждого блока входного изображения горизонтально в m раз и вертикально в n раз больше; добавление постобработанной текстуры к интерполированному изображению содержит добавление постобработанной текстуры к каждому интерполированному блоку входного изображения; и изображение сверхвысокого разрешения имеет горизонтальный размер в m раз больше, чем входное изображение, и вертикальный размер в n раз больше, чем входное изображение.
Согласно пятому аспекту настоящего изобретения предложена система для обработки изображения, содержащая: блок фильтрации, блок вычисления коэффициентов проекции, банк низкочастотных текстур, банк высокочастотных текстур и блок синтеза текстуры, причем вход системы соединен с входом блока фильтрации, выход блока фильтрации соединен с первым входом блока вычисления коэффициентов проекции, выход первого банка текстур соединен со вторым входом блока вычисления коэффициентов проекции, выход блока вычисления коэффициентов проекции соединен с первым входом блока синтеза текстуры, выход второго банка текстур соединен со вторым входом блока синтеза текстуры, выход блок синтеза текстуры подается на выход системы.
ij
<mrow><msubsup><mi>Е</mi><mrow><mi>i</mi><mi>j</mi></mrow><mi>k</mi></msubsup></mrow>
<mrow><msubsup><mi>Т</mi><mrow><mi>i</mi><mi>j</mi></mrow><mi>k</mi></msubsup></mrow>
Согласно одному варианту осуществления настоящего изобретения блок фильтрации выполнен с возможностью выполнения низкочастотной или полосовой фильтрации; первый банк текстур выполнен с возможностью хранения патчей текстур из первой базы данных; второй банк текстур выполнен с возможностью хранения патчей текстур из второй базы данных; блок вычисления коэффициентов проекции выполнен с возможностью вычисления коэффициентов проекции как , где P - значения пикселей, и
- пиксели патчей из первой базы данных; блок синтеза текстуры выполнен с возможностью вычисления значений пикселей текстур как , где
- пиксели патчей из второй базы данных, и выполнения нормализации текстур.
Технический результат настоящего изобретения заключается в повышении уровня детализации входного изображения или видеопотока, или повышении разрешения входного изображения или видеопотока. В предложенном способе создания изображений сверхвысокого разрешения используются менее сложные аппаратные средства, чем в известных способах, благодаря его следующим свойствам:
- требуется меньший размер базы данных текстур для получения текстуры аналогичного качества;
- не требуется обработка перекрытия благодаря специальной конфигурации базы данных текстур.
Настоящее изобретение имеет следующие отличия от известных решений:
- сгенерированная текстура формируется как линейная комбинация патчей текстуры, хранимых в базе данных высокочастотных патчей, где коэффициенты линейной комбинации оцениваются как корреляция патча из изображения низкого разрешения (после низкочастотной или полосовой фильтрации) с патчами низкого разрешения, хранящимися в базе данных низкочастотных патчей;
- патчи низкого разрешения, хранящиеся в базе данных низкочастотных патчей, образуют ортонормированный базис;
- сгенерированная текстура подвергается процедуре нормализации для подавления слишком высокой текстуры в высококонтрастных областях изображения и для усиления текстуры в низкоконтрастных областях изображения;
- способ может содержать различные масштабы, что позволяет адаптироваться к нескольким кратностям увеличения (например, ×2, ×4) в рамках одного и того же решения;
- способ позволяет повышать разрешение до произвольно выбранного выходного размера, используя специально обученные базы данных низко- и высокочастотных патчей для данной кратности увеличения;
- способ можно объединить со специальным подалгоритмом для усиления разнообразия сгенерированной текстуры, если текстура исходного изображения низкого разрешения недостаточно разнообразна.
Краткое описание чертежей
Фиг. 1. Конвейер обработки в устройстве отображения сверхвысокой четкости.
Фиг. 2. Многокадровое сверхвысокое разрешение в конвейере видеообработки устройства отображения сверхвысокой четкости.
Фиг. 3. Многокадровое сверхвысокое разрешение в конвейере видеообработки цифровой видеокамеры.
Фиг. 4. Конвейер обработки видео, включающий в себя блок моделирования текстуры в устройстве отображения сверхвысокой четкости.
Фиг. 5. Другой возможный конвейер обработки видео, включающий в себя блок моделирования текстуры.
Фиг. 6. База данных низкочастотных патчей (a) и база данных высокочастотных патчей (b) для структуры на фиг. 4.
Фиг. 7. Схема построения изображения сверхвысокого разрешения для структуры на фиг. 4.
Фиг. 8. Параллельная многомасштабная схема построения изображения сверхвысокого разрешения.
Фиг. 9. Последовательная многомасштабная схема построения изображения сверхвысокого разрешения.
Фиг. 10. Схема генерации текстуры для одного патча изображения.
Фиг. 11. Схема генерации текстуры с предварительной обработкой для одного патча изображения.
Фиг. 12. Пиксели базы данных низкочастотных патчей (a), пиксели базы данных высокочастотных патчей (b), пиксели патча обработанного изображения (c) и пиксели сгенерированной текстуры (d).
Фиг. 13. Пиксели дополнительной структуры данных, вносящие дополнительное отличие.
Фиг. 14. База данных низкочастотных патчей (a) и база данных высокочастотных патчей (b) для структуры на фиг. 5.
Фиг. 15. Схема построения изображения сверхвысокого разрешения для структуры на фиг. 5.
Фиг. 16. Система для построения изображения сверхвысокого разрешения с рабочим потоком, параллельным устройству масштабирования.
Фиг. 17. Система для построения изображения сверхвысокого разрешения с постобработкой выхода устройства масштабирования.
Фиг. 18. Многомасштабная система для создания изображения сверхвысокого разрешения с управлением смешиванием, осуществляемым на основе пикселей исходного изображения.
Фиг. 19. Многомасштабная система для создания изображения сверхвысокого разрешения с управлением смешиванием, осуществляемым на основе сгенерированной текстуры.
Фиг. 20. Многомасштабная система для создания изображения сверхвысокого разрешения с управлением смешиванием, осуществляемым на основе коэффициентов проекции.
Фиг. 21. Примерная карта пикселей, образующая вспомогательную структуру данных, вводящую дополнительное отличие.
Фиг. 22. Результаты обработки, полученные с помощью наилучшего варианта реализации.
Фиг. 23. Вариант реализации с предварительной обработкой и постобработкой.
Фиг. 24. Структурные дефекты на линиях: (a) входное изображение, (b) выходная текстура с дефектами.
Фиг. 25. Предварительная обработка блоков: (a) блок с выраженным вертикальным краем; (b) блок с выраженным вертикальным краем после предварительной обработки; (c) блок с выраженным горизонтальным краем; (d) блок с выраженным горизонтальным краем после предварительной обработки; (e) блок с выраженным главным диагональным краем; (f) блок с выраженным главным диагональным краем после предварительной обработки; (g) блок с выраженным дополнительным диагональным краем; (h) блок с выраженным дополнительным диагональным краем после предварительной обработки.
Фиг. 26. Вариант реализации с предварительной обработкой, постобработкой и поблочным управлением усилением.
Фиг. 27. Результаты выборки трехмасштабной реализации с размером блока 16×16: (a) исходное изображение; (b) текстура, сгенерированная для первого масштаба; (c) текстура, сгенерированная для второго масштаба; (d) текстура, сгенерированная для третьего масштаба.
Фиг. 28. Схема трехмасштабной реализации с логикой слияния.
Фиг. 29. Результаты обработки: (a) без логики слияния, (b) с логикой слияния.
Фиг. 30. Окрестность исходного изображения и сгенерированная текстура, используемая для обеспечения защиты на пиксельном уровне.
Фиг. 31. Защита на пиксельном уровне детально: (a) 16 блоков 16×16 исходного изображения, (b) 16 блоков 16×16 сгенерированной текстуры, (c) 16 блоков 16×16 сгенерированной текстуры после защиты на пиксельном уровне.
Фиг. 32. Результаты обработки: (a) без защиты на пиксельном уровне, (b) текстурированное изображение, полученное из исходного изображения на фиг.27a.
Фиг. 33. Логика защиты на основе сегментации: (a) исходное изображение; (b) текстура, сгенерированная без логики защиты на основе сегментации; (c) текстура, сгенерированная без логики защиты на основе сегментации; (d) сегментация, полученная методом К-средних; (e) сегментация, полученная методом максимизации ожидания.
Фиг. 34. Вариант реализации с перекрывающимся расположением блоков: (a) соседние перекрывающиеся блоки; (b) размер патчей из низкочастотной базы данных; (c) размер патчей из высокочастотной базы данных, заполняющих неперекрывающуюся часть входного блока; (d) другие возможные размеры патчей из высокочастотной базы данных, заполняющих весь входной блок.
Фиг. 35. Возможный способ сшивания текстур, сгенерированных в соседних блоках, в случае перекрывающегося расположения блоков.
Фиг. 36. Вариант реализации с шестиугольными блоками.
Фиг. 37. Вариант реализации с использованием блоков двух различных форм.
Описание вариантов осуществления изобретения
Настоящее изобретение относится, в общем, к области цифровой обработки изображений и, в частности, к повышению разрешения или формированию изображений сверхвысокого разрешения, основанному на обучении. Под изображением сверхвысокого разрешения подразумевается изображение, которое имеет более высокое разрешение (больше пикселей) или больше деталей изображения, чем изображение низкого разрешения, использованное для создания данного изображения сверхвысокого разрешения.
Предложенный способ можно применять в качестве блока постобработки для повышения уровня детализации входного видеосигнала. Например, существует очень мало контента сверхвысокой четкости, однако телевизионные приемники сверхвысокой четкости распространены повсеместно. Поэтому существующий контент стандартной и высокой четкости отображают на дисплее сверхвысокой четкости после увеличения масштаба. Такой контент с увеличенным масштабом имеет существенно более низкий уровень детализации, чем аутентичный контент сверхвысокой четкости. Описанное изобретение можно использовать для повышения уровня детализации путем создания изображения сверхвысокого разрешения типа, показанного на фиг. 4. Приемник 401 принимает и декодирует видеосигнал 402 стандартного или высокого разрешения (поток изображения низкого разрешения), который масштабируется до сверхвысокой четкости в устройстве 403 масштабирования, и видеосигнал 404 сверхвысокой четкости обрабатывается блоком 405 моделирования текстуры, который повышает уровень детализации видеосигнала. Видеосигнал 406 сверхвысокой четкости с повышенным уровнем детализации (поток изображения сверхвысокого разрешения) можно отобразить на дисплее 407 сверхвысокой четкости.
На фиг. 5 показано, как можно использовать предложенное изобретение для создания изображения 507 сверхвысокого разрешения на основе изображения 501 низкого разрешения. Изображение 501 низкого разрешения (например, видеосигнал стандартной или высокой четкости, принятый телевизионным приемником) масштабируется до сверхвысокой четкости в устройстве 502 масштабирования и используется в блоке 503 моделирования текстуры для создания слоя 505 текстуры. Сумма масштабированного изображения 504 и слоя 505 текстуры, вычисленная в блоке 506, образует изображение 507 сверхвысокого разрешения.
Основная идея данного способа состоит в том, чтобы найти соответствие между патчами низкого разрешения из входного изображения в базе данных низкочастотных патчей (фиг. 6-a) и, используя это соответствие, реконструировать патч высокого разрешения выходного изображения из базы данных высокочастотных патчей (фиг. 6-b). Патчи в базах данных высокочастотных и низкочастотных патчей могут иметь одинаковые разрешения, как показано на фиг. 6. На фиг. 7 показана общая схема способа, соответствующего схеме на фиг. 4. Входное изображение 701 низкого разрешения подвергают низкочастотной или полосовой фильтрации 702. Отфильтрованное изображение низкого разрешения делят 703 на неперекрывающиеся или перекрывающиеся блоки. Затем, для каждого блока генерируют 704 текстуру высокого разрешения и добавляют 705 ее к исходному изображению, увеличивают масштаб до высокого разрешения посредством какого-либо обычного метода (например, бикубического). Генерирование текстуры можно выполнить посредством многомасштабной обработки, как показано на фиг. 8-9. Фиг. 8 поясняет схему параллельной многомасштабной обработки, где входное изображение 801 обрабатывается в блоках 802 и 803 генерации текстуры, которые генерируют две различные текстуры 804 и 805, соответственно, которые сливаются и добавляются 806 к исходному изображению. Блоки 802 и 803 генерации текстуры могут иметь различные ядра фильтрации, размеры блока и параметры перекрытия, а также базы данных текстур, используемые для генерации текстуры. Понятно, что при необходимости можно соединить три или более блоков генерации текстуры в параллельную схему. Фиг. 9 поясняет схему последовательной многомасштабной обработки, где входное изображение 901 сначала обрабатывается первым блоком 902 генерации текстуры, который создает промежуточное результирующее изображение 903, которое затем обрабатывается вторым блоком 904 генерации текстуры, который создает конечное результирующее изображение. Блоки 902 и 904 генерации текстуры могут иметь различные ядра фильтрации, размер блока и параметры перекрытия, а также базы данных текстур, используемых для генерации текстуры. Понятно, что при необходимости можно объединить три или более блока генерации текстуры в последовательную схему. Каждый подалгоритм генерации текстуры работает, как описано на фиг.10. Для каждого патча 1001 входного изображения вычисляется 1002 набор коэффициентов проекции в качестве корреляционных коэффициентов патча входного изображения и патчей из первой базы данных, которая содержит низкочастотные патчи, после этого генерируется текстура как линейная комбинация патчей из второй базы данных, которая содержит высокочастотные патчи 1003, и осуществляется нормализация 1004.
Текстуру также можно генерировать, как показано на фиг. 11. Для каждого патча 1101 входного изображения выполняется предварительная обработка 1102, затем вычисляется 1103 набор коэффициентов проекции в качестве корреляционных коэффициентов патча входного изображения и патчей низкого разрешения из первой базы данных, которая содержит низкочастотные патчи, после чего создается текстура путем вычисления 1104 линейной комбинации патчей из второй базы данных, которая содержит высокочастотные патчи, и нормализации 1105.
<mrow><msub><mover accent="true"><mi>R</mi><mo>˜</mo></mover><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>=</mo><mfrac><mrow><msub><mi>R</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub></mrow><mi>n</mi></mfrac></mrow>
<mrow><msub><mover accent="true"><mi>R</mi><mo>˜</mo></mover><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>=</mo><mfrac><mrow><msub><mi>R</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub></mrow><mrow><mi>f</mi><mo stretchy="false">(</mo><mi>n</mi><mo stretchy="false">)</mo></mrow></mfrac></mrow>
В блоках 1002 и 1103 для пикселей патча обработанного изображения (фиг. 12-c) вычисляются коэффициенты проекции на основе пикселей патчей из первой базы данных (фиг. 12-a) как . В блоках 1003 и 1104 пиксели сгенерированной текстуры (фиг. 12-d) вычисляются на основе пикселей патчей из второй базы данных (фиг. 12-b) и коэффициентов проекции как . Нормализацию 1004 и 1105, соответственно, осуществляют как  или , где f(·) - некая неубывающая функция, принимающая положительные значения на правом полуинтервале. Нормализация 1004 и 1105 может быть также осуществлена как
или
, где  или , N и M - некие положительные числа, и f(·) - некая неубывающая функция, принимающая положительные значения на правом полуинтервале.
Предварительная обработка 1102 может включать в себя, хотя и не обязательно, удаление тренда. Удаление тренда может заключаться в простом вычитании среднего значения яркости блока или вычитании линейной или квадратичной регрессионной модели, описывающей упомянутый входной патч. Предварительная обработка может также включать в себя некоторую модификацию входного патча, нацеленную на усиление отличия сгенерированной текстуры в том случае, если текстура исходного изображения имеет малое отличие (похожий край). Предварительно обработанные пиксели исходного патча можно вычислить как попиксельную сумму или попиксельное произведение с пикселями дополнительной структуры данных (фиг. 13), которую можно сформировать как гладкую функцию нескольких случайных или псевдослучайных (в зависимости от положения блока) аргументов.
В случае схемы, показанной на фиг. 5, патчи из первой базы данных, которая содержит низкочастотные патчи (фиг. 14-a), в k раз меньше, чем патчи из второй базы данных, которая содержит высокочастотные патчи (фиг. 14-b), где k - коэффициент масштабирования. На фиг. 15 представлена общая схема способа, соответствующая схеме, показанной на фиг. 5. Входное изображение 1501 низкого разрешения подвергается низкочастотной или полосовой фильтрации 1502. Отфильтрованное изображение низкого разрешения делится 1503 на неперекрывающиеся или перекрывающиеся блоки. Затем для каждого блока генерируется 1504 текстура высокого разрешения, и масштаб блока повышается 1505 в k раз с помощью какого-либо известного способа, например, билинейного или бикубического, или иного известного метода. Текстура добавляется 1506 к каждому блоку увеличенного масштаба исходного изображения для получения изображения сверхвысокого разрешения.
На фиг. 16-18 показана система создания изображения сверхвысокого разрешения. Фиг. 16 описывает систему для создания изображения сверхвысокого разрешения с рабочим потоком, который параллелен устройству масштабирования. Изображение низкого разрешения, полученное из приемника 1601, подается в конвейер 1602 улучшения видеосигнала, который соединен с записывающим портом линейной памяти 1603 и блоком фильтрации 1604. Считывающий порт линейной памяти 1603 соединен с входом устройства 1605 масштабирования, которое выполняет повышающую дискретизацию изображения с помощью какого-либо известного способа. Выход блока 1604 фильтрации соединен с первым входом блока 1607 вычисления коэффициентов проекции. Патчи текстур низкого разрешения из первой базы данных хранятся в банке 1606 низкочастотных текстур, который соединен со вторым входом блока 1607 вычисления коэффициентов проекции. Выход блока 1607 вычисления коэффициентов проекции соединен с первым входом блока 1609 синтеза текстуры. Патчи текстур высокого разрешения из второй базы данных хранятся в банке 1608 высокочастотных текстур, который соединен со вторым входом блока 1609 синтеза текстуры. Выход устройства 1605 масштабирования соединен с первым входом блока 1610 ввода текстуры. Выход блока 1609 синтеза текстуры соединен со вторым входом блока 1610 добавления текстуры. Выход блока 1610 добавления текстуры соединен с устройством 1611 отображения сверхвысокой четкости. Конвейер 1602 улучшения видео выполняет операции, обычно используемые для улучшения качества видео в устройствах отображения, включая, без ограничения перечисленным, уменьшение шума, преобразование частоты кадров, преобразование чересстрочной развертки в прогрессивную, усиление детализации, усиление контраста. Блок 1604 фильтрации выполняет низкочастотную или полосовую фильтрацию согласно этапу 702. Блок 1607 вычисления коэффициентов проекции вычисляет коэффициенты проекции, как на этапе 1002. Блок 1609 синтеза текстуры генерирует текстуру, как на этапе 1003. Блок 1610 добавления текстуры вычисляет коэффициент усиления, умножает его на сгенерированную текстуру и добавляет это произведение к исходному изображению низкого разрешения. Коэффициент усиления может быть постоянным заранее определенным значением или некоторым значением, вычисленным на основании локальных свойств изображения.
Фиг. 17 изображает систему для создания изображения сверхвысокого разрешения с постобработкой выхода устройства масштабирования. Изображение низкого разрешения, полученное из приемника 1701, подается в конвейер 1702 улучшения видео. Конвейер 1702 улучшения видео выполняет операции, обычно используемые для улучшения качества видео в устройствах отображения, включая, без ограничения перечисленным, уменьшение шума, преобразование частоты кадров, преобразование чересстрочной развертки в прогрессивную, усиление детализации, усиление контраста. Выход конвейера 1702 улучшения видео соединен с входом устройства 1703 масштабирования, которое выполняет повышающую дискретизацию изображения, используя какой-либо традиционный способ. Выход устройства 1703 масштабирования соединен с записывающим портом линейной памяти 1704 и блоком фильтрации 1705. Блок 1705 фильтрации выполняет низкочастотную или полосовую фильтрацию согласно этапу 702. Выход блока 1705 фильтрации соединен с первым входом блока 1707 вычисления коэффициентов проекции. Патчи текстур низкого разрешения из первой базы данных хранятся в банке 1706 низкочастотных текстур, который соединен со вторым входом блока 1707 вычисления коэффициентов проекции. Блок 1707 вычисления коэффициентов проекции вычисляет коэффициенты проекции, как на этапе 1002. Выход блока 1707 вычисления коэффициентов проекции соединен с первым входом блока 1709 синтеза текстуры. Патчи текстуры высокого разрешения из второй базы данных хранятся в банке 1708 высокочастотных текстур, который соединен со вторым входом блока 1709 синтеза текстуры. Блок 1709 синтеза текстуры генерирует текстуру, как на этапе 1003. Считывающий порт линейной памяти 1704 соединен с первым входом блока 1710 ввода текстуры. Выход блока 1709 синтеза текстуры соединен со вторым входом блока 1710 добавления текстуры. Блок 1710 добавления текстуры вычисляет коэффициент усиления, умножает его на сгенерированную текстуру и добавляет это произведение к исходному изображению низкого разрешения. Коэффициент усиления может быть постоянным заранее определенным значением или некоторым значением, вычисленным на основании локальных свойств изображения. Выход блока 1710 добавления текстуры соединен с устройством 1711 отображения сверхвысокой четкости.
Фиг. 18 иллюстрирует многомасштабную систему для создания изображения сверхвысокого разрешения. Входной видеопоток 1800 подается на входы первого и второго блоков 1801 и 1802 генерации текстуры, осуществляющих действия, описанные на этапах 801 и 802 параллельной многомасштабной схемы построения изображения сверхвысокого разрешения. Выходы первого и второго блоков 1801 и 1802 генерации текстуры соединены с первым и вторым входами блока 1803 добавления текстуры. Блок 1803 добавления текстуры содержит блок 1804 управления смешиванием, сумматор 1805 и умножители 1806 и 1807. Входной видеопоток подается на вход блока управления смешиванием, к блоку 1804 управления смешиванием. Выход первого блока 1801 генерации текстуры соединен с первым входом умножителя 1806. Выход второго блока 1802 генерации текстуры соединен с первым входом умножителя 1807. Первый выход блока 1804 управления смешиванием соединен со вторым входом умножителя 1806. Второй выход блока 1804 управления смешиванием соединен со вторым входом умножителя 1807. Выход умножителя 1806 соединен с первым входом сумматора 1805. Выход умножителя 1807 соединен со вторым входом сумматора 1805. Видеопоток 1800 подается на третий вход сумматора 1805. Выход этого сумматора соединен с выходом системы для создания изображения сверхвысокого разрешения с управлением смешиванием на основе пикселей исходного изображения. Блок 1804 управления смешиванием вычисляет пропорцию текстуры, сгенерированной первым блоком 1801 генерации текстуры, и пропорцию текстуры, сгенерированной вторым блоком 1802 генерации текстуры, которая передается на выход системы. Эта пропорция вычисляется на основании пикселей исходного изображения, т.е. она может быть пропорциональна среднему абсолютному значению исходных пикселей, отфильтрованных некоторыми предварительно определенными цифровыми фильтрами (типа гауссовых).
1
2
1
2
Фиг. 19 иллюстрирует многомасштабный способ создания изображения сверхвысокого разрешения с управлением смешиванием на основе сгенерированной текстуры. Входной видеопоток 1900 подается на входы первого и второго блоков 1901 и 1902 генерации текстуры, осуществляющих действия, описанные на этапах 801 и 802 параллельной многомасштабной схемы создания изображения сверхвысокого разрешения. Выходы первого и второго блоков 1901 и 1902 генерации текстуры соединены с первым и вторым входами блока 1903 добавления текстуры. Блок 1903 добавления текстуры содержит блок 1904 управления смешиванием, сумматор 1905 и умножители 1906 и 1907. Выход первого блока 1901 генерации текстуры соединен с первым входом умножителя 1906 и первым входом блока 1904 управления смешиванием. Выход второго блока 1902 генерации текстуры соединен с первым входом умножителя 1907 и вторым входом блока 1904 управления смешиванием. Первый выход блока 1904 управления смешиванием соединен со вторым входом умножителя 1906. Второй выход блока 1904 управления смешиванием соединен со вторым входом умножителя 1907. Выход умножителя 1906 соединен с первым входом сумматора 1905. Выход умножителя 1907 соединен со вторым входом сумматора 1905. Видеопоток 1900 подается на третий вход сумматора 1905. Выход сумматора соединен с выходом системы для создания изображения сверхвысокого разрешения с управлением смешиванием, выполняемым на основе сгенерированной текстуры. Блок 1904 управления смешиванием вычисляет пропорцию текстуры, сгенерированной первым блоком 1901 генерации текстуры, и пропорцию текстуры, сгенерированной вторым блоком 1902 генерации текстуры, которая передается на выход системы. Пропорция текстуры, сгенерированной первым блоком 1901 генерации текстуры, которая передается на выход системы, может быть вычислена как  или , где k - некая предварительно определенная константа, R - прямоугольный блок значений текстуры, сгенерированной первым блоком 1901 генерации текстуры, и f(·) - некая неубывающая функция, принимающая положительные значения на правом полуинтервале. Пропорция текстуры, сгенерированной вторым блоком 1902 генерации текстуры, которая передается на выход системы, может быть вычислена как  или , где k - некая предварительно определенная константа, R - прямоугольный блок значений текстуры, сгенерированной вторым блоком 1902 генерации текстуры, и f(·) - некая неубывающая функция, принимающая положительные значения на правом полуинтервале.
Фиг. 20 иллюстрирует многомасштабную систему для создания изображения сверхвысокого разрешения с управлением смешиванием, выполняемым на основе коэффициентов проекции. Входной видеопоток 2000 подается на входы первого и второго блоков 2001 и 2002 генерации текстуры, осуществляющих действия, описанные на этапах 801 и 802 параллельной многомасштабной схемы создания изображения сверхвысокого разрешения. Первый выход первого блока 2001 генерации текстуры соединен с первым входом блока 2003 добавления текстуры. Второй выход первого блока 2001 генерации текстуры соединен с третьим входом блока 2003 ввода текстуры. Первый выход второго блока 2002 генерации текстуры соединен со вторым входом блока 2003 добавления текстуры. Второй выход второго блока 2002 генерации текстуры соединен с четвертым входом блока 2003 добавления текстуры.
Первый блок 2001 генерации текстуры и второй блок 2002 генерации текстуры содержат блок 2008 фильтрации, банк 2009 низкочастотных текстур, содержащий патчи из первой базы данных, блок 2010 вычисления коэффициентов проекции, банк 2011 высокочастотных текстур, содержащий патчи из второй базы данных, и блок 2012 синтеза текстуры. Вход каждого блока генерации текстуры соединен с входом блока 2008 фильтрации. Блок 2008 фильтрации выполняет низкочастотную или полосовую фильтрацию согласно этапу 702. Выход блока 2008 фильтрации соединен с первым входом блока 2010 вычисления коэффициентов проекции. Выход банка 2009 низкочастотных текстур соединен со вторым входом блока 2010 вычисления коэффициентов проекции. Блок 2010 вычисления коэффициентов проекции вычисляет коэффициенты проекции, как на этапе 1002. Выход блока 2010 вычисления коэффициентов проекции соединен с первым входом блока 2012 синтеза текстуры и вторым выходом блока генерации текстуры. Выход банка 2011 высокочастотных текстур соединен со вторым входом блока 2012 синтеза текстуры. Блок 2012 синтеза текстуры генерирует текстуру, как на этапе 1003. Выход блока синтеза текстуры 2012 соединен с первым выходом блока генерации текстуры.
Блок 2003 добавления текстуры содержит блок 2004 управления смешиванием, сумматор 2005 и умножители 2006 и 2007. Первый выход первого блока 2001 генерации текстуры соединен с первым входом умножителя 2006. Первый выход второго блока 2002 генерации текстуры соединен с первым входом умножителя 2007. Второй выход первого блока 2001 генерации текстуры соединен с первым входом блока 2004 управления смешиванием. Второй выход второго блока 2002 генерации текстуры соединен со вторым входом блока 2004 управления смешиванием. Первый выход блока 2004 управления смешиванием соединен со вторым входом умножителя 2006. Второй выход блока 2004 управления смешиванием соединен со вторым входом умножителя 2007. Выход умножителя 2006 соединен с первым входом сумматора 2005. Выход умножителя 2007 соединен со вторым входом сумматора 2005. Видеопоток 2000 подается на третий вход сумматора 2005. Выход этого сумматора соединен с выходом системы для получения изображения сверхвысокого разрешения с управлением смешиванием, выполняемым на основе коэффициентов проекции. Блок 2004 управления смешиванием решает пропорцию текстуры, сгенерированной первым блоком 2001 генерации текстуры, и пропорцию текстуры, сгенерированной вторым блоком 2002 генерации текстуры, которая передается на выход системы.
1
2
k
k
Пропорцию текстуры, сгенерированной первым блоком 2001 генерации текстуры, которая передается на выход системы, можно вычислить как  или , где k - некая заранее определенная константа,  или , где b - коэффициенты проекции, вычисленные в блоке 2010 вычисления коэффициентов проекции первого блока 2001 генерации текстуры, - патчи текстуры высокого разрешения из высокочастотной базы данных, хранящиеся в банке 2011 высокочастотных текстур первого блока 2001 генерации текстуры, N и M - некие положительные числа, и f(·) - некая неубывающая функция, принимающая положительные значения на правом полуинтервале. Пропорцию текстуры, сгенерированной вторым блоком 2002 генерации текстуры, которая передается на выход системы, можно вычислить как  или , где k - некая предварительно определенная константа,  или , где b - коэффициенты проекции, вычисленные в блоке 2010 вычисления коэффициентов проекции второго блока 2002 генерации текстуры,  - патчи текстуры высокого разрешения из высокочастотной базы данных, хранящейся в банке 2011 высокочастотных текстур второго блока 2002 генерации текстуры, N и M - некие положительные числа, и f(·) - некая неубывающая функция, принимающая положительные значения на правом полуинтервале.
<mrow><msubsup><mi>P</mi><mrow><mi>i</mi><mi>j</mi></mrow><mtext>'</mtext></msubsup><mo>=</mo><msub><mi>P</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>⋅</mo><msub><mi>D</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub></mrow>
ij
1
2
1
2
1
1
2
2
Наилучший вариант реализации изобретения можно осуществить в форме двухмасштабного алгоритма, как показано на фиг.8. Генерация текстуры для каждого блока в наилучшем варианте реализации осуществляется согласно фиг.11, где предварительную обработку 1102 пикселя каждого блока вычисляют как
, где D - сумма двух Гауссовых функций , где c, c, σ, σ, X, Y, X, Y - псевдослучайные числа, зависящие от положения текущего блока пикселей на строке и в столбце, и i и j - положение пикселя на строке и в столбце внутри блока. Пример такой дополнительной структуры D данных показан на фиг. 21. Нормализацию в наилучшем варианте реализации выполняют как , где  - некая предварительно определенная константа. Смешивание текстур, полученных в двух масштабах, осуществляется обратно пропорционально нормам текстуры, чтобы обеспечить равное воздействие текстур, сгенерированных в обоих масштабах, что можно описать формулой , где  и  - прямоугольные блоки нормированных значений текстур, сгенерированных двумя масштабами алгоритма, соответственно.
На фиг. 21 показаны результаты моделирования с блоком размером 51×51, неперекрывающимися блоками и количеством записей базы данных, равным 100.
Первую и вторую базы данных, содержащие низкочастотные и высокочастотные патчи, соответственно, применимые для описанного выше процесса генерации текстуры, можно вычислить следующим образом:
low
middle
high
- для эталонного полутонового изображения I вычислить низко-, средне- и высокочастотную компоненты I, I,I как
1
I′=I⊗K
low
2
I=I′⊗K
middle
low
I=I′-I
high
I=I-I′,
1
2
где K - меньшее Гауссово сглаживающее ядро с меньшим параметром стандартного отклонения, а K - большее Гауссово сглаживающее ядро с большим параметром стандартного отклонения.
middle
high
- Выбрать набор Ω из n случайных блоков размера p×q из среднечастотной компоненты I и набор G из блоков с тем же положением из высокочастотной компоненты I:
1
2
n
Ω={S, S, …, S}
1
2
n
G={G, G, …, G}
будет исходным набором среднечастотных компонент n случайно выбранных патчей такого же размера p×q.
k
k
- Растянуть каждый блок пикселей S в вектор из p·q элементов S′.
1
2
n
- Выбрать m≤n векторы из набора Ω′={S′, S′, …, S′} согласно следующей процедуре:
1
1
пусть U=S′
2
S∈Ω\{U1}
1
найти U=argmax|S-U|
k
S∈Ω\{U1, U2, …, Uk-1
k-1
1
2
k-1
Lk-1
k-1
<mrow><mi>S</mi><mo>−</mo><msub><mrow><mi>Pr</mi></mrow><mrow><msub><mi>L</mi><mrow><mi>k</mi><mo>−</mo><mn>1</mn></mrow></msub></mrow></msub><mo stretchy="false">(</mo><mi>S</mi><mo stretchy="false">)</mo></mrow>
найти все другие векторы как U=argmax|
|, где L - линейное подпространство на U, U, …, U, и Pr(S) - проекция S на L.
1
2
m
<mrow><msub><mi>U</mi><mn>1</mn></msub><mo>=</mo><msub><mi>S</mi><mrow><msub><mi>i</mi><mn>1</mn></msub></mrow></msub></mrow>
<mrow><msub><mi>U</mi><mn>2</mn></msub><mo>=</mo><msub><mi>S</mi><mrow><msub><mi>i</mi><mn>2</mn></msub></mrow></msub></mrow>
<mrow><msub><mi>U</mi><mi>m</mi></msub><mo>=</mo><msub><mi>S</mi><mrow><msub><mi>i</mi><mi>m</mi></msub></mrow></msub></mrow>
<mrow><mi>H</mi><mo>=</mo><mrow><mo>{</mo><mrow><msub><mi>H</mi><mn>1</mn></msub><mo>=</mo><msub><mi>G</mi><mrow><msub><mi>i</mi><mn>1</mn></msub></mrow></msub><mo>,</mo><mtext> </mtext><msub><mi>H</mi><mn>2</mn></msub><mo>=</mo><msub><mi>G</mi><mrow><msub><mi>i</mi><mn>2</mn></msub></mrow></msub><mo>,</mo><mtext> </mtext><mn>...,</mn><mtext> </mtext><msub><mi>H</mi><mi>m</mi></msub><mo>=</mo><msub><mi>G</mi><mrow><msub><mi>i</mi><mi>m</mi></msub></mrow></msub></mrow><mo>}</mo></mrow></mrow>
- Пусть последовательность индексов i, i, …, i будет числами выбранных среднечастотных векторов из предыдущего этапа:
,
, …,
. Тогда
будет набором текстур (высокочастотной базы данных), соответствующим U.
Алгоритм может обеспечить достаточное качество с блоком размера 51×51 и базой данных, содержащей 1500 или более патчей, однако его реализация в виде SoC (система на кристалле) будет непозволительно дорогой. Для обеспечения возможности аппаратной реализации тестировалась схема с блоком размера 16×16 и базой данных из 50 патчей. Она продемонстрировала несколько типов дефектов, поэтому были разработаны дополнительные подалгоритмы для их устранения.
ij
На фиг. 23 показана возможная реализация с блоком размера 16×16, включающая в себя предварительную обработку и постобработку; здесь входное изображение 2301 подвергается низкочастотной или полосовой фильтрации 2302. Отфильтрованное изображение делится 2303 на неперекрывающиеся или перекрывающиеся блоки. Каждый блок подвергается предварительной обработке 2304. Затем для каждого блока генерируется 2305 текстура и подвергается постобработке 2306, после чего она добавляется к исходному изображению 2307. Цель предварительной обработки можно объяснить следующим: в присутствии выраженных краев текстура, сгенерированная для соседних блоков, точно или почти одинаковая, что проявляется в виде структурного дефекта вдоль линии (фиг. 24). В случае вертикального края этот дефект можно устранить путем вычитания из каждого пикселя блока соответствующего среднего постолбцового значения. В случае горизонтального края этот дефект можно устранить путем вычитания из каждого пикселя блока соответствующего среднего строчного значения. В случае диагонального края можно выполнить предварительную поблочную обработку: каждый пиксель предварительно обработанного блока  вычисляют как разность между исходным пикселем P и средним значением пикселя, стоящего на соответствующей диагонали блока
.
На фиг. 25 показаны результаты предварительной обработки для блоков с выраженными вертикальным, горизонтальным, основным диагональным, дополнительным диагональным краями. Видно, что значения пикселей предварительно обработанных блоков значительно меньше, чем значения входного блока, что приводит к существенно меньшей мощности сгенерированной текстуры. Чтобы решить, какой тип предварительной обработки следует применять, можно осуществить следующие операции:
0
1) Вычислить стандартное отклонение S значений пикселей входного блока P
hor
hor
2) Выполнить предварительную обработку целевых блоков с горизонтальным краем и вычислить предварительно обработанный блок P и стандартное отклонение значений пикселей в обработанном блоке S
ver
ver
3) Выполнить предварительную обработку целевых блоков с вертикальным краем и вычислить предварительно обработанный блок P и стандартное отклонение значений пикселей в обработанном блоке S
diag1
diag1
4) Выполнить предварительную обработку целевых блоков с основным диагональным краем и вычислить предварительно обработанный блок P и стандартное отклонение значений пикселей в обработанном блоке S
diag2
diag2
5) Выполнить предварительную обработку целевых блоков с дополнительным диагональным краем и вычислить предварительно обработанный блок P и стандартное отклонение значений пикселей в обработанном блоке S
min
ver
hor
diag1
diag2
6) Выбрать минимальное значение стандартных отклонений S=min(S, S, S, S)
7) Вычислить коэффициент усиления k=, где
f(x)=
min
8) Вычислить конечные значения пикселей предварительно обработанного блока как =(1-k)·P+k·P.
Операции (7) и (8) позволяют варьировать степень предварительной обработки в зависимости от того, насколько велика выраженность края.
Так как имеются и другие направления краев, а также некоторые сложные высококонтрастные объекты (типа букв субтитров), может быть недостаточно методик защиты, описанных выше. На фиг.26 показан пример алгоритма получения сверхвысокого разрешения, включающего дополнительную защиту. Перед предварительной обработкой 2605 этот алгоритм включает в себя вычисление 2604 поблочного коэффициента усиления, который умножается на сгенерированную текстуру перед добавлением 2608 ее к изображению. Этот коэффициент можно вычислить как убывающую пилообразную функцию нормы сгенерированной текстуры блока.
0
0
0
i
xy
xy
i
i
xy
Для уменьшения количества патчей в базе данных был разработан вариант реализации с базой данных, распределенной на большее количество масштабов. На фиг.27 показаны результаты, полученные с тремя масштабами (базы данных из 10, 20 и 20, соответственно) различной грубости. Можно заметить, что второй и третий масштабы создают много шума в плоской области (небо, облака), а первый нет. Следовательно, первый масштаб можно использовать для управления усилением в других масштабах. В случае если норма текстуры, сгенерированной первым масштабом, мала, следует уменьшить амплитуду текстуры, сгенерированной двумя другими масштабами, например, путем умножения на некую убывающую функцию нормы текстуры, сгенерированной первым масштабом в текущем блоке. На фиг. 28 показана архитектура системы с использованием этого вида логики слияния. Фиг.29 демонстрирует различие между результатами, полученными при использовании простого суммирования текстуры, сгенерированной в трех масштабах (a), и текстуры, полученной при использовании логики слияния, описанной выше (b). На фиг. 29-b видно, что в блоках с непустой текстурой, которые имеют соседние блоки с пустой текстурой, появляются блочные дефекты. Чтобы избежать этой проблемы, используется логика попиксельной защиты, основанная на анализе текстуры из блоков, соседних с текущим блоком T, и исходного цветного изображения из блоков, соседних с текущим блоком I (фиг. 30). В случае если норма текстуры, сгенерированной для текущего блока n=, выше некоторого более высокого заданного порога, и норма текстуры, сгенерированной для некоторого соседнего блока n=, i=1 … 7, ниже некоторого более низкого заданного порога, для каждого пикселя с координатами (x, y) текущего блока вычисляется попиксельный коэффициент усиления как q=min(q,), если абсолютное отличие текущего пикселя от медианного значения значений пикселей в блоке I меньше, чем первый заданный порог, или абсолютное отличие текущего пикселя от среднего значения значений пикселей в блоке I меньше второго заданного порога. Эту процедуру можно выполнять итеративно для всех соседних блоков, при допущении, что на первой итерации q=1. На фиг. 31 показаны увеличенный фрагмент изображения, содержащий окрестность 4×4 блоков пикселей размером 16×16 (a), первоначально сгенерированная текстура с видимыми блочными дефектами (b), и результат попиксельной обработки, описанной выше (c). На фиг.32 представлено полное изображение текстуры, полученной (a) без и (b) с попиксельной защитой.
В некоторых случаях, как показано на фиг. 33-(a), где существует большое количество длинных тонких объектов на плоском фоне, описанной выше логики защиты не достаточно, фиг. 33-(b). Для такого случая предлагается логика защиты на основе сегментации:
1) Для каждого большого блока (128×128 пикселей или больше) выполняется основанная на цвете сегментация на k классов (мы использовали три или пять)
2) Для каждого k-ого класса, полученного при сегментации, получают среднее абсолютное значение  сгенерированной текстуры
3) Для каждого пикселя внутри блока вычисляют отношение r между абсолютным значением сгенерированной текстуры |t| и средним абсолютным значением  соответствующего сегмента в случае, если |t|> и r=,
или же
4) в случае, если это отношение очень большое или очень малое, уменьшают показатель текстуры в текущем пикселе или сохраняют ее как есть. Эту зависимость можно реализовать как умножение на кусочно-линейную функцию отношения r:
.
На фиг. 33-c показана результирующая текстура, полученная после этой процедуры. Сегментацию этапа (1) можно выполнить с помощью метода k-средних (фиг. 33-d), максимизации ожидания (фиг. 33-e) или другого алгоритма сегментации.
Хотя использование перекрывающегося расположения блоков (фиг. 34) не показало преимуществ с точки зрения качества, иногда может возникать необходимость его реализации ради совместного использования аппаратных средств в случае применения совместно с каким-то другим способом улучшения качества видео, который требует операции такого рода. На фиг. 34-a показано перекрывающееся расположение 9 соседних перекрывающихся блоков, а на фиг. 34-b показан размер патча из первой базы данных, соответствующей расположению на фиг. 34-a. Вторую базу данных можно выполнить с возможностью заполнения только неперекрывающейся части входного блока, как на фиг. 34-c, или полного заполнения блока входного изображения, как на фиг. 34-d. В последнем случае текстуру, сгенерированную для соседнего блока, можно стыковать с перекрывающейся областью с некоторой функцией смешивания (типа Гауссовой), которая принимает большие значения у центра блока и меньшие значения у его периферии. Текстуру, сгенерированную в соседних перекрывающихся блоках 3501 и 3502, можно также сшить вдоль пути 3503 минимальной энергии, как показано на фиг.35. Этот путь можно найти, например, с помощью динамического программирования и обеспечить бесшовное соединение текстур из соседних блоков.
Как видно на фиг. 36-37, можно также использовать блоки непрямоугольной формы или даже фрагментацию изображения на блоки двух или более различных форм и/или размеров.
Промышленная применимость
Предложенный способ можно применить в бытовых электронных устройствах, в которых выполняется повышение разрешения изображения, таких как телевизионные приемники, DVD/BD плееры и игровые приставки, и т.п.