ТОЧНАЯ ПОБИТОВАЯ ИНИЦИАЛИЗАЦИЯ НАЧАЛЬНОГО ЧИСЛА ДЛЯ ГЕНЕРАТОРОВ ПСЕВДОСЛУЧАЙНЫХ ЧИСЕЛ, ИСПОЛЬЗУЕМЫХ В ВИДЕОСИСТЕМЕ
BIT-ACCURATE SEED INITIALISATION FOR PSEUDO-RANDOM NUMBER GENERATORS USED IN VIDEO SYSTEM

ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННЫЕ ЗАЯВКИ
Эта заявка заявляет преимущество предварительной заявки на патент США под порядковым номером 60/628500, поданной 16 ноября 2004 г. и озаглавленной "BIT ACCURATE SEED INITIALIZATION FOR PSEUDO-RANDOM NUMBER GENERATORS USED IN A VIDEO SYSTEM" ("ТОЧНАЯ ПОБИТОВАЯ ИНИЦИАЛИЗАЦИЯ НАЧАЛЬНОГО ЧИСЛА ДЛЯ ГЕНЕРАТОРОВ ПСЕВДОСЛУЧАЙНЫХ ЧИСЕЛ, ИСПОЛЬЗУЕМЫХ В ВИДЕОСИСТЕМЕ"), которая полностью включена в данный документ посредством ссылки.
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение относится, в общем, к видеокодерам и видеодекодерам и, в частности, к точной побитовой инициализации начального числа для генераторов псевдослучайных чисел (PRNG), используемых для имитации зерна кинопленки в видеосистемах.
УРОВЕНЬ ТЕХНИКИ ИЗОБРЕТЕНИЯ
Зерно кинопленки образует изображения в кинофильме во время процесса проявки. Зерно кинопленки четко заметно в изображениях с высоким разрешением и становится характерной особенностью кинофильма, которую необходимо сохранить посредством целостной обработки изображений и цепочки доставки. Тем не менее, сохранение зерна кинопленки является вызовом для современных кодеров, так как усиление сжатия, относимое к временному предсказанию, не может использоваться. Из-за свойства случайности зерна визуально кодирование без потерь достигается только при очень высоких скоростях передачи данных. Кодеры с потерями имеют тенденцию гасить зерно кинопленки, когда фильтруют высокие частоты, типично ассоциативно связанные с шумом и тонкими структурами.
Управление зерном кинопленки (FGM) представлено как новый инструмент, который позволяет кодировать зерно в кинофильме посредством параметризованной модели, которая должна быть передана как параллельная информация. Для того чтобы поддержать FGM, поправка к точности расширения диапазона (FRExt) к стандарту объединенной группы по видео (JVT) ITU-T Rec. H.264 I ISO/IEC 14496-10 I MPEG-4 AVC I (в дальнейшем "стандарт H.264") определила характеристики зерна кинопленки в сообщении с дополнительной информацией расширения (SEI). Сообщение SEI описывает параметры зерна кинопленки в отношении свойств, например размер и яркость, и позволяет видеодекодеру моделировать вид зерна кинопленки в декодированном изображении. Стандарт H.264 задает, какие параметры существуют в сообщении SEI зерна кинопленки, как интерпретировать параметры, и синтаксис для кодирования сообщения SEI в двоичном формате. Тем не менее, стандарт H.264 не задает точную процедуру для моделирования зерна кинопленки при приеме сообщения SEI о зерне кинопленки. Следует принимать во внимание, что FGM может использоваться совместно с любым другим способом видеокодирования, так как оно использует параллельную информацию, передаваемую от кодера, который не влияет на процесс декодирования.
В FGM кодер моделирует зерно кинопленки видеопоследовательности, и декодер имитирует зерно кинопленки согласно принятой информации. Кодер может использовать FGM, чтобы улучшить качество сжатого видео, когда существует сложность сохранения зерна кинопленки. Дополнительно, кодер имеет вариант удаления или ослабления зерна, предшествующего кодированию, чтобы уменьшить скорость передачи данных.
Имитация зерна кинопленки нацелена на синтез примеров зерен кинопленки, которые имитируют внешний вид исходного содержимого кинопленки. В отличие от моделирования зерна кинопленки, которое целиком выполняется в кодере, имитация зерна кинопленки выполняется в декодере. Имитация зерна кинопленки выполняется после декодирования видеопотока и предшествует отображению. Изображения с дополненным зерном кинопленки не используются в рамках процесса декодирования. Являясь способом последующей обработки, синтез сымитированного зерна кинопленки по декодированным изображениям для процесса отображения не задан в стандарте H.264. Процесс имитации зерна кинопленки включает в себя декодирование дополнительной информации о зерне кинопленки, передаваемой в сообщении SEI о зерне кинопленки, как заданный поправкой к точности расширения диапазона стандарта H.264.
Таким образом, следует принимать во внимание, что имитация зерна кинопленки является относительно новой технологией, используемой в последующей обработке для имитации зерна кинопленки в сгенерированном компьютером материале, а также во время восстановления старых неэкспонированных кинопленок. Для этих типов приложений существует коммерческое программное обеспечение на рынке, подобно Cineon от компании Eastman Kodak Co, Rochester, NY и Grain Surgery™ от компании Visual Infinity. Эти инструментальные программные средства в общем функционируют на основе взаимодействия пользователя и являются сложными для реализации, что делает их неподходящими для приложений кодирования видео в реальном масштабе времени. Более того, ни одно из этих инструментальных программных средств не имеет возможности интерпретировать сообщение SEI о зерне кинопленки, как задано стандартом H.264.
Теперь будет задано описание по генератору псевдослучайных чисел (PRNG) с инициализацией начального числа согласно предшествующему уровню техники.
В предшествующих методиках для выполнения имитации зерна кинопленки в системах DVD высокой четкости (HD DVD) побитовая точность достигалась лишь во время нормального режима воспроизведения, то есть когда процесс имитации зерна кинопленки начинался в начале последовательности и не был прерван во время целостного процесса декодирования. Во время сложного режима проигрывания PRNG, используемый для имитации зерна кинопленки, может находиться в другом состоянии, чем во время обыкновенного воспроизведения, имея результатом неточное побитовое воспроизведение зерна кинопленки. Это означает, что то же самое изображение может иметь различное зерно, в зависимости от того, декодировано ли оно во время обыкновенного воспроизведения или во время сложного режима воспроизведения (подобно быстрой перемотке вперед или переходу). Несмотря на то что это может не всегда являться предметом с точки зрения визуального качества (даже если зерно кинопленки не является точным побитовым, часто оно визуально выглядит аналогично), оно становится значимым для реализации тестового программного или аппаратного обеспечения, так как без побитовой точности невозможно сравнивать достигнутый результат в отношении к эталонному результату.
Таким образом, в предшествующих методиках, различие в воспроизведении зерна кинопленки было из-за различного состояния PRNG в заданном кадре, в зависимости от того, как этот кадр доходил (обыкновенное воспроизведение или сложный режим воспроизведения). Это означает, что даже если те же самые параметры используются в заданном изображении, если состояние PRNG не является тем же самым, тогда вводится различное зерно.
На основе вышеупомянутого сообщения с дополнительной информацией расширения (SEI) разработаны несколько подходов предшествующего уровня техники в отношении спецификаций для имитации зерна кинопленки. Эти подходы предшествующего уровня техники нацелены на приложения с высоким качеством и предусматривают большую гибкость в имитации различных шаблонов зерна кинопленки и по компонентам яркости, и по насыщенности цвета с небольшим увеличением в затратах на вычисление. Тем не менее, эти подходы предшествующего уровня техники не предусматривают побитовой точности и стандарта H.264, соответствующих процессу имитации зерна кинопленки.
Соответственно, было бы желательно и весьма выгодно иметь способы и устройство для точной побитовой инициализации начального числа для генератора псевдослучайных чисел (PRNG), используемого для имитации зерна кинопленки в видеосистеме. Подобные способы и устройство должны допускать имитацию зерна кинопленки, которая соответствует и побитовой точности, и стандарту H.264.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
К этим и другим изъянам и недостаткам предшествующего уровня техники обращается настоящее изобретение, которое направлено на точную побитовую инициализацию начального числа для генератора псевдослучайных чисел (PRNG), используемого для имитации зерна кинопленки в видеосистеме. Настоящее изобретение преимущественно допускает имитацию зерна кинопленки, которая соответствует и побитовой точности, и стандарту H.264.
Согласно аспекту настоящего изобретения предусматривается способ для инициализации начального числа генератора псевдослучайных чисел (PRNG) для использования в видеосистеме. Способ включает в себя этапы создания таблицы соответствия начальных чисел PRNG и инициализации одного из начальных чисел PRNG из таблицы соответствия для изображения посредством организации доступа к таблице соответствия, используя значение, соответствующее порядку изображения.
Согласно другому аспекту настоящего изобретения предусматривается способ для инициализации начального числа генератора псевдослучайных чисел (PRNG) для имитации зерна кинопленки. Способ включает в себя этапы создания таблицы соответствия начальных чисел PRNG и инициализации одних начальных чисел PRNG из таблицы соответствия для изображения посредством организации доступа к таблице соответствия, используя, по меньшей мере, одно дополнительное информационное значение.
Согласно еще и другому аспекту настоящего изобретения предусматривается способ для передачи, по меньшей мере, одного значения, используемого для извлечения начального числа генератора псевдослучайных чисел (PRNG). Способ включает в себя этап передачи, по меньшей мере, одного значения как дополнительной информации.
Согласно дополнительному аспекту настоящего изобретения предусматривается способ для передачи начального числа генератора псевдослучайных чисел (PRNG) для имитации зерна кинопленки. Способ включает в себя этап передачи начального числа PRNG для имитации зерна кинопленки в поле пользовательских данных, в котором поле пользовательских данных соответствует полю пользовательских данных, закодированному не по стандарту Н.264.
Согласно, кроме того, дополнительному аспекту настоящего изобретения предусматривается устройство для инициализации начального числа генератора псевдослучайных чисел (PRNG) для использования в видеосистеме. Устройство включает в себя имитатор зерна кинопленки для создания таблицы соответствия начальных чисел PRNG и инициализации одного из начальных чисел PRNG из таблицы соответствия для изображения посредством организации доступа к таблице соответствия, используя значение, соответствующее порядку изображения.
Согласно дополнительному аспекту настоящего изобретения предусматривается устройство для инициализации начального числа генератора псевдослучайных чисел (PRNG) для имитации зерна кинопленки. Устройство включает в себя имитатор зерна кинопленки для создания таблицы соответствия начальных чисел PRNG и инициализации одного из начальных чисел PRNG из таблицы соответствия для изображения посредством организации доступа к таблице соответствия, используя, по меньшей мере, одно дополнительное информационное значение.
Согласно, кроме того, дополнительному аспекту настоящего изобретения предусматривается устройство для передачи, по меньшей мере, одного значения, используемого для извлечения начального числа генератора псевдослучайных чисел (PRNG). Устройство включает в себя разработчик модели зерна кинопленки для передачи, по меньшей мере, одного значения как дополнительной информации.
Согласно еще дополнительному аспекту настоящего изобретения предусматривается устройство для передачи начального числа генератора псевдослучайных чисел (PRNG) для имитации зерна кинопленки. Устройство включает в себя разработчик модели для передачи начального числа PRNG для имитации зерна кинопленки в поле пользовательских данных, в котором поле пользовательских данных соответствует полю пользовательских данных, закодированному не по стандарту Н.264.
Эти и другие аспекты, характеристики и преимущества настоящего изобретения станут очевидными из последующего подробного описания примерных вариантов осуществления, которое необходимо прочесть в связи с сопроводительными чертежами.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Настоящее изобретение может быть лучше понято в соответствии со следующими примерными чертежами, на которых:
Фиг.1 является блок-схемой, иллюстрирующей управление зерном кинопленки (FGM), которое обрабатывает цепочку, к которой может быть применено настоящее изобретение;
Фиг.2 является блок-схемой, иллюстрирующей способ для точной побитовой инициализации начального числа для генератора псевдослучайных чисел (PRNG) для имитации зерна кинопленки в видеосистеме в соответствии с принципами настоящего изобретения;
Фиг.3 является диаграммой, иллюстрирующей примерное вычисление индекса таблицы соответствия (LUT) в соответствии с принципами настоящего изобретения;
Фиг.4 является блок-схемой, иллюстрирующей другой способ для точной побитовой инициализации начального числа для генератора псевдослучайных чисел (PRNG) для имитации зерна кинопленки в видеосистеме в соответствии с принципами настоящего изобретения;
Фиг.5 является диаграммой, иллюстрирующей другие примерные вычисления индекса таблицы соответствия (LUT) в соответствии с принципами настоящего изобретения;
Фиг.6 является диаграммой, иллюстрирующей, к тому же, другие примерные вычисления индекса таблицы соответствия (LUT) в соответствии с принципами настоящего изобретения;
Фиг.7 является блок-схемой, иллюстрирующей дополнительный способ для точной побитовой инициализации начального числа для генератора псевдослучайных чисел (PRNG) для имитации зерна кинопленки в видеосистеме в соответствии с принципами настоящего изобретения;
Фиг.8 является блок-схемой, иллюстрирующей, кроме того, дополнительный способ для точной побитовой инициализации начального числа для генератора псевдослучайных чисел (PRNG) для имитации зерна кинопленки в видеосистеме в соответствии с принципами настоящего изобретения;
Фиг.9 является блок-схемой, иллюстрирующей, кроме того, дополнительный способ для точной побитовой инициализации начального числа для генератора псевдослучайных чисел (PRNG) для имитации зерна кинопленки в видеосистеме в соответствии с принципами настоящего изобретения;
Фиг.10 является блок-схемой, иллюстрирующей дополнительный способ для точной побитовой инициализации начального числа для генератора псевдослучайных чисел (PRNG) для имитации зерна кинопленки в видеосистеме в соответствии с принципами настоящего изобретения; и
Фиг.11 является блок-схемой, иллюстрирующей, кроме того, дополнительный способ для точной побитовой инициализации начального числа для генератора псевдослучайных чисел (PRNG) для имитации зерна кинопленки в видеосистеме в соответствии с принципами настоящего изобретения.
ПОДРОБНОЕ ОПИСАНИЕ
Настоящее изобретение направлено на точную побитовую инициализацию начальных чисел для генератора псевдослучайных чисел (PRNG), используемого для имитации зерна кинопленки в видеосистеме. Настоящее изобретение может быть использовано для инициализации начального числа PRNG, например, при приеме нового сообщения с дополнительной информацией расширения (SEI) зерна кинопленки и в начале каждого изображения, предшествующего выполнению имитации зерна кинопленки.
Преимущественно, настоящее изобретение допускает имитацию зерна кинопленки, которое соответствует и побитовой точности, и стандарту H.264. Более того, настоящее изобретение преимущественно может использоваться для имитации зерна кинопленки во время обыкновенного воспроизведения и сложного режима воспроизведения. То есть, в отличие от предшествующего уровня техники, состояние PRNG является тем же самым, независимым от режима воспроизведения (например, обыкновенного воспроизведения, сложного режима воспроизведения).
Имитация зерна кинопленки выполняется после декодирования битового видеопотока и предшествует отображению в пикселах. Процесс имитации зерна кинопленки может включать в себя декодирование дополнительной информации о зерне кинопленки, передаваемой, например, в сообщении SEI о зерне кинопленки, как заданный поправкой к точности расширения диапазона (FRExt) стандарта H.264.
Настоящее описание иллюстрирует принципы настоящего изобретения. Таким образом, будет принято во внимание, что специалисты в данной области техники смогут разработать различные мероприятия, которые, хотя и не явно описаны или показаны в данном документе, реализуют принципы изобретения и включены в рамки его сущности и объема.
Все примеры и обусловленный язык, изложенные в данном документе, подразумевают педагогические цели, чтобы помочь читателю в понимании принципов изобретения и идей, привнесенные изобретателем для дополнения уровня техники, и должны быть истолкованы, как являющиеся без ограничения к подобным конкретно изложенным примерам и условиям.
Более того, все утверждения в данном документе, излагающие принципы, аспекты и варианты осуществления изобретения, а также их конкретные примеры, подразумевают охват и его структурных, и функциональных эквивалентов. Дополнительно, подразумевается, что подобные эквиваленты включают в себя и известные в настоящее время эквиваленты, а также эквиваленты, которые будут разработаны в будущем, т.е. любые разработанные элементы, которые выполняют ту же самую функцию, безотносительно к структуре.
Таким образом, например, будет принято во внимание специалистами в данной области техники, что блок-схемы, представленные в данном документе, представляют концептуальные представления иллюстративных схем, реализующих принципы изобретения. Аналогично, будет принято во внимание, что любые блок-схемы последовательности операций способа, блок-схемы, диаграммы перехода из одного состояния в другое, псевдокод и тому подобное представляют различные процессы, которые могут большей частью быть представлены в машиночитаемом носителе и так выполняться посредством компьютера или процессора, показан ли подобный компьютер или процессор явно или нет.
Функции различных элементов, показанных на чертежах, могут предусматриваться посредством использования выделенного аппаратного обеспечения, а также аппаратного обеспечения, допускающего выполнение программного обеспечения в ассоциативной связи с соответствующим программным обеспечением. Когда предусмотрены процессором, функции могут быть предусмотрены единственным выделенным процессором, единственным общим процессором или множеством отдельных процессоров, некоторые из которых могут быть совместно использованы. Более того, явное использование термина "процессор" или "контроллер" не следует толковать для ссылки исключительно на аппаратное обеспечение, допускающее выполнение программного обеспечения, и может неявным образом включать в себя без ограничения аппаратный цифровой процессор сигналов ("DSP"), постоянное запоминающее устройство ("ROM") для хранения программного обеспечения, оперативное запоминающее устройство ("RAM") и энергонезависимое запоминающее устройство.
Другое аппаратное обеспечение, традиционное и/или пользовательское, может также включаться. Аналогично, любые переключатели, показанные на чертежах, являются лишь концептуальными. Их назначение может выполняться посредством действия программной логической схемы, посредством специализированной логической схемы, посредством взаимодействия программного управления и специализированной логической схемы, или даже вручную, посредством конкретной методики, выбираемой конструктором, как более конкретно понятной из контекста.
В формуле изобретения из этого документа любой элемент, выраженный как средство для выполнения конкретного назначения, подразумевается для охвата любым способом выполнения этого назначения, включающего, например, a) сочетание элементов схемы, которое выполняет это назначение, или b) программное обеспечение в любой форме, включающее, следовательно, встроенное программное обеспечение, микрокод или тому подобное, объединенное с соответствующей схемой для выполнения этого программного обеспечения для осуществления назначения. Изобретению, как определено подобной формулой изобретения, свойственно на самом деле то, что функциональные возможности, предусматриваемые различными изложенными способами, сочетаются и сводятся вместе способом, к которому обязывает формула изобретения. Таким образом, принимают во внимание, что любое средство, которое может предусматривать эти функциональные возможности, эквивалентно тем, которые показаны в данном документе.
Обращаясь к фиг.1, увидим, что цепочка обработки управления зерном кинопленки (FGM), с которой может использоваться настоящее изобретение, отображается, в общем, позиционным обозначением 100. Цепочка обработки FGM включает в себя передатчик 110 и приемник 150. Передатчик включает в себя средство 112 уничтожения зерна кинопленки, видеокодер 114 и разработчик 116 модели зерна кинопленки. Приемник 150 включает в себя видеодекодер 152, имитатор 154 зерна кинопленки и объединитель 156 (показанный как суммирующее устройство, но другие средства для объединения выхода видеодекодера 152 и имитатора 154 зерна кинопленки также предполагаются как существующие в рамках объема изобретения).
Вход в передатчик 110 соединен в сигнальном обмене информацией с входом средства 112 уничтожения зерна кинопленки и первым входом разработчика 116 модели зерна кинопленки. Выход средства 112 уничтожения зерна кинопленки соединен в сигнальном обмене информацией с входом видеокодера 114 и вторым входом разработчика 116 модели зерна кинопленки. Выход видеокодера 114 доступен как первый выход передатчика 110. Выход разработчика 116 модели зерна кинопленки доступен как второй выход передатчика 110. Первый выход передатчика 110 соединен в сигнальном обмене информацией с первым входом приемника 150. Второй выход передатчика 110 соединен в сигнальном обмене информацией со вторым входом приемника 150. Первый вход приемника 150 соединен в сигнальном обмене информацией со входом видеодекодера 152. Второй вход приемника 150 соединен в сигнальном обмене информацией с первым входом имитатора 154 зерна кинопленки. Первый выход видеодекодера 152 соединен в сигнальном обмене информацией со вторым входом имитатора 154 зерна кинопленки. Второй выход видеодекодера 152 соединен в сигнальном обмене информацией с первым входом объединителя 156. Выход имитатора зерна кинопленки соединен в сигнальном обмене информацией со вторым входом объединителя 156. Выход объединителя 156 доступен как выход приемника 150.
Следует принять во внимание, что в некоторых вариантах осуществления настоящего изобретения начальные числа PRNG для имитации зерна кинопленки формируются в приемнике 150 (в особенности, имитатором 154 зерна кинопленки), в то время как в других вариантах осуществления начальные числа PRNG для имитации зерна кинопленки формируются в передатчике 110 (в особенности, разработчиком 116 модели зерна кинопленки) и передаются в приемник 150 для использования таким образом. Более того, в еще других вариантах осуществления, начальное число PRNG, формируемое в передатчике 110, передается в приемник 150 для объединения с начальным числом PRNG, формируемым в приемнике 150, чтобы получить новое число PRNG для использования для текущего изображения, для которого необходимо выполнить имитацию зерна кинопленки. Таким образом, для иллюстративных целей, и разработчик 116 модели зерна кинопленки и имитатор 154 зерна кинопленки, показанные на фиг.1, включают в себя генератор 199 псевдослучайных чисел для использования в соответствии с принципами настоящего изобретения. Несомненно, в зависимости от варианта осуществления, только одному из разработчиков 116 модели зерна кинопленки и имитатору 154 зерна кинопленки необходимо включать в себя PRNG. Заданные идеи настоящего изобретения, предусмотренные в данном документе, любой обычный специалист в данной и относящихся к данной областям техники рассмотрит эти и другие варианты передатчика и приемника (и в особенности разработчика модели зерна кинопленки и имитатора зерна кинопленки), наряду с сохранением сущности настоящего изобретения.
В отношении предшествующего уровня техники, чтобы преодолеть указанное выше отличие в предшествующем уровне техники относительно состояния генератора псевдослучайных чисел (особенно, когда переходят от обыкновенного воспроизведения в сложный режим воспроизведения) и ассоциативно связанной проистекающей проблемой предшествующего уровня техники вставки различного зерна, предлагается точный побитовый способ для инициализации начального числа PRNG в начале каждого изображения, которое независимо от режима воспроизведения. Точные побитовые способы, описанные в данном документе в соответствии с принципами настоящего изобретения, преимущественно также соответствуют стандарту H.264.
Сейчас будет задано описание относительно первого иллюстративного варианта осуществления в соответствии с принципами настоящего изобретения. Первый иллюстративный вариант осуществления описан в начале, и тогда за ним следует дополнительное описание соответствующего способа, показанного и описанного в отношении фиг.2, и примера из этого, показанного и описанного в отношении фиг.3.
Таблица соответствия (LUT) начальных чисел задана следующим:
0
1
2
L-1
LUT = {начальное число, начальное число, начальное число, …, начальное число},
I
I
где начальное числоявляется вероятным начальным числом для PRNG, и L является количеством возможных начальных чисел. В то время как необязательно обеспечивать соответствующую случайность, L должно быть равно или больше, чем максимальное расстояние (в изображениях) между последовательными сообщениями SEI зерна кинопленки. В конкретном варианте осуществления, где используется 32-битный регистр для реализации PRNG, начальное числобудет являться целым 32-битным значением.
Тогда начальное число PRNG устанавливается до следующего значения в начале изображения (во время t):
начальное число (t) = LUT[(POC(t) + смещение)%L],
где POC(t) является порядковым номером изображения при изображении во время t, как задано в стандарте H.264, L является длиной таблицы соответствия, и смещение является величиной, установленной при приеме нового сообщения SEI зерна кинопленки. Для того чтобы избежать повторения той же самой последовательности индексов, когда получают доступ к LUT, L может быть равна простому числу, например 61 или 127. В первом иллюстративном варианте осуществления смещение устанавливается следующим образом:
смещение = 0.
Это предоставляет очень простой способ определения начального числа PRNG, так как необходимо только POC текущего изображения, которое уже известно декодеру. Кроме того, порядковый номер изображения (POC) заданного изображения будет всегда являться тем же самым, безотносительно того, как достигнуто изображение, то же самое начальное число будет использоваться в любом режиме воспроизведения.
Обращаясь к фиг.2, увидим, что способ для точной побитовой инициализации начального числа для генератора псевдослучайных чисел (PRNG) для имитации зерна кинопленки в видеосистеме отображается позиционным обозначением 200.
Способ 200 включает в себя начальный блок 202, который передает управление в функциональный блок 205. Функциональный блок 205 задает таблицу соответствия начальных чисел следующим образом
0
1
2
L-1
LUT = {начальное число, начальное число, начальное число, …, начальное число}
и передает управление в функциональный блок 210.
Функциональный блок 210 устанавливает начальное число PRNG до следующего значения в начале изображения (во время t):
начальное число (t) = LUT[(POC(t) + смещение)%L].
Дополнительно рассматривая функциональный блок 210, смещение устанавливается следующим образом:
смещение = 0,
и управление передается в конечный блок 215.
Обращаясь к фиг.3, увидим, что пример вычисления индекса таблицы соответствия (LUT) отображается, в общем, позиционным обозначением 300. В частности, вычисление индекса LUT верно для случая, где L = 61, и смещение = 0.
Сейчас будет задано описание относительно второго иллюстративного варианта осуществления в соответствии с принципами настоящего изобретения. Второй иллюстративный вариант осуществления описан в начале, и тогда за ним следует дополнительное описание соответствующего способа, показанного и описанного в отношении фиг.4, и примеров из этого, показанных и описанных в отношении фиг.5 и 6.
Для последовательностей с частыми сбросами POC предыдущий подход, описанный в отношении фиг.2, не очень эффективен, так как та же самая последовательность начальных чисел будет использована повторно в последовательных кадрах. Для этих случаев раскрывается второй иллюстративный вариант осуществления, где смещение равно значению POC изображения, где сообщение SEI зерна кинопленки вставляется до сброса POC следующим образом:
FG SEI
смещение = POC(t).
Этот подход лишь немного более сложен (использует два POC), но он дает различную последовательность начальных чисел даже после сброса POC, при условии, если сбросы не происходят с постоянной скоростью.
Обращаясь к фиг.4, увидим, что способ для точной побитовой инициализации начального числа для генератора псевдослучайных чисел (PRNG) для имитации зерна кинопленки в видеосистеме отображается, в общем, позиционным обозначением 400.
Способ 400 включает в себя начальный блок 402, который передает управление в функциональный блок 405. Функциональный блок 405 задает таблицу соответствия начальных чисел следующим образом
0
1
2
L-1
LUT = {начальное число, начальное число, начальное число, …, начальное число}
и передает управление в функциональный блок 410.
Функциональный блок 410 устанавливает начальное число PRNG до следующего значения в начале изображения (во время t), где SEI зерна кинопленки вставляется до сброса POC следующим образом:
начальное число (t) = LUT[(POC(t) + смещение)%L].
Дополнительно рассматривая функциональный блок 410, смещение устанавливается следующим образом:
FG SEI
смещение = POC(t),
FG
SEI
где, как отмечено выше, POC(t) равно значению POC изображения, где сообщение SEI зерна кинопленки вставляется до сброса POC. Функциональный блок 410 тогда передает управление в конечный блок 415.
FG SEI
FG
SEI
Обращаясь к фиг.5 и 6, увидим, что примеры вычислений индексов таблицы соответствия (LUT) отображаются, в общем, позиционными обозначениями 500 и 600 соответственно. В частности, фиг.5 представляет вычисление индекса LUT для L = 61, смещение = POC(t), и фиг.6 представляет вычисление индекса LUT для L = 61, смещение = POC(t) со сбросами POC. Следует заметить, что индекс, используемый для предоставления доступа к LUT, должен быть положительным. Если он отрицательный (например, из-за отрицательного значения POC), тогда абсолютная величина может использоваться как индекс.
Для того чтобы иметь дело с последовательностями с частыми и постоянными сбросами POC из-за изображений с мгновенным обновлением декодирования (IDR), параметр idr_pic_id, переданный в части заголовка битовых потоков по стандарту H.264 I MPEG AVC, может также использоваться для определения смещения. Например, следующее уравнение может использоваться для вычисления смещения:
FG
SEI
смещение = idr_pic_id,
FG
SEI
где idr_pic_id является идентификационным номером изображения последнего изображения IDR, куда вставлено SEI зерна кинопленки. Несомненно, заданные идеи настоящего изобретения, предусмотренные в данном документе, предыдущие и последующие уравнения для вычисления смещения могут использоваться, а также его варианты, наряду с тем, чтобы сохранить сущность и объем настоящего изобретения.
Обращаясь к фиг.7, увидим, что способ для точной побитовой инициализации начального числа для генератора псевдослучайных чисел (PRNG) для имитации зерна кинопленки в видеосистеме отображается, в общем, позиционным обозначением 700.
Способ 700 включает в себя начальный блок 702, который передает управление в функциональный блок 705. Функциональный блок 705 задает таблицу соответствия начальных чисел следующим образом
0
1
2
L-1
LUT = {начальное число, начальное число, начальное число, …, начальное число}
и передает управление в функциональный блок 710.
Функциональный блок 710 устанавливает начальное число PRNG до следующего значения в начале изображения (во время t), где SEI зерна кинопленки вставляется до сброса РОС следующим образом:
начальное число (t) = LUT[(РОС(t) + смещение)%L].
Дополнительно рассматривая функциональный блок 710, смещение устанавливается следующим образом:
FG SEI
смещение=idr_pic_id,
FG SEI
где, как отмечено выше, idr_pic_id является идентификационным номером последнего изображения IDR, куда вставлено SEI зерна кинопленки. Функциональный блок 710 тогда передает управление в конечный блок 715.
Сейчас будет задано описание относительно третьего иллюстративного варианта осуществления в соответствии с принципами настоящего изобретения. Третий иллюстративный вариант осуществления описан в начале, и тогда за ним следует дополнительное описание соответствующего способа, показанного и описанного в отношении фиг.8.
Третий вариант осуществления направлен на последовательности с частыми и постоянными сбросами РОС и предусматривает для использования параметр периода повторения зерна кинопленки, передаваемого в SEI зерна кинопленки. Смещение определяется как:
смещение = сообщение SEI зерна кинопленки
(период повторения__характеристик_зерна_кинопленки),
где параметр периода повторения характеристик зерна кинопленки больше или равен максимальному расстоянию между последовательными сообщениями SEI зерна кинопленки. Следует отметить, что даже если период повторения характеристик зерна кинопленки не подразумевался для этого использования, этот подход все еще соответствует стандарту Н.264.
Обращаясь к фиг.8, увидим, что способ для точной побитовой инициализации начального числа для генератора псевдослучайных чисел (PRNG) для имитации зерна кинопленки в видеосистеме отображается, в общем, позиционным обозначением 800.
Способ 800 включает в себя начальный блок 802, который передает управление в функциональный блок 805. Функциональный блок 805 задает таблицу соответствия начальных чисел следующим образом
0
1
2
L-1
LUT = {начальное число, начальное число, начальное число, …, начальное число}
и передает управление в функциональный блок 810.
Функциональный блок 810 устанавливает начальное число PRNG до следующего значения в начале изображения (во время t):
начальное число (t) = LUT [(РОС(t) + смещение)%L].
Дополнительно рассматривая функциональный блок 810, смещение устанавливается следующим образом:
смещение = сообщение SEI зерна кинопленки
(период_повторения_характеристик_зерна__кинопленки), и управление передается в конечный блок 815.
Сейчас будет задано описание относительно четвертого иллюстративного варианта осуществления в соответствии с принципами настоящего изобретения. Четвертый иллюстративный вариант осуществления описан в начале, и тогда за ним следует дополнительное описание соответствующего способа, показанного и описанного в отношении фиг.9.
В четвертом варианте осуществления смещение передается в отдельном сообщении SEI, посланном до того же самого изображения, по сравнению с сообщением SEI о характеристиках зерна кинопленки. Дополнительное сообщение SEI, которое для ясности названо сообщением SEI со случайным смещением начального числа, будет содержать, наряду с иной возможной информацией, значение смещения, которое необходимо использовать в процессе инициализации начального числа. Согласно четвертому варианту осуществления смещение вычисляется следующим образом:
смещение = сообщение SEI со случайным смещением начального числа (значение_смещения).
Сообщение SEI со случайным смещением начального числа может являться либо незарегистрированным сообщением SEI пользовательских данных, зарегистрированным сообщением SEI пользовательских данных, либо зарезервированным сообщением SEI. Следует отметить, что также возможно передавать сообщение SEI со случайным смещением начального числа для каждого изображения, даже если не отослано никакого сообщения SEI зерна кинопленки. В этом случае к LUT начальных чисел предоставляется доступ следующим образом:
начальное число(t) = LUT[смещение %L].
Этот подход не зависит от числа POC, поэтому он является надежным перед сбросами POC (операция контроля по управлению памятью или команды MMCO) и изображениями с мгновенным обновлением декодирования (IDR). Более того, этот подход или аналогичный подход, основанные на идеях, предусмотренных в данном документе, могут быть объединены с другими алгоритмами видеокодирования, подобно MPEG-2 или VC-1. Временные отметки MPEG-2, например, могут использоваться для вычисления величины, похожей на POC, для кадра, в который переданы параметры зерна кинопленки, и индекс выхода изображения может использоваться как смещение.
Обращаясь к фиг.9, увидим, что способ для точной побитовой инициализации начального числа для генератора псевдослучайных чисел (PRNG) для имитации зерна кинопленки в видеосистеме отображается, в общем, позиционным обозначением 900.
Способ 900 включает в себя начальный блок 902, который передает управление в функциональный блок 905. Функциональный блок 905 задает таблицу соответствия начальных чисел следующим образом
0
1
2
L-1
LUT = {начальное число, начальное число, начальное число, …, начальное число}
и передает управление в функциональный блок 910.
Функциональный блок 910 устанавливает начальное число PRNG до следующего значения в начале изображения (во время t):
начальное число(t) = LUT[смещение %L].
Дополнительно рассматривая функциональный блок 910, смещение устанавливается следующим образом
смещение = сообщение SEI со случайным смещением начального числа (значение_смещения),
и управление передается в конечный блок 915.
Сейчас будет задано описание относительно пятого иллюстративного варианта осуществления в соответствии с принципами настоящего изобретения. Пятый иллюстративный вариант осуществления описан в начале, и тогда за ним следует дополнительное описание соответствующего способа, показанного и описанного в отношении фиг.10.
В пятом иллюстративном варианте осуществления сообщение SEI со случайным начальным числом определяется со случайным начальным числом, которое необходимо использовать в этом кадре. Начальное число во время t инициализируется следующим образом:
начальное число (t) = сообщение SEI со случайным начальным числом (значение_начального числа).
Как и прежде, сообщение SEI с пользовательскими данными, используемое для передачи значения начального числа, может быть либо незарегистрированным сообщением SEI с пользовательскими данными, зарегистрированным сообщением SEI с пользовательскими данными, или зарезервированным сообщением SEI. Когда используются иные алгоритмы видеокодирования, чем стандарт H.264, то значение начального числа может передаваться как пользовательские данные. Следует заметить, что этот подход не пользуется таблицей LUT и не зависит от значений POC, но использует сообщение SEI случайного начального числа, которое передается в каждом изображении. Следует принимать во внимание, что также возможно объединять этот подход с LUT, основанной на POC.
Обращаясь к фиг.10, увидим, что способ для точной побитовой инициализации начального числа для генератора псевдослучайных чисел (PRNG) для имитации зерна кинопленки в видеосистеме отображается, в общем, позиционным обозначением 1000.
Способ 1000 включает в себя начальный блок 1002, который передает управление в функциональный блок 1010. Функциональный блок 1010 инициализирует начальное число во время t следующим образом:
начальное число (t) = сообщение SEI со случайным начальным числом (значение_начального числа).
Дополнительно рассматривая функциональный блок 1010, управление передается в конечный блок 1015.
Сейчас будет задано описание относительно шестого иллюстративного варианта осуществления в соответствии с принципами настоящего изобретения. Шестой иллюстративный вариант осуществления описан в начале, и тогда за ним следует дополнительное описание соответствующего способа, показанного и описанного в отношении фиг.11.
Когда используются многочисленные PRNG (например, один для цветовой компоненты), то та же самая таблица LUT может использоваться для всех из них, определяя фиксированное, дополнительное смещение для каждой цветовой компоненты следующим образом:
начальное число (t) = LUT[(POC(t) + смещение + смещение_компоненты(с))%L],
где смещение_компоненты(с) является смещением для цветовой компоненты с. Смещение является значением, привязанным к изображению во время t, которое может быть передано, используя любой из вариантов осуществления, описанных прежде. В одном иллюстративном варианте осуществления к пятому иллюстративному варианту осуществления, этими смещениями могут являться {0, 1/3L, 2/3L}. Следует принимать во внимание, что эти смещения являются постоянными, таким образом. их не нужно ни передавать, ни обновлять. Более того, следует принимать во внимание, что настоящее изобретение не ограничивается предыдущими смещениями, и, таким образом, другие смещения могут также использоваться согласно принципам настоящего изобретения, наряду с тем, чтобы сохранить сущность настоящего изобретения.
Обращаясь к фиг.11, увидим, что способ для точной побитовой инициализации начального числа для генератора псевдослучайных чисел (PRNG) для имитации зерна кинопленки в видеосистеме отображается, в общем, позиционным обозначением 1100.
Способ 1100 включает в себя начальный блок 1102, который передает управление в функциональный блок 1105. Функциональный блок 1105 задает таблицу соответствия начальных чисел следующим образом
0
1
2
L-1
LUT = {начальное число, начальное число, начальное число, …, начальное число}
и передает управление в функциональный блок 1110.
Функциональный блок 1110 устанавливает начальное число PRNG до следующей величины в начале изображения (во время t), когда используются многочисленные PRNG (например, один для цветовой компоненты), так, что когда та же самая LUT используется для всех многочисленных PRNG, то последующее фиксированное, дополнительное смещение определяется для каждой, например, цветовой компоненты следующим образом:
начальное число (t) = LUT[(POC(t) +смещение+ смещение_компоненты(с))%L],
где смещение_компоненты(с) является смещением для цветовой компоненты с, и смещение является смещением для изображения во время t.
Дополнительно рассматривая функциональный блок 1110, управление передается в конечный блок 1115.
Как отмечено выше, принимая во внимание идеи настоящего изобретения, предусмотренные в данном документе, настоящее изобретение может использоваться в других методиках видеокодирования/декодирования, которые могут извлечь пользу от сохранения зерна кинопленки, наряду с тем, что сохраняется сущность настоящего изобретения.
Эти и другие характерные черты и преимущества настоящего изобретения могут быть легко установлены любым обыкновенным специалистом, имеющим отношение к данной области техники, на основе идей в данном документе. Следует понимать, что идеи настоящего изобретения могут быть реализованы в различных формах аппаратного обеспечения, программного обеспечения, встроенного программного обеспечения, процессоров специального назначения или их сочетаниях.
Наиболее предпочтительно реализовать идеи настоящего изобретения как сочетание аппаратного и программного обеспечения. Более того, программное обеспечение предпочтительно реализовать как прикладную программу, реально реализованную в программном запоминающем устройстве. Прикладная программа может быть загружена в и выполнена устройством, которое содержит любую подходящую архитектуру. Предпочтительно, чтобы устройство было реализовано на компьютерной платформе, которая имеет аппаратное обеспечение, например, один или более центральных процессоров ("CPU"), оперативную память ("RAM") и интерфейсы ввода/вывода ("I/O"). Компьютерная платформа может также включать в себя операционную систему и код микрокоманды. Различные процессы и функции, описанные в данном документе, могут являться либо частью кода микрокоманды, либо частью прикладной программы или любого их сочетания, которое может выполняться CPU. В дополнение, различные иные периферийные устройства могут соединяться с компьютерной платформой, например, дополнительное устройство хранения данных и устройство печати.
Дополнительно необходимо понимать, так как некоторые составляющие системные компоненты и способы, изображенные на прилагаемых чертежах, предпочтительно реализованы в программном обеспечении, действительные связи между системными компонентами или функциональными блоками процесса могут различаться в зависимости от способа, которым программируется настоящее изобретение. Принимая во внимание идеи настоящего документа, любой обыкновенный специалист, относящийся к данной области техники, сможет рассмотреть эти и аналогичные варианты реализации или конфигурации настоящего изобретения.
Хотя иллюстративные варианты осуществления описаны в данном документе со ссылкой на прилагаемые чертежи, следует понимать, что настоящее изобретение не ограничено этими точными вариантами осуществления, и что на различные изменения и на модификации может влиять, в этом отношении, любой обыкновенный специалист в данной области техники без отклонения от объема или сущности настоящего изобретения. Все подобные изменения и модификации предназначены для того, чтобы быть включенными в область применения настоящего изобретения, как сформулировано прилагаемой формулой изобретения.