Способ и устройство адаптивного выбора контекстной модели для кодирования по энтропии
Иллюстрации
Показать всеИзобретение относится к кодированию и декодированию видеосигнала и, более конкретно, к адаптивному выбору контекстной модели для кодирования по энтропии и видеодекодера. Задачей изобретения является собственно создание способа и устройства эффективного сжатия флагов. Предложен способ кодирования флага остаточного предсказания, указывающего, предсказываются ли остаточные данные для блока улучшенного слоя многослойного видеосигнала из остаточных данных блока нижнего слоя, соответствующих остаточным данным для блока улучшенного слоя, включает в себя этапы, на которых вычисляют энергию остаточных данных блока нижнего слоя, определяют способ кодирования флага остаточного предсказания согласно энергии и кодируют флаг остаточного предсказания с помощью определенного способа кодирования. 10 н. и 56 з.п. ф-лы, 17 ил.
Реферат
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Способы и устройства, совместимые с настоящим изобретением, относятся к кодированию и декодированию видеосигнала и, более конкретно, к адаптивному выбору контекстной модели для кодирования по энтропии и видеодекодера.
УРОВЕНЬ ТЕХНИКИ
С развитием технологии информационной связи, в том числе Интернета, возрастают мультимедийные услуги, содержащие различные типы информации, такие как текст, видео, аудио и т.п. Мультимедийные данные требуют большой емкости носителя хранения и широкой полосы пропускания для передачи, поскольку объем мультимедийных данных обычно большой. Следовательно, способ кодирования со сжатием является обязательным для передачи мультимедийных данных, в том числе текста, видео и аудио.
Базовый принцип сжатия данных заключается в устранении избыточности данных. Данные могут быть сжаты посредством устранения пространственной избыточности, в которой один цвет или объект повторяется в изображении, временной избыточности, в которой предусмотрено небольшое изменение между соседними кадрами в движущемся изображении, или один и тот же звук повторяется в аудио либо мысленной визуальной избыточности, которая учитывает человеческое зрение и его ограниченное восприятие высокой частоты. При общем кодировании видео временная избыточность устраняется посредством компенсирования движения на основе оценки и компенсирования движения, а временная избыточность удаляется посредством кодирования с преобразованием.
Чтобы передавать мультимедиа, сгенерированное после устранения избыточности данных, необходима среда передачи. Производительность передачи различна в зависимости от среды передачи. Используемая в настоящее время среда передачи имеет различные скорости передачи. Например, сверхвысокоскоростная сеть связи может передавать данные в несколько десятков мегабит в секунду, тогда как сеть мобильной связи имеет скорость передачи в 384 килобит в секунду. Следовательно, для того чтобы поддерживать среду передачи, имеющую различные скорости, или чтобы передавать мультимедиа на скорости передачи данных, подходящей для среды передачи, способы кодирования данных, имеющие масштабирование, такие как коротковолновое кодирование видео и полосное кодирование видео, могут быть подходящими для мультимедийного окружения.
Масштабированное кодирование видео - это методика, которая дает возможность сжатому потоку битов быть декодированным при различных разрешениях, частотах смены кадров и уровней отношения "сигнал-шум" (SNR) посредством отсечения части потока битов согласно внешним условиям, таким как скорость передачи в битах, частота ошибок по битам и системные ресурсы. Стандартизация Экспертной группы по вопросам движущегося изображения 4 (MPEG-4) часть 10 для масштабированного кодирования видео разрабатывается. В частности, предпринимаются значительные усилия для того, чтобы реализовать масштабируемость на основе многослойной структуры. Например, поток битов может состоять из нескольких слоев, т.е. базового слоя и первого и второго улучшенных слоев с различными разрешениями (QCIF, CIF и 2CIF) или частотами смены кадров.
Аналогично тому, когда видео кодируется в один слой, когда видео кодируется в несколько слоев, вектор движения (MV) получается для каждого из нескольких слоев для того, чтобы устранить временную избыточность. Поиск вектора движения MV может осуществляться отдельно для каждого слоя (в первом случае), или вектор движения, получаемый посредством поиска вектора движения для одного слоя, используется для другого слоя (без или после повышающей/понижающей дискретизации) (во втором случае). Во втором случае, тем не менее, несмотря на преимущества, получаемые от точных векторов движения, существуют потери вследствие векторов движения, сгенерированных для каждого слоя. Таким образом, эффективно устранять избыточность между векторами движения для каждого слоя является очень сложной задачей.
Фиг.1 показывает пример масштабированного видеокодека, использующего многослойную структуру. Ссылаясь на фиг.1, базовый слой имеет разрешение четверть от общего промежуточного формата (QCIF) и частоту передачи кадров в 15 Гц, первый улучшенный слой имеет разрешение общего промежуточного формата (CIF) и частоту передачи кадров в 30 Гц, а второй улучшенный слой имеет стандартное разрешение (SD) и частоту передачи кадров в 60 Гц. Например, для того чтобы получить поток CIF в 0,5 Мбит/с, поток битов первого улучшенного слоя (CIF_30Hz_0.7M) усекается для того, чтобы соответствовать целевой скорости передачи в 0,5 Мбит. Таким образом, можно предоставить пространственно-временную масштабируемость и масштабируемость отношения "сигнал-шум" (SNR).
Как показано на фиг.1, кадры (к примеру, 10, 20 и 30) в одной временной позиции в каждом слое могут рассматриваться как аналогичные изображения. Одна известная методика кодирования включает в себя предсказание текстуры текущего слоя из текстуры более низкого слоя (непосредственно или после повышающей дискретизации) и кодирование разности между предсказываемым значением и фактической текстурой текущего слоя. Это методика задана как предсказание Intra_BL в модели масштабированного видео 3.0 стандарта масштабированного кодирования видео ISO/IEC 21000-13 ("SVM 3.0").
SVM 3.0 использует методику для предсказания текущего блока с помощью корреляции между текущим блоком и соответствующим блоком в нижнем слое помимо направленного предсказания Intra и предсказания Inter, используемого в традиционном стандарте H.264 для того, чтобы предсказывать блоки или макроблоки в текущем кадре. Способ предсказания называется "предсказание Intra_BL", а режим кодирования, использующий предсказание Intra_BL, называется "режимом Intra_BL".
Фиг.2 - это схематическая схема для описания вышеприведенных трех способов предсказания: 1) предсказание Intra для макроблока 14 в текущем кадре 11; 2) предсказание Inter с помощью кадра 12 в другой временной позиции, чем текущий кадр 11; и 3) предсказание Intra_BL с помощью данных текстуры из области 16 в кадре 13 базового слоя, соответствующего макроблоку 14.
Стандарт масштабированного кодирования видео выбирает преимущественный способ из трех способов предсказания для каждого макроблока.
Чтобы предоставить информацию о выбранном способе предсказания или данные, используемые для выбранного способа предсказания, декодеру, может быть использовано множество флагов. Один бит, несколько бит и несколько десятков бит могут быть использованы как флаги в зависимости от того, выполняется кодирование по макроблокам, по сериям последовательных макроблоков или по кадрам. Размер данных увеличивается, когда задаются флаги для каждого макроблока, серии последовательных макроблоков или кадра в общем движущемся изображении.
Следовательно, существует необходимость в способе и устройстве эффективного сжатия флагов.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
Настоящее изобретение предоставляет способ и устройство для уменьшения объема данных, требуемого для предсказания с помощью данных базового слоя.
Вышеуказанный аспект, а также другие аспекты, признаки и преимущества настоящего изобретения станут понятны специалистам в данной области техники после ознакомления с последующим описанием.
Согласно аспекту настоящего изобретения предусмотрен способ кодирования флага остаточного предсказания, указывающего, предсказываются ли остаточные данные для блока улучшенного слоя многослойного видеосигнала из остаточных данных блока нижнего слоя, соответствующих остаточным данным для блока улучшенного слоя, при этом способ содержит этапы, на которых вычисляют энергию остаточных данных блока нижнего слоя, определяют способ кодирования флага остаточного предсказания согласно энергии и кодируют флаг остаточного предсказания с помощью определенного способа кодирования.
Согласно другому аспекту настоящего изобретения предусмотрен способ кодирования флага остаточного предсказания, указывающего, предсказываются ли остаточные данные для блока улучшенного слоя многослойного видеосигнала из остаточных данных блока нижнего слоя, соответствующих остаточным данным для блока улучшенного слоя, при этом способ содержит этапы, на которых вычисляют шаблон кодированных блоков (CBP) блока нижнего слоя, определяют способ кодирования флага остаточного предсказания согласно вычисленному значению CBP и кодируют флаг остаточного предсказания с помощью определенного способа кодирования.
Согласно еще одному аспекту настоящего изобретения предусмотрен способ декодирования флага остаточного предсказания, указывающего, предсказываются ли остаточные данные для блока улучшенного слоя многослойного видеосигнала из остаточных данных блока нижнего слоя, соответствующих остаточным данным для блока улучшенного слоя, при этом способ содержит этапы, на которых вычисляют энергию остаточных данных блока нижнего слоя, определяют способ декодирования флага остаточного предсказания согласно энергии и декодируют флаг остаточного предсказания с помощью определенного способа декодирования.
Согласно еще одному аспекту настоящего изобретения предусмотрен способ декодирования флага остаточного предсказания, указывающего, предсказываются ли остаточные данные для блока улучшенного слоя многослойного видеосигнала из остаточных данных блока нижнего слоя, соответствующих остаточным данным для блока улучшенного слоя, при этом способ содержит этапы, на которых вычисляют значение CBP блока нижнего слоя, определяют способ декодирования флага остаточного предсказания согласно вычисленному значению CBP и декодируют флаг остаточного предсказания с помощью определенного способа декодирования.
Согласно дополнительному аспекту настоящего изобретения предусмотрен способ декодирования флага остаточного предсказания, указывающего, предсказываются ли остаточные данные для блока улучшенного слоя многослойного видеосигнала из остаточных данных блока нижнего слоя, соответствующих остаточным данным для блока улучшенного слоя, при этом способ содержит этапы, на которых проверяют значение CBP в блоке нижнего слоя, определяют, имеет или нет каждый бит CBP в блоке нижнего слоя значение 1, определяют способ декодирования флага остаточного предсказания согласно тому, имеет или нет, по меньшей мере, один бит CBP в блоке нижнего слоя значение 1, и декодируют флаг остаточного предсказания согласно определенному способу декодирования.
Согласно еще одному дополнительному аспекту настоящего изобретения предусмотрен способ декодирования улучшенного слоя многослойного видеосигнала, при этом способ содержит этапы, на которых определяют способ декодирования флага остаточного предсказания, указывающего, предсказывается ли улучшенный слой из нижнего слоя с помощью значения CBP нижнего слоя, и декодируют флаг остаточного предсказания с использованием способа декодирования по энтропии, выбранного согласно способу декодирования, и декодируют улучшенный слой с помощью флага остаточного предсказания.
Согласно еще одному другому аспекту настоящего изобретения предусмотрен декодер флага остаточного предсказания, указывающего, предсказываются ли остаточные данные для блока улучшенного слоя многослойного видеосигнала из остаточных данных блока нижнего слоя, соответствующих остаточным данным для блока улучшенного слоя, при этом декодер содержит анализатор, который анализирует значение CBP блока нижнего слоя, и блок декодирования, который определяет способ декодирования флага остаточного предсказания согласно значению CBP и декодирует флаг остаточного предсказания с помощью определенного способа декодирования.
Согласно еще одному дополнительному аспекту настоящего изобретения предусмотрен декодер для декодирования улучшенного слоя многослойного видеосигнала, при этом декодер содержит анализатор, который анализирует значение CBP для более нижнего слоя, чем улучшенный слой, блок декодирования по энтропии, который определяет способ декодирования флага остаточного предсказания, указывающего, предсказывается ли улучшенный слой из нижнего слоя с помощью значения CBP, и выполняет декодирование по энтропии флага остаточного предсказания согласно способу декодирования и затем улучшенного слоя, обратный квантователь, который обратно квантует улучшенный слой, и обратный преобразователь, который выполняет обратное преобразование обратно-квантованного улучшенного слоя и выполняет декодирование результата с помощью предсказания от нижнего слоя согласно флагу остаточного предсказания.
Согласно другому аспекту настоящего изобретения предусмотрен способ кодирования, выполняемый многослойным видеокодером, при этом способ кодирования содержит этапы, на которых получают кадр базового слоя из входного кадра, получают данные для улучшенного слоя из входного кадра посредством ссылки на кадр базового слоя и кодируют данные для улучшенного слоя согласно результату определения того, должны ли данные для улучшенного слоя быть предсказаны из данных для кадра базового слоя.
Согласно еще одному другому аспекту настоящего изобретения предусмотрен способ декодирования, выполняемого многослойным видеодекодером, при этом способ декодирования содержит этапы, на которых декодируют входной кадр базового слоя, определяют, нужны ли данные для кадра базового слоя для того, чтобы предсказывать данные улучшенного слоя, и декодируют данные для улучшенного слоя согласно результату определения.
Согласно по-прежнему другому аспекту настоящего изобретения предусмотрен видеокодер, содержащий кодер базового слоя, который получает кадр базового слоя из входного кадра, кодер улучшенного слоя, который генерирует данные для улучшенного слоя, предсказываемые из кадра базового слоя из входного кадра, при этом кодер улучшенного слоя содержит преобразователь, который кодирует данные улучшенного слоя согласно результату определения того, предсказуемы ли данные улучшенного слоя из данных кадра базового слоя.
Согласно дополнительному аспекту настоящего изобретения предусмотрен видеодекодер, содержащий декодер базового слоя, который декодирует входной кадр базового слоя, декодер улучшенного слоя, который декодирует данные улучшенного слоя посредством ссылки на кадр базового слоя, при этом декодер улучшенного слоя содержит обратный преобразователь, который декодирует данные улучшенного слоя согласно результату определения того, требуются ли данные декодированного кадра базового слоя для того, чтобы предсказывать данные улучшенного слоя, предсказываемого из кадра базового слоя.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Вышеописанные и другие признаки и преимущества настоящего изобретения станут более очевидными посредством подробного описания примерных вариантов осуществления со ссылкой на прилагаемые чертежи, из которых:
Фиг.1 иллюстрирует пример масштабированного видеокодека, использующего многослойную структуру;
Фиг.2 - это схема для описания предсказания Inter, предсказания Intra, предсказания Intra_BL;
Фиг.3 - это схема, показывающая пример остаточного предсказания в кодировании видео;
Фиг.4 - это блок-схема последовательности операций, иллюстрирующая способ повышения эффективности кодирования флага остаточного предсказания согласно примерному варианту осуществления настоящего изобретения;
Фиг.5 - это блок-схема последовательности операций, иллюстрирующая способ декодирования данных, закодированных с помощью способа, проиллюстрированного на фиг.4, согласно примерному варианту осуществления настоящего изобретения;
Фиг.6 - это схема, показывающая пример предсказания движения в кодировании видео согласно примерному варианту осуществления настоящего изобретения;
Фиг.7 - это блок-схема последовательности операций, иллюстрирующая примерный способ повышения эффективности кодирования флага предсказания движения;
Фиг.8 - это блок-схема последовательности операций, иллюстрирующая способ декодирования данных, закодированных с помощью способа фиг.7, согласно примерному варианту осуществления настоящего изобретения;
Фиг.9 - это блок-схема, иллюстрирующая процесс кодирования данных обратного остаточного предсказания согласно примерному варианту осуществления настоящего изобретения;
Фиг.10 - это блок-схема последовательности операций, иллюстрирующая примерный процесс декодирования данных, закодированных с помощью процесса, проиллюстрированного на фиг.9;
Фиг.11 - это блок-схема, иллюстрирующая процесс кодирования флага остаточного предсказания с помощью модифицированного контекста согласно примерному варианту осуществления настоящего изобретения;
Фиг.12 - это блок-схема последовательности операций, иллюстрирующая примерный процесс декодирования данных, закодированных с помощью процесса, проиллюстрированного на фиг. 11;
Фиг.13 - это блок-схема последовательности операций, иллюстрирующая пример, при котором режим кодирования варьируется в зависимости от остаточных данных базового слоя;
Фиг.14 - это блок-схема последовательности операций, иллюстрирующая процесс кодирования с помощью различных контекстных моделей, когда выполняется контекстное адаптивное двоичное арифметическое кодирование (CABAC), согласно примерному варианту осуществления настоящего изобретения;
Фиг.15 - это блок-схема последовательности операций, иллюстрирующая примерный процесс декодирования видеоданных, закодированных с помощью процесса, проиллюстрированного на фиг.14;
Фиг.16 - это блок-схема видеокодера согласно примерному варианту осуществления настоящего изобретения; и
Фиг.17 - это блок-схема видеодекодера согласно примерному варианту осуществления настоящего изобретения.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
Далее настоящее изобретение описывается более подробно со ссылкой на прилагаемые чертежи, на которых показаны примерные варианты осуществления изобретения.
Преимущества и признаки настоящего изобретения и способы его осуществления могут более четко быть понятными посредством ссылки на последующее подробное описание примерных вариантов осуществления и прилагаемых чертежей. Тем не менее, настоящее изобретение может быть осуществлено во многих различных формах и не должно рассматриваться как ограниченное примерными вариантами осуществления, изложенными в данном документе. Вместо этого данные примерные варианты осуществления предусмотрены с тем, чтобы эта сущность была исчерпывающей и полной, они полностью выражают идею изобретения специалистам данной области техники, и настоящее изобретение полностью определяется прилагаемой формулой изобретения. Аналогичные номера ссылок означают аналогичные элементы по всей спецификации.
Настоящее изобретение описывается далее со ссылкой на блок-схемы последовательностей операций способов примерных вариантов осуществления изобретения. Следует понимать, что каждый этап иллюстраций блок-схем последовательности операций и сочетания этапов иллюстраций блок-схем последовательности операций могут быть реализованными вычислительными программными инструкциями. Эти вычислительные программные инструкции могут быть предоставлены процессору вычислительной машины общего назначения, вычислительной машины специального назначения или другому программируемому устройству обработки данных для того, чтобы генерировать машину, с тем чтобы инструкции, которые исполняются посредством процессора вычислительной машины или другого программируемого устройства обработки данных, создавали средство реализации функций, указанных на этапе или этапах блок-схемы последовательности операций.
Эти вычислительные программные инструкции также могут быть сохранены в машиноиспользуемой или машиночитаемой памяти, которая может управлять вычислительной машиной или другим программируемым устройством обработки данных, для его функционирования определенным способом, с тем чтобы инструкции, сохраненные в машиноиспользуемой или машиночитаемой памяти, генерировали продукт производства, содержащий средство инструктирования, которое реализует функцию, указанную на этапе или этапах блок-схемы последовательности операций.
Вычислительные программные инструкции также могут загружаться на вычислительную машину или другое программируемое устройство обработки данных для инициации выполнения последовательности операционных этапов на вычислительной машине или другом программируемом устройстве для того, чтобы генерировать машинореализуемый процесс, с тем чтобы инструкции, которые исполняются на вычислительной машине или другом программируемом устройстве, предоставляли этапы реализации функций, указанных на этапе или этапах блок-схемы последовательности операций.
Каждый этап иллюстраций блок-схемы последовательности операций может представлять модуль, сегмент или часть кода, которые содержат одну или более исполняемых инструкций для реализации указанных логических функций. Следует также отметить, что в некоторых альтернативных реализациях функции, указанные на этапах, могут выполняться в другой последовательности. Например, два этапа, показанные друг за другом, могут фактически быть исполняемыми практически одновременно, или блоки могут иногда быть исполняемыми в обратном порядке, в зависимости от их функциональности.
Информация, касающаяся способов предсказания, показанных на фиг.2, т.е. данные, относящиеся к одному выбранному способу из способов предсказания, показанных на фиг.2, или информация, касающаяся справочных данных, задается кодером и передается для того, чтобы быть используемой декодером. Кодирование по энтропии осуществляется для того, чтобы окончательно и без потерь сжать данные. Кодирование Хаффмана, как правило, используется в качестве способа кодирования по энтропии. Кодирование Хаффмана - это форма кодирования по длине параметров, и она зависит от расположения бит данных на основе вероятностей данных. Таким образом для того, чтобы повысить общую эффективность по битам, способ представления данных может быть модифицирован.
Один способ уведомления декодера о способе предсказания, выбранном из способов предсказания, проиллюстрированных на фиг.2, - это использование флага предсказания, который указывает, что выбранный способ ссылается на информацию базового слоя, например остаточные данные или векторы движения базового слоя. В качестве флага предсказания может быть использован флаг остаточного предсказания или флаг предсказания движения для того, чтобы информировать декодер о том, были ли ссылки на информацию базового слоя. Поскольку флаги предсказания всегда задаются для каждого макроблока, каждой серии последовательных макроблоков или каждого кадра, важно уменьшить размер флагов или повысить эффективность сжатия в ходе кодирования, такого как кодирование по энтропии. Чтобы достичь этой цели, информация задается для декодера для того, чтобы предсказывать флаги предсказания и восстанавливать флаги предсказания с помощью указанной информации.
Фиг.3 иллюстрирует пример остаточного предсказания в видеокодировании. Остаточное предсказание ссылается на предсказание, выполняемое с остаточными данными, предсказываемыми с помощью одного выбранного из способов предсказания, проиллюстрированных на фиг.2. Макроблок (серия последовательных макроблоков или кадр) 14 в базовом слое может быть составлен из одного выбранного из способов предсказания, проиллюстрированных на фиг.2, к примеру временного предсказания Inter, с помощью остаточных данных. В этом случае остаточное предсказание также может быть выполнено для макроблока, серии последовательных макроблоков или кадра в улучшенном слое с помощью остаточных данных базового слоя. Хотя изобретение описывается далее относительно макроблока, оно не ограничено им и может быть применено к серии последовательных макроблоков или кадру.
Чтобы макроблок в улучшенном слое реализовал временное предсказание Inter, может упоминаться остаток базового слоя. Чтобы уведомить декодер о том, что остаток базового слоя упоминается во временном предсказании Inter, флагу остаточного предсказания (флаг остаточной предикации) присваивается значение 1. Если всем значениям макроблоков в базовом слое (т.е. макроблоков, содержащих остаточные данные) присвоено значение нуль, число ненулевых пикселей меньше заранее определенного порога или значение CBP равно нулю или меньше заранее определенного порога, необязательно задавать значение флага остаточного предсказания. Это означает, что существует мало движения как результат временного предсказания в базовом слое. Т.е. поскольку нет или недостаточно справочных данных для макроблока в улучшенном слое, на которые следует ссылаться, кодирование флага остаточного предсказания пропускается, тем самым сохраняя определенное число бит, требуемых для задания значения флага остаточного предсказания.
Остаточное предсказание имеет смысл в случае, когда векторы движения в улучшенном слое аналогичны векторам в базовом слое. Таким образом, получение разности между векторами движения для двух слоев может быть фундаментальным вопросом при предсказании значения флага остаточного предсказания. Для краткости информация определения для предсказания значения флага остаточного предсказания далее упоминается как "флаг определения предсказания". В общей модели масштабированного видео (JSVM) 1 повышенная эффективность кодирования по энтропии может быть достигнута посредством кодирования разности между флагом остаточного предсказания и флагом определения предсказания, обозначенным как PrdRpFlag, вместо задания флага остаточного предсказания. Поэтому этот флаг разности остаточного предсказания, обозначенный как residual_prediction_flag_diff, введен для того, чтобы кодировать видеоинформацию.
Далее описан способ получения флага разности остаточного предсказания.
Сначала, если число ненулевых пикселей, присутствующих в остатке базового слоя, меньше порога, кодирование флага остаточного предсказания пропускается.
Наоборот, если число ненулевых пикселей больше порога, кодируется флаг разности остаточного предсказания, а не флаг остаточного предсказания. Чтобы получить флаг разности остаточного предсказания, используется остаток между вектором движения базового слоя BaseMV и вектором движения улучшенного или текущего слоя CurrMV. Чтобы закодировать флаг разности остаточного предсказания, должен быть получен флаг определения.
Вышеуказанный процесс может быть обобщен следующим образом.
Если |BaseMV-CurrMV| меньше заранее определенного порога, флагу определения присваивается значение 1; в противном случае ему присваивается значение 0. Затем флаг разности остаточного предсказания, который является разностью между вычисленным флагом определения и флагом остаточной разности, кодируется.
Если энергия остатка базового слоя (или число ненулевых пикселей) меньше порога Thresholdresidual, кодирование флага остаточного предсказания пропускается.
Если |BaseMV-CurrMV| меньше порога ThresholdMV, кодируется значение один минус флаг остаточного предсказания, т.е. 1 - residual_prediction_flag; в противном случае кодируется значение нуль минус флаг остаточного предсказания, т.е. 0 - residual_prediction_flag, что то же самое, что флаг остаточного предсказания.
Фиг.4 - это блок-схема последовательности операций, иллюстрирующая процесс реализации вышеуказанной концепции. Ссылаясь на фиг.4, на этапе S101 остаточные данные базового слоя получаются посредством, например, временного внутреннего кодирования посредством ссылки на другой кадр или блок. Если остаточные данные базового слоя меньше заранее определенного порога, т.е. порога Thresholdresidual, на этапе S105, например, если базовые остаточные данные имеют значение 0 или вся энергия меньше заранее определенного порога, кодирование флага остаточного резервирования пропускается, поскольку его не требуется задавать. Наоборот, если остаточные данные базового слоя больше Thresholdresidual на этапе S105, флаг остаточного предсказания выборочно имеет значение 1 или 0. Основа выбора флага определения предсказания, обозначенная как PrdRpFlag, может быть задана.
Если разность между BaseMV и CurrMV меньше заранее определенного порога, т.е. ThresholdMV на этапе S110, что означает, что вероятность использования остаточных данных базового слоя высока, флагу определения предсказания присваивается значение 1 на этапе S111. Наоборот, если разность между BaseMV и CurrMV больше ThresholdMv на этапе S110, вероятность использования остаточных данных базового слоя небольшая. Таким образом, флагу определения предсказания присваивается значение 0 на этапе S112. На этапе S120 кодируется флаг определения предсказания, заданный на этапе S111 или S112, и флаг разности остаточного предсказания, соответствующий разности между флагом остаточного предсказания и флагом определения предсказания. Кодер может кодировать флаг определения предсказания и флаг разности остаточного предсказания по макроблокам, по сериям последовательных макроблоков или по кадрам.
Фиг.5 - это блок-схема последовательности операций, иллюстрирующая процесс декодирования данных, закодированных с помощью способа, проиллюстрированного на фиг.4, согласно примерному варианту осуществления настоящего изобретения.
Сначала на этапе S151 остаточные данные базового слоя получаются из закодированных данных. С одной стороны, если остаточные данные не меньше заранее определенного порога, т.е. Thresholdresidual на этапе S155 (НЕТ на этапе S155), флагу остаточного предсказания присваивается значение разности между закодированным флагом определения предсказания и флагом разности остаточного предсказания на этапе S161. Как задано в процедуре кодирования, проиллюстрированной на фиг.4, флаг определения предсказания и флаг разности остаточного предсказания обозначены как PrdRpFlag и residual_pred_flag_diff соответственно. В таком случае residual_pred_flag_diff = PrdRpFlag - residual_prediction_flag. Таким образом, residual_prediction_flag может быть получен посредством вычитания residual_pred_flag_diff из PrdRpFlag.
С другой стороны, если остаточные данные меньше Thresholdresidual на этапе S155 (ДА на этапе S155), что означает, что улучшенный слой не генерируется посредством ссылки на флаг остаточного предсказания, флагу остаточного предсказания присваивается значение 0 на этапе S162.
В вышеприведенном описании кодируется информация, отличная от флага остаточного предсказания, указывающая, содержатся ли ссылки на остаточные данные базового слоя, тем самым повышая эффективность кодирования. Аналогично, другая информация может быть закодирована вместо кодирования флага предсказания движения, который указывает, используется или нет информация о движении базового слоя для предсказания вектора движения для того, чтобы достичь той же цели.
Фиг.6 - это схема, показывающая пример предсказания движения в кодировании видео согласно примерному варианту осуществления настоящего изобретения. Предсказание движения относится к предсказанию вектора движения улучшенного слоя или текущего слоя из вектора движения базового слоя. Таким образом, если флагу предсказания движения, обозначенному как motion_prediction_flag, присваивается значение 1, вектор движения улучшенного слоя предсказывается посредством ссылки на вектор движения базового слоя. В противном случае, если флагу предсказания движения присвоено значение 0, вектор движения базового слоя не указывается ссылками. 21 или 25 на фиг.6 обозначает макроблок (или субблок), серию последовательных макроблоков или кадр. Для удобства описания предполагается, что предсказание движения выполняется по макроблокам. Вектор движения макроблока 21 базового слоя такой же, как вектор движения макроблока 25 улучшенного слоя. В этом случае кодирование флага предсказания движения не требуется. Кодирование флага предсказания движения может также быть пропущено, если остаток между двумя векторами движения меньше заранее определенного порога, т.е. ThresholdMotion.
В то же время флаг предсказания движения может быть определен посредством сравнения вектора движения базового слоя с векторами движения из пространственно соседних областей. Пространственно соседние области могут предоставлять точные векторы движения; тем не менее, в некоторых случаях предсказание движения может не выполняться точно. Это может приводить к большому остатку вектора движения. Хотя точность предсказания движения из вектора движения базового слоя меньше пространственного предсказания движения, первое обеспечивает приемлемую точность практически во всех случаях. Таким образом, остаток между двумя векторами движения может быть использован для того, чтобы предсказывать флаг предсказания движения.
Если остаток между векторами движения из макроблоков 22 и 26 больше заранее определенного порога, т.е. ThresholdMV, флагу определения предсказания prediction_determination_flag, присваивается значение 1, поскольку есть большая вероятность того, что флагу предсказания движения присвоено значение 1. С другой стороны, если остаток между векторами движения из макроблоков 22 и 26 меньше ThresholdMV, флагу определения предсказания присваивается значение 0, поскольку есть большая вероятность того, что флагу предсказания движения присвоено значение 0.
После того как задано значение флага определения предсказания, кодируется флаг разности предсказания движения, обозначенный как motion_pred_flag_diff, соответствующий разности между флагом определения предсказания и флагом предсказания движения.
Фиг.7 - это блок-схема последовательности операций, иллюстрирующая способ повышения эффективности кодирования флага предсказания движения.
Ссылаясь на фиг.7, вектор движения, предсказываемый из базового слоя, обозначенный как Predict_MV_From_BaseLayer, и вектор движения, предсказываемый из пространственно соседней области, обозначенный как Predict_MV_From_Spatia, получаются на этапе S201. На этапе S205, с одной стороны, если разность между двумя векторами движения меньше заранее определенного порога, т.е. ThresholdMotion, флаг предсказания движения не кодируется. С другой стороны, если разность между двумя векторами движения больше ThresholdMV, флаг определения предсказания задается для того, чтобы предсказывать флаг предсказания движения, вместо флага предсказания движения. Флагу определения предсказания присваивается значение 1 или 0 в зависимости от того, больше или нет разность, чем ThresholdMV, на этапе 210.
Т.е. если на этапе S210 разность больше ThresholdMV, флагу определения предсказания присваивается значение 1 на этапе S211. Если разность больше ThresholdMV, флагу определения предсказания присваивается значение 0 на этапе S212. На этапе S220 кодируется значение флага определения предсказания, заданное на этапе S211 или S212, 1 или 0, и флага разности остаточного предсказания, соответствующее разности между флагом остаточного предсказания и флагом определения предсказания.
Фиг.8 - это блок-схема последовательности операций, иллюстрирующая способ декодирования данных, закодированных с помощью способа, проиллюстрированного на фиг.7, согласно примерному варианту осуществления настоящего изобретения.
Ссылаясь на фиг.8, на этапе S251 вектор движения, предсказываемый из базового слоя, и вектор движения, предсказываемый из пространственно соседней области, получаются на основе кодированных данных.
На этапе S255, с одной стороны, если разность между двумя векторами движения меньше заранее определенного порога, т.е. ThresholdMotion, значение флага предсказания движения, обозначенного как motion_prediction_flag, задается равным разности между флагом определения предсказания и флагом разности предсказания движения на этапе S261. Как задано в проиллюстрированной выше процедуре кодирования, флаг определения предсказания и флаг разности остаточного предсказания обозначаются как PrdRpFlag и residual_pred_flag_diff соответственно. В таком случае motion_pred_flag_diff = PrdRpFlag - motion_prediction_flag. Таким образом, motion_prediction_flag может быть получен посредством вычитания motion_pred_flag_diff из PrdRpFlag.
С другой стороны, на этапе S255, если разность меньше ThresholdMotion, motion_prediction_flag присваивается значение 0 на этапе S262.
Как описано в связи с фиг.3-8, данные, которые должны быть закодированы, предсказы