Способ и оборудование для кодирования и декодирования видеосигналов
METHOD AND EQUIPMENT FOR CODING AND DECODING VIDEO SIGNALS

ОБЛАСТЬ ТЕХНИКИ
[0001] Настоящая заявка в целом относится к кодированию и декодированию цифровых данных. В частности, настоящая заявка относится к масштабируемому и высококачественному кодированию.
ПРЕДПОСЫЛКИ СОЗДАНИЯ ИЗОБРЕТЕНИЯ
[0002] Данный раздел предназначен для описания предпосылок к созданию изобретения, охарактеризованного в формуле изобретения. Описание данного раздела может включать идеи, которые могли быть реализованы, но не обязательно те идеи, которые уже были предложены или разработаны ранее. Таким образом, если не указано иное, информация, представленная в данном разделе не является описанием уровня техники для предлагаемого изобретения и не признается таковой вследствие включения в данный раздел.
[0003] Система кодирования видеосигнала содержит кодер, который преобразует входной видеосигнал в сжатое представление, подходящее для хранения/передачи, и декодер, который может распаковать сжатое представление видеосигнала для получения данных в формате, подходящем для просмотра. Кодер может отбрасывать некоторую информацию в исходной видеопоследовательности для представления видеосигнала в более компактном виде, например, для обеспечения возможности хранения/передачи видеоинформации с более низкой битовой скоростью по сравнению с той, что потребовалась бы в противном случае.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0004] Согласно некоторым вариантам осуществления изобретения предлагается способ, устройство, компьютерный программный продукт и машиночитаемый носитель для кодирования и декодирования видеоинформации.
[0005] Различные аспекты примеров настоящего изобретения приводятся в подробном описании.
[0006] В соответствии с первым аспектом предлагается способ, включающий: сигнализацию информации о долговременной палитре, содержащей по меньшей мере информацию о цветовых кодах для каждого элемента в долговременной палитре, и генерацию палитры, используемой для кодирования блока кодирования, либо путем выбора по меньшей мере одного цветового кода из локальной палитры и по меньшей мере одного цветового кода из долговременной палитры, либо путем выбора цветовых кодов или из локальной палитры, или из долговременной палитры.
[0007] В соответствии со вторым аспектом предлагается устройство, содержащее по меньшей мере один процессор и по меньшей мере одну память, в которой хранится компьютерный программный код, при этом по меньшей мере одна память и компьютерный программный код сконфигурированы таким образом, чтобы с помощью по меньшей мере одного процессора устройство выполняло по меньшей мере следующие операции: сигнализацию информации о долговременной палитре, содержащей по меньшей мере информацию о цветовых кодах для каждого элемента в долговременной палитре; генерацию палитры, используемой для кодирования блока кодирования, либо путем выбора по меньшей мере одного цветового кода из локальной палитры и по меньшей мере одного цветового кода из долговременной палитры, либо путем выбора цветовых кодов или из локальной палитры, или из долговременной палитры.
[0008] В соответствии с третьим аспектом предлагается устройство, содержащее средства для обработки; средства для сигнализации информации о долговременной палитре, содержащей по меньшей мере информацию о цветовых кодах для каждого элемента в долговременной палитре; средства для генерации палитры, используемой для кодирования блока кодирования, либо путем выбора по меньшей мере одного цветового кода из локальной палитры и по меньшей мере одного цветового кода из долговременной палитры, либо путем выбора цветовых кодов или из локальной палитры, или из долговременной палитры.
[0009] В соответствии с четвертым аспектом предлагается компьютерный программный продукт, содержащий машиночитаемый носитель, на котором записан компьютерный программный код, исполняемый компьютером и включающий код для сигнализации информации о долговременной палитре, содержащей по меньшей мере информацию о цветовых кодах для каждого элемента в долговременной палитре, и код для генерации палитры, используемой для кодирования блока кодирования, либо путем выбора по меньшей мере одного цветового кода из локальной палитры и по меньшей мере одного цветового кода из долговременной палитры, либо путем выбора цветовых кодов или из локальной палитры, или из долговременной палитры.
[0010] В соответствии с пятым аспектом предлагается машиночитаемый носитель с инструкциями, при исполнении которых компьютером сигнализируется информация о долговременной палитре, содержащая по меньшей мере информацию о цветовых кодах для каждого элемента в долговременной палитре, и генерируется палитра, используемая для кодирования блока кодирования, либо путем выбора по меньшей мере одного цветового кода из локальной палитры и по меньшей мере одного цветового кода из долговременной палитры, либо путем выбора цветовых кодов или из локальной палитры, или из долговременной палитры.
[0011] Согласно варианту осуществления изобретения под локальной палитрой понимается палитра, используемая для другого блока кодирования, или комбинация палитр, используемых для других блоков кодирования, или подмножество таких палитр.
[0012] Согласно варианту осуществления изобретения информация о долговременной палитре также включает информацию о количестве цветов, присутствующих в долговременной палитре.
[0013] В соответствии с вариантом осуществления настоящего изобретения способ включает декодирование блока кодирования, сжатого в режиме палитры, при этом декодирование включает декодирование индикации в заголовке слайса о том, сигнализируется ли информация о долговременной палитре; если информация о долговременной палитре сигнализируется, выполнение декодирования информации о цвете для каждого элемента долговременной палитры; если используется долговременная палитра, декодирование индексов палитры для блока кодирования, кодированного в режиме палитры, при этом по меньшей мере один индекс палитры ссылается на цветовой код в долговременной палитре.
[0014] В соответствии с вариантом осуществления изобретения способ включает сигнализацию информации о долговременной палитре на одном из следующих уровней: заголовок слайса, набор параметров изображения, набор параметров адаптации.
[0015] В соответствии с вариантом осуществления изобретения способ включает сигнализацию набора долговременных палитр в синтаксической структуре уровня последовательности.
[0016] В соответствии с вариантом осуществления изобретения способ включает совместное использование некоторых элементов долговременной палитры ранее сигнализированными долговременными палитрами.
[0017] Согласно варианту осуществления изобретения размер долговременной палитры является фиксированным или адаптируемым.
[0018] Согласно варианту осуществления изобретения способ включает сигнализацию о существовании долговременной палитры на постоянной основе или в зависимости от определенных условий.
[0019] В соответствии с вариантом осуществления изобретения способ также включает сигнализацию о бинаризации индексов долговременной палитры, сигнализируемых на уровне блока кодирования.
[0020] В соответствии с вариантом осуществления изобретения палитра, используемая для блока кодирования, представляет собой комбинацию долговременной палитры и палитры, сигнализируемой на уровне блока кодирования.
[0021] В соответствии с вариантом осуществления изобретения палитра, используемая для блока кодирования, содержит элементы из одного или более следующих компонентов: декодированная палитра для другого блока кодирования, долговременная палитра или явно сигнализируемые элементы.
[0022] В соответствии с вариантом осуществления изобретения каждый цветовой компонент имеет отдельную долговременную палитру.
[0023] В соответствии с вариантом осуществления изобретения цветовые компоненты имеют совместную долговременную палитру.
[0024] Согласно варианту осуществления изобретения цветовой компонент представляет любую из следующих характеристик: яркость, цветность, цвет, глубина, расхождение или другая пространственная информация.
[0025] Согласно варианту осуществления изобретения способ включает сигнализацию индикации об использовании долговременной палитры для (де)кодирования элементов палитры отдельно для каждого цветового компонента.
[0026] Согласно варианту осуществления изобретения способ включает сигнализацию о том, какие элементы палитры для определенного блока кодирования копируются из долговременной палитры, какие элементы копируются из палитры, используемой для ранее декодированного блока кодирования, и сколько элементов сигнализируется явным образом.
[0027] В соответствии с вариантом осуществления изобретения способ включает динамическое изменение долговременной палитры, используемой для каждого блока кодирования.
[0028] В соответствии с вариантом осуществления изобретения способ включает получение долговременной палитры, сигнализируемой кодером.
[0029] Согласно варианту осуществления изобретения способ включает получение долговременной палитры на основе используемых элементов обычной и/или долговременной палитры (палитр) в одном или более предшествующих изображениях в порядке (де)кодирования.
[0030] В соответствии с вариантом осуществления изобретения способ включает получение долговременной палитры на основе элементов палитры, не предсказанных из ранее кодированных блоков кодирования, но явно сигнализированных в процессе кодирования каждого блока кодирования в одном или более предшествующих изображениях в порядке (де)кодирования.
[0031] В соответствии с вариантом осуществления изобретения способ включает получение долговременной палитры с использованием информации о том, как создано исходное содержимое для кодирования.
[0032] Согласно варианту осуществления изобретения способ включает исключение тех элементов палитры, которые включены в обычную палитру (палитры) одного или более блоков кодирования текущего изображения, после получения начальной долговременной палитры.
[0033] Согласно шестому аспекту способ включает формирование долговременной палитры в процессе кодирования или декодирования и динамическое обновление долговременной палитры после кодирования блока кодирования, и формирование палитры, используемой для кодирования блока кодирования, с использованием информации из одного из следующих источников: локальные или соседние палитры, долговременная палитра или отдельно сигнализируемая информация.
[0034] В соответствии с седьмым аспектом предлагается устройство, содержащее по меньшей мере один процессор и по меньшей мере одну память, в которой хранится компьютерный программный код, при этом по меньшей мере одна память и компьютерный программный код сконфигурированы таким образом, чтобы с помощью по меньшей мере одного процессора устройство выполняло по меньшей мере следующие операции: формирование долговременной палитры в процессе кодирования или декодирования и динамическое обновление долговременной палитры после кодирования блока кодирования, и формирование палитры, используемой для кодирования блока кодирования, с использованием информации из одного из следующих источников: локальные или соседние палитры, долговременная палитра или отдельно сигнализируемая информация.
[0035] Согласно восьмому аспекту предлагается устройство, содержащее средства для обработки, средства для формирования долговременной палитры в процессе кодирования или декодирования и динамического обновления долговременной палитры после кодирования блока кодирования, и средства для формирования палитры, используемой для кодирования блока кодирования, с использованием информации из одного из следующих источников: локальные или соседние палитры, долговременная палитра или отдельно сигнализируемая информация.
[0036] Согласно девятому аспекту предлагается компьютерный программный продукт, содержащий машиночитаемый носитель, на котором записан компьютерный программный код, исполняемый компьютером и включающий код для формирования долговременной палитры в процессе кодирования или декодирования и динамического обновления долговременной палитры после кодирования блока кодирования, и код для формирования палитры, используемой для кодирования блока кодирования, с использованием информации из одного из следующих источников: локальные или соседние палитры, долговременная палитра или отдельно сигнализируемая информация.
[0037] Согласно десятому аспекту предлагается машиночитаемый носитель с инструкциями, при исполнении которых компьютером формируется долговременная палитра в процессе кодирования или декодирования, и динамически обновляется долговременная палитра после кодирования блока кодирования, и формируется палитра, используемая для кодирования блока кодирования, с использованием информации из одного из следующих источников: локальные или соседние палитры, долговременная палитра или отдельно сигнализируемая информация.
[0038] В соответствии с примером осуществления настоящего изобретения способ включает инициализацию долговременной палитры; генерацию палитры, используемой для кодирования блока кодирования, либо путем выбора по меньшей мере одного цветового кода из локальной палитры и по меньшей мере одного цветового кода из долговременной палитры, либо путем выбора цветовых кодов или из локальной палитры, или из долговременной палитры; если блок кодирования кодируется в режиме палитры и содержит цвета, не скопированные из локальной палитры и из долговременной палитры, добавление соответствующего нового цвета в долговременную палитру с помощью процесса обновления долговременной палитры.
[0039] Согласно варианту осуществления изобретения под локальной палитрой понимается палитра, используемая для другого блока кодирования, или комбинация палитр, используемых для других блоков кодирования, или подмножество таких палитр.
[0040] В соответствии с вариантом осуществления изобретения способ включает инициализацию долговременной палитры в различных местоположениях.
[0041] В соответствии с вариантом осуществления изобретения способ включает инициализацию пустой долговременной палитры.
[0042] В соответствии с вариантом осуществления изобретения способ включает инициализацию динамической долговременной палитры равной сигнализируемой долговременной палитре.
[0043] В соответствии с вариантом осуществления изобретения способ включает получение начальной долговременной палитры из предшествующего изображения.
[0044] В соответствии с вариантом осуществления изобретения способ включает динамическую поддержку двух и более долговременных палитр.
[0045] Согласно варианту осуществления изобретения размер долговременной палитры является фиксированным или адаптируемым.
[0046] В соответствии с вариантом осуществления изобретения палитра, используемая для блока кодирования, может представлять собой комбинацию долговременной палитры и палитры, сигнализируемой на уровне блока кодирования.
[0047] В соответствии с вариантом осуществления изобретения способ включает процесс обновления долговременной палитры, в ходе которого новый цвет добавляют в долговременную палитру, если ни один из элементов в долговременной палитре не содержит этот цвет.
[0048] В соответствии с вариантом осуществления изобретения способ включает процесс обновления долговременной палитры, в ходе которого новый цвет добавляют в долговременную палитру путем начальной проверки, существует ли такой же цвет в подмножестве элементов долговременной палитры.
[0049] В соответствии с вариантом осуществления изобретения способ включает процесс обновления долговременной палитры, в ходе которого перед добавлением нового цвета определяют, что палитра заполнена, вследствие чего выполняют одно из следующих действий: увеличение размера палитры на 1; удаление цвета, внесенного в долговременную палитру первым, и добавление нового цвета; удаление наименее часто используемого цвета и добавление нового цвета.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0050] Для более полного понимания примеров осуществления настоящего изобретения далее приводится подробное описание изобретения со ссылками на прилагаемые чертежи.
[0051] На фиг. 1 показана схема системы кодирования видеосигнала в соответствии с вариантом осуществления настоящего изобретения.
[0052] На фиг. 2 показан эскиз устройства в соответствии с вариантом осуществления настоящего изобретения.
[0053] На фиг. 3 показана конфигурация для кодирования видеосигнала с использованием множества устройств, сетей и сетевых элементов в соответствии с примером осуществления настоящего изобретения.
[0054] На фиг. 4 показана схема кодера видеосигнала в соответствии с вариантом осуществления настоящего изобретения.
[0055] На фиг. 5 показана схема декодера видеосигнала в соответствии с вариантом осуществления настоящего изобретения.
[0056] На фиг. 6а и 6b показаны примеры блоков кодирования.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
[0057] На фиг. 1 показана схема системы кодирования видеосигнала в соответствии с вариантом осуществления настоящего изобретения в виде схемы примера устройства или электронного устройства 50, в состав которых может входить кодек, соответствующий варианту осуществления настоящего изобретения. На фиг. 2 показан эскиз устройства в соответствии с примером осуществления настоящего изобретения. Далее поясняются элементы, показанные на фиг. 1 и 2.
[0058] Электронное устройство 50 может представлять собой, например, мобильный терминал или пользовательское оборудование системы беспроводной связи. Однако следует отметить, что варианты настоящего изобретения могут быть реализованы в рамках любого электронного прибора или устройства, для которого может потребоваться выполнение операций кодирования и декодирования либо кодирования или декодирования видеоизображений.
[0059] Устройство 50 может содержать корпус 30 для размещения и защиты компонентов устройства. Устройство 50 может также содержать дисплей 32, выполненный в виде жидкокристаллического дисплея. В других вариантах осуществления настоящего изобретения дисплей может быть выполнен в соответствии с любой подходящей технологией для воспроизведения изображений или видео. Устройство 50 может также содержать клавиатуру 34. В других вариантах осуществления настоящего изобретения могут использоваться любые подходящие механизмы интерфейса ввода данных или пользовательского интерфейса. Например, пользовательский интерфейс может быть реализован в виде виртуальной клавиатуры или системы ввода данных, являющейся частью сенсорного экрана. Устройство может содержать микрофон 36 или любое подходящее средство ввода аудиосигнала, которое может являться средством ввода цифрового или аналогового сигнала. Устройство 50 может также содержать средство вывода аудиосигнала, которое в вариантах осуществления настоящего изобретения может представлять собой одно из следующих средств: наушники 38, динамик либо аналоговое или цифровое подключение к аудиовыходу. Устройство 50 может также содержать батарею 40 (или в других вариантах осуществления настоящего изобретения устройство может получать питание от любого подходящего мобильного источника энергии, такого как солнечный фотоэлемент, топливный элемент или аккумулятор часового механизма). Устройство также может содержать камеру 42, позволяющую выполнять запись или захват изображений и/или видеоинформации. Согласно некоторым вариантам осуществления изобретения устройство 50 может также содержать инфракрасный порт для ближней связи (в пределах видимости) с другими устройствами. В других вариантах осуществления настоящего изобретения устройство 50 может также содержать любое подходящее средство для ближней связи, такое, например, как беспроводное соединение Bluetooth или беспроводное соединение USB/firewire.
[0060] Устройство 50 может включать контроллер 56 или процессор для управления устройством 50. Контроллер 56 может быть соединен с памятью 58, в которой, согласно вариантам осуществления настоящего изобретения, могут храниться данные изображения и аудиоданные и/или инструкции для выполнения контроллером 56. Контроллер 56 может быть также соединен со схемой 54 кодека, подходящей для выполнения кодирования и декодирования аудио и/или видео или участия в кодировании и декодировании, выполняемых контроллером 56.
[0061] Устройство 50 может также содержать считыватель 48 с карты и смарт-карту 46, например, UICC, и считыватель UICC для предоставления пользовательской информации, которые подходят для предоставления аутентификационной информации для аутентификации и авторизации пользователя в сети.
[0062] Устройство 50 может содержать схему 52 радиоинтерфейса, соединенную с контроллером и позволяющую генерировать сигналы для беспроводной связи, например для связи с сетью сотовой связи, системой беспроводной связи или локальной сетью беспроводной связи. Устройство 50 также может включать антенну 44, соединенную со схемой 52 радиоинтерфейса и предназначенную для передачи радиочастотных сигналов, сгенерированных в схеме 52 радиоинтерфейса, в другие устройства и для приема радиочастотных сигналов из других устройств.
[0063] В некоторых вариантах осуществления настоящего изобретения устройство 50 содержит камеру, позволяющую записывать или обнаруживать отдельные кадры, которые затем передаются для обработки в кодек 54 или в контроллер. В других вариантах осуществления настоящего изобретения устройство может принимать для обработки данные видеоизображения от другого устройства перед передачей и/или сохранением этих данных. В других вариантах осуществления настоящего изобретения устройство 50 может принимать изображение для кодирования/декодирования по беспроводному или проводному соединению.
[0064] На фиг. 3 показана конфигурация для кодирования видеосигнала с использованием множества устройств, сетей и сетевых элементов в соответствии с примером осуществления настоящего изобретения. На фиг. 3 показана система, в которой могут использоваться варианты осуществления настоящего изобретения. Система 10 содержит множество устройств связи, которые могут взаимодействовать друг с другом через одну или более сетей. Система 10 может включать любое объединение проводных или беспроводных сетей, включая, не ограничиваясь этим, беспроводную телефонную сотовую сеть (например, сеть GSM, UMTS, CDMA и т.д.), локальную беспроводную сеть (WLAN, wireless local area network), определенную, например, любым из стандартов IEEE 802.x, персональную сеть Bluetooth, локальную сеть Ethernet, кольцевую локальную сеть с маркерным доступом (token ring), глобальную сеть и Интернет.
[0065] Система 10 может содержать как проводные, так и беспроводные средства связи или устройства 50, подходящие для реализации вариантов настоящего изобретения. Например, система, показанная на фиг. 3, включает мобильную телефонную сеть 11 и Интернет 28. Соединение с Интернетом 28 может включать, не ограничиваясь этим, беспроводные соединения для дальней связи, беспроводные соединения для ближней связи и различные проводные соединения, включая, не ограничиваясь этим, телефонные линии, кабельные линии, линии электропитания и аналогичные тракты связи.
[0066] Примеры устройств связи, показанные в системе 10, могут включать, не ограничиваясь этим, электронное устройство или устройство 50, объединение персонального цифрового помощника (PDA, personal digital assistant) и мобильного телефона 14, PDA 16, интегрированное устройство 18 обмена сообщениями (IMD, integrated messaging device), настольный компьютер 20, ноутбук 22. Устройство 50 может быть стационарным или мобильным устройством, перемещаемым отдельным пользователем. Устройство 50 может также располагаться в транспортном средстве, включая, не ограничиваясь этим, легковой автомобиль, грузовик, такси, автобус, поезд, судно, самолет, велосипед, мотоцикл или любое аналогичное подходящее транспортное средство.
[0067] Некоторые устройства могут посылать и принимать вызовы и сообщения и осуществлять связь с провайдерами услуг через беспроводное соединение 25 с базовой станцией 24. Базовая станция 24 может соединяться с сетевым сервером 26, который позволяет выполнять связь между мобильной телефонной сетью 11 и Интернетом 28. Система может содержать дополнительные устройства связи и устройства связи различных типов.
[0068] Устройства связи могут осуществлять связь с использованием различных технологий передачи, включая, не ограничиваясь этим, множественный доступ с кодовым разделением каналов (CDMA, code division multiple access), глобальные системы мобильной связи (GSM, global system for mobile communications), универсальную систему мобильной связи (UMTS, universal mobile telecommunications system), множественный доступ с временным разделением каналов (TDMA, time divisional multiple access), множественный доступ с частотным разделением каналов (FDMA, frequency division multiple access), протокол управления передачей/Интернет-протокол (TCP-IP, transmission control protocol-internet protocol), службу обмена короткими сообщениями (SMS, short messaging service), службу обмена мультимедийными сообщениями (MMS, multimedia messaging service), электронную почту, службу мгновенного обмена сообщениями (IMS, instant messaging service), Bluetooth, IEEE 802.11 и любые другие аналогичные технологии беспроводной связи. Устройства связи, задействованные в реализации различных вариантов осуществления настоящего изобретения, могут осуществлять связь с использованием различных сред передачи, включая, не ограничиваясь этим, радиосоединения, инфракрасные, лазерные, кабельные соединения и любые другие подходящие соединения.
[0069] Кодек видеосигнала может содержать кодер, который преобразует входной видеосигнал в сжатое представление, подходящее для хранения/передачи, и декодер, который может распаковать сжатое представление видеосигнала для получения данных в формате, подходящем для просмотра. Кодер может отбрасывать некоторую информацию в исходной видеопоследовательности, для того чтобы представить видеосигнал в более компактном виде (то есть для передачи с более низкой битовой скоростью).
n
n
n
n
n
n
inter
intra
-1
-1
[0070] Гибридные видеокодеки, соответствующие, например, стандартам ITU-T Н.263 и Н.264, для кодирования видеоинформации используют две фазы. На первой фазе выполняется предсказание значений пикселей в определенном изображении (или в "блоке"), например, с помощью средств компенсации движения (обнаружение и индикация области в одном из ранее кодированных видеокадров, которая наиболее точно соответствует кодируемому блоку) или с помощью средств пространственной обработки (с использованием значений пикселей вокруг блока, подлежащего кодированию указанным способом). На второй фазе выполняется кодирование ошибки предсказания, то есть различия между предсказанным блоком пикселей и исходным блоком пикселей. Эта процедура обычно выполняется посредством преобразования разности значений пикселей с использованием заданного преобразования (например, дискретного косинусного преобразования (DCT, Discrete Cosine Transform) или его вариантов), квантования коэффициентов и энтропийного кодирования квантованных коэффициентов. Путем изменения точности процесса квантования кодер может управлять балансом между точностью представления пикселей (качеством изображения) и размером полученного в результате кодированного видеопредставления (размером файла или величиной битовой скорости передачи). Процесс кодирования показан на фиг. 4. На фиг. 4 показан пример кодера видеосигнала, при этом используются следующие обозначения: I: кодируемое изображение; P': предсказанное представление блока изображения; D: сигнал ошибки предсказания; D': реконструированный сигнал ошибки предсказания; I': предварительно реконструированное изображение; R': окончательно реконструированное изображение; Т, Т: преобразование и обратное преобразование; Q, Q: квантование и обратное квантование; Е: энтропийное кодирование; RFM: память опорных кадров; P: внешнее предсказание; P: внутреннее предсказание; MS: выбор режима; F: фильтрация.
[0071] В некоторых кодеках видеосигнала, таких как HEVC, видеоизображения разделены на блоки кодирования (CU, Coding Unit), покрывающие область изображения. Блок CU содержит один или более блоков предсказания (PU, Prediction Unit), определяющих процесс предсказания для выборок в пределах блока CU, и один или более блоков преобразования (TU, Transform Unit), определяющих процесс кодирования ошибки предсказания для выборок в указанном блоке CU. Блок CU может содержать квадратный блок выборок, размер которого выбирается из заранее заданного множества возможных размеров блока CU. Блок CU с максимально допустимым размером может называться CTU (Coding Tree Unit, блок дерева кодирования), и видеоизображение разделяется на неперекрывающиеся блоки CTU. Блок CTU также можно разбить на комбинацию меньших по размеру блоков CU, например, путем рекурсивного разбиения блока CTU и полученных в результате блоков CU. Каждый полученный в результате блок CU может содержать по меньшей мере один блок PU и по меньшей мере один связанный с ним блок TU. Каждый блок PU и TU далее можно разбить на меньшие блоки PU и TU для увеличения, соответственно, степени детализации процессов предсказания и кодирования ошибки предсказания. Каждый блок PU содержит связанную с ним информацию о предсказании, определяющую вид предсказания, применяемый для пикселей в этом блоке PU (например, информацию о векторе движения для блоков PU с внешним предсказанием и информацию о направленности внутреннего предсказания для блоков PU с внутренним предсказанием). Аналогично, каждый блок TU связан с информацией, описывающей процесс декодирования ошибки предсказания для выборок в пределах указанного блока TU (включая, например, информацию о коэффициентах DCT). На уровне блока CU может сигнализироваться, применяется ли кодирование ошибки предсказания для каждого блока CU. При отсутствии разностных ошибок предсказания, связанных с блоком CU, можно предположить, что отсутствуют блоки TU для указанного блока CU. Способ разделения изображения на блоки CU и разделения блоков CU на блоки PU и TU может сигнализироваться в битовом потоке, что позволяет декодеру воспроизвести требуемую структуру этих блоков.
n
n
n
n
-1
-1
-1
[0072] Декодер реконструирует выходной видеосигнал путем применения средств предсказания, аналогичных тем средствам, что использовались кодером, для того чтобы сформировать предсказанное представление блоков пикселей (с помощью информации о движении или пространственной области, созданной кодером и хранимой в сжатом представлении), и путем декодирования ошибки предсказания (операция, обратная кодированию ошибки предсказания, выполняемая для восстановления квантованного сигнала ошибки предсказания в пространственной области пикселей). После применения средств предсказания и декодирования ошибки предсказания декодер объединяет сигналы предсказания и ошибки предсказания (значения пикселей) для формирования выходного видеокадра. Декодер (и кодер) может также применять дополнительные средства фильтрации, для того чтобы повысить качество выходного видеосигнала перед выводом его для отображения и/или сохранения в качестве опорного для предсказания последующих кадров в видеопоследовательности. Процесс декодирования показан на фиг. 5. На фиг. 5 показана схема декодера видеосигнала, при этом используются следующие обозначения: P': предсказанное представление блока изображения; D': реконструированный сигнал ошибки предсказания; I': предварительно реконструированное изображение; R': окончательно реконструированное изображение; Т: обратное преобразование; Q: обратное квантование; Е: энтропийное декодирование; RFM: память опорных кадров; Р: предсказание (или внешнее, или внутреннее); F: фильтрация.
[0073] Вместо подходов, использующих кодирование с предсказанием и преобразованием значения выборки для индикации кодированных значений выборок, или в дополнение к таким подходам может использоваться кодирование, основанное на цветовой палитре. Кодирование, основанное на палитре, относится к семейству решений, для которых определяется палитра, то есть набор цветов и связанных индексов, и значение каждой выборки в пределах блока кодирования выражается путем указания ее индекса в палитре. Кодирование, основанное на палитре, позволяет достичь высокой эффективности кодирования в блоках кодирования с небольшим количеством цветов (таких как области изображения, представляющие содержимое экрана компьютера, например, текст или простая графика). Для повышения эффективности кодирования, основанного на палитре, могут использоваться различные виды подходов для предсказания индексов палитры, или индексы палитры могут кодироваться посредством кодирования по длинам серий, чтобы эффективно представить большие однородные области изображения.
[0074] В кодере и/или в декодере может использоваться буфер декодированных изображений (DPB, Decoded Picture Buffer). Имеются две причины, по которым следует выполнять буферизацию декодированных изображений: буферизация выполняется для опорных изображений в процессе внешнего предсказания и для переупорядочения декодированных изображений в порядке вывода. Поскольку стандарты H.264/AVC и HEVC обеспечивают высокую степень гибкости как для маркировки опорных изображений, так и для переупорядочения вывода, использование отдельных буферов для буферизации опорных изображений и буферизации выходных изображений может привести к растрачиванию ресурсов памяти. Вследствие этого с буфером DPB может быть связан унифицированный процесс буферизации декодированных изображений для опорных изображений и для переупорядочения вывода. Декодированное изображение может удаляться из буфера DPB, если оно более не используется в качестве опорного и не требуется для вывода.
[0075] Информация о движении может указываться в кодеках видеосигнала с помощью векторов движения, связанных с каждым блоком изображения с компенсацией движения. Каждый из этих векторов движения представляет смещение блока изображения в изображении, подлежащем кодированию (на стороне кодера) или декодированию (на стороне декодера), и исходного блока предсказания в одном из ранее кодированных или декодированных изображений. Для эффективного представления векторов движения эти векторы могут кодироваться дифференциально с учетом предсказанных векторов движения, специфичных для блока. В кодеках видеосигнала предсказанные векторы движения могут создаваться заранее заданным образом, например, путем вычисления среднего кодируемых или декодируемых векторов движения или смежных блоков. Другим способом создания предсказаний векторов движения является генерация списка подходящих предсказаний на основе смежных блоков и/или совмещенных блоков во временных опорных изображениях и сигнализации выбранного подходящего предсказания в качестве предсказания вектора движения. Помимо предсказания значений векторов движения, могут предсказываться опорные индексы ранее кодированного/декодированного изображения. Опорный индекс обычно предсказывается на основе смежных блоков и/или совмещенных блоков во временном опорном изображении. Кроме того, высокоэффективные кодеки видеосигнала могут применять дополнительный механизм кодирования/декодирования информации о движении, называемый "режимом объединения/слияния", в котором вся информация полей движения, включающая вектор движения и соответствующий индекс опорного изображения для каждого доступного списка опорных изображений, предсказывается и используется без какого-либо изменения/коррекции. Аналогично, предсказание информации поля движения выполняется с использованием информации поля движения или смежных блоков, и/или совмещенных блоков во временных опорных изображениях, и пользовательская информация поля движения сигнализируется в списке подходящих полей движения, заполненном информацией полей движения доступных смежных/совмещенных блоков.
[0076] Помимо применения компенсации движения для внешнего предсказания изображения, подобный подход может использоваться для внутреннего предсказания изображения. В этом случае вектор смещения указывает, откуда из того же изображения можно скопировать блок выборок для формирования предсказания блока, подлежащего кодированию или декодированию. Эти способы копирования внутреннего блока могут существенно повысить эффективность кодирования при наличии повторяющихся структур в кадре, таких как текст или графика.
[0077] В кодеках видеосигнала разностные данные предсказания после компенсации движения могут вначале преобразовываться с использованием ядра преобразования (например, DCT), а затем кодироваться. Причина этого состоит в том, что все еще может иметься некоторая корреляция между разностными данными, и преобразование может во многих случаях способствовать уменьшению этой корреляции и обеспечению более эффективного кодирования.
[0078] В кодерах видеосигнала могут использоваться функции стоимости Лагранжа для нахождения оптимальных режимов кодирования, например, требуемого режима макроблока и связанных векторов движения. Функция стоимости этого типа использует весовой коэффициент, или λ, для связывания точного или ожидаемого искажения изображения, вносимого в результате применения способов кодирования с потерей данных, и точного или ожидаемого объема информации, требуемого для представления значений пикселей в области изображения:
[0079] С=D+λR,
[0080] где С представляет собой величину стоимости Лагранжа, которая должна быть минимизирована, D - искажение изображения (например, среднеквадратическая ошибка) при использовании рассматриваемых режима и векторов движения, и R - количество битов, необходимых для представления требуемых данных с целью реконструкции блока изображения в декодере (включая объем данных, требуемых для представления подходящих векторов движения).
[0081] Масштабируемое кодирование видеосигнала относится к структуре кодирования, в которой один битовый поток может содержать множество представлений содержимого, передаваемого с различными битовыми скоростями, с различным разрешением или с различной частотой кадров. В этих случаях приемник может извлекать требуемое представление в зависимости от его характеристик (например, разрешения, которое наилучшим образом соответствует устройству отображения). В альтернативном варианте сервер или сетевой элемент может извлекать части битового потока, подлежащего передаче в приемник, в зависимости, например, от сетевых характеристик или возможностей обработки приемника. Масштабируемый битовый поток может содержать "базовый уровень", обеспечивающий наименьшее доступное качество видеосигнала, и один или более уровней расширения, которые повышают качество видеосигнала, принимаемого и декодируемого совместно с нижними уровнями. Для повышения эффективности кодирования для уровней расширения кодированное представление этого уровня может зависеть от нижних уровней. Например, информация о движении и режиме уровня расширения может предсказываться на основе нижних уровней. Аналогично, данные пикселей нижних уровней могут использоваться для создания предсказания для уровня расширения.
[0082] Масштабируемый кодек видеосигнала для масштабируемости качества (также известной как отношение сигнал-шум или SNR (Signal-to-Noise)) и/или пространственной масштабируемости может быть реализован следующим образом. Для базового уровня используются стандартные кодер и декодер видеосигнала. Восстановленные/декодированные изображения базового уровня включаются в буфер опорных изображений для уровня расширения. В кодеках H.264/AVC, HEVC и в аналогичных кодеках, использующих список (списки) опорных изображений для внешнего предсказания, изображения, декодированные на базовом уровне, могут включаться в список (списки) опорных изображений для кодирования/декодирования изображения уровня расширения подобно декодированным опорным изображениям уровня расширения. Следовательно, кодер может выбрать опорное изображение базового уровня в качестве опорного для внешнего предсказания и указать на его использование с помощью индекса опорного изображения в кодированном битовом потоке. Декодер декодирует из битового потока, например из индекса опорного изображения, информацию о том, что опорное изображение базового уровня используется в качестве опорного для внешнего предсказания для уровня расширения. Если декодированное изображение базового уровня используется в качестве опорного при предсказании для уровня расширения, то оно называется межуровневым опорным изображением.
[0083] Помимо масштабируемости качества также существуют другие режимы масштабируемости: пространственная масштабируемость, масштабируемость битовой глубины и масштабируемость цветового формата. При пространственной масштабируемости изображения базового уровня кодируются с более высоким разрешением по сравнению с изображениями уровня расширения. При масштабируемости битовой глубины изображения базового уровня кодируются с меньшей битовой глубиной (например, 8 битов) по сравнению с изображениями уровня расширения (например, 10 или 12 битов). При масштабируемости цветового формата изображения базового уровня обеспечивают более высокую точность передачи цвета (например, кодирование в цветовом формате 4:4:4) по сравнению с изображениями уровня расширения (например, в формате 4:2:0).
[0084] В приведенных выше вариантах масштабируемости информация базового уровня может использоваться для кодирования уровня расширения с целью минимизации дополнительных потерь в битовой скорости.
[0085] Масштабируемость может быть реализована двумя способами: либо путем ввода новых режимов кодирования для выполнения предсказания значений пикселей или синтаксиса на основе нижних уровней масштабируемого представления, либо путем размещения изображений нижнего уровня в буфере опорных изображений (буфере декодированных изображений, DPB (Decoded Picture Buffer)) верхнего уровня. Первый подход является более гибким и, таким образом, во многих случаях может обеспечить более высокую эффективность кодирования. Однако второй подход, то есть масштабируемость, основанная на опорном кадре, может быть реализован очень эффективно с минимальными изменениями одноуровневых кодеков при предоставлении большей части доступных преимуществ эффективного кодирования. По существу, кодек с масштабируемостью, основанной на опорном кадре, может быть реализован с использованием той же аппаратной или программной реализации для всех уровней, при этом необходимо только обеспечить управление DPB внешними средствами.
[0086] В способах кодирования, основанных на палитре, применяется информация о палитре соседних блоков для предсказания палитры текущего блока. Этот подход удобен для повышения эффективности кодирования, однако корреляция цветов между несмежными блоками не используется. Например, если изображение содержит фоновый рисунок, на котором представлено несколько преобладающих цветов, и объект переднего плана, для блока, соседнего с блоком, содержащим объект переднего плана, невозможно использовать предсказание палитры. Способы относятся к решению с использованием режима, в котором элементы палитры из предшествующего блока CU могут повторно использоваться для текущего блока CU; к решениям, в которых кодированная палитра может совместно использоваться одним или более блоками CU; и к решениям, в которых сигнализируется, что следует использовать палитру левого блока CU или верхнего блока CU.
[0087] В вариантах осуществления настоящего изобретения предлагается решение, в котором задействована статистическая корреляция между несмежными блоками CU, кодируемыми на основе палитры. Это решение может быть реализовано путем сигнализации долговременной палитры на более высоком уровне, чем CU (например, в заголовке слайса), и формирования палитры для каждого блока CU с использованием информации либо из соседних палитр, либо из долговременной палитры, либо информации, сигнализируемой отдельно. В альтернативном варианте реализация может включать динамическое отслеживание долговременной палитры на основе сигнализируемой цветовой информации и формирование палитры для каждого блока CU с использованием информации либо из соседних палитр, либо из долговременной палитры, либо информации, сигнализируемой отдельно. Эти альтернативные подходы для использования цветовой корреляции между несмежными блоками более подробно раскрываются далее.
[0088] В соответствии с первым вариантом осуществления изобретения долговременная палитра сигнализируется на уровне, более высоком, чем CU (например, в заголовке слайса). Информация о долговременной палитре может содержать по меньшей мере количество цветов, представленных в долговременной палитре, и цветовые коды для каждого элемента в долговременной палитре. Эта информация о долговременной палитре сигнализируется в заголовке слайса. Палитра, используемая для кодирования каждого блока CU, формируется на основе информации либо из соседних палитр, либо из долговременной палитры, либо на основе информации, сигнализируемой отдельно. В соответствии с вариантом осуществления изобретения блок кодирования, сжатый в режиме палитры, декодируется следующим образом: вначале в заголовке слайса декодируется индикация о том, сигнализируется ли долговременная палитра. Если долговременная палитра сигнализируется, декодируется цветовая информация для каждого элемента долговременной палитры. Если используется долговременная палитра, индексы палитры для каждого блока CU, кодированного в режиме палитры, декодируются, при этом по меньшей мере один индекс палитры ссылается на цветовой код в долговременной палитре.
[0089] Помимо заголовка слайса для сигнализации информации о долговременной палитре могут использоваться различные уровни, например, набор параметров изображения или набор параметров адаптации. Набор долговременных палитр может сигнализироваться, например, в синтаксической структуре уровня последовательности, такой как SPS (Sequence Parameter Set, набор параметров последовательности) и/или VPS (Video Parameter Set, набор параметров видеосигнала). Сигнализируемые долговременные палитры могут быть проиндексированы или могут содержать явно сигнализируемое значение идентификатора, или могут быть связаны с этим значением. Подлежащая использованию долговременная палитра может выбираться из набора долговременных палитр путем включения индекса или идентификатора долговременной палитры, например, в заголовок слайса, в набор параметров изображения PPS (Picture Parameter Set) или в набор параметров адаптации APS (Adaption Parameter Set). Может предоставляться возможность не использовать долговременную палитру из набора долговременных палитр, то есть, например, в заголовке слайса, в наборе PPS или в наборе APS может быть указано, что информация о долговременной палитре сигнализируется средствами, отличными от индекса или идентификатора набора долговременных палитр.
[0090] Некоторые элементы долговременной палитры могут совместно использоваться ранее сигнализированными долговременными палитрами. Например, долговременная палитра для изображения уровня расширения может быть такой же, как долговременная палитра изображения базового уровня или опорного уровня.
[0091] Размер долговременной палитры может быть фиксирован, и, следовательно, сигнализировать его не требуется, либо размер может адаптироваться.
[0092] Сигнализация о существовании долговременной палитры может передаваться всегда или при определенных условиях. Например, эта информация может сигнализироваться только для слайсов с внутренним кодированием или только в том случае, если существует индикация об использовании кодирования в режиме палитры.
[0093] Бинаризация индексов долговременной палитры, сигнализируемых на уровне CU, может зависеть от размера долговременной палитры. Например, могут использоваться различные размеры кодирования с фиксированной длиной. Также может сигнализироваться информация о бинаризации индексов долговременной палитры, сигнализируемых на уровне CU. Например, могут использоваться различные таблицы VLC (Variable Length Coding, кодирование переменной длины) в зависимости от гистограммы появлений индексов палитры.
[0094] Палитра, используемая для блока кодирования, может представлять собой комбинацию долговременной палитры и палитры, сигнализируемой на уровне CU. Например, палитра для определенного блока CU может содержать по меньшей мере один элемент из долговременной палитры и по меньшей мере один элемент из палитры, предсказанной на основе палитры, используемой для предшествующего декодированного блока CU. Палитра для определенного блока CU может также содержать по меньшей мере один элемент из долговременной палитры и по меньшей мере один элемент, отдельно сигнализируемый для блока CU.
[0095] Палитра, используемая для блока CU, может содержать элементы из комбинаций следующего: последняя декодированная палитра, долговременная палитра или явно сигнализируемые элементы. Каждому цветовому компоненту (такому как Y, U, V или R, G, В) может соответствовать отдельная долговременная палитра, а также может существовать совместная долговременная палитра.
[0096] Индикация использования долговременной палитры для (де)кодирования элементов палитры может сигнализироваться отдельно для каждого цветового компонента, или может приниматься решение о совместной индикации для всех цветовых компонентов.
[0097] Может сигнализироваться информация о том, какие элементы палитры для определенного блока CU копируются из долговременной палитры, какие элементы копируются из палитры, используемой для ранее декодированного блока кодирования, и сколько элементов сигнализируется явным образом.
[0098] Долговременная палитра, используемая для каждого блока CU, может динамически изменяться. Например, если некоторые цветовые коды соседней палитры также включаются в долговременную палитру, то эти коды могут удаляться из долговременной палитры, и может формироваться новая долговременная палитра для кодирования текущего блока CU.
[0099] Кодер может получать сигнализируемую долговременную палитру с использованием различных способов, включая, помимо прочего, один или более указанных ниже способов (или их комбинацию). Кодер может получать долговременную палитру на основе используемых элементов обычной и/или долговременной палитры (палитр) в одном или более предшествующих изображениях в порядке (де)кодирования. Например, кодер может включать те элементы палитры из обычной и долговременной палитры (палитр) предшествующего изображения, которые наиболее часто используются, например, согласно гистограмме появления индексов палитры в одном или более изображениях в порядке (де)кодирования. Кроме того, кодер может получать долговременную палитру на основе элементов палитры, не предсказанных (не скопированных) на основе ранее кодированного блока CU, но явно сигнализированных в процессе кодирования каждого блока CU в одном или более предшествующих изображениях в порядке (де)кодирования. Элементы палитры, сигнализированные явно в предшествующем изображении, могут сортироваться в порядке от наиболее частых к наименее частым, и может использоваться конкретный алгоритм для определения размера долговременной палитры (например, завершение списка, если обнаруживается "0" (ноль) появлений (или определенное пороговое значение) в отсортированном списке элементов. Например, пороговое значение может определяться с использованием отношения блоков CU, кодированных в режиме палитры и применяющих долговременную палитру при кодировании элементов палитры, к общему количеству блоков CU, кодированных в режиме палитры, в предшествующих изображениях.) Кроме того, в дополнение к этому способу или вместо него, для получения долговременной палитры кодер может использовать информацию о том, каким образом создано исходное содержимое для кодирования. Например, анализ наименьшей и наибольшей величины глубины/расхождения и/или гистограмма оценки глубины/расхождения может включаться в алгоритм согласования стереоизображений или предшествовать этому алгоритму. Значения выборок или исходное несжатое изображение глубины/расхождения может квантоваться до определенных уровней, количество которых может быть меньше значения, допускаемого битовой глубиной, используемой при кодировании. Кодер может выбрать долговременную палитру как подмножество квантованных значений глубины/расхождения, которое может представлять, например, оцененную гистограмму глубины/расхождения. После того как получена начальная долговременная палитра с использованием предыдущего шага (шагов), кодер может исключить те элементы палитры, которые включены в обычную палитру (палитры) одного или более блоков CU текущего изображения, например, первый блок CU изображения.
[0100] В соответствии со вторым вариантом осуществления изобретения долговременная палитра не сигнализируется в заголовке слайса. Вместо этого, долговременная палитра может формироваться в процессе кодирования или декодирования и динамически обновляться после кодирования каждого блока CU. Затем формируется палитра, используемая для кодирования каждого блока CU, с использованием информации либо из соседних палитр, либо из долговременной палитры, либо с использованием информации, сигнализируемой отдельно. В соответствии с вариантом осуществления изобретения блок кодирования, сжатый в режиме палитры, декодируется следующим образом. В начале кодирования первого блока CU слайса размер долговременной палитры устанавливается равным 0 (нулю), что указывает на отсутствие элементов. Затем декодируется индикация режима предсказания палитры для каждого блока CU, кодированного в режиме палитры, при этом подходящий режим предсказания палитры включает по меньшей мере режим использования долговременной палитры. Если используется долговременная палитра для текущего блока CU, индексы палитры декодируются, при этом по меньшей мере один индекс палитры ссылается на цветовой код в долговременной палитре. После кодирования блока CU, если блок CU кодирован в режиме палитры и использует некоторые цвета, которые не были скопированы из соседних и не были скопированы из долговременной палитры, соответствующий новый цвет добавляется в долговременную палитру с помощью процесса обновления долговременной палитры.
[0101] Следует отметить, что различие между первым и вторым вариантами осуществления изобретения заключается в том, что в первом варианте долговременная палитра сигнализируется в заголовке слайса, а во втором варианте долговременная палитра формируется и динамически обновляется после кодирования каждого блока CU.
[0102] Второй вариант осуществления изобретения может быть реализован различными способами. Например, информация о долговременной палитре может быть повторно установлена в различных местоположениях, например, перед первым блоком CU слайса, изображения или строки CTU. Местоположения повторной установки информации могут определяться заранее, например, в стандарте кодирования или могут указываться кодером в битовом потоке и декодироваться из битового потока декодером.
[0103] После повторной установки информации о долговременной палитре эта палитра может инициализироваться, например, с помощью одного или более следующих способов или комбинации этих способов. Инициализация может определяться заранее, например, в стандарте кодирования или может указываться кодером в битовом потоке и декодироваться из битового потока декодером. Долговременная палитра может инициализироваться как пустая палитра. В альтернативном варианте динамическая долговременная палитра может инициализироваться как палитра, равная сигнализируемой долговременной палитре. Начальная долговременная палитра может быть получена, например, из предшествующего изображения, например из изображения опорного уровня, если текущее изображение является изображением уровня расширения. Например, начальная долговременная палитра может содержать цвета палитры, используемые в совмещенном блоке CU предшествующего изображения, но не включенные в обычную палитру для текущего блока CU. Совмещенный блок CU может быть пространственно совмещенным, или при определении совмещенного блока CU может приниматься во внимание временное движение и/или расхождение.
[0104] В некоторых вариантах осуществления изобретения динамически поддерживаются две или более долговременных палитр. Первая долговременная палитра обновляется только на основе первого блока CTU каждой строки блоков CTU или на основе целого числа первых блоков CTU, которое может заранее задаваться, например, в стандарте кодирования или указываться кодером в битовом потоке и декодироваться из битового потока декодером. В начале строки CTU может устанавливаться вторая долговременная палитра, равная первой долговременной палитре предшествующей строки, и палитры могут активизировать параллельное кодирование и/или декодирование строк CTU и могут использоваться совместно в ходе так называемой параллельной обработки «волнового фронта» (wavefront parallel processing). Для параллельного кодирования или декодирования строк CTU может поддерживаться дополнительная долговременная палитра для каждой строки CTU, обрабатываемой параллельно.
[0105] Размер долговременной палитры может быть фиксирован и, следовательно, может не сигнализироваться. С другой стороны, размер долговременной палитры может адаптироваться и сигнализироваться.
[0106] Бинаризация индексов долговременной палитры, сигнализируемых на уровне CU, может зависеть от размера долговременной палитры (например, могут использоваться различные размеры кодирования постоянной длины).
[0107] Также может сигнализироваться бинаризация индексов долговременной палитры, сигнализируемых на уровне CU. Например, могут использоваться различные таблицы VLC в зависимости от гистограммы появлений индексов палитры.
[0108] Палитра, используемая для блока кодирования, может представлять собой комбинацию долговременной палитры и палитры, сигнализируемой на уровне CU. Например, палитра для определенного блока CU может содержать по меньшей мере один элемент из долговременной палитры и по меньшей мере один элемент из палитры, предсказанной на основе палитры, используемой для ранее декодированного блока CU. Палитра для определенного блока CU может также содержать по меньшей мере один элемент из долговременной палитры и по меньшей мере один элемент, отдельно сигнализируемый для блока CU.
[0109] Может сигнализироваться информация о том, какие элементы палитры для определенного блока CU копируются из долговременной палитры и какие элементы копируются из палитры, используемой для ранее декодированного блока CU.
[0110] Процесс обновления долговременной палитры может быть реализован различными способами. Новый цвет добавляется в долговременную палитру только в том случае, если ни один из элементов в долговременной палитре не содержит этот цвет. Новый цвет добавляется в долговременную палитру только в том случае, если вначале проверяется, существует ли тот же цвет в подмножестве элементов в долговременной палитре. Если палитра заполнена перед появлением "нового цвета", то размер палитры увеличивается на 1, или цвет, введенный первым в долговременную палитру, удаляется, и добавляется новый цвет, или удаляется наименее используемый цвет. После добавления нового цвета позиции цветов в долговременной палитре далее могут обновляться.
[0111] Долговременная палитра может сигнализироваться, например, с использованием следующего синтаксиса, где переменная cldx указывает различные цветовые каналы, long_term_palette_size указывает размер долговременной палитры, и переменная long_term_palette_entries определяет значение выборки для каждого элемента палитры:
[0112] В приведенной ниже таблице содержится пример синтаксиса, посредством которого сигнализируемая долговременная палитра используется для формирования активной палитры для блока кодирования. Вначале синтаксические элементы previous_palette_entry_flag используются для идентификации элементов палитры, копируемых из локальной опорной палитры. Затем следует индикация количества дополнительных элементов палитры (сигнализируемых с помощью синтаксического элемента palette_num_signalled_entries). Для каждого из дополнительных элементов сигнализируется, копируется ли он из долговременной палитры (с помощью синтаксического элемента copy_from_long_term_palette_flag), и если это так, то какой из элементов в долговременной палитре скопирован в активную палитру (с помощью синтаксического элемента index_in_long_term_palette).
[0113] На фиг. 6а и 6b в квадратах представлены блоки кодирования, причем в квадратах, окрашенных серым цветом, представлены блоки кодирования с цветовыми характеристиками, схожими с цветовыми характеристиками белых квадратов, и отличными от них цветовыми характеристиками. На фиг. 6а палитра серых блоков кодирования не может быть точно предсказана, однако на фиг. 6b долговременная палитра для слайса 640 может сигнализироваться и использоваться для кодирования серых блоков кодирования с отличающимися цветовыми характеристиками.
[0114] Варианты осуществления настоящего изобретения обеспечивают преимущества по сравнению с подходами, предполагающими использование фиксированного сканирования блоков кодирования. Например, с помощью описанного способа повышается эффективность кодирования палитры на основе кодирования изображения/видеосигнала без значительного влияния на сложность кодирования или декодирования.
[0115] Различные варианты осуществления настоящего изобретения могут быть реализованы с помощью компьютерного программного кода, записанного в памяти и обеспечивающего реализацию соответствующими устройствами согласно настоящему изобретению. Например, устройство может содержать схемы и электронные компоненты для обработки, приема и передачи данных, компьютерный программный код, хранимый в памяти, и процессор, который при исполнении компьютерного программного кода обеспечивает реализацию устройством настоящего изобретения. Кроме того, сетевое устройство, такое как сервер, может содержать схемы и электронные компоненты для обработки, приема и передачи данных, компьютерный программный код, хранимый в памяти, и процессор, который при исполнении компьютерного программного кода обеспечивает реализацию сетевым устройством настоящего изобретения.
[0116] При необходимости различные функции, обсуждавшиеся в этом описании, могут выполняться в ином порядке и/или параллельно друг с другом. Кроме того, при необходимости одна или более вышеописанных функций могут объединяться или могут быть необязательными для выполнения.
[0117] Хотя различные аспекты настоящего изобретения изложены в независимых пунктах формулы изобретения, другие аспекты изобретения содержат другие комбинации признаков, приведенных в описанных вариантах осуществления изобретения и/или в зависимых пунктах формулы изобретения, с признаками, указанными в независимых пунктах формулы изобретения, а не только те комбинации, которые явно изложены в формуле изобретения.
[0118] Здесь следует также отметить, что хотя выше описаны примеры осуществления настоящего изобретения, это описание не должно истолковываться в ограничительном смысле. Более того, могут быть выполнены различные модификации и изменения в пределах сущности настоящего изобретения, охарактеризованного в прилагаемой формуле изобретения.
[0119] В соответствии с первым примером предлагается способ, включающий:
- сигнализацию информации о долговременной палитре, содержащей по меньшей мере информацию о цветовых кодах для каждого элемента в долговременной палитре;
- генерацию палитры, используемой для кодирования блока кодирования,
либо путем выбора по меньшей мере одного цветового кода из локальной палитры и по меньшей мере одного цветового кода из долговременной палитры;
либо путем выбора цветовых кодов или из локальной палитры, или из долговременной палитры.
[0120] Согласно варианту осуществления изобретения под локальной палитрой понимается палитра, используемая для другого блока кодирования, или комбинация палитр, используемых для других блоков кодирования, или подмножество таких палитр.
[0121] Согласно варианту осуществления изобретения информация о долговременной палитре также включает информацию о количестве цветов, присутствующих в долговременной палитре.
[0122] В соответствии с вариантом осуществления изобретения способ включает декодирование блока кодирования, сжатого в режиме палитры, при этом декодирование включает:
- декодирование индикации в заголовке слайса о том, сигнализируется ли информация о долговременной палитре;
- если информация о долговременной палитре сигнализируется,
декодирование информации о цвете для каждого элемента долговременной палитры;
- если используется долговременная палитра,
декодирование индексов палитры для блока кодирования, кодированного в режиме палитры, при этом по меньшей мере один индекс палитры ссылается на цветовой код в долговременной палитре.
[0123] В соответствии с вариантом осуществления изобретения способ включает сигнализацию информации о долговременной палитре на одном из следующих уровней: заголовок слайса, набор параметров изображения, набор параметров адаптации.
[0124] В соответствии с вариантом осуществления изобретения способ включает сигнализацию набора долговременных палитр в синтаксической структуре уровня последовательности.
[0125] В соответствии с вариантом осуществления изобретения способ включает совместное использование некоторых элементов долговременной палитры ранее сигнализированными долговременными палитрами.
[0126] Согласно варианту осуществления изобретения размер долговременной палитры является фиксированным или адаптируемым.
[0127] Согласно варианту осуществления изобретения способ включает сигнализацию о существовании долговременной палитры на постоянной основе или в зависимости от определенных условий.
[0128] В соответствии с вариантом осуществления изобретения способ также включает сигнализацию о бинаризации индексов долговременной палитры, сигнализируемых на уровне блока кодирования.
[0129] В соответствии с вариантом осуществления изобретения палитра, используемая для блока кодирования, представляет собой комбинацию долговременной палитры и палитры, сигнализируемой на уровне блока кодирования.
[0130] В соответствии с вариантом осуществления изобретения палитра, используемая для блока кодирования, содержит элементы из одного или более из следующего: декодированная палитра для другого блока кодирования, долговременная палитра или явно сигнализируемые элементы.
[0131] В соответствии с вариантом осуществления изобретения каждый цветовой компонент имеет отдельную долговременную палитру.
[0132] В соответствии с вариантом осуществления изобретения цветовые компоненты имеют совместную долговременную палитру.
[0133] Согласно варианту осуществления изобретения цветовой компонент представляет любую из следующих характеристик: яркость, цветность, цвет, глубина, расхождение или другая пространственная информация.
[0134] Согласно варианту осуществления изобретения способ включает сигнализацию индикации об использовании долговременной палитры для (де)кодирования элементов палитры отдельно для каждого цветового компонента.
[0135] Согласно варианту осуществления изобретения способ включает сигнализацию о том, какие элементы палитры для определенного блока кодирования копируются из долговременной палитры, какие элементы копируются из палитры, используемой для ранее декодированного блока кодирования, и сколько элементов сигнализируется явным образом.
[0136] В соответствии с вариантом осуществления изобретения способ включает динамическое изменение долговременной палитры, используемой для каждого блока кодирования.
[0137] В соответствии с вариантом осуществления изобретения способ включает получение долговременной палитры, которая должна сигнализироваться кодером.
[0138] Согласно варианту осуществления изобретения способ включает получение долговременной палитры на основе используемых элементов обычной и/или долговременной палитры (палитр) в одном или более предшествующих изображениях в порядке (де)кодирования.
[0139] В соответствии с вариантом осуществления изобретения способ включает получение долговременной палитры на основе элементов палитры, не предсказанных из ранее кодированных блоков кодирования, но явно сигнализированных в процессе кодирования каждого блока кодирования в одном или более предшествующих изображениях, в порядке (де)кодирования.
[0140] В соответствии с вариантом осуществления изобретения способ включает получение долговременной палитры с использованием информации о том, как создано исходное содержимое для кодирования.
[0141] Согласно варианту осуществления изобретения способ включает исключение таких элементов палитры, которые включены в обычную палитру (палитры) одного или более блоков кодирования текущего изображения после получения начальной долговременной палитры.
[0142] Согласно второму примеру способ включает формирование долговременной палитры в процессе кодирования или декодирования и динамическое обновление долговременной палитры после кодирования блока кодирования, и формирование палитры, применяемой для кодирования блока кодирования, с использованием информации из одного из следующих источников: локальные или соседние палитры, долговременная палитра или отдельно сигнализируемая информация.
[0143] В соответствии с вариантом осуществления изобретения способ включает:
- инициализацию долговременной палитры;
- генерацию палитры, используемой для кодирования блока кодирования,
a. либо путем выбора по меньшей мере одного цветового кода из локальной палитры и по меньшей мере одного цветового кода из долговременной палитры,
b. либо путем выбора цветовых кодов или из локальной палитры, или из долговременной палитры;
- если блок кодирования кодируется в режиме палитры и содержит цвета, не скопированные из локальной палитры и из долговременной палитры,
добавление соответствующего нового цвета в долговременную палитру с помощью процесса обновления долговременной палитры.
[0144] Согласно варианту осуществления изобретения под локальной палитрой понимается палитра, используемая для другого блока кодирования, или комбинация палитр, используемых для других блоков кодирования, или подмножество таких палитр.
[0145] В соответствии с вариантом осуществления изобретения способ включает инициализацию долговременной палитры в различных местоположениях.
[0146] В соответствии с вариантом осуществления изобретения способ включает инициализацию пустой долговременной палитры.
[0147] В соответствии с вариантом осуществления изобретения способ включает инициализацию динамической долговременной палитры равной сигнализируемой долговременной палитре.
[0148] В соответствии с вариантом осуществления изобретения способ включает получение начальной долговременной палитры из предшествующего изображения.
[0149] В соответствии с вариантом осуществления изобретения способ включает динамическую поддержку двух и более долговременных палитр.
[0150] Согласно варианту осуществления изобретения размер долговременной палитры является фиксированным или адаптируемым.
[0151] В соответствии с вариантом осуществления изобретения палитра, используемая для блока кодирования, может представлять собой комбинацию долговременной палитры и палитры, сигнализируемой на уровне блока кодирования.
[0152] В соответствии с вариантом осуществления изобретения способ включает процесс обновления долговременной палитры, в ходе которого новый цвет добавляют в долговременную палитру, если ни один из элементов в долговременной палитре не содержит этот цвет.
[0153] В соответствии с вариантом осуществления изобретения способ включает процесс обновления долговременной палитры, в ходе которого новый цвет добавляют в долговременную палитру путем начальной проверки, существует ли такой же цвет в подмножестве элементов долговременной палитры.
[0154] В соответствии с вариантом осуществления изобретения способ включает процесс обновления долговременной палитры, в ходе которого перед добавлением нового цвета определяют, что палитра заполнена, вследствие чего выполняют одно из следующих действий:
- увеличение размера палитры на 1;
- удаление цвета, внесенного в долговременную палитру первым, и добавление нового цвета;
- удаление наименее часто используемого цвета и добавление нового цвета.
[0155] В соответствии с третьим примером предлагается устройство, содержащее по меньшей мере один процессор и по меньшей мере одну память, в которой хранится компьютерный программный код, при этом по меньшей мере одна память и компьютерный программный код сконфигурированы таким образом, чтобы с помощью по меньшей мере одного процессора устройство выполняло по меньшей мере следующие операции:
- сигнализацию информации о долговременной палитре, содержащей по меньшей мере информацию о цветовых кодах для каждого элемента в долговременной палитре;
- генерацию палитры, используемой для кодирования блока кодирования,
либо путем выбора по меньшей мере одного цветового кода из локальной палитры и по меньшей мере одного цветового кода из долговременной палитры,
либо путем выбора цветовых кодов или из локальной палитры, или из долговременной палитры.
[0156] В соответствии с четвертым примером предлагается устройство, содержащее по меньшей мере один процессор и по меньшей мере одну память, в которой хранится компьютерный программный код, при этом по меньшей мере одна память и компьютерный программный код сконфигурированы таким образом, чтобы с помощью по меньшей мере одного процессора устройство выполняло по меньшей мере следующие операции:
- формирование долговременной палитры в процессе кодирования или декодирования и динамическое обновление долговременной палитры после кодирования блока кодирования, и
- формирование палитры, используемой для кодирования блока кодирования, с использованием информации из одного из следующих источников: локальные или соседние палитры, долговременная палитра или отдельно сигнализируемая информация.
[0157] В соответствии с пятым примером предлагается устройство, содержащее:
- средства для обработки;
- средства для сигнализации информации о долговременной палитре, содержащей по меньшей мере информацию о цветовых кодах для каждого элемента в долговременной палитре;
- средства для генерации палитры, используемой для кодирования блока кодирования,
либо путем выбора по меньшей мере одного цветового кода из локальной палитры и по меньшей мере одного цветового кода из долговременной палитры,
либо путем выбора цветовых кодов или из локальной палитры, или из долговременной палитры.
[0158] В соответствии с шестым примером предлагается устройство, содержащее:
- средства для обработки;
- средства для формирования долговременной палитры в процессе кодирования или декодирования и динамического обновления долговременной палитры после кодирования блока кодирования, и
- средства для формирования палитры, используемой для кодирования блока кодирования, с использованием информации из одного из следующих источников: локальные или соседние палитры, долговременная палитра или отдельно сигнализируемая информация.
[0159] В соответствии с седьмым примером предлагается компьютерный программный продукт, содержащий машиночитаемый носитель, на котором хранится компьютерный программный код, предназначенный для использования компьютером и включающий:
- код для сигнализации информации о долговременной палитре, содержащей по меньшей мере информацию о цветовых кодах для каждого элемента в долговременной палитре;
- код для генерации палитры, используемой для кодирования блока кодирования,
либо путем выбора по меньшей мере одного цветового кода из локальной палитры и по меньшей мере одного цветового кода из долговременной палитры,
либо путем выбора цветовых кодов или из локальной палитры, или из долговременной палитры.
[0160] В соответствии с восьмым примером предлагается компьютерный программный продукт, содержащий машиночитаемый носитель, на котором хранится компьютерный программный код, предназначенный для использования компьютером и включающий:
- код для формирования долговременной палитры в процессе кодирования или декодирования и динамического обновления долговременной палитры после кодирования блока кодирования, и
- код для формирования палитры, используемой для кодирования блока кодирования, с использованием информации из одного из следующих источников: локальные или соседние палитры, долговременная палитра или отдельно сигнализируемая информация.
[0161] Согласно девятому примеру предлагается машиночитаемый носитель данных, на котором хранятся инструкции, при исполнении которых компьютером выполняются следующие операции:
- сигнализация информации о долговременной палитре, содержащей по меньшей мере информацию о цветовых кодах для каждого элемента в долговременной палитре;
- генерация палитры, используемой для кодирования блока кодирования,
либо путем выбора по меньшей мере одного цветового кода из локальной палитры и по меньшей мере одного цветового кода из долговременной палитры;
либо путем выбора цветовых кодов или из локальной палитры, или из долговременной палитры.
[0162] Согласно десятому примеру предлагается машиночитаемый носитель, на котором хранятся инструкции, при исполнении которых компьютером выполняются следующие операции:
- формирование долговременной палитры в процессе кодирования или декодирования и динамическое обновление долговременной палитры после кодирования блока кодирования, и
- формирование палитры, используемой для кодирования блока кодирования, с использованием информации из одного из следующих источников: локальные или соседние палитры, долговременная палитра или отдельно сигнализируемая информация.