ПАЛИТРОВОЕ ПРОГНОЗИРОВАНИЕ ПРИ КОДИРОВАНИИ ВИДЕО НА ОСНОВЕ ПАЛИТР

1. Способ кодирования видеоданных, при этом способ содержит этапы, на которых:
- формируют посредством одного или более процессоров прогнозирующую палитру, включающую в себя записи палитры, которые указывают пиксельные значения, причем прогнозирующая палитра включает в себя одну или более записей палитры из одного или более ранее кодированных блоков, один или более ранее кодированных блоков содержат один или более соседних блоков относительно текущего блока, один или более соседних блоков включают в себя, по меньшей мере, один пространственно соседний блок или по меньшей мере один соседний блок относительно текущего блока в порядке сканирования для сканирования по меньшей мере одного соседнего блока и текущего блока;
- определяют посредством одного или более процессоров, какие из записей палитры в прогнозирующей палитре должны копироваться в текущую палитру для текущего блока видеоданных, хранимого в памяти, при этом определение записей палитры, которые должны копироваться, содержит этап, на котором кодируют один или более элементов синтаксиса, указывающих то, должна или нет каждая из записей палитры в прогнозирующей палитре копироваться в текущую палитру;
- кодируют посредством одного или более процессоров один или более элементов синтаксиса, указывающих число новых записей палитры, которые должны быть включены в текущую палитру для текущего блока, при этом новые записи палитры не находятся в прогнозирующей палитре;
- кодируют посредством одного или более процессоров один или более элементов синтаксиса, указывающих пиксельное значение для каждой из новых записей палитры, которые должны быть включены в текущую палитру;
- вычисляют посредством одного или более процессоров размер текущей палитры, равный сумме числа скопированных записей палитры и числа новых записей палитры;
- формируют посредством одного или более процессоров текущую палитру, имеющую вычисленный размер, включающую в себя скопированные записи палитры и новые записи палитры; и
- определяют посредством одного или более процессоров значения индекса для одного или более пиксельных значений текущего блока, которые идентифицируют записи палитры в текущей палитре, используемые для того, чтобы представлять пиксельные значения текущего блока.
2. Способ по п. 1, в котором один или более элементов синтаксиса, указывающих то, должна или нет каждая из записей палитры в прогнозирующей палитре копироваться в текущую палитру, содержат двоичный вектор, включающий в себя флаг для каждой из записей палитры в прогнозирующей палитре, который указывает то, должна или нет соответствующая запись палитры копироваться в текущую палитру.
3. Способ по п. 1, в котором один или более элементов синтаксиса, указывающих то, должна или нет каждая из записей палитры в прогнозирующей палитре копироваться в текущую палитру, содержат сжатую без потерь версию двоичного вектора, при этом несжатая версия двоичного вектора включает в себя флаг для каждой из записей палитры в прогнозирующей палитре, который указывает то, должна или нет соответствующая запись палитры копироваться в текущую палитру.
4. Способ по п. 1, в котором один или более элементов синтаксиса, указывающих число новых записей палитры, которые должны быть включены в текущую палитру, кодируется с использованием, по меньшей мере, одного из унарных кодов, усеченных унарных кодов, экспоненциальных кодов Голомба или кодов Голомба-Райса.
5. Способ по п. 1, в котором формирование текущей палитры, включающей в себя скопированные записи палитры и новые записи палитры, содержит этап, на котором конкатенируют скопированные записи палитры и новые записи палитры.
6. Способ по п. 1, в котором текущий блок содержит один из первого блока в серии последовательных макроблоков видеоданных либо самого левого блока серии последовательных макроблоков или изображения видеоданных, причем способ дополнительно содержит этап, на котором деактивируют копирование записей палитры в прогнозирующей палитре в текущую палитру для текущего блока.
7. Способ по п. 1, в котором определение значений индекса для одного или более пиксельных значений текущего блока содержит этапы, на которых:
- кодируют один или более элементов синтаксиса, указывающих то, имеет или нет каждое из пиксельных значений текущего блока соответствующее пиксельное значение в текущей палитре;
- кодируют один или более элементов синтаксиса, указывающих значения индекса для одного или более пиксельных значений текущего блока, которые имеют соответствующие пиксельные значения в текущей палитре; и
- кодируют один или более элементов синтаксиса, указывающих пиксельные значения для одного или более пиксельных значений текущего блока, которые не имеют соответствующего пиксельного значения в текущей палитре.
8. Способ по п. 1, в котором определение значений индекса для одного или более пиксельных значений текущего блока содержит этапы, на которых:
- кодируют один или более элементов синтаксиса, указывающих значения индекса для одного или более пиксельных значений текущего блока, при этом значения индекса идентифицируют соответствующие пиксельные значения в текущей палитре в качестве прогнозных пиксельных значений; и
- кодируют один или более элементов синтаксиса, указывающих остаточные значения между одним или более пиксельными значениями текущего блока и идентифицированных прогнозных пиксельных значений в текущей палитре.
9. Способ по п. 1, в котором способ кодирования видеоданных содержит способ декодирования видеоданных, при этом способ содержит этапы, на которых:
- декодируют один или более элементов синтаксиса, указывающих то, должна или нет каждая из записей палитры в прогнозирующей палитре копироваться в текущую палитру;
- декодируют один или более элементов синтаксиса, указывающих число новых записей палитры, которые должны быть включены в текущую палитру;
- декодируют один или более элементов синтаксиса, указывающих пиксельное значение для каждой из новых записей палитры;
- формируют текущую палитру, включающую в себя скопированные записи палитры и новые записи палитры; и
- декодируют один или более элементов синтаксиса, указывающих значения индекса для одного или более пиксельных значений текущего блока, которые идентифицируют записи палитры в текущей палитре, используемые для того, чтобы представлять пиксельные значения текущего блока.
10. Способ по п. 1, в котором способ кодирования видеоданных содержит способ кодирования видеоданных, при этом способ содержит этапы, на которых:
- формируют текущую палитру, включающую в себя скопированные записи палитры и новые записи палитры;
- кодируют один или более элементов синтаксиса, указывающих то, должна или нет каждая из записей палитры в прогнозирующей палитре копироваться в текущую палитру;
- кодируют один или более элементов синтаксиса, указывающих число новых записей палитры, которые должны быть включены в текущую палитру;
- кодируют один или более элементов синтаксиса, указывающих пиксельное значение для каждой из новых записей палитры; и
- кодируют один или более элементов синтаксиса, указывающих значения индекса для одного или более пиксельных значений текущего блока, которые идентифицируют записи палитры в текущей палитре, используемые для того, чтобы представлять пиксельные значения текущего блока.
11. Устройство для кодирования видеоданных, причем устройство содержит:
- запоминающее устройство, хранящее видеоданные; и
- один или более процессоров, выполненных с возможностью:
- формировать прогнозирующую палитру, включающую в себя записи палитры, которые указывают пиксельные значения, причем прогнозирующая палитра включает в себя одну или более записей палитры из одного или более ранее кодированных блоков, один или более ранее кодированных блоков содержат один или более соседних блоков относительно текущего блока, один или более соседних блоков включают в себя, по меньшей мере, один пространственно соседний блок или по меньшей мере один соседний блок относительно текущего блока в порядке сканирования для сканирования по меньшей мере одного соседнего блока и текущего блока;
- определять то, какие из записей палитры в прогнозирующей палитре должны копироваться в текущую палитру для текущего блока видеоданных, при этом один или более процессоров выполнены с возможностью кодировать один или более элементов синтаксиса, указывающих то, должна или нет каждая из записей палитры в прогнозирующей палитре копироваться в текущую палитру;
- кодировать один или более элементов синтаксиса, указывающих число новых записей палитры, которые должны быть включены в текущую палитру для текущего блока, при этом новые записи палитры не находятся в прогнозирующей палитре;
- кодировать один или более элементов синтаксиса, указывающих пиксельное значение для каждой из новых записей палитры, которые должны быть включены в текущую палитру;
- вычислять размер текущей палитры, равный сумме числа скопированных записей палитры и числа новых записей палитры;
- формировать текущую палитру, имеющую вычисленный размер, включающую в себя скопированные записи палитры и новые записи палитры; и
- определять значения индекса для одного или более пиксельных значений текущего блока, которые идентифицируют записи палитры в текущей палитре, используемые для того, чтобы представлять пиксельные значения текущего блока.
12. Устройство по п. 11, в котором один или более элементов синтаксиса, указывающих то, должна или нет каждая из записей палитры в прогнозирующей палитре копироваться в текущую палитру, содержат двоичный вектор, включающий в себя флаг для каждой из записей палитры в прогнозирующей палитре, который указывает то, должна или нет соответствующая запись палитры копироваться в текущую палитру.
13. Устройство по п. 11, в котором один или более элементов синтаксиса, указывающих то, должна или нет каждая из записей палитры в прогнозирующей палитре копироваться в текущую палитру, содержат сжатую без потерь версию двоичного вектора, при этом несжатая версия двоичного вектора включает в себя флаг для каждой из записей палитры в прогнозирующей палитре, который указывает то, должна или нет соответствующая запись палитры копироваться в текущую палитру.
14. Устройство по п. 11, в котором один или более элементов синтаксиса, указывающих число новых записей палитры, которые должны быть включены в текущую палитру, кодируется с использованием, по меньшей мере, одного из унарных кодов, усеченных унарных кодов, экспоненциальных кодов Голомба или кодов Голомба-Райса.
15. Устройство по п. 11, в котором процессоры выполнены с возможностью конкатенировать скопированные записи палитры и новые записи палитры, чтобы формировать текущую палитру.
16. Устройство по п. 11, в котором текущий блок содержит один из первого блока в серии последовательных макроблоков видеоданных либо самого левого блока серии последовательных макроблоков или изображения видеоданных, при этом процессоры выполнены с возможностью деактивировать копирование записей палитры в прогнозирующей палитре в текущую палитру для текущего блока.
17. Устройство по п. 11, в котором процессоры выполнены с возможностью:
- кодировать один или более элементов синтаксиса, указывающих то, имеет или нет каждое из пиксельных значений текущего блока соответствующее пиксельное значение в текущей палитре;
- кодировать один или более элементов синтаксиса, указывающих значения индекса для одного или более пиксельных значений текущего блока, которые имеют соответствующие пиксельные значения в текущей палитре; и
- кодировать один или более элементов синтаксиса, указывающих пиксельные значения для одного или более пиксельных значений текущего блока, которые не имеют соответствующего пиксельного значения в текущей палитре.
18. Устройство по п. 11, в котором процессоры выполнены с возможностью:
- кодировать один или более элементов синтаксиса, указывающих значения индекса для одного или более пиксельных значений текущего блока, при этом значения индекса идентифицируют соответствующие пиксельные значения в текущей палитре в качестве прогнозных пиксельных значений; и
- кодировать один или более элементов синтаксиса, указывающих остаточные значения между одним или более пиксельными значениями текущего блока и идентифицированных прогнозных пиксельных значений в текущей палитре.
19. Устройство по п. 11, при этом устройство содержит устройство декодирования видео для декодирования видеоданных, при этом процессоры выполнены с возможностью:
- декодировать один или более элементов синтаксиса, указывающих то, должна или нет каждая из одной или более записей палитры в прогнозирующей палитре копироваться в текущую палитру;
- декодировать один или более элементов синтаксиса, указывающих число новых записей палитры, которые должны быть включены в текущую палитру;
- декодировать один или более элементов синтаксиса, указывающих пиксельное значение для каждой из новых записей палитры;
- формировать текущую палитру, включающую в себя скопированные записи палитры и новые записи палитры; и
- декодировать один или более элементов синтаксиса, указывающих значения индекса для одного или более пиксельных значений текущего блока, которые идентифицируют записи палитры в текущей палитре, используемые для того, чтобы представлять пиксельные значения текущего блока.
20. Устройство по п. 11, при этом устройство содержит устройство кодирования видео для кодирования видеоданных, при этом процессоры выполнены с возможностью:
- формировать текущую палитру, включающую в себя
скопированные записи палитры и новые записи палитры;
- кодировать один или более элементов синтаксиса, указывающих то, должна или нет каждая из одной или более записей палитры в прогнозирующей палитре копироваться в текущую палитру;
- кодировать один или более элементов синтаксиса, указывающих число новых записей палитры, которые должны быть включены в текущую палитру;
- кодировать один или более элементов синтаксиса, указывающих пиксельное значение для каждой из новых записей палитры; и
- кодировать один или более элементов синтаксиса, указывающих значения индекса для одного или более пиксельных значений текущего блока, которые идентифицируют записи палитры в текущей палитре, используемые для того, чтобы представлять пиксельные значения текущего блока.
21. Устройство для кодирования видеоданных, причем устройство содержит:
- средство для формирования прогнозирующей палитры, включающей в себя записи палитры, которые указывают пиксельные значения, причем прогнозирующая палитра включает в себя одну или более записей палитры из одного или более ранее кодированных блоков, один или более ранее кодированных блоков содержат один или более соседних блоков относительно текущего блока, один или более соседних блоков включают в себя, по меньшей мере, один пространственно соседний блок или по меньшей мере один соседний блок относительно текущего блока в порядке сканирования для сканирования по меньшей мере одного соседнего блока и текущего блока;
- средство для определения того, какие из записей палитры в прогнозирующей палитре должны копироваться в текущую палитру для текущего блока видеоданных, при этом средство для определения записей палитры, которые должны копироваться, содержит средство для кодирования одного или более элементов синтаксиса, указывающих то, должна или нет каждая из записей палитры в прогнозирующей палитре копироваться в текущую палитру;
- средство для кодирования одного или более элементов
синтаксиса, указывающих число новых записей палитры, которые должны быть включены в текущую палитру для текущего блока, при этом новые записи палитры не находятся в прогнозирующей палитре;
- средство для кодирования одного или более элементов синтаксиса, указывающих пиксельное значение для каждой из новых записей палитры, которые должны быть включены в текущую палитру;
- средство для вычисления размера текущей палитры, равного сумме числа скопированных записей палитры и числа новых записей палитры;
- средство для формирования текущей палитры, имеющей вычисленный размер, включающей в себя скопированные записи палитры и новые записи палитры; и
средство для определения значений индекса для одного или более пиксельных значений текущего блока, которые идентифицируют записи палитры в текущей палитре, используемые для того, чтобы представлять пиксельные значения текущего блока.
22. Невременный машиночитаемый носитель, хранящий исполняемые компьютером коды, которые при выполнении инструктируют одному или более процессоров:
- формировать прогнозирующую палитру, включающую в себя записи палитры, которые указывают пиксельные значения, причем прогнозирующая палитра включает в себя одну или более записей палитры из одного или более ранее кодированных блоков, один или более ранее кодированных блоков содержат один или более соседних блоков относительно текущего блока, один или более соседних блоков включают в себя, по меньшей мере, один пространственно соседний блок или по меньшей мере один соседний блок относительно текущего блока в порядке сканирования для сканирования по меньшей мере одного соседнего блока и текущего блока;
- определять то, какие из записей палитры в прогнозирующей палитре должны копироваться в текущую палитру для текущего блока видеоданных, при этом инструкции инструктируют одному или более процессоров кодировать один или более элементов синтаксиса, указывающих то, должна или нет каждая из записей палитры в
прогнозирующей палитре копироваться в текущую палитру;
- кодировать один или более элементов синтаксиса, указывающих число новых записей палитры, которые должны быть включены в текущую палитру для текущего блока, при этом новые записи палитры не находятся в прогнозирующей палитре;
- кодировать один или более элементов синтаксиса, указывающих пиксельное значение для каждой из новых записей палитры, которые должны быть включены в текущую палитру;
- вычислять размер текущей палитры, равный сумме числа скопированных записей палитры и числа новых записей палитры;
- формировать текущую палитру, включающую в себя скопированные записи палитры и новые записи палитры; и
- определять значения индекса для одного или более пиксельных значений текущего блока, которые идентифицируют записи палитры в текущей палитре, используемые для того, чтобы представлять пиксельные значения текущего блока.