АППРОКСИМАЦИЯ ВОССТАНОВЛЕНИЯ ФОРМЫ СИГНАЛА
APPROXIMATION OF SIGNAL WAVEFORM RECOVERY

ПЕРЕКРЕСТНЫЕ ССЫЛКИ НА РОДСТВЕННЫЕ ЗАЯВКИ
[0001] Настоящее изобретение испрашивает приоритет по предварительной патентной заявке США № 62/136,402, поданной 20 марта 2015 г., и предварительной патентной заявке США № 62/199,391, поданной 31 июля 2015 г., которые в полном объеме включены в данный документ посредством ссылки.
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
[0002] Настоящее изобретение относится, в целом, к обработке изображений и, в частности, к кодированию, декодированию и представлению видеоданных.
УРОВЕНЬ ТЕХНИКИ
[0003] Видеоданные, поступающие от расположенных ранее по схеме устройств на расположенные позднее по схеме устройства, могут поддерживать различные динамические диапазоны, цветовые пространства и т.д. Динамические диапазоны могут варьироваться от уровней яркости 10000 нит, 12000 нит или более на устройствах высокого класса до уровней яркости 100 нит, 300 нит, 600 нит и т.д. на устройствах низкого класса. Цветовые пространства могут включать в себя, без ограничения, линейные цветовые пространства, нелинейные цветовые пространства, перцепционно квантованные цветовые пространства и т.д.
[0004] Кроме того, метаданные, относящиеся к рабочим параметрам, используемым для кодирования видеоданных расположенными ранее по схеме устройствами, могут требоваться расположенным позднее по схеме устройствам для генерации рабочих параметров, используемых для декодирования видеосигналов, генерируемых расположенными ранее по схеме устройствами. Объем метаданных, необходимый расположенным позднее по схеме устройствам для операций декодирования сравнительно высокого качества, может быть слишком велик для передачи на и/или многие из расположенных позднее по схеме устройств обработки ими.
[0005] Подходы, описанные в этом разделе, являются подходами, которым можно следовать, но не обязательно подходами, сформулированными ранее или которым раньше следовали. Поэтому, если не указано обратное, не следует исходить из того, что любой из подходов, описанных в этом разделе, относится к уровню техники, лишь на том основании, что он включен в этот раздел. Аналогично, проблемы, идентифицированные в отношении одного или более подходов, не следует считать решенными ни в одном известном из уровня техники решении на основании этого раздела, если не указано обратное.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0006] Настоящее изобретение проиллюстрировано в порядке примера, но не ограничения, на фигурах прилагаемых чертежей, где сходные ссылочные позиции относятся к аналогичным элементам, и где:
[0007] фиг. 1A демонстрирует видеокодер;
[0008] фиг. 1B демонстрирует видеодекодер;
[0009] фиг. 2 демонстрирует иллюстративный способ аппроксимации функции восстановления формы;
[00010] фиг. 3A и фиг. 3B демонстрируют иллюстративные последовательности обработки для аппроксимации целевой LUT;
[0010] фиг. 4A - фиг. 4C демонстрируют иллюстративные алгоритмы классификации изображений;
[0011] фиг. 5A и фиг. 5B демонстрируют иллюстративные последовательности обработки для адаптивного восстановления формы и обратного отображения; и
[0012] фиг. 6 демонстрирует иллюстративную аппаратную платформу, на которой можно реализовать описанные здесь компьютер или вычислительное устройство.
ОПИСАНИЕ ИЛЛЮСТРАТИВНЫХ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
[0013] Здесь описаны иллюстративные варианты осуществления, которые относятся к кодированию, декодированию и представлению видеоданных. В нижеследующем описании, в целях объяснения, многочисленные конкретные детали изложены для обеспечения полного понимания настоящего изобретения. Однако следует понимать, что настоящее изобретение можно осуществлять на практике без этих конкретных деталей. В других случаях, общеизвестные конструкции и устройства не описаны слишком подробно, чтобы не перегружать настоящее изобретение несущественными деталями и не затемнять его смысл.
[0014] Иллюстративные варианты осуществления описаны здесь согласно следующей схеме:
1. Общий обзор
2. Кодирование адаптивно восстановленного по форме видеоконтента
3. Декодирование адаптивно восстановленного по форме видеоконтента
4. Степенные функции для адаптивного восстановления формы
5. Аппроксимация функций, относящихся к адаптивному восстановлению формы
6. Иллюстративные последовательности обработки
7. Оптимизации в реальном времени
8. Механизмы реализации - обзор оборудования
9. Эквиваленты, расширения, альтернативы и смешанные
1. Общий обзор
[0015] Этот обзор представляет основное описание некоторых аспектов иллюстративного варианта осуществления настоящего изобретения. Следует отметить, что этот обзор не является обширной или исчерпывающей сводкой аспектов иллюстративного варианта осуществления. Кроме того, следует отметить, что этот обзор не следует рассматривать как идентифицирующий какие-либо особо значимые аспекты или элементы иллюстративного варианта осуществления или как-либо ограничивающий объем иллюстративного варианта осуществления в частности и изобретение в целом. Этот обзор лишь представляет некоторые принципы, относящиеся к иллюстративному варианту осуществления, в сжатой и упрощенной форме, и подлежит рассмотрению лишь в качестве принципиальной прелюдии к нижеследующему более подробному описанию иллюстративных вариантов осуществления.
[0016] Без использования описанного здесь адаптивного восстановления формы, видеокодек выделяет доступные кодовые слова на сравнительно низкой битовой глубине (например, двухканальные 8-битовые видеосигналы, одноканальные 10-битовые видеосигналы и т.д.), таким образом, чтобы можно было не сохранять визуальные детали исходного видеоконтента (например, опорный кодированный видеоконтент, опорный кодированный видеоконтент PQ и т.д.) первоначально кодированный доступными кодовыми словами на сравнительно высокой глубине. Например, кодек (например, кодек гамма-области и т.д.) без использования описанного здесь адаптивного восстановления формы может перевыделять кодовые слова поддиапазонам высокой яркости (например, ярким участкам, выделениям и т.д.) и недовыделять кодовые слова поддиапазону низкой яркости (например, темным участкам, темным областям и т.д.). В результате, визуальные детали перцепционно кодированного исходного видеоконтента могут без необходимости утрачиваться согласно этим другим методам.
[0017] Видеокодек, реализующий описанные здесь методы адаптивного восстановления формы, выделяет доступные кодовые слова на конкретной битовой глубине (например, 8 битов и т.д.) таким образом, чтобы сохранить визуальные детали в разнообразном исходном видеоконтенте. В некоторых вариантах осуществления, видеокодек выбирает/определяет конкретные значения параметров (например, значения показателя в степенных функциях, наклоны в линейном квантовании, оси в кусочно-линейном квантовании и т.д.) на основании результатов анализа контент изображения, переносимых кадрами изображения (например, в сцене и т.д.) в исходном видеоконтенте. Если контент изображения содержит больше участков выделения или больше уровней яркости, значения параметров можно выбирать/определять так, чтобы больше представленных уровней яркости в поддиапазоне высокой яркости было доступно для операций кодирования или декодирования. Если контент изображения содержит меньше участков выделения или меньше уровней яркости, значения параметров можно выбирать/определять так, чтобы меньше представленных уровней яркости в поддиапазоне высокой яркости было доступно для операций кодирования или декодирования. Аналогично, если контент изображения содержит больше темных участков или больше уровней яркости, параметр можно выбирать/определять так, чтобы больше представленных уровней яркости в поддиапазоне низкой яркости было доступно для операций кодирования или декодирования. Если контент изображения содержит меньше темных участков или меньше уровней яркости, значения параметров можно выбирать/определять так, чтобы меньше представленных уровней яркости в поддиапазоне низкой яркости было доступно для операций кодирования или декодирования.
[0018] Описанные здесь методы можно использовать для поддержки операций кодирования (например, кодирования, декодирования, перекодирования и т.д.) для видеосигналов (например, кодированных битовых потоков и т.д.), которые содержат либо один слой, либо более одного слоя (например, два слоя, несколько слоев, комбинацию базового слоя и одного или более слоев улучшения и т.д.). Эти методы можно реализовать посредством программного обеспечения, аппаратного обеспечения, комбинации программного обеспечения и аппаратного обеспечения, и могут применяться различными вычислительными устройствами, мультимедийными устройствами, мобильными устройствами и т.д. По меньшей мере, некоторые из методов могут быть собраны в один или более профилей технических признаков (например, мобильный профиль, планшетный профиль, профиль домашней увеселительной системы и т.д.), которые могут выпускаться независимо или совместно с другими поставщиками, разработчиками, производителями и т.д.
[0019] Видеокодек, который осуществляет описанные здесь методы для адаптивного восстановления формы видеосигнала, может использоваться для поддержки один или более из обратно совместимых (BC) видеоприложений, не обладающих обратной совместимостью (NBC) видеоприложений и т.д. Примеры систем с таким видеокодеком могут включать в себя, но без ограничения, любой из: однослойного 12-битового кодека, двухслойного 8-битового кодека, многослойного кодека, не обладающего обратной совместимостью кодека восстановления формы, обратно совместимого кодека, кодека, реализующего набор настроек/требований/возможностей в усовершенствованном видеокодировании (AVC), кодека, реализующего набор настроек/требований/возможностей в высокопроизводительном видеокодировании (HEVC) и т.д.
[0020] Некоторые примеры не обладающего обратной совместимостью кодека восстановления формы описаны в патентной заявке PCT № PCT/US2014/031716, поданной 25 марта 2014 г., принадлежащей правопреемнику настоящей заявки, содержание которой включено посредством ссылки для всех целей, как если бы было полностью изложено здесь. Некоторые примеры обратно совместимого кодека восстановления формы описаны в патентной заявке PCT № PCT/US2012/062932, поданной 1 ноября, 2012 г., принадлежащей правопреемнику настоящей заявки, содержание которой включено посредством ссылки для всех целей, как если бы было полностью изложено здесь.
[0021] В некоторых вариантах осуществления, описанная здесь система кодека осуществляет способ криволинейной аппроксимации для аппроксимации произвольной функции восстановления формы с использованием ограниченного количества полиномов, которые минимизируют общую максимальную ошибку. Дополнительно, в необязательном порядке, или альтернативно, система кодека может осуществлять адаптивный алгоритм выбора параметров для определения или выбора параметров адаптивного восстановления формы, используемых совместно с функцией восстановления формы для достижения более высокого перцептивного качества, чем в ином случае.
[0022] Исходный видеопакет для медиапрограммы может иметь сравнительно большой размер файла, поскольку исходный видеопакет может содержать исходный видеоконтент со сравнительно высоким пространственным разрешением (например, 4k, 8k и т.д.), сравнительно большим динамическим диапазоном, сравнительно широкой цветовой гаммой. В некоторых вариантах осуществления, исходный видеоконтент, закодированный в видеосигнал сравнительно высокой битовой глубины (например, 12-битовый видеосигнал, 14+-битовый видеосигнал и т.д.), может перекодироваться в кодированный видеоконтент значительно меньшего размера, по меньшей мере частично, на основании адаптивного восстановления формы сигнала.
[0023] Например, исходный контент может кодироваться в 12-битовый PQ видеосигнал исходными кодовыми словами, которые соответствуют (например, фиксированным, неадаптивно восстановленным по форме и т.д.) яркостным или цветностным значениям от изображения к изображению, от сцены к сцене, от медиапрограммы к медиапрограмме и т.д.
[0024] Используемый здесь термин ʺPQʺ означает перцептивное квантование амплитуды яркости. Зрительная система человека реагирует на увеличение уровня освещенности весьма нелинейно. Способность человека видеть раздражитель определяется яркостью этого раздражителя, размером раздражителя, пространственными частотами, образующими раздражитель, и уровнем яркости, к которому приспособились глаза в конкретный момент наблюдения раздражителя. Согласно варианту осуществления, функция перцептивного квантователя отображает линейные входные уровни серого в выходные уровни серого, которые лучше совпадают с порогами контрастной чувствительности в зрительной системе человека. Примеры отображающих функций PQ (или EOTF) описаны в SMPTE ST 2084:2014 ʺHigh Dynamic Range EOTF of Mastering Reference Displaysʺ, который в полном объеме включен в настоящее описание изобретения посредством ссылки, где при фиксированном размере раздражителя, для каждого уровня яркости (т.е. уровне раздражителя), минимальный шаг видимой контрастности с которым выбирается уровень яркости согласно наиболее чувствительному уровню адаптации и наиболее чувствительной пространственной частоте (согласно моделям HVS). По сравнению с традиционной гамма-кривой, которая представляет кривую характеристики физического устройства электронно-лучевой трубки (CRT) и одновременно может быть очень мало похожей на реакцию зрительной системы человека, кривая PQ имитирует истинный визуальный отклик зрительной системы человека с использованием сравнительно простой функциональной модели.
[0025] Исходный контент, кодированный в 12-битовом PQ видеосигнале, может иметь сравнительно высокий динамический диапазон, например, динамический диапазон до 12000 нит и т.д. Напротив, кодированный видеоконтент может кодироваться в 10-битовом видеосигнале адаптивно восстановленными по форме кодовыми словами, которые не обязаны соответствовать фиксированным яркостным или цветностным значениям от изображения к изображению, от сцены к сцене, от медиапрограммы к медиапрограмме и т.д. Адаптивно восстановленные по форме кодовые слова в пространстве 10-битовых кодовых слов могут (например, адаптивно и т.д.) отображаться в исходные кодовые слова в пространстве 12-битовых кодовых слов на основании функции адаптивного восстановления формы, которая может изменяться от изображения к изображению, от сцены к сцене, от медиапрограммы к медиапрограмме и т.д. В результате, кодированный видеоконтент, будучи кодирован в 10-битовый сигнал, может поддерживать сравнительно высокий динамический диапазон, вплоть до полного динамического диапазона, поддерживаемого исходным видеоконтентом, который кодируется в 12-битовый сигнал. Функцию адаптивного восстановления формы можно представить одним или более из кривых квантования, поисковых таблиц (LUT), отображений кодовых слов и т.д.
[0026] В некоторых вариантах осуществления, некоторые или все из кривых квантования, поисковых таблиц (LUT), отображений кодовых слов и т.д., представляющих функцию адаптивного восстановления формы, используемую расположенным ранее по схеме устройством для осуществления адаптивного восстановления формы исходного видеосигнал, могут передаваться как композиционные метаданные с кодированным видеоконтентом, закодированным в 10-битовый сигнал, от расположенного ранее по схеме устройства (например, видеокодера, перекодировщика видеосигнала и т.д.) прямо или косвенно на расположенные позднее по схеме устройства-получатели (например, видеодекодер, перекодировщик видеосигнала и т.д.). Функция адаптивного восстановления формы, представленная кривыми квантования, поисковыми таблицами (LUT), отображениями кодовых слов и т.д., может использоваться расположенными позднее по схеме устройствами-получателями для реконструкции версии исходного видеоконтента из кодированного видеоконтента. Например, адаптивно восстановленные по форме кодовые слова в кодированном видеоконтенте могут обратно отображаться, на основании функции адаптивного восстановления формы или обратной ей, в набор кодовых слов (например, в пространстве 12-битовых кодовых слов и т.д.), эквивалентных исходным кодовым словам, присутствовавшим в исходном видеоконтенте.
[0027] Композиционные метаданные, которые включают в себя представление функции адаптивного восстановления формы, могут быть слишком велики для передачи и/или обработки некоторыми расположенными позднее по схеме устройствами. Расположенные позднее по схеме устройства, которые испытывают трудности в обработке сравнительно больших объемов метаданных (например, относящихся к обработке видеосигнала, например, композиционных метаданных и т.д.) могут включать в себя, но без ограничения, любые из: мобильных устройств, устройств с малым объемом памяти, вычислительных устройств со сравнительно ограниченными возможностями для обработки видеосигнала, вычислительных устройств, которые включают в себя модули типа "система на кристалле" (SoC) со сравнительно ограниченными возможностями для обработки видеосигнала, вычислительных устройств, которые включают в себя форматы видеосигнала, реализации, конструкции, аппаратное обеспечение, программное обеспечение, программно-аппаратное обеспечение и т.д., которые поддерживают передачу/прием сравнительно малых объемов метаданных, и т.д.
[0028] Согласно описанным здесь методам, функцию адаптивного восстановления формы можно аппроксимировать ограниченным количеством простых математических функций, например, полиномов, кусочно-линейных (PWL) отрезков и т.д. В неограничительном иллюстративном варианте осуществления, функция адаптивного восстановления формы аппроксимируется ограниченным количеством (например, 4, 8, 12, другое положительное целое число, большее единицы, и т.д.) полиномиальных функций (например, линейных, 2-го порядка и т.д.) с ограниченным количеством битов для каждого коэффициента и с минимизированными ошибками аппроксимации. Минимизированные ошибки аппроксимации в аппроксимации функции адаптивного восстановления формы ограниченным количеством полиномиальных функций проводятся для минимизации ошибок в обратном отображении, которое осуществляется на основании аппроксимации функции адаптивного восстановления формы ограниченным количеством полиномиальных функций.
[0029] Адаптивное восстановление формы может осуществляться на различных видеосигналах и/или видеоконтенте во многих различных формах. В частности, описанные здесь методы применимы при аппроксимации любой функции адаптивного восстановления формы, в том числе, но без ограничения, произвольной LUT.
[0030] В некоторых иллюстративных вариантах осуществления, описанные здесь механизмы образуют часть системы обработки медиаданных, в том числе, но без ограничения, любой из: карманного устройства, игрового аппарата, телевизора, портативного компьютера, компьютера типа нетбук, планшетного компьютера, сотового радиотелефона, устройства чтения электронных книг, торгового терминала, настольного компьютера, компьютерной рабочей станции, компьютерного киоска или различных других видов терминалов и блоков обработки медиаданных.
[0031] Различные модификации предпочтительных вариантов осуществления и описанные здесь общие принципы и признаки будут очевидны специалистам в данной области техники. Таким образом, изобретение не подлежит ограничению показанными вариантами осуществления, но подлежит рассмотрению в самом широком объеме, согласующемся с описанными здесь принципами и признаками.
2. Кодирование адаптивно восстановленного по форме видеоконтента
[0032] Фиг. 1A демонстрирует иллюстративный видеокодер 102, который можно использовать как расположенное ранее по схеме устройство для доставки выходного видеосигнала (или восстановленного по форме видеосигнала), кодированного адаптивно восстановленным по форме видеоконтентом, на расположенные позднее по схеме устройства (одним из которых может быть, например, видеодекодер 152, показанный на фиг. 1B и т.д.). Видеокодер (102) можно реализовать посредством одного или более вычислительных устройств. В некоторых вариантах осуществления, видеокодер (102) содержит декодер 104 исходного контента, адаптивный восстановитель 106 формы контента, кодер 108 восстановленного по форме контента и т.д.
[0033] В некоторых вариантах осуществления, декодер (104) исходного контента содержит программное обеспечение, аппаратное обеспечение, комбинацию программного обеспечения и аппаратного обеспечения и т.д., выполненное с возможностью приема одного или более исходных видеосигналов (например, кодированных битовых потоков и т.д.), декодирования исходных видеосигналов в исходный видеоконтент. В некоторых вариантах осуществления, исходный видеоконтент декодируется из однослойного видеосигнала, кодированного исходным видеоконтентом, в однослойный. В некоторых вариантах осуществления, исходный видеоконтент декодируется из многослойного кодированного видеосигнала, кодированного исходным видеоконтентом в более чем одном слое (например, базовом слое и одном или более слоях улучшения и т.д.).
[0034] В некоторых вариантах осуществления, адаптивный восстановитель (106) формы контента содержит программное обеспечение, аппаратное обеспечение, комбинацию программного обеспечения и аппаратного обеспечения и т.д., выполненное с возможностью осуществления операций адаптивного восстановления формы на исходном видеоконтенте для генерации восстановленного по форме видеоконтента. Один или оба из исходного видеоконтента или восстановленного по форме контента может использоваться для одного или более из обратно совместимых (BC) видеоприложений, не обладающих обратной совместимостью (NBC) видеоприложений и т.д.
[0035] В некоторых вариантах осуществления, адаптивный восстановитель (106) формы контента выполнен с возможностью выбора и применения функции восстановления формы для восстановления формы исходных кодовых слов в одном или более изображений, одной или более сцен и т.д., представленных в исходном видеоконтенте, в восстановленные по форме кодовые слова в одном или более соответствующих изображений, одной или более соответствующих сцен и т.д., представленных в восстановленном по форме видеоконтенте. Согласно описанным здесь методам, выбор функции восстановления формы и/или параметров адаптивного восстановления формы, используемых в функции восстановления формы адаптивно осуществляется на основании фактического контента в изображениях, сценах и т.д., представленных в исходном видеоконтенте. Дополнительно, в необязательном порядке, или альтернативно, выбор функции восстановления формы и/или параметров адаптивного восстановления формы, используемых в функции восстановления формы, может адаптивно осуществляться, пока эти изображения, сцены и т.д. обрабатываются видеокодером (102).
[0036] Адаптивный восстановитель (106) формы контента может, но без ограничения, быть выполнен с возможностью использования прямых степенных функций в качестве функций восстановления формы. Адаптивный восстановитель (106) формы контента может быть выполнен с возможностью определения, содержит ли изображение большие гладкие яркие области, большие темные черные области и т.д., является ли изображение полутоновым изображением и т.д. На основании такого определения, можно выбирать параметры адаптивного восстановления формы, например, значения показателя прямых степенных функций и т.д.
[0037] В некоторых вариантах осуществления, адаптивный восстановитель (106) формы контента применяет операции адаптивного восстановления формы к исходным кодовым словам в исходном видеоконтенте непосредственно на основании выбранной функции адаптивного восстановления формы с выбранными параметрами адаптивного восстановления формы.
[0038] В некоторых вариантах осуществления, функцию адаптивного восстановления формы можно представить посредством LUT, которая содержит множество записей, каждая из которых отображает исходное кодовое слово в наборе доступных исходных кодовых слов, используемых для кодирования исходного видеоконтента, в восстановленного по форме кодовое слово в наборе доступных восстановленных по форме кодовых слов, используемых для кодирования восстановленного по форме видеоконтента. Первая LUT, используемая для восстановления формы одного или более первых изображений в исходном видеоконтенте может отличаться от второй LUT, используемой для восстановления формы одного или более вторых изображений в исходном видеоконтенте. В некоторых вариантах осуществления, набор доступных исходных кодовых слов может оставаться одинаковым для первых изображений и вторых изображений. Например, если адаптивный восстановитель (106) формы контента определяет, что первые изображения являются гладкими яркими изображениями, то LUT, или функция адаптивного восстановления формы, которая представляет LUT, может иметь сравнительно большое количество доступных восстановленных по форме кодовых слов, соответствующих ярким значениям яркости. В результате, артефакты оконтуривания/сегментации можно ослаблять, или их можно избагать, даже когда восстановленный по форме видеоконтент кодируется в восстановленный по форме видеосигнал (например, двухслойный 8-битовый видеосигнал, однослойный 10-битовый видеосигнал и т.д.) с меньшей битовой глубиной, чем у исходного видеосигнала (например, 12-битового видеосигнала, 14+-битового видеосигнала и т.д.). С другой стороны, если адаптивный восстановитель (106) формы контента определяет, что вторые изображения являются гладкими темными изображениями (но не чисто черным изображением), то LUT, или функция адаптивного восстановления формы, которая представляет LUT, может иметь сравнительно большое количество доступных восстановленных по форме кодовых слов, соответствующих темным значениям яркости. В результате, детали изображения в темных областях могут сохраняться в восстановленном по форме видеоконтенте, кодированном в восстановленном по форме видеосигнале. В некоторых вариантах осуществления, адаптивный восстановитель (106) формы контента применяет операции адаптивного восстановления формы к исходным кодовым словам в исходном видеоконтенте на основании LUT, причем LUT может генерироваться на основании выбранной функции адаптивного восстановления формы, или сама LUT может рассматриваться как выбранная функция адаптивного восстановления формы.
[0039] В некоторых вариантах осуществления, адаптивный восстановитель (106) формы контента определяет аппроксимацию (целевой) LUT, которая представляет функцию восстановления формы или эквивалентна ей. Например, адаптивный восстановитель (106) формы контента может, но без ограничения, аппроксимировать LUT полиномами, конкретно определяемыми коэффициентами для минимизации ошибок между отображением, представленным полиномами, и отображением, представленным целевой LUT. В некоторых вариантах осуществления, адаптивный восстановитель (106) формы контента применяет операции адаптивного восстановления формы к исходным кодовым словам в исходном видеоконтенте на основании полиномов, которые аппроксимируют целевую LUT, или функцию восстановления формы, представленную LUT.
[0040] Независимо от того, каким образом видеокодер (102) может применять операции адаптивного восстановления формы (например, на основании функции восстановления формы, например, аналитической или неаналитической функции или кусочно-аналитической функции, на основании LUT, которая может представлять или не представлять аналитическую функцию, на основании аппроксимации LUT, которая может генерироваться или не генерироваться на основании аналитической функции и т.д.), видеокодер (102) может быть выполнен с возможностью генерации одного или более типов параметров адаптивного восстановления формы и передачи, по меньшей мере, один из одного или более типов параметров адаптивного восстановления формы на расположенные позднее по схеме устройства-получатели.
[0041] В некоторых вариантах осуществления, адаптивный восстановитель (106) формы контента выполнен с возможностью определения аппроксимации (целевой) LUT (или обратной LUT), которая представляет функцию, обратную к функции восстановления формы. Композиционные метаданные, задающие аппроксимацию целевой LUT, которая представляет функцию, обратную к функции восстановления формы, может генерироваться и передаваться как часть общих метаданных, переносимых в восстановленном по форме видеосигнале видеокодером (102) на расположенные позднее по схеме устройства-получатели например, видеодекодер 152, показанный на фиг. 1B, и т.д.
[0042] В некоторых вариантах осуществления, видеодекодер (152) может быть выполнен с возможностью приема или реконструкции аппроксимации целевой LUT, которая представляет функцию, обратную к функции восстановления формы на основании композиционных метаданных, декодированных/извлеченных из восстановленного по форме видеосигнала. Видеодекодер (152) может быть выполнен с возможностью применения операций обратного отображения на восстановленном по форме видеоконтенте, происходящем от видеокодера, декодированном из восстановленного по форме видеосигнала с использованием аппроксимации целевой LUT, независимо от того, применяет ли адаптивный восстановитель (106) формы контента операции адаптивного восстановления формы к исходным кодовым словам в исходном видеоконтенте, на основании функции восстановления формы, или, альтернативно, на основании прямой LUT, которая представляет функцию восстановления формы, или, альтернативно, на основании аппроксимации прямой LUT.
[0043] Дополнительно, в необязательном порядке, или альтернативно, в некоторых вариантах осуществления, адаптивный восстановитель (106) формы контента выполнен с возможностью генерации композиционных метаданных, задающих целевую LUT, которая представляет функцию, обратную к функции восстановления формы, и передачи композиционных метаданных как части общих метаданных, переносимых в восстановленном по форме видеосигнале видеокодером (102) на расположенные позднее по схеме устройства-получатели например, видеодекодер 152, показанный на фиг. 1B, и т.д. В некоторых вариантах осуществления, видеодекодер (152) может быть выполнен с возможностью приема или реконструкции целевой LUT на основании композиционных метаданных, декодированных/извлеченных из восстановленного по форме видеосигнала. Видеодекодер (152) может быть выполнен с возможностью применения операций обратного отображения на восстановленном по форме видеоконтенте, происходящем от видеокодера, декодированном из восстановленного по форме видеосигнала с использованием целевой LUT, независимо от того, применяет ли адаптивный восстановитель (106) формы контента операции адаптивного восстановления формы к исходным кодовым словам в исходном видеоконтенте, на основании функции восстановления формы, или, альтернативно, на основании прямой LUT, которая представляет функцию восстановления формы, или, альтернативно, на основании аппроксимации прямой LUT.
[0044] Дополнительно, в необязательном порядке, или альтернативно, в некоторых вариантах осуществления, адаптивный восстановитель (106) формы контента выполнен с возможностью генерации композиционных метаданных, задающих функцию, обратную к функции восстановления формы, и передачи композиционных метаданных как части общих метаданных, переносимых в восстановленном по форме видеосигнале видеокодером (102) на расположенные позднее по схеме устройства-получатели например, видеодекодер 152, показанный на фиг. 1B, и т.д. В некоторых вариантах осуществления, видеодекодер (152) может быть выполнен с возможностью приема или реконструкции функции, обратной к функции восстановления формы на основании композиционных метаданных, декодированных/извлеченных из восстановленного по форме видеосигнала. Видеодекодер (152) может быть выполнен с возможностью применения операций обратного отображения на восстановленном по форме видеоконтенте, происходящем от видеокодера, декодированном из восстановленного по форме видеосигнала с использованием функции, обратной к функции восстановления формы, независимо от того, применяет ли адаптивный восстановитель (106) формы контента операции адаптивного восстановления формы к исходным кодовым словам в исходном видеоконтенте, на основании функции восстановления формы, или, альтернативно, на основании прямой LUT, которая представляет функцию восстановления формы, или, альтернативно, на основании аппроксимации прямой LUT.
[0045] В некоторых вариантах осуществления, кодер (108) восстановленного по форме контента содержит программное обеспечение, аппаратное обеспечение, комбинацию программного обеспечения и аппаратного обеспечения и т.д., выполненное с возможностью кодирования восстановленного по форме видеоконтента в восстановленный по форме видеосигнал (например, двухслойный 8-битовый видеосигнал, кодированный восстановленным по форме видеосигналом, однослойный 10-битовый видеосигнал, кодированный восстановленным по форме видеосигналом, и т.д.). Дополнительно, в необязательном порядке, или альтернативно, видеокодер (102) или, в данном случае, кодер восстановленного по форме контента, выводит метаданные, содержащие некоторые или все из рабочих параметров, используемых в операциях видеокодера (102), как часть восстановленного по форме видеосигнала, на расположенное позднее по схеме устройство (например, видеодекодер 152, показанный на фиг. 1B, и т.д.). Рабочие параметры в метаданных, передаваемых на расположенные позднее по схеме устройства, включают в себя, но без ограничения, любые из: композиционных метаданных, содержащих параметры адаптивного восстановления формы, задающие функции восстановления формы или обратные им, композиционных метаданных, задающих LUT, которые представляют функции восстановления формы или обратные им, композиционных метаданных, задающих аппроксимации одной или более из функций восстановления формы или функций, обратных функциям восстановления формы, одного или более из параметров отображения тонов, параметров отсечения, значений показателя, используемых в степенных функциях для гамма-сжатия, параметров обратного отображения, LUT, осевых значений в кусочно-линейных (PWL) функциях, параметров нелинейного квантования, параметров нелинейного квантования (NLQ) и т.д. Метаданные могут составлять часть данных, переносимых в слоях, содержащих кодированный видеоконтент, или в отдельном битовом подпотоке общего битового потока видео, например, как часть информации дополнительного улучшения (SEI) или другие аналогичные носители метаданных, доступных в битовом потоке видео. Иллюстративный битовый подпоток может представлять собой поток опорных единиц обработки (RPU), разработанный Dolby Laboratories, Inc.
[0046] Используемый здесь термин ʺбитовая глубинаʺ означает количество битов, обеспеченных в пространстве кодирования, которое обеспечивает доступные кодовые слова для кодирования или квантования данных изображения; примером низкой битовой глубины является 8 битов; примером высокой битовой глубины является 12 битов или более.
[0047] Используемый здесь термин "видеоконтент" может содержать последовательность изображений или кадров. Используемый здесь термин ʺисходное изображениеʺ может означать изображение, например, изображение, связанное со сценой, захваченной устройством получения высококачественного изображения, опорное кодированное изображение, PQ кодированное изображение и т.д. Исходное изображение может содержать кодовые слова, доступные в пространстве кодовых слов сравнительно большой битовой глубины.
[0048] Такое изображение, как исходное изображение, восстановленное по форме изображение, реконструированное изображение и т.д., может существовать в любом цветовом пространстве. Например, исходное изображение может представлять собой 12+-битовое изображение в цветовом пространстве YCbCr, в цветовом пространстве RGB, в цветовом пространстве XYZ, в цветовом пространстве YDzDx, в цветовом пространстве IPT и т.д. Например, каждый пиксель, представленный в изображении, содержит кодовые слова для всех каналов (например, каналов RGB, каналов яркости и цветности, каналов XYZ, каналов YDzDx, каналов IPT и т.д.), заданных для цветового пространства (например, цветового пространства YCbCr, цветового пространства RGB, цветового пространства XYZ, цветового пространства YDzDx, цветового пространства IPT и т.д.). Каждое кодовое слово содержит дискретизированные с повышением или дискретизированные с понижением кодовые слова для одного или более из каналов в цветовом пространстве. В иллюстративном варианте осуществления, видеокодер (102) выполнен с возможностью осуществления преобразования цветового пространства в отношении изображения из первого цветового пространства (например, цветового пространства RGB и т.д.) во второе, другое, цветовое пространство (например, цветовое пространство YCbCr и т.д.).
[0049] В иллюстративном варианте осуществления, видеокодер (102) выполнен с возможностью дискретизировать с понижением или дискретизировать с повышением изображение в первом формате дискретизации (например, в формате дискретизации 4:4:4 и т.д.) во второй, другой, формат дискретизации (например, в формат дискретизации 4:2:0 и т.д.).
[0050] Примеры видеокодера, который осуществляет восстановление формы сигнала и другие операции, включают в себя, но без ограничения, любой из: одного или более однослойных 12-битовых кодеков, одного или более двухслойных 8-битовых кодеков, одного или более многослойных кодеков, одного или более не обладающих обратной совместимостью кодеков восстановления формы, одного или более обратно совместимых кодеков, одного или более кодеков, реализующих набор настроек/требований/возможностей в AVC, одного или более кодеков, реализующих набор настроек/требований/возможностей в HEVC, H.264/AVC/HEVC, MPEG-2, VP8, VC-1, и т.д.
3. Декодирование адаптивно восстановленного по форме видеоконтента
[0051] Фиг. 1B демонстрирует иллюстративный видеодекодер 152, который можно использовать как расположенное позднее по схеме устройство для обработки входного видеосигнала (или восстановленного по форме видеосигнала), кодированного адаптивно восстановленным по форме видеоконтентом от расположенных ранее по схеме устройств (одним из которых может быть, например, видеокодер 102, показанный на фиг. 1A, и т.д.). Видеодекодер (152) можно реализовать посредством одного или более вычислительных устройств. В некоторых вариантах осуществления, видеодекодер (152) содержит декодер 154 восстановленного по форме контента, блок 156 обратного отображения, диспетчер 158 отображения и т.д.
[0052] В некоторых вариантах осуществления, декодер (154) восстановленного по форме контента содержит программное обеспечение, аппаратное обеспечение, комбинацию программного обеспечения и аппаратного обеспечения и т.д., выполненное с возможностью приема одного или более входных видеосигналов (например, кодированных битовых потоков и т.д.), декодирования входных видеосигналов в восстановленный по форме видеоконтент. В некоторых вариантах осуществления, восстановленный по форме видеоконтент декодируется из однослойного видеосигнала (например, одноканального 10-битового видеосигнала и т.д.), кодированного восстановленным по форме видеоконтентом, в однослойный. В некоторых вариантах осуществления, восстановленный по форме видеоконтент декодируется из многослойного кодированного видеосигнала (например, двухканального 8-битового видеосигнала и т.д.), кодированного восстановленным по форме видеоконтентом, в более чем одном слое (например, базовом слое и одном или более слоях улучшения и т.д.).
[0053] В некоторых вариантах осуществления, блок (156) обратного отображения содержит программное обеспечение, аппаратное обеспечение, комбинацию программного обеспечения и аппаратного обеспечения и т.д., выполненное с возможностью осуществления операций обратного отображения на восстановленном по форме видеоконтенте для генерации реконструированной версии исходного видеоконтента, используемой расположенным ранее по схеме устройством для генерации восстановленного по форме видеоконтента. Один или оба из реконструированного видеоконтента и восстановленного по форме контента может использоваться для одного или более из обратно совместимых (BC) видеоприложений, не обладающих обратной совместимостью (NBC) видеоприложений и т.д.
[0054] В некоторых вариантах осуществления, функция восстановления формы адаптивно выбирается расположенным ранее по схеме устройством (например, видеокодером 102, показанным на фиг. 1A, и т.д.) для восстановления формы исходных кодовых слов в одном или более изображений, одной или более сцен и т.д., представленных в исходном видеоконтенте, в восстановленные по форме кодовые слова в одном или более соответствующих изображений, одной или более соответствующих сцен и т.д., представленных в восстановленном по форме видеоконтенте. Согласно описанным здесь методам, выбор функции восстановления формы и/или параметров адаптивного восстановления формы, используемых в функции восстановления формы адаптивно осуществляется на основании фактического контента в изображениях, сценах и т.д., представленных в исходном видеоконтенте.
[0055] Примеры функций восстановления формы могут включать в себя, но без ограничения, прямые степенные функции и т.д. Параметры адаптивного восстановления формы, используемые в функции восстановления формы, применяемой для восстановления формы изображения в расположенном ранее по схеме устройстве, может определяться/выбираться расположенным ранее по схеме устройством на основании того, содержит ли изображение большие гладкие яркие области, большие темные черные области и т.д., является ли изображение полутоновым изображением и т.д.
[0056] В некоторых вариантах осуществления, восстановленный по форме видеоконтент, принятый видеодекодером (152), генерируется расположенным ранее по схеме устройством, применяющим операции адаптивного восстановления формы к исходным кодовым словам в исходном видеоконтенте непосредственно на основании выбранной функции адаптивного восстановления формы с выбранными параметрами адаптивного восстановления формы.
[0057] В некоторых вариантах осуществления, восстановленный по форме видеоконтент, принятый видеодекодером (152), генерируется расположенным ранее по схеме устройством на основании LUT (например, прямой LUT и т.д.), которая может генерироваться или не генерироваться на основании выбранной функции адаптивного восстановления формы.
[0058] В некоторых вариантах осуществления, восстановленный по форме видеоконтент, принятый видеодекодером (152), генерируется расположенным ранее по схеме устройством на основании аппроксимации (целевой) LUT, которая представляет функцию восстановления формы или эквивалентна ей. Аппроксимация может базироваться или не базироваться на полиномах.
[0059] Независимо от того, каким образом восстановленный по форме видеоконтент, принятый видеодекодером (152), генерируется расположенным ранее по схеме устройством, видеодекодер (152) или, в данном случае, блок (156) обратного отображения, может быть выполнен с возможностью получения параметров адаптивного восстановления формы путем декодирования композиционных метаданных, передаваемых как часть метаданных, переносимых во входном видеосигнале, принятом видеодекодером (152).
[0060] В некоторых вариантах осуществления, на основании декодированных параметров адаптивного восстановления формы, блок (156) обратного отображения выполнен с возможностью определения аппроксимации (целевой) LUT (или обратной LUT), которая представляет функцию, обратную к функции восстановления формы (например, функции восстановления формы, используемой расположенным ранее по схеме устройством для осуществления адаптивного восстановления формы на одном или более изображений, и т.д.). Видеодекодер (152) или, в данном случае, блок (156) обратного отображения, может быть выполнен с возможностью генерации реконструированной версии исходного видеоконтента (используемой расположенным ранее по схеме устройством для генерации восстановленного по форме видеоконтента, принятого видеодекодером 152) путем применения операций обратного отображения на восстановленном по форме видеоконтенте, происходящем от видеокодера, декодированном из восстановленного по форме видеосигнала с использованием аппроксимации целевой LUT, независимо от того, применяет ли расположенное ранее по схеме устройство операции адаптивного восстановления формы к исходным кодовым словам в исходном видеоконтенте на основании функции восстановления формы, или, альтернативно, на основании прямой LUT, которая представляет функцию восстановления формы, или, альтернативно, на основании аппроксимации прямой LUT.
[0061] В некоторых вариантах осуществления, диспетчер отображения (158) содержит программное обеспечение, аппаратное обеспечение, комбинацию программного обеспечения и аппаратного обеспечения и т.д., выполненные с возможностью осуществления операций обработки видеосигнала, например, операций диспетчеризации отображения, и т.д., на реконструированной версии исходного видеоконтента. Иллюстративные операции диспетчеризации отображения могут включать в себя, но без ограничения, любую из: операций отображения тонов, операций отсечения, операций адаптации цветовой гаммы и т.д. Некоторые или все из этих операций могут зависеть от устройства. Эти операции позволяют воспроизводить изображения, представленные в реконструированной версии исходного видеоконтента, на устройстве отображения, которое может составлять часть того же устройства, которое включает в себя видеодекодер (152), может действовать совместно с видеодекодером (152), и т.д.
[0062] В иллюстративном варианте осуществления, видеодекодер (152) выполнен с возможностью дискретизировать с повышением или дискретизировать с понижением изображение в первом формате дискретизации (например, в формате дискретизации 4:2:0 и т.д.) во второй, другой, формат дискретизации (например, в формат дискретизации 4:4:4 и т.д.).
[0063] Примеры видеодекодера, который осуществляет обратное отображение, обратное восстановление формы сигнала и другие операции, включают в себя, но без ограничения, любой из: одного или более однослойных 12-битовых кодеков, одного или более двухслойных 8-битовых кодеков, одного или более многослойных кодеков, одного или более не обладающих обратной совместимостью кодеков восстановления формы, одного или более обратно совместимых кодеков, одного или более кодеков, реализующих набор настроек/требований/возможностей в AVC, одного или более кодеков, реализующих набор настроек/требований/возможностей в HEVC, H.264/AVC/HEVC, MPEG-2, VP8, VC-1, и т.д.
4. Степенные функции для адаптивного восстановления формы
[0064] В некоторых вариантах осуществления, адаптивное восстановление формы можно эффективно осуществлять с помощью степенных функций, например, на видеосигналах, которые поддерживают расширенные динамические диапазоны (EDR) (например, до 6000 нит, 12000 нит, 20000+ нит и т.д.). Степенные функции можно использовать для сжатия исходного видеосигнала со сравнительно высокой битовой скоростью, например, 12+-битового перцепционно квантованного (PQ) видеосигнала и т.д., в адаптивно преобразованный по форме видеосигнал со сравнительно низкой битовой скоростью, например, 8-битовый или 10-битовый адаптивно восстановленный по форме видеосигнал, и т.д. Оптимальные параметры адаптивного восстановления формы можно выбирать, по меньшей мере частично, на основании контента в исходном видеосигнале, для ослабления или устранения визуальных артефактов в адаптивно восстановленном по форме видеосигнале. Выбор этих оптимальных параметров адаптивного восстановления формы может автоматически осуществляться расположенным ранее по схеме устройством для текущего изображения, текущей сцены и т.д., представленных в исходном видеосигнале, поскольку текущее изображение, текущая сцена и т.д. обрабатывается и адаптивно восстанавливается по форме/сжимается расположенным ранее по схеме устройством в изображение, сцену и т.д., представленные в адаптивно восстановленном по форме видеосигнале. Некоторые примеры адаптивного восстановления формы степенными функциями описаны в патентной заявке PCT № PCT/US2014/031716, поданной 25 марта 2014 г., принадлежащей правопреемнику настоящей заявки, содержание которой включено посредством ссылки для всех целей, как если бы было полностью изложено здесь.
[0065] В иллюстративном варианте осуществления, адаптивное восстановление формы осуществляется расположенным ранее по схеме устройством, например, видеокодером и т.д. с помощью следующей прямой степенной функции:
(1)
где α представляет значение показателя;  представляет исходные кодовые слова (например, исходные кодовые слова яркости, и т.д.), декодированные из исходного видеосигнала, который восстанавливается по форме видеокодером;  представляет адаптивно восстановленные по форме кодовые слова (например, адаптированные/отображенные кодовые слова яркости, и т.д.), адаптированные/отображенные из  с помощью прямой степенной функции;  …  представляет функцию округления;  и  - минимальное и максимальное значения, соответственно, адаптивно преобразованных по форме кодовых слов (например, адаптированных/отображенных кодовых слов яркости, и т.д.);  и  - минимальное и максимальное значения, соответственно, исходных кодовых слов (например, исходных кодовых слов яркости, и т.д.). Дополнительно, в необязательном порядке, или альтернативно, в некоторых вариантах осуществления, функция отсечения может использоваться, чтобы гарантировать, что любое выходящее за пределы диапазона (например, диапазона [,], и т.д.) кодовое слово после потерьного сжатия все же может обратно отображаться расположенным позднее по схеме устройством-получателем, например, видеодекодером, и т.д., в ближайшее пригодное реконструированное исходное кодовое слово.
[0066] Обратное отображение может осуществляться расположенным позднее по схеме устройством-получателем, например, видеодекодером, и т.д., с помощью следующей обратной степенной функции:
(2)
где  представляет реконструированные исходные кодовые слова (например, реконструированные исходные кодовые слова яркости, и т.д.), обратно отображенные из восстановленных по форме кодовых слов, декодированных из адаптивно восстановленного по форме видеосигнала, восстановленного по форме расположенным ранее по схеме устройством, например, видеокодером в настоящем примере.
[0067] В некоторых вариантах осуществления, в прямой и обратной степенных функциях на декодере,  и  можно задавать следующим образом:
=0 (3)
=effective_codewords - 1 (4)
где символ ʺeffective_codewordsʺ представляет количество кодовых слов, доступных для представления адаптивно восстановленных по форме кодовых слов (например, 511 двухслойного 8-битового видеосигнала, 1023 в однослойным 10-битовом видеосигнале и т.д.).
[0068] Функция восстановления формы или обратная ей, например, прямая степенная функция, обратная степенная функция, и т.д., можно представить как LUT, например, одномерную LUT (1D-LUT) и т.д., описанные здесь методы могут использовать LUT, которая представляет функцию восстановления формы или обратную ей, или генерируется на ее основании, в качестве целевой LUT для аппроксимации с ограниченным количеством полиномов второго порядка. В некоторых вариантах осуществления, коэффициенты могут быть числами с фиксированной точкой ограниченной точности, например, для согласования с ограничениями, зависящими от устройства, ограничениями, зависящими от модуля (например, ограничениями, связанными с SoC, и т.д.), и т.д.
[0069] Если рассмотреть в порядке примера степенную функцию, например, показанную в выражении (1) или (2), показатель (например, α в прямой степенной функции выражения (1), 1/α в обратной степенной функции выражения (2) и т.д.) может быть больше единицы (1), что делает степенную функцию выпуклой функцией, или может быть меньше единицы (1), что делает степенную функцию вогнутой функцией. Эти разные значения альфа создают различные трудности для аппроксимации целевой LUT, которая генерируется на основании степенной функции.
[0070] В различных вариантах осуществления, один или более алгоритмов можно использовать по отдельности или совместно при аппроксимации целевой LUT. Например, первый алгоритм, обозначенный как алгоритм поиска вперед, может использоваться для аппроксимации степенной функции от малых значений кодовых слов к большим значениям кодовых слов (или слева направо) по горизонтальной координатной оси, которая представляет входные значения кодовых слов (где вертикальная координатная ось представляет отображенные значения кодовых слов). Используемые здесь входные значения кодовых слов в LUT, например, целевой LUT и т.д., могут означать ключи в парах ключ-значение LUT, тогда как отображенные значения кодовых слов в LUT могут означать значения в парах ключ-значение LUT. В другом примере, второй алгоритм, обозначенный как алгоритм поиска назад, может использоваться для аппроксимации степенной функции от больших значений кодовых слов к малым значениям кодовых слов (или справа налево) по горизонтальной координатной оси. В еще одном примере может использоваться как первый алгоритм, так и второй алгоритм; результаты одного (например, генерация меньшего количества ошибок аппроксимации, самое быстрое схождение и т.д.) из этих алгоритмов могут использоваться для аппроксимации степенной функции.
[0071] Следует отметить, что функция адаптивного восстановления формы может быть или не быть прямой степенной функцией. Дополнительно, в необязательном порядке, или альтернативно, функция, обратная к функции восстановления формы, может быть или не быть обратной степенной функцией. В некоторых вариантах осуществления, описанная здесь функция, обратная к функции восстановления формы, представляется оптимальной обратной LUT (обозначенной как BL()), которая может быть получена или выведена из любой произвольной функции восстановления формы. Функция восстановления формы может использоваться расположенным ранее по схеме устройством, например, видеокодером, и т.д., для осуществления адаптивного восстановления формы. В некоторых вариантах осуществления, функцию адаптивного восстановления формы можно представить прямой LUT (обозначенной как FL()). Оптимальная обратная LUT (или оптимальная BL()) может использоваться расположенным позднее по схеме устройством, например, видеодекодером и т.д., для осуществления обратного отображения.
s
s
v
s
c
c
i
c
[0072] Для каждого восстановленного по форме значения кодового слова, , используемого в восстановленном по форме видеоконтенте, все пиксели (например, в изображении, в изображениях одной и той же сцены и т.д.), имеющие одно и то же восстановленное по форме значение кодового слова  в восстановленном по форме видеоконтенте, группируются. На основании этих пикселей в восстановленном по форме видеоконтенте, набор соответствующих исходных значений кодовых слов  в исходном видеоконтенте, которые были восстановлены по форме или отображены в , затем определяются или идентифицируются, следующим образом:
(5)
s
v
s
,
s
c
i
c
c
[0073] Для каждого значения кодового слова , если его набор соответствующих исходных значений кодовых слов  не пусто, то берется или вычисляется среднее значение для всех собранных исходных значений кодовых слов в наборе. Среднее значение всех собранных исходных значений кодовых слов, соответствующих каждому значению кодового слова  может использоваться для построения оптимальной BL(), следующим образом,
(6)
где  представляет количество собранных исходных значений кодовых слов в наборе вышеприведенного выражения (5).
s
c
[0074] В некоторых вариантах осуществления, оптимальная BL() в выражении (6) может использоваться в качестве целевой LUT для аппроксимации (например, полиномами, и т.д.).
5. Аппроксимация функций, относящихся к адаптивному восстановлению формы
[0075] Фиг. 2 демонстрирует иллюстративный способ аппроксимации функции восстановления формы. Одно или более вычислительных устройств, один или более модулей, по меньшей мере частично, реализованных аппаратными средствами на вычислительном устройстве и т.д., может осуществлять этот способ. Например, модуль аппроксимации LUT в устройстве обработки видеосигнала, например, модуль адаптивного восстановления формы в видеокодере, модуль обратного отображения в видеодекодере и т.д., может осуществлять некоторые или все действия способа, показанного на фиг. 2.
[0076] В блоке 202, модуль аппроксимации LUT начинает аппроксимацию целевой LUT путем установления начального порога ошибки t.
[0077] В блоке 204, модуль аппроксимации LUT определяет, подлежит ли применению условие непрерывности. Если да, то полиномы, используемые для аппроксимации целевой LUT, должны удовлетворять ограничению, согласно которому кусочная кривая, образованная полиномами, является непрерывной 0-го порядка; любые два отрезка кривой, представленные двумя соседними полиномами кусочной кривой, стыкуются друг с другом. С другой стороны, если условие непрерывности не подлежит применению, полиномами не должны удовлетворять такому ограничению (соседние полиномы могут стыковаться или не стыковаться друг с другом). Установление или отмена этого ограничения непрерывности может зависеть от контента. Например, модуль аппроксимации LUT может определять, что изображение или сцена содержит гладкий контент изображения. В случае такого определения, ограничение непрерывности может определяться при аппроксимации целевой LUT для операций восстановления формы или обратного отображения на таком изображении или такой сцене. Это может препятствовать возникновению артефактов цветовой сегментации в сравнительно гладком контенте изображения. В другом примере, модуль аппроксимации LUT может определять, что изображение или сцена содержит сравнительно волатильный контент изображения (например, в отношении разностей и изменений значений яркости или значений цветности и т.д.). В случае такого определения, ограничение непрерывности может не применяться при аппроксимации целевой LUT для операций восстановления формы или обратного отображения на таком изображении или такой сцене, поскольку в сравнительно волатильном контенте изображения возникновение артефактов цветовой сегментации менее вероятно.
[0078] В некоторых вариантах осуществления, модуль аппроксимации LUT может выбирать набор правил остановки, среди одного или более различных наборов правил остановки, для применения в операции аппроксимации на основании того, нужно ли применять условие или ограничение непрерывности. В случае определения, что условие непрерывности не подлежит применению, в блоке 206, модуль аппроксимации LUT может быть выполнен с возможностью выбора первого набора правил остановки. С другой стороны, в случае определения, что условие непрерывности подлежит применению, в блоке 208, модуль аппроксимации LUT может быть выполнен с возможностью выбора второго набора правил остановки.
[0079] Правило остановки может означать правило (или часть сложного правила), используемое для определения, по меньшей мере, частично, заканчивать ли аппроксимацию отрезка, останавливать или завершать ли конкретное вычисление или операции, переходить ли к другому вычислению или операции и т.д., при аппроксимации целевой LUT. В некоторых вариантах осуществления, правила остановки могут содержать не только детектор порогового ограничения, но и детектор переднего фронта, детектор минимальной/максимальной длины отрезка и т.д. Правила остановки (например, конкретная комбинация правил остановки и т.д.) может использоваться для обеспечения повышенной точности аппроксимации в окончании аппроксимации отрезка, чем просто с использованием детектора порогового ограничения на основании общего порога ошибки.
[0080] В различных вариантах осуществления, разные правила остановки могут применяться на основании типов изображения, функции восстановления формы типы и т.д. Например, для функций восстановления формы, представленных кривыми, которые трудно аппроксимировать полиномами, может применяться сравнительно ослабленное правило остановки. Для сравнительно гладких изображений, может применяться сравнительно строгое правило остановки. В некоторых вариантах осуществления, правило остановки может быть эквивалентно сокращению степеней свободы в операциях аппроксимации. Чем больше степеней свободы (например, одна степень свободы, две степени свободы и т.д.), которые представляет правило остановки, тем больше искажений может генерироваться аппроксимация целевой LUT отчасти на основании правила остановки. Ошибку аппроксимации можно минимизировать, если не используется ни правило остановки, ни сравнительно ослабленное правило остановки. Однако аппроксимация может содержать отрезки кривой, которые не стыкуются своими концами, и могут быть или не быть пригодны для конкретных типов изображения (например, сравнительно гладких изображений, сравнительно негладких изображений и т.д.).
[0081] В иллюстративной реализации, правило № 1 задается следующим образом:
( prev_error_condition && curr_error_condition ) ||
max_custom_length_condition (7)
x
y
x
y
x
y
x
y
где  &&  обозначает булево логическое ʺиʺ для  и ,  ||  обозначает булево логическое ʺилиʺ для  и , prev_error_condition представляет предикат, указывающий, меньше ли ошибка последней аппроксимации применимого порога ошибки (например, принятого по умолчанию порога ошибки t, отрегулированного порога ошибки 0,75t, дополнительно отрегулированного порога и т.д.); curr_error_condition представляет предикат, указывающий, меньше ли текущая ошибка аппроксимации применимого порога ошибки; и max_custom_length_condition представляет предикат, указывающий, достиг ли отрезок заранее заданной максимальной длины.
[0082] В иллюстративной реализации, правило № 2 задается следующим образом:
( curr_error_condition && min_custom_length_condition ) ||
max_custom_length_condition (8)
где min_custom_length_condition - предикат, указывающий, достиг ли отрезок заранее заданной минимальной длины.
[0083] В иллюстративной реализации, правило № 3 задается следующим образом:
curr_error_condition && min_custom_length_condition (9)
[0084] В некоторых вариантах осуществления, поиск вперед и поиск назад может использовать один и тот же набор правил остановки. В некоторых других вариантах осуществления, поиск вперед и поиск назад может использовать различные наборы правил остановки. В некоторых вариантах осуществления, как показано в блоке 206, показанном на фиг. 2, когда условие непрерывности не применяется, правило № 1 выбирается для поиска вперед и поиска назад. В некоторых вариантах осуществления, как показано в блоке 208, показанном на фиг. 2, когда условие непрерывности применяется, правило № 1 выбирается для поиска вперед, тогда как правило № 2 выбирается для поиска назад.
[0085] В блоке 210, модуль аппроксимации LUT осуществляет аппроксимацию целевой LUT с алгоритмом поиска вперед. Результаты аппроксимации целевой LUT с алгоритмом поиска вперед может сохраняться в памяти в блоке 212.
[0086] В блоке 214, модуль аппроксимации LUT осуществляет аппроксимацию целевой LUT с алгоритмом поиска назад.
[0087] В некоторых вариантах осуществления, аппроксимация целевой LUT в алгоритме поиска вперед или в алгоритме поиска назад содержит следующие этапы. После установления начального порога ошибки t для одного или более алгоритмов, полиномы 2-го порядка подгоняются к отрезкам функции восстановления формы или обратной ей, которая представлена целевой LUT. Аппроксимация полиномов 2-го порядка к отрезкам может осуществляться отрезок за отрезком, например, слева направо в алгоритме поиска вперед или справа налево в алгоритме поиска назад. Каждый отрезок может определяться или выбираться таким образом, что ошибка аппроксимации между этим отрезком и соответствующим аппроксимирующим полиномом не превышает порог ошибки t. Если количество отрезков равно максимальному количеству, установленному для количества полиномов 2-го порядка, то криволинейная аппроксимация успешно достигает конца. С другой стороны, если количество отрезков меньше максимального количества, установленного для количества полиномов 2-го порядка, то порог ошибки t (например, t=0,75t и т.д.) снижается; вышеупомянутый этапы повторяются для сниженного порога ошибки, пока количество отрезков не достигнет максимального количества, установленного для количества полиномов 2-го порядка.
[0088] В блоке 216, модуль аппроксимации LUT определяет, генерирует ли аппроксимация целевой LUT с алгоритмом поиска назад большую ошибку, чем аппроксимация целевой LUT с алгоритмом поиска вперед.
[0089] В случае определения, что аппроксимация целевой LUT с алгоритмом поиска назад генерирует большую ошибку, чем аппроксимация целевой LUT с алгоритмом поиска вперед, в блоке 218, модуль аппроксимации LUT выбирает аппроксимацию целевой LUT с алгоритмом поиска вперед в качестве (например, окончательной и т.д.) аппроксимации целевой LUT.
[0090] В случае определения, что аппроксимация целевой LUT с алгоритмом поиска назад не генерирует большую ошибку, чем аппроксимация целевой LUT с алгоритмом поиска вперед, в блоке 220, модуль аппроксимации LUT выбирает аппроксимацию целевой LUT с алгоритмом поиска назад в качестве (например, окончательной и т.д.) аппроксимации целевой LUT.
[0091] В блоке 222, модуль аппроксимации LUT заканчивает операции для аппроксимации целевой LUT.
[0092] Было описано, что аппроксимация целевой LUT, которая представляет произвольную функцию восстановления формы или генерируется на ее основании, может осуществляться сначала поиском вперед, а затем поиском назад. Это описано исключительно в целях иллюстрации. В различных вариантах осуществления, аппроксимация целевой LUT, которая представляет произвольную функцию восстановления формы или генерируется на ее основании, может осуществляться одним поиском, например, поиском вперед, но не поиском назад, поиском назад, но не поиском вперед. Дополнительно, в необязательном порядке, или альтернативно, аппроксимация целевой LUT, которая представляет произвольную функцию восстановления формы или генерируется на ее основании, может осуществляться сначала поиском назад, а затем поиском вперед. Таким образом, эти и другие изменения аппроксимации целевой LUT, которая представляет произвольную функцию восстановления формы или генерируется на ее основании, могут использоваться согласно описанным здесь методам.
[0093] Фиг. 3A демонстрирует иллюстративную последовательность обработки для аппроксимации целевой LUT. Одно или более вычислительных устройств, один или более модулей, по меньшей мере частично, реализованных аппаратными средствами на вычислительном устройстве и т.д., может осуществлять этот способ. Например, модуль аппроксимации LUT в устройстве обработки видеосигнала, например, модуль адаптивного восстановления формы в видеокодере, модуль обратного отображения в видеодекодере и т.д., может частично или полностью осуществлять последовательность обработки, показанную на фиг. 3A.
[0094] В блоке 302, последовательность обработки начинается с инициализации одной или более из переменных, относящихся к оси, флагов обработки, переменных, относящихся к схождению, например, максимального количества (например, 20, 30, 40, 50, 60 и т.д.) итераций во внешнем цикле, верхней границы ошибки поиска (например, инициализированной равной порогу максимальной ошибки t, и т.д.), флага (обозначенного как ʺfound_CCʺ) для указания, найдена ли пригодная аппроксимация в итерации (например, инициализированного равным ложь, и т.д.), и т.д. Максимальное количество итераций, верхняя граница ошибки поиска t и т.д., являются ограничениями схождения с целью минимизации искажений при аппроксимации функции восстановления формы, и может принимать разные значения (например, конфигурируемые системой, перенастраиваемые пользователем, настраиваемые на основании статистики, собранной с помощью обучающего набора изображений, и т.д.) в различных вариантах осуществления. В некоторых вариантах осуществления, чем больше максимальное количество итераций, тем больше последовательность обработки будет пытаться минимизировать искажение при аппроксимации функции восстановления формы. В некоторых вариантах осуществления, верхняя граница ошибки поиска t обеспечивает потолок искажения, к которому сходится аппроксимация функции восстановления формы (например, когда количество итераций меньше или равно максимальному количеству итераций, и т.д.).
[0095] В блоке 304, последовательность обработки входит во внешний цикл, когда флаг схождения ʺconverge_iterʺ инициализирован равным ложь (0) в блоке 302. В частности, в блоке 304, производится определение, установлен ли флаг схождения ʺconverge_iterʺ равным истина (1).
[0096] В случае определения, что флаг схождения ʺconverge_iterʺ установлен равным истина, в блоке 306, последовательность обработки возвращает осевую точку, наилучший набор коэффициентов для полиномов, которые аппроксимируют целевую LUT. В блоке 308, последовательность обработки заканчивается.
[0097] В случае определения, что флаг схождения ʺconverge_iterʺ установлен равным ложь, последовательность обработки сбрасывает один или более из параметров внутреннего цикла, например, флаг ʺconvergeʺ внутреннего цикла на ложь, флаг ʺfound_CCʺ на ложь, переменную ʺnum_pivotʺ (например, указывающую текущее количество осей и т.д.) на единицу (1) и т.д., и входит во внутренний цикл с флагом ʺconvergeʺ внутреннего цикла, сброшенным на ложь (0). В частности, в блоке 310, последовательность обработки определяет, установлен ли флаг ʺconvergeʺ внутреннего цикла равным истина (1).
[0098] В случае определения, что флаг ʺconvergeʺ внутреннего цикла установлен равным ложь, последовательность обработки инициализирует флаг обработки ʺfound_one_segʺ равным ложь (0), инициализирует счетчик итераций внутреннего цикла ʺiter_cntʺ равным единице (1), и переходит к осуществлению второй последовательности обработки для добавления нового отрезка, который аппроксимируется полиномом, и переходит к блоку 332 второй последовательности обработки, представленной на фиг. 3B. Вторая последовательность обработки повторяется, пока в блоке 310 не будет определено, что флаг ʺconvergeʺ внутреннего цикла равен истина.
[0099] В случае определения в блоке 314, что флаг ʺconvergeʺ внутреннего цикла установлен равным истина, последовательность обработки определяет, превышает ли количество итераций во внешнем цикле, указанное счетчиком итераций внешнего цикла ʺOut_iter_cntʺ, максимальное количество итераций во внешнем цикле, указанное (например, постоянным и т.д.) сконфигурированным значением ʺMAX_OUT_CNTʺ.
[0100] В случае определения в блоке 316, что количество итераций во внешнем цикле превышает максимальное количество итераций во внешнем цикле, флаг схождения ʺconverge_iterʺ устанавливается равным истина (1), и последовательность обработки переходит к блоку 304.
[0101] В случае определения, что количество итераций во внешнем цикле не превышает максимальное количество итераций во внешнем цикле, в блоке 318, последовательность обработки определяет, превышает ли (например, текущее и т.д.) количество осей, указанное переменной ʺnum_pivotʺ, максимальное количество осей (например, максимум девять осей, если максимальное количество полиномов равно восьми, максимум десять осей, если максимальное количество полиномов равно девяти, и т.д.), указанное (например, постоянным и т.д.) сконфигурированным значением ʺMAX_NUM_PIVOTʺ.
[0102] В случае определения в блоке 320, что количество осей не превышает максимальное количество осей, верхняя граница ошибки поиска, обозначенная как ʺmax_errorʺ, снижается (например, max_error=0,75 max_error, и т.д.), и последовательность обработки переходит к блоку 304.
[0103] В случае определения в блоке 316, что количество осей превышает максимальное количество осей, флаг схождения ʺconverge_iterʺ устанавливается равным истина (1), и последовательность обработки переходит к блоку 304.
[0104] Фиг. 3B демонстрирует иллюстративную вторую последовательность обработки, которая может быть вызвана в блоке 310 на фиг. 3A, в случае определения, что флаг схождения ʺconvergenceʺ равен ложь. Одно или более вычислительных устройств, один или более модулей, по меньшей мере частично, реализованных аппаратными средствами на вычислительном устройстве и т.д., может осуществлять этот способ. Например, модуль аппроксимации LUT в устройстве обработки видеосигнала, например, модуль адаптивного восстановления формы в видеокодере, модуль обратного отображения в видеодекодере и т.д., может частично или полностью осуществлять последовательность обработки, показанную на фиг. 3B.
[0105] В блоке 332, вторая последовательность обработки определяет, установлен ли флаг обработки ʺfound_one_segʺ равным истина (1). В случае определения, что флаг обработки ʺfound_one_segʺ установлен равным ложь, вторая последовательность обработки обрабатывает нижнюю границу и верхнюю границу для отрезка-кандидата, и затем переходит к блоку 346.
[0106] В некоторых вариантах осуществления, установление нижней границы и верхней границы для отрезка-кандидата включает в себя установление горизонтального расстояния между нижней границы и верхней границы для отрезка-кандидата равным текущему значению счетчика итераций внутреннего цикла ʺiter_cntʺ. В результате, во множественных сценариях итерации внутреннего цикла, при условии, что флаг ʺfound_one_segʺ остается равным ложь (0), отрезок-кандидат увеличивается по длине, когда счетчик итераций внутреннего цикла ʺiter_cntʺ увеличивается от одной внутренней итерации к следующей.
[0107] С другой стороны, в случае определения, что флаг обработки ʺfound_one_segʺ установлен равным истина, вторая последовательность обработки переходит к блоку 334. Однако, до перехода к блоку 334 от блока 332, вторая последовательность обработки сначала определяет, превышает ли количество осей, указанное переменной ʺnum_pivotʺ максимальное количество осей, представленное сконфигурированным значением ʺMAX_NUM_PIVOTʺ. В случае определения, что количество осей превышает максимальное количество осей, флаг ʺfound_CCʺ устанавливается равным ложь (0), и флаг ʺconvergeʺ внутреннего цикла устанавливается равным истина (1).
[0108] В блоке 334 вторая последовательность обработки переходит к определению, установлен ли флаг ʺfound_CCʺ равным истина (1). В случае определения, что флаг ʺfound_CCʺ установлен равным ложь (0), вторая последовательность обработки возвращается к блоку 310 в последовательности обработки, показанной на фиг. 3A. С другой стороны, в случае определения, что флаг ʺfound_CCʺ установлен равным истина (1), в блоке 336, вторая последовательность обработки определяет, указывает ли значение направления поиска поиск вперед или поиск назад. В случае определения, что значение направления поиска указывает поиск назад, в блоке 338, вторая последовательность обработки переупорядочивает или инвертирует записи в генерируемом списке осевых точек, записи в списке коэффициентов и т.д., и затем переходит к блоку 340. В случае определения, что значение направления поиска указывает поиск вперед, вторая последовательность обработки непосредственно переходит к блоку 340 без переупорядочения или инверсии записей в генерируемом списке осевых точек, записей в списке коэффициентов и т.д.
[0109] В блоке 340, вторая последовательность обработки реконструирует генерируемая LUT на основании полиномов, заданных записями в генерируемом списке осевых точек, записями в списке коэффициентов и т.д., и вычисляет максимальную ошибку ʺmax_diffʺ между целевой LUT и генерируемой LUT. В блоке 342, вторая последовательность обработки определяет, не превышает ли максимальная ошибка ʺmax_diffʺ предыдущую наилучшую максимальную ошибку ʺprev_best_max_errorʺ.
[0110] В случае определения, что максимальная ошибка ʺmax_diffʺ не превышает предыдущую наилучшую максимальную ошибку ʺprev_best_max_errorʺ, записи в генерируемом списке осевых точек, записи в генерируемом списке коэффициентов и т.д., сохраняются как текущие наилучшие осевые точки, текущие наилучшие коэффициенты и т.д., и вторая последовательность обработки переходит к блоку 310 в последовательности обработки, показанной на фиг. 3A.
[0111] В случае определения, что максимальная ошибка ʺmax_diffʺ превышает предыдущую наилучшую максимальную ошибка ʺprev_best_max_errorʺ, записи в генерируемом списке осевых точек, записи в генерируемом списке коэффициентов и т.д., не сохраняются как текущие наилучшие осевые точки, текущие наилучшие коэффициенты и т.д., и вторая последовательность обработки переходит к блоку 310 в последовательности обработки, показанной на фиг. 3A.
[0112] В блоке 346 вторая последовательность обработки определяет, установлен ли флаг условия непрерывности ʺcontinuity_conditionʺ равным ложь (0) или равна ли переменная ʺnum_pivotʺ единице (1). Когда флаг ʺcontinuity_conditionʺ установлен равным ложь, рассмотренное ранее условие непрерывности или ограничение непрерывности не применяется. Когда флаг ʺcontinuity_conditionʺ установлен равным истина (1), рассмотренное ранее условие непрерывности или ограничение непрерывности применяется.
[0113] В случае определения, что условие непрерывности применяется и переменная ʺnum_pivotʺ не равна единице, вторая последовательность обработки переходит к блоку 348. В некоторых вариантах осуществления, переменная ʺnum_pivotʺ была инициализирована равной единице (1) до того, как последовательность обработки, показанная на фиг. 3A, войдет во внутренний цикл, представленный блоком 310, и затем, от блока 304, во внутреннем цикле увеличивается на единицу каждый раз, когда определяется или выбирается новый (например, пригодный и т.д.) отрезок, аппроксимированный полиномом. Таким образом, когда переменная ʺnum_pivotʺ не равна единице, вторая последовательность обработки в блоке 346 имеет дело с итераций, в которой был определен/выбран, по меньшей мере, один отрезок, аппроксимированный, по меньшей мере, одним полиномом.
[0114] В некоторых вариантах осуществления, LUT, например, целевая LUT, нецелевая LUT и т.д., которая отображает входные значения кодовых слов (например, как ключи в парах ключ-значение LUT и т.д.) в отображенные значения кода (например, как значения в парах ключ-значение LUT и т.д.) можно представить в системе координат (например, в декартовой системе координат и т.д.), в которой горизонтальная ось представляет входные значения кодовых слов, и вертикальная ось представляет отображенные значения кодовых слов. Последний полином, используемый при аппроксимации последнего отрезка целевой LUT, может использоваться для вычисления отображенного значения кодового слова на основании входного значения кода в следующей записи в целевой LUT (например, следующей точке данных после последнего отрезка в системе координат и т.д.). Комбинация входного значения кода в следующей записи и соответствующего ему вычисленного отображенного значения кодового слова с последним полиномом может использоваться в качестве опорной (осевой) точки для отрезка-кандидата в целях применения условия или ограничения непрерывности.
[0115] В блоке 348 вторая последовательность обработки центрирует текущий отрезок (например, отрезок-кандидат и т.д.) относительно опорной (осевой) точки, генерируемой, по меньшей мере частично, из последнего полинома, аппроксимирующего последний отрезок. Центрирование отрезка-кандидата в блоке 348 может осуществляться путем преобразования (например, параллельного переноса и т.д.) системы координат в новую систему координат, в которой одно или оба из новых значений горизонтальной и вертикальной координат точки отсчета равно нулю. В блоке 350, вторая последовательность обработки определяет, не меньше ли количество точек данных в отрезке-кандидате, трех (3). В случае определения, что количество точек данных в отрезке-кандидате не меньше, трех (3), в блоке 352, вторая последовательность обработки генерирует полином 2-го порядка для аппроксимации отрезка-кандидата на основании точек данных в отрезке-кандидате из целевой LUT. В случае определения, что количество точек данных в отрезке-кандидате меньше трех (3), в блоке 354, вторая последовательность обработки генерирует полином 1-го порядке для аппроксимации отрезка-кандидата на основании точек данных в отрезке-кандидате из целевой LUT. В блоке 356, вторая последовательность обработки аналитически выводит коэффициенты текущего полинома (например, в системе координат до ее преобразования в новую систему координат и т.д.) для аппроксимации отрезка-кандидата из полинома 1-го или 2-го порядка (например, выведенного в новой системе координат и т.д.) путем обратного преобразования новой системы координат обратно в систему координат.
[0116] В блоке 346, в случае определения, что либо условие непрерывности не применяется при аппроксимации целевой LUT, либо переменная ʺnum_pivotʺ равна единице, вторая последовательность обработки переходит к блоку 358. Вторая последовательность обработки осуществляет операции в блоках 358, 360 и 362, аналогичные операциям в блоках 350, 352 и 354.
[0117] Как показано на фиг. 3B, вторая последовательность обработки переходит к блоку 364 от одного из блоком 356, 360 или 362. В блоке 364, вторая последовательность обработки определяет, является ли верхняя граница текущего отрезка, обозначенная как ʺследующая осевая точкаʺ последней возможной точкой (данных) или записью в целевой LUT. В случае определения, что верхняя граница текущего отрезка является последней возможной точкой (данных) или записью в целевой LUT, вторая последовательность обработки заканчивает текущий отрезок, устанавливает флаг ʺfound_one_segʺ равным истина (1), флаг ʺconvergeʺ равным истина (1), флаг found_CC равным ложь (0) и т.д., и переходит к блоку 332.
[0118] В случае определения, что верхняя граница текущего отрезка не является последней возможной точкой (данных) или записью в целевой LUT, вторая последовательность обработки определяет, удовлетворяет ли текущий отрезок (или отрезок-кандидат) правилу остановки (например, нулю, одному или более из правила 1, правила 2, правила 3 и т.д.), установленному для операций аппроксимации. В случае определения, что текущий отрезок (или отрезок-кандидат) удовлетворяет правилу остановки, в блоке 372, вторая последовательность обработки увеличивает переменную ʺnum_pivotʺ на единицу, устанавливает флаг ʺfound_one_segʺ равным истина (1), флаг ʺfound_CCʺ равным ложь (0), и т.д., и переходит к блоку 332. С другой стороны, в случае определения, что текущий отрезок (или отрезок-кандидат) не удовлетворяет правилу остановки, в блоке 372, вторая последовательность обработки устанавливает флаг ʺfound_one_segʺ равным ложь (0), флаг ʺfound_CCʺ равным ложь (0), и переходит к блоку 332.
[0119] До перехода второй последовательности обработки к блоку 332 от любого из блоков 368, 372 и 374, счетчик итераций внутреннего цикла ʺiter_cntʺ увеличивается на единицу. Когда флаг ʺfound_one_segʺ остается равным ложь как в случае блока 374, длина отрезка-кандидата для следующей итерации будет увеличиваться, поскольку счетчик итераций внутреннего цикла ʺiter_cntʺ будет увеличиваться в начале следующей итерации. Более длинный отрезок-кандидат будет аппроксимироваться в следующей итерации полиномом в блоках 352, 354, 360 или 362, как рассмотрено выше.
[0120] Адаптивное восстановление формы согласно описанным здесь методам может осуществляться посредством одной или более из различных функций восстановления формы или обратных им, LUT, представляющие аналитические или неаналитических функций и т.д. В случае использования степенных функций в качестве функций восстановления формы или обратных им, методы можно использовать для конкретного выбора параметров адаптивного восстановления формы, например, значений показателя для степенных функций и т.д., для повышения перцептивного качества.
[0121] В некоторых вариантах осуществления, видеоконтент, например, исходный видеоконтент, промежуточный видеоконтент, выходной видеоконтент и т.д., может кодироваться в нелинейном цветовом пространстве, например, перцепционно квантованном (PQ) цветовом пространстве и т.д. PQ цветовое пространство может содержать набор доступных PQ кодовых слов для кодирования видеоконтента. Различные PQ кодовые слова в PQ цветовом пространстве могут не масштабироваться линейно значениями яркости, но, напротив, могут соответствовать изменяющимся шагам квантования в значениях яркости. Например, PQ цветовое пространство может выделять больше кодовых слов в темных областях значений яркости и меньше кодовых слов в ярких областях значений яркости. Некоторые примеры PQ цветовых пространств, преобразований, отображений, передаточных функций и т.д., описаны в SMPTE ST 2084:2014 ʺHigh Dynamic Range EOTF of Mastering Reference Displaysʺ, который в полном объеме включен в настоящее описание изобретения посредством ссылки.
[0122] Описанные здесь методы можно использовать для адаптивного преобразования формы входного видеоконтента (например, исходного видеоконтента, кодированного видеоконтента PQ, видеоконтента со сравнительно большим набором доступных кодовых слов и т.д.), восстановленного по форме видеоконтента, кодированного функцией восстановления формы (например, прямой степенной функцией и т.д.), содержащего сравнительно ограниченный набор восстановленных по форме кодовых слов, который затем может переноситься в видеосигнале сравнительно низкой битовой глубины.
[0123] Описанный здесь сравнительно ограниченный набор восстановленных по форме кодовых слов может выделять больше кодовых слов в областях высоких значений яркости для сравнительно гладких ярких изображений, сравнительно гладких ярких сцен и т.д., например, изображений, содержащих большие области ярких визуальных признаков (например, неба, окон, шлифованного металла, самолетов, автомобилей и т.д.). Выделение большего количества кодовых слов в областях высоких значений яркости в функции восстановления формы ослабляет или препятствует возникновению визуальных артефактов, например, цветовой сегментации и т.д., в этих изображениях, сценах и т.д. В некоторых вариантах осуществления, сравнительно большие значения показателя можно выбирать для (например, прямых и т.д.) функций восстановления формы, представленных прямыми степенными функциями. Сравнительно большое значение показателя (например, 1,6, 1,7, сравнительно большое значение, при котором исчезают артефакты сегментации, и т.д.) прямой степенной функции обеспечивает сравнительно больше кодовых слов для восстановления формы участков видеоконтента, представляющих яркие области. Напротив, обратные функции (например, обратные степенные функции и т.д.) к (например, прямым и т.д.) функциям восстановления формы могут использовать сравнительно малые значения показателя, обратные значениям показателя в прямых степенных функциях, в целях реконструкции версии заранее восстановленного по форме видеоконтента на основании принятого адаптивно преобразованного по форме видеосигнала, преобразованного по форме прямыми степенными функциями со сравнительно большими значениями показателя.
[0124] Описанный здесь сравнительно ограниченный набор восстановленных по форме кодовых слов может выделять больше кодовых слов в областях низких значений яркости для сравнительно темных изображений, сравнительно темных сцен и т.д., например, изображений, содержащих большие темные визуальные признаки (например, тени, звездное небо, ночь, тускло освещенное помещение и т.д.). Выделение большего количества кодовых слов в областях низких значений яркости в функции восстановления формы помогает сохранять детали изображения или признаки в этих изображениях, сценах и т.д. В некоторых вариантах осуществления, сравнительно малые значения показателя можно выбирать для (например, прямых и т.д.) функций восстановления формы, представленных прямыми степенными функциями. Сравнительно малое значение показателя (например, 1,0, сравнительно малое значение, при котором сохраняются темные детали изображения, и т.д.) прямой степенной функции обеспечивает сравнительно больше кодовых слов для восстановления формы участков видеоконтента, представляющих темные области. Напротив, обратные функции (например, обратные степенные функции и т.д.) к (например, прямым и т.д.) функциям восстановления формы могут использовать сравнительно большие значения показателя, обратные значениям показателя в прямых степенных функциях, в целях реконструкции версии заранее восстановленного по форме видеоконтента на основании принятого адаптивно преобразованного по форме видеосигнала, преобразованного по форме прямыми степенными функциями со сравнительно малые значения показателя.
[0125] Для других изображений, сцен и т.д., изображающих большинство объектов или признаков в полутоновых, восстановленных по форме кодовых словах могут распределяться более равномерно в отношении значений яркости. Например, прямая степенная функция может использовать значение показателя 1,3, 1,4, и т.д.
[0126] Следует отметить, что упомянутые значения показателя приведены исключительно в целях иллюстрации. Когда степенные функции используются в, по меньшей мере, части функции восстановления формы, эти и другие значения показателя могут применяться на основании различных факторов, в том числе, но без ограничения, типов изображения и т.д. Дополнительно, в необязательном порядке, или альтернативно, функции, соотношения и т.д., отличные от степенных функций, можно использовать в, по меньшей мере, части функции восстановления формы. Для этих других функций могут применяться упомянутые значения показателя и другие значения показателя.
T
T
T
T
P
e
e
b
b
b
[0127] Один или более из различных алгоритмов обработки изображений можно реализовать согласно описанным здесь методам для определения, имеет ли изображение, сцена и т.д. возможные яркие области, склонные к генерации артефактов оконтуривания/сегментации в реконструированной версии изображения, сцены и т.д. В некоторых вариантах осуществления, каждое изображение в изображении, сцене и т.д., может делиться на множественные неперекрывающиеся блоки N×N (содержащие N×N пикселей, где N - положительное целое число, например, 2, 4, 6, 8, 16 и т.д.). В каждом из некоторых или всех блоков можно вычислять/определять минимальное, максимальное, среднее и т.д. значения в блоке. Фиг. 4A демонстрирует иллюстративный алгоритм для определения, ли содержит такое изображение (или кадр), сцена и т.д., гладкие яркие области. Разность между максимальным и минимальным значениями в блоке можно вычислять и сравнивать с пороговой разностью (обозначенной как ). Если разность меньше порога (), блок можно классифицировать как гладкий блок, которому присущи артефакты сегментации. Дополнительно, в необязательном порядке, или альтернативно, для количественного оценивания или идентификации ярких областей, среднее значение блока можно сравнивать с порогом среднего значения (обозначенным как ). Если среднее значение превышает порог (), блок можно классифицировать как яркий блок. Количество гладких ярких блоков в изображении, сцене и т.д., можно определять на основании вышеизложенного анализа изображения, сцены и т.д. Если количество гладких ярких блоков в изображении превышает определенный процент (обозначенный как ) суммарного количества блоков, то изображение (или кадр изображения) можно рассматривать как изображение с гладкими яркими областями.
T
P
d
d
[0128] Один или более из различных алгоритмов обработки изображений можно реализовать согласно описанным здесь методам для определения, имеет ли изображение (или кадр), сцена и т.д. сравнительно большие темные области. Фиг. 4B демонстрирует пример такого алгоритма. В некоторых вариантах осуществления, определяется суммарное количество темных пикселей - среди некоторых или всех пикселей в изображении, сцене и т.д. -значения яркости которых меньше пороговой яркости (обозначенной как ). Если суммарное количество темных пикселей превышает пороговый процент (обозначенный как ), изображение, сцена и т.д., классифицируется как содержащая большие темные области.
T
T
T
T
P
s
std
s
std
bd
[0129] Фиг. 4C демонстрирует другой пример для определения, имеет ли изображение (или кадр), сцена и т.д. сравнительно большие темные области. Разность между максимальным и минимальным значениями в блоке можно вычислять. Если разность равна 0, или, альтернативно, в некоторых вариантах осуществления меньше, чем малая пороговая разность, блок можно классифицировать как чисто черный блок и игнорировать. С другой стороны, если разность не равна 0, или, альтернативно, в некоторых вариантах осуществления не меньше, чем малая пороговая разность, блок классифицируется как не чисто черный блок. Среднее значение блока можно сравнивать со вторым порогом среднего значения (обозначенным как ). Дополнительно, в необязательном порядке, или альтернативно, значение среднеквадратического отклонения в блоке также можно вычислять и сравнивать с порогом среднеквадратического отклонения (обозначенным как ). Если среднее значение меньше второго порога среднего значения (), и значение среднеквадратического отклонения меньше порога среднеквадратического отклонения (), блок можно классифицировать как гладкий темный блок. Затем гладкую темную область можно идентифицировать как область, содержащую, по меньшей мере, некоторое количество (например, восемь, десять, шестнадцать, другое положительное целое число, большее двух, и т.д.) гладких темных блоков, соединенных между или среди некоторого количества гладких темных блоков. Наибольшую гладкую темную область в изображении можно определять среди нуля, одной или более гладких темных областей, идентифицированных из изображения. Если количество темных гладких блоков в наибольшей гладкой темной области в изображении может превышать определенный процент (обозначенный как ) суммарного количества блоков, то изображение (или кадр изображения) можно рассматривать как изображение с гладкими темными областями.
[0130] В некоторых вариантах осуществления, описанный здесь кодек может заранее вычислять множество LUT-кандидатов на основании различных наборов-кандидатов параметров адаптивного восстановления формы. Например, согласно вариантам осуществления, в которых функции восстановления формы базируются на степенных функциях, каждый набор-кандидат параметров адаптивного восстановления формы может включать в себя верхнюю границу динамического диапазона, поддерживаемого исходным видеосигналом, нижнюю границу динамического диапазона, поддерживаемого исходным видеосигналом, значение показателя, и т.д.; соответствующую LUT-кандидат можно заранее вычислять, по меньшей мере частично, на основании этого набора-кандидата параметров адаптивного восстановления формы. Аналогично, LUT-кандидат, которая представляет функцию, обратную к функции-кандидату восстановления формы, можно заранее вычислять на основании набора-кандидата параметров адаптивного восстановления формы. Дополнительно, в необязательном порядке, или альтернативно, один или более наборов-кандидатов полиномов совместно с одним или более наборами-кандидатами соответствующих полиномиальных коэффициентов-кандидатов, осями и т.д., можно заранее вычислять для аппроксимации одной или более целевых LUT, которые могут представлять функцию восстановления формы и обратную ей. Некоторые или все из упомянутых выше как заранее вычисленных, могут сохраняться в памяти. Например, значения-кандидаты альфа, подлежащие вычислению, могут включать в себя, но без ограничения, любой из: 0,5, 0,6, 0,7, 0,8, 0,9, 1,0, 1,1, 1,2, 1,3, 1,4, 1,5, 1,6, 1,7, 1,8, 1,9 и т.д. Заметим, что при значении альфа 1,0 LUT может быть не нужна, поскольку функция восстановления формы в этом случае является линейной функцией. В некоторых вариантах осуществления, LUT-кандидаты могут включать в себя LUT с разными шагами квантования (например, представленные парами значений соседних кодовых слов, и т.д.). во время выполнения, когда изображение восстанавливается по форме на кодере или обратно отображается на декодере, на основании статистики, вычисленной на основании фактического контента изображения, LUT-кандидат (или полиномы-кандидаты с полиномиальными коэффициентами-кандидатами, осями и т.д.) можно выбирать среди множества LUT как LUT (или полиномы с полиномиальными коэффициентами, осями и т.д.) в целях применения адаптивного восстановления формы или соответствующего обратного отображения.
[0131] В некоторых вариантах осуществления, некоторые или все полиномиальные коэффициенты, оси и т.д., согласно описанным здесь методам можно выразить в некотором количестве байтов, например, четырех байтах (например, 1 байте для целого числа и 3 байтах для десятичной точки и т.д.).
[0132] LUT (или полиномы с полиномиальными коэффициентами, осями и т.д.) можно адаптивно определять от изображения к изображению, от сцены к сцене и т.д.
6. Иллюстративные последовательности обработки
[0133] Фиг. 5A демонстрирует иллюстративную последовательность обработки. В некоторых вариантах осуществления, одно или более вычислительных устройств или компоненты может осуществлять эту последовательность обработки. В блоке 502, видеокодер (например, 102 на фиг. 1A) принимает последовательность исходных изображений; видеокодер (102) вычисляет одно или более статистических значений на основании одного или более исходных изображений в последовательности исходных изображений.
[0134] В блоке 504, видеокодер (102) выбирает, на основании одного или более статистических значений, функцию адаптивного восстановления формы для одного или более исходных изображений.
[0135] В блоке 506, видеокодер (102) адаптивно восстанавливает по форме, по меньшей мере частично, на основании выбранной функции адаптивного восстановления формы, участок исходного видеоконтента для генерации участка восстановленного по форме видеоконтента, причем участок исходного видеоконтента представлен одним или более исходными изображениями.
[0136] В блоке 508, видеокодер (102) генерирует аппроксимацию функции, обратной выбранной функции адаптивного восстановления формы.
[0137] В блоке 510, видеокодер (102) кодирует восстановленный по форме видеоконтент и набор параметров адаптивного восстановления формы, которые задают аппроксимацию функции, обратной выбранной функции адаптивного восстановления формы, в восстановленный по форме видеосигнал.
[0138] Согласно варианту осуществления, участок восстановленного по форме видеоконтента содержит одно или более восстановленных по форме изображений.
[0139] Согласно варианту осуществления, одно или более исходных изображений образуют сцену.
[0140] Согласно варианту осуществления, одно или более статистических значений включают в себя, по меньшей мере, одно из максимального значения, минимального значения, среднего арифметического значения, медианного значения, среднего значения, значения среднеквадратического отклонения и т.д., определяемых на основании исходных кодовых слов в одном или более исходных изображений.
[0141] Согласно варианту осуществления, по меньшей мере, одна из выбранной функции адаптивного восстановления формы и функции, обратной выбранной функции адаптивного восстановления формы, содержит одну или более из аналитических функций, неаналитических функций, поисковых таблиц (LUT), сигмоидальных функций, степенных функций, кусочных функций и т.д.
[0142] Согласно варианту осуществления, аппроксимация функции, обратной выбранной функции адаптивного восстановления формы, представляется набором полиномов.
[0143] Согласно варианту осуществления, суммарное количество полиномов в наборе полиномов ограничено сверху пороговым количеством.
[0144] Согласно варианту осуществления, коэффициенты для полиномов в наборе полиномов определяются на основании минимизации разностей между значениями, заданными полиномами, и значениями, заданными в целевой поисковой таблице (LUT), которая представляет функцию, обратную выбранной функции адаптивного восстановления формы.
[0145] Согласно варианту осуществления, видеокодер (102) дополнительно выполнен с возможностью выбора условия непрерывности для генерации набора полиномов на основании типа функции, определяемой для функции, обратной выбранной функции адаптивного восстановления формы.
[0146] Согласно варианту осуществления, набор полиномов заранее определяется до обработки одного или более исходных изображений для адаптивного восстановления формы.
[0147] Согласно варианту осуществления, набор полиномов динамически определяется в ходе обработки одного или более исходных изображений для адаптивного восстановления формы.
[0148] Согласно варианту осуществления, видеокодер (102) дополнительно выполнен с возможностью классификации одного или более исходных изображений как одного из изображений, содержащих гладкие яркие области, изображений, содержащих гладкие темные области, и полутоновых изображений.
[0149] Согласно варианту осуществления, участок исходного видеоконтента адаптивно восстанавливается по форме в участок восстановленного по форме видеоконтента для одного или более каналов во множестве каналов цветового пространства.
[0150] Согласно варианту осуществления, один или более каналов включают в себя канал, связанный с яркостью.
[0151] Согласно варианту осуществления, восстановленный по форме видеосигнал является одним из двухканального 8-битового видеосигнала и одноканального 10-битового видеосигнала.
[0152] Согласно варианту осуществления, восстановленный по форме видеосигнал генерируется посредством, по меньшей мере, одного из: кодера усовершенствованного видеокодирования (AVC), кодера экспертной группы по движущимся изображениям (MPEG) -2 или кодера высокопроизводительного видеокодирования (HEVC).
[0153] Согласно варианту осуществления, последовательность исходных изображений перцепционно кодируется.
[0154] Согласно варианту осуществления, участок исходного видеоконтента адаптивно восстанавливается по форме в участок восстановленного по форме видеоконтента без использования какой-либо аппроксимации выбранной функции адаптивного восстановления формы.
[0155] Фиг. 5B демонстрирует иллюстративную последовательность обработки. В некоторых вариантах осуществления, одно или более вычислительных устройств или компоненты может осуществлять эту последовательность обработки. В блоке 552, видеодекодер (например, 152, показанный на фиг. 1A) извлекает восстановленный по форме видеоконтент и набор параметров адаптивного восстановления формы, связанных с функцией, обратной к функции адаптивного восстановления формы, из восстановленного по форме видеосигнала, причем восстановленный по форме видеоконтент генерируется расположенным ранее по схеме устройством, по меньшей мере частично, на основании функции адаптивного восстановления формы.
[0156] В блоке 504, видеодекодер (152) обратно отображает, по меньшей мере частично, на основании функции, обратной к функции адаптивного восстановления формы, участок восстановленного по форме видеоконтента для генерации участка реконструированного видеоконтента.
[0157] В блоке 506, видеодекодер (152) генерирует, по меньшей мере частично, на основании участка реконструированного видеоконтента, последовательность реконструированных изображений, причем последовательность реконструированных изображений представляет реконструированную версию последовательности исходных изображений, используемой расположенным ранее по схеме устройством для генерации восстановленного по форме видеоконтента.
[0158] Согласно варианту осуществления, видеодекодер (152) дополнительно выполнен с возможностью воспроизведения множества реконструированных изображений в системе отображения.
[0159] Согласно варианту осуществления, видеодекодер (152) дополнительно выполнен с возможностью осуществления: установления, по меньшей мере частично, на основании набора параметров адаптивного восстановления формы, связанных с функцией, обратной к функции адаптивного восстановления формы, из восстановленного по форме видеосигнала, аппроксимации целевой поисковой таблицы (LUT), которая представляет функцию, обратную к функции адаптивного восстановления формы; и т.д.
[0160] В различных иллюстративных вариантах осуществления, кодер, декодер, перекодировщик, система, устройство, или одно или более других вычислительных устройств осуществляет любой или часть вышеупомянутых способов, как описано. Согласно варианту осуществления, на некратковременном компьютерно-читаемом носителе данных хранятся программные инструкции, которые, при выполнении одним или более процессорами, предписывают осуществлять описанный здесь способ.
[0161] Заметим, что, хотя здесь рассмотрены отдельные варианты осуществления, любую комбинацию рассмотренных здесь вариантов осуществления и/или частичных вариантов осуществления можно использовать для формирования дополнительных вариантов осуществления.
7. Оптимизации в реальном времени
[0162] Как рассмотрено ранее, способ генерации кусочной аппроксимации функции восстановления формы с использованием полиномы 2-го порядка можно, в целом, сформулировать следующим образом: для данной начальной точки, поиск осуществляется для идентификации отрезка на кривой восстановления формы. Если выполняется набор условий окончания, то он устанавливает осевую точку и инициирует новый поиск, пока вся кривая не будет разбита на отрезки. Этот процесс может делиться на следующие этапы: (1) вычисление полиномиальных коэффициентов для каждого отрезка для осевых точек-кандидатов, (2) определение ошибки аппроксимации для каждого кандидата, и (3) если ошибка аппроксимации меньше целевого порога, объявление отрезка пригодным и установление конечной осевой точки для этого отрезка. (4) Когда все отрезки идентифицированы, процесс могут повторяться с использованием более низкого целевого порога для повышения точности аппроксимации полиномами.
[0163] С вычислительной точки зрения, этап (1) занимает больше всего времени, за ним следует этап (4). Авторы изобретения установили, что некоторые варианты осуществления могут требовать реализации в реальном времени даже ценой возможного снижения точности. В этом разделе представлены различные усовершенствования для таких реализаций в реальном времени. Усовершенствования можно разделить на два класса: a) более быстрый способ вычисления полиномиальных коэффициентов в каждом отрезке без потери точности, и b) способ более быстрого схождения, предусматривающий сокращение полного количества итераций, необходимого для идентификации отрезков наилучшей аппроксимации (согласно некоторому критерию).
Быстрое полиномиальное решение без ограничения непрерывности
p
[0164] Рассмотрим, без потери общности, -й отрезок кривой, аппроксимированный полиномом второго порядка
, (10)
s
i
v
прогнозируемый
p
S
L
S
H
L
H
p
L
H
m
j=
p,i
i
p,L
p,H
p,j
где  обозначает -е восстановленное по форме пиксельное значение стандартного (или низкого) динамического диапазона (SDR или LDR), соответствующего p-му отрезку полинома. Пусть  - соответствующее, совмещенное, исходное пиксельное значение высокого динамического диапазона (HDR). Пусть  - соответствующий, совмещенный,  пиксель HDR. Пусть -й отрезок полинома имеет диапазон значений SDR от () до (), где  - низкий индекс оси, и  - высокий индекс оси на текущем p-ом отрезке (для простоты, индекс  отбрасывается из  и ). Согласно варианту осуществления, параметры (, для 0, 1 и 2) полинома в уравнении (10) можно вычислять с использованием решения наименьших квадратов следующим образом.
[0165] Уравнение (10) можно представить в векторно-матричной форме как:
,
или
, (11)
где решение наименьших квадратов задано в виде
, где
B
a
p
p
обозначает вектор исходных пикселей HDR. Для упрощения рассмотрения, матрица и вектор  также задаются в виде:
, (12)
и
, (13)
где
.
B
p
[0166] Для матрицы, каждый из ее элементов можно вычислять как:
(14)
.
a
p
[0167] Для вектора, при условии
,
каждый элемент можно вычислять в виде
, (15)
B
p
[0168] Из уравнения (14), вычисление элементов матрицы требует вычисления коэффициентов:
k
, =0, 1, 2, 3, 4. (16)
s
pi
bit-depth
[0169] Однако значения  заключены в конечном диапазоне, например [0,1] в случае нормализации, или в диапазоне [0, 2-1] в отсутствие нормализации, поэтому, согласно варианту осуществления, время вычислений для решения уравнения (11) может улучшаться за счет использования заранее вычисленных поисковых таблиц (LUT) следующим образом.
β
[0170] Пусть (бета) обозначает заранее вычисленные значения уравнения (16) следующим образом:
, (17)
i
j
β
i
j
i
Max
j
Max
где индексы ,  для диапазона [,] =[0, ] и =[0, 4], и  обозначает максимально возможное пиксельное значение в конкретной видеопоследовательности.
p
s
s
L
H
p
B
[0171] Из вышеупомянутой LUT, для любого значения  между  и , матрицу можно вычислить как
(18)
L
B
p
[0172] Когда нижняя ось равна 0, можно сделать подстановку =0 в уравнении (14) и вычислить матрицу с использованием
(19)
.
Max
[0173] После того же процесса для бета LUT, можно также задать альфа (α) (+1) × 4 LUT как
. (20)
a
p
[0174] Затем элементы вектора можно вычислять в отношении альфа LUT следующим образом:
. (21)
L
Для =0, уравнение (21) можно упростить следующим образом
(21b) .
[0175] В итоге, в таблице 1 показаны в виде псевдокода этапы ускоренного вычисления полиномиальных коэффициентов:
[0176] Таблица 1: быстрое решение для параметров полинома без ограничения непрерывности
1. На уровне последовательности создать LUT <i>β</i>2. В каждом кадре создать LUT α3. Для каждого отрезкаa. Вычислить матрицу<b> B</b><sub><i>p</i></sub> с использованием уравнений (18) или (19)b. Вычислить вектор<b> a</b><sub><i>p</i></sub> с использованием уравнений (21) или (21b)c. Решить <img file="00000055.jpg" he="7" wi="27" img-content="undefined" img-format="jpg" />
Быстрое полиномиальное решение с ограничением непрерывности
p
s
p-1
[0177] При ограничении непрерывности, начальная точка -го полинома принудительно соединяется с конечной точкой p-1-го полинома, поэтому соединенные куски являются непрерывными. Пусть  обозначает конечное значение SDR для p-1-го отрезка. Затем соответствующее прогнозируемое значение HDR можно вычислить как:
. (22)
[0178] При ограничении, согласно которому, если , должно существовать единственное прогнозируемое значение, , полином прогнозирования можно вывести в виде:
. (23)
который, как и раньше, можно выразить в виде
=. (24)
p
p
p
p
p
p
p
p
Заметим, что в ходе прямого поиска отрезка, -1-й отрезок располагается перед -ым отрезком, поэтому конечная точка -1-го отрезка должна совпадать с начальной точкой -го отрезка; однако, в ходе обратного поиска отрезка, -1-й отрезок располагается после -го отрезка, поэтому начальная точка -1-го отрезка должна совпадать с конечной точкой -го отрезка.
[0179] На основании уравнения (24), следуя подходу, аналогичному вышеописанному, согласно варианту осуществления, можно доказать, что решение этого уравнения можно вывести, выполняя этапы, приведенные в таблице 2.
[0180] Таблица 2: быстрое решение для параметров полинома с ограничением непрерывности
1. На уровне последовательности, создать LUT <i>β</i>2. Для каждого кадра, на каждом отрезке, где начинается аппроксимация, создать <img file="00000062.jpg" he="7" wi="9" img-content="undefined" img-format="jpg" /><img file="00000063.jpg" he="13" wi="19" img-content="undefined" img-format="jpg" />3. Прямая аппроксимация- Для текущего <i>p</i>-го отрезка, пусть <i>L</i> обозначает известную низкую точку- Для <i>i</i>=<i>L</i>, …, <i>H</i>- вычислить матрицу<b> B</b><sub><i>p</i></sub>,
<img file="00000064.jpg" he="7" wi="33" img-content="undefined" img-format="jpg" /><img file="00000065.jpg" he="7" wi="44" img-content="undefined" img-format="jpg" /><img file="00000066.jpg" he="7" wi="32" img-content="undefined" img-format="jpg" />- вычислить вектор<b> a</b><sub><i>p</i></sub>; пусть <i>H</i><sub><i>i</i></sub> обозначает конечную точку-кандидат. Пусть <img file="00000067.jpg" he="6" wi="7" img-content="undefined" img-format="jpg" /> - значение HDR, оцененное из конечной точки предыдущего отрезка, тогда,
<img file="00000068.jpg" he="14" wi="57" img-content="undefined" img-format="jpg" />, где <img file="00000069.jpg" he="7" wi="7" img-content="undefined" img-format="jpg" /> - значение HDR, соответствующее значению SDR <img file="00000070.jpg" he="7" wi="7" img-content="undefined" img-format="jpg" />, и <img file="00000071.jpg" he="6" wi="11" img-content="undefined" img-format="jpg" /> - (<i>H</i><sub><i>i</i></sub><i>-L</i>)- е<sup></sup>значение SDR.
<img file="00000072.jpg" he="6" wi="3" img-content="undefined" img-format="jpg" />4. Обратная аппроксимация- Для текущего <i>p</i>-го отрезка, пусть <i>H</i> обозначает известную высокую точку.- Для <i>i</i>=<i>H</i>, …, <i>L</i>- вычислить матрицу<b> B</b><sub><i>p</i></sub>,
<img file="00000073.jpg" he="7" wi="33" img-content="undefined" img-format="jpg" /><img file="00000074.jpg" he="7" wi="50" img-content="undefined" img-format="jpg" /><img file="00000075.jpg" he="7" wi="32" img-content="undefined" img-format="jpg" />- вычислить вектор<b> a</b><sub><i>p</i></sub>; пусть <i>L</i><sub><i>i</i></sub> обозначают начальную точку-кандидат. Пусть <img file="00000067.jpg" he="6" wi="7" img-content="undefined" img-format="jpg" /> - значение HDR, вычисленное из начальной точки прямого отрезка, затем обновить,
<img file="00000076.jpg" he="14" wi="58" img-content="undefined" img-format="jpg" />, где <img file="00000069.jpg" he="7" wi="7" img-content="undefined" img-format="jpg" /> - значение HDR, соответствующее значению SDR <img file="00000070.jpg" he="7" wi="7" img-content="undefined" img-format="jpg" />, и <img file="00000077.jpg" he="7" wi="11" img-content="undefined" img-format="jpg" /> - (<i>H-L</i><sub><i>i</i></sub>)-е<sup></sup>значение SDR.5. <img file="00000078.jpg" he="7" wi="23" img-content="undefined" img-format="jpg" />
Адаптивные условия окончания для ускоренного схождения
[0181] Как описано выше, алгоритм аппроксимации работает, непрерывно осуществляя поиск отрезков полинома. Он начинается с начальной точки и затем проверяет конечные точки-кандидаты вдоль кривой; если условия окончания выполняются в какой-либо точке кривой, он устанавливает конец оси в этой точке и затем начинает новый поиск. Как описано выше, условие окончания для любого отрезка таково:
Правило № 1:
( prev_error_condition && curr_error_condition ) || max_custom_length_condition
То есть, либо
i. существует передний фронт между двумя последовательными детекторами порогового ограничения, т.е. текущая ошибка аппроксимации меньше порога ошибки, и аппроксимация, использующая на одну точку меньше, дает ошибку, превышающую порог, или
ii. отрезок длиннее заранее заданной максимальной длины.
Правило № 2:
( curr_error_condition && min_custom_length_condition ) || max_custom_length_condition
То есть, либо
i. текущая ошибка аппроксимации меньше порога ошибки, и отрезки должны иметь, по меньшей мере, заранее заданную минимальную длину, либо
ii. отрезок длиннее заранее заданной максимальной длины.
Правило № 3:
curr_error_condition && min_custom_length_condition
То есть:
i. текущая ошибка аппроксимации меньше порога ошибки, и
ii. отрезок удовлетворяет заранее заданной минимальной длине.
k
k
k
n
Согласно варианту осуществления, порог ошибкиначинается с фиксированного значения и, в конце каждой итерации, уменьшается в  раз (<1, например, =0,75). Поиск продолжается, пока не будет достигнуто максимальное количество итераций ().
th
th
k
th
k
k раз
n
k
n
[0182] Согласно варианту осуществления, при наличии исходного порога ошибки (), с каждой итерацией порог снижается на фиксированный процент (например, =*, <1). Предполагая наихудший сценарий, где оптимальное решение имеет нулевую ошибку, когда ошибка уменьшается в  с каждой итерацией, при наличии  итераций, эта стратегия гарантированно дает решение, по меньшей мере, в  раз более близкое к оптимальному. В таблице 3 представлен иллюстративный способ регулировки целевой ошибки согласно другому варианту осуществления, который обеспечивает более быстрое, но не вполне оптимальное, схождение.
[0183] Таблица 3: регулировка адаптивного порога ошибки
1. Установить начальный порог ошибки <i>th</i> (например, <i>th</i>=0,005)2. Аппроксимировать полиномами 2-го порядка отрезки один за другим, слева направо (поиск вперед) или справа налево (поиск назад); каждый отрезок выбирается таким образом, чтобы ошибка аппроксимации не превышала порог <i>th</i>.3. Протоколировать минимальную ошибку, встречающуюся после каждой аппроксимации кривой, как <i>e</i><sub><i>fit</i></sub>.
<i>4. Установить новую целевую ошибку как k*e</i><sub><i>fit</i></sub><i>, где k<1, (например, k=0,5)</i>
k
Было установлено, что более высокие значения  улучшают коэффициент ошибок, но ценой быстродействия.
[0184] Также было установлено, что для некоторых кадров, ошибка сходится к постоянному значению. Затем, продолжение итераций не оказывает дополнительного влияния на коэффициент ошибок. Этого сценария можно избежать, добавив еще одно условие окончания:
Правило № 4:
e
t
e
t
e
t
e
t
th
fit
fit
fit
fit
i. Закончить, если наилучшая ошибка в предыдущей итерации (например,(-1)) равна (в пределах порога) наилучшей ошибке в текущей итерации (например, ()) (например, |()-(-1))|<2).
[0185] Добавленное условие окончания не позволяет алгоритму продолжать поиск при дополнительных итерациях, если выясняется, что они уже не влияют на снижение порога ошибки. Было установлено, что добавление этого условия не вносит сколько-нибудь заметных визуальных артефактов после применения функции обратного восстановления формы к изображению.
Построение LUT обратного восстановления формы
[0186] Обратная LUT позволяет декодеру осуществлять обратное отображение, то есть отображать входные восстановленные по форме (SDR) значения в исходные значения HDR. Поскольку множественные значения HDR могут отображаться в единственное значение SDR, согласно варианту осуществления, без ограничения, выбирается средне значение HDR. В таблице 4 представлен псевдокод быстрого построения LUT обратного восстановления формы.
[0187] Таблица 4 - построение LUT обратного восстановления формы
// пусть HDR_to_SDR прямая LUT, преобразующая HDR в SDR.// инициализировать массив гистограммыfor (i= 0; i < SDR<sub>max</sub>; i++) hist[i]=0; // SDR<sub>max </sub>- максимальная интенсивность SDR// инициализировать обратную LUTfor (i= 0; i < SDR<sub>max</sub>; i++) SDR_to_HDR[i]=0;// сформировать гистограмму и сводную таблицуfor (k=0; k < HDR<sub>max</sub> ; k++){sdr=HDR_to_SDR[k];hist[sdr]++;SDR_to_HDR[sdr] += k;}// использовать гистограмму для обновления обратной LUTfor (sdr=0; sdr < SDR<sub>max</sub>;<sub></sub>sdr++){SDR_to_HDR[sdr]=SDR_to_HDR[sdr]/hist[sdr]; // использовать среднее значение}
8. Механизмы реализации - обзор оборудования
[0188] Согласно одному варианту осуществления, описанные здесь методы реализуются одним или более вычислительными устройствами специального назначения. Вычислительные устройства специального назначения могут быть аппаратно реализованными для осуществления методов или могут включать в себя цифровые электронные устройства, например, одну или более специализированных интегральных схем (ASIC) или вентильные матрицы, программируемые пользователем (FPGA), которые на постоянной основе запрограммированы для осуществления методов, или могут включать в себя один или более аппаратных процессоров общего назначения, запрограммированных для осуществления методов в соответствии с программными инструкциями в программно-аппаратном обеспечении, памяти, другом хранилище или комбинации. Такие вычислительные устройства специального назначения могут также объединять заказную аппаратно реализованную логику, ASIC, или FPGA с заказными программами для осуществления методов. Вычислительные устройства специального назначения могут представлять собой настольные компьютерные системы, портативные компьютерные системы, карманные устройства, сетевые устройства или любое другое устройство, которое включает в себя аппаратную и/или программную логику для реализации методов.
[0189] Например, на фиг. 6 показана блок-схема, которая демонстрирует компьютерную систему 600, на которой можно реализовать иллюстративный вариант осуществления изобретения. Компьютерная система 600 включает в себя шину 602 или другой механизм связи для передачи информации, и аппаратный процессор 604, соединенный с шиной 602 для обработки информации. Аппаратный процессор 604 может представлять собой, например, микропроцессор общего назначения.
[0190] Компьютерная система 600 также включает в себя основную память 606, например, оперативную память (RAM) или другое динамическое запоминающее устройство, подключенное к шине 602 для хранения информации и инструкций, подлежащих выполнению процессором 604. Основная память 606 также может использоваться для хранения временных переменных или другой промежуточной информации в ходе выполнения инструкций, подлежащих выполнению процессором 604. Такие инструкции, хранящиеся на некратковременных носителях данных, доступных процессору 604, превращают компьютерную систему 600 в устройство специального назначения, предназначенное для осуществления операций, указанных в инструкциях.
[0191] Компьютерная система 600 дополнительно включает в себя постоянную память (ROM) 608 или другое статическое запоминающее устройство, подключенное к шине 602 для хранения статической информации и инструкций для процессора 604. Запоминающее устройство 610, например, магнитный диск или оптический диск, обеспечено и подключено к шине 602 для хранения информации и инструкций.
[0192] Компьютерная система 600 может быть подключена через шину 602 к дисплею 612, например, жидкокристаллическому дисплею, для отображения информации пользователю компьютера. Устройство 614 ввода, включающее в себя буквенно-числовые и другие клавиши, подключено к шине 602 для передачи информации и введенных команд на процессор 604. Другим типом устройства пользовательского ввода является средство 616 управления курсором, например, мышь, шаровой манипулятор или клавиши направления для передачи информации направления и введенные команды на процессор 604 и для управления движением курсора на дисплее 612. Это устройство ввода обычно имеет две степени свободы по двум осям, первой оси (например, x) и второй оси (например, y), что позволяет устройству указывать позиции в плоскости.
[0193] Компьютерная система 600 может осуществлять описанные здесь методы с использованием специализированной аппаратно реализованной логики, одного или более ASIC или FPGA, программно-аппаратного обеспечения и/или программной логики, которые совместно с компьютерной системой заставляет или программирует компьютерную систему 600 быть устройством специального назначения. Согласно одному варианту осуществления, упомянутые здесь методы осуществляются компьютерной системой 600, когда процессор 604 выполняет одну или более последовательностей из одной или более инструкций, содержащихся в основной памяти 606. Такие инструкции могут считываться в основную память 606 из другого носителя данных, например, запоминающее устройство 610. Выполнение последовательностей инструкций, содержащихся в основной памяти 606, приводит к тому, что процессор 604 осуществляет описанные здесь этапы процесса. В альтернативных вариантах осуществления, аппаратно реализованная схема может использоваться вместо программных инструкций или совместно с ними.
[0194] Используемый здесь термин ʺносители данныхʺ означает любые некратковременные носители, где хранятся данные и/или инструкции, которые предписывают машине действовать определенным образом. Такие носители данных могут содержать энергонезависимые носители и/или энергозависимые носители. Энергонезависимые носители включают в себя, например, оптические или магнитные диски, например, запоминающее устройство 610. Энергозависимые носители включают в себя динамическую память, например, основную память 606. Общие формы носителей данных включают в себя, например, флоппи-диск, гибкий диск, жесткий диск, твердотельный привод, магнитную ленту или любой другой магнитный носитель данных, CD-ROM, любой другой оптический носитель данных, любой физический носитель с шаблонами отверстий, RAM, PROM и EPROM, FLASH-EPROM, NVRAM, любую другую микросхему или картридж памяти.
[0195] Носители данных отличаются от носителей передачи, но могут использоваться совместно с ними. Носители передачи участвуют в переносе информации между носителями данных. Например, носители передачи включает в себя коаксиальные кабели, медные провода и оптоволоконные кабели, в том числе провода, образующие шину 602. Носители передачи также могут принимать форму акустических или световых волн, например, генерируемых в ходе радио- и инфракрасной передачи данных.
[0196] Носители различных видов могут участвовать в переносе одной или более последовательностей из одной или более инструкций на процессор 604 для выполнения. Например, инструкции могут первоначально переноситься на магнитном диске или твердотельном приводе удаленного компьютера. Удаленный компьютер может загружать инструкции в свою динамическую память и отправлять инструкции по телефонной линии с использованием модема. Модем, локальный к компьютерной системе 600, может принимать данные по телефонной линии и использовать инфракрасный передатчик для преобразования данных в инфракрасный сигнал. Инфракрасный детектор может принимать данные, переносимые в инфракрасном сигнале, и надлежащая схема может размещать данные на шине 602. Шина 602 переносит данные в основную память 606, откуда процессор 604 извлекает и выполняет инструкции. Инструкции, принятые основной памятью 606, могут, в необязательном порядке, сохраняться в запоминающем устройства 610 до или после выполнения процессором 604.
[0197] Компьютерная система 600 также включает в себя интерфейс 618 связи, подключенный к шине 602. Интерфейс 618 связи обеспечивает двустороннюю передачу данных по сетевой линии 620 связи, которая подключена к локальной сети 622. Например, интерфейс 618 связи может представлять собой карту цифровой сети с комплексными услугами (ISDN), кабельный модем, спутниковый модем или модем для обеспечения соединения с возможностью передачи данных с телефонной линией соответствующего типа. В порядке другого примера, интерфейс 618 связи может представлять собой карту локальной сети (LAN) для обеспечения соединения с возможностью передачи данных с совместимой LAN. Также можно реализовать беспроводные линии связи. В любой подобной реализации, интерфейс 618 связи отправляет и принимает электрические, электромагнитные или оптические сигналы, которые несут цифровые потоки данных, представляющие различные типы информации.
[0198] Сетевая линия 620 связи обычно обеспечивает передачу данных через одну или более сетей на другие устройства данных. Например, сетевая линия 620 связи могут обеспечивать соединение по локальной сети 622 с главным компьютером 624 или с оборудованием данных, находящимся в распоряжении поставщика 626 услуг интернета (ISP). ISP 626, в свою очередь, предоставляет услуги передачи данных через всемирную сеть пакетной передачи данных, в настоящее время обычно именуемую ʺинтернетʺ 628. Локальная сеть 622 и интернет 628 используют электрические, электромагнитные или оптические сигналы, которые несут цифровые потоки данных. Сигналы, через различные сети, и сигналы, распространяющиеся по сетевой линии 620 связи и через интерфейс 618 связи, которые переносят цифровые данные на компьютерную систему 600 и от нее, являются иллюстративными формами носителей передачи.
[0199] Компьютерная система 600 может отправлять сообщения и принимать данные, в том числе, программный код, через сеть(и), сетевую линию 620 связи и интерфейс 618 связи. В примере интернета, сервер 630 может передавать запрашиваемый код для прикладной программы через интернет 628, ISP 626, локальную сеть 622 и интерфейс 618 связи.
[0200] Принятый код может выполняться процессором 604 после его приема и/или сохраняться в запоминающем устройстве 610 или другом энергонезависимом хранилище для дальнейшего выполнения.
9. Эквиваленты, расширения, альтернативы и смешанные
[0201] В вышеприведенном описании изобретения, иллюстративные варианты осуществления изобретения были описаны со ссылкой на многочисленные конкретные детали, которые могут варьироваться от реализации к реализации. Таким образом, единственным и исключительным признаком того, что представляет собой изобретение, и того, что заявители считают изобретением, является формула изобретения, проистекающая из данной заявки, в конкретной форме, в которой представлена формула изобретения, включая любые последующие исправления. Любые в явном виде приведенные здесь определения терминов, содержащихся в описании изобретения, должны охватывать значение терминов, используемых в формуле изобретения. Поэтому никакие ограничения, элементы, свойства, признаки, преимущества или атрибуты, явно не упомянутые в формуле изобретения, никоим образом не должны ограничивать объем формулы изобретения. Соответственно, описание изобретения и чертежи следует рассматривать в иллюстративном, а не в ограничительном смысле.