Способ предсказания движения и способ кодирования видеоинформации
Иллюстрации
Показать всеИзобретение относится к вычислительной технике. Технический результат заключается в предотвращении распространения ошибки парсинга. Способ предсказания движения включает получение множества предсказателей векторов движения, которые должны быть включены в набор вариантов для предсказания движения текущего блока текущего кадра; установление, действительно ли текущий кадр не является базовым кадром и другие кадры не могут ссылаться на него для предсказания движения; удаление любого предсказателя векторов движения, соответствующего предварительно закодированному кадру из набора вариантов, когда текущий кадр является базовым кадром; и предсказание вектора движения текущего блока на основе предсказателей векторов движения из набора вариантов. 2 н. и 12 з.п. ф-лы, 9 ил.
Реферат
ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННЫЕ ЗАЯВКИ
Данная заявка притязает на преимущество приоритета предварительной патентной заявки США с серийным номером 61/ 326, 731, 803, поданной 22 апреля, 2010, и патентной заявки США с серийным номером 12/ 962,411, поданной 7 декабря,2010, которые полностью включены сюда на основании ссылки.
ОБЛАСТЬ ПРИМЕНЕНИЯ
Данное изобретение относится к обработке видеоинформации, и, в частности, к предсказанию движения и кодированию видеоинформации.
УРОВЕНЬ ТЕХНИКИ
Новый перспективный Н.264 стандарт сжатия может обеспечить хорошее качество видео при значительно более низкой скорости передачи в битах, чем предшествующие стандарты, за счет субпиксельной точности и многократных ссылок. Процесс сжатия видео можно в целом разделить на 5 частей, а именно: inter-предсказание /intra-предсказание, преобразование/обратное преобразование, квантование/обратное квантование, ФНЧ (синхронного детектора), и энтропийное кодирование. Н.264 используется в различных приложениях, таких как Blu-ray диски, DVB службы вещания, спутниковое телевизионное вещание, кабельное телевизионное вещание и видеоконференции в режиме реального времени.
Поток данных видеосиналов включает множество кадров, и каждый кадр разделен на множество кодирующих блоков (например, макроблоки или расширенные макроблоки), которые должны быть, соответственно, обработаны кодером сигнала изображения. Каждый кодирующий блок может быть сегментирован на фрагменты квадротимического представления, и листовой кодирующий блок называется блоком предсказания. Блок предсказания может быть также сегментирован на фрагменты квадротимического представления, причем для каждого фрагмента устанавливается параметр движения. Чтобы сократить расходы на передачу огромного количества параметров движения, предсказатель векторов движения (MVP) рассчитывается для каждого фрагмента путем ссылки на соседние кодовые блоки, и, таким образом, эффективность кодирования может быть улучшена, поскольку движение соседних блоков имеет тенденцию к высокой пространственной корреляции. На принципиальной схеме Фиг.1 показаны соседние блоки текущего блока 112. Текущий кадр 102 включает текущий блок 112 и множество вариантов блока А, В, С, и D, соседних с текущим блоком 112. Вариант блока А находится слева от текущего блока 112, вариант блока В находится сверху от текущего блока 112, вариант блока С находится в правом верхнем углу от текущего блока 112, и вариант блока А расположен в левом верхнем углу от текущего блока 112. В целом, MVP текущего блока 112 определяется путем сравнения векторов движения вариантов блока А, В, и С, и выбора среднего вектора движения, который и должен стать MVP текущего блока 112. Когда вариант блока С не существует, векторы движения вариантов блоков А, В, и D сравниваются друг с другом, чтобы выбрать средний вектор движения, причем данный средний вектор движения становится MVP текущего блока 112.
С небольшими поправками к вышеупомянутому способу предсказания вектора движения, для предсказания движения также предусмотрена состязательность векторов движения (MVC). В соответствии с M.VC, чем больше векторов движения включено в набор вариантов для предсказания движения текущего блока, тем точнее предсказание движения. Например, набор вариантов может включать векторы движения соседних блоков текущего блока 112, а также вектор движения совместного блока 114, которые имеют такое же расположение в базовом кадре 104, что и текущий блок 112 в текущем кадре 102. Оптимизация степени искажения (RDO) используется для отбора конечного предсказателя векторов движения для текущего блока из набора вариантов. Прогнозирование вектора движения текущего блока основано на конечном предсказателе векторов движения. Индекс конечного предсказателя векторов движения, выбранный из набора вариантов, отправляется в качестве информации для предсказания на видеодекодеры, чей предсказатель векторов движения выбран для текущего блока.
На Фиг.2 показана блок-схема способа предсказания движения 200. Прежде всего, получены векторы движения множества вариантов блоков, соответствующих текущему блоку, с целью включения в набор вариантов (шаг 202). Затем вектоыа движения в наборе вариантов сравниваются друг с другом. Когда векторы движения не равны друг другу (шаг 204), предсказатель векторов движения выбирается из набора вариантов (шаг 206), и вектор движения текущего блока прогнозируется на основе предсказателя векторов движения (шаг 208). В заключение, информация для предсказания о выбранном предсказателе векторов движения генерируется и затем отправляется в битовый поток (шаг 210). Когда векторы движения в наборе вариантов равны друг другу (шаг 204), вектор движения текущего блока предсказывается на основе любого вектора движения в наборе вариантов (шаг 212), и информация для предсказания о выбранном предсказателе векторов движения не генерируется и не отправляется затем в битовый поток.
Ошибки парсинга при декодировании битового потока могут возникнуть в результате неправильного декодирования. Когда ошибка парсинга возникает в синтаксическом парсинге во время декодирования видео, вся последующая видеообработка становится невозможной, пока не будет обнаружен следующий символ синхронизации. Ошибка парсинга может распространяться, если разрешено межкадровое энтропийное кодирование; примером межкадрового энтропийного кодирования является использование вектора движения предшествующего кадра в качестве предсказателя векторов движения текущего кадра, чтобы добиться улучшения кодирования. Символы синхронизации, такие как стартовый код кадра, используемый для повторной инициализации кадров, могут и не воспрепятствовать распространению ошибки парсинга. Использование вышеупомянутого способа состязательности векторов движения может также способствовать распространению ошибки парсинга. В соответствии с способом состязательности векторов движения 200 на Фиг.2, когда векторы движения в наборе вариантов равны друг другу, информация предсказания сигнализирует, что предсказатель векторов движения не отправляется в битовый поток. Когда информация предсказания о предсказателе векторов движения опускается, сокращается объем данных кодированного потока видеоинформации, который отправляется на декодер сигнала изображения. Если декодер сигнала изображения не сможет выявить преднамеренное опущение информации предсказания и ошибочно воспримет последующий сегмент кодированного потока данных изображения в качестве информации предсказания, то последующие данные в кодированном потоке данных изображения будут ошибочно декодированы, и эта ошибка парсинга будет распространяться дальше.
Ошибка парсинга при декодировании предшествующего кадра, которая может привести к возникновению ошибки парсинга при декодировании множества последующих кадров, называется распространением ошибки парсинга. Когда первый последующий кадр воспринимает предшествующий кадр в качестве базового кадра, то при кодировании первого последующего кадра используется кодированная информация предшествующего кадра. Если ошибка парсинга происходит при декодированиии предшествующего кадра, поскольку декодирование первого последующего кадра требует декодированной информации предшествующего кадра, то ошибка парсинга распространяется на декодирование первого последующего кадра. Когда второй последующий кадр воспринимает первый последующий кадр в качестве базового кадра, то ошибка парсинга также распространяется на декодирование второго последующего кадра. Таким образом, распространение ошибки парсинга будет оказывать серьезное влияние на декодирование потока данных изображения.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
В данном изобретении представлен способ предсказания движения. Прежде всего, получено множество предсказателей векторов движения, которые должны быть включены в набор вариантов для предсказания движения текущего блока текущего кадра. Затем устанавливается, не является ли текущий кадр тем кадром, который не воспринимается другими кадрами в качестве базового кадра для предсказания движения. Когда текущий кадр не является базовым кадром, любой предсказатель векторов движения, соответствующий предварительно закодированному кадру, удаляется из набора вариантов, и на основе предсказателя векторов движения соседнего набора вариантов предсказывается вектор движения текущего блока.
В данном изобретении представлен способ предсказания движения. Прежде всего, получено множество предсказателей векторов движения, которые должны быть включены в набор вариантов для предсказания движения текущего блока текущего кадра. Далее друг с другом сравниваются предсказатели векторов движения набора вариантов. Когда предсказатели векторов движения набора вариантов равны друг другу, выбирается, по крайней мере, один дублирующий вектор движения. Затем дублирующий предсказатель векторов движения добавляется к набору вариантов. Далее предсказывается вектор движения текущего блока на основе предсказателей векторов движения смежного набора вариантов.
В изобретении также представлен способ кодирования видеоинформации. Прежде всего, создается управляющий флаг, чтобы показать, действительно ли в сегменте потока видеоинформации разрешено межкадровое энтропийное кодирование, то есть, векторы движения, полученные на основе предшествующего кодированного кадра, могут быть включены в набор вариантов для предсказания движения. Когда управляющий флаг показывает, что межкадровое энтропийное кодирование не разрешено, то межкадровое энтропийное кодирование для кодирования сегмента потока видеоинформации становится невозможным. Когда управляющий флаг показывает, что межкадровое энтропийное кодирование разрешено, то становится возможным межкадровое энтропийное кодирование для кодирования сегмента потока видеоинформации.
В изобретении также представлен способ кодирования видеосигнала. Во-первых, ряд целевых кадров вставляется между рядом кадров сегмента потока видеоинформации.
Сегмент потока видеоинформации затем кодируется в битовый поток, где целевые кадры не кодируются на основе межкадрового энтропийного кодирования, и последующие кадры каждого целевого кадра в порядке кодирования не ссылаются на предшествующие кадры целевого кадра в порядке кодирования.
Детальное описание дано в следующих осуществлениях со ссылкой на сопутствующие чертежи.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Наиболее полное представление об изобретении можно получить на основе чтения последующего детального описания и примеров со ссылками на сопутствующие чертежи, где:
Фиг.1 - это принципиальная схема вариантов блоков для предсказания движения текущего блока;
Фиг.2 - это блок-схема, иллюстрирующая способ состязательности векторов движения;
Фиг.3 - это структурная схема иллюстративного кодера сигнала изображения;
Фиг.4 - это блок-схема способа предсказания движения, где заложена возможность предотвращения распространения ошибки парсинга в соответствии с осуществлением изобретения;
Фиг.5 - это блок-схема способа предсказания движения, где заложена возможность предотвращения распространения ошибки парсинга в соответствии с осуществлением изобретения;
Фиг.6 - это блок-схема способа предсказания движения, где заложена возможность предотвращения распространения ошибки парсинга в соответствии с осуществлением изобретения;
Фиг.7 - это блок-схема способа предсказания движения, где заложена возможность предотвращения распространения ошибки парсинга в соответствии с осуществлением изобретения;
Фигуры. 8А и 8В - это блок-схема спососба предсказания движения, где заложена возможность предотвращения распространения ошибки парсинга в соответствии с осуществлением изобретения; и
Фигуры 9А и 9В - это блок-схема способа предсказания движения, где заложена возможность предотвращения распространения ошибки парсинга в соответствии с осуществлением изобретения.
ДЕТАЛЬНОЕ ОПИСАНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
Следующее описание представляет собой подробное рассмотрение способа осуществления данного изобретения. Данное описание представлено с целью иллюстрации общих принципов изобретения и не должно рассматриваться как лимитирующий фактор. Объем изобретения наилучшим образом определяется со ссылкой на прилагаемые пункты патентной формулы.
На Фиг.3 показана блок-схема иллюстративного кодера сигнала изображения 300. В одном осуществлении кодер сигнала изображения 300 включает модуль предсказания движения 302, модуль вычитания 304, модуль преобразования 306, модуль квантования 308 и модуль энтропийного кодирования 310. Кодер сигнала изображения 300 принимает входной видеосигнал и генерирует битовый поток в качестве выходного сигнала. Модуль предсказания движения 302 осуществляет предсказание движения по входному видеосигналу, чтобы генерировать предсказанные выборки и информацию предсказания. Модуль вычитания 304 затем вычитает предсказанные выборки из входного видеосигнала, чтобы получить остаточные данные, сокращая при этом объем видеоинформации с информации входного видеосигнала до информации остаточных данных. Остаточные данные затем последовательно отправляются на модуль преобразования 306 и модуль квантования 308. Модуль преобразования 306 выполняет дискретное косинусное преобразование (DCT) по остаточным данным, чтобы получить трансформированные остаточные данные. Модуль квантования 308 затем квантует трансформированные остаточные данные, чтобы получить квантованные остаточные данные. Модуль энтропийного кодирования 310 затем выполняет энтропийное кодирование по квантованным остаточным данным и информации предсказания, чтобы получить цифровой поток в качестве выходного сигнала изображения.
На Фиг.4 показана блок-схема способа предсказания движения 400, где предусмотрено предотвращение распространения ошибки парсинга в соответствии с осуществлением изобретения. Предположим, что модуль предсказания движения 302 принимает текущий блок текущего кадра потока данных входного видеосигнала. Определяется предсказатель векторов движения для предсказания движения текущего блока (шаг 402). Предсказатель векторов движения может быть выведен из блоков, расположенных в текущем кадре (пространственное направление) или предварительно закодированном кадре (временное направление). Предсказатель векторов движения может быть определен на основе фиксированного правила принятия решений или может быть выбран адаптивно. Например, способ состязательности векторов движения позволяет выбирать конечный предсказатель векторов движения из предварительно заданного набора вариантов на основе оптимизации степени искажения (RDO). Модуль предсказания движения 302 определяет, действительно ли текущий кадр не является базовым кадром, на который не ссылаются другие кадры для предсказания движения (шаг 404). В одном осуществлении модуль предсказания движения 302 проверяет кадровый тип текущего кадра. Если кадровый тип текущего кадра не является базовым В-кадром, то текущий кадр не определяется в качестве базового кадра.
Когда текущий кадр не является базовым кадром (шаг 404), поскольку текущий кадр может стать базовым кадром последующих кадров, ошибка парсинга при декодировании текущего кадра может вызвать ошибки парсинга при декодированиие последующих кадров. Чтобы предотвратить распространение ошибки парсинга, предсказатель векторов движения для предсказания движения текущего блока нельзя выводить из предварительно закодированного кадра (шаг 406). В одном осуществлении любой предсказатель векторов движения, соответствующий блокам, которые не расположены рядом в текущем кадре, не включен в предварительно заданный набор вариантов для состязательности векторов движения; другими словами, конечный предсказатель векторов движения для текущего блока выбирается из предварительно заданного набора вариантов, который включает только предсказатели векторов движения, соответствующие блокам в том же кадре, что и текущий блок. Предсказатели векторов движения могут быть векторами движения соседних блоков или выведены из одного или нескольких векторов движения соседних блоков. Таким образом, когда модуль предсказания движения 302 предсказывает вектор движения текущего блока в соответствии с предсказателем векторов движения, ошибка парсинга, возникшая в базовом кадре, не способствует возникновению ошибок парсинга при декодировании текущего блока текущего кадра.
Модуль предсказания движения 302 затем предсказывает вектор движения текущего блока в соответствии с предсказателем векторов движения. Межкадровое энтропийное кодирование разрешается только для блоков кодирования в кадрах, которые не являются базовыми кадрами. В примере адаптивного управления ошибкой парсинга, синтаксис обмена кадрами с коррекцией ошибок используется для осуществления контроля за межкадровым энтропийным кодированием. В случае обработки кадра, который не является базовым, межкадровое энтропийное кодирование может быть использовано для кодирования или декодирования; иными словами, межкадровое энтропийное кодирование отключается, чтобы предотвратить распространение ошибки парсинга.
В некоторых других осуществлениях, способ адаптивного управления ошибкой парсинга дает возможность или лишает возможности осуществлять межкадровое энтропийное кодирование в соответствии с синтаксисом уровня последовательности.
Например, кодер допускает межкадровое энтропийное кодирование, когда кодирование видеоинформации происходит в безошибочной среде. При этом кодер не позволяет осуществлять межкадровое энтропийное кодирование, когда кодирование видеоинформации происходит в среде с потерей данных. Декодер декодирует цифровой поток в соответствии с синтаксисом регулировки последовательности и адаптивно дает возможность осуществлять межкадровое энтропийное кодирование или лишает такой возможности. Способ адаптивного управления ошибкой парсинга другого осуществления дает возможность или лишает возможности осуществлять межкадровое энтропийное кодирование в соответствии с синтаксисом обмена кадрами с коррекцией ошибок. Вышеупомянутое осуществление разрешает межкадровое энтропийное кодирование только в том случае, когда обрабатываются кадры, которые не являются базовыми, и представлет собой пример способа адаптивного управления ошибкой парсинга на основе синтаксиса обмена кадрами с коррекцией ошибок.
В одном осуществлении состязательности векторов движения получены предсказатели векторов движения в наборе вариантов. Предсказатели векторов движения в наборе вариантов затем сравниваются друг с другом (шаг 408). Когда предсказатели векторов движения из набора вариантов не равны друг другу (шаг 410), конечный предсказатель векторов движения выбирается из набора вариантов (шаг 412), и вектор движения текущего блока предсказывается в соответствии с конечным предсказателем векторов движения (шаг 414). И, наконец, генерируется информация предсказания о конечном предсказателе векторов движения, которая затем подается в битовый поток для передачи сигналов соответствующего декодера сигнала изображения (шаг 416). Когда предсказатели векторов движения в наборе вариантов равны друг другу (шаг 410), то вектор движения текущего блока предсказывается в соответствии с любыми предсказателями векторов движения в наборе вариантов (шаг 418), и не генерирутся информации предсказания о предсказателях векторов движения для передачи сигналов декодера сигнала изображения.
На Фиг.5 показана блок-схема способа предсказания движения 500, позволяющего предотвратить распространение ошибки парсинга в соответствии с осуществлением изобретения. Предположим, что модуль предсказания движения 302 принимает текущий блок текущего кадра из информационного потока входного видеосигнала; и вектор движения текущего блока предсказывается на основе конечного предсказателя векторов движения, который определяется путем состязательности векторов движения. В одном осуществлении правило выбора наборов вариантов определяется на основе регулировки последовательности информационного потока входного видеосигнала; и конечный предсказатель векторов движения выбирается из каждого набора вариантов в соответствии с оптимизацией степени искажения (RDO). Кроме того, установлено правило выбора одного или нескольких резервных предсказателей векторов движения для предсказания движения текущих блоков. Прежде всего, модуль предсказания движения 302 получает предсказатель векторов движения в наборе вариантов, соответствующих текущему блоку (шаг 502). Модуль предсказания движения 302 затем сравнивает предсказатели векторов движения из набора вариантов и определяет, действительно ли предсказатели векторов движения в наборе вариантов равны друг другу (шаг 504).
Если предсказатели векторов движения в наборе вариантов равны друг другу, число предсказателей векторов движения в наборе вариантов может быть увеличено, что позволит предложить модуль предсказания движения 302 с большим числом вариантов для предсказания движения текущего блока. Таким образом, модуль предсказания движения 302 выбирает один или несколько резервных предсказателей векторов движения, которые должны быть включены в набор вариантов (шаг 506), а также выбирает конечный предсказатель векторов движения из набора вариантов (шаг 508). Модуль предсказания движения 302 может добавлять более чем один резервный предсказатель векторов движения в набор вариантов за один раз, или модуль может добавлять дублирующие предсказатели векторов движения по очереди. В одном осуществлении дублирующий предсказатель векторов движения выбирается на основе предварительного заданного порядка. В другом осуществлении дублирующий предсказатель векторов движения выбирается в соответствии с адаптивно установленным порядком. Например, если предсказатели векторов движения в наборе вариантов одинаковы, то модуль предсказания движения 302 выбирает первый резервный предсказатель векторов движения в наборе вариантов и сравнивает предсказатели векторов движения в наборе вариантов. Если первый резервный предсказатель векторов движения совпадает с другими предсказателями векторов движения в наборе вариантов, то модуль предсказания движения 302 добавляет второй резервный предсказатель векторов движения к набору вариантов. Как только набор вариантов содержит, по меньшей мере, два различных предсказателя векторов движения, модуль предсказания движения 302 завершает процесс добавления резервных предсказателей векторов движения. В этом случае, кодер должен генерировать индекс конечного предсказателя векторов движения, выбранного из набора вариантов, в качестве информации предсказания для текущего блока (шаг 512). Может быть решена проблема распространения ошибки парсинга, связанная с тем, что время от времени данный индекс не посылается, когда все предсказатели векторов движения в наборе вариантов одинаковы.
Затем модуль предсказания движения 302 предсказывает вектор движения текущего блока на основе предсказателя векторов движения (шаг 510). Наконец, модуль предсказания движения 302 генерирует информацию предсказания, указывающую, какой предсказатель векторов движения в наборе вариантов выбирается, и затем информация предсказания кодируется с помощью модуля энтропийного кодирования 310 (шаг 512). В сравнении с обычным спообом предсказания движения 200, показанным на Фиг.2, подразумевающим состязательность векторов движения, модуль предсказания движения 302 в соответствии с способом 500, показанным на Фиг.5, всегда генерирует информацию предсказания независимо от того, равны ли предсказатели векторов движения в первоначальном наборе вариантов или нет, уменьшая возможность распространения ошибки парсинга в декодере сигнала изображения в результате пропуска информации предсказания.
Чтобы решить проблемы распространения ошибок при межкадровом энтропийном кодировании, предлагаются способы кодирования видеоинформации с адаптивным управлением ошибкой парсинга. На Фиг.6 представлена блок-схема способа кодирования видеоинформации 600, способного предотвратить распространение ошибки парсинга в соответствии с изобретением. Прежде всего, определяется, действительно ли ошибка парсинга допустима в сегменте потока видеоинформации, а затем генерируется управляющий флаг (шаг 602). В одном осуществлении сегмент - это видеопоследовательность, и управляющий флаг генерируется для всей видеопоследовательности. В другом осуществлении сегмент -это кадр потока видеоинформации, и управляющий флаг генерируется для кадра. В одном осуществлении оценивается частота ошибок сегмента. Когда частота ошибок больше, чем пороговое значение, генерируется управляющий флаг, чтобы показать, что межкадровое кодирование недопустимо для сегмента, поскольку это позволит предотвратить распространение ошибки парсинга. Когда частота ошибки меньше порогового значения, то генерируется управляющий флаг, чтобы показать, что межкадровое кодирование допустимо для сегмента. Когда управляющий флаг сегмента показывает, что межкадровое кодироване разрешено (шаг 604), межкадровое энтропийное кодирование становится возможным (шаг 608), и модуль энтропийного кодирования 310 может использовать межкадровое энтропийное кодирование, чтобы закодировать данные сегмента, увеличивая при этом эффективность кодирования. Когда управляющий флаг сегмента показывает, что межкадровое энтропийное кодирование не разрешено (шаг 604), межкадровое энтропийное кодирование становится невозможным (шаг 60б), и модуль энтропийного кодирования 310 использует межкадровое энтропийное кодирование, чтобы закодировать данные сегмента, предотвращая таким образом распространение ошибки парсинга.
На Фиг.7 показана блок-схема метода кодирования видеоинформации 700, позволяющего предотвратить распространение ошибки парсинга в соответствии с осуществлением изобретения. Прежде всего, определяется, разрешена ли ошибка парсинга в сегменте потока видеоинформации, и генерируется управляющий флаг (шаг 702). В одном осуществлении сегмент - это видеопоследовательность, и генерируется управляющий флаг для всей видеопоследовательности. В другом осуществлении сегмент - это кадр потока видеоинформации, и управляющий флаг генерируется для кадра. В одном осуществлении оценивается частота ошибки сегмента. Когда частота ошибки выше порогового значения, управляющий флаг генерируется, чтобы показать,что межкадровое энтропийное кодирование недопустимо для сегмента, чтобы предотвратить распространение ошибки парсинга. Когда частота ошибки ниже порогового значения, генерируется управляющий флаг, чтобы показать, что межкадровое энтропийное кодирование допустимо для сегмента. Когда управляющий флаг сегмента указывает, что межкадровое энтропийное кодирование разрешено для сегмента (шаг 704), межкадровое энтропийное кодирование становится возможным (шаг 708), модуль энтропийного кодирования 310 может использовать межкадровое энтропийное кодирование, чтобы закодировать данные сегмента. Когда управляющий флаг сегмента показывает, что межкадровое энтропийное кодирование не разрешено (шаг 704), ряд целевых кадров вставляется между рядами кадров сегмента, где целевые кадры не закодированы на основе межкадрового энтропийного кодирования (шаг 7 06). В одном осуществлении целевые кадры - это кадры, которые постоянно проходят декодерное обновление (IDR). IDR кадр останавливает последующие кадры (в порядке кодирования), ссылаясь на любой кадр, предшествующий IDR кадру в порядке кодирования. В другом осуществлении целевые кадры - это i-кадры (кадры с внутренним кодированием) с открытой группой изображений (GOP). В другом осуществлении целевые кадры - это общие i-кадры (кадры с внутренним кодированием) без межкадрового энтропийного кодирования, то есть общие i-кадры (кадры с внутренним кодированием) не используют какого-либо предсказателя векторов движения, соответствующего предварительно закодированному кадру. Например, общие i-кадры (кадры с внутренним кодированием) - это Р-кадры или В-кадры, и данные Р-кадры и В-кадры не могут использовать межкадровую информацию, такую как расположенные рядом векторы движения (MVs) в качестве предсказателей векторов движения. Целевой кадр может периодически вставляться, чтобы предотвратить распространение ошибки парсинга. В одном осуществлении интервал вставки целевых кадров может быть задан в регулировке последовательности или в регулировке GOP (группы изображений). Целевые кадры не закодированы на основе межкадрового энтропийного кодирования, и последующие кадры целевых кадров не могут ссылаться на любой кадр, предшествующий целевым кадрам; и ошибки парсинга, генерируемые в кадре сегмента, не распространяются на целевые кадры и кадры, следующие за целевыми кадрами, что позволяет прекратить распространение ошибки парсинга.
Управляющий флаг для уведомления о том, действительно ли ошибка парсинга распространяется при обработке сегмента потока видеоинформации, может также сочетаться со способом предсказания движения 400, показанным на Фиг.4. На Фигурах 8А и 8В показана блок-схема осуществления способа предсказания движения 800, позволяющего контролировать распространение ошибки парсинга в соответствии с изобретением. Шаги 802, 804, 806, 808, 810, 812, 814, 816 и 818 способа 800 совершенно идентичны соответствующим шагам 402, 404, 406, 408, 410, 412, 414, 416 и 418 способа 400. Предположим, что модуль предсказания движения 302 принимает сегмент информационного потока входного видеосигнала. В качестве первого шага 801 устанавливается управляющий флаг для сегмента потока видеоинформации исходя из того, допустимо ли межкадровое энтропийное кодирование в сегменте (шаг 801). Когда управляющий флаг показывает, что межкадровое энтропийное кодирование допустимо в сегменте (шаг 803), модуль предсказания движения 302 выполняет шаги 810~818, чтобы предсказать векторы движения множества блоков кодирования сегмента, где шаги 810~818 аналогичны шагам 204~212 в общепринятом способе 200. Когда управляющий флаг показывает, что межкадровое энтропийное кодирование недопустимо в сегменте, модуль предсказания движения 302 выполняет шаги 802~818, чтобы предсказать вектора движения множества блоков кодирования сегмента, предотвращая тем самым распространение ошибки парсинга, причем шаги 802~818 идентичны шагам 402~418 в способе 400, показанном на Фиг.4.
Аналогично, управляющий флаг для указания, действительно ли распространение ошибки парсинга допустимо при обработке сегмента потока видеоинформации, может также сочетаться с способом предсказания движения 500, показанным на Фиг.5. На Фигурах 9А и 9 В показана блок-схема осуществления способа предсказания движения 900, позволяющего контролировать распространение ошибки парсинга в соответствии с изобретением. Шаги 902, 904, 906, 908, 910 и 912 способа 900 идентичны соответствующим шагам 502, 504, 506, 508, 510 и 512 способа 500. Предположим, что модуль предсказания движения 302 принимает сегмент информационного потока входного видеосигнала. В качестве первого шага 901 устанавливается управляющий флаг для сегмента исходя из того, разрешено ли межкадровое энтропийное кодирование в сегменте (шаг 901). Когда управляющий флаг показывает, что межкадровое энтропийное кодирование недопустимо в сегменте (шаг 903), модуль предсказания движения 302 выполняет шаги 902~912, чтобы предсказать векторы движения множества блоков кодирования сегмента, предотвращая при этом распространение ошибки парсинга, где шаги 902~912 идентичны шагам 502~512 в способе 500, показанном на Фиг.5. Когда управляющий флаг показывает, что межкадровое энтропийное кодирование допустимо в сегменте (шаг 903), модуль предсказания движения 302 выполняет шаги 905, 907, 909 и 908~912, чтобы предсказать векторы движения множества блоков кодирования сегмента, где шаги 905, 907, 909 и 908-918 идентичны шагам 202~212 в традиционном способе 200.
Хотя изобретение было описано на основе примеров и в терминологии предпочтительного осуществления, следует понимать, что изобретение этим не ограничивается. Как раз наоборот, выражается намерение отразить как можно больше различных модификаций и аналогичных компоновок (что будет очевидно для специалистов в данной области). Таким образом, объем пунктов патентной формулы должен соответствовать самой широкой интерпретации таким образом, чтобы охватить все такие модификации и аналогичные компоновки.
1. Способ предсказания движения, включающий:(a) получение множества предсказателей векторов движения, которые должны быть включены в набор вариантов для предсказания движения текущего блока текущего кадра;(b) установление, действительно ли текущий кадр не является базовым кадром и другие кадры не могут ссылаться на него для предсказания движения;(c) удаление любого предсказателя векторов движения, соответствующего предварительно закодированному кадру из набора вариантов, когда текущий кадр является базовым кадром; и(d) предсказание вектора движения текущего блока на основе предсказателей векторов движения из набора вариантов.
2. Способ предсказания движения по п.1, где установление того, что текущий кадр не является базовым кадром, включает:установление типа кадра текущего кадра;когда тип кадра - это I кадр или Р кадр, установление, что текущий кадр является базовым кадром; икогда тип кадра - это В кадр, установление, что текущий кадр не является базовым кадром.
3. Способ предсказания движения по п.1, где установление того, что текущий кадр не является базовым кадром, включает:установление типа кадра текущего кадра;когда тип кадра - это не базовый В кадр, установление, что текущий кадр - это не базовый кадр.
4. Способ предсказания движения по п.1, где удаление любого предсказателя векторов движения из набора вариантов включает:установление того, действительно ли набор вариантов включает, по меньшей мере, один целевой предсказатель векторов движения, соответствующий блоку, который находится не в текущем кадре; иудаление целевого предсказателя векторов движения из набора вариантов, когда целевой предсказатель векторов движения представлен в наборе вариантов.
5. Способ предсказания движения по п.1, где получение предсказателя векторов движения включает:установление множества блоков из числа блоков, расположенных в текущем кадре или предварительно закодированном кадре;отбор множества вариантов блоков из данных блоков; иполучение векторов движения вариантов блоков в качестве предсказателей векторов движения из набора вариантов.
6. Способ предсказания движения по п.5, где отбор вариантов блоков проводится на основе установленного правила принятия решения или адаптивного правила отбора.
7. Способ предсказания движения по п.1, где способ также включает:генерирование управляющего флага, чтобы показать, разрешено ли межкадровое энтропийное кодирование для сегмента потока видеоинформации;выполнение шагов (а), (b), (с) и (d) для предсказания движения, когда управляющий флаг показывает, что межкадровое энтропийное кодирование не разрешено; икогда управляющий флаг показывает, что межкадровое энтропийное кодирование разрешено, предсказание вектора движения текущего блока на основе предсказателей векторов движения из набора вариантов, определенного без удаления предсказателя векторов движения, независимо от того, является ли текущий кадр базовым кадром или нет.
8. Способ предсказания движения, включающий:(a) получение множества предсказателей векторов движения, которые должны быть включены в набор вариантов для предсказания движения текущего блока текущего кадра;(b) сравнение предсказателей векторов движения из набора вариантов друг с другом;(c) когда предсказатели векторов движения из набора вариантов равны друг другу, выбор, по меньшей мере, одного резервного предсказателя векторов движения;(d) добавление дублирующего предсказателя векторов движения к набору вариантов; и(е) предсказание вектора движения текущего блока на основе предсказателей векторов движения из набора вариантов.
9. Способ предсказания движения по п.8, где