Методика имитации зернистости пленки с помощью базы данных узоров зернистости пленки

Иллюстрации

Показать все

Изобретение относится к способу имитации зернистости пленки в изображении. Техническим результатом является собственно создание эффективной методики имитации зернистости пленки, которая снижает потребность в пропускной способности памяти и в объеме вычислений. Предложен способ создания блока пикселов с зернистостью пленки, в котором отдельные пикселы в блоке изображения подвергаются смешиванию с зернистостью пленки из блока зернистости пленки, случайным образом выбранного из совокупности (18) ранее установленных блоков зернистости пленки в соответствии с характеристикой яркости блока изображения. Перед смешиванием выбранный блок зернистости пленки подвергается перекомпонованию перекомпоновывающим фильтром (28), после смешивания модуль (32) кадрирования кадрирует отдельные пикселы перед отображением, совокупность (18) блоков зернистости пленки создается масштабированием набора узоров зернистости пленки в соответствии с по меньшей мере одним параметром сообщения с информацией о зернистости пленки, которое сопровождает блок изображения. 5 н. и 10 з.п. ф-лы, 2 ил., 2 табл.

Реферат

Перекрестная ссылка на родственные заявки

Данная заявка заявляет приоритет по ст. 119(е) 35 USC по предварительной заявке на патент США № 60/527895, поданной 5 декабря 2003 года, раскрытие которой включено сюда посредством ссылки.

Область техники, к которой относится изобретение

Данное изобретение относится к методике имитации зернистости пленки в изображении.

Предшествующий уровень техники

Кинопленки содержат кристаллы галоидного серебра, распределенные в эмульсии, которая тонким слоем нанесена на основу пленки. Экспозиция и проявление этих кристаллов образуют фотографическое изображение, состоящее из дискретных мельчайших частичек серебра. В цветных негативах мельчайшие пятнышки красителя появляются на тех местах, где серебряные кристаллы образуют последующее химическое удаление серебра в процессе проявления кинопленки. Эти маленькие крапинки красителя обычно именуются "зерно" в цветной пленке. Зерна появляются случайно распределенными на результирующем изображении из-за случайного формирования серебряных кристаллов в исходной эмульсии. В равномерно экспонированной области некоторые кристаллы проявляются после экспонирования, тогда как другие не проявляются.

Зерно изменяется по размеру и форме. Чем более скоростная пленка, тем больше комки образуемого серебра и пятнышки вызываемого красителя и тем в большей степени они стремятся сгруппироваться вместе в случайных узорах. Как правило, этот узор зерен именуется термином "зернистость". Невооруженный глаз не может разглядеть отдельные зерна, которые меняются от 0,0002 мм до примерно 0,002 мм. Взамен отдельных зерен глаз различает группы зерен, именуемые пятнышками. Зритель идентифицирует эти группы пятнышек как зернистость пленки. Когда разрешение изображения увеличивается, восприятие зернистости пленки становится выше. Зернистость пленки становится ясно заметной в кино и изображениях высокого разрешения (ВР, HD), тогда как зернистость пленки постепенно теряет важность при стандартном разрешении (СР, SD) и становится не воспринимаемой при меньших форматах.

Кинопленка, как правило, содержит зависящий от изображения шум, возникающий либо от физических процессов экспонирования и проявления фотопленки, либо от последующего редактирования изображений. Фотопленка обладает характерным квазислучайным узором, или текстурой, возникающей из физической зернистости фотоэмульсии. Альтернативно, имитация аналогичного узора может происходить в генерируемых компьютером изображениях, чтобы подмешивать их к фотопленке. В обоих случаях зависящий от изображения шум носит обозначение "зернистость пленки". Довольно часто структура средней зернистости представляет желательную черту в кино. В некоторых случаях зернистость пленки создает видимые намеки, которые облегчают восприятие двумерных картин. Зернистость пленки зачастую изменяется в одной пленке для обеспечения различных намеков, таких как упоминание времени, точка зрения и т.п. В кинопромышленности существует много иных технических и художественных требований для управления зернистой текстурой. Поэтому сохранение зернистого вида изображений на всей цепочке обработки и доставки изображений становится требованием в современной кинопромышленности.

Несколько коммерчески доступных продуктов имеют способность имитировать зернистость пленки, часто для подмешивания в естественную сцену к генерируемому компьютером объекту. Cineon® от компании Истман Кодак (Eastman Kodak Co, Rochester New York), одно из первых приложений цифровой пленки для воплощения имитации зернистости пленки, дает очень реалистичные результаты для многих типов зерна. Однако приложение Cineon® не дает хорошего качества для многих высокоскоростных пленок из-за заметных диагональных полос, которые это приложение выдает для крупнозернистых фонов. Далее, приложение Cineon® не имитирует зерно с адекватной точностью, когда изображения подвергаются предварительной обработке, к примеру такой, как когда изображения копируются или обрабатываются в цифровом виде.

Другим коммерческим продуктом, который имитирует зернистость пленки, является Grain Surgery™ от фирмы Visual Infinity Inc., который используется в качестве расширения программы Adobe® After Effects®. Представляется, что продукт Grain Surgery™ генерирует синтетическое зерно путем фильтрации набора случайных чисел. Недостатком этого подхода является высокая вычислительная сложность.

Таким образом, существует необходимость в эффективной методике имитации зернистости пленки, которая снижает потребность в пропускной способности памяти и в объеме вычислений, тем самым обеспечивая имитацию зернистости пленки в чувствительных к стоимости массовых устройствах, таких как телеприставки.

Сущность изобретения

Вкратце, в соответствии с одним аспектом настоящего изобретения предлагается способ создания блока из М N пикселов с зернистостью пленки для смешивания с пикселами блока изображения, где М и N являются целыми числами больше нуля. Способ начинается с приема информации о зернистости пленки, которая включает в себя по меньшей мере один параметр, задающий атрибут зернистости пленки, который должен появиться в блоке зернистости пленки. (Те параметры, которые не передаются, должны устанавливаться в значения по умолчанию. В частном варианте осуществления значения по умолчанию могут быть выявлены как определено в стандарте H.2641AVC.) Блок зернистости пленки из М N пикселов выбирается из базы данных ранее установленных блоков, содержащих зернистость пленки, в зависимости от псевдослучайного числа и набора частот отсечки, характеризующих узор зернистости пленки. Все значения пикселов в выбранном блоке зернистости пленки подвергаются масштабированию в соответствии с одним параметром и принятой информацией о зернистости пленки. Созданный блок зернистости пленки становится затем частью совокупности блоков зернистости пленки, из которой выбирается блок для смешивания с пикселами в блоке изображения для имитации зернистости пленки в блоке изображения.

В соответствии с другим объектом настоящего изобретения предлагается способ имитации зернистости пленки в блоке изображения из пикселов. Способ начинается с выбора блока зернистости пленки из совокупности заранее установленных значений зернистости пленки. Выбор блока зернистости пленки происходит случайным образом, в соответствии со случайным числом, среди блоков из совокупности для интервала яркости, соответствующего среднему значению яркости в блоке изображения. Выбранный блок зернистости пленки подвергается перекомпонованию. По меньшей мере часть перекомпонованного блока зернистости пленки смешивается с отдельными пикселами в блоке изображения для имитации зернистости пленки, и результирующие смешанные пикселы кадрируются перед выдачей, такой как для дисплея или тому подобного.

Перечень фигур чертежей

Фиг.1 - блок-схема устройства для генерирования заранее установленных блоков зернистости пленки для использования в последующей имитации зернистости пленки; и

фиг.2 - блок-схема устройства в соответствии с принципами настоящего изобретения для имитации зернистости пленки на попиксельной основе с помощью заранее установленных блоков зернистости пленки, генерируемых устройством по фиг.1.

Подробное описание

Введение

В соответствии с принципами настоящего изобретения имитация зернистости пленки происходит в соответствии с информацией о зернистости пленки, переданной с изображением, с которым имитируемая зернистость смешивается. На практике переданное изображение, как правило, подвергается сжатию (кодированию) перед передачей посредством одной из множества общеизвестных схем сжатия, такой как схема сжатия Н.264. Вместе с передаваемым изображением, сжатым с помощью схемы сжатия Н.264, передача информации о зернистости пленки происходит посредством сообщения дополнительной расширенной информации (ДРИ, SEI). В соответствии с предложениями, принятыми ранее группой стандартов, ответственной за распространение стандарта Н.264, сообщение SEI может теперь включать в себя различные параметры, которые конкретизируют различные атрибуты зернистости пленки.

Ограничения на параметры сообщения SEI о зернистости пленки

Способ согласно принципам настоящего изобретения налагает некоторые ограничения в отношении числа параметров и их диапазона возможных значений, разрешенных рекомендацией Н.264. Таблица 1 предоставляет список таких параметров, включая описания их смысла и ограничения, налагаемые принципами настоящего изобретения.

Таблица 1
Параметр зернистости пленкиОписание и ограничения
model_idЭтот параметр конкретизирует модель имитации. Он должен быть 0, что определяет модель имитации зернистости пленки как частотную фильтрацию.
separate_colour_description _present_flagЭтот параметр конкретизирует, отличается ли цветовое пространство, в котором оцениваются параметры, от цветового пространства, в котором закодирована видеопоследовательность (если вставлено сообщение SEI о зернистости пленки). Он должен быть 0, что определяет цветовое пространство для зернистости пленки такое же, как и для закодированной последовательности.
blending_mode_idЭтот параметр конкретизирует режим смешивания, используемый для смешивания имитированной зернистости пленки с декодированными изображениями. Он должен быть 0, что соответствует режиму аддитивного смешивания.
log2_scale_factorЭтот параметр конкретизирует логарифмический масштабирующий коэффициент, используемый для представления параметров зернистости пленки в сообщении SEI. Он должен быть в диапазоне [0, 4], чтобы гарантировать, что имитация зернистости пленки может выполняться с помощью 16-битовой арифметики.
comp_model_present_flag[1]Этот параметр разрешает передачу параметров зернистости пленки для цветовой составляющей Cb в цветовом пространстве YCbCr. Он должен быть 0, поскольку имитация зернистости пленки в цветоразностном сигнале не поддерживается.
comp_model_present_flag[2]Этот параметр разрешает передачу параметров зернистости пленки для цветовой составляющей Cr в цветовом пространстве YCbCr. Он должен быть 0, поскольку имитация зернистости пленки в цветоразностном сигнале не поддерживается.
num_intensity_intervals_ minus1[0]Этот параметр определяет число интервалов интенсивности, для которых оценен конкретный набор параметров. Он должен быть в диапазоне [0, 7].
intensity_interval_lower_ bound[0][i+1],intensity_interval_upper_ bound[0][i]Эти параметры определяют границы уровней яркости, для которых определяются различные параметры зернистости пленки. Нижняя граница интервала i+1 должна быть больше, чем верхняя граница интервала i, потому что многоступенчатая зернистость пленки не разрешается.
num_model_values_minus1[0]Этот параметр конкретизирует число модельных значений, присутствующих в каждом интервале интенсивности, в котором смоделирована зернистость пленки. Он должен быть в диапазоне [0, 2], потому что цветовая корреляция не разрешается.
comp_model_value[0][i][0]Этот параметр представляет интенсивность зернистости пленки для каждого интервала яркости, в котором смоделирована зернистость пленки. Он должен быть в диапазоне [0, 255], чтобы гарантировать, что имитация зернистости пленки может выполняться с помощью 16-битовой арифметики.

Согласно принципам настоящего изобретения параметры comp_model_value[0][i][1] и comp_model_value[0][i][2] могут принимать разные значения. Однако допустимо только ограниченное число различных пар (comp_model_value[0][i][1], comp_model_value[0][i][2]), как определено в таблице 2.

Таблица 2
comp_model_value[0][i][1]comp_model_value[0][i][2]
43
64
75
86
107
118
139
1410
1511
1512
1513
1514
1515

Все остальные параметры сообщения SEI о зернистости пленки не имеют ограничений в отношении стандартной спецификации.

Воплощение имитации зернистости пленки с точностью до бита

Имитация зернистости пленки в соответствии с принципами настоящего изобретения происходит в двухстадийном процессе. Сначала происходит генерирование совокупности блоков зернистости пленки в течение инициализации вслед за приемом сообщения SEI, предшествующего изображению I, как подробнее описывается в отношении фиг.1. Из совокупности блоков зернистости пленки выбирается отдельный блок значений. После этого части выбранного блока добавляются к каждому пикселу яркости каждого декодированного изображения, как описывается в отношении фиг.2.

Фиг.1 показывает устройство 10 в соответствии с иллюстрируемым вариантом осуществления принципов настоящего изобретения для генерирования совокупности блоков зернистости пленки для использования в имитации зернистости пленки. После приема сообщения SEI о зернистости пленки, содержащего информацию о зернистости пленки, осуществляется процесс инициализации для создания совокупности из 4096 (512) значений пикселов зернистости пленки для каждого из вплоть до 8 разных интервалов яркости. Число интервалов яркости указывается 1 плюс поле num_intensity_intervals_minus1[0] сообщения SEI. Генерирование отсчетов зернистости пленки начинается с наинизшего интервала яркости.

Имитация шума зернистости пленки с точностью до бита обычно происходит за счет использования специфического равномерного генераторного полинома псевдослучайных чисел и за счет использования специфической базы 12 данных узоров зернистости пленки. На практике база 12 данных узоров зернистости пленки содержит 26 наборов из 4096 (512) значений зернистости пленки (13 наборов с круглым зерном и 13 наборов с удлиненным зерном). Эти значения хранятся в виде дополнения до 2 и в диапазоне [-127, 127]. Список значений для каждого набора может быть определен заранее и храниться в постоянной памяти, доступной для системы, или создаваться с помощью способа с точностью до бита при инициализации или сбросе системы.

Хранящиеся в базе 12 данных узоры зернистости пленки подвергаются выбору модулем 14 выбора и последующему масштабированию масштабирующим модулем 16, чтобы получить совокупность 18 блоков зернистости пленки. Обращение к базе 12 данных узоров зернистости пленки, масштабирование значений модулем 16 и последующее хранение масштабированных значений в блоках совокупности 18 осуществляется в соответствии со следующей подпрограммой:

для (i = 0..4096)

v = comp_model_value[0][s][0]*database[m][n][i]

pool[s][i] = (((v + 2log2_scale_factor - 1) >> log2_scale_factor) + 32) >> 6,

где n равно comp_model_value[0][s][2] - 3, m равно 0, когда num_param_minus1[0] равно 1, и равно 1 в противном случае, а коэффициент 6 масштабирует хранящиеся в базе данных значения зернистости пленки. Этот процесс выполняется столько раз, сколько указано 1 плюс поле num_intensity_intervals_minus1[0] в сообщении SEI.

Операции над блоками и пикселами перед отображением пикселов

Фиг.2 показывает устройство 20 для выполнения операций, необходимых для добавления зернистости пленки к декодированному изображению на уровне блоков и пикселов. Модуль 22 усреднения яркости обрабатывает каждый блок 8 декодированного изображения и вычисляет среднее от значений пикселов яркости для сравнения с параметрами intensity_interval_lower_bound[0][i] и intensity_interval_upper_bound[0][i] в сообщении SEI, чтобы найти точный интервал яркости для этого блока. Равномерный генератор 24 случайных чисел генерирует случайное число для введения в модуль 26 выбора с помощью примитивного полиномиального оператора по модулю 2, х18 + х5 + х2 + х1 + 1. Модуль 26 выбора обращается к совокупности 18 зернистости пленки, чтобы выбрать блоки зернистости пленки в соответствии с этим случайным числом и значением яркости.

Чтобы понять, как генератор 24 случайных чисел генерирует случайное число для выбора блока зернистости пленки, положим, что x(i, e) указывает i-й символ последовательности х, начиная с начального инициирующего значения е. (Инициирующее значение устанавливается на 1 при получении каждого сообщения SEI о зернистости пленки.) Сдвиг текущего блока 8 зернистости пленки генерируется следующим образом:

previous_offset = offset

offset = (x(i, 1) % 4088) >> 2

offset ^= (index == previous_offset)

offset <<= 2

где сдвиг offset инициализирован в 0 после создания совокупности. После вычисления сдвига блок 8 зернистости пленки выделяется из совокупности следующим образом:

для (i = 0..7, j = 0..7)

block[i][j] = pool[s][offset + i + j*4096]

Блок зернистости пленки, выбранный модулем выбора в соответствии со случайным числом из генератора 24 случайных чисел и средним значением яркости из модуля 22, подвергается перекомпонованию пикселов левого и правого столбцов блока посредством перекомпоновывающего фильтра 28 перед смешиванием. После этого сумматор 30 добавляет соответствующее значение перекомпонованного блока зернистости пленки к соответствующим декодированным пикселам, а модуль 32 кадрирования кадрирует результаты в диапазоне [0, 255], чтобы получить пикселы яркости, смешанные с зернистостью пленки для отображения на дисплее (не показан) или для последующей записи. Отметим, что шум зернистости пленки добавляется только к пикселам яркости.

Перекомпоновывающий фильтр 28

Как описано, перекомпоновывающий фильтр работает, чтобы перекомпоновывать блок зернистости пленки перед смешиванием для сглаживания артефактов разбиения на блоки, получающихся из-за малого размера преобразования. В иллюстративном варианте осуществления перекомпоновывающий фильтр 28 содержит трехотводный фильтр, применяемый ко всем пикселам, ограничивающим левый и правый края блока 8. Если строка пикселов принадлежит двум смежным блокам 8, а переход между блоками располагается между пикселами b и с,

фильтр применяется следующим образом:

b' = (a + (b << 1) + c) >> 2

c' = (b + (c << 1) + d) >> 2,

где b' и c' заменяют значение исходных пикселов b и с, соответственно. Перекомпонование левого и правого краев блока выполняется для каждого блока в момент отображения.

Вышеописанный способ имитации зернистости пленки может быть сразу осуществлен на практике устройствами копирования контента, такими как устройство воспроизведения (или воспроизведения-записи) DVD или средством доставки контента, таким как телеприставка или тому подобное. В случае устройства копирования контента, такого как устройство воспроизведения DVD или устройство воспроизведения-записи DVD, носитель контента (например, DVD) будет переносить информацию о зернистости пленки вместе с самим контентом (т.е. сжатым видеосигналом), чтобы позволить устройству копирования контента имитировать зернистость пленки описанным образом. Так, к примеру, DVD будет нести как информацию изображения, как правило, в виде сжатых макроблоков, так и информацию о зернистости пленки, что позволит устройству воспроизведения или воспроизведения-записи DVD смешивать зернистость пленки с разуплотненным видеосигналом для последующего отображения.

Вышеприведенное описывает методики имитации зернистости пленки в изображении. Преимущественно, эта методика имитации зернистости пленки дает возможность имитировать удлиненное зерно пленки вследствие допустимых значений параметра num_model_values_minus1[0], а также допустимых значений параметров comp_model_value[0][i][1] и comp_model_value[0][i][2]. Кроме того, в методике имитации зернистости пленки по принципам настоящего изобретения выбор одного набора отсчетов зернистости пленки из базы 12 данных отсчетов исключает необходимость выполнения дискретного косинусного преобразования (ДКТ, DCT) и обратного DCT.

1. Способ создания блока пикселов с зернистостью пленки,содержащий этапы, на которых принимают информацию о зернистости пленки, которая включает в себя по меньшей мере один параметр, задающий атрибут зернистости пленки, который должен появиться в блоке изображения, случайным образом выбирают блок зернистости пленки из набора ранее установленных блоков, содержащих зернистость пленки, масштабируют все значения пикселов в этом блоке, как указывается упомянутым по меньшей мере одним параметром, характеризующим зернистость пленки, и записывают созданный блок зернистости пленки в совокупность блоков зернистости пленки.

2. Способ по п.1, в котором этап выбора дополнительно содержит этап, на котором выбирают из заранее определенного числа наборов по 4096 значений каждый.

3. Способ по п.2, в котором каждый из упомянутого заранее определенного числа наборов значений организуется в виде матрицы 512×8.

4. Способ по п.3, в котором упомянутое заранее определенное число наборов значений сохраняется в виде дополнения до 2 и в диапазоне [-127, 127].

5. Способ по п.1, дополнительно содержащий этапы, на которых случайным образом выбирают блок зернистости пленки из упомянутой совокупности блоков зернистости пленки в соответствии с псевдослучайным числом и характеристикой яркости поступающего изображения, перекомпоновывают противолежащие края выбранного блока зернистости пленки, смешивают по меньшей мере часть перекомпонованного выбранного блока зернистости пленки с каждым пикселом в блоке изображения и кадрируют пикселы блока изображения, смешанные с зернистостью пленки.

6. Способ имитации зернистости пленки в пиксельном блоке изображения, содержащий этапы, на которых случайным образом выбирают блок зернистости пленки из совокупности заранее установленных блоков зернистости пленки для значения яркости, соответствующего характеристике яркости блока изображения, перекомпоновывают выбранный блок зернистости пленки, смешивают по меньшей мере часть перекомпонованного блока зернистости пленки с каждым пикселом блока изображения, чтобы имитировать зернистость пленки, кадрируют результирующие смешанные пикселы перед выводом.

7. Способ создания совокупности заранее установленных блоков зернистости пленки, содержащий этапы, на которых принимают информацию о зернистости пленки, которая включает в себя по меньшей мере один параметр, задающий атрибут зернистости пленки, который должен появиться в блоке изображения, случайным образом выбирают блок зернистости пленки из набора ранее установленных блоков, содержащих зернистость пленки, масштабируют все значения пикселов в этом блоке, как указывается упомянутым по меньшей мере одним параметром в принятой информации о зернистости пленки, и записывают созданный блок зернистости пленки в совокупность блоков зернистости пленки.

8. Способ по п.7, в котором этап выбора дополнительно содержит этап, на котором выбирают из заранее определенного числа наборов по 4096 значений каждый.

9. Способ по п.8, в котором каждый из упомянутого заранее определенного числа наборов значений организуется в виде матрицы 512×8.

10. Способ по п.8, в котором упомянутое заранее определенное число наборов значений сохраняется в виде дополнения до 2 и в диапазоне [-127, 127].

11. Устройство для создания блока пикселов, содержащее первый информационный архив для запоминания набора ранее установленных блоков пикселов, содержащих зернистость пленки, модуль выбора для выбора случайным образом блока зернистости пленки из первого информационного архива, масштабирующий модуль для масштабирования всех значений пикселов в выбранном блоке зернистости пленки в соответствии с по меньшей мере одним параметром информации о зернистости пленки, принятой масштабирующим блоком, и второй информационный архив, запоминающий масштабированные блоки зернистости пленки.

12. Устройство по п.11, в котором первый информационный архив запоминает заранее определенное число наборов по 4096 значений каждый.

13. Устройство по п.12, в котором каждый из упомянутого заранее определенного числа наборов значений организуется в виде матрицы 512×8.

14. Устройство по п.13, в котором упомянутое заранее определенное число наборов значений сохраняется в виде дополнения до 2 и в диапазоне [-127, 127].

15. Устройство для имитации зернистости пленки в пиксельном блоке изображения, содержащее совокупность заранее установленных значений зернистости пленки, модуль выбора для выбора случайным образом блока зернистости пленки из упомянутой совокупности заранее установленных блоков зернистости пленки для значения яркости, соответствующего характеристике яркости блока изображения, перекомпоновывающий фильтр для перекомпоновки выбранного блока зернистости пленки, сумматор для смешивания по меньшей мере части перекомпонованного блока зернистости пленки с каждым пикселом блока изображения, чтобы имитировать зернистость пленки, и модуль кадрирования для кадрирования результирующих смешанных пикселов перед выводом.