СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ ВИДЕО И СПОСОБ И УСТРОЙСТВО ДЛЯ ДЕКОДИРОВАНИЯ ВИДЕО
VIDEO ENCODING METHOD AND APPARATUS AND VIDEO DECODING METHOD AND APPARATUS

Область техники, к которой относится изобретение
Характерные варианты осуществления относятся к способу и устройству для кодирования видео и к способу и устройству для декодирования видео, выполненным с возможностью улучшения эффективности сжатия видео посредством выполнения внутрикадрового (intra) предсказания с помощью отфильтрованных соседних пикселей.
Уровень техники
В способах сжатия видео, таких как MPEG-1, MPEG-2, MPEG-4 и H.264/MPEG-4 Расширенное Кодирование Видео (AVC), чтобы закодировать видео один кадр разбивается на макроблоки. После этого, каждый макроблок кодируется в соответствии со всеми режимами кодирования, доступными в межкадровом (inter) предсказании или внутрикадровом предсказании, и затем, чтобы закодировать макроблок, выбирается один режим кодирования в соответствии с требуемым скоростью передачи битов для кодирования макроблока и искажением между исходным макроблоком и декодированным макроблоком.
По мере того как разрабатывается и предлагается аппаратное обеспечение для воспроизведения и хранения видеоконтента с высоким разрешением или высоким качеством, растет потребность в видеокодеке для эффективного кодирования или декодирования видеоконтента с высоким разрешением или высоким качеством. В обычном видеокодеке, видео кодируется в соответствии с ограниченным режимом предсказания, основанным на макроблоке, заранее определенного размера.
Раскрытие изобретения
Техническая задача
В обычном видеокодеке, видео кодируется в соответствии с ограниченным режимом предсказания, основанным на макроблоке, заранее определенного размера.
Решение задачи
Характерные варианты осуществления предоставляют способ и устройство для кодирования видео и способ и устройство для декодирования видео, выполненные с возможностью улучшения эффективности сжатия видео посредством фильтрации соседних пикселей текущего блока и выполнения внутрикадрового предсказания текущего блока при помощи отфильтрованных соседних пикселей.
Преимущественный результат изобретения
В соответствии с настоящим изобретением может быть улучшена эффективность кодирования.
Краткое описание чертежей
Фиг.1 является структурной схемой устройства для кодирования видео, в соответствии с характерным вариантом осуществления.
Фиг.2 является структурной схемой устройства для декодирования видео в соответствии с характерным вариантом осуществления.
Фиг.3 является схемой для описания концепции единиц кодирования в соответствии с характерным вариантом осуществления.
Фиг.4 является структурной схемой кодировщика изображения, основанного на единицах кодирования в соответствии с характерным вариантом осуществления.
Фиг.5 является структурной схемой декодера изображения, основанного на единицах кодирования в соответствии с характерным вариантом осуществления.
Фиг.6 является схемой, иллюстрирующей более глубокие единицы кодирования согласно глубинам и элементов разбиения, в соответствии с характерными вариантами осуществления.
Фиг.7 является схемой для описания взаимосвязи единицы кодирования с единицами преобразования, в соответствии с характерным вариантом осуществления.
Фиг.8 является схемой для описания информации кодирования единиц кодирования соответствующей кодируемой глубины, в соответствии с характерным вариантом осуществления.
Фиг.9 является схемой более глубоких единиц кодирования согласно глубинам в соответствии с характерным вариантом осуществления.
Фиг.10-12 являются схемами для описания взаимосвязи между единицами кодирования, единицами предсказания и единицами преобразования в соответствии характерным вариантом осуществления.
Фиг.13 является схемой для описания взаимосвязи между единицей кодирования, единицей предсказания или элементом разбиения, и единицей преобразования в соответствии с информацией о режиме кодирования из Таблицы 1.
Фиг.14 является структурной схемой устройства с внутрикадровым предсказанием в соответствии с характерным вариантом осуществления.
Фиг.15 является таблицей, показывающей количество режимов внутрикадрового предсказания согласно размеров единиц кодирования, в соответствии с характерным вариантом осуществления.
Фиг.16A-16С иллюстрируют режимы внутрикадрового предсказания, которые применяются к единице кодирования заранее определенного размера, в соответствии с характерным вариантом осуществления.
Фиг.17 иллюстрирует режимы внутрикадрового предсказания, которые применяются к единице кодирования заранее определенного размера, в соответствии с другим характерным вариантом осуществления.
Фиг.18A-18C являются схемами для описания режимов внутрикадрового предсказания различной направленности, в соответствии с характерным вариантом осуществления.
Фиг.19 является схемой, иллюстрирующей текущую единицу кодирования и соседние пиксели, которые будут фильтроваться, в соответствии с характерным вариантом осуществления.
Фиг.20 является схемой для описания процесса фильтрации соседних пикселей в соответствии с характерным вариантом осуществления.
Фиг.21 является блок-схемой последовательности операций, иллюстрирующей способ кодирования видео в соответствии с характерным вариантом осуществления.
Фиг.22 является блок-схемой последовательности операций, иллюстрирующей способ декодирования видео в соответствии с характерным вариантом осуществления.
Лучший вариант осуществления изобретения
В соответствии с аспектом характерного варианта осуществления предоставляется способ кодирования видео, включающий в себя этапы, на которых: фильтруют соседние пиксели текущего блока, который будет закодирован, чтобы сформировать отфильтрованные соседние пиксели; выбирают отфильтрованные соседние пиксели или исходные соседние пиксели в качестве опорных пикселей, которые будут использоваться для выполнения внутрикадрового предсказания текущего блока; и выполняют внутрикадровое предсказание текущего блока, при помощи выбранных опорных пикселей.
В соответствии с другим аспектом характерного варианта осуществления предоставляется способ декодирования видео, включающий в себя этапы, на которых: фильтруют соседние пиксели текущего блока, который будет декодирован, чтобы сформировать отфильтрованные соседние пиксели; извлекают из битового потока информацию о режиме внутрикадрового предсказания, который применялся к текущему блоку; выбирают отфильтрованные соседние пиксели или исходные соседние пиксели в качестве опорных пикселей, которые будут использоваться для выполнения внутрикадрового предсказания текущего блока; и выполняют внутрикадровое предсказание текущего блока при помощи извлеченной информации о режиме внутрикадрового предсказания и выбранных опорных пикселей.
В соответствии с другим аспектом характерного варианта осуществления предоставляется устройство кодирования видео, включающее в себя: модуль фильтрации соседних пикселей, для фильтрации соседних пикселей текущего блока, который будет закодирован, чтобы сформировать отфильтрованные соседние пиксели; модуль определения опорных пикселей, для выбора отфильтрованных соседних пикселей или исходных соседних пикселей в качестве опорных пикселей, которые будут использоваться для выполнения внутрикадрового предсказания текущего блока; и модуль выполнения внутрикадрового предсказания, для выполнения внутрикадрового предсказания текущего блока, при помощи выбранных опорных пикселей.
В соответствии с другим аспектом характерного варианта осуществления, предоставляется устройство декодирования видео, включающее в себя: модуль фильтрации соседних пикселей, для фильтрации соседних пикселей текущего блока, который будет декодирован, чтобы сформировать отфильтрованные соседние пиксели; энтропийный декодер, для извлечения из битового потока информации о режиме внутрикадрового предсказания, который применялся к текущему блоку; модуль определения опорных пикселей, для выбора отфильтрованных соседних пикселей или исходных соседних пикселей в качестве опорных пикселей, которые будут использоваться для выполнения внутрикадрового предсказания текущего блока; и модуль выполнения внутрикадрового предсказания, для выполнения внутрикадрового предсказания текущего блока, при помощи извлеченной информации о режиме внутрикадрового предсказания и выбранных опорных пикселей.
Вариант осуществления изобретения
Здесь и далее характерные варианты осуществления более полно будут описаны со ссылкой на сопроводительные чертежи, на которых показаны характерные варианты осуществления. В характерных вариантах осуществления, в зависимости от контекста, понятие единица может относиться или нет к размерной единице. В настоящем техническом описании понятие изображение может обозначать неподвижное изображение применительно к видео, или подвижное изображение, то есть само видео.
Здесь и далее «единица кодирования» является единицей кодирования данных, в которую кодируются данные изображения на стороне кодировщика, и единицей закодированных данных, из которой декодируются закодированные данные изображения на стороне декодера, в соответствии с характерными вариантами осуществления. Также, кодируемая глубина означает глубину, на которой кодируется единица кодирования.
Сначала, со ссылкой на Фиг.1-13 будут описаны способ и устройство для кодирования видео и способ и устройство для декодирования видео, в соответствии с характерным вариантом осуществления.
Фиг.1 является структурной схемой устройства 100 кодирования видео в соответствии с характерным вариантом осуществления.
Устройство 100 кодирования видео включает в себя модуль 110 разбиения на максимальные единицы кодирования, модуль 120 определения единицы кодирования и модуль 130 вывода.
Модуль 110 разбиения на максимальные единицы кодирования разбивает текущий кадр, основываясь на максимальной единице кодирования для текущего кадра изображения. Если текущий кадр больше максимальной единицы кодирования, то данные изображения текущего кадра могут быть разбиты на, по меньшей мере, одну максимальную единицу кодирования. Максимальная единица кодирования, в соответствии с характерным вариантом осуществления, может быть единицей данных размером 32×32, 64×64, 128×128, 256×256, и т.д., при этом форма единицы данных является квадратом, с шириной и высотой в квадратах 2. Данные изображения могут выдаваться модулю 120 определения единицы кодирования в соответствии с, по меньшей мере, одной максимальной единицей кодирования.
Единица кодирования в соответствии с характерным вариантом осуществления может характеризоваться максимальным размером и глубиной. Глубина обозначает количество раз, на которое была разбита максимальная единица кодирования в пространственном отношении, чтобы получить единицу кодирования, и по мере углубления или увеличения глубины, более глубокие единицы кодирования, согласно глубинам, могут разбиваться от максимальной единицы кодирования до минимальной единицы кодирования. Глубина максимальной единицы кодирования является самой верхней глубиной, а уровень глубины минимальной единицы кодирования является самой низкой глубиной. Так как размер единицы кодирования, соответствующий каждой глубине, уменьшается по мере увеличения глубины максимальной единицы кодирования, то единица кодирования, соответствующая верхней глубине, может включать в себя множество единиц кодирования, соответствующих нижним глубинам.
Как описано выше, данные изображения текущего кадра разбиты на максимальные единицы кодирования в соответствии с максимальным размером единицы кодирования, и каждая из максимальных единиц кодирования может включать в себя более глубокие единицы кодирования, которые разбиты в соответствии с глубинами. Так как максимальная единица кодирования в соответствии с характерным вариантом осуществления разбивается согласно глубинам, то данные изображения пространственной области, включенные в максимальную единицу кодирования, могут иерархически классифицироваться согласно глубинам.
Максимальная глубина и максимальный размер единицы кодирования, которые ограничивают суммарное количество раз, которое высота и ширина максимальной единицы кодирования иерархически разбивается, могут быть определены заранее.
Модуль 120 определения единицы кодирования кодирует, по меньшей мере, одну разбитую область, полученную посредством разбиения области максимальной единицы кодирования, согласно глубинам, и определяет глубину для выдачи окончательно закодированных данных изображения в соответствии с, по меньшей мере, одной разбитой областью. Другими словами, модуль 120 определения единицы кодирования определяет кодируемую глубину посредством кодирования данных изображения в более глубоких единицах кодирования, согласно глубинам, в соответствии с максимальной единицей кодирования текущего кадра, и выбирает глубину с минимальной ошибкой кодирования. Таким образом, в итоге выдаются закодированные данные изображения в единице кодирования, соответствующей кодируемой глубине. Также, единицы кодирования, соответствующие кодируемой глубине, могут рассматриваться как закодированные единицы кодирования.
Определенная кодируемая глубина и закодированные данные изображения в соответствии с определенной кодируемой глубиной выдаются модулю 130 вывода.
Данные изображения в максимальной единице кодирования кодируются на основании более глубоких единиц кодирования, соответствующих, по меньшей мере, либо эквивалентной глубине, либо глубине ниже максимальной глубины, а результаты кодирования данных изображения сравниваются на основании каждой из более глубоких единиц кодирования. После сравнения ошибок кодирования более глубоких единиц кодирования может выбираться глубина кодирования, с минимальной ошибкой кодирования. Для каждой максимальной единицы кодирования может выбираться, по меньшей мере, одна кодируемая глубина.
Размер максимальной единицы кодирования разбивается, по мере того как иерархически разбиваются единицы кодирования, согласно глубинам, и по мере того как растет количество единиц кодирования. Также, если даже в одной максимальной единице кодирования присутствуют две единицы кодирования, соответствующие одной и той же глубине, то определяют, разбить ли каждую из единиц кодирования, соответствующих одной и той же глубине, на более низкую глубину посредством измерения ошибки кодирования данных изображения каждой единицы кодирования, по отдельности. Соответственно, даже когда данные изображения включены в одну максимальную единицу кодирования, данные изображения разбиваются на области, согласно глубинам, и ошибки кодирования могут различаться по областям в одной максимальной единице кодирования, и таким образом кодируемая глубина может отличаться по областям в данных изображения. Таким образом, в одной максимальной единице кодирования могут быть определены одна или более кодируемые глубины, и данные изображения максимальной единицы кодирования могут быть разделены в соответствии с единицами кодирования, по меньшей мере, одной кодируемой глубины.
Соответственно, модуль 120 определения единицы кодирования может определять единицы кодирования с древовидной структурой, включенные в максимальную единицу кодирования. Единицы кодирования с древовидной структурой, в соответствии с характерным вариантом осуществления, включают в себя единицы кодирования, соответствующие глубине, определенной как кодируемая глубина, из числа всех более глубоких единиц кодирования, включенных в максимальную единицу кодирования. Единица кодирования кодируемой глубины может иерархически определяться согласно глубинам в той же области максимальной единицы кодирования, и может независимо определяться в других областях. Аналогично, кодируемая глубина в текущей области может независимо определяться из кодируемой глубины в другой области.
Максимальная глубина в соответствии с характерным вариантом осуществления является индексом, относящимся к количеству разбиений от максимальной единицы кодирования до минимальной единицы кодирования. Первая максимальная глубина в соответствии с характерным вариантом осуществления может обозначать суммарное количество разбиений от максимальной единицы кодирования до минимальной единицы кодирования. Вторая максимальная глубина в соответствии с характерным вариантом осуществления может обозначать суммарное количество глубин от максимальной единицы кодирования до минимальной единицы кодирования. Например, когда глубина максимальной единицы кодирования равна 0, глубина единицы кодирования, при которой максимальная единица кодирования разбивается один раз, может быть установлена как 1, а глубина единицы кодирования, при которой максимальная единица кодирования разбивается дважды, может быть установлена как 2. В данном случае, если минимальная единица кодирования является единицей кодирования, при которой максимальная единица кодирования разбивается 5 раз, то существует 5 уровней глубины из уровней 0, 1, 2, 3 и 4, и таким образом первая максимальная глубина может быть установлена как 4, а вторая максимальная глубина может быть установлена как 5.
Кодирование с предсказанием и преобразование могут выполняться в соответствии с максимальной единицей кодирования. Кодирование с предсказанием и преобразование также могут выполняться согласно более глубоким единицам кодирования в соответствии с глубиной, равной, или глубинами, меньшими, чем максимальная глубина, в соответствии с максимальной единицей кодирования. Преобразование может выполняться в соответствии со способом ортогонального преобразования или способом целочисленного преобразования.
Так как количество более глубоких единиц кодирования растет всякий раз, когда максимальная единица кодирования разбивается согласно глубинам, то кодирование, включающее в себя кодирование с предсказанием и преобразование, производятся по все более глубоким единицам кодирования, формируемым по мере увеличения глубины. Для удобства описания, кодирование с предсказанием и преобразование далее будут описаны на основании единицы кодирования текущей глубины, в максимальной единице кодирования.
Устройство 100 кодирования видео может гибко выбирать размер и форму единицы данных для кодирования данных изображения. Чтобы закодировать данные изображения, выполняются операции, такие как: кодирование с предсказанием, преобразование и энтропийное кодирование, и на данном этапе одна и та же единица данных может использоваться для всех операций, или для каждой операции могут использоваться разные единицы данных.
Например, устройство 100 кодирования видео может выбрать не только единицу кодирования для кодирования данных изображения, но также единицу данных, отличную от единицы кодирования, чтобы выполнить кодирование с предсказанием данных изображения в единице кодирования.
Для того чтобы выполнить кодирование с предсказанием в максимальной единице кодирования, кодирование с предсказанием может выполняться согласно единице кодирования, соответствующей кодируемой глубине, т.е. согласно единице кодирования, которая далее не разбивается на единицы кодирования, соответствующие более низкой глубине. Здесь и далее, единица кодирования, которая далее не разбивается и становится базовой единицей для кодирования с предсказанием, будет именоваться как единица предсказания. Элемент разбиения, получаемый посредством разбиения единицы предсказания, может включать в себя единицу предсказания или единицу данных, получаемые посредством разбиения, по меньшей мере, одного из: высоты или ширины единицы предсказания.
Например, когда единица кодирования размером 2N×2N (где N является положительным целочисленным значением) далее не разбивается и становится единицей предсказания размером 2N×2N, то размер элемента разбиения может быть 2N×2N, 2N×N, N×2N или N×N. Примеры типов разбиения включают в себя: симметричное разбиение, которое получают посредством симметричного разбиения высоты или ширины единицы предсказания; разбиение, получаемое посредством ассиметричного разбиения высоты или ширины единицы предсказания, такое как 1:n или n:1; разбиение, которое получают посредством геометрического разбиения единицы предсказания; и разбиение произвольной формы.
Режим предсказания единицы предсказания может быть, по меньшей мере, одним из: внутрикадрового режима, межкадрового режима и режима с пропуском. Например, внутрикадровый режим или межкадровый режим могут выполняться над элементами разбиения размером 2N×2N, 2N×N, N×2N или N×N. Также режим с пропуском может выполняться только над элементами разбиения 2N×2N. Кодирование независимо выполняется над одной единицей предсказания в единице кодирования, тем самым выбирая режим предсказания, с минимальной ошибкой кодирования.
Устройство 100 кодирования видео также может выполнять преобразование над данными изображения в единице кодирования на основании не только единицы кодирования применительно к кодированию данных изображения, но также на основании единицы данных, которая отличается от единицы кодирования.
Для того чтобы выполнять преобразование в единице кодирования, преобразование может выполняться на основании единицы данных, размером, меньше либо равным единице кодирования. Например, единица данных для преобразования может включать в себя единицу данных для внутрикадрового режима и единицу данных для межкадрового режима.
Единица данных, используемая в качестве базового элемента преобразования, далее будет именоваться как единица преобразования. Глубина преобразования, указывающая количество разбиений, чтобы получить единицу преобразования посредством разбиения высоты и ширины единицы кодирования, также может быть установлена в единице преобразования. Например, в текущей единице кодирования размером 2N×2N, глубина преобразования может быть 0, когда размер единицы преобразования также составляет 2N×2N, может быть 1, когда как высота, так и ширина текущей единицы кодирования разбиты на две равные части, суммарно разбивая на 4^1 единицы преобразования, и таким образом размер единицы преобразования составляет N×N, и может быть 2, когда как высота, так и ширина текущей единицы кодирования разбиты на четыре равные части, суммарно разбивая на 4^2 единицы преобразования, и таким образом размер единицы преобразования составляет N/2×N/2. Например, единица преобразования может быть установлена в соответствии с иерархической древовидной структурой, в которой единица преобразования верхней глубины преобразования разбита на четыре единицы преобразования более низкой глубины преобразования в соответствии с иерархическими характеристиками глубины преобразования.
Аналогично единице кодирования, единица преобразования в единице кодирования может быть рекурсивно разбита на области более мелкого размера, чтобы единица преобразования могла определяться независимо в единицах областей. Таким образом, данные остатка в единице кодирования могут разделяться в соответствии с преобразованием с древовидной структурой, согласно глубинам преобразования.
Информация кодирования согласно единицам кодирования, соответствующим кодируемой глубине, требует не только информации о кодируемой глубине, но также информацию, связанную с кодированием с предсказанием и преобразованием. Соответственно, модуль 120 определения единицы кодирования не только определяет кодируемую глубину, с минимальной ошибкой кодирования, но также определяет тип разбиения в единице предсказания, режим предсказания в соответствии с единицами предсказания и размер единицы преобразования для преобразования.
Единицы кодирования в соответствии с древовидной структурой в максимальной единице кодирования и способ определения элемента разбиения, в соответствии с характерными вариантами осуществления, будут описаны подробнее позже, со ссылкой на Фиг.3-12.
Модуль 120 определения единицы кодирования может измерять ошибку кодирования более глубоких единиц кодирования согласно глубинам посредством использования Оптимизации Скорости к Искажению, основанной на множителях Лагранжа.
Модуль 130 вывода выдает данные изображения максимальной единицы кодирования, которые закодированы на основании, по меньшей мере, одной кодируемой глубины, определенной модулем 120 определения единицы кодирования, и информацию о режиме кодирования, в соответствии с кодируемой глубиной, в битовых потоках.
Закодированные данные изображения могут быть получены посредством кодирования данных остатка изображения.
Информация о режиме кодирования согласно кодируемой глубине может включать в себя информацию о кодируемой глубине, о типе разбиения в единице предсказания, режим предсказания и размер единицы преобразования.
Информация о кодируемой глубине может определяться при помощи информации разбиения согласно глубинам, которая указывает на то, выполняется ли кодирование по единицам кодирования более низкой глубины, чем текущая глубина. Если текущая глубина текущей единицы кодирования является кодируемой глубиной, то кодируются и выдаются данные изображения в текущей единице кодирования, и таким образом информация разбиения может быть определена как показывающая, что не следует разбивать текущую единицу кодирования на более низкую глубину. В качестве альтернативы, если текущая глубина текущей единицы кодирования не является кодируемой глубиной, то кодирование выполняется над единицей кодирования более низкой глубины, и таким образом информация разбиения может быть определена, как показывающая на необходимость разбить текущую единицу кодирования для получения единиц кодирования более низкой глубины.
Если текущая глубина не является кодируемой глубиной, то кодирование выполняется над единицей кодирования, которая разбита на единицу кодирования более низкой глубины. Поскольку существует, по меньшей мере, одна единица кодирования более низкой глубины в одной единице кодирования текущей глубины, то кодирование повторно выполняется для каждой единицы кодирования более низкой глубины, и таким образом кодирование может рекурсивно выполняться для единиц кодирования, имеющих ту же самую глубину.
Поскольку единицы кодирования с древовидной структурой определены для одной максимальной единицы кодирования, и для единицы кодирования кодируемой глубины определена информация о, по меньшей мере, одном режиме кодирования, то информация о, по меньшей мере, одном режиме кодирования может быть определена для одной максимальной единицы кодирования. Также, кодируемая глубина данных изображения максимальной единицы кодирования может быть разной в соответствии с местоположениями, поскольку данные изображения иерархически разбиты согласно глубинам, и таким образом информация о кодируемой глубине и режим кодирования могут быть установлены для данных изображения.
Соответственно, модуль 130 вывода может назначать информацию кодирования о соответствующей кодируемой глубине и режиме кодирования, по меньшей мере, одному из: единице кодирования, единице предсказания и минимальной единице, включенным в максимальную единицу кодирования.
Минимальная единица в соответствии с характерным вариантом осуществления является прямоугольной единицей данных, полученной посредством разбиения минимальной единицы кодирования, составляющей самую низкую глубину, на 4. В качестве альтернативы, минимальная единица может быть максимальной прямоугольной единицей данных, которая может быть включена во все из единиц кодирования, единиц предсказания, единиц разбиения и единиц преобразования, включенных в максимальную единицу кодирования.
Например, информация кодирования, выдаваемая посредством модуля 130 вывода, может быть классифицирована на информацию кодирования в соответствии с единицами кодирования и информацию кодирования в соответствии с единицами предсказания. Информация кодирования в соответствии с единицами кодирования может включать в себя информацию о режиме предсказания и о размере элементов разбиения. Информация кодирования в соответствии с единицами предсказания может включать в себя информацию об оцененном направлении межкадрового режима, об индексе опорного изображения межкадрового режима, о векторе движения, о составляющей цветности внутрикадрового режима, и о способе интерполяции внутрикадрового режима. Также в SPS (Наборе Параметров Последовательности) или заголовок битового потока может быть вставлена информация о максимальном размере единицы кодирования, определенной в соответствии с кадрами, последовательностями макроблоков (слайсами) или GOP, и информация о максимальной глубине.
В устройстве 100 кодирования видео, более глубокая единица кодирования может быть единицей кодирования, получаемой посредством деления надвое высоты или ширины единицы кодирования верхней глубины, которая на один уровень выше. Другими словами, когда размер единицы кодирования текущей глубины составляет 2N×2N, то размер единицы кодирования более низкой глубины составляет N×N. Также, единица кодирования текущей глубины, размером 2N×2N, может включать в себя максимум 4 единицы кодирования более низкой глубины.
Соответственно, устройство 100 кодирования видео может формировать единицы кодирования с древовидной структурой посредством определения единиц кодирования оптимальной формы и оптимального размера применительно к каждой максимальной единице кодирования, на основании размера максимальной единицы кодирования и максимальной глубины, определенной, принимая во внимание характеристики текущего кадра. Также, поскольку кодирование может выполняться над каждой максимальной единицей кодирования посредством использования одного из различных режимов предсказания и преобразований, то оптимальный режим кодирования может определяться, принимая во внимание характеристики единицы кодирования различных размеров изображения.
Таким образом, если изображение с высоким разрешением или большим объемом данных кодируется в обычном макроблоке, то количество макроблоков на кадр чрезмерно возрастает. Соответственно, растет количество частей сжатой информации, формируемой для каждого макроблока, и таким образом становится трудным передать сжатую информацию и падает эффективность сжатия данных. Тем не менее, посредством использования устройства 100 кодирования видео, эффективность сжатия изображения может быть повышена, поскольку единица кодирования регулируется при рассмотрении характеристик изображения при увеличении максимального размера единицы кодирования при рассмотрении размера изображения.
Фиг.2 является структурной схемой устройства 200 декодирования видео, в соответствии с характерным вариантом осуществления.
Устройство 200 декодирования видео включает в себя приемник 210, модуль 220 извлечения данных изображения и информации кодирования и декодер 230 данных изображения. Определения различных терминов, таких как единица кодирования, глубина, единица предсказания, единица преобразования и информация о различных режимах кодирования, применительно к различным операциям устройства 200 декодирования видео, идентичны тем, что описаны со ссылкой на Фиг.1 и устройство 100 кодирования видео.
Приемник 210 принимает и анализирует битовый поток закодированного видео. Модуль 220 извлечения данных изображения и информации кодирования извлекает закодированные данные изображения для каждой единицы кодирования из проанализированного битового потока, при этом единицы кодирования обладают древовидной структурой в соответствии с каждой максимальной единицей кодирования и выдает извлеченные данные изображения декодеру 230 данных изображения. Модуль 220 извлечения данных изображения и информации кодирования может извлекать информацию о максимальном размере единицы кодирования текущего кадра, из заголовка о текущем кадре или SPS.
Также модуль 220 извлечения данных изображения и информации кодирования извлекает информацию о кодируемой глубине и режиме кодирования из единиц кодирования с древовидной структурой в соответствии с каждой максимальной единицей кодирования, из проанализированного битового потока. Извлеченная информация о кодируемой глубине и режиме кодирования выдается декодеру 230 данных изображения. Другими словами, данные изображения в битовом потоке разбиты на максимальные единицы кодирования, так что декодер 230 данных изображения декодирует данные изображения для каждой максимальной единицы кодирования.
Информация о кодируемой глубине и режиме кодирования в соответствии с максимальной единицей кодирования может быть установлена применительно к информации о, по меньшей мере, одной единице кодирования, соответствующей кодируемой глубине, а информация о режиме кодирования может включать в себя информацию: о типе разбиения соответствующей единицы кодирования, которая соответствует кодируемой глубине; о режиме предсказания; и размер единицы преобразования. Так же в качестве информации о кодируемой глубине может быть извлечена информация разбиения согласно глубинам.
Информация о кодируемой глубине и режиме кодирования в соответствии с каждой максимальной единицей кодирования, извлеченные модулем 220 извлечения данных изображения и информации кодирования, является информацией о кодируемой глубине и режиме кодирования, определенными для формирования минимальной ошибки кодирования, когда кодировщик, такой как устройство 100 кодирования видео, неоднократно выполняет кодирование для каждой более глубокой единицы кодирования согласно глубинам в соответствии с каждой максимальной единице кодирования. Соответственно, устройство 200 декодирования видео может восстанавливать изображение посредством декодирования данных изображения согласно кодируемой глубине и режиму кодирования, которые формируют минимальную ошибку кодирования.
Поскольку информация кодирования о кодируемой глубине и режиме кодирования может быть назначена заранее определенной единице данных, соответствующей одному из: единице кодирования; единице предсказания; и минимальной единицы, то модуль 220 извлечения данных изображения и информации кодирования может извлекать информацию о кодируемой глубине и режиме кодирования в соответствии с заранее определенными единицами данных. Может предполагаться, что заранее определенные единицы данных, которым назначена одинаковая информация о кодируемой глубине и режиме кодирования, могут быть единицами данных, включенными в одну и ту же максимальную единицу кодирования.
Декодер 230 данных изображения восстанавливает текущий кадр посредством декодирования данных изображения в каждой максимальной единице кодирования на основании информации о кодируемой глубине и режиме кодирования в соответствии с максимальными единицами кодирования. Другими словами, декодер 230 данных изображения может декодировать закодированные данные изображения на основании извлеченной информации о типе разбиения, режиме предсказания и единице преобразования для каждой единицы кодирования из числа единиц кодирования с древовидной структурой, включенных в каждую максимальную единицу кодирования. Процесс декодирования может включать в себя предсказание, включающее в себя внутрикадровое предсказание и компенсацию движения, и обратное преобразование. Обратное преобразование может выполняться в соответствии со способом обратного ортогонального преобразования или обратного целочисленного преобразования.
Декодер 230 данных изображения может выполнять внутрикадровое предсказание или компенсацию движения в соответствии с элементом разбиения и режимом предсказания каждой единицы кодирования, на основании информации о типе разбиения и режиме предсказания единицы предсказания единицы кодирования согласно кодируемым глубинам.
Также, декодер 230 данных изображения может выполнять обратное преобразование в соответствии с каждой единицей преобразования в единице кодирования, на основании информации о размере единицы преобразования единицы кодирования согласно кодируемым глубинам, чтобы выполнять обратное преобразование в соответствии с максимальными единицами кодирования.
Декодер 230 данных изображения может определять, по меньшей мере, одну кодируемую глубину текущей максимальной единицы кодирования посредством использования информации разбиения согласно глубинам. Если информация разбиения указывает на то, что при текущей глубине данные изображения далее не разбиваются, то текущая глубина является кодируемой глубиной. Соответственно, декодер 230 данных изображения может декодировать закодированные данные, по меньшей мере, одной единицы кодирования, соответствующей каждой кодируемой глубине в текущей максимальной единице кодирования, посредством использования информации о: типе разбиения единицы предсказания, режиме предсказания и размере единицы преобразования для каждой единицы кодирования соответствующей кодируемой глубины, и выдать данные изображения текущей максимальной единицы кодирования.
Другими словами, единицы данных, содержащие информацию кодирования, включающую в себя одинаковую информацию разбиения, могут собираться вместе посредством просмотра набора информации кодирования, назначенного для заранее определенной единицы данных из числа единицы кодирования, единицы предсказания и минимальной единицы, и собранные единицы данных могут рассматриваться как являющиеся одной единицей данных, которая должна декодироваться декодером 230 данных изображения в одном и том же режиме кодирования.
Устройство 200 декодирования видео может получать информацию о, по меньшей мере, одной единице кодирования, которая формирует минимальную ошибку кодирования, когда кодирование выполняется рекурсивно применительно к каждой максимальной единице кодирования, и может использовать информацию для декодирования текущего кадра. Другими словами, могут декодироваться единицы кодирования с древовидной структурой, определенные как оптимальные единицы кодирования в каждой максимальной единице кодирования. Также максимальный размер единицы кодирования определяется, принимая во внимание разрешение и объем данных изображения.
Соответственно, даже если данные изображения имеют высокое разрешение и большой объем данных, то данные изображения могут эффективно декодироваться и восстанавливаться посредством использования размера единицы кодирования и режима кодирования, которые адаптивно определяются в соответствии с характеристиками данных изображения, посредством использования информации об оптимальном режиме кодирования, принятой от кодировщика.
Теперь со ссылкой на Фиг.3-13 будет описан способ определения единиц кодирования, с древовидной структурой, единицы предсказания и единицы преобразования, в соответствии с характерным вариантом осуществления.
Фиг.3 является схемой для описания концепции единиц кодирования в соответствии с характерным вариантом осуществления.
Размер единицы кодирования может выражаться в ширине×высоту и может быть 64×64, 32×32, 16×16, и 8×8. Единица кодирования размером 64×64 может быть разбита на элементы разбиения размером 64×64, 64×32, 32×64 или 32×32, а единица кодирования размером 32×32 может быть разбита на элементы разбиения размером 32×32, 32×16, 16×32 или 16×16, единица кодирования размером 16×16 может быть разбита на элементы разбиения размером 16×16, 16×8, 8×16 или 8×8, и единица кодирования размером 8×8 может быть разбита на элементы разбиения размером 8×8, 8×4, 4×8 или 4×4.
В видеоданных 310, разрешение составляет 1920×1080, максимальный размер единицы кодирования составляет 64, а максимальная глубина составляет 2. В видеоданных 320, разрешение составляет 1920×1080, максимальный размер единицы кодирования составляет 64, а максимальная глубина составляет 3. В видеоданных 330, разрешение составляет 352×288, максимальный размер единицы кодирования составляет 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 преобразования, квантователь 440, энтропийный кодировщик 450, обратный квантователь 460, модуль 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, и размер, т.е., высота на ширину, составляет 64×64. Глубина увеличивается по вертикальной оси, и существуют единица 620 кодирования размером 32×32 и глубиной 1, единица 630 кодирования размером 16×16 и глубиной 2, единица 640 кодирования размером 8×8 и глубиной 3 и единица 650 кодирования размером 4×4 и глубиной 4. Единица 650 кодирования размером 4×4 и глубиной 4 является минимальной единицей кодирования.
Единица предсказания и элементы разбиения единицы кодирования организованы по горизонтальной оси согласно каждой глубине. Другими словами, если единица 610 кодирования размером 64×64 и глубиной 0 является единицей предсказания, то единица предсказания может быть разбита на элементы разбиения, заключенные в единице 610 кодирования, т.е.: элемент 610 разбиения, размером 64×64; элементы 612 разбиения размером 64×32; элементы 614 разбиения, размером 32×64, или элементы 616 разбиения размером 32×32.
Аналогично, единица предсказания единицы 620 кодирования размером 32×32 и глубиной 1, может быть разбита на элементы разбиения, заключенные в единице 620 кодирования, т.е. элемент 620 разбиения размером 32×32, элементы 622 разбиения размером 32×16, элементы 624 разбиения размером 16×32 и элементы 626 разбиения размером 16×16.
Аналогично, единица предсказания единицы 630 кодирования размером 16×16 и глубиной 2, может быть разбита на элементы разбиения, заключенные в единице 630 кодирования, т.е. элемент разбиения размером 16×16, заключенный в единице 630 кодирования, элементы 632 разбиения размером 16×8, элементы 634 разбиения размером 8×16 и элементы 636 разбиения размером 8×8.
Аналогично, единица предсказания единицы 640 кодирования размером 8×8 и глубиной 3, может быть разбита на элементы разбиения, заключенные в единице 640 кодирования, т.е. элемент разбиения размером 8×8, заключенный в единице 640 кодирования, элементы 642 разбиения размером 8×4, элементы 644 разбиения размером 4×8 и элементы 646 разбиения размером 4×4.
Единица 650 кодирования размером 4×4 и глубиной 4 является минимальной единицей кодирования и единицей кодирования с самой нижней глубиной. Единица предсказания единицы 650 кодирования назначается только элементу разбиения размером 4×4.
Для того чтобы определить, по меньшей мере, одну кодируемую глубину единиц кодирования, составляющих максимальную единицу 610 кодирования, модуль 120 определения единицы кодирования устройства 100 кодирования видео выполняет кодирование для единиц кодирования, соответствующих каждой глубине, заключенных в максимальной единице 610 кодирования.
Количество более глубоких единиц кодирования согласно глубинам, включающим в себя данные в том же диапазоне и того же размера, растет по мере увеличения глубины. Например, четыре единицы кодирования, соответствующие глубине 2, требуются, чтобы охватить данные, которые заключены в одной единице кодирования, соответствующей глубине 1. Соответственно, для того чтобы сравнивать результаты кодирования одних и тех же данных согласно глубинам, выполняется кодирование единицы кодирования, соответствующей глубине 1, и каждой из четырех единиц кодирования, соответствующих глубине 2.
Для того чтобы выполнить кодирование для текущей глубины из числа глубин, может выбираться минимальная ошибка кодирования для текущей глубины посредством выполнения кодирования для каждой единицы предсказания в единицах кодирования, соответствующих текущей глубине, по горизонтальной оси иерархической структуры 600. В качестве альтернативы, поиск минимальной ошибки кодирования может производиться посредством сравнения минимальных ошибок кодирования согласно глубинам, посредством выполнения кодирования для каждой глубины, по мере того как глубина увеличивается по вертикальной оси иерархической структуры 600. Глубина и элемент разбиения с минимальной ошибкой кодирования в единице 610 кодирования могут выбираться в качестве кодируемой глубины и типа разбиения единицы 610 кодирования.
Фиг.7 является схемой для описания взаимосвязи единицы 710 кодирования и единиц 720 преобразования, в соответствии с характерным вариантом осуществления.
Устройство 100 или 200 кодирования видео кодирует или декодирует изображение в соответствии с единицами кодирования размеров, меньше либо равных максимальной единице кодирования применительно к каждой максимальной единице кодирования. Размеры единиц преобразования для преобразования во время кодирования могут выбираться на основании единиц данных, которые не больше соответствующих единиц кодирования.
Например, в устройстве 100 или 200 кодирования видео, если размер единицы 710 кодирования равен 64×64, то преобразование может выполняться посредством использования единиц 720 преобразования размером 32×32.
Также, данные единицы 710 кодирования размером 64×64 могут кодироваться, выполняя преобразование по каждой из единиц преобразования размера 32×32, 16×16, 8×8 и 4×4, которые меньше 64×64, а затем может выбираться единица преобразования с минимальной ошибкой кодирования.
Фиг.8 является схемой для описания информации кодирования единиц кодирования, соответствующих кодируемой глубине, в соответствии с характерным вариантом осуществления.
Модуль 130 вывода устройства 100 кодирования видео может кодировать и передавать информацию 800 о типе разбиения, информацию 810 о режиме предсказания и информацию 820 о размере единицы преобразования для каждой единицы кодирования, соответствующей кодируемой глубине, в качестве информации о режиме кодирования.
Информация 800 указывает информацию о форме элемента разбиения, полученного посредством разбиения единицы предсказания текущей единицы кодирования, при этом элемент разбиения является единицей данных для кодирования с предсказанием текущей единицы кодирования. Например, текущая единица CU_0 кодирования размером 2N×2N может быть разбита на любой из: элемент 802 разбиения размером 2N×2N, элемент 804 разбиения размером 2N×N, элемент 806 разбиения размером N×2N и элемент 808 разбиения размером N×N. В данном случае, информация 800 о типе разбиения установлена таким образом, чтобы указывать один из: элемент 804 разбиения размером 2N×N, элемент 806 разбиения размером N×2N и элемент 808 разбиения размером N×N.
Информация 810 указывает режим предсказания каждого элемента разбиения. Например, информация 810 может указывать режим кодирования с предсказанием, выполняемый над элементом разбиения, указываемым информацией 800, т.е., внутрикадровый режим 812, внутрикадровый режим 814 или режим 816 с пропуском.
Информация 820 указывает единицу преобразования, на которой должно основываться выполнение преобразования текущей единицы кодирования. Например, единица преобразования может быть первой единицей 822 внутрикадрового преобразования, второй единицей 824 внутрикадрового преобразования, первой единицей 826 межкадрового преобразования или второй единицей 828 внутрикадрового преобразования.
Модуль 220 извлечения данных изображения и информации кодирования устройства 200 декодирования видео может извлекать и использовать информацию 800, 810 и 820 для декодирования, в соответствии с каждой более глубокой единицей кодирования.
Фиг.9 является схемой более глубоких единиц кодирования согласно глубинам, в соответствии с характерным вариантом осуществления.
Информация разбиения может использоваться для указания изменения глубины. Информация разбиения указывает, разбита ли единица кодирования текущей глубины на единицы кодирования более низкой глубины.
Единица 910 предсказания для кодирования с предсказанием единицы 900 кодирования глубиной 0 и размером 2N_0×2N_0 может включать в себя элементы разбиения типа 912 разбиения размером 2N_0×2N_0, типа 914 разбиения размером 2N_0×N_0, типа 916 разбиения размером N_0×2N_0 и типа 918 разбиения размером N_0×N_0. Фиг.9 иллюстрирует только типы с 912 по 918 разбиения, которые получены посредством симметричного разбиения единицы 910 предсказания, но ими тип разбиения не ограничивается, и элементы разбиения единицы 910 предсказания могут включать в себя ассиметричные элементы разбиения, элементы разбиения заранее определенной формы и элементы разбиения геометрической формы.
Кодирование с предсказанием неоднократно выполняется над одним элементом разбиения размером 2N_0×2N_0, двумя элементами разбиения размером 2N_0×N_0, двумя элементами разбиения размером N_0×2N_0 и четырьмя элементами разбиения размером N_0×N_0, в соответствии с каждым типом разбиения. Кодирование с предсказанием при внутрикадровом режиме и межкадровом режиме может выполняться по элементам разбиения размеров 2N_0×2N_0, N_0×2N_0, 2N_0×N_0 и N_0×N_0. Кодирование с предсказанием в режиме с пропуском выполняется только по элементу разбиения размером 2N_0×2N_0.
Ошибки кодирования, включая кодирование с предсказанием по типам с 912 по 918 разбиения, сравниваются, и среди типов разбиения определяется тип с минимальной ошибкой кодирования. Если ошибка кодирования является наименьшей при одном из типов с 912 по 916 разбиения, единица 910 предсказания может не разбиваться на более низкую глубину.
Если ошибка кодирования является наименьшей при типе 918 разбиения, глубина меняется с 0 на 1 для разбиения по типу 918 разбиения на операции 920, и кодирование неоднократно выполняется по единицам 930 кодирования с глубиной 2 и размером N_0×N_0 с целью поиска минимальной ошибки кодирования.
Единица 940 предсказания для кодирования с предсказанием единицы 930 кодирования с глубиной 1 и размером 2N_1×2N-1 (=N_0×N_0) может включать в себя элементы разбиения типа 942 разбиения размером 2N_1×2N_1, типа 944 разбиения размером 2N_1×N_1, типа 946 разбиения размером N_1×2N_1 и типа 948 разбиения размером N_1×N_1.
Если ошибка кодирования является наименьшей при типе 948 разбиения, то глубина меняется с 1 на 2 для разбиения на тип 948 разбиения на операции 950, и кодирование неоднократно повторяется по единицам 960 кодирования, глубиной 2 и размером N_2×N_2, с целью поиска минимальной ошибки кодирования.
Когда максимальная глубина равна d, операция разбиения в соответствии с каждой глубиной может выполняться вплоть до того, пока глубина не станет d-1, и информация разбиения может кодироваться вплоть до того, когда глубина равна одному из от 0 до d-2. Другими словами, когда кодирование выполняется вплоть до того момента, когда глубина равна d-1, после того как единица кодирования, соответствующая глубине d-2, разбивается на операции 970, то единица предсказания 990 для кодирования с предсказанием единицы 980 кодирования глубиной d-1 и размером 2N_(d-1)×2N_(d-1) может включать в себя элементы разбиения типа 992 разбиения размером 2N_(d-1)×2N_(d-1), типа 994 разбиения размером 2N_(d-1)×N_(d-1), типа 996 разбиения размером N_(d-1)×2N_(d-1) и типа 998 разбиения размером N_(d-1)×N_(d-1).
Кодирование с предсказанием может неоднократно выполняться по одному элементу разбиения размером 2N_(d-1)×2N_(d-1), двум элементам разбиения размером 2N_(d-1)×N_(d-1), двум элементам разбиения размером N_(d-1)×2N_(d-1), четырем элементам разбиения размером N_(d-1)×N_(d-1) из типов с 992 по 998 разбиения, с целью найти тип разбиения с минимальной ошибкой кодирования.
Даже если тип 998 разбиения имеет минимальную ошибку кодирования, поскольку максимальная глубина равна d, единица CU_(d-1) кодирования с глубиной d-1 далее не разбивается на более низкую глубину, а кодируемая глубина для единиц кодирования, составляющих текущую максимальную единицу 900 кодирования, определяется как d-1, а тип разбиения текущей максимальной единицы 900 кодирования может быть определен как N_(d-1)×N_(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 кодирования имеют размер 2N×N, типы разбиения в единицах 1016, 1048 и 1052 кодирования имеют размер N×2N, а тип разбиения единицы 1032 кодирования имеет размер N×N. Единицы предсказания и элементы разбиения единиц 1010 кодирования меньше либо равны каждой единице кодирования.
Преобразование или обратное преобразование выполняется над данными изображения единицы 1052 кодирования в единицах 1070 преобразования в единицах данных, которые меньше единицы 1052 кодирования. Также, единицы 1014, 1016, 1022, 1032, 1048, 1050 и 1052 кодирования в единицах 1070 преобразования отличаются от тех, что состоят из единиц 1060 предсказания в плане размеров и форм. Другими словами, устройства 100 и 200 кодирования и декодирования видео могут выполнять внутрикадровое предсказание, оценку движения, компенсацию движения, преобразование и обратное преобразование по индивидуальным единицам данных в одной и той же единице кодирования.
Соответственно, кодирование рекурсивно выполняется по каждой из единиц кодирования с иерархической структурой в каждой области максимальной единицы кодирования для определения оптимальной единицы кодирования, и таким образом могут быть получены единицы кодирования с рекурсивной древовидной структурой. Информация кодирования может включать в себя информацию о единице кодирования, информацию о типе разбиения, информацию о режиме предсказания и информацию о размере единицы преобразования. Таблица 1 показывает информацию кодирования, которая может быть установлена устройством 100 и 200 кодирования и декодирования видео.
<b>Таблица 1</b>
Информация Разбиения 0 (Кодирование по Единице Кодирования Размером 2N×2N и Текущей Глубиной d)
Информация Разбиения 1
Режим предсказания
Тип Разбиения
Размер единиц Преобразования
Неоднократно Кодируют Единицы Кодирования с Более Низкой Глубиной, равной d+1
ВнутрикадровыйМежкадровыйС пропуском (только 2N×2N)
Симметрич-ный Тип Разбиения
Асимметри-чный Тип Разбиения
Информация Разбиения единицы Преобразования равна 0
Информация Разбиения единицы Преобразования равна 1
2N×2N2N×NN×2NN×N
2N×nU22N×nDnL×2NnR×2N
2N×2N
N×N (Симметричный Тип)N/2×N/2 (Асимметричный тип)
Модуль 130 вывода устройства 100 кодирования видео может выводить информацию кодирования о единицах кодирования с древовидной структурой, а модуль 220 извлечения данных изображения и информации кодирования устройства 200 декодирования видео может извлекать информацию кодирования о единицах кодирования с древовидной структурой из принимаемого битового потока.
Информация разбиения указывает на то, разбита ли текущая единица кодирования на единицы кодирования более низкой глубины. Если информация разбиения текущей глубины d равна 0, то глубина, при которой текущая единица кодирования далее не разбивается на более низкую глубину, является кодируемой глубиной, и таким образом для кодируемой глубины могут быть определены информация о типе разбиения, режиме предсказания и размере единицы преобразования. Если текущая единица кодирования дополнительно разбивается в соответствии с информацией разбиения, то кодирование независимо выполняется для четырех разбиваемых единиц кодирования более низкой глубины.
Режим предсказания может быть одним из внутрикадрового режима, межкадрового режима и режима с пропуском. Внутрикадровый режим и межкадровый режим могут быть определены при всех типах разбиения, а режим с пропуском определяется только при типе разбиения размера 2N×2N.
Информация о типе разбиения может указывать симметричные типы разбиения с размерами 2N×2N, 2N×N, N×2N и N×N, которые получаются посредством симметричного разбиения высоты или ширины единицы предсказания, и асимметричные типы разбиения с размерами 2N×nU, 2N×nD, nL×2N и nR×2N, которые получаются посредством ассиметричного разбиения высоты или ширины единицы предсказания. Ассиметричные типы разбиения с размерами 2N×nU и 2N×nD могут быть соответственно получены посредством разбиения высоты единицы предсказания в соотношении 1:3 и 3:1, а ассиметричные типы разбиения с размерами nL×2N и nR×2N могут быть соответственно получены посредством разбиения ширины единицы предсказания в соотношении 1:3 и 3:1.
Размер единицы преобразования может быть установлен из двух типов при внутрикадровом режиме и из двух типов при межкадровом режиме. Другими словами, если информация разбиения единицы преобразования равна 0, то размер единицы преобразования может быть 2N×2N, что является размером текущей единицы кодирования. Если информация разбиения единицы преобразования равна 1, то единицы преобразования могут быть получены посредством разбиения текущей единицы кодирования. Также, если тип разбиения текущей единицы кодирования с размером 2N×2N является симметричным типом разбиения, то размер единицы преобразования может быть N×N, а если тип разбиения текущей единицы кодирования является асимметричным типом разбиения, то размер единицы преобразования может быть N/2×N/2.
Информация кодирования о единицах кодирования с древовидной структурой может включать в себя, по меньшей мере, одно из: единицу кодирования, соответствующую кодируемой глубине, единицу предсказания и минимальную единицу. Единица кодирования, соответствующая кодируемой глубине, может включать в себя, по меньшей мере, одно из: единицу предсказания и минимальную единицу, содержащую точно такую же информацию кодирования.
Соответственно, определяется, включены ли соседние единицы данных в ту же единицу кодирования, соответствующую кодируемой глубине, посредством сравнения информации кодирования соседних единиц данных. Также соответствующая единица кодирования, соответствующая кодируемой глубине, определяется посредством использования информации кодирования единицы данных, и таким образом может определяться распределение кодируемых глубин в максимальной единице кодирования.
Соответственно, если текущая единица кодирования предсказывается на основании информации кодирования соседних единиц данных, то можно непосредственно опираться на и использовать информацию кодирования единиц данных в более глубоких единицах кодирования, соседних для текущей единицы кодирования.
В качестве альтернативы, если текущая единица кодирования предсказывается на основании информации кодирования соседних единиц данных, то производится поиск единиц данных, соседних для текущей единицы кодирования, используя информацию кодирования единиц данных, и найденные соседние единицы кодирования могут служить опорными для предсказания текущей единицы кодирования.
Фиг.13 является схемой для описания взаимосвязи между единицей кодирования, единицей предсказания или элементом разбиения, и единицей преобразования, в соответствии с информацией режима кодирования в Таблице 1.
Максимальная единица кодирования 1300 включает в себя единицы 1302, 1304, 1306, 1312, 1314, 1316 и 1318 кодирования кодируемых глубин. Здесь, поскольку единица 1318 кодирования является единицей кодирования кодируемой глубины, информация разбиения может быть установлена в 0. Информация о типе разбиения единицы 1318 кодирования размера 2N×2N может быть установлена как одно из: тип 1322 разбиения размером 2N×2N; тип 1324 разбиения размером 2N×N; тип 1326 разбиения размером N×2N; тип 1328 разбиения размером N×N, тип 1332 разбиения размером 2N×nU; тип 1334 разбиения размером 2N×nD; тип 1336 разбиения размером nL×2N; и тип 1338 разбиения размером nR×2N.
Когда тип разбиения установлен как симметричный, т.е. тип 1322, 1324, 1326 или 1328 разбиения, и если информация разбиения (флаг размера TU) единицы преобразования равен 0 то устанавливается единица 1342 преобразования с размером 2N×2N, а если флаг размера TU равен 1, то устанавливается единица 1344 преобразования с размером N×N.
Когда тип разбиения установлен как асимметричный, т.е., тип 1332, 1334, 1336 или 1338 разбиения, и если флаг размера TU равен 0, то устанавливается единица 1352 преобразования размером 2N×2N, а если флаг размера TU равен 1, то устанавливается единица 1354 преобразования размером N/2×N/2.
Обращаясь к Фиг.13, флаг размера TU является флагом со значением либо 0, либо 1, но флаг размера TU не ограничивается только до 1 бита, и единица преобразования может иерархически разбиваться, образуя древовидную структуру по мере роста флага размера TU от 0.
В данном случае, размер единицы преобразования, который был фактически использован, может выражаться посредством использования флага размера TU единицы преобразования, в соответствии с характерным вариантом осуществления, совместно с максимальным размером и минимальным размером единицы преобразования. В соответствии с характерным вариантом осуществления, устройство 100 кодирования видео выполнено с возможностью кодирования информации о максимальном размере единицы преобразования, информации о минимальном размере единицы преобразования и флаге максимального размера TU. Результат кодирования информации о максимальном размере единицы преобразования, информации о минимальном размере единицы преобразования и флаге максимального размера TU может вставляться в SPS. В соответствии с характерным вариантом осуществления, устройство 200 декодирования видео может декодировать видео при помощи информации о максимальном размере единицы преобразования, информации о минимальном размере единицы преобразования и флаге максимального размера TU.
Например, если размер текущей единицы кодирования равен 64×64, а максимальный размер единицы преобразования равен 32×32, то затем размер единицы преобразования может быть 32×32, когда флаг размера TU равен 0, может быть 16×16, когда флаг размера TU равен 1, и может быть 8×8, когда флаг размера TU равен 2.
В качестве другого примера, если размер текущей единицы кодирования равен 32×32, а минимальный размер единицы преобразования равен 32×32, то затем размер единицы преобразования может быть 32×32, когда флаг размера TU равен 0. В данном случае флаг размера TU не может быть установлен в значение, отличное от 0, поскольку размер единицы преобразования не может быть меньше, чем 32×32.
В качестве другого примера, если размер текущей единицы кодирования равен 64×64, а флаг максимального размера TU равен 1, то затем флаг размера TU может быть 0 или 1. В данном случае, флаг размера TU не может быть установлен в значение, отличное от 0 или 1.
Таким образом, если задано что флаг максимального размера TU является ‘MaxTransformSizeIndex’, минимальный размер единицы преобразования ‘MinTransformSize’, а размер единицы образования равен ‘RootTuSize’ при флаге размера TU равен 0, то затем текущий минимальный размер единицы преобразования ‘CurrMinTuSize’, который может определяться в текущей единице кодирования, может быть задан Уравнением (1):
CurrMinTuSize = max(MinTransformSize,RootTuSize/ (2^MaxTransformSizeIndex)) (1)
В сравнении с текущим минимальным размером единицы преобразования ‘CurrMinTuSize’, который может определяться в текущей единице кодирования, размер единицы кодирования ‘RootTuSize’ при флаге размера TU, равном 0, может обозначать максимальный размер единицы преобразования, который может быть выбран в системе. В Уравнении (1), ‘RootTuSize/(2^MaxTransformSizeIndex)’ обозначает размер единицы преобразования, когда размер единицы преобразования ‘RootTuSize’ при флаге размера TU, равном 0, разбит несколько раз, соответствуя флагу максимального размера TU, а ‘MinTransformSize’ обозначает минимальный размер преобразования. Таким образом, меньшее значение из ‘RootTuSize/(2^MaxTransformSizeIndex)’ и ‘MinTransformSize’ может быть текущим минимальным размером единицы преобразования ‘CurrMinTuSize’, которое может быть определено в текущей единице кодирования.
В соответствии с характерным вариантом осуществления, максимальный размер единицы преобразования RootTuSize может меняться согласно типу режима предсказания.
Например, если текущим режимом предсказания является межкадровый режим, то RootTuSize может определяться при помощи Уравнения (2) ниже. В Уравнении (2), ‘MaxTransformSize’ обозначает максимальный размер единицы преобразования, а ‘PUSize’ обозначает текущий размер единицы предсказания.
RootTuSize = min(MaxTransformSize, PUSize) (2)
То есть если текущим режимом предсказания является межкадровый режим, то размер единицы преобразования ‘RootTuSize’ при флаге размера TU, равном 0, может быть меньшим значением из максимального размера единицы преобразования и текущего размера единицы предсказания.
Если режимом предсказания текущей единицы разбиения является внутрикадровый режим, то ‘RootTuSize’ может определяться при помощи Уравнения (3) ниже. В Уравнении (3) ‘PartitionSize’ обозначает размер текущей единицы разбиения.
RootTuSize = min(MaxTransformSize, PartitionSize) (3)
То есть, если текущим режимом предсказания является внутрикадровый режим, то размер единицы преобразования ‘RootTuSize’ при флаге размера TU, равном 0, может быть меньшим значением из максимального размера единицы преобразования и размером текущей единицы разбиения.
Тем не менее, текущий максимальный размер единицы преобразования ‘RootTuSize’, который меняется в зависимости от типа режима предсказания в единице разбиения, является всего лишь примером и этим не ограничивается.
Теперь подробно будет описано внутрикадровое предсказание, выполняемое модулем 410 внутрикадрового предсказания устройства 100 кодирования видео, проиллюстрированным на Фиг.4, и модулем 550 внутрикадрового предсказания устройства 200 декодирования видео, проиллюстрированным на Фиг.5. В нижеследующем описании единица кодирования обозначает текущий кодируемый блок в процессе кодирования изображения, а единица декодирования обозначает текущий декодируемый блок в процессе декодирования изображения. Единица кодирования и единица декодирования отличаются только в том, что единица кодирования используется в процессе кодирования, а единица декодирования используется при декодировании. Для связанности терминов, за исключением конкретного случая, единица кодирования и единица декодирования именуются как единица кодирования, как в процессе кодирования, так и декодирования. Также, единица кодирования может быть единицей предсказания, элементом разбиения предсказания и блоком. Также, специалист в соответствующей области должен понимать, исходя из настоящего технического описания, что способ и устройство внутрикадрового предсказания в соответствии с характерным вариантом осуществления также могут применяться для выполнения внутрикадрового предсказания в обычном видеокодеке.
Фиг.14 является структурной схемой устройства 1200 внутрикадрового предсказания в соответствии с характерным вариантом осуществления.
Обращаясь к Фиг.14, устройство 1200 внутрикадрового предсказания включает в себя модуль 1210 фильтрации соседних пикселей, модуль 1220 определения опорных пикселей и модуль 1230 выполнения внутрикадрового предсказания.
Модуль 1210 фильтрации соседних пикселей фильтрует соседние пиксели, используемые для выполнения внутрикадрового предсказания текущей единицы кодирования, которая будет закодирована, чтобы сформировать отфильтрованные соседние пиксели. Фильтрация соседних пикселей далее будет описана со ссылкой на Фиг.19 и 20.
Фиг.19 является схемой, иллюстрирующей текущую единицу 1700 кодирования и соседние пиксели 1710 и 1720, которые будут фильтроваться, в соответствии с характерным вариантом осуществления.
Обращаясь к Фиг.19, модуль 1210 фильтрации соседних пикселей фильтрует X соседние пиксели 1710 сверху от текущей единицы 1700 кодирования и Y соседние пиксели 1720 слева от текущей единицы 1700 кодирования, по меньшей мере, единожды, чтобы сформировать отфильтрованные соседние пиксели. В данном случае, если текущая единица 1700 кодирования имеет размер N×N, то модуль 1210 фильтрации соседних пикселей может фильтровать 4N соседних пикселей, так что 2N соседних пикселей 1710 находятся сверху от текущей единицы 1700 кодирования, и 2N соседних пикселей 1720 находятся слева от текущей единицы 1700 кодирования. То есть X=2N и Y=2N. Количество соседних пикселей 1710 и 1720, фильтруемых модулем 1210 фильтрации соседних пикселей, этим не ограничивается и может быть изменено, принимая во внимание направленность режима внутрикадрового предсказания, который применяется к текущей единице 1700 кодирования.
Также, на Фиг.19, если X+Y исходных соседних пикселей 1710 и 1720 сверху и слева от текущей единицы 1700 кодирования представлены ContextOrg[n] (где n является целым числом от 0 до X+Y-1), и крайний снизу соседний пиксель из Y соседних пикселей 1720 имеет значение n=0, т.е. ContextOrg[0], то крайний справа соседний пиксель из X соседних пикселей 1710 имеет значение n=X+Y-1, т.е., ContextOrg[X+Y-1].
Фиг.20 является схемой для описания процесса фильтрации соседних пикселей, в соответствии с характерным вариантом осуществления.
Обращаясь к Фиг.20, если 4N исходные соседние пиксели сверху и слева от текущей единицы кодирования с размером N×N представлены ContextOrg[n] (где n является целым числом от 0 до 4N-1), то модуль 1210 фильтрации соседних пикселей фильтрует исходные соседние пиксели посредством вычисления средневзвешенных значений между исходными соседними пикселями, чтобы сформировать первые отфильтрованные соседние пиксели ContextFiltered1[n]. Например, модуль 1210 фильтрации соседних пикселей 1210 формирует первые отфильтрованные соседние пиксели посредством применения фильтра 3-порядка (3-tap) к исходным соседним пикселям ContextOrg[n], как представлено Уравнением (4).
ContextFiltered1[n] = (ContextOrg[n-1]+2*ContextOrg[n]+ContextOrg[n+1])/4 (4)
Обращаясь к Уравнению (4), модуль 1210 фильтрации соседних пикселей вычисляет средневзвешенное значение соседнего пикселя ContextOrg[n] который фильтруется в настоящий момент, из исходного соседнего пикселя ContextOrg[n-1] и соседнего пикселя ContextOrg[n+1], расположенных слева и справа от соседнего пикселя ContextOrg[n], чтобы сформировать первый отфильтрованный соседний пиксель. Крайние отфильтрованные соседние пиксели из числа первых отфильтрованных соседних пикселей имеют значения исходных соседних пикселей. То есть, ContextFiltered1[0]=ContextOrg[0] и ContextFiltered1[4N-1]=ContextOrg[4N-1].
Аналогичным образом модуль 1210 фильтрации соседних пикселей может вычислить средневзвешенные значения между первыми отфильтрованными соседними пикселями ContextFiltered1[n], чтобы сформировать вторые отфильтрованные соседние пиксели ContextFiltered2[n]. Например, модуль 1210 фильтрации соседних пикселей формирует вторые отфильтрованные соседние пиксели посредством применения фильтра 3-порядка к первым отфильтрованным соседним пикселям ContextFiltered1[n], как представлено Уравнением (5).
ContextFiltered2[n] = (ContextFiltered1[n-1]+2*ContextFiltered1[n]+ContextFiltered1[n+1])/4 (5)
Обращаясь к Уравнению (5), модуль 1210 фильтрации соседних пикселей вычисляет средневзвешенное значение соседнего пикселя ContextFiltered1[n], который фильтруется в настоящий момент, из первого отфильтрованного соседнего пикселя ContextFiltered1[n-1] и соседнего пикселя ContextFiltered1[n+1], расположенных слева и справа от соседнего пикселя ContextFiltered1[n], чтобы сформировать второй отфильтрованный соседний пиксель. Крайние отфильтрованные соседние пиксели из числа вторых отфильтрованных соседних пикселей имеют значения первых соседних пикселей. То есть, ContextFiltered2[0]=ContextFiltered1[0] и ContextFiltered2[4N-1]=ContextFiltered1[4N-1]. Описанный выше процесс фильтрации соседних пикселей может повторяться более чем дважды. Также, количество порядков фильтра для фильтрации соседних пикселей не ограничивается тремя, как описано выше, и может гибко изменяться. Также количество порядков фильтра и коэффициент фильтра для фильтрации соседних пикселей могут применяться адаптивно.
Модуль 1220 определения опорного пикселя определяет отфильтрованные соседние пиксели или исходные соседние пиксели в качестве опорных пикселей, которые будут использоваться для выполнения внутрикадрового предсказания текущей единицы кодирования. Более подробно, модуль 1220 определения опорных пикселей выбирает исходные соседние пиксели, первые отфильтрованные соседние пиксели или вторые отфильтрованные соседние пиксели в качестве опорных пикселей в соответствии с размером текущей единицы кодирования и типом режима внутрикадрового предсказания, выполняемого в настоящий момент. Например, если ссылочный индекс режима предсказания, использующего исходные соседние пиксели, равен 0, ссылочный индекс режима предсказания, использующего первые отфильтрованные соседние пиксели, равен 1, и ссылочный индекс режима предсказания, использующего вторые отфильтрованные соседние пиксели, равен 2, то модуль 1220 определения опорных пикселей может определить тип соседних пикселей, которые будут использоваться для выполнения внутрикадрового предсказания, в соответствии с размером текущей единицы кодирования и типом режима внутрикадрового предсказания, который будет выполнятся в текущий момент, как показано на Таблице 2.
<b>Таблица 2</b>
Режим Предсказания
Размер Единицы Кодирования
Режим Предсказания
Размер Единицы Кодирования
0
4×4
8×8
16×16
32×32
64×64
N×N (N>64)
4×4
8×8
16×16
32×32
64×64
N×N (N>64)
1
0
1
0
0
0
0
17
-
-
2
2
-
-
2
0
1
0
0
0
0
18
-
-
2
2
-
-
3
0
1
0
0
0
0
19
-
-
2
2
-
-
4
0
1
0
0
0
0
20
-
-
2
2
-
-
5
1
2
2
2
2
2
21
-
-
2
2
-
-
6
1
2
2
2
-
-
22
-
-
2
2
-
-
7
1
2
2
2
-
-
23
-
-
2
2
-
-
8
1
2
2
2
-
-
24
-
-
2
2
-
-
9
-
-
2
2
-
-
25
-
-
2
2
-
-
10
-
-
2
2
-
-
26
-
-
2
2
-
-
11
-
-
2
2
-
-
27
-
-
2
2
-
-
12
-
-
2
2
-
-
28
-
-
2
2
-
-
13
-
-
2
2
-
-
29
-
-
2
2
-
-
14
-
-
2
2
-
-
30
-
-
2
2
-
-
15
-
-
2
2
-
-
31
-
-
2
2
-
-
16
-
-
2
2
-
-
32
-
-
2
2
-
-
Обращаясь к Таблице 2, например, если текущая единица кодирования имеет размер 32×32, и внутрикадровое предсказание выполняется посредством использования режима 4 внутрикадрового предсказания, то ссылочный индекс равен 0, и таким образом модуль 1220 определения опорных пикселей определяет исходные соседние пиксели ContextOrg[n] в качестве опорного пикселя, который будет использоваться для выполнения внутрикадрового предсказания в текущей единице кодирования. Режимы внутрикадрового предсказания в Таблице 2 представляют собой режимы внутрикадрового предсказания, показанные в Таблице 3. Также, знак «-» в Таблице 2 представляет собой то, что режим внутрикадрового кодирования для соответствующего размера единицы кодирования не определен. Таблица 2 основана на режимах внутрикадрового предсказания, показанных в Таблице 3, и показана в качестве примера. При другой Таблице 3, поскольку согласно размерам единиц кодирования устанавливаются другие режимы внутрикадрового предсказания, ссылочные индексы в Таблице 2 могут быть установлены по-другому.
Вновь обращаясь к Фиг.14, если модуль 1220 определения опорных пикселей определяет опорные пиксели, которые будут использоваться для выполнения внутрикадрового предсказания текущей единицы кодирования, из исходных соседних пикселей и отфильтрованных соседних пикселей, то модуль 1230 выполнения внутрикадрового предсказания выполняет внутрикадровое предсказания посредством использования определенных опорных пикселей в соответствии с режимом внутрикадрового предсказания, который доступен согласно размеру текущей единицы кодирования, чтобы сформировать предсказанную единицу кодирования.
Фиг.15 является таблицей, показывающей количество режимов внутрикадрового предсказания согласно размерам единиц кодирования, в соответствии с характерным вариантом осуществления.
В соответствии с характерным вариантом осуществления количество режимов внутрикадрового предсказания, которые могут применяться к единице кодирования (единице декодирования в процессе декодирования), может быть задано переменным. Например, обращаясь к Фиг.15, если размер единицы кодирования, для которой выполняется внутрикадровое предсказание, равен N×N, то количество фактически выполняемых режимов внутрикадрового предсказания для единиц кодирования размером 2×2, 4×4, 8×8, 16×16, 32×32, 64×64 и 128×128, может быть соответственно установлено как 5, 9, 9, 17, 33, 5 и 5 (в Примере 2). В качестве другого примера, когда размер единицы кодирования, которая должна быть предсказана внутрикадровым образом, равна N×N, то количество режимов фактически выполняемого внутрикадрового предсказания для единиц кодирования размера 2×2, 4×4, 8×8, 16×16, 32×32, 64×64 и 128×128 может быть установлено как 3, 17, 34, 34, 34, 5 и 5. Количество режимов фактически выполняемого внутрикадрового предсказания по-разному установлены согласно размерам единиц кодирования, так как расходы на кодирование информации режима предсказания отличаются в соответствии с размерами единиц кодирования. Другими словами, небольшая единица кодирования занимает небольшую часть всех данных изображении, но может иметь большие расходы, для того чтобы передать дополнительную информацию, такую как информация режима предсказания единицы кодирования. Соответственно, если небольшая единица кодирования кодируется при помощи чересчур большого количества режимов кодирования, то может вырасти количество бит, и таким образом может упасть эффективность сжатия. Также большая единица кодирования, например, единица кодирования, равная или больше, чем 64×64, как правило, соответствует плоской области данных изображения, и таким образом кодирование большой области при помощи чересчур большого количества режимов кодирования может также уменьшить эффективность сжатия.
Таким образом, в соответствии с характерным вариантом осуществления, единицы кодирования грубо классифицируются на, по меньшей мере, три размера, такие как N1×N1 (где 2=N1=4, и N1 является целым числом), N2×N2 (где 8=N2=32, и N2 является целым числом) и N3×N3 (где 64=N3, и N3 является целым числом). Если количество режимов внутрикадрового предсказания, выполняемого для единиц кодирования размером N1×N1, равно A1 (где A1 является положительным целым числом), количество режимов внутрикадрового предсказания, выполняемого для единиц кодирования размером N2×N2, равно A2 (где A2 является положительным целым числом), и количество режимов внутрикадрового предсказания, выполняемого для единиц кодирования размером N3×N3, равно A3 (где A3 является положительным целым числом), то количество режимов предсказания выполняемых в соответствии с размерами единиц кодирования может быть установлено так, чтобы выполнялось условие A3=A1=A2. То есть, если текущий кадр разбит на небольшие единицы кодирования, средние единицы кодирования и большие единицы кодирования, то может быть установлено, чтобы средние единицы кодирования имели наибольшее количество режимов кодирования, и может быть установлено, чтобы небольшие единицы кодирования и большие единицы кодирования имели относительно небольшое количество режимов предсказания. Тем не менее, характерный вариант осуществления этим не ограничивается, и может быть установлено, чтобы небольшие и большие единицы кодирования также имели большое число режимов кодирования. На Фиг.15 в качестве примера показано и может меняться количество режимов кодирования согласно размерам единиц кодирования.
Фиг.16A является таблицей, показывающей режимы внутрикадрового предсказания, которые применяются к единице кодирования с заранее определенным размером, в соответствии с характерным вариантом осуществления.
Обращаясь к Фиг.15 и 16A, например, когда внутрикадровое предсказание выполняется для единицы кодирования размером 4×4, то единица кодирования может иметь вертикальный режим (режим 0), горизонтальный режим (режим 1), режим прямого хода (DC) (режим 2), режим диагонально вниз-влево (режим 3), режим диагонально вниз-вправо (режим 4), режим вертикально-вправо (режим 5), режим горизонтально-вниз (режим 6), режим вертикально-влево (режим 7) и режим горизонтально-вверх (режим 8).
Фиг.16B иллюстрирует направления режимов внутрикадрового предсказания, показанных на Фиг.16A. На Фиг.16B числа на концах стрелок представляют собой режимы предсказания, соответствующие направлениям предсказания, указанным стрелками. В данном случае, режим 2 является режимом DC, не имеющим направленности и вследствие этого не показанным на Фиг.16B.
Фиг.16C является схемой для описания способа выполнения внутрикадрового предсказания для единицы кодирования при помощи режимов внутрикадрового предсказания, показанных на Фиг.16A.
Обращаясь к Фиг.16C, предсказанная единица кодирования формируется посредством выполнения доступного режима внутрикадрового предсказания в соответствии с размером текущей единицы кодирования при помощи использования соседних пикселей с A по M текущей единицы кодирования. В качестве примера будет описана операция выполнения кодирования с предсказанием текущей единицы кодирования размером 4×4 в соответствии с режимом 0, т.е., вертикальным режимом, показанным на Фиг.16A. Исходно значения соседних пикселей с A по D сверху текущей единицы кодирования предсказываются как значения пикселей текущей единицы кодирования. То есть, значение соседнего пикселя A предсказывается в качестве значения четырех пикселей в первом столбце текущей единицы кодирования, значение соседнего пикселя B предсказывается в качестве значения четырех пикселей во втором столбце текущей единицы кодирования, значение соседнего пикселя C предсказывается в качестве значения четырех пикселей в третьем столбце текущей единицы кодирования, а значение соседнего пикселя D предсказывается в качестве значения четырех пикселей в четвертом столбце текущей единицы кодирования. После этого, значения пикселей текущей единицы кодирования, предсказанные при помощи соседних пикселей с A по D, вычитаются из значений пикселя исходной текущей единицы кодирования, чтобы вычислить значение ошибки, и затем кодируется значение ошибки. Между тем, когда применяются различные режимы внутрикадрового предсказания, то соседними пикселями, используемыми в качестве опорных пикселей, могут быть исходные соседние пиксели или отфильтрованные соседние пиксели, как описано выше.
Фиг.17 иллюстрирует режимы внутрикадрового предсказания, которые применяются к единице кодирования с заранее определенным размером, в соответствии с другим характерным вариантом осуществления.
Обращаясь к Фиг.15 и 17, например, когда внутрикадровое предсказание выполняется для единицы кодирования размером 2×2, то единица кодирования может суммарно иметь пять режимов, такие как вертикальный режим, горизонтальный режим, режим DC, плоскостной режим и режим диагонально вниз-вправо.
-1
Между тем, если единица кодирования размером 32×32 имеет 33 режима внутрикадрового предсказания, как показано на Фиг.15, то требуется установить направления 33 режимов внутрикадрового предсказания. В соответствии с характерным вариантом осуществления, для того чтобы установить режим предсказания, имеющий различные направления в дополнение к режимам предсказания, проиллюстрированным на Фиг.16A-16C и 17, направления предсказания для выбора соседних пикселей, используемых в качестве опорных пикселей для пикселей единицы кодирования, устанавливаются при помощи параметров (dx, dy). Например, если каждый из 33 режимов предсказания заданы как режим N (где N является целым числом от 0 до 32), то режим 0 может быть установлен в качестве вертикального режима, режим 1 может быть установлен в качестве горизонтального режима, режим 2 может быть установлен в качестве режима DC, режим 3 может быть установлен в качестве плоскостного режима, а каждый из режимов с 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), показанные в Таблице 3.
<b>Таблица 3</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 является билинейным режимом.
Фиг.18A-18C являются схемами для описания режимов внутрикадрового предсказания с разными направленностями, в соответствии с характерным вариантом осуществления.
-1
Как описано выше в отношении Таблицы 3, режимы внутрикадрового предсказания в соответствии с характерным вариантом осуществления могут иметь различные направленности tan(dy/dx) посредством использования множества параметров (dx,dy).
-1
Обращаясь к Фиг.18A, соседние пиксели A и B по продолженной линии 160 с углом tan(dy/dx) согласно значений (dx,dy) в Таблице 3 применительно к текущему пикселю P в текущей единице кодирования, которая будет предсказана, могут использоваться в качестве предсказывающего параметра текущего пикселя P. В данном случае, соседние пиксели, используемые в качестве предсказывающих параметров, могут быть ранее закодированными и восстановленными пикселями предыдущей единицы кодирования сверху и слева от текущей единицы кодирования. Также, если продолженная линия 160 проходит между двумя соседними пикселями, расположенными в местоположениях с целочисленными значениями, то в качестве предсказывающего параметра текущего пикселя P может использоваться один из соседних пикселей, находящийся ближе к продолженной линии 160, чем другой.
Также, если продолженная линия 160 проходит между двумя соседними пикселями, расположенными в местоположениях с целочисленными значениями, то в качестве предсказывающего параметра текущего пикселя P может использоваться один из соседних пикселей, находящийся ближе к текущему пикселю P, чем другой, или в качестве предсказывающего параметра может использоваться средневзвешенное значение, вычисленное, принимая во внимание расстояния от соседних пикселей до пересечения продолженной линии 160 с линией, соединяющей соседние пиксели.
Фиг.18B и 18C являются схемами для описания процесса формирования предсказывающего параметра, когда продолженная линия 160 проходит между соседними пикселями, расположенными в местоположениях с целочисленными значениями, в соответствии с характерным вариантом осуществления.
-1
Обращаясь к Фиг.18B, если продолженная линия 160 с углом tan(dy/dx), определяемым согласно значения (dx,dy) каждого режима, проходит между соседними пикселями A 151 и B 152, расположенными в местоположениях с целочисленными значениями, как описано выше, то в качестве предсказывающего параметра текущего пикселя P может использоваться либо один из соседних пикселей A 151 и B 152, находящийся ближе к продолженной линии 160, либо средневзвешенное значение, вычисленное, принимая во внимание расстояния от соседних пикселей A 151 и B 152 до пересечения продолженной линии 160 с линией, соединяющей соседние пиксели A 151 и B 152. Например, если расстояние между пересечением и соседним пикселем A 151 равно f, а расстояние между пересечением и соседним пикселем B 152 равно g, то предсказывающий параметр текущего пикселя P может получаться как (A*g+B*f)/(f+g). В данном случае, f и g могут быть расстояниями, выраженными целочисленными значениями. При фактической реализации в программном или аппаратном обеспечении, предсказывающий параметр текущего пикселя P может быть получен посредством выполнения операции сдвига, такой как (g*A+f*B+2)>>2. Как проиллюстрировано на Фиг.18B, если продолженная линия 160 проходит в местоположении ¼ между соседними пикселями A 151 и B 152, которое ближе к соседнему пикселю A 151, то предсказывающий параметр текущего пикселя P может быть получен как (3*A+B)/4. Данное значение может быть получено посредством выполнения операции сдвига, такой как (3*A+B+2)>>2, принимая во внимание округление.
Между тем, если продолженная линия 160 проходит между соседними пикселями A 151 и B 152, то отрезок между соседними пикселями A 151 и B 152 может быть разбит на заранее определенное число отрезков, и вычислено средневзвешенное значение, принимая во внимание расстояние между пересечением, а соседние пиксели A 151 и B 152 в каждом отрезке могут использоваться в качестве предсказывающих параметров. Например, обращаясь к Фиг.18C, отрезок между соседними пикселями A 151 и B 152 разбивается на пять отрезков с P1 по P5, и в каждом отрезке может определяться характерное средневзвешенное значение, вычисляемое, принимая во внимание расстояния между пересечением и соседними пикселями A 151 и B 152, и может использоваться в качестве предсказывающего параметра текущего пикселя P. Более подробно, если продолженная линия 160 проходит через отрезок P1, то значение соседнего пикселя A 151 может определяться в качестве предсказывающего значения текущего пикселя P. Если продолженная линия 160 проходит через отрезок P2, то в качестве предсказывающего параметра текущего пикселя P может определяться средневзвешенное значение, вычисленное, принимая во внимание расстояния между центром отрезка P2 и соседними пикселями A 151 и B 152, т.е. (3*A+1*B+2)>>2. Если продолженная линия 160 проходит через отрезок P3, то в качестве предсказывающего параметра текущего пикселя P может определяться средневзвешенное значение, вычисленное, принимая во внимание расстояния между центром отрезка P3 и соседними пикселями A 151 и B 152, т.е. (2*A+2*B+2)>>2. Если продолженная линия 160 проходит через отрезок P4, то в качестве предсказывающего параметра текущего пикселя P может определяться средневзвешенное значение, вычисленное, принимая во внимание расстояния между центром отрезка P4 и соседними пикселями A 151 и B 152, т.е. (1*A+3*B+2)>>2. Если продолженная линия 160 проходит через отрезок P5, то в качестве предсказывающего параметра текущего пикселя P может определяться значение соседнего пикселя B 152.
Также, как проиллюстрировано на Фиг.18A, если продолженная линия 160 соприкасается с двумя соседними пикселями, такими как соседний пиксель A на верхней стороне и соседним пикселем B с левой стороны, то в качестве предсказывающего параметра текущего пикселя P может использоваться среднее значение соседних пикселей A и B. В качестве альтернативы, соседний пиксель A может использоваться, если значение dx*dy является положительным числом, а соседний пиксель B может использоваться, если значение dx*dy является отрицательным числом. Также, как описано выше, соседние пиксели, используемые в качестве опорных пикселей, могут быть исходными пикселями или отфильтрованными пикселями.
Режимы внутрикадрового предсказания, имеющие разные направленности в Таблице 3, могут быть предварительно установлены на стороне кодировщика и стороне декодера, и таким образом каждая единица кодирования может передавать индексы, соответствующие только установленным режимам внутрикадрового предсказания.
В соответствии с характерным вариантом осуществления, так как кодирование с предсказанием выполняется в соответствии с режимами внутрикадрового предсказания, гибко устанавливаемыми согласно размерам единицы кодирования, то эффективность сжатия изображения может быть улучшена в соответствии с характеристиками изображения. Также, в соответствии с характерным вариантом осуществления, так как для выполнения внутрикадрового предсказания избирательно используются либо исходные соседние пиксели, либо отфильтрованные соседние пиксели, то предсказание может выполняться более гибко, и таким образом может быть улучшена эффективность сжатия изображения.
В соответствии с другим характерным вариантом осуществления, вместо использования соседних пикселей, определенных ранее согласно размерам текущей единицы кодирования и типу режима внутрикадрового предсказания, который будет выполняться в настоящий момент, модуль 1230 выполнения внутрикадрового предсказания может выполнять предсказание для текущей единицы кодирования согласно доступному режиму предсказания посредством раздельного использования в качестве опорных пикселей исходных соседних пикселей, первых отфильтрованных пикселей и вторых отфильтрованных пикселей, а модуль 1220 определения опорных пикселей может выбирать соседние пиксели с минимальными затратами в качестве опорных пикселей, которые будут окончательно использованы для выполнения внутрикадрового предсказания текущей единицы кодирования.
Фиг.21 является блок-схемой, иллюстрирующей способ кодирования видео в соответствии с характерным вариантом осуществления.
Обращаясь к Фиг.21, на операции 1910, фильтруются соседние пиксели текущей единицы кодирования, которая кодируется, для формирования отфильтрованных соседних пикселей. Как описано выше, модуль 1210 фильтрации соседних пикселей фильтрует соседние пиксели сверху и слева от текущей единицы кодирования, по меньшей мере, единожды, чтобы сформировать отфильтрованные соседние пиксели. В данном случае, единица кодирования может быть получена посредством разбиения текущего кадра согласно максимальной единице кодирования, то есть единицы кодирования максимального размера, и кодируемой глубины, то есть иерархической информации разбиения максимальной единицы кодирования.
В операции 1920, отфильтрованные соседние пиксели или исходные соседние пиксели выбираются в качестве опорных пикселей, которые будут использоваться для выполнения внутрикадрового предсказания текущей единицы кодирования. Как описано выше, модуль 1220 определения опорных пикселей может выбрать опорные пиксели согласно размерам текущей единицы кодирования и типу режима внутрикадрового предсказания, который будет выполняться в настоящий момент, как показано на Таблице 2. В соответствии с другим характерным вариантом осуществления модуль 1220 определения опорных пикселей может сравнивать результирующие затраты на кодирование с внутрикадровым предсказанием, выполняемое посредством использования по отдельности исходных соседних пикселей и отфильтрованных соседних пикселей, и может определять соседний пиксель, используемый в конечном итоге для выполнения внутрикадрового предсказания. Также, модуль 1220 определения опорных пикселей может осуществлять сигнализацию для указания того, какой соседний пиксель выбран для выполнения внутрикадрового предсказания текущей единицы кодирования из исходных соседних пикселей и отфильтрованных соседних пикселей. Другими словами, информация о режиме внутрикадрового предсказания может содержать информацию о ссылочном индексе, указывающую, какой соседний пиксель выбран из исходных соседних пикселей и отфильтрованных соседних пикселей для выполнения внутрикадрового предсказания текущей единицы кодирования. Когда опорные пиксели, которые должны использоваться, предварительно установлены на кодирующей стороне и декодирующей стороне, как показано в Таблице 2, то передача информации о ссылочном индексе не требуется.
В операции 1930 внутрикадровое предсказание выполняется для текущей единицы кодирования при помощи выбранных опорных пикселей. Как описано выше, модуль 1230 выполнения внутрикадрового предсказания формирует предсказанную единицу кодирования посредством выполнения внутрикадрового предсказания текущей единицы кодирования, применяя режим внутрикадрового предсказания, который доступен в текущей единице кодирования посредством использования выбранных опорных пикселей, и выдает предсказанную единицу кодирования.
Фиг.22 является блок-схемой последовательности операций, иллюстрирующей способ декодирования видео в соответствии с характерным вариантом осуществления.
Обращаясь к Фиг.22, в операции 2010, соседние пиксели текущей единицы декодирования, которая будет декодирована, фильтруется для формирования отфильтрованных соседних пикселей.
На операции 2020 информация о режиме внутрикадрового предсказания, который применялся к текущей единице декодирования, извлекается из битового потока. Информация о режиме внутрикадрового предсказания может включать в себя информацию о режиме внутрикадрового предсказания, который применялся к текущей единице декодирования, и информацию о ссылочном индексе, представляющую собой, используются ли в качестве опорных пикселей исходные соседние пиксели или отфильтрованные соседние пиксели. Если, как показано в Таблице 1, одинаковый тип опорных пикселей, которые должны использоваться согласно режимам внутрикадрового предсказания и размеру текущей единицы декодирования, установлен на стороне кодировщика и стороне декодера, то не требуется передавать информацию о ссылочном индексе.
В операции 2030 отфильтрованные соседние пиксели или исходные соседние пиксели выбираются в качестве опорных пикселей, которые будут использоваться для выполнения внутрикадрового предсказания текущей единицы декодирования. Как описано выше, если информация о ссылочном индексе дополнительно включена в битовый поток, то опорные пиксели выбираются в соответствии с извлеченной информацией о ссылочном индексе. Если, как показано в Таблице 2, опорные пиксели могут определяться на основании размера и режима внутрикадрового предсказания текущей единицы декодирования, то определение того, использовать ли в качестве опорных пикселей исходные соседние пиксели или отфильтрованные соседние пиксели, может происходить на основании размера и режима внутрикадрового предсказания текущей единицы декодирования.
В операции 2040, внутрикадровое предсказание выполняется для текущей единицы декодирования при помощи извлеченной информации о режиме внутрикадрового предсказания и выбранных опорных пикселей.
Настоящее изобретение также может быть воплощено в качестве машиночитаемого кода на машиночитаемом носителе записи. Машиночитаемый носитель записи является любым устройством хранения данных, который может хранить данные, которые впоследствии считываются компьютерной системой. Примеры машиночитаемого носителя записи включают в себя постоянную память (ROM), оперативную память (RAM), CD-ROM, магнитные ленты, гибкие диски и оптические устройства хранения данных. Машиночитаемый носитель записи также может распределяться через сеть, объединяющую компьютерные системы, так что машиночитаемый код храниться и исполняется распределенным образом.
Несмотря на то, что настоящее изобретение было, в частности, показано и описано со ссылкой на его характерные варианты осуществления, специалисту в соответствующей области должно быть понятно, что могут быть выполнены различные изменения в форме и деталях, не отступая при этом от сущности и объема изобретения, как определено нижеследующей формулой изобретения. Характерные варианты осуществления должны рассматриваться только в духе, присущем описанию, а не в целях ограничения. Вследствие этого, объем изобретения определяется не подробным описанием изобретения, а нижеследующей формулой изобретения, и все отличия в рамках объема должны толковаться как включенные в настоящее изобретение.