ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящие варианты осуществления, в целом, относятся к способу, устройствам и компьютерной программе для кодирования пикселя входной видеопоследовательности.
УРОВЕНЬ ТЕХНИКИ
Высокий динамический диапазон (HDR) за последнюю пару лет стал весьма популярен в области телевидения и мультимедиа. На потребительском рынке появились экраны, способные отображать видеосигнал HDR. Было объявлено, что проигрыватели, воспроизводящие сигнал, поступающий через интернет (Over-The-Top (OTT)), например Netflix, способны доставлять конечному пользователю контент HDR. Органы стандартизации работают над формулированием требований к HDR. Например, согласно дорожной карте для цифрового телевизионного вещания (DVB), телевидение сверхвысокой четкости (UHDTV) фаза 2 будет включать в себя поддержку HDR. Экспертная группа по движущимся изображениям (MPEG) в настоящее время исследует возможности сжатия видеосигнала HDR.
Формирование изображения HDR представляет собой набор методов фотографирования, обеспечивающих расширенный динамический диапазон яркости по сравнению со стандартным формированием цифрового изображения. Динамический диапазон в цифровых камерах обычно измеряется в делениях диафрагмы, где увеличение диафрагмы на 1 деление удваивает количество света. Стандартный телевизор высокой четкости (HDTV) с жидкокристаллическим дисплеем (LCD), использующий стандартный динамический диапазон (SDR), может отображать до 10 делений диафрагмы. Согласно спецификации MPEG, HDR имеет динамический диапазон свыше 16 делений диафрагмы.
В ходе кодирования видеосигнала, также именуемого сжатием, яркостная компонента Y' и две цветностные компоненты Cb' и Cr' обычно обрабатываются независимо, поскольку, они, согласно стандарту, в ходе декодирования, также именуемого снятием сжатия, обрабатываются независимо. Однако, после декодирования, реконструированные яркостные и цветностные компоненты преобразуются в цветовую схему RGB (красный, зеленый, синий). Таким образом, если принимать во внимание, что после декодирования осуществляется преобразование в RGB, яркостные и цветностные компоненты больше не являются независимыми.
В результате, ошибка, например, в цветностной компоненте Cb' или Cr' в ходе кодирования будет приводить к ошибке в цветовых компонентах R, G и B. В частности, это может приводить к неверной яркости, к которой наши глаза наиболее чувствительны.
Таким образом, требуется усовершенствовать кодирование видеопоследовательностей.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Общей задачей является обеспечение улучшенного кодирования пикселей входной видеопоследовательности.
Эта и другие задачи решаются раскрытыми здесь вариантами осуществления.
Аспект вариантов осуществления относится к способу кодирования пикселя входной видеопоследовательности. Способ содержит кодирование значения второй цветовой компоненты и значения третьей цветовой компоненты пикселя в первом цветовом пространстве. Способ также содержит получение значения первой цветовой компоненты во втором цветовом пространстве для пикселя, причем второе цветовое пространство отличается от первого цветового пространства. Способ дополнительно содержит определение значения первой цветовой компоненты пикселя в первом цветовом пространстве на основании минимизации ошибки, вычисленной на основании разности между значением первой цветовой компоненты во втором цветовом пространстве и пробным значением цветовой компоненты во втором цветовом пространстве, причем пробное значение цветовой компоненты выводится на основании кодированного значения второй цветовой компоненты и значения кодированной третьей компоненты. Способ дополнительно содержит кодирование значения первой цветовой компоненты пикселя в первом цветовом пространстве.
Другой аспект вариантов осуществления относится к устройству для кодирования пикселя входной видеопоследовательности. Устройство выполнено с возможностью кодирования значения второй цветовой компоненты и значения третьей цветовой компоненты пикселя в первом цветовом пространстве. Устройство также выполнено с возможностью получения значения первой цветовой компоненты во втором цветовом пространстве для пикселя, причем второе цветовое пространство отличается от первого цветового пространства. Устройство дополнительно выполнено с возможностью определения значения первой цветовой компоненты пикселя в первом цветовом пространстве на основании минимизации ошибки, вычисленной на основании разности между значением первой цветовой компоненты во втором цветовом пространстве и пробным значением цветовой компоненты во втором цветовом пространстве, причем пробное значение цветовой компоненты выводится на основании кодированного значения второй цветовой компоненты и значения кодированной третьей компоненты. Устройство дополнительно выполнено с возможностью кодирования значения первой цветовой компоненты пикселя в первом цветовом пространстве.
Дополнительный аспект вариантов осуществления относится к устройству для кодирования пикселя входной видеопоследовательности. Устройство содержит средство кодирования для кодирования значения второй цветовой компоненты и значения третьей цветовой компоненты пикселя в первом цветовом пространстве. Устройство также содержит средство получения для получения значения первой цветовой компоненты во втором цветовом пространстве для пикселя, причем второе цветовое пространство отличается от первого цветового пространства. Устройство дополнительно содержит средство модификации для определения значения первой цветовой компоненты пикселя в первом цветовом пространстве на основании минимизации ошибки, вычисленной на основании разности между значением первой цветовой компоненты во втором цветовом пространстве и пробным значением цветовой компоненты во втором цветовом пространстве, причем пробное значение цветовой компоненты выводится на основании кодированного значения второй цветовой компоненты и значения кодированной третьей компоненты. Устройство дополнительно содержит средство кодирования для кодирования значения первой цветовой компоненты пикселя в первом цветовом пространстве.
Еще один аспект вариантов осуществления относится к компьютерной программе, содержащей инструкции, которые, при исполнении процессором, предписывают процессору для кодирования значения второй цветовой компоненты и значения третьей цветовой компоненты, пикселя входной видеопоследовательности, в первом цветовом пространстве. Процессору также предписывается получать значение первой цветовой компоненты во втором цветовом пространстве для пикселя, причем второе цветовое пространство отличается от первого цветового пространства. Процессору дополнительно предписывается определять значение первой цветовой компоненты пикселя в первом цветовом пространстве на основании минимизации ошибки, вычисленной на основании разности между значением первой цветовой компоненты во втором цветовом пространстве и пробным значением цветовой компоненты во втором цветовом пространстве, причем пробное значение цветовой компоненты выводится на основании кодированного значения второй цветовой компоненты и значения кодированной третьей компоненты. Процессору дополнительно предписывается кодировать значение первой цветовой компоненты пикселя в первом цветовом пространстве.
Родственный аспект вариантов осуществления предусматривает носитель, содержащий компьютерную программу согласно вышеописанному. Носитель представляет собой один из электронного сигнала, оптического сигнала, электромагнитного сигнала, магнитного сигнала, электрического сигнала, радиосигнала, микроволнового сигнала или компьютерно-считываемого носителя данных.
Другой аспект вариантов осуществления относится к сигналу, представляющему кодированную версию пикселя изображения входной видеопоследовательности. При этом кодированная версия содержит значение первой цветовой компоненты, значение второй цветовой компоненты и значение третьей цветовой компоненты в первом цветовом пространстве, кодированные согласно вышеописанному способу или вышеописанным устройством.
Варианты осуществления предусматривают улучшенное кодирование пикселей во входной видеопоследовательности с учетом любых ошибок, уже внесенных кодером в кодирование значений второй и третьей цветовых компонент для пикселя при кодировании значения первой цветовой компоненты пикселя. В результате улучшенного кодирования, визуальное качество, например, воспринимаемое в яркости пикселя, может повышаться.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Варианты осуществления, совместно с их дополнительными задачами и преимуществами, можно наилучшим образом понять, обратившись к нижеследующему описанию, приведенному совместно с прилагаемыми чертежами, в которых:
фиг. 1 - блок-схема последовательности операций, демонстрирующая способ кодирования пикселя согласно варианту осуществления;
фиг. 2 - блок-схема последовательности операций, демонстрирующая вариант осуществления кодирования на этапе S1 на фиг. 1;
фиг. 3 - блок-схема последовательности операций, демонстрирующая вариант осуществления получения на этапе S2 на фиг. 1;
фиг. 4 - блок-схема последовательности операций, демонстрирующая дополнительные, необязательные этапы способа на фиг. 1 согласно варианту осуществления;
фиг. 5 - блок-схема последовательности операций, демонстрирующая вариант осуществления кодирования на этапе S4 на фиг. 1;
фиг. 6 - блок-схема последовательности операций, демонстрирующая дополнительные, необязательные этапы способа на фиг. 1 согласно другому варианту осуществления;
фиг. 7 - блок-схема последовательности операций, демонстрирующая дополнительные, необязательные этапы способа на фиг. 1 согласно дополнительному варианту осуществления;
фиг. 8 - блок-схема последовательности операций, демонстрирующая дополнительные, необязательные этапы способа на фиг. 1 согласно еще одному варианту осуществления;
фиг. 9 - блок-схема последовательности операций, демонстрирующая способ кодирования, по меньшей мере, одной выборки входной видеопоследовательности согласно варианту осуществления;
фиг. 10 схематически демонстрирует вариант осуществления, использующий разные фильтры повышающей дискретизации в ходе кодирования и декодирования;
фиг. 11 схематически демонстрирует изображения входной видеопоследовательности, организованные в виде структуры групп изображений (GOP);
фиг. 12 - схема аппаратной реализации устройства согласно вариантам осуществления;
фиг. 13 - схема реализации устройства согласно вариантам осуществления с процессором и памятью;
фиг. 14 - схема пользовательского оборудования согласно варианту осуществления;
фиг. 15 - схема реализации устройства согласно вариантам осуществления с функциональными модулями;
фиг. 16 - схема, демонстрирующая распределенную реализацию вариантов осуществления среди множественных сетевых устройств;
фиг. 17 - схема примера системы беспроводной связи с одним или более облачными сетевыми устройствами согласно варианту осуществления;
фиг. 18 демонстрирует вариант осуществления вывода скорректированного Y';
фиг. 19 - схема, демонстрирующая, что могут существовать разные линеаризации в разных цветовых областях;
фиг. 20 демонстрирует кривую Бартена для контрастной чувствительности; и
фиг. 21 демонстрирует сравнение между цветовыми гаммами Rec709 и BT.2020.
ПОДРОБНОЕ ОПИСАНИЕ
В чертежах одинаковые ссылочные позиции используются для обозначения аналогичных или соответствующих элементов.
Настоящие варианты осуществления, в целом, относятся к способу, устройствам и компьютерной программе для кодирования пикселя входной видеопоследовательности.
При кодировании видеоданных, несколько разных цветовых пространств или форматов используются для представления значений цвета. В этом документе используется следующая терминология:
RGB: значения линейного RGB, где каждое значение пропорционально кд/м2 (ʺколичество фотоновʺ).
XYZ: значения линейного XYZ в цветовом пространстве CIE 1931, где каждое значение является линейной комбинацией RGB. Y называется ʺяркостьʺ и отражает то, что глаз воспринимает как светлоту. Пространство XYZ важно, поскольку оно отображается в цветовосприятие зрительной системы человека. Согласно варианту осуществления, именно в этом цветовом пространстве желательно минимизировать ошибку, вносимую сжатием или кодированием.
pq(Y)xy: значения нелинейного XYZ, которые наилучшим образом соответствуют цветовосприятию человека. pq(Y) является нелинейным представлением, где нелинейная функция pq(.) применена к линейной яркости Y. xy является нелинейным представлением цветности, поскольку оно было нормировано по ʺсветлотеʺ посредством x=X/(X+Y+Z), y=Y/(X+Y+Z).
pq(Y)u'v': представление цвета, где pq(Y) содержит всю яркость, и u'v' - всю цветность. Из pq(Y) можно извлечь Y, и из Y, u' и v' можно извлечь XYZ, которое может преобразовываться в RGB.
R'G'B': значения нелинейного RGB. R'=pq(R), G'=pq(G), B'=pq(B), где pq(.) является нелинейной функцией.
Y'Cb'Cr': нелинейное представление, где каждое значение является линейной комбинацией R', G' и B'. Y' называется ʺяркостьюʺ, и Cb' и Cr' совместно называются ʺцветностьюʺ. Это делается для того, чтобы отличить Y' от яркости, поскольку Y' также содержит некоторую цветность, и Cb' и Cr' также содержит некоторую яркость. Значения Y'Cb'Cr' обычно кодируются и сжимаются видеокодерами. После декодирования они будут преобразовываться в R'G'B' и затем в RGB, которые могут отображаться.
ICtCp: представление цвета, предназначенное для формирования изображений в режиме HDR и широкой цветовой гаммы (WCG) и призванное быть альтернативой Y'Cb'Cr'. I представляет интенсивность и является представлением информации яркости, тогда как CtCp несет информацию цветности.
Yopt' - оптимальный Y', выведенный с целью минимизации ошибки Y.
4:2:0 - вторая и третья цветовые компоненты, например, цветностные компоненты, были субдискретизированы по горизонтали и по вертикали с коэффициентом два по сравнению с первой цветовой компонентой, например, яркостной компонентой.
4:2:2 - вторая и третья цветовые компоненты, например, цветностные компоненты, были субдискретизированы по горизонтали или по вертикали с коэффициентом два по сравнению с первой цветовой компонентой, например, яркостной компонентой.
4:4:4 - субдискретизации не применялось, или применялась субдискретизация с последующей повышающей дискретизацией, т.е. все компоненты имеют одинаковое разрешение.
Варианты осуществления основаны на адаптации целевого значения для кодирования одной цветовой компоненты при условии сжатия или кодирования, по меньшей мере, одной другой цветовой компоненты и обработки, которая осуществляется на разжатом или декодированном видеосигнале до отображения. С этой целью осуществляется модификация перцепционно квантованного исходного значения первой цветовой компоненты, например, значения Y', на основании реконструированных, т.е. субдискретизированных, кодированных, декодированных и дискретизированных с повышением, значений второй и третьей цветовых компонент, например, значений Cb'Cr', и обработки, которая осуществляется на разжатом или декодированном видеосигнале до отображения для лучшего соответствия исходной линейной яркости, например Y, или исходной перцепционно квантованной линейной яркости, например pq(Y).
На фиг. 1 показана блок-схема последовательности операций, демонстрирующая способ кодирования пикселя входной видеопоследовательности. Способ содержит кодирование, на этапе S1, значения второй цветовой компоненты и значения третьей цветовой компоненты пикселя в первом цветовом пространстве. Способ также содержит получение, на этапе S2, значения первой цветовой компоненты во втором цветовом пространстве для пикселя. Второе цветовое пространство отличается от первого цветового пространства. Затем способ переходит к этапу S3, который содержит определение первой цветовой компоненты пикселя в первом цветовом пространстве. Это значение первой цветовой компоненты определяется на этапе S3 на основании минимизации ошибки, вычисленной на основании разности между значением первой цветовой компоненты во втором цветовом пространстве и пробным значением цветовой компоненты во втором цветовом пространстве. Пробное значение цветовой компоненты выводится на основании кодированное значение второй цветовой компоненты и кодированное значение третьей цветовой компоненты. Затем, на этапе S4, значение первой цветовой компоненты пикселя в первом цветовом пространстве кодируется.
Таким образом, кодированное представление пикселя содержит кодированное значение первой цветовой компоненты, полученное на этапе S4, и кодированные значения второй и третьей цветовых компонент, полученные на этапе S1.
Этапы S1 - S4 способа, показанные на фиг. 1, осуществляются для, по меньшей мере, одного пикселя входной видеопоследовательности, содержащей множественные, т.е. по меньшей мере, два, изображения, и где каждое изображение содержит множество пикселей. В предпочтительном варианте осуществления, способ применяется к множественным пикселям в изображении входной видеопоследовательности, например, ко всем пикселям в изображении, что схематически проиллюстрировано линией L1 на фиг. 1. Способ также может применяться к пикселям неподвижного изображения.
Таким образом, способ кодирования пикселя на фиг. 1 адаптирует, на этапе S3, значение первой цветовой компоненты для кодирования на основании кодирования значений второй и третьей цветовых компонент на этапе S1 и, предпочтительно, обработки, которая осуществляется на декодированном видеосигнале до отображения. Оптимальное значение первой цветовой компоненты для пикселя в первом цветовом пространстве определяется на основании сравнения значений первой цветовой компоненты и пробной цветовой компоненты во втором цветовом пространстве, которое, предпочтительно, является цветовым пространством, которое воспринимает зрительная система человека. Адаптация оптимального значения первой цветовой компоненты на основании процесса кодирования и декодирования достигается, по меньшей мере, частично, путем вывода пробного значения цветовой компоненты на основании кодированных значений второй и третьей цветовых компонент, полученных на этапе S1.
На фиг. 2 показана блок-схема последовательности операций, демонстрирующая вариант осуществления кодирования на этапе S1 на фиг. 1. В этом варианте осуществления, этапы S10 - S12 осуществляются для каждого значения цветовой компоненты из значения второй цветовой компоненты и значения третьей цветовой компоненты. Этап S10 содержит определение внутреннего или внешнего предсказания значения цветовой компоненты. Затем ошибка предсказания, вычисленная как разность между значением цветовой компоненты и внутренним или внешним предсказанием, преобразуется на этапе S11 для формирования коэффициентов преобразования. Коэффициенты преобразования, полученные на этапе S11, квантуются на этапе S12. В этом случае, квантованные коэффициенты преобразования являются кодированной версией значения цветовой компоненты. В необязательном варианте осуществления, квантованные коэффициенты преобразования поступают на кодер, например, энтропийный кодер, для кодирования. Затем способ переходит к этапу S2 на фиг. 1.
В общем случае, внутреннее предсказание предусматривает отыскание внутреннего (I) предсказания или пространственного предсказания значения цветовой компоненты на основании значений соседних пикселей в том же изображении, что и текущий пиксель. Таким образом, внутреннее предсказание использует данные из соседних предсказательных блоков пикселей, ранее декодированных из того же изображения.
Соответственно, внешнее предсказание предусматривает компенсацию движения, в котором предсказание пикселей в блоке пикселей в текущем изображении выводится на основании пиксельных значений в блоке пикселей в ранее декодированном изображении видеопоследовательности или на основании пиксельных значений в блоках пикселей в двух ранее декодированных изображениях видеопоследовательности. Внешнее предсказание также именуется временным предсказанием и, таким образом, достигается с использованием внешнего (P) или двунаправленного внешнего (B) предсказания из ранее декодированных опорных изображений.
Разность между исходными пиксельными данными и предсказанными пиксельными данными, именуемая ошибкой предсказания или остатком, преобразуется в частотную область и квантуется с использованием параметра квантования (QP).
За дополнительной информацией о внутреннем и внешним предсказании следует обратиться к разделам 8.4 и 8.5 в документе [4]. Раздел 8.6 в документе [4] содержит дополнительную информацию в отношении преобразования ошибок предсказания и квантования коэффициентов преобразования.
Кодирование значений второй и третьей цветовых компонент на этапе S1 может осуществляться в соответствии с известными стандартами кодирования/декодирования видеоданных, например, высокопроизводительного видеокодирования (HEVC), также именуемого H.265; H.264/усовершенствованного кодирования видеоданных (AVC); стандартами кодирования/декодирования видеоданных для HDR или видео широкой цветовой гаммы (WCG); и т.д. В последнем случае, входная видеопоследовательность является видеопоследовательностью HDR или WCG.
На фиг. 3 показана блок-схема последовательности операций, демонстрирующая вариант осуществления этапа S2 на фиг. 1. Способ переходит от этапа S1 на фиг. 1 или этапа S12 на фиг. 2. В этом варианте осуществления, значение второй цветовой компоненты и значение третьей цветовой компоненты в первом цветовом пространстве дискретизируются с повышением на этапе S20 для получения дискретизированного с повышением значения второй цветовой компоненты и дискретизированного с повышением значения третьей цветовой компоненты в первом цветовом пространстве. Затем способ переходит к этапу S21, который содержит преобразование исходного значения первой цветовой компоненты пикселя в первом цветовом пространстве и дискретизированного с повышением значения второй цветовой компоненты и дискретизированного с повышением значения третьей цветовой компоненты в первом цветовом пространстве в значение первой цветовой компоненты во втором цветовом пространстве. Затем способ переходит к этапу S3 на фиг. 1.
Вторая и третья цветовые компоненты, предпочтительно, находятся в субдискретизированной форме, например, в формате 4:2:0 или 4:2:2. Повышающая дискретизация на этапе S20 может осуществляться согласно известным методам повышающей дискретизации. Например, повышающая дискретизация может осуществляться с использованием билинейных или удлиненных фильтров. Пример метода повышающей дискретизации, который можно использовать согласно вариантам осуществления, раскрыт в разделе B.1.5.6 Chroma upsampling from 4:2:0 to 4:4:4 (Y'CbCr domain) в документе [5]. Результатом повышающей дискретизации на этапе S20, является дискретизированные с повышением значения второй и третьей цветовых компонент в формате 4:4:4.
Согласно варианту осуществления, вторая и третья цветовые компоненты являются цветностными компонентами Cb'Cr' 4:2:0 или 4:2:2 в цветовом пространстве Y'Cb'Cr'. Таким образом, повышающая дискретизация на этапе S20, генерирует значения компоненты Cb'Cr' в формате 4:4:4. В этом варианте осуществления, исходным значением первой цветовой компоненты является исходное значение Y' в формате Y'Cb'Cr'. В общем случае, пиксели входной видеопоследовательности, подлежащие кодированию, имеют исходный цвет Y'Cb'Cr' в 4:2:0 или 4:2:2. В таком случае, исходное значение Y' является входным значением яркостной компоненты пикселя, причем значения второй и третьей цветовых компонент являются входными субдискретизированными значениями цветностной компоненты для пикселя. Затем значение Y' 4:4:4 и значения Cb'Cr' 4:4:4 преобразуются в значение первой цветовой компоненты во втором цветовом пространстве. Это значение первой цветовой компоненты во втором цветовом пространстве может быть значением линейной яркости Y в цветовом пространстве XYZ или значением нелинейной яркости pq(Y) в цветовом пространстве pq(Y)xy. Другим примером является pq(Y) в цветовом пространстве pq(Y)u'v'. Поэтому Y=функция(Y', Cb', Cr') или pq(Y)=функция(Y', Cb', Cr').
В первом случае, т.е. Y=функция(Y', Cb', Cr'), преобразование на этапе S21, предпочтительно, содержит применение первого цветового преобразования для получения нелинейного цвета в третьем цветовом пространстве, предпочтительно, цвета R'G'B' в цветовом пространстве RGB, например, с использованием уравнения 1.
R'=Y'+1,47460×Cr
G'=Y'-0,16455×Cb-0,57135×Cr (уравнение 1)
B'=Y'+1,88140×Cb
Первая передаточная функция, например, передаточная функция в уравнении A1 в приложении A, применяется к нелинейному цвету в третьем цветовом пространстве для получения линейного цвета в третьем цветовом пространстве, предпочтительно, цвета RGB в цветовом пространстве RGB.
Затем второе цветовое преобразование применяется к линейному цвету в третьем цветовом пространстве для получения первой цветовой компоненты во втором цветовом пространстве, предпочтительно, цветовое преобразование из RGB в XYZ, см. уравнение 2 или 3:
(уравнение 2)
(уравнение 3)
Фактически, необходимо вычислять только вторую линию в уравнении 2 или 3 для получения значения линейной яркостной компоненты Y в цветовом пространстве XYZ, т.е. значения первой цветовой компоненты во втором цветовом пространстве в этом варианте осуществления.
Таким образом, вышеописанный вариант осуществления можно описать как предусматривающий следующие этапы способа: Y'Cb'Cr' 4:2:0 -(повышающая дискретизация)-> Y'Cb'Cr' 4:4:4 -(цветовое преобразование)-> R'G'B' 4:4:4 -(передаточная функция)-> RGB 4:4:4 -(цветовое преобразование)-> XYZ 4:4:4 и затем поддержание Y, или, как показано ниже, преобразование Y в pq(Y).
Во втором случае, т.е. pq(Y)=функция(Y', Cb', Cr'), преобразование на этапе S21 может осуществляться, как описано выше, пока не будет вычислено значение линейной яркостной компоненты Y в цветовом пространстве XYZ. Затем вторая передаточная функция, например, обратная передаточной функции в уравнении A1 в приложении A, применяется к значению линейной яркостной компоненты для получения значения нелинейной яркостной компоненты pq(Y) в цветовом пространстве pq(Y)xy, т.е. значение первой цветовой компоненты во втором цветовом пространстве в этом варианте осуществления.
В этих вариантах осуществления, исходное значение первой цветовой компоненты в первом цветовом пространстве (Y'), предпочтительно, определяется согласно способу Ajusty в приложении A.
В другом варианте осуществления, значение первой цветовой компоненты во втором цветовом пространстве получается на основании линейного цвета пикселя в третьем цветовом пространстве, например, цвета RGB 4:4:4. Этот линейный цвет в третьем цветовом пространстве, согласно варианту осуществления, является исходным цветом пикселя до любой обработки предварительного кодирования. Затем обработка предварительного кодирования предусматривает преобразование линейного цвета в третьем цветовом пространстве (RGB 4:4:4) в значения первой, второй и третьей цветовых компонент в первом цветовом пространстве, т.е. Y'Cb'Cr' 4:2:0. При наличии на кодере линейного цвета в третьем цветовом пространстве, значение первой цветовой компоненты во втором цветовом пространстве можно непосредственно вычислять из него путем применения цветового преобразования, например, показанного в уравнении 2 или 3.
Таким образом, этот вариант осуществления можно описать как предусматривающий следующие этапы способа: RGB 4:4:4 -(цветовое преобразование)-> XYZ 4:4:4 и затем поддержание Y, или преобразование Y в pq(Y).
В еще одном варианте осуществления, кодер может обращаться к значениям второй и третьей цветовых компонент в первом цветовом пространстве в недискретизированной форме, т.е. субдискретизации. В таком случае, значение первой цветовой компоненты можно вычислять из этого цвета Y'Cb'Cr' 4:4:4 согласно следующим этапам способа:
Y'Cb'Cr' 4:4:4 -(цветовое преобразование)-> R'G'B' 4:4:4 -(передаточная функция)-> RGB 4:4:4 -(цветовое преобразование)-> XYZ 4:4:4 и затем поддержание Y, или преобразование Y в pq(Y).
Представленные выше варианты осуществления получения значения первой цветовой компоненты во втором цветовом пространстве могут осуществляться как предварительный этап и не обязательно для каждого блока пикселей. Например, можно определить значение первой цветовой компоненты во втором цветовом пространстве для всего изображения или, по меньшей мере, его части, до начала кодирования.
Можно также отправлять заранее вычисленные значения первой цветовой компоненты во втором цветовом пространстве как дополнительный входной сигнал кодера.
На фиг. 4 показана блок-схема последовательности операций, демонстрирующая дополнительные, необязательные этапы способа, показанного на фиг. 1. Способ переходит от этапа S1 на фиг. 1 или этапа S21 на фиг. 3. Следующий этап S30 содержит декодирование кодированного значения второй цветовой компоненты и кодированного значения третьей цветовой компоненты для получения реконструированного значения второй цветовой компоненты и реконструированного значения третьей цветовой компоненты в первом цветовом пространстве. Затем реконструированные значения второй и третьей цветовых компонент дискретизируются с повышением на этапе S31 для получения дискретизированного с повышением реконструированного значения второй цветовой компоненты и дискретизированного с повышением реконструированного значения третьей цветовой компоненты в первом цветовом пространстве. В этом варианте осуществления, пробное значение цветовой компоненты во втором цветовом пространстве выводится на этапе S32 на основании пробного значения цветовой компоненты в первом цветовом пространстве, дискретизированного с повышением реконструированного значения второй цветовой компоненты и дискретизированного с повышением реконструированного значения третьей цветовой компоненты в первом цветовом пространстве. Затем способ переходит к этапу S3 на фиг. 1.
Декодирование на этапе S30 обычно является процессом, обратным кодированию, осуществляемому на этапе S1. Поэтому декодирование, в необязательном порядке, содержит декодирование кодированных, квантованных коэффициентов преобразования, например, с использованием энтропийного декодера. Затем квантованные коэффициенты преобразования, полученные декодированием, подвергаются обратному квантованию и затем обратному преобразованию для получения реконструированного остатка или ошибок предсказания. Затем реконструированные значения второй и третьей цветовых компонент получаются путем прибавления реконструированных остатков к соответствующему внутреннему или внешнему предсказанию для пикселя. Дополнительную информацию о процессе декодирования можно найти в документе [4] и, в частности, разделах 8.4-8.6 и 9.4.3.
Декодирование на этапе S30, предпочтительно, осуществляется в соответствии с известными стандартами кодирования/декодирования видеоданных, например HEVC; H.264/AVC; стандартами кодирования/декодирования видеоданных для видео HDR или WCG; и т.д.
Повышающая дискретизация на этапе S31, предпочтительно, осуществляется аналогично повышающей дискретизации на этапе S20 на фиг. 3, т.е. путем дискретизации с повышением из формата 4:2:0 или 4:2:2 в 4:4:4. Отличие этапа S31 от этапа S20 состоит в том, что этап S20 содержит повышающую дискретизацию исходных или входных значений второй и третьей цветовых компонент, тогда как этап S31 содержит повышающую дискретизацию реконструированных значений второй и третьей цветовых компонент, полученных после кодирования и последующего декодирования исходных или входных значений второй и третьей цветовых компонент.
Затем пробное значение цветовой компоненты (Ytest или pq(Y)test) во втором цветовом пространстве, предпочтительно, цветовом пространстве XYZ или pq(Y)xy, выводится на этапе S32 на основании пробного значение цветовой компоненты (Y'test) и дискретизированных с повышением реконструированных значений второй и третьей цветовых компонент (Cb'Cr') в первом цветовом пространстве, предпочтительно цветовом пространстве Y'Cb'Cr'. Поэтому, Ytest=функция(Y'test, Cb', Cr') или pq(Y)test=функция(Y'test, Cb', Cr').
Этот этап S32, предпочтительно, осуществляется, как описано ранее, совместно с этапом S21 на фиг. 3 с тем отличием, что исходное значение первой цветовой компоненты в первом цветовом пространстве заменено пробным значением цветовой компоненты в первом цветовом пространстве, дискретизированные с повышением значения второй и третьей цветовых компонент в первом цветовом пространстве заменены дискретизированными с повышением реконструированными значениями второй и третьей цветовых компонент в первом цветовом пространстве, и значение первой цветовой компоненты во втором цветовом пространстве заменено пробным значением цветовой компоненты во втором цветовом пространстве.
Таким образом, вышеописанный вариант осуществления можно описать как предусматривающий следующие этапы способа: Y'testCb'Cr' 4:2:0 -(повышающая дискретизация)-> Y'testCb'Cr' 4:4:4 -(цветовое преобразование)-> R'G'B' 4:4:4 -(передаточная функция)-> RGB 4:4:4 -(цветовое преобразование)-> XYtestZ 4:4:4 и затем поддержание Ytest, или, как показано ниже, преобразование Ytest в pq(Ytest).
Пробное значение цветовой компоненты (Ytest или pq(Y)test) во втором цветовом пространстве выводится, как описано выше, согласно варианту осуществления, на основании дискретизированных с повышением реконструированных значений второй и третьей цветовых компонент (Cb'Cr') в первом цветовом пространстве. Эти дискретизированные с повышением реконструированные значения второй и третьей цветовых компонент таким образом отражают и содержат любые ошибки, вносимые в ходе субдискретизации значений второй и третьей цветовых компонент и/или другой обработки предварительного кодирования значений второй и третьей цветовых компонент, и/или кодирования значений второй и третьей цветовых компонент (этап S1 на фиг. 1), и/или в ходе обработки, осуществляемой после декодирования (этап S31 на фиг. 4). Затем значение первой цветовой компоненты (Y') пикселя в первом цветовом пространстве может определяться на этапе S3 на фиг. 1 для компенсации любых ошибок, вносимых в ходе кодирования, декодирования и обработки после декодирования. Таким образом, визуальное качество, например, оцениваемое значением линейной или нелинейной яркости, Y или pq(Y), пикселя, может повышаться.
Согласно варианту осуществления, этап S3 на фиг. 1 содержит выбор пробного значения цветовой компоненты в первом цветовом пространстве, которое минимизирует ошибку, вычисленную на основании разности между значением первой цветовой компоненты во втором цветовом пространстве и пробным значением цветовой компоненты во втором цветовом пространстве, выведенным на основании пробного значения цветовой компоненты в первом цвете и кодированных значений второй и третьей цветовых компонент.
Поэтому, согласно варианту осуществления множественные пробные значения цветовой компоненты в первом цветовом пространстве доступны и тестируются. В таком случае, соответствующее пробное значение цветовой компоненты во втором цветовом пространстве выводится для каждого из множественных пробных значений цветовой компоненты в первом цветовом пространстве, предпочтительно, как описано выше, совместно с этапом S32 на фиг. 4. Затем соответствующая ошибка вычисляется для каждого из множественных пробных значений цветовой компоненты в первом цветовом пространстве на основании разности значения первой цветовой компоненты во втором цветовом пространстве, например, выведенного, как описано выше, совместно с этапом S21 на фиг. 3, и соответствующего значения первой цветовой компоненты во втором цветовом пространстве.
Затем значение первой цветовой компоненты в первом цветовом пространстве среди множественных пробных значений цветовой компоненты в первом цветовом пространстве, которое приводит к наименьшей ошибке, выбирается и используется как оптимальное значение первой цветовой компоненты в первом цветовом пространстве для пикселя на этапе S3. Затем это оптимальное значение первой цветовой компоненты кодируется на этапе S4 на фиг. 1.
Выбор оптимального значения первой цветовой компоненты в первом цветовом пространстве может осуществляться согласно различным вариантам осуществления аналогично описанному в приложении A. В этом варианте осуществления, значение первой цветовой компоненты в первом цветовом пространстве является значением яркости или Y' в цветовом пространстве Y'Cb'Cr', и значение первой цветовой компоненты во втором цветовом пространстве является значением линейной яркости или Y в цветовом пространстве XYZ или значением нелинейной яркости или pq(Y) в цветовом пространстве pq(Y)xy.
Согласно варианту осуществления, двоичный поиск можно использовать для отыскания оптимального или наилучшего значения Y' в цветовом пространстве Y'Cb'Cr'. Например, сначала проверяется пробное значение Y' в середине доступного диапазона значений Y', например 512, если минимальное значение Y' равно 0, и максимальное значение Y' равно 1023. Если пробное значение Y или pq(Y), выведенное на этапе S32 на основании этого пробного значения Y' и дискретизированных с повышением реконструированных значений Cb'Cr', больше исходного значения Y или pq(Y), полученного на этапе S21, нужно продолжать поиск в интервале [0, 512]. Если же пробное значение Y или pq(Y) больше исходного значения Y или pq(Y), нужно продолжать поиск оптимального пробного значения Y' в интервале [512, 1023]. В продолжение процедуры, новое пробное значение Y' вычисляется в середине выбранного интервала до тех пор, пока пробное значение Y или pq(Y) не сравняется с исходным значением Y или pq(Y), или его отличие от исходного значения Y или pq(Y) не станет меньше заданного значения, или интервал не станет содержать единственное значение или два значения, например [363, 363] или [363, 364]. Это гарантированно занимает только log2(N) шагов, где N - количество возможных пробных значений Y', которое в этом примере равно 1024. Поэтому двоичный поиск занимает только log2(1024)=10 шагов.
Еще один способ вычисления оптимального или наилучшего значения Y' состоит в том, чтобы рассматривать определение на этапе S3 как задачу оптимизации и минимизировать ошибку E=(Ytest-Yo)2 или E=(pq(Ytest)-pq(Yo))2 относительно Y'test, где Yo обозначает исходное значение яркости пикселя, выведенное на этапе S21 на фиг. 3. Это может осуществляться посредством градиентного спуска, посредством вычисления градиента E относительно Y'test, dE/dY'test, и обновления Y'test на малую величину в направлении, противоположном градиенту: Y'test,n+1=Y'test,n-αdE/dY'test, где α - малая постоянная.
Градиентный спуск может быть медленным, поэтому более быстрый путь может представлять собой алгоритм оптимизации второго порядка, который вычисляет или аппроксимирует производные второго порядка d2E/dY'test2, например, Гаусса-Ньютона.
Все вышеупомянутые алгоритмы градиентного спуска и оптимизации второго порядка эквивалентны определению значения первой цветовой компоненты пикселя в первом цветовом пространстве на основании минимизации ошибки, вычисленной на основании разности между значением первой цветовой компоненты во втором цветовом пространстве и пробным значением цветовой компоненты во втором цветовом пространстве.
В ошибку также могут входить другие компоненты. Например, ошибка E может быть задана как E=w1(pq(Ytest)-pq(Yo))2+w2(xtest-xo)2+w3(ytest-yo)2, где xo, yo получаются совместно с pq(Yo) из XYZ 4:4:4 как описано выше, и w1, w2, w3 - различные весовые коэффициенты. Аналогичный подход также можно использовать, заменяя pq(Ytest) и pq(Yo) на Ytest и Yo, соответственно.
Другой способ отыскания необязательного или наилучшего значения Y' состоит в осуществлении линеаризации, что дополнительно описано в приложении A. Согласно такому подходу, мы имеем Y=f(Y') и хотим, чтобы выходное значение Y этого уравнения совпадало с оптимальным Yo. Поскольку Y зависит от Y' в трех разных местах по нелинейному закону, инверсия функции для получения Y'=f-1(Y) выглядит сложной задачей.
Однако можно линеаризовать нелинейную передаточную функцию tf(x)~kx+m. Делая это в трех разных местах, получаем Y~k1×Y'+m1+k2×Y'+m2+k3×Y'+m3, что эквивалентно Y~(k1+k2+k3)×Y'+(m1+m2+m3). Это можно инвертировать в Y'~Y'k=(Yo- (m1+m2+m3))/(k1+k2+k3).
Таким образом, возможно, что Y'k даст значение Yk, более близкое к YO, чем прежде. Функцию можно снова линеаризовать в этой новой точке Y'k с получением нового значения Y'(k+1) и т.д.
Таким образом, согласно этому подходу, Y', Cb' и Cr' преобразуются в R', G' B' с использованием
где a13, a22, a23 и a32 - положительные постоянные, которые зависят от используемого цветового пространства. Для BT.2020 мы имеем a13=1,4746, a22=0,1646, a23=0,5714, и a32=1,8814. Для упрощения записи будем использовать вспомогательные переменные:
которые позволяют выразить преобразование в виде
.
В этом случае яркость можно вычислить как
где , и - постоянные, например, постоянные XYZ CIE1931 для Y или (аналогичные) постоянные для BT2020, например =0,2627, =0,6780, =0,0593. С использованием вышеприведенного уравнения, это можно выразить в виде
В этой формуле, только может изменяться от пикселя к пикселю. В порядке примера, зависит от , обобществленного между несколькими пикселями. Таким образом, , и можно рассматривать как постоянные, и идея регулировки яркости состоит в отыскании , который будет генерировать желаемую яркость . Заметим, что поскольку в правой стороне вышеприведенного уравнения присутствуют три нелинейных функции, правую сторону невозможно инвертировать. Поэтому предлагается линейно аппроксимировать относительно красной компоненты.
,
где - преобразованная версия линейной компоненты исходного пикселя . То же действие для зеленой и синей компонент дает
Перенося первый член в каждом выражении влево, получаем
Но поскольку , отрицательные члены первой строки прибавляются к исходной яркости, и первая строка обнуляется. В этом случае сбор членов для Y' дает
Что позволяет вычислять Y' как
Вышеописанные варианты осуществления указывают, что процесс линеаризации можно использовать для определения значения первой цветовой компоненты пикселя в первом цветовом пространстве, Y', и что такой процесс линеаризации эквивалентен определению Y' на основании минимизации ошибки, как описано выше.
Еще один способ отыскания оптимального или наилучшего значения Y' состоит в использовании поисковой таблицы (LUT). Если известны значения Cb'Cr' и целевое значение Y или pq(Y), т.е. Yo или pq(Yo), можно найти наилучшее значение Y' с использованием любого из вышеупомянутых итерационных методов. Таким образом, можно создать LUT для каждой возможной комбинации Cb'Cr' и Y или pq(Y). Предположим, например, что Cb' и Cr' квантуются до 10 битов, и что Y или pq(Y) также квантуется до 10 битов. Тогда необходима LUT с 210×210×210=230 значениями Y'. Если каждое значение Y' занимает два байта, это означает 231 байтов или 2 ГБ. Однако LUT можно сократить, например, округлив один или более из Cb', Cr' и Yo или pq(Yo) до 6 или 8 битов. Тогда размер LUT будет составлять 218 или 224 значений Y' или 219 или 225 байтов, что эквивалентно 512 кБ или 34 МБ.
Поэтому, в этих вариантах осуществления оптимальное или наилучшее значение Y'=LUT(Cb', Cr', Yo) или LUT(Cb', Cr', pq(Yo)).
На фиг. 5 показана блок-схема последовательности операций, демонстрирующая вариант осуществления этапа S4 на фиг. 1. Способ переходит от этапа S3 на фиг. 1. Следующий этап S40 содержит определение внутреннего или внешнего предсказания значения первой цветовой компоненты в первом цветовом пространстве. Следующий этап S41 содержит преобразование ошибки предсказания, вычисленной как разность между значением первой цветовой компоненты в первом цветовом пространстве и внутренним или внешним предсказанием для формирования коэффициентов преобразования. Затем коэффициенты преобразования квантуются на этапе S42. В необязательном варианте осуществления, квантованные коэффициенты преобразования поступают на кодер, например, энтропийный кодер.
Этапы S40-S42 на фиг. 5, в основном, осуществляется как описано выше со ссылкой на фиг. 2, с тем отличием, что фиг. 2 предусматривает кодирование значений второй и третьей цветовых компонент в первом цветовом пространстве, а фиг. 5 предусматривает кодирование значения первой цветовой компоненты в первом цветовом пространстве.
Как упомянуто выше, кодирование пикселя согласно вариантам осуществления может применяться к множественным пикселям в изображении входной видеопоследовательности. В действительности, возможно применение способа кодирования ко всем пикселям во всех изображениях. В альтернативном варианте осуществления, способ кодирования выбирается только для некоторых пикселей, областей или изображений во входной видеопоследовательности. Причина этого состоит в том, что способ кодирования может вносить дополнительную сложность по сравнению с традиционным способом простого кодирования исходного цвета Y'Cb'Cr' 4:2:0 или 4:2:2 пикселя. Настоящие варианты осуществления предусматривают дополнительный обработка для определения улучшенного или оптимизированного значения яркостной компоненты. Таким образом, повышение качества согласно вариантам осуществления достигается ценой некоторого повышения сложности обработки на стороне кодирования.
Соответственно, преимущество может состоять в применении способа кодирования только к некоторым областям в некоторых изображениях или некоторых ключевых изображениях. Неограничительные примеры таких ключевых изображений могут представлять собой так называемые изображения точки произвольного доступа (RAP), также именуемые изображениями внутреннего произвольного доступа (IRAP), или изображения в самом низком слое в иерархической структуре групп изображений (GOP) или изображения, которые имеют низкие значения QP при кодировании с низкой задержкой. Кодер также может выбирать изображения или области изображений, подлежащие кодированию согласно вариантам осуществления на основании своих возможностей обработки и требований к задержке для текущего видеоприложения.
Согласно варианту осуществления, способ, показанный на фиг. 1, содержит дополнительные этапы, показанные на фиг. 6. Этот вариант осуществления содержит осуществление этапов получения значения первой цветовой компоненты и определение значения первой цветовой компоненты, если пиксель является пикселем изображения RAP входной видеопоследовательности.
В этом варианте осуществления, способ переходит от этапа S1 на фиг. 1, и этап S50 содержит исследование, является ли текущее изображение изображением RAP. Если текущее изображение является изображением RAP, способ переходит к этапу S2 на фиг. 1. Если же текущее изображение не является изображением RAP, способ, альтернативно, переходит к этапу S51. Этот этап S51 содержит кодирование значения первой цветовой компоненты пикселя в первом цветовом пространстве. Это значение первой цветовой компоненты является исходным значением первой цветовой компоненты, вводимым в процесс кодирования. Поэтому, в отчетливом контрасте с изображениями RAP, когда значение первой цветовой компоненты в первом цветовом пространстве определяется на этапе S3, и, как описано выше, для изображений не-RAP исходное и входное значения первой цветовой компоненты используются для пикселя и, таким образом, кодируются на этапе S51. Затем кодированное значение первой цветовой компоненты, полученное на этапе S51, используется совместно с кодированными значениями второй и третьей цветовых компонент, полученных на этапе S1, в качестве кодированного представления пикселя.
Кодирование на этапе S51, предпочтительно, содержит определение внутреннего или внешнего предсказания значения первой цветовой компоненты, преобразование вычисленной ошибки предсказания и квантование коэффициентов преобразования в соответствии с тем, что ранее было описано здесь в связи с фиг. 2 и 5.
В общем случае, качество изображений RAP или IRAP особенно важно в видеопоследовательности. Причина того, что другие изображения не-RAP/IRAP в видеопоследовательности прямо или косвенно кодируются и декодируются с использованием изображений RAP/IRAP в качестве опорных изображений. Поэтому, ошибка, вносимая в изображение RAP/IRAP в ходе кодирования, может распространяться на следующие изображения, которые кодируются с использованием изображения RAP/IRAP в качестве прямого опорного изображения или косвенного опорного изображения, т.е. опорного изображения второго или следующего поколения. Соответственно, в целом, важно кодировать изображения RAP/IRAP с высоким качеством.
На фиг. 7 показана блок-схема последовательности операций, демонстрирующая дополнительные, необязательные этапы способа, показанного на фиг. 1. Способ переходит от этапа S1 на фиг. 1. В этом варианте осуществления, способ также содержит осуществление этапов получения значения первой цветовой компоненты и определение значения первой цветовой компоненты, если пиксель является пикселем изображения в самом низком слое входной видеопоследовательности, изображения которой организованы в виде иерархической структуры GOP.
В этом варианте осуществления, способ переходит от этапа S1 на фиг. 1, и этап S60 содержит исследование, принадлежит ли текущее изображение самому низкому слою во входной видеопоследовательности, организующей изображения в виде иерархической структуры GOP.
Фиг. 11 схематически демонстрирует входную видеопоследовательность 1, организующую изображения в виде такой иерархической структуры GOP. На фиг. 11, GOP начинается с изображением RAP/IRAP 2 (номер 0). В типичном подходе, такие изображения RAP/IRAP 2 располагаются с фиксированным интервалом, например, каждое второе. Затем изображения между изображениями RAP/IRAP 2 обычно кодируются структурой GOP, где изображение (номер 8) обычно предсказывается и кодируется за восемь изображений до времени отображения, и затем это изображение (номер 8) и ранее кодированные изображения (номер 0) используются для предсказания и кодирования изображения (номер 4) за четыре изображения до времени отображения. Затем, изображения (номера 2 и 6) за два и шесть изображений до времени отображения предсказываются и кодируются, после чего следует предсказание и кодирование изображений (номера 1, 3, 5, 7) за один, три, пять и семь изображений до времени отображения. Изображения (номера 1, 3, 5, 7) в слое 3 принадлежат наивысшему иерархическому уровню, изображения (номер 2, 6) на уровне 2 принадлежат следующему после наивысшего иерархического уровня, изображение (номер 4) в слое 1 принадлежит следующему после самого низкого иерархического слоя, и изображения (номера 0, 8) в слое 0 принадлежат самому низкому иерархическому слою. Обычно изображения в наивысшем иерархическом слое не используются для предсказания любых других изображений, т.е. так называемых неопорных изображений. Неопорные изображения можно удалять без ущерба возможностям декодирования битового потока видео. Затем структура GOP, показанная на фиг. 11 повторяется до следующего изображения IRAP.
Стрелки на фиг. 11 иллюстрируют направления предсказания для опорных изображений. Например, изображение номер 4 кодируется с использованием изображений за номерами 0, 8 в качестве опорных изображений.
Если текущее изображение является изображением в самом низком слое, т.е. слое 0 на фиг. 11, способ переходит от этапа S60 на фиг. 6 к этапу S2 на фиг. 1. Если же текущее изображение является изображением в слое, более высоком в иерархической структуре GOP, чем самый низкий слой, т.е. слой 1-3 на фиг. 11, способ альтернативно переходит к этапу S61. Этот этап S61 содержит кодирование значения первой цветовой компоненты пикселя в первом цветовом пространстве. Это значение первой цветовой компоненты является исходным значением первой цветовой компоненты, вводимым в процесс кодирования. Поэтому, в отчетливом контрасте с изображениями в самом низком слое, когда значение первой цветовой компоненты в первом цветовом пространстве определяется на этапе S3, и, как описано выше, для изображений в более высоких слоях исходное и входное значения первой цветовой компоненты используются для пикселя и, таким образом, кодируются на этапе S61. Затем кодированное значение первой цветовой компоненты, полученное на этапе S61, используется совместно с кодированными значениями второй и третьей цветовых компонент форма этап S1 в качестве кодированного представления пикселя.
Этот этап S61 соответствует к этапу S51 на фиг. 6.
В общем случае, качество изображений самого низкого слоя особенно важно в иерархической или многослойной видеопоследовательности. Причина в том, что изображения в более высоких слоях в видеопоследовательности прямо или косвенно кодируются и декодируются с использованием изображения в самом низком слое в качестве опорных изображений, см. фиг. 11. Поэтому ошибка, вносимая в изображение в самом низком слое в ходе кодирования может распространяться на следующие изображения, которые кодируются с использованием этого изображения в качестве прямого опорного изображения или косвенного опорного изображения. Соответственно, в целом, важно кодировать изображения в самом низком слое с высоким качеством.
На фиг. 8 показана блок-схема последовательности операций, демонстрирующая дополнительные, необязательные этапы способа, показанного на фиг. 1. Способ переходит от этапа S4 на фиг. 1 или этапа S42 на фиг. 5. Следующий этап S70 содержит декодирование кодированного значения первой цветовой компоненты для получения реконструированного значения первой цветовой компоненты в первом цветовом пространстве. Следующий этап S71 содержит определение адаптивного смещения выборки (SAO), которое минимизирует 1) квадратичную или абсолютную ошибку между значением первой цветовой компоненты в первом цветовом пространстве и суммой реконструированного значения первой цветовой компоненты в первом цветовом пространстве и SAO или 2) издержки скорости-искажения, вычисляемые как функция искажения, представляющего разность между значением первой цветовой компоненты в первом цветовом пространстве и суммой реконструированного значения первой цветовой компоненты в первом цветовом пространстве и SAO и количества битов, потраченных для кодирования SAO.
Одна технология для циклической фильтрации, используемая в HEVC, является SAO. Когда указано, что SAO используется для блока пикселей, в терминологии HEVC, единице дерева кодирования (CTU), оно либо модифицирует пиксельные значения в соседних полосах пиксельных значений, либо модифицирует пиксельные значения, которые имеют определенную краевую характеристику. В первом случае, смещения полосы задаются в четырех полосах или категориях, где указана позиция полосы с наименьшими пиксельными значениями, за которыми следуют другие полосы с увеличивающимися пиксельными значениями. В последнем случае, смещения краев задаются в четырех категориях: максимумы, минимумы, этап увеличения или этап уменьшения, в заданном направлении, т.е. классе смещений края. SAO задаются для каждого блока пикселей, но также могут копироваться из соседнего блока пикселей. SAO можно использовать независимо для соответствующей цветовой компоненты, например, яркостной и цветностных компонент.
Декодирование кодированного значения первой цветовой компоненты на этапе S70, в основном, обратно кодированию, осуществляемому на этапе S4. Поэтому декодирование, в необязательном порядке, содержит декодирование кодированных, квантованных коэффициентов преобразования, например, с использованием энтропийного декодера. На стороне кодера энтропийное декодирование не требуется, поскольку это беспотерьный процесс и поскольку кодер уже имеет квантованные коэффициенты преобразования и т.д. Затем квантованные коэффициенты преобразования, полученные декодированием, подвергаются обратному квантованию и затем обратному преобразованию для получения реконструированного остатка или ошибки предсказания. Затем реконструированное значение первой цветовой компоненты получается путем прибавления реконструированного остатка к внутреннему или внешнему предсказанию для пикселя. Дополнительную информацию о процессе декодирования можно найти в документе [4] и, в частности, разделах 8.4-8.6 и 9.4.3.
В первом варианте осуществления, SAO определяется путем минимизации квадратичной ошибки или абсолютной ошибки между значением первой цветовой компоненты в первом цветовом пространстве, определяемым на этапе S3 на фиг. 1, и суммой SAO и реконструированного значения первой цветовой компоненты, получаемого на этапе S70.
Во втором варианте осуществления, SAO определяется путем минимизации издержек J скорости-искажения (RD), вычисляемых как J=D+λR, где D - искажение, представляющее разность между значением первой цветовой компоненты в первом цветовом пространстве, определяемым на этапе S3 на фиг. 1, и суммой SAO и реконструированного значения первой цветовой компоненты, получаемого на этапе S70, R - количество битов, потраченных для кодирования SAO, и λ - множитель Лагранжа.
Вышеописанный подход можно дополнительно или альтернативно, использовать для определения других смещений или параметров фильтра, традиционно используемых в ходе кодирования и декодирования видеопоследовательностей. Например, внутрицикловые фильтры, например, фильтры устранения блочности и адаптивные циклические фильтры (ALF), которые дополнительно рассмотрены здесь, могут определяться, по существу, как описано выше со ссылкой на смещения SAO.
В некоторых вариантах применения, имеет смысл отключать SAO. Например, в HEVC SAO можно отключать для 64×64 блоков пикселей.
SAO, фильтры устранения блочности, ALF и т.д. также можно определять путем минимизации ошибки или издержек RD во втором цветовом пространстве, например, XYZ или pq(Y)xy, а не в первом цветовом пространстве, например Y'Cb'Cr'. В таком случае, этап S71 предпочтительно содержит определение параметра инструмента кодирования, например SAO, внутрициклового фильтра, фильтра устранения блочности, фильтра ALF и т.д., для, по меньшей мере, одного значения цветовой компоненты в первом цветовом пространстве, которое минимизирует 1) квадратичную ошибку или абсолютную ошибку между значением первой цветовой компоненты во втором цветовом пространстве и суммой реконструированного значения первой цветовой компоненты во втором цветовом пространстве и параметра инструмента кодирования, преобразованного во второе цветовое пространство, или 2) издержки скорости-искажения, вычисляемые как функция искажения, представляющего разность между значением первой цветовой компоненты во втором цветовом пространстве и суммой реконструированного значения первой цветовой компоненты во втором цветовом пространстве и параметра инструмента кодирования, преобразованного во второе цветовое пространство, и количества битов, потраченных для кодирования параметра инструмента кодирования.
В конкретном варианте осуществления, способ кодирования пикселя во входной видеопоследовательности, представленный на фиг. 1, содержит кодирование, на этапе S1, значений цветностной компоненты Cb'Cr' в цветовом пространстве Y'Cb'Cr'. В этом варианте осуществления, этап S2 содержит получение значения яркости Y для пикселя в цветовом пространстве XYZ. Следующий этап S3 содержит определение значения яркостной компоненты Y' пикселя в цветовом пространстве Y'Cb'Cr' на основании минимизации ошибки, вычисленной на основании разности между значением яркости Y в цветовом пространстве XYZ и пробным значением яркости в цветовом пространстве XYZ, причем пробное значение яркости выводится на основании кодированных значений цветностной компоненты Cb'Cr'. Этап S4 содержит, в этом варианте осуществления, кодирование значения яркостной компоненты Y' в цветовом пространстве Y'Cb'Cr'.
В другом конкретном варианте осуществления, способ кодирования пикселя во входной видеопоследовательности, представленный на фиг. 1, содержит кодирование, на этапе S1, значений цветностной компоненты Cb'Cr' в цветовом пространстве Y'Cb'Cr'. В этом варианте осуществления, этап S2 содержит получение значения нелинейной яркости pq(Y) для пикселя в цветовом пространстве pq(Y)xy. Следующий этап S3 содержит определение значения яркостной компоненты Y' пикселя в цветовом пространстве Y'Cb'Cr' на основании минимизации ошибки, вычисленной на основании разности между значением нелинейной яркости pq(Y) в цветовом пространстве pq(Y)xy и пробным значением яркости в цветовом пространстве pq(Y)xy, причем пробное значение яркости выводится на основании кодированных значений цветностной компоненты Cb'Cr'. Этап S4 содержит, в этом варианте осуществления, кодирование значения яркостной компоненты Y' в цветовом пространстве Y'Cb'Cr'.
Выше были представлены варианты осуществления, где значение первой цветовой компоненты в первом цветовом пространстве является значением яркостной компоненты Y' в цветовом пространстве Y'Cb'Cr', и значения второй и третьей цветовых компонент в первом цветовом пространстве являются значениями цветностной компоненты Cb'Cr' в пространстве Y'Cb'Cr'. Это предпочтительный пример реализации варианта осуществления.
Однако варианты осуществления этим не ограничиваются. ICtCp является альтернативным цветовым пространством, в котором значение I несет информацию яркости и значения CtCp несут информацию цветности. В таком примере реализации, значение первой цветовой компоненты в первом цветовом пространстве является значением I в цветовом пространстве IctCp, и значения второй и третьей цветовых компонент в первом цветовом пространстве являются значениями CtCp в цветовом пространстве ICtCp.
Согласно варианту осуществления, значения LMS в цветовом пространстве LMS можно получать из значений RGB и цветового преобразования согласно уравнению 4:
L=(1688*R+2146*G+262*B)/4096
M=(683*R+2951*G+462*B)/4096 (уравнение 4)
S=(99*R+309*G+3688*B)/4096
Затем передаточная функция, например, обратная к EOTFPQ, может применяться к значениям LMS для получения значений нелинейного L'M'S'. Наконец, цветовое преобразование применяется к этому значению L'M'S' для получения значений ICtCp:
I=0,5*L'+0,5*M'
Ct=(6610*L'-13613*M'+7003*S')/4096 (уравнение 5)
Cp=(17933*L'-17390*M'-543*S')/4096
Это означает, что можно преобразовывать значения ICtCp в значения RGB, в основном, путем осуществления вышеупомянутых этапов в обратном порядке и затем дополнительно преобразовывать значения RGB в значения XYZ или pq(Y)xy, как описано выше.
Аспект вариантов осуществления задает способ, проиллюстрированный на фиг. 9, для кодирования, по меньшей мере, одной выборки пикселя входной видеопоследовательности. Входная видеопоследовательность представлена в первом цветовом пространстве. При этом способ содержит:
- получение по меньшей мере, одной выборки входной видеопоследовательности во втором цветовом пространстве, причем второе цветовое пространство отличается от первого цветового пространства,
- кодирование, по меньшей мере, одной выборки одной или двух первых цветовых компонент входной видеопоследовательности в первом цветовом пространстве,
- модификацию, по меньшей мере, одной выборки второй цветовой компоненты входной видеопоследовательности, т.е. первого цветового пространства, на основании минимизации ошибки, вычисленной как разность между, по меньшей мере, одной выборкой входной видеопоследовательности во втором цветовом пространстве и выведенной пробной выборкой во втором цветовом пространстве, причем вывод пробной выборки включает в себя, по меньшей мере, одну кодированную выборку для одной или двух первых цветовых компонент в первом цветовом пространстве, и
- кодирование, по меньшей мере, одной модифицированной выборки второй цветовой компоненты входной видеопоследовательности.
Вышеприведенные варианты осуществления раскрыты, в основном, в связи с кодированием пикселей входной видеопоследовательности, содержащей множественные изображения. Однако варианты осуществления также могут использоваться для кодирования пикселей неподвижного изображения.
Преимущество некоторых вариантов осуществления состоит в том, что кодирование учитывает обработку, которая будет осуществляться над сжатыми данными после декодирования, и ошибку, уже внесенную кодером в один или два цветовых канала. Кодер может изменять сжимаемые данные на другой цветовой канал для генерации сжатых данных, что улучшает результат после осуществления этой обработки.
Кодер предназначен для сжатия блока пикселей в формате Y'Cb'Cr' 4:2:0 или 4:2:2. На первым этапе применяется предсказание внутри выборки или между выборками цветностных компонент Cbpred', Crpred', затем ошибки предсказания Cb'-Cbpred', Cr'-Crpred' преобразуются. Преобразования обычно осуществляются независимо, и квантование полученных коэффициентов преобразования вносит ошибку в окончательные пиксельные значения. Согласно вариантам осуществления, вместо простого преобразования ошибки предсказания для яркостной компоненты, Y'-Y'pred, кодер может пытаться найти новые значения Y' (Yopt') для блока пикселей, которые минимизируют ошибку после их преобразования совместно с декодированными значениями Cb' и Cr' в пространство pq(Y)xy или XYZ, по сравнению с исходными значениями pq(Y)xy или XYZ. Таким образом, согласно такому подходу, альтернативно будет преобразовываться ошибка предсказания для яркостной компоненты, Yopt'-Y'pred.
Подход предполагает воздействие только на яркостную компоненту. В этом случае, кодер сначала определяет исходную яркость. Это делается путем повышающей дискретизации исходного Y'Cb'Cr' 4:2:0 или 4:2:2 до 4:4:4 с последующим преобразованием через RGB в pq(Y)xy или XYZ. Затем применяется процедура оптимизации, в многом аналогичная используемой в способе Ajusty, описанном в приложении A, для отыскания значений Y' в каждом пикселе, которые дают значения pq(Y) или Y, наилучшим образом совпадающие с исходными значениями при аналогичном преобразовании совместно со сжатыми версиями Cb' и Cr'.
Согласно дополнительному варианту осуществления кодер выполнен с возможностью применения предсказания внутри выборки или между выборками к блоку пикселей в формате Y'Cb'Cr' 4:2:0 или 4:2:2. На первым этапе применяется предсказание внутри выборки или между выборками цветностных компонент Cbpred', Crpred'. Предсказания обычно осуществляются независимо. На этот раз, вместо простого применения предсказание яркостной компоненты, кодер будет пытаться найти для блока новые значения Y' (Yopt'), которые минимизируют ошибку после их преобразования совместно с предсказанными значениями Cb' и Cr' в пространство pq(Y)xy или XYZ, по сравнению с исходными значениями pq(Y)xy или XYZ.
Согласно другому варианту осуществления исходная яркость Y и/или исходный xy сообщается кодеру, а не выводится из выборок Y'Cb'Cr' 4:2:0 или 4:2:2.
Согласно другому варианту осуществления, другие фильтры повышающей дискретизации F1 могут использоваться для преобразования, по меньшей мере, одной выборки цветовой компоненты в ходе кодирования и реконструкции, например, Cbrec'Crrec' из 4:2:0 или 4:2:2 в 4:4:4 для вывода оптимального Y', вместо фильтров повышающей дискретизации F2, используемых для повышающей дискретизации Cbrec' Crrec' до полного разрешения при обработке после снятия сжатия, но до отображения. Рассмотрим фиг. 10, где кодер состоит из всех частей до последнего этапа декодирования видеосигнала, т.е. слева от вертикальной пунктирной линии. Однако декодирование на стороне кодера требуется только для реконструкции пиксельных значений. Способ Ajusty, заданный в приложении A, использует реконструированные пиксельные значения для, по меньшей мере, одной выборки цветовой компоненты, например Cbrec'Crrec'. Это делается для снижения сложности повышающей дискретизации и/или снижения чувствительности к шуму при применении способа Ajusty. Снижение влияния шума позволяет уменьшать количество битов, необходимое для сжатия Yopt'. В зависимости от битовой скорости, доступной для кодирования, может иметь смысл применять способ Ajusty несколько более консервативно, чем оптимально на основе от выборки к выборке.
Фильтры повышающей дискретизации F1, используемые для оценивания в способе Ajusty, можно рассматривать как комбинацию предварительной фильтрации Y' до кодирования и повышающей дискретизации Cb' и Cr'. Таким образом, в рамках повышающей дискретизации для оценивания в способе Ajusty шум можно удалить. Один подход к более консервативному применению способа Ajusty состоит в использовании фильтров повышающей дискретизации F1 с более высоким ослаблением более высоких частот. Одним примером такого фильтра является билинейный фильтр, который в большей степени ослабляет более высокие частоты и прост в вычислении. Однако другие более длинные фильтры также могут представлять интерес для использования. Этот подход также можно использовать в качестве предобработки до видеокодера, когда используется способ Ajusty. В этом случае все цветовые компоненты являются несжатыми.
Согласно другому варианту осуществления, другие варианты осуществления используются для модификации ʺисходныхʺ выборок одной цветовой компоненты, подлежащих кодированию, для, по меньшей мере, одной выборки, одного блока или одного изображения видеосигнала. Таким образом, кодирование на основе любого инструмента кодирования может применяться к модифицированному оригиналу, а не к немодифицированному оригиналу. Примерами инструментов кодирования при кодировании видеоданных являются предсказание выборки с компенсацией движения, предсказание внутри выборки, циклическая фильтрация, фильтрация устранения блочности, адаптивные смещения выборки, адаптивная циклическая фильтрация, адаптивное предсказание выборки с компенсацией движения и т.д.
HEVC включает в себя внутрицикловый фильтр устранения блочности, предназначенный для снижения артефактов блочности, обусловленных блочным кодированием. Фильтр устранения блочности применяется для яркостных и цветностных компонент, но только на пикселях или выборках, находящихся на границах блока. Сила фильтра определяется на основании соотношения типов блока на каждой стороне границы, имеет ли любой из блоков коэффициенты преобразования и/или различия в векторах движения и опорных индексах. Из силы фильтра и среднего QP, определяются два значения tC и бета. Смещения к tC и бета могут сигнализироваться на уровне изображения.
В другом варианте осуществления, SAO оптимизируется для модифицированной версии яркостной компоненты, например, относительно Yopt' вместо исходного Y', с использованием реконструированных цветностных компонент Cbrec'Crrec'. Согласно варианту осуществления, предполагается, что в кодер вводится Y'Cb'Cr' 4:2:0 или 4:2:2, и также линейная яркость Y из XYZ, может выводиться из Y'Cb'Cr', см. нижеприведенный вариант осуществления, или является ʺистиннойʺ исходной линейной яркостью, предусмотрены следующие этапы:
1. Дискретизацию с повышением Cbrec'Crecr' до 4:4:4. Она осуществляется на реконструированных пикселях, в том смысле, что после возможного добавления остатков к внутреннему/внешнему предсказанию и также возможного применения фильтрации устранения блочности для вывода Y'Cb'Cr' в 4:2:0 или 4:2:2.
2. Вывод оптимального Y', нового ʺоригиналаʺ, обозначенного здесь Yopt' при условии, что Cbrec'Crrec' находятся в формате 4:4:4, что минимизирует ошибку Y, где Y - правильная линейная яркость. В порядке оптимизации отыскания Yopt', тестируемый в настоящее время Y' обозначенный Ycurr' объединяется с Cbrec'Crrec' в 4:4:4, преобразованным в R'G'B', и затем подвергается обратному перцепционному квантованию для вывода линейного RGB, который затем преобразуется в линейную яркость Ycurr. Наилучшим Ycurr' является тот, который минимизирует отличие от Y, т.е. Yopt'. В необязательном порядке, Y подвергается перцепционному квантованию и обратному квантованию прежде чем его используют для оптимизации.
3. Определение смещений для SAO для минимизации ошибки в реконструированной яркости Yrec' и Yopt', чтобы Yrec'+смещение было как можно ближе к Yopt'. Выбирать смещения либо для смещения полосы или смещения края, также какое направление является наилучшим в этом случае, которые минимизируют квадратичную ошибку или издержки скорости-искажения (RD). Издержки RD вычисляются как функция искажения и количества потраченных битов, где биты масштабируются значением лямбда, масштабным коэффициентом, который зависит от параметра квантования.
Некоторые модификации битового потока можно предусмотреть в случае, когда новые значения смещения для SAO отличаются от используемых при обычном кодировании, например, своими значениями или типом. В этом случае, декодер также должен знать об этих модификациях.
Согласно другому, более общему, варианту осуществления видеокодера, сначала осуществляется кодирование цветности (Cbrec'Crrec'), тогда как кодирование яркости оптимизируется относительно Yopt' вместо исходного Y' для применимых инструментов и/или режимов кодирования видеоданных видеокодека. В частности, следующие этапы могут осуществляться в зависимости от инструментов кодирования видеоданных:
В предсказании с компенсацией движения:
1. Для вывода предсказания цветности Cbpred'Crpred' можно использовать наилучший вектор движения с точностью до полупикселя или пикселя. Затем можно вывести Yopt', который минимизирует ошибку в линейной яркости по сравнению с оригиналом. В порядке оптимизации отыскания Yopt', текущий тестируемый Y', обозначенный Ycurr', совместно с Cbpred'Crpred', в формате 4:4:4, преобразуется в R'G'B' и затем подвергается обратному перцепционному квантованию для вывода линейного RGB, который затем преобразуется в линейную яркость Ycurr. Наилучшим Ycurr' является тот, который минимизирует отличие от Y, например Yopt'.
2. Найти наилучший вектор движения для яркости с точностью до долей пикселя с членом искажения, который включает в себя разность между Yopt' и предсказанием яркости Ypred'. Обычно искажение определяется как сумма абсолютных величин разностей (SAD) или сумма квадратов разностей (SSD). Вычисление издержек RD включает в себя аддитивный член идережек с масштабным коэффициентом лямбда, зависящим от параметра квантования, и количество битов, необходимое для кодирования вектора движения.
Во внутреннем предсказании:
1. Сначала можно определять наилучшие режимы цветности и затем дискретизировать с повышением предсказание цветности Cbpred'Crpred' до 4:4:4 и использовать его для вывода Yopt'.
2. Затем наилучший режим яркости определяется с использованием Yopt' в качестве исходного, например, наилучший режим яркости является режимом, который минимизирует член искажения, который включает в себя разность между Yopt' и предсказанием яркости Ypred'.
В кодировании остатка:
1. Сначала наилучшие коэффициенты преобразования цветности выводятся, подвергаются обратному квантованию и обратному преобразованию и добавляются к предсказанию, в результате чего, генерируется реконструированная цветность Cbrec'Crrec'.
2. Затем Yopt' можно найти путем повышающей дискретизации реконструированной цветности Cbrec'Crrec' до 4:4:4 и тестирования вариантов Y', обозначенных Ycurr', после преобразования Ycurr' и дискретизации с повышением цветности в R'G'B', применения обратного перцептивного квантования для вывода линейного RGB с последующим преобразованием RGB в линейную яркость, например, Y для XYZ. Выбирается тестируемый Ycurr', который дает наименьшую ошибку по сравнению с исходной линейной яркостью, например Yopt'.
3. Затем для яркости остаток Yopt'-Ypred', где Ypred' является внутренним или внешним предсказанием, кодируется вместо исходного Y' - Ypred'.
Другой технологией, которая использовалась для циклической фильтрации в ходе стандартизации HEVC, является адаптивный циклическая фильтрация (ALF). Когда ALF используется для блока, она фильтрует пиксельные значения блока согласно заданным коэффициентам фильтрации и смещению.
В ALF:
1. Дискретизировать с повышением реконструированную цветность Cbrec'Crrec' до 4:4:4 согласно вышеупомянутому этапу 1.
2. Выводить Yopt' согласно способу Ajusty на вышеупомянутом этапе 2.
3. Определять коэффициенты фильтрации и смещения для ALF таким образом, чтобы ошибка между Yrec' и Yopt' была минимальной.
Все описанные здесь этапы являются лишь иллюстрацией некоторых вариантов осуществления. Не требуется, чтобы все варианты осуществления включали в себя все раскрытые этапы, или чтобы этапы осуществлялись именно в том порядке, как изображено или описано здесь. Кроме того, некоторые варианты осуществления могут включать в себя этапы, не проиллюстрированные или не описанные здесь, в том числе, этапы, связанные с одним или более из раскрытых здесь этапов.
Другой аспект вариантов осуществления относится к устройству для кодирования пикселя входной видеопоследовательности. Устройство выполнено с возможностью кодирования значения второй цветовой компоненты и значения третьей цветовой компоненты пикселя в первом цветовом пространстве. Устройство также выполнено с возможностью получения значения первой цветовой компоненты во втором цветовом пространстве для пикселя, причем второе цветовое пространство отличается от первого цветового пространства. Устройство дополнительно выполнено с возможностью определения значения первой цветовой компоненты пикселя в первом цветовом пространстве на основании минимизации ошибки, вычисленной на основании разности между значением первой цветовой компоненты во втором цветовом пространстве и пробным значением цветовой компоненты во втором цветовом пространстве. Пробное значение цветовой компоненты выводится на основании кодированного значения второй цветовой компоненты и значения кодированной третьей компоненты. Устройство дополнительно выполнено с возможностью кодирования значения первой цветовой компоненты пикселя в первом цветовом пространстве.
Согласно варианту осуществления, устройство выполнено с возможностью определения, для каждого значения цветовой компоненты из значения второй цветовой компоненты и значения третьей цветовой компоненты, внутреннего или внешнего предсказания значения цветовой компоненты. Устройство также выполнено с возможностью преобразования, для каждого значения цветовой компоненты из значения второй цветовой компоненты и значения третьей цветовой компоненты, ошибки предсказания, вычисленной как разность между значением цветовой компоненты и внутренним или внешним предсказанием для формирования коэффициентов преобразования. Устройство дополнительно выполнено с возможностью квантования, для каждого значения цветовой компоненты из значения второй цветовой компоненты и значения третьей цветовой компоненты, коэффициентов преобразования.
Согласно варианту осуществления, устройство выполнено с возможностью осуществления повышающей дискретизации значения второй цветовой компоненты и значения третьей цветовой компоненты в первом цветовом пространстве для получения дискретизированного с повышением значения второй цветовой компоненты и дискретизированного с повышением значения третьей цветовой компоненты в первом цветовом пространстве. Устройство также выполнено с возможностью преобразования исходного значения первой цветовой компоненты пикселя в первом цветовом пространстве и дискретизированного с повышением значения второй цветовой компоненты и дискретизированного с повышением значения третьей цветовой компоненты в первом цветовом пространстве в значение первой цветовой компоненты во втором цветовом пространстве.
Согласно варианту осуществления, устройство выполнено с возможностью декодирования кодированного значения второй цветовой компоненты и кодированного значения третьей цветовой компоненты для получения реконструированного значения второй цветовой компоненты и реконструированного значения третьей цветовой компоненты в первом цветовом пространстве. Устройство также выполнено с возможностью осуществления повышающей дискретизации реконструированного значения второй цветовой компоненты и реконструированного значения третьей цветовой компоненты для получения дискретизированного с повышением реконструированного значения второй цветовой компоненты и дискретизированного с повышением реконструированного значения третьей цветовой компоненты в первом цветовом пространстве. Устройство дополнительно выполнено с возможностью вывода пробного значения цветовой компоненты во втором цветовом пространстве на основании пробного значения цветовой компоненты в первом цветовом пространстве, дискретизированного с повышением реконструированного значения второй цветовой компоненты и дискретизированного с повышением реконструированного значения третьей цветовой компоненты в первом цветовом пространстве.
Согласно варианту осуществления, устройство выполнено с возможностью выбора пробного значения цветовой компоненты в первом цветовом пространстве, которое минимизирует ошибку, вычисленную на основании разности между значением первой цветовой компоненты во втором цветовом пространстве и пробным значением цветовой компоненты во втором цветовом пространстве, выведенным на основании пробного значения цветовой компоненты в первом цветовом пространстве, кодированного значения второй цветовой компоненты и значения третьей кодированной компоненты.
Согласно варианту осуществления, устройство выполнено с возможностью определения внутреннего или внешнего предсказания значения первой цветовой компоненты в первом цветовом пространстве. Устройство также выполнено с возможностью преобразования ошибки предсказания, вычисленной как разность между значением первой цветовой компоненты в первом цветовом пространстве и внутренним или внешним предсказанием для формирования коэффициентов преобразования. Устройство дополнительно выполнено с возможностью квантования коэффициентов преобразования.
Согласно варианту осуществления, устройство выполнено с возможностью осуществления получения значения первой цветовой компоненты и определения значения первой цветовой компоненты, если пиксель является пикселем изображения точки произвольного доступа, RAP, входной видеопоследовательности.
В другом варианте осуществления, устройство выполнено с возможностью осуществления получения значения первой цветовой компоненты и определения значения первой цветовой компоненты, если пиксель является пикселем изображения в самом низком слое входной видеопоследовательности, изображения которой организованный в виде иерархической структуры групп изображений, GOP.
Согласно варианту осуществления, устройство выполнено с возможностью декодирования кодированного значения первой цветовой компоненты для получения реконструированного значения первой цветовой компоненты в первом цветовом пространстве. Устройство также выполнено с возможностью определения адаптивного смещения выборки, которое минимизирует 1) квадратичную ошибку или абсолютную ошибку между значением первой цветовой компоненты в первом цветовом пространстве и суммой реконструированного значения первой цветовой компоненты в первом цветовом пространстве и адаптивного смещения выборки или 2) издержки скорости-искажения, вычисляемые как функция искажения, представляющего разность между значением первой цветовой компоненты в первом цветовом пространстве и суммой реконструированного значения первой цветовой компоненты в первом цветовом пространстве и адаптивного смещения выборки, и количества битов, потраченных для кодирования адаптивного смещения выборки.
Другой аспект некоторых вариантов осуществления предусматривает кодер. Кодер содержит, в этом варианте осуществления, средство обработки и память, содержащую инструкции, которые, при исполнении средством обработки, предписывают кодеру получать, по меньшей мере, одну выборку входной видеопоследовательности во втором цветовом пространстве, причем второе цветовое пространство отличается от первого цветового пространства. Кодеру также предписывается кодировать, по меньшей мере, одну выборку одной или двух первых цветовых компонент входной видеопоследовательности в первом цветовом пространстве. Кодеру дополнительно предписывается модифицировать, по меньшей мере, одну выборку второй цветовой компоненты входной видеопоследовательности на основании минимизации ошибки, вычисленной как разность между, по меньшей мере, одной выборкой входной видеопоследовательности во втором цветовом пространстве и выведенной пробной выборкой во втором цветовом пространстве, причем вывод пробной выборки включает в себя, по меньшей мере, одну кодированную выборку для одной или двух первых цветовых компонент в первом цветовом пространстве. Кодеру дополнительно предписывается кодировать, по меньшей мере, одну модифицированную выборку второй цветовой компоненты входной видеопоследовательности.
Кодер также может содержать средство получения, выполненное с возможностью получения, по меньшей мере, одной выборки входной видеопоследовательности во втором цветовом пространстве, причем второе цветовое пространство отличается от первого цветового пространства. Кодер дополнительно может содержать средство кодирования, выполненное с возможностью кодирования, по меньшей мере, одной выборки одной или двух первых цветовых компонент входной видеопоследовательности в первом цветовом пространстве. Кодер также может содержать средство модификации, выполненное с возможностью модификации, по меньшей мере, одной выборки второй цветовой компоненты входной видеопоследовательности на основании минимизации ошибки, вычисленной как разность между, по меньшей мере, одной выборкой входной видеопоследовательности во втором цветовом пространстве и выведенной пробной выборкой во втором цветовом пространстве, причем вывод пробной выборки включает в себя, по меньшей мере, одну кодированную выборку для одной или двух первых цветовых компонент в первом цветовом пространстве. Средство кодирования дополнительно выполнено с возможностью кодирования, по меньшей мере, одной модифицированной выборки второй цветовой компоненты входной видеопоследовательности.
Кодер может быть реализован в оборудовании, в программном обеспечении или комбинации оборудования и программного обеспечения. Кодер может быть реализован, например, содержаться, в пользовательском оборудовании, например, мобильном телефоне, например, смартфоне, планшете, настольном компьютере, нетбуке, мультимедийном проигрывателе, сервере потоковой передачи видео, телевизионной приставке или компьютере.
Варианты осуществления являются общими и могут применяться к любому кодеру для определения режимов кодирования в видеокодере. Это также может быть основой для оптимизации нового инструмента кодирования или адаптации существующего инструмента кодирования для лучшего его обеспечения. Некоторые варианты осуществления настоящего изобретения могут применяться к другим цветовым пространствам, например XYZ, xyz, Yxy и т.д., а также другим прореженным форматам, например 4:2:2, которые прорежены только в горизонтальном или вертикальном направлении.
Фиг. 12 демонстрирует конкретную аппаратную реализацию устройства 100 согласно вариантам осуществления. Согласно варианту осуществления, устройство 100 содержит блок 104 ввода, выполненный с возможностью получения, по меньшей мере, одной выборки входной видеопоследовательности во втором цветовом пространстве, причем второе цветовое пространство отличается от первого цветового пространства.
Устройство 100 также содержит блок 101 кодирования, выполненное с возможностью кодирования, по меньшей мере, одной выборки одной или двух первых цветовых компонент входной видеопоследовательности в первом цветовом пространстве. Устройство 100 также содержит выводитель 102, выполненный с возможностью модификации, по меньшей мере, одной выборки второй цветовой компоненты входной видеопоследовательности на основании минимизации ошибки, вычисленной как разность между, по меньшей мере, одной выборкой входной видеопоследовательности во втором цветовом пространстве и выведенной пробной выборкой во втором цветовом пространстве, причем вывод пробной выборки включает в себя, по меньшей мере, одну кодированную выборку для одной или двух первых цветовых компонент в первом цветовом пространстве. Блок 101 кодирования дополнительно выполнен с возможностью кодирования, по меньшей мере, одной модифицированной выборки второй цветовой компоненты входной видеопоследовательности.
Устройство 100 также может содержать блок 105 вывода, выполненный с возможностью вывода кодированного битового потока.
Блок 104 ввода может быть выполнен в виде общего блока ввода, в частности, в случае проводного соединения с внешними устройствами. Альтернативно, блок 104 ввода может быть выполнен в виде приемника или приемопередатчика, в частности, в случае беспроводного соединения с внешними устройствами. Соответственно, блок 105 вывода может быть выполнен в виде общего блока вывода, в частности, в случае проводного соединения с внешними устройствами. Альтернативно, блок 105 вывода может быть выполнен в виде передатчика или приемопередатчика, в частности, в случае беспроводного соединения с внешними устройствами.
Блок 104 ввода, предпочтительно, подключен к блоку 101 кодирования для пересылки на него видеосигнала, подлежащего кодированию. Блок 101 кодирования предпочтительно, подключен к выводителю 102. Выводитель 102 предпочтительно, подключен к блоку 105 вывода для пересылки кодированного битового потока на декодер.
Альтернативно, по меньшей мере, некоторые из описанных здесь этапов, функций, процедур модулей и/или блоков можно реализовать программными средствами, например, компьютерной программы для выполнения пригодной схемой обработки, например, одним или более процессорами или блоками обработки.
Примеры схемы обработки включает в себя, но без ограничения, один или более микропроцессоров, один или более цифровых сигнальных процессоров (DSP), один или более центральных процессоров (CPU), оборудование ускорения видеообработки и/или любую пригодную программируемую логическую схему, например, одну или более вентильных матриц, программируемых пользователем (FPGA), или один или более программируемых логических контроллеров (PLC).
Следует также понимать, что существует возможность повторного использования общих возможностей обработки любого традиционного устройства или блока, в котором реализована предложенная технология. Можно также повторно использовать существующее программное обеспечение, например, путем перепрограммирования существующего программного обеспечения или путем добавления новых программных компонентов.
В конкретном варианте осуществления, устройство 110, см. фиг. 13, содержит процессор 111 и память 112, содержащую инструкции, которые может выполнять процессор 111. Процессор 111 выполнен с возможностью получения, по меньшей мере, одной выборки входной видеопоследовательности во втором цветовом пространстве, причем второе цветовое пространство отличается от первого цветового пространства. Процессор 111 также выполнен с возможностью кодирования, по меньшей мере, одной выборки одной или двух первых цветовых компонент входной видеопоследовательности в первом цветовом пространстве. Процессор 111 дополнительно выполнен с возможностью модификации, по меньшей мере, одной выборки второй цветовой компоненты входной видеопоследовательности на основании минимизации ошибки, вычисленной как разность между, по меньшей мере, одной выборкой входной видеопоследовательности во втором цветовом пространстве и выведенной пробной выборкой во втором цветовом пространстве, причем вывод пробной выборки включает в себя, по меньшей мере, одну кодированную выборку для одной или двух первых цветовых компонент в первом цветовом пространстве. Процессор 111 дополнительно выполнен с возможностью кодирования, по меньшей мере, одной модифицированной выборки второй цветовой компоненты входной видеопоследовательности.
В другом конкретном варианте осуществления, устройство 110, показанное на фиг. 13, содержит процессор 111 и память 112, содержащую инструкции, которые может выполнять процессор 111. В этом случае, процессор 111 выполнен с возможностью кодирования значения второй цветовой компоненты и значения первой цветовой компоненты в первом цветовом пространстве. Процессор 111 также выполнен с возможностью получения значения первой цветовой компоненты во втором цветовом пространстве. Процессор 111 дополнительно выполнен с возможностью определения значения первой цветовой компоненты в первом цветовом пространстве. Процессор 111 дополнительно выполнен с возможностью кодирования значения первой цветовой компоненты пикселя в первом цветовом пространстве.
Согласно варианту осуществления, устройство 110 также содержит блок 113 ввода, выполненный с возможностью приема видео, подлежащего кодированию. В таком случае, процессор 111 выполнен с возможностью принимать видео, подлежащее кодированию от блока 113 ввода.
Согласно варианту осуществления, устройство 110 также содержит блок 114 вывода, выполненный с возможностью вывода кодированного битового потока, принятого от процессора 111.
В конкретном варианте осуществления, процессор 111 выполнен с возможностью, при выполнении инструкций, хранящихся в памяти 112 для осуществления вышеописанных операций. Процессор 111, таким образом, соединен с памятью 112 для обеспечения нормального выполнения программного обеспечения.
Компоненты, показанные на фиг. 13, изображены как отдельные блоки, находящийся в едином более крупном блоке. Однако на практике, устройство 110 может содержать несколько разных физических компонентов, составляющих единый проиллюстрированный компонент, например, блок 113 ввода может содержать контакты для присоединения проводов для проводного соединения и радиоприемопередатчик для беспроводного соединения. Аналогично, устройство 110 может состоять из множественных физически отдельных компонентов, каждый из которых может иметь свои собственные соответствующие компоненты процессора, памяти и интерфейса. В определенных сценариях, где устройство 110 содержит множественные отдельные компоненты, один или более из отдельных компонентов могут совместно использоваться среди несколько устройства. Например, единственный блок памяти может совместно использоваться множественными устройствами 110.
Процессор 111 может быть комбинацией одного или более из микропроцессора, контроллера, микроконтроллера, центрального процессора, цифрового сигнального процессора, специализированной интегральной схемы, вентильной матрицы, программируемой пользователем, или любого другого подходящего вычислительного устройства, ресурса или комбинации оборудования, программного обеспечения и/или кодированной логики, выполненной с возможностью обеспечения, либо самостоятельно, либо совместно с другими компонентами устройства, например, памятью 112 или функциональными возможностями устройства. Например, процессор 111 может выполнять инструкции, хранящиеся в памяти 112. Такие функциональные возможности могут включать в себя обеспечение различных признаков кодирования или декодирования и/или любого из других раскрытых здесь признаков или преимуществ.
Память 112 может содержать любую форму энергозависимой или энергонезависимой компьютерно-считываемой памяти, включая, без ограничения, постоянную память, твердотельную память, дистанционно установленную память, магнитные носители, оптические носители, оперативную память (RAM), постоянную память (ROM), сменные носители или любой другой подходящий локальный или удаленный компонент памяти. В памяти 112 могут храниться любые подходящие инструкции, данные или информация, в том числе, программное обеспечение и кодированную логику, используемые устройством 110. Память 112 может использоваться для хранения любых вычислений, производимых процессором 111, и/или любых данных, принятых через интерфейсы ввода/вывода, в том числе, блок 113 ввода.
Устройство 110 также содержит блок 113 ввода и блок 114 вывода, т.е. интерфейсы ввода/вывода, которые могут использоваться в проводной или беспроводной передаче видео и/или данных на устройство 110 и от него. Интерфейсы ввода/вывода могут включать в себя радиопередатчик и/или приемник, которые могут быть подключены к антенне или содержать ее. Интерфейсы ввода/вывода могут принимать видеосигнал, подлежащий кодированию или декодированию.
Любые надлежащие этапы, способы или функции могут осуществляться посредством компьютерного программного продукта, который может выполняться, например, компонентами и оборудованием, проиллюстрированным в прилагаемых чертежах. Например, память 112 может содержать компьютерно-считываемое средство, на котором может храниться компьютерная программа. Компьютерная программа может включать в себя инструкции, которые предписывают процессору 111 и любым оперативно подключенным узлам и устройствам, например, блоку 113 ввода, блоку 114 вывода и памяти 112, выполнять способы согласно описанным здесь вариантам осуществления. Таким образом, компьютерная программа и/или компьютерный программный продукт могут обеспечивать средство для осуществления любых раскрытых здесь этапов.
Любые надлежащие этапы, способы или функции могут осуществляться посредством одного или более функциональных модулей. Каждый функциональный модуль может содержать программное обеспечение, компьютерные программы, подпрограммы, библиотеки, исходный код, или любую другую форму исполнимых инструкций, которые выполняются, например, процессором. В некоторых вариантах осуществления, каждый функциональный модуль может быть реализован в оборудовании и/или в программном обеспечении. Например, один или более или все функциональные модули могут быть реализованы процессором 111, возможно, совместно с памятью 112. Таким образом, процессор 111 и память 112 могут быть организованы так, чтобы процессор 111 мог извлекать инструкции из памяти 112 и исполнять извлеченные инструкции, чтобы соответствующий функциональный модуль осуществлял любые раскрытые здесь этапы или функции.
На фиг. 14 показана упрощенная блок-схема, демонстрирующая пример пользовательского оборудования (UE) 200, содержащего процессор 210, связанную память 220 и схему 230 связи.
В этом конкретном примере, по меньшей мере, некоторые из описанных здесь этапов, функций, процедур модулей и/или блоков реализованы в компьютерной программе 240, которая загружается в память 220 для выполнения схемой обработки, включающей в себя один или более процессоров 210. Процессор 210 и память 220 соединены друг с другом для обеспечения нормального выполнения программного обеспечения. Схема 230 связи также подключена к процессору 210 и/или памяти 220 для обеспечения ввода и/или вывода видеоданных и запросов настройки или поиска.
Пользовательское оборудование 200 может представлять собой любое устройство или приспособление, которое может принимать и обрабатывать видеоданные. Например, пользовательское оборудование 200 может представлять собой компьютер, стационарный или портативный, например, портативный компьютер, смартфон, планшет, телевизионную приставку и т.д.
Термин 'процессор' следует понимать в общем смысле как любую систему или устройство, способное выполнять программный код или инструкции компьютерной программы для осуществления конкретной задачи обработки, определения или вычисления.
Таким образом, схема обработки, включающая в себя один или более процессоров, выполнена с возможностью осуществления, при выполнении компьютерной программы, строго определенных задач обработки, например, описанных здесь.
Схема обработки предназначена не только для выполнения вышеописанных этапов, функций, процедур и/или блоков, но может также выполнять другие задачи.
Согласно варианту осуществления, компьютерная программа 240 содержит инструкции, которые, при выполнении процессором 210, предписывают процессору 210 получать, по меньшей мере, одну выборку входной видеопоследовательности во втором цветовом пространстве, причем второе цветовое пространство отличается от первого цветового пространства. Процессору 210 также предписывается кодировать, по меньшей мере, одну выборку одной или двух первых цветовых компонент входной видеопоследовательности в первом цветовом пространстве. Процессору 210 дополнительно предписывается модифицировать, по меньшей мере, одну выборку второй цветовой компоненты входной видеопоследовательности на основании минимизации ошибки, вычисленной как разность между, по меньшей мере, одной выборкой входной видеопоследовательности во втором цветовом пространстве и выведенной пробной выборкой во втором цветовом пространстве, причем вывод пробной выборки включает в себя, по меньшей мере, одну кодированную выборку для одной или двух первых цветовых компонент в первом цветовом пространстве. Процессору 210 дополнительно предписывается кодировать, по меньшей мере, одну модифицированную выборку второй цветовой компоненты входной видеопоследовательности.
В конкретном варианте осуществления, компьютерная программа 240 содержит инструкции, которые, при исполнении процессором 210, предписывают процессору 210 кодировать значение второй цветовой компоненты и значения третьей цветовой компоненты, пикселя входной видеопоследовательности, в первом цветовом пространстве. Процессору 210 также предписывается получать значение первой цветовой компоненты во втором цветовом пространстве для пикселя, причем второе цветовое пространство отличается от первого цветового пространства. Процессору 210 дополнительно предписывается определять значение первой цветовой компоненты пикселя в первом цветовом пространстве на основании минимизации ошибки, вычисленной на основании разности между значением первой цветовой компоненты во втором цветовом пространстве и пробным значением цветовой компоненты во втором цветовом пространстве. Пробное значение цветовой компоненты выводится на основании кодированного значения второй цветовой компоненты и значения кодированной третьей компоненты. Процессору 210 дополнительно предписывается кодировать значение первой цветовой компоненты пикселя в первом цветовом пространстве.
В другом конкретном варианте осуществления, компьютерная программа 240 для кодера содержит компьютерный программный код, который, при исполнении, предписывает кодеру получать, по меньшей мере, одну выборку входной видеопоследовательности во втором цветовом пространстве, причем второе цветовое пространство отличается от первого цветового пространства. Кодеру также предписывается кодировать, по меньшей мере, одну выборку одной или двух первых цветовых компонент входной видеопоследовательности в первом цветовом пространстве. Кодеру дополнительно предписывается модифицировать, по меньшей мере, одну выборку второй цветовой компоненты входной видеопоследовательности на основании минимизации ошибки, вычисленной как разность между, по меньшей мере, одной выборкой входной видеопоследовательности во втором цветовом пространстве и выведенной пробной выборкой во втором цветовом пространстве, причем вывод пробной выборки включает в себя, по меньшей мере, одну кодированную выборку для одной или двух первых цветовых компонент в первом цветовом пространстве. Кодеру дополнительно предписывается кодировать, по меньшей мере, одну модифицированную выборку второй цветовой компоненты входной видеопоследовательности.
Предложенная технология также обеспечивает носитель 250, содержащий компьютерную программу 240. Носитель 250 представляет собой один из электронного сигнала, оптического сигнала, электромагнитного сигнала, магнитного сигнала, электрического сигнала, радиосигнала, микроволнового сигнала или компьютерно-считываемого носителя 250 данных.
В порядке примера, программное обеспечение или компьютерную программу 240 можно реализовать как компьютерный программный продукт, который нормально переносится или хранится на компьютерно-считываемом носителе 240, предпочтительно, энергонезависимом компьютерно-считываемом носителе 250 данных. Компьютерно-считываемый носитель 250 может включать в себя один или более сменных или стационарных запоминающих устройств, включающих в себя, но без ограничения, постоянную память (ROM), оперативную память (RAM), компакт-диск (CD), цифровой универсальный диск (DVD), диск Blue-ray, память с интерфейсом универсальной последовательной шины (USB), запоминающее устройство типа жесткого диска (HDD), флеш-память, магнитную ленту или любое другое традиционное запоминающее устройство. Таким образом, компьютерная программа 240 может загружаться в рабочую память компьютера или эквивалентного устройства обработки, представленного пользовательским оборудованием 200 на фиг. 14, для выполнения его процессором 210.
Дополнительный аспект некоторых вариантов осуществления предусматривает компьютерный программный продукт для кодера, содержащего компьютерную программу 240 для кодера и компьютерно-считываемое средство 250, на котором хранится компьютерная программа 240 для кодера.
Таким образом, представленную(ые) здесь блок-схему или блок-схемы операций можно рассматривать как блок-схему или блок-схемы компьютера, при осуществлении одним или более процессорами. Соответствующее устройство можно определить как группу функциональных модулей, где каждый этап, осуществляемый процессором, соответствует функциональному модулю. В этом случае, функциональные модули реализованы в виде компьютерной программы, выполняющейся на процессоре. Следовательно, устройство можно альтернативно определить как группу функциональных модулей, где функциональные модули реализованы в виде компьютерной программы, выполняющейся на, по меньшей мере, одном процессоре.
Таким образом, компьютерная программа, присутствующая в памяти, может быть организована как соответствующие функциональные модули, выполненные с возможностью осуществления, при выполнении процессором, по меньшей мере, часть описанных в данном документе этапов и/или задач. Пример таких функциональных модулей проиллюстрирован на фиг. 15.
На фиг. 15 показана упрощенная блок-схема устройства 120 с функциональными модулями. Устройство 120 содержит блок получения для получения/ средство 121 получения, выполненное с возможностью получения, по меньшей мере, одной выборки входной видеопоследовательности во втором цветовом пространстве, причем второе цветовое пространство отличается от первого цветового пространства. Устройство 120 также содержит блок кодирования для кодирования/ средство 123 кодирования, выполненное с возможностью кодирования, по меньшей мере, одной выборки одной или двух первых цветовых компонент входной видеопоследовательности в первом цветовом пространстве. Устройство 120 дополнительно содержит блок модификация для модификации/ средство 122 модификации, выполненное с возможностью модификации, по меньшей мере, одной выборки второй цветовой компоненты входной видеопоследовательности на основании минимизации ошибки, вычисленной как разность между, по меньшей мере, одной выборкой входной видеопоследовательности во втором цветовом пространстве и выведенной пробной выборкой во втором цветовом пространстве, причем вывод пробной выборки включает в себя, по меньшей мере, одну кодированную выборку для одной или двух первых цветовых компонент в первом цветовом пространстве. Блок кодирования дополнительно предназначен для кодирования/ средство 123 кодирования дополнительно выполнено с возможностью кодирования, по меньшей мере, одной модифицированной выборки второй цветовой компоненты входной видеопоследовательности.
Согласно варианту осуществления, устройство 120 для кодирования пикселя входной видеопоследовательности на фиг. 15 содержит средство 123 кодирования для кодирования значения второй цветовой компоненты и значения третьей цветовой компоненты пикселя в первом цветовом пространстве. Устройство 120 также содержит средство 121 получения для получения значения первой цветовой компоненты во втором цветовом пространстве для пикселя, причем второе цветовое пространство отличается от первого цветового пространства. Устройство 120 дополнительно содержит средство 122 модификации для определения значения первой цветовой компоненты пикселя в первом цветовом пространстве на основании минимизации ошибки, вычисленной на основании разности между значением первой цветовой компоненты во втором цветовом пространстве и пробным значением цветовой компоненты во втором цветовом пространстве. Пробное значение цветовой компоненты выводится на основании кодированного значения второй цветовой компоненты и значения кодированной третьей компоненты. Средство 123 кодирования также предназначено для кодирования значения первой цветовой компоненты пикселя в первом цветовом пространстве.
Дополнительный аспект вариантов осуществления относится к пользовательскому оборудованию, содержащему устройство согласно вариантам осуществления, например, проиллюстрированное на любой из фиг. 12, 13 и 15. Пользовательское оборудование выбрано из группы, состоящей из компьютера, портативного компьютера, настольного компьютера, мультимедийного проигрывателя, сервера потоковой передачи видео, мобильного телефона, смартфона, планшета и телевизионной приставки.
Еще один аспект вариантов осуществления относится к сигналу, представляющему кодированную версию пикселя изображения входной видеопоследовательности. При этом, кодированная версия содержит значение первой цветовой компоненты, значение второй цветовой компоненты и значение третьей цветовой компоненты в первом цветовом пространстве, кодированные согласно любому из вариантов осуществления. Согласно варианту осуществления, сигнал представляет собой один из электронного сигнала, оптического сигнала, электромагнитного сигнала, магнитного сигнала, электрического сигнала, радиосигнала и микроволнового сигнала.
Все большую популярность приобретает предоставление вычислительных услуг, например, аппаратных и/или программных, на сетевых устройствах, например, сетевых узлах и/или серверах, где ресурсы доставляются в виде услуги в удаленные места по сети. В порядке примера, это означает, что описанные здесь функциональные возможности могут распределяться или перемещаться на один или более отдельных физических узлов или серверов. Функциональные возможности могут перемещаться или распределяться на одну или более совместно действующих физических и/или виртуальных машин, которые могут располагаться в отдельном(ых) физическом(их) узле(ах), т.е. в так называемом облаке. Это также иногда называется облачными вычислениями, что является моделью, обеспечивающей повсеместный сетевой доступ по требованию к массиву конфигурируемых вычислительных ресурсов, например, сетям, серверам, хранилищу, приложениям и общим или специализированным службам.
На фиг. 16 показана схема, демонстрирующая пример того, как функциональные возможности, в общем случае, могут распределяться или разделяться между различными сетевыми устройствами 300, 301, 302. В этом примере представлены, по меньшей мере, два отдельных, но соединенных между собой сетевых устройства 300, 301, которые могут иметь различные функции или части одной и той же функции, разделенные между сетевыми устройствами 300, 301. Могут существовать дополнительные сетевые устройства 302, составляющие часть такой распределенной реализации. Сетевые устройства 300, 301, 302 могут входить в состав одной и той же системы беспроводной связи, или одно или более из сетевых устройств могут представлять собой так называемые облачные сетевые устройства, находящиеся вне системы беспроводной связи.
На фиг. 17 показана схема, демонстрирующая пример системы беспроводной связи, включающей в себя сеть 1 доступа и/или базовую сеть 2 и/или систему 3 операционной поддержки (OSS) совместно с одним или более облачными сетевыми устройствами 300. Фигура также демонстрирует сетевой узел 4 сети 1 доступа и пользовательское оборудование 5 согласно вариантам осуществления.
Некоторые аспекты принципа изобретения, в основном, описаны выше со ссылкой на несколько вариантов осуществления. Однако, как очевидно специалисту в данной области техники, варианты осуществления, отличные от раскрытых выше, в равной степени возможны и находятся в объеме принципа изобретения. Аналогично, хотя было рассмотрено несколько разных комбинаций, все возможные комбинации не были раскрыты. Специалисту в данной области техники очевидно, что другие комбинации существуют и находятся в объеме принципа изобретения. Кроме того, специалисту в данной области техники очевидно, что раскрытые здесь варианты осуществления применимы и к другим стандартам и системам кодера или декодера, и любой признак конкретной фигуры, раскрытый совместно с другими признаками, можно применять к любой другой фигуре и/или объединять с другими признаками.
Приложение A
Настоящее приложение A содержит описание способа Ajusty, который можно использовать согласно вариантам осуществления для вывода значения нелинейной яркостной компоненты во втором цветовом пространстве.
Комбинация сильно нелинейной передаточной функции, субдискретизации 4:2:0 или 4:2:2 и упорядочения непостоянной яркости вносит в видеоданные заметные артефакты в насыщенных цветах. В приложении B описан пример, где изменения между двумя цветами аналогичной яркости может приводить к большому различию в яркости в реконструированном изображении.
В цифровом видеосигнале каждая компонента выборки, т.е. пикселя, представляется целым числом или значением с плавающей точкой. Дисплей, например, экран, телевизор или монитор, визуализирующий видео, исключает оптические световые сигналы на основании цифровых значений видеосигнала. Функция, преобразующая цифровое значение в оптический световой сигнал является электрооптической передаточной функцией (EOTF). Традиционно EOTF выражается экспоненциальной функцией, именуемой гамма-функцией, где гамма - показатель степени. Она обычно равна 2,4 (но также может принимать другие значения): .
Использование гамма-функции полезно для сигналов низкой яркости, но когда яркость превышает 100 нит (кд/м2) гамма-функция не полностью согласуется с контрастной чувствительностью зрительной системы человека. Поэтому задаются более нелинейные передаточные функции, например:
(уравнение A1)
Эта передаточная функция более нелинейна, чем гамма-функция в том смысле, что максимальное значение ее первой производной в диапазоне от 0 до 1 больше, чем у гамма-функции.
Субдискретизация цветности обычно осуществляется до сжатия в качестве начального этапа для уменьшения объема данных. В 4:2:2 сигнал цветности снижается до половины разрешения в вертикальном направлении. В 4:2:0 сигнал цветности снижается до половины разрешения в вертикальном направлении и горизонтальном направлении. Это обычно осуществляется посредством некоторой операции фильтрации для получения сигнала хорошего качества, но также может осуществляться с использованием ближайшего соседа.
Для отображения видео 4:2:0 или 4:2:2 декодер осуществляет повышающую дискретизацию сигнала цветности, например, с использованием билинейных фильтров или удлиненных фильтров.
Однако комбинация сильно нелинейной передаточной функции, субискретизации 4:2:0 или 4:2:2 и упорядочения непостоянной яркости вносит в видеоданные заметные артефакты, в особенности для насыщенных цветов, т.е. цветов вблизи границы цветовой гаммы.
Существует несколько путей обойти эту проблему. Один из них состоит в том, чтобы не использовать субдискретизацию 4:2:0 или 4:2:2, но, вместо этого, использовать 4:4:4. Однако это сопряжено с большими затратами, поскольку 4:2:0 наполовину уменьшает количество битов до сжатия, тогда как 4:2:2 уменьшает количество битов до двух третей. Другой путь состоит в том, чтобы не использовать сильно нелинейную передаточную функцию. Однако это затрудняет представление контента с очень высокой пиковой яркостью без образования полосатости в темных областях. Третий путь состоит в использовании постоянной яркости, т.е. применении передаточной функции после преобразования в цветовое пространство XYZ CIE1931. Однако такое решение не согласуется обычной практикой в сфере вещания и в некоторых сценариях может быть трудно и дорого в осуществлении.
Типичная цепочка сжатия описана ниже. Входящий пиксель линейного светового сигнала (R, G, B) в пределах от 0 до 10000 сначала подается на передаточную функцию, в результате чего, получается новый пиксель (R', G', B') от 0 до 1. После этого пиксель подвергается цветовому преобразованию, приводящему к Y'Cb'Cr'. Затем компоненты Cb' и Cr' подвергаются субдискретизации до 4:2:0.
После снятия сжатия, последовательности 4:2:0 снова подвергаются повышающей дискретизации до 4:4:4, обратное преобразование цветового пространства дает (R', G', B'), и, наконец, обратная передаточная функция возвращает пиксель линейного светового сигнала (R, G, B), который может выводиться на монитор.
Проблема состоит в том, что компоненты Cb' и Cr' интерполируются, тогда как компонента Y' - нет. Следовательно, может существовать резкий сдвиг компоненты Y' в пикселе, но компоненты Cb' и Cr' не могут следовать, поскольку они интерполируются. Для некоторых цветов, в особенности, насыщенных цветов, получается пиксель совершено неправильной интенсивности, и это отчетливо наблюдается.
В этих случаях предлагается изменять компоненту Y' таким образом, чтобы кортеж (Y', Cb', Cr'), генерируемый из интерполированных цветов, не сильно отличался от исходного. В идеале различие должно быть совсем незаметным.
В основном, исходя из того, что компоненты Cb' и Cr' ложны, компонента Y' также делается ложной, благодаря чему, (Y', Cb', Cr') приближаются к истинным цветам. Другими словами, внесение ошибки в компоненту Y' позволяет компенсировать ошибки, уже существующие в компонентах Cb' и Cr', для приближения к реальному пикселю. Определить, что компоненты Cb' и Cr' являются ложными, можно путем сравнения Cb' - Cb и Cr - Cr с порогом, например, сравнивая Cb', полученную первой субдискретизацией цветности (4:2:0) с последующей повышающей дискретизацией (до 4:4:4).
Согласно первому аспекту предусмотрен способ Ajusty. Способ может осуществляться на кодере или при подготовке к обработке на кодере. Согласно способу, когда определено, что компоненты Cb' и/или Cr' включают в себя ошибки, скорректированная компонента Y' выводится для компенсации ошибок в компонентах Cb' и/или Cr'.
Согласно второму аспекту, предусмотрен блок, например, препроцессор или кодер. Блок выполнен с возможностью определения, что компоненты Cb' и/или Cr' включают в себя ошибки, и когда определено, что компоненты Cb' и/или Cr' включают в себя ошибки, вывода скорректированной компоненты Y' для компенсации ошибок в компонентах Cb' и Cr'.
Скорректированную компоненту Y' можно выводить согласно различным вариантам осуществления, описанным ниже. Следовательно, скорректированная компонента Y' и компоненты Cb' и Cr' затем сжимаются, в результате чего, изображение или видео воспринимается с более высоким качеством.
Изменяя компоненту Y', т.е. выводя скорректированную компоненту Y', можно компенсировать результирующее значение яркости. Глаз гораздо более чувствителен к изменениям яркости, чем к изменениям цветности, поэтому, прежде всего, нужно удостовериться, что яркость не слишком отклоняется от исходного значения.
Как описано выше, нелинейная яркость Y' регулируется до сжатия таким образом, чтобы линейная яркость Y пикселя приближалась к своему правильному значению. Это дополнительно описано ниже.
Предположим, изображение, где левая часть экрана, например, пиксели с 0 по 96, имеет значение (2142, 0, 138), и правая часть, например, пиксели с 97 по 1920, имеет значение (2142, 4, 138). Традиционная цепочка обработки дает результаты, приведенные в таблице A1.
Таблица A1 - данные ʺнаихудшегоʺ цвета для субдискретизации 4:2:0
4
138
3,9750
138,2966
2,4265
263,6030
* Указывает значения, полученные посредством повышающей дискретизации субдискретизированного цвета в формате 4:2:0
Здесь значение Y является линейной яркостью. Таким образом, значение Y источника является значением, которое получается преобразованием исходного линейного светового сигнала RGB (2142, 4, 138) в XYZ. Например, если RGB представлен в цветовом пространстве BT.2020, его можно преобразовать в XYZ с использованием
X=0,636958×R+0,144617×G+0,168881×B
Y=0,262700×R+0,677998×G+0,059302×B (уравнение A2)
Z=0,000000×R+0,028073×G+1,060985×B
Эта компонента Y является яркостью, к которой наиболее чувствителен глаз. Ее не следует путать с вышеупомянутой компонентой Y', которая нелинейно зависит от R, G и B.
Как явствует из таблицы A1, значение Y является грубо ошибочным для пикселя 97 при использовании субдискретизации 4:2:0 RGB и повышающей дискретизации. Заметим, что в этом примере не происходит никакого сжатия, только квантование до 10 битов, и, тем не менее, значение Y имеет относительную ошибку 85%. Используя модель Бартена, которая прогнозирует, насколько большие различия может видеть глаз, можно понять, что эта ошибка составляет 195 шагов Бартена, или в 195 раз больше едва заметной.
В таблице A2 показано, что происходит.
Таблица A2 - пиксель 97 очень отличается до и после сдискретизации цвета
10 битов
0
138
0
138
0
138
4
138
4
138
4
138
10 битов
650
867
641
855
575
771
650
867
650
866
641
855
607
812
575
771
571
766
0
138,2278
0
138,2278
0,0018
114,8210
2,4265
263,6030
3,9750
138,2966
4,2102
127,3837
Если посмотреть на компоненту Cb', она имеет значение 607, находящееся примерно посередине между 650, до нарушения непрерывности, т.е. пикселя 94, и 575, после нарушения непрерывности, но правильное значение равно 575. Проблема состоит в том, что ошибка влияет не только на цветность, но и яркость пикселя, которая становится слишком большой. Наша идея состоит в том, чтобы компенсировать это путем изменения компоненты Y' пикселя. Согласно вариантам осуществления, мы не допускаем значение компоненты Y' 422 для пикселя, но вместо этого выбираем значение 363. В таблице A3 показан результат.
Таблица A3 - пиксель 97 значительно более аналогичен до и после субдискретизации цвета
10 битов битов
0
138
0
138
0
138
4
138
4
138
4
138
650
867
641
855
575
771
650
867
650
866
641
855
607
812
575
771
571
766
0
138,2278
0
138,2278
0,0018
114,8210
0,7008
138,0825
3,9750
138,2966
4,2102
127,3837
Теперь можно видеть, что новый цвет значительно более аналогичен его правильному значению. Зеленая компонента, ушла в неправильном направлении, но только на 1,72 кд/м2, но, в то же время, красная компонента почти в два раза меньше ее правильного значения, перемещение 1849 кд/м2, и синяя компонента изменилась аналогичным образом. В таблице A4 показано, что происходит с яркостью.
Таблица A4 - данные ʺнаихудшегоʺ цвета для субдискретизации 4:2:0 после коррекции
4
138
3,9750
138,2966
0,7008
138,0825
* Указывает значения, полученные посредством повышающей дискретизации субдискретизированного цвета в формате 4:2:0
Как показано в таблице A4, получается гораздо меньшая ошибка яркости Y. Относительная ошибка равна 0,2465%, что эквивалентно 0,5602 шагам Бартена, т.е. невидима.
Теперь ошибка касается цветности, но с учетом того, что зрительная система человека менее чувствительна к ошибкам цветности, чем яркости, это не составляет проблемы. Кроме того, так или иначе, возникает ошибка цветности после субдискретизации. Также, можно изменять компоненту Y' для получения хорошего компромисса между ошибкой яркости и ошибкой цветности.
Кроме того, изменение цветности может не быть сколько-нибудь заметным - единственное различие состоит в том, что зеленая компонента равна 0,7008 кд/м2 вместо 3,9750 кд/м2, но, наиболее вероятно, уменьшается за счет красной компоненты, так или иначе, поскольку она равна 2145, почти в тысячу раз больше. Другой способ увидеть это состоит в том, что отношение между зеленой и красной компонентами становится 0,7008/2145,11=0,000327 вместо правильного 3,9750/2142,6617=0,001855. Не очевидно, что человеческий глаз может увидеть этот незначительный сдвиг тона. Следовательно, мы согласовали ошибку яркости, которая в 200 раз больше едва заметной, с ошибкой цветности, которая настолько мала, что ее невозможно увидеть.
Приятно, что измененное значение Y' влияет только на отдельный пиксель. Следовательно, никакой пиксель не жертвуется за счет изменения компоненты Y'.
Согласно варианту осуществления, значение Y' не оптимизируется в отношении конкретного значения Cb' и Cr'. Вместо этого, значение Y' выбирается таким образом, чтобы оно минимизировало ошибку яркости для нескольких разных значений Cb' и Cr' или для диапазона значений Cb' и Cr'. Это может осуществляться в сценариях, где способ повышающей дискретизации цветности неизвестен.
Один вариант состоит в осуществлении конкретного количества способов повышающей дискретизации цветности с последующим выбором значения Y', которое минимизирует среднеквадратическую ошибку для разных способов повышающей дискретизации. В другой версии, значение Y' выбирается таким образом, что худший случай, т.е. наибольшая ошибка, минимизируется.
Другой вариант состоит в использовании двух или более соседних значений Cb' и Cr' и использовании их непосредственно для вычисления диапазона возможных значений Cb' и Cr'.
Существует несколько способов отыскания наилучшего значения Y', и мы рассмотрим некоторые из них. Один способ показан на фиг. 18.
Сначала нужно найти значение YO для оптимизации. Исходный пиксель RO, GO, BO преобразуется из RGB в XYZ, как упомянуто выше. Это дает XO, YO, ZO, из которых нам нужно только YO. Фактически, не требуется вычислять XO и ZO. Эта YO является исходной яркостью в линейном световом сигнале, и является тем, к чему чувствителен глаз. В нашем иллюстративном случае YO равна 573,5991, см. таблицу A1.
Затем используется существующее значение Y', совместно со значениями Cb' и Cr'. В вышеописанном случае, подается (422, 607, 812), см. таблицу 2. Затем осуществляется цветовое преобразование из Y'Cb'Cr' в R'G'B'. Это делается с использованием
R'=Y'+1,47460×Cr'
G'=Y'-0,16455×Cb'-0,57135×Cr' (уравнение A3)
B'=Y'+1,88140×Cb'.
Затем вызывается передаточная функция. В этом случае используется PQ-EOTF, которую можно реализовать с использованием следующим кодом Matlab, например:
функция L=pq_eotf(c)
%%%
%%% c принимает значение от 0,0 до 1,0
%%% L - выходная яркость в нитах
%%%
c1=0,8359375;
c2=18,8515625;
c3=18,6875;
n=0,1593017578125;
m=78,84375;
c=max(c,0);
c=min(c,1);
L=10000*((max(c.^(1/m)-c1, 0)./(c2 - c3*c.^(1/m))).^(1/n));
Результатом является цвет (R, G, B) в линейном световом сигнале. Теперь это преобразуется в XYZ, как упомянуто выше, или, в действительности, нужно вычислять только Y. Это Y является линейной яркостью пикселя, и эту яркость нужно максимально приблизить к YO. В нашем иллюстративном случае, Y начинается со значения 1066,4311, см. таблицу A1.
Теперь сравним Y и YO. Если Y больше YO, мы уменьшаем значение Y' от 422 до несколько меньшего. Например, можно сделать один шаг и проверить 421. Затем повторно осуществляется все вычисление, с генерацией нового значения Y. Оно снова сравнивается с YO, и если оно все еще слишком велико, Y' дополнительно уменьшается. Наконец, достигается 363, и теперь результирующее значение Y, т.е. 572,1852 меньше, чем YO, т.е. 573,5991. На этом процесс останавливается.
Согласно вышеприведенному варианту осуществления для достижения наилучшего значения требуется 422-363=59 итераций. Это может приводить к большим затратам.
Поэтому вариант осуществления предусматривает двоичный поиск для отыскания наилучшего значения Y'. В необязательном порядке, сначала проверяется максимальное значение Y', например 1023. Затем, в необязательном порядке, проверяется минимальное значение Y', например 0. Затем проверяется значение в середине, например 512. Если значение Y, полученное при Y'=512, больше, чем YO, поиск производится в интервале [0, 512]. Если значение Y меньше, чем YO, поиск производится в интервале [512, 1023]. После этого осуществляется вычисление нового значения в середине выбранного интервала, и процесс продолжается, пока интервал не будет содержать единственную величину, например, [363, 363] или [363, 364]. Для этого гарантированно требуется только log2(N) шагов, где N - количество возможных значений, которое в этом случае равно 1024. Следовательно, достаточно только log2(1024)=10 шагов.
Еще один путь вычисления наилучшего значения, показанный на фиг. 18, состоит в оптимизации и минимизации ошибки E=(Y-YO)2 относительно Y'. Это может осуществляться посредством градиентного спуска, посредством вычисления градиента E относительно Y', т.е. dE/dY', и обновления Y' на малую величину в направлении, противоположном градиенту: Y'n+1=Y'n-α×dE/dY', где α - малая постоянная.
Градиентный спуск может быть медленным, поэтому более быстрый путь может представлять собой алгоритм оптимизации второго порядка, который вычисляет или аппроксимирует производные второго порядка d2E/dY'2. Примером такого алгоритма является метод Гаусса-Ньютона.
В другом варианте осуществления для вычисления Y' применяется нижеследующий процесс:
- X, YO и Z преобразуются посредством преобразования XYZ в RGB для генерации новых значений R1, G1 и B1
- R1, G1 и B1 преобразуются посредством обратной передаточной функции для генерации R1', G1' и B1'.
- R1', G1' и B1' преобразуются посредством обратного цветового преобразования для генерации Y'
Согласно варианту осуществления, корректируются значения Y' всех пикселей в изображении. В альтернативном варианте осуществления, корректируются только пиксели, которые могут иметь наблюдаемые ошибки яркости. Это могут быть пиксели, находящиеся вблизи границы цветовой гаммы, но не пиксели, расположенные ближе к середине треугольника цветовой гаммы.
Согласно нижней строке на фиг. 18, первый этап обработки выражается в виде
R'=Y'+1,47460×Cr'
G'=Y'-0,16455×Cb'-0,57135×Cr' (уравнение A3)
B'=Y'+1,88140×Cb'.
Но поскольку Cr' и Cb' являются фиксированными, они интерполируются, а не отправляются, все справа от Y' можно заменить постоянной
R'=Y'+c1
G'=Y'+c2
B'=Y'+c3
На следующем этапе используется передаточная функция цветовых компонентов:
R=TF(R')
G=TF(G')
B=TF(B')
которая приобретает вид
R=TF(Y'+c1)
G=TF(Y'+c2)
B=TF(Y'+c3)
На последнем этапе обработки осуществляется из RGB в XYZ. Это делается с использованием
X=0,636958×R+0,144617×G+0,168881×B
Y=0,262700×R+0,677998×G+0,059302×B (уравнение A2)
Z=0,000000×R+0,028073×G+1,060985×B
из которых представляет интерес только компонента Y, поэтому используется
Y=0,262700×R+0,677998×G+0,059302×B.
Подставляя предыдущие уравнения, получаем
Y=0,262700×TF(Y'+c1)+0,677998×TF(Y'+c2)+0,059302×TF(Y'+c3),
или, сокращенно,
Y=f(Y')
Нужно, чтобы выходное значение Y этого уравнения совпадало с исходным YO. Поскольку Y зависит от Y' в трех разных местах по нелинейному закону, инверсия функции для получения Y'=f-1(Y) выглядит сложной задачей.
Однако можно линеаризовать нелинейную TF(x)~kx+m. Делая это в трех разных местах, получаем
Y~k1×Y'+m1+k2×Y'+m2+k3×Y'+m3
что эквивалентно
Y~(k1+k2+k3)×Y'+(m1+m2+m3).
Это можно инвертировать в
Y'~Y'k=(Yo- (m1+m2+m3))/(k1+k2+k3). (A4)
Таким образом, возможно, что Y'k даст значение Yk, более близкое к YO, чем прежде. Функцию можно снова линеаризовать в этой новой точке Y'k с получением нового значения Y'(k+1) и т.д.
Следует отметить, что для всех этих итерационных методов не требуется находить абсолютно наилучшее 10-битовое значение, порождающее значение Y, ближайшее к значению YO. Может быть достаточно использовать лишь несколько итераций или даже одну итерацию. Наиболее вероятно, что скорректированное значение Y, полученное в результате единственной итерации будет гораздо лучше, чем вовсе не скорректированное.
Некоторые линеаризации также можно осуществлять заранее. Как упомянуто выше, самые серьезные проблемы возникают на границе гаммы. Следовательно, можно иметь одну линеаризацию для линии, соединяющей красный основной цвет с зеленым основным цветом, одну линеаризацию для линии, соединяющей красный основной цвет с синим основным цветом, и одну линеаризацию для линии, соединяющей зеленый основной цвет с синим основным цветом. Альтернативно, можно иметь линеаризации, одна из которых будет использоваться вблизи красного основного цвета, другая - вблизи зеленого основного цвета, и третья - вблизи синего основного цвета. Кроме того, можно иметь несколько линеаризаций по линии гаммы, как показано на фиг. 19.
Таким образом, в разных областях могут существовать разные линеаризации. Если цвет находится внутри окружности, выполненной сплошной линией, он близок к зеленому основному цвету, и можно использовать одну линеаризацию. При перемещении в сторону красного основного цвета, т.е. внутрь штрихового прямоугольника, можно использовать вторую линеаризацию. При нахождении вблизи границы гаммы и примерно посередине между красным и зеленым основными цветами, т.е. внутри пунктирного прямоугольника, можно использовать третью линеаризацию. При нахождении еще ближе к красному основному цвету, т.е. внутри прямоугольника, выполненного сплошной линией, можно использовать четвертую линеаризацию. При нахождении внутри пунктирной окружности, т.е. вблизи красного основного цвета, можно использовать пятую линеаризацию. Также можно использовать такое же разбиение двух других линий в треугольнике. Наконец, область внутри треугольника, но не прямоугольника и не окружности, можно разбить на одну или более областей, каждая из которых будет иметь отдельную линеаризацию.
Другой способ состоит в создании поисковой таблицы (LUT). Как явствует из вышеизложенного, имея Cb', Cr' и искомое значение Y, можно найти наилучшее Y' с использованием любого из вышеупомянутых итерационных методов. Следовательно, можно создавать поисковую таблицу для каждой возможной комбинации Cb', Cr' и Y. Предположим, например, что Cb' и Cr' квантуются до 10 битов. Предположим, дополнительно, что Y также квантуется до 10 битов. В таком случае, в поисковой таблице должно быть 210×210×210 разных значений. Это эквивалентно 230 значений. Если каждое значение составляет два байта, это означает 231 байтов или 2 ГБ. Это много, но не невыполнимо, в особенности в будущем.
Особое внимание следует уделять квантованию Y. Поскольку Y полностью линейна, может быть неэффективно просто квантовать ее. Вместо этого, может быть лучше создавать Ynonlinear=TF(Y) и создавать LUT для Y с использованием Cb', Cr' и Ynonlinear в качестве входных переменных. На основании Cb', Cr' и Y, сначала вычисляется Ynonlinear=TF(Y) и затем отыскивается Y'=LUT(Cb',Cr',Ynonlinear).
Также можно использовать LUT меньшего размера. Например, можно квантовать Y (или Ynonlinear), Cb' и Cr', например, до 6 битов. Тогда таблица будет иметь размер 2(6+6+6)=218 значений или 219 байтов, т.е. 512 кБ. Это приемлемый размер даже с точки зрения возможностей современного оборудования.
Можно также брать квантованные значения Cb', Cr' и Y, ближайшие к истинным значениям, и интерполировать их. В порядке примера, если реальное значение Cb' больше Cb', квантованной до 6 битов, но меньше Cb', квантованной до 6 битов,+1, нижеследующее может быть хорошим приближением:
Y'=(LUT(Cb'6bit,Cr'6bit,Y6bit)+(LUT(Cb'6bit+1,Cr'6bit,Y6bit))/2
Возможна также интерполяция между более чем двумя значениями.
Согласно варианту осуществления, для вывода значения Y' используется поисковая таблица. В одной версии поисковая таблица содержит все возможные значения Yo, Cb' и Cr'. Для 10-битового видео, которое даст 1024×1024×1024 элементов и в некоторых вариантах применения этот размер является приемлемым. В другой версии поисковая таблица (LUT) сокращается, например, путем округления одного или более из YO, Cb' и Cr', например, до 8 битов. Если используется сокращенная поисковая таблица, алгоритм может расширяться на этапе уточнения, который находит наилучшую Y', начиная с Y', извлеченной из LUT. Согласно версии, LUT используется только, когда значение Cb' и/или значение Cr' таково, что Y' может сильно отдаляться от YO, т.е. когда первоначально вычисленная Y' дает значение линейной Y, которые слишком отличается от YO, и, таким образом, размер LUT может существенно сокращаться, поскольку многие значения Cb' и Cr' не будут создавать никаких проблем.
Согласно варианту осуществления, для вывода Y' используется функция YO, Cb' и Cr', например, линейная комбинация, полиномиальная функция, экспоненциальная функция, логарифмическая функция, тригонометрическая функция и т.д. Функция может задаваться таким образом, что для любого значения YO, Cb' и Cr' разность между Y и YO ниже некоторого порога или разность между выведенной Y' и оптимальной Y' ниже некоторого порога.
Согласно варианту осуществления для вывода Y' задается несколько разных функций Yo, Cb' и Cr'. Выбор используемой функции опирается на значения YO, Cb' и Cr'.
Для каждого описанного здесь варианта осуществления возможен случай, когда способ вывода Y' применяется только, если сначала разность между Y' и Yo превышает некоторый порог.
Приложение B
В этом приложении B исследуются цветовые артефакты вследствие субдискретизации 4:2:0. Сначала, делается попытка перекрестного контроля, но наихудшее значение не воспроизводится, возможно, вследствие ошибки в HDRTools, которая уже исправлена. Затем осуществляется поиск наихудшей относительной ошибки яркости, обусловленной субдискретизацией 4:2:0. Обнаружено, что относительная ошибка 86% (195 шагов Бартена) может возникать даже при отображении на экране с ограничением до 4000 нит. Даже если данные ограничены Rec709 и содержатся в контейнере BT.2020, возможна ошибка в 30 шагов Бартена. Для контента P3 в контейнере BT.2020 возможна ошибка в 40 шагов Бартена.
1 Введение
Было замечено, что малые изменения цвета могут вносить неожиданно большие артефакты при использовании субдискретизации 4:2:0, даже в отсутствие сжатия.
1.1 Различия в перекрестном контроле
Это исследование начинается с перекрестного контроля m35255 [1], с попыткой повторить результаты на слайде 13, перепечатанном в нижеприведенной таблице B1. Результаты получены из проверочного изображения, где левая часть изображения до пикселя 95 имеет цвет (3000, 0, 100) и правая часть, после пикселя 96 имеет цвет (3000, 4, 100).
Таблица B1 - значения m35255
0
100
0
100
4
100
4
100
4
100
4
100
650
882
650
882
640
870
640
870
570
787
570
787
650
882
649
881
642
862
604
828
570
787
566
782
0
99,1875
0
97,125
1,57324
402,25
2,58008
199
3,99609
100,125
4,20313
92,1875
При перекрестном контроле с использованием тех же процедур, что и для привязок (n14548, [2]) получается результат, представленный в таблице B2. Для субдискретизации, далее применялись фильтры, описанные в разделе 2,4.7 [2] (отводы 2 и 3) и для повышающей дискретизации далее применялись 4-отводные фильтры (Раздел 2,4.8 [2]).
Таблица B2 - значения при попытке перекрестного контроля
0
100
0
100
4
100
4
100
4
100
4
100
4:2:0
650
882
580
799
570
787
после повышающей дискретизации
650
882
616
841
580
799
571
788
570
787
569
786
0
99,1875
0,0169
48,2188
3,5293
122,9375
3,9531
102,2500
3,9961
100,125
4,0391
98,0625
Как можно видеть, они действительно плохо совпадают, и совпадает только пиксели №№ 94 и 98, тогда как для пикселей №№ 95-97 или 99 не найдено никакого совпадения. Однако перемещение нарушения непрерывности к пикселю 97 дает значительно лучшее совпадение, как показано в таблице B3.
Таблица B3 - значения при перемещении нарушения непрерывности
0
100
0
100
0
100
4
100
4
100
4
100
4:2:0
650
882
640
870
570
787
после повышающей дискретизации
650
882
649
881
640
870
604
828
570
787
566
782
0
99,1875
0
97,125
0,00142
80,5625
2,58008
199
3,99609
100,125
4,20312
92,1875
В таблице B3 не совпадает только пиксель № 96. Также существует пиксель с наиболее странными значениями (10000, 1,57, 402,25), в то время, как правильным ответом является (3000, 0, 100) или (3000, 4, 100) в зависимости от размещения нарушения непрерывности.
Это выглядит, как если бы несовпадение при перекрестном контроле было вызвано ошибкой в HDRtools, которая уже исправлена. Возвращаясь к редакции 492, можно создавать такие же значения, как в m35255 [1]. Для подтверждения, что более новая версия HDRtools (редакция 573) верна, была независимо осуществлена цепочка обработки в Matlab и были получены те же результаты, что в таблице A3. Причина, по которой необходимо перемещать нарушение непрерывности для получения совпадения, вероятно состоит в ошибочной фильтрации в редакции 492, которая исправлена в текущей версии.
1.2 Проблема округления
При осуществлении перекрестного контроля Matlab, было обнаружено, что преобразование числа с плавающей точкой в EXR в HDRtools имеет недостатки в округлении. Вместо округления 23 битов мантиссы до 10 битов, они просто сдвигаются вправо, в основном, заменяя round( ) на floor( ). Это влияет на конечный результат. В порядке примера, число с плавающей точкой 3007,9 будет преобразовано в 3006,0, несмотря на то, что 3008,0 является гораздо более близким значением. Для получения совпадения нужно, чтобы код Matlab эмулировал преобразование типа floor( ) в текущей редакции HDRtools (редакция 587 [3]).
1.3 Цветовые выбросы
Заметим, что даже если пиксель 96 больше не является экстремальным выбросом, пиксель 97 все еще весьма далек от правильного: (5860, 2,58, 199) вместо (3000, 4, 100). Это ставит вопрос; насколько плохие выбросы может генерировать субдискретизация 4:2:0 и где это происходит? Чтобы ответить на этот вопрос, сначала нужно определить, что означает ʺплохиеʺ. Особое внимание уделялось яркости, поскольку зрительная система человека более чувствительна к изменениям яркости, чем к изменениям цветности. Поэтому входное изображение EXR и выходное изображение EXR преобразовывались из линейного светового сигнала в XYZ, и формировалось различие в Y. Для получения относительной ошибки производилось деление на компоненту Y источника. Затем была написана небольшая программа, максимизирующая эту относительную ошибку для пикселя 97 во всех возможных изображениях типа, где левая часть имеет один цвет, и правая часть имеет такой же цвет плюс малая дельта длиной 4, как в m35255 [1].
Выполнение этой программы дало ответ, что наличие цвета (2142, 0, 138) в левой части и (2142, 4, 138) в правой части дает наибольшую наблюдаемую ошибку, как показано в таблице B4. Программное обеспечение оптимизации, которое ищет ʺнаихудшуюʺ ошибку, не гарантирует отыскание глобального максимума, следовательно, могут существовать еще худшие позиции в цветовой гамме.
Таблица B4 - данные ʺнаихудшегоʺ цвета для субдискретизации 4:2:0
4
138
3,9750
138,2966
2,4265
263,6030
Следует отметить, что наличие красной компоненты, превышающей 2142, приведет к дополнительному увеличению относительной ошибки. Однако предполагается, что значения RGB выше 4000 будут ограничиваться 4000 монитором, поэтому предполагается, что фактическое различие на экране начнет уменьшаться в случае использования более высоких значений.
Как можно видеть в таблице B4, относительная ошибка для RGB 4:4:4 равна 0,0304%. С общей точки зрения, производилось сравнивалась с кривой Бартена, см. фиг. 20, где изображена кривая Бартена для контрастной чувствительности. Контрастность под кривой незаметна. Таблица B5 демонстрирует значения, используемые для построения кривой на фиг. 20.
Таблица B5 - значения, используемые для построения кривой Бартена
Как можно видеть на фиг. 20, допуск для относительных ошибок снижается с увеличением яркости. При 100 нит может не восприниматься ошибка в 0,44%, тогда как при 1000 нит, может не восприниматься ошибка 0,40%. Поскольку 455 нит находится точно посередине между ними, используется более высокое значение 0,44%. Это дает шаг Бартена 0,069, что трудно заметить.
С другой стороны, для субдискретизации 4:2:0, относительная ошибка равна 85,92%. Это эквивалентно свыше 195 шагов Бартена, что должно отчетливо наблюдаться. Это позволяет допустить, что субдискретизация 4:2:0 может создавать отчетливо наблюдаемые артефакты, по меньшей мере, при непостоянной яркости и сильно нелинейной передаточной функции, что имеет место при генерации привязок.
Заметим, что наихудшая ошибка находится прямо на границе цветовой гаммы; когда зеленый цвет равен нулю, цвет (2142, 0, 138) находится на линии между красным и зеленым основными цветами. Это согласуется с описанием в m35255 [1], где также указана проблема цветов на границе гаммы.
1.4 Когда входной сигнал является данными 709
Данные, представленные в таблице B1, относятся к основным цветам BT.2020. Если входные данные имеют основные цвета Rec709, но контейнер является BT.2020, не будет возможности достичь границы цветовой гаммы. Это объясняется тем, что треугольник гаммы Rec709 находится внутри треугольника BT.2020, не касаясь границы гаммы, как можно видеть на фиг. 21. Это позволяет предположить, что относительная ошибка будет меньше.
Программное обеспечение оптимизации позволяет найти цвет Rec709, который, после преобразования в BT.2020, приведет к наибольшей относительной ошибке. В результате получаются два цвета: (0, 0, 50) в левой части экрана и (2, 3, 49) в правой части. Это представлено в таблице B6.
Таблица B6 - данные ʺнаихудшегоʺ цвета для субдискретизации 4:2:0, если входной сигнал является Rec709, и контейнер имеет формат BT.2020
3
49
3,4535
44,1810
3,4293
43,7035
2,9939
63,5135
Здесь использовалась кривая Бартена при 10 нит, что составляет 0,54%. Для RGB 4:4:4 была получена едва заметная ошибка в 1,2305 шагах Бартена, тогда как ошибка в RGB 4:2:0 равна 33 шагам Бартена, которая должна отчетливо наблюдаться. Возможно также, что ошибка меньше (33 шага Бартена в отличие от 195 шагов Бартена), поскольку, если начинать с данных Rec709, цвет не сможет достичь всей частей границы гаммы BT.2020.
Также следует обратить внимание на то, как результат оптимизации позволяет обнаружить наличие наихудшей ошибки вблизи синего основного цвета. Это, скорее всего, обусловлено тем, что синий основной цвет Rec709 является ближайшим к границе гаммы BT.2020, как можно видеть на фиг. 21.
1.5 Когда входной сигнал является данными P3
Такая же проверка может осуществляться для исходных данных P3, содержащихся в контейнере BT.2020. Тогда наихудшие цвета представляют собой (2,48, 3,32, 4,63) и (3,29, 0, 6,71), как показано в таблице B7.
Таблица B7 - данные ʺнаихудшегоʺ цвета для субдискретизации 4:2:0, если входной сигнал является P3, и контейнер имеет формат BT.2020
0
6,71
0,2342
6,5960
0,2304
6,4838
0,3834
3,2402
Можно предположить, что ошибка будет принимать промежуточное значение между Rec709 и BT.2020, и это также позволяет получить ошибку, эквивалентную 40,38 шагов Бартена. Заметим, что поскольку значение Бартена изменяется, важно включать его в цикл при поиске наихудшего значения. Использовалось значение Бартена для 1 кд/м2, равное 0,85%.
1.6 Заключение
В этом приложении была исследована ошибка яркости вследствие субдискретизации 4:2:0. Хотя не удалось добиться совпадения с наихудшим выбросом из m35255 [1], ошибки худшего случая все же значительны, достигая почти 200 шагов Бартена для общих данных. Даже если исходные данные ограничены Rec709 и помещены в контейнер BT.2020, ошибка все еще значительна, свыше 30 шагов Бартена, и для данных P3 в контейнере BT.2020, свыше 40 шагов Бартена.
Вышеописанные варианты осуществления следует рассматривать как несколько иллюстративных примеров настоящего изобретения. Специалисты в данной области техники могут предложить различные модификации, комбинации и изменения варианты осуществления, не выходящие за рамки объема настоящего изобретения. В частности, различные частичные решения в различных вариантах осуществления можно объединять в других конфигурациях, при наличии технической возможности. Однако объем настоящего изобретения определяется нижеследующей формулой изобретения.
ССЫЛКИ
[1] International Organization for Standardization, ISO/IEC JTC1/SC29/WG11, Coding of moving pictures and audio, MPEG2013/M35255, October 2014, Strasbourg, France, Francois et al., About using a BT.2020 container for BT.709 content
[2] International Organization for Standardization, ISO/IEC JTC1/SC29/WG11, Coding of moving pictures and audio, MPEG2014/N14548, July 2014, Sapporo, Japan, Luthra et al., Test sequences and anchor generation for HDR and Wide Gamut Content Distribution
[3] https://wg11.sc29.org/svn/repos/Explorations/XYZ/HDRTools/branches/0,9-dev
[4] ITU-T, TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU, SERIES H: AUDIOVISUAL AND MULTIMEDIA SYSTEMS, Infrastructure of audiovisual services - Coding of moving video, High efficiency video coding, 04/2015
[5] International Organization for Standardization, ISO/IEC JTC1/SC29/WG11, Coding of moving pictures and audio, MPEG2014/N15083, February 2015, Geneva, Switzerland, Luthra et al., Call for Evidence (CfE) for HDR and WCG Video Coding
название | год | авторы | номер документа |
---|---|---|---|
ОБРАБОТКА ПИКСЕЛЕЙ С УЧЕТОМ ЦВЕТОВОГО КОМПОНЕНТА | 2016 |
|
RU2709652C1 |
ПРЕДОБРАБОТКА И КОДИРОВАНИЕ ПИКСЕЛЕЙ | 2016 |
|
RU2679239C1 |
Способ и устройство для преобразования цвета при универсальном видеокодировании (VVC) | 2020 |
|
RU2787810C1 |
РЕГУЛИРОВКА ДИНАМИЧЕСКОГО ДИАПАЗОНА ДЛЯ КОДИРОВАНИЯ ВИДЕО С РАСШИРЕННЫМ ДИНАМИЧЕСКИМ ДИАПАЗОНОМ И ШИРОКОЙ ЦВЕТОВОЙ ГАММОЙ | 2016 |
|
RU2701961C2 |
Способ и устройство для видеокодирования | 2020 |
|
RU2782516C1 |
ПЕРЕФОРМИРОВАНИЕ СИГНАЛОВ ДЛЯ СИГНАЛОВ ШИРОКОГО ДИНАМИЧЕСКОГО ДИАПАЗОНА | 2016 |
|
RU2693687C1 |
ПЕРЕФОРМИРОВАНИЕ СИГНАЛОВ ДЛЯ СИГНАЛОВ ШИРОКОГО ДИНАМИЧЕСКОГО ДИАПАЗОНА | 2020 |
|
RU2762384C1 |
ПЕРЕФОРМИРОВАНИЕ СИГНАЛОВ ДЛЯ СИГНАЛОВ ШИРОКОГО ДИНАМИЧЕСКОГО ДИАПАЗОНА | 2016 |
|
RU2736103C2 |
ПРЕОБРАЗОВАНИЕ ЦВЕТА ДЛЯ ВИДЕОКОДИРОВАНИЯ | 2020 |
|
RU2782437C1 |
СПОСОБ И УСТРОЙСТВО ДЛЯ ВИДЕОКОДИРОВАНИЯ | 2020 |
|
RU2777188C1 |
Изобретение относится к области кодирования входной видеопоследовательности. Технический результат заключается в повышении точности кодирования цветовой компоненты изображения. Технический результат достигается за счет кодирования значения второй цветовой компоненты и значения третьей цветовой компоненты пикселя в первом цветовом пространстве; получения значения первой цветовой компоненты во втором цветовом пространстве пикселя, причем второе цветовое пространство отличается от первого цветового пространства; определения значения первой цветовой компоненты пикселя в первом цветовом пространстве на основании минимизации ошибки, вычисленной на основании разности между значением первой цветовой компоненты во втором цветовом пространстве и пробным значением цветовой компоненты во втором цветовом пространстве, причем пробное значение цветовой компоненты выводится на основании кодированного значения второй цветовой компоненты и значения кодированной третьей цветовой компоненты; и кодирования значения первой цветовой компоненты пикселя в первом цветовом пространстве. 6 н. и 18 з.п. ф-лы, 21 ил.
1. Способ кодирования пикселя входной видеопоследовательности (1), причем способ содержит этапы, на которых:
кодируют (S1) значение второй цветовой компоненты и значение третьей цветовой компоненты пикселя в первом цветовом пространстве;
получают (S2) значение первой цветовой компоненты во втором цветовом пространстве пикселя, причем второе цветовое пространство отличается от первого цветового пространства;
определяют (S3) значение первой цветовой компоненты пикселя в первом цветовом пространстве на основании минимизации ошибки, вычисленной на основании разности между значением первой цветовой компоненты во втором цветовом пространстве и пробным значением цветовой компоненты во втором цветовом пространстве, причем пробное значение цветовой компоненты выводится на основании кодированного значения второй цветовой компоненты и значения кодированной третьей цветовой компоненты; и
кодируют (S4) значение первой цветовой компоненты пикселя в первом цветовом пространстве.
2. Способ по п. 1, в котором кодирование (S1) значения второй цветовой компоненты и значения третьей цветовой компоненты содержит, для каждого значения цветовой компоненты из значения второй цветовой компоненты и значения третьей цветовой компоненты, этапы, на которых:
определяют (S10) внутреннее или внешнее предсказание значения цветовой компоненты;
преобразуют (S11) ошибку предсказания, вычисленную как разность между значением цветовой компоненты и внутренним или внешним предсказанием для формирования коэффициентов преобразования; и
квантуют (S12) коэффициенты преобразования.
3. Способ по п. 1 или 2, в котором получение (S2) значения первой цветовой компоненты во втором цветовом пространстве содержит этапы, на которых:
дискретизируют с повышением (S20) значение второй цветовой компоненты и значение третьей цветовой компоненты в первом цветовом пространстве для получения дискретизированного с повышением значения второй цветовой компоненты и дискретизированного с повышением значения третьей цветовой компоненты в первом цветовом пространстве; и
преобразуют (S21) исходное значение первой цветовой компоненты пикселя в первом цветовом пространстве, и дискретизированное с повышением значение второй цветовой компоненты и дискретизированное с повышением значение третьей цветовой компоненты в первом цветовом пространстве в значение первой цветовой компоненты во втором цветовом пространстве.
4. Способ по п. 1, дополнительно содержащий этапы, на которых:
декодируют (S30) кодированное значение второй цветовой компоненты и кодированное значение третьей цветовой компоненты для получения реконструированного значения второй цветовой компоненты и реконструированного значения третьей цветовой компоненты в первом цветовом пространстве;
дискретизируют с повышением (S31) реконструированное значение второй цветовой компоненты и реконструированное значение третьей цветовой компоненты для получения дискретизированного с повышением реконструированного значения второй цветовой компоненты и дискретизированного с повышением реконструированного значения третьей цветовой компоненты в первом цветовом пространстве; и
выводят (S32) пробное значение цветовой компоненты во втором цветовом пространстве на основании пробного значения цветовой компоненты в первом цветовом пространстве, дискретизированного с повышением реконструированного значения второй цветовой компоненты и дискретизированного с повышением реконструированного значения третьей цветовой компоненты в первом цветовом пространстве.
5. Способ по п. 1, в котором определение (S3) значения первой цветовой компоненты в первом цветовом пространстве содержит этап, на котором выбирают (S3) пробное значение цветовой компоненты в первом цветовом пространстве, которое минимизирует ошибку, вычисленную на основании разности между значением первой цветовой компоненты во втором цветовом пространстве и пробным значением цветовой компоненты во втором цветовом пространстве, выведенным на основании пробного значения цветовой компоненты в первом цветовом пространстве, кодированного значения второй цветовой компоненты и значения третьей кодированной компоненты.
6. Способ по п. 1, в котором кодирование (S4) значения первой цветовой компоненты содержит этапы, на которых:
определяют (S40) внутреннее или внешнее предсказание значения первой цветовой компоненты в первом цветовом пространстве;
преобразуют (S41) ошибку предсказания, вычисленную как разность между значением первой цветовой компоненты в первом цветовом пространстве и внутренним или внешним предсказанием для формирования коэффициентов преобразования; и
квантуют (S42) коэффициенты преобразования.
7. Способ по п. 1, дополнительно содержащий этап, на котором осуществляют (S50) получение (S2) значения первой цветовой компоненты и определение (S3) значения первой цветовой компоненты, если пиксель является пикселем изображения (2) точки произвольного доступа (RAP) входной видеопоследовательности (1).
8. Способ по п. 1, дополнительно содержащий этап, на котором осуществляют (S60) получение (S2) значения первой цветовой компоненты и определение (S3) значения первой цветовой компоненты, если пиксель является пикселем изображения (2) в самом низком слое входной видеопоследовательности (1), изображения (2) которой организованы в виде иерархической структуры групп изображений (GOP).
9. Способ по п. 1, дополнительно содержащий этапы, на которых:
декодируют (S70) кодированное значение первой цветовой компоненты для получения реконструированного значения первой цветовой компоненты в первом цветовом пространстве; и
определяют (S71) адаптивное смещение выборки, которое минимизирует 1) квадратичную ошибку или абсолютную ошибку между значением первой цветовой компоненты в первом цветовом пространстве и суммой реконструированного значения первой цветовой компоненты в первом цветовом пространстве и адаптивного смещения выборки или 2) издержки скорости-искажения, вычисляемые как функция искажения, представляющего разность между значением первой цветовой компоненты в первом цветовом пространстве и суммой реконструированного значения первой цветовой компоненты в первом цветовом пространстве и адаптивного смещения выборки, и количества битов, потраченных для кодирования адаптивного смещения выборки.
10. Способ по п. 1, в котором
кодирование (S1) значения второй цветовой компоненты и значения третьей цветовой компоненты содержит этап, на котором кодируют (S1) значения цветностной компоненты Cb'Cr' в цветовом пространстве Y'Cb'Cr';
получение (S2) значения первой цветовой компоненты содержит этап, на котором получают (S2) значения яркости Y для пикселя в цветовом пространстве XYZ;
определение (S3) значения первой цветовой компоненты содержит этап, на котором определяют (S3) значение яркостной компоненты Y' пикселя в цветовом пространстве Y'Cb'Cr' на основании минимизации ошибки, вычисленной на основании разности между значением яркости Y в цветовом пространстве XYZ и пробным значением яркости в цветовом пространстве XYZ, выведенным на основании кодированных значений цветностной компоненты Cb'Cr'; и
кодирование (S4) значения первой цветовой компоненты содержит этап, на котором кодируют (S4) значение яркостной компоненты Y' в цветовом пространстве Y'Cb'Cr'.
11. Способ по п. 1, в котором
кодирование (S1) значения второй цветовой компоненты и значения третьей цветовой компоненты содержит этап, на котором кодируют (S1) значения цветностной компоненты Cb'Cr' в цветовом пространстве Y'Cb'Cr';
получение (S2) значения первой цветовой компоненты содержит этап, на котором получают (S2) значение нелинейной яркости pq(Y) для пикселя в цветовом пространстве pq(Y)xy;
определение (S3) значения первой цветовой компоненты содержит этап, на котором определяют (S3) значения яркостной компоненты Y' пикселя в цветовом пространстве Y'Cb'Cr' на основании минимизации ошибки, вычисленной на основании разности между значением нелинейной яркости pq(Y) в цветовом пространстве pq(Y)xy и пробным значением яркости в цветовом пространстве pq(Y)xy, выведенным на основании кодированных значений цветностной компоненты Cb'Cr'; и
кодирование (S4) значения первой цветовой компоненты содержит этап, на котором кодируют (S4) значение яркостной компоненты Y' в цветовом пространстве Y'Cb'Cr'.
12. Устройство (100, 110) для кодирования пикселя входной видеопоследовательности (1), причем
устройство (100, 110) выполнено с возможностью кодирования значения второй цветовой компоненты и значения третьей цветовой компоненты пикселя в первом цветовом пространстве;
устройство (100, 110) выполнено с возможностью получения значения первой цветовой компоненты во втором цветовом пространстве пикселя, причем второе цветовое пространство отличается от первого цветового пространства;
устройство (100, 110) выполнено с возможностью определения значения первой цветовой компоненты пикселя в первом цветовом пространстве на основании минимизации ошибки, вычисленной на основании разности между значением первой цветовой компоненты во втором цветовом пространстве и пробным значением цветовой компоненты во втором цветовом пространстве, причем пробное значение цветовой компоненты выводится на основании кодированного значения второй цветовой компоненты и значения кодированной третьей цветовой компоненты; и
устройство (100, 110) выполнено с возможностью кодирования значения первой цветовой компоненты пикселя в первом цветовом пространстве.
13. Устройство по п. 12, причем
устройство (100, 110) выполнено с возможностью определения, для каждого значения цветовой компоненты из значения второй цветовой компоненты и значения третьей цветовой компоненты, внутреннего или внешнего предсказания значения цветовой компоненты;
устройство (100, 110) выполнено с возможностью преобразования, для каждого значения цветовой компоненты из значения второй цветовой компоненты и значения третьей цветовой компоненты, ошибки предсказания, вычисленной как разность между значением цветовой компоненты и внутренним или внешним предсказанием для формирования коэффициентов преобразования; и
устройство (100, 110) выполнено с возможностью квантования, для каждого значения цветовой компоненты из значения второй цветовой компоненты и значения третьей цветовой компоненты, коэффициентов преобразования.
14. Устройство по п. 12 или 13, причем
устройство (100, 110) выполнено с возможностью осуществления повышающей дискретизации значения второй цветовой компоненты и значения третьей цветовой компоненты в первом цветовом пространстве для получения дискретизированного с повышением значения второй цветовой компоненты и дискретизированного с повышением значения третьей цветовой компоненты в первом цветовом пространстве; и
устройство (100, 110) выполнено с возможностью преобразования исходного значения первой цветовой компоненты пикселя в первом цветовом пространстве и дискретизированного с повышением значения второй цветовой компоненты и дискретизированного с повышением значения третьей цветовой компоненты в первом цветовом пространстве в значение первой цветовой компоненты во втором цветовом пространстве.
15. Устройство по п. 12, причем
устройство (100, 110) выполнено с возможностью декодирования кодированного значения второй цветовой компоненты и кодированного значения третьей цветовой компоненты для получения реконструированного значения второй цветовой компоненты и реконструированного значения третьей цветовой компоненты в первом цветовом пространстве;
устройство (100, 110) выполнено с возможностью осуществления повышающей дискретизации реконструированного значения второй цветовой компоненты и реконструированного значения третьей цветовой компоненты для получения дискретизированного с повышением реконструированного значения второй цветовой компоненты и дискретизированного с повышением реконструированного значения третьей цветовой компоненты в первом цветовом пространстве; и
устройство (100, 110) выполнено с возможностью вывода пробного значения цветовой компоненты во втором цветовом пространстве на основании пробного значения цветовой компоненты в первом цветовом пространстве, дискретизированного с повышением реконструированного значения второй цветовой компоненты и дискретизированного с повышением реконструированного значения третьей цветовой компоненты в первом цветовом пространстве.
16. Устройство по п. 12, причем устройство (100, 110) выполнено с возможностью выбора пробного значения цветовой компоненты в первом цветовом пространстве, которое минимизирует ошибку, вычисленную на основании разности между значением первой цветовой компоненты во втором цветовом пространстве и пробным значением цветовой компоненты во втором цветовом пространстве, выведенным на основании пробного значения цветовой компоненты в первом цветовом пространстве, кодированного значения второй цветовой компоненты и значения третьей кодированной компоненты.
17. Устройство по п. 12, причем
устройство (100, 110) выполнено с возможностью определения внутреннего или внешнего предсказания значения первой цветовой компоненты в первом цветовом пространстве;
устройство (100, 110) выполнено с возможностью преобразования ошибки предсказания, вычисленной как разность между значением первой цветовой компоненты в первом цветовом пространстве и внутренним или внешним предсказанием для формирования коэффициентов преобразования; и
устройство (100, 110) выполнено с возможностью квантования коэффициентов преобразования.
18. Устройство по п. 12, причем устройство (100, 110) выполнено с возможностью осуществления получения значения первой цветовой компоненты и определения значения первой цветовой компоненты, если пиксель является пикселем изображения (2) точки произвольного доступа (RAP) входной видеопоследовательности (1).
19. Устройство по п. 12, в котором устройство (100, 110) выполнено с возможностью осуществления получения значения первой цветовой компоненты и определения значения первой цветовой компоненты, если пиксель является пикселем изображения (2) в самом низком слое входной видеопоследовательности (1), изображения (2) которой организованы в виде иерархической структуры групп изображений (GOP).
20. Устройство по п. 12, причем
устройство (100, 110) выполнено с возможностью декодирования кодированного значения первой цветовой компоненты для получения реконструированного значения первой цветовой компоненты в первом цветовом пространстве; и
устройство (100, 110) выполнено с возможностью определения адаптивного смещения выборки, которое минимизирует 1) квадратичную ошибку или абсолютную ошибку между значением первой цветовой компоненты в первом цветовом пространстве и суммой реконструированного значения первой цветовой компоненты в первом цветовом пространстве и адаптивного смещения выборки или 2) издержки скорости-искажения, вычисляемые как функция искажения, представляющего разность между значением первой цветовой компоненты в первом цветовом пространстве и суммой реконструированного значения первой цветовой компоненты в первом цветовом пространстве и адаптивного смещения выборки, и количества битов, потраченных для кодирования адаптивного смещения выборки.
21. Устройство по п. 12, дополнительно содержащее:
процессор (111); и
память (112), содержащую инструкции, исполняемые процессором (111), причем
процессор (111) выполнен с возможностью кодирования значения второй цветовой компоненты и значения третьей цветовой компоненты в первом цветовом пространстве;
процессор (111) выполнен с возможностью получения значения первой цветовой компоненты во втором цветовом пространстве;
процессор (111) выполнен с возможностью определения значения первой цветовой компоненты в первом цветовом пространстве; и
процессор (111) выполнен с возможностью кодирования значения первой цветовой компоненты пикселя в первом цветовом пространстве.
22. Устройство (120) для кодирования пикселя входной видеопоследовательности (1), причем устройство (120) содержит:
средство (123) кодирования для кодирования значения второй цветовой компоненты и значения третьей цветовой компоненты пикселя в первом цветовом пространстве;
средство (121) получения для получения значения первой цветовой компоненты во втором цветовом пространстве пикселя, причем второе цветовое пространство отличается от первого цветового пространства;
средство (122) модификации для определения значения первой цветовой компоненты пикселя в первом цветовом пространстве на основании минимизации ошибки, вычисленной на основании разности между значением первой цветовой компоненты во втором цветовом пространстве и пробным значением цветовой компоненты во втором цветовом пространстве, причем пробное значение цветовой компоненты выводится на основании кодированного значения второй цветовой компоненты и значения кодированной третьей цветовой компоненты; и
средство (123) кодирования для кодирования значения первой цветовой компоненты пикселя в первом цветовом пространстве.
23. Пользовательское оборудование (5, 200), содержащее устройство (100, 110, 120) по любому из пп. 12-22, в котором пользовательское оборудование (5, 200) выбрано из группы, состоящей из компьютера, портативного компьютера, настольного компьютера, мультимедийного проигрывателя, сервера потоковой передачи видео, мобильного телефона, смартфона, планшета и телевизионной приставки.
24. Носитель (250), содержащий компьютерную программу (240), содержащую инструкции, которые, при исполнении процессором (210), предписывают процессору (210):
кодировать значение второй цветовой компоненты и значение третьей цветовой компоненты, пикселя входной видеопоследовательности, в первом цветовом пространстве;
получать значение первой цветовой компоненты во втором цветовом пространстве для пикселя, причем второе цветовое пространство отличается от первого цветового пространства;
определять значение первой цветовой компоненты пикселя в первом цветовом пространстве на основании минимизации ошибки, вычисленной на основании разности между значением первой цветовой компоненты во втором цветовом пространстве и пробным значением цветовой компоненты во втором цветовом пространстве, причем пробное значение цветовой компоненты выводится на основании кодированного значения второй цветовой компоненты и значения кодированной третьей компоненты; и
кодировать значение первой цветовой компоненты пикселя в первом цветовом пространстве, причем
носителем является один из электронного сигнала, оптического сигнала, электромагнитного сигнала, магнитного сигнала, электрического сигнала, радиосигнала, микроволнового сигнала или компьютерно-считываемого носителя данных.
ВИДЕОДЕКОДЕР С ОБРАБОТКОЙ ПЕРЕМЕЖАЮЩИХСЯ ДАННЫХ | 1997 |
|
RU2204217C2 |
СПОСОБ КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ МНОГОРАКУРСНОЙ ВИДЕОПОСЛЕДОВАТЕЛЬНОСТИ НА ОСНОВЕ АДАПТИВНОЙ КОМПЕНСАЦИИ ЛОКАЛЬНЫХ РАЗЛИЧИЙ ЯРКОСТИ ПРИ МЕЖКАДРОВОМ ПРЕДСКАЗАНИИ (ВАРИАНТЫ) | 2012 |
|
RU2533852C2 |
Способ защиты переносных электрических установок от опасностей, связанных с заземлением одной из фаз | 1924 |
|
SU2014A1 |
ЭЛЕКТРИЧЕСКИЙ МЕХАНИЗМ КНОПКИ/ПЕРЕКЛЮЧАТЕЛЯ ИЛИ ПЕРЕКЛЮЧАТЕЛЯ НА ДВА НАПРАВЛЕНИЯ С УСТРОЙСТВОМ ДЛЯ БЫСТРОГО СОЕДИНЕНИЯ | 2009 |
|
RU2516225C2 |
Способ защиты переносных электрических установок от опасностей, связанных с заземлением одной из фаз | 1924 |
|
SU2014A1 |
Авторы
Даты
2019-02-18—Публикация
2016-05-30—Подача