Конструктивное исполнение данного изобретения относится к кодированию или декодированию графического объекта/видео и, в частности, к кодеру изображения и декодеру изображения, а также способу получения кодированных видеоданных и способа декодирования видеоданных.
Человеческий глаз может за раз аккомодировать яркость в диапазоне около 100000:1 и способен различить около 10 000 цветов при данной яркости. Для сравнения, типовой компьютерный монитор дает диапазон яркостей менее 100:1 и покрывает около половины видимой цветовой гаммы. Несмотря на эту разницу, большинство форматов цифрового изображения привязаны к возможностям современных дисплеев, а не к характеристикам человеческого зрения.
В последнее время появился повышенный интерес к изображениям большого динамического диапазона (БДЦ) как зафиксированных, так и синтезированных, что позволяет проводить расширенную обработку и использовать способы отображения высокой точности.
БДЦ изображения хранят изображения, относящиеся к визуализируемому трехмерному пространству, нежели отображают эти изображения (Кравчук, Г., Мишковски К. и Сидел Н.-Р. 2005. «Перцепционные эффекты при сопоставлении градации цветовых оттенков в реальном времени.», В SCCG'05 «Труды 21 весенней конференции по компьютерной графике, 195.202»), эти изображения могут покрывать динамический диапазон от тусклого света звезд (10-6 кандел/м2) до яркого солнечного света (108 кандел/м2). Глаза одновременно могут воспринять динамический диапазон в пять порядков величины, что составляет 100000:1. Чтобы вместить такой высокий динамический диапазон, большинство применяемых БДЦ форматов изображения, например открытый формат изображения EXR, хранят изображения в структуре из трех элементов с плавающими числами точек на пиксель.
Метод трансформации LogLuv преобразует пиксели с плавающими точками в целые пиксели (например, Ларсон Г.В. «Преодоление ограничений цветового диапазона и динамического диапазона в цифровых изображениях. Сборник шестой конференции по цветному изображению, ноябрь 1998, Н. Адами, М. Окуда «Эффективное отображение цветового пространства для компрессии БДЦ изображений, основанный на волнах малой длительности», Международная конференция по анализу и обработке изображений, Модена, 2007, Д. Спрингер, А. Кауп «Компрессия изображений с большими затуханиями плавающей точки большого динамического диапазона JPEG2000», Международная конференция по анализу и обработке изображения, Модена, 2007). Эта схема начинает работать от преобразования плавающей точки значений RGB во внутреннее независимое цветовое пространство XYZ. Затем цветовое пространство XYZ преобразуется в цветовое пространство LogLuv. Для яркостного канала используется преобразование с протоколированием операций. Для каналов цвета используется отображение по CIEuv.
Задачей настоящего изобретения является разработка улучшенной концепции кодирования для изображения или видео, позволяющее улучшить качество изображения и/или уменьшить объем данных кодированного изображения.
Это достигается использованием кодера изображения, описанным в п.1, декодера изображения, описанном в п.7, способом получения данных кодированного изображения по п.11 или способом декодирования данных изображения по п.12.
Данное изобретение состоит из кодера изображения, имеющего определитель предельных значений, преобразователь плавающая точка/целое число и сам кодер. Определитель предельных значений определяет минимальные и максимальные значения величины каждого пикселя изображения с плавающей точкой в части изображения, целого изображения или группы изображений. Далее, преобразователь плавающая точка/целое число предназначен для преобразования данных каждого пикселя изображения с плавающей точкой в данные целого числа. Каждое целое значение изображения лежит в стандартном диапазоне целых величин изображения. Измеренная минимальная величина изображения с плавающей точкой преобразуется в минимальное значение целого числа стандартного диапазона, а обнаруженная максимальная величина изображения с плавающей точкой преобразуется в максимальное значение целого числа изображения стандартного диапазона. Дополнительно, кодер сконструирован так, что он кодирует величины каждого пикселя целого изображения для получения и передачи кодированных данных части изображения, целого изображения или группы изображений.
Варианты конструктивного исполнения по данному изобретению базируются на основной идее, что преобразование плавающая точка/целое число адаптировано к распределению значений в пикселях изображения с плавающими точками в части изображения, целого изображения или группы изображений. Другими словами диапазон значений плавающей точки преобразовывается в диапазон значений целых чисел, которые могут быть динамично адаптированы к диапазону значений с плавающей точкой. При этом может быть достигнуто лучшее разрешение, если значения величин с плавающей точкой лежат в узком диапазоне значений плавающей точки по сравнению с концепцией, использующей статическое распределение. При повышении разрешения в конверсии плавающая точка/целое число качество изображения в узком диапазоне распределения значений плавающей точки может быть значительно улучшено.
Далее, может потребоваться уменьшенное количество данных изображения для получения повышенной разрешающей способности изображений с узким распределением значений плавающей точки по сравнению с концепцией, использующей статическое распределение, т.к. эти известные способы должны будут обеспечить высокое разрешение для всех допустимых величин плавающих точек, что значительно увеличит необходимый объем данных изображения.
Дальнейший вариант использования данного изобретения дает декодер, состоящий из декодера и преобразователя целое число/плавающая точка. Декодер предназначен для декодирования принятых данных кодированного изображения и получения значения для каждого пикселя целого изображения части изображения, целого изображения или группы изображений. Преобразователь целое число/плавающая точка предназначен для преобразования целого значения каждого пикселя изображения в значение величины изображения с плавающей точкой, выполняемого на основании параметра преобразования, при котором каждое значение изображения с плавающей точкой лежит в диапазоне величин изображения с плавающей точкой, а диапазон величин плавающей точки изображения зависит от параметра преобразования.
Декодер изображения основывается на той же главной идее, что была описана для кодера. Диапазон целых значений изображения адаптирован к диапазону значений изображения с плавающей точкой исходного изображения. Поэтому параметр преобразования включен в данные кодированного изображения для поддержания динамического соотношения между диапазоном целых значений изображения и диапазоном значений изображения с плавающей точкой. Лучшего разрешения можно достичь, если значения плавающей точки будут распределены только в узком диапазоне значений плавающей точки по сравнению с концепцией, использующей статическое распределение. Преобразование плавающая точка/целое число в узком диапазоне распределения значений плавающей точки может значительно улучшить качество изображения при повышении разрешения.
В некоторых вариантах использования изобретения значения величин каждого пикселя изображения с плавающей точкой и значения целых величин каждого пикселя также характеризуют значение яркости каждого пикселя. Часто части изображения, целое изображение или группа изображений содержат пиксели со значениями яркости, расположенными в узком диапазоне по сравнению с диапазоном возможных значений яркости. Поэтому адаптация диапазона целых значений к диапазону значений яркости плавающей точки может значительно улучшить разрешение, если объем данных изображения не увеличен.
Некоторые варианты использования данного изобретения относятся к определению логарифмического значения величины каждого пикселя плавающей точки и таким образом значения плавающих точек распределены логарифмически по диапазону значений целых величин. При логарифмическом распределении можно считать человеческое зрение более верным.
Настоящее изобретение будет описано в деталях со ссылкой на прилагаемые чертежи, на которых:
Фиг.1 - блок-схема кодера изображения;
Фиг.2 - блок-схема кодера изображения;
Фиг.3 - блок-схема декодера изображения;
Фиг.4 - блок-схема декодера изображения;
Фиг.5 - блок-схема кодера изображения и декодера изображения;
Фиг.6а - схематическая иллюстрация гистограммы яркости изображения после неадаптированного преобразования;
Фиг.6b - схематическая иллюстрация гистограммы яркости изображения после адаптированного преобразования;
Фиг.7 - блок-схема способа получения данных кодированного изображения; и Фиг.8 блок-схема способа декодирования данных изображения.
При дальнейшем описании будут частично использованы эти же ссылки для объектов и функциональных узлов, имеющих такие же или сходные функциональные характеристики, и описания со ссылками на фиг. будут применяться и к другим фиг., чтобы исключить многословие в описании вариантов исполнения изобретения.
Фиг.1 дает блок-схему кодера изображения 100 по варианту выполнения данного изобретения. Кодер изображения 100 состоит из определителя предельных значений 110, преобразователя 120 плавающая точка/целое число и кодера 130. Определитель предельных значений 110 подключен к преобразователю 120 плавающая точка/целое число, а этот преобразователь 120 подключен к кодеру 130. Определитель предельных величин ПО определяет минимальное 112 и максимальное 114 значения каждого пикселя изображения с плавающей точкой 102 части изображения, целого изображения или группы изображений. Преобразователь плавающая точка/целое число 120 преобразует каждый пиксель значения изображения с плавающей точкой 102 в целое значение изображения 122, где каждое целое значение изображения 122 лежит в стандартном диапазоне значений целого изображения. Найденный минимальный уровень значений плавающей точки 112 преобразовывается в минимальное целое значение изображения стандартного диапазона величин целого изображения и найденное максимальное значение плавающей точки 114 преобразовывается в максимальное значение целого изображения стандартного диапазона величин целого изображения. Кодер 130 кодирует значения каждого пикселя целого изображения 122 для получения и выдачи кодированных данных изображения 132 части изображения, целого изображения или группы изображений.
Минимальное значение 112 и максимальное значение 114 величины изображения с плавающей точкой определяются в диапазоне величин плавающей точки. Значения всех пикселей изображения с плавающей точкой для части изображения, целого изображения или группы изображений лежат в этом диапазоне значений изображения с плавающей точкой. Этот диапазон значений плавающей точки преобразуется в диапазон целых значений изображения путем адресации минимальных значений плавающей точки 112 в стандартный диапазон минимальных целых значений изображения. Таким образом изменяемый диапазон величин изображения с плавающей точкой может быть преобразован в постоянный стандартный диапазон целых значений части изображения, целого изображения или группы изображений.
Например, стандартный диапазон целых значений изображения может изменяться от 0 до 255, от 0 до 1024, от 0 до 4096 и даже больше (начальная точка 0 не обязательна). Другими словами, целые значения изображения, лежащие в стандартном диапазоне целых величин изображения, и могут быть, например, 8 бит, 9 бит, 10 бит, 12 бит или 14 бит (и даже выше) целых значений.
Используя описанную идею, можно получить улучшенное разрешение. Преобразование плавающая точка/целое число в узком диапазоне распределения значений плавающей точки может значительно улучшить качество изображения при повышении разрешения.
Уменьшенный объем данных изображения может быть необходим для получения повышенного разрешения в изображениях с узким распределением значений плавающей точки по сравнению с идеей использования статического преобразования, т.к. эти известные способы будут должны выдавать высокое разрешение для всего разрешенного диапазона величин плавающей точки изображения, что приведет к значительному увеличению необходимого объема данных изображения.
Например, возможные разрешенные величины плавающей точки изображения могут достигать от 0 до 10000, но пиксели изображения достигают величин плавающей точки изображения от 7000 до 8000. Затем определяются минимальное значение 7000 и максимальное значение 8000. Затем, в соответствии с описанной концепцией, только значения плавающей точки между 7000 и 8000 будут занесены в диапазон величин целого изображения, которые могут достигать значений от 0 до 1000. Известные методы зарегистрируют весь диапазон возможных значений плавающей точки изображения, т.е. от 0 до 10000 в диапазон целого значения изображения. Поэтому в данном случае полученное разрешение будет в десять раз выше, чем разрешение, полученное известными методами. Для получения такого же разрешения при использовании статического преобразования потребуется в десять раз больший диапазон величин целого значения изображения и увеличенный объем данных изображения.
Значение плавающей точки изображения может быть любым параметром цветового пространства плавающей точки, например параметр в цветовом пространстве RGB (красный, зеленый, голубой), параметр в цветовом пространстве CMYK (бирюзовый, пурпурный, желтый, ключевой), параметр в цветовом пространстве CIE-XYZ (CIE - международная комиссия по освещению) или параметр в цветовом пространстве CIE-Luv.
Целое значение плавающей точки может быть любым целым параметром цветового пространства. Например, целое значение изображения может быть целым параметром цветового пространства, представленного также значением плавающей точки изображения.
Кодер 130 может быть, например, хаотичным кодером, дифференциальным кодером, MPEG-кодером Н.262 или Н.264-кодером.
Определитель предельных значений ПО, преобразователь 120 плавающая точка/целое число и кодер 130 могут быть отдельными узлами, частью цифрового процессора, микроконтроллером, компьютером или компьютерной программой, программным продуктом для работы компьютера или микроконтроллера.
Определитель предельных значений 110 может определять минимальное значение 112 и максимальное значение 114 для каждой части изображения, для каждого изображения в группе изображений или для каждой группы последовательности изображений или видео. В этом случае диапазон значений изображений плавающей точки может быть динамично адаптирован к диапазону значений целого изображения.
Для каждой части изображения, каждого изображения или для каждой группы изображений может быть оптимизировано разрешение для значений изображения плавающей точки. В видео изображения могут быть названы видеокадрами.
В некоторых вариантах исполнения данного изобретения, преобразователь 120 может вычислять, по крайней мере, один параметр преобразования для части изображения, целого изображения или группы изображений. Параметр трансформации может показывать связь между диапазоном значений изображений с плавающей точкой и диапазоном значений целого изображения. Поэтому параметр трансформации может быть вычислен на основании определенного минимального значения плавающей точки и определенного максимального значения плавающей точки. Затем значение изображения плавающей точки 102 для каждого пикселя части изображения, целого изображения или группы изображений может быть преобразовано, основываясь на параметре трансформации. Параметр трансформации может быть включен в данные кодированного изображения 132 для части изображения, целого изображения или группы изображений. В этом случае декодер изображения может использовать параметр трансформации в сочетании со значением каждого пикселя целого изображения для реконструкции изображения.
В соответствии с другим аспектом, преобразователь 120 может определять логарифмическую величину значения каждого пикселя изображения с плавающей точкой и преобразовывать логарифмическое значение изображения плавающей точки в целое значение изображения, чтобы значения изображения с плавающей точкой распределялись логарифмически по всему диапазону величин целого изображения. Для этого обнаруженная минимальная величина может быть минимальной положительной величиной изображения плавающей точки. Используя логарифмическую шкалу для распределения значений изображения с плавающей точкой в диапазоне значений целого изображения, можно принять во внимание человеческое зрение, чтобы полученное качество смогло улучшить человеческое восприятие.
Конечно, значение каждого пикселя изображения плавающей точки может быть преобразовано в величины целого изображения без определения логарифмических значений не логарифмическим способом.
В некоторых решениях по данному изобретению, величины каждого пикселя изображения с плавающей точкой дают и величину яркости каждого пикселя. Значение яркости каждого пикселя части изображения, целого изображения или группы изображений часто ограничено узким диапазоном величин, адаптация преобразования диапазона значений изображения с плавающей точкой в диапазон значений целого изображения при стандартных значениях яркости может привести к значительному улучшению показателя разрешения.
Кроме значений яркости изображения с плавающей точкой, каждый пиксель может иметь два значения цветности с плавающей точкой, например, определяемые цветовым пространством CIE-XYZ или цветовым пространством CIE-Luv.
Кроме того, кодер изображения может включать в себя преобразователь цветового пространства для преобразования параметров цветового пространства из одного цветового формата в параметры цветового пространства другого цветового формата.
Фиг.2 показывает блок-схему кодера изображения 200 в соответствии с данным изобретением. Кодер изображения 200 одинаков с кодером, показанным на фиг.1, но дополнительно содержит преобразователь цветового пространства 210. Преобразователь цветового пространства 210 соединен с определителем предельных значений 110 и с преобразователем плавающая точка/целое изображение 120. Преобразователь цветового пространства 210 может трансформировать параметры цветового пространства 202 любого цветового формата в параметры цветового пространства любого другого цветового формата.
Например, преобразователь цветового пространства 210 может трансформировать аппаратно-зависимые данные изображения с плавающей точкой 202 (параметры RGB цветового пространства или параметры CMYK цветового пространства) в аппаратно-независимые данные изображения с плавающей точкой 102 (параметры CIE-XYZ цветового пространства или параметры CIE-Luv цветового пространства). В этом примере, аппаратно-зависимые данные изображения с плавающей точкой могут содержать данные каждого пикселя с тремя параметрами изображения с плавающей точкой и аппаратно-независимые данные изображения с плавающей точкой могут содержать данные о яркости изображения с плавающей точкой и два показателя цветности с плавающей точкой для каждого пикселя изображения. При этом может быть проведено адаптивное преобразование в соответствии с предложенной концепцией, например, для всех трех параметров цветового пространства или только для значений яркости изображения с плавающей точкой.
Преобразователь цветового пространства 210 передает параметры цветового пространства с плавающей точкой на определитель предельных значений 110 и на преобразователь 120 плавающая точка/целое число, таким образом может быть реализовано адаптивное преобразование плавающая точка/целое число или трансформация в соответствии с изложенной концепцией.
Фиг.3 показывает блок-схему декодера изображения 300 по данному изобретению. Декодер изображения 300 состоит из декодера 310, соединенного с преобразователем 320 целое число/плавающая точка. Декодер 310 декодирует принятые кодированные данные изображения 302 для получения значения каждого пикселя целого изображения 312 части изображения, целого изображения или группы изображений и получения параметра трансформации 314 части изображения, целого изображения или группы изображений. Далее, преобразователь 320 целое число/плавающая точка преобразовывает данные каждого пикселя целого изображения 312 в данные изображения с плавающей точкой 322, основываясь на параметре трансформации 314. Каждое значение величин изображения с плавающей точкой 322 лежит в диапазоне величин изображения с плавающей точкой, а диапазон величин для изображения с плавающей точкой зависит от параметра трансформации 314.
Преобразователь 320 целое число/плавающая точка преобразовывает диапазон значений целого изображения в диапазон значений изображения с плавающей точкой. Поскольку диапазон значений изображения с плавающей точкой зависит от параметра трансформации 314 и может меняться в разных частях изображения или группы изображений, то степень детализации преобразования может быть адаптирована к диапазону значений изображения с плавающей точкой, содержащемуся в части изображения, целом изображении или группе изображений. Таким образом, ограниченный диапазон значений целых изображений может быть использован более эффективно. Части изображения, целые изображения или группа изображений с узким диапазоном значений изображений с плавающей точкой могут достигать высокой степени детализации при относительно небольшом объеме данных изображения.
Как уже было показано для кодера изображения, величина значений каждого пикселя целого изображения может быть параметром цветового пространства (параметр яркости в цветовом пространстве CIE-Luv) и величина значений изображений с плавающей точкой может быть соответствующим параметром цветового пространства с плавающей точкой (например, Y компонент в CIE-XYZ цветовом пространстве).
Параметр трансформации 314 определяет соотношение между диапазоном значений пикселей целого изображения и диапазоном значений пикселей изображения с плавающей точкой. Параметр трансформации 314 может быть определен, например, кодером изображения, описанным выше.
Полученные данные кодированного изображения 302 содержат более одного параметра трансформации 314 для преобразования значений целого изображения 321 в значения изображения с плавающей точкой 322.
Декодер 310 и преобразователь 320 целое число/плавающая точка могут быть независимыми узлами, частью цифрового процессора, компьютером или микроконтроллером, компьютерной программой или программным обеспечением для эксплуатации компьютера или микроконтроллера.
Как описано про кодер изображения, значения целого изображения могут быть логарифмическими величинами. Они могут быть обработаны преобразователем 320. Другими словами преобразователь 320 может преобразовывать величины значений каждого пикселя целого изображения в значения изображения с плавающей точкой, обрабатывая значения целого изображения по экспоненте.
Как сказано в описании кодера изображения, значения каждого пикселя целого изображения могут иметь, например, значения яркости каждого пикселя. В этом случае преобразователь 320 может преобразовывать значения величины яркости каждого пикселя целого изображения в значения величины яркости изображения с плавающей точкой.
С другой стороны, данные изображения 302 могут содержать более одной характеристики целого изображения в каждом пикселе. Например, данные изображения 302 могут иметь в каждом пикселе три показателя целого изображения, которые содержат три параметра цветового пространства (например, CIE-Luv цветовое пространство). При преобразовании значений целого изображения в значения изображения с плавающей точкой, по крайней мере, преобразование одного из этих цветовых параметров целого изображения зависит от параметров трансформации и таким образом, диапазон значений изображения с плавающей точкой зависит от параметров трансформации. Например, имея значения изображения, показывающие параметры цветового пространства CIE-Luv, параметр яркости может быть преобразован в адаптивной форме в соответствии с описанным принципом, тогда как параметры цветности (u и v) могут быть преобразованы не адаптивным путем.
Кроме того, декодер изображения может включать в себя преобразователь цветового пространства для трансформации параметров цветового пространства (например, значений изображения с плавающей точкой) одного вида в параметры цветового пространства другого вида.
Фиг.4 показывает блок-схему декодера изображения 400, созданного по данному изобретению. Декодер изображения 400 одинаков с декодером изображения, показанным на фиг.3, но дополнительно включает в себя преобразователь цветового пространства 410. Преобразователь 320 целое число/плавающая точка соединен с этим преобразователем цветового пространства 410. Преобразователь цветового пространства 410 может преобразовывать параметры цветового пространства 322 любого формата в параметры цветового пространства любого другого цветового пространства.
Например, преобразователь цветового пространства 410 может преобразовывать данные аппаратно-независимого изображения с плавающей точкой (цветовые параметры пространств CIE-Luv или CIE-XYZ) в аппаратно-зависимые данные изображения с плавающей точкой (цветовые параметры RGB цветового пространства или CMYK цветового пространства). Данные аппаратно-независимого изображения с плавающей точкой могут содержать значения яркости изображения с плавающей точкой и два значения цветности изображения с плавающей точкой для каждого пикселя, что преобразовывается в три параметра плавающей точки для каждого пикселя аппаратно-зависимых данных изображения с плавающей точкой.
Фиг.5 показывает блок-схему кодера изображения 550 и соответствующего декодера изображения 550, выполненных по данному изобретению. В этом случае кодер изображения 550 содержит преобразователь LogLuv 510 соединенный с Н.264 кодером 130. Преобразователь LogLuv 510 имеет определитель значений, преобразователь плавающая точка/целое число и преобразователь цветового пространства.
LogLuv преобразователь 510 получает, в данном примере, данные изображения большого динамического диапазона 202. Данные большого динамического диапазона 202 могут быть образованы в светимости HDR формата, портативного плавающего файла растрового изображения, TIFF формата или открытого EXR формата (например, RGB 4:4:4). В дополнение к данным целого изображения 122, преобразователь LogLuv 510 может давать три параметра преобразования 314 (a, b, c). Параметры преобразования 314 могут кодироваться вместе с данными 122 целого изображения или могут передаваться без кодирования вместе кодированными данными изображения 132.
Декодер изображения 550 содержит Н.264 декодер 310, соединенный с обратным преобразователем LogLuv. Обратный преобразователь LogLuv имеет преобразователь 320 целое число/плавающая точка и преобразователь 410 цветового пространства. Обратный преобразователь LogLuv получает декодированные данные изображения с плавающей точкой 312 и три параметра трансформации 314 (a, b, c). Основываясь на этих декодированных данных, обратный преобразователь LogLuv дает, в этом случае, три аппаратно-зависимых параметра плавающей точки для каждого пикселя, имеющих данные изображения большого динамического диапазона. Данные изображения большого динамического диапазона могут быть получены в том же формате, что и данные на входе кодера 500(RGB 4:4:4), или в другом упомянутом формате.
Следующий более детальный пример преобразования, который проводится кодером изображения или декодером изображения в соответствии с изложенной концепцией, объяснен на схеме, показанной на фиг.5.
В этом примере входные данные представлены как RGB данные. Эти RGB значения плавающей точки могут преобразовываться в аппаратно-независимое цветовое пространство XYZ. Затем определяются минимальные и максимальные значения яркости, имеющиеся в группах видеокадров, видеокадрах или части видеокадра. Эти значения затем используются для преобразования значений яркости плавающей точки в значения целых чисел по следующим уравнениям.
Для кодирования данных изображения, которое также называют прямое преобразование, используется следующее уравнение:
Декодирование данных изображения, также называемое обратное преобразование, может быть описано следующим уравнением:
Для кодирования и декодирования полученных данных могут использоваться следующие параметры трансформации:
В этих уравнениях R, G и В являются параметрами цветового пространства аппаратно-зависимого цветового пространства, X и Z являются параметрами цветового пространства аппаратно-независимого цветового пространства, Y является значением яркости изображения с плавающей точкой, а x и y являются двумя значениями цветности изображения с плавающей точкой аппаратно-независимого цветового пространства. Далее, L является значением яркости целого изображения, a, b и c - параметры преобразования, nL - количество бит на единицу для яркостного канала (число бит на пикселей значений яркости целого изображения), ue и ve - два значения цветности целого изображения, u и v - два значения цветности изображения с плавающей точкой и nc - число бит на единицу для каналов цветности (число бит на пиксель значения цветности для целого изображения).
Требуемое количество бит на единицу для яркостного канала nL может быть, например, 12 или 14 бит, тогда как для каналов цветности nC может быть достаточно 8 бит (что выражается постоянной с для 410).
В этом примере плавающая точка БДД изображения или видеокадров может быть трансформирована в целые изображения или видеокадры, которые затем кодируются с использованием традиционного видеокодера. Параметры трансформации (a, b, c) могут быть переданы как дополнительная информация, чтобы реконструировать БДД изображения с плавающей точкой или видеокадры после декодирования. Эти параметры могут быть выбраны для частей видеокадров, целого видеокадра или группы видеокадров. Параметр С может, например, быть установлен для фиксированного значения (например 410, что дает 8 бит на импульс цветности). В этом случае С не нужно посылать с битовым потоком (данные кодированного изображения).
Две следующие фигуры (Фиг.6а, 6b) показывают диапазон целых значений видеокадров БДД после проведения неадаптированной и адаптированной логарифмической трансформации (по выбранной концепции). Фиг.6а дает пример гистограммы яркости, использующей известную неадаптивную трансформацию. Х-ось показывает уровень яркости и у-ось показывает число пикселей, составляющих соответствующий уровень яркости. Соответственно, фиг.6b дает пример гистограммы яркости, использующей адаптивную трансформацию. Как показано на фиг.6а, неадаптированная логарифмическая трансформация не использует все возможные уровни яркости. С другой стороны, фиг.6b показывает, что адаптированный способ использует большие или все уровни яркости изображения.
В этом примере для каналов цветности предложено CIEuv изображение, такое же, как неадаптированный метод трансформации. Однако также могут быть использованы другие методы цветовой трансформации. Каналы цветности передаются/могут передаваться с меньшим числом бит на импульс, чем канал яркости. Кроме того, может использоваться взятие цветовых подвыборок в виде традиционного 4:2:0 квантования.
Далее, в этом примере используется цветовое пространство sRGB. Но описанный принцип применим к другим цветовым пространствам, например цветовое пространство adobe RGB.
Некоторые конструктивные решения по данному изобретению относятся к адаптивному LogLuv преобразованию для видео/фотокомпрессии изображения большого динамического диапазона (БДД).
Описанная концепция, в общем виде, относится к кодированию/декодированию фото/видеоизображений. Она преобразовывает пиксельные значения плавающей точки в целые числа, принимая во внимание динамический диапазон целого или части видеокадра (кадра). Существующие видеокодеры, как, например, Н.264, воспринимают пиксели как целые значения. Это преобразование может быть выполнено на существующих кодерах/декодерах, например кадры или последовательность видеокадров большого динамического диапазона, очень эффективно, при этом могут обрабатывать другие форматы видео и изображений.
Другими словами, последовательность видеокадров большого динамического диапазона с плавающей точкой может быть преобразована в целые изображения последовательности видеокадров, которые затем кодируются с использованием традиционных видеокодеров. Предложенное преобразование плавающая точка/целое число является адаптивным по отношения к динамическому диапазону значений яркости изображений или последовательности видеокадров большого динамического диапазона.
Сравнивая с известными способами, можно сказать, что предложенная схема может дать значительно лучшие результаты для отдельных видеокадров/изображений, не имеющих полного динамического диапазона.
Фиг.7 показывает блок-схему способа 700 для получения данных кодирования изображения по предложенному изобретению. Способ 700 включает в себя определение минимального значения 710 и максимального значения величины каждого пикселя изображения с плавающей точкой части изображения, целого изображения или группы изображений. Далее, способ 700 включает в себя преобразование 720 данных каждого пикселя изображения с плавающей точкой в данные целого изображения. Обнаруженное минимальное значение плавающей точки преобразовывается в минимальное значение целого изображения стандартного динамического диапазона для изображения целых чисел. Дополнительно, способ 700 включает в себя кодирование 730 каждого пикселя значений целого изображения для получения кодированных данных части изображения, целого изображения или группы изображений и получения данных 740 кодированного изображения.
Дополнительно, способ 700 может включать дополнительные необязательные шаги, которые были описаны в разделе кодеров изображения.
Фиг.8 показывает блок-схему способа 800 для декодирования данных изображения по способу, описанному в изобретении. Способ 800 включает декодирование 810 полученных кодированных данных для получения значений каждого пикселя целого изображения части изображения, целого изображения или группы изображений и получения параметра трансформации части изображения, целого изображения или группы изображений. Далее, способ 800 включает преобразование 820 каждого пикселя целого изображения в данные изображения с плавающей точкой, основанное на параметре преобразования. Каждое значение изображения с плавающей точкой лежит в диапазоне значений изображения с плавающей точкой. Диапазон значений изображения с плавающей точкой зависит от параметра трансформации.
Дополнительно, способ 800 может включать необязательные шаги, которые были описаны в разделе декодеров изображения.
Хотя некоторые вопросы описанной концепции были даны в контексте аппаратуры, очевидно, что эти вопросы также представляют описание соответствующего способа, когда блок или аппарат соответствует этапу способа или являются характеристикой этапа способа. Аналогично, вопросы, описанные в контексте этапов способа, также представляют описание соответствующего блока или единицы оборудования или свойства соответствующей аппаратуры.
Предлагаемые кодированные данные изображения могут храниться на цифровом носителе или могут передаваться через передающие устройства, как, например, беспроводные передающие устройства или проводные среды, как Интернет.
В зависимости от требований использования конструктивное выполнение изобретения может быть использовано в аппаратуре или программном обеспечении. Использование изобретения может осуществляться с применением цифрового носителя информации, например гибкого диска, DVD, Blue-Ray, CD, ROM, PROM, EPROM, EEPROM или FLASH памяти, с электронным считыванием сигналов управления, хранящихся на них и совместимых (или способными совмещаться) с программируемыми компьютерными системами, способных выполнять соответствующий способ. Поэтому цифровой носитель должен быть читаем компьютером.
Некоторые конструкционные варианты исполнения данного изобретения используют носитель данных, содержащих электронно-считываемые сигналы управления, совместимые с программируемыми компьютерными системами, как пример, описанные здесь.
В общем случае, конструктивное выполнение настоящего изобретения может быть в виде компьютерного программного продукта с программным кодом, а программный код является запускающим для выполнения одного из способов, когда компьютерный программный продукт управляет компьютером. Программный код может, например, храниться на носителе, совместимом с машиной.
Другие конструктивные варианты включают в себя компьютерную программу для выполнения одного из способов, описанных здесь, хранимого на машиночитаемом носителе.
Другим словами, вариантами выполнения предложенного способа являются компьютер с программным кодом для выполнения одного из способов, описанных здесь, когда компьютерная программа управляет работой компьютера.
Дальнейшим вариантом исполнения данного изобретения является носитель информации (или цифровой хранитель информации, или машиночитаемый носитель) с записанной на нем компьютерной программой для исполнения одного из способов, описанных здесь.
Дальнейшим вариантом исполнением предложенного способа является поток данных или последовательность сигналов, представляющих компьютерную программу для выполнения одного из способов, описанных здесь. Поток данных или последовательность сигналов могут, например, быть сформированы для передачи через коммуникационное соединение, например Интернет.
Дальнейшее исполнение изобретения включает в себя средства обработки, например компьютер или программируемое логическое устройство в необходимой конфигурации или адаптированное для выполнения одного их способов, описанных здесь.
Дальнейшее использование изобретения включает в себя использование компьютера с установленной компьютерной программой для выполнения одного из способов, описанных здесь.
В некоторых вариантах программируемое логическое устройство (поле программируемой логической матрицы) может использоваться для выполнения некоторых или всех функций способов, описанных здесь. В общем виде, заявленные способы выполняются любыми аппаратами.
Описанные варианты изобретения даны только для иллюстрации принципов данного изобретения. Понимается, что модификации и варианты устройств, описанные здесь, будут очевидны для специалистов в данной области. С этой целью мы ограничиваемся только объемом патентной формулы, а не специфическими деталями описания и объяснений вариантов исполнения данного изобретения.
Изобретение относится к вычислительной технике. Технический результат заключается в повышении разрешающей способности значения яркости, получаемого в аппаратно-независимом цветовом пространстве. Кодер изображения включает преобразователь цветового пространства, предназначенный для преобразования аппаратно-зависимых данных изображения с плавающей точкой в аппаратно-независимые данные изображения с плавающей точкой; определитель предельных значений, предназначенный для определения минимального значения и максимального значения показателя яркости изображения с плавающей точкой каждого пикселя части изображения, изображения или группы изображений; преобразователь плавающая точка/целое число, предназначенный для преобразования значения яркости изображения с плавающей точкой каждого пикселя в целочисленное значение яркости изображения и кодер, предназначенный для кодирования целочисленного показателя изображения каждого пикселя для получения и передачи кодированных данных части изображения, изображения или группы изображений. 6 н. и 7 з.п. ф-лы, 9 ил.
1. Кодер изображения (100, 200, 500), включающий: преобразователь цветового пространства (210), предназначенный для преобразования аппаратно-зависимых данных изображения с плавающей точкой в аппаратно-независимые данные изображения с плавающей точкой, где аппаратно-зависимые данные изображения с плавающей точкой содержат значения трех параметров плавающей точки для каждого пикселя, а аппаратно-независимые данные плавающей точки содержат показатель яркости плавающей точки изображения (102) и показатели цветности плавающей точки изображения для каждого пикселя; определитель предельных значений (110), предназначенный для определения минимального значения (112) и максимального значения (114) показателя яркости изображения с плавающей точкой (102) каждого пикселя части изображения, изображения или группы изображений; преобразователь плавающая точка/целое число (120), предназначенный для преобразования значения яркости изображения с плавающей точкой (102) каждого пикселя в целочисленное значение яркости изображения, при этом каждый целочисленный показатель изображения лежит в расчетном диапазоне целочисленных показателей изображения, где определенное минимальное значение изображения с плавающей точкой (112) преобразуется в минимальное целочисленное значение изображения расчетного диапазона целочисленных показателей изображения и определенное максимальное значение изображения с плавающей точкой (114) преобразуется в максимальное целочисленное значение изображения расчетного диапазона целочисленных показателей изображения; при этом преобразователь плавающая точка/целое число (120) вычисляет, по меньшей мере, один параметр трансформации части изображения, изображения или группы изображений на основе определенного минимального значения с плавающей точкой (112) и определенное максимальное значение с плавающей точкой (114), причем значение с плавающей точкой (102) каждого пикселя части изображения, изображения или группы изображений преобразуется на основе параметра преобразования; и кодер (130), предназначенный для кодирования целочисленного показателя изображения (122) каждого пикселя для получения и передачи кодированных данных (132) части изображения, изображения или группы изображений, где параметр трансформации представлен вместе с кодированными данными (132) части изображения, изображения или группы изображений.
2. Кодер изображения по п. 1, где количество (nL) бит на пиксель целочисленного значения яркости изображения превышает количество (ne) бит на пиксель целочисленного показателя цветности изображения.
3. Кодер изображения по п. 1, в котором определитель предельных значений (110) предназначен для определения минимального значения (112) и максимального значения (114) для каждой части изображения, для каждого изображения из группы изображений или для каждой группы изображений в последовательности изображений.
4. Кодер изображения по п. 1, в котором преобразователь плавающая точка/целое число (120) предназначен для определения логарифмического значения с плавающей точкой (102) каждого пикселя изображения и выполнен с возможностью преобразования логарифмических значений изображения с плавающей точкой в целочисленные показатели изображения таким образом, что значения изображения с плавающей точкой распределяются логарифмически по диапазону целочисленных показателей изображения, при этом найденное минимальное значение (112) является минимальным положительным значением среди значений с плавающей точкой изображения.
5. Кодер изображения по п. 1, в котором преобразователь цветового пространства (210) предназначен для вычисления значения яркости изображения с плавающей точкой (Y) и двух значений цветности (х, у) каждого пикселя изображения на основе RGB-данных (202) каждого пикселя по следующему уравнению:
где R, G и В - параметры аппаратно-зависимого цветового пространства, X и Z - параметры аппаратно-независимого цветового пространства, Y - показатель яркости изображения с плавающей точкой (102) и х и у - два значения цветности изображения с плавающей точкой аппаратно-независимого цветового пространства; при этом преобразователь плавающая точка/целое число (120) предназначен для определения целочисленных значений яркости изображения (L, 122) для каждого пикселя по следующим уравнениям:
где L - целочисленное значение яркости изображения (122), а и b - параметры преобразования и nL - число бит на пиксель целочисленного значения яркости изображения; и предназначен для определения двух целочисленных значений цветности изображения для каждого пикселя на основе двух вычисленных значений цветности изображения с плавающей точкой в соответствии с уравнениями:
где ue и ve - два целочисленных значения цветности изображения, с - параметр трансформации, и nc - число бит на пиксель целочисленного значения цветности изображения; и в составе которого кодер (130) предназначен для кодирования целочисленного значения яркости изображения (L, 122) и двух целочисленных значений цветности изображения (ue, ve) каждого пикселя для получения и передачи кодированных данных (132) части изображения, изображения или группы изображений.
6. Декодер изображения (300, 400, 550), включающий: декодер (310), предназначенный для декодирования полученных кодированных аппаратно-независимых данных изображения (302) для получения целочисленных показателей изображения (312) для каждого пикселя части изображения, изображения или группы изображений и для получения параметра преобразования (314) части изображения, изображения или группы изображений, где целочисленные значения каждого пикселя изображения включают значение яркости и значение цветности каждого пикселя; преобразователь целого числа в плавающую точку (320), предназначенный для преобразования целочисленного значения яркости изображения (312) каждого пикселя в значение яркости изображения с плавающей точкой (322) на основе параметра преобразования (314), где каждое значение изображения с плавающей точкой (322) лежит в диапазоне значений изображения с плавающей точкой, где диапазон значений изображения с плавающей точкой зависит от параметра преобразования (314); и преобразователь цветового пространства (410), предназначенный для преобразования аппаратно-независимых данных изображения с плавающей точкой (322) в аппаратно-независимые данные изображения с плавающей точкой (412), при этом аппаратно-независимые данные изображения с плавающей точкой (322) содержат значение яркости изображения с плавающей точкой (322) и значения цветности изображения с плавающей точкой для каждого пикселя, а аппаратно-зависимые данные изображения с плавающей точкой (412) содержат значения трех параметров плавающей точки для каждого пикселя.
7. Декодер изображения по п 6, в котором число (nL) бит на пиксель целочисленного значения яркости изображения превышает число (ne) бит на пиксель целочисленного значения цветности изображения.
8. Декодер изображения по п. 6, в котором преобразователь плавающая точка/целое число (320) предназначен для определения значения с плавающей точкой для пикселя изображения на основе потенцирования, где экспонента базируется на соответствующем целочисленном значении пикселя изображения (312) и параметра преобразования (314) части изображения, изображения или группы изображений.
9. Декодер изображения по п. 6, в котором преобразователь целое число/плавающая точка (320) предназначен для определения значения яркости изображения с плавающей точкой (Y, 322) для каждого пикселя по следующим уравнениям:
где L - целочисленное значение яркости изображения (312), Y - значение яркости изображения с плавающей точкой (322), а и b - параметры преобразования (314) и nL - число бит на пиксель целочисленного значения яркости изображения; и предназначен для нахождения двух значений цветности изображения с плавающей точкой (х, у) для каждого пикселя на основе двух декодированных целочисленных значений цветности изображения (ue, ve) согласно уравнениям:
где ue и ve - два целочисленных значения цветности изображения, с - параметр трансформации, х и у - два значения цветности изображения с плавающей точкой аппаратно-независимого цветового пространства, u и v - два значения цветности изображения с плавающей точкой и nc- число бит на пиксель целочисленного значения цветности изображения; и в составе которого преобразователь цветового пространства (410) предназначен для вычисления аппаратно-зависимых RGB-данных каждого пикселя на основе значения яркости изображения с плавающей точкой (Y, 322) и двух значений цветности изображения с плавающей точкой (х, у) каждого пикселя согласно следующим уравнениям:
где R, G и В - параметры аппаратно-зависимого цветового пространства и X и Z - параметры аппаратно-независимого цветового пространства.
10. Способ (700) формирования кодированных данных изображения, включающий: преобразование аппаратно-зависимых данных изображения с плавающей точкой в аппаратно-независимые данные изображения с плавающей точкой, где аппаратно-зависимые данные изображения с плавающей точкой включают значения трех параметров плавающей точки для каждого пикселя, при этом аппаратно-независимые данные плавающей точки включают значение яркости изображения с плавающей точкой (102) и два показателя цветности изображения с плавающей точкой для каждого пикселя; определение (710) минимального значения и максимального значения яркости изображения с плавающей точкой каждого пикселя части изображения, изображения или группы изображений; вычисление по меньшей мере одного параметра преобразования для части изображения, изображения или группы изображений на основе определенного минимального значения с плавающей точкой и определенного максимального значения с плавающей точкой; преобразование (720) значения яркости изображения с плавающей точкой каждого пикселя в целочисленное значение яркости изображения, где каждый целочисленный показатель изображения лежит в заданном диапазоне целочисленных показателей изображения, причем определенное минимальное значение изображения с плавающей точкой преобразуют в минимальное целочисленное значение изображения в заданном диапазоне целочисленных показателей изображения, при этом определенное максимальное значение изображения с плавающей точкой преобразуют в максимальный целочисленный показатель изображения в заданном диапазоне целочисленных показателей изображения, при этом значение с плавающей точкой (102) каждого пикселя части изображения, изображения или группы изображений преобразуют на основе параметра преобразования; кодирование (730) целочисленного значения каждого пикселя изображения для получения кодированных данных части изображения, изображения или группы изображений; и формирование (740) кодированных данных изображения, где параметр трансформации содержит кодированные данные (132) части изображения, изображения или группы изображений.
11. Способ (800) декодирования данных изображения, включающий: декодирование (810) принятых кодированных аппаратно-независимых данных изображения с получением целочисленных показателей изображения для каждого пикселя части изображения, изображения или группы изображений и выведением параметра преобразования части изображения, изображения или группы изображений, где целочисленные значения каждого пикселя изображения включают значение яркости и значения цветности каждого пикселя; преобразование (820) целочисленного значения яркости изображения каждого пикселя в значение яркости изображения с плавающей точкой на основе параметра преобразования, где каждое значение изображения с плавающей точкой лежит в диапазоне значений изображения с плавающей точкой, причем диапазон значений изображения с плавающей точкой зависит от параметра преобразования; и преобразование аппаратно-независимых данных изображения с плавающей точкой (322) в аппаратно-независимые данные изображения с плавающей точкой (412), где аппаратно-независимые данные изображения с плавающей точкой (322) включают значение яркости изображения с плавающей точкой (322) и значения цветности изображения с плавающей точкой для каждого пикселя, при этом аппаратно-зависимые данные изображения с плавающей точкой (412) включают значения трех параметров плавающей точки для каждого пикселя.
12. Машиночитаемый носитель информации с сохраненной на нем компьютерной программой с кодом программы для осуществления способа по п. 10 при условии, что компьютерную программу выполняют на компьютере или микроконтроллере.
13. Машиночитаемый носитель информации с сохраненной на нем компьютерной программой с кодом программы для осуществления способа по п. 11 при условии, что компьютерную программу выполняют на компьютере или микроконтроллере.
R | |||
XU et al | |||
ЩИТОВОЙ ДЛЯ ВОДОЕМОВ ЗАТВОР | 1922 |
|
SU2000A1 |
Способ очистки нефти и нефтяных продуктов и уничтожения их флюоресценции | 1921 |
|
SU31A1 |
G | |||
W | |||
LARSON "LogLuv encoding for full gamut, high dynamic range images", опубл | |||
Способ очистки нефти и нефтяных продуктов и уничтожения их флюоресценции | 1921 |
|
SU31A1 |
Авторы
Даты
2015-12-20—Публикация
2010-12-30—Подача