Внутреннее предсказание с низкой сложностью для кодирования видеосигнала

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

 

УРОВЕНЬ ТЕХНИКИ ИЗОБРЕТЕНИЯ

Область техники

[0001] Настоящее изобретение относится к кодированию видеосигнала и, в частности, к внутрикадровому предсказанию, в котором блок выборки предсказывается с использованием ранее кодированных и реконструированных пикселов из того же видеокадра.

Сведения из уровня техники

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

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

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

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

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

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

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

где size представляет размер целевого блока, который требуется предсказать, angle представляет направление предсказания, и col - счетчик, который уменьшается на 1 от -1 до angle. Отысканные и выбранные пикселы добавляются к горизонтальным пикселам в положение, которое идентифицируется идентификатором горизонтальных пикселов [col].

[0008] В другом варианте осуществления изобретения при отыскании и выборке, по меньшей мере, некоторых из вертикальных граничных пикселов InvAngle вычисляется из

где N - целочисленная степень числа 2. Затем, по меньшей мере, некоторые из пикселов среди вертикальных граничных пикселов выбираются с использованием идентификатора вертикальных пикселов, который выражается как Выбранные пикселы добавляются к горизонтальным пикселам в положение, которое идентифицируется идентификатором горизонтальных пикселов [col].

[0009] В другом варианте осуществления изобретения InvAngle получается из справочной таблицы, где перечислены значения InvAngle в зависимости от значений angle.

[0010] В другом варианте осуществления изобретения пиксел идентифицируется среди вертикальных граничных пикселов с использованием идентификатора вертикальных пикселов [row], где row - счетчик, который увеличивается на 1 от 0 до size. Выбранный пиксел добавляется к горизонтальным граничным пикселам в положение, которое идентифицируется идентификатором горизонтальных пикселов [int +1], где int - целочисленное представление положения пиксела, пересекающегося с направлением предсказания.

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

КРАТКОЕ ОПИСАНИЕ ГРАФИЧЕСКИХ МАТЕРИАЛОВ

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

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

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

[0015] ФИГ.4 - блок-схема, показывающая функциональные модули кодера согласно одному из вариантов осуществления настоящего изобретения.

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

[0017] ФИГ.6 - блок-схема, показывающая функциональные модули декодера согласно одному из вариантов осуществления настоящего изобретения.

[0018] ФИГ.7 - диаграмма, показывающая направления предсказания, иллюстрирующие виды предсказания Intra_4×4, поддерживаемые H.264/AVC.

[0019] ФИГ.8 - диаграмма, показывающая направления предсказания, предложенные в Документе №JCT-VC A119.

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

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

[0022] ФИГ.11А - схематический вид, показывающий блок предсказания и массивы горизонтальных и вертикальных граничных пикселов.

[0023] ФИГ.11В - схематический вид, показывающий массив горизонтальных граничных пикселов, расширенный вертикальными граничными пикселами.

[0024] ФИГ.12 - схема последовательности операций, показывающая процесс расширения массива горизонтальных граничных пикселов, выполняемый в соответствии с одним из вариантов осуществления настоящего изобретения.

[0025] ФИГ.13 - схема последовательности операций, показывающая другой вариант осуществления расширения массива горизонтальных граничных пикселов.

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

ПОДРОБНОЕ ОПИСАНИЕ ГРАФИЧЕСКИХ МАТЕРИАЛОВ И ПРЕДПОЧТИТЕЛЬНЫХ ВНАСТОЯЩЕЕ ВРЕМЯ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ

[0027] ФИГ.1 показывает пример архитектуры аппаратного обеспечения компьютера 100, на котором может быть реализовано настоящее изобретение. Следует отметить, что архитектура аппаратного обеспечения, показанная на ФИГ.1, может быть общей и для видеодекодера, и для видеодекодера, которые реализуют варианты осуществления настоящего изобретения. Компьютер 100 включает в себя процессор 101, память 102, устройство 105 хранения данных и одно или несколько устройств 106 (или периферийных устройств) ввода и/или вывода (I/O), которые коммуникативно связаны через локальный интерфейс 107. Локальный интерфейс 105 может, в качестве неограничивающих примеров, представлять собой одну или несколько шин или других проводных или беспроводных соединений, известных в данной области техники.

[0028] Процессор 101 представляет собой аппаратное устройство, предназначенное для исполнения программного обеспечения, в частности, хранящегося в памяти 102. Процессор 101 может представлять собой любой изготовленный на заказ или выпускаемый серийно процессор, центральный процессор (CPU), вспомогательный процессор среди нескольких процессоров, связанных с компьютером 100, микропроцессор на полупроводниковой основе (в форме микросхемы или набора микросхем), или, в общем, любое устройство, предназначенное для исполнения команд программного обеспечения.

[0029] Память 102 включает в себя компьютерно-читаемый носитель данных, который может включать любой из элементов энергозависимой памяти (например, памяти с произвольным доступом (RAM, как, например, DRAM, SRAM, SDRAM и т.д.)) и элементов энергонезависимой памяти (например, ROM, накопитель на жестких дисках, ленту, CDROM и т.д.) или их комбинацию. Кроме того, память 102 может включать электронные, магнитные, оптические и/или другие типы носителей данных. Компьютерно-читаемый носитель данных может представлять собой любые средства, которые могут хранить, сообщать, распространять или передавать программу для использования системой, блоком или устройством исполнения команд или в связи с ними. Следует отметить, что память 102 имеет распределенную архитектуру, где различные компоненты располагаются удаленно один от другого, но могут быть доступны для процессора 101.

[0030] Программное обеспечение 103 в памяти 102 может включать одну или несколько отдельных программ, каждая из которых содержит упорядоченный список исполняемых команд, предназначенных для реализации логических функций компьютера 100, как описывается ниже. В примере по ФИГ.1 программное обеспечение 103 в памяти 102 определяет функциональную возможность компьютера 100 кодировать видеосигнал или декодировать видеосигнал согласно настоящему изобретению. Кроме того, хотя это и не требуется, память 102 может содержать операционную систему (O/S) 104. Операционная система 104, по существу, управляет исполнением компьютерных программ и обеспечивает диспетчеризацию, управление вводом-выводом, управление файлами и данными, управление памятью, управление передачей данных и связанные службы.

[0031] Устройство 105 хранения данных компьютера 100 может представлять собой одно из множества различных типов устройств хранения данных, в том числе стационарное устройство хранения данных или переносное устройство хранения данных. Например, устройство 105 хранения данных может представлять собой магнитную ленту, диск, флэш-память, энергозависимую память или другое устройство хранения данных. Кроме того, устройство 105 хранения данных может представлять собой SD-карту памяти или любое другое съемное устройство 105 хранения данных.

[0032] Устройства 106 ввода/вывода могут включать в качестве неограничивающих примеров следующие устройств ввода: сенсорный экран, клавиатура, мышь, сканер, микрофон или другое устройство ввода. Кроме того, устройства 106 ввода/вывода также могут включать в качестве неограничивающих примеров следующие устройства вывода: дисплей или другие устройства вывода. Устройства 106 ввода/вывода также могут включать в качестве неограничивающих примеров устройства, которые передают данные и через входы, и через выходы: модулятор/демодулятор (модем, предназначенный для доступа к другому устройству, системе или сети), высокочастотный (RF), беспроводной или другой трансивер, телефонный интерфейс, мост, маршрутизатор или другие устройства, которые функционируют и как устройства ввода, и как устройства вывода.

[0033] Как хорошо известно средним специалистам в данной области, сжатие видеосигнала достигается путем исключения избыточной информации из видеопоследовательности. Существует множество стандартов кодирования видеосигнала, примеры которых включают MPEG-1, MPEG-2, MPEG-4, H.261, H.263 и H.264/AVC. Следует отметить, что настоящее изобретение не предназначено для ограничения применением в каком-либо конкретном стандарте кодирования видеосигнала. Однако нижеследующее описание настоящего изобретения представлено с использованием примера стандарта H.264/AVC, который ссылкой включается в настоящее описание. H.264/AVC представляет собой новейший стандарт кодирования видеосигнала, и он достигает значительного увеличения производительности по сравнению с предыдущими стандартами кодирования, такими как MPEG-1, MPEG-2, H.261 и H.263

[0034] В стандарте H.264/AVC каждый кадр, или картинка, видеосигнала может быть разбит на несколько полей. Поля затем разделяются на блоки размера 16×16 пикселов, называемые макроблоками, которые затем могут дальше разделяться на блоки из 8×16, 16×8, 8×8, 4×8, 8×4 вплоть до 4×4 пикселов. Существует пять типов полей, поддерживаемых стандартом H.264/AVC. В I-полях все макроблоки кодируются с использованием внутреннего предсказания. В Р-полях макроблоки могут кодироваться с использованием внутреннего или внешнего предсказания. Р-поля позволяют использовать только один сигнал предсказания с компенсацией движения (MCP) на макроблок. В В-полях макроблоки могут кодироваться с использованием внутреннего и внешнего предсказаний. Для каждого предсказания могут использоваться два сигнала МСР. SP-поля позволяют эффективно переключать Р-поля между разными видеопотоками. SI-поле представляет собой точное соответствие SP-полю для произвольного доступа или восстановления при ошибках, несмотря на использование только внутреннего предсказания.

[0035] ФИГ.2 показывает общий вид видеокодера, в котором может применяться настоящее изобретение. Блоки, показанные на фигуре, представляют функциональные модули, реализованные процессором 101, исполняющим программное обеспечение 103 в памяти 102. Картинка, или видеокадр 200, подается в видеокодер 201. Видеокодер обрабатывает картинку 200 в единицах макроблоков 200А. Каждый макроблок содержит несколько пикселов картинки 200. На каждом макроблоке выполняется преобразование в коэффициенты преобразования с последующим квантованием в уровни коэффициентов преобразования. Кроме того, используется внутреннее предсказание или внешнее предсказание с тем, чтобы выполнять этапы кодирования не непосредственно на пиксельных данных, но на разностях между ними и предсказанными значениями пикселов, и, таким образом, добиваться небольших значений, которые легче подвергаются сжатию.

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

[0037] Кодер 201 включает в себя энтропийный кодер, который кодирует синтаксические элементы и генерирует для каждого поля арифметические кодовые слова. При генерировании арифметических кодовых слов для поля энтропийный кодер эксплуатирует статистические зависимости между значениями данных синтаксических элементов в битовом потоке видеосигнала. Кодер 201 выводит кодированный видеосигнал для поля картинки 200 в видеодекодер 301, показанный на ФИГ.3.

[0038] ФИГ.3 показывает общий вид видеодекодера, в котором может применяться настоящее изобретение. Аналогично, блоки, показанные на фигуре, представляют функциональные модули, реализуемые процессором 101, исполняющим программное обеспечение 103 в памяти 102. Видеодекодер 301 принимает кодированный видеосигнал и, в первую очередь, энтропийно декодирует сигнал обратно в синтаксические элементы. Декодер 301 использует синтаксические элементы с целью реконструкции, макроблок за макроблоком, а затем поле за полем, выборочных значений картинки 300А, состоящей из пикселов, в картинку 300.

[0039] ФИГ.4 показывает функциональные модули видеокодера 201. Эти функциональные модули реализуются процессором 101, исполняющим программное обеспечение 103 в памяти 102. Входная видеокартинка представляет собой кадр, или поле, натурального (несжатого) видеоизображения, определяемого выборочными точками, которые представляют компоненты оригинальных цветов, такие как цветность («chroma») и яркость («luma») (возможны и другие компоненты, например, тон, насыщенность и номер). Входная видеокартинка разделяется на макроблоки 400 так, чтобы каждый из них представлял квадратную область картинки, состоящую из 16×16 пикселов luma-компоненты цвета изображения. Входная видеокаринка также разделяется на макроблоки так, чтобы каждый из них представлял 8×8 пикселов каждой из двух chroma-компонент цвета изображения. В общем действии кодера введенные макроблоки могут предсказываться во времени или пространственно с использованием внешнего или внутреннего предсказания. Однако для целей обсуждения предполагается, что все макроблоки 400 относятся к типу макроблоков I-поля и подвергаются только внутреннему предсказанию.

[0040] Внутреннее предсказание выполняется в модуле 401 внутреннего предсказания, действие которого будет более подробно обсуждаться ниже. Модуль 401 внутреннего предсказания генерирует блок 402 предсказания из горизонтальных и вертикальных граничных пикселов соседних блоков, которые ранее были закодированы, реконструированы и сохранены в памяти 403 кадров. Остаток 404 блока 402 предсказания, который представляет собой разность между целевым блоком 400 и блоком 402 предсказания, преобразовывается, масштабируется и квантуется в модуле 405 преобразования/квантования с использованием способов и технологий, известных специалистам в области кодирования видеосигналов. Квантованные коэффициенты 406 преобразования затем энтропийно кодируются в модуле 407 энтропийного кодирования и передаются (вместе с другой информацией, относящейся к внутреннему предсказанию) в виде кодированного видеосигнала 408.

[0041] Видеокодер 201 содержит функциональную возможность декодирования, предназначенную для выполнения внутреннего предсказания на целевых блоках. Функциональная возможность декодирования включает в себя модуль 409 обратного квантования/преобразования, который выполняет обратное квантование и обратное преобразование квантованных коэффициентов 406 преобразования с целью получения декодированного остатка 410 предсказания, который добавляется к блоку 402 предсказания. Сумма декодированного остатка 410 предсказания и блока 402 предсказания представляет собой реконструированный блок 411, который сохраняется в памяти 403 кадров и будет считываться из нее и использоваться модулем 401 внутреннего предсказания для генерирования блока 402 предсказания с целью декодирования следующего целевого блока 400.

[0042] ФИГ.5 представляет собой схему последовательности операций, показывающую процессы, выполняемые модулем 401 внутреннего предсказания. Согласно [стандарту] H.264/AVC, внутреннее предсказание включает в себя предсказание каждого пиксела целевого блока 400 в соответствии с рядом видов предсказания с использованием интерполяций граничных пикселов («опорных пикселов») соседних блоков, которые предварительно кодируются и реконструируются. Виды предсказания идентифицируются положительными целыми числами 0, 1, 2..., каждое из которых связано с отличающейся командой или алгоритмом предсказания определенных пикселов в целевом блоке 400. Модуль 401 внутреннего предсказания запускает внутреннее предсказание в соответствии с соответствующим видом предсказания и генерирует различные блоки предсказания. В соответствии с алгоритмом полного поиска («FS») каждый из генерируемых блоков предсказания сравнивается с целевым блоком 400 с целью нахождения оптимального вида предсказания, который минимизирует остаток 404 предсказания или генерирует наименьший остаток 404 предсказания среди видов предсказания. Идентификатор оптимального вида предсказания сжимается и отправляется в декодер 301 с другими синтаксическими элементами управляющей информации.

[0043] Каждый вид предсказания может быть описан общим направлением предсказания, описываемым на словах (т.е. «горизонтально вверх», «вертикально» и «по диагонали вниз и влево»). Направление предсказания может быть описано графически как угловое направление, которое выражается при помощи диаграммы со стрелками, как показано на ФИГ.7. В диаграмме такого типа каждая стрелка может рассматриваться как представляющая направление предсказания, или вид предсказания. Угол, соответствующий виду предсказания имеет общую взаимосвязь с направлением из средневзвешенного положения опорных пикселов, используемых для предсказания целевого пиксела, к положению целевого пиксела. Следует отметить, что виды предсказания включают вид предсказания DC, который не связан с каким-либо направлением предсказания и поэтому, в отличие от других видов предсказания, не может быть описан графически на диаграмме. В виде предсказания DC блок 402 предсказания генерируется так, чтобы каждый пиксел в блоке 402 предсказания задавался единообразно со средним значением опорных пикселов.

[0044] Возвращаясь к ФИГ.5, вид предсказания инициализируется на Этапе 501. Затем на Этапе 502 определяется, указывает ли вид предсказания на предсказание DC. Если указывает, то последовательность операций продвигается на Этап 503, где на Этапе 503 блок 402 предсказания генерируется вместе со средним значением опорных пикселов. Если вид предсказания обусловливает иное, блок 402 предсказания генерируется на Этапе 504 согласно связанной с видом предсказания команде или алгоритму, процесс которого будет подробно описываться ниже. После Этапа 503 или 504 последовательность операций продвигается на Этап 505, где определяется, сгенерированы ли блоки предсказания для всех видов предсказания. Если внутреннее предсказание запущено в соответствии со всеми видами предсказания, последовательность операций продвигается на Этап 506. Иначе на Этапе 507 вид предсказания увеличивается, и последовательность операций возвращается на Этап 502. На Этапе 506 каждый из генерируемых блоков предсказания сравнивается с целевым блоком 400 с целью определения оптимального вида предсказания, который минимизирует остаток 404 предсказания.

[0045] ФИГ.6 показывает функциональные модули видеодекодера 301. Эти функциональные модули реализуются процессором 101, исполняющим программное обеспечение 103 в памяти 102. Кодированный видеосигнал из кодера 201, в первую очередь, принимается энтропийным декодером 600, и подвергается энтропийному декодированию обратно в квантованные коэффициенты 601 преобразования. Квантованные коэффициенты 601 преобразования обратно квантуются и преобразовываются модулем 602 обратного квантования/преобразования, генерирующим остаток 603 предсказания. Модуль 604 внутреннего предсказания извещается о виде предсказания, который был выбран кодером 201. Согласно выбранному виду предсказания, модуль 604 внутреннего предсказания выполняет процесс внутреннего предсказания, сходный с процессом, выполняемым на этапах 502, 503 и 504 по ФИГ.5, с целью генерирования блока 605 предсказания с использованием граничных пикселов соседних блоков, ранее реконструированных и хранящихся в памяти 606 кадров. Блок 605 предсказания добавляется к остатку 603 предсказания для реконструкции блока 607 декодированного видеосигнала. Реконструированный блок 607 хранится в памяти 606 кадров с целью использования при предсказании следующего блока.

[0046] Ниже будет дано подробное описание процесса на Этапе 504, выполняемом модулями 401 и 604 внутреннего предсказания для генерирования блока предсказания в соответствии с одним из видов предсказания за исключением вида предсказания DC. H.264/AVC поддерживает предсказание Intra_4×4, предсказание Intra_8×8 и предсказание Intra_16×16. Предсказание Intra_4×4 обычно используется тогда, когда на картинке присутствуют существенные детали. Предсказание Intra_4×4 предсказывает по отдельности шестнадцать блоков luma размера 4×4 в пределах одного макроблока. Предсказание Intra_4×4 выполняется в соответствии с девятью видами предсказания, в том числе с одним видом предсказания DC. Направления пространственного предсказания, в соответствии с которыми выполняется предсказание Intra_4×4, показаны на ФИГ.7. Предсказание Intra_8×8 выполняется в соответствии с девятью видами предсказания, в том числе, с одним видом предсказания DC. Предсказание Intra_16×16 выполняется в соответствии с четырьмя видами предсказания, в том числе, с одним видом предсказания DC.

[0047] Недавние исследования показали, что увеличение количества направлений предсказания, или увеличение количества видов предсказания, в общем, вносит вклад в эффективность сжатия при кодировании видеосигнала. См., например, поданные в Joint Collaborative Team on Video Coding (JCT-VC), Документы №№JCT-VC A119 («Angular Intra Prediction») и JCT-VC A124 («Arbitrary Direction Intra»), которые ссылкой включаются в настоящее описание. Увеличение количества направлений предсказания ведет к увеличению количества угловых интервалов доступных направлений предсказания и, таким образом, к увеличению количества кандидатов для блоков предсказания. Увеличение количества кандидатов для блоков предсказания просто увеличивает шансы получить блок предсказания, почти аналогичный целевому блоку, который требуется кодировать. ФИГ.8 представляет собой диаграмму, показывающую направления предсказания, предложенные в Документе №JCT-VC A119. На ФИГ.8 опорные пикселы состоят из семнадцати (17) горизонтальных пикселов и семнадцати (17) вертикальных пикселов, где верхний левый пиксел является общим и для горизонтальной, и для вертикальной границ. Поэтому для генерирования пикселов предсказания в блоке размера 8×8 доступны 33 различных направления предсказания. JCT-VC A124 предлагает произвольное направленное внутреннее предсказание, в котором количество направлений предсказания корректируется в соответствии с размером блока, который требуется предсказать.

[0048] ФИГ.9 представляет собой схему последовательности операций, показывающую предложенный в JCT-VC A119 процесс генерирования блока предсказания по одному из направлений предсказания, показанных на ФИГ.8. В нижеследующем описании процесса некоторые алгоритмы упрощены для легкости разъяснения. Также описываемый процесс ограничен внутренним предсказанием по направлению предсказания, которое, главным образом, вертикально. Как показано в программном обеспечении, предусматриваемом в JCT-VC A119, внутреннее предсказание по направлению предсказания, которое, главным образом, горизонтально, может быть реализовано симметрично относительно процесса, показанного на ФИГ.9. Несмотря на то, что ФИГ.8 показывает блок размера 8×8, который требуется предсказать, процесс, показанный на ФИГ.9 может быть распространен на применение к различным количествам пикселов в различных конфигурациях. Например, блок, который требуется предсказать, может включать массив пикселов размера 4×4. Блок предсказания также может включать массив пикселов размера 8×8, массив пикселов размера 16×16 или массивы пикселов большего размера. Блок предсказания также могут составлять и другие конфигурации пикселов, в том числе, как квадратные, так и прямоугольные массивы.

[0049] На Этапе 900 по ФИГ.9 опорные пикселы на горизонтальной и вертикальной границах, которые, соответственно, лежат непосредственно слева и непосредственно над целевым блоком, считываются из соседних блоков, которые ранее уже были декодированы, реконструированы и сохранены в памяти кадров, такой как память 403 кадров, показанная на ФИГ.4. Пикселы с горизонтальной границы хранятся в области памяти, называемой «refН». Пикселы с вертикальной границы хранятся в другой области памяти, называемой «refV». Возвращаясь к ФИГ.8, опорные пикселы идентифицируются по их координатам в координатной системе, имеющей начало в положении верхнего левого пиксела в блоке размера 8×8. Таким образом, горизонтальные опорные пикселы имеют координаты, которые выражаются как p[x, y], где x=0, 1, …, 16, и у=0. Вертикальные опорные пикселы имеют координаты, выражаемые как p[x, y], где х=0, у=0, -1, -2, …, -16.

[0050] Предполагается, что горизонтальные граничные пикселы, хранящиеся в области памяти refН, идентифицируются по логическому адресу (x), где x=0, 1, …, 16, и вертикальные граничные пикселы идентифицируются по логическому адресу (у), где у=0, -1, -2, …, -16, где каждый пиксел хранится по адресу, имеющему номер координаты, из которой он считывается. По тому, как горизонтальные и вертикальные пикселы графически представлены на ФИГ.8, области памяти refH и refV могут рассматриваться как проходящие линейно и ортогонально друг к другу, и каждая из них имеет длину 2×size+1, где «size» - параметр, представляющий размер целевого блока. Предполагается, что size имеет значение, равное целочисленной степени числа 2, такое как 4, 8, 16... К пикселам в refH и refV может, необязательно, применяться фильтр прохождения нижних частот, в том виде как он описывается в Разделе 8.3.2.2.1 H.264/AVC.

[0051] На Этапе 901, счетчик, называемый «row», приравнивается нулю («0»). Счетчик row принимает значения от 0 до size и указывает позицию пиксела предсказания в строке в блоке предсказания. На Этапе 902 параметр, называемый «pos», вычисляется как ange×(row+1). angle представляет собой параметр, содержащий дробное число в представлении с фиксированной запятой. По существу, angle формируется с целочисленной частью и дробной частью, и дробная часть состоит из фиксированного количества двоичных разрядов, и angle представляет одно из направлений предсказания, показанных на ФИГ.8. Например, «angle =-size» идентифицирует направление предсказания, которое на ФИГ.8 проходит через координаты [x=0, y=0]. angle, имеющий положительное значение, идентифицирует направление предсказания, которое пересекается только с горизонтальной границей, в то время как параметр angle, имеющий отрицательное значение, идентифицирует направление предсказания, которое пересекается и с горизонтальной, и с вертикальной границами, и параметр angle варьируется в границах интервала, определяемого количеством направлений предсказания, которые требуется использовать. Как предложено в JCT-VC A124, количество направлений предсказания, которое требуется использовать, может определяться в соответствии с размером блока, который требуется предсказать. В нижеследующем описании предполагается, что angle принимает дробное значение, которое варьируется в интервале от «-size» до «size». Следует отметить, что границы интервала для angle могут определяться и другими значениями.

[0052] Как и angle, pos состоит из целочисленной части и дробной части, и его дробная часть состоит из фиксированного количества двоичных разрядов, которое равно логарифму по основанию 2 границы интервала angle, что можно выразить как log2_size согласно сделанному выше допущению о том, что граница интервала angle приравнена size, и pos идентифицирует положение пересечения между горизонтальной границей и направлением предсказания, которое представлено angle. Возвращаясь к Этапу 902, операция “pos>>log2_size” идентифицирует целое число в pos, которое сохраняется в параметр «int», и операция “pos&(size-1)” идентифицирует дробное число в pos, которое сохраняется в параметр «frac». Оператор «>>» вызывает арифметический сдвиг вправо двоичных разрядов. Оператор «&» вызывает поразрядную операцию «and».

[0053] На Этапе 903 определяется, имеет ли angle значение, больше или равное нулю («0»). Если angle имеет значение, большее или равное нулю, последовательность операций продолжается на Этапе 904. Иначе последовательность операций продолжается на Этапе 913. angle, больший или равный нулю, означает, что для получения пикселов предсказания в блоке предсказания можно основываться только на пикселах, расположенных на горизонтальной границе, или хранящихся в refH. С другой стороны, angle меньше нуля означает, что для получения опорных пикселов в блоке предсказания необходимы опорные пикселы, находящиеся на вертикальной границе, или в refV.

[0054] На Этапе 904 определяется, является ли ненулевым frac. Если frac является ненулевым, последовательность операций продолжается на Этапе 905. Если frac равен нулю, то последовательность операций продолжается на Этапе 906. Равенство нулю frac означает, что пиксел предсказания в блоке предсказания может копироваться непосредственно из опорного пиксела на горизонтальной границе. Ненулевой frac означает, что направление предсказания пересекается с горизонтальной границей в нецелочисленном положении, и что для получения пиксела предсказания в блоке предсказания необходима интерполяция более чем одного опорного пиксела.

[0055] На этапе 905 счетчик, называемый «col» приравнивается нулю («0»). Счетчик col используется для адресации опорного пиксела в refH. На Этапе 907 в refH выбираются два опорных пиксела, идентифицируемые как «int+col+1» и «int+col+2». Эти два опорных пиксела подвергаются взвешенному усреднению, или интерполируются, по frac, давая пиксел предсказания ν. Конкретнее, опорный пиксел в refH, идентифицированный как «int+col+1» умножается на «size-frac» и сохраняется в параметр а. Опорный пиксел в refH, идентифицированный как «int+col+2», умножается на «frac» и сохраняется в параметр b. Параметры а и b затем складываются и делятся на size, т.е. (size-frac)+frac. Деление на size можно заменить сдвигом вправо на log2_size. Полученный пиксел предсказания ν хранится в массиве областей памяти, называемом «pred», который представляет блок предсказания для целевого блока в соответствии с конкретным направлением предсказания. Каждая область памяти в pred определяется параметрами row и col. Затем на Этапе 908 col увеличивается на 1 и на Этапе 909 сравнивается с size. Этапы 907 и 908 повторяются до тех пор, пока col будет меньше size. Когда col становится равен size, последовательность операций продолжается на Этапе 920.

[0056] Если frac определен на Этапе 904 как нулевой, то на Этапе 906 счетчик col приравнивается нулю. На Этапе 910 пиксел предсказания ν копируется непосредственно из refH (int+col+1) и затем сохраняется в соответствующей области памяти в pred. Затем на Этапе 911 col увеличивается на 1 и на Этапе 912 сравнивается с size. Этапы 910 и 911 повторяются до тех пор, пока col будет меньше size. Когда col становится равен size, последовательность операций продолжается на Этапе 920.

[0057] Возвращаясь к Этапу 903, angle меньше нуля требует для получения пикселов предсказания в блоке предсказания опорных пикселов из refV. На Этапе 913 счетчик col приравнивается нулю. Затем на Этапе 914 определяется, является ли «int+col+1» меньше нуля, «int+col+1», больший или равный нулю, означает, что для получения пикселов предсказания в блоке предсказания можно по-прежнему основываться на опорных пикселах, хранящихся в refH, и последовательность операции продолжается на Этапе 915. Процесс, выполняемый на Этапе 915 сходен с процессом на Этапе 907, и его описание не будет здесь повторяться. Затем на Этапе 916 col увеличивается на 1 и на Этапе 917 сравнивается с size. Этапы 914, 915 и 916 повторяются до тех пор, пока col будет меньше size. Когда col становится равен size, последовательность операций продолжается на Этапе 920.

[0058] Если на Этапе 914 определяется, что «int+col+1» меньше нуля, то для получения пикселов предсказания в блоке предсказания необходимы пикселы, хранящиеся в refV. На Этапе 918 в первую очередь определяется положение пересечения между вертикальной границей и направлением предсказания. На Этапе 918 это положение представляется pos2. Следует отметить, что на Этапе 902 pos, т.е. положение пересечения между горизонтальной границей и направлением предсказания, определяется как «angle×(row+1)». При условии, что angle представляет соотношение горизонтальных и вертикальных разностей, для определения положения пересечения между вертикальной границей и направлением предсказания вместо «angle×(row+1)» вычисляется “ange-1×(col+1)”. Как допущено выше, angle находится в интервале от -size до size (-size<angle<size). Поэтому соотношение между angle и size имеет вид:

Тогда angle-1 определяется как:

или .

По существу, pos2 определяется на Этапе 918 квадратом параметра size, умноженным на col+1, а затем деленным на абсолютное значение angle следующим образом:

[0059] Как и pos, pos2 содержит дробное число в представлении с фиксированной запятой, образованное целочисленной частью и дробной частью. Дробная часть состоит из числа в двоичных разрядах, определяемого как log2_size. Целочисленная часть pos2 сохраняется в параметр int2, а дробная часть pos2 сохраняется в параметр frac2. На Этапе 919 в refV выбираются два опорных пиксела, идентифицируемых как «int2+row+1» и «int2+row+2». Эти два опорных пиксела подвергаются взвешенному усреднению, или интерполируются, по frac2, давая пиксел ν предсказания. Конкретнее, опорный пиксел из refV (int2+row+1) умножается на «size-frac2»и сохраняется в параметр а. Опорный пиксел из refV (int2+row+2) умножается на «frac2» и сохраняется в параметр b. Параметры а и b затем складываются и делятся на size или сдвигаются вправо на log2_size. Полученный пиксел ν предсказания хранится в соответствующей области памяти pred. Этапы 914, 918, 919 и 916 повторяются до тех пор, пока на Этапе 917 col не станет равен size.

[0060] На Этапе 920 row увеличивается на 1. Затем на Этапе 921 определяется, является ли row меньшим, чем size. Для получения пиксела предсказания в блоке предсказания, этапы, начиная с Этапа 902, повторяются до тех пор, пока row будет меньше size. Последовательность операций завершается тогда, когда row становится равен size на этапе 921.

[0061] Как упоминалось выше, увеличение количества кандидатов для блока предсказания вносит вклад в повышение эффективности кодирования, и, в то время, увеличение количества кандидатов для блока предсказания приводит к увеличению объема вычислительной работы. Поэтому, для того, чтобы увеличить количество кандидатов для блока предсказания с тем, чтобы повысить эффективность кодирования, процесс генерирования кандидата для блока предсказания необходимо пересмотреть так, чтобы дополнительно повысить эффективность процесса. При пересмотре процесса, показанного на ФИГ.9, можно обнаружить два узких в вычислительном отношении места. Первым узким в вычислительном отношении местом является операция сравнения и ветвления на Этапе 914, которая повторяется в цикле. Вторым узким в вычислительном отношении местом является операция деления на Этапе 918, которая также повторяется в цикле.

[0062] В настоящее время для эффективных вычислений доступна архитектура с одним потоком команд и несколькими потоками данных (SIMD). SIMD позволяет компьютерам с несколькими процессорными элементами выполнять одну и ту же операцию на нескольких данных одновременно. Однако типичные архитектуры SIMD не поддерживают реализацию деления и вычисления/ветвления в цикле и, поэтому, не могут использоваться для реализации процесса, показанного на ФИГ.9, по причине включения в цикл Этапов 914 и 918, несмотря на то, что циклы, начинающиеся на Этапах 907 и 910 достаточно надежны для реализации на SIMD. Поэтому целью настоящего изобретения является устранение узких в вычислительном отношении мест из процесса, показанного на ФИГ.9, и создание внутреннего предсказания с низкой сложностью, которое допускает реализацию типичными архитектурами SIMD параллельной обработки по всем направлениям предсказания, показанным на ФИГ.8.

[0063] ФИГ.10 представляет собой схему последовательности операций внутреннего предсказания с низкой сложностью согласно одному из вариантов осуществления настоящего изобретения, который сконструирован для замены процесса согласно ФИГ.9 при реализации процесса на Этапе 504 согласно ФИГ.5. На ФИГ.10 этапы процесса, выполняемые аналогично этапам согласно ФИГ.9, таким как Этапы 900, 901, 902, 904, 905, 906, 907, 908, 909, 910, 911, 912, 920 и 921, идентифицируются номерами этапов, аналогичными номерам, используемым на ФИГ.9. Описание этих общих этапов здесь повторяться не будет. Этапы 1000 и 1001 представляют собой этапы, специфические для процесса согласно ФИГ.10. При сопоставлении с процессом согласно ФИГ.9 становится очевидно, что процесс согласно ФИГ.10 исключает этап сравнения на Этапе 903 и все этапы, ответвляющиеся влево от Этапа 903, которые выполняются, когда angle меньше нуля, что, таким образом, исключает узкие в вычислительном отношении места Этапов 914 и 918.

[0064] На добавленных Этапах 1000 и 1001 определяется, является ли angle большим или равным -1. Если angle больше или равен -1, опорных пикселов, находящихся на горизонтальной границе, достаточно для генерирования пиксела предсказания в блоке предсказания, и опорные пикселы на вертикальной границе не являются необходимыми. С другой стороны, если angle меньше -1, то для генерирования пиксела предсказания в блоке предсказания необходимы опорные пикселы на вертикальной границе. На Этапе 1001 опорные пикселы, хранящиеся в refH, распространяются в отрицательном направлении с использованием, по меньшей мере, некоторых пикселов, хранящихся в refV. ФИГ.11А и 11В представляют собой схематические представления, показывающие расширение refH, выполняемое на Этапе 1001. На ФИГ.11А опорные пикселы 1102, хранящиеся в refH, исходят из горизонтальной границы, расположенной выше целевого блока 1101. Опорные пикселы 1103, хранящиеся в refV, исходят из вертикальной границы, расположенной слева от целевого блока 1101. Как показано на ФИГ.11В, после Этапа 1001 согласно ФИГ.10, некоторые из опорных пикселов в refV копируются в refH, и refH содержит расширенную часть 1104, проходящую в отрицательном направлении.

[0065] ФИГ.12 представляет собой схему последовательности операций, показывающую подробности процесса, выполняемого на Этапе 1001. На Этапе 1201 счетчику col присваивается значение -1. Счетчик col используется для идентификации адреса расширенной части refH. На Этапе 1202 опорный пиксел в refV, предназначенный для копирования в расширенную часть refH, идентифицируется как:

Деление в приведенном выше уравнении является целочисленным делением, и уравнение дает целое число. Данное уравнение выполняет функцию, аналогичную процессу на Этапе 918, показанном на ФИГ.9. На Этапе 918 целочисленное значение pos2 вычисляется как:

Следует учитывать, что сдвиг вправо на log2_size эквивалентен делению на size.

[0066] На Этапе 1203 счетчик col уменьшается на 1. Затем на Этапе 1204 определяется, является ли col равным angle. Если col не равен angle, последовательность операций возвращается на Этап 1202. Этапы 1202 и 1203 повторяются до тех пор, пока col не станет равен angle. Таким образом, опорные пикселы считываются из refV в возрастающем порядке, или снизу вверх по вертикальной границе, и копируются в refH также в убывающем порядке, или слева направо по горизонтальной границе. Кроме того, не все опорные пикселы в refV копируются в refH. Из refV в refH копируются только те опорные пикселы, которые расположены в интервале от верха до пересечения с направлением предсказания.

[0067] Вернемся к ФИГ.10, этапы процесса, начиная с Этапа 902, скопированы с ФИГ.9, и они включают этапы генерирования пикселов предсказания, ответвляющиеся вправо от этапа сравнения на Этапе 903 согласно ФИГ.9. Однако следует отметить, что этапы по ФИГ.10, предназначенные для генерирования пикселов предсказания, используют расширенную refH (сумму частей 1102+1104 на ФИГ.11В), в то время как соответствующие этапы на ФИГ.9 используют оригинальную (часть 1102 на ФИГ.10А). Поскольку refH расширена в отрицательном направлении, отдельная операция внутреннего предсказания, сконструированная специально для использования опорных пикселов, хранящихся в refV, такая как операция, ответвляющаяся влево от Этапа 903 на ФИГ.9, не требуется вне зависимости от знака angle.

[0068] ФИГ.13 представляет собой схему последовательности операций, показывающую другой вариант осуществления процесса, предназначенный для расширения refH с использованием опорных пикселов в refV. Процесс, показанные на ФИГ.11 и 12, исключает этапы с узкими местами Этапов 914 и 918, показанных на ФИГ.9, и, таким образом, как ожидается, будет повышать эффективность процесса внутреннего предсказания. Процесс, показанные на ФИГ.13, исключает операцию деления, выполняемую на Этапе 1202 согласно ФИГ.12, из цикла копирования опорных пикселов из refV в refH. Исключая операцию деления из цикла, процесс, показанный на ФИГ.13, как ожидается, будет дополнительно увеличивать эффективность процесса внутреннего предсказания.

[0069] Процесс, показанный на ФИГ.13, замещает Этап 1202 согласно ФИГ.12 Этапами 1301 и 1302. Этап 1302 находится в цикле для копирования опорных пикселов из refV в refH, в то время как Этап 1301 находится за пределами цикла. Этап 1301 вводит новый параметр, называемый «InvAngle». InvAngle определяется как:

Умножение на 256 эквивалентно сдвигу влево на 8, и оно гарантирует то, что каждый бит в результате действия «size/angle» обеспечивает вычисление идентификатора опорного пиксела в refV. На Этапе 1302 адрес опорного пиксела в refV, предназначенного для копирования в расширенную часть refH, идентифицируется как:

Для отмены операции сдвига влево, выполняемой на Этапе 1301, результат «col×InvAngle» сдвигается вправо на 8. Следует отметить, что функция операции сдвига вправо на Этапе 1302 заключается в округлении результата «col×InvAngle». Для округления до ближайшего целого числа перед выполнением операции сдвига вправо для результата «col×InvAngle» может выполняться округляющее смещение на 128. Следует отметить, что число «256» - это всего лишь пример, и Этап 1301 может принимать другое число сдвига, предпочтительно, целочисленную степень числа 2, до тех пор, пока число будет достаточно велико для сохранения всех результирующих битов операции «size/angle». Например, числом на Этапе 1301 может быть 64 вместо 256, а числом сдвига вправо на Этапе 1302 может быть 6 вместо 8. Если принимается число 64, округляющим смещением должно быть число 32.

[0070] Для дополнительного уменьшения объема вычислительной работы вычисление, выполняемое на Этапе 1301, может замещаться операцией нахождения. Иными словами, подготавливается справочная таблица, в которой хранятся значения InvAngle в зависимости от значений angle. Представленная ниже Таблица 1 представляет собой пример таблицы для нахождения на Этапе 1301:

angle 4 5 6 7 8
lnvAngle 512 410 341 293 256

Предполагается, что в приведенной выше таблице size равен 8, и angle принимает целочисленные значения от 4 до 8. Следует, однако, отметить, что size не ограничивается числом 8 и может принимать и другое значение, такое как 4 или 16. Кроме того, как определено выше, angle может быть дробным числом в представлении с фиксированной запятой.

[0071] Когда на Этапе 1202 согласно ФИГ.12 или на Этапе 1302 согласно ФИГ.13 опорный пиксел копируется из refV в refH, опорный пиксел может пропускаться через фильтр прохождения нижних частот с целью снижения возможных искажений в блоке предсказания. Интенсивность фильтра прохождения нижних частот может изменяться в соответствии со значением angle. Например, когда angle равен -size, может применятся слабая фильтрация прохождения нижних частот, а когда angle равен -2, может применяться сильная фильтрация прохождения нижних частот.

[0072] Как разъяснялось выше, в refH копируются не все опорные пикселы из refV. Поскольку копируются не все опорные пикселы из refV, некоторая часть информации при копировании пикселов теряется. Для смягчения потери информации, разрешение опорных пикселов в refH и refV может быть удвоено так, чтобы refH и refV cодержали не только пикселы из ранее кодированных и реконструированных блоков, но также один пиксел между двумя смежными реконструированными пикселами, который генерируется путем интерполяции двух смежных пикселов. Два смежных пиксела могут просто усредняться для генерирования интерполированного пиксела. Процесс интерполяции может выполняться при считывании опорных пикселов на Этапе 900 согласно ФИГ.9. Когда разрешение пикселов в refH и refV удваивается, появляется необходимость в масштабировании идентификаций адресов опорных пикселов, хранящихся в refH и refV, таких как идентификации, выполняемые на Этапах 907, 910, 915 и 919 на ФИГ.9 и на Этапе 1001 на ФИГ.10. Например, «int+col+1», выполняемую на Этапах 907, 910 и 915, необходимо заменить на «int+2хcol+2». Идентификацию «int+col+2», выполняемую на Этапах 907, 910, 915, необходимо заменить на «int+2×col+3». Идентификации «int2+row+1» и «int2+row+2», выполняемые на Этапе 919, необходимо заменить, соответственно, на «int2+row+2» и «int2+row+3».

[0073] В другом варианте осуществления изобретения процесс на Этапе 1202 согласно ФИГ.12 может просто заменяться на «refH[col]←refV[-col]» с целью дальнейшего упрощения процесса копирования. Несмотря на ухудшение качества предсказания, этот вариант осуществления изобретения обеспечивает операции внутреннего предсказания самую низкую сложность.

[0074] ФИГ.11В показывает расширенную часть 1104, добавленную к refH. Расширенная часть 1104 не нуждается в том, чтобы она формировалась опорными пикселами из refV. Расширенная часть 1104 может формироваться пикселами из области ранее реконструированного блока, который пространственно соответствует положению расширенной части 1104. Поскольку расширение происходит в отрицательном направлении, расширенная refH (части 1102 и 1104) на ФИГ.11В находится в интервале от -size+1 до 2×size. Масштаб интервала расширенной refH может изменяться до интервала от 0 до 3×size-1 путем добавления соответствующего смещения при адресации опорных пикселов в расширенной refH. То же остается в силе и при изменении масштаба интервала для refV.

[0075] В другом варианте осуществления изобретения граница интервала angle может выбираться свободно. В описанных выше вариантах осуществления изобретения предполагается, что angle принимает значения в границах интервала от -size до size (-size<angle<size). Иными словами, в описанных выше вариантах осуществления изобретения границы интервала angle определяются размером целевого блока. Следует отметить, что границы интервала angle могут определяться независимо от размера целевого блока, хотя по-прежнему остается предпочтительным, чтобы граница интервала определялась целочисленной степенью числа 2 так, чтобы log2_rangelimit было положительным целым числом, и уравнение «rangelimit=1<<log2_rangelimit» оставалось в силе. Выбирая подходящее большое число для rangelimit, можно установить большое количество направлений предсказания и представить их значениями angle с достаточно широкими угловыми интервалами.

[0076] Если граница интервала angle определяется независимо от размера целевого блока, то size, присутствующий на ФИГ.9 и 10, необходимо заменить rangelimit, и log2_size необходимо заменить на log2_rangelimit, за исключением Этапов 909, 912, 917 и 921. Сравнение «angle>-1», выполняемое на Этапе 1000 согласно ФИГ.10 также необходимо заменить на «angle×size/rangelimit>-1» или на «angle×size>-rangelimit». Кроме того, size, присутствующий на Этапах 1202 и 1301 на ФИГ.12 и 13, необходимо заменить на rangelimit, и сравнение «col=angle?», выполняемое на Этапе 1204, необходимо заменить на «col=angle×size/rangelimit?».

[0077] Если в качестве границы интервала параметра angle вводится параметр rangelimit, Таблицу 1 (представленную выше) можно изменить следующим образом:

Angle* 13 17 21 26 32
InvAngle 630 482 390 315 256

В Таблице 2 rangelimit присвоено значение 32. Angle* равен целочисленному приближению «rangelimit×tan(π/4×angle/8)», где angle = 4, 5, 6, 7 и 8. InvAngle равен 256×rangelimit/angle*. Все значения в Таблице 2 являются целыми числами, которые получены путем округления в большую сторону. Вместо округления в большую сторону числа могут округляться в меньшую сторону. В приведенной ниже Таблице 3 InvAngle равен 32×rangelimit/angle*. Поскольку вместо «256» используется «32», точность предсказания неизбежно ниже, чем точность в Таблице 2.

Angle* 13 17 21 26 32
InvAngle 78 60 48 39 32

[0078] ФИГ.14 представляет собой схему последовательности операций, показывающую другой вариант осуществления, который дополнительно упрощает процесс, показанный на ФИГ.10. Показанный на ФИГ.10 процесс копирования опорных пикселов из refV в refH выполняется перед вхождением последовательности операций в основной цикл предсказания, где процесс копирования, показанный на ФИГ.14, выполняется в основном цикле предсказания. Также процесс, показанный на ФИГ.14, исключает переменную InvAngle. Этапы 900, 902 и 921, показанные на ФИГ.14, являются этапами из соответствующих этапов согласно ФИГ.10.

[0079] На Этапе 1401 счетчик lastlnt инициализируется со значением -1. Счетчик lastlnt представляет индекс последнего пиксела, который был добавлен к refH. На Этапе 902 pos вычисляется как angle×(row+1). Как разъяснено выше, pos идентифицирует положение пересечения между границами и направлением предсказания, которое представлено angle. В контексте ФИГ.9, Этап 902 выводит pos, который идентифицирует положение пересечения между горизонтальной границей и направлением предсказания, представленным angle. В дальнейшем на Этапе 902 целочисленная часть в pos сохраняется в int, а дробная часть в pos сохраняется в параметр «frac». На Этапе 1402 определяется, является ли int меньшим, чем lastlnt. Если int меньше, чем lastlnt, то опорный пиксел в refV, идентифицируемый row, копируется в refН по адресу, идентифицируемому как «int+1». Этап 1404 состоит из этапов 904, 905, 906, 907, 908, 909, 910, 911 и 912, показанных на ФИГ.9 и 10, описание которых здесь повторяться не будет. На Этапе 1405 int копируется в lastlnt. Операция копирования int в lastlnt может выполняться на Этапе 1403 вместо Этапа 1405.

[0080] Операция копирования на Этапе 1403 приводит к копированию того же пиксела, который копируется на Этапах 1202 и 1302, причем на этих этапах используется округление в меньшую сторону. Этап 1403 может модифицироваться для округления в сторону ближайшего целого числа путем условного использования на Этапе 1403 «row+1» вместо «row», когда дробное положение frac, вычисленное на Этапе 902, больше чем offset, который определяется как rangelimit+(angle>>1). Следует отметить, что angle равен -ve, а параметр frac равен +ve. Использование «row+1» приводит к округлению в большую сторону. Для совершения условного приращения row на 1, процесс, выполняемый на Этапе 1403, заменяется на refH[int+1]←refV[row-((offset-frac)>>31)] в предположении, что в 32-битной арифметике сдвиг вправо «offset-frac» в результате приводит к -1, когда frac больше, чем offset, и иначе приводит к 0. Таким образом, идентификатор адреса «row-((offset-frac)>>31)» становится равен «row+1», когда frac становится больше, чем offset, и иначе становится «row». Если offset приравнивается rangelimit, то «offset-frac» всегда будет положительным, и поэтому округление происходить не будет.

[0081] Ниже приводится исходный код, разработанный на языке программирования C++ и реализующий процесс, показанный на ФИГ.14. Исходный код модифицирован из функции TComPrediction::xPredIntraAng, находящейся в файле TComPrediction.cpp, который составляет часть программного обеспечения TMuC 0.7, разработанного JCT-VC, которое доступно по адресу http://hevc.kw.bbc.co.uk/svn/jctvc.al24/tags/0.7.

// Функция для получения упрощенных угловых внутренних предсказаний

// Отобразить индекс вида на главное направление предсказания и угол

// Задать сдвиги разрядов и масштабировать угловой параметр до size2

// Выполнить DC-предсказание

// Выполнить угловые предсказания

// Допускает округление до ближайшей боковой привязки

// нет округления

// остальное копируется позже на этапе 1403, как и когда потребуется

// этап 1403

// этап 1404

// Выполнить линейную фильтрацию

// Скопировать только целочисленные выборочные значения

// Перевернуть блок, если он находится в горизонтальном виде

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

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

получение значения параметра обратного угла, соответствующего углу внутреннего предсказания, из справочной таблицы, в которой перечислены значения параметров обратного угла в зависимости от, соответственно, множества различных углов внутреннего предсказания;

идентифицирование по меньшей мере некоторых вертикальных граничных пикселей, расположенных в вертикальном массиве, в положениях, которые являются функцией умножения между полученным значением параметра обратного угла и значением идентификатора горизонтального положения, который представляет собой переменную, представляющую положения в расширении расширенного горизонтального массива;

добавление идентифицированных по меньшей мере некоторых из вертикальных граничных пикселей в качестве горизонтальных граничных пикселей к расширению расширенного горизонтального массива в положении, идентифицированном идентификатором горизонтального положения; и

использование только горизонтальных граничных пикселей в расширенном горизонтальном массиве, без использования вертикальных граничных пикселей, для получения блока предсказания целевого блока, и

при этом идентификатор горизонтального положения принимает значения от -1 до (size × угол внутреннего предсказания)/rangelimit, уменьшенного на 1, где size представляет собой размер целевого блока, который должен быть предсказан, и rangelimit представляет границу интервала для множества углов внутреннего предсказания, которая задается постоянной, равной 32.

2. Способ по п. 1, в котором справочная таблица содержит, по меньшей мере, следующие параметры обратного угла в зависимости от углов внутреннего предсказания angle, причем angle* равен целочисленному приближению «rangelimit×tan(π/4×angle/8)».

Angle* 13 17 21 26 32
Параметры Обратного Угла InvAngle 630 482 390 315 256

3. Способ по п. 1, в котором значения параметров обратного угла, указанные в справочной таблице, вычисляются из (N × rangelimit)/angle*,

где rangelimit представляет собой границу интервала для множества углов внутреннего предсказания, которая задается постоянной, равной 32, angle* равен целочисленному приближению «rangelimit×tan(π/4×angle/8)», angle представляет собой один из множества различных углов внутреннего предсказания, а N принимает значение 256.

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

получение значения параметра обратного угла, соответствующего углу внутреннего предсказания, из справочной таблицы, в которой перечислены значения параметров обратного угла в зависимости от, соответственно, множества различных углов внутреннего предсказания;

идентифицирование по меньшей мере некоторых вертикальных граничных пикселей, расположенных в вертикальном массиве, в положениях, которые являются функцией умножения между полученным значением параметра обратного угла и значением идентификатора горизонтального положения, который представляет собой переменную, представляющую положения в расширении расширенного горизонтального массива;

добавление идентифицированных по меньшей мере некоторых из вертикальных граничных пикселей в качестве горизонтальных граничных пикселей к расширению расширенного горизонтального массива в положении, идентифицированном идентификатором горизонтального положения; и

использование только горизонтальных граничных пикселей в расширенном горизонтальном массиве, без использования вертикальных граничных пикселей, для получения блока предсказания целевого блока, и

при этом идентификатор горизонтального положения принимает значения от -1 до (size × угол внутреннего предсказания)/rangelimit, уменьшенного на 1, где size представляет собой размер целевого блока, который должен быть предсказан, и rangelimit представляет границу интервала для множества углов внутреннего предсказания, которая задается постоянной, равной 32.

5. Способ по п. 4, в котором справочная таблица содержит, по меньшей мере, следующие параметры обратного угла в зависимости от углов внутреннего предсказания angle, причем angle* равен целочисленному приближению «rangelimit×tan(π/4×angle/8)».

Angle* 13 17 21 26 32
Параметры Обратного Угла InvAngle 630 482 390 315 256

6. Способ по п. 4, в котором значения параметров обратного угла, указанные в справочной таблице, вычисляются из (N × rangelimit)/angle*,

где rangelimit представляет собой границу интервала для множества углов внутреннего предсказания, которая задается постоянной, равной 32, angle* равен целочисленному приближению «rangelimit×tan(π/4×angle/8)», angle представляет собой один из множества различных углов внутреннего предсказания, а N принимает значение 256.

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

получения значения параметра обратного угла, соответствующего углу внутреннего предсказания, из справочной таблицы, в которой перечислены значения параметров обратного угла в зависимости от, соответственно, множества различных углов внутреннего предсказания;

идентифицирования по меньшей мере некоторых вертикальных граничных пикселей, расположенных в вертикальном массиве, в положениях, которые являются функцией умножения между полученным значением параметра обратного угла и значением идентификатора горизонтального положения, который представляет собой переменную, представляющую положения в расширении расширенного горизонтального массива;

добавления идентифицированных по меньшей мере некоторых из вертикальных граничных пикселей в качестве горизонтальных граничных пикселей к расширению расширенного горизонтального массива в положении, идентифицированном идентификатором горизонтального положения; и

использования только горизонтальных граничных пикселей в расширенном горизонтальном массиве, без использования вертикальных граничных пикселей, для получения блока предсказания целевого блока, и

при этом идентификатор горизонтального положения принимает значения от -1 до (size × угол внутреннего предсказания)/rangelimit, уменьшенного на 1, где size представляет собой размер целевого блока, который должен быть предсказан, и rangelimit представляет границу интервала для множества углов внутреннего предсказания, которая задается постоянной, равной 32.

8. Видеокодер по п. 7, в котором справочная таблица содержит, по меньшей мере, следующие параметры обратного угла в зависимости от углов внутреннего предсказания angle, причем angle* равен целочисленному приближению «rangelimit×tan(π/4×angle/8)».

Angle* 13 17 21 26 32
Параметры Обратного Угла InvAngle 630 482 390 315 256

9. Видеокодер по п.7, в котором значения параметров обратного угла, указанные в справочной таблице, вычисляются из (N × rangelimit)/angle*,

где rangelimit представляет собой границу интервала для множества углов внутреннего предсказания, которая задается постоянной, равной 32, angle* равен целочисленному приближению «rangelimit×tan(π/4×angle/8)», angle представляет собой один из множества различных углов внутреннего предсказания, а N принимает значение 256.

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

получения значения параметра обратного угла, соответствующего углу внутреннего предсказания, из справочной таблицы, в которой перечислены значения параметров обратного угла в зависимости от, соответственно, множества различных углов внутреннего предсказания;

идентифицирования по меньшей мере некоторых вертикальных граничных пикселей, расположенных в вертикальном массиве, в положениях, которые являются функцией умножения между полученным значением параметра обратного угла и значением идентификатора горизонтального положения, который представляет собой переменную, представляющую положения в расширении расширенного горизонтального массива;

добавления идентифицированных по меньшей мере некоторых из вертикальных пикселей в качестве горизонтальных граничных пикселей к расширению расширенного горизонтального массива в положении, идентифицированном идентификатором горизонтального положения; и

использования только горизонтальных граничных пикселей в расширенном горизонтальном массиве, без использования вертикальных граничных пикселей, для получения блока предсказания целевого блока, и

при этом идентификатор горизонтального положения принимает значения от -1 до (size × угол внутреннего предсказания)/rangelimit, уменьшенного на 1, где size представляет собой размер целевого блока, который должен быть предсказан, и rangelimit представляет границу интервала для множества углов внутреннего предсказания, которая задается постоянной, равной 32.

11. Видеодекодер по п. 10, в котором справочная таблица содержит, по меньшей мере, следующие параметры обратного угла в зависимости от углов внутреннего предсказания angle, причем angle* равен целочисленному приближению «rangelimit×tan(π/4×angle/8)».

Angle* 13 17 21 26 32
Параметры Обратного Угла InvAngle 630 482 390 315 256

12. Видеодекодер по п. 10, в котором значения параметров обратного угла, указанные в справочной таблице, вычисляются из (N × rangelimit)/angle*,

где rangelimit представляет собой границу интервала для множества углов внутреннего предсказания, которая задается постоянной, равной 32, angle* равен целочисленному приближению «rangelimit×tan(π/4×angle/8)», angle представляет собой один из множества различных углов внутреннего предсказания, а N принимает значение 256.



 

Похожие патенты:

Изобретение относится к вычислительной технике. Технический результат заключается в уменьшении различия между первоначальными выборками и реконструированными выборками.

Изобретение относится к передающему/приемному устройству, которое может повысить доступность услуг электронной программной информации (ESG) для людей с нарушением зрения.

Изобретение относится к области передачи данных, в частности, для предоставления видеосодержимого, содержащего музыку или другой звук, которые могут восприниматься отдельно от визуального содержимого видео.

Изобретение относится к кодированию изображений с расширенным динамическим диапазоном. Технический результат - повышение качества кодирования изображений.

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

Изобретение относится к вычислительной технике. Технический результат заключается в повышении эффективности кодирования с использованием режима палитры.

Изобретение относится к способу декодирования изображений. Технический результат изобретения заключается в повышении скорости декодирования.

Изобретение относится к вычислительной технике. Технический результат заключается в уменьшении различия между первоначальными выборками и реконструированными выборками.

Изобретение относится к вычислительной технике. Технический результат заключается в уменьшении различия между первоначальными выборками и реконструированными выборками.

Изобретение относится к вычислительной технике. Технический результат заключается в уменьшении различия между первоначальными выборками и реконструированными выборками.

Изобретение относится к вычислительной технике. Технический результат заключается в повышении эффективности декодирования. Устройство декодирования изображений с предсказанием содержит электрическую схему, выполненную с возможностью: выводить информацию о режиме посредством обработки функции, включающей в себя прибавление к или вычитание целого числа из информации о режиме, относящейся к способу внутрикадрового предсказания, соответствующему одной из множества смежных областей; выбирать способ предсказания для целевой области для формирования сигнала внутрикадрового предсказания на основании выведенной информации о режиме и идентифицирующей информации о режиме; формировать сигнал внутрикадрового предсказания на основании выбранного способа предсказания; извлекать разностный сигнал для восстановления повторно сформированного разностного сигнала; и восстанавливать сигнал пикселей целевой области посредством объединения сигнала внутрикадрового предсказания и восстановленного повторно сформированного разностного сигнала. 2 н. и 3 з.п. ф-лы, 14 ил.

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

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

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

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

Изобретение относится к устройству передачи видеоданных, полученных путём применения заранее заданной функции оптоэлектрического преобразования к введённым видеоданным. Техническим результатом является обеспечение достоверности уровней пиковой яркости мониторов (клиентских (СЕ) мониторов). Указанный технический результат достигается тем, что передаваемые видеоданные получаются путём применения заданной функции оптоэлектрического преобразования к входным видеоданным. Передаваемые видеоданные передаются вместе с информацией о допустимом диапазоне перевода яркости для заданного участка экрана. Например, передающий блок передаёт видеопоток, полученный путём кодирования передаваемых видеоданных, одновременно добавляя информацию о допустимом диапазоне перевода яркости в слой видеопотока. Сторона приёма получает видеоданные отображения путём применения функции электрооптического преобразования к передаваемым видеоданным и выполнения процесса перевода яркости на каждом из заданных участков независимо в соответствии с информацией о допустимом диапазоне перевода яркости. 4 н. и 14 з.п. ф-лы, 16 ил.

Изобретение относится к кодированию информации о движении. Техническим результатом является уменьшение размера информации о движении и повышение эффективности кодирования. Технический результат достигается тем, что блок (162) создания списка кандидатов на информацию о движении со слиянием генерирует список кандидатов на информацию о движении со слиянием с использованием кандидатов на информацию о движении со слиянием в пространстве и во времени. Блок (165) добавления вторых кандидатов на информацию о движении со слиянием генерирует нового кандидата на информацию о движении со слиянием, который в случае, когда указанный опорный индекс указывает на доступный опорный кадр, включает в себя этот опорный индекс, а в случае, когда указанный опорный индекс не указывает на доступный опорный кадр, включает в себя заданный опорный индекс вместе с вектором движения, имеющим предварительно заданные размер и направление, и добавляет этого нового кандидата на информацию о движении со слиянием в список кандидатов на информацию о движении со слиянием. Блок (141) выбора информации о движении со слиянием выбирает одного кандидата на информацию о движении со слиянием из списка кандидатов на информацию о движении со слиянием с добавленным новым кандидатом на информацию о движении со слиянием и извлекает выбранного кандидата на информацию о движении со слиянием в качестве информации о движении блока предсказания, являющегося объектом кодирования. 3 н.п. ф-лы, 50 ил.

Изобретение относится к способам скрытой маркировки потока данных цифрового телевизионного сигнала (встраиванию цифровых "водяных знаков" (ЦВЗ)). Техническим результатом является улучшение целостности передаваемого контента, повышение скрытности ЦВЗ, упрощение процесса вставки ЦВЗ. Предложен способ скрытой маркировки потока данных цифрового телевизионного сигнала, заключающийся в том, что формируют совокупность макроблоков для замены; записывают сформированные для замены макроблоки в память; принимают транспортный поток данных цифрового вещательного телевидения; записывают часть транспортного потока в память; находят в записанной части транспортного потока пакетированный элементарный поток (ПЭП); проводят обработку ПЭП, выполняя следующие действия: (А) выполняют поиск заголовка ПЭП; определяют начало ПЭП; определяют по данным структуры уровня сетевой абстракции наличие в составе ПЭП В-псевдокадров; если не найдено ни одного В-псевдокадра, то переходят к этапу (А); (В) декодируют очередной В-псевдокадр на слайсы; определяют пригодность очередного слайса для обработки, выполняя следующие действия: декодируют слайсы на макроблоки; определяют для очередного макроблока выполнение условий: макроблок не является опорным для других макроблоков в других слайсах и/или кадрах; макроблок не содержит векторов движения; если условия выполнены, то помечают найденный макроблок; если очередной В-псевдокадр последний из найденных, то переходят к этапу (А); если не найдено ни одного пригодного макроблока, то переходят к этапу (В); записывают слайс, содержащий найденный макроблок, в память; выбирают из заранее сформированных макроблоков подходящий макроблок для замены найденного макроблока; записывают в памяти подходящий макроблок вместо найденного макроблока; восстанавливают исходный В-псевдокадр, содержащий замененный макроблок; вычисляют контрольную сумму измененного В-псевдокадра; вставляют контрольную сумму в транспортный поток на более высокий уровень, чем тот, где заменялся макроблок; вставляют измененный В-псевдокадр в ПЭП; вставляют ПЭП из памяти в записанную часть транспортного потока; передают часть транспортного потока из памяти, в сети распространения ТВ сигналов.

Изобретение относится к области кодирования/декодирования изображений. Технический результат – обеспечение улучшенного кодирования/декодирования изображения с широким динамическим диапазоном. Способ кодирования изображения с широким динамическим диапазоном содержит этапы, на которых: преобразуют изображение с широким динамическим диапазоном в изображение с более узким динамическим диапазоном яркости посредством применения: a) нормализации изображения с широким динамическим диапазоном к масштабу оси сигнала яркости, равной [0,1], обеспечивая нормализованное изображение с широким динамическим диапазоном с нормализованными цветами, имеющими нормализованные яркости, b) вычисления логарифмической гамма-функции по нормализованным яркостям, обеспечивая сигналы яркости, и c) применения произвольной функции тонального отображения, отображающей сигналы яркости в выходные сигналы яркости изображения с более узким динамическим диапазоном; выводят в сигнале изображения кодификацию цветов пикселей изображения с широким динамическим диапазоном и выводят в сигнале изображения в метаданных значения, кодирующие форму функции произвольной функции тонального отображения. 4 н. и 4 з.п. ф-лы, 6 ил.

Способ декодирования относится к области обработки цифрового сигнала, в частности к области сжатия видеосигнала с использованием компенсации движения для снижения пространственных и временных избыточностей в видеопотоках. Битовый видеопоток последовательность цифровых изображений, закодированных с использованием интерпредсказаний. Технический результат - повышение эффективности декодирования в случае повреждения битового потока за счет потерь при передаче. Способ декодирования заключается в генерировании набора предикторов вектора движения, включающий один предиктор вектора движения из одного или более потенциальных предикторов вектора движения для включения в генерируемый набор, причем каждый потенциальный предиктор вектора движения относится к участку изображения, имеющему заранее определенное пространственное соотношение с декодируемым участком изображения, при этом потенциальный предиктор вектора движения содержит один или более дубликатов. 6 н. и 26 з.п. ф-лы, 8 ил.
Наверх