Палитровое прогнозирование при кодировании видео на основе палитр

Иллюстрации

Показать все

Изобретение относится к вычислительной технике. Технический результат заключается в повышении эффективности кодирования экранного контента. Предложен способ кодирования видеоданных, в котором формируют прогнозирующую палитру, включающую в себя записи палитры, которые указывают пиксельные значения; определяют, какие из записей палитры в прогнозирующей палитре должны копироваться в текущую палитру для текущего блока видеоданных, хранимого в памяти; кодируют один или более элементов синтаксиса, указывающих число новых записей палитры, которые должны быть включены в текущую палитру для текущего блока; кодируют один или более элементов синтаксиса, указывающих пиксельное значение для каждой из новых записей палитры, которые должны быть включены в текущую палитру; вычисляют размер текущей палитры, равный сумме числа скопированных записей палитры и числа новых записей палитры; формируют текущую палитру, имеющую вычисленный размер, включающую в себя скопированные записи палитры и новые записи палитры, и определяют значения индекса для одного или более пиксельных значений текущего блока, которые идентифицируют записи палитры в текущей палитре, используемые для того, чтобы представлять пиксельные значения текущего блока. 4 н. и 18 з.п. ф-лы, 9 ил.

Реферат

[0001] Данная заявка испрашивает приоритет предварительной заявки (США) номер 61/845824, поданной 12 июля 2013 года, предварительной заявки (США) номер 61/899048, поданной 1 ноября 2013 года, и предварительной заявки (США) номер 61/913040, поданной 6 декабря 2013 года, содержимое каждой из которых полностью включено в данный документ по ссылке.

Область техники, к которой относится изобретение

[0002] Данное раскрытие сущности относится к кодированию и декодированию видео.

Уровень техники

[0003] Поддержка цифрового видео может быть включена в широкий диапазон устройств, включающих в себя цифровые телевизионные приемники, системы цифровой прямой широковещательной передачи, беспроводные широковещательные системы, персональные цифровые устройства (PDA), переносные или настольные компьютеры, планшетные компьютеры, устройства для чтения электронных книг, цифровые камеры, цифровые записывающие устройства, цифровые мультимедийные проигрыватели, устройства видеоигр, консоли для видеоигр, сотовые или спутниковые радиотелефоны, так называемые "смартфоны", устройства видеоконференц-связи, устройства потоковой передачи видео и т.п. Цифровые видеоустройства реализуют такие технологии сжатия видео, как технологии сжатия видео, описанные в стандартах, заданных посредством разрабатываемых в настоящее время стандартов MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, часть 10, усовершенствованное кодирование видео (AVC), стандарта высокоэффективного кодирования видео (HEVC), и расширений таких стандартов. Видеоустройства могут передавать, принимать, кодировать, декодировать и/или сохранять цифровую видеоинформацию более эффективно посредством реализации таких технологий сжатия видео.

[0004] Технологии сжатия видео выполняют пространственное (внутрикадровое) прогнозирование и/или временное (межкадровое) прогнозирование для того, чтобы уменьшать или удалять избыточность, внутренне присущую в видеопоследовательностях. Для кодирования видео на основе блоков серия последовательных видеомакроблоков (т.е. видеокадр или часть видеокадра) может быть сегментирована на видеоблоки. Видеоблоки в серии внутренне кодированных последовательных (I-) макроблоков изображения кодируются с использованием пространственного прогнозирования относительно опорных выборок в соседних блоках в идентичном изображении. Видеоблоки в серии взаимно кодированных последовательных (P- или B-) макроблоков изображения могут использовать пространственное прогнозирование относительно опорных выборок в соседних блоках в идентичном изображении или временное прогнозирование относительно опорных выборок в других опорных изображениях. Изображения могут упоминаться как кадры, и опорные изображения могут упоминаться как опорные кадры.

[0005] Пространственное или временное прогнозирование приводит в результате к прогнозирующему блоку для блока, который должен быть кодирован. Остаточные данные представляют пиксельные разности между исходным блоком, который должен быть кодирован, и прогнозирующим блоком. Взаимно кодированный блок кодируется согласно вектору движения, который указывает на блок опорных выборок, формирующих прогнозный блок, и остаточные данные указывают разность между кодированным блоком и прогнозным блоком. Внутренне кодированный блок кодируется согласно режиму внутреннего кодирования и остаточным данным. Для дополнительного сжатия остаточные данные могут быть преобразованы из пиксельной области в область преобразования, приводя к остаточным коэффициентам, которые затем могут быть квантованы. Квантованные коэффициенты, первоначально размещаемые в двумерном массиве, могут сканироваться для того, чтобы формировать одномерный вектор коэффициентов, и может применяться энтропийное кодирование с тем, чтобы достигать еще большего сжатия.

[0006] Поток битов многовидового кодирования может формироваться посредством кодирования видов, например, с нескольких перспектив. Разработаны некоторые трехмерные видеостандарты, которые используют аспекты многовидового кодирования. Например, различные виды могут передавать виды для левого и правого глаза, чтобы поддерживать трехмерное видео. Альтернативно, некоторые процессы кодирования трехмерного видео могут применять так называемое многовидовое кодирование с учетом глубины. При многовидовом кодировании с учетом глубины поток трехмерных видеобитов может содержать не только компоненты видов текстуры, но также и компоненты видов глубины. Например, каждый вид может содержать один компонент вида текстуры и один компонент вида глубины.

Сущность изобретения

[0007] Технологии этого раскрытия сущности относятся к кодированию видео на основе палитр. При кодировании на основе палитр, видеокодер (например, видеокодер или видеодекодер) может формировать так называемую "палитру" в качестве таблицы цветов или пиксельных значений, представляющих видеоданные конкретной области (например, данного блока). Таким образом, вместо кодирования фактических пиксельных значений или их остатков для текущего блока видеоданных, видеокодер может кодировать значения индекса для одного или более пиксельных значений текущего блока, причем значения индекса указывают записи в палитре, которые используются для того, чтобы представлять пиксельные значения текущего блока. Текущая палитра для текущего блока видеоданных может быть явно кодирована и отправлена в видеодекодер, прогнозирована из предыдущих записей палитры, прогнозирована из предыдущих пиксельных значений либо как комбинация вышеозначенного.

[0008] Согласно технологиям, описанным в этом раскрытии сущности для формирования текущей палитры для текущего блока, видеодекодер сначала определяет одну или более записей палитры в прогнозирующей палитре, которые копируются в текущую палитру, и затем определяет число новых записей палитры, которые не находятся в прогнозирующей палитре, но которые включены в текущую палитру. На основе этой информации, видеодекодер вычисляет размер текущей палитры как равный сумме числа скопированных записей палитры и числа новых записей палитры и формирует текущую палитру определенного размера, включающую в себя скопированные записи палитры и новые записи палитры. Видеокодер может выполнять аналогичные технологии для того, чтобы формировать текущую палитру для текущего блока. Помимо этого, видеокодер может явно кодировать и отправлять пиксельные значения для новых записей палитры в видеодекодер. Технологии, описанные в этом раскрытии сущности, также могут включать в себя технологии для различных комбинаций одного или более из передачи в служебных сигналах режимов кодирования на основе палитр, передачи палитр, прогнозирования палитр, извлечения палитр или передачи карт кодирования на основе палитр и других элементов синтаксиса.

[0009] В одном примере, это раскрытие сущности направлено на способ кодирования видеоданных, при этом способ содержит формирование прогнозирующей палитры, включающей в себя записи палитры, которые указывают пиксельные значения, определение одной или более записей палитры в прогнозирующей палитре, которые копируются в текущую палитру для текущего блока видеоданных, определение числа новых записей палитры не в прогнозирующей палитре, которые включены в текущую палитру для текущего блока, вычисление размера текущей палитры, равного сумме числа скопированных записей палитры и числа новых записей палитры, и формирование текущей палитры, включающей в себя скопированные записи палитры и новые записи палитры. Способ дополнительно содержит определение значений индекса для одного или более пиксельных значений текущего блока, которые идентифицируют записи палитры в текущей палитре, используемые для того, чтобы представлять пиксельные значения текущего блока.

[0010] В другом примере, это раскрытие сущности направлено на устройство для кодирования видеоданных, причем устройство содержит запоминающее устройство, хранящее видеоданные, и один или более процессоров, выполненных с возможностью формировать прогнозирующую палитру, включающую в себя записи палитры, которые указывают пиксельные значения, определять одну или более записей палитры в прогнозирующей палитре, которые копируются в текущую палитру для текущего блока видеоданных, определять число новых записей палитры не в прогнозирующей палитре, которые включены в текущую палитру для текущего блока, вычислять размер текущей палитры, равный сумме числа скопированных записей палитры и числа новых записей палитры, и формировать текущую палитру, включающую в себя скопированные записи палитры и новые записи палитры. Процессоры дополнительно выполнены с возможностью определять значения индекса для одного или более пиксельных значений текущего блока, которые идентифицируют записи палитры в текущей палитре, используемые для того, чтобы представлять пиксельные значения текущего блока.

[0011] В другом примере, это раскрытие сущности направлено на устройство для кодирования видеоданных, причем устройство содержит средство для формирования прогнозирующей палитры, включающей в себя записи палитры, которые указывают пиксельные значения, средство для определения одной или более записей палитры в прогнозирующей палитре, которые копируются в текущую палитру для текущего блока видеоданных, средство для определения числа новых записей палитры не в прогнозирующей палитре, которые включены в текущую палитру для текущего блока, средство для вычисления размера текущей палитры, равного сумме числа скопированных записей палитры и числа новых записей палитры, средство для формирования текущей палитры, включающей в себя скопированные записи палитры и новые записи палитры, и средство для определения значений индекса для одного или более пиксельных значений текущего блока, которые идентифицируют записи палитры в текущей палитре, используемые для того, чтобы представлять пиксельные значения текущего блока.

[0012] В дополнительном примере, это раскрытие сущности направлено на невременный машиночитаемый носитель, хранящий инструкции, которые при выполнении инструктируют одному или более процессоров формировать прогнозирующую палитру, включающую в себя записи палитры, которые указывают пиксельные значения, определять одну или более записей палитры в прогнозирующей палитре, которые копируются в текущую палитру для текущего блока видеоданных, определять число новых записей палитры не в прогнозирующей палитре, которые включены в текущую палитру для текущего блока, вычислять размер текущей палитры, равный сумме числа скопированных записей палитры и числа новых записей палитры, формировать текущую палитру, включающую в себя скопированные записи палитры и новые записи палитры, и определять значения индекса для одного или более пиксельных значений текущего блока, которые идентифицируют записи палитры в текущей палитре, используемые для того, чтобы представлять пиксельные значения текущего блока.

[0013] Подробности одного или более примеров данного раскрытия сущности изложены на прилагаемых чертежах и в нижеприведенном описании. Другие признаки, цели и преимущества должны становиться очевидными из описания, чертежей и формулы изобретения.

Краткое описание чертежей

[0014] Фиг. 1 является блок-схемой, иллюстрирующей примерную систему кодирования видео, которая может использовать технологии, описанные в этом раскрытии сущности.

[0015] Фиг. 2 является блок-схемой, иллюстрирующей примерный видеокодер, который может реализовывать технологии, описанные в этом раскрытии сущности.

[0016] Фиг. 3 является блок-схемой, иллюстрирующей примерный видеодекодер, который может реализовывать технологии, описанные в этом раскрытии сущности.

[0017] Фиг. 4 является концептуальной схемой, иллюстрирующей пример определения палитры для кодирования видеоданных, в соответствии с технологиями этого раскрытия сущности.

[0018] Фиг. 5 является концептуальной схемой, иллюстрирующей примеры определения индексов для палитры для видеоблока, в соответствии с технологиями этого раскрытия сущности.

[0019] Фиг. 6 является концептуальной схемой, иллюстрирующей примеры определения геометрического края видеоблока с использованием серии индексов палитры для компонента сигнала яркости, адаптивно понижающе дискретизированного для компонентов сигнала цветности, в соответствии с технологиями этого раскрытия сущности.

[0020] Фиг. 7 является блок-схемой последовательности операций способа, иллюстрирующей примерный процесс для кодирования видеоданных остатков прогнозирования с использованием режима кодирования на основе палитр, в соответствии с технологиями этого раскрытия сущности.

[0021] Фиг. 8 является блок-схемой последовательности операций способа, иллюстрирующей примерный процесс для декодирования видеоданных остатков прогнозирования с использованием режима кодирования на основе палитр, в соответствии с технологиями этого раскрытия сущности.

[0022] Фиг. 9 является блок-схемой последовательности операций способа, иллюстрирующей примерный процесс для формирования палитры для кодирования на основе палитр, в соответствии с технологиями этого раскрытия сущности.

Подробное описание изобретения

[0023] Это раскрытие сущности включает в себя технологии для кодирования и сжатия видео. В частности, это раскрытие сущности описывает технологии для кодирования на основе палитр видеоданных. При традиционном кодировании видео, изображения предположительно имеют непрерывный тон и пространственную плавность. На основе этих допущений, разработаны различные инструментальные средства, такие как преобразование на основе блоков, фильтрация и т.д., и такие инструментальные средства демонстрируют хорошую производительность для естественных видео контента.

[0024] Тем не менее, в таких приложениях, как удаленный рабочий стол, совместная работа и беспроводной дисплей, машиногенерируемый экранный контент (например, такой как текст или компьютерная графика) может представлять собой доминирующий контент, который должен сжиматься. Этот тип контента имеет тенденцию иметь дискретный тон и рисовать резкие линии и высококонтрастные границы объектов. Допущение касательно непрерывного тона и плавности больше не может применяться для экранного контента, и в силу этого традиционные технологии кодирования видео не могут представлять собой эффективные способы сжимать видеоданные, включающие в себя экранный контент.

[0025] Это раскрытие сущности описывает кодирование на основе палитр, которое может быть, в частности, подходящим для кодирования экраногенерируемого контента. Например, при условии, что конкретная область видеоданных имеет относительно небольшое число цветов, видеокодер (видеокодер или видеодекодер) может формировать так называемую "палитру" в качестве таблицы цветов или пиксельных значений, представляющих видеоданные конкретной области (например, данного блока). Например, палитра может включать наиболее доминирующие пиксельные значения в данный блок. В некоторых случаях, наиболее доминирующие пиксельные значения могут включать в себя один или более пиксельных значений, которые возникают наиболее часто в блоке. Помимо этого, в некоторых случаях пороговое значение может применяться, чтобы задавать то, включено или нет пиксельное значение в качестве одного из наиболее доминирующих пиксельных значений в блок. Согласно этому раскрытию сущности, вместо кодирования фактических пиксельных значений или их остатков для текущего блока видеоданных, видеокодер может кодировать значения индекса, указывающие одно или более пиксельных значений текущего блока, причем значения индекса указывают записи в палитре, которые используются для того, чтобы представлять пиксельные значения текущего блока.

[0026] Например, видеокодер может кодировать блок видеоданных посредством определения палитры для блока (например, явного кодирования палитры, прогнозирования палитры или комбинации вышеозначенного), нахождения записи в палитре, чтобы представлять одно или более пиксельных значений, и кодирования блока с помощью значений индекса, которые указывают запись в палитре, используемую для того, чтобы представлять пиксельные значения блока. В некоторых примерах, видеокодер может передавать в служебных сигналах значения индекса в кодированном потоке битов. Видеодекодер может получать, из кодированного потока битов, палитру для блока, а также значения индекса для пикселов блока. Видеодекодер может связывать значения индекса пикселов с записями палитры, чтобы восстанавливать пиксельные значения блока.

[0027] Вышеприведенные примеры имеют намерение предоставлять общее описание кодирования на основе палитр. В различных примерах, технологии, описанные в этом раскрытии сущности, могут включать в себя технологии для различных комбинаций одного или более из передачи в служебных сигналах режимов кодирования на основе палитр, передачи палитр, прогнозирования палитр, извлечения палитр или передачи карт кодирования на основе палитр и других элементов синтаксиса. Такие технологии могут повышать эффективность кодирования видео, например, требуя меньшего числа битов для того, чтобы представлять экраногенерируемый контент.

[0028] Например, текущая палитра для текущего блока видеоданных может быть явно кодирована и отправлена в видеодекодер, прогнозирована из предыдущих записей палитры, прогнозирована из предыдущих пиксельных значений либо как комбинация вышеозначенного. Согласно технологиям, описанным в этом раскрытии сущности для формирования текущей палитры для текущего блока, видеодекодер сначала определяет одну или более записей палитры в прогнозирующей палитре, которые копируются в текущую палитру, и затем определяет число новых записей палитры, которые не находятся в прогнозирующей палитре, но которые включены в текущую палитру. На основе этой информации, видеодекодер вычисляет размер текущей палитры как равный сумме числа скопированных записей палитры и числа новых записей палитры и формирует текущую палитру определенного размера, включающую в себя скопированные записи палитры и новые записи палитры. Видеокодер может выполнять аналогичные технологии для того, чтобы формировать текущую палитру для текущего блока. Помимо этого, видеокодер может явно кодировать и отправлять пиксельные значения для новых записей палитры в видеодекодер.

[0029] В некоторых примерах этого раскрытия сущности, технологии для кодирования на основе палитр видеоданных могут использоваться с одной или более других технологий кодирования, таких как технологии для взаимного прогнозирующего кодирования или внутреннего прогнозирующего кодирования видеоданных. Например, как подробнее описано ниже, кодер или декодер, или комбинированный кодер-декодер (кодек) может быть выполнен с возможностью осуществлять взаимное и внутреннее прогнозирующее кодирование, а также кодирование на основе палитр. В некоторых примерах, технологии кодирования на основе палитр могут быть выполнены с возможностью использования в одном или более режимов единицы кодирования (CU) стандарта высокоэффективного кодирования видео (HEVC). В других примерах, технологии кодирования на основе палитр могут использоваться независимо или в качестве части других существующих или будущих систем или стандартов.

[0030] Стандарт высокоэффективного кодирования видео (HEVC) представляет собой новый стандарт кодирования видео, разрабатываемый посредством Объединенной группы для совместной работы над видеостандартами (JCT-VC) Экспертной группы в области кодирования видео (VCEG) ITU-T и Экспертной группы по киноизображению (MPEG) ISO/IEC. Недавний проект HEVC-стандарта, называемый как "HEVC-проект 10" "WD10", описывается в документе JCTVC-L1003v34 авторов Bross и др. "High Efficiency Video Coding (HEVC) Text Specification Draft 10 (for FDIS and Last Call)", Объединенная группа для совместной работы над видеостандартами (JCT-VC) ITU-T SG16 WP3 и ISO/IEC JTC1/SC29/WG11, 12 конференция: Женева, CH, 14-23 января 2013 года, доступном по адресу:

http://phenix.int-evry.fr/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC-L1003-v34.zip.

[0031] Относительно инфраструктуры HEVC в качестве примера, технологии кодирования на основе палитр могут быть выполнены с возможностью использоваться в качестве CU-режима. В других примерах, технологии кодирования на основе палитр могут быть выполнены с возможностью использоваться в качестве PU-режима в инфраструктуре HEVC. Соответственно, все следующие раскрытые процессы, описанные в контексте CU-режима, дополнительно или альтернативно, могут применяться к PU. Тем не менее, эти примеры на основе HEVC не должны считаться ограничением или недочетом технологий кодирования на основе палитр, описанных в данном документе, поскольку технологии в данном документе могут применяться, чтобы работать независимо или в качестве части других существующих или будущих разрабатываемых систем/стандартов. В этих случаях, единица для палитрового кодирования может представлять собой квадратные блоки, прямоугольные блоки или даже области непрямоугольной формы.

[0032] Фиг. 1 является блок-схемой, иллюстрирующей примерную систему 10 кодирования видео, которая может использовать технологии этого раскрытия сущности. При использовании в данном документе, термин "видеокодер" относится обобщенно к видеокодерам и видеодекодерам. В этом раскрытии сущности, термины "кодирование видео" или "кодирование" могут относиться обобщенно к кодированию видео или декодированию видео. Видеокодер 20 и видеодекодер 30 системы 10 кодирования видео представляют примеры устройств, которые могут быть выполнены с возможностью осуществлять технологии для кодирования видео на основе палитр в соответствии с различными примерами, описанными в этом раскрытии сущности. Например, видеокодер 20 и видеодекодер 30 могут быть выполнены с возможностью избирательно кодировать различные блоки видеоданных, к примеру, CU или PU при HEVC-кодировании, с использованием кодирования на основе палитр либо кодирования не на основе палитр. Режимы кодирования не на основе палитр могут означать различные режимы взаимного прогнозирующего временного кодирования или режимы внутреннего прогнозирующего пространственного кодирования, к примеру, различные режимы кодирования, указываемые посредством HEVC-проекта 10.

[0033] Как показано на фиг. 1, система 10 кодирования видео включает в себя исходное устройство 12 и целевое устройство 14. Исходное устройство 12 формирует кодированные видеоданные. Соответственно, исходное устройство 12 может упоминаться в качестве устройства кодирования видео или устройства кодирования видео. Целевое устройство 14 может декодировать кодированные видеоданные, сформированные посредством исходного устройства 12. Соответственно, целевое устройство 14 может упоминаться в качестве устройства декодирования видео или устройства декодирования видео. Исходное устройство 12 и целевое устройство 14 могут быть примерами устройств кодирования видео или устройств кодирования видео.

[0034] Исходное устройство 12 и целевое устройство 14 могут содержать широкий диапазон устройств, включающих в себя настольные компьютеры, мобильные вычислительные устройства, ноутбуки (например, переносные компьютеры), планшетные компьютеры, абонентские приставки, телефонные трубки, к примеру, так называемые смартфоны, телевизионные приемники, камеры, устройства отображения, цифровые мультимедийные проигрыватели, консоли для видеоигр, встроенные в автомобиль компьютеры и т.п.

[0035] Целевое устройство 14 может принимать кодированные видеоданные из исходного устройства 12 через канал 16. Канал 16 может содержать одну или более сред или устройств, допускающих перемещение кодированных видеоданных из исходного устройства 12 в целевое устройство 14. В одном примере, канал 16 может содержать одну или более сред связи, которые предоставляют возможность исходному устройству 12 передавать кодированные видеоданные непосредственно в целевое устройство 14 в реальном времени. В этом примере, исходное устройство 12 может модулировать кодированные видеоданные согласно стандарту связи, такому как протокол беспроводной связи, и может передавать модулированные видеоданные в целевое устройство 14. Одна или более сред связи могут включать в себя беспроводные среды связи и/или проводные среды связи, к примеру, радиочастотный (RF) спектр или одну или более физических линий передачи. Одна или более сред связи могут составлять часть сети с коммутацией пакетов, такой как локальная вычислительная сеть, глобальная вычислительная сеть или глобальная сеть (например, Интернет). Одна или более сред связи могут включать в себя маршрутизаторы, коммутаторы, базовые станции или другое оборудование, которое упрощает передачу из исходного устройства 12 в целевое устройство 14.

[0036] В другом примере, канал 16 может включать в себя носитель хранения данных, который хранит кодированные видеоданные, сформированные посредством исходного устройства 12. В этом примере, целевое устройство 14 может осуществлять доступ к носителю хранения данных через доступ к диску или доступ по карте. Носитель хранения данных может включать в себя множество локально доступных носителей хранения данных, таких как Blu-Ray-диски, DVD, CD-ROM, флэш-память или другие подходящие цифровые носители хранения данных для хранения кодированных видеоданных.

[0037] В дополнительном примере, канал 16 может включать в себя файловый сервер или другое промежуточное устройство хранения данных, которое хранит кодированные видеоданные, сформированные посредством исходного устройства 12. В этом примере, целевое устройство 14 может осуществлять доступ к кодированным видеоданным, сохраненным на файловом сервере или другом промежуточном устройстве хранения данных через потоковую передачу или загрузку. Файловый сервер может представлять собой тип сервера, допускающего сохранение кодированных видеоданных и передачу кодированных видеоданных в целевое устройство 14. Примерные файловые серверы включают в себя веб-серверы (например, для веб-узла), серверы по протоколу передачи файлов (FTP), устройства по протоколу системы хранения данных с подключением по сети (NAS) и локальные накопители на дисках.

[0038] Целевое устройство 14 может осуществлять доступ к кодированным видеоданным через стандартное подключение для передачи данных, к примеру, Интернет-подключение. Примерные типы подключений для передачи данных могут включать в себя беспроводные каналы (например, Wi-Fi-подключения), проводные подключения (например, DSL, кабельный модем и т.д.) или комбинации вышеозначенного, которые являются подходящими для осуществления доступа к кодированным видеоданным, сохраненным на файловом сервере. Передача кодированных видеоданных из файлового сервера может представлять собой потоковую передачу, передачу на основе загрузки или комбинацию вышеозначенного.

[0039] Технологии этого раскрытия сущности не ограничены приложениями или настройками беспроводной связи. Технологии могут применяться к кодированию видео в поддержку множества мультимедийных приложений, таких как телевизионные широковещательные передачи по радиоинтерфейсу, кабельные телевизионные передачи, спутниковые телевизионные передачи, потоковые передачи видео, например, через Интернет, кодирование видеоданных для хранения на носителе хранения данных, декодирование видеоданных, сохраненных на носителе хранения данных, или другие приложения. В некоторых примерах, система 10 кодирования видео может быть выполнена с возможностью поддерживать одностороннюю или двустороннюю передачу видео, чтобы поддерживать такие приложения, как потоковая передача видео, воспроизведение видео, широковещательная передача видео и/или видеотелефония.

[0040] Система 10 кодирования видео, проиллюстрированная на фиг. 1, является просто примером, и технологии этого раскрытия сущности могут применяться к настройкам кодирования видео (например, кодирования видео или декодирования видео), которые не обязательно включают в себя передачу данных между устройствами кодирования и декодирования. В других примерах, данные извлекаются из локального запоминающего устройства, передаются в потоковом режиме по сети и т.п. Устройство кодирования видео может кодировать и сохранять данные в запоминающем устройстве, и/или устройство декодирования видео может извлекать и декодировать данные из запоминающего устройства. Во многих примерах, кодирование и декодирование выполняется посредством устройств, которые не обмениваются данными друг с другом, а просто кодируют данные в запоминающее устройство и/или извлекают и декодируют данные из запоминающего устройства.

[0041] В примере по фиг. 1, исходное устройство 12 включает в себя видеоисточник 18, видеокодер 20 и интерфейс 22 вывода. В некоторых примерах, интерфейс 22 вывода может включать в себя модулятор/демодулятор (модем) и/или передающее устройство. Видеоисточник 18 может включать в себя устройство видеозахвата, например, видеокамеру, видеоархив, содержащий ранее захваченные видеоданные, интерфейс прямых видеотрансляций, чтобы принимать видеоданные от поставщика видеоконтента, и/или компьютерную графическую систему для формирования видеоданных либо комбинацию таких источников видеоданных.

[0042] Видеокодер 20 может кодировать видеоданные из видеоисточника 18. В некоторых примерах, исходное устройство 12 непосредственно передает кодированные видеоданные в целевое устройство 14 через интерфейс 22 вывода. В других примерах, кодированные видеоданные также могут быть сохранены на носитель хранения данных или файловый сервер для последующего доступа посредством целевого устройства 14 для декодирования и/или воспроизведения.

[0043] В примере по фиг. 1, целевое устройство 14 включает в себя интерфейс 28 ввода, видеодекодер 30 и устройство 32 отображения. В некоторых примерах, интерфейс 28 ввода включает в себя приемное устройство и/или модем. Интерфейс 28 ввода может принимать кодированные видеоданные по каналу 16. Устройство 32 отображения может быть интегрировано или может быть внешним для целевого устройства 14. В общем, устройство 32 отображения отображает декодированные видеоданные. Устройство 32 отображения может содержать множество устройств отображения, таких как жидкокристаллический дисплей (LCD), плазменный дисплей, дисплей на органических светодиодах (OLED) или другой тип устройства отображения.

[0044] Это раскрытие сущности, в общем, может означать "передачу в служебных сигналах" или "передачу" определенной информации посредством видеокодера 20 в другое устройство, такое как видеодекодер 30. Термин "передача служебных сигналов" или "передача", в общем, может означать передачу элементов синтаксиса и/или других данных, используемых для того, чтобы декодировать сжатые видеоданные. Эта связь может осуществляться в реальном или практически в реальном времени. Альтернативно, эта связь может осуществляться в промежутке времени, к примеру, может осуществляться при сохранении элементов синтаксиса на машиночитаемом носителе хранения данных в кодированном потоке битов во время кодирования, которые затем могут извлекаться посредством устройства декодирования видео в любое время после сохранения на этом носителе. Таким образом, тогда как видеодекодер 30 может упоминаться как "принимающий" определенную информацию, прием информации не обязательно осуществляется в реальном или практически в реальном времени и может извлекаться из носителя в определенное время после хранения.

[0045] Видеокодер 20 и видеодекодер 30 могут быть реализованы как любая из множества надлежащих схем, к примеру, как один или более микропроцессоров, процессоров цифровых сигналов (DSP), специализированных интегральных схем (ASIC), программируемых пользователем вентильных матриц (FPGA), дискретная логика, аппаратные средства либо любые комбинации вышеозначенного. Если технологии реализуются частично в программном обеспечении, устройство может сохранять инструкции для программного обеспечения на подходящем невременном машиночитаемом носителе хранения данных и может выполнять инструкции в аппаратных средствах с использованием одного или более процессоров, чтобы осуществлять технологии этого раскрытия сущности. Любое из вышеозначенного (включающее в себя аппаратные средства, программное обеспечение, комбинацию аппаратных средств и программного обеспечения и т.д.) может рассматриваться в качестве одного или более процессоров. Каждый из видеокодера 20 и видеодекодера 30 может быть включен в один или более кодеров или декодеров, любой из которых может быть интегрирован как часть комбинированного кодера/декодера (кодека) в соответствующем устройстве.

[0046] В некоторых примерах, видеокодер 20 и видеодекодер 30 работают согласно такому стандарту сжатия видео, как HEVC-стандарт, упомянутый выше и описанный в HEVC-проекте 10. В дополнение к базовому HEVC-стандарту, прилагаются постоянные усилия для формирования расширений для масштабируемого кодирования видео, кодирования многовидового видео и трехмерного кодирования для HEVC. Помимо этого, режимы кодирования на основе палитр, например, как описано в этом раскрытии сущности, могут предоставляться для расширения HEVC-стандарта. В некоторых примерах, технологии, описанные в этом раскрытии сущности для кодирования на основе палитр, могут применяться к кодерам и декодерам, выполненным с возможностью работы согласно другим стандартам кодирования видео, таким как ITU-T-H.264/AVC-стандарт или будущие стандарты. Соответственно, применение режима кодирования на основе палитр для кодирования единиц кодирования (CU) или единиц прогнозирования (PU) в HEVC-кодеке описывается для целей примера.

[0047] В HEVC и других стандартах кодирования видео, видеопоследовательность типично включает в себя последовательность изображений. Изображения также могут упоминаться в качестве "кадров". Изображение может включать в себя три массива выборок, обозначаемых как SL, SCb и SCr. SL представляет собой двумерный массив (т.е. блок) выборок сигнала яркости. SCb представляет собой двумерный массив выборок Cb-сигнала цветности. SCr представляет собой двумерный массив выборок Cr-сигнала цветности. Выборки сигнала цветности также могут упоминаться в данном документе как выборки "сигнала цветности". В других случаях, изображение может быть монохромным и может включать в себя только массив выборок сигнала яркости.

[0048] Для того, чтобы формировать кодированное представление изображения, видеокодер 20 может формировать набор единиц дерева кодирования (CTU). Каждая из CTU может представлять собой блок дерева кодирования выборок сигнала яркости, два соответствующих блока дерева кодирования выборок сигнала цветности и синтаксические структуры, используемые для того, чтобы кодировать выборки блоков дерева кодирования. Блок дерева кодирования может представлять собой блок NxN выборок. CTU также может упоминаться в качестве "древовидного блока" или наибольшей единицы кодирования (LCU). CTU HEVC в широком смысле могут быть аналогичными макроблокам других стандартов, таких как H.264/AVC. Тем не менее, CTU не обязательно ограничивается конкретным размером и может включать в себя одну или более единиц кодирования (CU). Серия последовательных макроблоков может включать в себя целое число CTU, упорядоченных последовательно в растровом сканировании. Кодированная серия последовательных макроблоков может содержать заголовок серии последовательных макроблоков и данные серии последовательных макроблоков. Заголовок серии последовательных макроблоков серии последовательных макроблоков может представлять собой синтаксическую структуру, которая включает в себя элементы синтаксиса, которые предоставляют информацию относительно серии последовательных макроблоков. Данные серии последовательных макроблоков могут включать в себя кодированные CTU серии последовательных макроблоков.

[0049] Это раскрытие сущности может использовать термин "видеоединица" или "видеоблок", или "блок" для того, чтобы означать один или более блоков выборок и синтаксических структур, используемых для того, чтобы кодировать выборки одного или более блоков выборок. Примерные типы видеоедин