ВЫВОД ОПОРНЫХ ЗНАЧЕНИЙ РЕЖИМА И КОДИРОВАНИЕ И ДЕКОДИРОВАНИЕ ИНФОРМАЦИИ, ПРЕДСТАВЛЯЮЩЕЙ РЕЖИМЫ ПРЕДСКАЗАНИЯ
OUTPUT OF REFERENCE MODE VALUES AND ENCODING AND DECODING OF INFORMATION REPRESENTING PREDICTION MODES

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Изобретение относится к способу и устройству для кодирования или декодирования значений режима, представляющих режимы предсказания. В том числе, изобретение, более конкретно, относится к кодированию в интра-режиме в находящемся в процессе разработки стандарте Высокоэффективного Кодирования Видеосигнала (HEVC).
ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
Приложения воспроизведения видеоданных непрерывно продвигаются в сторону воспроизведения более высоких разрешений. Большое количество видеоматериала уже распространяется в электронном виде по каналам вещания, цифровым сетям и в виде пакетных мультимедийных данных, одновременно с непрерывным развитием в направлении более высокого качества и разрешения (например, более высокого количества пикселов в кадре, более высокой скорости передачи кадров, более высокой разрядности цвета или расширенной цветовой палитры). Это развитие технологии влечет за собой более высокую нагрузку на распределительные сети, которые уже стоят перед трудностями экономичного переноса видеоданных с разрешением HDTV и скорости передачи данных конечному пользователю. Следовательно, дальнейшее увеличение скорости передачи данных произведет дополнительную нагрузку на сеть. Для решения этой проблемы, ITU-T и ISO/MPEG в январе 2010 приняли решение о начале нового проекта стандарта кодирования видеосигнала, под названием Высокоэффективное Кодирование Видеосигнала (HEVC).
Архитектура кодека стандарта HEVC аналогична архитектуре большинства из предыдущих так называемых кодеков гибридного преобразования на основании блоков, таких, как H.263, H.264, MPEG-1, MPEG-2, MPEG-4, SVC. Алгоритмы сжатия видеосигнала, такие, как стандартизированные посредством организаций по стандартизации ITU, ISO и SMPTE, используют пространственные и временные избыточности изображений для генерирования битовых потоков данных, имеющих уменьшенный объем, по сравнению с объемом последовательностей видеосигналов. Такое сжатие делает передачу и/или хранение последовательностей видеосигналов более эффективными.
В процессе сжатия видеосигнала в предложенном кодере стандарта HEVC, выполняется пространственное предсказание каждого блока обрабатываемого изображения посредством «внутреннего» предиктора (так называемого, режима интра-кодирования), или временное предсказание посредством «взаимного» предиктора (так называемого, режима интер-кодирования). Каждый предиктор является блоком пикселов, происходящих из того же самого изображения или другого изображения, из которого выводится разностный блок (или «остаток»). В режиме интра-кодирования, предиктор (интра-предиктор), используемый для текущего блока, является блоком пикселов, составленным из уже закодированной информации текущего изображения. Посредством идентификации блока предиктора и кодирования остатка, возможно сокращение количества информации, которое фактически должно быть закодировано.
Существуют закодированные кадры двух типов: временные предсказанные кадры (либо предсказанные исходя из одного опорного кадра, называемые P-кадрами, либо предсказанные исходя из двух опорных кадров, называемые B-кадрами) и не временные предсказанные кадры (называемые внутренними или I-кадрами). В I-кадрах для блока кодирования рассматривается исключительно интра-предсказание. В P-кадрах и B-кадрах для блоков кодирования рассматривается как интра-, так и интер-предсказание.
В случае выбора интра-кодирования, элемент информации для описания используемого интра-предиктора кодируется до вставки в битовый поток, который должен быть отправлен в соответствующий декодер.
В текущей архитектуре стандарта HEVC, также как и в предыдущих архитектурах, таких, как MPEG-4 AVC/H.264, интра-кодирование подразумевает вывод блока интра-предсказания из восстановленных соседних дискретных элементов 101 блока, который должен быть закодирован (декодирован), как схематично иллюстрировано на Фиг. 1A и 1B. Поддерживается множество режимов предсказания, либо направленных либо ненаправленных. В стандарте HEVC, количество поддерживаемых режимов зависит от размеров элемента кодирования (CU). По состоянию на дату подачи настоящей заявки, спецификация стандарта HEVC все еще подлежит изменению, но в настоящий момент предполагается поддержка следующих режимов: 4 режима для CU 64×64, 18 режимов для CU 4×4, 35 режимов для CU других размеров (с 8×8 по 32×32).
Если CU подвергнут интра-кодированию, то связанный с ним режим интра-кодирования должен быть закодирован. Со ссылкой на Фиг.1B, при кодировании текущего CU 102, в кодировании в интра-режиме используются два соседних CU, которые уже были закодированы, а именно, Верхний и Левый CU 103 и 104.
На Фиг. 2 иллюстрированы режимы интра-предсказания, которые предполагаются в стандарте HEVC. Режимы интра-предсказания включают в себя режим плоского предсказания, идентифицируемый посредством значения 0 режима предсказания, режим DC, имеющий значение 3 режима предсказания, и множество режимов направленного предсказания, идентифицируемых посредством значений 4-34 режима предсказания для предсказания направленных структур в изображении, соответствующих различным углам. Также в их состав включен режим 2 горизонтального предсказания и режим 1 вертикального предсказания.
Фиг. 3 изображает схему последовательности операций, которая используется для объяснения того, как выполняется кодирование в интра-режиме в текущей архитектуре стандарта HEVC. На первом этапе S201, идентифицируются режимы интра-предсказания соседних Верхнего и Левого CU 103 и 104, как иллюстрировано на Фиг.1B. Эти два CU могут совместно использовать один и тот же режим интра-предсказания или могут иметь разные режимы интра-предсказания. Соответственно, на этапе S201, могут быть идентифицированы один или два различных режимов интра-предсказания. На этапе S202, два «Наиболее Вероятных Режима» (MPM), выводятся из идентифицированных режимов интра-предсказания. Если режимы предсказания Верхнего и Левого CU 103 и 104 являются различными, то два режима MPM, а именно, MPM0 и MPM1, устанавливаются, соответственно, на минимальное и максимальное значение режимов предсказания Верхнего и Левого CU. Если режимы предсказания Верхнего и Левого CU 103 и 104 являются одинаковыми, и если они не соответствуют режиму плоского предсказания, то MPM0 устанавливается равным режиму плоского предсказания, а MPM1 устанавливается на режим предсказания для режима предсказания Верхнего или Левого CU. Если режимы предсказания как Верхнего, так и Левого CU 103 и 104 соответствуют режиму плоского предсказания, то MPM0 устанавливается как равный режиму плоского предсказания, а MPM1 устанавливается на режим DC. Таким образом, MPM0 и MPM1 упорядочиваются согласно их значениям режима предсказания, где режим предсказания, имеющий меньшее значение режима называется режимом MPM0, а режим предсказания, имеющий большее значение режима, называется режимом MPM1. На этапе S203, режим предсказания текущего элемента кодирования затем сравнивается с двумя режимами MPM. Если режим предсказания текущего элемента кодирования равен либо MPM0, либо MPM1, то на этапе S204 применяется первый процесс кодирования (процесс 1).
Этот первый процесс кодирования предполагает кодирование флага, сообщающего, что режим текущего блока равен одному из режимов MPM, а затем, кодирование индекса рассматриваемого MPM (0, в случае MPM0, 1, в случае MPM1).
Если на этапе S203 определено, что режим предсказания текущего блока не равен одному из двух режимов MPM, то на этапе S205, применяется второй процесс кодирования (процесс 2).
В отличие от первого процесса кодирования, второй процесс кодирования предполагает кодирование значения режима текущего блока.
Статистически, процесс 1 используется чаще, чем процесс 2. Статистически, режим предсказания чаще равен одному из его режимов MPM, чем отличается от всех режимов MPM. Механизм энтропийного кодирования пользуется этой особенностью либо посредством использования более коротких кодовых слов в процессе 1, чем в процессе 2, либо посредством применения более высокой вероятности того, чтобы быть равным одному из режимов MPM (арифметическое кодирование, используемое в CABAC, эффективно применяет вероятность для улучшения кодирования и сокращения затрат на кодирование). Настоящее изобретение было разработано для устранения одной или более предшествующих проблем и потребностей. Требуется улучшить эффективность кодирования способов кодирования информации о режимах предсказания.
Согласно первому аспекту изобретения, обеспечен способ кодирования информации о режимах, представляющей режим предсказания, связанный с текущим элементом кодирования посредством процесса кодирования в интра-режиме, способ кодирования значения режима, представляющего режим предсказания, связанный с текущим элементом кодирования, который должен быть закодирован, способ, содержащий этапы, на которых: выводят первое и второе опорные значения режима предсказания из соответствующих режимов предсказания, по меньшей мере, двух соседних элементов кодирования текущего элемента кодирования, причем первый и второй опорные режимы предсказания отличаются друг друга; и сравнивают значение режима предсказания, которое должно быть закодировано, с одним или более опорными значениями режимов предсказания; и выбирают, на основе сравнения, процесс кодирования, из числа, по меньшей мере, первого и второго процессов кодирования, для применения его к значению режима, которое должно быть закодировано; причем способ дополнительно содержит этап вывода третьего опорного значения режима предсказания из первого и второго опорных значений режима предсказания, причем третий опорный режим предсказания отличается от каждого из упомянутых первого и второго опорных значений режима предсказания; и упомянутое сравнение содержит сравнение значения режима предсказания, которое должно быть закодировано, по меньшей мере, с одним из первого, второго и третьего опорных значений режима предсказания.
Посредством вывода трех MPM, вместо двух для сравнения с режимом предсказания текущего блока кодирования, улучшается эффективность кодирования. Это происходит вследствие увеличения вероятности того, что режим предсказания текущего блока кодирования соответствует одному из выведенных наиболее вероятных режимов. Поскольку это обеспечивает более экономичный процесс кодирования, предназначенный для использования при кодировании режима предсказания текущего блока кодирования, итоговые затраты на кодирования сокращаются.
Согласно второму аспекту изобретения, обеспечено устройство для кодирования информации о режиме, представляющей режим предсказания, связанный с текущим элементом кодирования, устройство, содержащее: средство вывода для вывода первого и второго опорных значений режима предсказания из соответствующих режимов предсказания, по меньшей мере, двух соседних элементов кодирования текущего элемента кодирования, причем первый и второй опорные режимы предсказания отличаются друг от друга; и средство сравнения для сравнения значения режима предсказания, которое должно быть закодировано, с одним или более опорными значениями режима предсказания; и средство выбора для выбора, на основе сравнения, процесса кодирования, из числа, по меньшей мере, первого и второго процессов кодирования, для применения его к значению режима, которое должно быть закодировано; причем, средство вывода выполнено с возможностью вывода третьего опорного значения режима предсказания из первого и второго опорных значений режима предсказания, причем третий опорный режим предсказания отличается от каждого из упомянутых первого и второго опорных значений режима предсказания; и упомянутое средство сравнения выполнено с возможностью сравнения значения режима предсказания, которое должно быть закодировано, по меньшей мере, с одним из первого, второго и третьего опорных значений режима предсказания.
Согласно третьему аспекту изобретения, обеспечен способ декодирования значения режима, представляющего режим предсказания, связанный с текущим элементом декодирования, который должен быть декодирован, способ, содержащий этапы, на которых: выводят первое и второе опорные значения режима предсказания из соответствующих режимов предсказания, по меньшей мере, двух соседних элементов декодирования текущего элемента декодирования, причем первый и второй опорные режимы предсказания отличаются друг от друга; и сравнивают значение режима предсказания, которое должно быть декодировано, с одним или более опорными значениями режима предсказания; и выбирают, на основе сравнения, процесс декодирования, из числа, по меньшей мере, первого и второго процессов декодирования, для его применения к значению режима, которое должно быть декодировано; причем, способ дополнительно содержит этап вывода третьего опорного значения режима предсказания из первого и второго опорных значений режима предсказания, причем третий опорный режим предсказания отличается от каждого из упомянутых первого и второго опорных значений режима предсказания; и упомянутое сравнение содержит сравнение значения режима предсказания, которое должно быть декодировано, по меньшей мере, с одним из первого, второго и третьего опорных значений режима предсказания.
Согласно четвертому аспекту изобретения, обеспечено устройство для декодирования значения режима, представляющего режим предсказания, связанный с текущим элементом декодирования, который должен быть декодирован, устройство, содержащее: средство вывода для вывода первого и второго опорных значений режима предсказания из соответствующих режимов предсказания, по меньшей мере, двух соседних элементов декодирования текущего элемента декодирования, причем первый и второй опорные режимы предсказания отличаются друг от друга; и средство сравнения для сравнения значения режима предсказания, которое должно быть закодировано, с одним или более опорными значениями режима предсказания; и средство выбора для выбора, на основе сравнения, процесса декодирования, из числа, по меньшей мере, первого и второго процессов декодирования, для его применения к значению режима, которое должно быть декодировано; причем, средство вывода выполнено с возможностью вывода третьего опорного значения режима предсказания из первого и второго опорных значений режима предсказания, причем третий опорный режим предсказания отличается от каждого из упомянутых первого и второго опорных значений режима предсказания; и упомянутое средство сравнения выполнено с возможностью сравнения значения режима предсказания, которое должно быть декодировано, по меньшей мере, с одним из первого, второго и третьего опорных значений режима предсказания.
Согласно дополнительному аспекту изобретения, обеспечен способ вывода опорных значений режима предсказания для кодирования или декодирования режима предсказания, связанного с текущим элементом кодирования, способ, содержащий этапы, на которых: выводят первое и второе опорные значения режима предсказания из соответствующих режимов предсказания, по меньшей мере, двух соседних элементов кодирования текущего элемента кодирования, причем первый и второй опорные режимы предсказания отличаются друг от друга; и выводят третье опорное значение режима предсказания из первого и второго опорных значений режима предсказания, причем третий опорный режим предсказания отличается от каждого из упомянутых первого и второго опорных значений режима предсказания; причем первое, второе и третье опорные значения режима предсказания могут применяться для сравнения со значением режима предсказания, которое должно быть закодировано или декодировано.
В варианте осуществления, третье опорное значение режима предсказания установлено на значение режима, соответствующее режиму плоского предсказания, если ни одно из упомянутых первого и второго опорных значений режима предсказания не соответствует режиму плоского предсказания.
В варианте осуществления, если одно из первого и второго опорных значений режима предсказания соответствует режиму DC предсказания, а другое из первого и второго опорных значений режима предсказания соответствует режиму плоского предсказания, то дополнительное значение режима предсказания устанавливается на предварительно определенное значение режима предсказания.
В варианте осуществления, предварительно определенное значение режима предсказания сообщается в слайсе или в заголовке изображения.
В варианте осуществления, предварительно определенное значение режима предсказания имеет небольшое значение режима предсказания, такое, как например значение режима предсказания менее 5.
В варианте осуществления, предварительно определенное значение режима предсказания соответствует режиму горизонтального предсказания или режиму вертикального предсказания.
В варианте осуществления, предварительно определенное значение режима предсказания зависит от контента кодируемого изображения.
В варианте осуществления, предварительно определенное значение режима предсказания адаптивно выводится на основе вероятностей режима, характерных для вероятности возникновения соответствующих режимов предсказания, причем упомянутые вероятности режима регулярно вычисляются.
В варианте осуществления, если одно из первого и второго опорных значений режима предсказания соответствует режиму направленного предсказания, а другое из первого и второго опорных значений режима предсказания соответствует режиму плоского предсказания, то третье значение режима предсказания устанавливается на значение режима предсказания, соответствующее режиму предсказания, имеющему следующее угловое направление, превосходящее направление рассматриваемого опорного значения режима предсказания.
В варианте осуществления, по меньшей мере, два соседних элемента кодирования или декодирования содержат левый соседний элемент кодирования или декодирования и верхний соседний элемент кодирования или декодирования текущего элемента кодирования или декодирования.
В варианте осуществления, первый процесс кодирования или декодирования содержит кодирование или декодирование первой информации, указывающей предварительно определенную взаимосвязь между значением режима, которое должно быть закодировано или декодировано, и, по меньшей мере, одним из первого, второго и третьего опорных значений режима предсказания, а второй процесс кодирования или декодирования содержит кодирование или декодирование второй информации, представляющей значение режима, которое должно быть закодировано или декодировано.
В варианте осуществления, первый процесс кодирования или декодирования выбирается, если значение режима, которое должно быть закодировано или декодировано, равно, по меньшей мере, одному из трех опорных значений режима предсказания, а второй процесс кодирования или декодирования выбирается, если значение режима, которое должно быть закодировано или декодировано, отличается от каждого из трех опорных значений режима предсказания.
По меньшей мере, части способов согласно изобретению могут быть реализованы в программном обеспечении. Соответственно, настоящее изобретение может принимать форму варианта осуществления, состоящего полностью из аппаратных средств, варианта осуществления, состоящего полностью из программных средств (включая микропрограммное обеспечение, резидентные программные средства, набор микрокоманд и т.д.), или варианта осуществления, в котором скомбинированы аспекты программных средств и аппаратных средств, которые в совокупности, в целом, могут называться в настоящем документе «схемой», «модулем» или «системой». Кроме того, настоящее изобретение может принимать форму компьютерного программного продукта, реализованного в любой материальной среде представления, в которой имеется используемый компьютером программный код, реализованный в данной среде.
Поскольку настоящее изобретение может быть реализовано в программных средствах, настоящее изобретение может быть реализовано в виде компьютерно-читаемого кода для его предоставления в программируемое устройство на любом подходящем носителе данных. Материальный носитель данных может содержать такой носитель информации, как дискета, CD-ROM, жесткий диск, запоминающее устройство на магнитной ленте или твердотельное запоминающее устройство и т.п. Промежуточный носитель данных может включать в себя сигнал, такой, как электрический сигнал, электронный сигнал, оптический сигнал, акустический сигнал, магнитный сигнал или электромагнитный сигнал, например сверхвысокочастотный или RF сигнал.
Теперь будут описаны варианты осуществления изобретения, исключительно для примера и со ссылкой на следующие чертежи, на которых:
Фиг. 1A и 1B, обсуждаемые выше в настоящем документе, изображают схематические представления для использования при объяснении способа вывода блока интра-предсказания в текущей архитектуре стандарта HEVC;
Фиг. 2, также обсуждаемая выше, схематично иллюстрирует режимы интра-предсказания в текущей архитектуре стандарта HEVC,
Фиг. 3, также обсуждаемая выше, изображает схему последовательности операций для использования при объяснении кодирования в интра-режиме в текущей архитектуре стандарта HEVC;
Фиг. 4 изображает схему последовательности операций для использования при объяснении принципа кодирования в интра-режиме согласно, по меньшей мере, одному варианту осуществления настоящего изобретения;
Фиг. 5 изображает схему последовательности этапов способа вывода опорных значений режима предсказания согласно варианту осуществления настоящего изобретения;
Фиг. 6 изображает схему последовательности операций, иллюстрирующую этапы, связанные со способом на Фиг. 5;
Фиг. 7 изображает последовательность изображений;
Фиг. 8 изображает части устройства, подходящего для реализации кодера согласно варианту осуществления настоящего изобретения;
Фиг. 9 изображает блок-схему частей кодера согласно, по меньшей мере, одному варианту осуществления настоящего изобретения; и
Фиг. 10 иллюстрирует блок-схему частей декодера.
ПОДРОБНОЕ ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
Фиг. 4 изображает схему последовательности операций для использования при объяснении принципа способа кодирования в интра-режиме, реализующего настоящее изобретение. Способ кодирования в интра-режиме согласно данной схеме последовательности операций может применяться для любого механизма энтропийного кодирования такого, как CABAC или CAVLC.
На Фиг. 4 этапы S401 и S402 являются аналогичными этапам S201 и S202, соответственно, на Фиг. 3, и описание этих этапов в данной части описания не повторяется.
На этапе S403, третий наиболее вероятный режим (MPM2) выводится из первого и второго наиболее вероятных режимов MPM0 и MPM1, выведенных из режимов предсказания соседнего верхнего и левого CU на этапе S402.
Фиг. 5 изображает схему последовательности операций, более подробно иллюстрирующую этапы для вывода третьего наиболее вероятного режима MPM2 согласно первому варианту осуществления изобретения. На этапе S501, идентифицируются значения первого и второго наиболее вероятных режимов MPM0 и MPM1, выведенных на этапе S402. На этапе S502, выполняется проверка относительно того, соответствует ли одно из значений наиболее вероятных режимов MPM0 и MPM1 режиму плоского предсказания. Этот этап может предполагать проверку обоих наиболее вероятных значений режима для проверки, соответствуют ли они режиму плоского предсказания. В альтернативном варианте осуществления изобретения, когда значения наиболее вероятных режимов MPM0 и MPM1 были упорядочены согласно их значениям режимов предсказания, может быть необходима лишь проверка того, соответствует ли режим MPM0 режиму плоского предсказания, поскольку режим MPM0 будет соответствовать режиму предсказания низшего порядка. Если ни MPM0, ни MPM1 не соответствуют режиму плоского предсказания, то на этапе S506, дополнительный наиболее вероятный режим MPM2 устанавливается на значение режима, соответствующее режиму плоского предсказания. Поскольку плоский режим является статистически наиболее часто используемым режимом предсказания, является полезным вставлять его в набор режимов MPM для более позднего этапа сравнения, поскольку он имеет наибольшую вероятность соответствия режиму предсказания текущего блока.
Однако, если на этапе S502 определено, что один из первого и второго режимов MPM, а именно, режим MPM0 или режим MPM1, соответствует режиму плоского предсказания, то тогда на этапе S503 выполняется проверка, соответствует ли другой режим MPM0 или режим MPM1 режиму DC предсказания. Если определено, что один из первого и второго MPM, а именно, MPM0 или MPM1, соответствует режиму плоского предсказания, а другой из первого и второго MPM, а именно, MPM0 и MPM1, соответствует режиму DC предсказания, то третий MPM, а именно, MPM2, устанавливается на предварительно определенное значение режима.
На практике, режимы предсказания, имеющие малое значение режима предсказания, используются в связи с тем, что имеется наибольшая вероятность того, что они будут соответствовать режиму предсказания текущего блока. В примере, иллюстрированном на Фиг. 5, MPM2 установлен на значение 2 режима предсказания, соответствующее режиму вертикального предсказания.
Можно отметить, что также могло быть выбрано значение 2 режима предсказания, соответствующее предсказанию горизонтального направления, но вертикальное направление статистически чаще присутствует в естественных изображениях, чем горизонтальные структуры и значит, более вероятно будет соответствовать режиму предсказания текущего блока.
В некоторых вариантах осуществления изобретения, предварительно определенный режим предсказания может быть сообщен в слайсе или в заголовке изображения, поскольку он может зависеть от информационного содержания изображения, например, в зависимости от статистики распределения режимов в изображении.
В другом варианте осуществления изобретения, предварительно определенный режим предсказания может быть адаптивно выведен на основе вероятностей режима, характерных вероятности возникновения соответствующих режимов предсказания, которые регулярно вычисляются. В этом случае образовываются вероятностные таблицы. Каждый раз, когда выполняется кодирование режима, его вероятность обновляется. Если MPM0 и MPM1 являются плоским и DC, то MPM2 вычисляется в качестве режима, отличающегося от плоского и DC, который имеет самое высокое значение вероятности. Следовательно, MPM2, в этом конкретном случае плоского и DC режимов в качестве двух первых MPM, адаптивно вычисляется в зависимости от контента изображения.
Однако если на этапе S503 определено, что ни один из первого MPM, а именно, MPM0, и второго MPM, а именно, MPM1, не соответствует режиму DC предсказания и что, следовательно, один из первого и второго MPM, а именно, MPM0 или MPM1 соответствуют режиму MPM_dir направленного предсказания, то третий MPM, а именно, MPM2, устанавливается на режим направленного предсказания с ближайшим разрешенным превосходящим угловым направлением к направлению режима MPM_dir на этапе S505. Со ссылкой на Фиг. 6 этот процесс иллюстрирован более подробно. На этапе S601, идентифицируется режим предсказания соседних элементов кодирования, который не является плоским режимом. На этапе S602, определяется, является ли идентифицированный режим предсказания режимом DC. Если да, то режим MPM2 устанавливается на режим вертикального предсказания, а иначе, если идентифицированный режим предсказания не является режимом DC, на этапе S604, MPM2, устанавливается на ближайшее разрешенное превосходящее угловое направление к направлению (MPM_dir) режима m.
Например, если режим MPM_dir равен 13, то, со ссылкой на Фиг. 2, MPM2 устанавливается на 24, если текущий элемент кодирования имеет размеры от 8×8 до 32×32, или 6, если текущий элемент кодирования имеет размеры 4×4 (в текущей архитектуре стандарта HEVC, в CU размерами 4×4, режимы, имеющие значение выше 17, являются недопустимыми). Использование самого близкого превосходящего углового направления экспериментально показало себя наиболее эффективным решением.
Будет понятно, что в некоторых вариантах осуществления изобретения порядок наиболее вероятных режимов предсказания MPM0 и MPM1 могут быть упорядочен согласно их значениям предсказаний, перед выводом третьего наиболее вероятного режима предсказания MPM2. В альтернативных вариантах осуществления изобретения, этап S402 может не включать в себя процесс изменения порядка MPM0 и MPM1 согласно их значению режима предсказания, а затем MPM0, MPM1 и MPM2 могут быть упорядочены согласно их значению режима предсказания после вывода MPM2.
Возвращаясь к Фиг. 4, на этапе S404 проверяется, равен ли режим предсказания, связанный с текущим блоком кодирования, первому MPM, а именно, MPM0, второму MPM, а именно, MPM1 или третьему MPM, а именно, MPM2, выведенным на этапах S402 и S403, для определения того, будет ли применяться кодирование из Процесса 1 или кодирование из Процесса 2 для кодирования значения режима предсказания текущего блока кодирования. Процесс 1, который выполняется, если режим текущего блока равен одному из трех MPM, а именно, MPM0, MPM1 или MPM2, реализован на этапе S405. В некоторых вариантах осуществления настоящего изобретения, этап S405 может быть аналогичным этапу S204 на Фиг. 3, и в данной части описания подробно описан не будет.
Процесс 2, который выполняется, если режим текущего блока отличается от каждого из первого MPM, а именно, MPM0, второго MPM, а именно, MPM1, и третьего MPM, а именно, MPM2, реализован на этапе S406. Этап S406 является аналогичным соответствующему этапу S205 на Фиг. 3, и в данной части описания подробно описан не будет.
Использование трех MPM вместо двух для сравнения с режимом предсказания текущего блока кодирования улучшает эффективность кодирования, поскольку вероятность того, что режим предсказания текущего блока кодирования соответствует одному из выведенных наиболее вероятных режимов, повышается. Это, в свою очередь, повышает вероятность того, что более экономичный процесс кодирования 1, для которого требуется меньшее количество битов для сообщения режима предсказания текущего блока кодирования, будет использован для кодирования режима предсказания текущего блока кодирования. Следовательно, итоговые затраты на кодирование сокращаются. В то же время, сложность итогового процесса чрезмерно не увеличивается посредством вывода большого количества MPM.
Фиг. 7 иллюстрирует структуру 100 кодирования изображения, используемую в стандарте HEVC. Согласно стандарту HEVC и одной из его предыдущих версий, исходная последовательность 1001 видеоданных является последовательностью цифровых изображений «изображений i». Как известно, по существу, цифровое изображение представлено посредством одной или более матриц, коэффициенты которой представляют пикселы.
Изображения 1002 разделены на слайсы 1003. Слайс является участком изображения или всем изображением. В стандарте HEVC, эти слайсы разделены на неперекрывающиеся на Наибольшие Элементы 1004 Кодирования (LCU), как правило, на блоки, размерами 64×64 пикселов. Каждый LCU, в свою очередь, может быть многократно разделен на Элементы 1005 Кодирования (CU) меньшего переменного размера, с использованием разбиения посредством дерева квадрантов. Каждый CU может быть дополнительно разделен в максимум из 2-х симметричных прямоугольных Разделенных Элементов 1006.
Фиг. 8 иллюстрирует схему устройства 1000, выполненного с возможностью реализации кодера согласно варианту осуществления настоящего изобретения или реализации декодера. Устройство 1000 является, например, микрокомпьютером, автоматизированным рабочим местом или небольшим переносным устройством.
Устройство 1000 содержит шину 1113 связи, к которой предпочтительно присоединены:
- центральный процессор 1111, такой, как микропроцессор, обозначенный как CPU;
- постоянное запоминающее устройство (ROM) 1107, в котором хранится одна или более компьютерных программ для реализации изобретения;
- оперативное запоминающее устройство (RAM) 1112, в котором хранится исполняемый код, соответствующий способу из изобретения, и обеспечивает регистры, выполненные с возможностью записи переменных и параметров, необходимых для реализации способа кодирования последовательности цифровых изображений и/или способа декодирования битового потока; и
- интерфейс 1102 связи, соединенный с сетью 1103 связи, через которую передаются цифровые данные, которые должны быть обработаны.
В некоторых случаях, в устройстве 1000 также могут иметься следующие компоненты:
- средство 1104 хранения данных, такое, как жесткий диск, способный к содержанию в себе программ, реализующих изобретение, и данные, используемые или произведенные во время выполнения варианта реализации изобретения;
- дисковод 1105 для диска 1106, где дисковод выполнен с возможностью считывания данных с диска 1106 или записи данных на упомянутый диск;
- экран 1109 для отображения данных и/или служащий в качестве графического интерфейса с пользователем, посредством клавиатуры 1110 или любого другого координатно-указательного средства.
Устройство 1000 может быть соединено с различным периферийным оборудованием, таким, как например цифровая камера 1100 или микрофон 1108, каждый из которых соединен с платой ввода-вывода (не изображена) таким образом, чтобы доставлять мультимедийные данные в устройство 1000.
Шина связи обеспечивает связь и функциональную совместимость между различными элементами, включенными в состав устройства 1000 или соединенными с ним. Модель шины не является ограничивающей, и, в частности, центральный процессор способен к передаче команд в любой элемент устройства 1000 непосредственно, или посредством другого элемента устройства 1000.
Диск 1106 может быть заменен посредством любого носителя данных, такого, как например компакт-диск (CD-ROM), перезаписываемый или нет, ZIP-диск или карта памяти и, в общих чертах, посредством средства хранения информации, которое может быть считано посредством микрокомпьютера или посредством микропроцессора, встроенного или не встроенного в устройство, возможно съемное, и выполненное с возможностью хранения одной или более программ, выполнение которых обеспечивает возможность реализации способа кодирования последовательности цифровых изображений и/или способа декодирования битового потока согласно изобретению.
Исполняемый код может быть сохранен либо в постоянном запоминающем устройстве 1107, на жестком диске 1104, либо на съемном цифровом носителе, таком, как например диск 1106, как было описано ранее. В соответствии с вариантом, исполняемый код из программ может быть принят посредством сети 1103 связи, через интерфейс 1102, для его сохранения в одном из средств хранения данных устройства 1000, перед его выполнением, таком, как жесткий диск 1104.
Центральный процессор 1111 выполнен с возможностью управления и контроля выполнения команд или частей программного кода программы или программ согласно изобретению, то есть команд, которые хранятся в одном из упомянутых средств хранения данных. При включении, программа или программы, которые хранятся в энергонезависимой памяти, например на жестком диске 1104 или в постоянном запоминающем устройстве 1107, передаются в оперативное запоминающее устройство 1112, которое тогда вмещает исполняемый код программы или программ, а также регистры для хранения переменных и параметров, необходимых для реализации изобретения.
В этом варианте осуществления, устройство является программируемым устройством, в котором используются программные средства для реализации изобретения. Однако, альтернативно, настоящее изобретение может быть реализовано в аппаратных средствах (например, в виде специализированной интегральной микросхемы или микросхемы ASIC).
Фиг. 9 иллюстрирует блок-схему кодера 1200 согласно варианту осуществления изобретения. Кодер представлен посредством соединенных модулей, где каждый модуль выполнен с возможностью реализации, например, в форме программируемых команд, которые должны быть выполнены посредством центрального процессора 1111 устройства 1000, причем соответствующий этап способа реализует вариант осуществления изобретения.
0
n
Исходная последовательность цифровых изображений с i по i 1001 принимается в качестве входных данных посредством кодера 1200. Каждое цифровое изображение представляется посредством ряда дискретных элементов, известных как пикселы.
Битовый поток 1210 выводится посредством кодера 1200.
Отметим, что в следующем описании мы иногда используем термин «блок» вместо таких конкретных терминов, как CU и PU, используемых в стандарте HEVC. CU или PU является блоком пикселов.
Входные цифровые изображения i подразделяются на блоки посредством модуля 1202. Эти блоки являются частями изображения и могут иметь переменные размеры (например 4×4, 8×8, 16×16, 32×32, 64×64).
В процессе сжатия видеоданных, каждый блок обрабатываемого изображения подвергается пространственному предсказанию посредством модуля 1203 интра-предиктора, или временному предсказанию посредством модуля интер-предиктора, содержащего модуль 1204 оценки движения и модуль 1205 компенсации движения. Каждый предиктор является блоком пикселов, происходящих из того же самого изображения или другого изображения, из которого выводится разностный блок (или «остаток»). На основании идентификации блока предиктора и кодирования остатка, возможно сократить количество информации, которое фактически должно быть закодировано.
Закодированные кадры имеют два типа: временные предсказанные кадры (либо предсказанные из одного опорного кадра, называемые P-кадрами, либо предсказанные из двух опорных кадров, называемых B-кадрами) и не временные предсказанные кадры (называемые интра-кадрами или I-кадрами). В I-кадрах предполагается использование исключительно интра-предсказания для кодирования CU/PU. В P-кадрах и B-кадрах, предполагается использование как интра-, так и интер-предсказания для кодирования CU/PU.
В модуле 1203 интра-предсказания, текущий блок предсказывается посредством интра-предиктора, то есть, блока пикселов, состоящего из уже закодированной информации текущего изображения.
Что касается интер-кодирования, возможны два типа предсказания. Одиночное предсказание (тип P) состоит из предсказания блока посредством ссылки на один опорный блок из одного опорного изображения. Двойное предсказание (тип B) состоит из предсказания блока посредством ссылки на два опорных блока из одного или двух опорных изображений. Оценка движения выполняется посредством модуля 1204 между текущим CU или PU и опорными изображениями 1216. Эта оценка движения выполняется для идентификации, в одном или нескольких из этих опорных изображений, одного (P-тип) или нескольких (B-тип) блоков пикселов, для их использования в качестве предикторов этого текущего блока. В случае, если используется несколько предикторов блока (Btype), то они объединяются для генерирования всего одного блока предсказания. Используемые опорные изображения состоят из изображений в последовательности видеоданных, которые уже были закодированы, а затем восстановлены (посредством декодирования).
В целом, оценка движения выполняемая посредством модуля 1204 является алгоритмом поблочного сравнения (BMA).
Предиктор, полученный посредством алгоритма, затем вычитается из текущего блока данных, который должен быть обработан, для того, чтобы получить разностный блок (остаток блока). Эта обработка называется «компенсацией движения» и выполняется посредством модуля 1205.
Таким образом, эти два типа кодирования доставляют несколько остатков текстур (разность между текущим блоком и блоком предиктора), которые сравниваются в модуле 1206 для выбора лучшего режима кодирования.
Если выбрано интра-кодирование, то единица информации, предназначенная для описания используемого интра-предиктора, кодируется посредством модуля 1209 энтропийного кодирования перед его вставкой в битовый поток 1210. Варианты осуществления настоящего изобретения, описанные выше со ссылкой на Фиг. 4-6, применимы к модулю 1209 энтропийного кодирования из Фиг. 9.
Если модуль 1206 для выбора наилучшего режима кодирования выбирает интер-кодирование, то информация о движении кодируется посредством модуля 1209 энтропийного кодирования и вставляется в битовый поток 1210. Эта информация о движении, как правило, состоит из одного или нескольких векторов движения (указывающего положение блока предиктора в опорных изображениях относительно положения блока, который должен быть предсказан), и индекса изображения среди опорных изображений.
Остаток, полученный в соответствии с режимом кодирования, выбранным посредством модуля 1206, затем преобразуется посредством модуля 1207. Преобразование применяется к Элементу Преобразования (TU), который включен в состав CU. TU может быть дополнительно разбит на меньшие TU 1006 с использованием, так называемого, разбиения посредством Остаточного Дерева Квадрантов (RQT). В стандарте HEVC используется, как правило, 2 или 3 уровня разбиения и разрешенные размеры преобразования в пределах от 32×32, 16×16, 8×8 и 4×4. Исходные данные для трансформирования выводятся из дискретного косинусного преобразования DCT.
Затем, остаточные преобразованные коэффициенты квантуются посредством модуля 1208 квантования. Затем, коэффициенты квантованного преобразованного остатка кодируются посредством модуля 1209 энтропийного кодирования, а затем вставляются в сжатый битовый поток 1210.
Для вычисления интра-предикторов или оценки движения для интер-предикторов, кодер выполняет декодирование блоков, уже закодированных посредством так называемого цикла 1211-1215 «декодирования». Этот цикл декодирования позволяет восстанавливать блоки и изображения из квантованных преобразованных остатков.
Квантованные преобразованные остатки подвергаются деквантованию в модуле 1211 посредством применения квантования, обратного квантованию, предоставленному посредством модуля 1208, и восстанавливается в модуле 1212 посредством применения преобразования, обратного преобразованию модуля 1207.
Если остаток образуется в результате интра-кодирования, то в модуле 1213, используемый интра-предиктор добавляется к этому остатку для возвращения восстановленного блока, соответствующего исходному блоку, измененному посредством потерь, полученного в результате преобразования с потерями, и здесь операции квантования завершаются.
Если остаток, с другой стороны, образуется в результате интер-кодирования, то блоки, указанные посредством текущих векторов движения (эти блоки принадлежат опорным изображениям 1216, на которые выполняются ссылки посредством текущих индексов изображения), соединяются, затем добавляются к этому декодированному остатку в модуле 1214. Таким образом, получается исходный блок, измененный посредством потерь, полученных в результате операций квантования.
Последний контурный фильтр 1215 применяется к восстановленному сигналу для сокращения эффектов, созданных посредством сильного квантования полученных остатков, и для улучшения качества сигнала. Контурный фильтр содержит две ступени, фильтр «для удаления блочности» и линейную фильтрацию. Фильтрация для удаления блочности сглаживает границы между блоками для визуального уменьшения этих высоких частот, созданных посредством кодирования. Линейная фильтрация дополнительно улучшает сигнал с использованием коэффициентов фильтрации, адаптивно определяемых в кодере. Таким образом, фильтрация посредством модуля 1215 применяется к изображению, если все блоки пикселов этого изображения были декодированы.
Затем, профильтрованные изображения, также называемые восстановленными изображениями, сохраняются в качестве опорного изображения 1216 для обеспечения возможности возникновения последующего интер-предсказания во время сжатия следующих изображений текущей последовательности видеоданных.
Применительно к стандарту HEVC, возможно использовать несколько опорных изображений 1216 для оценки и компенсации движения текущего изображения. Другими словами, оценка движения выполняется на N изображениях. Следовательно, лучшие интер-предикторы текущего блока, предназначенные для компенсации движения, выбираются в некоторых из множества опорных изображений. Следовательно, два смежных блока могут иметь два блока предиктора, которые образуются из двух различных опорных изображений. Это является особенно значительной причиной того, почему в сжатом битовом потоке указывается индекс опорного изображения (в дополнение к вектору движения), используемый для блока предиктора.
Использование нескольких опорных изображений является одновременно инструментом для обеспечения устойчивости к ошибкам и инструментом для улучшения эффективности сжатия. Группа VCEG рекомендует ограничивать количество опорных изображений до четырех.
Фиг. 10 иллюстрирует блок-схему декодера 1300 согласно варианту осуществления изобретения. Декодер представлен посредством соединенных модулей, причем каждый модуль выполнен с возможностью реализации, например, в форме программируемых команд, которые должны быть выполнены посредством центрального процессора 1111 устройства 1000, соответствующего этапа способа, реализующего вариант осуществления изобретения.
Декодер 1300 принимает в качестве входных данных битовый поток 1301, соответствующих последовательности 1210 видеоданных, сжатых посредством кодера типа HEVC, такого, как изображенный на Фиг. 9.
Во время процесса декодирования, битовый поток 1301 сначала подвергается энтропийному кодированию посредством модуля 1302.
Затем, остаток текущего блока подвергается деквантованию посредством модуля 1303 деквантования. Он обращает квантование, выполненное посредством модуля 1208 квантования в кодере 1200. Затем, данные, подвергнутые деквантованию, восстанавливаются посредством модуля 1304 обратного преобразования, который выполняет преобразование, обратное преобразованию, выполненному посредством модуля 1207 преобразования в кодере 1200.
Затем, декодирование данных в последовательности видеоданных выполняется изображение за изображением, и, в пределах изображения, блок за блоком.
Режим интер- или интра-кодирования для текущего блока выводится из битового потока 1301 и подвергается энтропийному декодированию.
Если кодирование текущего блока имеет «интра» тип, то номер предиктора выводится из битового потока и подвергается энтропийному декодированию. Блок интра-предиктора, связанный с этим индексом, восстанавливается из уже декодированных данных текущего изображения.
Остаток, связанный с текущим блоком, восстанавливается из битового потока 1301, а затем подвергается энтропийному декодированию. И наконец, восстановленный блок интра-предиктора добавляется к остатку, подвергнутому, таким образом, деквантованию, и восстановленному в модуле 1305 обратного интра-предсказания для получения декодированного блока.
Если режим кодирования текущего блока указывает, что этот блок «интер» типа, то информация о движении выводится из битового потока 1301 посредством модуля 1302 энтропийного декодирования и декодируется.
Эта информация о движении используется в модуле 206 обратной компенсации движения для определения блока интер-предиктора, содержащегося в опорных изображениях 1308 декодера 1300. Способом, подобным используемому для кодера, эти опорные изображения 1308 составляются из изображений, которые предшествуют изображению, декодируемому в настоящее время, и оно восстанавливается из битового потока (и, следовательно, декодируется раньше).
Остаток, связанный с текущим блоком, здесь также восстанавливается из битового потока 1301, а затем подвергается энтропийному декодированию посредством модуля 1302. Затем, блок интер-предиктора добавляется к подвергнутому таким образом деквантованию остатку, восстановленному в модуле 1306 обратной компенсации движения для получения декодированного блока.
В конце декодирования всех блоков текущего изображения, тот же самый контурный фильтр 1307, что и фильтр 1215, предоставленный в кодере, используется для устранения эффектов наличия блоков и улучшения качества сигнала для получения опорного изображения 1308.
Декодированные таким образом изображения составляют выходной сигнал 1309 видеоданных из декодера, который может быть затем отображен и использован.
Варианты осуществления, описанные выше в настоящем документе, основаны на разделении блоков входных изображений, но в более общем смысле, может рассматриваться любой тип частей изображения 5, предназначенных для кодирования или декодирования, в частности, прямоугольные части или, в более общем смысле, части, имеющие формы геометрических фигур.
В более общем смысле, несмотря на то, что настоящее изобретение было описано выше со ссылкой на конкретные варианты осуществления, настоящее изобретение не ограничено конкретными вариантами осуществления, и для квалифицированного специалиста в данной области техники будут очевидны модификации, которые находятся в пределах объема настоящего изобретения.
Для любого сведущего в данной области техники будет напрашиваться большое количество дополнительных модификаций и изменений после выполнения ссылки на предшествующие иллюстративные варианты осуществления, которые предоставлены исключительно для примера и которые не предназначены для ограничения объема изобретения, который определяется исключительно посредством приложенной формулы изобретения. В частности, различные отличительные признаки из различных вариантов осуществления, при необходимости, могут чередоваться.
В формуле изобретения, слово «содержащий» не исключает наличие других элементов или этапов, а признак единственного числа не исключает наличия множества. Тот простой факт, что различные отличительные признаки перечислены во взаимно различных зависимых пунктах формулы изобретения, не указывает, что комбинация этих отличительных признаков не может быть успешно использована.