КОДИРОВАНИЕ ПЕРЦЕПЦИОННО-КВАНТОВАННОГО ВИДЕОКОНТЕНТА В МНОГОУРОВНЕВОМ КОДИРОВАНИИ VDR
PERCEPTUAL-QUANTIZED VIDEO CONTENT CODING IN VDR MULTILAYERED CODING

ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННЫЕ ЗАЯВКИ
[0001]
Данная заявка заявляет приоритет предварительных заявок на патент США № 61/805388, поданной 26 марта 2013 г., и № 61/861555, поданной 2 августа 2013 г., каждая из которых полностью включается в данную заявку посредством ссылки.
ТЕХНОЛОГИЯ
[0002]
Настоящее изобретение в общем относится к обработке изображений и, в частности, кодированию, декодированию и представлению перцепционно-квантованного видео.
ПРЕДПОСЫЛКИ ИЗОБРЕТЕНИЯ
[0003]
Множество уровней может быть использовано для передачи видеоданных с устройства восходящего потока данных, такого как многоуровневый видеокодер, на устройства нисходящего потока данных. Например, видеоданные визуального динамического диапазона (VDR) содержатся в сочетании базового уровня и уровня (EL) улучшения множества уровней для визуального восприятия дисплеев VDR.
[0004]
Данные изображения BL могут быть кодированы посредством данных изображения низкого или частичного динамического диапазона, полученных из изображений VDR. В данных изображения низкого или частичного динамического диапазона недоступные кодовые слова, составляемые из изображений VDR, могут быть ограничены целевым представленным диапазоном. Текстовые изменения и детали изображения, представленные в изображениях VDR, могут быть потеряны в данных изображения низкого или частичного динамического диапазона.
[0005]
Подходы, описанные в данном разделе, являются подходами, которые могут быть выполнены, но необязательно подходами, которые были ранее предложены или выполнены. Следовательно, если не указано иное, не следует исходить из того, что любые из подходов, описанных в данном разделе, относятся к известному уровню техники исключительно благодаря их включению в данный раздел. Подобным образом, не следует исходить из того, что недостатки, определенные относительно одного или нескольких подходов, были учтены в известном уровне техники на основе данного раздела, если не указано иное.
КРАТКОЕ ОПИСАНИЕ ГРАФИЧЕСКИХ МАТЕРИАЛОВ
[0006]
Настоящее изобретение проиллюстрировано для примера, а не для ограничения, на фигурах прилагаемых графических материалов, на которых подобные позиционные обозначения относятся к одинаковым элементам, и на которых:
[0007]
на фиг. 1A проиллюстрирован многоуровневый видеокодер в соответствии с вариантом осуществления изобретения;
[0008]
на фиг. 1B проиллюстрирован многоуровневый видеодекодер в соответствии с вариантом осуществления изобретения;
[0009]
на фиг. 1C и 1D проиллюстрированы реализации с фиксированной точкой блока формирования в декодере, реализованном в соответствии с вариантами осуществления изобретения;
[00010]
на фиг. 2A и 2B проиллюстрированы приведенные в качестве примера алгоритмы для поиска оптимальных значений параметра отображения в соответствии с вариантом осуществления изобретения;
[00011]
на фиг. 3A и 3B проиллюстрированы приведенные в качестве примера потоки процесса в соответствии с вариантом осуществления изобретения; и
[0010]
на фиг. 4 проиллюстрирована приведенная в качестве примера аппаратная платформа, на которой может быть реализован компьютер или вычислительное устройство, как описано в данной заявке.
ОПИСАНИЕ ПРИВЕДЕННЫХ В КАЧЕСТВЕ ПРИМЕРА ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
[0011]
В данной заявке описаны приведенные в качестве примера варианты осуществления, которые относятся к кодированию, декодированию и представлению изображений переменного динамического диапазона, включающих перцепционно квантованные данные изображения базового уровня, с использованием многоуровневого кодека. В следующем описании в целях пояснения изложены многочисленные конкретные подробности для предоставления полного понимания настоящего изобретения. Однако очевидно, что настоящее изобретение может быть применено на практике без данных конкретных подробностей. В других примерах широко известные структуры и устройства не описаны в мельчайших подробностях для предотвращения излишнего усложнения, запутывания или затруднения понимания настоящего изобретения.
[0012]
Приведенные в качестве примера варианты осуществления описаны в данной заявке в соответствии со следующим планом:
1. ОБЩИЙ ОБЗОР
2. КОДИРОВАНИЕ И ДЕКОДИРОВАНИЕ ВИДЕОКОНТЕНТА
3. ПРИСВАИВАНИЕ ДОСТУПНЫХ КОДОВЫХ СЛОВ НА ОСНОВЕ СОДЕРЖИМОГО ИЗОБРАЖЕНИЯ
4. МНОГОУРОВНЕВОЕ КОДИРОВАНИЕ ВИДЕО
5. МНОГОУРОВНЕВОЕ ДЕКОДИРОВАНИЕ ВИДЕО
6. СОХРАНЕНИЕ ВИЗУАЛЬНЫХ ДЕТАЛЕЙ В ДАННЫХ ИЗОБРАЖЕНИЯ BL
7. ПРИВЕДЕННОЕ В КАЧЕСТВЕ ПРИМЕРА ОПРЕДЕЛЕНИЕ ЗНАЧЕНИЯ ЭКСПОНЕНТЫ В СТЕПЕННОЙ ФУНКЦИИ
8. ПРИВЕДЕННОЕ В КАЧЕСТВЕ ПРИМЕРА ОПРЕДЕЛЕНИЕ ЗНАЧЕНИЙ ПАРАМЕТРА В ЛИНЕЙНОМ КВАНТОВАНИИ, ВКЛЮЧАЮЩЕМ КУСОЧНО-ЛИНЕЙНОЕ КВАНТОВАНИЕ
9. ПРИВЕДЕННЫЕ В КАЧЕСТВЕ ПРИМЕРА ПОТОКИ ПРОЦЕССА
10 МЕХАНИЗМЫ РЕАЛИЗАЦИИ – ОБЗОР АППАРАТНОГО ОБЕСПЕЧЕНИЯ
11. ЭКВИВАЛЕНТЫ, РАСШИРЕНИЯ, АЛЬТЕРНАТИВЫ И ПРОЧЕЕ
1. ОБЩИЙ ОБЗОР
[0013]
Данный обзор представляет базовое описание некоторых аспектов приведенного в качестве примера варианта осуществления настоящего изобретения. Следует отметить, что данный обзор не является подробным или полным изложением аспектов приведенного в качестве примера варианта осуществления. Более того, следует отметить, что данный обзор не следует понимать, как определение каких-либо конкретных существенных аспектов или элементов приведенного в качестве примера варианта осуществления, а также ограничение какого-либо объема приведенного в качестве примера варианта осуществления в частности или изобретения в целом. Данный обзор представляет лишь некоторые идеи, которые относятся к приведенному в качестве примера варианту осуществления, в сокращенной и упрощенной форме и оно должен рассматриваться лишь как вводная часть для более подробного описания приведенных в качестве примера вариантов осуществления, которые следуют далее.
[0014]
В некоторых вариантах осуществления многоуровневые кодеки могут быть использованы для генерирования или обработки медиасигнала, содержащего сжатые изображения (например, видеоизображения) для широкого разнообразия дисплеев (например, дисплеев VDR и т. д.). Для предоставления превосходного визуального качества на широком разнообразии дисплеев широкого и узкого динамических диапазонов видеоконтент, который должен быть передан на устройства нисходящего потока данных, может быть квантован и кодирован многоуровневым кодеком, реализующим методы перцепционного квантования (PQ), как описано в данной заявке. Данный видеоконтент после визуализации посредством устройств нисходящего потока данных имеет кардинально отличные визуальные характеристики от тех, что демонстрируются другими методами.
[0015]
В данном контексте термин «многоуровневый кодек» может относиться к многоуровневому кодеру или декодеру, который реализует структуру множества уровней в аудиовизуальном сигнале (например, битовый поток, широковещательный сигнал, медиафайл и т. д.). Множество уровней включает базовый уровень и один или несколько уровней улучшения. Базовый уровень и уровни улучшения содержат данные изображения, полученные из одних (например, перцепционно-кодированных) исходных изображений. Данные изображения в базовом уровне содержат данные сжатого изображения низкого или частичного динамического диапазона, которые не могут быть оптимизированы для визуализации на дисплеях относительно узкого динамического диапазона, такого как стандартный динамический диапазон или SDR. Данные изображения во множестве уровней в сочетании содержат сжатые изображения широкого динамического диапазона, которые могут быть декодированы и просмотрены на дисплеях относительно широкого динамического диапазона, такого как визуальный динамический диапазон или VDR. Термин «VDR» или «визуальный динамический диапазон» в данном контексте может относиться к более широкому динамическому диапазону, чем стандартный динамический диапазон, и может включать, помимо всего прочего, широкий динамический диапазон до мгновенно воспринимаемого динамического диапазона и цветовую гамму, которую может мгновенно воспринимать человеческое зрение.
[0016]
Многоуровневый кодек, как описано в данной заявке, может быть реализован посредством двух или более кодеков (например, гамма-доменных кодеков и т. д.) более низкой битовой глубины (например, 8 бит и т. д.) во множестве уровней для поддержки изображений более высокой битовой глубины (например, 12+ бит и т. д.) во множестве уровней в целом и для поддержки изображений более низкой битовой глубины (например, 8 бит и т. д.) в базовом уровне. Например, один или несколько гамма-доменных кодеров может быть установлено в канале обработки сигнала BL и/или в одном или нескольких каналах обработки сигнала EL многоуровневого кодера, как описано в данной заявке. В некоторых вариантах осуществления по меньшей мере один гамма-доменный декодер может быть установлен в канале обработки сигнала BL устройства нисходящего потока данных, которое является декодером исключительно базового уровня.
[0017]
Методы PQ, как описано в данной заявке, могут быть использованы для предоставления гамма-доменным кодекам возможности сохранять визуальные детали первоначального перцепционно-кодированного видеоконтента. Вместо необходимости применения преобразователя формата из PQ в гамму на стороне видеокодера и преобразователя формата из гаммы в PQ на стороне декодера, методы, как описано в данной заявке, предоставляют гамма-доменные кодеры в многоуровневом кодере, многоуровневом декодере, декодере базового уровня и т. д. для непосредственного сохранения визуальных деталей перцепционно-кодированного видеоконтента без данных преобразователей формата. Перцепционно-квантованные видеосигналы, которые сохраняют данные визуальные детали как в широком, так и узком динамических диапазонах, могут быть непосредственно предоставлены многоуровневым кодером на устройства нисходящего потока данных без использования преобразования формата из PQ в гамму. Подобным образом, перцепционно-квантованные видеосигналы после получения устройством нисходящего потока данных могут быть непосредственно декодированы и/или визуализированы с использованием сохраненных визуальных деталей посредством устройства нисходящего потока данных без использования преобразования формата из гаммы в PQ. Следовательно, сложность вычисления, эффективность кодирования и качество восприятия могут быть значительно улучшены в соответствии с методами, описанными в данной заявке.
[0018]
Кодеки, реализующие методы, как описано в данной заявке, могут быть дополнительно выполнены с возможностью включения возможностей межуровневого прогнозирования для полного использования статистической избыточности между данными изображения базового уровня (BL) и первоначальными входными данными изображения. Данные изображения EL могут (возможно исключительно) содержать остаточные (или дифференциальные) данные изображения вместо содержания большого количества данных изображения широкого динамического диапазона без использования корреляций и статистической избыточности в данных изображения различных уровней.
[0019]
В некоторых приведенных в качестве примера вариантах осуществления данные, необходимые для других применений (включая, помимо всего прочего, те, что не относятся к операциям перцепционного кодирования и т. д.), могут быть также включены в данные изображения базового уровня и уровня улучшения для передачи с устройства восходящего потока данных на устройство нисходящего потока данных. В некоторых приведенных в качестве примера вариантах осуществления дополнительные особенности и/или ортогональные особенности могут поддерживаться базовым уровнем и уровнями улучшения, как описано в данной заявке.
[0020]
В некоторых приведенных в качестве примера вариантах осуществления механизмы, как описано в данной заявке, формируют часть системы медиаобработки, включая, помимо всего прочего, любое из следующего: карманное устройство, игровой автомат, телевизор, портативный компьютер, нетбук, планшетный компьютер, сотовый радиотелефон, электронную книгу, торговый терминал, настольный компьютер, компьютерную рабочую станцию, компьютерный киоск или различные другие типы терминалов и блоков медиаобработки.
[0021]
Различные модификации предпочтительных вариантов осуществления и общие принципы и особенности, описанные в данной заявке, будут очевидны специалистам в данной области техники. Таким образом, раскрытие не должно быть ограничено показанными вариантами осуществления, но должно соответствовать наиболее широкому объему в соответствии с принципами и особенностями, описанными в данной заявке.
КОДИРОВАНИЕ И ДЕКОДИРОВАНИЕ ВИДЕОКОНТЕНТА
[0022]
Человеческое зрение не воспринимает разницу между двумя уровнями яркости, если два уровня яркости не являются достаточно отличными друг от друга. Напротив, человеческое зрение воспринимает разницу, только если уровни яркости имеют не менее чем едва заметную разницу (JND). Вследствие перцепционной нелинейности человеческого зрения величины отдельных JND не имеют постоянного размера или масштаба в диапазоне уровней яркости, а скорее изменяются с различными отдельными уровнями яркости.
[0023]
Методы (например, алгоритмы и т. д.), как описано в данной заявке, могут быть использованы многоуровневым кодером для кодирования исходного видеоконтента в многоуровневый видеосигнал, который сохраняет визуальные детали исходного видеоконтента в данных изображения BL, а также в сочетании данных изображения BL и EL. В некоторых вариантах осуществления исходный видеоконтент сначала кодируется посредством исходных кодовых слов в исходном формате кодирования (например, как определено спецификацией VDR и т. д.) на основе методов перцепционного кодирования (например, методов кодирования VDR, разработанных Dolby Laboratories, Inc., Сан-Франциско, Калифорния, и т. д.). В некоторых вариантах осуществления исходные кодовые слова в исходном формате кодирования представляют уровни яркости, распределенные таким образом, что уровни яркости оптимально расположены на расстоянии друг от друга или квантованы для соответствия перцепционной нелинейности человеческого зрения.
[0024]
Многоуровневый видеосигнал, сгенерированный многоуровневым кодером, как описано в данной заявке, может быть передан непосредственно или опосредованно на или принят от широкого разнообразия устройств нисходящего потока данных, включая, помимо всего прочего, любое из следующего: дисплейные системы отображения с многоуровневыми декодерами, дисплейные системы с декодерами базового уровня и т. д.
[0025]
Устройство нисходящего потока данных (например, многоуровневый декодер и т. д.), которое поддерживает операции отображения относительно широкого динамического диапазона, может получить и/или визуализировать версию с широким динамическим диапазоном исходного видеоконтента на основе принятого многоуровневого видеосигнала. Декодированная версия с широким динамическим диапазоном исходного видеоконтента представляет целевые уровни яркости (например, зависящие от устройства уровни яркости и т. д.), которые приблизительно соответствуют уровням яркости, представленным исходными кодовыми словами в исходном видеоконтенте.
[0026]
Устройство нисходящего потока данных (например, декодер BL и т. д.), которое поддерживает операции отображения относительно узкого динамического диапазона, может получить и/или визуализировать декодированную версию с узким динамическим диапазоном с визуальными деталями исходного видеоконтента на основе данных изображения BL принятого многоуровневого видеосигнала. Декодированная версия с узким динамическим диапазоном исходного видеоконтента представляет целевые уровни яркости (например, зависящие от устройства уровни яркости и т. д.), которые отображены из уровней яркости, представленных исходными кодовыми словами в исходном видеоконтенте, хоть и в относительно узком динамическом диапазоне, поддерживаемом устройством нисходящего потока данных.
[0027]
Несмотря на то, что как декодированная версия с узким динамическим диапазоном, так и декодированная версия с широким динамическим диапазоном исходного видеоконтента представляют целевые уровни яркости (например, зависящие от устройства уровни яркости и т. д.), которые отображены из уровней яркости, представленных исходными кодовыми словами в исходном видеоконтенте, декодированная версия с узким динамическим диапазоном исходного видеоконтента может содержать большее количество ошибок (например, ошибок квантования вследствие относительно низкой битовой глубины, ограничений при низких или высоких уровнях яркости и т. д.), чем декодированная версия с широким динамическим диапазоном исходного видеоконтента, по сравнению с уровнями яркости, представленными исходными кодовыми словами в исходном видеоконтенте.
ПРИСВАИВАНИЕ ДОСТУПНЫХ КОДОВЫХ СЛОВ НА ОСНОВЕ СОДЕРЖИМОГО ИЗОБРАЖЕНИЯ
[0028]
Видеокодек без использования методов, как описано в данной заявке, присваивает доступные кодовые слова при конкретной битовой глубине (например, 8 бит и т. д.) таким образом, что не сохраняет визуальные детали первоначально перцепционно-кодированного исходного видеоконтента. Например, медиаустройство, содержащее гамма-доменный кодек без использования методов, как описано в данной заявке, может переприсвоить кодовые слова поддиапазонам высокой яркости (например, ярким частям, световым эффектам и т. д.) в зависящем от устройства динамическом диапазоне и недоприсвоить кодовые слова поддиапазону низкой яркости (например, темным частям, темным участкам и т. д.) в зависящем от устройства динамическом диапазоне. В результате, визуальные детали перцепционно-кодированного исходного видеоконтента часто теряются при использовании данных других методов.
[0029]
Видеокодек в многоуровневом кодеке при использовании методов, как описано в данной заявке, присваивает доступные кодовые слова при конкретной битовой глубине (например, 8 бит и т. д.) таким образом, что сохраняет визуальные детали перцепционно-кодированного исходного видеоконтента, по сравнению с видеокодеком без использования данных методов. В результате, перцепционные детали в исходном видеоконтенте лучше сохраняются в многоуровневом кодеке, как описано в данной заявке, чем другие видеокодеки без использования данных методов.
[0030]
При использовании методов, как описано в данной заявке, многоуровневый кодек выбирает/определяет конкретные значения параметра (например, значения экспоненты в степенных функциях, наклоны в линейном квантовании, повороты в кусочно-линейном квантовании и т. д.) на основе содержимого изображения, передаваемого кадрами изображения (например, в сцене и т. д.) в исходном видеоконтенте. Если содержимое изображения содержит большее количество светлых частей или большее количество уровней яркости, значения параметра могут быть выбраны/определены для того, чтобы большее количество представленных уровней яркости в поддиапазоне высокой яркости было доступно для операций кодирования или декодирования. Если содержимое изображения содержит меньшее количество светлых частей или меньшее количество уровней яркости, значения параметра могут быть выбраны/определены для того, чтобы меньшее количество представленных уровней яркости в поддиапазоне высокой яркости было доступно для операций кодирования или декодирования. Подобным образом, если содержимое изображения содержит большее количество темных частей или большее количество уровней яркости, параметр может быть выбран/определен для того, чтобы большее количество представленных уровней яркости в поддиапазоне низкой яркости было доступно для операций кодирования или декодирования. Если содержимое изображения содержит меньшее количество темных частей или меньшее количество уровней яркости, значения параметра могут быть выбраны/определены для того, чтобы меньшее количество представленных уровней яркости в поддиапазоне низкой яркости было доступно для операций кодирования или декодирования.
МНОГОУРОВНЕВОЕ КОДИРОВАНИЕ ВИДЕО
[0031]
Как указано ранее, многоуровневый видеосигнал (например, кодированный битовый поток и т. д.), содержащий базовый уровень и один или несколько уровней улучшения, может быть использован устройством восходящего потока данных (например, многоуровневым кодером 102, показанным на фиг. 1A) для передачи кодированного видеоконтента на устройства нисходящего потока данных (одним из которых может являться, например, многоуровневый декодер 152, показанный на фиг. 1B, и т. д.). В некоторых вариантах осуществления видеоконтент, переданный посредством множества уровней, содержит данные изображения BL (например, 106, как показано на фиг. 1A и фиг. 1B, и т. д.) относительно низкой битовой глубины и данные изображения EL (например, 108, как показано на фиг. 1A и фиг. 1B, и т. д.) в дополнение к данным изображения BL. Как данные (106) изображения BL, так и данные (108) изображения EL получаются/квантуются из исходного видеоконтента (104) относительно высокой битовой глубины (например, 12+ бит VDR и т. д.)
[0032]
В некоторых вариантах осуществления данные (106) изображения BL расположены в контейнере базового уровня (например, 8-битовом контейнере YCbCr 4:2:0 и т. д.). В некоторых вариантах осуществления данные (108) изображения EL содержат остаточные данные изображения (например, VDR и т. д.) исходного видеоконтента (104) относительно спрогнозированных данных изображения, сгенерированных из данных (106) изображения BL. В некоторых вариантах осуществления данные (108) изображения EL расположены в одном или нескольких контейнерах уровня улучшения (например, одном или нескольких 8-битовых контейнерах остаточных данных и т. д.). Данные (106) изображения BL и данные (108) изображения EL могут быть приняты и использованы устройствами нисходящего потока данных (например, 152, как показано на фиг. 1B, и т. д.) для восстановления декодированной версии (например, перцепционно-декодированной версии VDR и т. д.) относительно высокой битовой глубины (например, 12+ бит и т. д.) исходного видеоконтента (104) (например, VDR и т. д.).
[0033]
В данном контексте термин «битовая глубина» относится к количеству битов, предоставленных в кодовом пространстве, которое предоставляет доступные кодовые слова для кодирования или квантования данных изображения; примером низкой битовой глубины являются 8 бит; примером высокой битовой глубины являются 12 бит или более. В частности, термин «низкая битовая глубина» или «высокая битовая глубины» не относится к самым младшим битам или самым старшим битам кодового слова.
[0034]
В приведенном в качестве примера варианте осуществления многоуровневый кодер (102) выполнен с возможностью приема исходного видеоконтента (104) (например, VDR и т. д.), содержащего последовательность входных изображений VDR. Последовательность входных изображений VDR представляет одну или несколько сцен, каждая из которых содержит множество входных изображений в последовательности изображений VDR. В данном контексте термин «входное изображение VDR» в общем относится к данным изображения широкого или высокого динамического диапазона, которые могут быть использованы для получения версии VDR исходного изображения (например, относящегося к сцене изображения, захваченного профессиональным устройством захвата изображения и т. д.). Входное изображение VDR может находиться в любом цветовом пространстве, которое поддерживает цветовую гамму высокого динамического диапазона. В некоторых вариантах осуществления входное изображение VDR является исключительно входным относительно исходного изображения, которое предоставляет данные изображения для кодирования кодером (102) изображения VDR; входные данные изображения относительно исходного изображения для обработки на базовом уровне с использованием методов, как описано в данной заявке, могут быть сгенерированы на основе входного изображения VDR с использованием методов перцепционного квантования.
[0035]
В приведенном в качестве примера варианте осуществления входное изображение VDR, декодированное из исходного видеоконтента (104) (например, VDR и т. д.), является 12+ битным изображением YCbCr в цветовом пространстве YCbCr. В примере каждый пиксель, представленный в изображении VDR, содержит кодовые слова для всех каналов (например, канал яркости Y, каналы цветности Cb и Cr и т. д.), определенных для цветового пространства (например, цветового пространства YCbCr). Каждое кодовое слово содержит кодовые слова, подвергнутые повышающей дискретизации или понижающей дискретизации, для одного или нескольких каналов в цветовом пространстве.
[0036]
В приведенном в качестве примера варианте осуществления многоуровневый кодер (102) выполнен с возможностью преобразования кодовых слов входного изображения VDR из первого цветового пространства (например, цветового пространства RGB и т. д.) во второе отличное цветовое пространство (например, цветовое пространство YCbCr и т. д.).
[0037]
В приведенном в качестве примера варианте осуществления многоуровневый кодер (102) выполнен с возможностью понижения дискретизации или повышения дискретизации входного изображения VDR в первом формате дискретизации (например, в формате дискретизации 4:4:4 и т. д.) до второго отличного формата дискретизации (например, формата дискретизации 4:2:0 и т. д.).
[0038]
В приведенном в качестве примера варианте осуществления многоуровневый кодер (102) выполнен с возможностью выполнения операций, относящихся к перцепционному квантованию, относительно исходного видеоконтента (104) для генерирования данных (106) (например, 8-битного и т. д.) изображения BL. Операции, относящиеся к перцепционному квантованию, включают, помимо всего прочего, одно или несколько из следующего: операции (114) отображения, операции (116) ограничения, операции (118) кодирования BL и т. д.
[0039]
Y
C
Y
C
Во время операций (114) отображения многоуровневый кодер (102) выполнен с возможностью использования функции отображения для отображения (например, 12+ битных и т. д.) входных кодовых слов VDR (например, кодовых слов яркости v VDR, кодовых слов цветности v VDR и т. д.) в одном или нескольких входных изображениях VDR в исходном видеоконтенте (104) (например, VDR и т. д.) в отображенные кодовые слова (например, отображенные кодовые слова яркости c, отображенные кодовые слова цветности c и т. д.) в одном или нескольких отображенных изображениях в соответствии с одним или несколькими изображениями VDR.
[0040]
Во время операций (116) ограничения многоуровневый кодер (102) выполнен с возможностью ограничения отображенных кодовых слов, которые находятся либо ниже минимального значения, либо выше максимального значения. Количество (например, <= 256 при битовой глубине 8 бит и т. д.) доступных кодовых слов при битовой глубине данных (106) изображения BL не должно быть достаточно высоким, чтобы соответствовать полному диапазону числовых значений неограниченных отображенных кодовых слов. Таким образом, некоторые из самых старших отображенных кодовых слов и/или самых младших отображенных кодовых слов в одном или нескольких отображенных изображениях могут быть ограничены максимальным значением и/или минимальным значением в результате операции (116) ограничения. Многоуровневый кодер (102) выполнен с возможностью определения/выбора оптимальных минимального и максимального значений на основе одного или нескольких отображенных изображений и одного или нескольких факторов. Один или несколько факторов включает, помимо прочего: минимизацию количества отображенных кодовых слов, которые должны быть ограничены, максимизацию представленных/перцепционных деталей одной или нескольких (например, характерных, центральных и т. д.) частей одного или нескольких отображенных изображений после операций ограничения и т. д.
[0041]
Y
Y
C
C
Во время операций (118) кодирования BL многоуровневый кодер (102) выполнен с возможностью определения оптимального значения экспоненты степенной функции, используемой кодеком BL в многоуровневом кодере (102) для отображения исходных кодовых слов (например, v и т. д.) в соответствующие отображенные кодовые слова (например, c и т. д.) в конкретном канале (например, канале яркости или канале Y и т. д.) цветового пространства (например, цветового пространства YCbCr и т. д.). В некоторых вариантах осуществления многоуровневый кодер (102) выполнен с возможностью определения значений параметра кусочно-линейных (PWL) функций отображения, используемых кодеком BL для отображения исходных кодовых слов (например, v и т. д.) в соответствующие отображенные кодовые слова (например, c и т. д.) в конкретном канале (например, канале цветности или канале Cb/Cr и т. д.) цветового пространства (например, цветового пространства YCbCr и т. д.).
[0042]
Во время операций (118) кодирования BL многоуровневый кодер (102) выполнен с возможностью отображения/сжатия на основе значения экспоненты степенной функции и/или значений параметра PWL функций отображения исходных кодовых слов, декодированных из исходного видеоконтента (104), до отображенных кодовых слов и форматирования отображенных кодовых слов. Некоторые из отображенных кодовых слов являются ограниченными. Некоторые или все отображенные кодовые слова содержат ошибки квантования, вызванные отображением кодовых слов VDR высокой битовой глубины в отображенные кодовые слова низкой битовой глубины. Многоуровневый кодер (102) дополнительно выполнен с возможностью форматирования данных (106) (например, 8-битного и т. д.) изображения BL в один или несколько контейнеров (например, 8-битного и т. д.) изображения BL в формате дискретизации (например, 4:2:0 и т. д.).
[0043]
В приведенном в качестве примера варианте осуществления многоуровневый кодер (102) выводит данные (106) изображения BL в контейнерах изображения BL в качестве части многоуровневого видеосигнала на устройство нисходящего потока данных (например, многоуровневый декодер 152, показанный на фиг. 1B, и т. д.).
[0044]
В приведенном в качестве примера варианте осуществления многоуровневый кодер (102) выполнен с возможностью выполнения одной или нескольких операций EL. Одна или несколько операций EL включает, помимо прочего, любое из следующего: операции (120) декодирования BL, операции (122) обратного отображения, операции (124) вычитания, операции (126) нелинейного квантования, операции (128) кодирования EL и т. д.
[0045]
Во время операций (120) декодирования BL многоуровневый кодер (102) выполнен с возможностью декодирования данных (106) (например, 8-битного и т. д.) изображения BL в контейнерах (например, 8-битного и т. д.) изображения BL обратно в отображенные кодовые слова в одном или нескольких отображенных изображениях, которые соответствуют одному или нескольким входным изображениям VDR.
[0046]
Во время операций (122) обратного отображения многоуровневый кодер (102) выполнен с возможностью обратного отображения на основе одной или нескольких таблиц (LUT) поиска отображенных кодовых слов в кодовые слова VDR. LUT, используемые для обратного отображения, могут быть аналитически или численно получены из степенной функции с ранее определенными значениями экспоненты и/или PWL функций отображения с ранее определенными значениями параметра.
[0047]
i
В некоторых вариантах осуществления некоторые или все из этих LUT содержат ключи поиска (например, отображенные кодовые слова и т. д.) и значения поиска (например, кодовые слова VDR и т. д.), соответствующие ключам поиска. Например, исключительно с целью иллюстрации обратная LUT 1D, которая может быть использована для обратного отображения отображенных кодовых слов в кодовые слова VDR, может быть составлена посредством замены s = [0, 1, 2, ...255] на следующее выражение:
(1)
L
H
L
H
где c и c – минимальное и максимальное значения соответственно отображенных кодовых слов в канале яркости, как определено во время операций отображения и/или операций ограничения; v и v – минимальное и максимальное значения соответственно кодовых слов VDR в канале яркости, как определено во время операций отображения и/или операций ограничения; и clip(…) – функция ограничения для гарантирования того, что любое кодовое слово вне диапазона (например, вне диапазона [cL, cH] и т. д.) после сжатия с потерями (которое может произойти, например, во время операций кодирования BL и т. д.) все еще может быть обратно отображено в ближайшее действительное кодовое слово VDR.
[0048]
Другие типы LUT (например, на основе PWL и т. д.) могут быть также численно составлены подобным образом. Каждая из LUT, как описано в данной заявке, может быть использована для обратного отображения отображенных кодовых слов, декодированных из данных (106) изображения BL, в соответствующие кодовые слова VDR в одном или нескольких конкретных каналах применимого цветового пространства.
[0049]
В некоторых вариантах осуществления многоуровневый кодер (102) выполнен с возможностью реализации прогнозирования из BL в EL (например, внутреннего и/или промежуточного прогнозирования и т. д.) для снижения количества данных изображения EL, которые должны содержаться в уровнях EL для восстановления изображений VDR устройством нисходящего потока данных (например, многоуровневым декодером 152, показанным на фиг. 1B, и т. д.). Многоуровневый кодер (102) может генерировать на основе по меньшей мере частично кодовых слов VDR, полученных посредством операций (122) обратного отображения, данные изображения прогнозирования.
[0050]
Во время операций (124) вычитания многоуровневый кодер (102) выполнен с возможностью генерирования остаточных значений между кодовыми словами VDR, декодированными из исходного видеоконтента (104), и кодовыми словами VDR, представленными в данных изображения прогнозирования. Остаточные значения в конкретном канале (например, канале яркости, канале Y и т. д.) могут являться разницами, полученными в результате операций (124) вычитания в логарифмическом домене или в линейном домене.
[0051]
Во время операций (126) нелинейного квантования многоуровневый кодер (102) выполнен с возможностью квантования остаточных значений в первом цифровом представлении (например, 12+ битном и т. д.) во второе цифровое представление (например, 8-битное и т. д.) в цветовом пространстве (например, YCbCr и т. д.) с использованием одного или нескольких параметров NLQ.
[0052]
Во время операций (128) кодирования EL многоуровневый кодер (102) выполнен с возможностью кодирования (например, 8-битных и т. д.) остаточных значений, сгенерированных в результате операций нелинейного квантования, в данные (108) изображения EL в (8-битном и т. д.) контейнере изображения EL в формате дискретизации (например, 4:2:0 и т. д.). Контейнер изображения EL в уровне улучшения может быть логически отделен от контейнера изображения BL в базовом уровне, даже несмотря на то, что оба контейнера изображения могут одновременно содержаться в одном цифровом видеосигнале (например, одном кодированном битовом потоке, одном медиафайле, одном широковещательном сигнале и т. д.).
[0053]
В приведенном в качестве примера варианте осуществления многоуровневый кодер (102) выводит данные (108) изображения EL в контейнерах изображения EL в качестве части многоуровневого видеосигнала на устройство нисходящего потока данных (например, многоуровневый декодер 152, показанный на фиг. 1B, и т. д.).
[0054]
В приведенном в качестве примера варианте осуществления многоуровневый кодер (102) выводит метаданные (130), содержащие некоторые или все из рабочих параметров, используемых во время операций многоуровневого кодера (102), в качестве части многоуровневого видеосигнала на устройство нисходящего потока данных (например, многоуровневый декодер 152, показанный на фиг. 1B, и т. д.). Рабочие параметры в метаданных (130), переданных на устройства нисходящего потока данных, включают, помимо прочего, любое из следующего: один или несколько параметров отображения, параметров ограничения, значений экспоненты, используемых в степенных функциях для сжатия гаммы, параметров обратного отображения, LUT, значений поворота в PWL функциях, параметров нелинейного квантования и т. д., посредством параметров (134) отображения и параметров (132) NLQ и т. д. Метаданные (130) могут являться частью данных, содержащихся в уровнях EL и/или уровне BL или в отдельном суббитовом потоке общего битового потока видео, например, в качестве части информации (SEI) для дополнительного улучшения или других подобных средств переноса метаданных, доступных в битовом потоке видео. Примером суббитового потока может являться поток исходного блока (RPU) обработки, разработанный Dolby Laboratories, Inc.
[0055]
Например, LUT, используемые в операциях (122) обратного отображения, могут быть переданы на устройства нисходящего потока данных в качестве части метаданных (130). В некоторых вариантах осуществления ключи поиска и значения, соответствующие ключам поиска в LUT, передаются на устройства нисходящего потока данных в качестве части метаданных (130). В некоторых вариантах осуществления по меньшей мере одна LUT может быть представлена аналитической функцией или многосегментной аналитической функцией. Вместо передачи ключей поиска и значений, соответствующих ключам поиска в LUT, на устройства нисходящего потока данных, параметры, определяющие аналитическую функцию, отправляют на устройства нисходящего потока данных в качестве части метаданных (130) для снижения количества метаданных (130) в передаче. В некоторых вариантах осуществления параметры в функции отображения, используемые для численного получения LUT, передаются на устройства нисходящего потока данных в качестве части метаданных (130) вместо передачи ключей поиска и значений, соответствующих ключам поиска в LUT. Устройство нисходящего потока данных может использовать параметры для получения LUT, как проиллюстрировано посредством выражения (1). Спецификация видеокодека, управляющая операциями кодирования и декодирования, может содержать синтаксические элементы для передачи одного или нескольких параметров, как описано в данной заявке, с устройства восходящего потока данных (например, многоуровневого кодера 102 и т. д.) на устройства нисходящего потока данных (например, многоуровневый декодер 152 и т. д.).
[0056]
Данные (108) изображения EL, данные (106) изображения BL и метаданные могут быть использованы устройством нисходящего потока данных для генерирования декодированной версии изображений относительно широкого динамического диапазона (например, VDR, HDR и т. д.), которые представляют изображения относительно широкого динамического диапазона в исходном видеоконтенте (104).
[0057]
Одна или несколько операций, таких как операции (118) кодирования BL, операции (120) декодирования BL, операции (128) кодирования EL и т. д., могут быть реализованы с использованием одного или нескольких из множества кодеков, включая, помимо прочего, любое сочетание из следующего: H.264/AVC/HEVC, MPEG-2, VP8, VC-1 и/или другие.
МНОГОУРОВНЕВОЕ ДЕКОДИРОВАНИЕ ВИДЕО
[0058]
Многоуровневый видеосигнал (например, кодированный битовый поток и т. д.), содержащий видеоконтент, может быть принят многоуровневым декодером (например, 152, как показано на фиг. 1B, и т. д.). В некоторых вариантах осуществления видеоконтент, принятый многоуровневым декодером (152), содержит данные изображения BL (например, 106, как показано на фиг. 1A и фиг. 1B, и т. д.) относительно низкой битовой глубины и данные изображения EL (например, 108, как показано на фиг. 1A и фиг. 1B, и т. д.). В некоторых вариантах осуществления как данные (106) изображения BL, так и данные (108) изображения EL получаются/квантуются из исходного видеоконтента (например, 104, как показано на фиг. 1A, и т. д.) относительно высокой битовой глубины. В некоторых вариантах осуществления многоуровневый декодер (152) выполнен с возможностью приема метаданных (130), содержащих некоторые или все из рабочих параметров, используемых во время операций, которые генерируют данные (106) изображения BL и данные (108) изображения EL в качестве части многоуровневого видеосигнала.
[0059]
В некоторых вариантах осуществления данные (106) изображения BL расположены в контейнере базового уровня (например, 8-битном контейнере YCbCr 4:2:0 и т. д.). В некоторых вариантах осуществления данные (108) изображения EL содержат остаточные данные изображения исходного видеоконтента (104) (например, VDR и т. д.) относительно спрогнозированных данных изображения, сгенерированных из данных (106) изображения BL. В некоторых вариантах осуществления данные (108) изображения EL расположены в одном или нескольких контейнерах уровня улучшения (например, одном или нескольких 8-битных контейнерах остаточных данных и т. д.).
[0060]
В приведенном в качестве примера варианте осуществления многоуровневый кодер (152) выполнен с возможностью выполнения операций декодирования на основе PQ относительно данных (106) изображения BL и данных (108) изображения EL для генерирования одного или нескольких изображений широкого динамического диапазона (например, VDR и т. д.), которые представляют восстановленную версию (например, восстановленный видеоконтент 166 BL+EL и т. д.) исходных изображений в исходном видеоконтенте, который был использован для генерирования многоуровневого видеосигнала. Операции декодирования на основе PQ включают, помимо прочего, одно или несколько из следующего: операцию (160) декодирования BL, операции (162) обратного отображения, операции (154) декодирования EL, операции (156) нелинейного деквантования, операции (158) добавления и т. д.
[0061]
Во время операций (160) декодирования BL многоуровневый декодер (152) выполнен с возможностью декодирования данных (106) изображения BL (например, 8-битного и т. д.) в контейнерах (например, 8-битного и т. д.) изображения BL в отображенные кодовые слова в одном или нескольких отображенных изображениях (например, тонально-отображенных изображениях).
[0062]
Во время операций (162) обратного отображения многоуровневый декодер (152) выполнен с возможностью обратного отображения, например, на основе одной или нескольких таблиц (LUT) поиска, декодированных из метаданных (130), отображенных кодовых слов в кодовые слова VDR. В некоторых вариантах осуществления многоуровневый декодер (152) выполнен с возможностью непосредственного приема LUT в метаданных (130) в отношении ключей поиска и значений, соответствующих ключам поиска. В некоторых вариантах осуществления многоуровневый декодер (152) выполнен с возможностью приема значений параметра, таких как одно или несколько значений экспоненты, относящихся к повороту значений и т. д., относящихся к одной или нескольким функциям, и использования значений параметра и одной или нескольких функций для генерирования (например, численно и т. д.) одной или нескольких LUT (например, ключей поиска и значений, соответствующих ключам поиска, и т. д.) для применения во время операций (162) обратного отображения.
[0063]
Во время операций (154) кодирования EL многоуровневый кодер (152) выполнен с возможностью генерирования (например, 8-битных и т. д.) остаточных значений посредством декодирования данных (108) изображения EL, которые могут находиться в (например, 8-битном и т. д.) контейнере изображения EL в формате дискретизации (например, и 4:2:0 т. д.).
[0064]
Во время операций (156) нелинейного деквантования многоуровневый декодер (152) выполнен с возможностью деквантования остаточных значений в цифровом представлении относительно низкой битовой глубины (например, 8 бит и т. д.) после декодирования в цифровое представление относительно высокой битовой глубины (например, 12+ бит и т. д.) в цветовом пространстве (например, YCbCr и т. д.) с использованием одного или нескольких параметров NLQ, декодированных из метаданных (130).
[0065]
Во время дополнительных операций (158) многоуровневый декодер (152) выполнен с возможностью генерирования восстановленной версии одного или нескольких изображений широкого динамического диапазона на основе остаточных данных, сгенерированных во время операций (154) декодирования EL, и кодовых слов VDR, сгенерированных во время операций (162) обратного отображения. Восстановленная версия одного или нескольких изображений широкого динамического диапазона может быть выведена на и/или визуализирована на дисплейной панели, например, дисплейной системой (например, HDR, VDR и т. д.), которая работает с или включает многоуровневый декодер (152).
[0066]
В некоторых вариантах осуществления многоуровневый декодер (152) выполнен с возможностью реализации прогнозирования из BL в EL (например, внутреннего и/или промежуточного прогнозирования и т. д.) для снижения количества данных изображения EL, которые должны содержаться в уровнях EL для восстановления изображений VDR многоуровневым декодером (152). Многоуровневый декодер (152) может генерировать на основе по меньшей мере частично кодовых слов VDR, полученных посредством операций (122) обратного отображения, данные изображения прогнозирования, которые содержат кодовые слова VDR, которые должны быть использованы в дополнительных операциях (158).
[0067]
В некоторых вариантах осуществления компоненты или модули, используемые во время операций (162) обратного отображения или операций (160) декодирования BL многоуровневого декодера (152), могут являться такими же или практически такими же, как те, что используются во время операций (120) обратного отображения или операций (118) декодирования BL многоуровневого кодера (102).
[0068]
Одна или несколько операций, выполненных многоуровневым декодером (152), могут быть реализованы с использованием одного или нескольких из множества кодеков, включая, помимо прочего, любое сочетание из следующего: H.264/AVC/HEVC, MPEG-2, VP8, VC-1 и/или другие.
[0069]
В некоторых вариантах осуществления нелинейный деквантователь (156), обратное отображение (162) и сумматор (158) могут являться частью блока (163) формирования. Помимо прочего, в варианте осуществления блок (163) формирования может быть реализован с использованием считываемых процессором команд, запускаемых на процессоре, или с использованием специализированного аппаратного обеспечения, такого как FPGA и тому подобное, или с использованием сочетания универсальных или специализированных процессоров.
[0070]
i
i
i
max
i
BL
EL,
На фиг. 1C показан поток данных для формирователя (163) «базового профиля», реализованного с использованием арифметики с фиксированной точкой в соответствии с вариантом осуществления настоящего изобретения. С учетом коэффициентов прогнозирования a, b и c, параметров обратного квантователя s, m, r и t, других параметров метаданных (таких как значения поворота x) и входных данных x и x операции формирователя могут быть выражены следующим образом:
BL_prediction() {
y<sub>BL</sub>=a<sub>i</sub>+b<sub>i</sub>*x<sub>BL</sub>+c<sub>i</sub>*x<sub>BL</sub><sup>2</sup>;
Clip3(0, 1.0, y<sub>BL</sub>);
}
EL_inverse_quant() {
y<sub>EL</sub>=s*((x<sub>EL</sub>-m)-0.5*sign(x<sub>EL</sub>-m))
+ t*sign(x<sub>EL</sub>-m);
Clip3(-r<sub>max</sub>, r<sub>max</sub>, y<sub>EL</sub>);
}
EDR composing () {
EDR = Round(y<sub>BL</sub>+y<sub>EL</sub>);
Clip3(0, 2<sup>vdr_bit_depth</sup> - 1, EDR);
}
[0071]
BL[0]
BL[1]
BL[2]
BL[0]
i
i
i
На фиг. 1D показан поток данных для формирователя (163) «основного профиля», реализованного с использованием арифметики с фиксированной точкой в соответствии с еще одним вариантом осуществления настоящего изобретения. На фиг. 1D x обозначает образец канала яркости, тогда как x и x обозначают образцы канала цветности. Для x прогнозирование может быть выполнено с использованием многочленов второго порядка с коэффициентами a, b, и c, как показано на фиг. 1C. Для образцов цветности прогнозирование может быть основано либо на многочленах второго порядка, либо оно может быть основано на предикторе (MMR) множественной регрессии многоцветного канала, как описано в заявке PCT № PCT/US2012/033605, поданной 13 апреля 2012 г., и полностью включено в данную заявку посредством ссылки.
[0072]
max
Этап обратного квантования EL, показанный на фиг. 1D, может быть подобен этапу, который более подробно показан на фиг. 1C, с использованием параметров (s, m, t, r). Пространственная повышающая дискретизация с постоянными коэффициентами используется, если соответствующий флаг (например, el_spatial_resampling_filter_flag) установлен в качестве 1. В варианте осуществления фильтр повышающей дискретизации 2 x 2 используется совместно с 8-канальным горизонтальным фильтром и 6-канальным вертикальным фильтром. Также следует отметить, что пространственная повышающая дискретизация EL и пространственная повышающая дискретизация BL являются взаимоисключающими.
СОХРАНЕНИЕ ВИЗУАЛЬНЫХ ДЕТАЛЕЙ В ДАННЫХ ИЗОБРАЖЕНИЯ BL
[0073]
В целях иллюстрации во время одной или нескольких операций (114) отображения, операций (116) ограничения или операций (118) кодирования BL и т. д. многоуровневый кодер (102) выполнен с возможностью использования степенной функции со значением экспоненты (α) в качестве функции отображения для отображения кодовых слов яркости VDR, декодированных из исходного видеоконтента (104), в отображенные кодовые слова яркости, которые могут быть квантованы и кодированы в данные (106) изображения BL. Степенная функция может быть представлена следующим выражением:
(2)
[0074]
Если значение экспоненты (α, которое может быть таким же, как значение в выражении (1)) равняется единице (1), вышеуказанная степенная функция сводится к отображению линейного квантования. Если доступная скорость передачи битов является высокой, значение экспоненты может быть с некоторой вероятностью установлено в относительно большом диапазоне, поскольку артефакты в виде рассыпания на блоки с меньшей вероятностью возникают при высоких скоростях передачи битов. Если доступная скорость передачи битов является низкой, значение экспоненты может быть с некоторой вероятностью установлено в относительно небольшом диапазоне, поскольку артефакты в виде рассыпания на блоки с большей вероятностью возникают при низких скоростях передачи битов. Высокое значение экспоненты вынуждает функцию отображения присваивать относительно большее количество кодовых слов уровням высокой яркости, чем уровням низкой яркости, и может обеспечить возможность содержания данными (106) изображения BL большего количества деталей в светлых частях восстановленных изображений с меньшим количеством артефактов сжатия. Однако высокое значение экспоненты также стремится к объединению различных исходных кодовых слов (например, VDR и т. д.) в одинаковые или очень близкие сжатые кодовые слова в темных частях восстановленных изображений. В худшем случае неплоская темная часть (например, с заметными неравномерностями яркости и т. д.) в исходном видеоконтенте становится полностью плоской (например, с неравномерностью яркости, близкой к 0 или ниже едва заметной разницы в человеческом зрении, и т. д.) в восстановленных изображениях, что приводит к очень заметным артефактам в виде рассыпания на блоки.
[0075]
Для способствования предотвращению артефактов в виде рассыпания на блоки многоуровневый кодер (например, 102), как описано в данной заявке, может быть сконфигурирован с верхней границей, MAX_α, которую не должно превышать значение экспоненты. В некоторых вариантах осуществления данная верхняя граница может быть сконфигурирована/установлена/определена в зависимости от того, какие скорости передачи битов доступны для приема многоуровневого видеосигнала, как описано в данной заявке. Многоуровневый кодер (например, 102) выполнен с возможностью определения оптимального значения экспоненты, ограниченного верхней границей, на основе исходного видеоконтента.
[0076]
В некоторых вариантах осуществления общее оптимальное значение экспоненты может быть выбрано для всей сцены, для множества входных изображений VDR и т. д. Для каждого входного изображения VDR зависящее от изображения оптимальное значение экспоненты может быть сначала определено на основе данного входного изображения VDR. Общее оптимальное значение экспоненты для сцены может быть затем выбрано (например, минимальное значение экспоненты и т. д.) из одного или нескольких зависящих от изображения оптимальных значений экспоненты для одного или нескольких входных изображений VDR в сцене.
[0077]
В некоторых вариантах осуществления входное изображение VDR может быть разделено на множество блоков изображения VDR. Среднеквадратические отклонения среди кодовых слов блоков изображения являются указателями соответствующих величин текстуры в блоках изображения. Отличное от нуля среднеквадратическое отклонение, как описано в данной заявке, может быть в качестве альтернативы представлено или определено посредством одной из отличных от нуля разниц максимум-минимум (например, разницы между максимальным и минимальным значениями в блоке изображения и т. д.), отличных от нуля изменений, каждое значение измерения плавности которых соответствует отличному от нуля среднеквадратическому отклонению или отличному от нуля изменению и т. д. И наоборот, нулевое среднеквадратическое отклонение, как описано в данной заявке, может быть в качестве альтернативы представлено или определено посредством одной из нулевых разниц максимум-минимум, нулевых изменений, каждое значение измерения плавности которых соответствует нулевому среднеквадратическому отклонению или нулевому изменению и т. д. Вызванный отображением артефакт в виде рассыпания на блоки возникает, если блок изображения VDR с отличным от нуля среднеквадратическим отклонением отображается в соответствующий отображенный блок изображения, содержащий отображенные кодовые слова нулевого или очень небольшого среднеквадратического отклонения (например, небольшая часть JND и т. д.). В некоторых вариантах осуществления определение отличного от нуля среднеквадратического отклонения в блоке изображения (например, блоке изображения VDR, отображенном блоке изображения и т. д.) эквивалентно или сведено к определению отличной от нуля разницы между максимальным и минимальным значениями в данном блоке изображения. Подобным образом, определение нулевого среднеквадратического отклонения в блоке изображения (например, блоке изображения VDR, отображенном блоке изображения и т. д.) эквивалентно или сведено к определению нулевой разницы между максимальным и минимальным значениями. В данном случае отображенный блок изображения захватывает сжатые данные изображения, которые не могут быть оптимизированы для просмотра на дисплее SDR.
ПРИВЕДЕННОЕ В КАЧЕСТВЕ ПРИМЕРА ОПРЕДЕЛЕНИЕ ЗНАЧЕНИЯ ЭКСПОНЕНТЫ В СТЕПЕННОЙ ФУНКЦИИ
[0078]
В некоторых вариантах осуществления во время одной или нескольких операций (114) отображения, операций (116) ограничения или операций (118) декодирования BL и т. д. многоуровневый кодер (102) выполнен с возможностью использования степенной функции для отображения кодовых слов VDR (например, кодовых слов освещения VDR и т. д.), декодированных из исходного видеоконтента (104), в отображенные кодовые слова (например, отображенные кодовые слова яркости и т. д.), которые могут быть квантованы или кодированы в качестве части данных (106) изображения BL. В некоторых вариантах осуществления многоуровневый кодер (например, 102) реализует алгоритм быстрого поиска или поток процесса для определения оптимального значения экспоненты α степенной функции отображения, как проиллюстрировано на фиг. 2A.
[0079]
opt
В блоке 202 многоуровневый кодер (102) выполняет операции задания значения следующим образом. Для каждого входного изображения j VDR в наборе из F входных изображений VDR в сцене многоуровневый кодер (102) задает оптимальное значение экспоненты, α[j], равное 1,0. Многоуровневый кодер (102) также делит каждое входное изображение VDR в наборе из F входных изображений VDR в сцене на N блоков изображения. Многоуровневый кодер (102) дополнительно устанавливает начальное значение для j, например, 0.
[0080]
В блоке 204 многоуровневый кодер (102) определяет, действительно ли j меньше, чем F. Если да, поток процесса переходит к блоку 206. Если нет, поток процесса переходит к блоку 220.
[0081]
j
В блоке 206 для каждого блока n изображения во входном изображении j VDR многоуровневый кодер (102) вычисляет максимальное и минимальное значения B(j, n) и A(j, n) яркости в данном блоке изображения. Набор Φ блоков изображения с отличными от нуля среднеквадратическими отклонениями во входном изображении j VDR составляется на основе следующего выражения:
(3)
[0082]
j
Кроме того, многоуровневый кодер (102) задает локальную переменную α для исходного значения, например, 1,0.
[0083]
j
В блоке 208 многоуровневый кодер (102) определяет, действительно ли α меньше, чем MAX_α. Если да, поток процесса переходит к блоку 210. Если нет, поток процесса переходит к блоку 218.
[0084]
j
j
j
В блоке 210 для каждого блока n изображения в наборе Φ многоуровневый кодер (102) отображает на основе степенной функции со значением экспоненты в виде α, кодовые слова VDR (например, кодовые слова яркости VDR и т. д.) в данном блоке в отображенные кодовые слова (например, отображенные кодовые слова яркости и т. д.) в соответствующем отображенном блоке изображения и вычисляет максимальное и минимальное значения b(j, n) и a(j, n) в отображенном блоке изображения в наборе отображенных блоков изображения, полученных из набора Φ, как показано в следующих выражениях:
(4)
(5)
[0085]
Следовательно, многоуровневый кодер (102) определяет общее количество отображенных блоков изображения со среднеквадратическими отклонениями, превышающими пороговое значение , как показано в следующем выражении:
(6)
где  может быть установлено в качестве одного из следующего: нуля (0), значения, близкого к нулю, части JND, верхней границы для ошибок квантования в операциях отображения и т. д.
[0086]
j
В блоке 212 многоуровневый кодер (102) определяет, равняется ли общее количество отображенных блоков изображения с отличными от нуля среднеквадратическими отклонениями общему количеству элементов в наборе Φ. Если да, поток процесса переходит к блоку 214. Если нет, поток процесса переходит к блоку 218.
[0087]
opt
j
В блоке 214 многоуровневый кодер (102) устанавливает значение для α[j], равное α.
[0088]
j
В блоке 216 многоуровневый кодер (102) увеличивает α на положительный инкремент, например, 0,1. Поток процесса переходит к блоку 208.
[0089]
В блоке 218 многоуровневый кодер (102) увеличивает j на 1. Поток процесса переходит к блоку 204.
[0090]
opt
В блоке 220 многоуровневый кодер (102) выбирает одно из значений α[j], где j имеет значение от 0 до (F-1), в качестве общего оптимального значения экспоненты для набора из F входных изображений VDR в сцене.
[0091]
opt
В некоторых вариантах осуществления общее оптимальное значение экспоненты выбирается в качестве минимального значения среди α[j], где j имеет значение от 0 до (F-1), как показано в следующем выражении:
opt
α = min{ α[j]  } (7)
[0092]
Использование степенной функции отображения с общим оптимальным значением экспоненты, как проиллюстрировано в выражении (7), предотвращает или снижает вероятность возникновения вызванных отображением полностью плоских блоков изображения во всех изображениях, отображенных из набора из F входных изображений VDR.
[0093]
opt
В некоторых других вариантах осуществления общее оптимальное значение экспоненты может являться значением, близким к, но не обязательно минимальным значением среди α[j], где j имеет значение от 0 до (F-1). Использование степенной функции отображения с общим оптимальным значением экспоненты, которое не является минимальным, все еще может вызвать возникновение одного или нескольких вызванных отображением полностью плоских блоков изображения в одном или нескольких изображениях, отображенных из набора из F входных изображений VDR.
[0094]
Приведенный в качестве примера алгоритм, перечисляющий операции, проиллюстрированные на фиг. 2A, показан в следующей таблице:
ТАБЛИЦА 1
α<sup>opt</sup>[j] = 1.0  for all j.
// для каждого кадра j в пределах сценыfor( j = 0; j < F ; j++ ){
//  ЭТАП 1.a: найти максимальное значение для каждого блока n в домене VDR
//  ЭТАП 1.b: найти минимальное значение для каждого блока n в домене VDRCalculate A(j, n) for all n
//  ЭТАП 1.c : найти блоки с (B(j, n) - A(j, n))> 0; то есть отличным от нуля индексом блока stdConstruct  <maths num="9"><img file="00000003.TIF" he="7" wi="53" img-content="undefined" img-format="TIF" /></maths>
// ЭТАП 2: вычислить среднеквадратическое отклонение для каждого блока в домене BL с отличной αfor( α<sub>j</sub> = 1.0; α<sub>j</sub> < MAX_α; α<sub>j</sub> +=0.1 ) {
//  ЭТАП 2a: квантовать B(j, n) в <maths num="10"><img file="00000008.TIF" he="7" wi="6" img-content="undefined" img-format="TIF" /></maths> до BL с использованием степенной функции с α<sub>j</sub><maths num="11"><img file="00000004.TIF" he="12" wi="83" img-content="undefined" img-format="TIF" /></maths>
//  ЭТАП 2b: квантовать A(j, n) в <maths num="12"><img file="00000008.TIF" he="7" wi="6" img-content="undefined" img-format="TIF" /></maths> до BL с использованием степенной функции с α<sub>j</sub><maths num="13"><img file="00000009.TIF" he="12" wi="85" img-content="undefined" img-format="TIF" /></maths>
// ЭТАП 2c: вычислить, вызывает ли заданная α<sub>j</sub> нулевое отклонениеIf(  <maths num="14"><img file="00000010.TIF" he="13" wi="61" img-content="undefined" img-format="TIF" /></maths> == 0 )α<sup>opt</sup>[j] = α<sub>j</sub>elsebreak;}}
// ЭТАП 3: найти минимальную α<sup>opt</sup>[j] в качестве конечной αα  = min{ α<sup>opt</sup>[j]  }
ПРИВЕДЕННОЕ В КАЧЕСТВЕ ПРИМЕРА ОПРЕДЕЛЕНИЕ ЗНАЧЕНИЙ ПАРАМЕТРА В ЛИНЕЙНОМ КВАНТОВАНИИ, ВКЛЮЧАЮЩЕМ КУСОЧНО-ЛИНЕЙНОЕ КВАНТОВАНИЕ
[0095]
В некоторых вариантах осуществления в одной или нескольких операциях (114) отображения, операциях (116) ограничения или операциях (118) декодирования BL и т. д. многоуровневый кодер (102) выполнен с возможностью использования PWL функции отображения (или PWL квантователя) для отображения кодовых слов VDR (например, кодовых слов цветности VDR и т. д.), декодированных из исходного видеоконтента (104), в отображенные кодовые слова (например, отображенные кодовые слова цветности и т. д.), которые могут быть квантованы и кодированы в качестве части данных (106) изображения BL. PWL функция отображения может включать один или несколько сегментов, каждый из которых может быть представлен следующим выражением (в данном случае округление игнорируется) с различными значениями для параметров m и b:
(8)
i
i
где m и b являются параметрами наклона и пересечения и i является индексом, связанным с входной переменной v (например, i-тым кодовым словом цветности VDR и т. д.) и отображенным кодовым словом s (например, соответствующим i-тым отображенным кодовым словом цветности и т. д.)
[0096]
PWL функция отображения может быть сведена к линейной функции отображения (например, линейному квантованию, линейному квантователю и т. д.), если общее количество сегментов в функции отображения PWL равняется единице (1).
[0097]
Более высокое значение m в выражении (8) обеспечивает большее сжатие в отображенных кодовых словах на левой стороне выражения (8), что делает возникновение артефактов в виде рассыпания на блоки более вероятным. Для улучшения эффективности кодирования конечные выбранные m и b могут быть одинаковыми на протяжении всей сцены. В некоторых вариантах осуществления либо односегментная, либо трехсегментная PWL функция отображения может быть использована для отображения кодовых слов VDR (например, кодовых слов цветности VDR и т. д.) в отображенные кодовые слова (например, отображенные кодовые слова цветности и т. д.) в сцене.
[0098]
Использование многосегментной PWL функции отображения (например, трехсегментной PWL функции отображения и т. д.) обеспечивает возможность применения отличного линейного квантователя (например, отличных значений для m и т. д.) к отличному диапазону входных данных VDR (например, входных кодовых слов цветности VDR и т. д.). Первый диапазон цветности входных данных VDR может быть отображен посредством первого сегмента PWL функции отображения. Второй диапазон цветности входных данных VDR может быть отображен посредством второго сегмента PWL функции отображения. Третий диапазон цветности входных данных VDR может быть отображен посредством третьего сегмента PWL функции отображения. Лучший линейный квантователь может быть найден и определен для каждого из множества сегментов. Алгоритм может быть реализован для поиска зависящих от изображения оптимальных значений параметра для каждого входного изображения VDR в наборе входных изображений VDR в сцене, а затем консенсус или общие оптимальные значения параметра могут быть установлены среди всех зависящих от изображения оптимальных значений параметра входных изображений VDR в пределах одной сцены.
[0099]
PWL функция отображения, как описано в данной заявке, может быть определена посредством точек поворота. В некоторых вариантах осуществления многоуровневый кодер (например, 102) реализует алгоритм быстрого поиска или поток процесса для определения оптимального набора точек поворота, как проиллюстрировано на фиг. 2B.
[00100]
opt
В блоке 252 многоуровневый кодер (102) выполняет операции задания значения следующим образом. Для каждого входного изображения j VDR в наборе из F входных изображений VDR в сцене многоуровневый кодер (102) задает коэффициент масштабирования наклона, w[j], равный 1,0. Многоуровневый кодер (102) может быть выполнен с возможностью разделения каждого входного изображения VDR в наборе из F входных изображений VDR на N блоков изображения или повторного использования N блоков изображения в качестве разделенных в каждом входном изображении VDR в наборе из F входных изображений VDR в сцене в потоке процесса, который был использован для поиска оптимального значения α. Многоуровневый кодер (102) дополнительно устанавливает начальное значение для j, например, 0.
[00101]
В блоке 254 многоуровневый кодер (102) определяет, действительно ли j меньше, чем F. Если да, поток процесса переходит к блоку 256. Если нет, поток процесса переходит к блоку 270.
[00102]
jn
j
jn
j
В блоке 256 для каждого блока n изображения во входном изображении j VDR многоуровневый кодер (102) вычисляет максимальное, минимальное и среднее значения D(j, n), E(j, n), µ(j, n) (например, в кодовых словах цветности VDR и т. д.) в данном блоке изображения. Многоуровневый кодер (102) также вычисляет отображенные значения d(w), e(w) (например, отображенные кодовые слова цветности и т. д.), соответствующие максимальному и минимальному значениям D(j, n) и E(j, n) в данном блоке изображения, на основе следующих выражений (проиллюстрированных в данном случае для 8-битного базового уровня. Если используется 10-битный базовый уровень, тогда приведенная в качестве примера функция ограничения может являться clip(x, 0, 1023)):
(10)
(11)
j
где , , , , ,  и  являются максимальным значением отображенного кодового слова яркости, минимальным значением отображенного кодового слова яркости, максимальным входным значением кодового слова яркости VDR, минимальным входным значением кодового слова яркости VDR, максимальным входным значением кодового слова цветности VDR, минимальным входным значением кодового слова цветности VDR и параметром в линейных соотношениях, представленных вышеуказанными выражениями (10) и (11). Многоуровневый кодер (102) составляет набор Κ блоков изображения с отличными от нуля среднеквадратическими отклонениями во входном изображении j VDR, но с нулевыми среднеквадратическими отклонениями в соответствующих отображенных значениях кодового слова цветности на основе следующего выражения:
(12)
[00103]
j
В блоке 258 многоуровневый кодер (102) определяет, является ли набор Κ пустым. Если да, поток процесса переходит к блоку 276. Если нет, поток процесса переходит к блоку 260.
[0100]
В блоке 276 многоуровневый кодер (102) выполнен с возможностью использования односегментного линейного квантователя для входного изображения j VDR и установки параметров в соответствии со следующими выражениями:
(13)
(14)
(15)
(16)
(17)
[0101]
j
В блоке 260 многоуровневый кодер (102) находит минимальное и максимальное значения средних значений из набора Κ в следующих выражениях:
(18)
(19)
[0102]
Минимальное и максимальное значения ( и ) средних значений могут быть использованы для разделения всего диапазона входных значений кодового слова цветности VDR между и  на три сегмента: [,], [,] и [,].
[0103]
Следует отметить, что выражения (18) и (19) для генерирования разделений для входных значений кодового слова цветности VDR используются исключительно с целью пояснения. В других вариантах осуществления большее количество или меньшее количество значений (например, средних точек и/или дробных точек между любыми двумя из данных значений и т. д.) или сегментов может быть использовано, например, посредством генерирования большего количества или меньшего количества разделений из средних, максимальных или минимальных входных значений кодового слова цветности из набора входных изображений в сцене.
[0104]
Следует отметить, что с целью изобретения набор входных изображений может содержать переменное количество входных изображений и/или может или не может относиться к сцене. Например, потоки процессов, показанные на фиг. 2A и фиг. 2B, могут быть выполнены с использованием набора входных изображений, которые относятся к поднабору сцены. Также, потоки процессов, показанные на фиг. 2A и фиг. 2B, могут быть выполнены с использованием набора входных изображений, которые не относятся к одной сцене в других вариантах осуществления.
[0105]
j
j
j
L
M
H
В блоке 260 многоуровневый кодер (102) может быть также выполнен с возможностью составления трех наборов K, K и K блоков изображения на основе следующих выражений:
(20)
(21)
(22)
j
Как проиллюстрировано,  представляет блоки изображения VDR в среднем сегменте PWL функции отображения, которая имеет отличное от нуля среднеквадратическое отклонение в значениях цветности VDR, но имеет нулевые среднеквадратические отклонения в отображенных значениях цветности с коэффициентом масштабирования наклона, w, равным 1,0.  представляет блоки изображения VDR в нижнем сегменте PWL функции отображения, которая имеет отличное от нуля среднеквадратическое отклонение в значениях цветности VDR.  представляет блоки изображения VDR в верхнем сегменте PWL функции отображения, которая имеет отличное от нуля среднеквадратическое отклонение в значениях цветности VDR.
[0106]
L
j
В блоке 262 многоуровневый кодер (102) выполнен с возможностью установки массива Ω из подходящих значений для коэффициента масштабирования наклона, w, используемого для набора , как показано в следующем выражении:
L
= {1, 1-Δw, 1-2Δw, ..., 1 - (S-1)Δw} (23)
L
L
где Δw является изменяющимся или фиксированным значением декремента и S является изменяющимся или фиксированным количеством элементов массива в Ω.
[0107]
L
L
jn
j
jn
j
j
Для локальной переменной s в каждом целом значении между 0 и S многоуровневый кодер (102) использует выражения (10) и (11) для вычисления или повторного вычисления отображенных значений цветности d(w) и e (w), соответствующих максимальному и минимальному значениям цветности D(j, n) и E(j, n) для каждого блока изображения с n в , где коэффициент масштабирования наклона, w, используемый для набора , устанавливается в качестве подходящего значения в Ω, как показано в следующем выражении:
j
w =  [s] (24)
[0108]
L
Кроме того, для s в каждом целом значении между 0 и S многоуровневый кодер (102) вычисляет величину , которая сравнивает количество (обозначенное как ) элементов в  с количеством блоков изображения со среднеквадратическими отклонениями в отображенных значениях цветности выше порогового значения , как показано в следующем выражении:
(25)
[0109]
Оптимизированный коэффициент масштабирования  наклона для нижнего сегмента PWL функции отображения может быть получен на основе  с использованием следующих выражений:
(26)
где  задан следующим образом:
(27)
[0110]
M
j
Обработка, как описано выше, может быть использована для получения нуля, одного, двух или большего количества других оптимизированных коэффициентов масштабирования для нуля, одного, двух или большего количества других сегментов PWL функции отображения. Например, в блоке 264 многоуровневый кодер (102) выполнен с возможностью установки массива Ω из подходящих значений для коэффициента масштабирования наклона, w, используемого для набора , как показано в следующем выражении:
M
= {1, 1+Δw, 1+2Δw, ..., 1 + (S-1)Δw} (28)
M
M
где Δw является изменяющимся или фиксированным значением декремента и S является изменяющимся или фиксированным количеством элементов массива в Ω.
[0111]
M
M
jn
j
jn
j
j
Для локальной переменной s в каждом целом значении между 0 и S многоуровневый кодер (102) использует выражения (10) и (11) для вычисления или повторного вычисления отображенных значений цветности d(w) и e (w), соответствующих максимальному и минимальному значениям цветности D(j, n) и E(j, n) для каждого блока изображения с n в , где коэффициент масштабирования наклона, w, используемый для набора , устанавливается в качестве подходящего значения в Ω, как показано в следующем выражении:
j
w =  [s] (29)
[0112]
M
Кроме того, для s в каждом целом значении между 0 и S многоуровневый кодер (102) вычисляет величину , которая сравнивает количество (обозначенное как ) элементов в  с количеством блоков изображения со среднеквадратическими отклонениями в отображенных значениях цветности выше порогового значения , как показано в следующем выражении:
(30)
[0113]
Оптимизированный коэффициент масштабирования  наклона для среднего сегмента PWL функции отображения может быть получен на основе  с использованием следующих выражений:
(31)
где  задан следующим образом:
(32)
[0114]
H
j
В блоке 266 многоуровневый кодер (102) выполнен с возможностью установки массива Ω из подходящих значений для коэффициента масштабирования наклона, w, используемого для набора , как показано в следующем выражении:
H
= {1, 1-Δw, 1-2Δw, ..., 1 - (S-1)Δw} (33)
H
H
где Δw является изменяющимся или фиксированным значением декремента и S является изменяющимся или фиксированным количеством элементов массива в Ω.
[0115]
H
H
jn
j
jn
j
j
Для локальной переменной s в каждом целом значении между 0 и S многоуровневый кодер (102) использует выражения (10) и (11) для вычисления или повторного вычисления отображенных значений цветности d(w) и e (w), соответствующих максимальному и минимальному значениям цветности D(j, n) и E(j, n) для каждого блока изображения с n в , где коэффициент масштабирования наклона, w, используемый для набора , устанавливается в качестве подходящего значения в Ω, как показано в следующем выражении:
j
H
w =  [s] (34)
[0116]
H
Кроме того, для s в каждом целом значении между 0 и S многоуровневый кодер (102) вычисляет величину , которая сравнивает количество (обозначенное как ) элементов в  с количеством блоков изображения со среднеквадратическими отклонениями в отображенных значениях цветности выше порогового значения , как показано в следующем выражении:
(35)
[0117]
Оптимизированный коэффициент масштабирования  наклона для верхнего сегмента PWL функции отображения может быть получен на основе  с использованием следующих выражений:
(36)
где  задан следующим образом:
(37)
[0118]
В блоке 268 многоуровневый кодер (102) увеличивает j на 1. Поток процесса переходит к блоку 254.
[0119]
В блоке 270 многоуровневый кодер (102) генерирует набор оптимизированных параметров, используемых для определения координат поворотов PWL функции отображения, как показано в следующих выражениях:
(38)
(39)
(40)
(41)
(42)
[0120]
В блоке 272 многоуровневый кодер (102) генерирует координаты всех поворотов (например, четырех поворотов) для функции отображения PWL на основе набора оптимизированных параметров, как показано в следующих выражениях:
L
H
C
C
pivot_x[] = { v, , , v } (43)
pivot_y[0] = 0 (44)
pivot_y[1] = pivot_y[0] +  (45)
pivot_y[2] = pivot_y[1] +  (46)
pivot_y[3] = pivot_y[2] +  (47)
где pivot_x[] и pivot_y[] являются двумя массивами соответственно, представляющими координаты x и координаты y четырех вращений.
[0121]
В блоке 274 многоуровневый кодер (102) выполнен с возможностью определения того, превышает ли общее количество кодовых слов, необходимых для предоставления значений координаты y PWL функции отображения, общее количество (например, 255 и т. д.) доступных кодовых слов в кодовом пространстве, используемом для кодирования данных изображения BL. Например, многоуровневый кодер (102) может быть выполнен с возможностью определения того, превышает ли pivot_y[3] общее количество (например, 255 и т. д.) доступных кодовых слов. В таком случае, для локальной переменной n в каждом значении между 0 и 3 многоуровневый кодер (102) может быть выполнен с возможностью сжатия координат y PWL функции отображения с использованием следующего выражения:
pivot_y[n] =  clip3( round(pivot_y[n] * 255/( pivot_y[3] - pivot_y[0] )), 0, 255) (48)
[0122]
Приведенный в качестве примера алгоритм, перечисляющий операции, проиллюстрированные на фиг. 2B, показан в следующей таблице:
ТАБЛИЦА 2
w<sup>opt</sup>[j] = 1.0  for all f. w<sup>opt</sup>[j] = 1.0  for all j.
// для каждого кадра;for( j = 0; j < F ; j++ ){
// ЭТАП 1.a: найти максимальное значение для каждого блока n в домене VDRCalculate D(j, n) for all n
// ЭТАП 1.b: найти минимальное значение для каждого блока n в домене VDRCalculate E(j, n) for all n
// ЭТАП 1.c: найти среднее значение для каждого блока n в домене VDRCalculate μ(j, n) for all n
// ЭТАП 1.d.  установить w<sub>j</sub> = 1. квантовать D(j, n)  и E(j, n) в <maths num="104"><img file="00000087.TIF" he="7" wi="6" img-content="undefined" img-format="TIF" /></maths> до BL
<maths num="105"><img file="00000088.TIF" he="13" wi="116" img-content="undefined" img-format="TIF" /></maths>(CNLSQ-a)
<maths num="106"><img file="00000089.TIF" he="13" wi="115" img-content="undefined" img-format="TIF" /></maths>(CNLSQ-b)
// ЭТАП 1.e: найти блок с (D(j, n) - E(j, n))> 0 и ( d<sub>jn</sub>(w<sub>j</sub>) - e<sub>jn</sub>(w<sub>j</sub>) == 0);
// то есть отличный от нуля индекс блока std в VDR, но нулевой в домене BL.Construct <maths num="107"><img file="00000090.TIF" he="7" wi="99" img-content="undefined" img-format="TIF" /></maths>If(  <maths num="108"><img file="00000091.TIF" he="7" wi="16" img-content="undefined" img-format="TIF" /></maths>){
// использование линейного предиктора является достаточным;
<maths num="109"><img file="00000022.TIF" he="6" wi="22" img-content="undefined" img-format="TIF" /></maths><maths num="110"><img file="00000023.TIF" he="7" wi="23" img-content="undefined" img-format="TIF" /></maths><maths num="111"><img file="00000024.TIF" he="7" wi="16" img-content="undefined" img-format="TIF" /></maths><maths num="112"><img file="00000025.TIF" he="7" wi="18" img-content="undefined" img-format="TIF" /></maths><maths num="113"><img file="00000026.TIF" he="7" wi="17" img-content="undefined" img-format="TIF" /></maths>}// конец линейностиelse{
// ЭТАП 1.f : найти минимальное и максимальное значения среднего значения от <maths num="114"><img file="00000092.TIF" he="7" wi="6" img-content="undefined" img-format="TIF" /></maths><maths num="115"><img file="00000093.TIF" he="8" wi="39" img-content="undefined" img-format="TIF" /></maths><maths num="116"><img file="00000094.TIF" he="9" wi="40" img-content="undefined" img-format="TIF" /></maths>
// ЭТАП 1.g.
// найти три набора, разделенных посредством [<maths num="117"><img file="00000031.TIF" he="6" wi="5" img-content="undefined" img-format="TIF" /></maths>, μ<sub>min</sub>(j)], [μ<sub>min</sub>(j), μ<sub>max</sub>(j)] и [μ<sub>max</sub>(j), <maths num="118"><img file="00000018.TIF" he="6" wi="5" img-content="undefined" img-format="TIF" /></maths>]
<maths num="119"><img file="00000095.TIF" he="7" wi="61" img-content="undefined" img-format="TIF" /></maths><maths num="120"><img file="00000096.TIF" he="7" wi="83" img-content="undefined" img-format="TIF" /></maths><maths num="121"><img file="00000097.TIF" he="7" wi="62" img-content="undefined" img-format="TIF" /></maths>
// ЭТАП 2.a: вычислить std для каждого блока в <maths num="122"><img file="00000098.TIF" he="7" wi="6" img-content="undefined" img-format="TIF" /></maths> в домене BL с различным w<sub>j</sub><maths num="123"><img file="00000039.TIF" he="5" wi="6" img-content="undefined" img-format="TIF" /></maths> = {1, 1-Δw, 1-2Δw, ..., 1 - (S<sup>L</sup>-1)Δw}for( s = 0; s < S<sup>L</sup>; s++ ){w<sub>j</sub> = <maths num="124"><img file="00000040.TIF" he="5" wi="6" img-content="undefined" img-format="TIF" /></maths> [s];
//  ЭТАП 2.a.1: квантовать D(j, n) в <maths num="125"><img file="00000099.TIF" he="7" wi="6" img-content="undefined" img-format="TIF" /></maths> до BL с наклоном w<sub>j</sub> с использованием (CNLSQ-a)
//  ЭТАП 2.a.2: квантовать E(j, n) в <maths num="126"><img file="00000100.TIF" he="7" wi="6" img-content="undefined" img-format="TIF" /></maths> до BL с наклоном w<sub>j </sub>с использованием (CNLSQ-b)
//  ЭТАП 2.a.3: вычислить, вызывает ли заданный w<sub>j</sub> нулевое отклонение
<maths num="127"><img file="00000044.TIF" he="13" wi="130" img-content="undefined" img-format="TIF" /></maths>}
<maths num="128"><img file="00000101.TIF" he="13" wi="65" img-content="undefined" img-format="TIF" /></maths><maths num="129"><img file="00000102.TIF" he="7" wi="28" img-content="undefined" img-format="TIF" /></maths>
// ЭТАП 2.b: вычислить std для каждого блока в <maths num="130"><img file="00000103.TIF" he="7" wi="7" img-content="undefined" img-format="TIF" /></maths>в домене BL с различным w<sub>j</sub><maths num="131"><img file="00000104.TIF" he="5" wi="7" img-content="undefined" img-format="TIF" /></maths>= {1, 1+Δw, 1+2Δw, ..., 1 + (S<sup>M</sup>-1)Δw}for( s = 0; s < S<sup>M</sup>; s++ ){w<sub>j</sub> = <maths num="132"><img file="00000105.TIF" he="5" wi="7" img-content="undefined" img-format="TIF" /></maths> [s];
//  ЭТАП 2.b.1: квантовать D(j, n) в <maths num="133"><img file="00000106.TIF" he="7" wi="7" img-content="undefined" img-format="TIF" /></maths> до BL с наклоном w<sub>j</sub> с использованием (CNLSQ-a)
//  ЭТАП 2.b.2: квантовать E(j, n) в <maths num="134"><img file="00000107.TIF" he="7" wi="7" img-content="undefined" img-format="TIF" /></maths> до BL с наклоном w<sub>j </sub>с использованием (CNLSQ-b)
// STEP 2.b.3: вычислить, вызывает ли заданный w<sub>j</sub> нулевое отклонение
<maths num="135"><img file="00000057.TIF" he="13" wi="127" img-content="undefined" img-format="TIF" /></maths>}
// найти первый ноль, возглавляющий последовательность нулей в направлении конца списка
<maths num="136"><img file="00000108.TIF" he="13" wi="67" img-content="undefined" img-format="TIF" /></maths><maths num="137"><img file="00000109.TIF" he="7" wi="31" img-content="undefined" img-format="TIF" /></maths>
// ЭТАП 2.c: вычислить std для каждого блока в <maths num="138"><img file="00000110.TIF" he="7" wi="7" img-content="undefined" img-format="TIF" /></maths> в домене BL с различным w<sub>j</sub><maths num="139"><img file="00000111.TIF" he="5" wi="7" img-content="undefined" img-format="TIF" /></maths>= {1, 1-Δw, 1-2Δw, ..., 1 - (S<sup>H</sup>-1)Δw}for( s = 0; s < S<sup>H</sup>; s++ ){w<sub>j</sub> = <maths num="140"><img file="00000112.TIF" he="5" wi="7" img-content="undefined" img-format="TIF" /></maths> [s];
// ЭТАП 2.c.1: квантовать D(j, n) в <maths num="141"><img file="00000113.TIF" he="7" wi="7" img-content="undefined" img-format="TIF" /></maths> до BL с наклоном w<sub>j</sub> с использованием (CNLSQ-a)
// ЭТАП 2.c.2: квантовать E(j, n) в <maths num="142"><img file="00000114.TIF" he="7" wi="7" img-content="undefined" img-format="TIF" /></maths> до BL с наклоном w<sub>j </sub>с использованием (CNLSQ-b)
// ЭТАП 2.c.3: вычислить, вызывает ли заданный w<sub>j</sub> нулевое отклонение
<maths num="143"><img file="00000071.TIF" he="13" wi="126" img-content="undefined" img-format="TIF" /></maths>}
<maths num="144"><img file="00000115.TIF" he="13" wi="66" img-content="undefined" img-format="TIF" /></maths><maths num="145"><img file="00000116.TIF" he="7" wi="30" img-content="undefined" img-format="TIF" /></maths>}// конец нелинейности}
// ЭТАП 3: составить PWL
<maths num="146"><img file="00000077.TIF" he="8" wi="27" img-content="undefined" img-format="TIF" /></maths><maths num="147"><img file="00000117.TIF" he="8" wi="29" img-content="undefined" img-format="TIF" /></maths><maths num="148"><img file="00000079.TIF" he="8" wi="28" img-content="undefined" img-format="TIF" /></maths><maths num="149"><img file="00000080.TIF" he="8" wi="36" img-content="undefined" img-format="TIF" /></maths><maths num="150"><img file="00000081.TIF" he="8" wi="37" img-content="undefined" img-format="TIF" /></maths>
// ввести точки разделения VDRpivot_x[] = { <maths num="151"><img file="00000118.TIF" he="6" wi="5" img-content="undefined" img-format="TIF" /></maths>, <maths num="152"><img file="00000082.TIF" he="6" wi="8" img-content="undefined" img-format="TIF" /></maths>, <maths num="153"><img file="00000083.TIF" he="6" wi="8" img-content="undefined" img-format="TIF" /></maths>, <maths num="154"><img file="00000119.TIF" he="6" wi="5" img-content="undefined" img-format="TIF" /></maths> };
// вывести точки разделения BLpivot_y[0] = 0;pivot_y[1] = pivot_y[0] + <maths num="155"><img file="00000120.TIF" he="13" wi="55" img-content="undefined" img-format="TIF" /></maths>pivot_y[2] = pivot_y[1] + <maths num="156"><img file="00000085.TIF" he="13" wi="63" img-content="undefined" img-format="TIF" /></maths>pivot_y[3] = pivot_y[2] + <maths num="157"><img file="00000121.TIF" he="13" wi="56" img-content="undefined" img-format="TIF" /></maths>
// если общее количество кодовых слов превышает 256, сжать ихif(pivot_y[3] > 255 )for( n = 0; n < 4; n++ )pivot[n] =  clip3( round(pivot[n] * 255/( pivot_y[3] - pivot_y[0] )), 0, 255);end
[0123]
В некоторых приведенных в качестве примера вариантах осуществления один или несколько линейных или нелинейных квантователей могут быть использованы для квантования данных изображения более высокой битовой глубины (например, 12+ бит и т. д.) в данные изображения более низкой битовой глубины (например, 8 бит и т. д.). Могут быть выбраны различные квантователи в различных цветовых пространствах и/или в различных цветовых каналах. Например, для сглаживания/уменьшения/удаления контурных артефактов (например, в плоских участках и т. д.) и других артефактов видеосигналы могут быть квантованы в различных цветовых пространствах и/или посредством различных способов квантования. В некоторых вариантах осуществления квантование, как описано в данной заявке, может включать одно или несколько из следующего: линейное квантование, линейное растяжение, оптимизированное квантование функции (Pdf) плотности вероятности основанного на кривой/неравномерного квантования, векторное квантование и т. д. Общие оптимизированные значения параметра могут быть выбраны на основе любого из следующего: кадра, множества кадров, сцены, множества сцен и т. д. В некоторых вариантах осуществления конкретный тип квантования может иметь соответствующее соотношение с одним или несколькими типами способов прогнозирования и/или обратного отображения.
[0124]
Квантование может быть выполнено на основе отдельного канала, или двух или более каналов одновременно. В приведенном в качестве примера варианте осуществления векторное квантование может быть выполнено среди двух или более цветовых каналов. Например, система координат (например, трехмерная декартова система координат и т. д.) может быть установлена с использованием цветовых каналов в цветовом пространстве в качестве осей. Пространственное преобразование, такое как вращение, может быть выполнено в системе координат для создания новых осей, которые определены в качестве сочетаний (или сумм проекций) двух или более цветовых каналов в цветовом пространстве. Кодовые слова в двух или более цветовых каналах после проецирования для формирования одной из новых осей, могут быть квантованы вместе посредством квантователя через одну из новых осей.
[0125]
В некоторых вариантах осуществления конкретный способ квантования может быть выбран на основе того, как хорошо он может сжать выходные многоуровневые данные изображения VDR, при этом сохраняя высокое перцепционное качество со сжатыми выходными данными изображения VDR на стороне декодера VDR.
[0126]
В некоторых вариантах осуществления конкретный способ квантования и/или оптимальные значения параметров могут быть выбраны для возмещения недостатков кодеков. Например, кодек может неудовлетворительно функционировать в черных участках сжатия и может даже выводить контурные артефакты в восстановленном изображении VDR. Квантование, как описано в данной заявке, может использовать конкретную кривую (например, сигмоидальную кривую, функцию вида мю, воспринимаемую человеком базисную кривую и т. д.) для генерирования данных изображения с меньшим количеством контурных артефактов, видимых в восстановленном изображении VDR.
[0127]
Многоуровневый кодер при использовании методов, как описано в данной заявке, может принимать входные данные изображения VDR в качестве единственных входных данных для содержимого изображения, которое должно быть обработано многоуровневым кодером. Несмотря на то, что входные данные изображения VDR могут быть предоставлены для обработки данных уровня улучшения, перцепционное квантование, которое может быть выполнено в реальном времени (например, с такой же скоростью передачи данных по кабелю, с которой входной VDR вводится в кодер VDR и т. д.), может быть использовано для генерирования входных данных изображения для обработки данных базового уровня, как описано в данной заявке.
[0128]
Квантование, как описано в данной заявке, может быть выполнено одним или несколькими различными способами. Квантование может выполнить глобальное квантование, при котором весь кадр или вся сцена квантуется с использованием одной настройки. Квантование может также выполнить основанное на разделении (локальное) квантование, при котором каждый кадр разделяется на множество неперекрывающихся областей и каждая неперекрывающаяся область квантуется с использованием своей собственной настройки. Квантование может выполнить основанное на разделении (локальное) квантование, при котором каждый кадр разделяется на множество неперекрывающихся областей и каждая неперекрывающаяся область квантуется с использованием своей собственной настройки, но настройки квантователя для конкретной непересекающейся области определяются на основе данных анализа, полученных из одной или нескольких перекрывающихся областей. Усовершенствованное квантование может быть применено в любом из одного или нескольких различных цветовых пространств. Примеры цветовых пространств, в которых продвинутое квантование может быть применено, включают, помимо всего прочего, любое из следующего: цветовые пространства RGB, цветовые пространства YCbCr, цветовые пространства YCoCg, цветовые пространства ACES или другие цветовые пространства.
[0129]
В некоторых вариантах осуществления цветовое пространство, в котором применяется квантование, поддерживается таким же, как цветовое пространство, в котором выполняется прогнозирование. Это может быть использовано как в процессе кодирования изображения VDR, так и в процессе декодирования изображения VDR. Преобразование цветового пространства может быть выполнено при необходимости, если цветовое пространство, в котором происходит визуализация изображения, отличается от цветового пространства, в котором происходит квантование.
ПРИВЕДЕННЫЕ В КАЧЕСТВЕ ПРИМЕРА ПОТОКИ ПРОЦЕССА
[0130]
На фиг. 3A проиллюстрирован приведенный в качестве примера поток процесса в соответствии с приведенным в качестве примера вариантом осуществления настоящего изобретения. В некоторых приведенных в качестве примера вариантах осуществления одно или несколько вычислительных устройств или компонентов могут выполнять данный поток процесса. В блоке 302 многоуровневый видеокодер VDR (например, 102, как показано на фиг. 1A) принимает последовательность входных изображений визуального динамического диапазона (VDR).
[0131]
В блоке 304 многоуровневый видеокодер (102) VDR выбирает подходящий набор значений параметра функции для функции отображения из множества подходящих наборов значений параметра функции для функции отображения.
[0132]
В блоке 306 многоуровневый видеокодер (102) VDR составляет набор блоков изображения отличных от нуля среднеквадратических отклонений в кодовых словах VDR по меньшей мере в одном входном изображении VDR в последовательности входных изображений VDR.
[0133]
В блоке 308 многоуровневый видеокодер (102) VDR генерирует отображенные кодовые значения посредством применения функции отображения с подходящим набором значений параметра функции к кодовым словам VDR в наборе блоков изображения по меньшей мере в одном входном изображении VDR.
[0134]
В блоке 310 многоуровневый видеокодер (102) VDR определяет на основе отображенных кодовых значений поднабор блоков изображения среднеквадратических отклонений ниже порогового значения в отображенных кодовых словах. В данном случае поднабор блоков изображения является поднабором в наборе блоков изображения.
[0135]
В блоке 312 многоуровневый видеокодер (102) VDR определяет на основе по меньшей мере частично поднабора блоков изображения, является ли подходящий набор значений параметра функции оптимальным для функции отображения для отображения по меньшей мере одного входного изображения VDR.
[0136]
В варианте осуществления вследствие определения того, что подходящий набор значений параметра функции является оптимальным для функции отображения для отображения по меньшей мере одного входного изображения VDR, многоуровневый видеокодер (102) VDR выполнен с возможностью определения того, должен ли быть использован подходящий набор значений параметра функции в качестве общего оптимального набора значений параметра функции функцией отображения для отображения множества входных изображений VDR, которые включают по меньшей мере одно входное изображение VDR.
[0137]
В варианте осуществления вследствие определения того, что подходящий набор значений параметра функции должен быть использован в качестве общего оптимального набора значений параметра функции функцией отображения для отображения множества входных изображений VDR, которые включают по меньшей мере одно входное изображение VDR, многоуровневый видеокодер (102) VDR выполнен с возможностью дополнительного выполнения: генерирования множества отображенных изображений, которые соответствуют множеству входных изображений VDR, посредством применения функции отображения с общим оптимальным набором значений параметра функции ко множеству изображений VDR; сжатия множества отображенных изображений в качестве данных изображения базового уровня (BL) в выходной многоуровневый видеосигнал.
[0138]
В варианте осуществления многоуровневый видеокодер (102) VDR выполнен с возможностью дополнительного выполнения: декодирования данных изображения BL, генерирования данных изображения прогнозирования на основе по меньшей мере частично обратного отображения данных изображения BL; генерирования остаточных значений на основе по меньшей мере частично данных изображения прогнозирования и по меньшей мере одного входного изображения VDR; применения нелинейного квантования к остаточным значениям для генерирования данных изображения EL, при этом остаточные значения содержат значения высокой битовой глубины и данные изображения EL содержат значения низкой битовой глубины; и сжатия данных изображения EL в выходной многоуровневый видеосигнал.
[0139]
В варианте осуществления набор блоков изображения отличных от нуля среднеквадратических отклонений вычисляется посредством кодовых слов VDR в пределах конкретного диапазона значений VDR во множестве диапазонов значений VDR. Множество диапазонов значений VDR содержит один или несколько диапазонов высоких значений, диапазонов средних значений или диапазонов низких значений. В варианте осуществления многоуровневый видеокодер (102) VDR выполнен с возможностью дополнительного выполнения: вычисления набора статистических значений VDR для набора блоков изображения отличных от нуля среднеквадратических отклонений, при этом отдельное статистическое значение VDR в наборе статистических значений VDR представляет одно из среднеарифметических, арифметических средних, среднегеометрических, геометрических средних, максимальных или минимальных значений в кодовых словах VDR отдельного блока изображения в наборе блоков изображения отличных от нуля среднеквадратических отклонений; и генерирования на основе набора статистических значений VDR множества диапазонов значений VDR.
[0140]
В варианте осуществления данные изображения BL, полученные из последовательности входных изображений VDR, сжимаются первым 8-битным кодером в многоуровневый видеосигнал и данные изображения EL, полученные из последовательности входных изображений VDR, сжимаются вторым 8-битным кодером в многоуровневом кодере в многоуровневый видеосигнал.
[0141]
На фиг. 3B проиллюстрирован приведенный в качестве примера поток процесса в соответствии с приведенным в качестве примера вариантом осуществления настоящего изобретения. В некоторых приведенных в качестве примера вариантах осуществления одно или несколько вычислительных устройств или компонентов могут выполнять данный поток процесса. В блоке 352 многоуровневый видеодекодер VDR (например, 152, как показано на фиг. 1B) принимает данные изображения базового уровня (BL) из по меньшей мере части многоуровневого видеосигнала.
[0142]
В блоке 354 многоуровневый видеодекодер (152) VDR или видеодекодер (172) базового уровня декодирует данные изображения BL для генерирования множества отображенных изображений.
[0143]
В данном случае множество отображенных изображений было получено посредством применения функции отображения с общим оптимальным набором значений параметра функции ко множеству изображений визуального динамического диапазона (VDR). Общий оптимальный набор значений параметра функции может быть выбран из множества отдельных оптимальных наборов значений параметра функции для функции отображения. Каждый отдельный оптимальный набор значений параметра функции определяется на основе по меньшей мере частично применения функции отображения с множеством подходящих наборов параметров функции к по меньшей мере одному изображению VDR во множестве изображений VDR.
[0144]
В варианте осуществления многоуровневый видеодекодер (152) VDR или видеодекодер (172) базового уровня выполнен с возможностью визуализации множества отображенных изображений в дисплейной системе.
[0145]
В варианте осуществления многоуровневый видеодекодер (152) VDR выполнен с возможностью дополнительного выполнения: генерирования данных изображения прогнозирования на основе по меньшей мере частично обратного отображения множества отображенных изображений; декодирования данных изображения EL из многоуровневого видеосигнала; применения нелинейного деквантования к данным изображения EL для генерирования остаточных значений, при этом остаточные значения содержат значения высокой битовой глубины и данные изображения EL содержат значения низкой битовой глубины; и генерирования по меньшей мере одного изображения VDR на основе по меньшей мере частично данных изображения прогнозирования и остаточных значений. В варианте осуществления многоуровневый видеодекодер (152) VDR выполнен с возможностью визуализации по меньшей мере одного изображения VDR в дисплейной системе VDR.
[0146]
В варианте осуществления множество входных изображений VDR или множество отображенных изображений формирует сцену.
[0147]
В варианте осуществления обратное отображение, как описано в данной заявке, основано на одной или нескольких таблицах поиска, сгенерированных из функции отображения с общим оптимальным набором значений параметра функции.
[0148]
В варианте осуществления функция отображения, как описано в данной заявке, представляет по меньшей мере одну из степенных функций, функций линейного квантования или функций кусочно-линейного квантования.
[0149]
В варианте осуществления подходящий набор значений параметра функции для функции отображения, как описано в данной заявке, представляет подходящее значение экспоненты для степенной функции.
[0150]
В варианте осуществления подходящий набор значений параметра функции для функции отображения, как описано в данной заявке, представляет один или несколько поворотов для функции кусочно-линейного квантования.
[0151]
В варианте осуществления набор блоков изображения отличных от нуля среднеквадратических отклонений, как описано в данной заявке, вычисляется с использованием кодовых слов VDR для конкретного канала во множестве каналов цветового пространства. Множество каналов может содержать одно или несколько из следующего: канал яркости, канал цветности, канал красного цвета, канал синего цвета, канал зеленого цвета или другие первичные каналы. В варианте осуществления отличная функция отображения используется для отображения различных кодовых слов VDR для отличного канала во множестве каналов.
[0152]
В варианте осуществления по меньшей мере один из одного или нескольких кодеров в видеокодере, как описано в данной заявке, содержит любое из следующего: кодеры одной из различных битовых глубин (например, 8-битный кодер, 10-битный кодер, 12-битный кодер и т. д.) и кодер усовершенствованного видеокодирования (AVC), кодер MPEG-2 (экспертной группы по движущимся изображениям), кодер высокоэффективного видеокодирования (HEVC) и т. д.
[0153]
В варианте осуществления по меньшей мере один из одного или нескольких декодеров в видеодекодере, как описано в данной заявке, содержит любое из следующего: декодеры одной из различных битовых глубин (например, 8-битный декодер, 10-битный декодер, 12-битный декодер и т. д.) и декодер усовершенствованного видеокодирования (AVC), декодер MPEG-2 (экспертной группы по движущимся изображениям), декодер высокоэффективного видеокодирования (HEVC) и т. д.
[0154]
В варианте осуществления входные изображения VDR или отображенные изображения, как описано в данной заявке, являются перцепционно-кодированными.
[0155]
В различных приведенных в качестве примера вариантах осуществления кодер, декодер, система, аппарат или одно или несколько других вычислительных устройств выполняет любой или часть вышеизложенных способов, как описано.
МЕХАНИЗМЫ РЕАЛИЗАЦИИ – ОБЗОР АППАРАТНОГО ОБЕСПЕЧЕНИЯ
[0156]
В соответствии с одним вариантом осуществления методы, описанные в данной заявке, реализуются одним или несколькими специализированными вычислительными устройствами. Специализированные вычислительные устройства могут быть реализованы на аппаратном уровне для выполнения методов или могут включать цифровые электронные устройства, такие как одна или несколько зависящих от области применения интегральных схем (ASIC) или программируемые пользователем вентильные матрицы (FPGA), которые постоянно программируются для выполнения методов, или могут включать один или несколько универсальных аппаратных процессоров, программируемых для выполнения методов в соответствии с программными командами в программно-аппаратном обеспечении, памяти, другом запоминающем устройстве или их сочетании. Данные специализированные вычислительные устройства могут также сочетать аппаратно-реализованную логику, ASIC или FPGA с программированием по индивидуальному заказу для осуществления методов. Специализированные вычислительные устройства могут являться настольными компьютерными системами, портативными компьютерными системами, карманными устройствами, сетевыми устройствами или любым другим устройством, которое включает аппаратно-реализованную и/или программную логику для реализации методов.
[0157]
Например, на фиг. 4 показана блок-диаграмма, которая иллюстрирует компьютерную систему 400, на которой может быть реализован приведенный в качестве примера вариант осуществления изобретения. Компьютерная система 400 содержит шину 402 или другой механизм связи для передачи информации и аппаратный процессор 404, соединенный с шиной 402 для обработки информации. Аппаратный процессор 404 может являться, например, универсальным микропроцессором.
[0158]
Компьютерная система 400 также содержит основную память 406, такую как оперативное запоминающее устройство (RAM) или другое динамическое запоминающее устройство, соединенную с шиной 402 для хранения информации и команд, которые должны быть выполнены процессором 404. Основная память 406 также может быть использована для хранения временных переменных или другой промежуточной информации во время выполнения команд, которые должны быть выполнены процессором 404. Данные команды при хранении в энергонезависимых носителях данных, доступных для процессора 404, превращают компьютерную систему 400 в специализированную машину, которая выполнена с возможностью выполнения операций, указанных в командах.
[0159]
Компьютерная система 400 также содержит постоянное запоминающее устройство (ROM) 408 или другое статическое запоминающее устройство, соединенное с шиной 402, для хранения статических информации и команд для процессора 404. Запоминающее устройство 410, такое как магнитный диск или оптический диск, предоставлено и соединено с шиной 402 для хранения информации и команд.
[0160]
Компьютерная система 400 может быть соединена посредством шины 402 с дисплеем 412, таким как жидкокристаллический дисплей, для отображения информации пользователю компьютера. Устройство 414 ввода, содержащее буквенно-цифровые и другие клавиши, соединено с шиной 402 для передачи информации и выборов команд на процессор 404. Другим типом пользовательского устройства ввода является устройство 416 управления курсором, такое как мышь, шаровой манипулятор или клавиши направления курсора для передачи информации о направлении и выборов команд на процессор 404 и для управления перемещением курсора на дисплее 412. Данное устройство ввода, как правило, имеет две степени свободы в двух осях, первой оси (например, x) и второй оси (например, y), что позволяет устройству определять положения на плоскости.
[0161]
Компьютерная система 400 может реализовать методы, описанные в данной заявке, с использованием выполненной по индивидуальному заказу аппаратно-реализованной логики, одной или нескольких ASIC или FPGA, программно-аппаратной и/или программной логики, что в сочетании с компьютерной системой обеспечивает или программирует компьютерную систему 400 для функционирования в качестве специализированной машины. В соответствии с одним вариантом осуществления методы в данном случае выполняются компьютерной системой 400 в ответ на выполнение процессором 404 одной или нескольких последовательностей одной или нескольких команд, содержащихся в основной памяти 406. Данные команды могут быть переданы в основную память 406 с другого носителя данных, такого как запоминающее устройство 410. Выполнение последовательности команд, содержащихся в основной памяти 406, приводит к выполнению процессором 406 этапов процесса, описанных в данной заявке. В альтернативных вариантах осуществления аппаратно-реализованная схема может быть использована вместо или в сочетании с программными командами.
[0162]
Термин «носители данных» в данном контексте относится к любым долговременным носителям, которые хранят данные и/или команды, которые приводят к специфической работе машины. Данные носители данных могут содержать энергонезависимые носители и/или энергозависимые носители. Энергонезависимые носители включают, например, оптические или магнитные диски, такие как запоминающее устройство 410. Энергозависимые носители включают динамическую память, такую как основная память 406. Общие формы носителей данных включают, например, дискету, гибкий диск, жесткий диск, твердотельный накопитель, магнитную ленту или любой другой магнитный носитель данных, CD-ROM, любой другой оптический носитель данных и физический носитель со схемами отверстий, RAM, PROM и EPROM, FLASH-EPROM, NVRAM, любую другую интегральную схему памяти или картридж памяти.
[0163]
Носители данных отличаются от средств передачи данных, но могут быть использованы совместно с ними. Средства передачи данных участвуют в передаче информации между носителями данных. Например, средства передачи данных включают коаксиальные кабели, медный провод и оптоволоконные кабели, включая провода, которые содержат шину 402. Средства передачи могут также иметь форму акустических или световых волн, таких, которые генерируются во время радиоволновой и инфракрасной передач данных.
[0164]
Различные формы носителей могут быть включены в передачу одной или нескольких последовательностей одной или нескольких команд на процессор 404 для выполнения. Например, команды могут быть сначала переданы на магнитный диск или твердотельный накопитель удаленного компьютера. Удаленный компьютер может загрузить команды в свою динамическую память и отправить команды через телефонную линию с использованием модема. Модем, установленный локально с компьютерной системой 400, может принимать данные на телефонную линию и использовать инфракрасный передатчик для преобразования данных в инфракрасный сигнал. Инфракрасный детектор может принимать данные, содержащиеся в инфракрасном сигнале, и соответствующая схема может передать данные на шину 402. Шина 402 передает данные на основную память 406, из которой процессор 404 извлекает и выполняет команды. Команды, принятые основной памятью 406, могут быть факультативно сохранены на запоминающем устройстве 410 либо перед, либо после выполнения процессором 404.
[0165]
Компьютерная система 400 также содержит интерфейс 418 связи, соединенный с шиной 402. Интерфейс 418 связи предоставляет двустороннюю передачу данных, соединенную с сетевой линией 420 связи, которая соединена с локальной сетью 422. Например, интерфейс 418 связи может являться картой цифровой сети (ISDN) с интегрированными службами, кабельным модемом, спутниковым модемом или модемом для предоставления соединения передачи данных с соответствующим типом телефонной линии. В качестве еще одного примера интерфейс 418 связи может являться картой локальной сети (LAN) для предоставления соединения передачи данных с совместимой LAN. Беспроводные линии связи могут быть также реализованы. В любой такой реализации интерфейс 418 связи отправляет и принимает электрические, электромагнитные или оптические сигналы, которые содержат потоки цифровых данных, представляющих различные типы информации.
[0166]
Сетевая линия 420 связи, как правило, обеспечивает передачу данных через одну или несколько сетей на другие устройства данных. Например, сетевая линия 420 связи может обеспечить соединение через локальную сеть 422 с главным компьютером 424 или с оборудованием данных, работающим посредством Интернет-провайдера (ISP) 426. ISP 426 в свою очередь предоставляет службы передачи данных через глобальную сеть передачи пакетных данных, которая в наше время обычно называется сетью «Интернет» 428. Как локальная сеть 422, так и сеть Интернет 428 используют электрические, электромагнитные или оптические сигналы, которые содержат потоки цифровых данных. Сигналы через различные сети и сигналы на сетевую линию 420 связи и через интерфейс 418 связи, которые передают цифровые данные на и с компьютерной системы 400, являются приведенными в качестве примера формами средств передачи данных.
[0167]
Компьютерная система 400 может отправлять сообщения и принимать данные, включая программный код, через сеть (сети), сетевые линии 420 связи и интерфейсы 418 связи. На примере сети Интернет сервер 430 может передавать запрашиваемый код для прикладной программы через сеть Интернет 428, ISP 426, локальную сеть 422 и интерфейс 418 связи.
[0168]
Принятый код может быть выполнен процессором 404 после его приема и/или сохранен на запоминающем устройстве 410 или другом энергонезависимом запоминающем устройстве для последующего выполнения.
ЭКВИВАЛЕНТЫ, РАСШИРЕНИЯ, АЛЬТЕРНАТИВЫ И ПРОЧЕЕ
[0169]
В вышеизложенной спецификации, приведенные в качестве примера варианты осуществления изобретения были описаны со ссылкой на многочисленные конкретные подробности, которые могут изменяться от реализации к реализации. Таким образом, единственным и исключительным показателем того, чем является изобретение, и, того, чем является изобретение по мнению заявителей, является формула изобретения, которая вытекает из данной заявки, в конкретной форме, в которой представлена данная формула изобретения, включая любое последующее исправление. Любые определения, изложенные в данной заявке в прямой форме, терминов, содержащихся в данной формуле изобретения, должны обуславливать значение данных терминов в контексте формулы изобретения. Следовательно, никакое ограничение, элемент, свойство, особенность или атрибут, который не изложен в прямой форме в формуле изобретения, не должен никоим образом ограничивать объем данной формулы изобретения. Спецификация и графические материалы соответственно должны рассматриваться скорее в пояснительном, а не ограничительном смысле.