СПОСОБ ИМИТАЦИИ ЗЕРНИСТОСТИ ПЛЕНКИ ДЛЯ ИСПОЛЬЗОВАНИЯ В МЕДИА УСТРОЙСТВАХ ВОСПРОИЗВЕДЕНИЯ
FILM GRAIN IMITATION METHOD TO BE USED IN MEDIA REPRODUCING DEVICES

Перекрестная ссылка на родственные заявки
По настоящей заявке испрашивается приоритет согласно 35 USC 119(e) в соответствии с предварительной заявкой на патент США № 60/630,756 от 24 ноября 2004 г., основные положения включены в настоящее описание.
Область техники, к которой относится изобретение
Это изобретение относится к способу имитации (моделирования) зернистости пленки в изображении, и более конкретно к имитации (моделирования) зернистости пленки в изображении для воспроизведения в медиа устройстве.
Уровень техники
Кинопленки содержат галогенидосеребряные кристаллы, диспергированные в эмульсии, покрывающей тонкими слоями основу пленки. Экспонирование и проявление этих кристаллов образует фотографическое изображение, состоящее из дискретных крошечных частиц серебра. В цветных негативах серебро подвергается химическому удалению после проявления, и мельчайшие пятна краски появляются в местах, в которых формируются кристаллы серебра. Эти мелкие частицы краски обычно называются «зерном» в цветной пленке. На результирующем изображении зерна выглядят произвольно распределенными благодаря произвольному формированию кристаллов серебра в исходной эмульсии. В пределах равномерно экспонированной площади некоторые кристаллы после экспонирования проявляются, в то время как другие не проявляются.
Зерна различаются по размерам и форме. Чем быстрее фильм, тем больше формируется скоплений серебра и создается пятен краски, и тем больше они имеют тенденцию группироваться вместе в произвольные структуры. Структура зерна обычно известна как «зернистость». Невооруженный глаз не может различать отдельные зерна, которые могут изменяться от 0,0002 мм приблизительно до 0,002 мм. Вместо этого глаз идентифицирует группу зерен, упоминаемых как пятна. Наблюдатель идентифицирует эти группы пятен как зернистость пленки. По мере того, как увеличивается разрешающая способность изображения, восприятие зернистости пленки становится выше. Зернистость пленки становится отчетливо заметной в кинофильмах или изображениях с высоким разрешением, тогда как зернистость пленки постепенно теряет свое значение в SDTV (спутниковое ТВ) и становится малозначимой в малых форматах.
Кинопленка обычно содержит шум, зависимый от изображения, являющийся результатом либо физических процессов экспонирования и проявления фотопленки, либо последующего редактирования изображений. Фотопленка обладает характерной квазислучайной структурой, или текстурой, возникающей в результате физической зернистости фотоэмульсии. В качестве альтернативы, подобная структура может быть имитирована через изображения, сгенерированные с помощью компьютера, чтобы подмешивать их к изображению на фотопленке. В обоих случаях этот шум, зависящий от изображения, упоминается как зернистость. Достаточно часто умеренная зернистая текстура представляется желательной особенностью в кинофильмах. В некоторых случаях зернистость пленки обеспечивает зрительную информацию, облегчающую правильное восприятие двухмерных изображений. Зернистость пленки часто варьируется в пределах одного фильма, чтобы обеспечить различное зрительное восприятие относительно начала отсчета времени, точки просмотра и т.д. Существуют многие другие технические и художественные применения для управления зернистостью текстуры зерна в кинопромышленности. Следовательно, сохранение зернистого вида изображений во всей цепочке обработки изображения и его передачи стало требованием в кинопромышленности.
Несколько коммерчески доступных продуктов дают возможность имитировать зернистость пленки, часто для подмешивания объекта, сгенерированного с помощью компьютера, в реальную сцену. CineonR от компании Eastman Kodak Co, Rochester New York, одна из первых прикладных программ для цифровых примеров, где реализуется имитация зернистости, создает очень реалистичные результаты для многих типов зерна. Однако применение CineonR не обеспечивают хороших показателей для многих высокоскоростных фильмов из-за заметных диагональных полос, которые создает ее применение при установках большого размера зерна. Кроме того, прикладная программа CineonR не способна моделировать зернистость с адекватной точностью воспроизведения, когда изображения подвергают предварительной обработке, например, такой, когда изображения копируют или обрабатывают в цифровом виде.
Другим коммерческим продуктом, который моделирует зернистость пленки, является Grain Surgery из компании Visual Infinity Inc., который используют в качестве расширения Adobe R After EffectsR. Продукт Grain Surgery, как представляется, должен генерировать синтетическую зернистость путем фильтрации набора случайных чисел. Характерным недостатком этого подхода является высокая сложность расчетов.
Ни одна из этих последних схем не решает проблемы восстановления зернистости пленки в сжатом видеосигнале. Зернистость пленки представляет собой высокочастотное квазислучайное явление, которое обычно не может подвергаться сжатию с использованием традиционных пространственных и временных способов, обладающих преимуществом избыточностей в видеопоследовательностях. Попытки обрабатывать полученные на пленке изображения, используя способы сжатия MPEG-2 или ITU-T/ISO H.264, обычно дают в результате либо неприемлемо низкую степень сжатия, либо полную потерю текстуры зернистости.
Следовательно, существует необходимость в способе имитации зернистости пленки в изображении для воспроизведения в медиа устройствах воспроизведения.
Сущность изобретения
Вкратце, в соответствии с настоящими принципами предоставлен способ имитации блока зернистости пленки для добавления к блоку изображения, чтобы обеспечить точность до бита во время воспроизведения изображения в обычном режиме и в режиме трюкового воспроизведения. Выполнение способа начинается с установления, по меньшей мере, одного параметра, по меньшей мере, частично в соответствии с атрибутом блока. После этого устанавливают, по меньшей мере, один блок зернистости пленки с точностью до бита в соответствии, по меньшей мере, с одним параметром.
Краткое описание чертежей
Фиг.1 изображает принципиальную блок-схему комбинации передатчика и приемника в процессе обработки зернистости пленки, полезной для реализации на практике принципов настоящего изобретения;
фиг.2 изображает принципиальную блок-схему системы для имитации зернистости пленки в соответствии с настоящим изобретением;
фиг.3 изображает блок-схему сдвигового регистра, предназначенного для генерирования примитивного многочлена по модулю 2, для имитации зернистости пленки в соответствии со способом фиг.2; и
фиг.4 изображает сетку пикселей, изображающую использование случайных чисел при формировании зернистости пленки в соответствии со способом фиг.2.
Подробное описание изобретения
Для понимания принципов способа настоящего изобретения для имитации структуры зернистости пленки с точностью до бита, состоящей из отдельных блоков зернистости пленки, окажется полезным краткое рассмотрение имитации зернистости пленки. На фиг.1 представлена блок-схема передатчика 10, который принимает входной видеосигнал и, в свою очередь, формирует поток сжатого сигнала на своем выходе. Кроме того, передатчик 10 также формирует информацию, указывающую зернистость пленки (если она присутствует в образце). На практике передатчик 10 мог бы содержать часть массива центральной станции кабельной телевизионной системы или другую такую систему, которая распределяет сжатый видеосигнал в один или более приемников 11, расположенных по направлению основного трафика, один из которых изображен на фиг.1. Передатчик 10 также может принимать форму кодера, который предоставляет носитель информации, подобный DVD-дискам 12. Приемник декодирует поток закодированного видеосигнала и имитирует зернистость пленки в соответствии с информацией о зернистости пленки и декодирует видеоданные, причем и то и другое принято из передатчика 10 или непосредственно из самого носителя информации в случае DVD или тому подобного, чтобы выдать поток выходных видеосигналов, который осуществил имитирование зернистости пленки. Приемник 11 может принимать форму декодера каналов кабельного телевидения или другого такого механизма, который служит для декодирования сжатого видеосигнала и имитации зернистости пленки в этом видеосигнале. В частности, приемник 11 мог бы принимать форму устройства воспроизведения DVD, которое может декодировать изображение для воспроизведения, смешивать зернистость пленки в таком изображении и воспроизводить изображение со скоростью обычного и трюкового воспроизведения.
Общее управления зернистостью пленки требует от передатчика 10 (т.е. кодер) предоставлять информацию в отношении зернистости пленки в поступающем видеосигнале. Иначе говоря, передатчик 10 “моделирует” зернистость пленки. Кроме того, приемник 11 (т.е. декодер) имитирует зернистость пленки в соответствии с информацией о зернистости пленки, принятой из передатчика 10. Передатчик 10 повышает качество сжатого видеосигнала, давая возможность приемнику 11 имитировать зернистость пленки в видеосигнале, когда существует трудность в отношении сохранения зернистости пленки во время процесса кодирования видеосигнала.
В проиллюстрированном варианте осуществления фиг.1 передатчик 10 включает в себя видеокодер 13, который кодирует поток видеосигнала, используя любой из широко известных способов сжатия видеосигнала, например, такой как стандарт сжатия видеосигнала ITU-T Rec. H.264|ISO/IEC 14496-10. Как вариант, устройство 14 удаления зернистости пленки в виде фильтра или ему подобного устройства, изображенного пунктирными линиями на фиг.1, может существовать по ходу прохождения сигнала до кодера 13, для удаления любой зернистости пленки в потоке входящего сигнала. В случае, когда входящий видеосигнал не содержит зернистости пленки, нет необходимости в установлении устройства 14 удаления зернистости пленки.
Устройство 16 моделирования зернистости пленки принимает поток входного видеосигнала, а также выходной сигнал устройства 14 удаления зернистости пленки (когда оно присутствует). Используя такую входную информацию, устройство 16 моделирования зернистости пленки вводит зернистость пленки во входящий видеосигнал. В своем простейшем виде устройство 16 моделирования зернистости пленки могло бы содержать справочную таблицу, содержащую модели зернистости пленок для разных неиспользованных пленок. Информация, содержащаяся в поступающем сигнале, должна указывать конкретный вид пленки, первоначально использованный для записи изображения перед его преобразованием в видеосигнал, таким образом, давая возможность устройству 16 моделирования зернистости пленки выбирать подходящую модель зернистости пленки для такого вида пленки. В качестве альтернативы, устройство 16 моделирования зернистости пленки может содержать процессор или специализированную логическую схему, пригодную для выполнения одного или более алгоритмов, чтобы осуществлять выборку входящих видеосигналов и определять структуру зернистости пленки, присутствующей в ней, как раскрыто далее.
Приемник 11 обычно включает в себя видеодекодер 18, служащий для декодирования потока сжатого видеосигнала, принятого от передатчика 10. Структура декодера 18 будет зависеть от типа сжатия, выполненного с помощью кодера 13 в передатчике 10. Таким образом, например, использование в передатчике 10 кодера 13, который использует стандарт сжатия видеосигнала ITU-T Rec. H.264|ISO/IEC 14496-10, для сжатия выходящего видеосигнала, диктует необходимость Н.264 совместимого декодера 18. В приемнике 11 имитатор 20 зернистости пленки принимает информацию о зернистости пленки из устройства 16 моделирования зернистости пленки. Имитатор 20 зернистости пленки может представлять собой запрограммированный процессор или специализированную логическую схему, имеющую функциональную возможность имитации зернистости пленки для объединения через объединитель 22 с потоком декодированного видеосигнала.
Имитация зернистости пленки состоит в синтезировании выборок зерна пленки, которые имитируют внешние черты содержания исходной пленки. Как описано, моделирование зернистости пленки происходит в передатчике 10 фиг.1, в то время как имитация зернистости пленки происходит в приемнике 11. В частности, имитация зернистости пленки происходит в приемнике 11 вместе с декодированием потока входящих видеосигналов из передатчика 10, расположенного до выхода потока видеосигналов декодера. Следует заметить, что процесс декодирования, который происходит в приемнике 11, не использует изображения с добавленной зернистостью пленки. Вместо этого имитация зернистости пленки составляет способ последующей обработки, предназначенный для синтеза смоделированной зернистости пленки в декодированные изображения для отображения. По этой причине стандарт сжатия видеосигнала ITU-T Rec. H.264|ISO/IEC 14496-10 не содержит спецификаций относительно процесса имитации зернистости пленки. Однако имитация зернистости пленки требует информации, относительно структуры зернистости во входящем видеосигнале, причем эта информация обычно передается в характеризующем структуру пленки сообщении дополнительной для модернизации (SEI, ИДМ) при использовании стандарта сжатия видеоданных ITU-T Rec. H.264|ISO/IEC 14496-10, как определено с помощью Редакции 1 (расширения диапазона точности воспроизведения) этого стандарта сжатия.
В соответствии с представленными принципами здесь раскрыт способ имитации зернистости пленки, который дает возможность имитации зернистости пленки с точностью до бита и имеет приложения в продуктах потребителя, таких как, например, устройства воспроизведения HD DVD. Другие возможные приложения могли бы включать в себя телеприставки, телевизионные приемники и даже записывающие устройства, такие как записывающие видеокамеры и тому подобные. Спецификации способа имитации соответствуют стандарту сжатия видеоданных ITU-T Rec. H.264|ISO/IEC 14496-10. Имитация зернистости пленки происходит после декодирования битового потока видеосигналов и перед отображением пикселей. Процесс имитации зернистости пленки требует декодирования дополнительной информации о зернистости пленки, в конечном счете, переданной в сообщении ИДМ характеристик зерна пленки, как определено с помощью Редакции 1 (расширения диапазона точности) стандарта [1] ITU-T Rec. H.264|ISO/IEC 14496-10.
Спецификации, влияющие на сообщение ИДМ характеристик зерна пленки, предоставлены, чтобы гарантировать, что технология будет отвечать требованиям высокоразрешающих систем в понятиях качества и сложности.
Спецификации сообщения ИДМ характеристик зернистости пленки
Как обсуждено, характеристики зернистости пленки появляются в сообщении ИДМ характеристик зернистости пленки ITU-T Rec. H.264|ISO/IEC 14496-10, которое сопровождает изображение. Величины параметров в сообщении характеристик зернистости пленки ограничены следующим образом.
model-id определяет модель имитации. В проиллюстрированном варианте осуществления величина равна 0, что идентифицирует модель имитации зернистости пленки как частотную фильтрацию.
separate_colour_description_present_flag определяет, отличается ли цветовое пространство, в котором оценивают параметры зернистости пленки, от цветового пространства, в котором закодирована последовательность видеосигналов. В проиллюстрированном варианте осуществления величина равна 0, что указывает, что цветовое пространство для моделирования зернистости пленки остается тем же самым, что и для кодирования.
blending_mode_id определяет режим смешивания, используемый для смешивания имитированной зернистости пленки с декодированными картинами. В проиллюстрированном варианте осуществления величина равна 0, что соответствует аддитивному режиму смешивания.
log2_scale_factor определяет логарифмический коэффициент масштабирования, используемый, чтобы представлять параметры зернистости пленки в сообщении ИДМ. В проиллюстрированном варианте осуществления величина находится в диапазоне [2,7], чтобы гарантировать, что имитация зернистости пленки может происходить с использованием 16-битовой арифметики.
intensity_interval_lower_bound[c][i] и intensity_interval_upper_bound[c][i] определяют пределы интервала i интенсивности цветовой составляющей с, для которой смоделированы параметры зернистости пленки. Для всех с и для любой величины v интенсивности будет один интервал i интенсивности, который проверяет intensity_interval_lower_bound[c][i]<=v и intensity_interval_upper_bound[c][i]>=v, так как не разрешается зернистость пленки за множественный период времени.
num_model_values_minus1[c] определяет число величин модели, представленных в каждом интервале интенсивности для цветовой составляющей с. Для всех с величина находится в диапазоне [0,2], что определяет, что не поддерживается полосовая фильтрация и перекрестная цветовая корреляция.
comp_model_value[c][i][0] определяет интенсивности зернистости пленки для цветовой составляющей с и интервала i интенсивности. Для всех с и i величина находится в диапазоне [0,255], чтобы гарантировать, что имитация зернистости пленки может происходить с использованием 16-битовой арифметики.
comp_model_value[c][i][1] определяет частоту вертикального среза, которая отличает форму зернистости пленки для цветовой составляющей с и интервала i интенсивности. Для всех с и i величина находится в диапазоне [2, 14], который включает в себя необходимые структуры зернистости.
comp_model_value[c][i][2] определяет частоту горизонтального среза, которая отличает форму зернистости пленки для цветовой составляющей с и интервала i интенсивности. Для всех с и i величина находится в диапазоне [2, 14], который включает в себя необходимые структуры зернистости.
film_grain_characteristics_repetition_period указывает, будет ли присутствовать другое сообщение ИДМ характеристик зернистости пленки в битовом потоке, и определяет интервал отсчета порядка картины, который будет представлять другое сообщение ИДМ характеристик зернистости пленки. В проиллюстрированном варианте осуществления величина равна 0, чтобы определять, что сообщение ИДМ характеристик зернистости пленки применяется только к текущей декодированной картине.
В соответствии с настоящими принципами сообщение ИДМ характеристик зернистости пленки должно предшествовать всем картинам, требующим вставки зернистости пленки. Этот подход гарантирует точность до бита в трюковом режиме воспроизведения, а также в обычном режиме воспроизведения для медиа устройств воспроизведения, таких как устройства воспроизведения DVD и тому подобных, и дает возможность вставки зернистости пленки с точностью до бита как в команде декодирования, так и в команде отображения, при условии, что имитация зернистости пленки происходит с использованием способов с точностью до бита.
При объединении всех цветовых составляющих с и интервалов интенсивности в сообщении ИДМ число различных пар (comp_model_value[c][i][1], comp_model_value[c][i][2]) не может превышать десяти. Все остальные параметры в сообщении ИДМ характеристик зернистости пленки, определенные с помощью стандарта ITU-T Rec. H.264|ISO/IEC 14496-10, не имеют ограничений в соответствии с настоящими принципами.
Имитация зернистости пленки с точностью до бита
Имитация зернистости пленки происходит в текущем изображении пока параметр film_grain_characteristics_cancel_flag не равен 1. Современные спецификации стандарта сжатия видео ITU-T Rec. H.264|ISO/IEC 14496-10 дают возможность имитации зернистости пленки во всех цветовых составляющих. Имитация зернистости пленки и добавление смоделированной зернистости пленки к цветовой составляющей с декодированной картины происходит, если comp_model_present_flag[c] равен 1 в сообщении ИДМ характеристик зернистости пленки. В соответствии с настоящими принципами имитация зернистости пленки с точностью до бита происходит с помощью определения базы данных структуры зернистости пленки. После этого происходит псевдослучайный выбор структуры зернистости пленки с использованием для этой цели равномерного генератора псевдослучайных чисел. Затем выбранная структура подвергается точной последовательности операций. Имитация зернистости пленки обычно происходит независимо для каждой цветовой составляющей.
Последовательность операций имитации зернистости пленки
Последовательность операций, выполняемых для имитации и добавления зернистости пленки к декодированной картине, появляется на фиг.2. Конкретизация процесса имитации для конкретного одного из триады основных цветов происходит с помощью установки с равным 0, 1 или 2. В проиллюстрированном варианте осуществления имитация зернистости пленки происходит в растровом порядке сканирования с размером блока, равным 8×8 пикселей, но остаются возможными другие реализации.
Последовательность операций начинается с выполнения этапа 100, чтобы установить параметры зернистости пленки. Часть процесса установления параметров зернистости пленки для имитируемой зернистости пленки включает в себя извлечение информации о зернистости пленки, переносимой входящим видеосигналом, который инициирован после воспроизведения DVD 12, или который инициируется из телеприставки 200. С помощью закодированного входящего видеосигнала с использованием стандарта кодирования видеосигнала ITU-T Rec. H.264|ISO/IEC 14496-10 информация о зернистости пленки появится в сообщении ИДМ. Извлечение сообщения ИДМ требует декодирования входящего закодированного Н.264 видеосигнала с использованием декодера 101, соответствующего Н.264|MPEG-4 AVC, как изображено на фиг. 2. На практике декодер 101 существовал бы в телеприставке 200 или в устройстве воспроизведения DVD для воспроизведения информации в DVD 12.
Сообщение ИДМ содержит несколько параметров, включая intensity_interval_lower_bound[c][i] и intensity_interval_upper_bound[c][i], где i находится в диапазоне от 0 до величины параметра num_intensity_intervals_minus1[c]. Эти параметры сообщения ИДМ сравниваются со средней величиной интенсивности пикселей, вычисленной для цветовой составляющей каждого не перекрывающегося блока пикселей 8×8 в декодированном изображении, запомненном в буфере 102 отображения, после декодирования с помощью декодера 101. Для каждого не перекрывающегося блока пикселей 8×8 из цветовой составляющей с декодированного изображения происходит вычисление средней величины в течение этапа 103 следующим образом:
avg=0
for(k=0; k<8; k++)
for(l=0; l<8; l++)
avg+=decoded_picture[c][m+k][n+1]
avg=(avg+32)>>6
где (m,n) - верхние левые координаты блока, а decoded_picture[c][m+k][n+1] - величина декодированных пикселей с координатами (m+k, n+1) цветовой составляющей с.
Среднюю величину сравнивают с параметрами intensity_interval_lower_bound[c][i] и intensity_interval_upper_bound[c][i] сообщения ИДM для величин i, находящихся в диапазоне от 0 до num_intensity_intervals_minus1[c]. Величина i, для которой средняя величина блока больше или равна intensity_interval_lower_bound[c][i] и меньше или равна intensity_interval_upper_bound[c][i], обозначенная s, служит для выбора параметров зернистости пленки для текущего блока, установленного в течение этапа 100. Если не существует величина, которая выполняет предыдущее условие, в текущем блоке не происходит имитация зернистости пленки. В таком случае процесс создания блока зернистости пленки, который иначе бы происходил в течение этапа 104, как описано далее, не происходит. При таких условиях этап 108 разблокирования, как описано далее, принимает в качестве входных данных блок 8×8 со всеми его пикселями, равными нулю.
В проиллюстрированном варианте осуществления сообщение ИДМ содержит частоты горизонтального и вертикального среза (иногда упоминаемые как частоты отсечки), которые описывают характеристики двухмерного фильтра, который определяет требуемую структуру зернистости пленки. Частоты отсечки составляющих (с=1,2) цветности, приведенные в сообщении ИДМ, когда приведены в формате цветности 4:4:4, подвергаются масштабированию, чтобы адаптироваться к формату цветности 4:2:0, следующим образом:
comp_model_value[c][s][1]=Clip(2,14,(comp_model_value[c][s][1]<<1))
comp_model_value[c][s][2]=Clip(2,14,(comp_model_value[c][s][2]<<1))
Этап 104 инициирует процесс установления блока зернистости пленки, обычно, хотя не обязательно, размером 8×8 пикселей. Этап установления блока зернистости пленки 8×8 пикселей включает в себя извлечение блока выборок зернистости пленки 8×8 из базы 105 данных зернистости пленки и масштабирование выборок до соответствующей интенсивности. Масштабирование, хотя желательно, но не обязательно должно происходить. База 105 данных обычно содержит 169 структур 4096 выборок зернистости пленки, причем каждая выборка представляет структуру зернистости пленки 64×64. База 105 данных хранит величины в виде дополнительного двоичного кода, находящегося в диапазоне от -127 до 127. Синтез каждой структуры зернистости пленки обычно происходит с использованием конкретной пары частот отсечки, которые образуют двухмерный фильтр, который определяет структуру зернистости пленки. Частоты отсечки, переданные в сообщении ИДМ, дают возможность доступа к базе 105 данных структуры зернистости пленки во время имитации зернистости пленки.
Создание блока из 8х8 пикселей зернистости пленки включает в себя не только извлечение блока выборок зернистости пленки 8х8 из базы данных, но и масштабирование этих выборок до соответствующей интенсивности. Частоты отсечки comp_model_value[c][s][1] и comp_model_value[c][s][2] определяют, какая структура базы данных использована в качестве источника выборок зернистости пленки, и две произвольно сгенерированные величины выбирают из нее блок 8×8. Эти случайные величины представляют горизонтальное и вертикальное смещение в структуре пикселей 64×64, и их создают с использованием следующей процедуры:
k_offset=(MSB16(x(r,ec))%52)
K_offset &=0xFFFC
K_offset+=m&0x0008
L_offset=(LSB16(x(r,ec))%56)
L_offset &=0xFFF8
L_offset+=m&0x0008
где x(r,ec) указывает r-ый символ последовательности х псевдослучайных чисел, сгенерированных с помощью генератора 114 случайных чисел, изображенного на фиг.3, когда генератор случайных чисел инициализируют с помощью начального числа eс. Как видно на фиг.3, генератор 114 случайных чисел содержит сдвиговый регистр 32 бит, наиболее значащие шестнадцать бит и наименее значащие шестнадцать бит которого составляют величины МSB16 и LSB16, появляющиеся выше. (m,n) - координаты текущего блока 8х8 в декодированной картине. Для k_offset первое уравнение генерирует псевдослучайную величину, равномерно распределенную в диапазоне [0,51], второе уравнение ограничивает эту величину до чисел, кратных 4, а последнее уравнение добавляет 8 к k_offset, когда m%16 равно 8. Эквивалентные операции выполняют для l_offset.
31
3
На практике генератор 114 псевдослучайных чисел фиг.3 использует оператор примитивного многочлена по модулю 2, x+x+1 в связи со сдвиговым регистром 32 бит, чтобы случайным образом выбирать блоки зернистости пленки пикселей 8×8 из структуры зернистости пленки пикселей 64×64, запомненных в базе 105 данных. В проиллюстрированном варианте осуществления инициализация начального числа генератора 114 случайных чисел происходит в соответствии со следующим уравнением:
ec=Seed_LUT[ABS(POC)+idr_pic_id<<5+offset[c]%173]
где
ABS(.) обозначает абсолютную величину;
РОС - подсчет порядка изображения текущего изображения, которое будет получено из потока видеоданных, как определено в стандарте ITU-T Rec. H.264|ISO/IEC 14496-10; и
idr_pic_id должен быть подсчитан из заголовка секции потока видеосигналов ITU-T Rec. H.264|ISO/IEC 14496-10, для того чтобы идентифицировать изображения IDR.
Чтобы обеспечить соответствующую имитацию зернистости, спецификация системы HD DVD определяет, что idr_pic_id изменяется для каждого закодированного IDR; тогда как offset[3]={0,58<115} обеспечивает разное смещение для каждой цветовой составляющей; и Seed_LUT появляется в дополнении А, подраздел А.3. В течение паузы начальные числа генератора 114 псевдослучайных чисел подвергаются инициализации до той же самой величины в начале картины. В качестве альтернативы начальное число могло бы быть инициировано следующим образом:
ec=Seed_LUT[PicOrderCnt+PicOrderCnt_offset<<5+color_offset[c]%256]
где color_offset[3]={0,85,170}, а Seed_LUT содержит 256 величин вместо 173.
Псевдослучайная величина x(r,ec), созданная посредством генератора 114 псевдослучайных чисел фиг.3, подвергается обновлению каждые 16 пикселей (по горизонтали) и каждые 16 строк (по вертикали). Каждая не перекрывающаяся область из 16×16 пикселей декодированной картины использует одно и то же псевдослучайное число x(r,ec). Как проиллюстрировано на фиг.4, результирующая последовательность псевдослучайных величин x(r,ec) следует порядку сканирования растра через сетку 16х16 пикселей, таким образом, давая возможность упорядочения сканирования растра блоков из 8х8 пикселей, как обсуждено ранее.
В качестве части этапа 104 создания блока зернистости пленки в проиллюстрированном варианте осуществления после вычисления случайных смещений следует масштабирование 64 величин зернистости пленки, извлеченных из базы данных, следующим образом:
где h равно comp_model_value[c][s][1]-2, v равно comp_model_value[c][s][2]-2, коэффициент 6 масштабирует величины зернистости пленки, предоставленные в добавлении А, приложении А.3, а BIT0 обозначает НЗБ.
Разблокирование происходит в течение этапа 108, в соответствии с чем фильтр разблокирования (не изображен) применяют между смежными блоками зернистости пленки, чтобы обеспечить бесшовное формирование структур зернистости пленки. В проиллюстрированном варианте осуществления фильтр разблокирования применяется только к вертикальным краям между смежными блоками. Допуская, что блоки зернистости пленки имитируют в порядке сканирования растра и что самые левые пиксели current_fg_block (текущего блока зернистости пленки) являются смежными самым правым пикселям previous_fg_block (предыдущего блока зернистости пленки), фильтр разблокирования будет выполнен посредством 3-отводного фильтра следующим образом:
for(k=0;k<8;k++)
l1=previous_fg_block[6][k]
l0=previous_fg_block[7][k]
r0=current_fg_block[0][k]
r1=current_fg_block[1][k]
current_fg_block[0][k]=(l0+(r0<<1)+r1+2)>>2
previous_fg_block[7][k]=(l1+(l0<<1)+r0+2)>>2
}
В конце процесса имитации зернистости пленки разблокированный блок зернистости пленки подвергается соединению с соответствующим блоком декодированной картины посредством блока 110 соединения, и результат ограничивают до [0,255] перед отображением:
for(k=0;k<8;k++)
for(l=0;l<8;l++)
display_picture[c][m+k][n+1]=Clip(0,255,
decoded_ picture[c][m+k][n+1]+
fg_block[k][l])
где (m,n) - верхние левые координаты блока, decoded_ picture[c][m+k][n+1] - величина декодированного пикселя с координатами [m+k][n+1] цветовой составляющей с, а display_picture[c][m+k][n+1] - выходные видеосигналы с теми же самыми координатами.
Переключающий элемент 111 управляет прохождением разблокированного блока зернистости пленки в блок 110 под управлением элемента 112 управления. Элемент 112 управления управляет переключающим элементом, реагирующим на то, равен ли параметр сообщения ИДМ film_grain_characteristics_cancel_flag единице, или превышен ли диапазон кадров, заданный с помощью параметра film_grain_characteristics_repetition_period, что предписывает, должна ли происходить имитация зерна пленки, как обсуждено выше.
Несмотря на то, что он изображен отдельно от телеприставки 200, полный процесс, содержащий этапы 100, 103, 104 и 108, а также элементы 101, 102, 105, 106, 109, 111 и 112, мог бы без труда существовать в телеприставке. То же самое было бы справедливо относительно устройства воспроизведения (DVD) (не изображено), воспроизводящего содержимое на DVD 12.
Дополнение А
Выполнение представления с точностью до бита базы 105 данных структуры зернистости пленки может происходить с помощью запоминания предварительно вычисленного списка величин или с помощью вычисления величин посредством процесса инициализации.
Процесс создания базы данных
Создание с точностью до бита базы 105 данных может происходить с помощью предоставления: (1) LUT, СТ (справочная таблица) гауссовых случайных чисел; (2) равномерного генератора псевдослучайных чисел, такого как генератор 106, преобразования целых чисел; и с помощью выполнения последовательности операций, описанных далее. Создание структуры зернистости пленки 64х64 с горизонтальной частотой отсечки h+2 и вертикальной частотой отсечки v+2 дает базу данных, обозначенную как база данных [h][v]. Процесс создания базы данных требует создания всех возможных структур в базе данных [h][v], h и v находятся в диапазоне от 0 до 12.
Чтобы сформировать изображение отдельного блока 64х64, считывают до 4096 величин из СТ гауссовых случайных чисел. СТ гауссовых случайных чисел, предоставленная в Приложении А.3, состоит из 2048 величин, запомненных в виде двоичного дополнительного кода и находящихся в диапазоне от -127 до 127. Равномерный генератор псевдослучайных чисел (PRNG, ГПСЧ), определенный в разделе 2, используется, чтобы случайным образом осуществлять доступ к СТ гауссовых случайных чисел.
На этапе инициализации величины изображения блока 64х64 будут установлены в ноль, а начальное число ГПСЧ будет инициализировано следующим образом:
ehv=Seed_LUT[h+v*13]
(A1)
Создание изображения блока 64х64 происходит следующим образом:
fh=((h+3)<<2-1
fv=((v+3)<<2-1
for(l=0,r=0;l<=fv;l++)
for(k=0;k<=fh;k+=4){
B[k][l]=Gaussian_LUT[x(r,ehv)%2048]
B[k+1][l]=Gaussian_LUT[x(r,ehv)+1)%2048]
B[k+2][l]=Gaussian_LUT[x(r,ehv)+2)%2048]
B[k+3][l]=Gaussian_LUT[x(r,ehv)+3)%2048]
r++
}
B[0][0]=0
где x(r,ehv) - псевдослучайная величина, созданная при итерации r многочлена х, инициированного при начальном числе ehv.
Вычисление обратного целочисленного преобразования 64х64
Обратное преобразование матрицы 64х64 коэффициентов даст базу данных [h][v] структуры зернистости пленки. Вычисление обратного преобразования происходит следующим образом:
Т
64
64
database[h][v]=(((R xB+128)>>8)xR+128)>>8
Разблокирование горизонтальных краев блока 8х8
Конечный этап в процессе создания структуры зернистости пленки 64х64 содержит разблокирование горизонтальных краев блока 8х8. Разблокирование выполняют с помощью ослабления величин пикселей в соответствии со следующим уравнением:
for(l=0;l<64;l+=8){
for(k=0;k<64;k++{
database[h][v][k][l]=(database[h][v][k][l]*deblock_factor[v]>>7
database[h][v][k][l]=(database[h][v][k][l]*deblock_factor[v]>>7
}
}
где deblock_factor[v] определен для предпочтительного варианта осуществления как:
deblock_factor[v]={66, 71, 77, 84, 90, 96, 103, 109, 116, 122, 128, 128, 128}.
Вышеприведенное описывает способ, предназначенный для имитации зернистости пленки и, более конкретно, для имитации зернистости пленки в изображении для воспроизведения с помощью медиа устройства.