СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЯ, ИСПОЛЬЗУЯ ВНУТРЕННЕЕ ПРЕДСКАЗАНИЕ
METHOD AND APPARATUS FOR ENCODING AND DECODING IMAGE USING INTERNAL PREDICTION

ОБЛАСТЬ ТЕХНИКИ
Настоящее изобретение относится к кодированию и декодированию изображения, и в частности, к способам и устройствам для кодирования с внутренним предсказанием и декодирования с внутренним предсказанием изображения, при этом эффективность сжатия изображения повышается посредством использования различных направленностей и нового режима внутреннего предсказания.
УРОВЕНЬ ТЕХНИКИ
В способе сжатия изображения, таком как по стандарту Экспертной Группы по вопросам Движущихся Изображений (MPEG)-1, MPEG-2, MPEG-4, или H.264/MPEG-4 Расширенное Кодирование Видео (AVC), картинка делится на макроблоки, чтобы закодировать изображение. Каждый из макроблоков кодируется во всех режимах кодирования, которые могут быть использованы при внешнем предсказании или внутреннем предсказании, и затем кодируется в режиме кодирования, который выбран в соответствии со скоростью передачи битов, используемой для кодирования макроблока, и степенью искажения, декодированного макроблока, основанной на исходном макроблоке.
Поскольку в настоящее время разрабатывается аппаратное обеспечение для воспроизведения и хранения видео контента с высоким разрешением или высоким качеством, то существует растущая потребность в видео кодеке, выполненном с возможностью эффективного кодирования или декодирования видео контента с высоким разрешением или высокого качества. В обычном видео кодеке видео кодируется в единицах макроблоков, каждый из которых имеет предварительно определенный размер.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
ТЕХНИЧЕСКАЯ ЦЕЛЬ ИЗОБРЕТЕНИЯ
Настоящее изобретение предоставляет способ и устройство для кодирования с внутренним предсказанием и декодирования с внутренним предсказанием изображения, при этом эффективность кодирования повышается в соответствии с характеристикой изображения с помощью нового способа внутреннего предсказания, используя пиксели, соседние для текущей единицы предсказания.
СРЕДСТВА ДЛЯ ДОСТИЖЕНИЯ ТЕХНИЧЕСКОЙ ЦЕЛИ
Настоящее изобретение также предоставляет новый режим внутреннего предсказания, используя пиксели, соседние для текущей единицы предсказания.
ЭФФЕКТ ИЗОБРЕТЕНИЯ
В соответствии с одним или более вариантами осуществления настоящего изобретения, эффективность кодирования изображения может быть повышена посредством применения оптимального способа внутреннего предсказания в соответствии с характеристиками изображения с помощью различных способов внутреннего предсказания, используя соседние пиксели.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг. 1 является структурной схемой устройства для кодирования видео, в соответствии с вариантом осуществления настоящего изобретения;
Фиг. 2 является структурной схемой устройства для декодирования видео, в соответствии с вариантом осуществления настоящего изобретения;
Фиг. 3 является схемой для описания концепции единиц кодирования в соответствии с вариантом осуществления настоящего изобретения;
Фиг. 4 является структурной схемой кодера изображения, основанного на единицах кодирования, в соответствии с вариантом осуществления настоящего изобретения;
Фиг. 5 является структурной схемой декодера изображения, основанного на единицах кодирования, в соответствии с вариантом осуществления настоящего изобретения;
Фиг. 6 является схемой, иллюстрирующей более глубокие единицы кодирования в соответствии с глубинами и разделы в соответствии с вариантом осуществления настоящего изобретения;
Фиг. 7 является схемой для описания зависимости между единицей кодирования и единицами преобразования, в соответствии с вариантом осуществления настоящего изобретения;
Фиг. 8 является схемой для описания информации кодирования единиц кодирования, соответствующей кодированной глубине, в соответствии с вариантом осуществления настоящего изобретения;
Фиг. 9 является схемой более глубоких единиц кодирования в соответствии с глубинами, в соответствии с вариантом осуществления настоящего изобретения;
Фиг. с 10 по 12 являются схемами для описания зависимости между единицами кодирования, единицами предсказания, и единицами преобразования, в соответствии с вариантом осуществления настоящего изобретения;
Фиг. 13 является схемой для описания зависимости между единицей кодирования, единицей предсказания или разделом, и единицей преобразования, в соответствии с информацией о режиме кодирования Таблицы 1;
Фиг. 14 является таблицей, показывающей количество режимов внутреннего предсказания в соответствии с размером единицы предсказания, в соответствии с вариантом осуществления настоящего изобретения;
Фиг. 15 является ссылочной схемой для описания режимов внутреннего предсказания с различными направленностями, в соответствии с вариантом осуществления настоящего изобретения;
Фиг. 16 является схемой для описания зависимости между текущим пикселем и соседними пикселями, расположенными на линии продолжения с направленностью (dx, dy), в соответствии с вариантом осуществления настоящего изобретения;
Фиг. 17 и 18 являются схемами, показывающими направления режима внутреннего предсказания, в соответствии с вариантами осуществления настоящего изобретения;
Фиг. 19 является схемой, показывающей направления режима внутреннего предсказания с 33 направленностями, в соответствии с вариантом осуществления настоящего изобретения;
Фиг. 20A и 20B являются схемами для описания планарного режима в соответствии с вариантами осуществления настоящего изобретения;
Фиг. 21 является схемой, показывающей соседние пиксели, которые отфильтрованы вокруг текущей единицы предсказания, в соответствии с вариантом осуществления настоящего изобретения;
Фиг. 22 является ссылочной схемой для описания процесса фильтрации соседнего пикселя; и
Фиг. 23 является блок-схемой, иллюстрирующей режим внутреннего предсказания в соответствии с планарным режимом, в соответствии с вариантом осуществления настоящего изобретения.
ПРЕДПОЧТИТЕЛЬНЫЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
В соответствии с аспектом настоящего изобретения, предоставляется способ внутреннего предсказания изображения, при этом способ содержит этапы, на которых: получают первый виртуальный пиксель, расположенный в той же строке, что и текущий предсказываемый пиксель текущей единицы предсказания, при этом соответствующий пикселю, расположенному крайним справа в текущей единице предсказания, посредством использования по меньшей мере одного соседнего пикселя, расположенного выше справа по отношению к текущей единице предсказания; получают второй виртуальный пиксель, расположенный в том же столбце, что и текущий предсказываемый пиксель, при этом соответствующий пикселю, расположенному крайним снизу в текущей единице предсказания, посредством использования по меньшей мере одного соседнего пикселя, расположенного ниже слева по отношению к текущей единице предсказания; получают первое значение предсказания текущего предсказываемого пикселя с помощью линейной интерполяции, используя первый виртуальный пиксель и соседний левый пиксель в той же строке, что и текущий предсказываемый пиксель; получают второе значение предсказания текущего предсказываемого пикселя с помощью линейной интерполяции, используя второй виртуальный пиксель и соседний верхний пиксель в том же столбце, что и текущий предсказываемый пиксель; и получают значение предсказания текущего предсказываемого пикселя посредством использования первого и второго значений предсказания.
В соответствии с другим аспектом настоящего изобретения, предоставляется устройство для внутреннего предсказания изображения, при этом устройство содержит: блок внутреннего предсказания для получения первого виртуального пикселя, расположенного в той же строке, что и текущий предсказываемый пиксель текущей единицы предсказания, при этом соответствующего пикселю, расположенному крайним справа в текущей единице предсказания, посредством использования по меньшей мере одного соседнего пикселя, расположенного выше справа по отношению к текущей единице предсказания, получения второго виртуального пикселя, расположенного в том же столбце, что и текущий предсказываемый пиксель, при этом соответствующего пикселю, расположенному крайним снизу в текущей единице предсказания, посредством использования по меньшей мере одного соседнего пикселя, расположенного ниже слева по отношению к текущей единице предсказания, получения первого значения предсказания текущего предсказываемого пикселя с помощью линейной интерполяции, используя первый виртуальный пиксель и соседний левый пиксель в той же строке, что и текущий предсказываемый пиксель, получения второго значения предсказания текущего предсказываемого пикселя с помощью линейной интерполяции, используя второй виртуальный пиксель и соседний верхний пиксель в том же столбце, что и текущий предсказываемый пиксель, и получения значения предсказания текущего предсказываемого пикселя посредством использования первого и второго значений предсказания.
ВАРИАНТ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
Ниже настоящее изобретение описано более полно со ссылками на сопроводительные чертежи, на которых показаны примерные варианты осуществления изобретения.
Фиг. 1 является структурной схемой устройства 100 кодирования видео, в соответствии с вариантом осуществления настоящего изобретения.
Устройство 100 кодирования видео включает в себя блок 110 разбиения на максимальную единицу кодирования, блок 120 определения единицы кодирования, и блок 130 вывода.
Блок 110 разбиения на максимальную единицу кодирования может разбивать текущую картинку на основании максимальной единицы кодирования для текущей картинки изображения. Если текущая картинка больше максимальной единицы кодирования, то данные изображения текущей картинки могут быть разбиты, по меньшей мере, на одну максимальную единицу кодирования. Максимальной единицей кодирования в соответствии с вариантом осуществления настоящего изобретения может быть единица данных с размером 32x32, 64x64, 128x128, 256x256, и т.д., при этом формой единицы данных является квадрат с шириной и длиной в квадратах числа 2. Данные изображения могут быть выведены к блоку 120 определения единицы кодирования в соответствии с по меньшей мере одной максимальной единицей кодирования.
Единица кодирования в соответствии с вариантом осуществления настоящего изобретения может быть охарактеризована максимальным размером и глубиной. Глубина обозначает количество раз, которое единица кодирования пространственно разбивается из максимальной единицы кодирования, и по мере того как глубина становится глубже, более глубокие единицы кодирования в соответствии с глубинами могут быть получены путем разбиения максимальной единицы кодирования до минимальной единицы кодирования. Глубина максимальной единицы кодирования является наивысшей глубиной, а глубина минимальной единицы кодирования является наинизшей глубиной. Поскольку размер единицы кодирования, соответствующей каждой глубине, уменьшается по мере того, как становится глубже глубина максимальной единицы кодирования, то единица кодирования, соответствующая расположенной выше глубине, может включать в себя множество единиц кодирования, соответствующих более низким глубинам.
Как описано выше, данные изображения текущей картинки разбиваются на максимальные единицы кодирования в соответствии с максимальным размером единицы кодирования, и каждая из максимальных единиц кодирования может включать в себя более глубокие единицы кодирования, которые разбиты в соответствии с глубинами. Поскольку максимальная единица кодирования в соответствии с вариантом осуществления настоящего изобретения разбивается в соответствии с глубинами, то данные изображения пространственной области, включенные в максимальную единицу кодирования, могут быть иерархически классифицированы в соответствии с глубинами.
Максимальная глубина и максимальный размер единицы кодирования, которые ограничивают общее количество раз, которое высота и ширина максимальной единицы кодирования иерархически разбиваются, могут быть предварительно определенными.
Блок 120 определения единицы кодирования кодирует по меньшей мере одну разбитую область, полученную посредством разбиения области максимальной единицы кодирования в соответствии с глубинами, и определяет глубину для вывода итоговых закодированных данных изображения в соответствии с по меньшей мере одной разбитой областью. Другими словами, блок 120 единицы кодирования определяет кодированную глубину посредством кодирования данных изображения в более глубоких единицах кодирования в соответствии с глубинами, в соответствии с максимальной единицей кодирования текущей картинки, и выбирая глубину с наименьшей ошибкой кодирования. Определенная кодированная глубина и закодированные данные изображения в соответствии с определенной кодированной глубиной выводятся блоку 130 вывода.
Данные изображения в максимальной единице кодирования кодируются на основании более глубоких единиц кодирования, соответствующих по меньшей мере одной глубине равной или ниже максимальной глубины, и результаты кодирования данных изображения сравниваются на основании каждой из более глубоких единиц кодирования. Глубина с наименьшей ошибкой кодирования может быть выбрана после сравнения ошибок кодирования более глубоких единиц кодирования. По меньшей мере, одна кодированная глубина может быть выбрана для каждой максимальной единицы кодирования.
Размер максимальной единицы кодирования разбивается по мере того как единица кодирования иерархически разбивается в соответствии с глубинами, и по мере того как увеличивается количество единиц кодирования. Также, даже если единицы кодирования соответствуют одной и той же глубине в одной максимальной единице кодирования, то определяется, разбить ли каждую из единиц кодирования, соответствующих одной и той же глубине, на более низкую глубину, посредством измерения ошибки кодирования данных изображения каждой единицы кодирования, отдельно. Соответственно, даже когда данные изображения включены в одну максимальную единицу кодирования, ошибки кодирования могут отличаться в соответствии с областями в одной максимальной единице кодирования, и, следовательно, кодированные глубины могут отличаться в соответствии с областями в данных изображения. Следовательно, одна или более кодированные глубины могут быть определены в одной максимальной единице кодирования, и данные изображения максимальной единицы кодирования могут быть разделены в соответствии с единицами кодирования по меньшей мере одной кодированной глубины.
Соответственно, блок 120 определения единицы кодирования может определять единицы кодирования с древовидной структурой, включенные в максимальную единицу кодирования. «Единицы кодирования с древовидной структурой» в соответствии с вариантом осуществления настоящего изобретения включают в себя единицы кодирования, соответствующие глубине, которая определена в качестве кодированной глубины, из числа всех более глубоких единиц кодирования, включенных в максимальную единицу кодирования. Единица кодирования кодированной глубины может быть иерархически определена в соответствии с глубинами в одной и той же области максимальной единицы кодирования, и может быть независимо определена в разных областях. Подобным образом и кодированная глубина в текущей области может быть независимо определена от кодированной глубины в другой области.
Максимальная глубина в соответствии с вариантом осуществления настоящего изобретения является индексом, который относится к количеству раз разбиения от максимальной единицы кодирования до минимальной единицы кодирования. Первая максимальная глубина в соответствии с вариантом осуществления настоящего изобретения может обозначать суммарное количество раз разбиения от максимальной единицы кодирования до минимальной единицы кодирования. Вторая максимальная глубина в соответствии с вариантом осуществления настоящего изобретения может обозначать суммарное количество уровней глубины от максимальной единицы кодирования до минимальной единицы кодирования. Например, когда глубина максимальной единицы кодирования равна 0, то глубина единицы кодирования, при которой максимальная единица кодирования разбивается один раз, может быть установлена равной 1, а глубина единицы кодирования, при которой максимальная единица кодирования разбивается дважды, может быть установлена равной 2. Здесь, если минимальной единицей кодирования является единица кодирования, при которой максимальная единица кодирования разбивается четыре раза, то существует 5 уровней глубины с глубинами 0, 1, 2, 3 и 4, и, следовательно, первая максимальная глубина может быть установлена равной 4, а вторая максимальная глубина может быть установлена равной 5.
Кодирование с предсказанием и преобразование могут быть выполнены в соответствии с максимальной единицей кодирования. Кодирование с предсказанием и преобразование также выполняются на основании более глубоких единиц кодирования в соответствии с глубиной равной или глубинами меньше, чем максимальная глубина, в соответствии с максимальной единицей кодирования.
Поскольку количество более глубоких единиц кодирования растет всякий раз, когда максимальная единица кодирования разбивается в соответствии с глубинами, то кодирование, включающее в себя кодирование с предсказанием и преобразование, выполняется над всеми из более глубоких единиц кодирования, формируемых по мере того как глубина становится глубже. Для удобства описания, кодирование с предсказанием и преобразование теперь будут описаны на основании единицы кодирования текущей глубины, в максимальной единице кодирования.
Устройство 100 кодирования видео может по-разному выбирать размер и форму единицы данных для кодирования данных изображения. Для того чтобы закодировать данные изображения, выполняются операции, такие как кодирование с предсказанием, преобразование и энтропийное кодирование, и в данном случае одинаковая единица данных может быть использована для всех операций или для каждой операции могут использоваться разные единицы данных.
Например, устройство 100 кодирования видео может выбирать не только единицу кодирования для кодирования данных изображения, но также и единицу данных, отличную от единицы кодирования с тем, чтобы выполнить кодирование с предсказанием над данными изображения в единице кодирования.
Для того чтобы выполнить кодирование с предсказанием в максимальной единице кодирования, кодирование с предсказанием может быть выполнено на основании единицы кодирования, соответствующей кодированной глубине, т.е., на основании единицы кодирования, которая более не разбивается на единицы кодирования, соответствующие более низкой глубине. Ниже единица кодирования, которая более не разбивается и становится базовой единицей для кодирования с предсказанием, теперь будет именоваться как «единица предсказания». Раздел, полученный посредством разбиения единицы предсказания, может включать в себя единицу предсказания или единицу данных, полученную посредством разбиения по меньшей мере одного из: высоты или ширины единицы предсказания.
Например, когда единица кодирования размера 2Nx2N (где N положительное целое число) более не разбивается и становится единицей предсказания размера 2Nx2N, то размер раздела может быть 2Nx2N, 2NxN, Nx2N, или NxN. Примеры типа раздела включают в себя: симметричные разделы, которые получены посредством симметричного разбиения высоты или ширины единицы предсказания; разделы, которые получены ассиметричным разбиением высоты или ширины единицы предсказания, как например 1:n или n:1; разделы, которые получены посредством геометрического разбиения единицы предсказания; и разделы, произвольных форм.
Режим предсказания единицы предсказания может быть по меньшей мере одним из режимов: внутрикадровым режимом, межкадровым режимом, и режимом пропуска. Например, внутрикадровый режим или межкадровый режим могут быть выполнены над разделом 2Nx2N, 2NxN, Nx2N, или NxN. Также, режим пропуска может быть выполнен только над разделом 2Nx2N. Кодирование независимо выполняется над одной единицей предсказания в единице кодирования, тем самым выбирая режим предсказания с наименьшей ошибкой кодирования.
Устройство 100 кодирования видео также может выполнять преобразование над данными изображения в единице кодирования, основанное не только на единице кодирования для кодирования данных изображения, но также основанное на единице данных, которая отличается от единицы кодирования.
Для того чтобы выполнить преобразование в единице кодирования, преобразование может быть выполнено на основании единицы данных с размером меньше либо равным размеру единицы кодирования. Например, единица данных для преобразования может включать в себя единицу данных для внутрикадрового режима и единицу данных для межкадрового режима.
Единица данных, используемая в качестве базы преобразования, теперь будет именоваться как «единица преобразования». Подобно единице кодирования, единица преобразования в единице кодирования может быть рекурсивно разбита на области меньшего размера таким образом, что единица преобразования может быть определена независимо в единицах областей. Следовательно, остаточные данные в единице кодирования могут быть разделены в соответствии с единицей преобразования с древовидной структурой в соответствии с глубинами преобразования.
Глубина преобразования, указывающая количество раз разбиения для достижения единицы преобразования путем разбиения высоты и ширины единицы кодирования также может быть установлена в единице преобразования. Например, в текущей единице кодирования размером 2Nx2N глубина преобразования может быть равна 0, когда размер единицы преобразования составляет 2Nx2N, может быть равна 1, когда размер единицы преобразования, таким образом, составляет NxN, и может быть равна 2, когда размер единицы преобразования, таким образом, составляет N/2xN/2. Другими словами, единица преобразования с древовидной структурой может быть установлена в соответствии с глубинами преобразования.
Для информации кодирования в соответствии с единицами кодирования, соответствующими кодированной глубине, требуется не только информация о кодированной глубине, но также информация, связанная с кодированием с предсказанием и преобразованием. Соответственно, блок 120 определения единицы кодирования определяет не только кодированную глубину с наименьшей ошибкой кодирования, но также определяет тип раздела в единице предсказания, режим предсказания в соответствии с единицами предсказания, и размер единицы преобразования для преобразования.
Единицы кодирования в соответствии с древовидной структурой в максимальной единице кодирования и способ определения раздела, в соответствии с вариантами осуществления настоящего изобретения, подробно описаны ниже со ссылкой на Фиг. с 3 по 12.
Блок 120 определения единицы кодирования может измерять ошибку кодирования более глубоких единиц кодирования в соответствии с глубинами посредством использования Оптимизации Скорость-Искажение, основанной на множителях Лагранжа.
Блок 130 вывода выводит данные изображения максимальной единицы кодирования, которые закодированы на основании по меньшей мере одной кодированной глубины, которая определена блоком 120 определения единицы кодирования, и информацию о режиме кодирования в соответствии с кодированной глубиной, в битовый поток.
Закодированные данные изображения могут быть получены посредством кодирования остаточных данных изображения.
Информация о режиме кодирования в соответствии с кодированной глубиной может включать в себя информацию о кодированной глубине, о типе раздела в единице предсказания, режим предсказания, и размер единицы преобразования.
Информация о кодированной глубине может быть определена посредством использования информации разбиения в соответствии с глубинами, которая указывает на то, выполняется ли кодирование над единицами кодирования более низкой глубины вместо текущей глубины. Если текущая глубина текущей единицы кодирования является кодированной глубиной, то данные изображения в текущей единице кодирования кодируются и выводятся, и, следовательно, информация разбиения может быть определена как указывающая на то, чтобы не разбивать текущую единицу кодирования на более низкую глубину. В качестве альтернативы, если текущая глубина текущей единицы кодирования не является кодированной глубиной, то кодирование выполняется над единицей кодирования более низкой глубины, и, следовательно, информация разбиения может быть определена как указывающая на то, чтобы разбивать текущую единицу кодирования, чтобы получить единицы кодирования более низкой глубины.
Если текущая глубина не является кодированной глубиной, то кодирование выполняется над единицей кодирования, которая разбита на единицу кодирования более низкой глубины. Поскольку существует по меньшей мере одна единица кодирования более низкой глубины в одной единице кодирования текущей глубины, то кодирование повторно выполняется над каждой единицей кодирования более низкой глубины, и, следовательно, кодирование может быть рекурсивно выполнено для единиц кодирования с той же глубиной.
Поскольку единицы кодирования с древовидной структурой определены для одной максимальной единицы кодирования, и информация, по меньшей мере, об одном режиме кодирования определяется для единицы кодирования кодированной глубины, то информация, по меньшей мере, об одном режиме кодирования может быть определена для одной максимальной единицы кодирования. Также, кодированная глубина данных изображения максимальной единицы кодирования может быть разной в соответствии с местоположениями, поскольку данные изображения иерархически разбиты в соответствии с глубинами, и, следовательно, информация о кодированной глубине и режиме кодирования может быть установлена для данных изображения.
Соответственно, блок 130 вывода может назначить информацию кодирования о соответствующей кодированной глубине и режиме кодирования, по меньшей мере, для одной из единиц: единицы кодирования, единицы предсказания, и минимальной единицы, включенной в максимальную единицу кодирования.
Минимальная единица в соответствии с вариантом осуществления настоящего изобретения является квадратной единицей данных, полученной посредством разбиения минимальной единицы кодирования, составляющую наинизшую глубину, на 4. В качестве альтернативы, минимальная единица может быть максимальной квадратной единицей данных, которая может быть включена во все из единиц кодирования, единиц предсказания, единицы раздела, и единицы преобразования, включенные в максимальную единицу кодирования.
Например, информация кодирования, выводимая посредством блока 130 вывода, может быть классифицирована на информацию кодирования в соответствии с единицами кодирования, и информацию кодирования в соответствии с единицами предсказания. Информация кодирования в соответствии с единицами кодирования может включать в себя информацию о режиме предсказания и о размере разделов. Информация кодирования в соответствии с единицами предсказания может включать в себя информацию об оцененном направлении межкадрового режима, об индексе опорного изображения межкадрового режима, о векторе движения, о составляющей цветности внутрикадрового режима, и о способе интерполяции внутрикадрового режима. Также, информация о максимальном размере единицы кодирования, которая определена в соответствии с картинками, последовательностями макроблоков, или GOP, и информация о максимальной глубине может быть вставлена в заголовок битового потока.
В устройстве 100 кодирования видео, более глубокой единицей кодирования может быть единица кодирования, полученная посредством разделения высоты или ширины единицы кодирования более высокой глубины, которая выше на один уровень, на два. Другими словами, когда размер единицы кодирования текущей глубины составляет 2Nx2N, то размер единицы кодирования более низкой глубины составляет NxN. Также, единица кодирования текущей глубины с размером 2Nx2N может включать в себя максимум 4 единицы кодирования более низкой глубины.
Соответственно, устройство 100 кодирования видео может образовывать единицы кодирования с древовидной структурой посредством определения единиц кодирования с оптимальной формой и оптимальным размером для каждой максимальной единицы кодирования, основанные на размере максимальной единицы кодирования и максимальной глубине, которая определяется, учитывая характеристики текущей картинки. Также, поскольку кодирование может быть выполнено над каждой максимальной единицей кодирования посредством использования любого из разнообразных режимов предсказания и преобразования, то оптимальный режим кодирования может быть определен, учитывая характеристики единицы кодирования различных размеров изображения.
Таким образом, если изображение с высоким разрешением или большим объемом данных кодируется в обычном макроблоке, то количество макроблоков на картинку чрезмерно увеличивается. Соответственно, количество частей сжатой информации, формируемой для каждого макроблока, увеличивается, и, следовательно, сложно передать сжатую информацию и падает эффективность сжатия данных. Тем не менее, посредством использования устройства 100 кодирования видео, эффективность сжатия изображения может быть увеличена, поскольку единица кодирования регулируется с учетом характеристик изображения, при этом увеличивая максимальный размер единицы кодирования с учетом размера изображения.
Фиг. 2 является структурной схемой устройства 200 декодирования видео, в соответствии с вариантом осуществления настоящего изобретения.
Устройство 200 декодирования видео включает в себя приемник 210, блок 220 извлечения данных изображения и информации кодирования, и декодер 230 данных изображения. Определения различных понятий, таких как единица кодирования, глубина, единица предсказания, единица преобразования, и информация о различных режимах кодирования, применительно к различным операциям устройства 200 декодирования видео, идентичны тем, что описаны со ссылкой на Фиг. 1 и устройство 100 кодирования видео.
Приемник 210 принимает и анализирует битовый поток закодированного видео. Блок 220 извлечения данных изображения и информации кодирования извлекает закодированные данные изображения для каждой единицы кодирования из анализируемого битового потока, при этом единицы кодирования имеют древовидную структуру в соответствии с каждой максимальной единицей кодирования, и выводит извлеченные данные изображения декодеру 230 данных изображения. Блок 220 извлечения данных изображения и информации кодирования может извлекать информацию о максимальном размере единицы кодирования текущей картинки, из заголовка о текущей картинке.
Также, блок 220 извлечения данных изображения и информации кодирования извлекает информацию о кодированной глубине и режиме кодирования для единиц кодирования с древовидной структурой в соответствии с каждой максимальной единицей кодирования, из анализируемого битового потока. Извлеченная информация о кодированной глубине и режим кодирования выводятся декодеру 230 данных изображения. Другими словами, данные изображения в битовом потоке разбиты на максимальную единицу кодирования таким образом, что декодер 230 данных изображения декодирует данные изображения для каждой максимальной единицы кодирования.
Информация о кодированной глубине и режиме кодирования в соответствии с максимальной единицей кодирования может быть установлена для информации о по меньшей мере одной единице кодирования, соответствующей кодированной глубине, а информация о режиме кодирования может включать в себя информацию о типе раздела соответствующей единицы кодирования, соответствующей кодированной глубине, о режиме предсказания, и размер единицы преобразования. Также, информация разбиения в соответствии с глубинами может быть извлечена в качестве информации о кодированной глубине.
Информация о кодированной глубине и режим кодирования в соответствии с каждой максимальной единицей кодирования, извлеченная блоком 220 извлечения данных изображения и информации кодирования, является информацией о кодированной глубине и режиме кодирования, которые определены для формирования минимальной ошибки кодирования, когда кодер, такой как устройство 100 кодирования видео, неоднократно выполняет кодирование для каждой более глубокой единицы кодирования в соответствии с глубинами в соответствии с каждой максимальной единицей кодирования. Соответственно, устройство 200 декодирования видео может восстановить изображение посредством декодирования данных изображения в соответствии с кодированной глубиной и режимом кодирования, которые формируют минимальную ошибку кодирования.
Поскольку информация кодирования о кодированной глубине и режиме кодирования может быть назначена предварительно определенной единице данных из числа соответствующей единицы кодирования, единицы предсказания, и минимальной единицы, то блок 220 извлечения данных изображения и информации кодирования может извлекать информацию о кодированной глубине и режиме кодирования в соответствии с предварительно определенными единицами данных. Если информация о кодированной глубине и режиме кодирования соответствующей максимальной единицы кодирования записана в соответствии с предварительно определенными единицами данных, то можно сделать вывод о том, что предварительно определенные единицы данных, которым назначена одинаковая информация о кодированной глубине и режиме кодирования, являются единицами данных, включенными в одну и ту же максимальную единицу кодирования.
Декодер 230 данных изображения восстанавливает текущую картинку посредством декодирования данных изображения в каждой максимальной единице кодирования на основании информации о кодированной глубине и режиме кодирования в соответствии с максимальными единицами кодирования. Другими словами, декодер 230 данных изображения может декодировать закодированные данные изображения на основании извлеченной информации о типе раздела, режиме предсказания, и единице преобразования для каждой единицы кодирования из числа единиц кодирования с древовидной структурой, включенных в каждую максимальную единицу кодирования. Процесс декодирования может включать в себя предсказание, включающее в себя внутреннее предсказание и компенсацию движения, и обратное преобразование.
Декодер 230 данных изображения может выполнять внутреннее предсказание или компенсацию движения в соответствии с разделом и режимом предсказания каждой единицы кодирования, на основании информации о типе раздела и режиме предсказания единицы предсказания единицы кодирования в соответствии с кодированными глубинами.
Также, декодер 230 данных изображения может выполнять обратное преобразование над каждой единицей преобразования в единице кодирования, на основании информации о размере единицы преобразования единицы кодирования в соответствии с кодированными глубинами, так, чтобы выполнять обратное преобразование в соответствии с максимальными единицами кодирования.
Декодер 230 данных изображения может определять по меньшей мере одну кодированную глубину текущей максимальной единицы кодирования посредством использования информации разбиения в соответствии с глубинами. Если информация разбиения указывает на то, что данные изображения более не разбиваются при текущей глубине, то текущая глубина является кодированной глубиной. Соответственно, декодер 230 данных изображения может декодировать закодированные данные по меньшей мере одной единицы кодирования, соответствующей каждой кодированной глубине в текущей максимальной единице кодирования посредством использования информации о типе раздела единицы предсказания, режиме предсказания, и размере единицы преобразования для каждой единицы кодирования, соответствующей кодированной глубине.
Другими словами, единицы данных, содержащие информацию кодирования, которая содержит одинаковую информацию разбиения, могут быть собраны посредством просмотра набора информации кодирования назначенного предварительно определенной единице данных из числа единицы кодирования, единицы предсказания, и минимальной единицы, и собранные единицы данных могут рассматриваться как одна единица данных, которая должна быть декодирована декодером 230 данных изображения при одинаковом режиме кодирования.
Устройство 200 декодирования видео может получать информацию о по меньшей мере одной единице кодирования, которая формирует минимальную ошибку кодирования, когда кодирование рекурсивно выполняется для каждой максимальной единицы кодирования, и может использовать информацию для декодирования текущей картинки. Другими словами, могут быть декодированы единицы кодирования с древовидной структурой, которые определены как оптимальные единицы кодирования в каждой максимальной единице кодирования.
Соответственно, даже если данные изображения обладают высоким разрешением и большим объемом данных, то данные изображения могут быть эффективно декодированы и восстановлены посредством использования размера единицы кодирования и режима кодирования, которые адаптивно определены в соответствии с характеристиками данных изображения, посредством использования информации об оптимальном режиме кодирования, принятой от кодера.
Способ определения единиц кодирования с древовидной структурой, единицы предсказания, и единицы преобразования, в соответствии с вариантом осуществления настоящего изобретения, теперь будет описан со ссылкой на Фиг. с 3 по 13.
Фиг. 3 является схемой для описания концепции единиц кодирования в соответствии с вариантом осуществления настоящего изобретения.
Размер единицы кодирования может быть выражен в ширине x высоту, и может составлять 64x64, 32x32, 16x16, и 8x8. Единица кодирования размера 64x64 может быть разбита на разделы размером 64x64, 64x32, 32x64, или 32x32, а единица кодирования 32x32 может быть разбита на разделы размером 32x32, 32x16, 16x32, или 16x16, единица кодирования 16x16 может быть разбита на разделы размером 16x16, 16x8, 8x16, или 8x8, а единица кодирования 8x8 может быть разбита на разделы размером 8x8, 8x4, 4x8, или 4x4.
В видеоданных 310, разрешение составляет 1920x1080, максимальный размер единицы кодирования равен 64, а максимальная глубина равна 2. В видеоданных 320, разрешение составляет 1920x1080, максимальный размер единицы кодирования равен 64, а максимальная глубина равна 3. В видеоданных 330 разрешение составляет 352x288, максимальный размер единицы кодирования равен 16, а максимальная глубина равна 1. Максимальная глубина, показанная на Фиг. 3, обозначает суммарное количество разбиений от максимальной единицы кодирования до минимальной единицы кодирования.
Если разрешение высокое или велик объем данных, то максимальный размер единицы кодирования может быть большим с тем чтобы не только повысить эффективность кодирования, но также и точно отражать характеристики изображения. Соответственно, максимальный размер единицы кодирования видеоданных 310 и 320 с более высоким разрешением, чем у видео данных 330, может составлять 64.
Поскольку максимальная глубина видеоданных 310 равна 2, то единицы 315 кодирования видеоданных 310 могут включать в себя максимальную единицу кодирования с размером по горизонтальной оси равным 64, и единицы кодирования с размерами по горизонтальной оси равными 32 и 16, поскольку глубины становятся глубже на два уровня посредством разбиения максимальной единицы кодирования дважды. Между тем, поскольку максимальная глубина видеоданных 330 равна 1, то единицы 335 кодирования видеоданных 330 могут включать в себя максимальную единицу кодирования с размером по горизонтальной оси равным 16, и единицы кодирования с размером по горизонтальной оси равным 8, поскольку глубины становятся глубже на один уровень посредством разбиения максимальной единицы кодирования один раз.
Поскольку максимальная глубина видеоданных 320 равна 3, то единицы кодирования 325 видеоданных 320 могут включать в себя максимальную единицу кодирования с размером по горизонтальной оси равным 64, и единицы кодирования с размерами по горизонтальной оси равными 32, 16, и 8, поскольку глубины становятся глубже на 3 уровня посредством разбиения максимальной единицы кодирования три раза. По мере углубления глубины более точно может быть выражена подробная информация.
Фиг. 4 является структурной схемой кодера 400 изображения основанного на единицах кодирования, в соответствии с вариантом осуществления настоящего изобретения.
Кодер 400 изображения выполняет операции блока 120 определения единицы кодирования устройства 100 кодирования видео для кодирования данных изображения. Другими словами, блок 410 внутреннего предсказания выполняет внутреннее предсказание над единицами кодирования при внутреннем режиме, из числа текущего кадра 405, а блок 420 оценки движения и блок 425 компенсации движения выполняют межкадровую оценку и компенсацию движения над единицами кодирования при внешнем режиме из числа текущего кадра 405 посредством использования текущего кадра 405, и опорного кадра 495.
Вывод данных из блока 410 внутреннего предсказания, блока 420 оценки движения, и блока 425 компенсации движения, выводится в качестве квантованных коэффициентов преобразования через блок 430 преобразования и квантователь 440. Квантованные коэффициенты преобразования восстанавливаются в качестве данных в пространственной области посредством обратного квантователя 460 и блока 470 обратного преобразования, и восстановленные данные в пространственной области выводятся в качестве опорного кадра 495 после того, как над ними выполняется постобработка посредством блока 480 удаления блочности и блока 490 контурной фильтрации. Квантованные коэффициенты преобразования могут быть выведены в качестве битового потока 455 через энтропийный кодер 450.
Для того чтобы кодер 400 изображения мог быть применен в устройстве 100 кодирования видео, все элементы кодера 400 изображения, т.е., блок 410 внутреннего предсказания, блок 420 оценки движения, блок 425 компенсации движения, блок 430 преобразования, квантователь 470, блок 480 удаления блочности, и блок 490 контурной фильтрации, выполняют операции на основании каждой единицы кодирования из числа единиц кодирования с древовидной структурой, при этом учитывая максимальную глубину каждой максимальной единицы кодирования.
В частности, блок 410 внутреннего предсказания, блок 420 оценки движения, и блок 425 компенсации движения, определяют разделы и режим предсказания каждой единицы кодирования из числа единиц кодирования с древовидной структурой, при этом учитывая максимальный размер и максимальную глубину текущей единицы кодирования, а блок 430 преобразования определяет размер единицы преобразования в каждой единице кодирования из числа единиц кодирования с древовидной структурой.
Фиг. 5 является структурной схемой декодера 500 изображения, основанного на единицах кодирования, в соответствии с вариантом осуществления настоящего изобретения.
Блок 510 анализа анализирует закодированные данные изображения, которые должны быть декодированы, и информацию о кодировании, требуемую для декодирования, из битового потока 505. Закодированные данные изображения выводятся в качестве обратно квантованных данных посредством энтропийного декодера 520 и обратного квантователя 530, и обратно квантованные данные восстанавливаются в данные изображения в пространственной области посредством блока 540 обратного преобразования.
Блок 550 внутреннего предсказания выполняет внутреннее предсказание над единицами кодирования при внутреннем режиме в отношении данных изображения в пространственной области, а блок 560 компенсации движения выполняет компенсацию движения над единицами кодирования при внешнем режиме посредством использования опорного кадра 585.
Данные изображения в пространственной области, которые прошли через блок 550 внутреннего предсказания и блок 560 компенсации движения, могут быть выведены в качестве восстановленного кадра 595 после выполнения постобработки посредством блока 570 удаления блочности и блока 580 контурной фильтрации. Также, данные изображения, которые прошли постобработку посредством блока 570 удаления блочности и блока 580 контурной фильтрации, могут быть выведены в качестве опорного кадра 585.
Для того чтобы декодировать данные изображения в декодере 230 данных изображения устройства 200 декодирования видео, декодер 500 изображения может выполнять операции, которые выполняются после блока 510 анализа.
Для того чтобы декодер 500 изображения мог быть применен в устройстве 200 декодирования видео, все элементы декодера 500 изображения, т.е., блок 510 анализа, энтропийный декодер 520, обратный квантователь 530, блок 540 обратного преобразования, блок 550 внутреннего предсказания, блок 560 компенсации движения, блок 570 удаления блочности, и блок 580 контурной фильтрации, выполняют операции на основании единиц кодирования с древовидной структурой для каждой максимальной единицы кодирования.
В частности, блок 550 внутреннего предсказания и блок 560 компенсации движения выполняют операции на основании разделов и режима предсказания для каждой из единиц кодирования с древовидной структурой, а блок 540 обратного преобразования выполняет операции на основании размера единицы преобразования для каждой единицы кодирования.
Фиг. 6 является схемой, иллюстрирующей более глубокие единицы кодирования в соответствии с глубинами, и разделы, в соответствии с вариантом осуществления настоящего изобретения.
Устройство 100 кодирования видео и устройство 200 декодирования видео используют иерархические единицы кодирования с тем, чтобы учитывать характеристики изображения. Максимальная высота, максимальная ширина, и максимальная глубина единиц кодирования может адаптивно определяться в соответствии с характеристиками изображения, или может по-разному устанавливаться пользователем. Размеры более глубоких единиц кодирования в соответствии с глубинами могут быть определены в соответствии с предварительно определенным максимальным размером единицы кодирования.
В иерархической структуре 600 единиц кодирования, в соответствии с вариантом осуществления настоящего изобретения, максимальная высота и максимальная ширина единиц кодирования, каждая равны 64, а максимальная глубина равна 4. По мере того, как глубина становится глубже вдоль вертикальной оси иерархической структуры 600, разбиваются как высота, так и ширина более глубокой единицы кодирования. Также, вдоль горизонтальной оси иерархической структуры 600 показаны единица предсказания и разделы, которые являются основой для кодирования с предсказанием каждой более глубокой единицы кодирования.
Другими словами, единица 610 кодирования является максимальной единицей кодирования в иерархической структуре 600, при этом глубина равна 0, а размер, т.е. высота на ширину, равен 64x64. Глубина становится глубже вдоль вертикальной оси, и существуют: единица 620 кодирования с размером 32x32 и глубиной 1; единица 630 кодирования с размером 16x16 и глубиной 2; единица 640 кодирования с размером 8x8 и глубиной 3; и единица 650 кодирования с размером 4x4 и глубиной 4. Единица 650 кодирования с размером 4x4 и глубиной 4 является минимальной единицей кодирования.
Единица предсказания и разделы единицы кодирования организованы вдоль горизонтальной оси в соответствии с каждой глубиной. Другими словами, если единицей предсказания является единица 610 кодирования с размером 64x64 и глубиной 0, то единица предсказания может быть разбита на разделы, включенные в единицу 610 кодирования, т.е., раздел 610 с размером 64x64, разделы 612 с размером 64x32, разделы 614 с размером 32x64, или разделы 616 с размером 32x32.
Подобным образом, единица предсказания единицы 620 кодирования с размером 32x32 и глубиной 1 может быть разбита на разделы, включенные в единицу 620 кодирования, т.е., раздел 620 с размером 32x32, разделы 622 с размером 32x16, разделы 624 с размером 16x32, и разделы 626 с размером 16x16.
Подобным образом, единица предсказания единицы 630 кодирования с размером 16x16 и глубиной 2 может быть разбита на разделы, включенные в единицу 630 кодирования, т.е., раздел с размером 16x16, включенный в единицу 630 кодирования, разделы 632 с размером 16x8, разделы 634 с размером 8x16, и разделы 636 с размером 8x8.
Подобным образом, единица предсказания единицы 640 кодирования с размером 8x8 и глубиной 3 может быть разбита на разделы, включенные в единицу 640 кодирования, т.е., раздел с размером 8x8, включенный в единицу 640 кодирования, разделы 642 с размером 8x4, разделы 644 с размером 4x8, и разделы 646 с размером 4x4.
Единица 650 кодирования с размером 4x4 и глубиной 4 является минимальной единицей кодирования и единицей кодирования наинизшей глубины. Единица предсказания единицы 650 кодирования назначается только разделу с размером 4x4.
Для того чтобы определить по меньшей мере одну кодированную глубину единиц кодирования, составляющих максимальную единицу 610 кодирования, блок 120 определения единицы кодирования устройства 100 кодирования видео выполняет кодирование для единиц кодирования, соответствующих каждой глубине, включенной в максимальную единицу 610 кодирования.
Количество более глубоких единиц кодирования в соответствии с глубинами, включающих в себя данные в одном и том же диапазоне и одном и том же размере, растет по мере того как глубина становится глубже. Например, четыре единицы кодирования, соответствующие глубине равной 2, требуются для охвата данных, которые включены в одну единицу кодирования, соответствующую глубине равной 1. Соответственно, для того чтобы сравнить результаты кодирования одинаковых данных в соответствии с глубинами, кодируется как единица кодирования соответствующая глубине равной 1, так и четыре единицы кодирования, соответствующие глубине равной 2.
Для того чтобы выполнить кодирование для текущей глубины из числа глубин, наименьшая ошибка кодирования может быть выбрана для текущей глубины посредством выполнения кодирования для каждой единицы предсказания в единицах кодирования, соответствующих текущей глубине, вдоль горизонтальной оси иерархической структуры 600. В качестве альтернативы, поиск минимальной ошибки кодирования может осуществляться посредством сравнения минимальных ошибок кодирования в соответствии с глубинами, посредством выполнения кодирования для каждой глубины по мере того как глубина становится глубже вдоль вертикальной оси иерархической структуры 600. Глубина и раздел с минимальной ошибкой кодирования в единице 610 кодирования могут быть выбраны в качестве кодированной глубины и типа раздела единицы 610 кодирования.
Фиг. 7 является схемой для описания зависимости между единицей 710 кодирования и единицами 720 преобразования, в соответствии с вариантом осуществления настоящего изобретения.
Устройство 100 кодирования видео или устройство 200 декодирования видео кодирует или декодирует изображение в соответствии с единицами кодирования с размерами, которые меньше либо равны максимальной единице кодирования для каждой максимальной единицы кодирования. Размеры единиц преобразования для преобразования во время кодирования могут быть выбраны на основании единиц данных, которые не больше соответствующей единицы кодирования.
Например, в устройстве 100 кодирования видео или устройстве 200 декодирования видео, если размер единицы 710 кодирования равен 64x64, то преобразование может быть выполнено посредством использования единиц 720 преобразования с размером 32x32.
Также, данные единицы 710 кодирования с размером 64x64 могут быть закодированы посредством выполнения преобразования над каждой из единиц преобразования с размером 32x32, 16x16, 8x8, и 4x4, которые меньше 64x64, и затем может быть выбрана единица преобразования с наименьшей ошибкой кодирования.
Фиг. 8 является схемой для описания информации кодирования единиц кодирования, соответствующих кодированной глубине, в соответствии с вариантом осуществления настоящего изобретения.
Блок 130 вывода устройства 100 кодирования видео может закодировать и передать информацию 800 о типе раздела, информацию 810 о режиме предсказания, и информацию 820 о размере единицы преобразования для каждой единицы кодирования, соответствующей кодированной глубине, в качестве информации о режиме кодирования.
Информация 800 указывает информацию о форме раздела, полученного посредством разбиения единицы предсказания текущей единицы кодирования, при этом раздел является единицей данных для кодирования с предсказанием текущей единицы кодирования. Например, текущая единица CU_0 кодирования с размером 2Nx2N может быть разбита на любой из разделов: раздел 802, с размером 2Nx2N; раздел 804 с размером 2NxN; раздел 806 с размером Nx2N; и раздел 808 с размером NxN. Здесь, информация 800 о типе раздела устанавливается для того, чтобы указать один из разделов: раздел 804 с размером 2NxN; раздел 806 с размером Nx2N; и раздел 808 с размером NxN.
Информация 810 указывает режим предсказания каждого раздела. Например, информация 810 может указывать режим кодирования с предсказанием, выполняемый над разделом, который указывается информацией 800, т.е., внутрикадровый режим 812, межкадровый режим 814, или режим 816 пропуска.
Информация 820 указывает единицу преобразования, на которой должно основываться преобразование, когда преобразование выполняется над текущей единицей кодирования. Например, единица преобразования может быть первой внутрикадровой единицей 822 преобразования, второй внутрикадровой единицей 824 преобразования, первой межкадровой единицей 826 преобразования, или второй межкадровой единицей 828 преобразования.
Блок 220 извлечения данных изображения и информации кодирования устройства 200 декодирования видео может извлекать и использовать информацию 800, 810, и 820 для декодирования, в соответствии с каждой более глубокой единицей кодирования.
Фиг. 9 является схемой более глубоких единиц кодирования в соответствии с глубинами, в соответствии с вариантом осуществления настоящего изобретения.
Информация разбиения может быть использована для указания изменения глубины. Информация разбиения указывает на то, разбита ли единица кодирования текущей глубины на единицы кодирования более низкой глубины.
Единица 910 предсказания для кодирования с предсказанием единицы 900 кодирования с глубиной 0 и размером 2N_0x2N_0 может включать в себя разделы с: типом 912 раздела с размером 2N_0x2N_0, типом 914 раздела с размером 2N_0xN_0, типом 916 раздела с размером N_0x2N_0, и типом 918 раздела с размером N_0xN_0. Фиг. 9 иллюстрирует лишь типы с 912 по 918 раздела, которые получены посредством симметричного разбиения единицы 910 предсказания, однако тип раздела не ограничивается ими, и разделы единицы 910 предсказания могут включать в себя ассиметричные разделы, разделы с предварительно определенной формой, и разделы с геометрической формой.
Кодирование с предсказанием неоднократно выполняется над одним разделом с размером 2N_0x2N_0, двумя разделами с размером 2N_0xN_0, двумя разделами с размером N_0x2N_0, и четырьмя разделами с размером N_0xN_0, в соответствии с каждым типом раздела. Кодирование с предсказанием при внутреннем режиме и внешнем режиме может быть выполнено над разделами с размерами 2N_0x2N_0, N_0x2N_0, 2N_0xN_0, и N_0xN_0. Кодирование с предсказанием в режиме пропуска выполняется только над разделом с размером 2N_0x2N_0.
Если ошибка кодирования является наименьшей при одном из типов с 912 по 916 раздела, то единица 910 предсказания может не разбиваться на более низкую глубину.
Если ошибка кодирования является наименьшей при типе 918 раздела, то глубина меняется с 0 на 1 для разбиения типа 918 раздела на операции 920, и кодирование повторно выполняется над единицами 930 кодирования с глубиной 2 и размером N_0xN_0 для поиска минимальной ошибки кодирования.
Единица 940 предсказания для кодирования с предсказанием единицы 930 кодирования с глубиной 1 и размером 2N_1x2N_1 (=N_0xN_0) может включать в себя разделы типа 942 раздела с размером 2N_1x2N_1, типа 944 раздела с размером 2N_1xN_1, типа 946 раздела с размером N_1x2N_1, и типа 948 раздела с размером N_1xN_1.
Если ошибка кодирования наименьшая при типе 948 раздела, то глубина меняется с 1 на 2 для разбиения типа 948 раздела на операции 950, и кодирование повторно выполняется над единицами 960 кодирования, с глубиной 2 и размером N_2xN_2 для поиска минимальной ошибки кодирования.
Когда максимальной глубиной является d, то операция разбиения в соответствии с глубиной может быть выполнена вплоть до того как глубина станет d-1, и информация разбиения может быть закодирована тогда, когда глубина равна одной из от 0 до d-2. Другими словами, когда кодирование выполняется вплоть до того, когда глубина равна d-1, после того как единица кодирования, соответствующая глубине d-2 разбивается на операции 970, то единица 990 предсказания для кодирования с предсказанием единицы 980 кодирования с глубиной d-1 и размером 2N_(d-1)x2N_(d-1) может включать в себя разделы типа 992 раздела с размером 2N_(d-1)x2N_(d-1), типа 994 раздела с размером 2N_(d-1)xN_(d-1), типа 996 раздела с размером N_(d-1)x(2N_d-1), и типа 998 раздела с размером N_(d-1)xN_(d-1).
Кодирование с предсказанием может неоднократно выполняться над одним разделом с размером 2N_(d-1)x2N_(d-1), двумя разделами с размером 2N_(d-1)xN_(d-1), двумя разделами с размером N_(d-1)x2N_(d-1), четырьмя разделами с размером N_(d-1)xN(d-1) из числа типов с 992 по 998 раздела для поиска типа раздела с минимальной ошибкой кодирования.
Даже когда тип 998 раздела имеет минимальную ошибку кодирования, поскольку максимальная глубина равна d, то единица CU_(d-1) кодирования с глубиной d-1 более не разбивается на более низкую глубину, и кодированная глубина для единиц кодирования, составляющих текущую максимальную единицу 900 кодирования определяется как d-1 и тип раздела текущей максимальной единицы 900 кодирования может быть определен как N_(d-1)xN_(d-1). Также, поскольку максимальная глубина равна d и минимальная единица 980 кодирования с наинизшей глубиной равной d-1 более не разбивается на более низкую глубину, то информация разбиения для минимальной единицы 980 кодирования не устанавливается.
Единица 999 данных может быть «минимальной единицей» для текущей максимальной единицы кодирования. Минимальная единица в соответствии с вариантом осуществления настоящего изобретения может быть квадратной единицей данных, полученной посредством разбиения минимальной единицы 980 кодирования на 4. Посредством выполнения кодирования неоднократно, устройство 100 кодирования видео может выбрать глубину с наименьшей ошибкой кодирования посредством сравнения ошибок кодирования в соответствии с глубинами единицы 900 кодирования для определения кодированной глубины, и установления соответствующего типа раздела и режима предсказания в качестве режима кодирования кодированной глубины.
По существу, минимальные ошибки кодирования в соответствии с глубинами сравниваются при всех глубинах от 1 до d, и глубина с наименьшей ошибкой кодирования может быть определена в качестве кодированной глубины. Кодированная глубина, тип раздела единицы предсказания, и режим предсказания могут быть закодированы и переданы в качестве информации о режиме кодирования. Также, поскольку единица кодирования разбивается с глубины равной 0 до кодированной глубины, то только информация разбиения кодированной глубины устанавливается равной 0, а информация разбиения глубин за исключением кодированной глубины устанавливается равной 1.
Блок 220 извлечения данных изображения и информации кодирования устройства 200 декодирования видео может извлекать и использовать информацию о кодированной глубине и единице предсказания единицы 900 кодирования, для декодирования раздела 912. Устройство 200 декодирования видео может определять глубину, при которой информация разбиения равна 0, в качестве кодированной глубины посредством использования информации разбиения в соответствии с глубинами, и использовать информацию о режиме кодирования соответствующей глубины для декодирования.
Фиг. с 10 по 12 являются схемами для описания зависимости между единицами 1010 кодирования, единицами 1060 предсказания, и единицами 1070 преобразования, в соответствии с вариантом осуществления настоящего изобретения.
Единицы 1010 кодирования являются единицами кодирования с древовидной структурой, соответствующими кодированным глубинами, которые определены устройством 100 кодирования видео, в максимальной единице кодирования. Единицы 1060 предсказания являются разделами единиц предсказания каждой из единиц 1010 кодирования, а единицы 1070 преобразования являются единицами преобразования каждой из единиц 1010 кодирования.
Когда глубина максимальной единицы кодирования равна 0 в единицах 1010 кодирования, то глубины единиц 1012 и 1054 кодирования равны 1, глубины единиц 1014, 1016, 1018, 1028, 1050, и 1052 кодирования равны 2, глубины единиц 1020, 1022, 1024, 1026, 1030, 1032, и 1048 кодирования равны 3, а глубины единиц 1040, 1042, 1044, и 1046 кодирования равны 4.
В единицах 1060 предсказания, некоторые единицы 1014, 1016, 1022, 1032, 1048, 1050, 1052, и 1054 кодирования получены посредством разбиения единиц кодирования в единицах 1010 кодирования. Другими словами, типы раздела в единицах 1014, 1022, 1050, и 1054 кодирования имеют размер 2NxN, типы раздела в единицах 1016, 1048, и 1052 кодирования имеют размер Nx2N, и тип раздела единицы 1032 кодирования имеет размер NxN. Единицы предсказания и разделы единиц 1010 кодирования меньше либо равны каждой единице кодирования.
Преобразование или обратное преобразование выполняется над данными изображения единицы 1052 кодирования в единицах 1070 преобразования в единице данных, которая меньше единицы 1052 кодирования. Также, единицы 1014, 1016, 1022, 1032, 1048, 1050, и 1052 кодирования в единицах 1070 преобразования отличаются от тех, что присутствуют в единицах 1060 предсказания по размерам и формам. Другими словами, устройства 100 и 200 кодирования и декодирования видео могут выполнять внутреннее предсказание, оценку движения, компенсацию движения, преобразование, и обратное преобразование индивидуально над единицей данных в одной и той же единице кодирования.
Соответственно, кодирование рекурсивно выполняется над каждой из единиц кодирования с иерархической структурой в каждой области максимальной единицы кодирования для определения оптимальной единицы кодирования, и, следовательно, могут быть получены единицы кодирования с рекурсивной древовидной структурой. Информация кодирования может включать в себя информацию разбиения о единице кодирования, информацию о типе раздела, информацию о режиме предсказания, и информацию о размере единицы преобразования. Таблица 1 показывает информацию кодирования, которая может быть установлена устройствами 100 и 200 кодирования и декодирования видео.
<b>Таблица 1</b>
Информация разбиения 0(Кодирование единицы кодирования с размером 2Nx2N и текущей глубиной равной d)
Информация разбиения 1
Режим предсказания
Тип раздела
Размер единицы преобразования
Неоднократно кодируют единицы кодирования с более низкой глубиной равной d+1
ВнутрикадровыйМежкадровыйПропуска (только 2Nx2N)
Симметрич-ный тип раздела
Асимметрич-ный тип раздела
Информация разбиения 0 единицы преобразова-ния
Информация разбиения 1 единицы преобразова-ния
2Nx2N2NxNNx2NNxN
2NxnU2NxnDnLx2NnRx2N
2Nx2N
NxN(Симметрич-ный тип)N/2xN/2(Асимметрич-ный тип)
Блок 130 вывода устройства 100 кодирования может выводить информацию кодирования о единицах кодирования с древовидной структурой, а блок 220 извлечения данных изображения и информации кодирования устройства 200 декодирования видео может извлекать информацию кодирования о единицах кодирования с древовидной структурой из принимаемого битового потока.
Информация разбиения указывает на то, разбита ли текущая единица кодирования на единицы кодирования более низкой глубины. Если информация разбиения текущей глубины d равна 0, то глубина, при которой текущая единица кодирования более не разбивается на более низкую глубину, является кодированной глубиной, и, следовательно, информация о типе разбиения, режиме предсказания, и размере единицы преобразования может быть определена для кодированной глубины. Если текущая единица кодирования дополнительно разбивается в соответствии с информацией разбиения, то кодирование независимо выполняется над четырьмя разбитыми единицами кодирования более низкой глубины.
Режим предсказания может быть одним из режимов: внутрикадровым режимом, межкадровым режимом, и режимом пропуска. Внутрикадровый режим и межкадровый режим могут быть определены во всех типах раздела, а режим пропуска определяется только в типе раздела с размером 2Nx2N.
Информация о типе раздела может указывать симметричные типы раздела с размерами 2Nx2N, 2NxN, Nx2N, и NxN, которые получены посредством симметричного разбиения высоты или ширины единицы предсказания, ассиметричные типы раздела с размерами 2NxnU, 2NxnD, nLx2N, и nRx2N, которые получены посредством ассиметричного разбиения высоты и ширины единицы предсказания. Ассиметричные типы раздела с размерами 2NxnU и 2NxnD могут быть соответственно получены посредством разбиения высоты единицы предсказания в пропорции 1:3 или 3:1, а ассиметричные типы раздела с размерами nLx2N и nRx2N могут быть соответственно получены посредством разбиения ширины единицы предсказания в пропорции 1:3 и 3:1.
Размер единицы преобразования может быть установлен как два типа при внутреннем режиме и как два типа при внешнем режиме. Другими словами, если информация разбиения единицы преобразования равна 0, то размер единицы преобразования может быть 2Nx2N, который является размером текущей единицы кодирования. Если информация разбиения единицы преобразования равна 1, то единицы преобразования могут быть получены посредством разбиения текущей единицы кодирования. Также, если тип раздела текущей единицы кодирования с размером 2Nx2N является симметричным типом раздела, то размер единицы преобразования может быть NxN, а если тип раздела текущей единицы кодирования является ассиметричным типом раздела, то размер единицы преобразования может быть N/2xN/2.
Информация кодирования о единицах кодирования с древовидной структурой может включать в себя по меньшей мере одну из единиц: единицу кодирования, соответствующую кодированной глубине, единицу предсказания, и минимальную единицу. Единица кодирования, соответствующая кодированной глубине может включать в себя по меньшей мере одну из единиц: единицу предсказания и минимальную единицу, содержащую точно такую же информацию кодирования.
Соответственно, определяется, включены ли соседние единицы данных в одну и ту же единицу кодирования, соответствующую кодированной глубине, посредством сравнения информации кодирования соседних единиц данных. Также, соответствующая единица кодирования, соответствующая кодированной глубине, определяется посредством использования информации кодирования единицы данных, и, следовательно, может быть определено распределение кодированных глубин в максимальной единице кодирования.
Соответственно, если текущая единица кодирования предсказывается на основании информации кодирования соседних единиц данных, то можно непосредственно обратиться и использовать информацию кодирования единиц данных в более глубоких единицах кодирования, соседних для текущей единицы кодирования.
В качестве альтернативы, если текущая единица кодирования предсказывается на основании информации кодирования соседних единиц данных, то выполняется поиск единиц данных соседних для текущей единицы кодирования, используя закодированную информацию единиц данных, и может быть выполнено обращение к найденным единицам кодирования для предсказания текущей единицы кодирования.
Фиг. 13 является схемой для описания зависимости между единицей кодирования, единицей предсказания или разделом, и единицей преобразования, в соответствии с информацией о режиме кодирования Таблицы 1.
Максимальная единица 1300 кодирования включает в себя единицы 1302, 1304, 1306, 1312, 1314, 1316, и 1318 кодирования кодированных глубин. Здесь, поскольку единица 1318 кодирования является единицей кодирования кодированной глубины, то информация разбиения может быть установлена равной 0. Информация о типе раздела единицы 1318 кодирования с размером 2Nx2N, может быть установлена таким образом, чтобы являться одним из типов: типом 1322 раздела с размером 2Nx2N, типом 1324 раздела с размером 2NxN, типом 1326 раздела с размером Nx2N, типом 1328 раздела с размером NxN, типом 1332 раздела с размером 2NxnU, типом 1334 раздела с размером 2NxnD, типом 1336 раздела с размером nLx2N, и типом 1338 раздела с размером nRx2N.
Когда тип раздела установлен как симметричный, т.е., тип 1322, 1324, 1326, или 1328 раздела, то устанавливается единица 1342 преобразования с размером 2Nx2N, если информация разбиения (флаг размера TU) единицы преобразования равен 0, и устанавливается единица 1344 преобразования с размером NxN, если флаг размера TU равен 1.
Когда тип раздела установлен как ассиметричный, т.е., тип 1332, 1334, 1336, или 1338 раздела, то устанавливается единица 1352 преобразования с размером 2Nx2N, если флаг размера TU равен 0, и устанавливается единица 1354 преобразования с размером N/2xN/2, если флаг размера TU равен 1.
Ниже, подробно будет описано внутреннее предсказание, выполняемое над единицей предсказания блоком 410 внутреннего предсказания устройства 100 кодирования видео с Фиг. 4 и блоком 550 внутреннего предсказания устройства 200 декодирования видео с Фиг. 5.
Блоки 410 и 550 внутреннего предсказания выполняют внутреннее предсказание для получения значения предсказания текущей единицы предсказания посредством использования соседних пикселей текущей единицы предсказания. Учитывая, что единица предсказания имеет размер равный или выше чем 16x16, блоки 410 и 550 внутреннего предсказания дополнительно выполняют режим внутреннего предсказания с различными направленностями, используя параметр (dx, dy), как впрочем, и режим внутреннего предсказания с ограниченной направленностью в соответствии с родственной областью техники. Режим внутреннего предсказания с различными направленностями в соответствии с вариантом осуществления настоящего изобретения, будет подробно описан позже.
Также, для того чтобы получить предсказатель текущего пикселя, блоки 410 и 550 внутреннего предсказания могут формировать предсказатель P1 с помощью линейной интерполяции в горизонтальном направлении текущего пикселя и предсказатель P2 с помощью линейной интерполяции в вертикальном направлении текущего пикселя, и использовать среднее значение предсказателей P1 и P2 в качестве предсказателя текущего пикселя. Режим внутреннего предсказания для формирования предсказателя текущего пикселя посредством объединения предсказателей, полученных с помощью линейной интерполяции в горизонтальном направлении и линейной интерполяции в вертикальном направлении, определяется в качестве планарного режима. В частности, блоки 410 и 550 внутреннего предсказания формируют виртуальный пиксель, используемый при линейной интерполяции в горизонтальном направлении, посредством использования по меньшей мере одного соседнего пикселя, расположенного выше справа по отношению к текущей единице предсказания, и виртуальный пиксель, используемый при линейной интерполяции в вертикальном направлении, посредством использования по меньшей мере одного соседнего пикселя, расположенного ниже слева по отношению к текущей единице предсказания, в планарном режиме. Планарный режим в соответствии с вариантом осуществления настоящего изобретения подробно описан позже.
Фиг. 14 является таблицей, показывающей количество режимов внутреннего предсказания в соответствии с размером единицы предсказания, в соответствии с вариантом осуществления настоящего изобретения.
Блоки 410 и 550 внутреннего предсказания могут по-разному устанавливать количество режимов внутреннего предсказания, которые должны применяться к единице предсказания в соответствии с размером единицы предсказания. Например, обращаясь к Фиг. 14, когда размером единицы предсказания, которая должна быть предсказана с помощью внутреннего предсказания, является NxN, то количество режимов внутреннего предсказания, фактически выполняемых над единицами предсказания с размерами 2x2, 4x4, 8x8, 16x16,32x32, 64x64, и 128x128, может быть соответственно установлено равным 5, 9, 9, 17, 33, 5, и 5 в Примере 2. Количество фактически выполняемых режимов внутреннего предсказания отличается в соответствии с размером единицы предсказания потому, что потери на кодирование информации о режиме предсказания отличаются в соответствии с размером единицы предсказания. Другими словами, даже, несмотря на то, что часть единицы предсказания, которую она занимает во всем изображении, небольшая, потери на передачу дополнительной информации, такой как режим предсказания такой небольшой единицы предсказания, могут быть большими. Соответственно, когда единица предсказания с небольшим размером кодируется во многих режимах предсказания, объем бит может расти, и, следовательно, может падать эффективность сжатия. Также, поскольку единица предсказания с большим размером, например, единица предсказания с размером равным или больше 64x64, как правило, в большинстве случаев выбирается в качестве единицы предсказания однородной области изображения, может быть недостаточным с точки зрения эффективности сжатия кодировать единицу предсказания с большим размером, который в большинстве случаев выбирается для кодирования однородной области, во многих режимах предсказания. Соответственно, когда размер единицы предсказания слишком большой или слишком маленький в сравнении с предварительно определенным размером, может применяться относительно небольшое количество режимов внутреннего предсказания. Тем не менее, количество режимов внутреннего предсказания, применяемое в соответствии с размером единицы предсказания, не ограничивается Фиг. 14, и может меняться. Количество режимов внутреннего предсказания, применяемое в соответствии с размером единицы предсказания, как показано на Фиг. 14, является лишь примером, и может меняться. В качестве альтернативы, количество режимов внутреннего предсказания, применяемое к единице предсказания, может быть всегда единообразным независимо от размера единицы предсказания.
-1
Блоки 410 и 550 внутреннего предсказания могут включать в себя, в качестве режима внутреннего предсказания, применяемого к единице предсказания, режим внутреннего предсказания, который определяет соседний опорный пиксель посредством использования линии с предварительно определенным углом на основании пикселя в единице предсказания, и используя определенный соседний опорный пиксель в качестве предсказателя пикселя. Угол такой линии может быть установлен посредством использования параметра (dx, dy), при этом dx и dy каждое является целым числом. Например, когда 33 режима предсказания соответственно определены как режимы N, при этом N является целым числом от 0 до 32, то режим 0 устанавливается как вертикальный режим, режим 1 устанавливается как горизонтальный режим, режим 2 устанавливается как режим DC, режим 3 устанавливается как плоский режим, а режим 32 устанавливается как планарный режим. Также, режимы с 4 по 31 могут быть определены как режимы внутреннего предсказания, определяющие соседний опорный пиксель посредством использования линии с направленностью tan(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, и используя определенный соседний опорный пиксель для внутреннего предсказания.
<b>Таблица 2</b>
Режим #
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 является планарным режимом.
Количество режимов внутреннего предсказания, используемое блоками 410 и 550 внутреннего предсказания, не ограничивается представленными в Таблице 2, и может меняться на основании того, является ли текущая единица предсказания составляющей цветности или составляющей яркости или на основании размера текущей единицы предсказания. Также, каждый режим N может обозначать режим внутреннего предсказания отличный от приведенного выше. Например, количество режимов внутреннего предсказания может быть равно 36, при этом режим 0 является планарным режимом, описываемым позже, режим 1 является режим 1 является режимом DC, режимы со 2 по 34 являются режимами внутреннего предсказания с 33 направленностями, как описывается позже, а режим 35 является режимом внутреннего предсказания Intra_FromLuma, использующий единицу предсказания в составляющей яркости, соответствующую единице предсказания в составляющей цветности. Режим 35, т.е., режим внутреннего предсказания Intra_FromLuma, использующий единицу предсказания в составляющей яркости, соответствующую единице предсказания в составляющей цветности, применяется только к единице предсказания в составляющей цветности, и не используется для внутреннего предсказания единицы предсказания в составляющей цветности.
Фиг. 15 является ссылочной схемой для описания режимов внутреннего предсказания с различными направленностями, в соответствии с вариантом осуществления настоящего изобретения.
-1
Как описано выше, блоки 410 и 550 внутреннего предсказания могут определять соседний опорный пиксель посредством использования линии с углом tan(dy/dx), который определяется множеством параметров (dx, dy), и выполнять внутреннее предсказание посредством использования определенного соседнего опорного пикселя.
-1
Обращаясь к Фиг. 15, соседние пиксели A и B, расположенные на линии 150 продолжения с углом tan(dy/dx), который определяется в соответствии со значением (dx, dy) в соответствии с режимами внутреннего предсказания Таблицы 2 на основании текущего пикселя P, который должен быть предсказан в текущей единице предсказания, могут быть использованы в качестве предсказателей текущего пикселя P. Здесь, соседний пиксель, используемый в качестве предсказателя, может быть пикселем предыдущей единицы предсказания, которая предварительно закодирована и предварительно сохранена, и может располагаться либо над, либо слева, либо выше справа, либо ниже слева по отношению к текущей единице предсказания. По существу, посредством выполнения кодирования с предсказанием в соответствии с режимами внутреннего предсказания с различными направленностями, сжатие может быть эффективно выполнено в соответствии с характеристиками изображения.
-1
На Фиг. 15, когда предсказатель текущего пикселя P формируется посредством использования соседнего пикселя, расположенного на или около линии 150 продолжения, линия 150 продолжения фактически имеет направленность tan(dy/dx) и деление (dy/dx) требуется для определения соседнего пикселя, используя линию 150 продолжения, и, следовательно, аппаратное обеспечение или программное обеспечение может включать в себя операцию с плавающей точкой, тем самым повышая требуемую производительность. Соответственно, когда направление предсказания для выбора опорного пикселя устанавливается посредством использования параметров (dx, dy), то dx и dy могут быть установлены таким образом, чтобы уменьшать требуемую производительность.
Фиг. 16 является схемой для описания зависимости между текущим пикселем и соседними пикселями, расположенными на линии продолжения с направленностью (dx, dy), в соответствии с вариантом осуществления настоящего изобретения.
-1
Обращаясь к Фиг. 16, P 1610 обозначает текущий пиксель, расположенный в позиции (j, i), а A 1611 и B 1612 соответственно обозначают соседний верхний пиксель и соседний левый пиксель, расположенные на линии продолжения с направленностью, т.е., углом tan(dy/dx), проходящей через текущий пиксель P 1610. Предполагается, что размер единицы предсказания, включающей в себя текущий пиксель P 1610, равен nSxnS, при этом nS является положительным целым числом, местоположение пикселя единицы предсказания соответствует одной из позиций от (0, 0) до (nS-1, nS-1), местоположение соседнего верхнего пикселя A 1611 по оси x соответствует (m, 1), при этом m является целым числом, а местоположение соседнего левого пикселя B 1612 по оси y соответствует (-1, n), при этом n является целым числом. Местоположение соседнего верхнего пикселя A 1611, пересекающегося с линией продолжения, проходящей через текущий пиксель P 1610, соответствует (j+i*dx/dy, -1), а местоположение соседнего левого пикселя B 1612 соответствует (-1, i+j*dy/dx). Соответственно, для того чтобы определить соседний верхний пиксель A 1611 или соседний левый пиксель B 1612, чтобы предсказать текущий пиксель P 1610, требуется операция деления, такая как dx/dy или dy/dx. Как описано выше, поскольку сложность операции деления высокая, скорость выполнения операции в программном обеспечении или аппаратном обеспечении может быть низкой. Соответственно, по меньшей мере, одно из dx и dy, указывающих направленность режима предсказания для определения соседнего пикселя, может быть представлено как значение степени 2. Другими словами, когда n и m каждое является целым числом, то dx и dy могут быть соответственно 2^n и 2^m.
Когда соседний левый пиксель B 1612 используется в качестве предсказателя текущего пикселя P 1610 и dx имеет значение 2^n, то операцией j*dy/dx, требуемой для определения (-1, i+j*dy/dx), т.е., местоположения соседнего левого пикселя B 1612, может быть (i*dy)/(2^n), и операция деления, использующая степень 2, может быть реализована посредством операции сдвига, такой как (i*dy)>>n, и, следовательно, уменьшая требуемую производительность.
Аналогичным образом, когда соседний верхний пиксель A 1611 используется в качестве предсказателя текущего пикселя P 1610 и dy имеет значение 2^m, то операцией i*dx/dy, требуемой для определения (j+i*dx/dy, -1), т.е., местоположения соседнего верхнего пикселя A 1611, может быть (i*dx)/(2^m), и операция деления, используя степень 2, может быть реализована посредством операции сдвига, такой как (i*dx)>>m.
Фиг. 17 и 18 являются схемами направлений режима внутреннего предсказания, в соответствии с вариантами осуществления настоящего изобретения.
Как правило, шаблоны прямых линий, показываемые в изображении или видеосигнале, в большинстве своем являются вертикальными или горизонтальные. Таким образом, когда режим внутреннего предсказания с различными направленностями определяется посредством использования параметра (dx, dy), то значения dx и dy могут быть определены следующим образом, для повышения эффективности кодирования изображения.
В частности, когда dy имеет фиксированное значение 2^m, абсолютное значение dx может быть установлено таким образом, что интервал между направлениями предсказания близкими к вертикальному направлению является узким, и интервал между режимами предсказания увеличивается по мере того, как направление предсказания становится ближе к горизонтальному направлению. Например, обращаясь к Фиг. 17, когда dy является 2^5, т.е. 32, dx может быть установлен равным 2, 5, 9, 13, 17, 21, 26, 32, -2, -5, -9, -13, -17, -21, -26, и -32, таким образом, что интервал между направлениями предсказания ближе к вертикальному направлению относительно узкий, и интервал между режимами предсказания увеличивается по мере того, как направление предсказания становится ближе к горизонтальному направлению.
Аналогичным образом, когда dx имеет фиксированное значение 2^n, абсолютное значение dy может быть установлено таким образом, что интервал между направлениями предсказания ближе к горизонтальному направлению уже, и интервал между режимами предсказания увеличивается по мере того как направление предсказания становится ближе к горизонтальному направлению. Например, обращаясь к Фиг. 18, когда dx равно 2^5, т.е. 32, dy может быть установлен равным 2, 5, 9, 13, 17, 21, 26, 32, -2, -5, -9, -13,-17, -21, -26, и -32, таким образом, что интервал между направлениями предсказания ближе к горизонтальному направлению относительно узкий, и интервал между режимами предсказания увеличивается по мере того, как направление предсказания становится ближе к вертикальному направлению.
Также, когда одно из значения dx и dy является фиксированным, другое значение может быть установлено таким образом, чтобы увеличиваться в соответствии с режимами предсказания. Например, когда значение dy фиксировано, то интервал между значениями dx может быть установлен таким образом, чтобы увеличиваться на предварительно определенное значение. Такое приращение может быть установлено в соответствии с углами, полученными путем деления сектора между горизонтальным направлением и вертикальным направлением. Например, когда dy является фиксированным, dx может иметь приращение a в секции, где угол с вертикальной осью меньше 15°, приращение b в секции, где угол находится между 15° и 30°, и приращение c в секции, где угол выше 30°.
-1
Например, режимы предсказания с направленностями tan(dy/dx), используя (dx, dy) могут быть определены параметрами (dx, dy), показанными в Таблицах с 3 по 5.
<b>Таблица 3</b>
dx
dy
dx
dy
dx
dy
-32
32
21
32
32
13
-26
32
26
32
32
17
-21
32
32
32
32
21
-17
32
32
-26
32
26
-13
32
32
-21
32
32
-9
32
32
-17
-5
32
32
-13
-2
32
32
-9
0
32
32
-5
2
32
32
-2
5
32
32
0
9
32
32
2
13
32
32
5
17
32
32
9
<b>Таблица 4</b>
dx
dy
dx
dy
dx
dy
-32
32
19
32
32
10
-25
32
25
32
32
14
-19
32
32
32
32
19
-14
32
32
-25
32
25
-10
32
32
-19
32
32
-6
32
32
-14
-3
32
32
-10
-1
32
32
-6
0
32
32
-3
1
32
32
-1
3
32
32
0
6
32
32
1
10
32
32
3
14
32
32
6
<b>Таблица 5</b>
dx
dy
dx
dy
dx
dy
-32
32
23
32
32
15
-27
32
27
32
32
19
-23
32
32
32
32
23
-19
32
32
-27
32
27
-15
32
32
-23
32
32
-11
32
32
-19
-7
32
32
-15
-3
32
32
-11
0
32
32
-7
3
32
32
-3
7
32
32
0
11
32
32
3
15
32
32
7
19
32
32
11
Как описано выше, режимы внутреннего предсказания, использующие параметры (dx, dy), используют соседний левый пиксель (-1, i+j*dy/dx) или соседний верхний пиксель (j+i*dx/dy, -1) в качестве предсказателя пикселя, расположенного в позиции (j, i). Когда, по меньшей мере, один из параметров dx и dy имеет значение в виде степени 2, как показано в Таблице 2, то местоположения соседнего левого пикселя (-1, i+j*dy/dx) и соседнего верхнего пикселя (j+i*dx/dy, -1) могут быть получены посредством только операций умножения и сдвига, не прибегая к операции деления. Когда dx является 2^n, т.е., 32, в (dx, dy), как показано в Таблице 2, операция деления, используя dx, может быть заменена операцией сдвига вправо, и, следовательно, местоположение соседнего левого пикселя может быть получено, не прибегая к операции деления, на основании (i*dy)>>n. Аналогичным образом, когда dy является 2^m, т.е., 32, в (dx, dy) как показано в Таблице 2, операция деления, используя dx, может быть заменена на операцию сдвига вправо, и, следовательно, местоположение соседнего верхнего пикселя может быть получено, не прибегая к операции деления, на основании (i*dx)>>m.
Фиг. 19 является схемой, показывающей направления режима внутреннего предсказания с 33 направленностями, в соответствии с вариантом осуществления настоящего изобретения.
Блоки 410 и 550 внутреннего предсказания могут определять соседний пиксель, который должен использоваться в качестве предсказателя текущего пикселя, в соответствии с режимами внутреннего предсказания с 33 направленностями, показанными на Фиг. 19. Как описано выше, направления режимов внутреннего предсказания могут быть установлены таким образом, что интервал между режимами предсказания уменьшается по мере приближения к горизонтальному или вертикальному направлению и увеличивается по мере отдаления от вертикального или горизонтального направления.
Фиг. 20A и 20B являются схемами для описания планарного режима в соответствии с вариантами осуществления настоящего изобретения.
Как описано выше, блоки 410 и 550 внутреннего предсказания формируют, в планарном режиме, виртуальный пиксель, используемый при линейной интерполяции в горизонтальном направлении посредством использования по меньшей мере одного соседнего пикселя, расположенного выше справа по отношению к текущей единице предсказания, и формируют виртуальный пиксель, используемый при линейной интерполяции в вертикальном направлении, посредством использования по меньшей мере одного соседнего пикселя, расположенного ниже слева по отношению к текущей единице предсказания. Также, блоки 410 и 550 внутреннего предсказания формируют значение предсказания текущего пикселя посредством использования среднего значения двух предсказателей, сформированных с помощью линейной интерполяции в горизонтальном и вертикальном направлениях, используя виртуальные пиксели и соседние пиксели.
Обращаясь к Фиг. 20A, блоки 410 и 550 внутреннего предсказания получают первый виртуальный пиксель 2012, расположенный на одной и той же строке, что и текущий предсказываемый пиксель 2011 в текущей единице 2010 предсказания, и соответствующий пикселю, расположенному крайним справа в текущей единице 2010 предсказания, посредством использования по меньшей мере одного соседнего пикселя 2020, расположенного выше справа по отношению к текущей единице 2010 предсказания. Количество соседних пикселей 2020, используемых для получения первого виртуального пикселя 2012, может быть предварительно определено. Например, блоки 410 и 550 внутреннего предсказания могут определять значение, формируемое посредством использования среднего значения или средневзвешенного значения из T1 2021 и T2 2022, которые являются исходными двумя верхними правыми соседними пикселями, в качестве первого виртуального пикселя 2012.
Также, блоки 410 и 550 внутреннего предсказания могут определять количество соседних пикселей 2020, используемых для получения первого виртуального пикселя 2012, на основании размера текущей единицы 2010 предсказания. Например, когда размер текущей единицы 2010 предсказания равен nSxnS, при этом nS является целым числом, то блоки 410 и 550 внутреннего предсказания могут выбирать nS/(2^m) верхних правых соседних пикселей из числа соседних пикселей 2020, используемых для получения первого виртуального пикселя 2012, при этом m является целым числом, удовлетворяющим условию, что 2^m не превышает nS, и получают первый виртуальный пиксель 2012, посредством использования среднего значения или средневзвешенного значения выбранных верхних правых соседних пикселей. Другими словами, блоки 410 и 550 внутреннего предсказания могут выбирать nS/2, nS/4, nS/8, и т.д., пикселей из числа соседних пикселей 2020. Например, когда размер текущей единицы 2010 предсказания составляет 32x32, блоки 410 и 550 внутреннего предсказания могут выбирать 32/2, 32/4, 32/8, 32/16, 32/32, т.е. от 1 до 16 верхних правых соседних пикселей.
Аналогичным образом, обращаясь к Фиг. 20B, блоки 410 и 550 внутреннего предсказания получают второй виртуальный пиксель 2014, расположенный в том же столбце, что и текущий предсказываемый пиксель 2011 в текущей единице 201 предсказания, и соответствующий пикселю, расположенному крайним снизу в текущей единице 2010 предсказания, посредством использования по меньшей мере одного соседнего пикселя 2030, расположенного ниже слева по отношению к текущей единице 2010 предсказания. Количество соседних пикселей 2030, используемых для получения второго виртуального пикселя 2014, может быть предварительно определено. Например, значение, формируемое посредством использование среднего значения или средневзвешенного значения из L1 2031 и L2 2032, которые являются двумя исходными нижними левыми соседними пикселями, может быть определено в качестве второго виртуального пикселя 2014.
Также, блоки 410 и 550 внутреннего предсказания могут определять количество соседних пикселей 2030, используемых для получения второго виртуального пикселя 2014, на основании размера текущей единицы 2010 предсказания. Как описано выше, когда размер текущей единицы 2010 предсказания составляет nSxnS, при этом nS является целым числом, блоки 410 и 550 внутреннего предсказания могут выбирать nS/(2^m) нижних левых соседних пикселей из числа соседних пикселей 2030, используемых для получения второго виртуального пикселя 2014, при этом m является целым числом, удовлетворяющим условию, что 2^m не превышает nS, и получать второй виртуальный пиксель 2014, используя среднее значение или средневзвешенное значение из выбранных нижних левых соседних пикселей.
Между тем, если соседние пиксели 2020 не могут быть использованы, из-за того, что включены в единицу предсказания, которая кодируется после текущей единицы 2010 предсказания, то блоки 410 и 550 внутреннего предсказания могут использовать пиксель T0 непосредственно слева от соседних пикселей 2020 в качестве первого виртуального пикселя 2012. С другой стороны, если соседние пиксели 2030 не могут быть использованы, из-за того, что включены в единицу предсказания, которая кодируется после текущей единицы 2010 предсказания, то блоки 410 и 550 внутреннего предсказания могут использовать пиксель L0 непосредственно над соседними пикселями 2030 в качестве второго виртуального пикселя 2014.
Вновь обращаясь к Фиг. 20A, блоки 410 и 550 внутреннего предсказания формируют первое значение p1 предсказания текущего предсказываемого пикселя 2011 посредством выполнения линейной интерполяции, используя среднее геометрическое значение, учитывающее расстояние между текущим предсказываемым пикселем 2011 и первым виртуальным пикселем 2012, полученным из соседних пикселей 2020, и расстояния между текущим предсказываемым пикселем 2011 и соседним левым пикселем 2013 на одной и той же строке, что и текущий предсказываемый пиксель 2011.
Когда значением пикселя соседнего левого пикселя 2013 является rec(-1, y), значением пикселя первого виртуального пикселя 2012, расположенного в позиции (nS-1, y) является T, при этом T является действительным числом, а значением предсказания текущего предсказываемого пикселя 2011 является p(x, y), при этом x, y= от 0 до nS-1, причем (x, y) обозначает местоположение текущего предсказываемого пикселя 2011 текущей единицы 201 предсказания, а rec(x, y) обозначает соседние пиксели текущей единицы 2010 предсказания, при этом (x, y= от 1 до 2*nS-1), то первое значение p1(x, y) предсказания может быть получено в соответствии с уравнение p1(x, y)=(nS-1-x)*rec(-1, y)+(x+1)*T. Здесь, (nS-1-x) соответствует расстоянию между текущим предсказываемым пикселем 2011 и первым виртуальным пикселем 2012, а (x+1) соответствует расстоянию между текущим предсказываемым пикселем 2011 и соседним левым пикселем 2013. По существу, блоки 410 и 550 внутреннего предсказания формируют первое значение p1 предсказания с помощью линейной интерполяции, используя расстояние между первым виртуальным пикселем 2012 и текущим предсказываемым пикселем 2011, расстояние между текущим предсказываемым пикселем 2011 и соседним левым пикселем 2013 в одной и той же строке, что и текущий предсказываемый пиксель 2011, значение пикселя первого виртуального пикселя 2012, и значение пикселя соседнего левого пикселя 2013.
Вновь обращаясь к Фиг. 20B, блоки 410 и 550 внутреннего предсказания формируют второе значение p2 предсказания текущего предсказываемого пикселя 2011 посредством выполнения линейной интерполяции, используя среднее геометрическое значение, учитывающее расстояние между текущим предсказываемым пикселем 2011 и вторым виртуальным пикселем 2014, полученным из соседних пикселей 2030, и расстояние между текущим предсказываемым пикселем 2011 и соседним верхним пикселем 2015 в том же столбце, что и текущий предсказываемый пиксель 2011.
Когда значением пикселя соседнего верхнего пикселя 2015 является rec(x, -1), значением пикселя второго виртуального пикселя 2014, расположенного в позиции (x, nS-1) является L, при этом L является действительным числом, а значением предсказания текущего предсказываемого пикселя 2011 является p(x, y), при этом x, y= от 0 до nS-1, при этом (x, y) обозначает местоположение текущего предсказываемого пикселя 2011 текущей единицы 2010 предсказания, а rec(x, y) обозначает соседние пиксели текущей единицы 2010 предсказания, при этом (x, y= от -1 до 2*nS-1), то второе значение p2(x, y) предсказания может быть получено в соответствии с уравнением p2(x, y)=(nS-1-y)*rec(x, -1)+(y+1)*L. Здесь, (nS-1-y) соответствует расстоянию между текущим предсказываемым пикселем 2011 и вторым виртуальным пикселем 2014, а (y+1) соответствует расстоянию между текущим предсказываемым пикселем 2011 и соседним верхним пикселем 2015. По существу, блоки 410 и 550 внутреннего предсказания формируют второе значение p2 предсказания с помощью линейной интерполяции, используя расстояние между вторым виртуальным пикселем 2014 и текущим предсказываемым пикселем 2011, расстояние между текущим предсказываемым пикселем 2011 и соседним верхним пикселем 2015 в том же столбце, что и текущий предсказываемый пиксель 2011, значение пикселя второго виртуального пикселя 2014, и значение пикселя соседнего верхнего пикселя 2015.
2
По существу, когда первое значение p1(x, y) предсказания и второе значение p2(x, y) предсказания получаются с помощью линейной интерполяции в горизонтальном и вертикальном направлениях, блоки 410 и 550 внутреннего предсказания получают значение p(x, y) предсказания текущего предсказываемого пикселя 2011 посредством использования среднего значения из первого значения p1(x, y) предсказания и второго значения p2(x, y) предсказания. Подробнее, блоки 410 и 550 предсказания могут получать значение p(x, y) предсказания текущего предсказываемого пикселя 2011 посредством использования уравнения p(x, y)={p1(x, y)+p2(x, y)+nS}>>(k+1), при этом k является lognS.
В качестве альтернативы, блоки 410 и 550 внутреннего предсказания могут получать первый виртуальный пиксель и второй виртуальный пиксель посредством использования отфильтрованного соседнего верхнего правого пикселя и отфильтрованного соседнего нижнего левого пикселя вместо использования соседнего верхнего правого пикселя и соседнего нижнего левого пикселя как они есть.
Фиг. 21 является схемой, показывающей соседние пиксели 2110 и 2120, которые отфильтрованы вокруг текущей единицы 2100 предсказания, в соответствии с вариантом осуществления настоящего изобретения.
Обращаясь к Фиг. 21, блоки 410 и 550 внутреннего предсказания формируют отфильтрованные соседние пиксели посредством выполнения фильтрации, по меньшей мере, один раз над X соседними пикселями 2110 над текущей единицей 2100 предсказания, в отношении которой в настоящей момент выполняется внутреннее предсказание, и Y соседними пикселями 2120 слева от текущей единицы 2100 предсказания. Здесь, когда размер текущей единицы 2100 предсказания составляет nSxnS, то X может быть 2nS, и Y может быть 2nS.
Когда ContextOrg[n] обозначает X+Y исходные соседние пиксели сверху и слева от текущей единицы 2100 предсказания с размером nSxnS, при этом n является целым числом от 0 до X+Y-1, то n равно 0 в соседнем самом низком пикселе из числа соседних левых пикселей, т.е. ContextOrg[0] и n равно X+Y-1 в соседнем крайнем правом пикселе из числа соседних верхних пикселей, т.е., ContextOrg[X+Y-1].
Фиг. 22 является ссылочной схемой для описания процесса фильтрации соседнего пикселя.
Обращаясь к Фиг. 22, когда ContextOrg[n] обозначает соседние пиксели сверху и слева от текущей единицы предсказания, при этом n является целым числом от 0 до 4nS-1, то исходные соседние пиксели могут быть отфильтрованы через средневзвешенное значение из исходных соседних пикселей. Когда ContextFiltered1[n] обозначает однократно отфильтрованный соседний пиксель, то соседние пиксели, отфильтрованные посредством применения фильтра с 3 отводами к исходным соседним пикселям ContextOrg[n], могут быть получены в соответствии с уравнением ContextFiltered1[n]=(ContextOrg[n-1]+2*ContextOrg[n]+ContextOrg [n+1])/4. Аналогичным образом, двукратно отфильтрованный соседний пиксель ContextFiltered2[n] может быть сформирован посредством вновь вычисления средневзвешенного значения из однократно отфильтрованных соседних пикселей ContextFiltered1[n]. Например, соседние пиксели, отфильтрованные посредством применения фильтра с 3 отводами к отфильтрованным соседним пикселям ContextFiltered1[n], могут быть сформированы в соответствии с уравнением ContextFiltered2[n]=(ContextFiltered1 [n-1]+2*ContextFiltered1[n]+ContextFiltered1[n+1])/4.
В качестве альтернативы, соседние пиксели могут быть отфильтрованы посредством использования любого из разнообразных способов, и затем, как описано выше, блоки 410 и 550 внутреннего предсказания могут получить первый виртуальный пиксель из по меньшей мере одного соседнего отфильтрованного верхнего правого пикселя, получить второй виртуальный пиксель из по меньшей мере одного соседнего отфильтрованного нижнего левого пикселя, и затем сформировать значение предсказания текущего фильтра с помощью линейной интерполяции, как описано выше. Использование соседних отфильтрованных пикселей может быть определено на основании размера текущей единицы предсказания. Например, соседние отфильтрованные пиксели могут быть использованы только тогда, когда размер текущей единицы предсказания равен или больше 16x16.
Фиг. 23 является блок-схемой, иллюстрирующей способ внутреннего предсказания в соответствии с планарным режимом, в соответствии с вариантом осуществления настоящего изобретения.
На операции 2310, блоки 410 и 550 внутреннего предсказания получают первый виртуальный пиксель, расположенный в той же строке, что и текущий предсказываемый пиксель текущей единицы предсказания, и соответствующий пикселю, расположенному крайним справа в текущей единице предсказания, посредством использования по меньшей мере одного соседнего пикселя, расположенного выше справа по отношению к текущей единице предсказания. Как описано выше, количество соседних пикселей, используемых для получения первого виртуального пикселя может быть предварительно определено или определяться на основании размера текущей единицы предсказания.
На операции 2320, блоки 410 и 550 внутреннего предсказания получают второй виртуальный пиксель, расположенный в том же столбце, что и текущий предсказываемый пиксель, и соответствующий пикселю, расположенному крайним снизу в текущей единице предсказания, посредством использования по меньшей мере одного соседнего пикселя, расположенного ниже слева по отношению к текущей единице предсказания. Как описано выше, количество соседних пикселей, используемых для получения второго виртуального пикселя может быть предварительно определено или определяться на основании размера текущей единицы предсказания.
На операции 2330, блоки 410 и 550 внутреннего предсказания получают первое значение предсказания текущего предсказываемого пикселя с помощью линейной интерполяции, используя первый виртуальный пиксель и соседний левый пиксель, расположенный в той же строке, что и текущий предсказываемый пиксель. Как описано выше, когда местоположением текущего предсказываемого пикселя является (x, y), при этом x и y каждое может принимать значение от 0 до nS-1, соседним пикселем текущей единицы предсказания является rec(x, y), при этом x и y каждое может принимать значение от -1 до 2*nS-1, значением пикселя соседнего левого пикселя является rec(-1, y), значением пикселя первого виртуального пикселя, расположенного в позиции (nS-1, y) является T, при этом T является действительным числом, и значением предсказания текущего предсказываемого пикселя является p(x, y), при этом x и y каждое может принимать значение от 0 до nS-1, то первое значение p1(x, y) предсказания может быть получено в соответствии с уравнением p1(x, y)=(nS-1-x)*rec(-1, y)+(x+1)*T.
На операции 2340, блоки 410 и 550 внутреннего предсказания получают второе значение предсказания текущего предсказываемого пикселя с помощью линейной интерполяции, используя второй виртуальный пиксель и соседний верхний пиксель, расположенный в том же столбце, что и текущий предсказываемый пиксель. Когда значением пикселя соседнего правого пикселя является rec(x, -1) и значением пикселя второго виртуального пикселя, расположенного в позиции (x, nS-1) является L, при этом L является действительным числом, то второе значение p2(x, y) предсказания может быть получено в соответствии с уравнением p2(x, y)=(nS-1-y)*rec(x, -1)+(y+1)*L.
2
На операции 2350, блоки 410 и 550 внутреннего предсказания получают значение предсказания текущего предсказываемого пикселя посредством использования первого и второго значений предсказания. Как описано выше, когда первое и второе значения p1(x, y) и p2(x, y) предсказания получаются с помощью линейной интерполяции в горизонтальном и вертикальном направлениях, блоки 410 и 550 внутреннего предсказания получают значение p(x, y) предсказания текущего предсказываемого пикселя посредством использования среднего значения из первого и второго значений p1(x, y) и p2(x, y) предсказания. Подробнее, блоки 410 и 550 внутреннего предсказания могут получать значение p(x, y) предсказания в соответствии с уравнение p(x, y)={p1(x, y)+p2(x, y)+nS}>>(k+1), при этом k является lognS.
В соответствии с одним или более вариантами осуществления настоящего изобретения, эффективность кодирования изображения может быть повышена посредством применения оптимального способа предсказания в соответствии с характеристиками изображения с помощью различных способов внутреннего предсказания, использующих соседние пиксели.
Варианты осуществления настоящего изобретения могут быть написаны в качестве компьютерных программ и могут быть реализованы в цифровых компьютерах общего назначения, которые исполняют программы посредством использования машиночитаемого носителя записи. Примеры машиночитаемого носителя записи включают в себя магнитные носители информации (например, ROM, гибкие диски, жесткие диски, и т.д.), оптические носители записи (например, CD-ROM, или DVD), и носители информации.
Несмотря на то, что изобретение в частности было показано и описано со ссылкой на его предпочтительные варианты осуществления, специалистам в соответствующей области будет понятно, что различные изменения по форме и в деталях могут быть выполнены здесь, не отступая от сущности и объема изобретения, как определено прилагаемой формулой изобретения. Предпочтительные варианты осуществления должны рассматриваться лишь в духе описания, а не в целях ограничения. Вследствие этого, объем изобретения определяется не подробным описанием изобретения, а прилагаемой формулой изобретения, и все отличия в рамках объема будут толковаться как включенные в настоящее изобретение.