способы, устройства и системы для параллельного кодирования и декодирования видеоинформации
Классы МПК: | H03M7/00 Преобразование кода, в котором информация представлена заданной последовательностью цифр или числом, в код, где та же информация представлена последовательностью цифр или числом, отличными от заданных |
Автор(ы): | ЧЖАО Цзе (US), СИГОЛЛ Кристофер А. (US), КЕРОФСКИ Луис Дж. (US) |
Патентообладатель(и): | ШАРП КАБУСИКИ КАЙСЯ (JP) |
Приоритеты: |
подача заявки:
2009-03-25 публикация патента:
27.04.2014 |
Изобретение относится к вычислительной технике, а именно к кодированию видеоинформации. Технический результат заключается в повышение эффективности кодирования и декодирования битового потока видеоинформации за счет разделения данных на энтропийные слои. В способе осуществляют энтропийное декодирование первой части битового потока видеоинформации, которая связана с видеокадром, тем самым производя первую часть декодированных данных; осуществляют энтропийное декодирование второй части битового потока видеоинформации, которая также связана с видеокадром, тем самым производя вторую часть декодированных данных, при этом энтропийное декодирование второй части битового потока видеоинформации осуществляется независимо от энтропийного декодирования первой части битового потока видеоинформации; и реконструируют первую часть видеокадра, связанную с битовым потоком видеоинформации, используя первую часть декодированных данных и вторую часть декодированных данных. 2 н. и 6 з.п. ф-лы, 10 ил., 1 табл.
Формула изобретения
1.Способ декодирования видеокадра в видеопоследовательности, причем упомянутый способ содержит этапы, на которых:
a) принимают битовый поток;
b) идентифицируют реконструируемый слой в упомянутом битовом потоке;
c) идентифицируют множество разделенных слоев, каждый из которых связан с областью изображения в упомянутом реконструируемом слое в упомянутом битовом потоке;
d) осуществляют энтропийное декодирование каждого из упомянутого множества разделенных слоев, связанных с упомянутым реконструируемым слоем, таким образом производя множество энтропийно декодированных разделенных слоев; и
e) реконструируют часть видеокадра, связанную с упомянутым реконструируемым слоем, используя упомянутое множество энтропийно декодированных разделенных слоев.
2. Способ по п.1, в котором упомянутый этап, на котором идентифицируют упомянутое множество разделенных слоев, связанных с упомянутым реконструируемым слоем, содержит этап, на котором анализируют упомянутый битовый поток для идентификации каждого разделенного слоя из упомянутого множества разделенных слоев, связанных с упомянутым реконструируемым слоем.
3. Способ по п.1, в котором этап, на котором осуществляют энтропийное декодирование первого разделенного слоя из упомянутого множества разделенных слоев, связанных с упомянутым реконструируемым слоем, содержит этапы, на которых:
a) инициализируют множество контекстных моделей; и
b) корректируют упомянутое множество контекстных моделей в ходе упомянутого этапа, на котором осуществляют энтропийное декодирование упомянутого первого разделенного слоя из упомянутого множества разделенных слоев, связанных с упомянутым реконструируемым слоем.
4. Способ по п.3, в котором упомянутый первый разделенный слой идентифицируется первым заголовком.
5. Способ по п.1, в котором упомянутый реконструируемый слой соответствует целому упомянутому видеокадру.
6. Способ по п.1, дополнительно содержащий этап, на котором анализируют флаг заголовка слоя в упомянутом битовом потоке, и
в случае если упомянутый анализируемый флаг имеет значение, равное 0, то упомянутый заголовок слоя является заголовком обычного слоя,
в случае если упомянутый анализируемый флаг имеет значение, равное 1, то упомянутый заголовок слоя является заголовком разделенного слоя,
причем упомянутый заголовок разделенного слоя использует большинство атрибутов слоя совместно с упомянутым заголовком обычного слоя, и размер упомянутого заголовка разделенного слоя меньше размера упомянутого заголовка обычного слоя.
7. Способ кодирования видеокадра в видеопоследовательности, причем упомянутый способ содержит этапы, на которых:
a) разделяют первый кадр в видеопоследовательности на по меньшей мере один реконструируемый слой, таким образом производя первый реконструируемый слой; и
b) разделяют упомянутый первый реконструируемый слой на множество разделенных слоев для энтропийного кодирования, каждый из которых связан с областью изображения в упомянутом реконструируемом слое.
8. Способ по п.7, дополнительно содержащий этап, на котором добавляют флаг к заголовку слоя в упомянутом битовом потоке, и
упомянутое добавление флага создает флаг, является ли упомянутый заголовок слоя, к которому добавляют флаг, обычным заголовком, связанным с упомянутым реконструируемым слоем, или заголовком разделенного слоя, связанным с разделенным слоем,
причем упомянутый заголовок разделенного слоя использует большинство атрибутов слоя совместно с упомянутым заголовком обычного слоя, и размер упомянутого заголовка разделенного слоя меньше размера упомянутого заголовка обычного слоя.
Описание изобретения к патенту
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Варианты осуществления настоящего изобретения в целом имеют отношение к кодированию видеоинформации.
УРОВЕНЬ ТЕХНИКИ
Способы и стандарты кодирования видеоинформации современного уровня техники, например стандарт H.264/MPEG-4 AVC (H.264/AVC), могут обеспечить более высокую эффективность кодирования, чем более ранние способы и стандарты, за счет более высокой сложности. Повышение требований к качеству и требований к разрешающей способности, предъявляемых к способам и стандартам кодирования видеоинформации, также может повысить их сложность. Декодирующие устройства, которые поддерживают параллельное декодирование, могут повысить скорость декодирования и снизить требования к запоминающему устройству. Дополнительно, достижения в области многоядерных обрабатывающих устройств могут сделать желательными кодирующие устройства и декодирующие устройства, которые поддерживают параллельное декодирование.
Стандарт H.264/MPEG-4 AVC [Спецификации Joint Video Team of ITU-T VCEG (Объединенная группа по разработке стандартов обработки видеоинформации в составе группы экспертов по кодированию видеоинформации Сектора стандартизации международного союза электросвязи) при содействии ISO/IEC MPEG (Группа экспертов по движущемуся изображению Международной организации по стандартизации/Международной электротехнической комиссии), "H.264: Усовершенствованное кодирование видеоинформации для общих аудиовизуальных услуг", Протокол ITU-T H.264 и ISO/IEC 14496-10 (MPEG4 - Раздел 10), ноябрь 2007 года], который включается в настоящую заявку путем ссылки во всей полноте, представляет собой спецификации кодирования-декодирования видеоинформации с использованием предсказания макроблоков с последующим остаточным кодированием для снижения временной и пространственной избыточности в видеопоследовательности для эффективного сжатия.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
Некоторые варианты осуществления настоящего изобретения содержат способы, устройства и системы для параллельного энтропийного кодирования и декодирования битового потока видеоинформации на основании разделения данных на энтропийные слои, которые могут независимо подвергаться энтропийному кодированию и декодированию.
Согласно одному аспекту настоящего изобретения, предоставляется способ декодирования битового потока видеоинформации. Способ содержит этапы, на которых: осуществляют энтропийное декодирование первой части битового потока видеоинформации, причем первая часть битового потока видеоинформации связана с видеокадром, таким образом, производя первую часть декодированных данных; осуществляют энтропийное декодирование второй части битового потока видеоинформации, причем вторая часть битового потока видеоинформации связана с видеокадром, таким образом, производя вторую часть декодированных данных, при этом энтропийное декодирование второй части битового потока видеоинформации осуществляется независимо от энтропийного декодирования первой части битового потока видеоинформации; и реконструируют первую часть видеокадра, связанную с битовым потоком видеоинформации, используя первую часть декодированных данных и вторую часть декодированных данных.
Согласно другому аспекту настоящего изобретения, предоставляется способ для декодирования видеокадра в видеопоследовательности. Способ содержит этапы, на которых принимают битовый поток; идентифицируют реконструируемый слой в битовом потоке; идентифицируют множество энтропийных слоев, связанных с реконструируемым слоем в битовом потоке; осуществляют энтропийное декодирование каждого из множества энтропийных слоев, связанных с реконструируемым слоем, таким образом, производя множество энтропийно декодированных энтропийных слоев; и реконструируют часть видеокадра, связанную с реконструируемым слоем, используя множество энтропийно декодированных энтропийных слоев.
Согласно другому аспекту настоящего изобретения, предоставляется способ для кодирования видеокадра в видеопоследовательности. Способ содержит этапы, на которых: разделяют первый кадр в видеопоследовательности по меньшей мере на один реконструируемый слой, таким образом, производя первый реконструируемый слой; и разделяют первый реконструируемый слой на множество энтропийных слоев.
Согласно другому аспекту настоящего изобретения, раскрывается способ для генерирования битового потока видеоинформации для параллельного декодирования. Способ содержит этапы, на которых: принимают первый битовый поток видеоинформации; идентифицируют реконструируемый слой в битовом потоке видеоинформации; осуществляют энтропийное декодирование множества символов из реконструируемого слоя, таким образом, производя энтропийно декодированные данные, связанные с реконструируемым слоем; разделяют энтропийно декодированные данные, связанные с реконструируемым слоем, на множество энтропийных слоев, связанных с реконструируемым слоем; осуществляют независимое энтропийное кодирование энтропийно декодированных данных каждого энтропийного слоя из множества энтропийных слоев, таким образом, производя множество энтропийно закодированных энтропийных слоев; и генерируют второй битовый поток видеоинформации, содержащий множество энтропийно закодированных энтропийных слоев.
В некоторых вариантах осуществления настоящего изобретения, первая часть и вторая часть входного битового потока сжатой видеоинформации могут независимо энтропийно декодироваться. Блок отсчетов видеокадра, связанный со второй частью входного битового потока сжатой видеоинформации, может быть реконструирован с использованием декодированных данных из первой части и из второй части. Таким образом, определение реконструирования соседнего элемента и определение энтропийного декодирования соседнего элемента не одно и то же.
В некоторых вариантах осуществления настоящего изобретения, кодирующее устройство может разделять входные данные на энтропийные слои. Кодирующее устройство может осуществлять энтропийное кодирование энтропийных слоев независимо. Кодирующее устройство может формировать битовый поток, содержащий заголовки энтропийных слоев, каждый из которых может указывать на расположение в битовом потоке связанных данных для энтропийного слоя. В некоторых вариантах осуществления настоящего изобретения, декодирующее устройство может анализировать принятый битовый поток на присутствие заголовков энтропийных слоев, и декодирующее устройство может осуществлять энтропийное декодирование множества энтропийных слоев согласно определенному декодирующим устройством уровню параллелизма.
В некоторых вариантах осуществления настоящего изобретения, данные могут мультиплексироваться на уровне изображения для формирования энтропийных слоев. В некоторых вариантах осуществления, один или более энтропийных слоев могут соответствовать данным предсказания, и один или более энтропийных слоев могут соответствовать остаточным данным. В альтернативных вариантах осуществления настоящего изобретения, один или более энтропийных слоев могут соответствовать каждой из множества цветовых плоскостей.
В некоторых вариантах осуществления настоящего изобретения, битовый поток может быть перекодирован так, чтобы содержать энтропийные слои. В этих вариантах осуществления, может энтропийно декодироваться принятый битовый поток, может создаваться множество энтропийных слоев, и каждый из энтропийных слоев может независимо кодироваться и записываться в перекодированный битовый поток вместе со связанными заголовками энтропийных слоев.
Вышеуказанные и другие цели, признаки и преимущества настоящего изобретения будут более понятны при рассмотрении последующего подробного описания изобретения в сочетании с прилагаемыми чертежами.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг.1 является изображением, показывающим отвечающее стандарту H.264/AVC устройство кодирования видеоинформации (предшествующий уровень техники);
Фиг.2 является изображением, показывающим отвечающее стандарту H.264/AVC устройство декодирования видеоинформации (предшествующий уровень техники);
Фиг.3 является изображением, показывающим иллюстративную структуру слоев (предшествующий уровень техники);
Фиг.4 является изображением, показывающим иллюстративную структуру групп слоев (предшествующий уровень техники);
Фиг.5 является изображением, показывающим иллюстративное послойное разделение согласно вариантам осуществления настоящего изобретения, при этом изображение может разделяться по меньшей мере в одном реконструируемом слое, и реконструируемый слой может разделяться более чем на один энтропийный слой;
Фиг.6 является диаграммой, показывающей иллюстративный вариант осуществления настоящего изобретения, содержащий энтропийный слой;
Фиг.7 является диаграммой, показывающей иллюстративный вариант осуществления настоящего изобретения, содержащий параллельное энтропийное декодирование множества энтропийных слоев с последующим реконструированием слоев;
Фиг.8 является диаграммой, показывающей иллюстративный вариант осуществления настоящего изобретения, содержащий мультиплексирование данных предсказания/остаточных данных на уровне изображения для создания энтропийного слоя;
Фиг.9 является диаграммой, показывающей иллюстративный вариант осуществления настоящего изобретения, содержащий мультиплексирование цветовых плоскостей на уровне изображения для создания энтропийного слоя; и
Фиг.10 является диаграммой, показывающей иллюстративный вариант осуществления настоящего изобретения, содержащий перекодирование битового потока посредством энтропийного декодирования, формирования энтропийных слоев и энтропийного кодирования.
ПОЗИЦИОННЫЕ ОБОЗНАЧЕНИЯ
2 | отвечающее стандарту H.264/AVC устройство кодирования видеоинформации |
32 | энтропийное кодирование |
54 | энтропийное декодирование |
80 | отвечающее стандарту H.264/AVC устройство декодирования видеоинформации |
110 | видеокадр |
111, 112, 113 | реконструируемый слой |
112-1, 112-2, 112-3 | энтропийный слой |
115, 116, 117, 118, 119, 120, 121, 122, 123 | макроблок |
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
Варианты осуществления настоящего изобретения будут наилучшим образом поняты при обращении к чертежам, при этом повсюду подобные части обозначаются подобными цифрами. Перечисленные выше чертежи явно включаются как часть настоящего подробного описания.
Будет легко понять, что компоненты настоящего изобретения, которые в целом описаны и проиллюстрированы на чертежах в данном документе, могут быть скомпонованы и приспособлены для самых разных конфигураций. Таким образом, последующее более подробное описание вариантов осуществления способов, устройств и систем настоящего изобретения не предназначено для ограничения объема настоящего изобретения, а лишь отражает предпочтительные варианты осуществления настоящего изобретения.
Элементы вариантов осуществления настоящего изобретения могут быть воплощены в аппаратном обеспечении, программно-аппаратном обеспечении и/или программном обеспечении. Несмотря на то что иллюстративные варианты осуществления, показанные в данном документе, могут описывать только одну из этих форм, следует понимать, что специалист в данной области техники сможет исполнить такие элементы в любой из этих форм, оставаясь в пределах объема настоящего изобретения.
В то время как любое кодирующее/декодирующее устройство (кодек), которое использует энтропийное кодирование/декодирование, может быть приспособлено к вариантам осуществления настоящего изобретения, иллюстративные варианты осуществления настоящего изобретения будут проиллюстрированы в отношении отвечающего стандарту H.264/AVC устройства кодирования и отвечающего стандарту H.264/AVC устройства декодирования. Это предназначено для иллюстрирования вариантов осуществления настоящего изобретения, а не для ограничения.
Способы и стандарты кодирования видеоинформации современного уровня техники, например стандарт H.264/AVC, могут обеспечить более высокую эффективность кодирования, чем более ранние способы и стандарты, за счет более высокой сложности. Повышение требований к качеству и требований к разрешающей способности, предъявляемых к способам и стандартам кодирования видеоинформации, также может повысить их сложность. Декодирующие устройства, которые поддерживают параллельное декодирование, могут повысить скорость декодирования и снизить требования к запоминающему устройству. Дополнительно, достижения в области многоядерных обрабатывающих устройств могут сделать желательными кодирующие устройства и декодирующие устройства, которые поддерживают параллельное декодирование.
H.264/AVC, и многие другие стандарты и способы кодирования видеоинформации, основываются на методе блочного гибридного кодирования видеоинформации, при этом алгоритм кодирования источника представляет собой гибридную схему из предсказания между изображениями, может рассматриваться и между кадрами, предсказания внутри изображения, может рассматриваться и внутри кадра, и кодирования с преобразованием разности предсказаний. Межкадровое предсказание может задействовать временные избыточности, а внутрикадровое, и кодирование с преобразованием разности предсказаний, может задействовать пространственные избыточности.
Фиг.1 показывает структурную схему иллюстративного отвечающего стандарту H.264/AVC устройства 2 кодирования видеоинформации. Входное изображение 4 может рассматриваться и входящий кадр может быть представлен для кодирования. Могут производиться предсказанный сигнал 6 и остаточный сигнал 8, причем предсказанный сигнал 6 может основываться или на межкадровом предсказании 10, или на внутрикадровом предсказании 12. Межкадровое предсказание 10 может определяться компенсацией 14 движения с использованием сохраненного, опорного изображения 16, может рассматриваться и опорный кадр, используя информацию 19 движения, определяемую в процессе оценки 18 движения между входным кадром (входным изображением) 4 и опорным кадром (опорным изображением) 16. Внутрикадровое предсказание 12 может определяться внутрикадровым предсказанием 20 с помощью декодированного сигнала 22. Остаточный сигнал 8 может определяться вычитанием входного кадра 4 из предсказания (предсказанного сигнала) 6. Остаточный сигнал 8 преобразуется, масштабируется и квантуется 24, таким образом, производя квантованные коэффициенты 26 преобразования. Декодированный сигнал 22 может генерироваться посредством суммирования предсказанного сигнала 6 с сигналом 28, сгенерированным инверсным преобразованием, масштабированием и инверсным квантованием 30 квантованных коэффициентов 26 преобразования. Информация 19 движения и квантованные коэффициенты преобразования 26 могут подвергаться энтропийному кодированию 32 и записываться в битовый поток 34 сжатой видеоинформации. Область 38 выходного изображения, например часть опорного кадра, может генерироваться на кодирующем устройстве 2 посредством фильтрации 36 реконструированного, предварительно отфильтрованного сигнала (декодированного сигнала) 22.
Фиг.2 показывает структурную схему иллюстративного отвечающего стандарту H.264/AVC устройства 50 декодирования видеоинформации. Входной сигнал 52 может рассматриваться и битовый поток может быть представлен для декодирования. Принятые символы могут подвергаться энтропийному декодированию 54, таким образом, производя информацию 56 движения и квантованные, масштабированные коэффициенты 58 преобразования. Информация 56 движения может объединяться посредством компенсации 60 движения с частью опорного кадра 84, который может находиться в запоминающем устройстве 64 кадров, и может генерироваться межкадровое предсказание 68. Квантованные, масштабированные коэффициенты 58 преобразования могут подвергаться инверсному квантованию, инверсному масштабированию и инверсному преобразованию 62, таким образом, производя декодированный остаточный сигнал 70. Остаточный сигнал 70 может суммироваться с сигналом 78 предсказания: либо сигналом 68 межкадрового предсказания, либо сигналом 76 внутрикадрового предсказания, и становиться объединенным сигналом 72. Сигнал 76 внутрикадрового предсказания может предсказываться благодаря внутрикадровому предсказанию 74, исходя из ранее декодированной информации (ранее объединенного сигнала) 72 в текущем кадре. Объединенный сигнал 72 может быть отфильтрован фильтром 80 для удаления блочности, и отфильтрованный сигнал 82 может быть записан в запоминающее устройство 64 кадров.
Согласно стандарту H.264/AVC, входное изображение разделяется на макроблоки фиксированного размера, причем каждый макроблок покрывает прямоугольный участок изображения размером 16×16 отсчетов яркостной составляющей и 8×8 отсчетов каждой из двух цветовых составляющих. Технологический процесс декодирования по стандарту H.264/AVC задается для обработки единичных элементов, которые являются макроблоками. Устройство 54 энтропийного кодирования анализирует элементы синтаксиса битового потока 52 сжатой видеоинформации и мультиплексирует их. Стандарт H.264/AVC определяет два альтернативных способа энтропийного декодирования: технология с низкой сложностью, которая основывается на использовании адаптивно выбираемых в зависимости от контекста наборов кодов переменной длины, упоминаемая как CAVLC (Context-adaptive variable-length coding), и более требовательный в вычислительном отношении алгоритм контекстно-зависимого адаптивного двоичного арифметического кодирования, упоминаемый как CABAC (Context-adaptive binary arithmetic coding). Согласно обоим способам энтропийного декодирования, декодирование текущего символа может опираться на заранее правильно декодированные символы и адаптивно скорректированные контекстные модели. Помимо этого, различная информация о данных, например информация о данных предсказания, информация об остаточных данных и различные цветовые плоскости, может совместно мультиплексироваться. Демультиплексирование не может осуществляться, пока элементы не будут энтропийно декодированы.
После энтропийного декодирования, макроблок может реконструироваться путем получения: остаточного сигнала при помощи инверсного квантования и инверсного преобразования, и сигнала предсказания, либо сигнала внутрикадрового предсказания, либо сигнала межкадрового предсказания. Искажение в блоке может быть уменьшено путем применения фильтра для удаления блочности к каждому декодированному макроблоку. Обработка не может начинаться, пока входной сигнал не будет энтропийно декодирован, в связи с этим энтропийное декодирование становится потенциально узким местом при декодировании.
Аналогично в кодеках, в которых могут допускаться альтернативные механизмы предсказания, например межуровневое предсказание согласно стандарту H.264/AVC или межуровневое предсказание в других масштабируемых кодеках, энтропийное декодирование может быть необходимо до какой-либо обработки в декодирующем устройстве, в связи с этим энтропийное декодирование становится потенциально узким местом.
Согласно стандарту H.264/AVC, входное изображение, содержащее множество макроблоков, может разделяться на один или несколько слоев. Значения отсчетов на участке изображения, который представляет слой, могут быть правильно декодированы без использования данных от других слоев при условии, что опорные изображения, используемые в кодирующем устройстве и в декодирующем устройстве, идентичны. Следовательно, энтропийное декодирование и реконструирование макроблоков для слоя не зависят от других слоев. В частности, состояние энтропийного кодирования восстанавливается в начале каждого слоя. Данные в других слоях помечаются как недоступные при определении окрестной доступности как для энтропийного декодирования, так и для реконструирования. Согласно стандарту H.264/AVC, слои могут параллельно энтропийно декодироваться и реконструироваться. Не допускаются внутреннее предсказание и предсказание вектора движения за границей слоя. Фильтрование для удаления блочности может использовать информацию за границами слоя.
Фиг.3 показывает иллюстративное видеоизображение 90, содержащее одиннадцать макроблоков по горизонтали и девять макроблоков по вертикали (девять иллюстративных макроблоков пронумерованы 91-99). Фиг.3 показывает три иллюстративных слоя: первый слой, обозначенный "SLICE #0" 100, второй слой, обозначенный "SLICE #1" 101, и третий слой, обозначенный "SLICE #2" 102. Отвечающее стандарту H.264/AVC декодирующее устройство может параллельно декодировать и реконструировать три слоя 100, 101, 102. В начале технологического процесса декодирования/реконструирования для каждого слоя, контекстные модели инициализируются или восстанавливаются, и макроблоки в других слоях помечаются как недоступные и для энтропийного декодирования, и для реконструирования макроблоков. Таким образом, для макроблока, например макроблока, пронумерованного 93, в слое "SLICE #1", макроблоки (например, макроблоки, пронумерованные 91 и 92) в слое "SLICE #0" не могут использоваться для выбора контекстной модели или реконструирования. Тогда как для макроблока, например макроблока, пронумерованного 95, в слое "SLICE #1", другие макроблоки (например, макроблоки, пронумерованные 93 и 94) в слое "SLICE #1" могут использоваться для выбора контекстной модели или реконструирования. Следовательно, энтропийное декодирование и реконструирование макроблоков должны происходить последовательно в пределах слоя. Если слои не определяются с использованием гибкого упорядочивания макроблоков (FMO - flexible macroblock ordering), макроблоки в пределах слоя обрабатываются в порядке растровой развертки.
Гибкое упорядочивание макроблоков определяет группу слоев, чтобы изменить процесс разделения изображения на слои. Макроблоки в группе слоев определяются картой макроблоков в группе слоев, которая сообщается при помощи содержимого набора параметров изображения и дополнительной информации в заголовке слоя. Карта макроблоков в группе слоев содержит идентификационный номер группы слоев для каждого макроблока в изображении. Идентификационный номер группы слоев определяет, какой группе слоев принадлежит связанный макроблок. Каждая группа слоев может быть разделена на один или более слоев, при этом слой представляет собой последовательность макроблоков в пределах одной и той же группы слоев, которая обрабатывается в порядке растровой развертки в пределах набора макроблоков конкретной группы слоев. Энтропийное декодирование и реконструирование макроблоков должны происходить последовательно в пределах слоя.
Фиг.4 изображает иллюстративное распределение макроблоков по трем группам слоев: первая группа слоев, обозначенная "SLICE GROUP #0" 103, вторая группа слоев, обозначенная "SLICE GROUP #1" 104, и третья группа слоев, обозначенная "SLICE GROUP #2" 105. Эти группы слоев 103, 104, 105 могут быть связаны с двумя областями переднего плана и фоновой областью соответственно на изображении 90.
Некоторые варианты осуществления настоящего изобретения могут содержать разделение изображения на один или более реконструируемых слоев, при этом реконструируемый слой может быть автономным в том отношении, что значения отсчетов на участке изображения, который представляет реконструируемый слой, может быть правильно реконструированы без использования данных из других реконструируемых слоев при условии, что используемые опорные изображения идентичны в кодирующем устройстве и в декодирующем устройстве. Все реконструированные макроблоки в пределах реконструируемого слоя могут быть доступны в окрестном определении для реконструирования.
Некоторые варианты осуществления настоящего изобретения могут содержать разделение реконструируемого слоя больше чем на один энтропийный слой, при этом энтропийный слой может быть автономным в том отношении, что значения отсчетов на участке изображения, который представляет энтропийный слой, могут быть правильно энтропийно декодированы без использования данных из других энтропийных слоев. В некоторых вариантах осуществления настоящего изобретения, состояние энтропийного кодирования может восстанавливаться в начале декодирования каждого энтропийного слоя. В некоторых вариантах осуществления настоящего изобретения, данные в других энтропийных слоях могут помечаться как недоступные при определении окрестной доступности для энтропийного декодирования. В некоторых вариантах осуществления настоящего изобретения, макроблоки в других энтропийных слоях могут не использоваться при выборе контекстной модели текущего блока. В некоторых вариантах осуществления настоящего изобретения, контекстные модели могут корректироваться только в пределах энтропийного слоя. В этих вариантах осуществления настоящего изобретения, каждое устройство энтропийного декодирования, связанное с энтропийным слоем, может поддерживать свой собственный набор контекстных моделей.
Некоторые варианты осуществления настоящего изобретения могут содержать кодирующее/декодирующее устройство с алгоритмом CABAC. Технологический процесс кодирования по алгоритму CABAC включает в себя следующие этапы.
Преобразование в двоичную форму: недвоичный символ (например, коэффициент преобразования, вектор движения или другие данные кодирования) конвертируется в двоичный код, также именуемый как строка бинов.
За преобразованием в двоичную форму, для каждого бина, может рассматриваться и бит, преобразуемого в двоичную форму символа, следует:
Выбор Контекстной Модели: контекстная модель представляет собой вероятностную модель для одного или более бинов преобразуемого в двоичную форму символа. Контекстная модель содержит, для каждого бина, вероятность того, что бин является "1" или "0". Модель может подбираться для выбора доступных моделей в зависимости от статистики по недавно закодированным символам данных, обычно на основании соседних символов слева и сверху, при наличии таковых.
Двоичное Арифметическое Кодирование: арифметическое кодирующее устройство кодирует каждый бин согласно выбранной вероятностной модели и основывается на рекурсивном последовательном разбиении интервала.
Вероятностная Коррекция: выбранная контекстная модель корректируется, основываясь на фактическом закодированном значении.
В некоторых вариантах осуществления настоящего изобретения, содержащих кодирование/декодирование по алгоритму CABAC, в начале декодирования энтропийного слоя, все контекстные модели могут инициализироваться или восстанавливаться на предварительно заданные модели.
Некоторые варианты осуществления настоящего изобретения могут быть поняты по Фиг.5. Фиг.5 показывает иллюстративный видеокадр 110, содержащий одиннадцать макроблоков по горизонтали и девять макроблоков по вертикали (девять иллюстративных макроблоков пронумерованы 115-123). Фиг.5 показывает три иллюстративных реконструируемых слоя: первый реконструируемый слой, обозначенный "R_SLICE #0" 111, второй реконструируемый слой, обозначенный "R_SLICE #1" 112, и третий реконструируемый слой, обозначенный "R_SLICE #2" 113. Фиг.5 дополнительно показывает разделение второго реконструируемого слоя "R_SLICE #1" 112 на три энтропийных слоя: первый энтропийный слой, обозначенный "E_SLICE #0", показанный перекрестной штриховкой 112-1, второй энтропийный слой, обозначенный "E_SLICE #1", показанный вертикальной штриховкой 112-2, и третий энтропийный слой, обозначенный "E_SLICE #2", показанный диагональной штриховкой 112-3. Каждый энтропийный слой 112-1, 112-2, 112-3 может энтропийно декодироваться параллельно. При этом, первый энтропийный слой, обозначенный "E_SLICE #0", и второй энтропийный слой, обозначенный "E_SLICE #1", могут также упоминаться как первая часть и вторая часть битового потока.
В некоторых вариантах осуществления настоящего изобретения, только данные из макроблоков в пределах энтропийного слоя могут быть доступны для выбора контекстной модели в ходе энтропийного декодирования энтропийного слоя. Все другие макроблоки могут быть помечены как недоступные. Для данного иллюстративного разделения, макроблоки, пронумерованные 117 и 118, недоступны для выбора контекстной модели при декодировании символов, соответствующих участку макроблока, пронумерованного 119, потому что макроблоки, пронумерованные 117 и 118, находятся вне энтропийного слоя, содержащего макроблок 119. Тем не менее, эти макроблоки 117, 118 доступны при реконструировании макроблока 119.
В некоторых вариантах осуществления настоящего изобретения, кодирующее устройство может определять, разделять ли реконструируемый слой на энтропийные слои, и кодирующее устройство может посылать сигнал о решении в битовый поток. В некоторых вариантах осуществления настоящего изобретения, сигнал может содержать флаг энтропийного слоя (флаг энтропийного слоя в первом энтропийном слое может упоминаться как первый флаг), который может обозначаться через "entropy_slice_flag" в некоторых вариантах осуществления настоящего изобретения.
Некоторые варианты осуществления декодирующего устройства согласно настоящему изобретению могут быть описаны в отношении Фиг.6. В этих вариантах осуществления, может проверяться флаг энтропийного слоя (S130), и если флаг энтропийного слоя указывает, что нет энтропийных слоев, связанных с изображением, или реконструируемым слоем (НЕТ на этапе S130), то заголовок может анализироваться как заголовок обычного слоя (S134). Состояние устройства энтропийного декодирования может восстанавливаться (S136), и может определяться окрестная информация для энтропийного декодирования и реконструирования (S138). Затем могут энтропийно декодироваться данные слоя (S140), и слой может быть реконструирован (S142). Если флаг энтропийного слоя указывает, что есть энтропийные слои, связанные с изображением (ДА на этапе S130), то заголовок может анализироваться как заголовок энтропийного слоя (S148). Состояние устройства энтропийного декодирования может восстанавливаться (S150), может определяться окрестная информация для энтропийного декодирования (S152), и данные энтропийного слоя могут энтропийно декодироваться (S154). Затем может определяться окрестная информация для реконструирования (S156), и слой может быть реконструирован (S142). После реконструирования слоя на этапе S142 может проверяться следующий слой, или изображение.
Некоторые альтернативные варианты осуществления декодирующего устройства согласно настоящему изобретению могут быть описаны в отношении Фиг.7. В этих вариантах осуществления, декодирующее устройство может быть выполнено с возможностью параллельного декодирования и может определять свой собственный уровень параллелизма, например рассмотрим декодирующее устройство, способное параллельно декодировать N энтропийных слоев. Декодирующее устройство может идентифицировать N энтропийных слоев (S170). В некоторых вариантах осуществления настоящего изобретения, если доступно менее N энтропийных слоев, в текущем изображении, или в реконструируемом слое, декодирующее устройство может декодировать энтропийные слои из последующих изображений, или реконструируемых слоев, если они доступны. В альтернативных вариантах осуществления, декодирующее устройство может ожидать, пока текущее изображение, или реконструируемый слой, не будет полностью обработано, перед декодированием частей последующего изображения, или реконструируемого слоя. После идентификации вплоть до N энтропийных слоев на этапе S170, каждый из идентифицированных энтропийных слоев может независимо энтропийно декодироваться. Может декодироваться первый энтропийный слой (S172-S176). Декодирование первого энтропийного слоя может содержать этап, на котором восстанавливают состояние декодирующего устройства (S172). В некоторых вариантах осуществления, вмещающих энтропийное декодирование по алгоритму CABAC, может восстанавливаться состояние CABAC. Может определяться окрестная информация для энтропийного декодирования первого энтропийного слоя (S174), и могут декодироваться данные первого энтропийного слоя (S176). Эти этапы могут выполняться для каждого из вплоть до N энтропийных слоев (S178-S182 для N-го энтропийного слоя). В некоторых вариантах осуществления настоящего изобретения, декодирующее устройство может реконструировать энтропийные слои, когда все энтропийные слои энтропийно декодированы (S184). В альтернативных вариантах осуществления настоящего изобретения, декодирующее устройство может начать реконструирование на этапе S184 после того как декодированы один или более энтропийных слоев.
В некоторых вариантах осуществления настоящего изобретения, когда имеется более N энтропийных слоев, декодирующий подпроцесс может начать энтропийное декодирование следующего энтропийного слоя после завершения энтропийного декодирования энтропийного слоя. Таким образом, когда подпроцесс заканчивает энтропийное декодирование энтропийного слоя с низкой сложностью, этот подпроцесс может начинать декодирование дополнительных энтропийных слоев, не дожидаясь, пока другие подпроцессы закончат свое декодирование.
В некоторых вариантах осуществления настоящего изобретения, которые могут обеспечивать существующий стандарт или способ, энтропийный слой может совместно использовать большинство атрибутов слоя обычного слоя в соответствии с этим стандартом или способом. Следовательно, энтропийному слою может требоваться небольшой заголовок. В некоторых вариантах осуществления настоящего изобретения, заголовок энтропийного слоя может дать декодирующему устройству возможность идентифицировать начало энтропийного слоя и начать энтропийное декодирование. В некоторых вариантах осуществления, в начале изображения, или реконструируемого слоя, заголовок энтропийного слоя может быть обычным заголовком, или заголовком реконструируемого слоя.
В некоторых вариантах осуществления настоящего изобретения, содержащих отвечающий стандарту H.264/AVC кодек, энтропийный слой может сигнализироваться посредством добавления нового бита, "entropy_slice_flag", в существующий заголовок слоя. В Таблице приведен синтаксис для заголовка энтропийного слоя согласно вариантам осуществления настоящего изобретения, при этом C указывает категорию, а дескриптор u(1), ue(v) указывает некоторую фиксированную продолжительность или переменную продолжительность способов кодирования.
"first_mb_in_slice" задает адрес первого макроблока в энтропийном слое, связанном с заголовком энтропийного слоя. В некоторых вариантах осуществления, энтропийный слой может содержать последовательность макроблоков.
"cabac_init_idc" задает индекс для определения таблицы инициализации, используемой в технологическом процессе инициализации для контекстного режима.
Таблица синтаксиса для заголовка энтропийного слоя | ||
slice_header() { | C | Дескриптор |
entropy_slice_flag | 2 | u(1) |
if (entropy_slice_flag) { | ||
first_mb_in_slice | 2 | ue(v) |
if (entropy_coding_mode_flag && slice_type != I && slice_type != SI) | ||
cabac_init_idc | 2 | ue(v) |
} | ||
} | ||
Else { | ||
заголовок обычного слоя | ||
} | ||
} |
В некоторых вариантах осуществления настоящего изобретения, энтропийное декодирование энтропийного слоя может содержать этапы, на которых инициализируют множество контекстных моделей; и корректируют это множество контекстных моделей в ходе энтропийного декодирования энтропийного слоя.
В некоторых вариантах осуществления настоящего изобретения, энтропийному слою может назначаться разный тип элемента уровня сетевой абстракции (NAL - network abstraction layer), исходя из обычных слоев. В этих вариантах осуществления, декодирующее устройство может проводить различие между обычным слоем и энтропийными слоями, основываясь на типе элемента NAL. В этих вариантах осуществления, битовое поле "entropy_slice_flag" не требуется.
В некоторых вариантах осуществления настоящего изобретения, энтропийный слой может создаваться в результате изменения мультиплексирования данных. В некоторых вариантах осуществления настоящего изобретения, группа символов, содержащихся в энтропийном слое, может мультиплексироваться на уровне макроблоков. В альтернативных вариантах осуществления настоящего изобретения, группа символов, содержащихся в энтропийном слое, может мультиплексироваться на уровне изображения. В других альтернативных вариантах осуществления настоящего изобретения, группа символов, содержащихся в энтропийном слое, может мультиплексироваться по типу данных. Еще в одних альтернативных вариантах осуществления настоящего изобретения, группа символов, содержащихся в энтропийном слое, может мультиплексироваться в комплексе вышеупомянутого.
Некоторые варианты осуществления способа настоящего изобретения содержат кодирование видеокадра в видеопоследовательности, что включает в себя этапы, на которых разделяют кадр в видеопоследовательности по меньшей мере на один реконструируемый слой, таким образом, производя реконструируемый слой; и разделяют реконструируемый слой на множество энтропийных слоев.
Некоторые варианты осуществления настоящего изобретения, содержащие создание энтропийного слоя на основании мультиплексирования на уровне изображения, могут быть поняты по Фиг.8 и Фиг.9. В некоторых вариантах осуществления настоящего изобретения, показанных на Фиг.8, данные 190 предсказания и остаточные данные 192 могут энтропийно кодироваться устройством 194 кодирования с предсказанием и устройством 196 остаточного кодирования по отдельности и мультиплексироваться на уровне изображения устройством 198 мультиплексирования на уровне изображения. В некоторых вариантах осуществления настоящего изобретения, данные 190 предсказания для изображения могут быть связаны с первым энтропийным слоем, а остаточные данные 192 для изображения могут быть связаны со вторым энтропийным слоем. Закодированные данные предсказания и закодированные энтропийные данные могут декодироваться параллельно. В некоторых вариантах осуществления настоящего изобретения, каждая часть, содержащая данные предсказания или остаточные данные, может быть разделена на энтропийные слои, которые могут декодироваться параллельно.
В некоторых вариантах осуществления настоящего изобретения, показанных на Фиг.9, разность каждой цветовой плоскости, например разностный сигнал яркости (Y) 200 и два разностных сигнала цветности (U и V) 202, 204, могут энтропийно кодироваться устройством 206 Y-кодирования, устройством 208 U-кодирования и устройством 210 V-кодирования по отдельности и мультиплексироваться на уровне изображения устройством 212 мультиплексирования на уровне изображения. В некоторых вариантах осуществления настоящего изобретения, разностный сигнал яркости 200 для изображения может быть связан с первым энтропийным слоем, первый разностный сигнал цветности (U) 202 для изображения может быть связан со вторым энтропийным слоем, и разностный сигнал цветности (V) 204 для изображения может быть связан с третьим энтропийным слоем. Закодированные остаточные данные для трех цветовых плоскостей могут декодироваться параллельно. В некоторых вариантах осуществления настоящего изобретения, каждая часть, содержащая остаточные данные цветовых плоскостей, может быть разделена на энтропийные слои, которые могут декодироваться параллельно. В некоторых вариантах осуществления настоящего изобретения, разностный сигнал яркости 200 может иметь относительно больше энтропийных слоев по сравнению с разностными сигналами цветности 202, 204.
В некоторых вариантах осуществления настоящего изобретения, битовый поток сжатой видеоинформации может быть перекодирован так, чтобы содержать энтропийные слои, таким образом, предоставляя возможность параллельного энтропийного декодирования, которое обеспечивается вариантами осуществления настоящего изобретения, описанными выше. Некоторые варианты осуществления настоящего изобретения могут быть описаны в отношении Фиг.10. Входной битовый поток без энтропийных слоев может обрабатываться по отдельным изображениям в соответствии с Фиг.10. В этих вариантах осуществления настоящего изобретения, изображение из входного битового потока может энтропийно декодироваться (S220). Могут быть получены данные, которые были закодированы, например данные режима, информация движения, остаточная информация и другие данные. Энтропийные слои могут по одному создаваться из данных (S222). Заголовок энтропийного слоя, соответствующий энтропийному слою, может вставляться в новый битовый поток (S224). Состояние кодирующего устройства может восстанавливаться, и может определяться окрестная информация (S226). Энтропийный слой может энтропийно кодироваться (S228) и записываться в новый битовый поток. Если есть данные изображения, которые не были израсходованы на созданные энтропийные слои (НЕТ на этапе S230), то другой энтропийный слой может создаваться на этапе S222, и технологический процесс S224-S230 может продолжаться, пока все данные изображения не будут израсходованы на созданные энтропийные слои (ДА на этапе S230), а затем может обрабатываться следующее изображение.
Термины и выражения, которые были задействованы в вышеизложенном описании изобретения, используются в нем как способ представления описания, а не ограничение, и в использовании таких терминов и выражений отсутствует намерение исключить эквивалентность показанных и описанных признаков, или их части, и нужно отдавать себе отчет, что объем настоящего изобретения определяется и ограничивается только последующей формулой изобретения.
Класс H03M7/00 Преобразование кода, в котором информация представлена заданной последовательностью цифр или числом, в код, где та же информация представлена последовательностью цифр или числом, отличными от заданных