Перекрестная ссылка на родственные заявки
Эта заявка испрашивает приоритет по предварительной заявке на патент Кореи No 10-2006-0004139, поданной 13 января 2006 в Korean Intellectual Property Office, и предварительной заявки на патент США No 60/727,851, поданной 19 октября 2005 в United States Patent and Trademark Office, раскрытия которых полностью включены сюда по ссылке.
Область техники, к которой относится изобретение
Способ и устройства согласно данному изобретению относятся к сжатию видео, и, более подробно, к эффективному кодированию флагов, используя корреляцию между слоями в кодере-декодере многослойного кодирования/декодирования.
Предшествующий уровень техники
С развитием информационных и коммуникационных технологий мультимедийная передача данных увеличивается в дополнение к голосовым и текстовым передачам данных. Существование сконцентрированных на тексте систем связи недостаточно для удовлетворения разнообразных желаний потребителей, и, таким образом, увеличивается число служб мультимедиа, которые могут использовать различные формы информации, типа текста, изображения, музыки и прочее. Поскольку данные мультимедиа являются большими по объему, требуются носители большой емкости и с большой пропускной способностью для сохранения и передачи этих данных. Соответственно, требуются способы кодирования со сжатием для передачи данных мультимедиа.
Основным принципом сжатия данных является удаление избыточных данных. Данные могут быть сжаты, удаляя пространственную избыточность, типа повторения одного и того же цвета или объекта в изображениях, временную избыточность, типа подобных соседних кадров в движущихся изображениях или непрерывное повторение звуков и визуальную/перцепционную избыточность, которая учитывает человеческую нечувствительность к высоким частотам.
В обычных способах видеокодирования временная избыточность удаляется с помощью временной фильтрации, основанной на компенсации движения, и пространственная избыточность удаляется пространственным преобразованием.
Результирующие данные, из которых удалена избыточность, являются закодированными с потерей, согласно заданным операциям квантования в процессе квантования. Результатом квантования является кодирование с потерей через энтропийное кодирование.
Как сформулировано в текущем проекте кодирования масштабируемого видео (в дальнейшем называемом как проект SVC) продвигаемого Объединенной Видео-Группой (JVT), которая является группой видеоэкспертов международной Организации по Стандартизации/Международной Электротехнической Комиссии (ISO/IEC) и Международного союза электросвязи (ITU), идет исследование для осуществления многослойного видеокодера-декодера, основанного на существующем стандарте H.264.
Фиг.1 иллюстрирует масштабируемую структуру видеокодирования, использующую многослойную структуру. В этой структуре видеокодирования первый слой установлен на четверть общего промежуточного формата (QCIF) в 15 Гц (частота кадров), второй слой установлен на общий промежуточный формат (CIF) в 30 Гц и третий слой установлен на стандартное определение (SD) в 60 Гц. Если требуются поток CIF 0.5 Mbps, битовый поток, может быть усечен так, чтобы скорость передачи информации в битах была 0.5 Mbps во втором слое, имеющем CIF, частоту кадров 30 Гц и скорость передачи информации в битах 0.7 Mbps. Этим способом может быть осуществлена пространственная, временная и с отношением сигнал-шум (SNR) масшабируемость. Так как существует некоторое подобие между слоями, способ усиления эффективности кодирования некоторого слоя (например, данные текстуры, данные движения и другие) с использованием предсказанной информации от другого слоя часто используется в кодировании соответствующих слоев.
С другой стороны, при масштабируемом кодировании видео существуют разнообразные флаги, связанные с тем, используют ли информацию между слоями, которые могут быть установлены по секторам, макроблокам, субблокам или четным коэффициентам. Соответственно, в видеокодировании непроизводительные издержки, которые увеличиваются из-за флагов, не могут игнорироваться.
Однако в настоящее время флаги в отличие от данных текстур или данных движения, не кодировались отдельно или никогда не кодировались, без корреляции между слоями.
Сущность изобретения
Иллюстративные, не ограничивающие варианты воплощения данного изобретения преодолевают вышеупомянутые недостатки и другие недостатки, не описанные выше. Также, данное изобретение не обязано преодолевать все недостатки, описанные выше, и иллюстративные, не ограничивающие варианты воплощения данного изобретения могут не преодолевать некоторые из проблем, описанных выше.
Данное изобретение обеспечивает способ и устройство для эффективного кодирования различных флагов, используемых в многослойном масштабируемом видеокодере-декодере, основанном на корреляции между слоями.
Согласно аспекту данного изобретения обеспечивается способ кодирования флагов текущего слоя, которые используются в многослойном видео, используя корреляцию с соответствующими флагами основного слоя, где способ включает в себя оценивание, являются ли все флаги текущего слоя, включенного в заданную единичную площадь, равными (эквивалентными) флагами основного слоя; установку заданного флага предсказания согласно результату оценивания; и, если определено в результате оценивания, что флаги текущего слоя равны (эквивалентным) флагам основного слоя, пропуск флагов текущего слоя, и вставку флагов основного слоя и флага предсказания в битовый поток.
Согласно другому аспекту данного изобретения обеспечивается способ кодирования флагов текущего слоя, которые используются в многослойном видео, используя корреляцию с соответствующими флагами основного слоя, где способ содержит получение значений Исключающего ИЛИ флагов текущего слоя и флагов основного слоя; выполнение энтропийного кодирования полученных значений ИЛИ; и вставку результата энтропийного кодирования и флагов основного слоя в битовый поток.
Согласно еще одному аспекту данного изобретения обеспечивается способ декодирования закодированных флагов текущего слоя, используя корреляцию с флагами основного слоя в многослойном видео, где способ содержит чтение флага предсказания и флагов основного слоя из входного битового потока; если флаг предсказания имеет первое значение бита, замену считанными флагами основного слоя флагов текущего слоя в заданной единичной площади, для которой выделен флаг предсказания; и вывод замененных флагов текущего слоя.
Согласно еще одному аспекту данного изобретения обеспечивается способ декодирования закодированных флагов текущего слоя, используя корреляцию с флагами основного слоя в многослойном видео, где способ содержит чтение флагов основного слоя и закодированных флагов текущего слоя из входящего битового потока; выполнение энтропийного декодирования закодированных флагов текущего слоя; получение значений Исключающего ИЛИ результата энтропийного декодирования и считанных флагов основного слоя; и вывод результата операции Исключающего ИЛИ.
Краткое описание чертежей
Вышеупомянутое и аспекты данного изобретения будет более очевидным из следующего подробного описания примерных вариантов воплощения, рассматриваемых вместе с сопроводительными чертежами, в которых:
Фиг.1 является представлением, иллюстрирующим масштабируемую структуру видеокодирования, используя многослойную структуру;
Фиг.2 является представлением, иллюстрирующим кодирующие структуры FGS, составленные из дискретного слоя и, по меньшей мере, одного слоя FGS;
Фиг.3 является концептуальным представлением, объясняющим три способа предсказания, обеспеченных при масштабируемом видеокодировании;
Фиг.4 является блок-схемой, иллюстрирующей конструкцию устройства кодирования флага согласно примерному варианту воплощения данного изобретения;
Фиг.5 является представлением, иллюстрирующим пример коэффициентов уточнения;
Фиг.6 является блок-схемой, иллюстрирующей конструкцию устройства декодирования флага согласно примерному варианту воплощения данного изобретения;
Фиг.7 является блок-схемой, иллюстрирующей способ кодирования флага согласно примерному варианту воплощения данного изобретения;
Фиг.8 является блок-схемой, иллюстрирующей способ кодирования флага согласно другому примерному варианту воплощения данного изобретения;
Фиг.9 является блок-схемой, иллюстрирующей способ декодирования флага согласно примерному варианту воплощения данного изобретения;
Фиг.10 является блок-схемой, иллюстрирующей способ декодирования флага согласно другому примерному варианту воплощения данного изобретения;
Фиг.11 является блок-схемой, иллюстрирующей конструкцию примерного многослойного видеокодера, к которому устройство кодирования флага по фиг.4 может быть применено; и
Фиг.12 является блок-схемой, иллюстрирующей конструкцию примерного многослойного видеодекодера, к которому устройство декодирования флага по фиг.6 может быть применено.
Подробное описание примерных вариантов воплощения
В дальнейшем, примерные варианты воплощения данного изобретения будут описаны подробно со ссылкой к приложенным чертежам. Аспекты и особенности данного изобретения и способы для достижения аспектов и особенностей будут очевидны, обращаясь к примерным вариантам воплощения, описанным подробно со ссылкой к приложенным чертежам. Однако данное изобретение не ограничено примерными вариантами воплощений, раскрытыми в дальнейшем, но может быть осуществлено в разнообразных формах. Вопросы, определенные в описании, типа подробного описания конструкции и элементов, являются только конкретными деталями, обеспеченными для того, чтобы помочь специалистам в данной области техники во всестороннем понимании изобретения, и данное изобретение определено только в пределах приложенной формулы изобретения. Во всем описании данного изобретения одни и те же цифры ссылок чертежей используются для одних и тех же элементов на протяжении различных чертежей.
В статье «Variable length code for SVC» (JVT-P056, Poznan, 16th JVT meeting; в дальнейшем упоминаемый как «JVT-P056»), представленной J Ridge и М. Karczewicz на 16-той встрече JVT, была представлена методика (CAVLC) кодирования с контекстной адаптивной переменной длиной вместе с характеристикой масштабируемого видеокодирования (SVC). JVT-P056 следует за тем же самым процессом, как и существующий стандарт H.264 в дискретном слое, но использует отдельную методику VLC согласно статистическим характеристикам в хорошо гранулированном масштабируемом слое (FGS слой). FGS-слой является слоем, который равен или выше второго слоя в кодировании FGS, и дискретный слой является первым слоем в кодировании FGS.
Как показано на фиг.2, при выполнении энтропийного кодирования коэффициентов, составляющих один дискретный слой и по меньшей мере один FGS-слой, используются три прохода сканирования, то есть проход сканирования значимости, проход сканирования уточнения и проход сканирования остатка. Различные способы применяются к соответствующим проходам сканирования согласно их статистическим характеристикам. В частности, для прохода сканирования уточнения используется таблица VLC, которая получается, основываясь на том факте, что значение «0» является предпочтительным перед другими значениями при энтропийном кодировании. Вообще, коэффициент FGS-слоя, для которого соответствующий коэффициент дискретного слоя равен «0», называют коэффициентом значимости, и коэффициент FGS-слоя, для которого соответствующий коэффициент дискретного слоя не равен «0», называют коэффициентом уточнения. Важный коэффициент кодируется проходом сканирования значимости, в то время как коэффициент уточнения кодируется проходом уточнения.
В JVT-P056 была предложена VLC методика для FGS-слоя. Согласно этой методике обычная методика CAVLC используется в дискретном слое, но отдельная методика, использующая статистическую характеристику, используется в FGS-слое. В частности, JVT-P056 при кодировании коэффициентов уточнения в проходе сканирования уточнения среди этих трех проходов сканирования группирует абсолютные значения коэффициентов уточнения в терминах четырех, кодирует сгруппированные коэффициенты уточнения, используя VLC таблицу, и кодирует флаги знака для того, чтобы отличить положительный/отрицательный знак коэффициентов уточнения, отдельно от сгруппированных коэффициентов уточнения. Так как флаг знака коэффициента уточнения дается для каждого коэффициента уточнения (исключая случай, когда коэффициент уточнения равен «0»), системные издержки из-за этого становятся большими. Соответственно, чтобы уменьшить системные задержки на флаг знака, энтропийное кодирование типа кодирования слоя выполнения применяется к флагу знака. Однако это сделано, используя только информацию в соответствующем FGS-слое, не используя информацию других FGS-слоев.
Однако, как результат исследования разнообразных видеовыборок, может быть известно, что знак коэффициента уточнения в первом FGS-слое равен знаку соответствующего коэффициента уточнения в дискретном слое. Однако весьма неэффективно использовать только информацию соответствующего слоя при кодировании флага знака коэффициента уточнения в первом FGS-слое.
Согласно текущему проекту масштабируемого кодирования видео, в дополнение к флагу знака, разнообразные флаги типа флага остаточного предсказания, флага внутренней основы, флага предсказания движения, флага основного режима и другие используются при реализации энтропийного кодирования FGS-слоя. Эти флаги включены в битовый поток и передаются на сторону видеодекодера.
Флаг остаточного предсказания является флагом, который указывает, используется ли остаточное предсказание. Остаточное предсказание является методикой, которая может уменьшить избыточность между слоями остаточных сигналов, предсказывая остаточный сигнал некоторого слоя, используя соответствующий остаточный сигнал основного слоя. Так как основной слой является некоторым слоем, который упомянут для эффективного кодирования другого слоя, он не ограничен первым слоем и не обязательно означает нижний слой.
Используется или нет остаточное предсказание, указывается флагом остаточного предсказания, который передается на сторону видеодекодера. Если флаг (его значение) равен «1», это указывает, что используется остаточное предсказание, в то время как, если флаг равен «0», то это указывает, что остаточное предсказание не используется.
Флаг внутренней основы является флагом, который указывает, используется ли предсказание внутренней основы. Согласно текущему проекту масштабируемого кодирования видео, в дополнение к внешнему предсказанию (1) и внутреннему предсказанию (2), которые использовались в существующем стандарте H.264, также поддерживается предсказание (3) внутренней основы для сокращения данных, которые будут закодированы, предсказывая кадр текущего слоя, используя изображение основного слоя, как показано на Фиг.3. В проекте предсказание внутренней основы рассматривают как своего рода внутреннее предсказание. Во внутреннем предсказании, если флаг внутренней основы равен «0», это указывает на обычное внутреннее предсказание, в то время как, если флаг внутренней основы равен «1», это указывает на предсказание внутренней основы.
Флаг предсказания движения является флагом, который указывает, при получении разности векторов движения (MVD) с помощью предсказания вектора движения текущего слоя, используется ли другой вектор движения того же самого слоя или вектор движения основного слоя. Если флаг равен «1», то это указывает, что используется вектор движения основного слоя, в то время как, если флаг равен «0», то это указывает, что используется другой вектор движения того же самого слоя.
Флаг основного режима является флагом, который указывает, при указании информации движения текущего слоя, используется ли информация движения основного слоя. Если флаг основного режима равен «1», то используется информация движения основного слоя в качестве информации движения текущего слоя, или используется уточненная информация движения основного слоя. Если флаг основного режима равен «0», то это указывает, что информация движения текущего слоя извлекается отдельно и записана независимо от информации движения основного слоя. Информация движения включает в себя макроблочный тип mb_type, опорное направление картинки (то есть, вперед, назад и двунаправлено) во время взаимного предсказания и вектор движения.
Упомянутые выше флаги имеют своего рода корреляцию между соответствующими слоями. То есть, есть высокая вероятность того, что флаг текущего слоя имеет то же самое значение, что и соответствующий флаг основного слоя. Также, в типичном энтропийном кодировании, известно, что эффективность сжатия улучшена, поскольку число значений «0», включенных в значения для кодирования, становится большим. Это происходит потому, что в энтропийном кодировании ряд значений «0» обрабатывается за одно выполнение или обрабатывается со ссылкой к таблице, которая смещена к «0». Рассматривая эти точки, эффективность сжатия при выполнении энтропийного кодирования может быть улучшена с помощью установки флага в «0», если флаг основного слоя равен соответствующему флагу текущего слоя, при установке флага в «1» в другом случае.
Фиг.4 является блок-схемой, иллюстрирующей конструкцию устройства кодирования флага согласно примерному варианту воплощения данного изобретения. Устройство 100 кодирования флага может включать в себя модуль 110 считывания флага, модуль 120 установки флага предсказания, модуль 130 операций, модуль 140 энтропийного кодирования и модуль 150 вставки.
Модуль 110 считывания флага считывает значения флагов, сохраненные в заданной области памяти. Вообще, значение флага указывается одним битом («1» или «0»), но не ограничено этим. Флаги включают в себя флаги FС текущего слоя и соответствующие флаги FB основного слоя.
Модуль 120 установки флага предсказания оценивает по заданной единичной площади, являются ли все флаги FС текущего слоя равными соответствующим флагам FB основного слоя, и если это так, устанавливает флаг предсказания P_flag в «0», в противном случае, устанавливает флаг предсказания P_flag в «1». Единичной площадью может быть кадр, сектор, макроблок или субблок. Если флаги, включенные в единичную площадь, равны друг другу на протяжении уровней, флаги FС текущего слоя могут быть пропущены вместо того, чтобы быть установленным в «1». В этом случае, только флаги FB нижнего слоя и флаг предсказания P_flag вставляются в битовый поток и передаются на сторону видеодекодера.
Модуль 130 операций исполняет операцию исключающего ИЛИ относительно флагов FС текущего слоя и соответствующих флагов FB основного слоя в случае, когда флаг предсказания установлен в «0». Операция исключающего ИЛИ является логической операцией, посредством которой, если два входных значения битов равны друг другу, выводится «0», в то время как, если они не равны друг другу, выводится «1». Если есть высокая вероятность, что флаги FС и FB соответствующих слоев являются равными друг другу, большинство выводов, полученных в результате операции, становится «0», и, таким образом, эффективность энтропийного кодирования может быть улучшена.
Например, если предполагается, что первый FGS-слой является текущим слоем, коэффициенты уточнения для каждого субблока первого FGS-слоя показаны как затененные части на фиг.5. Если коэффициенты уточнения размещены в порядке, как обозначено пунктирной стрелкой (зигзагообразным образом) на фиг.5, флаг знака текущего слоя становится {10101}, и соответствующий флаг знака основного слоя (то есть, дискретного слоя) становится {10100}, где положительный знак обозначен как «0», а отрицательный знак обозначен как «1»). Выполняя операцию исключающего ИЛИ относительно набора флагов, результат операции становится {00001}. В этом случае, выгодней по эффективности сжатия исполнить энтропийное кодирование результата операции, {00001}, вместо того, чтобы выполнять энтропийное кодирование флага знака, {10101}, текущего слоя.
Обратимся вновь к фиг.4, где модуль 140 энтропийного кодирования выполняет кодирование без потерь вывода результата операции от модуля 130 операции. Кодирование переменной длины (включая CAVLC), арифметическое кодирование (включая адаптивное двоичное арифметическое кодирование на основе контекста), кодирование Хаффмана и другие могут использоваться как способ кодирования без потерь.
Если флаг предсказания P_flag равен «1», модуль 150 вставки вставляет флаг предсказания и флаги FB основного слоя в битовый поток (BS). Наоборот, если флаг предсказания равен «0», модуль 150 вставки вставляет флаг предсказания, флаги FB основного слоя и результат RC ' операции энтропийного кодирования в битовый поток (BS). Битовый поток (BS) является данными, которые были кодированы с потерей многослойным видеокодером, и конечный битовый поток выводится в результате вставки.
Фиг.6 является блок-схемой, иллюстрирующей конструкцию устройства декодирования флага. Устройство 200 декодирования флага может включать в себя модуль 210 считывания битового потока, модуль 220 считывания флага предсказания, модуль 230 замены, модуль 240 энтропийного декодирования и модуль 250 операций.
Модуль 210 считывания битового потока извлекает флаги FB основного слоя и флаг предсказания P_flag, анализируя конечный битовый поток. Модуль 210 считывания битового потока также извлекает результат RC ' операции энтропийного кодирования, если он существует в битовом потоке.
Модуль 220 считывания флага предсказания считывает извлеченный флаг предсказания P_flag, и если значение флага предсказания равно «0», то используется модуль 250 операции, в то время как, если значение флага предсказания равно «1», используется модуль 230 замены.
Модуль 230 замены заменяет флагами FB основного слоя флаги FС текущего слоя, если модуль 220 считывания флага предсказания уведомляет, что флаг предсказания равен «1». Соответственно, флаги FB вывода основного слоя и флаги FС текущего слоя становятся равными друг другу.
Модуль 240 энтропийного декодирования выполняет декодирование без потерь результата операции RC '. Эта операция декодирования является обратной к операции кодирования без потерь, выполненной модулем 140 энтропийного кодирования.
Модуль 250 операции, если модуль 220 считывания флага предсказания уведомляет, что флаг предсказания равен «0», выполняет операцию исключающего ИЛИ относительно флагов FB основного слоя и результата RC кодирования без потерь. Первоначально, модуль 130 операции вычисляет RC через операцию, как выражено ниже в уравнении (1) (где, ^ является обозначением операции Исключающего ИЛИ), и беря «^FB» с обеих сторон уравнения (1), удаляем «^FB^FB» на правой стороне уравнения (1), чтобы получить результат, выраженный ниже уравнением (2).
Соответственно, модуль 250 операции может восстановить флаги FС текущего слоя, выполняя операцию исключающего ИЛИ относительно RС и FB. Наконец, выходные данные устройства 200 декодирования флагов становятся флагами FB основного слоя и флагами FС текущего слоя.
Соответствующие составные части в фиг.4 и 6 могут быть осуществлены как задача, которая выполняется в указанной области памяти, микросхемы, подпрограммы, процесса, объекта, потока выполнения, программного обеспечения типа программы, аппаратных средств типа FPGA (программируемая вентильная матрица) или ASIC (специализированные интегральные схемы), или комбинации программного обеспечения и оборудования. Составные части могут быть включены в читаемый компьютером носитель данных или такие части могут быть распределены на множестве компьютеров.
Фиг.7 является блок-схемой, иллюстрирующей способ кодирования флага согласно примерному варианту воплощения данного изобретения.
Сначала, модуль 110 считывания флага считывает флаги FB основного слоя и флаги FС текущего слоя (S11). Затем модуль 120 установки флага предсказания оценивает, являются ли флаги FB и соответствующие флаги FС в единичной площади равными друг другу (S12).
Если флаги FB и FС равны друг другу в результате оценивания («Да» в операции S12), модуль 120 установки флага предсказания устанавливает флаг предсказания P_flag в «1» (S17), и модуль 150 вставки вставляет флаг предсказания P_flag и FB в битовый поток (S18).
Если флаги FB и FС не равны друг другу в результате оценивания («Нет» в операции S12), модуль 120 установки флага предсказания устанавливает флаг предсказания P_flag в «0» (S13). Затем, модуль операции 130 выполняет операцию исключающего ИЛИ относительно FB и FС (S14). В другом примерном варианте воплощения данного изобретения этап S14 процесса может быть опущен (в этом случае, FС будет непосредственно энтропийно кодированным).
Модуль 140 энтропийного кодирования выполняет энтропийное кодирование результата Rc операции (S15). Наконец, модуль 150 вставки вставляет флаг предсказания P_flag, флаги FB основного слоя и результат RС ' кодирования энтропии в битовый поток (S16).
Фиг.8 является блок-схемой, иллюстрирующей способ кодирования флага согласно другому примерному варианту воплощения данного изобретения. Этот способ кодирования флага исключает процесс установки флага предсказания. В способе, как проиллюстрировано на фиг.8, операция исключающего ИЛИ выполняется независимо от того, равны ли FB и FС друг другу, по единичной площади.
Сначала модуль 110 считывания флага считывает флаги FB основного слоя и флаги FС текущего слоя (S21). После этого, модуль 130 операции выполняет операцию исключающего ИЛИ относительно FB и FС (S22). Модуль 140 энтропийного кодирования выполняет энтропийное кодирование результата RС операции (S23). Наконец, модуль 150 вставки вставляет флаг предсказания P_flag, флаги FB основного слоя и результат RС ' энтропийного кодирования в битовый поток (S24).
Фиг.9 является блок-схемой, иллюстрирующей способ декодирования флага согласно примерному варианту воплощения данного изобретения.
Сначала, модуль 210 считывания битового потока считывает конечный битовый поток (BS) и извлекает флаги FB основного слоя, результат RС' операции энтропийного кодирования и флаг предсказания P_flag (S31). После этого, модуль 220 считывания флага предсказания определяет, имеет ли извлеченный флаг предсказания P_flag значение «0» (S32).
Если флаг предсказания P_flag определен как «1» в результате определения («Нет» в операции S32), модуль 230 замены заменяет извлеченными флагами FB основного слоя (S35) флаги FС текущего слоя и выводит замененные флаги FС текущего слоя (S36). Единичная площадь может соответствовать кадру, сектору, макроблоку или субблоку.
Если флаг предсказания P_flag равен «0» в результате определения («Да» в операции S32), модуль 240 энтропийного декодирования восстанавливает результат RC операции, декодируя результат RC' операции энтропийного кодирования (S33). Эта операция декодирования является обратной к операции энтропийного кодирования.
Модуль 250 операции восстанавливает флаги FС текущего слоя, выполняя операцию исключающего ИЛИ относительно флагов FB основного слоя и результата RC кодирования без потерь (S34). После этого модуль 250 операций выводит восстановленные флаги FС текущего слоя (S36).
Фиг.10 является блок-схемой, иллюстрирующей способ декодирования флага согласно другому примерному варианту воплощения данного изобретения. Этот способ декодирования флага исключает процесс, связанный с флагом предсказания. В способе, как проиллюстрировано на Фиг.10, процесс энтропийного декодирования (S42) и операция (S43) Исключающего ИЛИ применяются независимо от значения флага предсказания P_flag.
Сначала, модуль 210 считывания битового потока считывает конечный битовый поток (BS) и извлекает флаги FB основного слоя и результат RC' операции энтропийного кодирования (S41). После этого модуль 240 энтропийного декодирования восстанавливает результат RC операции, декодируя результат RC' операции энтропийного кодирования (S42). Модуль 250 операций восстанавливает флаги FС текущего слоя, выполняя операцию исключающего ИЛИ относительно флагов FB основного слоя и результата RC кодирования без потерь (S43), и затем выводит восстановленные флаги FС текущего слоя (S44).
Фиг.11 является блок-схемой, иллюстрирующей конструкцию многослойного видеокодера, к которому может быть применено устройство кодирования флага по фиг.4.
Первоначальная видеопоследовательность вводится в кодер 400 текущего слоя и субдискретизируется (только в случае, когда разрешающая способность была изменена между слоями) с помощью модуля 305 субдискретизации для ввода в кодер 300 основного слоя.
Модуль 410 предсказания получает остаточный сигнал, вычитая предсказанное изображение из текущего макроблока заданным способом. Направленное внутреннее предсказание, внешнее (взаимное) предсказание, предсказание внутренней основы и остаточное предсказание могут использоваться как способ предсказания.
Модуль 420 преобразования преобразовывает полученный остаточный сигнал, используя методику пространственного преобразования типа дискретного косинусного преобразования (DCT) и волнового преобразования и генерирует коэффициенты преобразования.
Модуль 430 квантования квантует коэффициенты преобразования через заданную операцию квантования (поскольку операция квантования становится большой, потеря данных или степень сжатия становится больше) и генерирует коэффициенты квантования.
Модуль 440 энтропийного кодирования выполняет кодирование без потерь коэффициентов квантования и выводит битовый поток текущего слоя.
Модуль 450 установки флага устанавливает флаги из информации, полученной в разнообразных операциях. Например, флаг остаточного предсказания и флаг внутренней основы устанавливаются через информацию, полученную от модуля 410 предсказания, а флаг знака коэффициента уточнения устанавливается через информацию, полученную от модуля 440 энтропийного кодирования. Флаги FС текущего слоя, как установлено выше, вводятся в устройство 100 кодирования флага.
Аналогичным образом, что и кодер 400 текущего слоя, кодер 300 основного слоя включает в себя модуль 310 предсказания, модуль 320 преобразования, модуль 330 квантования, модуль 340 энтропийного кодирования и модуль 350 установки флага, которые имеют те же самые функции, что и таковые же у кодера 400 текущего слоя. Модуль 340 энтропийного кодирования выводит битовый поток основного слоя на мультиплексор (mux) 360, и модуль 350 установки флага предоставляет флаг FB основного слоя на устройство 100 кодирования флага.
Мультиплексор (mux) 360 объединяет битовый поток текущего слоя с битовым потоком основного слоя для того, чтобы сгенерировать битовый поток (BS), и предоставляет сгенерированный битовый поток на устройство 100 кодирования флага.
Устройство 100 кодирования флага кодирует FС используя корреляцию между FB и FС, и вставляет закодированные FС и FB в предоставленный битовый поток для того, чтобы вывести конечный битовый поток (конечный BS).
Фиг.12 является блок-схемой, иллюстрирующей конструкцию многослойного видеодекодера, к которому устройство Фиг.6 декодирования флага может быть применено.
Входной конечный битовый поток (конечный BS) вводится в устройство 200 декодирования флага и демультиплексор (demux) 650. Демультиплексор demux 650 разделяет конечный битовый поток на битовый поток текущего слоя и битовый поток основного слоя, и предоставляет битовый поток текущего слоя и битовый поток основного слоя на декодер 700 текущего слоя и декодер 600 основного слоя, соответственно.
Модуль 710 энтропийного декодирования восстанавливает коэффициенты квантования, выполняя декодирование без потерь, которое соответствует кодированию без потерь, выполненному модулем 440 энтропийного кодирования.
Модуль 720 обратного квантования выполняет обратное квантование восстановленных коэффициентов квантования операцией квантования, используемой в модуле 430 квантования.
Модуль 730 обратного преобразования выполняет обратное преобразование результата обратного квантования, используя методику обратного пространственного преобразования, типа обратного DCT и обратного волнового преобразования.
Модуль 740 обратного предсказания получает предсказанное изображение, полученное модулем 410 предсказания тем же самым образом, и восстанавливает видеопоследовательность, добавляя результат обратного преобразования к полученному предсказанному изображению.
Аналогично, что и декодер 700 текущего слоя, декодер 600 основного слоя включает в себя модуль 610 энтропийного декодирования, модуль 620 обратного квантования, модуль 630 обратного преобразования и модуль 640 обратного предсказания.
С другой стороны, устройство 200 декодирования флага извлекает флаги FB основного слоя и закодированные значения флагов FС текущего слоя из конечного битового потока и восстанавливает флаги FС текущего слоя из FB и закодированных значений.
Извлеченные флаги FB основного слоя используются для соответствующих операций элементов 610, 620, 630 и 640 декодера 600 основного слоя, и восстановленные флаги FС текущего слоя используются для соответствующих операций элементов 710, 720, 730 и 740 декодера 700 текущего слоя.
Как описано выше, согласно данному изобретению эффективность кодирования различных флагов, которые используются в многослойном масштабируемом видеокодере-декодере, может быть улучшена.
Примерные варианты воплощений данного изобретения были описаны для иллюстративных целей, и специалисты в данной области техники оценят, что различные модификации, добавления и замены являются возможными, не отступая от объема и духа изобретения, как раскрыто в приложенной формуле изобретения. Поэтому, объем данного изобретения должен быть определен в соответствии с приложенной формулой изобретения и ее законными эквивалентами.
Изобретение относится к сжатию видео, и, более подробно, к эффективному кодированию флагов, используя корреляцию между слоями в кодере-декодере многослойного кодирования/декодирования. Техническим результатом является повышение эффективности кодирования различных флагов, используемых в многослойном масштабируемом видеокодере-декодере, основанном на корреляции между слоями. Предложен способ и устройство для эффективного кодирования разнообразных флагов, используемых в многослойном масштабируемом видеокодере-декодере, основанном на корреляции между слоями. Способ кодирования включает в себя оценку того, являются ли все флаги текущего слоя, включенные в указанную единичную площадь, равными флагам основного слоя, установку заданного флага предсказания согласно результату оценки, и если оценено, что флаги текущего слоя равны флагам основного слоя, пропускают флаги текущего слоя и вставляют флаги основного слоя и флаг предсказания в битовый поток. 8 н. и 13 з.п. ф-лы, 12 ил.
Приоритет по пунктам:
RU 2001123542 А, 27.06.2003 | |||
US 6330280 В1, 11.12.2001 | |||
US 6580832 В1, 17.06.2003 | |||
US 6707949 В2, 16.03.2004 | |||
WO 2005091223 А1, 29.09.2005 | |||
ЯН РИЧАРДСОН | |||
Железнодорожный снегоочиститель | 1920 |
|
SU264A1 |
- М.: Техносфера, 2005, перевод издания 2003, с.188-205 | |||
YILIANG BAO et al | |||
Extension to AVC-based scalable video coding, Joint Video |
Авторы
Даты
2008-05-10—Публикация
2006-10-18—Подача