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

Иллюстрации

Показать все

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

Реферат

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

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

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

[2] Для кодирования изображения в соответствии со стандартом сжатия изображения, таким как стандарт сжатия движущихся видеоизображений (MPEG)-1, MPEG-2, MPEG-4 или стандарт усовершенствованного кодирования видеосигнала (AVC) H.264/MPEG-4, изображение разбивается на макроблоки. После кодирования каждого из макроблоков с использованием любого из режимов кодирования с межкадровым предсказанием и внутрикадровым предсказанием, соответствующий режим кодирования выбирается в соответствии со скоростью, требуемой для кодирования макроблока, а также в соответствии с допустимым искажением между исходным макроблоком и восстановленным макроблоком, после чего макроблок кодируется с использованием выбранного режима кодирования.

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

Раскрытие изобретения

Техническая проблема

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

Решение проблемы

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

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

Выгодные эффекты изобретения

[7] В связи с тем, что внутрикадровое предсказание выполняется в различных направлениях, может быть повышена эффективность сжатия изображения.

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

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

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

[10] Фиг.2 изображает таблицу, иллюстрирующую множество режимов внутрикадрового предсказания, согласно размеру текущего блока, в соответствии с иллюстративным вариантом осуществления;

[11] Фиг.3 изображает таблицу для разъяснения режимов внутрикадрового предсказания, которые применяются к блоку, имеющему предварительно определенный размер, в соответствии с иллюстративным вариантом осуществления;

[12] Фиг.4 изображает графическое представление, иллюстрирующее направления режимов внутрикадрового предсказания, которые представлены на Фиг.3, в соответствии с иллюстративным вариантом осуществления;

[13] Фиг.5 изображает графическое представление для разъяснения способа внутрикадрового предсказания, выполняемого применительно к блоку, который иллюстрируется на Фиг.3, в соответствии с иллюстративным вариантом осуществления;

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

[15] Фиг.7 изображает иллюстративное графическое представление для разъяснения режимов внутрикадрового предсказания, имеющих различные направления, в соответствии с иллюстративным вариантом осуществления;

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

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

[18] Фиг.10 изображает иллюстративное графическое представление для разъяснения режима двунаправленного предсказания, в соответствии с иллюстративным вариантом осуществления;

[19] Фиг.11 изображает графическое представление для разъяснения процесса формирования значения предсказания режима внутрикадрового предсказания текущего блока, в соответствии с иллюстративным вариантом осуществления;

[20] Фиг.12 и 13 изображают иллюстративные графические представления для разъяснения процесса преобразования для унификации режимов внутрикадрового предсказания блоков, имеющих различные размеры, в соответствии с иллюстративными вариантами осуществления;

[21] Фиг.14 изображает иллюстративное графическое представление для разъяснения процесса преобразования режимов внутрикадрового предсказания соседнего блока в один из типичных режимов внутрикадрового предсказания, в соответствии с иллюстративным вариантом осуществления;

[22] Фиг.15 изображает графическое представление для разъяснения взаимосвязи между текущим пикселом и соседними пикселами, расположенными на продолженной линии, имеющей направление (dx, dy), в соответствии с иллюстративным вариантом осуществления;

[23] Фиг.16 изображает графическое представление для разъяснения изменения в соседнем пикселе, расположенном на продолженной линии, имеющей направление (dx, dy), согласно позиции текущего пиксела, в соответствии с иллюстративным вариантом осуществления;

[24] Фиг.17 и 18 изображают графические представления для разъяснения способа определения направления режима внутрикадрового предсказания, в соответствии с иллюстративными вариантами осуществления;

[25] Фиг.19 изображает графическое представление алгоритма, иллюстрирующее способ кодирования изображения с использованием внутрикадрового предсказания, в соответствии с иллюстративным вариантом осуществления;

[26] Фиг.20 изображает блок-схему, иллюстрирующую устройство декодирования изображения, в соответствии с иллюстративным вариантом осуществления; и

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

Предпочтительный вариант осуществления изобретения

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

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

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

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

Осуществление изобретения

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

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

[34] Как изображено на Фиг.1, устройство 100 включает в себя блок 110 внутрикадрового предсказания, блок 120 оценки движения, блок 125 компенсации движения, блок 130 преобразования частоты, блок 140 квантования, энтропийный кодер 150, блок 160 обратного квантования, блок 170 обратного преобразования частоты, блок 180 деблокинга и блок 190 пространственной фильтрации.

[35] Блок 120 оценки движения и блок 125 компенсации движения выполняют межкадровое предсказание, которое делит Текущий кадр 105 текущего изображения на блоки, каждый из которых имеет предварительно определенный размер, а также осуществляют поиск значения предсказания каждого из блоков опорного кадра изображения.

[36] Блок 110 внутрикадрового предсказания выполняет внутрикадровое предсказание, которое осуществляет поиск значения предсказания текущего блока посредством использования пикселов соседних блоков текущего кадра изображения. В частности, в дополнение к традиционному режиму внутрикадрового предсказания, блок 110 внутрикадрового предсказания дополнительно выполняет режимы внутрикадрового предсказания, имеющие различные направления, посредством использования параметров (dx, dy). Добавленные режимы внутрикадрового предсказания, в соответствии с настоящим иллюстративным вариантом осуществления, будут разъясняться позже.

[37] Остаточные значения текущего блока генерируются на основе значения предсказания, выводимого из блока 110 внутрикадрового предсказания и блока 125 компенсации движения, и выводятся в качестве квантованных коэффициентов преобразования посредством блока 130 преобразования частоты и блока 140 квантования.

[38] Квантованные коэффициенты преобразования восстанавливаются в остаточные значения посредством блока 160 обратного квантования и блока 170 обратного преобразования частоты, после чего восстановленные остаточные значения обрабатываются посредством блока 180 деблокинга и блока 190 пространственной фильтрации и выводятся в опорный кадр 195. Квантованные коэффициенты преобразования могут быть выведены в качестве битового потока 155 посредством энтропийного кодера.

[39] Далее будет подробно разъясняться внутрикадровое предсказание, выполняемое посредством блока 110 внутрикадрового предсказания, который иллюстрируется на Фиг.1. Способ внутрикадрового предсказания для повышения эффективности сжатия изображения будет разъясняться на примере кодека, который может выполнять кодирование со сжатием посредством использования блока, имеющего размер, который больше или меньше 16×16, а не на примере традиционного кодека, такого как H.264, который выполняет кодирование на основе макроблока, имеющего размер 16×16.

[40] Фиг.2 изображает таблицу, иллюстрирующую множество режимов внутрикадрового предсказания, согласно размеру текущего блока, в соответствии с иллюстративным вариантом осуществления.

[41] Количество применяемых к блоку режимов внутрикадрового предсказания может меняться в зависимости от размера блока. К примеру, как изображено на Фиг.2, когда размер блока, к которому должно быть применено внутрикадровое предсказание, равен N×N, количество режимов внутрикадрового предсказания, фактически выполняемых применительно к каждому из блоков, имеющих соответствующие размеры 2×2, 4×4, 8×8, 16×16, 32×32, 64×64 и 128×128, может быть задано равным 5, 9, 9, 17, 33, 5 и 5 (относительно примера 2). В связи с этим, количество фактически выполняемых режимов внутрикадрового предсказания меняется в зависимости от размера блока, поскольку заголовок для информации о режиме кодирования с использованием предсказания меняется в зависимости от размера блока. Другими словами, в ситуации, когда блок имеет небольшой размер, несмотря на то, что блок занимает небольшую часть от целого изображения, заголовок для передачи дополнительной информации, такой как режим предсказания блока, имеющего небольшой размер, может быть большим. Соответственно, если блок, который имеет небольшой размер, кодируется посредством использования слишком большого количества режимов предсказания, то скорость может быть увеличена, вследствие чего снижается эффективность сжатия. Кроме того, поскольку блок, который имеет большой размер, к примеру, больше 64×64, зачастую выбирается в качестве блока для плоской области изображения, когда блок, который имеет большой размер, кодируется посредством использования слишком большого количества режимов предсказания, эффективность сжатия также может быть снижена.

[42] Соответственно, как изображено на Фиг.2, при грубой классификации размеров блоков, по меньшей мере, на три размера N1×N1 (2=N1=8, N1 является целым числом), N2×N2 (16=N2=32, N2 является целым числом) и N3×N3 (64=N3, N3 является целым числом), количеством режимов внутрикадрового предсказания, которые будут выполнены применительно к блоку, который имеет размер N1×N1, будет являться A1 (A1 является положительным целым числом), количеством режимов внутрикадрового предсказания, которые будут выполнены применительно к блоку, который имеет размер N2×N2, будет являться A2 (A2 является положительным целым числом), а количеством режимов внутрикадрового предсказания, которые будут выполнены применительно к блоку, который имеет размер N3×N3, будет являться A3 (A3 является положительным целым числом), кроме того, предпочтительно, чтобы количество режимов внутрикадрового предсказания, которые будут выполнены в зависимости от размера каждого блока, было задано таким, чтобы оно удовлетворяло равенство A3=A1=A2. То есть, при грубом делении текущего изображения на блок, который имеет небольшой размер, блок, который имеет средний размер, и блок, который имеет большой размер, предпочтительно, чтобы блок, который имеет средний размер, имел наибольшее количество режимов предсказания, а блок, который имеет небольшой размер, и блок, который имеет большой размер, имели относительно небольшое количество режимов предсказания. Однако настоящий иллюстративный вариант осуществления не ограничивается этим, между тем блок, который имеет небольшой размер, а также блок, который имеет большой размер, могут иметь большое количество режимов предсказания. Количество режимов предсказания, которое меняется в зависимости от размера каждого блока, иллюстрированного на Фиг.2, является иллюстративным, и может быть изменено.

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

[44] Как изображено на Фиг.2 и 3, когда внутрикадровое предсказание выполняется применительно к блоку, который имеет размер 4×4, блок, который имеет размер 4×4, может иметь режим вертикального предсказания (режим 0), режим горизонтального предсказания (режим 1), режим усредненного (DC) предсказания (режим 2), режим диагонального предсказания вниз влево (режим 3), режим диагонального предсказания вниз вправо (режим 4), режим вертикального предсказания вправо (режим 5), режим горизонтального предсказания вниз (режим 6), режим вертикального предсказания влево (режим 7) и режим горизонтального предсказания вверх (режим 8).

[45] Фиг.4 изображает графическое представление, иллюстрирующее направления режимов внутрикадрового предсказания, которые представлены на Фиг.3, в соответствии с иллюстративным вариантом осуществления. На Фиг.4 цифра, изображенная на конце стрелки, обозначает соответствующее значение режима, когда предсказание выполняется в направления, указанной посредством стрелки. В данном случае режим 2 является режимом усредненного (DC) предсказания без направления, и поэтому не изображен.

[46] Фиг.5 изображает графическое представление для разъяснения способа внутрикадрового предсказания, выполняемого применительно к блоку, который иллюстрируется на Фиг.3, в соответствии с иллюстративным вариантом осуществления.

[47] Как изображено на Фиг.5, блок предсказания формируется посредством использования соседних пикселов A-M текущего блока в доступном режиме внутрикадрового предсказания, определенном посредством размера блока. К примеру, будет разъяснена операция кодирования с использованием предсказания текущего блока, который имеет размер 4×4, в режиме 0 на Фиг.3, то есть, в режиме вертикального предсказания. Сначала значения пикселов А-D, которые являются соседними над текущим блоком, имеющим размер 4×4, предсказываются таким образом, чтобы быть равными значениям пикселов текущего блока, который имеет размер 4×4. То есть, значение пиксела A предсказывается таким образом, чтобы быть равным значениям четырех пикселов, включенных в первый столбец текущего блока, который имеет размер 4×4, значение пиксела В предсказывается таким образом, чтобы быть равным значениям четырех пикселов, включенных во второй столбец текущего блока, который имеет размер 4×4, значение пиксела С предсказывается таким образом, чтобы быть равным значениям четырех пикселов, включенных в третий столбец текущего блока, который имеет размер 4×4, а значение пиксела D предсказывается таким образом, чтобы быть равным значениям четырех пикселов, включенных в четвертый столбец текущего блока, который имеет размер 4×4. Затем получают и кодируют остаток между фактическими значениями пикселов, включенных в оригинальный Текущий блок с размером 4×4, и значениями пикселов, включенных в Текущий блок размером 4×4, предсказанными посредством использования пикселов А-D.

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

[49] Как изображено на Фиг.2 и 6, когда внутрикадровое предсказание выполняется применительно к блоку, который имеет размер 2×2 или 128×128, блок, который имеет размер 2×2 или 128×128, может иметь 5 режимов: режим вертикального предсказания, режим горизонтального предсказания, режим усредненного (DC) предсказания, режим плоскостного предсказания и режим диагонального предсказания вниз вправо.

[50] Между тем, если блок, который имеет размер 32×32, включает в себя 33 режима внутрикадрового предсказания, как изображено на Фиг.2, то необходимо задать направления 33 режимов внутрикадрового предсказания. Для задания режимов внутрикадрового предсказания, имеющих различные направления, отличных от режимов внутрикадрового предсказания, иллюстрированных на Фиг.4 и 6, направление предсказания для выбора соседнего пиксела, используемого в качестве опорного пиксела около пиксела в блоке, задается посредством использования параметров (dx, dy). К примеру, если каждый из 33 режимов предсказания представить в качестве режима N (N является целым числом от 0 до 32), то режим 0 может быть задан в качестве режима вертикального предсказания, режим 1 может быть задан в качестве режима горизонтального предсказания, режим 2 может быть задан в качестве режима усредненного (DC) предсказания, режим 3 может быть задан в качестве режима плоскостного предсказания, а каждый из 4-32 режимов может быть задан в качестве режима предсказания, имеющего направление tan-1(dy/dx), представленного в качестве одного из параметров (dx, dy), которые выражаются в качестве одного из следующих вариантов: (1, -1), (1, 1), (1, 2), (2, 1), (1, -2), (2, 1), (1, -2), (2, -1), (2, -11), (5, -7), (10, -7), (11, 3), (4, 3), (1, 11), (1, -1), (12, -3), (1, -11), (1, -7), (3, -10), (5, -6), (7, -6), (7, -4), (11, 1), (6, 1), (8, 3), (5, 3), (5, 7), (2, 7), (5, -7) и (4, -3), как представлено в таблице 1.

[51] Таблица 1
Режим# dx dy Режим# dx dy
Режим 4 1 -1 Режим 18 1 -11
Режим 5 1 1 Режим 19 1 -7
Режим 6 1 2 Режим 20 3 -10
Режим 7 2 1 Режим 21 5 -6
Режим 8 1 -2 Режим 22 7 -6
Режим 9 2 -1 Режим 23 7 -4
Режим 10 2 -11 Режим 24 11 1
Режим 11 5 -7 Режим 25 6 1
Режим 12 10 -7 Режим 26 8 3
Режим 13 11 3 Режим 27 5 3
Режим 14 4 3 Режим 28 5 7
Режим 15 1 11 Режим 29 2 7
Режим 16 1 -1 Режим 30 5 -7
Режим 17 12 -3 Режим 31 4 -3
Режим 0 является режимом вертикального предсказания, режим 1 является режимом горизонтального предсказания, режим 2 является режимом усредненного (DC) предсказания, режим 3 является режимом плоскостного предсказания, а режим 32 является режимом двунаправленного предсказания

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

[53] Фиг.7 изображает иллюстративное графическое представление для разъяснения режимов внутрикадрового предсказания, имеющих различные направления, в соответствии с иллюстративным вариантом осуществления.

[54] Как было описано со ссылкой на таблицу 1, режимы внутрикадрового предсказания могут иметь различные направления tan-1(dy/dx) посредством использования множества параметров (dx, dy).

[55] Как изображено на Фиг.7, соседние пикселы A и В, расположенные на продолженной линии 700, имеющей угол наклона tan-1(dy/dx), который определяется согласно параметрам (dx, dy) каждого режима, изображенного в таблице 1, вокруг текущего пиксела P, предсказываемого в текущем блоке, могут быть использованы в качестве предиктора (экстраполяционной функции) для текущего пиксела P. В данном случае предпочтительно, чтобы соседние пикселы A и В, используемые в качестве предиктора, являлись пикселами соседнего блока, расположенными на верхней, левой, справа по верхней и слева по нижней сторонах текущего блока, который был предварительно закодирован и восстановлен. Кроме того, если продолженная линия 700 проходит между, а не через фактические позиции соседних пикселов, то соседние пикселы, которые находятся ближе к текущему пикселу P из числа соседних пикселов, находящихся близко к продолженной линии 700, могут быть использованы в качестве предиктора, или же предсказание может быть выполнено посредством использования соседних пикселов, находящихся близко к продолженной линии 700. К примеру, среднее значение между соседними пикселами, находящимися близко к продолженной линии 700, или средневзвешенное значение, оценивающее расстояние между пересечением продолженной линии 700 и соседними пикселами, находящимися близко к продолженной линии 700, может быть использовано в качестве предиктора для текущего пиксела P. Кроме того, как изображено на Фиг.7, оно может быть сообщено в элементах блоков, соседние пикселы которых, к примеру, соседние пикселы A и B, будут использоваться в качестве предиктора для текущего пиксела P из числа соседних пикселов на оси X и соседних пикселов на оси Y, которые являются доступными согласно направлениям предсказания.

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

[57] Как изображено на Фиг.8, если продолженная линия 800, имеющая угол tan-1(dy/dx), который определяется согласно параметрам (dx, dy) каждого режима, проходит между фактическими позициями соседнего пиксела 810 А и соседнего пиксела 820 В, то средневзвешенное значение, оценивающее расстояние между пересечением продолженной линии 800 и соседними пикселами 810 А и 820 В, находящимися близко к продолженной линии 800, может быть использовано в качестве предиктора для текущего пиксела P, как было описано выше. К примеру, когда расстояние между пересечением продолженной линии 800, имеющей угол tan-1(4dy/dx), и соседним пикселом 810 А равняется f, а расстояние между пересечением продолженной линии 800 и соседним пикселом 820 B равняется g, предиктор для текущего пиксела P может быть получен при помощи вычисления (A*g+B*f)/(f+g). В данном случае предпочтительно, чтобы f и g могли являться нормированным расстоянием и использовать целое число. При использовании программных или аппаратных средств, предиктор для текущего пиксела P может быть получен посредством операции сдвига (g*A+f*B+2)>>2. Как изображено на Фиг.8, если продолженная линия 800 проходит через первую четверть, находящуюся близко к соседнему пикселу 810 А, из числа четырех частей, полученных посредством деления расстояния между фактическими позициями соседнего пиксела 810 А и соседнего пиксела 820 В на четыре части, то предиктор для текущего пиксела P может быть получен при помощи вычисления (3*A+B)/4. Такая операция может быть выполнена посредством операции сдвига с учетом округления до ближайшего целого числа, подобно вычислению (3*A+B+2)>>2.

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

[59] Как изображено на Фиг.9, если продолженная линия, имеющая угол tan-1(dy/dx), который определяется согласно параметрам (dx, dy) каждого режима, проходит между фактическими позициями соседнего пиксела 910 А и соседнего пиксела 920 В, то фрагмент, находящийся между соседним пикселом 910 А и соседним пикселом 920 В может быть разделен на предварительно определенное количество областей, а средневзвешенное значение, оценивающее расстояние между пересечением и соседним пикселом 910 А и соседним пикселом 920 В в каждой разделенной области, может быть использовано в качестве значения предсказания. К примеру, как изображено на Фиг.9, фрагмент, находящийся между соседним пикселом 910 А и соседним пикселом 920 В, может быть разделен на пять фрагментов P1-P5, может быть определено типичное средневзвешенное значение, оценивающее расстояние между пересечением и соседним пикселом 151 А и соседним пикселом 152 В в каждом фрагменте, при этом типичное средневзвешенное значение может быть использовано в качестве предиктора для текущего пиксела P. Более подробно, если продолженная линия проходит через фрагмент Р1, то значение соседнего пиксела 910 А может быть определено в качестве предиктора для текущего пиксела P. Если продолженная линия проходит через фрагмент P2, то средневзвешенное значение (3*A+1*B+2)>>2, оценивающее расстояние между соседним пикселом 910 А и соседним пикселом 920 В и средней точкой фрагмента P2, может быть определено в качестве предиктора для текущего пиксела P. Если продолженная линия проходит через фрагмент P3, то средневзвешенное значение (2*A+2*B+2)>>2, оценивающее расстояние между соседним пикселом 910 А и соседним пикселом 920 В и средней точкой фрагмента P3, может быть определено в качестве предиктора для текущего пиксела P. Если продолженная линия проходит через фрагмент P4, то средневзвешенное значение (1*A+3*B+2)>>2, оценивающее расстояние между соседним пикселом 910 А и соседним пикселом 920 В и средней точкой фрагмента P4, может быть определено в качестве предиктора для текущего пиксела P. Если продолженная линия проходит через фрагмент P5, то значение соседнего пиксела 920 В может быть определено в качестве предиктора для текущего пиксела P.

[60] Кроме того, если два соседних пиксела, то есть соседний пиксел А, находящийся на верхней стороне, и соседний пиксел В, находящийся на левой стороне, пересекаются с продолженной линией 700, как изображено на Фиг.7, то среднее значение соседнего пиксела A и соседнего пиксела В может быть использовано в качестве предиктора для текущего пиксела P. В альтернативном варианте, если значение (dx*dy) является положительным, то может быть использован соседний пиксел А, находящийся на верхней стороне, а если значение (dx*dy) является отрицательным, то может быть использован соседний пиксел В, находящийся на левой стороне.

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

[62] Фиг.10 изображает иллюстративное графическое представление для разъяснения режима двунаправленного предсказания, в соответствии с иллюстративным вариантом осуществления.

[63] Как изображено на Фиг.10, в режиме двунаправленного предсказания вычисляется геометрическое среднее значение, оценивающее расстояния до верхней, нижней, левой и правой границ текущего пиксела P и пикселов, расположенных на верхней, нижней, левой и правой границах вокруг текущего пиксела P, предсказываемого в текущем блоке, а результат вычисления используется в качестве предиктора для текущего пиксела P. То есть, в режиме двунаправленного предсказания геометрическое среднее значение расстояний до верхней, нижней, левой и правой границ текущего пиксела P и пиксела 1061 А, пиксела 1002 В, пиксела 1006 D и пиксела E 1007, которые располагаются на верхней, нижней, левой и правой границах текущего пиксела P, может быть использовано в качестве предиктора для текущего пиксела 1060 Р. В данном случае, поскольку режим двунаправленного предсказания является одним из режимов внутрикадрового предсказания, соседние пикселы, находящиеся на верхней и левой сторонах, которые были предварительно закодированы, а затем восстановлены, также должны быть использованы в качестве опорных пикселов в процессе предсказания. Следовательно, соответствующие значения пикселов в текущем блоке не используются в качестве пиксела 1061 А и пиксела 1002 В, а используются значения виртуальных пикселов, сгенерированные посредством использования соседних пикселов, находящихся на верхней и левой сторонах.

[64] Более подробно, виртуальный пиксел 1003 С, находящийся справа на нижней стороне текущего блока, вычисляется посредством использования среднего значения соседнего пиксела 1004 RightUpPixel, находящегося справа на верхней стороне, и соседнего пиксела 1005 LeftDownPixel, находящегося слева на нижней стороне, смежной с текущим блоком, как представлено в уравнении 1.

[65] Уравнение 1

C=0,5(DownPixel+UpPixel)

[66] Уравнение 1 может быть вычислено посредством операции сдвига, такой как C=0,5(LeftDownPixel+RightUpPixel+1)>>1.

[67] Когда Текущий пиксел 1060 P расширяется вниз на расстояние W1 до левой границы, а также на расстояние W2 до правой границы текущего пиксела 1060 Р, значение виртуального пиксела 1061, расположенного на нижней границе, может быть задано посредством использования среднего значения соседнего пиксела 1005 LeftDownPixel, находящегося слева на нижней стороне, и пиксела 1003 С. К примеру, значение пиксела 1061 А может быть вычислено посредством использования одного уравнения, представленного в уравнении 2.

[68] Уравнение 2

A=(C*W1+DownPixel*W2/(W1+W2);

A=(C*W1+DownPixel*W2+((W1+W2)/2))/(W1+W2)

[69] Как показано в уравнении 2, когда значение W1+W2 возводится во вторую степень, подобно 2^n,

A=(C*W1+LeftDownPixel*W2+(W1+W2)/2))/(W1+W2) может быть вычислено посредством операции сдвига, как A=(C*W1+LeftDownPixel*W2+2^(n-1))>>n без деления.

[70] Подобно этому, когда текущий пиксел 1060 Р расширяется вправо на расстояние h1 до верхней границы текущего пиксела 1060 P, а также на расстояние h2 до нижней границы текущего пиксела 1060 Р, значение виртуального пиксела 1002 Р, расположенного на правой границе, может быть задано посредством использования среднего значения соседнего пиксела 1004 RightUpPixel, находящегося справа на верхней стороне, и пиксела 1003 С, на расстоянии h1 и h2. К примеру, значение пиксела 1002 В может быть вычислено посредством использования одного уравнения, представленного в уравнении 3.

[71] Уравнение 3

B=(C*h1+UpPixel*h2)/(h1+h2);

B=(C*h1+UpPixel*h2+(h1+h2)/2))/(h1+h2)

[72] Как показано в уравнении 3, когда значение h1+h2 возводится во вторую степень, подобно 2^m,

B=(C*h1+RightUpPixel*h2+(h1+h2)/2))/(h1+h2) может быть вычислено посредством операции сдвига, как B=(C*h1+RightUpPixel*h2+2^(m-1))>>m без деления.

[73] После определения значений виртуального пиксела 1061 А, находящегося на нижней границе текущего пиксела 1060 Р, и виртуального пиксела 1002 В, находящегося на правой границе текущего пиксела 1060 Р, посредством использования уравнений 1-3, предиктор для текущего пиксела 1060 Р может быть определен посредством использования среднего значения A+B+D+E. Более подробно, средневзвешенное значение, оценивающее расстояние между текущим пикселом 1060 Р и виртуальным пикселом 1061 А, виртуальным пикселом 1002 В, пикселом 1006 D и пикселом 1007 Е, или среднее значение A+B+D+E может быть использовано в качестве предиктора для текущего пиксела 1060 Р. К примеру, если размер изображенного на Фиг.10 блока составляет 16×16 и используется средневзвешенное значение, предиктор для текущего пиксела 1060 Р может быть получен следующим образом: (h1*A+h2*D+W1*B+W2*E+16)>>5. Соответственно, такое двунаправленное предсказание применяется ко всем пикселам в текущем блоке, а также в режиме двунаправленного предсказания формируется бл