СПОСОБ КОДИРОВАНИЯ ВИДЕО И УСТРОЙСТВО КОДИРОВАНИЯ ВИДЕО И СПОСОБ ДЕКОДИРОВАНИЯ ВИДЕО И УСТРОЙСТВО ДЕКОДИРОВАНИЯ ВИДЕО ДЛЯ СИГНАЛИЗАЦИИ ПАРАМЕТРОВ SAO
VIDEO ENCODING METHOD AND VIDEO ENCODING DEVICE, VIDEO DECODING METHOD AND VIDEO DECODING DEVICE FOR SIGNALLING SAO PARAMETERS

Область техники
Настоящее раскрытие относится к способу корректировки восстановленных пиксельных значений посредством сдвигов, определенных адаптивно для выборок, чтобы минимизировать ошибку между исходным изображением и восстановленным изображением в операциях кодирования и декодирования видео.
Предшествующий уровень техники
По мере того как разрабатываются и поставляются аппаратные средства для воспроизведения и хранения видео контента высокого разрешения или высокого качества, возрастает потребность в видео кодеке для эффективного кодирования или декодирования видео контента высокого разрешения или высокого качества. В соответствии с обычным видео кодеком, видео кодируется согласно ограниченному способу кодирования, основанному на макроблоке, имеющем предопределенный размер.
Данные изображения пространственной области преобразуются в коэффициенты частотной области через частотное преобразование. Согласно видео кодеку, изображение расщепляется на блоки, имеющие предопределенный размер, дискретное косинусное преобразование (DCT) выполняется на каждом блоке, и частотные коэффициенты кодируются в блочных единицах для быстрого вычисления частотного преобразования. По сравнению с данными изображения пространственной области, коэффициенты частотной области легко сжимаются. В частности, поскольку пиксельное значение изображения пространственной области выражается в соответствии с ошибкой предсказания посредством межкадрового (интер-) предсказания или внутрикадрового (интра-) предсказания видео кодека, когда частотное преобразование выполняется на ошибке предсказания, большой объем данных может быть преобразован в 0. В соответствии с видео кодеком, объем данных может быть уменьшен путем замены данных, которые последовательно и повторно генерируются, данными малого размера.
Раскрытие изобретения
Техническая задача
Настоящее раскрытие относится к сигнализации параметров адаптивного к выборке сдвига (SAO), определяемых, чтобы минимизировать ошибку между исходным изображением и восстановленным изображением в операциях кодирования и декодирования видео.
Техническое решение
Согласно аспектами настоящего раскрытие, предложен способ декодирования адаптивного к выборке сдвига (SAO), включающий в себя получение контекстно-кодированной информации о слиянии влево SAO и контекстно-кодированной информации о слиянии вверх SAO из битового потока наибольшей единицы кодирования (LCU); получение информации о включении/выключении SAO, контекстно-кодированной относительно каждого цветового компонента, из битового потока; если информация о включении/выключении SAO указывает на выполнение операции SAO, получение информации об абсолютном значении сдвига для каждой категории SAO, кодированной обходом относительно каждого цветового компонента, из битового потока; и получение одной из информации о положении полосы и информации о классе края, кодированной обходом относительно каждого цветового компонента, из битового потока.
Полезные эффекты
В способах кодирования и декодирования параметров адаптивного к выборке сдвига (SAO), согласно различным вариантам осуществления настоящего раскрытия, поскольку контекстное кодирование и контекстное декодирование выполняются только на информации о слиянии SAO и информации о включении/выключении SAO из числа параметров SAO, и кодирование обхода и декодирование обхода выполняются на остающемся битовом потоке, общий объем вычислений для декодирования параметров SAO может быть уменьшен.
Также, из числа параметров SAO, поскольку некоторые параметры определяются по-разному относительно каждого цветового компонента, и некоторые параметры устанавливаются, чтобы быть теми же самыми по отношению к первому и второму компонентам цветности или по отношению к яркости, и первому и второму компонентам цветности, полная битовая длина параметров SAO может быть уменьшена, и объем данных, подлежащий синтаксическому анализу, также может быть уменьшен.
Кроме того, поскольку количество раз переключений операций контекстного кодирования и декодирования и операций кодирования и декодирования обходом уменьшается, эффективность операций энтропийного кодирования и декодирования в целом на параметрах SAO может быть повышена.
Краткое описание чертежей
Фиг. 1A и 1B - блок-схема устройства кодирования адаптивного к выборке сдвига (SAO) и блок-схема последовательности операций способа кодирования SAO согласно вариантам осуществления настоящего раскрытия;
Фиг. 2A и 2B - блок-схема устройства декодирования SAO и блок-схема последовательности операций способа декодирования SAO согласно вариантам осуществления настоящего раскрытия;
Фиг. 3 - блок-схема устройства декодирования видео согласно вариантам осуществления настоящего раскрытия;
Фиг. 4 - таблица, показывающая классы края типов края, согласно вариантам осуществления настоящего раскрытия;
Фиг. 5A и 5B - таблица и график, показывающие категории типов края, согласно вариантам осуществления настоящего раскрытия;
Фиг. 6A - диаграмма, показывающая смежные наибольшие единицы кодирования (LCU), ссылающиеся на параметры слияния SAO, с текущей LCU, согласно вариантам осуществления настоящего раскрытия;
Фиг. 6B – диаграмма, показывающая процесс выполнения энтропийного кодирования на параметрах SAO, согласно другому варианту осуществления настоящего раскрытия;
Фиг. 7A показывает синтаксис SAO единицы кодирования согласно вариантам осуществления настоящего раскрытия;
Фиг. 7B и 7C показывают SAO синтаксис единицы кодирования согласно другим вариантам осуществления настоящего раскрытия;
Фиг. 8 - блок-схема устройства кодирования видео, основанного на единицах кодирования, имеющих древовидную структуру, согласно вариантам осуществления настоящего раскрытия;
Фиг. 9 - блок-схема устройства декодирования видео, основанного на единицах кодирования, имеющих древовидную структуру, согласно вариантам осуществления настоящего раскрытия;
Фиг. 10 - диаграмма для описания понятия единиц кодирования согласно вариантам осуществления настоящего раскрытия;
Фиг. 11 - блок-схема кодера изображения, основанного на единицах кодирования, согласно вариантам осуществления настоящего раскрытия;
Фиг. 12 - блок-схема декодера изображения, основанного на единицах кодирования, согласно вариантам осуществления настоящего раскрытия;
Фиг. 13 - диаграмма, иллюстрирующая более глубокие единицы кодирования согласно глубинам и разделы согласно вариантам осуществления настоящего раскрытия;
Фиг. 14 - диаграмма для описания соотношения между единицей кодирования и единицами преобразования согласно вариантам осуществления настоящего раскрытия;
Фиг. 15 - диаграмма для описания информации о кодировании единиц кодирования, соответствующих кодированной глубине, согласно вариантам осуществления настоящего раскрытия;
Фиг. 16 - диаграмма более глубоких единиц кодирования соответственно глубинам согласно вариантам осуществления настоящего раскрытия;
Фиг. 17-19 - диаграммы для описания соотношения между единицами кодирования, единицами предсказания и единицами преобразования согласно вариантам осуществления настоящего раскрытия;
Фиг. 20 - диаграмма для описания соотношения между единицей кодирования, единицей предсказания и единицей преобразования, согласно информации о режиме кодирования Таблицы 1;
Фиг. 21 - диаграмма физической структуры диска, в котором сохранена программа, согласно вариантам осуществления настоящего раскрытия;
Фиг. 22 – схема дисковода для записи и считывания программы с использованием диска;
Фиг. 23 - схема полной структуры системы поставки контента для предоставления службы распределения контента;
Фиг. 24 и 25 - схемы соответственно внешней структуры и внутренней структуры мобильного телефона, в котором применяются способ кодирования видео и способ декодирования видео согласно вариантам осуществления настоящего раскрытия;
Фиг. 26 – схема системы цифрового вещания, в которой применяется система связи согласно вариантам осуществления настоящего раскрытия; и
Фиг. 27 - схема, иллюстрирующая сетевую структуру облачной вычислительной системы, использующей устройство кодирования видео и устройство декодирования видео, согласно вариантам осуществления настоящего раскрытия.
Лучший режим выполнения изобретения
Согласно аспектам настоящего раскрытия, обеспечен способ декодирования адаптивного к выборке сдвига (SAO), включающий в себя получение контекстно-кодированной информации о слиянии влево SAO и контекстно-кодированной информации о слиянии вверх SAO из битового потока наибольшей единицы кодирования (LCU); получение информации о включении/выключении SAO, контекстно-кодированной относительно каждого цветового компонента, из битового потока; если информация о включении/выключении SAO указывает на выполнение операции SAO, получение информации об абсолютном значении сдвига для каждой категории SAO, кодированной обходом относительно каждого цветового компонента, из битового потока; и получение одной из информации о положении полосы и информации о классе края, кодированной обходом относительно каждого цветового компонента, из битового потока.
Получение информации о включении/выключении SAO может включать в себя, если информация о включении/выключении SAO указывает на выполнение операции SAO, дополнительно получение информации идентификации краевой полосы, закодированной в режиме обхода относительно каждого цветового компонента, из битового потока, и контекстное декодирование может выполняться на информации о включении/выключении SAO в первом структурном элементе (бине) информации о типе SAO LCU, и декодирование обхода может выполняться на остальных битах информации о типе SAO иной, чем информация о включении/выключении SAO.
Получение информации о положении полосы или информации о классе края может включать в себя, если полученная информация идентификации краевой полосы указывает тип полосы, получение информации о положении полосы, закодированной обходом относительно каждого цветового компонента, из битового потока, получение информации о положении полосы может включать в себя, если информация об абсолютном значении сдвига, полученная для каждой категории SAO, не равна 0, получение информации о положении полосы и информации о знаке сдвига, закодированной обходом относительно каждого цветового компонента, из битового потока, и информация о положении полосы может быть, наконец, получена из параметров SAO LCU.
Получение информации о положении полосы или информации о классе края может включать в себя, если полученная информация идентификации краевой полосы указывает тип края, получение информации о классе края, закодированной обходом относительно каждого цветового компонента, из битового потока, и информация о классе края может включать в себя информацию о классе края для компонента яркости и информацию о классе края для первого компонента цветности, и информация о классе края для первого компонента цветности может быть одинаково применима ко второму компоненту цветности.
Информация о включении/выключении SAO и информация идентификации краевой полосы для первого компонента цветности может быть одинаково применима ко второму компоненту цветности, и информация слияния влево SAO и информация слияния вверх SAO может обычно применяться к компоненту яркости и первому и второму компонентам цветности LCU.
Получение информации о слиянии влево SAO и информации о слиянии вверх SAO может включать в себя определение основанной на контексте модели вероятности информации о слиянии влево SAO, выполнение энтропийного декодирования с использованием определенной модели вероятности информации о слиянии влево SAO, и, таким образом, восстановление информации о слиянии влево SAO; и определение основанной на контексте модели вероятности информации о слиянии вверх SAO, выполнение энтропийного декодирования с использованием определенной модели вероятности информации о слиянии вверх SAO и, таким образом, восстановление информации о слиянии вверх SAO, и получение информации о включении/выключении SAO может включать в себя определение основанной на контексте модели вероятности информации о включении/выключении SAO, выполнение энтропийного декодирования с использованием определенной модели вероятности информации о включении/выключении SAO и, таким образом, восстановление информации о включении/выключении SAO.
Получение информации об абсолютном значении сдвига может включать в себя определение основанной на контексте модели вероятности информации об абсолютном значении сдвига, выполнение энтропийного декодирования без использования определенной модели вероятности информации об абсолютном значении сдвига и, таким образом, восстановление информации об абсолютном значении сдвига, получение информации о знаке сдвига и информации о положении полосы может включать в себя выполнение энтропийного декодирования без использования основанной на контексте модели вероятности информации о знаке сдвига, и, таким образом, восстановление информации о знаке сдвига; и выполнение энтропийного декодирования без использования основанной на контексте модели вероятности информации о положении полосы и, таким образом, восстановление информации о положении полосы, и получение информации о классе края может включать в себя выполнение энтропийного декодирования без использования основанной на контексте модели вероятности информации о классе края и, таким образом, восстановление информации о классе края.
Согласно аспектам настоящего раскрытия, предложен способ кодирования адаптивного к выборке сдвига (SAO), включающий в себя вывод 1-битовой информации о слиянии влево SAO и 1-битовой информации о слиянии вверх SAO наибольшей единицы кодирования (LCU), сгенерированной путем выполнения контекстного кодирования над каждой из информации о слиянии влево SAO и информации о слиянии вверх SAO; вывод 1-битовой информации о включении/выключении SAO, сгенерированной путем выполнения контекстного кодирования над информацией о включении/выключении SAO относительно каждого цветового компонента; если информация о включении/выключении SAO указывает на выполнение операции SAO, вывод битового потока информации об абсолютном значении сдвига, сгенерированной путем выполнения кодирования обхода над информацией об абсолютном значении сдвига относительно каждого цветового компонента и каждой категории SAO; и вывод остающегося битового потока, сгенерированного путем выполнения кодирования обхода над одной из информации о положении полосы и информации о классе края относительно каждого цветового компонента.
Вывод 1-битовой информации о включении/выключении SAO может включать в себя, если информация о включении/выключении SAO указывает на выполнение операции SAO, дополнительно вывод 1-битовой информации идентификации краевой полосы, сгенерированной путем выполнения кодирования обхода над информацией идентификации краевой полосы относительно каждого цветового компонента, и контекстное кодирование может быть выполнено на информации о включении/выключении SAO в первом бине информации о типе SAO LCU, и кодирование обхода может быть выполнено на остальных битах информации о типе SAO иной, чем информация о включении/выключении SAO.
Вывод остального битового потока может включать в себя, если информация идентификации краевой полосы указывает тип полосы, вывод битового потока информации о положении полосы, сгенерированной путем выполнения кодирования обхода над информацией о положении полосы относительно каждого цветового компонента, вывод информации о положении полосы может включать в себя, если информация об абсолютном значении сдвига для каждой категории SAO не равна 0, вывод сгенерированного битового потока информации о положении полосы и битового потока информации о знаке сдвига, сгенерированной путем выполнения кодирования обхода над информацией о знаке сдвига, и информация о положении полосы может быть, наконец, выведена из числа параметров SAO LCU.
Вывод оставшегося битового потока может включать в себя, если информация об идентификации краевой полосы указывает тип края, вывод битового потока информации о классе края, сгенерированной путем выполнения кодирования обхода над информацией о классе края относительно каждого цветового компонента.
Согласно аспектам настоящего раскрытия, предложено устройство декодирования адаптивного к выборке сдвига (SAO), включающее в себя контекстный декодер SAO для получения контекстно-кодированной информации о слиянии влево SAO и информации о слиянии вверх SAO и получения информации о включении/выключении SAO, контекстно-кодированной относительно каждого цветового компонента, из битового потока наибольшей единицы кодирования (LCU); декодер обхода SAO для, если информация о включении/выключении SAO указывает на выполнение операции SAO, получения информации об абсолютном значении сдвига, закодированной обходом относительно каждого цветового компонента и каждой категории SAO, и получения одной из информации о положении полосы и информации о классе края, закодированной обходом относительно каждого цветового компонента, из битового потока; и SAO-оператор для, если информация о включении/выключении SAO указывает на выполнение операции SAO, коррекции восстановленных значений LCU для каждой категории SAO на основе информации об абсолютном значении сдвига путем использования полученной информации.
Согласно аспектам настоящего раскрытия, обеспечено устройство кодирования адаптивного к выборке сдвига (SAO), включающее в себя SAO-оператор для выполнения операции SAO над наибольшей единицей кодирования (LCU); контекстный кодер SAO для генерации и вывода битового потока информации о слиянии влево SAO и битового потока информации о слиянии вверх SAO LCU путем выполнения контекстного кодирования над каждой из информации о слиянии влево SAO и информации о слиянии вверх SAO, и генерации и вывода 1-битовой информации о включении/выключении SAO, путем выполнения контекстного кодирования над информацией о включении/выключении SAO относительно каждого цветового компонента; и кодер обхода SAO для, если информация о включении/выключении SAO указывает на выполнение операции SAO, генерации и вывода битового потока информации об абсолютном значении сдвига путем выполнения кодирования обхода над информацией об абсолютном значении сдвига относительно каждого цветового компонента и каждой категории SAO, и генерации и вывода остающегося битового потока путем выполнения кодирования обхода над одной из информации о положении полосы и информации о классе края относительно каждого цветового компонента.
Согласно аспектам настоящего раскрытия, обеспечен считываемый компьютером носитель записи, содержащий записанную на нем компьютерную программу для выполнения вышеуказанного способа.
Режим осуществления изобретения
В дальнейшем, способ кодирования видео и способ декодирования видео с использованием операции адаптивного к выборке сдвига (SAO), основанной на классификации пикселов, согласно вариантам осуществления настоящего раскрытия, будут описаны со ссылкой на Фиг. 1A-7C. Кроме того, операция SAO, основанная на классификации пикселов в способе кодирования видео и способе декодирования видео на основе единиц кодирования, имеющих древовидную структуру, согласно вариантам осуществления настоящего раскрытия, будет описана со ссылкой на Фиг. 8-20. В дальнейшем, ‘изображение’ может обозначать неподвижное изображение или движущееся изображение видео или само видео.
Способ кодирования видео и способ декодирования видео с использованием операции SAO, основанной на классификации пикселов, согласно вариантам осуществления настоящего раскрытия, будет описан ниже со ссылкой на Фиг. 1A-7C. Устройство 10 кодирования SAO и устройство 20 декодирования SAO, проиллюстрированные на Фиг. 1A и 1B, и 2A и 2B выполняют операцию SAO, чтобы минимизировать ошибку между исходным пикселом и восстановленным пикселом, и передают и принимают параметры SAO для выполнения операции SAO.
Устройство 10 кодирования SAO, использующее операцию SAO, классифицирует пикселы каждого блока изображения в предопределенные группы пикселов, распределяет каждый пиксел в соответствующую группу пикселов и кодирует значение сдвига, указывающее среднее значение ошибок между исходными пикселами и восстановленными пикселами, включенными в ту же самую группу пикселов.
Выборки сигнализируются между устройством 10 кодирования SAO и устройством 20 декодирования SAO. Другими словами, устройство 10 кодирования SAO может кодировать выборки, сгенерированные путем выполнения кодирования видео, и может передавать выборки как битовый поток, и устройство 20 декодирования SAO может синтаксически анализировать и восстанавливать выборки из битового потока.
Устройство 10 кодирования SAO и устройство 20 декодирования SAO сигнализируют параметры SAO для операции SAO, чтобы минимизировать ошибки между исходными пикселами и восстановленными пикселами путем коррекции восстановленных пиксельных значений посредством сдвигов, определенных на основе классификации пикселов. Значения сдвига кодируются, передаются и принимаются как параметры SAO между устройством 10 кодирования SAO и устройством 20 декодирования SAO и затем декодируются из параметров SAO.
Соответственно, устройство 20 декодирования SAO может сгенерировать восстановленные пикселы каждого блока изображения путем декодирования принятого битового потока, может скорректировать восстановленные пикселы значениями сдвига, восстановленными из битового потока, и, таким образом, может сгенерировать восстановленное изображение, имеющее минимизированную ошибку относительно исходного изображения.
Работа устройства 10 кодирования SAO для выполнения операции SAO будет описана подробно со ссылкой на Фиг. 1A и 1B, и операция устройства 20 декодирования SAO для выполнения операции SAO будет описана подробно со ссылкой на Фиг. 2A и 2B.
Фиг. 1A и 1B являются блок-схемой устройства 10 кодирования SAO и блок-схемой способа кодирования SAO согласно вариантам осуществления настоящего раскрытия.
Устройством 10 кодирования SAO содержит SAO-оператор 12 и энтропийный кодер 14. Энтропийный кодер 14 содержит контекстный кодер 16 SAO и кодер 18 обхода SAO, чтобы кодировать параметры SAO.
Устройство 10 кодирования SAO принимает ввод изображений видео, например, сегментов (слайсов), разделяет каждое изображение на блоки и кодирует каждый блок. Блок может иметь квадратную форму, прямоугольную форму или произвольную геометрическую форму и не ограничен единицей данных, имеющей предопределенный размер. Блок может быть наибольшей единицей кодирования (LCU) или единицей кодирования среди единиц кодирования, имеющих древовидную структуру. Способы кодирования и декодирования видео, основанные на единицах кодирования, имеющих древовидную структуру, будут описаны ниже со ссылками на Фиг. 8-20.
Устройство 10 кодирования SAO может разделять каждое входное изображение на LCU и может выводить результирующие данные, сгенерированные путем выполнения предсказания, преобразования и энтропийного кодирования на выборках каждого LCU, как битовый поток. Выборки LCU могут быть данными пиксельных значений пикселов, включенных в LCU.
Устройство 10 кодирования SAO может индивидуально кодировать LCU кадра (картинки). Устройство 10 кодирования SAO может кодировать текущую LCU на основе единиц кодирования, разделенных из текущей LCU и имеющих древовидную структуру.
Чтобы кодировать текущую LCU, устройство 10 кодирования SAO может кодировать выборки, путем выполнения интра-предсказания, интер-предсказания, преобразования и квантования на каждой из единиц кодирования, включенных в текущую LCU и имеющую древовидную структуру.
Устройство 10 кодирования SAO может восстанавливать кодированные выборки, включенные в текущую LCU, путем выполнения обратного квантования, обратного преобразования и интер-предсказания или компенсации движения над каждой из единиц кодирования, имеющих древовидную структуру, чтобы декодировать единицы кодирования. Восстановленное изображение может быть сгенерировано путем кодирования и затем декодирования предыдущих сегментов кодированных выборок. На восстановленное изображение предыдущего сегмента можно ссылаться, чтобы выполнять интер-предсказание на текущем сегменте.
Чтобы минимизировать ошибку между исходными пикселами, прежде чем текущая LCU будет закодирована, и восстановленными пикселами, после того как текущая LCU будет декодирована, SAO-оператор 12 может определять значения сдвига, указывающие значения разности между исходными пикселами и восстановленными пикселами.
SAO-оператор 12 может выполнять операцию SAO на каждом цветовом компоненте. Например, относительно YCrCb цветного изображения, операция SAO может быть выполнена на каждом из компонента яркости (Y компонента) и первого и второго компонента цветности (Cr и Cb компонента).
SAO-оператор 12 может определить, следует ли выполнять операцию SAO на компоненте яркости текущего сегмента. SAO- оператор 12 может определить, выполнять ли операцию SAO на первом и втором компонентах цветности текущего сегмента, причем первый и второй компоненты цветности рассматриваются как тот же самый компонент. Другими словами, если операция SAO выполняется на первом цветовом компоненте цветности, операция SAO может также выполняться на втором компоненте цветности. Если операция SAO не выполняется на первом цветовом компоненте цветности, операция SAO также может не выполняться на втором компоненте цветности.
Энтропийный кодер 14 может генерировать параметры SAO текущего сегмента и может включать параметры SAO в заголовок текущего сегмента.
SAO-оператор 12 может определять, следует ли выполнять операцию SAO на каждой LCU. Согласно определению SAO-оператора 12, контекстный кодер 16 SAO может генерировать информацию о включении/выключении SAO яркости, указывающую, следует ли выполнять операцию SAO на компоненте яркости. Также, согласно определению SAO-оператора 12, контекстный кодер 16 SAO может генерировать информацию о включении/выключении SAO цветности, указывающую, следует ли выполнять операцию SAO на первом и втором компонентах цветности.
Контекстный кодер 16 SAO может включать информацию о включении/выключении SAO яркости и информацию о включении/выключении SAO цветности в параметры SAO LCU.
SAO-оператор 12 может определять значения сдвига относительно каждой LCU. Параметры SAO, включающие в себя значения сдвига, тип SAO и класс SAO, могут также быть определены относительно каждой LCU.
SAO-оператор 12 может определять тип SAO согласно способу классификации пиксельных значений текущей LCU. Тип SAO может быть определен как тип края или тип полосы. Согласно способу классификации пиксельного значения текущего блока, может быть определено, классифицировать ли пикселы текущего блока согласно типу края или типу полосы.
Если типом SAO является тип края в соответствии с направлением и формой краев, сформированных между восстановленными пикселами текущей LCU и их смежными пикселами, может быть определен сдвиг между восстановленными пикселами и исходными пикселами.
Если типом SAO является тип полосы, из числа множества полос, полученных разделением полного диапазона пиксельных значений восстановленных пикселов текущей LCU, может быть определен сдвиг между восстановленными пикселами и исходными пикселами, включенными в каждую полосу. Полосы могут быть получены путем равномерного или неравномерного разделения полного диапазона пиксельных значений.
Соответственно, SAO-оператор 12 может определить тип SAO текущей LCU, который указывает тип края или тип полосы, основываясь на пространственных характеристиках пиксельных значений текущего LCU.
SAO-оператор 12 может определить класс SAO каждого из восстановленных пикселов согласно типу SAO текущей LCU. Класс SAO может быть определен как класс края или класс полосы.
Относительно типа края, класс края может указывать направление краев, сформированных между восстановленными пикселами и их смежными пикселами. Класс края может указывать направление края 0º, 90º, 45º или 135º.
Если типом SAO является тип края, SAO-оператор 12 может определить класс края каждого из восстановленных пикселов текущей LCU.
Относительно типа полосы, из числа множества полос, которые являются предопределенным числом периодов непрерывных пиксельных значений, полученных делением общего диапазона пиксельных значений текущей LCU, класс полосы может указывать положения полос, которым принадлежат пиксельные значения восстановленных пикселов.
Например, относительно выборки, имеющей пиксельное значение 8 битов, полный диапазон пиксельных значений составляет от 0 до 255, и пиксельное значение может быть классифицировано в 32 полосы. В этом случае, из общего количества 32 полос, может быть определено предопределенное количество полос, которым принадлежат пиксельные значения восстановленных пикселов. Класс полосы может указывать начальное положение предопределенного числа непрерывных полос (левая начальная точка) при использовании одного из индексов полосы от 0 до 31.
Относительно типа края, восстановленные пикселы текущей LCU могут быть классифицированы в предопределенное число категорий согласно форме краев, сформированных между восстановленными пикселами и их смежными пикселами. Например, согласно четырем формам края, таким как локальная впадина вогнутого края, угол изгиба вогнутого края, угол изгиба выпуклого края и локальный пик выпуклого края, восстановленные пикселы могут быть проклассифицированы в четыре категории. Согласно форме края каждого из восстановленных пикселов текущей LCU, может быть определена одна из этих четырех категорий.
Относительно типа полосы, согласно положениям полос, которым принадлежат пиксельные значения восстановленных пикселов текущей LCU, восстановленные пикселы могут быть проклассифицированы в предопределенное число категорий. Например, согласно индексам полос четырех непрерывных полос от начального положения, указанного классом полосы, то есть начальной точки самой левой полосы, восстановленные пикселы могут быть проклассифицированы в четыре категории. Согласно одной из этих четырех полос, которым принадлежит каждый из восстановленных пикселов текущей LCU, может быть определена одна из этих четырех категорий.
SAO-оператор 12 может определить категорию каждого из восстановленных пикселов текущей LCU. Относительно восстановленных пикселов текущей LCU, которые принадлежат той же самой категории, SAO-оператор 12 может определить значения сдвига с использованием разностных значений между восстановленными пикселами и исходными пикселами. В каждой категории, среднее разностных значений между восстановленными пикселами и исходными пикселами, то есть средняя ошибка восстановленных пикселов, может быть определено как значение сдвига, соответствующее текущей категории. SAO-оператор 12 может определить значение сдвига каждой категории и может определить значения сдвига всех категорий как значения сдвига текущей LCU.
Например, если тип SAO текущей LCU представляет собой тип края, и восстановленные пикселы проклассифицированы в четыре категории согласно формам края, или если тип SAO текущей LCU является типом полосы, и восстановленные пикселы проклассифицированы в четыре категории согласно индексам четырех непрерывных полос, SAO-оператор 12 может определить четыре значения сдвига путем определения средней ошибки между восстановленными пикселами и исходными пикселами, которые принадлежат каждой из этих четырех категорий.
Каждое из значений сдвига может быть больше или равно заданному минимальному значению и может быть меньше или равно заданному максимальному значению.
Энтропийный кодер 14 может кодировать и выводить параметры SAO, включающие в себя тип SAO, класс SAO и значения сдвига текущей LCU, которые определены SAO-оператором 12.
Параметры SAO каждого блока могут включать в себя тип SAO и значения сдвига блока. В качестве типа SAO может быть выведен тип выключения, тип края или тип полосы.
Если типом SAO является тип выключения, это может указывать, что операция SAO не применяется к текущей LCU. В этом случае, остальные параметры SAO текущей LCU не должны кодироваться.
Если типом SAO является тип края, параметры SAO могут включать в себя значения сдвига, индивидуально соответствующие классам края. Иначе, если типом SAO является тип полосы, параметры SAO может включать в себя значения сдвига, индивидуально соответствующие полосам. Другими словами, энтропийный кодер 14 может кодировать параметры SAO каждого блока.
Как описано выше, SAO-оператор 12 может выполнять операцию SAO на каждой из LCU изображения.
В соответствии со способами энтропийного кодирования, параметры SAO могут быть проклассифицированы в параметры, подлежащие кодированию в соответствии с основанным на контексте энтропийным кодированием, и параметры, подлежащие кодированию в режиме обхода.
Способ основанного на контексте энтропийного кодирования может включать в себя ряд операций, таких как бинаризация для преобразования символов, таких как параметры SAO, в битовый поток, и основанное на контексте арифметическое кодирование на битовом потоке. Контекстно-адаптивное бинарное арифметическое кодирование (CABAC) является широко используемым примером способа основанного на контексте арифметического кодирования. Согласно основанному на контексте арифметическому кодированию и декодированию, каждый бит битового потока символа может рассматриваться как структурный элемент (бин) контекста, и каждая позиция бита может быть отображена на индекс бина. Длина битового потока, то есть длина бинов, может изменяться согласно размерам значений символов. Для основанного на контексте арифметического кодирования и декодирования, на символах необходимо выполнять основанное на контексте вероятностное моделирование.
Основанное на контексте вероятностное моделирование требуется выполнять в предположении, что бит кодирования текущего символа вероятностно предсказывается на основе ранее кодированных символов. Для основанного на контексте вероятностного моделирования, контекст каждой позиции бита битового потока символа, то есть каждый индекс бина, должен заново обновляться. Здесь, вероятностное моделирование относится к процессу анализа вероятности того, что 0 или 1 генерируется в каждом бине. Процесс обновления контекста путем отражения результата анализа вероятности каждого бита символов нового блока на контекст может повторяться в каждом блоке. Если вышеописанное вероятностное моделирование повторяется, то может быть определена вероятностная модель, в который каждый бин совпадает с вероятностью.
Соответственно, со ссылкой на основанную на контексте вероятностную модель, операция выбора и вывода кода, соответствующего текущему контексту, может выполняться относительно каждого бита бинаризованного битового потока текущих символов, таким образом, выполняя основанное на контексте энтропийное кодирование.
Операция определения основанной на контексте вероятностной модели каждого бина символов для кодирования, основываясь на основанном на контексте энтропийном кодировании, требует большого объема вычислений и времени. С другой стороны, энтропийное кодирование в способе обхода включает в себя операцию энтропийного кодирования с использованием вероятностной модели без учета контекста символов.
Энтропийный кодер 14 может включать в себя кодер 16 контекста SAO для выполнения кодирования в соответствии с основанным на контексте энтропийным кодированием (именуемым в дальнейшем ‘контекстным кодированием’) на параметрах SAO, и кодер 18 обхода SAO для выполнения энтропийного кодирования в режиме обхода (именуемого в дальнейшем ‘кодированием обхода’) на параметрах SAO.
Кодер 16 контекста SAO может выполнять контекстное кодирование на информации о слиянии влево SAO, информации о слиянии вверх SAO и информации о включении/выключении SAO LCU.
Кодер 18 обхода SAO может выполнять кодирование обхода на информации об абсолютном значении сдвига и информации о положении полосы или информации о классе края относительно каждого цветового компонента.
Пример того, как кодер 16 контекста SAO и кодер 18 обхода SAO выводят параметры SAO, будет описан подробно ниже со ссылкой на блок-схему последовательности операций способа кодирования SAO на Фиг. 1B.
SAO-оператор 12 может определить, следует ли выполнять операцию SAO, способ SAO и параметры SAO относительно каждой LCU текущего сегмента.
В операции 11, кодер 16 контекста SAO может генерировать 1-битовый флаг информации о слиянии влево SAO путем выполнения контекстного кодирования над информацией о слиянии влево SAO текущей LCU. Также, кодер 16 контекста SAO может генерировать 1-битовый флаг информации о слиянии вверх SAO путем выполнения контекстного кодирования над информацией о слиянии вверх SAO текущей LCU.
Энтропийный кодер 14 может определить, принять ли параметры SAO левой и верхней смежных LCU текущей LCU в качестве параметров SAO текущей LCU относительно всех цветовых компонентов, таких как компоненты яркости и цветности без их разделения.
Первоначально, основываясь на том, следует ли предсказывать параметры SAO текущей LCU с использованием параметров SAO левой LCU, энтропийный кодер 14 может генерировать информацию о слиянии влево SAO текущей LCU. Другими словами, без разделения компонента яркости и первого и второго компонентов цветности, может генерироваться та же самая информация о слиянии влево SAO.
Затем, основываясь на том, следует ли предсказывать параметры SAO текущей LCU с использованием параметров SAO верхней LCU, энтропийный кодер 14 может генерировать информацию о слиянии вверх SAO текущей LCU. Без разделения компонента яркости и первого и второго компонентов цветности, может генерироваться та же самая информации о слиянии вверх SAO.
В операции 13, кодер 16 контекста SAO может выполнять контекстное кодирование на информации о включении/выключении SAO относительно каждого цветового компонента. Кодер 16 контекста SAO может генерировать 1-битовый флаг информации о включении/выключении SAO, сгенерированной вследствие контекстного кодирования.
SAO-оператор 12 может распределить первый бит информации о типе SAO для информации о включении/выключении SAO, указывающей, выполнять ли операцию SAO на текущей LCU. Кодер 16 контекста SAO может выполнять основанное на контексте CABAC кодирование только на первом бине информации о типе SAO.
Если информация о включении/выключении SAO указывает на выполнение операции SAO, то кодер 18 обхода SAO может выполнять кодирование обхода на информации идентификации краевой полосы относительно каждого цветового компонента. Кодер 18 обхода SAO может вывести 1 бит информации идентификации краевой полосы, сгенерированной вследствие кодирования обхода.
Кодер 18 обхода SAO может распределить второй бит информации о типе SAO для информации идентификации краевой полосы, указывающей, выполнять ли операцию SAO края или операцию SAO полосы на текущей LCU. Кодер 18 обхода SAO может выполнять CABAC кодирование в режиме обхода на втором бине информации о типе SAO.
Другими словами, если выполняется операция SAO, энтропийный кодер 14 может генерировать контекстно-кодированный флаг информации о включении/выключении SAO и кодированный обходом флаг информации идентификации краевой полосы в качестве информации о типе SAO.
SAO-оператор 12 может применять ту же самую информацию о включении/выключении SAO к первому и второму компонентам цветности. Также, SAO-оператор 12 может применить ту же самую информацию идентификации краевой полосы к первому и второму компонентам цветности. Соответственно, энтропийный кодер 14 может выполнять энтропийное кодирование на информации о включении/выключении SAO и информации идентификации краевой полосы для компонента яркости и первого компонента цветности, и тогда может не выполнять энтропийное кодирование снова на информации о включении/выключении SAO и информации идентификации краевой полосы для второго компонента цветности.
В операции 15, если информация о включении/выключении SAO указывает на выполнение операции SAO, кодер 18 обхода SAO может выполнять кодирование обхода на информации об абсолютном значении сдвига для каждой категории SAO и каждого цветового компонента. Кодер 18 обхода SAO может выводить битовый поток информации об абсолютном значении сдвига, сгенерированной вследствие кодирования обхода.
Кодер 18 обхода SAO может выполнять кодирование обхода на информации об абсолютном значении сдвига для каждого из компонента яркости и первого и второго компонента цветности. Кроме того, кодирование обхода может быть выполнено на информации об абсолютном значении сдвига относительно каждой из четырех категорий и каждого цветового компонента.
Устройство 10 кодирования SAO может выполнять CABAC-кодирование в режиме обхода на информации об абсолютном значении сдвига из числа параметров SAO LCU. Информация об абсолютном значения сдвига может указывать на значение в пределах диапазона, основанного на битовой глубине видео. Например, если битовая глубина соответствует 8 битам, абсолютное значение сдвига может быть значением, равным или больше, чем 0, и равным или меньше, чем 7. В качестве другого примера, если битовая глубина соответствует 10 битам, абсолютное значение сдвига может быть значением, равным или больше, чем 0, и равным или меньше, чем 31.
В операции 17, кодер 18 обхода SAO может выполнять кодирование обхода на одной из информации о положении полосы и информации о классе края относительно каждого цветового компонента. Оставшийся битовый поток информации о типе SAO, иной, чем информация о включении/выключении SAO и информация идентификации краевой полосы, может быть назначен информации о положении полосы или информации о классе края. Кодер 18 обхода SAO может вывести оставшийся битовый поток информации о положении полосы или информации о классе края, сгенерированной вследствие кодирования обхода.
Если информация идентификации краевой полосы указывает тип полосы, кодер 18 обхода SAO может выполнять кодирование обхода на информации о положении полосы относительно каждого цветового компонента. Информация о положении полосы указывает на левую начальную точку полосы как класс SAO типа полосы. Информация о положении полосы может быть определена как битовый поток, имеющий фиксированную битовую длину.
Если информация об абсолютном значении сдвига для каждой категории SAO категория не равна 0, кодер 18 обхода SAO может выполнять кодирование обхода на информации о знаке сдвига. Соответственно, кодер 18 обхода SAO может вывести кодированный обходом битовый поток информации о знаке сдвига и информацию о положении полосы как оставшийся битовый поток информации о типе SAO, указывающей на тип SAO полосы. Кодер 18 обхода SAO может, наконец, вывести информацию о положении полосы из числа параметров SAO LCU.
Информация о знаке сдвига и информация о положении полосы типа SAO полосы может быть определена относительно каждого из компонента яркости и первого и второго компонента цветности. Соответственно, кодер 18 обхода SAO может выполнять кодирование обхода на информации о знаке сдвига и информации о положении полосы относительно каждого из компонента яркости и первого и второго компонентов цветности. Битовый поток информации о классе полосы, сгенерированный вследствие кодирования обхода, может быть выведен как оставшийся битовый поток информации о типе SAO.
Если информация идентификации краевой полосы указывает тип края, кодер 18 обхода SAO может выполнять кодирование обхода на информации о классе края относительно каждого цветового компонента. Битовый поток информации о классе края, сгенерированной вследствие кодирования обхода, может выводиться как оставшийся битовый поток информации о типе SAO.
Информация о классе края может быть определена относительно компонента яркости и первого компонента цветности. Информация о классе края, определенная относительно первого компонента цветности, может равным образом применяться к второму компоненту цветности. Соответственно, кодер 18 обхода SAO может установить информацию о классе края относительно компонента яркости и первого компонента цветности и тогда может не устанавливать информацию о классе края снова относительно второго компонента цветности.
Устройство 10 кодирования SAO может включать в себя центральный процессор (не показан) для совместного управления SAO-оператором 12, энтропийным кодером 14, контекстным кодером 16 SAO и кодером 18 обхода SAO. Альтернативно, SAO-оператор 12, энтропийный кодер 14, контекстный кодер 16 SAO и кодер 18 обхода SAO могут управляться их отдельными процессорами (не показаны), которые совместно работают так, чтобы управлять устройством 10 кодирования SAO. Альтернативно, внешний процессор (не показан) вне устройства 10 кодирования SAO может управлять SAO-оператором 12, энтропийным кодером 14, контекстным кодером 16 SAO и кодером 18 обхода SAO.
Устройство 10 кодирования SAO может включать в себя один или более блоков хранения данных (не показаны), чтобы хранить данные ввода и вывода SAO-оператора 12, энтропийного кодера 14, контекстного кодера 16 SAO и кодера 18 обхода SAO. Устройство 10 кодирования SAO может включать в себя контроллер памяти (не показан) для управления вводом и выводом данных на/из блоков хранения данных.
Для того чтобы выполнять операцию кодирования видео, включая преобразование, и выводить результат операции кодирования видео, устройство 10 кодирования SAO может работать в ассоциации с внутренним или внешним процессором кодирования видео. Внутренний процессор кодирования видео устройства 10 кодирования SAO может быть независимым процессором для выполнения операции кодирования видео. Также, устройство 10 кодирования SAO, центральный процессор или модуль обработки графики может включать в себя модуль процессора кодирования видео для выполнения базовой операции кодирования видео.
На Фиг. 2A и 2B представлены блок-схема устройства 20 декодирования SAO и блок-схема последовательности операций способа декодирования SAO, согласно вариантам осуществления настоящего раскрытия.
Устройство 20 декодирования SAO включает в себя энтропийный декодер 22 и SAO-оператор 28. Энтропийный декодер 22 включает в себя контекстный декодер 24 SAO и декодер 26 обхода SAO.
Устройство 20 декодирования SAO получает битовый поток, включающий в себя кодированные данные видео. Устройство 20 декодирования SAO может синтаксически анализировать кодированные видео выборки из полученного битового потока и может выполнять энтропийное декодирование, обратное квантование, обратное преобразование, предсказание и компенсацию движения на каждом блоке изображения, чтобы генерировать восстановленные пикселы.
Устройство 20 декодирования SAO может восстанавливать текущий сегмент путем декодирования кодированных символов, включающих в себя кодированные выборки и кодированную информацию текущего сегмента, которые получены из принятого битового потока. Таким образом, может быть сгенерировано восстановленное изображение.
Также, устройство 20 декодирования SAO может принимать значения сдвига, указывающие разностные значения между исходными пикселами и восстановленными пикселами, и SAO-оператор 28 может минимизировать ошибку между исходным изображением и восстановленным изображением. Устройство 20 декодирования SAO может принимать кодированные данные каждой LCU видео и может восстанавливать LCU на основе единиц кодирования, разделенных из LCU и имеющих древовидную структуру. SAO-оператор 28 может выполнять операцию SAO на LCU.
Когда устройство 20 декодирования SAO выполняет операцию SAO, первоначально требуются параметры SAO, определенные устройством 10 кодирования SAO, которое выполняло операцию SAO. Энтропийный декодер 22 может получать параметры SAO из битового потока LCU. Контекстный декодер 24 SAO может получать информацию о слиянии влево SAO и информацию о слиянии вверх SAO и информацию о включении/выключении SAO относительно каждого цветового компонента из битового потока LCU.
Если информация о включении/выключении SAO указывает на выполнение операции SAO, то декодер 26 обхода SAO может получить информацию идентификации краевой полосы относительно каждого цветового компонента и информацию об абсолютном значении сдвига и информацию о положении полосы или информацию о классе края для каждой категории SAO из битового потока.
Если информация о включении/выключении SAO указывает на выполнение операции SAO, SAO-оператор 28 может корректировать восстановленные значения LCU на основе информации об абсолютном значении сдвига относительно каждой категории SAO путем использования информации, полученной контекстным декодером 24 SAO и декодером 26 обхода SAO.
Способ восстановления выборок текущей LCU и получения параметров SAO для корректировки сдвигов будет подробно описан ниже со ссылкой на Фиг. 2B.
Устройство 20 декодирования SAO может выполнять арифметическое декодирование на символах каждой LCU с использованием вероятностной модели кода каждого символа. Кроме того, устройство 20 декодирования SAO может выполнять основанное на контексте арифметическое декодирование (именуемое в дальнейшем ‘контекстное декодирование’) на основе обновленной вероятностной модели относительно каждой LCU.
Также, устройство 20 декодирования SAO может выполнять энтропийное декодирование в режиме обхода (именуемое в дальнейшем ‘декодированием обхода’), чтобы выполнять арифметическое декодирование без определения вероятностной модели с учетом контекста.
В операции 21, контекстный декодер 24 SAO может получить контекстно-кодированную информацию о слиянии влево SAO и информацию о слиянии вверх SAO из битового потока LCU.
Контекстный декодер 24 SAO может определять основанную на контексте вероятностную модель информации о слиянии влево SAO, может выполнять энтропийное декодирование с использованием вероятностной модели информации о слиянии влево SAO и, таким образом, может восстановить информацию о слиянии влево SAO.
Контекстный декодер 24 SAO может определять основанную на контексте вероятностную модель информации о слиянии вверх SAO, может выполнять энтропийное декодирование с использованием вероятностной модели информации о слиянии вверх SAO и, таким образом, может восстановить информацию о слиянии вверх SAO.
Если информация о слиянии влево SAO указывает на предсказание параметров SAO текущей LCU с использованием параметров SAO левой LCU, параметры SAO относительно каждого цветового компонента из левой LCU могут быть приняты в качестве параметров SAO относительно каждого цветового компонента текущей LCU.
Если информация о слиянии влево SAO указывает на не использование параметров SAO левой LCU, а информации о слиянии вверх SAO указывает на предсказание параметров SAO текущей LCU с использованием параметров SAO верхней LCU, параметры SAO относительно каждого цветового компонента из верхней LCU могут быть приняты в качестве параметров SAO относительно каждого цветового компонента текущей LCU.
Однако если информация о слиянии вверх SAO указывает не предсказывать параметры SAO текущей LCU с использованием параметров SAO верхней LCU, энтропийный декодер 22 может получить параметры SAO относительно каждого цветового компонента текущей LCU из битового потока.
В операции 23, контекстный декодер 24 SAO может получить контекстно-кодированную информацию о включении/выключении SAO относительно каждого цветового компонента из битового потока LCU.
Если информация о включении/выключении SAO указывает на выполнение операции SAO, декодер 26 обхода SAO может дополнительно получить кодированную обходом информацию идентификации краевой полосы относительно каждого цветового компонента из битового потока LCU.
Контекстный декодер 24 SAO может определять основанную на контексте вероятностную модель информации о включении/выключении SAO, может выполнять энтропийное декодирование с использованием вероятностной модели информации о включении/выключении SAO и, таким образом, может восстановить информацию о включении/выключении SAO.
Информация о включении/выключении SAO для первого компонента цветности может быть равным образом применима к второму компоненту цветности. Соответственно, если информация о включении/выключении SAO для каждого из компонента яркости и первого компонента цветности получена, контекстный декодер 24 SAO может далее не получать информацию о включении/выключении SAO для второго компонента цветности.
Информация идентификации краевой полосы для первого компонента цветности может быть равным образом применена к второму компоненту цветности. Соответственно, если информация идентификации краевой полосы для каждого из компонента яркости и первого компонента цветности получена, то декодер 26 обхода SAO может дополнительно не получать информацию идентификации краевой полосы для второго компонента цветности.
Если информация о включении/выключении SAO, полученная в операции 23, указывает на выполнение операции SAO, то в операции 25 декодер 26 обхода SAO может получить кодированную обходом информацию об абсолютном значении сдвига для каждой категории SAO и каждого цветового компонента из битового потока LCU.
Декодер 26 обхода SAO может выполнять энтропийное декодирование без использования основанной на контексте вероятностной модели информации об абсолютном значении сдвига и, таким образом, может восстанавливать информацию об абсолютном значении сдвига.
В операции 27, декодер 26 обхода SAO может получить одну из кодированной обходом информации о положении полосы и информации о классе края относительно каждого цветового компонента битового потока LCU.
Если информация об идентификации краевой полосы указывает тип полосы, декодер 26 обхода SAO может получить кодированную обходом информацию о положении полосы относительно каждого цветового компонента битового потока. Если информация об абсолютном значении сдвига, полученная для каждой категории SAO, не равна 0, то декодер 26 обхода SAO может получать кодированную обходом информацию о знаке сдвига и информацию о положении полосы относительно каждого цветового компонента из битового потока. Декодер 26 обхода SAO может, наконец, получить информацию о положении полосы из числа параметров SAO LCU.
Если информация идентификации краевой полосы указывает тип края, декодер 26 обхода SAO может получить кодированную обходом информацию о классе края относительно каждого цветового компонента из битового потока. Информация о классе края может включать в себя информацию о классе края для компонента яркости и информацию о классе края для первого компонента цветности. Информация о классе края для первого компонента цветности может равным образом применяться к второму компоненту цветности. Если информация о классе края для каждого из компонента яркости и первого компонента цветности получена, то декодер 26 обхода SAO может дополнительно не получать информацию о классе края для второго компонента цветности.
Декодер 26 обхода SAO может выполнять энтропийное декодирование без использования основанной на контексте вероятностной модели информации о знаке сдвига и, таким образом, может восстановить информацию о знаке сдвига. Декодер 26 обхода SAO может выполнять энтропийное декодирование без использования основанной на контексте модели вероятности информации о положении полосы и, таким образом, может восстановить информацию о положении полосы. Декодер 26 обхода SAO может выполнять энтропийное декодирование без использования основанной на контексте модели вероятности информации о классе края и, таким образом, может восстановить информацию о классе края.
SAO-оператор 28 может определить параметры SAO текущей LCU путем использования параметров SAO левой или верхней LCU на основе информации о слиянии SAO. В этом случае, параметры SAO могут не извлекаться из текущей LCU, а могут восстанавливаться как те же самые, что и параметры SAO ранее восстановленных смежных LCU.
Контекстный декодер 24 SAO может извлекать общую информацию о слиянии SAO для компонента яркости и первого и второго компонента цветности текущей LCU. Контекстный декодер 24 SAO может определять, восстанавливать ли параметры SAO компонента яркости и параметры SAO первого и второго компонентов цветности, чтобы быть теми же самыми, что и параметры SAO смежной LCU, основываясь на общей информации о слиянии SAO.
Тип выключения, тип края или тип полосы может быть определен на основе информации о типе SAO, полученной энтропийным декодером 22.
Если первый бин информации о типе SAO, то есть информации о включении/выключении SAO, восстановлен посредством контекстного декодера 24 SAO, то следует ли выполнять операцию SAO на текущей LCU, может быть определено на основе информации о включении/выключении SAO. Если типом SAO является тип выключения, то может быть определено не выполнять операцию SAO на текущей LCU. В этом случае, остальные параметры SAO текущей LCU не требуется синтаксически анализировать.
Декодер 26 обхода SAO может определять абсолютное значение сдвига относительно каждого цветового компонента и каждой категории. Каждое значение сдвига может быть равно или больше, чем заданное минимальное значение, и может быть равно или меньше, чем заданное максимальное значение.
Если информация о типе SAO указывает тип полосы, то положение полосы, включающей пиксельные значения восстановленных пикселов, может быть определено на основе информации о положении полосы, полученной декодером 26 обхода SAO.
Если информация о типе SAO указывает тип полосы, и абсолютное значение сдвига определено как 0, то декодер 26 обхода SAO не восстанавливает информацию о знаке сдвига. Если абсолютное значение сдвига не равно 0, то декодер 26 обхода SAO может получить информацию о знаке сдвига и может определить, является ли значение сдвига положительным значением или отрицательным значением. Также, декодер 26 обхода SAO может получить информацию о положении полосы после получения информации о знаке сдвига.
Если информация о типе SAO указывает тип края, на основе информации о классе края, полученной декодером 26 обхода, направление края восстановленных пикселов, включенных в текущую LCU, может быть определено как 0º, 90º, 45º или 135º.
SAO-оператор 28 может определять, является ли типом SAO текущей LCU тип края или тип полосы, на основе второго бита информации о типе SAO яркости и может выполнять операцию SAO края или операцию SAO полосы на компоненте яркости текущей LCU.
SAO-оператор 28 может определять, является ли типом SAO текущей LCU тип края или тип полосы, на основе второго бита информации о типе SAO цветности и может выполнять операцию SAO края или операцию SAO полосы на первом и втором компонентах цветности текущей LCU.
Кроме того, если определено выполнять операцию SAO края на первом и втором компонентах цветности текущей LCU, SAO-оператор 28 может определить, что первый и второй компоненты цветности текущей LCU имеют тот же самый класс края, на основе информации о типе SAO цветности.
Информация об абсолютном значении сдвига из числа параметров SAO, полученных декодером 26 обхода SAO, может быть ограничена значением равным или меньшим, чем пороговое значение, на основе битовой глубины видео. Информация об абсолютном значении сдвига может указывать значение в пределах диапазона, основанного на битовой глубине видео. Например, если битовая глубина соответствует 8 битам, абсолютное значение сдвига может быть значением, равным или большим, чем 0, и равным или меньшим, чем 7. В качестве другого примера, если битовая глубина соответствует 10 битам, абсолютное значение сдвига может быть значением, равным или большим чем 0 и равным или меньшим чем 31.
Также, если определено выполнять операцию SAO полосы на текущей LCU из второго бита информации о типе SAO, декодер 26 обхода SAO может выполнять CABAC-декодирование в режиме обхода на битах, имеющих фиксированную битовую длину и следующих после второго бита информации о типе SAO. Декодер 26 обхода SAO может получать информацию о левой начальной точке полос из последних битов фиксированной битовой длины информации о типе SAO относительно каждого из компонента яркости и компонента цветности.
На основе информации идентификации краевой полосы, восстановленной декодером 26 обхода SAO, способ классификации пиксельного значения текущей LCU может быть определен как тип края или тип полосы.
SAO-оператор 28 может корректировать пиксельные значения восстановленных выборок посредством разностных значений, определенных относительно единиц кодирования, разделенных из текущей LCU и имеющих древовидную структуру.
Устройство 20 декодирования SAO может включать в себя центральный процессор (не показан) для совместного управления энтропийным декодером 22, контекстным декодером 24 SAO, декодером 26 обхода SAO и SAO-оператором 28. Альтернативно, энтропийный декодер 22, контекстный декодер 24 SAO, декодер 26 обхода SAO и SAO-оператор 28 могут управляться их отдельными процессорами (не показаны), которые совместно работают, чтобы управлять устройством 20 декодирования SAO. Альтернативно, внешний процессор (не показан) вне устройства 20 декодирования SAO может управлять энтропийным декодером 22, контекстным декодером 24 SAO, декодером 26 обхода SAO и SAO-оператором 28.
Устройство 20 декодирования SAO может включать в себя один или более блоков хранения данных (не показаны), чтобы хранить данные ввода и вывода энтропийного декодера 22, контекстного декодера 24 SAO, декодера 26 обхода SAO и SAO-оператора 28. Устройство 20 декодирования SAO может включать в сея контроллер памяти (не показан) для управления вводом и выводом данных в/из блоков хранения данных.
Чтобы восстанавливать видео путем выполнения декодирования видео, устройство 20 декодирования SAO может работать в ассоциации с внутренним или внешним процессором декодирования видео. Внутренний процессор декодирования видео устройства 20 декодирования SAO может быть независимым процессором для выполнения базовой операции декодирования видео. Также, устройство 20 декодирования SAO, центральный процессор или модуль обработки графики может включать модуль процессора декодирования видео, чтобы выполнять базовую операцию декодирования видео.
Способ декодирования видео с использованием метода SAO будет подробно описан ниже со ссылками на Фиг. 3. Фиг. 3 является блок-схемой устройства 30 декодирования видео 30 согласно вариантам осуществления настоящего раскрытия.
Устройство 30 декодирования видео включает в себя энтропийный декодер 31, обратный квантователь 32, обратный преобразователь 33, модуль 34 восстановления, модуль 35 интра- предсказания, буфер 36 опорных картинок (кадров), компенсатор 37 движения, фильтр 38 устранения блочности и SAO-оператор 39.
Устройство 30 декодирования видео 30 может принимать битовый поток, включающий в себя кодированные видео данные. Энтропийный декодер 31 может синтаксически анализировать информацию интра-режима, информацию интер-режима, информацию SAO и остатки от битового потока.
Остатки, извлеченные энтропийным декодером 31, могут быть квантованными коэффициентами преобразования. Соответственно, обратный квантователь 32 может выполнять обратное квантование на остатках, чтобы восстанавливать коэффициенты преобразования, и обратный преобразователь 33 может выполнять обратное преобразование на восстановленных коэффициентах, чтобы восстанавливать остаточные значения пространственной области.
Чтобы предсказывать и восстанавливать остаточные значения пространственной области, может выполняться интра-предсказание, или компенсация движения.
Если информация интра-режима извлечена энтропийным декодером 31, модуль 35 интра-предсказания может определить опорные выборки для ссылки при восстановлении текущих выборок из числа выборок, пространственно смежных с текущими выборками, с использованием информации интра-режима. Опорные выборки могут быть выбраны из числа выборок, ранее восстановленных модулем 34 восстановления. Модуль 34 восстановления может восстанавливать текущие выборки с использованием опорных выборок, определенных на основе информации интра-режима и остаточных значений, восстановленных обратным преобразователем 33.
Если информация интер-режима извлечена энтропийным декодером 31, компенсатор 37 движения может определить опорную картинку для ссылки при восстановлении текущих выборок текущей картинки из числа картинок, восстановленных перед текущей картинкой, с использованием информации интер-режима. Информация интер-режима может включать в себя вектора движения, опорные индексы и т.д. С использованием опорных индексов, из числа картинок, восстановленных перед текущей картинкой и сохраненных в буфере 36 опорных картинок, может быть определена опорная картинка для использования при выполнении компенсации движения на текущих выборках. С использованием векторов движения может быть определен опорный блок опорной картинки для использования при выполнении компенсации движения на текущем блоке. Модуль 34 восстановления может восстанавливать текущие выборки с использованием опорного блока, определенного на основе информации интер-режима и остаточных значений, восстановленных обратным преобразователем 33.
Модуль 34 восстановления может восстанавливать выборки и может выводить восстановленные пикселы. Модуль 34 восстановления может генерировать восстановленные пикселы каждой LCU на основе единиц кодирования, имеющих древовидную структуру.
Фильтр 38 устранения блочности может выполнять фильтрацию для уменьшения явления блочности пикселов, расположенных в краевых областях LCU или каждой из единиц кодирования, имеющих древовидную структуру.
Также, SAO-оператор 39 может корректировать сдвиги восстановленных пикселов каждой LCU согласно методу SAO. SAO-оператор 39 может определять тип SAO, класс SAO и значения сдвига текущей LCU на основе информации о SAO, извлеченной энтропийным декодером 31.
Операция извлечения информации о SAO энтропийным декодером 31 может соответствовать операции модуля 22 извлечения параметров SAO из устройства 20 декодирования SAO, и операции SAO-оператора 39 могут соответствовать операциям модуля 24 определения SAO, и SAO-оператора 26 из устройства 20 декодирования SAO.
SAO-оператор 39 может определить знаки и разностные значения значений сдвига относительно восстановленных пикселов текущей LCU на основе значений сдвига, определенных из информации SAO. SAO-оператор 39 может уменьшить ошибки между восстановленными пикселами и исходными пикселами путем увеличения или уменьшения пиксельных значений восстановленных пикселов посредством разностных значений, определенных на основе значений сдвига.
Картинка, включающая в себя восстановленные пикселы, скорректированные по сдвигу SAO-оператором 39, может быть сохранена в буфере 36 опорных картинок. Таким образом, при использовании опорной картинки, имеющей минимизированные ошибки между восстановленными выборками и исходными пикселами согласно операции SAO, компенсация движения может быть выполнена на следующей картинке.
Согласно операции SAO, на основе разностных значений между восстановленными пикселами и исходными пикселами, может быть определен сдвиг группы пикселов, включающей в себя восстановленные пикселы. Для операции SAO, варианты осуществления для классификации восстановленных пикселов в группы пикселов будут теперь описаны подробно.
Согласно операции SAO, пикселы могут быть классифицированы (i) на основе типа края восстановленных пикселов, или (ii) типа полосы восстановленных пикселов. Классифицированы ли пикселы на основе типа края или типа полосы, может быть определено с использованием типа SAO.
Варианты осуществления классификации пикселов на основе типа края согласно операции SAO будут теперь описаны подробно.
Когда сдвиги типа края текущей LCU определены, класс края каждого из восстановленных пикселов, включенных в текущую LCU, может быть определен. Другими словами, путем сравнения пиксельных значений текущих восстановленных пикселов и смежных пикселов, может быть определен класс края текущих восстановленных пикселов. Пример определения класса края будет теперь описан со ссылкой на Фиг. 4.
Фиг. 4 является таблицей, показывающей классы края типов края, согласно вариантам осуществления настоящего раскрытия.
Индексы 0, 1, 2, и 3 могут быть последовательно назначены классам 41, 42, 43 и 44 края. Если тип края возникает часто, малый индекс может быть назначен типу края.
Класс края может указывать направление 1-мерных краев, сформированных между текущим восстановленным пикселом X0 и двумя смежными пикселами. Класс 41 края, имеющий индекс 0, указывает на случай, когда края сформированы между текущим восстановленным пикселом X0 и двумя горизонтально смежными пикселами X1 и X2. Класс 42 края, имеющий индекс 1, указывает на случай, когда края сформированы между текущим восстановленным пикселом X0 и двумя вертикально смежными пикселами X3 и X4. Класс 43 края, имеющий индекс 2, указывает на случай, когда края сформированы между текущим восстановленным пикселом X0 и двумя 135о-диагонально смежными пикселами X5 и X8. Класс 44 края, имеющий индекс 3, указывает на случай, когда края сформированы между текущим восстановленным пикселом X0 и двумя 45о-диагонально смежными пикселами X6 и X7.
Соответственно, путем анализа направлений краев восстановленных пикселов, включенных в текущую LCU, и, таким образом, определения точного направления края в текущей LCU, класс края текущей LCU может быть определен.
Относительно каждого класса края категории могут быть классифицированы согласно форме края текущего пиксела. Пример категорий согласно формам края будет теперь описан со ссылкой на Фиг. 5A и 5B.
Фиг. 5A и 5B являются таблицей и графиком, показывающими категории типов края, согласно вариантам осуществления настоящего раскрытия.
Категория края указывает, соответствует ли текущий пиксел самой низкой точке вогнутого края, пикселу, расположенному в угле изгиба вокруг самой низкой точки вогнутого края, самой высокой точке выпуклого края, или пикселу, расположенному в угле изгиба вокруг самой высокой точки выпуклого края.
Фиг. 5A в качестве примера показывает условия для определения категорий краев. Фиг. 5B в качестве примера показывает формы края между восстановленным пикселом и смежными пикселами и их пиксельными значениями c, a и b.
C указывает индекс текущего восстановленного пиксела, a и b указывают индексы смежных пикселов с двух сторон текущего восстановленного пиксела согласно направлению края. Xa, Xb и Xc соответственно указывают пиксельные значения восстановленных пикселов, имеющих индексы a, b и c. На Фиг. 5B ось х указывает индексы текущего восстановленного пиксела и смежных пикселов с двух сторон текущего восстановленного пиксела, и ось y указывает пиксельные значения выборок.
Категория 1 указывает случай, когда текущая выборка соответствует самой низкой точке вогнутого края, то есть локальной впадине (Хс<Xa && Хс<Xb). Как показано на графике 51, если текущий восстановленный пиксел c между смежными пикселами a и b соответствует самой низкой точке вогнутого края, то текущий восстановленный пиксел может быть классифицирован как категория 1.
Категория 2 указывает случай, когда текущая выборка расположена в угле изгиба вокруг самой низкой точки вогнутого края, то есть вогнутого угла (Хс<Xa && Xc==Xb || Xc==Xa && Хс<Xb). Как показано на графике 52, если текущий восстановленный пиксел c между смежными пикселами a и b расположен в конечной точке нисходящей кривой вогнутого края (Хс<Xa && Xc==Xb) или, как показано на графике 53, если текущий восстановленный пиксел c расположен в начальной точке восходящей кривой вогнутого края (Xc==Xa && Хс<Xb), текущий восстановленный пиксел может быть классифицирован как категория 2.
Категория 3 указывает случай, когда текущая выборка расположена в угле изгиба вокруг самой высокой точки выпуклого края, то есть выпуклого угла (Хс>Xa && Xc==Xb || Xc==Xa && Хс>Xb). Как показано на графике 54, если текущий восстановленный пиксел c между смежными пикселами a и b расположен в начальной точке нисходящей кривой выпуклого края (Xc==Xa && Хс>Xb) или, как показано на графике 55, если текущий восстановленный пиксел c расположен в конечной точке восходящей кривой выпуклого края (Хс>Xa && Xc==Xb), текущий восстановленный пиксел может быть классифицирован как категория 3.
Категория 4 указывает случай, когда текущая выборка соответствует самой высокой точке выпуклого края, то есть локальному пику (Хс>Xa && Xc>Xb). Как показано на графике 56, если текущий восстановленный пиксел c между смежными пикселами a и b соответствует самой высокой точке выпуклого края, текущий восстановленный пиксел может быть классифицирован как категория 4.
Если текущий восстановленный пиксел не удовлетворяет ни одному из условий категорий 1, 2, 3 и 4, текущий восстановленный пиксел не соответствует краю и, таким образом, классифицируется как категория 0, и сдвиг категории 0 не должен кодироваться.
Согласно варианту осуществления настоящего раскрытия, относительно восстановленных пикселов, соответствующих той же самой категории, среднее значение разностных значений между восстановленными пикселами и исходными пикселами может быть определено как сдвиг текущей категории. Кроме того, сдвиги всех категорий могут быть определены.
Вогнутые края категорий 1 и 2 могут быть сглажены, если восстановленные значения пиксела скорректированы с использованием положительных значений сдвига, и могут быть заострены вследствие отрицательных значений сдвига. Выпуклые края категорий 3 и 4 могут быть слажены вследствие отрицательных значений сдвига и могут быть заострены вследствие положительных значений сдвига.
Устройство 10 кодирования SAO может не допускать эффект заострения краев. Здесь, вогнутые края категорий 1 и 2 требуют положительных значений сдвига, и выпуклые края категорий 3 и 4 требуют отрицательных значений сдвига. В этом случае, если категория края известна, знак значения сдвига может быть определен. Соответственно, устройство 10 кодирования SAO может не передавать знак значения сдвига и может передавать только абсолютную величину значения сдвига. Также, устройство 20 декодирования SAO может не получать знак значения сдвига и может принимать только абсолютную величину значения сдвига.
Соответственно, устройство 10 кодирования SAO может кодировать и передавать значения сдвига согласно категориям текущего класса края, и устройство 20 декодирования SAO может корректировать восстановленные пикселы категорий принятыми значениями сдвига.
Например, если значение сдвига типа края определено как 0, устройство 10 кодирования SAO может передать только информацию о классе края.
Например, если абсолютное значение сдвига типа края не равно 0, устройство 10 кодирования SAO может передавать абсолютное значение сдвига значение и информацию о классе края. Относительно типа края, знак значения сдвига не требуется передавать.
Если принятое абсолютное значение сдвига не равно 0, устройство 20 декодирования SAO может считывать абсолютное значение сдвига типа края. Знак значения сдвига может быть предсказан согласно категории края на основе формы края между восстановленным пикселом и смежными пикселами.
Соответственно, устройство 10 кодирования SAO может классифицировать пикселы согласно направлениям края и формам края, может определить среднее значение ошибки между пикселами, имеющими те же самые характеристики как значение сдвига, и может определять значения сдвига согласно категориям. Устройство 10 кодирования SAO может кодировать и передавать информацию о типе SAO, указывающую на тип края, информацию о классе SAO, указывающую направление края, и значения сдвига.
Устройство 20 декодирования SAO может принимать информацию о типе SAO, информацию о классе SAO и значения сдвига и может определять направление края согласно информации о типе SAO и информации о классе SAO. Устройство 20 декодирования SAO может определять значение сдвига восстановленных пикселов категории, соответствующей форме края, согласно направлению края и может корректировать пиксельные значения восстановленных пикселов значением сдвига, таким образом минимизируя ошибку между исходным изображением и восстановленным изображением.
Варианты осуществления классификации пикселов на основе типа полосы согласно методу SAO будут теперь описаны подробно.
Согласно вариантам осуществления настоящего раскрытия, каждое из пиксельных значений восстановленных пикселов может принадлежать одной из множества полос. Например, пиксельные значения могут иметь полный диапазон от минимального значения Min, равного 0, до максимального значения Max, равного 2^(p-1), согласно p-битовой дискретизации. Если полный диапазон (Min, Max) пиксельных значений разделен на K периодов, каждый период пиксельных значений упоминается как полоса. Если Bk указывает на максимальное значение k-й полосы, полосы [B0, B1-1], [B1, B2-1], [B2, B3-1]…, и [Bk-1, Bk] могут быть разделены. Если пиксельное значение текущего восстановленного пиксела Rec(x,y) принадлежит полосе [Bk-1, Bk], текущая полоса может быть определена как k. Полосы могут быть разделены равномерно и неравномерно.
Например, если значения пиксела классифицированы на равные 8-битовые пиксельные полосы, пиксельные значения могут быть разделены на 32 полосы. Более подробно, они могут быть классифицированы в полосы [0, 7], [8, 15]…, [240, 247] и [248, 255].
Из числа множества полос, классифицированных согласно типу полосы, может быть определена полоса, которой принадлежит каждое из пиксельных значений восстановленных пикселов. Кроме того, значение сдвига, указывающее на среднее ошибок между исходными пикселами и восстановленными пикселами в каждой полосе, может быть определено.
Соответственно, устройство 10 кодирования SAO и устройство 20 декодирования SAO могут кодировать и передавать/принимать сдвиг, соответствующий каждой из полос, классифицированных согласно текущему типу полосы, и может корректировать восстановленные пикселы сдвигом.
Соответственно, относительно типа полосы, устройство 10 кодирования SAO и устройство 20 декодирования SAO могут классифицировать восстановленные пикселы согласно полосам, которым принадлежат их пиксельные значения, могут определять сдвиг как среднее ошибочных значений восстановленных пикселов, которые принадлежат той же самой полосе, и могут корректировать восстановленные пикселы сдвигом, таким образом, минимизируя ошибку между исходным изображением и восстановленным изображением.
Когда сдвиг согласно типу полосы определен, устройство 10 кодирования SAO и устройство 20 декодирования SAO могут классифицировать восстановленные пикселы в категории согласно положению полосы. Например, если полный диапазон пиксельных значений разделен на K полос, категории могут быть индексированы согласно индексу k полосы, указывающему k-ю полосу. Число категорий может быть определено, чтобы соответствовать числу полос.
Однако, чтобы уменьшить данные, устройство 10 кодирования SAO и устройство 20 декодирования SAO могут ограничить число категорий, используемых, чтобы определять сдвиги согласно методу SAO. Например, предопределенное число полос, которые непрерывны от полосы, имеющей предопределенное начальное положение, в направлении, в котором увеличивается индекс полосы, может быть назначено категориям, и только сдвиг каждой категории может быть определен.
Например, если полоса, имеющая индекс 12, определена как начальная полоса, четыре полосы от начальной полосы, то есть полосы, имеющие индексы 12, 13, 14 и 15, могут быть соответственно назначены категориям 1, 2, 3 и 4. Соответственно, средняя ошибка между восстановленными пикселами и исходными пикселами, включенными в полосу, имеющую индекс 12, может быть определена как сдвиг категории 1. Аналогично, средняя ошибка между восстановленными пикселами и исходными пикселами, включенными в полосу, имеющую индекс 13, может быть определена как сдвиг категории 2, средняя ошибка между восстановленными пикселами и исходными пикселами, включенными в полосу, имеющую индекс 14, может быть определена как сдвиг категории 3, и средняя ошибка между восстановленными пикселами и исходными пикселами, включенными в полосу, имеющую индекс 15, может быть определена как сдвиг категории 4.
В этом случае, информация о начальном положении диапазона полос, то есть положение левой полосы, необходима, чтобы определять положения полос, распределенных в категории. Соответственно, устройство 10 кодирования SAO может кодировать и передавать информацию о левой начальной точке, указывающую положение левой полосы, как класс SAO. Устройство 10 кодирования SAO может кодировать и передавать тип SAO, указывающий тип полосы, класс SAO и значения смещения согласно категориям.
Устройство 20 декодирования SAO может принимать тип SAO, класс SAO и значения сдвига согласно категориям. Если принятый тип SAO является типом полосы, устройство 20 декодирования SAO может считывать положение начальной полосы из класса SAO. Устройство 20 декодирования SAO может определять полосу, к которой принадлежат восстановленные пикселы, из числа четырех полос от начальной полосы, может определить значение сдвига, назначенное текущей полосе из числа значений сдвига согласно категориям, и может корректировать пиксельные значения восстановленных пикселов значением сдвига.
Выше, тип края и тип полосы введены как типы SAO, и класс SAO и категория согласно типу SAO описаны подробно. Параметры SAO, кодированные и передаваемые/принимаемые устройством 10 кодирования SAO и устройством 20 декодирования SAO, будут теперь описаны подробно.
Устройство 10 кодирования SAO и устройство 20 декодирования SAO могут определить тип SAO согласно способу классификации пикселов восстановленных пикселов каждой LCU.
Тип SAO может быть определен согласно характеристикам изображения каждого блока. Например, относительно LCU, включающей в себя вертикальный край, горизонтальный край и диагональный край, чтобы изменить значения края, значения сдвига могут быть определены путем классификации пиксельных значений согласно типу края. Относительно LCU, не включающей в себя область края, значения сдвига могут быть определены согласно классификации полосы. Соответственно, устройство 10 кодирования SAO и устройство 20 декодирования SAO могут сигнализировать тип SAO относительно каждой LCU.
Устройство 10 кодирования SAO и устройство 20 декодирования SAO могут определить параметры SAO относительно каждой LCU. Другими словами, могут быть определены типы SAO восстановленных пикселов LCU, восстановленные пикселы LCU могут быть классифицированы в категории, и значения сдвига могут быть определены согласно категориям.
Из числа восстановленных пикселов, включенных в LCU, устройство 10 кодирования SAO может определить среднюю ошибку восстановленных пикселов, классифицированных в ту же самую категорию, как значение сдвига. Значение сдвига каждой категории может быть определено.
Согласно вариантам осуществления настоящего раскрытия, параметры SAO могут включать в себя тип SAO, значение сдвига и класс SAO. Устройство 10 кодирования SAO и устройство 20 декодирования SAO могут передавать/принимать параметры SAO, определенные относительно каждой LCU.
Из числа параметров SAO LCU, устройство 10 кодирования SAO может кодировать и передавать тип SAO и значения сдвига. Если типом SAO является тип края, устройство 10 кодирования SAO может дополнительно передавать класс SAO, указывающий направление края, которое сопровождается типом SAO и значениями сдвига согласно категориям. Если типом SAO является тип полосы, устройство 10 кодирования SAO может дополнительно передать класс SAO, указывающий положение начальной полосы, который сопровождается типом SAO и значениями сдвига согласно категориям. Класс SAO может быть классифицирован как информация о классе края относительно типа края и может быть классифицирован как информация о положении полосы относительно типа полосы.
Устройство 20 декодирования SAO может принимать параметры SAO каждой LCU, которые включают в себя тип SAO, значения сдвига и класс SAO. Также, устройство 20 декодирования SAO может выбрать значение сдвига категории, к которой принадлежит каждый восстановленный пиксел, из числа значений сдвига согласно категориям, и может корректировать восстановленный пиксел выбранным значением сдвига.
Варианты осуществления передачи/приема значений сдвига из числа параметров SAO будут описаны ниже.
Чтобы передать значения сдвига, устройство 10 кодирования SAO может дополнительно передать информацию о знаке и абсолютном остатке.
Если абсолютное значение сдвига равно 0, информация о знаке или абсолютный остаток не требуется кодировать. Однако, если абсолютное значение сдвига не равно 0, то информация о знаке и абсолютный остаток могут дополнительно передаваться.
Однако, как описано выше, относительно типа края, так как значение сдвига может быть предсказано как положительное число или отрицательное число согласно категории, информацию о знаке не требуется передавать.
Согласно вариантам осуществления настоящего раскрытия, значение сдвига Off-Set может быть заранее ограничено в пределах диапазона от минимального значения MinOffset до максимального значения MaxOffset прежде, чем значение сдвига будет определено (MinOffset≤Off-Set≤MaxOffset).
Например, относительно типа края, значения сдвига восстановленных пикселов категорий 1 и 2 могут быть определены в пределах диапазона от минимального значения 0 до максимального значения 7. Относительно типа края, значения сдвига восстановленных пикселов категорий 3 и 4 могут быть определены в пределах диапазона от минимального значения -7 до максимального значения 0.
Например, относительно типа полосы, значения сдвига восстановленных пикселов всех категорий могут быть определены в пределах диапазона от минимального значения -7 до максимального значения 7.
Чтобы сократить биты передачи значения сдвига, остаток может быть ограничен до р-битового значения вместо отрицательного числа. В этом случае, остаток может быть больше или равен 0 и может быть меньше или равен разностному значению между максимальным значением и минимальным значением (0≤Остаток≤MaxOffset-MinOffset+1≤2^p). Если устройство 10 кодирования SAO передает остаток, и устройство 20 декодирования SAO знает по меньшей мере одно из максимального значения и минимального значения для значения сдвига, исходное значение сдвига может быть восстановлено с использованием только принятого остатка.
Из числа параметров SAO, информация о слиянии SAO будет подробно описана ниже.
Тип SAO и/или значения сдвига смежных блоков могут быть, вероятно, теми же самыми. Устройство 10 кодирования SAO может сравнивать параметры SAO из текущего блока с параметрами SAO из смежных блоков и может объединять и кодировать параметры SAO из текущего блока и смежных блоков, если параметры SAO те же самые. Если параметры SAO смежного блока ранее закодированы, параметры SAO из смежного блока могут быть приняты в качестве параметров SAO текущего блока. Соответственно, устройство 10 кодирования SAO может не кодировать параметры SAO из текущего блока и может кодировать только информацию о слиянии SAO текущего блока.
Прежде чем синтаксически анализировать параметры SAO из принятого битового потока, устройство 20 декодирования SAO может сначала синтаксически анализировать информацию о слиянии SAO и может определить, следует ли синтаксически анализировать параметры SAO. Устройство 20 декодирования SAO может определить, существует ли смежный блок, имеющий те же самые параметры SAO, что и таковые текущего блока, на основе информации о слиянии SAO.
Например, если определено, что смежный блок, имеющий те же самые параметры SAO, что и таковые текущего блока, существует, на основе информации о слиянии SAO, то устройство 20 декодирования SAO может не анализировать параметры SAO из текущего блока и может принять восстановленные параметры SAO из смежного блока в качестве параметров SAO текущего блока. Соответственно, устройство 20 декодирования SAO может восстанавливать параметры SAO текущего блока как те же самые, что и таковые из смежного блока. Также, на основе информации о слиянии SAO, может быть определен смежный блок, имеющий параметры SAO, на которые можно ссылаться.
Например, если параметры SAO смежных блоков отличаются от параметров SAO текущего блока, основываясь на информации о слиянии SAO, то устройство 20 декодирования SAO может синтаксически анализировать и восстанавливать параметры SAO текущего блока из битового потока.
На Фиг. 6A представлена диаграмма, показывающая смежные LCU для ссылки, чтобы объединять параметры SAO, согласно вариантам осуществления настоящего раскрытия.
Устройство 10 кодирования SAO может определить список кандидатов смежных LCU для ссылки, чтобы предсказывать параметры SAO текущей LCU 651 из числа смежных LCU, восстановленных до текущей LCU 651. Устройство 10 кодирования SAO может сравнивать параметры SAO из текущей LCU 651 и смежных LCU в списке кандидатов.
Например, просто, левая и верхняя LCU 653 и 652 от текущей LCU 651 в текущей картинке 65 могут быть включены в список кандидатов.
Соответственно, устройство 10 кодирования SAO может сравнивать параметры SAO из смежных LCU, включенных в список кандидатов, с таковыми текущей LCU 651 согласно порядку ссылки. Например, параметры SAO могут сравниваться с таковыми текущей LCU 651 в порядке левой LCU 653 и верхней LCU 652. Из числа сравниваемых левой и верхней LCU 653 и 652, LCU, имеющая те же самые параметры SAO, что и таковые текущей LCU 651, может быть определена как опорная LCU.
Чтобы предсказывать параметры SAO текущей LCU 651, устройство 10 кодирования SAO и устройство 20 декодирования SAO могут обратиться к тем же самым смежным LCU. Кроме того, информация о слиянии SAO, указывающая LCU, имеющую параметры SAO, на которые можно ссылаться, может передаваться/приниматься. Устройство 20 декодирования SAO может выбрать одну из смежных LCU на основе информация о слиянии SAO и может восстановить параметры SAO текущей LCU 651 как те же самые, что и таковые у выбранной смежной LCU.
Например, предполагается, что ссылаются на левую и верхнюю LCU 653 и 652. Энтропийный кодер 14 может кодировать информацию о слиянии влево SAO, указывающую, являются ли параметры SAO левой LCU 653 относительно текущей LCU 651 теми же самыми, что и таковые текущей LCU 651, и информацию о слиянии вверх SAO, указывающую, являются ли параметры SAO верхней LCU 652 теми же самыми, что и таковые текущей LCU 651, в качестве информации о слиянии SAO. В этом случае, параметры SAO текущей LCU 651 и левой LCU 653 могут первоначально сравниваться, чтобы определить, являются ли они теми же самыми, и затем параметры SAO текущей LCU 651 и верхней LCU 652 могут сравниваться, чтобы определить, являются ли они теми же самыми. Согласно результату сравнения, информация о слиянии SAO может быть определена.
Если параметры SAO по меньшей мере одной из левой и верхней LCU 653 и 652 являются теми же самыми, что и таковые текущей LCU 651, энтропийный кодер 14 может кодировать только информацию о слиянии влево SAO и информацию о слиянии вверх SAO и может не кодировать параметры SAO текущей LCU 651.
Если параметры SAO обеих из левой и верхней LCU 653 и 652 отличаются от таковых текущей LCU 651, энтропийный кодер 14 может кодировать информацию о слиянии влево SAO и информацию о слиянии вверх SAO и параметры SAO текущей LCU 651.
Параметры SAO согласно цветовым компонентам описаны ниже подробно.
Устройство 10 кодирования SAO и устройство 20 декодирования SAO могут взаимно предсказывать параметры SAO между цветовыми компонентами.
Устройство 10 кодирования SAO и устройство 20 декодирования SAO могут выполнять операцию SAO как на блоках яркости, так и на блоках цветности в формате цвета YCrCb. Значения сдвига компонента яркости (компонента Y) и первого и второго компонентов цветности (компонентов Cr и Cb) текущей LCU могут быть определены.
Согласно варианту осуществления, общая информация о слиянии SAO может быть применена к компоненту Y, компоненту Cr и компоненту Cb текущей LCU. Другими словами, на основе одного фрагмента информации о слиянии SAO, может быть определено, являются ли параметры SAO компонента Y теми же самыми, что и таковые компонента Y смежной LCU, может быть определено, являются ли параметры SAO компонента Cr теми же самыми, что и таковые у компонента Cr смежной LCU, и может быть определено, являются ли параметры SAO компонента Cb теми же самыми, что и таковые у компонента Cb смежной LCU.
Согласно другому варианту осуществления, общая информация о типе SAO может быть применена к компонентам Cr и Cb текущей LCU. Другими словами, на основе одного фрагмента информации о типе SAO может быть определено, выполняется ли операция SAO одновременно или неодновременно на компонентах Cr и Cb. Кроме того, на основе одного фрагмента информации о типе SAO, может быть идентифицировано, определены ли значения сдвига компонентов Cr и Cb согласно типу края или типу полосы. Если типом SAO является тип края на основе одного фрагмента информации о типе SAO, компоненты Cr и Cb могут совместно использовать то же самое направление края.
Другими словами, на основе одного фрагмента информации о типе SAO, может быть идентифицировано, определены ли значения сдвигов компонентов Cr и Cb согласно типу края или типу полосы.
Кроме того, на основе одного фрагмента информации о типе SAO, компоненты Cr и Cb могут совместно использовать тот же самый класс SAO. Если типом SAO является тип на основе одного фрагмента информации о типе SAO, компоненты Cr и Cb могут совместно использовать то же самое направление края. Если типом SAO является тип полосы на основе одного фрагмента информации о типе SAO, то компоненты Cr и Cb могут совместно использовать то же самое начальное положение левой полосы.
Структура синтаксиса для определения параметров SAO текущего LCU будет теперь описана подробно со ссылкой на Фиг. 6B и 7A-7C.
На Фиг. 6B представлена диаграмма, показывающая процесс выполнения энтропийного кодирования на параметрах SAO 60 согласно другому варианту осуществления настоящего раскрытия.
Поскольку операция SAO выполняется на каждом цветовом компоненте LCU, параметры SAO 60 из Фиг. 6B могут быть индивидуально получены относительно каждого цветового компонента. Если цветовой индекс ‘cldx’, указывающий компонент яркости или первый или второй компонент цветности, изменяется, дополнительные параметры SAO 60 могут быть получены.
Параметры SAO 60 могут включать в себя параметр ‘sao_merge_left_flag’, указывающий информацию о слиянии влево SAO, параметр ‘sao_merge_up_flag’, указывающий информацию о слиянии вверх SAO, параметр ‘sao_type_idx’, указывающий информацию о типе SAO, параметр ‘sao_band_position’, указывающий информацию о положении полосы типа полосы, параметр ‘sao_offset_abs’, указывающий информацию об абсолютном значении сдвига, и параметр ‘sao_offset_sign’, указывающий информацию о знаке сдвига. Соответственно, всякий раз, когда цветовой индекс ‘cldx’ установлен как 0, 1 или 2, ‘sao_merge_left_flag’, ‘sao_merge_up_flag’, ‘sao_type_idx’, ‘sao_band_position’, ‘sao_offset_abs’ и ‘sao_offset_sign’ могут быть получены заново.
В частности, параметр ‘sao_offset_abs’, указывающий информацию об абсолютном значении сдвига, и параметр ‘sao_offset_sign’, указывающий информацию о знаке сдвига, могут быть дополнительно получены относительно четырех категорий SAO. Соответственно, ‘sao_offset_abs’ и ‘sao_offset_sign’ могут быть получены относительно каждой из четырех категорий и каждого цветового компонента.
Кроме того, параметры SAO 60 могут иметь различные способы энтропийного кодирования. Контекстное декодирование или декодирование обхода могут быть выполнены согласно способу энтропийного кодирования полученного параметра.
Например, 1 бин, указывающий параметр ‘sao_merge_left_flag’, может быть контекстно-декодирован, и 1 бин, указывающий параметр ‘sao_merge_up_flag’, может быть контекстно-декодирован. 6 бинов, указывающих параметр ‘sao_type_idx’, могут быть контекстно-декодированы.
Кроме того, 5 бинов, указывающих параметр ‘sao_band_position’ могут быть декодированы обходом. 31 бин, указывающий параметр ‘sao_offset_abs’, может быть контекстно-декодирован, и 1 бин, указывающий параметр ‘sao_offset_sign’, может быть декодирован обходом.
Учитывая, что параметры индивидуально получены относительно трех цветовых компонентов, и некоторые параметры индивидуально получены относительно четырех категорий SAO, до 423 бинов могут быть получены согласно Уравнению a.
<Уравнение a>
3×(1+1+6+5+4×31+4×1)=396+27=423
В частности, из числа 423 бинов, 396 бинов могут быть контекстно-декодированы, и 27 бинов могут быть декодированы обходом. Для контекстного декодирования, поскольку каждый бин требует основанного на контексте вероятностного моделирования, объем вычислений является большим. Соответственно, если число контекстно-декодируемых бинов больше, чем число декодируемых обходом бинов во всем битовом потоке параметров SAO 60, объем вычислений и время на декодирование всех параметров SAO 60 увеличиваются.
Кроме того, параметр ‘sao_band_position’, указывающий информацию о положении полосы, должен декодироваться обходом, параметр ‘sao_offset_abs’, указывающий информацию об абсолютном значении сдвига, должен быть контекстно-декодирован, и параметр ‘sao_offset_sign’, указывающий информацию о знаке сдвига, должен декодироваться обходом. В особенности, поскольку индекс категории SAO увеличивается как 0, 1, 2 и 3, операции контекстного декодирования на параметре ‘sao_offset_abs’ и операции по декодированию обходом на параметре ‘sao_offset_sign’ должны быть поочередно выполняемыми.
Поочередное выполнение различных операций энтропийного декодирования не эффективно по сравнению с непрерывным выполнением той же самой операции энтропийного декодирования. Соответственно, если операции контекстного декодирования и операции декодирования обходом поочередно выполняются множество раз на параметрах ‘sao_band_position’, ‘sao_offset_abs’ и ‘sao_offset_sign’ из числа параметров 60 SAO, эффективность полной операции энтропийного декодирования может быть снижена.
Фиг. 7A показывает синтаксис SAO 70 единицы кодирования согласно вариантам осуществления настоящего раскрытия.
Синтаксис SAO 70 на Фиг. 7A является частью синтаксиса LCU, которая связана с параметрами SAO. Устройство 10 кодирования SAO может определять параметры SAO путем выполнения операции SAO на выборках LCU и может выполнять энтропийное кодирование на параметрах SAO. Также, устройство 10 кодирования SAO может генерировать битовый поток, включающий в себя битовые потоки параметров SAO согласно порядку, указанному синтаксисом SAO 70.
Устройство 20 декодирования SAO может получать битовые потоки параметров SAO путем синтаксического анализа синтаксиса SAO 70 и может восстанавливать параметры SAO путем выполнения энтропийного декодирования на параметрах SAO. Устройство 20 декодирования SAO может выполнять операцию SAO на восстановленных выборках LCU с использованием восстановленных параметров SAO.
Если левая LCU, смежная с текущей LCU, существует в текущем сегменте, может быть получена информация о слиянии влево SAO ‘sao_merge_left_flag’ 71. Иначе, если верхняя LCU, смежная с текущей LCU, существует в текущем сегменте и не выполняется слияние параметров SAO левой LCU, может быть получена информация о слиянии вверх SAO ‘sao_merge_up_flag’ 72.
‘sao_merge_left_flag’ 71 и ‘sao_merge_up_flag’ 72 могут быть получены независимо от цветовых компонентов и, таким образом, могут быть в общем применены к компоненту яркости и первому и второму компонентам цветности. Тот же самый вектор движения может использоваться, чтобы выполнять компенсацию движения на трех цветовых компонентах. Соответственно, поскольку информация о слиянии SAO получена независимо от цветовых компонентов, операция SAO, использующая информацию 71 и 72 о слиянии влево и вверх SAO, может быть эффективно объединена с кодеком для выполнения компенсации движения.
Параметры SAO, кроме ‘sao_merge_left_flag’ 71 и ‘sao_merge_up_flag’ 72 (741, 743, 751, 753, 77, 781, 782, 791 и 793), могут быть отделены согласно цветовым компонентам и, таким образом, могут быть получены путем назначения цветового индекса ‘cldx’ как 0, 1 и 2 (73).
Если текущий цветовой индекс указывает компонент яркости (74), информация о включении/выключении SAO яркости ‘sao_on_off_flag_luma’ 741 может быть получена. Если операция SAO выполняется на компоненте яркости, информация идентификации краевой полосы яркости ‘sao_eo_bo_flag_luma’ 743 может быть дополнительно получена.
Иначе, если текущий цветовой индекс является первым компонентом цветности (75), то информация о включении/выключении SAO цветности ‘sao_on_off_flag_chroma’ 751 для первого и второго компонентов цветности может быть получена. Если операция SAO выполняется на первом и втором компонентах цветности, информация идентификации краевой полосы цветности ‘sao_eo_bo_flag_chroma’ 753 может быть дополнительно получена. ‘sao_on_off_flag_chroma’ 751 и ‘sao_eo_bo_flag_chroma’ 753 могут быть получены, только когда цветовой индекс указывает первый компонент цветности, и могут не получаться, когда цветовой индекс указывает второй компонент цветности.
Информация о включении/выключении SAO информации о типе SAO не указывает ‘выключение’ (76), информация о классе SAO и информация значения сдвига для каждой категории SAO могут быть получены. Вследствие оператора цикла согласно увеличению в ‘i’, информация об абсолютном значении сдвига ‘sao_offset_abs’ 77, информация о знаке сдвига ‘sao_offset_sign’ 781 и информация о положении полосы ‘sao_band_position’ 783 могут быть индивидуально получены относительно каждой категории SAO.
Первоначально, если информация об абсолютном значении сдвига ‘sao_offset_abs’ 77 получена, и информация о типе SAO указывает тип полосы (78), то может быть получена информация о положении полосы ‘sao_band_position’ 783. В особенности, если информация об абсолютном значении сдвига ‘sao_offset_abs’ 77 не равна 0, информация о знаке сдвига ‘sao_offset_sign’ 781 может быть первоначально получена, и затем ‘sao_band_position’ 783 может быть получена.
Когда информация о типе SAO указывает тип края (79), если цветовой индекс указывает компонент яркости, информация о классе края яркости ‘sao_eo_class_luma’ 791 может быть получена. Если цветовой индекс указывает первый компонент цветности, информация о классе края цветности ‘sao_eo_class_chroma’ 793 для первого и второго компонентов цветности может быть получена. Если цветовой индекс указывает второй компонент цветности, ‘sao_eo_class_chroma’ 793 может не получаться.
Если информация о типе SAO указывает тип края, только информация о классе края яркости или цветности, 791 или 793, может быть получена, и информация о знаке сдвига может не получаться, потому что знак значения сдвига края может быть определен согласно классу края.
Как описано выше, информация о включении/выключении SAO цветности ‘sao_on_off_flag_chroma’ 751, информация об идентификации краевой полосы цветности ‘sao_eo_bo_flag_chroma’ 753 и информация о классе края цветности ‘sao_eo_class_chroma’ 793 являются параметрами, обычно применяемыми к первому и второму компонентам цветности.
Соответственно, поскольку информация о включении/выключении SAO цветности ‘sao_on_off_flag_chroma’ 751, информация идентификации краевой полосы цветности ‘sao_eo_bo_flag_chroma’ 753 и информация о классе края цветности ‘sao_eo_class_chroma’ 793 обычно получается относительно первого и второго компонентов цветности, доступ к памяти для выполнения операции SAO на компонентах цветности может быть упрощен. Кроме того, так как те же самые параметры применяются как к первому, так и второму компонентам цветности в каждом из интра-предсказания, компенсации движения и адаптивной контурной фильтрации (ALF), выполняемой на первом и втором компонентах цветности, параметры или выборки для каждой операции могут быть получены путем доступа к той же самой памяти. Соответственно, операция SAO может быть эффективно объединена с кодеком для выполнения интра-предсказания, компенсации движения и ALF.
Выше, операции устройства 20 декодирования SAO для получения параметров SAO путем синтаксического анализа синтаксиса SAO 70 последовательно подробно описаны. Процесс выполнения энтропийного декодирования на полученных параметрах SAO будет подробно описан ниже.
Устройство 20 декодирования SAO может выполнить контекстное декодирование на информации о слиянии влево SAO ‘sao_merge_left_flag’ 71 и информации о слиянии вверх SAO ‘sao_merge_up_flag’ 72. Соответственно, вероятностная модель, основанная на контексте бина информации 71 о слиянии влево SAO, может быть определена, и 1-биновое значение, используемое, чтобы вероятностно генерировать 1-битовую информацию 71 о слиянии влево SAO, может быть восстановлено. Вышеописанное контекстное декодирование может также выполняться на информации 72 о слиянии вверх SAO.
В отличие от параметров SAO 60 на Фиг. 6B, устройство 20 декодирования SAO может отдельно декодировать информацию о типе SAO как информацию о включении/выключении SAO, 741 и 743, информацию идентификации краевой полосы, 751 и 753, информацию 781 о знаке сдвига, информацию 783 о положении полосы и информацию о классе края, 791 и 793. Информация о классе края, 791 и 793, может быть получена относительно типа края, и информация 781 о знаке сдвига и информация 783 о положении полосы могут быть получены относительно типа полосы.
Контекстное декодирование выполняется для 6 бинов информации о типе SAO ‘sao_type_idx’ параметров SAO 60 по Фиг. 6B. С другой стороны, устройство 20 декодирования SAO может выполнять контекстное декодирование для 1 бина информации о включении/выключении SAO, 741 и 743, и может выполнять декодирование обхода для остальных параметров.
Например, относительно типа края, устройство 20 декодирования SAO может выполнять контекстное декодирование для 1 бина информации о включении/выключении SAO, 741 и 743, и может выполнять декодирование обхода для 1 бина информации идентификации краевой полосы, 751 или 753, и 2 бинов информации о классе края, 791 или 793.
Соответственно, учитывая, что только некоторые параметры индивидуально получаются относительно трех цветовых компонентов и четырех категорий SAO, относительно типа полосы, устройство 20 декодирования SAO может получить до 405 бинов согласно Уравнению b.
<Уравнение b>
1+1+2×(1+1)+3×(4×31+4×1+5)=4+401=405
В особенности, из числа 405 бинов, 4 бина могут быть контекстно-декодированы, и 401 бинов могут быть декодированы обходом. Другими словами, число операций контекстного декодирования, которые требуют относительно большого количества вычислений, существенно меньше, чем число операций декодирования обходом. Также, поскольку некоторые параметры SAO получают как тот же самый параметр относительно цветовых компонентов, длина целого битового потока параметров SAO может быть уменьшена.
Соответственно, поскольку устройство 20 декодирования SAO выполняет декодирование обхода на информации 751 или 753 об идентификации краевой полосы, информации 77 об абсолютном значении сдвига и информации 783 о положении полосы или информации 791 или 793 о классе края, получает общую информацию 71 и 72 о слиянии SAO относительно цветовых компонентов и получает общую информацию 741 или 743 о включении/выключении SAO, информацию 751 или 753 об идентификации краевой полосы и информацию 791 или 793 о классе края относительно компонентов цветности, эффективность полной операции энтропийного декодирования на параметрах SAO может быть улучшена.
Кроме того, в отличие от параметров SAO 60 из Фиг. 6B, устройство 20 декодирования SAO может получить информацию 783 о положении полосы позже, чем информацию 77 об абсолютном значении сдвига. Как таковое, устройство 20 декодирования SAO может выполнить контекстное декодирование на информации 71 и 72 о слиянии SAO и информации 741 или 743 о включении/выключении SAO и может выполнить декодирование обхода на информации 751 или 753 об идентификации краевой полосы, информации 77 об абсолютном значении сдвига и информации 783 о положении полосы или информации 791 или 793 о классе края.
Соответственно, по сравнению с параметрами SAO 60 из Фиг. 6B, поскольку количество раз, когда устройство 20 декодирования SAO поочередно выполняет контекстное декодирование и декодирование обхода при использовании синтаксиса SAO 70, уменьшается, эффективность операции энтропийного декодирования на параметрах SAO может быть улучшена.
Фиг. 7B и 7C показывают синтаксис SAO единицы кодирования, согласно другим вариантам осуществления настоящего раскрытия.
Синтаксис SAO на Фиг. 7B разработан, чтобы сократить количество условных операторов (if) для проверки цветового индекса в синтаксисе SAO 70 на Фиг. 7A, потому что количество вычислений увеличивается, если число условных операторов для проверки условия увеличивается.
В синтаксисе SAO на Фиг. 7B, условные операторы для проверки того, указывает ли текущий цветовой индекс на компонент яркости или первый компонент цветности, чтобы получить информацию 83 и 84 о включении/выключении SAO, не требуются. Согласно синтаксису SAO на Фиг. 7B, информация 83 о включении/выключении SAO яркости, информация 831 идентификации краевой полосы яркости и информация 832 о классе края яркости для компонента яркости могут быть последовательно получены, и затем информация 84 о включении/выключении SAO цветности, информация 841 идентификации краевой полосы цветности и информация 842 о классе края цветности для первого и второго компонентов цветности могут быть последовательно получены.
Таким образом, согласно синтаксису SAO на Фиг. 7B, по сравнению с синтаксисом SAO 70 на Фиг. 7A, поскольку четыре условных оператора для проверки, указывает ли текущий цветовой индекс на компонент яркости или первый компонент цветности, удалены, число условных операторов может быть уменьшено на 4.
В синтаксисе SAO на Фиг. 7B, после того как информация 83 о включении/выключении SAO, информация 831 идентификации краевой полосы, информация 832 о классе края яркости, информация 84 о включении/выключении SAO цветности, информация 841 идентификации краевой полосы и информация 842 о классе края цветности получены, информация 87 об абсолютном значении сдвига и информация 881 о знаке сдвига могут быть получены относительно каждого цветового компонента и каждой категории, и информация 883 положения полосы может быть получена относительно каждого цветового компонента.
В этом случае, операция контекстного декодирования выполняется над информацией 83 о включении/выключении SAO яркости, операция декодирования обхода выполняется над информацией 831 идентификации краевой полосы яркости и информации 832 о классе края яркости, операция контекстного декодирования выполняется над информацией 84 о включении/выключении SAO цветности, и операция декодирования обхода выполняется над информацией 841 идентификации краевой полосы цветности и информации 842 о классе края цветности. Операция декодирования обхода может быть выполнена на информации 87 об абсолютном значении сдвига, информация 881 о знаке сдвига и информации 883 положения полосы.
Соответственно, в синтаксисе SAO на Фиг. 7B, операции контекстного декодирования и декодирования обхода переключаются три раза.
Синтаксис SAO на Фиг. 7C разработан, чтобы уменьшать количество раз, когда контекстное декодирование и декодирование обхода переключаются в синтаксисе 70 на Фиг. 7B, в котором число условных операторов для проверки цветового индекса в синтаксисе 70 SAO на Фиг. 7A уменьшается.
В синтаксисе SAO на Фиг. 7C, получают информацию 83 о включении/выключении SAO яркости и затем получают информацию 84 о включении/выключении SAO цветности. После этого, информация 831 идентификации краевой полосы 831 яркости и информация 832 о классе края яркости могут быть получены на основании информации 83 о включении/выключении SAO яркости, и информация 841 идентификации краевой полосы цветности и информация 842 о классе края цветности могут быть получены на основе информации 84 о включении/выключении SAO цветности.
Соответственно, операция контекстного декодирования выполняется на информация 83 о включении/выключении SAO яркости и информации 84 о включении/выключении SAO цветности, и операция декодирования обхода выполняется над информацией 831 идентификации краевой полосы яркости, информации 832 о классе края яркости, информации 841 идентификации краевой полосы цветности и информации 842 о классе края цветности. Тогда, операция декодирования обхода может также быть выполнена на информации 87 об абсолютном значении сдвига, информации 881 о знаке сдвига и информации 883 о положении полосы. Соответственно, в синтаксисе SAO на Фиг. 7C, так как способы энтропийного декодирования переключаются только один раз с операции контекстного декодирования на операцию декодирования обхода и не выполняются с повторениями, эффективность операции энтропийного декодирования в целом может быть улучшена.
Согласно вышеописанным вариантам осуществления, устройство 10 кодирования SAO может выполнять кодирование обхода на информации об абсолютном значении сдвига для операции SAO. Таким образом, информация о типе SAO может быть разделена на информацию о включении/выключении SAO, информацию идентификации краевой полосы и информацию о положении полосы (или информацию о классе края), и контекстное кодирование может быть выполнено только на информации о включении/выключении SAO. Соответственно, из числа параметров SAO, путем сокращения количества параметров, подлежащих контекстному кодированию и увеличения количества параметров, подлежащих кодированию обхода, эффективность операции энтропийного кодирования в целом на параметрах SAO может быть улучшена.
Также, из числа параметров SAO, с использованием тех же параметров, как информация о включении/выключении SAO, информация идентификации краевой полосы и информация о классе края, для первого и второго компонентов цветности, и с использованием того же самого параметра, как информация о слиянии SAO, для компонента яркости и первого и второго компонентов цветности, общее количество передач параметров SAO может быть уменьшено.
Кроме того, путем уменьшения количества раз переключения операций контекстного кодирования и кодирования обхода, эффективность операции энтропийного кодирования может также быть улучшена.
Кроме того, из числа параметров SAO, поскольку устройство 20 декодирования SAO может выполнять контекстное декодирование только на информации слияния SAO и информации о включении/выключении SAO и может выполнять декодирование обхода на остальном битовом потоке, общий объем вычисления для декодирования параметров SAO может быть значительно уменьшен.
Кроме того, поскольку информация о включении/выключении SAO, информация идентификации краевой полосы и информация о классе края для первого и второго компонентов цветности получены как те же самые параметры, и информация слияния SAO для компонента яркости и первого и второго компонентов цветности получена как тот же самый параметр, полная битовая длина параметров SAO может быть уменьшена, и объем данных для синтаксического анализа также может быть уменьшен.
Кроме того, поскольку количество раз переключения операций контекстного декодирования и декодирования обхода уменьшается, эффективность операции энтропийного декодирования в целом на параметрах SAO может быть улучшена.
Соответственно, устройство кодирования видео и устройство декодирования видео, использующие операцию SAO, согласно вариантам осуществления настоящего раскрытия, могут классифицировать пиксельные значения каждой LCU согласно характеристикам изображения, таким как тип края или тип полосы, могут сигнализировать значение сдвига, которое является средним значением ошибки пиксельных значений, имеющих те же самые характеристики, и могут корректировать непредсказуемые пиксельные значения восстановленных пикселов значением сдвига, таким образом минимизируя ошибку между исходным изображением и восстановленным изображением.
В устройстве 10 кодирования SAO и устройстве 20 декодирования SAO, как описано выше, видео данные могут быть разделены на LCU, каждая LCU может кодироваться и декодироваться на основе единиц кодирования, имеющих древовидную структуру, и каждая LCU может определять значения сдвига согласно классификации пиксела. В дальнейшем способ кодирования видео, устройство кодирования видео, способ декодирования видео и устройство декодирования видео, основанные на единицах кодирования, имеющих древовидную структуру, и единицах преобразования, будут описаны со ссылками на Фиг. 8-27.
Фиг. 8 является блок-схемой устройства 100 кодирования видео, основанного на единицах кодирования, имеющих древовидную структуру, согласно варианту осуществления настоящего раскрытия.
Устройство 100 кодирования видео, использующее предсказание видео на основе единиц кодирования, имеющих древовидную структуру, включает в себя модуль 110 разделения LCU, модуль 120 определения единицы кодирования и модуль 130 вывода.
Модуль 110 разделения LCU может разделять текущую картинку, основанную на LCU, которая является единицей кодирования, имеющей максимальный размер для текущей картинки изображения. Если текущая картинка больше, чем LCU, данные изображения текущей картинки могут быть разделены по меньшей мере на одну LCU. LCU согласно варианту осуществления настоящего раскрытия может быть единицей данных, имеющей размер 32×32, 64×64, 128×128, 256×256, и т.д., причем форма единицы данных - квадрат, имеющий ширину и длину в квадратах числа 2. Данные изображения могут быть выведены на модуль 120 определения единицы кодирования согласно по меньшей мере одной LCU.
Единица кодирования согласно вариантам осуществления настоящего раскрытия может быть охарактеризована максимальным размером и глубиной. Глубина обозначает количество раз, в которое единица кодирования пространственно разделена из LCU, и по мере углубления глубины, более глубокие единицы кодирования согласно глубинам могут быть разделены от LCU до самой малой единицы кодирования (SCU). Глубина LCU является самой верхней глубиной, а глубина SCU - самой нижней глубиной. Поскольку размер единицы кодирования, соответствующей каждой глубине, уменьшается по мере углубления LCU, единица кодирования, соответствующая верхней глубине, может включать в себя множество единиц кодирования, соответствующих более низкой глубине.
Как описано выше, данные изображения текущей картинки разделяются на LCU согласно максимальному размеру единицы кодирования, и каждая из LCU может включать в себя более глубокие единицы кодирования, которые разделены согласно глубинам. Поскольку LCU согласно варианту осуществления настоящего раскрытия разделена согласно глубинам, данные изображения пространственной области, включенной в LCU, могут быть иерархически классифицированы согласно глубинам.
Максимальная глубина и максимальный размер единицы кодирования, которые ограничивают общее количество раз, в которое высота и ширина LCU иерархически разделены, могут быть предварительно определены.
Модуль 120 определения единицы кодирования кодирует по меньшей мере одну разделенную область, полученную разделением области LCU согласно глубинам, и определяет глубину для вывода окончательно кодированных данные изображения согласно по меньшей мере одной области разделения. Другими словами, модуль 120 определения единицы кодирования определяет кодированную глубину путем кодирования данных изображения в более глубоких единицах кодирования согласно глубинам, соответственно LCU текущей картинки, и выбора глубины, имеющей наименьшую ошибку кодирования. Определенная кодированная глубина и кодированные данные изображения соответственно определенной кодированной глубине, выводятся на модуль 130 вывода.
Данные изображения в LCU кодируются на основе на более глубоких единиц кодирования, соответствующих по меньшей мере одной глубине, равной или ниже максимальной глубины, и результаты кодирования данных изображения сравниваются на основе каждой из более глубоких единиц кодирования. Глубина, имеющая наименьшую ошибку кодирования, может быть выбрана после сравнения ошибок кодирования более глубоких единиц кодирования. По меньшей мере одна кодированная глубина может быть выбрана для каждой LCU.
Размер LCU разделяется по мере того как единица кодирования иерархически разделяется согласно глубинам, и по мере того как количество единиц кодирования увеличивается. Кроме того, даже если единицы кодирования соответствуют той же самой глубине в одной LCU, выполняется определение, следует ли разделять каждую из единиц кодирования, соответствующих той же самой глубине, до более низкой глубины, путем измерения ошибки кодирования данных изображения каждой единицы кодирования, отдельно. Соответственно, даже когда данные изображения включены в одну LCU, ошибки кодирования могут различаться согласно областям в одной LCU, и, таким образом, кодированные глубины могут различаться согласно областям в данных изображения. Таким образом, одна или более кодированных глубин могут быть определены в одной LCU, и данные изображения LCU могут быть разделены согласно единицам кодирования по меньшей мере одной кодированной глубины.
Соответственно, модуль 120 определения единицы кодирования может определять единицы кодирования, имеющие древовидную структуру, включенные в LCU. ‘Единицы кодирования, имеющие древовидную структуру’, согласно вариантам осуществления настоящего раскрытия, включают в себя единицы кодирования, соответствующие глубине, определенной как кодированная глубина, из числа всех более глубоких единиц кодирования, включенных в LCU. Единица кодирования кодированной глубины может быть иерархически определена согласно глубинам в той же самой области LCU и может быть независимо определена в различных областях. Точно так же кодированная глубина в текущей области может быть определена независимо от кодированной глубины в другой области.
Максимальная глубина согласно варианту осуществления настоящего раскрытия является индексом, связанным с числом раз разделения от LCU до SCU. Первая максимальная глубина согласно вариантам осуществления настоящего раскрытия может обозначать общее количество раз разделения от LCU до SCU. Вторая максимальная глубина согласно вариантам осуществления настоящего раскрытия может обозначать общее количество уровней глубины от LCU до SCU. Например, когда глубина LCU равна 0, глубина единицы кодирования, в которой LCU разделена один раз, может быть установлена в 1, и глубина единицы кодирования, в которой LCU разделена дважды, может быть установлена в 2. Здесь, если SCU является единицей кодирования, в которой LCU разделена четыре раза, существует 5 уровней глубины для глубин 0, 1, 2, 3 и 4, и таким образом первая максимальная глубина может быть установлена в 4, и вторая максимальная глубина может быть установлена в 5.
Кодирование предсказания и преобразование могут быть выполнены согласно LCU. Кодирование предсказания и преобразование также выполняются на основе более глубоких единиц кодирования согласно глубине равной или глубинам меньшим, чем максимальная глубина согласно LCU.
Так как число более глубоких единиц кодирования увеличивается всякий раз, когда LCU разделяется согласно глубинам, кодирование, включая кодирование предсказания и преобразование, выполняется на всех более глубоких единицах кодирования, сгенерированных по мере углублен глубины. Для удобства описания, кодирование предсказания и преобразование будут описаны ниже на основе единицы кодирования текущей глубины в LCU.
Устройство 100 кодирования видео может по-разному выбрать размер или форму единицы данных для кодирования данных изображения. Чтобы кодировать данные изображения, выполняются операции, такие как кодирование предсказания, преобразование и энтропийное кодирование, и в это время та же самая единица данных может использоваться для всех операций, или различные единицы данных могут использоваться для каждой операции.
Например, устройство 100 кодирования видео может выбирать не только единицу кодирования, чтобы кодировать данные изображения, но также и единицу данных, отличающуюся от единицы кодирования, чтобы выполнять кодирование предсказания на данных изображения в единице кодирования.
Чтобы выполнить кодирование предсказания в LCU, кодирование предсказания может выполняться на основе единицы кодирования, соответствующей кодированной глубине, то есть на основе единицы кодирования, которая больше не разделяется на единицы кодирования, соответствующие более низкой глубине. В дальнейшем, единица кодирования, которая больше не разделена и становится базовой единицей для кодирования предсказания, будет упоминаться как ‘единица предсказания’. Раздел, полученный путем разделения единицы предсказания, может включать в себя единицу предсказания или единицу данных, полученную путем разделения по меньшей мере одного из высоты и ширины единицы предсказания. Раздел является единицей данных, где единица предсказания единицы кодирования разделена, и единица предсказания может быть разделом, имеющим тот же самый размер, что и у единицы кодирования.
Например, когда единица кодирования 2N×2N (где N - положительное целое число) больше не разделена и становится единицей предсказания 2N×2N, и размером раздела может быть 2N×2N, 2N×N, N×2N, или N×N. Примеры типа раздела включают симметричные разделы, которые получают симметричным разделением высоты или ширины единицы предсказания, разделы, которые получают асимметричным разделением высоты или ширины единицы предсказания, таким как 1:n или n:1, разделы, которые получают геометрическим разделением единицы предсказания, и разделы, имеющие произвольные формы.
Режим предсказания единицы предсказания может быть по меньшей мере одним из интра-режима, интер-режима и режима пропуска. Например, интра-режим или интер-режим могут быть выполнены на разделе 2N×2N, 2N×N, N×2N или N×N. Также, режим пропуска может быть выполнен только на разделе 2N×2N. Кодирование независимо выполняется на одной единице предсказания в единице кодирования, при этом выбирается режим предсказания, имеющий наименьшую ошибку кодирования.
Устройство 100 кодирования видео может также выполнять преобразование на данных изображения в единице кодирования не только на основе единицы кодирования для кодирования данных изображения, но и также на основе единицы данных, которая отличается от единицы кодирования. Чтобы выполнить преобразование в единице кодирования, преобразование может быть выполнено на основе единицы данных, имеющей размер, меньший или равный единице кодирования. Например, единица данных для преобразования может включать в себя единицу данных для интра- режима и единицу данных для интер-режима.
Единица преобразования в единице кодирования может быть рекурсивно разделена на области меньших размеров сходным образом, как единица кодирования согласно древовидной структуре. Таким образом, остатки в единице кодирования могут быть разделены согласно единице преобразования, имеющей древовидную структуру, согласно глубинам преобразования.
Глубина преобразования, указывающая количество раз разделения, чтобы достичь единицы преобразования, путем разделения высоты и ширины единицы кодирования, может также быть установлена в единице преобразования. Например, в текущей единице кодирования 2N×2N, глубина преобразования может быть равна 0, когда размер единицы преобразования равен 2N×2N, может быть равна 1, когда размер единицы преобразования - N×N, и может быть равна 2, когда размер единицы преобразования - N/2×N/2. Другими словами, единица преобразования, имеющая древовидную структуру, может быть установлена согласно глубинам преобразования.
Информация кодирования согласно единицам кодирования, соответствующим кодированной глубине, требует не только информацию о кодированной глубине, но также и информацию, связанную с кодированием предсказания и преобразованием. Соответственно, модуль 120 определения единицы кодирования не только определяет кодированную глубину, имеющую наименьшую ошибку кодирования, но также определяет тип раздела в единице предсказания, режим предсказания согласно единицам предсказания и размер единицы преобразования для преобразования.
Единицы кодирования, имеющие древовидную структуру в LCU, и способы определения единицы предсказания/раздела и единицы преобразования, согласно вариантам осуществления настоящего раскрытия, будут описаны подробно ниже со ссылкой на Фиг. 7-19.
Модуль 120 определения единицы кодирования может измерять ошибку кодирования более глубоких единиц кодирования согласно глубинам с использованием оптимизации скорости-искажения, основанной на лагранжевых множителях.
Модуль 130 вывода выводит данные изображения LCU, которые кодированы на основе по меньшей мере на одной кодированной глубины, определенной модулем 120 определения единицы кодирования, и информации о режиме кодирования согласно кодированной глубине, в битовых потоках.
Кодированные данные изображения могут быть получены путем кодирования остатков изображения.
Информация о способе кодирования согласно кодированной глубине может включать в себя информацию о кодированной глубине, о типе раздела в единице предсказания, режим предсказания и размер единицы преобразования.
Информация о кодированной глубине может быть определена с использованием информации о разделении согласно глубинам, которая указывает, выполнено ли кодирование на единицах кодирования более низкой глубины вместо текущей глубины. Если текущая глубина текущей единицы кодирования является кодированной глубиной, данные изображения в текущей единице кодирования кодируются и выводятся, и, таким образом, информация о разделении может быть определена, чтобы не разделять текущую единицу кодирования до более низкой глубины. Альтернативно, если текущая глубина текущей единицы кодирования не является кодированной глубиной, кодирование выполняется на единице кодирования более низкой глубины, и, таким образом, информация о разделении может быть определена, чтобы разделять текущую единицу кодирования, чтобы получать единицы кодирования более низкой глубины.
Если текущая глубина является не кодированной глубиной, кодирование выполняется на единице кодирования, которая разделена на единицу кодирования более низкой глубины. Так как по меньшей мере одна единица кодирования более низкой глубины существует в одной единице кодирования текущей глубины, кодирование повторно выполняется на каждой единице кодирования более низкой глубины, и, таким образом, кодирование может быть рекурсивно выполнено для единиц кодирования, имеющих ту же самую глубину.
Так как единицы кодирования, имеющие древовидную структуру, определены для одной LCU, и информация о по меньшей мере одном режиме кодирования определена для единицы кодирования кодированной глубины, информация о по меньшей мере одном режиме кодирования может быть определена для одной LCU. Кроме того, кодированная глубина данных изображения LCU может отличаться согласно местоположениям, так как данные изображения иерархически разделены согласно глубинам, и, таким образом, информация о кодированной глубине и режиме кодирования может быть установлена для данных изображения.
Соответственно, модуль 130 вывода может назначить информацию о кодировании, то есть соответствующую кодированную глубину и режим кодирования, по меньшей мере одной из единицы кодирования, единицы предсказания и минимальной единицы, включенной в LCU.
Минимальная единица согласно вариантам осуществления настоящего раскрытия представляет собой квадратную единицу данных, полученную путем разделения SCU, образующей самую нижнюю глубину, на 4. Альтернативно, минимальная единица согласно вариантам осуществления может быть максимальной квадратной единицей данных, которая может быть включена во все из единиц кодирования, единиц предсказания, единиц разделения и единиц преобразования, включенных в LCU.
Например, информация о кодировании, выведенная модулем 130 вывода, может классифицироваться на информацию о кодировании согласно более глубоким единицам кодирования, и информацию о кодировании согласно единицам предсказания. Информация о кодировании согласно более глубоким единицам кодирования может включать в себя информацию о режиме предсказания и о размере разделов. Информация о кодировании согласно единицам предсказания может включать в себя информацию об оцененном направлении интер-режима, об индексе опорного изображения интер-режима, о векторе движения, о компоненте цветности интра-режима и о способе интерполяции интра-режима.
Информация о максимальном размере единицы кодирования, определенной соответственно картинкам, сегментам или GOP, и информация о максимальной глубине могут быть вставлены в заголовок битового потока, набор параметров последовательности или набор параметров картинки.
Информация о максимальном размере единицы преобразования, разрешенной относительно текущего видео, и информация о минимальном размере единицы преобразования могут также быть выведены посредством заголовка битового потока, набора параметров последовательности или набора параметров картинки. Модуль 130 вывода может кодировать и выводить параметры SAO, относящиеся к методу операции сдвига, описанному выше со ссылкой на Фиг. 1A-7C.
В устройстве 100 кодирования видео, более глубокая единица кодирования может быть единицей кодирования, полученной делением высоты или ширины единицы кодирования более высокой глубины, которая находится на один слой выше, на два. Другими словами, когда размер единицы кодирования текущей глубины равен 2N×2N, размер единицы кодирования более низкой глубины равен N×N. Также, единица кодирования с текущей глубиной, имеющей размер 2N×2N, может включать максимум 4 из единиц кодирования с более низкой глубиной.
Соответственно, устройство 100 кодирования видео может формировать единицы кодирования, имеющие древовидную структуру, путем определения единиц кодирования, имеющих оптимальную форму и оптимальный размер для каждой LCU, на основе размера LCU и максимальной глубины, определенной с учетом характеристик текущей картинки. Кроме того, так как кодирование может быть выполнено на каждой LCU с использованием любого из различных режимов предсказания и преобразований, оптимальный режим кодирования может быть определен с учетом характеристик единицы кодирования различных размеров изображения.
Таким образом, если изображение, имеющее высокую разрешающую способность или большое количество данных, закодировано в обычном макроблоке, количество макроблоков на картинку чрезмерно увеличивается. Соответственно, количество частей сжатой информации, сгенерированной для каждого макроблока, увеличивается, и, таким образом, трудно передать сжатую информацию, и эффективность сжатия данных снижается. Однако, при использовании устройства 100 кодирования видео, эффективность сжатия изображения может быть увеличена, так как единица кодирования корректируется с учетом характеристик изображения при увеличении максимального размера единицы кодирования с учетом размера изображения.
Устройство 100 кодирования видео по Фиг. 8 может выполнять операцию устройства 10 кодирования SAO, описанного выше со ссылкой на Фиг. 1A.
Модуль 120 определения единицы кодирования может выполнять операцию SAO-оператора 12 устройства 10 кодирования SAO. Тип SAO, значения сдвига согласно категориям и класс SAO могут быть определены относительно каждой LCU.
Модуль 130 вывода может выполнять операцию энтропийного кодера 14. Параметры SAO, определенные относительно каждой LCU, могут быть выведены. Информация о слиянии влево и вверх SAO, указывающая, принимать ли параметры SAO из левой и верхней смежных LCU текущей LCU в качестве параметров SAO текущей LCU, может быть первоначально выведена. В качестве типа SAO могут быть выведены тип выключения, тип края или тип полосы. Выводится информация об абсолютном значении сдвига. Относительно типа полосы могут быть выведены информация о знаке и информация о положении полосы. Относительно типа края, информация о классе края может быть выведена, а информация о знаке значения сдвига не может быть выведена.
Модуль 130 вывода может выполнять контекстное кодирование на каждой из информации о слиянии влево SAO и информации о слиянии вверх SAO LCU. Модуль 130 вывода может выполнять контекстное кодирование на информации о включении/выключении SAO относительно каждого из компонентов яркости и цветности.
Если информация о включении/выключении SAO указывает на выполнение операции SAO, модуль 130 вывода может выполнять кодирование обхода на информации идентификации краевой полосы относительно каждого из компонентов яркости и цветности.
Если информация о включении/выключении SAO указывает на выполнение операции SAO, модуль 130 вывода может выполнять кодирование обхода на информации об абсолютном значении сдвига относительно каждого из компонента яркости и первого и второго компонента цветности и каждой категории SAO. Относительно типа полосы, модуль 130 вывода может выполнить кодирование обхода на информации о знаке сдвига и информации о положении полосы относительно каждого из компонента яркости и первого и второго компонентов цветности. Относительно типа края, модуль 130 вывода может выполнить кодирование обхода на информации о классе края относительно каждого из компонентов яркости и цветности.
Информация о классе края для первого компонента цветности может также применяться к второму компоненту цветности, и информация о включении/выключении SAO и информация идентификации краевой полосы для первого компонента цветности может также применяться к второму компоненту цветности.
Фиг. 9 представляет блок-схему устройства 200 декодирования видео на основе единиц кодирования, имеющих древовидную структуру, согласно вариантам осуществления настоящего раскрытия.
Устройство 200 декодирования видео, которое использует предсказание видео, основанное на единицах кодирования, имеющих древовидную структуру, включает в себя приемник 210, модуль 220 извлечения данных изображения и информации о кодировании и декодер 230 данных изображения.
Определения различных терминов, таких как единица кодирования, глубина, единица предсказания, единица преобразования и информация о различных режимах кодирования, для операций декодирования устройства 200 декодирования видео идентичны описанным со ссылкой на Фиг. 7 и устройство 100 кодирования видео.
Приемник 210 принимает и синтаксически анализирует битовый поток кодированного видео. Модуль 220 извлечения данных изображения и информации о кодировании извлекает кодированные данные изображения для каждой единицы кодирования из анализируемого битового потока, причем единицы кодирования имеют древовидную структуру согласно каждой LCU, и выводит извлеченные данные изображения на декодер 230 данных изображения. Модуль 220 извлечения данных изображения и информации о кодировании может извлечь информацию о максимальном размере единицы кодирования текущей картинки из заголовка о текущей картине, наборе параметров последовательности или наборе параметров картинки.
Также, модуль 220 извлечения данных изображения и информации о кодировании извлекает информацию о кодированной глубине и режиме кодирования для единиц кодирования, имеющих древовидную структуру, согласно каждой LCU, из проанализированного битового потока. Извлеченная информация о кодированной глубине и режиме кодирования выводится на декодер 230 данных изображения. Другими словами, данные изображения в битовом потоке разделяются на LCU, так что декодер 230 данных изображения декодирует данные изображения для каждой LCU.
Информация о кодированной глубине и режиме кодирования согласно LCU может быть установлена для информации о по меньшей мере одной единице кодирования, соответствующей кодированной глубине, и информация о режиме кодирования может включать в себя информацию о типе раздела соответствующей единицы кодирования, соответствующей кодированной глубине, о режиме предсказания и размере единицы преобразования. Кроме того, информация разделения согласно глубинам может быть извлечена как информация о кодированной глубине.
Информацией о кодированной глубине и режиме кодирования согласно каждой LCU, извлеченной модулем 220 извлечения данных изображения и информации о кодировании, является информация о кодированной глубине и режиме кодирования, определенном для генерации минимальной ошибки кодирования, когда кодер, такой как устройство 100 кодирования видео, повторно выполняет кодирование для каждой более глубокой единицы кодирования согласно глубинам соответственно каждой LCU. Соответственно, устройство 200 декодирования видео может восстанавливать изображение путем декодирования данных изображения согласно кодированной глубине и режиму кодирования, который генерирует минимальную ошибку кодирования.
Поскольку информация кодирования о кодированной глубине и режиме кодирования может быть назначена предопределенной единице данных из числа соответствующей единицы кодирования, единицы предсказания и минимальной единицы, модуль 220 извлечения данных изображения и информации о кодировании может извлечь информацию о кодированной глубине и режиме кодирования согласно предопределенным единицам данных. Если информация о кодированной глубине и режиме кодирования соответствующей LCU записана соответственно предопределенным единицам данных, предопределенные единицы данных, которым назначена та же самая информация о кодированной глубине и режиме кодирования, могут быть выведены как единицы данных, включенные в ту же самую LCU.
Декодер 230 данных изображения восстанавливает текущую картинку путем декодирования данных изображения в каждой LCU на основе информации о кодированной глубине и режиме кодирования соответственно LCU. Другими словами, декодер 230 данных изображения может декодировать кодированные данные изображения на основе извлеченной информации о типе раздела, режиме предсказания и единице преобразования для каждой единицы кодирования из числа единиц кодирования, имеющих древовидную структуру в каждой LCU. Процесс декодирования может включать в себя предсказание, включающее в себя интра-предсказание и компенсацию движения и обратное преобразование.
Декодер 230 данных изображения может выполнять интра- предсказание или компенсацию движения согласно разделу и режиму предсказания каждой единицы кодирования на основе информации о типе раздела и режима предсказания единицы предсказания единицы кодирования соответственно кодированным глубинам.
Кроме того, декодер 230 данных изображения может считывать информацию о единице преобразования согласно древовидной структуре для каждой единицы кодирования, чтобы выполнить обратное преобразование на основе единиц преобразования для каждой единицы кодирования для обратного преобразования для каждой LCU. Через обратное преобразование может быть восстановлено пиксельное значение пространственной области единицы кодирования.
Декодер 230 данных изображения может определять кодированную глубину текущей LCU с использованием информации раздела согласно глубинам. Если информация разделения указывает, что данные изображения больше не разделены на текущей глубине, текущая глубина является кодированной глубиной. Соответственно, декодер 230 данных изображения может декодировать кодированные данные в текущей LCU с использованием информации о типе раздела единицы предсказания, режима предсказания и размера единицы преобразования для каждой единицы кодирования, соответствующей кодированной глубине.
Другими словами единицы данных, содержащие информацию о кодировании, включающую в себя ту же самую информацию о разделении, могут быть собраны путем наблюдения набора информации о кодировании, назначенного для предопределенной единицы данных из числа единицы кодирования, единицы предсказания и минимальной единицы, и собранные единицы данных могут рассматриваться как одна единица данных, подлежащая декодированию декодером 230 данных изображения в том же самом режиме кодирования. Как таковая, текущая единица кодирования может быть декодирована путем получения информации о режиме кодирования для каждой единицы кодирования.
Также, устройство 200 декодирования видео по Фиг. 9 может выполнять операцию устройства 20 декодирования SAO, описанного выше со ссылкой на Фиг. 2A.
Модуль 220 извлечения данных изображения и информации о кодировании и приемник 210 могут выполнять операции из контекстного декодера 24 SAO и декодера 26 обхода SAO устройства 20 декодирования SAO. Декодер 230 данных изображения может выполнять операцию SAO-оператора 28 устройства 20 декодирования SAO.
Модуль 220 извлечения данных изображения и информации о кодировании может получать битовый поток параметров SAO из битового потока LCU, может выполнять энтропийное декодирование на битовом потоке и, таким образом, может восстанавливать символы параметров SAO.
Информация о слиянии влево SAO и информация о слиянии вверх SAO может быть получена, и контекстное декодирование может быть выполнено на каждой из информации о слиянии влево SAO и информации о слиянии вверх SAO. Модуль 220 извлечения данных изображения и информации о кодировании может получить 1-битовую информацию о включении/выключении SAO относительно каждого из компонентов яркости и цветности. Модуль 220 извлечения данных изображения и информации о кодировании может выполнять контекстное декодирование на информации о включении/выключении SAO яркости и информации о включении/выключении SAO цветности.
Если информация о включении/выключении SAO указывает на выполнение операции SAO, модуль 220 извлечения данных изображения и информации о кодировании может получать информацию идентификации краевой полосы относительно каждого из компонентов яркости и цветности и может выполнять декодирование обхода на одном бите информации идентификации краевой полосы.
Если информация о включении/выключении SAO указывает на выполнение операции SAO, модуль 220 извлечения данных изображения и информации о кодировании может получать информацию об абсолютном значении сдвига относительно каждого из компонента яркости и первого и второго компонента цветности и каждой категории SAO и может выполнять декодирование обхода на информации об абсолютном значении сдвига. Относительно типа полосы, модуль 220 извлечения данных изображения и информации о кодировании может получать информацию о знаке сдвига и информацию о положении полосы относительно каждого из компонента яркости и первого и второго компонентов цветности и может выполнять декодирование обхода на каждом параметре. Относительно типа края, модуль 220 извлечения данных изображения и информации о кодировании может выполнять декодирование обхода информации о классе края, полученной относительно каждого из компонентов яркости и цветности.
Информация о классе края для первого компонента цветности может также применяться ко второму компоненту цветности, и информация о включении/выключении SAO и информация идентификации краевой полосы для первого компонента цветности может также применяться к второму компоненту цветности.
Декодер 230 данных изображения может генерировать восстановленный пиксел, способный минимизировать ошибку между исходным пикселом и восстановленным пикселом путем корректировки пиксельного значения восстановленного пиксела посредством соответствующего значения сдвига. Сдвиги восстановленных пикселов каждой LCU могут корректироваться на основе проанализированных параметров SAO.
Таким образом, устройство 200 декодирования видео может получить информацию о по меньшей мере одной единице кодирования, которая генерирует минимальную ошибку кодирования, когда кодирование рекурсивно выполняется для каждой LCU, и может использовать информацию, чтобы декодировать текущую картинку. Другими словами, единицы кодирования, имеющие древовидную структуру, определенные как оптимальные единицы кодирования в каждой LCU, могут быть декодированы.
Соответственно, даже если данные изображения имеют высокую разрешающую способность и большой объем данных, данные изображения могут быть эффективно декодированы и восстановлены с использованием размера единицы кодирования и режима кодирования, которые адаптивно определены согласно характеристикам данных изображения с использованием информации об оптимальном режиме кодирования, полученной от кодера.
Фиг. 10 является диаграммой для описания концепции единиц кодирования согласно вариантам осуществления настоящего раскрытия.
Размер единицы кодирования может быть выражен посредством ширины × высоту и может равняться 64×64, 32×32, 16×16 и 8×8. Единица кодирования 64×64 может быть разделена на разделы 64×64, 64×32, 32×64 или 32×32, и единица кодирования 32×32 может быть разделена на разделы 32×32, 32×16, 16×32 или 16×16, единица кодирования 16×16 может быть разделена на разделы 16×16, 16×8, 8×16 или 8×8, и единица кодирования 8×8 может быть разделена на разделы 8×8, 8×4, 4×8 или 4×4.
В видео данных 310, разрешение составляет 1920×1080, максимальный размер единицы кодирования равен 64, и максимальная глубина равна 2. В видео данных 320, разрешение составляет 1920×1080, максимальный размер единицы кодирования равен 64, и максимальная глубина равна 3. В видео данных 330, разрешение составляет 352×288, максимальный размер единицы кодирования равен 16, и максимальная глубина равна 1. Максимальная глубина, показанная на Фиг. 10, обозначает общее количество разделений от LCU до минимальной единицы декодирования.
Если разрешающая способность высока, или количество данных велико, максимальный размер единицы кодирования может быть большим, чтобы не только увеличивать эффективность кодирования, но и также точно отражать характеристики изображения. Соответственно, максимальный размер единицы кодирования видео данных 310 и 320, имеющих более высокую разрешающую способность, чем видео данные 330, может быть равен 64.
Так как максимальная глубина видео данных 310 равна 2, единицы 315 кодирования видео данных 310 могут включать LCU, имеющую размер длинной оси, равный 64, и единицы кодирования, имеющие размеры длинной оси 32 и 16, так как глубины углублены на два уровня путем разделения LCU дважды. Так как максимальная глубина видео данных 330 равна 1, единицы 335 кодирования видео данных 330 могут включать в себя LCU, имеющую размер длинной оси, равный 16, и единицы кодирования, имеющие размер длинной оси, равный 8, так как глубины углублены на один уровень путем разделения LCU однократно.
Так как максимальная глубина видео данных 320 равна 3, единицы 325 кодирования видео данных 320 могут включать в себя LCU, имеющую размер длинной оси, равный 64, и единицы кодирования, имеющие размеры длинной оси, равные 32, 16 и 8, так как глубины углублены на 3 уровня путем разделения LCU три раза. По мере углубления глубины, детализированная информация может быть точно выражена.
Фиг. 11 является блок-схемой кодера 400 изображения, основанного на единицах кодирования, согласно вариантам осуществления настоящего раскрытия.
Кодер 400 изображения выполняет операции модуля 120 определения единицы кодирования устройства 100 кодирования видео, чтобы кодировать данные изображения. Другими словами модуль 410 интра-предсказания выполняет интра-предсказание на единицах кодирования в интра-режиме из текущего кадра 405, и модуль 420 оценки движения и модуль 425 компенсации движения соответственно выполняют интер-оценивание и компенсацию движения на единицах кодирования в интер-режиме из текущего кадра 405 с использованием текущего кадра 405 и опорного кадра 495.
Данные, выведенные из модуля 410 интра-предсказания, модуля 420 оценки движения и модуля 425 компенсации движения, выводятся как квантованный коэффициент преобразования через преобразователь 430 и квантователь 440. Квантованный коэффициент преобразования восстанавливается как данные в пространственной области посредством обратного квантователя 460 и обратного преобразователя 470, и восстановленные данные в пространственной области выводятся как опорный кадр 495 после пост-обработки фильтром 480 устранения блочности и SAO-оператором 490. Квантованный коэффициент преобразования может быть выведен как битовый поток 455 через энтропийный кодер 450.
Для применения кодера 400 изображения в устройстве 100 кодирования видео, все элементы кодера 400 изображения, то есть модуль 410 интра-предсказания, модуль 420 оценки движения, модуль 425 компенсации движения, преобразователь 430, квантователь 440, энтропийный кодер 450, обратный квантователь 460, обратный преобразователь 470, фильтр 480 устранения блочности и SAO-оператор 490 выполняют операции на основе каждой единицы кодирования среди единиц кодирования, имеющих древовидную структуру, с учетом максимальной глубины каждой LCU.
В особенности, модуль 410 интра-предсказания, модуль 420 оценки движения и модуль 425 компенсации движения определяют разделы и режим предсказания каждой единицы кодирования из числа единиц кодирования, имеющих древовидную структуру, с учетом максимального размера и максимальной глубины текущей LCU, и преобразователь 430 определяет размер единицы преобразования в каждой единице кодирования из числа единиц кодирования, имеющих древовидную структуру.
SAO-оператор 490 может классифицировать пикселы согласно типу края (или типу полосы) каждой LCU опорного кадра 495, может определить направление края (или положение начальной полосы) и может определить среднее значение ошибки восстановленных пикселов, включенных в каждую категорию. Относительно каждой LCU, информация о слиянии SAO, тип SAO и значения сдвига могут кодироваться и сигнализироваться.
Энтропийный кодер 450 может выполнить CABAC-кодирование на параметрах SAO, включающих в себя информацию о слиянии SAO, информацию о типе SAO и значения сдвига для операции SAO. Например, для информации о типе SAO, одна контекстная модель может быть использована только для первого бита, и CABAC-кодирование в режим обхода может быть выполнено на остальных битах. Две контекстные модели могут использоваться для значений сдвига, и одна контекстная модель может использоваться для каждой из информации о слиянии влево SAO и информация о слиянии вверх SAO. Соответственно, в общей сложности пять контекстных моделей могут использоваться, чтобы выполнять CABAC-кодирование на параметрах SAO.
Фиг. 12 является блок-схемой декодера 500 изображения, основанного на единицах кодирования, согласно вариантам осуществления настоящего раскрытия.
Синтаксический анализатор 510 синтаксически анализирует кодированные данные изображения, подлежащие декодированию, и информацию о кодировании, требуемую для декодирования, из битового потока 505. Кодированные данные изображения выводятся как обратно квантованные данные через энтропийный декодер 520 и обратный квантователь 530, и обратно квантованные данные восстанавливаются в данные изображения в пространственной области посредством обратного преобразователя 540.
Модуль 550 интра-предсказания выполняет интра-предсказание на единицах кодирования в интра-режиме относительно данных изображения в пространственной области, и модуль 560 компенсации движения выполняет компенсацию движения на единицах кодирования в интер-режиме с использованием опорного кадра 585.
Данные изображения в пространственной области, которые прошли через модуль 550 интра-предсказания и модуль 560 компенсации движения, могут быть выведены как восстановленный кадр 595 после постобработки посредством фильтра 570 устранения блочности и SAO-оператора 580. Также, данные изображения, которые прошли пост-обработку посредством фильтра 570 устранения блочности и SAO-оператора 580, могут быть выведены как опорный кадр 585.
Чтобы декодировать данные изображения в декодере 230 данных изображения устройства 200 декодирования видео, декодер 500 изображения может выполнять операции, которые выполняются после синтаксического анализатора 510.
Для применения декодера 500 изображения в устройстве 200 декодирования видео, все элементы декодера 500 изображения, то есть синтаксический анализатор 510, энтропийный декодер 520, обратный квантователь 530, обратный преобразователь 540, модуль 550 интра-предсказания, модуль 560 компенсации движения, фильтр 570 устранения блочности и SAO-оператор 580 выполняют операции, основанные на единицах кодирования, имеющих древовидную структуру, для каждой LCU.
В частности, модуль 550 интра-предсказания и модуль 560 компенсации движения выполняют операции на основе разделов и режима предсказания для каждой из единиц кодирования, имеющих древовидную структуру, и обратный преобразователь 540 выполняет операции на основе размера единицы преобразования для каждой единицы кодирования.
Энтропийный декодер 520 может выполнить CABAC-декодирование на параметрах SAO, чтобы синтаксически анализировать информацию о слиянии SAO, информацию о типе SAO и значения сдвига для операции SAO из параметров SAO. Например, для информации о типе SAO, одна контекстная модель может использоваться только для первого бита, и CABAC-декодирование в режиме обхода может быть выполнено на остальных битах. Две контекстные модели могут использоваться для значений сдвига, и одна контекстная модель может использоваться для каждой из информации о слиянии влево SAO и информации о слиянии вверх SAO. Соответственно, в общей сложности пять контекстных моделей могут использоваться для выполнения CABAC-декодирования на параметрах SAO.
Декодер 500 изображения может извлекать параметры SAO из LCU из битового потока. На основе информации о слиянии SAO из числа параметров SAO текущей LCU, параметры SAO текущей LCU, которые являются теми же самыми, как таковые смежной LCU, могут быть восстановлены. С использованием типа SAO и значений сдвига из числа параметров SAO текущей LCU каждый из восстановленных пикселов LCU восстановленного кадра 595 может быть скорректирован значением сдвига, соответствующим категории согласно типу края или типу полосы.
Фиг. 13 является диаграммой, иллюстрирующей более глубокие единицы кодирования согласно глубинам и разделы, согласно вариантам осуществления настоящего раскрытия.
Устройство 100 кодирования видео и устройство 200 декодирования видео используют иерархические единицы кодирования, чтобы учитывать характеристики изображения. Максимальная высота, максимальная ширина и максимальная глубина единиц кодирования могут быть адаптивно определены согласно характеристикам изображения или могут быть по-другому установлены пользователем. Размеры более глубоких единиц кодирования согласно глубинам могут быть определены согласно предопределенному максимальному размеру единицы кодирования.
В иерархической структуре 600 единиц кодирования, согласно вариантам осуществления настоящего раскрытия, максимальная высота и максимальная ширина единиц кодирования равны, каждая, 64, и максимальная глубина равна 4. В этом случае, максимальная глубина относится к общему количеству раз, в которое единица кодирования разделена от LCU до SCU. Так как глубина углубляется вдоль вертикальной оси иерархической структуры 600, высота и ширина более глубокой единицы кодирования, каждая, разделены. Кроме того, единица предсказания и разделы, которые являются основаниями для кодирования с предсказанием каждой более глубокой единицы кодирования, показаны вдоль горизонтальной оси иерархической структуры 600.
Другими словами единицей 610 кодирования является LCU в иерархической структуре 600, причем глубина равна 0, и размер, то есть высота на ширину, равен 64×64. Глубина углубляется вдоль вертикальной оси, и единица 620 кодирования имеет размер 32×32 и глубину 1, единица 630 кодирования имеет размер 16×16 и глубину 2, и единица 640 кодирования имеет размер 8×8 и глубину 3. Единица 640 кодирования, имеющая размер 4×4 и глубину 3, представляет собой SCU.
Единица предсказания и разделы единицы кодирования упорядочены вдоль горизонтальной оси согласно каждой глубине. Другими словами, если единица 610 кодирования, имеющая размер 64×64 и глубину 0, является единицей предсказания, единица предсказания может быть разделена на разделы, включенные в единицу 610 кодирования, то есть раздел 610, имеющий размер 64×64, раздел 612, имеющий размер 64×32, раздел 614, имеющий размер 32×64, или раздел 616, имеющий размер 32×32.
Точно так же единица предсказания единицы 620 кодирования, имеющей размер 32×32 и глубину 1, может быть разделена на разделы, включенные в единицу 620 кодирования, то есть раздел 620, имеющий размер 32×32, раздел 622, имеющий размер 32×16, раздел 624, имеющий размер 16×32, и раздел 626, имеющий размер 16×16.
Точно так же единица предсказания единицы 630 кодирования, имеющая размер 16×16 и глубину 2, может быть разделена на разделы, включенные в единицу 630 кодирования, то есть раздел, имеющий размер 16×16, включенный в единицу 630 кодирования, раздел 632, имеющий размер 16×8, раздел 634, имеющий размер 8×16, и раздел 636, имеющий размер 8×8.
Точно так же единица предсказания единицы 640 кодирования, имеющей размер 8×8 и глубину 3, может быть разделена на разделы, включенные в единицу 640 кодирования, то есть раздел, имеющий размер 8×8, включенный в единицу 640 кодирования, раздел 642, имеющий размер 8×4, раздел 644, имеющий размер 4×8, и раздел 646, имеющий размер 4×4.
Чтобы определить по меньшей мере одну кодированную глубину единиц кодирования, составляющих LCU 610, модуль 120 определения единицы кодирования устройства 100 кодирования видео выполняет кодирование для единиц кодирования, соответствующих каждой глубине, включенной в LCU 610.
Количество более глубоких единиц кодирования согласно глубинам, включающим данные в том же самом диапазоне и тех же самых размеров, увеличивается по мере того, как глубина углубляется. Например, четыре единицы кодирования, соответствующие глубине 2, должны охватывать данные, которые включены в одну единицу кодирования, соответствующую глубине 1. Соответственно, чтобы сравнить результаты кодирования тех же самых данных согласно глубинам, единица кодирования, соответствующая глубине 1, и четыре единицы кодирования, соответствующие глубине 2, каждая, кодируются.
Чтобы выполнить кодирование для текущей глубины из числа глубин, наименьшая ошибка кодирования может быть выбрана для текущей глубины, путем выполнения кодирования для каждой единицы предсказания в единицах кодирования, соответствующих текущей глубине, вдоль горизонтальной оси иерархической структуры 600. Альтернативно, минимальная ошибка кодирования может отыскиваться путем сравнения наименьших ошибок кодирования согласно глубинам, путем выполнения кодирования для каждой глубины, по мере того как глубина углубляется вдоль вертикальной оси иерархической структуры 600. Глубина и раздел, имеющие минимальную ошибку кодирования в единице 610 кодирования, могут быть выбраны как кодированная глубина и тип раздела единицы 610 кодирования.
Фиг. 14 является диаграммой для описания соотношения между единицей 710 кодирования и единицами 720 преобразования, согласно вариантам осуществления настоящего раскрытия.
Устройство 100 кодирования видео или устройство 200 декодирования видео кодирует или декодирует изображение согласно единицам кодирования, имеющим размеры, меньшие или равные LCU, для каждой LCU. Размеры единиц преобразования для преобразования во время кодирования могут быть выбраны на основе единиц данных, которые не больше, чем соответствующая единица кодирования.
Например, в устройстве 100 кодирования видео или устройстве 200 декодирования видео, если размер единицы 710 кодирования равен 64×64, преобразование может быть выполнено с использованием единиц 720 преобразования, имеющих размер 32×32.
Кроме того, данные единицы 710 кодирования, имеющей размер 64×64, могут кодироваться путем выполнения преобразования на каждой из единиц преобразования, имеющих размер 32×32, 16×16, 8×8 и 4×4, которые меньше, чем 64×64, и затем единица преобразования, имеющая наименьшую ошибку кодирования, может быть выбрана.
Фиг. 15 является диаграммой для описания информации о кодировании единиц кодирования, соответствующих кодированной глубине, согласно вариантам осуществления настоящего раскрытия.
Модуль 130 вывода устройства 100 кодирования видео может кодировать и передавать информацию 800 о типе раздела, информацию 810 о режиме предсказания и информацию 820 о размере единицы преобразования для каждой единицы кодирования, соответствующей кодированной глубине, в качестве информации о режиме кодирования.
Информация 800 указывает информацию о форме раздела, полученного разделением единицы предсказания текущей единицы кодирования, причем раздел является единицей данных для кодирования с предсказанием текущей единицы кодирования. Например, текущая единица кодирования CU_0, имеющая размер 2N×2N, может быть разделена на любой из раздела 802, имеющего размер 2N×2N, раздела 804, имеющего размер 2N×N, раздела 806, имеющего размер N×2N, и раздела 808, имеющего размер N×N. Здесь, информация 800 о типе раздела установлена для указания одного из раздела 804, имеющего размер 2N×N, раздела 806, имеющего размер N×2N, и раздела 808, имеющего размер N×N.
Информация 810 указывает режим предсказания каждого раздела. Например, информация 810 может указать режим кодирования с предсказанием, выполняемого на разделе, указанном информацией 800, то есть интра-режим 812, интер-режим 814 или режим 816 пропуска.
Информация 820 указывает единицу преобразования, на которой основываются при выполнении преобразования на текущей единице кодирования. Например, единица преобразования может быть первой единицей 822 интра-преобразования, второй единицей 824 интра-преобразования, первой единицей 826 интер-преобразования или второй единицей 828 интер-преобразования.
Модуль 220 извлечения данных изображения и информации о кодировании устройства 200 декодирования видео может извлекать и использовать информацию 800, 810 и 820 для декодирования согласно каждой более глубокой единице кодирования.
Фиг. 16 является диаграммой более глубоких единиц кодирования согласно глубинам, согласно вариантам осуществления настоящего раскрытия.
Информация разделения может использоваться, чтобы указать на изменение глубины. Информация разделения указывает, разделена ли единица кодирования текущей глубины на единицы кодирования более низкой глубины.
Единица 910 предсказания для кодирования с предсказанием единицы 900 кодирования, имеющей глубину 0 и размер 2N_0×2N_0, может включать разделы типа 912 раздела, имеющего размер 2N_0×2N_0, типа 914 раздела, имеющего размер 2N_0×N_0, типа 916 раздела, имеющего размер N_0×2N_0, и типа 918 раздела, имеющего размер N_0×N_0. Фиг. 9 только иллюстрирует типы 912-918 раздела, которые получены путем симметричного разделения единицы 910 предсказания, но тип раздела не ограничен этим, и разделы единицы 910 предсказания могут включать асимметричные разделы, разделы, имеющие предопределенную форму, и разделы, имеющие геометрическую форму.
Кодирование с предсказанием выполняется с повторением на одном разделе, имеющем размер 2N_0×2N_0, двух разделах, имеющих размер 2N_0×N_0, двух разделах, имеющих размер N_0×2N_0, и четырех разделах, имеющих размер N_0×N_0, согласно каждому типу раздела. Кодирование с предсказанием в интра-режиме и интер-режиме может быть выполнено на разделах, имеющих размеры 2N_0×2N_0, N_0×2N_0, 2N_0×N_0, и N_0×N_0. Кодирование с предсказанием в режиме пропуска выполняется только на разделе, имеющем размер 2N_0×2N_0.
Если ошибка кодирования является наименьшей в одном из типов 912-916 раздела, единица 910 предсказания может не разделяться на более низкую глубину.
Если ошибка кодирования является наименьшей в типе 918 раздела, глубина изменяется от 0 до 1, чтобы разделить тип 918 раздела в операции 920, и кодирование выполняется с повторением на единицах 930 кодирования, имеющих глубину 2 и размер N_0×N_0, чтобы отыскивать минимальную ошибку кодирования.
Единица 940 предсказания для кодирования с предсказанием единицы 930 кодирования, имеющей глубину 1 и размер 2N_1×2N_1 (=N_0×N_0), может включать разделы типа 942 раздела, имеющего размер 2N_1×2N_1, типа 944 раздела, имеющего размер 2N_1×N_1, типа 946 раздела, имеющего размер N_1×2N_1, и типа 948 раздела, имеющего размер N_1×N_1.
Если ошибка кодирования является наименьшей в типе 948 раздела, глубина изменяется от 1 до 2, чтобы разделить тип 948 раздела в операции 950, и кодирование выполняется с повторением на единицах 960 кодирования, которые имеют глубину 2 и размер N_2×N_2, чтобы отыскивать минимальную ошибку кодирования.
Когда максимальная глубина равна d, операция разделения согласно каждой глубине может выполняться до того, когда глубина становится d-1, и информация о разделении может быть кодирована соответственно тому, когда глубина равна одной от 0 до d-2. Другими словами, когда кодирование выполняется до того, когда глубина становится d-1, после того, как единица кодирования, соответствующая глубине d-2, разделяется в операции 970, единица 990 предсказания для кодирования с предсказанием единицы 980 кодирования, имеющей глубину d-1 и размер 2N_(d-1)×2N_(d-1) может включать разделы типа 992 раздела, имеющего размер 2N_(d-1)×2N_(d-1), типа 994 раздела, имеющего размер 2N_(d-1)×N_(d-1), типа 996 раздела, имеющего размер N_(d-1)×2N_(d-1), и типа 998 раздела, имеющего размер N_(d-1)×N_(d-1).
Кодирование с предсказанием может выполняться с повторением на одном разделе, имеющем размер 2N_(d-1)×2N_(d-1), двух разделах, имеющих размер 2N_(d-1)×N_(d-1), двух разделах, имеющих размер N_(d-1)×2N_(d-1), четырех разделах, имеющих размер N_(d-1)×N_(d-1), из числа типов 992-998 раздела, чтобы отыскивать тип раздела, имеющий минимальную ошибку кодирования.
Даже когда тип 998 раздела имеет минимальную ошибку кодирования, так как максимальная глубина равна d, единица кодирования CU_(d-1), имеющая глубину d-1, больше не разделяется до более низкой глубины, и кодированная глубина для единиц кодирования, составляющих текущую LCU 900, определяется как d-1, и тип раздела текущей LCU 900 может быть определен как N_(d-1)×N_(d-1). Кроме того, так как максимальная глубина равна d и SCU 980, имеющая самую низкую глубину d-1, больше не разделяется на более низкую глубину, информация разделения SCU 980 не устанавливается.
Единица 999 данных может быть ‘минимальной единицей’ для текущей LCU. Минимальная единица согласно вариантам осуществления настоящего раскрытия может быть квадратной единицей данных, полученной разделением SCU 980 на 4. Путем выполнения кодирования с повторением, устройство 100 кодирования видео может выбрать глубину, имеющую наименьшую ошибку кодирования, путем сравнения ошибок кодирования согласно глубинам единицы 900 кодирования, чтобы определить кодированную глубину и установить соответствующий тип раздела и режим предсказания как режим кодирования кодированной глубины.
Как таковые, минимальные ошибки кодирования согласно глубинам сравниваются во всех из глубин от 1 до d, и глубина, имеющая наименьшую ошибку кодирования, может быть определена как кодированная глубина. Кодированная глубина, тип раздела единицы предсказания и режим предсказания могут кодироваться и передаваться как информация о режиме кодирования. Кроме того, так как единица кодирования разделяется от глубины 0 до кодированной глубины, только информация разделения кодированной глубины установлена в 0, и информация разделения глубин, исключая кодированную глубину, установлена в 1.
Модуль 220 извлечения данных изображения и информации о кодировании устройства 200 декодирования видео может извлечь и использовать информацию о кодированной глубине и единице предсказания единицы 900 кодирования, чтобы декодировать раздел 912. Устройство 200 декодирования видео может определить глубину, на которой информация о разделении равна 0, в качестве кодированной глубины с использованием информации о разделении согласно глубинам, и использовать информацию о режиме кодирования соответствующей глубины для декодирования.
Фиг. 17-19 являются диаграммами для описания соотношения между единицами 1010 кодирования, единицами 1060 предсказания и единицами 1070 преобразования, согласно вариантам осуществления настоящего раскрытия.
Единицы 1010 кодирования являются единицами кодирования, имеющими древовидную структуру, соответственно кодированным глубинам, определенным устройством 100 кодирования видео, в LCU. Единицы 1060 предсказания являются разделами единиц предсказания каждой из единиц 1010 кодирования, и единицы 1070 преобразования являются единицами преобразования каждой из единиц 1010 кодирования.
Когда глубина LCU равна 0 в единицах 1010 кодирования, глубины единиц 1012 и 1054 кодирования равны 1, глубины единиц 1014, 1016, 1018, 1028, 1050 и 1052 кодирования равны 2, глубины единиц 1020, 1022, 1024, 1026, 1030, 1032 и 1048 кодирования равны 3, и глубины единиц 1040, 1042, 1044 и 1046 кодирования равны 4.
В единицах 1060 предсказания, некоторые единицы 1014, 1016, 1022, 1032, 1048, 1050, 1052 и 1054 кодирования получены путем разделения единиц кодирования в единицах 1010 кодирования. Другими словами, типы раздела в единицах 1014, 1022, 1050 и 1054 кодирования имеют размер 2N×N, типы раздела в единицах 1016, 1048 и 1052 кодирования имеют размер N×2N, и тип раздела единицы 1032 кодирования имеет размер N×N. Единицы предсказания и разделы единиц 1010 кодирования меньше или равны каждой единице кодирования.
Преобразование или обратное преобразование выполняется на данных изображения единицы 1052 кодирования в единицах 1070 преобразования в единице данных, которая меньше, чем единица 1052 кодирования. Также, единицы 1014, 1016, 1022, 1032, 1048, 1050 и 1052 кодирования в единицах 1070 преобразования отличаются от таковых в единицах 1060 предсказания с точки зрения размеров и форм. Другими словами, устройства 100 и 200 кодирования и декодирования видео могут выполнить интра-предсказание, оценку движения, компенсацию движения, преобразование и обратное преобразование индивидуально на единице данных в той же самой единице кодирования.
Соответственно, кодирование рекурсивно выполняется на каждой из единиц кодирования, имеющих иерархическую структуру в каждой области LCU, чтобы определять оптимальную единицу кодирования, и, таким образом, единицы кодирования, имеющие рекурсивную древовидную структуру, могут быть получены. Информация кодирования может включать в себя информацию разделения о единице кодирования, информацию о типе раздела, информацию о режиме предсказания, и информацию о размере единицы преобразования. Таблица 1 показывает информацию о кодировании, которая может быть установлена устройствами 100 и 200 кодирования и декодирования видео.
Таблица 1
Информация о разделении 0(Кодирование на единице кодирования, имеющей размер2N×2N и текущую глубину d)
Информация о разделении 1
Режим предсказания
Тип раздела
Размер единицы преобразования
Повторно кодировать единицы кодирования, имеющие более низкую глубину d+1
ИнтраИнтерПропуск(Только 2N×2N)
Симметричный тип раздела
Асимметричный тип раздела
Информацияо разделении 0 единицы преобразования
Информацияо разделении 1 единицы преобразования
2N×2N2N×NN×2NN×N
2N×nU2N×nDnL×2NnR×2N
2N×2N
N×N(симметричный тип)N/2×N/2(асимметричный тип)
Модуль 130 вывода устройства 100 кодирования видео может выводить информацию о единицах кодирования, имеющих древовидную структуру, и данные изображения, и модуль 220 извлечения данных изображения и информации о кодировании устройства 200 декодирования видео может извлекать информацию кодирования о единицах кодирования, имеющих древовидную структуру, из принятого битового потока.
Информация о разделении указывает, разделена ли текущая единица кодирования на единицы кодирования более низкой глубины. Если информация о разделении текущей глубины d равна 0, глубина, на которой текущая единица кодирования больше не разделена на более низкую глубину, является кодированной глубиной, и, таким образом, информация о типе раздела, режим предсказания и размер единицы преобразования могут быть определены для кодированной глубины. Если текущая единица кодирования далее разделена согласно информации о разделении, кодирование независимо выполняется на четырех разделенных единицах кодирования более низкой глубины.
Режим предсказания может быть одним из интра-режима, интер-режима и режима пропуска. Интра-режим и интер-режим могут быть определены во всех типах раздела, а режим пропуска определен только в типе раздела, имеющем размер 2N×2N.
Информация о типе раздела может указывать на симметричные типы раздела, имеющие размеры 2N×2N, 2N×N, N×2N и N×N, которые получены симметричным разделением высоты или ширины единицы предсказания, и асимметричные типы раздела, имеющие размеры 2N×nU, 2N×nD, nL×2N и nR×2N, которые получены асимметричным разделением высоты или ширины единицы предсказания. Асимметричные типы раздела, имеющие размеры 2N×nU и 2N×nD, могут быть соответственно получены путем разделения высоты единицы предсказания в отношении 1:3 и 3:1, и асимметричные типы разделения, имеющие размеры nL×2N и nR×2N, могут быть соответственно получены путем разделения ширины единицы предсказания в отношении 1:3 и 3:1.
Размер единицы преобразования может быть установлен на два типа в интра-режиме и два типа в интер-режиме. Другими словами, если информация о разделении единицы преобразования равна 0, размер единицы преобразования может быть 2N×2N, который является размером текущей единицы кодирования. Если информация о разделении единицы преобразования равна 1, единицы преобразования могут быть получены путем разделения текущей единицы кодирования. Кроме того, если тип раздела текущей единицы кодирования, имеющей размер 2N×2N, является симметричным типом раздела, размер единицы преобразования может составлять N×N, и если тип раздела текущей единицы кодирования является асимметричным типом раздела, размер единицы преобразования может составлять N/2×N/2.
Информация о кодировании о единицах кодирования, имеющих древовидную структуру, может включать в себя по меньшей мере одну из единицы кодирования, соответствующей кодированной глубине, единицы предсказания и минимальной единицы. Единица кодирования, соответствующая кодированной глубине, может включать в себя по меньшей мере одну из единицы предсказания и минимальной единицы, содержащей ту же самую информацию о кодировании.
Соответственно, определяется, включены ли смежные единицы данных в ту же самую единицу кодирования, соответствующую кодированной глубине, путем сравнения информации о кодировании смежных единиц данных. Кроме того, соответствующая единица кодирования, соответствующая кодированной глубине, определяется с использованием информации о кодировании единицы данных, и, таким образом, может быть определено распределение кодированных глубин в LCU.
Соответственно, если текущая единица кодирования предсказана на основе информации о кодировании смежных единиц данных, на информацию о кодировании единиц данных в более глубоких единицах кодирования, смежных с текущей единицей кодирования, можно непосредственно ссылаться и использовать.
Альтернативно, если текущая единица кодирования предсказана на основе информации о кодировании смежных единиц данных, то выполняется поиск единиц данных, смежных с текущей единицей кодирования, с использованием кодированной информации единиц данных, и на найденные смежные единицы кодирования можно ссылаться для предсказания текущей единицы кодирования.
Фиг. 20 является диаграммой для описания соотношения между единицей кодирования, единицей предсказания и единицей преобразования, согласно информации о режиме кодирования из Таблицы 1.
LCU 1300 включает в себя единицы 1302, 1304, 1306, 1312, 1314, 1316 и 1318 кодирования кодированных глубин. Здесь, поскольку единица 1318 кодирования является единицей кодирования кодированной глубины, информация о разделении может быть установлена в 0. Информация о типе раздела единицы 1318 кодирования, имеющей размер 2N×2N, может быть установлена как один из типа 1322 раздела, имеющего размер 2N×2N, типа 1324 раздела, имеющего размер 2N×N, типа 1326 раздела, имеющего размер N×2N, типа 1328 раздела, имеющего размер N×N, типа 1332 раздела, имеющего размер 2N×nU, типа 1334 раздела, имеющего размер 2N×nD, типа 1336 раздела, имеющего размер nL×2N, и типа 1338 раздела, имеющего размер nR×2N.
Информацией о разделении (флаг размера TU) единицы преобразования является тип индекса преобразования. Размер единицы преобразования, соответствующей индексу преобразования, может быть изменен согласно типу единицы предсказания или типу раздела единицы кодирования.
Например, когда тип раздела установлен как симметричный, то есть тип раздела 1322, 1324, 1326 или 1328, единица 1342 преобразования, имеющая размер 2N×2N, устанавливается, если флаг размера TU единицы преобразования равен 0, и единица 1344 преобразования, имеющая размер N×N, устанавливается, если флаг размера TU равен 1.
Когда тип раздела установлен как асимметричный, то есть тип раздела 1332, 1334, 1336 или 1338, единица 1352 преобразования, имеющая размер 2N×2N устанавливается, если флаг размера TU равен 0, и единица 1354 преобразования, имеющая размер N/2×N/2, устанавливается, если флаг размера TU равен 1.
Со ссылкой на Фиг. 20, флаг размера TU – это флаг, имеющий значение 0 или 1, но флаг размера TU не ограничен 1 битом, и единица преобразования может быть иерархически разделена, имея древовидную структуру, в то время как флаг размера TU увеличивается от 0. Информацией о разделении (флаг размера TU) единицы преобразования может быть пример индекса преобразования.
В этом случае, размер единицы преобразования, которая фактически использовалась, может быть выражен с использованием флага размера TU единицы преобразования, в соответствии с вариантами осуществления согласно настоящему раскрытию, вместе с максимальным размером и минимальным размером единицы преобразования. Устройство 100 кодирования видео способно кодировать информацию о максимальном размере единицы преобразования, информацию о минимальном размере единицы преобразования и флаг максимального размера TU. Результат кодирования информации о максимальном размере единицы преобразования, информации о минимальном размере единицы преобразования и флага максимального размера TU может быть вставлен в SPS. Устройство 200 декодирования видео может декодировать видео с использованием информации о максимальном размере единицы преобразования, информации о минимальном размере единицы преобразования и флага максимального размера TU.
Например, (a) если размер текущей единицы кодирования равен 64×64, и максимальный размер единицы преобразования равен 32×32, (a-1) то размер единицы преобразования может быть 32×32, когда флаг размера TU равен 0, (a-2) может быть 16×16, когда флаг размера TU равен 1, и (a-3) может быть 8×8, когда флаг размера TU равен 2.
В качестве другого примера, (b) если размер текущей единицы кодирования равен 32×32, и минимальный размер единицы преобразования равен 32×32, (b-1) то размер единицы преобразования может быть 32×32, когда флаг размера TU равен 0. Здесь, флаг размера TU не может быть установлен в значение иное, чем 0, так как размер единицы преобразования не может быть меньше, чем 32×32.
В качестве другого примера, (c) если размер текущей единицы кодирования равен 64×64, и флаг максимального размера TU равен 1, то флаг размера TU может быть 0 или 1. Здесь, флаг размера TU не может быть установлен в значение иное, чем 0 или 1.
Таким образом, если определено, что флаг максимального размера TU ‘MaxTransformSizeIndex’, минимальный размер единицы преобразования ‘MinTransformSize’, и размер единицы преобразования ‘RootTuSize’, когда флаг размера TU равен 0, тогда текущий минимальный размер единицы преобразования ‘CurrMinTuSize’, который может быть определен в текущей единице кодирования, может быть определен Уравнением (1):
CurrMinTuSize
=max(MinTransformSize,RootTuSize/(2^MaxTransformSizeIndex)) (1)
По сравнению с текущим минимальным размером единицы преобразования ‘CurrMinTuSize’, который может быть определен в текущей единице кодирования, размер единицы преобразования ‘RootTuSize’, когда флаг размера TU равен 0, может обозначать максимальный размер единицы преобразования, который может быть выбран в системе. В Уравнении (1), ‘RootTuSize/(2^MaxTransformSizeIndex)’ обозначает размер единицы преобразования, когда размер единицы преобразования ‘RootTuSize’, когда флаг размера TU равен 0, разделен в количество раз, соответствующее флагу максимального размера TU, и ‘MinTransformSize’ обозначает минимальный размер преобразования. Таким образом, меньшее значение из ‘RootTuSize/(2^MaxTransformSizeIndex)’ и ‘MinTransformSize’ может быть текущим минимальным размером единицы преобразования ‘CurrMinTuSize’, который может быть определен в текущей единице кодирования.
В соответствии с вариантами осуществления согласно настоящему раскрытию, максимальный размер единицы преобразования RootTuSize может изменяться согласно типу режима предсказания.
Например, если текущим режимом предсказания является интер-режим, то ‘RootTuSize’ может быть определен с использованием Уравнения (2) ниже. В Уравнении (2), ‘MaxTransformSize’ обозначает максимальный размер единицы преобразования, и ‘PUSize’ обозначает текущий размер единицы предсказания.
RootTuSize = min(MaxTransformSize, PUSize) (2)
Другими словами, если текущим режимом предсказания является интер-режим, то размер единицы преобразования ‘RootTuSize’, когда флаг размера TU равен 0, может быть меньшим значением из максимального размера единицы преобразования и текущего размера единицы предсказания.
Если режимом предсказания текущей единицы раздела является интра-режим, то ‘RootTuSize’ может быть определен с использованием Уравнения (3) ниже. В Уравнении (3), ‘PartitionSize’ обозначает размер текущей единицы раздела.
RootTuSize = min(MaxTransformSize, PartitionSize) (3)
Другими словами, если текущим режимом предсказания является интра-режим, то размером единицы преобразования ‘RootTuSize’, когда флаг размера TU равен 0, может быть меньшее значение из максимального размера единицы преобразования и размера текущей единицы раздела.
Однако, текущий максимальный размер единицы преобразования ‘RootTuSize’, который изменяется согласно типу режима предсказания в единице раздела, является лишь примером, и настоящее раскрытие не ограничено этим.
Согласно способу кодирования видео, основанному на единицах кодирования, имеющих древовидную структуру, как описано со ссылками на Фиг. 8-20, данные изображения пространственной области кодируются для каждой единицы кодирования древовидной структуры. Согласно способу декодирования видео, основанному на единицах кодирования, имеющих древовидную структуру, декодирование выполняется для каждой LCU, чтобы восстанавливать данные изображения пространственной области. Таким образом, картинка и видео, которое является последовательностью картинок, могут быть восстановлены. Восстановленное видео может воспроизводиться устройством воспроизведения, сохраняться на носителе данных или передаваться через сеть.
Кроме того, параметры SAO могут сигнализироваться относительно каждой картинки, каждого сегмента, каждой LCU, каждой из единиц кодирования, имеющих древовидную структуру, каждой единицы предсказания единиц кодирования или каждой единицы преобразования единиц кодирования. Например, пиксельные значения восстановленных пикселов каждой LCU могут корректироваться с использованием значений сдвига, восстановленных на основе принятых параметров SAO, и, таким образом, LCU, имеющая минимизированную ошибку между исходным блоком и LCU, может быть восстановлена.
Для удобства описания, способ кодирования видео согласно операции сдвига выборки, который описан выше со ссылками на Фиг. 1A-20, будет упоминаться как ‘способ кодирования видео согласно настоящему раскрытию’. Кроме того, способ декодирования видео согласно операции сдвига выборки, который описан выше со ссылками на Фиг. 1A-20, будет упоминаться как ‘способ декодирования видео согласно настоящему раскрытию’.
Кроме того, устройство кодирования видео, включающее в себя устройство 10 кодирования SAO, устройство 100 кодирования видео, или кодер 400 изображения, описанное выше со ссылками на Фиг. 1A-20, будет упоминаться как ‘устройство кодирования видео согласно настоящему раскрытию’. Кроме того, устройство декодирования видео, включающее в себя устройство 20 декодирования видео, устройство 200 декодирования видео или декодер 500 изображения, описанное выше со ссылками на Фиг. 1A-20, будет упоминаться как ‘устройство декодирования видео согласно настоящему раскрытию’.
Считываемый компьютером носитель записи, хранящий программу, например, диск 26000, согласно вариантам осуществления настоящего раскрытия, подробно описан ниже.
Фиг. 21 представляет собой диаграмму физической структуры диска 26000, в котором сохранена программа согласно вариантам осуществления настоящего раскрытия. Диск 26000, который является носителем данных, может быть жестким диском, CD-ROM диском, blu-ray диском или цифровым универсальным диском (DVD). Диск 26000 включает множество концентрических дорожек Tr, которые разделены на определенное число секторов Se в окружном направлении диска 26000. В определенной области диска 26000 может быть сохранена программа, которая выполняет способ определения параметра квантования, способ кодирования видео и способ декодирования видео, описанные выше.
Компьютерная система, реализованная с использованием носителя данных, который хранит программу для выполнения способа кодирования видео и способа декодирования видео, как описано выше, будет далее описана со ссылкой на Фиг. 22.
Фиг. 22 показывает схему дисковода 26800 для записи и считывания программы с использованием диска 26000. Компьютерная система 26700 может хранить программу, которая выполняет по меньшей мере один из способа кодирования видео и способа декодирования видео согласно вариантам осуществления настоящего раскрытия, на диске 26000 посредством дисковода 26800. Для исполнения программы, сохраненной на диске 26000, в компьютерной системе 26700, программа может быть считана с диска 26000 и передана на компьютерную систему 26700 с использованием дисковода 26700.
Программа, которая выполняет по меньшей мере один из способа кодирования видео и способа декодирования видео согласно вариантам осуществления настоящего раскрытия, может быть сохранена не только на диске 26000, проиллюстрированном на Фиг. 21 или 22, но также и в карте памяти, кассете ROM или твердотельном накопителе (SSD).
Система, в которой применяются вышеописанные способ кодирования видео и способ декодирования видео, будет описана ниже.
Фиг. 23 является схемой полной структуры системы 11000 доставки контента для обеспечения службы распределения контента. Зона обслуживания системы связи разделена на соты предопределенного размера, и беспроводные базовые станции 11700, 11800, 11900 и 12000 установлены в этих сотах соответственно.
Система 11000 доставки контента включает в себя множество независимых устройств. Например, множество независимых устройств, таких как компьютер 12100, персональный цифровой помощник (PDA) 12200, видеокамера 12300 и мобильный телефон 12500, связаны с Интернетом 11100 через поставщика 11200 интернет-услуг, сеть 11400 связи и беспроводные базовые станции 11700, 11800, 11900 и 12000.
Однако система 11000 доставки контента не ограничена тем, что проиллюстрировано на Фиг. 24, и устройства могут избирательно соединяться с ней. Множество независимых устройств может быть непосредственно связано с сетью 11400 связи, а не через беспроводные базовые станции 11700, 11800, 11900 и 12000.
Видеокамера 12300 является устройством формирования изображения, например, цифровой видеокамерой, которая способна захватывать видео изображения. Мобильный телефон 12500 может использовать по меньшей мере один способ связи из числа различных протоколов, таких как Персональная цифровая связь (PDC), Множественный доступ с кодовым разделением, Широкополосный множественный доступ с кодовым разделением (W-CDMA), Глобальная система для мобильной связи (GSM) и Система для персональных мобильных телефонов (PHS).
Видеокамера 12300 может быть связана с потоковым сервером 11300 через беспроводную базовую станцию 11900 и сеть 11400 связи. Потоковый сервер 11300 позволяет осуществлять потоковую передачу контента, принятого от пользователя через видеокамеру 12300, чтобы выполнять потоковую передачу посредством широковещания в реальном времени. Контент, принятый от видеокамеры 12300, может кодироваться с использованием видеокамеры 12300 или потокового сервера 11300. Видео данные, захваченные видеокамерой 12300, могут передаваться к потоковому серверу 11300 через компьютер 12100.
Видео данные, захваченные камерой 12600, могут также передаваться к потоковому серверу 11300 через компьютер 12100. Камера 12600 является устройством формирования изображения, способным захватывать как неподвижные изображения, так и видео изображения, подобно цифровой камере. Видео данные, захваченные камерой 12600, могут кодироваться с использованием камеры 12600 или компьютера 12100. Программное обеспечение, которое выполняет кодирование и декодирование видео, может быть сохранено на считываемом компьютером носителе записи, например, диске CD-ROM, гибком диске, жестком диске, SSD или карте памяти с доступом от компьютера 12100.
Если видео данные захвачены камерой, встроенной в мобильный телефон 12500, то видео данные могут быть приняты от мобильного телефона 12500.
Видео данные могут также кодироваться с помощью системы на большой интегральной схеме (LSI), установленной в видеокамере 12300, мобильном телефоне 12500 или камере 12600.
Система 11000 доставки контента может кодировать данные контента, записанные пользователем с использованием видеокамеры 12300, камеры 12600, мобильного телефона 12500 или другого устройства формирования изображения, например, контента, записанного во время концерта, и передавать кодированные данные контента на потоковый сервер 11300. Потоковый сервер 11300 может передавать кодированные данные контента как потоковый контент к другим клиентам, которые запрашивают данные контента.
Клиентами являются устройства, способные декодировать кодированные данные контента, например, компьютер 12100, PDA 12200, видеокамера 12300 или мобильный телефон 12500. Таким образом, система 11000 доставки контента позволяет клиентам принимать и воспроизводить кодированные данные контента. Также, система 11000 доставки контента позволяет клиентам принимать кодированные данные контента и декодировать и воспроизводить кодированные данные контента в режиме реального времени, таким образом, реализуя персональное широковещание.
Операции кодирования и декодирования множества независимых устройств, включенных в систему 11000 доставки контента, могут быть подобными таковым в устройстве кодирования видео и устройстве декодирования видео согласно вариантам осуществления настоящего раскрытия.
Мобильный телефон 12500, включенный в систему 11000 доставки контента согласно вариантам осуществления настоящего раскрытия будет описан ниже более подробно со ссылкой на Фиг. 24 и 25.
Фиг. 24 иллюстрирует внешнюю структуру мобильного телефона 12500, в котором применимы способ кодирования видео и способ декодирования видео согласно вариантам осуществления настоящего раскрытия. Мобильный телефон 12500 может быть смартфоном, функции которого не ограничены, и большое количество функций которого могут быть изменены или расширены.
Мобильный телефон 12500 включает в себя внутреннюю антенну 12510, через которую может осуществляться обмен радиочастотным (RF) сигналом с беспроводной базовой станцией 12000 по Фиг. 21, и включает в себя экран 12520 дисплея для отображения изображений, захваченных камерой 12530, или изображений, которые получены через антенну 12510 и декодированы, например, жидкокристаллический дисплей (LCD) или экран на органических светоизлучающих диодах (OLED). Мобильный телефон 12500 включает в себя операционную панель 12540, включающую в себя кнопку управления и сенсорную панель. Если экран 12520 дисплея является сенсорным экраном, операционная панель 12540 далее включает сенсорную панель экрана 12520 дисплея. Мобильный телефон 12500 включает в себя динамик 12580 для вывода голоса и звука или иное средство вывода звука и микрофон 12550 для ввода голоса и звука или иное средство ввода звука. Мобильный телефон 12500 далее включает в себя камеру 12530, такую как камера на устройствах с зарядовой связью (CCD), чтобы захватывать видео и неподвижные изображения. Мобильный телефон 12500 может далее включать в себя носитель 12570 данных для сохранения кодированных/декодированных данных, например, видео или неподвижных изображений, захваченных камерой 12530, полученных по электронной почте или полученных различными путями; и гнездо 12560, через которое носитель данных 12570 загружается в мобильный телефон 12500. Носитель данных 12570 может быть флэш-памятью, например, безопасной цифровой (SD) картой или электрически стираемым и программируемым ПЗУ (EEPROM), включенной в пластиковый корпус.
Фиг. 25 иллюстрирует внутреннюю структуру мобильного телефона 12500, согласно варианту осуществления настоящего раскрытия. Для того чтобы системно управлять частями мобильного телефона 12500, включая экран 12520 дисплея и операционную панель 12540, схема 12700 источника питания, контроллер 12640 операционного ввода, кодер 12720 изображения, интерфейс 12630 камеры, LCD контроллер 12620, декодер 12690 изображения, мультиплексор/демультиплексор 12680, модуль 12670 записи/считывания, модулятор/демодулятор 12660 и звуковой процессор 12650 связаны с центральным контроллером 12710 через шину 12730 синхронизации.
Если пользователь управляет кнопкой "питание" и переходит из состояния ‘питание выключено’ в состояние ‘питание включено’, схема 12700 источника питания подает питание на все части мобильного телефона 12500 от аккумуляторной батареи, тем самым устанавливая мобильный телефон 12500 в рабочий режим.
Центральный контроллер 12710 включает центральный процессор (CPU), ROM и RAM.
В то время как мобильный телефон 12500 передает коммуникационные данные к внешней стороне, цифровой сигнал генерируется мобильным телефоном 12500 под управлением центрального контроллера 12710. Например, звуковой процессор 12650 может генерировать цифровой звуковой сигнал, кодер 12720 изображения может генерировать цифровой сигнал изображения, и текстовые данные сообщения могут генерироваться посредством операционной панели 12540 и контроллера 12640 операционного ввода. Когда цифровой сигнал передается к модулятору/демодулятору 12660 под управлением центрального контроллера 12710, модулятор/демодулятор 12660 модулирует диапазон частот цифрового сигнала, и схема 12610 связи выполняет цифро-аналоговое преобразование (DAC) и преобразование частоты на модулированном в диапазоне частот звуковом сигнале. Сигнал передачи, выведенный из схемы 12610 связи, может быть передан к базовой станции голосовой связи или беспроводной базовой станции 12000 через антенну 12510.
Например, когда мобильный телефон 12500 находится в режиме разговора, звуковой сигнал, полученный через микрофон 12550, преобразуется в цифровой звуковой сигнал звуковым процессором 12650 под управлением центрального контроллера 12710. Цифровой звуковой сигнал может быть преобразован в сигнал преобразования посредством модулятора/демодулятора 12660 и схему 12610 связи и может быть передан через антенну 12510.
Когда текстовое сообщение, например электронная почта, передается в способе передачи данных, текстовые данные текстового сообщения вводятся через операционную панель 12540 и передаются к центральному контроллеру 12710 через контроллер 12640 операционного ввода. Под управлением центрального контроллера 12710, текстовые данные преобразуются в сигнал передачи посредством модулятора/демодулятора 12660 и схему 12610 связи и передаются к беспроводной базовой станции 12000 через антенну 12510.
Чтобы передавать данные изображения в способе передачи данных, данные изображения, захваченные камерой 12530, подаются на кодер 12720 изображения через интерфейс 12630 камеры. Захваченные данные изображения могут быть непосредственно отображены на экране 12520 дисплея через интерфейс 12630 камеры и LCD контроллер 12620.
Структура кодера 12720 изображения может соответствовать структуре вышеописанного способа кодирования видео согласно настоящему раскрытию. Кодер 12720 изображения может преобразовать данные изображения, принятые от камеры 12530, в сжатые и кодированные данные изображения на основе вышеописанного способа кодирования видео согласно настоящему раскрытию и затем вывести кодированные данные изображения в мультиплексор/демультиплексор 12680. Во время операции записи камеры 12530, звуковой сигнал, полученный микрофоном 12550 мобильного телефона 12500, может быть преобразован в цифровые звуковые данные посредством звукового процессора 12650, и цифровые звуковые данные могут быть переданы в мультиплексор/демультиплексор 12680.
Мультиплексор/демультиплексор 12680 мультиплексирует кодированные данные изображения, полученные от кодера 12720 изображения, вместе со звуковыми данными, полученными от звукового процессора 12650. Результат мультиплексирования данных может быть преобразованы в сигнал передачи посредством модулятора/демодулятора 12660 и схемы 12610 связи и может затем быть передан через антенну 12510.
В то время как мобильный телефон 12500 принимает коммуникационные данные от внешней стороны, восстановление частоты и ADC выполняются на сигнале, принятом через антенну 12510, чтобы преобразовать сигнал в цифровой сигнал. Модулятор/демодулятор 12660 модулирует диапазон частот цифрового сигнала. Модулированный в диапазоне частот цифровой сигнал передается в модуль 12690 декодирования видео, звуковой процессор 12650 или LCD контроллер 12620, согласно типу цифрового сигнала.
В режиме разговора, мобильный телефон 12500 усиливает сигнал, принятый через антенну 12510, и получает цифровой звуковой сигнал путем выполнения преобразование частоты и ADC на усиленном сигнале. Полученный цифровой звуковой сигнал преобразуется в аналоговый звуковой сигнал посредством модулятора/демодулятора 12660 и звукового процессора 12650, и аналоговый звуковой сигнал выводится через динамик 12580 под управлением центрального контроллера 12710.
В режиме передачи данных принимаются данные видео файла, полученные через доступ к интернет-веб-сайту, сигнал, принятый от беспроводной базовой станции 12000 через антенну 12510, выводится как мультиплексированные данные через модулятор/демодулятор 12660, и мультиплексированные данные передаются в мультиплексор/демультиплексор 12680.
Чтобы декодировать мультиплексированные данные, принятые через антенну 12510, мультиплексор/демультиплексор 12680 демультиплексирует мультиплексированные данные в поток кодированных видео данных и поток кодированных аудио данных. Через шину 12730 синхронизации, поток кодированных видео данных и поток кодированных аудио данных подаются в модуль 12690 декодирования видео и звуковой процессор 12650 соответственно.
Структура декодера 12690 изображения может соответствовать структуре вышеописанного способа декодирования видео согласно настоящему раскрытию. Декодер 12690 изображения может декодировать кодированные видео данные, чтобы получить восстановленные видео данные и предоставлять восстановленные видео данные на экран 12520 дисплея посредством LCD контроллера 12620 с использованием вышеописанного способа декодирования видео согласно настоящему раскрытию.
Таким образом, данные видео файла, к которому получен доступ на интернет-веб-сайте, могут быть отображены на экране 12520 дисплея. В то же самое время, звуковой процессор 12650 может преобразовать аудио данные в аналоговый звуковой сигнал и предоставлять аналоговый звуковой сигнал в динамик 12580. Таким образом аудио данные, содержащиеся в видео файле, к которому получен доступ на интернет-веб-сайте, могут также быть воспроизведены через динамик 12580.
Мобильный телефон 12500 или другой тип терминала связи может быть приемопередающим терминалом, включающим в себя как устройство кодирования видео, так и устройство декодирования видео согласно вариантам осуществления настоящего раскрытия, может быть приемопередающим терминалом, включающим в себя только устройство кодирования видео, или может быть приемопередающим терминалом, включающим в себя только устройство декодирования видео.
Система связи согласно настоящему раскрытию не ограничена системой связи, описанной выше со ссылкой на Фиг. 24. Например, Фиг. 26 иллюстрирует систему цифрового вещания, использующую систему связи, согласно вариантам осуществления настоящего раскрытия. Система цифрового вещания по Фиг. 26 может принимать цифровое вещание, передаваемое через спутник или наземную сеть, с использованием устройства кодирования видео и устройства декодирования видео согласно вариантам осуществления настоящего раскрытия.
В частности, вещательная станция 12890 передает поток видео данных к спутнику связи или вещательному спутнику 12900 с использованием радиоволн. Вещательный спутник 12900 передает сигнал вещания, и сигнал вещания передается к приемнику спутникового вещания через домашнюю антенну 12860. В каждом доме поток кодированного видео может быть декодирован и воспроизведен телевизионным приемником 12810, телевизионной приставкой 12870 или другим устройством.
Когда устройство декодирования видео согласно вариантам осуществления настоящего раскрытия реализовано устройстве 12830 воспроизведения, устройство 12830 воспроизведения может синтаксически анализировать и декодировать поток кодированного видео, записанный на носителе 12820 данных, таком как диск или карта памяти, чтобы восстанавливать цифровые сигналы. Таким образом, восстановленный видео сигнал может быть воспроизведен, например, на мониторе 12840.
В телевизионной приставке 12870, связанной с антенной 12860 для спутникового/наземного вещания или кабельной антенной 12850 для приема вещания кабельного телевидения (TV), может быть установлено устройство декодирования видео согласно вариантам осуществления настоящего раскрытия. Вывод данных от телевизионной приставки 12870 может также быть воспроизведен на TV мониторе 12880.
В качестве другого примера, устройство декодирования видео согласно вариантам осуществления настоящего раскрытия может быть установлено в TV приемнике 12810 вместо телевизионной приставки 12870.
Автомобиль 12920, который имеет соответствующую антенну 12910, может принять сигнал, переданный от спутника 12900 или беспроводной базовой станции 11700 по Фиг. 21. Декодированное видео может быть воспроизведено на экране дисплея автомобильной навигационной системы 12930, установленной в автомобиле 12920.
Видео сигнал может кодироваться устройством кодирования видео согласно вариантам осуществления настоящего раскрытия и может затем сохраняться на носителе данных. В частности, сигнал изображения может быть сохранен на DVD-диске 12960 посредством устройства записи на DVD или может быть сохранен на жестком диске посредством устройства 12950 записи на жестком диске. В качестве другого примера, видео сигнал может быть сохранен на SD-карте 12970. Если устройство 12950 записи на жестком диске включает в себя устройство декодирования видео согласно вариантам осуществления настоящего раскрытия, видео сигнал, записанный на DVD-диске 12960, SD-карте 12970 или другом носителе данных, может быть воспроизведен на TV мониторе 12880.
Автомобильная навигационная система 12930 может не иметь камеры 12530 по Фиг. 24, и интерфейса 12630 камеры и кодера 12720 изображения по Фиг. 25. Например, компьютер 12100 и TV 12810 могут не иметь камеры 12530, интерфейса 12630 камеры и кодера 12720 изображения.
Фиг. 27 является диаграммой, иллюстрирующей сетевую структуру облачной вычислительной системы, использующей устройство кодирования видео и устройство декодирования видео, согласно вариантам осуществления настоящего раскрытия.
Облачная вычислительная система может включать в себя облачный вычислительный сервер 14000, пользовательскую базу данных (DB) 14100, множество вычислительных ресурсов 14200 и пользовательский терминал.
Облачная вычислительная система предоставляет по требованию услугу аутсорсинга множества вычислительных ресурсов 14200 через сеть передачи данных, например, Интернет, в ответ на запрос от пользовательского терминала. В облачной вычислительной среде, поставщик услуг предоставляет пользователям желаемые услуги, комбинируя вычислительные ресурсы в информационных центрах, расположенных в физически различных местоположениях, с использованием технологии виртуализации. Пользователю услуги не требуется устанавливать вычислительные ресурсы, например, приложение, память, операционную систему (OS) и безопасность, на свой собственный терминал, чтобы использовать их, а он может выбрать и использовать желаемые услуги из числа услуг в виртуальном пространстве, сгенерированном через технологию виртуализации технологию в желательный момент времени.
Пользовательский терминал указанного пользователя услуги соединяется с облачным вычислительным сервером 14000 через сеть передачи данных, включая Интернет и мобильную телекоммуникационную сеть. Пользовательскому терминалу могут быть предоставлены облачные вычислительные услуги, и особенно услуги воспроизведения видео, от облачного вычислительного сервера 14000. Пользовательские терминалы могут быть различными типами электронных устройств, с возможностью Интернет-соединения, такими как настольный PC 14300, смарт-TV 14400, смартфон 14500, ноутбук 14600, портативный мультимедиа-плеер (PMP) 14700, планшетный РС 14800 и т.п.
Облачный вычислительный сервер 14000 может объединять множество вычислительных ресурсов 14200, распределенных в облачной сети, и обеспечивать пользовательский терминал результатом объединения. Множество вычислительных ресурсов 14200 может включать различные информационные службы и может включать данные, загруженные от пользовательских терминалов. Как описано выше, облачный вычислительный сервер 14000 может предоставить пользовательским терминалам желаемые услуги, комбинируя базу данных видео, распределенную в различных регионах, согласно технологии виртуализации.
Пользовательская информация о пользователях, которые подписались на облачную вычислительную услугу, хранится в пользовательской DB 14100. Пользовательская информация может включать информацию регистрации, адреса, имена и персональную кредитную информацию пользователей. Пользовательская информация может дополнительно включать в себя индексы видео. Здесь, индексы могут включать в себя список видео, которые были уже воспроизведены, список видео, которые воспроизводятся, момент паузы видео, которое воспроизводилось, и т.п.
Информация о видео, сохраненном в пользовательской DB 14100, может совместно использоваться пользовательскими устройствами. Например, когда видео услуга предоставляется на компьютер-ноутбук 14600 в ответ на запрос от компьютера-ноутбука 14600, история воспроизведения видео услуги сохраняется в пользовательской DB 14100. Когда запрос на воспроизведение этой услуги видео принят от смартфона 14500, облачный вычислительный сервер 14000 выполняет поиск и воспроизводит эту услугу видео на основе пользовательской DB 14100. Когда смартфон 14500 принимает поток видео данных от облачного вычислительного сервера 14000, процесс воспроизведения видео путем декодирования потока видео данных подобен операции мобильного телефона 12500, описанного выше со ссылкой на Фиг. 24.
Облачный вычислительный сервер 14000 может обратиться к истории воспроизведения желаемой видео услуги, сохраненной в пользовательской DB 14100. Например, облачный вычислительный сервер 14000 получает запрос на воспроизведение видео, сохраненного в пользовательской DB 14100, от пользовательского терминала. Если это видео воспроизводилось, то способ потоковой передачи этого видео, выполняемый облачным вычислительным сервером 14000, может изменяться в соответствии с запросом от пользовательского терминала, то есть согласно тому, будет ли видео воспроизводиться, начиная с его начала или с точки паузы в его воспроизведении. Например, если пользовательский терминал запрашивает воспроизведение видео, начиная с его начала, облачный вычислительный сервер 14000 передает потоковые данные видео, начинающиеся с его первого кадра, на пользовательский терминал. Если пользовательский терминал запрашивает воспроизведение видео, начиная с точки паузы в его воспроизведении, облачный вычислительный сервер 14000 передает потоковые данные видео, начинающегося с кадра, соответствующего точке паузы, на пользовательский терминал.
В этом случае, пользовательский терминал может включать в себя устройство декодирования видео, как описано выше со ссылкой на Фиг. 1A-20. В качестве другого примера, пользовательский терминал может включать в себя устройство кодирования видео, как описано выше со ссылкой на Фиг. 1A-20. Альтернативно, пользовательский терминал может включать в себя как устройство декодирования видео, так и устройство кодирования видео, как описано выше со ссылкой на Фиг. 1A-20.
Различные применения способа кодирования видео, способа декодирования видео, устройства кодирования видео и устройства декодирования видео согласно вариантам осуществления настоящего раскрытия, описанных выше со ссылками на Фиг. 1A-20, были описаны выше со ссылками на Фиг. 21-27. Однако способы хранения способа кодирования видео и способа декодирования видео на носителе данных или способы реализации устройства кодирования видео и устройства декодирования видео в устройстве, согласно различным вариантам осуществления настоящего раскрытия, не ограничены вариантами осуществления, описанными выше со ссылкой на Фиг. 21-27.
В настоящей спецификации, выражении “A может включать в себя одно из a1, a2 и a3” в широком аспекте означает, что примерным суб-элементом элемента A является a1, a2 или a3.
Вышеуказанное выражение не ограничивает суб-элемент элемента А посредством a1, a2 или a3. Поэтому, следует отметить, что вышеупомянутое выражение не должно толковаться как исключающее элементы иные, чем a1, a2 и a3, из суб-элементов элемента A.
Кроме того, вышеуказанное выражение означает, что элемент A может включать a1, может включать a2 или может включать a3. Вышеуказанное выражение не означает, что суб-элементы элемента A выборочно определены в определенную группу. Например, следует отметить, что вышеуказанное выражение не должно толковаться как то, что a1, a2 или a3, выбранный из группы, состоящей из a1, a2 и a3, формирует элемент A.
Кроме того, в настоящей спецификации, выражение “по меньшей мере одно из a1, a2 и a3” обозначает одно из a1; a2; a3; a1 и a2; a1 и a3; a2 и a3; и a1, a2, и a3.
Поэтому следует отметить, что если не определено как “по меньшей мере одно из a1, по меньшей мере одно из a2 или (и) по меньшей мере одно из a3”, выражение “по меньшей мере одно из a1, a2 и a3” не подразумевается как означающее “по меньшей мере одно из a1, по меньшей мере одно из a2 или (и) по меньшей мере одно из a3”.
Варианты осуществления согласно настоящему раскрытию могут быть написаны как компьютерные программы и могут быть реализованы в цифровых компьютерах общего использования, которые выполняют программы с использованием считываемого компьютером носителя записи. Примеры считываемого компьютером носителя записи включают в себя магнитные носители данных (например, ROM, гибкие диски, жесткие диски и т.д.) и оптические носители записи (например, CD-ROM или DVD).
В то время как настоящее раскрытие, в частности, показано и описано со ссылками на примерные варианты осуществления, специалистам в данной области техники должно быть понятно, что различные изменения по форме и в деталях могут быть выполнены в нем без отклонения от сущности и объема раскрытия, как определено следующими пунктами формулы изобретения. Примерные варианты осуществления должны рассматриваться только в описательном смысле, но не в целях ограничения. Поэтому объем раскрытия определяется не подробным описанием раскрытия, а следующими пунктами формулы изобретения, и все различия в пределах объема должны рассматриваться как включенные в настоящее раскрытие.