СЖАТИЕ ВИДЕОДАННЫХ БЕЗ ВИДИМЫХ ПОТЕРЬ
COMPRESSING VIDEO DATA WITHOUT VISIBLE LOSSES

Область техники, к которой относится изобретение
Настоящее изобретение, в общем, относится к обработке видеоданных, и, более конкретно, к сжатию и декомпрессии видеоданных в видеопамяти перед кодированием или выводом.
Уровень техники
Типичная видео архитектура предназначена для предварительной обработки видеоданных перед сохранением их в запоминающее устройстве видео кадра, доступ к которому обычно осуществляется через внешнюю шину. Видеоданные затем получают из видеопамяти во время процесса кодирования и/или для вывода. Количество передаваемых по шине данных между кодером и видеопамятью может быть очень большим, в результате чего возникает потребность в использовании больших объемов видеопамяти, что требует огромной полосы пропускания шины памяти, и, следовательно, приводит к большому потреблению энергии.
На фиг.1 показана обычная архитектура видеокамеры или фотокамеры. Входное видеоизображение, полученное с помощью устройства ввода данных, такого как датчики CCD (ПЗС, прибор с зарядовой связью) или CMOS (КМОП, комплементарная структура металл-оксид-полупроводник), затем сохраняют во внешнем запоминающем устройстве после предварительной обработки. Обычно предварительная обработка содержит снижение шумов и преобразование видеоданных из формата RGB (КЗС, красный, зеленый, синий) в YUV (одно значение яркости Y, два значения цветоразностных сигналов U+V). Другие устройства обработки, такие как видеокодер или устройство дисплея, затем считывают видеоданные из видеопамяти.
Поскольку количество видеоданных обычно велико, требуемая полоса пропускания шины для передачи видеоданных через внешнюю шину существенно большая. В частности, при применении в области видеоизображений HD (ВЧ, высокой четкость) требуемая полоса пропускания шины чрезмерна, при этом стоимость полосы пропускания, а также потребление энергии становится очень высокими, что затрудняет воплощение систем формирования неподвижных/видеоизображений с малой стоимостью.
Другая техническая задача в системах видеокамеры в этом отношении связана с требуемым размером памяти. Большинство видеоустройств воплощены в форме Soc (Система на кристалле). Обычно стоимость внешней памяти (такой как SDRAM (СДОЗУ,синхронное динамическое оперативное запоминающее устройство), как правило, выше, чем у других устройств. Поэтому уменьшение требуемого размера памяти позволяет уменьшить общую стоимость системы.
В соответствии с этим, существует потребность в способе уменьшения необходимой полосы пропускания шины и/или размера накопителя и памяти для потоков видеоданных, и, в частности, когда его выполняют перед процессом кодирования видеоданных. Настоящее изобретение выполняет эту и другие задачи, и преодолевает ограничения решений предшествующего уровня техники.
Сущность изобретения
Описаны устройство и способ для сжатия видеоданных без видимых потерь, в которых используется способ сжатия/декомпрессии видеоданных YUV. Для простоты здесь будет использоваться термин YUV видеоданные, хотя следует понимать, что такие сокращения, как YCrCb видеоданные или другие аналогичные схемы кодирования в равной степени применимы к приведенным здесь описанию и формуле изобретения. Входные видеоданные сжимают путем разделения каждого кадра на набор сжатых блоков, имеющих заданное количество пикселей, для каждого компонента (например, N пикселей для Y, М пикселей для U, V). Блоки сжатия не перекрываются с другими блоками сжатия и, таким образом, их можно обрабатывать независимо друг от друга без необходимости обращения к информации из других блоков сжатия, в котором к видеоданным можно обращаться случайным образом, что особенно хорошо подходит для использования в видеокодере. В результате сохранение блоков сжатия в запоминающем устройстве требует меньшего объема памяти, а также меньшей полосы пропускания шины, с учетом малого размера сжатых блоков. После этого сжатые видеоданные получают в любом требуемом порядке (например, непоследовательно) из памяти и восстанавливают их с помощью, например, кодера и/или, менее предпочтительно, для вывода на дисплей. Декомпрессия позволяет восстановить данные в их исходном формате, в котором в устройстве или приложении, в котором используются восстановленные данные, не требуется иметь информацию о том, что эти данные были когда-либо сжаты.
Перед сжатием предпочтительно выполняют оценку сложности таким образом, что могут быть определены оптимальные уровни и режимы сжатия.
Во время сжатия выполняют прогнозирование для прогнозирования значения текущего пикселя на основе предыдущих пикселей, затем определяют размер подблока, и выполняют разделение на подблоки. После этого принимают решение в отношении типа квантования (например, линейное или нелинейное), например, предпочтительно, для каждого подблока. Для нелинейного квантования в варианте воплощения изобретения предусматривается оценка параметра квантования (QP, ПК), в ходе которой не требуется выполнять поиск всех возможных значений ПК. Квантование затем выполняют на основе описанного выше определения, и, наконец, подблоки сжатых данных упаковывают в блоки. Во время сжатия в одном варианте воплощения изобретения вначале выполняют сжатие данных цветности, в которых информация сжатия данных цветности становится доступной и используется во время сжатия данных яркости. Варианты воплощения настоящего изобретения предусматривают выбор разных уровней сжатия в ответ на сложность видеоданных и количество доступных битов. Сжатые данные яркости и цветности комбинируют в конечный сжатый блок.
Поскольку типы и уровни квантования определяют в соответствии со сложностью данных, сжатые видеоданные после их декомпрессии (хотя они не всегда точно соответствуют оригинальным видеоданным) все еще будут визуально выглядеть для зрителя - человека, как данные без потерь. Таким образом, устройство и способ в соответствии с изобретением работают с пониженными требованиями к запоминающему устройству и с уменьшенной полосой пропускания, обеспечивая при этом требуемое качество, вплоть до того, что данные не содержат видимые потери.
Цели уменьшения полосы пропускания шины и/или размера памяти приведены выше в качестве примера. Применение способа сжатия не ограничивается такими конкретными преимуществами вариантов применения, но их можно применять для обеспечения преимуществ в любых других вариантах применения, в которых требуется использовать сжатие видеоданных, например, при передаче сжатых видеоданных по сети перед декомпрессией или при сохранении сжатых видеоданных в любом другом мультимедийном устройстве, перед декомпрессией, например, на жестких дисках или в запоминающем устройстве.
Изобретение может быть выполнено множеством способов, включающих в себя, но без ограничений, следующие.
Вариант воплощения изобретения представляет собой устройство видеопамяти, выполненное с возможностью передачи данных видеопикселей в одном или больше видеомодулях, содержащее: (а) модуль сжатия видеоизображения, соединенный через шину передачи сигналов с видеопамятью и выполненный с возможностью (a) (i) сжатия входных видеоданных яркости и цветности YUV, используя квантователь, без использования данных пикселя из пикселей, находящихся за пределами каждого блока, в сжатые видеоданные, имеющие уменьшенное количество битов на пиксель, (a) (ii) сохранения сжатых видеоданных в видеопамяти; и (b) модуль декомпрессии видеоданных данных, выполненный с возможностью получения блоков сжатых видеоданных в любом порядке и декомпрессии сжатых видеоданных, содержащихся в видеопамяти, получая восстановленные видеоданные, которые имеют тот же формат и приближаются к оригинальным видеоданным, которые были приняты и сжаты с помощью модуля сжатия видеоданных, в котором упомянутый модуль декомпрессии видеоданных выполнен с возможностью вывода восстановленных видеоданных.
В видеоустройстве сжатие предпочтительно выполняют в соответствии с общим коэффициентом R сжатия, который управляет в пределах блока сжатием и который может быть выражен ратиометрически или по количеству битов, содержащихся в полученном в результате блоке. По меньшей мере, в одном предпочтительном варианте воплощения одни и те же или разные уровни сжатия выбирают для данных яркости и данных цветности, при поддержании общего коэффициента R сжатия. По меньшей мере, в одном предпочтительном режиме, если только данные цветности не имеют высокий уровень сжатия, устройство выбирает степень сжатия так, чтобы свести к минимуму использование битов в данных цветности при оптимизации использования битов в данных яркости.
По меньшей мере, в одном варианте воплощения видеоустройства выполняют оценку сложности текстуры для блоков сжатия перед сжатием. Выделяют пространство сжатия для данных яркости и данных цветности в каждом блоке, таким образом, что количество битов, выделяемых для данных яркости и данных цветности в сжатом блоке, определяют в ответ на обработку оценки сложности текстуры.
По меньшей мере, в одном варианте воплощения информацию яркости и цветности комбинируют в блоки сжатых видеоданных, которые предпочтительно заполняют битами наполнения, для поддержания фиксированного размера сжатых блоков.
По меньшей мере, в одной конфигурации устройства при сжатии данных яркости для данного блока используют информацию, определенную во время процесса сжатия данных цветности этого же блока. По меньшей мере, в одном режиме изобретения сжатие видеоданных выполняют с использованием нелинейного квантования, такого как в пределах комбинации линейного и нелинейного квантования. В предпочтительном варианте воплощения размер шага квантования с разной точностью используют при выполнении нелинейного квантования.
По меньшей мере, в одном варианте воплощения изобретения выполняют прогнозирование пикселя во время сжатия. Прогнозирование пикселя начинается от исходного опорного пикселя, выбранного в середине блока, от которого определяют направления прогнозирования вправо и влево, которые могут обрабатываться параллельно, если это требуется. Следует понимать, что при выборе среднего пикселя (или близкого к среднему) для начала прогнозирования опорный пиксель должен оставаться одним и тем же, как для правого, так и для левого направлений прогнозирования. Прогнозирование значений пикселя выполняют путем прогнозирования текущих значений пикселя на основе предыдущих значений пикселя, в течение которого прогнозирование в этих двух направлениях выполняют независимо, обеспечивая возможность, таким образом, параллельного выполнения процесса прогнозирования в правом и в левом направлениях, чтобы, таким образом, позволяет уменьшить требуемое время обработки.
По меньшей мере, в одном варианте воплощения выполняют разделение на подблоки в соответствии с требуемой конфигурацией. Для определения разделения на подблоки вначале рассчитывают значение стоимости подблока, по меньшей мере, для части возможных конфигураций подблока, после чего отбрасывают конфигурации подблоков, стоимость которых превышает заданное пороговое значение стоимости, и/или количество битов которых превышает количество битов, доступных в блоке сжатия.
По меньшей мере, в одном варианте воплощения изобретения входные видеоданные для устройства принимают от датчика изображения, такого, который может быть интегрирован в видеокамеру или фотокамеру, или в другое устройство формирования изображений. Форматирование входных видеоданных выполняют так, чтобы они включали в себя, как информацию яркости, так и информацию цветности.
По меньшей мере, одна цель изобретения состоит в том, чтобы сжатие и декомпрессию выполнять в направлении уменьшения требований к полосе пропускания шины и/или видеопамяти, используемых в ходе предварительной обработке видеоданных YUV, выполняемой перед кодированием блоков, которые получают из памяти в специфичном для кодера виде, которые типично следуют непоследовательно (например, не по порядку номера блока). В качестве альтернативы, или в дополнение, сжатие и декомпрессия в соответствии с изобретением можно выполнять на практике при передаче сжатых видеоданных по сети перед декомпрессией или для сохранения видеоданных в мультимедийном устройстве перед декомпрессией.
Один из вариантов воплощения изобретения направлен на устройство видеокодера, предназначенное для кодирования видеоданных YUV, содержащее: (а) видеопамять, выполненную с возможностью обмена видеоданными пикселя с одним или больше видеомодулями; (b) модуль видеосжатия, соединенный через шину передачи сигналов с видеопамятью и выполненный с возможностью (b) (i) сжатия видеоданных яркости и цветности YUV, с использованием квантователя с получением сжатых видеоданных, имеющих уменьшенное количество битов на пиксель, без необходимости обращения к данным из других блоков; (b) (ii) сохранения сжатых видеоданных в видеопамяти; и (с) модуль декомпрессии видеоданных, выполненный с возможностью получения блока из видеопамяти в любом требуемом порядке и декомпрессии сжатых видеоданных с получением восстановленных видеоданных, которые имеют тот же формат и приближаются к оригинальным видеоданным, которые были приняты и сжаты с помощью модуля видеосжатия; и (d) модуль кодирования, который непоследовательно выбирает блоки видеоданных из памяти и который принимает и кодирует восстановленные видеоданные.
В одном из вариантов воплощения изобретение направлено на способ сжатия и декомпрессии видеоданных YUV, содержащий: (а) сжимают входные видеоданные, с коэффициентом R сжатия, используя квантователь, с получением блоков сжатых видеоданных, имеющих уменьшенное количество битов данных яркости и/или данных цветности для каждого блока видеоданных; (b), в котором сжатие входных видеоданных выполняют без использования данных из пикселей за пределами сжимаемого блока; (с) сохраняют сжатые видеоданные в видеопамяти; и (d), выполняют декомпрессию сжатых видеоданных для любых из блоков видеоданных, выбранных в порядке следования или без учета порядка следования, для генерирования выходных восстановленных видеоданных. В одном варианте воплощения, сжатие и декомпрессию выполняют в комбинации с процессом кодирования видеоданных, в котором, непоследовательно поступающие блоки видеоданных из запоминающего устройства выбирают, восстанавливают в соответствии с изобретением и принимают для кодирования.
В одном варианте воплощения изобретение направлено на способ сжатия и декомпрессии видеоданных YUV, содержащий: (а) сжимают входные видеоданные с коэффициентом R сжатия, используя квантователь, с получением блоков сжатых видеоданных, имеющих уменьшенное количество битов данных яркости и/или цветности для каждого блока видеоданных; (b) сжатие выполняют для каждого блока видеоданных без использования данных, полученных вне пределов каждого сжимаемого блока; (с) выбирают, либо линейное, или нелинейное квантование для каждого подблока в пределах заданного блока, для которого выполняют сжатие; (d) сохраняют сжатые видеоданные в видеопамяти; и (е) выполняют декомпрессию сжатых видеоданных для любых блоков видеоданных, полученных из видеопамяти, выбранных в любом порядке, для генерирования выходных восстановленных видеоданных.
В одном варианте воплощения изобретение направлено на способ сжатия и декомпрессии видеоданных YUV, содержащий: (а) выполняют сжатие входных видеоданных с коэффициентом R сжатия, используя квантователь, с получением блоков сжатых видеоданных, имеющих уменьшенное количество битов данных яркости и/или цветности для каждого блока видеоданных; (b) выполняют сжатие в блоках видеоданных, без использования данных из блоков, находящихся за пределами сжимаемого блока; (с) выполняют оценку сложности текстуры данных яркости и сложности текстуры данных цветности; (d) выбирают одинаковые или разные уровни сжатия для данных яркости и цветности, при поддержании общего коэффициента R сжатия; (е) выбирают либо линейное, или нелинейное квантование для каждого подблока в пределах заданного блока, в котором выполняют сжатие, в ответ на характеристики, детектируемые в блоке; (f) в котором, во время сжатия, в процессе сжатия данных яркости используют информацию из процесса сжатия данных цветности для того блока; (g) сохраняют сжатые видеоданные в видеопамяти; (h) получают блоки видеоданных из видеопамяти в любом желаемом порядке и в любой момент времени после упомянутого сохранения сжатых видеоданных; (i) выполняют декомпрессию сжатых видеоданных для полученных блоков для генерирования восстановленных выходных видеоданных.
Настоящее изобретение направлено на множество предпочтительных вариантов воплощения, которые могут быть воплощены, либо по отдельности, или в любой требуемой комбинации, без выхода за пределы настоящего описания.
Вариант воплощения изобретения содержит устройство и способ для сжатия и декомпрессии блоков видеоданных YUV.
Другой вариант воплощения изобретения состоит в том, что каждый сжатый блок не перекрывается с другими сжатыми блоками, и каждый сжатый блок сжимают независимо, без обращения к информации из других блоков.
Другой вариант воплощения изобретения состоит в том, что, если количество битов сжатой информации после сжатия будет меньше, чем целевое количество битов, которое соответствует желаемому коэффициенту (R) сжатия, тогда используют биты наполнения, для увеличения общего количества выходных битов до требуемого количества так, чтобы оно оставалось фиксированным. Поскольку размер генерируемых битов каждого блока сжатия фиксирован, можно обращаться к сжатому блоку в любом положении и выполнять его декомпрессию, без обращения к информации из других блоков. Поэтому, при использовании предложенного способа, можно непосредственно выполнять доступ к видеоданным и декомпрессию видео блоков видеоданных из произвольного положения в видеоданных, например, в случаях, когда требуется обеспечить доступ к произвольной области видеокадра для обработки или кодирования видеоизображения.
В другом варианте воплощения изобретение направлено на сжатие данных яркости с использованием информации, определенной как результат сжатия данных цветности. В этом способе в соответствии с изобретением вначале сжимают данные цветности. После сжатия данных цветности, по меньшей мере, часть информации передают в модуль яркости для подготовки к сжатию данных яркости. Информационные биты могут удерживаться любой требуемый период времени, или некоторое количество битов, после сжатия. При сжатии данных яркости используют эту информацию сжатия. Наконец, сжатые данные яркости и цветности упаковывают в один сжатый блок. При этом гарантируется, что размер данных будет находиться в пределах диапазона, определенного целевым коэффициентом сжатия.
В другом варианте воплощения изобретение направлено на то, что вначале, перед сжатием, выполняют оценку сложности текстуры блоков сжатия данных яркости и цветности. Каждый модуль сжатия (данные яркости и цветности) может автоматически обеспечивать разные уровни (или степени) сжатия (например, слабая, средняя или сильная). Степень сжатия определяют на основе сложности текстуры, в соответствии с которой определенное количество битов затем выделяют для полей яркости и цветности в сжатом блоке.
В другом варианте воплощения изобретение направлено на использование общего коэффициента сжатия, определенного по значению R, которое управляет общей степенью, в которой сжимают блоки видеоданных. Значение R, в качестве примера, составляет отношение (количество входных битов/количество выходных битов) для данного блока. Коэффициент R, равный двум (2) обозначает, что сжатые блоки содержат половину количества битов, использовавшихся для исходных данных. Следует понимать, однако, что сжатие может быть выражено в любом требуемом формате, например, в любой форме ратиометрического обозначения, или в отношении выбора заданного количества битов на блок выходных видеоданных.
Другой вариант воплощения изобретения позволяет выбирать степень, в которой сжимают значения Y, U и V при поддержании общего коэффициента R сжатия. Следует отметить, что это не означает, что коэффициент сжатия является фиксированным для Y, U и V в отдельном блоке сжатия, поскольку возможно выделять биты на основе разных коэффициентов сжатия между данными цветности и яркости.
В другом варианте воплощения изобретение направлено на процесс автоматического определения наилучшего коэффициента сжатия между данными яркости и цветности при поддержании общего коэффициента R сжатия. В общих чертах, глаз человека является более чувствительным к шумам сигнала яркости, чем к шумам сигнала цветности. Поэтому предпочтительная стратегия выделения битов минимизирует использование битов для данных цветности, и обеспечивает максимальное использование битов для данных яркости. Однако когда определяют, что данные цветности должны иметь определенную степень сложности, в частности, когда определяют, что они являются очень сложными, тогда, по меньшей мере, один вариант воплощения изобретения позволяет использовать для данных цветности достаточное количество битов для предотвращения появления визуальных искажений. Такое сведение к максимуму и к минимуму использования битов определяют в соответствии с полученной информацией о сложности текстуры данных яркости и цветности.
В другом варианте воплощения изобретение выбирает разные уровни сжатия. Например, можно определить низкий, средний и высокий режимы качества сжатия. Режим низкого качества основан на использовании большого коэффициента сжатия, в то время как в режиме высокого качества используют малый коэффициент сжатия. В одном варианте воплощения изобретения выполняют определение конечного наилучшего режима сжатия. Следует отметить, что уровень сжатия можно определять как для сжатии данных яркости, так и данных цветности, в которых определяют участок блока, используемый для яркости, и участок блока, используемый для цветности.
Другой вариант воплощения изобретения состоит в том, что решение при определении наилучшего режима сжатия принимают по полученной информации о сложности текстуры и количеству доступных битов.
В другом варианте воплощения изобретения начинают прогнозирование пикселя от среднего пикселя строки пикселей вместо первого пикселя, в котором другие пиксели прогнозируют относительно этого начального пикселя. Рассчитывают два направления прогнозирования, при этом можно уменьшить требуемое время обработки.
Другой вариант воплощения изобретения направлен на разделение на подблоки в соответствии с квантованием и принятыми решениями о конфигурации подблока. Общий коэффициент R сжатия определяют в соответствии с количеством N пикселей, используемых для данных яркости, и количеством М пикселей, используемых для сжатия данных цветности (U и V, или Сr и Сb). Для заданного значения (N, М) сжатия данных яркости и цветности существует ряд разных конфигураций подблоков. Модуль определения размера подблока или аналогичное устройство определяет оптимальную конфигурацию подблока, используя заданный набор входных данных и условий.
В другом варианте воплощения изобретение направлено на расчет стоимости, по меньшей мере, для части разных возможных конфигураций подблока, (например, или всех разных комбинаций подблока) на основе заданной информации, такой как получают из Information_from_chroma, R, точности ПК и т.п. В качестве примера, оценку стоимости можно выполнять в отношении количества генерируемых выходных битов. Если количество выходных битов для заданной конфигурации подблока превышает пороговое значение стоимости, предпочтительно определяемое по количеству доступных битов, тогда конфигурацию подблока отбрасывают, и проверяют следующую возможную конфигурацию подблока. По меньшей мере, в одном варианте воплощения, если ни одна из возможных конфигураций не будет доступна, тогда N пикселей исходного блока сжатия используют как подблок.
В другом варианте воплощения изобретение направлено на выбор либо линейного, или нелинейного квантования во время сжатия блока.
Другой вариант воплощения изобретения направлен на оценку параметра (ПК) квантования для использования при нелинейном квантовании, как описано здесь.
Другие варианты воплощения изобретения будут представлены в следующих частях описания, в которых представлено подробное описание изобретения с целью полного раскрытия предпочтительных вариантов воплощения изобретения, без наложения ограничений на него.
Краткое описание чертежей
Изобретение будет более понятным при рассмотрении следующих чертежей, которые представлены только с целью иллюстрации:
на фиг.1 показана блок-схема обычной архитектуры видеокамеры или фотокамеры, представляющая накопитель данных изображения после предварительной обработки в видеопамяти;
на фиг.2 показана блок-схема архитектуры видеокамеры или фотокамеры в соответствии с одним вариантом воплощения настоящего изобретения, представляющая сжатие данных изображения перед сохранением в видеопамяти;
на фиг.3 показана блок-схема подвергаемого сжатию блока, в соответствии с вариантом воплощения настоящего изобретения;
на фиг.4 показана блок-схема декомпрессии блока в соответствии с вариантом воплощения настоящего изобретения;
на фиг.5 показана блок-схема сжатия данных цветности и данных яркости в соответствии с вариантом воплощения настоящего изобретения, представляющая информацию для сжатия данных цветности, используемых в процессе сжатия данных яркости;
на фиг.6 показана блок-схема последовательности операций общего сжатия в соответствии с вариантом воплощения настоящего изобретения;
на фиг.7 показана блок-схема последовательности операций поддержки разных режимов сжатия в соответствии с вариантом воплощения настоящего изобретения;
на фиг.8 показана блок-схема принятия решений об уровне сжатия в соответствии с вариантом воплощения настоящего изобретения, представляющая оценку сложности текстуры и анализ при подготовке к принятию решения об уровне сжатия и выполнении способа сжатия;
на фиг.9 показана блок-схема последовательности операций способа сжатия в соответствии с вариантом воплощения настоящего изобретения, представляющая, либо линейное или нелинейное Q, выполняемое для блока в ответ на решение о квантовании;
на фиг.10 показана схема пикселей для прогнозирования пикселя в соответствии с вариантом воплощения настоящего изобретения, представляющая выбор опорного пикселя в середине пикселей;
на фиг.11 показана схема пикселей для правого и левого направлений прогнозирования в ответ на выбор опорного пикселя, как показано на фиг.10;
на фиг.12 показана блок-схема выбора размера подблока в соответствии с вариантом воплощения настоящего изобретения;
на фиг.13 показана блок-схема последовательности выполнения операций при определении размера подблока в соответствии с вариантом воплощения настоящего изобретения;
на фиг.14 показана блок-схема последовательности выполнения операций нелинейного квантования в ответ на оценку значения ПК и остаточных данных в соответствии с вариантом воплощения настоящего изобретения;
на фиг.15 показана блок-схема последовательности выполнения операций оценки ПК в соответствии с вариантом воплощения настоящего изобретения, показанная при выполнении в ответ на определение остаточных данных;
на фиг.16 показана блок-схема выбора линейного или нелинейного квантования в соответствии с вариантом воплощения настоящего изобретения;
на фиг.17 показана блок-схема последовательности выполнения операций при принятии решения о линейном или нелинейном квантовании в соответствии с вариантом воплощения настоящего изобретения.
Подробное описание изобретения
Обращаясь более конкретно к чертежам, с целью иллюстрации, настоящее изобретение воплощено в виде устройства, в общем, представленного на фиг.2 - фиг.17. Следует понимать, что возможно изменение конфигурации и деталей частей устройства, и что можно менять конкретные этапы способа и последовательность их выполнения, без выхода за пределы основных раскрытых здесь концепций.
Способ сжатия/декомпрессии видеоданных YUV
На фиг.2 иллюстрируется вариант 10 воплощения настоящего изобретения, для выполнения сжатия и декомпрессии видеоданных YUV (или YCrCb). Сжатие можно использовать для получения множества преимуществ, связанных с данным вариантом применения, например, для уменьшения требований к полосе пропускания шины и объему видеопамяти.
Устройство и способ в соответствии с настоящим изобретением принимает входные сигналы из видеоустройства 12, например, через шину 18, обрабатывает данные 14, и затем сжимает видеоданные 16 перед их сохранением во внешней видеопамяти 20. Видеокодер 24 или устройство 28 дисплея принимает сжатые видеоданные из видеопамяти и выполняет их декомпрессию 22, 26 перед использованием видеоданных. Поскольку видеоданные сжимают перед их сохранением в видеопамяти, требуемая полоса пропускания шины намного меньше, чем оригинальная, в то время как необходимый размер видеопамяти (например, СДОЗУ) аналогично уменьшается.
На фиг.3 иллюстрируется пример варианта 30 воплощения YUV или аналогичного блока, сжимаемого в соответствии с настоящим изобретением. Формат входных видеоданных блока 32 сжатия способа сжатия в соответствии с изобретением представляет собой YUV (или YCrCb). Во время процесса сжатия кадр (который в данном примере состоит из видеоданных Y, Сr и Сb) разделяют на набор блоков сжатия. Блок сжатия определяют как N пикселей для данных 34 яркости (Y) и М пикселей для каждых из данных 26, 38 цветности (Сr, Сb), как показано на чертеже. Поэтому общее количество пикселей в каждом блоке сжатия составляет (N+2M). Если В бит используют для представления пикселя, тогда общее количество битов составит (N+2M)×В битов.
Блок сжатия не перекрывается с другими блоками сжатия, и каждый блок сжатия сжимают независимо, без обращения к информации в других блоках.
Поскольку коэффициент сжатия R принимают как входные данные, один вариант воплощения способа 40 сжатия генерирует сжатые блоки 42 с фиксированным размером. Количество генерируемых битов рассчитывают по формуле:
Общее количество выходных битов = (N+2M)*B/R.
Например, если R равняется 2, общее генерируемое количество выходных битов составит половину оригинального количества битов YUV.
Если количество битов сжатой информации после сжатия будет меньше, чем
целевое количество битов, определенное по R, тогда предпочтительно вставляют биты наполнения для поддержания постоянного фиксированного суммарного количества выходных битов. Поскольку размер генерируемых битов каждого блока сжатия фиксирован, сжатый блок в любом положении может быть получен и восстановлен без обращения к информации из других блоков. Поэтому, используя способ в соответствии с изобретением, становится возможным доступ к видеоданным в случайном положении (как к модулю блока сжатия). Это необходимо в вариантах применения, в которых требуется обращаться к произвольной области кадра для другой видеообработки.
На фиг. 4 представлен вариант 50 воплощения способа восстановления. Способ восстановления принимает блок 52 сжатия, который восстанавливают 54 до блока 56 сжатия, который вернулся к исходному разрешению YUV, к такому как N пикселей для Y 58, М пикселей для U 60 и М пикселей для V. Восстановленные данные YUV также можно использовать в других устройствах для обработки видеоизображения. Поскольку размеры видеоданных после восстановления будут такими же, как и у оригинальных данных, другие устройства обработки не будут способны распознать на основе видеоформата какую-либо разницу, введенную алгоритмом сжатия.
На фиг. 5 иллюстрируются вариант 70 воплощения блока сжатия и соотношения между модулями сжатия яркости и цветности. По меньшей мере, в одном варианте воплощения сжатие данных яркости выполняют в ответ на информацию, полученную во время сжатия данных цветности для того же блока. Как можно видеть, данные 72 цветности (UV) принимают вначале для сжатия 74 данных цветности, при этом информацию сжатия данных цветности, Information Jrom_chroma, передают и используют в комбинации с данными 76 яркости (Y) для выполнения сжатия 78 данных яркости. Таким образом, предпочтительно, чтобы сжатие данных цветности выполняли вначале в соответствии со способом в соответствии с данным изобретением. Следует понимать, что информацию, полученную для данных цветности, можно содержать в течение любого требуемого времени или количества битов после сжатия, например, для использования во время сжатия данных яркости. Наконец, сжатые данные яркости и цветности упаковывают, как представлено блоком 80, в один сжатый блок 82. В соответствии с, по меньшей мере, одним предпочтительным вариантом воплощения, гарантируется, что размер данных будет находиться в пределах диапазона, определенного целевым коэффициентом сжатия.
На фиг.6 иллюстрируется вариант 90 воплощения общего способа сжатия в соответствии с изобретением. Здесь показаны прием блока 92 сжатия данных цветности и блока 94 сжатия данных яркости. Перед сжатием выполняют 96 оценку сложности текстуры данных цветности и выполняют 100 оценку сложности текстуры данных яркости (какой-либо конкретный порядок не предполагается). Сжатие 98 данных цветности и сжатие 102 данных яркости выполняют с данными, принятыми после обеих оценок сложности данных яркости и данных цветности, в то время как сжатие яркости дополнительно принимает информацию из сжатия данных цветности. Сжатые данные яркости и цветности затем принимают и упаковывают 104, и генерируют сжатый блок 106.
Возвращаясь к процессу сжатия, следует понимать, что каждый модуль сжатия (яркости и цветности) в настоящем изобретении может обеспечивать разные уровни (степень) сжатия (например, слабый, средний, сильный). В соответствии с, по меньшей мере, одним вариантом воплощения изобретения, степень сжатия предпочтительно выбирают в ответ на уровень сложности текстуры.
Коэффициент сжатия, представленная переменной R, управляет коэффициентом сжатия блоков сжатия Y, U и V. Следует отметить, что отсюда вовсе не следует, что Y, U и V подвергают фиксированному сжатию с коэффициентом R; поскольку Y, U и V (или Y, Сr и Сb) каждый могут быть по отдельности сжаты с любым требуемым коэффициентом, если только полученная в результате степень сжатия блока соответствует общему коэффициенту R сжатия. Поэтому, становится возможным распределять биты на основе разных коэффициентов сжатия между данными цветности и яркости.
В одном варианте воплощения изобретения воплощенный способ пытается оптимизировать (то есть, найти наилучший коэффициент сжатия в пределах ограничений технологии и доступной информации) коэффициент сжатия между данными яркости и цветности при поддержании общего коэффициента сжатия равным R. Этот вариант воплощения изобретения учитывает то, что глаз человека обычно более чувствителен к шумам в данных яркости, чем к шумам в данных цветности. Поэтому, в предпочтительной стратегии разделения битов, для данных цветности используют минимальное количество битов таким образом, чтобы можно было сделать максимальным количество битов, используемых для данных яркости. Однако, в некоторых случаях, например в случае, когда определяют, что данные цветности очень сложные, режим изобретения позволяет использовать для данных цветности достаточное количество битов для предотвращения возникновения визуальных искажений.
По меньшей мере, в одном варианте воплощения соотношение выделяемых битов выбирают на основе определения сложности текстуры данных яркости и данных цветности. Сложность текстуры, как показано на фиг. 6, может быть получена, например, путем расчета среднего значения остатков блока сжатия.
На фиг.7 иллюстрируется вариант 110 воплощения способа изобретения для поддержки разных режимов качества сжатия, в зависимости от уровня сжатия. Например, блок 112 сжатия может подвергаться режимам сжатия с низким 114, средним 116 и высоким 118 качеством, в соответствии с изобретением. Режим низкого качества возникает при использовании высокого коэффициента сжатия, в то время как режим видеоданных высокого качества получают при использовании малого коэффициента сжатия. В одном предпочтительном варианте воплощения способ 120 выполняют для выбора конечного наилучшего режима сжатия, в результате которого получают конечный сжатый блок 122. Следует понимать, что уровень сжатия можно определять как в режиме сжатия данных яркости, так и в режиме сжатия данных цветности.
Один пример воплощения разных уровней (режимов) сжатия может быть представлен при использовании точности битов выходного квантования. Для режимов с малой степенью сжатия можно использовать высокую степень точности, в то время как для низкой точности можно использовать режимы с высокой степенью сжатия. В зависимости от требуемого коэффициента сжатия точность квантования можно заранее определять на разных уровнях. Как показано на фиг. 7, определение наилучшего режима сжатия генерируют с помощью системы в ответ на информацию о сложности текстуры и доступных битах.
На фиг. 8 иллюстрируется примерный вариант 130 воплощения принятия решений в отношении уровня сжатия в соответствии с настоящим изобретением. Данные 132 яркости (Y) и данные 134 цветности (UV) принимают, соответственно, для оценки 136 сложности текстуры данных яркости и оценки 138 сложности текстуры данных цветности. Эти оценки сложности описаны в следующих секциях. Оценки текстуры данных яркости и цветности затем используют в анализаторе 140 текстуры, выход которого используют при принятии решений об уровне сжатия в блоке 142, и затем выполняют способ сжатия в соответствии с блоком 144, с получением 146 на выходе сжатых данных цветности и выводом информации из данных цветности 148. Способ сжатия описан со ссылкой на фиг. 5, в то время как анализ текстуры и принятие решения об уровне сжатия описаны ниже.
Оценка сложности текстуры данных яркости
Следующий псевдокод иллюстрирует, в качестве примера, а не для ограничения, оценку сложности текстуры данных яркости. Для каждого подблока сложность текстуры яркости анализируют, и сложность оценивают следующим образом.
индекс х: индекс положения пикселя
индекс bp: индекс положения подблока
Luma_Texture_Complexity (LTC)
Это значение обозначает сложность текущего блока сжатия данных яркости. Три разных уровня сложности могут быть определены: слабая, средняя и сильная.
Способ детектирования:
Для каждого подблока, рассчитать Residual [х] = Current pixel [х] - predicted pixel [x];
Для каждого подблока, найти максимум из Residual [х] в пределах подблока, например, max_Residual [bp];
Рассчитать average_residue среди max_Residue [bp] для всего блока сжатия;
Если averagejresidue < Threshold_l:
Весь luma_block рассматривают как "слабо сложный".
Если average_residue ≥ Threshold_2:
Рассчитать количество подблоков так, чтобы max_Residue [bp] > Threshold_3; Если рассчитанное количество < Threshold_4;
Тогда, весь luma_block рассматривают как "блок средней сложности". В противном случае, весь блок яркости рассматривают как "блок большой сложности".
Оценка сложности текстуры данных цветности
Следующий псевдокод иллюстрирует, в качестве примера, а не для ограничений, оценку сложности текстуры данных цветности. Для каждого подблока сложность текстуры данных цветности анализируют, и сложность оценивают следующим образом.
Сложность текстуры данных цветности (СТС)
Способ детектирования:
Для каждого подблока, рассчитать Residual [х] = Current pixel [х] - predicted pixel [x];
Если любой Residual [х] < Threshold_l:
Если остаточное значение на границе подблока больше, чем Threshold_2; Тогда подблок рассматривают как "low_complex".
В противном случае, подблок данных цветности 4x1 рассматривают как "high_complex"
Принятие решения об уровне сжатия
В качестве примера, а не для ограничений, принятие решения об уровне сжатия может быть воплощено в соответствии со следующим псевдокодом.
If(СТС=high)
If(LTC==low)
Chroma_Compression_Level=LOW_COMPRESSION_MODE
Luma_Compression_Level=HIGH_COMPRESSION_MODE
Else if(LTC=medium)
Chroma_Compression_Level=HIGH_COMPRESSION_MODE
Luma_Compression_Level=MIDDLE_COMPRESSION_MODE
Else (LTC=high)
Chroma_Compression_Level=LOW_COMPRESSION_MODE
Luma_Compression_Level=HIGH_COMPRESSION_MODE
Else if(CTC=low)
If(LTC=low)
Chroma_Compression_Level=LOW_COMPPvESSION_MODE
Luma_Compression_Level=HIGH_COMPRESSION_MODE
Else if(LTC==medium)
Chroma_Compression_Level=MIDDLE_COMPRESSION_MODE
Luma_Compression_Level=MIDDLE_COMPRESSION_MODE
Else(LTC=high)
Chroma_Compression_Level=HIGH_COMPRESSION_MODE
Luma_Compression_Level=MIDDLE_COMPRESSION_MODE
Способ сжатия на каждом уровне
На фиг.9 иллюстрируется примерный вариант 150 воплощения способа сжатия в соответствии с изобретением. Блок 152 сжатия принимают в процессе 154 прогнозирования, в котором выполняют прогнозирование текущего значения пикселя на основе предыдущих значений пикселей. После того, как прогнозируемое значение будет получено, остаточное значение (разность между текущим пикселем и прогнозируемым пикселем) рассчитывают в процессе 154 прогнозирования. Процесс 156 принятия решения о размере подблока определяет оптимальный размер подблока, на основе сложности текстуры и доступного бюджета битов. После того, как будет принято решение в 156 о размере подблока, набор остаточных данных разделяют в блоке 158 на массивы меньшего размера, называемые подблоками. Процесс 160 квантования применяют к каждому подблоку остаточных данных, для уменьшения количества выводимых битов. Поэтому в каждом подблоке можно выполнять квантование, используя уникальное значение ПК (параметр квантования). На чертеже показано, что решение принимают для выполнения линейного квантования 164, или оценки параметра (ПК) 162 квантования и затем выполняют нелинейное квантование 166. В любом случае, результаты подблока упаковывают в 168, для получения конечного сжатого блока 170.
Прогнозирование подразумевает то, что текущий пиксель был спрогнозирован из предыдущих пикселей. Прогнозируемый пиксель используют для расчета "остатка" между фактическим текущим значением пикселя и прогнозируемым значением пикселя. В способе в соответствии с изобретением остаток будет квантован и кодирован на более поздних этапах.
Прогнозируемое значение х[n]=F(х[n-1], х[n-2],…)
Остаток х[n]=abs(х[n] - Прогнозируемое значение х[n])
На фиг.10 и фиг.11 иллюстрируются механизмы исходного прогнозирования 190 пикселей и поддержки двух направлений 210 прогнозирования, соответственно. Следует понимать, что набор данных пикселей может иметь любой размер, при этом примерный набор данных показан для простоты в качестве примера, и не для ограничений. Для простоты пояснения будет описан набор данных в одном направлении, хотя эти механизмы также можно применять для данных в двух направлениях. На этих чертежах цифры в прямоугольниках показывают положение пикселей в блоке сжатия.
Следует отметить на фиг.10, что прогнозирование 190 начинается со среднего пикселя 194 данных 192 вместо первого пикселя. Пиксель в приблизительно среднем положении (например, в положении 16) 194 установлен как исходный опорный пиксель, при этом все другие пиксели прогнозируют, начиная от этого пикселя. Как показано на фиг.11, механизм 210 поддерживает два направления прогнозирования, которые обозначены как правое направление 212 и левое направление 214. Поскольку опорный пиксель (то есть, пиксель в положении 16) не меняется, прогнозирование каждого из этих двух направлений является независимым. Поэтому становится возможным обрабатывать прогнозирование параллельно для правого и левого направлений, в результате чего можно существенно уменьшить требуемое время обработки.
Блок сжатия разделен на подблоки. Назначение разделения на подблоки состоит в том, чтобы выделить независимый ПК для каждого подблока. Поскольку меньшее значение ПК можно использовать для минимизации шумов, связанных с квантованием, общее качество может быть улучшено или разделено на множество меньших подблоков. Однако если количество подблоков велико, увеличивается количество служебных данных для значения ПК.
Разделение на подблоки для квантования и принятие решения о конфигурации подблока
Для заданных (N, М) пикселей существует множество конфигураций подблоков, которые можно использовать. Модуль "принятия решения о размере подблока" определяет наилучшую конфигурацию подблока в ответ на принятые параметры.
Один пример разделения подблока основан на информации, полученной после сжатия данных цветности. В одном варианте воплощения настоящего изобретения сжатие данных цветности осуществляют вначале, в котором информацию этого процесса делают доступной для использования во время сжатия яркости. Например, общее количество битов, используемое при сжатии данных цветности и сложности текстуры данных цветности, можно рассматривать как information Jrom_chroma.
На фиг.12 иллюстрируется вариант 230 воплощения, предназначенный для принятия решения о размере подблока в модуле 232 принятия решения о размере подблока, в ответ на прием information Jrom_chroma, R, и QP_precision. Выход модуля 232 содержит наилучший размер подблока, например, 2×2, 4×4, 8×8 и т.д.
На фиг.13 иллюстрируется одно возможное воплощение 250 модуля "subblock_size_decision". Модуль принятия решения принимает 252 information_from_chroma, R, и QP_precision для каждой возможной конфигурации подблока. Рассчитывают стоимость вычислений для каждой конфигурации (254, 260, 266) на основе заданной информации. Значение стоимости может быть выражено как оцениваемое количество генерируемых выходных битов. Представлена многоступенчатая схема (256, 262) принятия решения, в которой, если количество выходных битов больше, чем это доступно, тогда эту конкретную конфигурацию отбрасывают, и выполняют проверку следующей возможной конфигурации. Альтернативные варианты воплощения здесь представлены в качестве примера как подблок 2582×2, подблок 2644×4 и т.д., вплоть до вывода 266 без разделения (N подблок). Можно видеть, что, когда ни одна из возможных конфигураций не является приемлемой, тогда N пикселей исходного блока сжатия используют 266 как подблок без разделения 268.
Следует понимать, что способ с соответствии с изобретением выполнен с возможностью поддержки двух процессов квантования, линейного и нелинейного квантования.
1. Оценка параметра квантования при нелинейном квантовании
При наличии набора возможных значений ПК система может проверять все эти значения ПК для поиска наилучшего соответствия. Однако сложность расчетов при всеобъемлющем поиске ПК снижает эффективность и имеет высокую стоимость воплощения.
На фиг.14 иллюстрируется вариант 270 воплощения способа с пониженной сложностью, для оценки значения ПК, без поиска всех возможных значений ПК. Остаточные данные 272 показаны как принятые от блока 274 оценки ПК. Как значение ПК, определенное по оценке, так и остаточные данные, принимаются нелинейным Q процессом 276.
На фиг. 15 иллюстрируется вариант 290 воплощения оценки ПК, который показан подробно. Блок оценки ПК в соответствии с изобретением использует оригинальные значения пикселей с остаточными данными 292 подблока, используемыми при поиске максимального остаточного значения 294 в подблоках. Максимальное значение затем используют при определении уровня 296 принятия решения при квантовании. Другими словами, по максимальному остаточному значению может быть найден максимальный уровень решения, по которому может быть определено 298 наилучшее значение ПК. В Таблице 1 представлен один пример отображения максимального уровня решения и значения ПК.
Для принятия решения в отношении значения ПК при двухбитном Q нелинейном квантовании, используют максимум остаточных данных, с использованием исходных данных в пределах блока 4x1 (оценка ПК). В Таблице 1 показано отображение между оценочными значениями ПК и данными max_residual в пределах подблока.
2. Принятие решения о линейном/нелинейном квантовании
В этом варианте воплощения настоящего изобретение каждый подблок может быть квантован в ответ на выбор линейного или нелинейного квантования, в соответствии со способом по изобретению. Например, в ответ на большие остаточные значения для подблока, значение ПК также проявляет тенденцию увеличения, при этом вводятся значительные шумы квантования, приводящие к формированию нежелательных визуальных искажений.
На фиг.16 иллюстрируется вариант 310 воплощения, состоящий в выборе нелинейного или линейного квантования в ответ на видеоданные содержания, для предотвращения роста визуальных искажений, таких как шумы. На фигуре показаны примерные параметры, используемые при выборе, которые представлены как остаточные 312 значения подблока и исходные данные 314 пикселей. Однако любые другие параметры, доступные на данном этапе, также можно использовать, при принятии 316 решения о квантовании для получения конечного решения 318 о способе квантования.
На фиг.17 иллюстрируется вариант 330 воплощения модуля "принятия решения о нелинейном/линейном квантовании". Данные, такие как остаточные значения 332 подблока и исходные значения 334 данных пикселей подблока принимают в модуле 336 детектирования кромки. Следует понимать, что детектирование 336 кромки может быть воплощено с использованием любого количества альтернативных способов, с применением исходных пикселей или остаточных значений, или аналогичных значений. Например, если максимальное количество остаточных значений в подблоке больше, чем пороговое значение, его можно рассматривать, как присутствие резкой кромки. Если резкие кромки не детектируются, как на этапе 338, тогда принимают решение использовать нелинейное квантование 346. В противном случае выполняют 340 оценку стоимости для использования линейного квантования, которую затем сравнивают на этапе 342 с доступным количеством битов для получения решения использовать линейное квантование 344. Если стоимость больше, чем доступное количество битов, выбирают нелинейное квантование 346.
Хотя приведенное выше описание содержит множество деталей, их не следует рассматривать как ограничение объема изобретения, а всего лишь как иллюстрацию некоторых предпочтительных в настоящее время вариантов воплощения этого изобретения. Поэтому, следует понимать, что объем настоящего изобретения полностью охватывает другие варианты воплощения, которые могут быть очевидными для специалиста в данной области техники, и объем настоящего изобретения, соответственно, не должен быть ограничен ничем, кроме как приложенной формулой изобретения, в которой ссылка на элемент в единственном числе не предполагает "один и только один", если только это не будет установлено явным образом, а скорее "один или больше". Все конструктивные и функциональные эквиваленты описанного выше предпочтительного варианта воплощения, которые известны специалистам в данной области техники, определенно приводятся здесь по ссылке, и при этом предполагается, что они охвачены настоящей формулой изобретения. Кроме того, нет необходимости, чтобы устройство или способ решало каждую задачу, поиск решения которой осуществлялся настоящим изобретением, для того, чтобы они были охвачены настоящей формулой изобретения. Кроме того, ни один из элементов, компонентов или этапов способа в настоящем раскрытии не предназначен для публики, независимо от того, перечисляется ли этот элемент, компонент или этап способа в явном виде в формуле изобретения. Ни один элемент приведенной здесь формулы изобретения не следует рассматривать в соответствии с положениями 35 U.S.С 112, параграф шестой, если только этот элемент не будет представлен в явном виде, с использованием фразы "средство для".
Пример отображения максимального уровня принятия решения и значения ПК
DL
D0
D1
D2
D3
D4
D5
D6
D7
MRR
r<4
4≤r<4
8≤r<16
16≤r<32
32≤r<48
48≤r<64
64≤r<128
128≤r<256
Е. ПК
0
1
2
3
4
5
6
7
DL (УР) - Уровень принятия решения; MRR (МДО) - Максимальный диапазон остаточного значения; Е. ПК - Оценка ПК