СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ ВИДЕО И СПОСОБ И УСТРОЙСТВО ДЛЯ ДЕКОДИРОВАНИЯ ВИДЕО, ОСНОВАННЫЕ НА ИЕРАРХИЧЕСКОЙ СТРУКТУРЕ БЛОКА КОДИРОВАНИЯ
VIDEO ENCODING METHOD AND APPARATUS AND VIDEO DECODING METHOD AND APPARATUS BASED ON HIERARCHICAL STRUCTURE OF CODING UNIT

Область техники, к которой относится изобретение
Устройства и способы, совместимые с примерными вариантами осуществления, относятся к кодированию и декодированию видео.
Уровень техники
Так как разрабатываются и поставляются аппаратные средства для воспроизведения и хранения видеоконтента с высоким разрешением или высоким качеством, увеличивается потребность в видеокодеке для эффективного кодирования или декодирования видеоконтента с высоким разрешением или высоким качеством. В видеокодеке предшествующего уровня техники видео кодируется согласно ограниченному способу кодирования, основанному на макроблоке, имеющем заданный размер.
Сущность изобретения
Техническая задача
Один или несколько примерных вариантов осуществления обеспечивают способ и устройство для кодирования видео и способ и устройство для декодирования видео в рабочем режиме инструментального средства кодирования, которое изменяется в соответствии с размером блока кодирования с иерархической структурой.
Решение задачи
Согласно аспекту примерного варианта осуществления обеспечивается способ кодирования видеоданных, причем способ включает в себя: разделение текущего видеокадра видеоданных на по меньшей мере один максимальный блок кодирования; определение кодированной глубины для вывода окончательного результата кодирования посредством кодирования по меньшей мере одной разделенной области по меньшей мере одного максимального блока кодирования в соответствии с по меньшей мере одним рабочим режимом по меньшей мере одного инструментального средства кодирования соответственно, основываясь на зависимости между глубиной по меньшей мере одного блока кодирования по меньшей мере одного максимального блока кодирования, инструментальным средством кодирования и рабочим режимом, в котором по меньшей мере одна разделенная область генерируется посредством иерархического разделения по меньшей мере одного максимального блока кодирования в соответствии с глубинами; и вывод битового потока, включающего в себя кодированные видеоданные кодированной глубины, информацию, касающуюся кодированной глубины по меньшей мере одного максимального блока кодирования, информацию, касающуюся режима кодирования, и информацию, касающуюся зависимости между глубиной по меньшей мере одного блока кодирования по меньшей мере одного максимального блока кодирования, инструментальным средством кодирования и рабочим режимом в по меньшей мере одном максимальном блоке кодирования, причем блок кодирования может характеризоваться максимальным размером и глубиной, глубина обозначает количество раз, когда блок кодирования разделяется иерархически, и, по мере того как глубина увеличивается, более глубокие блоки кодирования в соответствии с глубинами могут разделяться с максимального блока кодирования для получения минимальных блоков кодирования, в котором глубина делается глубже с верхней глубины до нижней глубины, в котором когда глубина делается глубже, увеличивается количество раз, когда разделяется максимальный блок кодирования, и общее количество возможных раз, когда разделяется максимальный блок кодирования, соответствует максимальной глубине, и в котором максимальный размер и максимальная глубина блока кодирования могут быть определены предварительно. Рабочий режим инструментального средства кодирования для блока кодирования определяется в соответствии с глубиной блока кодирования.
Положительные эффекты изобретения
Устройство видеокодирования согласно примерным вариантам осуществления может определять глубину блока кодирования и рабочий режим инструментального средства кодирования в соответствии с характеристиками данных изображения, чтобы повысить эффективность кодирования и кодировать информацию, касающуюся зависимости между глубиной блока кодирования, инструментальным средством кодирования и рабочим режимом. Кроме того, устройство видеодекодирования согласно примерным вариантам осуществления может восстанавливать исходное изображение посредством декодирования принятого битового потока, основываясь на информации, касающейся зависимости между глубиной блока кодирования, инструментальным средством кодирования и рабочим режимом. Следовательно, устройство видеокодирования согласно примерным вариантам осуществления и устройство видеодекодирования согласно примерным вариантам осуществления могут эффективно кодировать и декодировать большое количество данных изображения, такого как изображения с высоким разрешением или высокого качества соответственно.
Краткое описание чертежей
Вышеприведенные и/или другие аспекты станут более очевидными посредством подробного описания примерных вариантов осуществления со ссылкой на прилагаемые чертежи, на которых:
фиг.1 представляет собой блок-схему устройства видеокодирования согласно примерному варианту осуществления;
фиг.2 представляет собой блок-схему устройства видеодекодирования согласно примерному варианту осуществления;
фиг.3 представляет собой схему для описания понятия блоков кодирования согласно примерному варианту осуществления;
фиг.4 представляет собой блок-схему кодера изображения, основанного на блоках кодирования, согласно примерному варианту осуществления;
фиг.5 представляет собой блок-схему декодера изображения, основанного на блоках кодирования, согласно примерному варианту осуществления;
фиг.6 представляет собой схему, иллюстрирующую более глубокие блоки кодирования в соответствии с глубинами и разделами согласно примерному варианту осуществления;
фиг.7 представляет собой схему для описания зависимости между блоком кодирования и блоками преобразования согласно примерному варианту осуществления;
фиг.8 представляет собой схему для описания информации кодирования блоков кодирования, соответствующую кодированной глубине, согласно примерному варианту осуществления;
фиг.9 представляет собой схему более глубоких блоков кодирования в соответствии с глубинами согласно примерному варианту осуществления;
фиг.10-12 представляют собой схемы для описания зависимости между блоками кодирования, блоками предсказания и блоками преобразования согласно одному или нескольким примерным вариантам осуществления;
фиг.13 представляет собой схему для описания зависимости между блоком кодирования, блоком предсказания или разделом и блоком преобразования в соответствии с информацией о режиме кодирования примерной таблицы 1 ниже согласно примерному варианту осуществления;
фиг.14 представляет собой блок-схему последовательности операций, иллюстрирующую способ видеокодирования согласно примерному варианту осуществления;
фиг.15 представляет собой блок-схему последовательности операций, иллюстрирующую способ видеодекодирования согласно примерному варианту осуществления;
фиг.16 представляет собой блок-схему устройства видеокодирования, основанного на инструментальном средстве кодирования, учитывающем размер блока кодирования, согласно примерному варианту осуществления;
фиг.17 представляет собой блок-схему устройства видеодекодирования, основанного на инструментальном средстве кодирования, учитывающем размер блока кодирования, согласно примерному варианту осуществления;
фиг.18 представляет собой схему для описания зависимости между размером блока кодирования, инструментальным средством кодирования и рабочим режимом согласно примерному варианту осуществления;
фиг.19 представляет собой схему для описания зависимости между глубиной блока кодирования, инструментальным средством кодирования и рабочим режимом согласно примерному варианту осуществления;
фиг.20 представляет собой схему для описания зависимости между глубиной блока кодирования, инструментальным средством кодирования и рабочим режимом согласно примерному варианту осуществления;
фиг.21 иллюстрирует синтаксис набора параметров последовательности, в который вставлена информация, касающаяся зависимости между глубиной блока кодирования, инструментальным средством кодирования и рабочим режимом, согласно примерному варианту осуществления;
фиг.22 представляет собой блок-схему последовательности операций, иллюстрирующую способ видеокодирования, основанный на инструментальном средстве кодирования, учитывающем размер блока кодирования, согласно примерному варианту осуществления; и
фиг.23 представляет собой блок-схему последовательности операций, иллюстрирующую способ видеодекодирования, основанный на инструментальном средстве кодирования, учитывающем размер блока кодирования, согласно примерному варианту осуществления.
Лучший вариант осуществления изобретения
Согласно аспекту примерного варианта осуществления обеспечивается способ кодирования видеоданных, причем способ включает в себя: разделение текущего видеокадра видеоданных на по меньшей мере один максимальный блок кодирования; определение кодированной глубины для вывода окончательного результата кодирования посредством кодирования по меньшей мере одной разделенной области по меньшей мере одного максимального блока кодирования в соответствии с по меньшей мере одним рабочим режимом по меньшей мере одного инструментального средства кодирования соответственно, основываясь на зависимости между глубиной по меньшей мере одного блока кодирования по меньшей мере одного максимального блока кодирования, инструментальным средством кодирования и рабочим режимом, в котором по меньшей мере одна разделенная область генерируется посредством иерархического разделения по меньшей мере одного максимального блока кодирования в соответствии с глубинами; и вывод битового потока, включающего в себя кодированные видеоданные кодированной глубины, информацию, касающуюся кодированной глубины по меньшей мере одного максимального блока кодирования, информацию, касающуюся режима кодирования, и информацию, касающуюся зависимости между глубиной по меньшей мере одного блока кодирования по меньшей мере одного максимального блока кодирования, инструментальным средством кодирования и рабочим режимом в по меньшей мере одном максимальном блоке кодирования, в котором блок кодирования может характеризоваться максимальным размером и глубиной, причем глубина обозначает количество раз, когда блок кодирования иерархически разделяется, и, когда увеличивается глубина, более глубокие блоки кодирования в соответствии с глубинами могут разделяться с максимального блока кодирования для получения минимальных блоков кодирования, в котором глубина увеличивается от верхней глубины до нижней глубины, в котором, когда глубина увеличивается, увеличивается количество раз, когда разделяется максимальный блок кодирования, и общее количество возможных раз, когда разделяется максимальный блок кодирования, соответствует максимальной глубине, и в котором максимальный размер и максимальная глубина блока кодирования могут определяться предварительно. Рабочий режим инструментального средства кодирования для блока кодирования определяется в соответствии с глубиной блока кодирования.
Информация, касающаяся зависимости между глубиной по меньшей мере одного блока кодирования по меньшей мере одного максимального блока кодирования, инструментальным средством кодирования и рабочим режимом, может предварительно устанавливаться в блоках слайса, блоках кадра или блоках последовательности кадров текущего видеокадра.
По меньшей мере одно инструментальное средство кодирования для кодирования по меньшей мере одного максимального блока кодирования может включать в себя по меньшей мере одно из квантования, преобразования, внутреннего предсказания (интрапредсказания), внешнего предсказания (интерпредсказания), компенсации движения, энтропийного кодирования и контурной фильтрации.
Если инструментальное средство кодирования, рабочий режим которого определяется в соответствии с глубиной блока кодирования, представляет собой внутреннее предсказание, рабочий режим может включать в себя по меньшей мере один режим
внутреннего предсказания, классифицируемый в соответствии с количеством направлений внутреннего предсказания или может включать в себя режим внутреннего предсказания для сглаживания областей в блоках кодирования, соответствующих глубинам, и режим внутреннего предсказания для сохранения граничной линии.
Если инструментальное средство кодирования, рабочий режим которого определяется в соответствии с глубиной блока кодирования, представляет собой внешнее предсказание, то рабочий режим может включать в себя режим внешнего предсказания в соответствии с по меньшей мере одним способом определения вектора движения.
Если инструментальное средство кодирования, рабочий режим которого определяется в соответствии с глубиной блока кодирования, представляет собой преобразование, рабочий режим может включать в себя по меньшей мере один режим преобразования, классифицируемый в соответствии с индексом матрицы вращательного преобразования.
Если инструментальное средство кодирования, рабочий режим которого определяется в соответствии с глубиной блока кодирования, представляет собой квантование, рабочий режим может включать в себя по меньшей мере один режим квантования, классифицируемый в соответствии с тем, должна ли использоваться дельта параметров квантования.
Согласно аспекту другого примерного варианта осуществления обеспечивается способ декодирования видеоданных, причем способ включает в себя: прием и синтаксический анализ битового потока, включающего в себя кодированные видеоданные; выделение из битового потока кодированных видеоданных, информации, касающейся кодированной глубины по меньшей мере одного максимального блока кодирования, информации, касающейся режима кодирования, и информации, касающейся зависимости между глубиной по меньшей мере одного блока кодирования по меньшей мере одного максимального блока кодирования, инструментальным средством кодирования и рабочим режимом; и декодирование кодированных видеоданных в по меньшей мере одном максимальном блоке кодирования в соответствии с рабочим режимом инструментального средства кодирования, согласующимся с блоком кодирования, соответствующим по меньшей мере одной кодированной глубине, основываясь на информации, касающейся кодированной глубины по меньшей мере одного максимального блока кодирования, информации, касающейся режима кодирования, и информации, касающейся зависимости между глубиной по меньшей мере одного блока кодирования по меньшей мере одного максимального блока кодирования, инструментальным средством кодирования и рабочим режимом, в котором рабочий режим инструментального средства кодирования для блока кодирования определяется в соответствии с кодированной глубиной блока кодирования.
Информация, касающаяся зависимости между глубиной по меньшей мере одного блока кодирования по меньшей мере одного максимального блока кодирования, инструментальным средством кодирования и рабочим режимом, может выделяться в блоках слайса, блоках кадра или блоках последовательности кадров текущего видеокадра.
Инструментальное средство кодирования для кодирования по меньшей мере одного максимального блока кодирования может включать в себя по меньшей мере одно из квантования, преобразования, внутреннего предсказания, внешнего предсказания, компенсации движения, энтропийного кодирования и контурной фильтрации, в котором декодирование кодированных видеоданных может включать в себя выполнение инструментального средства декодирования, соответствующего инструментальному средству кодирования для кодирования по меньшей мере одного максимального блока кодирования.
Согласно аспекту другого примерного варианта осуществления обеспечивается устройство для кодирования видеоданных, причем устройство включает в себя: разделитель максимального блока кодирования, который разделяет текущий видеокадр видеоданных на по меньшей мере один максимальный блок кодирования; определитель блока кодирования, который определяет кодированную глубину для вывода окончательного результата кодирования посредством кодирования по меньшей мере одной разделенной области по меньшей мере одного максимального блока кодирования в соответствии с по меньшей мере одним рабочим режимом по меньшей мере одного инструментального средства кодирования соответственно, основываясь на зависимости между глубиной по меньшей мере одного блока кодирования по меньшей мере одного максимального блока кодирования, инструментальным средством кодирования и рабочим режимом, в котором по меньшей мере одна разделенная область генерируется посредством иерархического разделения по меньшей мере одного максимального блока кодирования в соответствии с глубинами; и блок вывода, который выводит битовый поток, включающий в себя кодированные видеоданные, которые представляют собой окончательный результат кодирования, информацию, касающуюся кодированной глубины по меньшей мере одного максимального блока кодирования, информацию, касающуюся режима кодирования, и информацию, касающуюся зависимости между глубиной по меньшей мере одного блока кодирования по меньшей мере одного максимального блока кодирования, инструментальным средством кодирования и рабочим режимом в по меньшей мере одном максимальном блоке кодирования. Рабочий режим инструментального средства кодирования для блока кодирования определяется в соответствии с глубиной блока кодирования.
Согласно аспекту другого примерного варианта осуществления обеспечивается устройство для декодирования видеоданных, причем устройство включает в себя: приемник, который принимает и выполняет синтаксический анализ битового потока, включающего в себя кодированные видеоданные; выделитель, который выделяет из битового потока кодированные видеоданные, информацию, касающуюся кодированной глубины по меньшей мере одного максимального блока кодирования, информацию, касающуюся режима кодирования, и информацию, касающуюся зависимости между глубиной по меньшей мере одного блока кодирования по меньшей мере одного максимального блока кодирования, инструментальным средством кодирования и рабочим режимом; и декодер, который декодирует кодированные видеоданные в по меньшей мере одном максимальном блоке кодирования в соответствии с рабочим режимом инструментального средства кодирования, согласующимся с блоком кодирования, соответствующим по меньшей мере одной кодированной глубине, основываясь на информации, касающейся кодированной глубины по меньшей мере одного максимального блока кодирования, информации, касающейся режима кодирования, и информации, касающейся зависимости между глубиной по меньшей мере одного блока кодирования по меньшей мере одного максимального блока кодирования, инструментальным средством кодирования и рабочим режимом, в котором рабочий режим инструментального средства кодирования для блока кодирования определяется в соответствии с кодированной глубиной блока кодирования.
Согласно аспекту другого примерного варианта осуществления обеспечивается способ декодирования видеоданных, причем способ включает в себя: декодирование кодированных видеоданных в по меньшей мере одном максимальном блоке кодирования в соответствии с рабочим режимом инструментального средства кодирования, согласующимся с блоком кодирования, соответствующим по меньшей мере одной кодированной глубине, основываясь на информации, касающейся кодированной глубины по меньшей мере одного максимального блока кодирования, информации, касающейся режима кодирования, и информации, касающейся зависимости между глубиной по меньшей мере одного блока кодирования по меньшей мере одного максимального блока кодирования, инструментальным средством кодирования и рабочим режимом, в котором рабочий режим инструментального средства кодирования для блока кодирования определяется в соответствии с кодированной глубиной блока кодирования.
Согласно аспекту другого примерного варианта осуществления обеспечивается считываемый компьютером носитель записи, имеющий записанную на нем программу для исполнения способа кодирования видеоданных.
Согласно аспекту другого примерного варианта осуществления обеспечивается считываемый компьютером носитель записи, имеющий записанную на нем программу для исполнения способа декодирования видеоданных.
Вариант осуществления изобретения
Ниже в данном документе более подробно описываются примерные варианты осуществления со ссылкой на прилагаемые чертежи. Кроме того, выражения, такие как «по меньшей мере один из», когда они предшествуют списку элементов, модифицируют весь список элементов и не модифицируют индивидуальные элементы списка. В примерных вариантах осуществления «блок» может ссылаться или может не ссылаться на блок размера в зависимости от его контекста. Конкретно, видеокодирование и видеодекодирование, выполняемые на основе пространственно иерархических блоков данных в соответствии с одним или несколькими примерными вариантами осуществления, описываются со ссылкой на фиг.1-15. Также, видеокодирование и видеодекодирование, выполняемые в рабочем режиме инструментального средства кодирования, который изменяется в соответствии с размером блока кодирования согласно одному или нескольким примерным вариантам осуществления, описываются со ссылкой на фиг.16-23.
В нижеследующих примерных вариантах осуществления «блок кодирования» ссылается или на блок данных кодирования, в котором данные изображения кодируются на стороне кодера, или блок кодированных данных, в котором кодированные данные изображения декодируются на стороне декодера. Также, «кодированная глубина» ссылается на глубину, с которой кодируется блок кодирования. Ниже в данном документе «изображение» может обозначать неподвижное изображение для видео или движущееся изображение, т.е. само видео.
Устройство и способ для кодирования видео и устройство и способ для декодирования видео согласно примерным вариантам осуществления ниже описываются со ссылкой на фиг.1-15.
Фиг.1 представляет собой блок-схему устройства 100 видеокодирования согласно примерному варианту осуществления. Как показано на фиг.1, устройство 100 видеокодирования включает в себя разделитель 110 максимального блока кодирования, определитель 120 блока кодирования и блок 130 вывода.
Разделитель 110 максимального блока кодирования может разделять текущий видеокадр изображения, основываясь на максимальном блоке кодирования для текущего видеокадра. Если текущий видеокадр больше максимального блока кодирования, данные изображения текущего видеокадра могут быть разделены на по меньшей мере один максимальный блок кодирования. Максимальный блок кодирования согласно примерному варианту осуществления может представлять собой блок данных, имеющий размер 32×32, 64×64, 128×128, 256×256 и т.д., причем формой блока данных является квадрат, имеющий ширину и высоту в квадратах 2. Данные изображения могут выводиться на определитель 120 блока кодирования в соответствии с по меньшей мере одним максимальным блоком кодирования.
Блок кодирования согласно примерному варианту осуществления может характеризоваться максимальным размером и глубиной. Глубина обозначает количество раз, когда блок кодирования пространственно разделяется из максимального блока кодирования, и, когда глубина делается глубже или увеличивается, более глубокие блоки кодирования в соответствии с глубинами могут разделяться с максимального блока кодирования до минимального блока кодирования. Глубина максимального блока кодирования представляет собой самую верхнюю глубину, и глубина минимального блока кодирования представляет собой самую нижнюю глубину. Так как размер блока кодирования, соответствующий каждой глубине, уменьшается, когда глубина максимального блока кодирования увеличивается, блок кодирования, соответствующий верхней глубине, может включать в себя множество блоков кодирования, соответствующих более нижним глубинам.
Как описано выше, данные изображения текущего видеокадра могут быть разделены на максимальные блоки кодирования в соответствии с максимальным размером блока кодирования, и каждый из максимальных блоков кодирования может включать в себя более глубокие блоки кодирования, которые разделяются в соответствии с глубинами. Так как максимальный блок кодирования согласно примерному варианту осуществления разделяется в соответствии с глубинами, данные изображения пространственной области, включенной в максимальный блок кодирования, могут иерархически классифицироваться в соответствии с глубинами.
Могут быть предварительно определены максимальная глубина и максимальный размер блока кодирования, которые ограничивают общее количество раз, когда высота и ширина максимального блока кодирования могут иерархически разделяться.
Определитель 120 блока кодирования кодирует по меньшей мере одну разделенную область, полученную посредством разделения области максимального блока кодирования в соответствии с глубинами, и определяет глубину для вывода кодированных данных изображения в соответствии с по меньшей мере одной разделенной областью. Т.е. определитель 120 блока кодирования определяет кодированную глубину посредством кодирования данных изображения в более глубокие блоки кодирования в соответствии с глубинами, основываясь на максимальном блоке кодирования текущего видеокадра, и выбора глубины, имеющей наименьшую ошибку кодирования. Таким образом, кодированные данные изображения блока кодирования, соответствующие определенной кодированной глубине, выводятся на блок 130 вывода. Также, блоки кодирования, соответствующие кодированной глубине, могут рассматриваться как кодированные блоки кодирования.
Определенная кодированная глубина и кодированные данные изображения в соответствии с определенной кодированной глубиной выводятся на блок 130 вывода.
Данные изображения в максимальном блоке кодирования кодируются, основываясь на более глубоких блоках кодирования, соответствующих по меньшей мере одной глубине, равной или ниже максимальной глубины, и результаты кодирования данных изображения сравниваются, основываясь на каждом из более глубоких блоков кодирования. Глубина, имеющая наименьшую ошибку кодирования, может выбираться после сравнения ошибок кодирования более глубоких блоков кодирования. По меньшей мере одна кодированная глубина может выбираться для каждого максимального блока кодирования.
Размер максимального блока кодирования разделяется, когда блок кодирования иерархически разделяется в соответствии с глубинами и когда увеличивается количество блоков кодирования. Также, даже если блоки кодирования соответствуют одной и той же глубине в одном максимальном блоке кодирования, определяется, разделять ли каждый из блоков кодирования, соответствующих одной и той же глубине, на более низкую глубину посредством измерения ошибки кодирования данных изображения каждого блока кодирования отдельно. Следовательно, даже когда данные изображения включены в один максимальный блок кодирования, данные изображения разделяются на области в соответствии с глубинами, и ошибки кодирования могут отличаться в соответствии с областями в одном максимальном блоке кодирования, и, таким образом, кодированные глубины могут отличаться в соответствии с областями в данных изображения. Поэтому одна или несколько кодированных глубин могут определяться в одном максимальном блоке кодирования и данные изображения максимального блока кодирования могут разделяться в соответствии с блоками кодирования по меньшей мере одной кодированной глубины.
Следовательно, определитель 120 блока кодирования может определять блоки кодирования, имеющие древовидную структуру, включенную в максимальный блок кодирования. Блоки кодирования, имеющие древовидную структуру согласно примерному варианту осуществления, включают в себя блоки кодирования, соответствующие глубине, определенной в качестве кодированной глубины, из числа более глубоких блоков кодирования, включенных в максимальный блок кодирования. Блок кодирования кодированной глубины может иерархически определяться в соответствии с глубинами в одной и той же области максимального блока кодирования и может независимо определяться в других областях. Аналогично, кодированная глубина в текущей области может независимо определяться из кодированной глубины в другой области.
Максимальная глубина согласно примерному варианту осуществления представляет собой индекс, связанный с количеством раз разделения с максимального блока кодирования до минимального блока кодирования. Первая максимальная глубина согласно примерному варианту осуществления может обозначать общее количество раз разделения с максимального блока кодирования до минимального блока кодирования. Вторая максимальная глубина согласно примерному варианту осуществления может обозначать общее количество уровней глубины от максимального блока кодирования до минимального блока кодирования. Например, когда глубина максимального блока кодирования равна 0, глубина блока кодирования, в котором максимальный блок кодирования разделяется один раз, может быть установлена на 1, и глубина блока кодирования, в котором максимальный блок кодирования разделяется дважды, может быть установлена на 2. В данном случае, если минимальный блок кодирования представляет собой блок кодирования, в котором максимальный блок кодирования разделяется четыре раза, существует 5 уровней глубины глубин 0, 1, 2, 3 и 4. Таким образом, первая максимальная глубина может быть установлена на 4, и вторая максимальная глубина может быть установлена на 5.
Кодирование с предсказанием и преобразование могут выполняться в соответствии с максимальным блоком кодирования. Кодирование с предсказанием и преобразование также выполняются на основе более глубоких блоков кодирования в соответствии с глубиной, равной или глубинами меньше максимальной глубины, основываясь на максимальном блоке кодирования. Преобразование может выполняться в соответствии со способом ортогонального преобразования или целочисленного преобразования.
Так как количество более глубоких блоков кодирования увеличивается всякий раз, когда максимальный блок кодирования разделяется в соответствии с глубинами, кодирование, такое как кодирование с предсказанием, и преобразование выполняются на всех более глубоких блоках кодирования, сгенерированных, когда увеличивается глубина. Для удобства описания кодирование с предсказанием и преобразование ниже в данном документе описываются на основе блока кодирования текущей глубины в максимальном блоке кодирования.
Устройство 100 видеокодирования может изменяемым образом выбирать по меньшей мере одно из размера и формы блока данных для кодирования данных изображения. Чтобы кодировать данные изображения, могут выполняться операции, такие как кодирование с предсказанием, преобразование и энтропийное кодирование, и в этот момент один и тот же блок данных может использоваться для всех операций или разные блоки данных могут использоваться для каждой операции.
Например, устройство 100 видеокодирования может выбирать блок кодирования для кодирования данных изображения и блок данных, отличный от блока кодирования, чтобы выполнять кодирование с предсказанием данных изображения в блоке кодирования.
Чтобы выполнить кодирование с предсказанием в максимальном блоке кодирования, кодирование с предсказанием может выполняться на основе блока кодирования, соответствующего кодированной глубине, т.е. на основе блока кодирования, который больше не разделяется до блоков кодирования, соответствующих более низкой глубине. Ниже в данном документе блок кодирования, который больше не разделяется и становится базовым блоком для кодирования с предсказанием, упоминается как блок предсказания. Раздел, полученный посредством разделения блока предсказания, может включать в себя блок предсказания или блок данных, полученный посредством разделения по меньшей мере одного из высоты и ширины блока предсказания.
Например, когда блок кодирования 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, когда каждая из высоты и ширины текущего блока кодирования разделяется на две равные части, в целом разделяясь на 4 блока преобразования, и размер блока преобразования, таким образом, равен N×N, и может быть равна 2, когда каждая из высоты и ширины текущего блока кодирования разделяется на четыре равные части, в целом разделяясь на 4^2 блоков преобразования, и размер блока преобразования, таким образом, равен N/2×N/2. Например, блок преобразования может устанавливаться в соответствии с иерархической древовидной структурой, в которой блок преобразования верхней глубины преобразования разделяется на четыре блока преобразования более низкой глубины преобразования в соответствии с иерархическими характеристиками глубины преобразования.
Аналогично блоку кодирования блок преобразования в блоке кодирования может рекурсивно разделяться на области с меньшими размерами, так что блок преобразования может определяться независимо от блоков областей. Таким образом, остаточные данные в блоке кодирования могут разделяться в соответствии с преобразованием, имеющим древовидную структуру в соответствии с глубинами преобразования.
Информация кодирования в соответствии с блоками кодирования, соответствующими кодированной глубине, использует информацию о кодированной глубине и информацию, относящуюся к кодированию с предсказанием, и преобразованию. Следовательно, определитель 120 блока кодирования определяет кодированную глубину, имеющую наименьшую ошибку кодирования, и определяет тип раздела в блоке предсказания, режим предсказания в соответствии с блоками предсказания и размер блока преобразования для преобразования.
Блоки кодирования в соответствии с древовидной структурой в максимальном блоке кодирования и способ определения раздела согласно примерным вариантам осуществления описываются подробно ниже со ссылкой на фиг.3-12.
Определитель 120 блока кодирования может измерять ошибку кодирования более глубоких блоков кодирования в соответствии с глубинами посредством использования оптимизации искажений по скорости, основанной на множителях Лагранжа.
Блок 130 вывода выводит данные изображения максимального блока кодирования, который кодируется на основе по меньшей мере одной кодированной глубины, определенной определителем 120 блока кодирования, и информации о режиме кодирования в соответствии с кодированной глубиной, в битовых потоках.
Кодированные данные изображения могут быть получены посредством кодирования остаточных данных изображения.
Информация о режиме кодирования в соответствии с кодированной глубиной может включать в себя по меньшей мере одно из информации о кодированной глубине, типа раздела в блоке предсказания, режима предсказания и размера блока преобразования.
Информация о кодированной глубине может определяться посредством использования информации о разделении в соответствии с глубинами, которая указывает, выполняется ли кодирование над блоками кодирования более низкой глубины вместо текущей глубины. Если текущая глубина текущего блока кодирования представляет собой кодированную глубину, данные изображения в текущем блоке кодирования кодируются и выводятся. В данном случае информация о разделении может определяться, чтобы не разделять текущий блок кодирования на более низкую глубину. Альтернативно, если текущая глубина текущего блока кодирования не является кодированной глубиной, кодирование выполняется над блоком кодирования более низкой глубины. В данном случае информация о разделении может определяться для того, чтобы разделить текущий блок кодирования для получения блоков кодирования с более низкой глубиной.
Если текущая глубина не является кодированной глубиной, кодирование выполняется над блоком кодирования, который разделяется на блок кодирования с более низкой глубиной. В данном случае, так как по меньшей мере один блок кодирования с более низкой глубиной существует в одном блоке кодирования текущей глубины, кодирование неоднократно выполняется над каждым блоком кодирования более низкой глубины, и, таким образом, кодирование может рекурсивно выполняться для блоков кодирования, имеющих одну и ту же глубину.
Так как блоки кодирования, имеющие древовидную структуру, определяются для одного максимального блока кодирования и информация о по меньшей мере одном режиме кодирования определяется для блока кодирования кодированной глубины, информация о по меньшей мере одном режиме кодирования может определяться для одного максимального блока кодирования. Также, кодированная глубина данных изображения максимального блока кодирования может быть разной в соответствии с расположениями, так как данные изображения иерархически разделяются в соответствии с глубинами, и, таким образом, информация о кодированной глубине и режиме кодирования может устанавливаться для данных изображения.
Следовательно, блок 130 вывода может назначать информацию кодирования о соответствующей кодированной глубине и режиме кодирования по меньшей мере одному из блока кодирования, блока предсказания и минимального блока, включенного в максимальный блок кодирования.
Минимальный блок согласно примерному варианту осуществления представляет прямоугольный блок данных, полученный посредством разделения минимального блока кодирования самой нижней глубины на 4. Альтернативно, минимальным блоком может быть максимальный прямоугольный блок данных, который может быть включен во все блоки кодирования, блоки предсказания, блоки раздела и блоки преобразования, включенные в максимальный блок кодирования.
Например, информация кодирования, выводимая посредством блока 130 вывода, может классифицироваться на информацию кодирования в соответствии с блоками кодирования и информацию кодирования в соответствии с блоками предсказания. Информация кодирования в соответствии с блоками кодирования может включать в себя информацию о режиме предсказания и размер разделов. Информация кодирования в соответствии с блоками предсказания может включать в себя информацию об оцененном направлении внешнего режима, индекс опорного изображения внешнего режима, вектор движения, цветовую составляющую внутреннего режима и способ интерполяции внутреннего режима. Также, информация о максимальном размере блока кодирования, определенного в соответствии с видеокадрами, слайсами или группами видеокадров (GOP), и информация о максимальной глубине может быть вставлена в по меньшей мере одно из набора параметров последовательности (SPS) или заголовка битового потока.
В устройстве 100 видеокодирования более глубоким блоком кодирования может быть блок кодирования, полученный посредством деления по меньшей мере одного из высоты и ширины блока кодирования верхней глубины, который на один уровень выше, на два. Например, когда размером блока кодирования текущей глубины является 2N×2N, размером блока кодирования более низкой глубины может быть N×N. Также, блок кодирования текущей глубины, имеющий размер 2N×2N, может включать в себя максимум 4 блока кодирования с более низкой глубиной.
Следовательно, устройство 100 видеокодирования может формировать блоки кодирования, имеющие древовидную структуру, посредством определения блоков кодирования, имеющих оптимальную форму и оптимальный размер для каждого максимального блока кодирования, основываясь на размере максимального блока кодирования и максимальной глубине, определенной с учетом характеристик текущего видеокадра. Также, так как кодирование может выполняться над каждым максимальным блоком кодирования посредством использования любого одного из различных режимов предсказания и преобразований, режим оптимального кодирования может определяться с учетом характеристик блока кодирования различных размеров изображения.
Таким образом, если изображение, имеющее высокое разрешение или большое количество данных, кодируется в макроблоке известного уровня техники, существенно увеличивается количество макроблоков на видеокадр. Следовательно, увеличивается количество порций сжатой информации, генерируемой для каждого макроблока, и, таким образом, трудно передавать сжатую информацию и снижается эффективность сжатия данных. Однако посредством использования устройства 100 видеокодирования согласно примерному варианту осуществления может повышаться эффективность сжатия изображения, так как корректируется блок кодирования с учетом характеристик изображения и увеличивается максимальный размер блока кодирования с учетом размера изображения.
Фиг.2 представляет собой блок-схему устройства 200 видеодекодирования согласно примерному варианту осуществления. Как показано на фиг.2, устройство 200 видеодекодирования включает в себя приемник 210, выделитель 220 данных изображения и информации кодирования и декодер 230 данных изображения. Определения различных терминов, таких как блок кодирования, глубина, блок предсказания и блок преобразования и информации о различных режимах кодирования для различных операций устройства 200 видеодекодирования подобны тем, которые описаны выше со ссылкой на фиг.1.
Приемник 210 принимает и выполняет синтаксический анализ битового потока кодированного видео. Выделитель 220 данных изображения и информации кодирования выделяет кодированные данные изображения для каждого блока кодирования из битового потока с выполняемым синтаксическим анализом, причем блоки кодирования имеют древовидную структуру в соответствии с каждым максимальным блоком кодирования, и выводит выделенные данные изображения на декодер 230 данных изображения. Выделитель 220 данных изображения и информации кодирования может выделять информацию о максимальном размере блока кодирования текущего видеокадра из заголовка о текущем видеокадре или SPS.
Также, выделитель 220 данных изображения и информации кодирования выделяет информацию о кодированной глубине и режиме кодирования для блоков кодирования, имеющих древовидную структуру, в соответствии с каждым максимальным блоком кодирования, из битового потока с выполняемым синтаксическим анализом. Выделенная информация о кодированной глубине и режиме кодирования выводится на декодер 230 данных изображения. Т.е. данные изображения в битовом потоке разделяются на максимальный блок кодирования, так что декодер 230 данных изображения декодирует данные изображения для каждого максимального блока кодирования.
Информация о кодированной глубине и режиме кодирования в соответствии с максимальным блоком кодирования может устанавливаться для информации о по меньшей мере одном блоке кодирования, соответствующем кодированной глубине, и информация о режиме кодирования может включать в себя информацию о по меньшей мере одном из типа раздела соответствующего блока кодирования, соответствующего кодированной глубине, режима предсказания и размера блока преобразования. Также, информация о разделении в соответствии с глубинами может выделяться в качестве информации о кодированной глубине.
Информация о кодированной глубине и режиме кодирования в соответствии с каждым максимальным блоком кодирования, выделенная выделителем 220 данных изображения и информации кодирования, представляет собой информацию о кодированной глубине и режиме кодирования, определенную для генерирования минимальной ошибки кодирования, когда кодер, такой как устройство 100 видеокодирования согласно примерному варианту осуществления, неоднократно выполняет кодирование для каждого более глубокого блока кодирования, основываясь на глубинах в соответствии с каждым максимальным блоком кодирования. Следовательно, устройство 200 видеодекодирования может восстанавливать изображение посредством декодирования данных изображения в соответствии с кодированной глубиной и режимом кодирования, который генерирует минимальную ошибку кодирования.
Так как информация кодирования о кодированной глубине и режиме кодирования может назначаться предварительно определенному блоку данных из числа соответствующего блока кодирования, блока предсказания и минимального блока, выделитель 220 данных изображения и информации кодирования может выделять информацию о кодированной глубине и режиме кодирования в соответствии с предварительно определенными блоками данных. Предварительно определенные блоки данных, которым назначается одна и та же информация о кодированной глубине и режиме кодирования, могут представлять собой блоки данных, включенные в один и тот же максимальный блок кодирования.
Декодер 230 данных изображения восстанавливает текущий видеокадр посредством декодирования данных изображения в каждом максимальном блоке кодирования, основываясь на информации о кодированной глубине и режиме кодирования в соответствии с максимальными блоками кодирования. Например, декодер 230 данных изображения может декодировать кодированные данные изображения, основываясь на выделенной информации о типе раздела, режиме предсказания и блоке преобразования для каждого блока кодирования из числа блоков кодирования, имеющих древовидную структуру, включенных в каждый максимальный блок кодирования. Процесс декодирования может включать в себя предсказание, включающее в себя внутреннее предсказание и компенсацию движения, и обратное преобразование. Обратное преобразование может выполняться в соответствии со способом обратного ортогонального преобразования или обратного целочисленного преобразования.
Декодер 230 данных изображения может выполнять по меньшей мере одно из внутреннего предсказания и компенсации движения в соответствии с разделом и режимом предсказания каждого блока кодирования, основываясь на информации о типе раздела и режиме предсказания блока предсказания блока кодирования в соответствии с кодированными глубинами.
Также, декодер 230 данных изображения может выполнять обратное преобразование в соответствии с каждым блоком преобразования в блоке кодирования, основываясь на информации о размере блока преобразования блока кодирования в соответствии с кодированными глубинами, чтобы выполнить обратное преобразование в соответствии с максимальными блоками кодирования.
Декодер 230 данных изображения может определять по меньшей мере одну кодированную глубину текущего максимального блока кодирования посредством использования информации о разделении в соответствии с глубинами. Если информация о разделении указывает, что данные изображения больше не разделяются на текущей глубине, текущая глубина является кодированной глубиной. Следовательно, декодер 230 данных изображения может декодировать кодированные данные по меньшей мере одного блока кодирования, соответствующего каждой кодированной глубине в текущем максимальном блоке кодирования посредством использования по меньшей мере одного из информации о типе раздела блока предсказания, режима предсказания и размера блока преобразования для каждого блока кодирования, соответствующего кодированной глубине, и выводить данные изображения текущего максимального блока кодирования.
Например, блоки данных, включающие в себя информацию кодирования, имеющую одинаковую информацию о разделении, могут собираться посредством наблюдения набора информации кодирования, назначенной для предварительно определенного блока данных из числа блока кодирования, блока предсказания и минимального блока, и собранные блоки данных могут рассматриваться как один блок данных, подлежащий декодированию декодером 230 данных изображения в одном и том же режиме кодирования.
Устройство 200 видеодекодирования может получать информацию о по меньшей мере одном блоке кодирования, который генерирует минимальную ошибку кодирования, когда кодирование выполняется рекурсивно для каждого максимального блока кодирования, и может использовать информацию для декодирования текущего видеокадра. Т.е. могут декодироваться блоки кодирования, имеющие древовидную структуру, определенные оптимальными блоками кодирования в каждом максимальном блоке кодирования. Также, максимальный размер блока кодирования может определяться с учетом по меньшей мере одного из разрешения и количества данных изображения.
Следовательно, даже если данные изображения имеют высокое разрешение и большое количество данных, данные изображения могут эффективно декодироваться и восстанавливаться посредством использования размера блока кодирования и режима кодирования, которые адаптивно определяются в соответствии с характеристиками данных изображения, и информации об оптимальном режиме кодирования, принятой от кодера.
Способ определения блоков кодирования, имеющих древовидную структуру, блока предсказания и блока преобразования согласно одному или нескольким примерным вариантам осуществления ниже описывается со ссылкой на фиг.3-13.
Фиг.3 представляет собой схему для описания принципа блоков кодирования согласно примерному варианту осуществления. Размер блока кодирования может быть выражен как ширина × высота. Например, размер блока кодирования может быть 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.
Как показано на фиг.3, в качестве примера обеспечиваются первые видеоданные 310 с разрешением 1920×1080 и блок кодирования с максимальным размером 64 и максимальной глубиной 2. Кроме того, в качестве примера обеспечиваются вторые видеоданные 320 с разрешением 1920×1080 и блок кодирования с максимальным размером 64 и максимальной глубиной 3. Также, в качестве примера обеспечиваются третьи видеоданные 330 с разрешением 352×288 и блок кодирования с максимальным размером 16 и максимальной глубиной 1. Максимальная глубина, показанная на фиг.3, обозначает общее количество разделений с максимального блока кодирования до минимального блока декодирования.
Если разрешение высокое или количество данных большое, максимальный размер блока кодирования может быть большим, чтобы повысить эффективность кодирования и точно отразить характеристики изображения. Следовательно, максимальный размер блока кодирования первых и вторых видеоданных 310 и 320, имеющих более высокое разрешение, чем третьи видеоданные 330, может быть равен 64.
Так как максимальная глубина первых видеоданных 310 равна 2, блоки 315 кодирования первых видеоданных 310 могут включать в себя максимальный блок кодирования, имеющий размер большой оси 64, и блоки кодирования, имеющие размеры большой оси 32 и 16, так как глубины увеличиваются на два уровня посредством разделения дважды максимального блока кодирования. Между тем, так как максимальная глубина третьих видеоданных 330 равна 1, блоки 335 кодирования третьих видеоданных 330 могут включать в себя максимальный блок кодирования, имеющий размер большой оси 16, и блоки кодирования, имеющие размер большой оси 8, так как глубины увеличиваются на один уровень посредством разделения один раз максимального блока кодирования.
Так как максимальная глубина вторых видеоданных 320 равна 3, блоки 325 кодирования вторых видеоданных 320 могут включать в себя максимальный блок кодирования, имеющий размер большой оси 64, и блоки кодирования, имеющие размеры большой оси 32, 16 и 8, так как глубины увеличиваются на 3 уровня посредством разделения три раза максимального блока кодирования. Так как глубина увеличивается, может точно выражаться подробная информация.
Фиг.4 представляет собой блок-схему кодера 400 изображения, основанного на блоках кодирования, согласно примерному варианту осуществления. Кодер 400 изображения может выполнять операции определителя 120 блока кодирования устройства 100 видеокодирования согласно примерному варианту осуществления для кодирования данных изображения. Т.е., ссылаясь на фиг.4, внутренний предсказатель 410 выполняет внутреннее предсказание блоков кодирования из числа текущего кадра 405 во внутреннем режиме, и блок 420 оценки движения и компенсатор 425 движения выполняют внешнюю оценку и компенсацию движения блоков кодирования из числа текущего кадра 405 во внешнем режиме посредством использования текущего кадра 405 и опорного кадра 495.
Вывод данных из внутреннего предсказателя 410, блока 420 оценки движения и компенсатора 425 движения выводится в виде квантованного коэффициента преобразования посредством преобразователя 430 и квантователя 440. Квантованный коэффициент преобразования восстанавливается в виде данных в пространственной области посредством обратного квантователя 460 и обратного преобразователя 470, и восстановленные данные в пространственной области выводятся в виде опорного кадра 495 после постобработки посредством деблокирующего блока 480 и блока 490 контурной фильтрации. Квантованный коэффициент преобразования может выводиться в виде битового потока 455 посредством энтропийного кодера 450.
Чтобы кодер 400 изображения применялся в устройстве 100 видеокодирования, элементы кодера 400 изображения, т.е. внутренний предсказатель 410, блок 420 оценки движения, компенсатор 425 движения, преобразователь 430, квантователь 440, энтропийный кодер 450, обратный квантователь 460, обратный преобразователь 470, деблокирующий блок 480 и блок 490 контурной фильтрации, выполняют операции, основываясь на каждом блоке кодирования из числа блоков кодирования, имеющих древовидную структуру, с учетом максимальной глубины каждого максимального блока кодирования.
Конкретно, внутренний предсказатель 410, блок 420 оценки движения и компенсатор 425 движения определяют разделы и режим предсказания каждого блока кодирования из числа блоков кодирования, имеющих древовидную структуру, с учетом максимального размера и максимальной глубины текущего максимального блока кодирования, и преобразователь 430 определяет размер блока преобразования в каждом блоке кодирования из числа блоков кодирования, имеющих древовидную структуру.
Фиг.5 представляет собой блок-схему декодера 500 изображения, основанного на блоках кодирования, согласно примерному варианту осуществления. Как показано на фиг.5, блок 510 синтаксического анализа выполняет синтаксический анализ кодированных данных изображения, подлежащих декодированию, и информации о кодировании, используемой для декодирования из битового потока 505. Кодированные данные изображения выводятся в виде обратно квантованных данных посредством энтропийного декодера 520 и обратного квантователя 530, и обратно квантованные данные восстанавливаются в данные изображения в пространственной области посредством обратного преобразователя 540.
Внутренний предсказатель 550 выполняет внутреннее предсказание блоков кодирования во внутреннем режиме в отношении данных изображения в пространственной области, и компенсатор 560 движения выполняет компенсацию движения над блоками кодирования во внешнем режиме посредством использования опорного кадра 585.
Данные изображения в пространственной области, которые прошли через внутренний предсказатель 550 и компенсатор 560 движения, могут выводиться в качестве восстановленного кадра 595 после постобработки посредством деблокирующего блока 570 и блока 580 контурной фильтрации. Также, данные изображения, на которыми выполняется постобработка посредством деблокирующего блока 570 и блока 580 контурной фильтрации, могут выводиться в качестве опорного кадра 585.
Чтобы декодировать данные изображения в декодере 230 данных изображения устройства 200 видеодекодирования согласно примерному варианту осуществления, декодер 500 изображения может выполнять операции, которые выполняются после блока 510 синтаксического анализа. Чтобы декодер 500 изображения применялся в устройстве 200 видеодекодирования, элементы декодера 500 изображения, т.е. блок 510 синтаксического анализа, энтропийный декодер 520, обратный квантователь 530, обратный преобразователь 540, внутренний предсказатель 550, компенсатор 560 движения, деблокирующий блок 570 и блок 580 контурной фильтрации, выполняют операции, основываясь на блоках кодирования, имеющих древовидную структуру, для каждого максимального блока кодирования.
Конкретно, внутренний предсказатель 550 и компенсатор 560 движения выполняют операции, основываясь на разделах и режиме предсказания для каждого из блоков кодирования, имеющих древовидную структуру, и обратный преобразователь 540 выполняет операции, основываясь на размере блока преобразования для каждого блока кодирования.
Фиг.6 представляет собой схему, иллюстрирующую более глубокие блоки кодирования в соответствии с глубинами и разделы, согласно примерному варианту осуществления.
Устройство 100 видеокодирования и устройство 200 видеодекодирования согласно примерным вариантам осуществления используют иерархические блоки кодирования, чтобы учитывать характеристики изображения. Максимальная высота, максимальная ширина и максимальная глубина блоков кодирования могут адаптивно определяться в соответствии с характеристиками изображения или, иначе, может различно устанавливаться пользователем. Размеры более глубоких блоков кодирования в соответствии с глубинами могут определяться в соответствии с предварительно определенным максимальным размером блока кодирования.
Как показано на фиг.6, в иерархической структуре 600 блоков кодирования согласно примерному варианту осуществления максимальная высота, и максимальная ширина блоков кодирования каждого равна 64, и максимальная глубина равна 4. Так как глубина увеличивается по вертикальной оси иерархической структуры 600, разделяется каждая из высоты и ширины более глубокого блока кодирования. Также, блок предсказания и разделы, которые представляют собой основы для кодирования с предсказанием каждого более глубокого блока кодирования, показаны вдоль горизонтальной оси иерархической структуры 600.
Т.е. первый блок 610 кодирования представляет собой максимальный блок кодирования в иерархической структуре 600, в котором глубина равна 0, и размер, т.е. высота на ширину, равен 64×64. Глубина увеличивается по вертикальной оси, и имеется второй блок 620 кодирования, имеющий размер 32×32 и глубину 1, третий блок 630 кодирования, имеющий размер 16×16 и глубину 2, четвертый блок 640 кодирования, имеющий размер 8×8 и глубину 3, и пятый блок 650 кодирования, имеющий размер 4×4 и глубину 4. Пятый блок 650 кодирования, имеющий размер 4×4 и глубину 4, является минимальным блоком кодирования.
Блок предсказания и разделы блока кодирования расположены вдоль горизонтальной оси в соответствии с каждой глубиной. Т.е. если первый блок 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.
Пятый блок 650 кодирования, имеющий размер 4×4 и глубину 4, представляет собой минимальный блок кодирования и блок кодирования с самой низкой глубиной. Блок предсказания пятого блока 650 кодирования назначается только разделу, имеющему размер 4×4.
Чтобы определить по меньшей мере одну кодированную глубину блоков кодирования максимального блока 610 кодирования, определитель 120 блока кодирования устройства 100 видеокодирования выполняет кодирование для блоков кодирования, соответствующих каждой глубине, включенных в максимальный блок 610 кодирования.
Количество более глубоких блоков кодирования в соответствии с глубинами, включающих данные в одном и том же диапазоне и одного и того же размера, увеличивается по мере увеличения глубины. Например, четыре блока кодирования, соответствующие глубине 2, используются для охватывания данных, которые включены в один блок кодирования, соответствующий глубине 1. Следовательно, чтобы сравнить результаты кодирования одних и тех же данных в соответствии с глубинами, кодируется каждый из блока кодирования, соответствующего глубине 1, и четырех блоков кодирования, соответствующих глубине 2.
Чтобы выполнить кодирование для текущей глубины из числа глубин, наименьшая ошибка кодирования может быть выбрана для текущей глубины посредством выполнения кодирования для каждого блока предсказания в блоках кодирования, соответствующих текущей глубине, вдоль горизонтальной оси иерархической структуры 600. Альтернативно, может выполняться поиск минимальной ошибки кодирования посредством сравнения наименьших ошибок кодирования в соответствии с глубинами посредством выполнения кодирования для каждой глубины, в то время как глубина увеличивается вдоль вертикальной оси иерархической структуры 600. Глубина и раздел, имеющий минимальную ошибку кодирования в первом блоке 610 кодирования, могут быть выбраны в качестве кодированной глубины и типа раздела первого блока 610 кодирования.
Фиг.7 представляет собой схему для описания зависимости между блоком 710 кодирования и блоками 720 преобразования согласно примерному варианту осуществления.
Устройство 100 или 200 видеокодирования или видеодекодирования согласно примерным вариантам осуществления кодирует или декодирует изображение в соответствии с блоками кодирования, имеющими размеры, которые меньше или равны максимальному блоку кодирования для каждого максимального блока кодирования. Размеры блоков преобразования для преобразования во время кодирования могут выбираться на основе блоков данных, которые не больше соответствующего блока кодирования.
Например, в устройстве 100 или 200 видеокодирования или видеодекодирования, если размер блока 710 кодирования равен 64×64, преобразование может выполняться посредством использования блоков 720 преобразования, имеющих размер 32×32.
Также, данные блока 710 кодирования, имеющего размер 64×64, могут кодироваться посредством выполнения преобразования каждого из блоков преобразования, имеющих размер 32×32, 16×16, 8×8 и 4×4, которые меньше 64×64, так что может выбираться блок преобразования, имеющий наименьшую ошибку кодирования.
Фиг.8 представляет собой схему для описания информации кодирования блоков кодирования, соответствующих кодированной глубине, согласно примерному варианту осуществления. Как показано на фиг.8, блок 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 для декодирования в соответствии с каждым более глубоким блоком кодирования.
Фиг.9 представляет собой схему более глубоких блоков кодирования в соответствии с глубинами согласно примерному варианту осуществления.
Информация о разделении может использоваться для указания изменения глубины. Информация о разделении указывает, разделяется ли блок кодирования текущей глубины на блоки кодирования с более низкой глубиной.
Как показано на фиг.9, блок 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-918 раздела, и наименьшая ошибка кодирования определяется среди типов раздела. Если ошибка кодирования является наименьшей в одном из типов 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 больше не разделяется на более низкую глубину. В данном случае кодированная глубина для блоков кодирования текущего максимального блока 900 кодирования определяется равной d-1, и тип раздела текущего максимального блока 900 кодирования может определяться глубиной, равной N_(d-1)×N_(d-1). Также, так как максимальная глубина равна d, и минимальный блок 980 кодирования, имеющий самую низкую глубину d-1, больше не разделяется на более низкую глубину, не устанавливается информация о разделении для минимального блока 980 кодирования.
Блок 999 данных может представлять собой минимальный блок для текущего максимального блока кодирования. Минимальный блок согласно примерному варианту осуществления может представлять собой прямоугольный блок данных, полученный посредством разделения минимального блока 980 кодирования на 4. Посредством неоднократного выполнения кодирования устройство 100 видеокодирования согласно примерному варианту осуществления может выбирать глубину, имеющую наименьшую ошибку кодирования, посредством сравнения ошибок кодирования в соответствии с глубинами блока 900 кодирования для определения кодированной глубины, и устанавливать соответствующий тип раздела и режим предсказания в качестве режима кодирования кодированной глубины.
По существу, минимальные ошибки кодирования в соответствии с глубинами сравниваются во всех глубинах от 1 до d, и глубина, имеющая наименьшую ошибку кодирования, может определяться в качестве кодированной глубины. Кодированная глубина, тип раздела блока предсказания и режим предсказания могут кодироваться и передаваться в качестве информации о режиме кодирования. Также, так как блок кодирования разделяется с глубины 0 до кодированной глубины, информация о разделении кодированной глубины устанавливается на 0, и информация о разделении глубин, исключая кодированную глубину, устанавливается на 1.
Выделитель 220 данных изображения и информации кодирования устройства 200 видеодекодирования согласно примерному варианту осуществления может выделять и использовать информацию о кодированной глубине и блоке предсказания блока 900 кодирования для декодирования раздела 912. Устройство 200 видеодекодирования может определять глубину, на которой информация о разделении равна 0, в качестве кодированной глубины посредством использования информации о глубине в соответствии с глубинами и использовать информацию о режиме кодирования соответствующей глубины для декодирования.
Фиг.10-12 представляют собой схемы для описания зависимости между блоками 1010 кодирования, блоками 1060 предсказания и блоками 1070 преобразования согласно одному или нескольким вариантам осуществления.
Как показано на фиг.10, блоки 1010 кодирования представляют собой блоки кодирования, имеющие древовидную структуру, соответствующие кодированным глубинам, определенным устройством 100 видеокодирования, согласно примерным вариантам осуществления в максимальном блоке кодирования. Как показано на фиг.11 и 12, блоки 1060 предсказания представляют собой разделы блоков предсказания каждого из блоков 1010 кодирования, и блоки 1070 преобразования представляют собой блоки преобразования каждого из блоков 1010 кодирования.
Когда глубина максимального блока кодирования равна 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 видеокодирования и видеодекодирования согласно примерным вариантам осуществления могут выполнять внутреннее предсказание, оценку движения, компенсацию движения, преобразование и обратное преобразование индивидуально над блоком данных в одном и том же блоке кодирования.
Следовательно, кодирование выполняется рекурсивно над каждым из блоков кодирования, имеющих иерархическую структуру в каждой области максимального блока кодирования для определения оптимального блока кодирования, и могут быть получены, таким образом, блоки кодирования, имеющие рекурсивную древовидную структуру. Информация кодирования может включать в себя информацию о разделении о блоке кодирования, информацию о типе раздела, информацию о режиме предсказания и информацию о размере блока преобразования. Примерная таблица 1 показывает информацию кодирования, которая может быть установлена устройствами 100 и 200 видеокодирования и видеодекодирования.
Таблица 1
Информация 0 о разделении (кодирование над блоком кодирования, имеющим размер 2N×2N и текущую глубину d)
Информация 1 о разделении
Режим предсказания
Тип раздела
Размер блока преобразования
Кодировать неоднократно блоки кодирования, имеющие более низкую глубину d+1
Внутренний- внешний-с пропуском (только 2N×2N)
Симметричный тип раздела
Асимметричный тип раздела
Информация0 о разде-лении блока преобра-зования
Информация1 о разде-лении блокапреобра-зования
2N×2N2Nx NN×2NN×N
2NxnU2Nxn DnL×2NnRx 2N
2N×2N
N×N(симмет-ричный тип)N/2×N/2 (асиммет-ричный тип)
Блок 130 вывода устройства 100 видеокодирования может выводить информацию кодирования о блоках кодирования, имеющих древовидную структуру, и выделитель 220 данных изображения и информации кодирования устройства 200 видеодекодирования может выделять информацию кодирования о блоках кодирования, имеющих древовидную структуру, из принятого битового потока.
Информация о разделении указывает, разделяется ли текущий блок кодирования на блоки кодирования более низкой глубины. Если информация о разделении текущей глубины равна 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.
Информация кодирования о блоках кодирования, имеющих древовидную структуру, может включать в себя по меньшей мере один из блока кодирования, соответствующего кодированной глубине, блока кодирования, соответствующего блоку предсказания, и блока кодирования, соответствующего минимальному блоку. Блок кодирования, соответствующий кодированной глубине, может включать в себя по меньшей мере один из блока предсказания и минимального блока, включающего такую же информацию кодирования.
Следовательно, определяется, включены ли соседние блоки данных в один и тот же блок кодирования, соответствующий кодированной глубине, посредством сравнения информации кодирования соседних блоков данных. Также, соответствующий блок кодирования, соответствующий кодированной глубине, определяется посредством использования информации кодирования блока данных, и, таким образом, может определяться распределение кодированных глубин в максимальном блоке кодирования.
Следовательно, если текущий блок кодирования предсказывается на основе информации кодирования соседних блоков данных, информация кодирования блоков данных в более глубоких блоках кодирования, соседних с текущим блоком кодирования, может непосредственно упоминаться и использоваться. Однако понятно, что другой примерный вариант осуществления не ограничивается ими. Например, согласно другому примерному варианту осуществления, если текущий блок кодирования предсказывается на основе информации кодирования соседних блоков данных, выполняется поиск блоков данных, соседних с текущим блоком кодирования, используя кодированную информацию блоков данных, и поисковые соседние блоки кодирования могут упоминаться для предсказания текущего блока кодирования.
Фиг.13 представляет собой схему для описания зависимости между блоком кодирования, блоком предсказания или разделом и блоком преобразования в соответствии с информацией о режиме кодирования примерной таблицы 1 согласно примерному варианту осуществления.
Как показано на фиг.13, максимальный блок 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.
Когда тип раздела устанавливается равным симметричному, т.е. типу 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.
Как показано на фиг.13, флаг размера TU представляет собой флаг, имеющий значение или 0, или 1, хотя понятно, что флаг размера TU не ограничивается 1 битом, и блок преобразования может иерархически разделяться, имея древовидную структуру, когда флаг размера TU увеличивается с 0.
В данном случае размер блока преобразования, который фактически использовался, может быть выражен посредством использования флага размера TU блока преобразования согласно примерному варианту осуществления вместе с максимальным размером и минимальным размером блока преобразования. Согласно примерному варианту осуществления устройство 100 видеокодирования способно кодировать информацию о максимальном размере блока преобразования, информацию о минимальном размере блока преобразования и флаг максимального размера TU. Результат кодирования информации о максимальном размере блока преобразования, информации о минимальном размере блока преобразования и флага максимального размера TU может быть вставлен в SPS. Согласно примерному варианту осуществления устройство 200 видеодекодирования может декодировать видео посредством использования информации о максимальном размере блока преобразования, информации о минимальном размере блока преобразования и флаге максимального размера TU.
Например, если размер текущего блока кодирования равен 64×64 и максимальный размер блока преобразования равен 32×32, размер блока преобразования может быть равен 32×32, когда флаг размера TU равен 0, может быть равен 16×16, когда флаг размера TU равен 1, и может быть равен 8×8, когда флаг размера TU равен 2.
В качестве другого примера, если размер текущего блока кодирования равен 32×32 и минимальный размер блока преобразования равен 32×32, размер блока преобразования может быть равен 32×32, когда флаг размера TU равен 0. В данном случае флаг размера TU не может быть установлен на значение, кроме 0, так как размер блока преобразования не может быть меньше 32×32.
В качестве другого примера, если размер текущего блока кодирования равен 64×64, и флаг максимального размера TU равен 1, флаг размера TU может быть равен 0 или 1. В данном случае флаг размера TU не может устанавливаться на значение кроме 0 или 1.
Таким образом, если определяется, что флаг максимального размера TU равен MaxTransformSizeIndex, минимальный размер блока преобразования равен MinTransformSize, и размером блока преобразования является RootTuSize, когда флаг размера TU равен 0, текущий минимальный размер блока преобразования CurrMinTuSize, который может быть определен в текущем блоке кодирования, может определяться уравнением (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, когда флаг размера TU равен 0, может представлять собой меньшее значение из числа максимального размера блока преобразования и текущего размера блока предсказания.
Если режимом предсказания текущего блока раздела является внутренний режим, RootTuSize может определяться посредством использования уравнения (3) ниже. В уравнении (3) PartitionSize обозначает размер текущего блока раздела.
Т.е., если текущим режимом предсказания является внутренний режим, размер блока преобразования RootTuSize, когда флаг размера TU равен 0, может представлять собой меньшее значение из числа максимального размера блока преобразования и размера текущего блока раздела.
Однако текущий максимальный размер блока преобразования RootTuSize, который изменяется в соответствии с типом режима предсказания в блоке раздела, является просто примерным и не ограничивается им в другом примерном варианте осуществления.
Фиг.14 представляет собой блок-схему последовательности операций, иллюстрирующую способ видеокодирования согласно примерному варианту осуществления. Как показано на фиг.14, в операции 1210 текущий видеокадр разделяется на по меньшей мере один максимальный блок кодирования. Может предопределяться максимальная глубина, указывающая общее количество возможных разделений.
В операции 1220 кодированная глубина для вывода окончательного результата кодирования в соответствии с по меньшей мере одной разделенной областью, которая получается посредством разделения области каждого максимального блока кодирования в соответствии с глубинами, определяется посредством кодирования по меньшей мере одной разделенной области, и определяется блок кодирования в соответствии с древовидной структурой.
Максимальный блок кодирования пространственно разделяется всякий раз, когда увеличивается глубина, и, таким образом, разделяется на блоки кодирования с более низкой глубиной. Каждый блок кодирования может разделяться на блоки кодирования другой более низкой глубины посредством пространственного разделения независимо от соседних блоков кодирования. Кодирование выполняется неоднократно над каждым блоком кодирования в соответствии с глубинами.
Также, блок преобразования в соответствии с типами раздела, имеющими наименьшую ошибку кодирования, определяется для каждого более глубокого блока кодирования. Чтобы определить кодированную глубину, имеющую минимальную ошибку кодирования в каждом максимальном блоке кодирования, ошибки кодирования могут измеряться и сравниваться во всех более глубоких блоках кодирования в соответствии с глубинами.
В операции 1230 кодированные данные изображения, которые представляют собой окончательный результат кодирования в соответствии с кодированной глубиной, выводятся для каждого максимального блока кодирования, с информацией кодирования о кодированной глубине и режиме кодирования. Информация о режиме кодирования может включать в себя по меньшей мере одну из информации о кодированной глубине или информации о разделении, информации о типе раздела блока предсказания, режима предсказания и размера блока преобразования. Кодированная информация о режиме кодирования может передаваться на декодер с кодированными данными изображения.
Фиг.15 представляет собой блок-схему последовательности операций, иллюстрирующую способ видеодекодирования согласно примерному варианту осуществления. Как показано на фиг.15, в операции 1310 принимается и выполняется синтаксический анализ битового потока кодированного видео.
В операции 1320 кодированные данные изображения текущего видеокадра, назначенные максимальному блоку кодирования, и информация о кодированной глубине и режиме кодирования в соответствии с максимальными блоками кодирования выделяются из битового потока с выполненным синтаксическим анализом. Кодированная глубина каждого максимального блока кодирования представляет собой глубину, имеющую наименьшую ошибку кодирования в каждом максимальном блоке кодирования. При кодировании каждого максимального блока кодирования данные изображения кодируются на основе по меньшей мере одного блока данных, полученного посредством иерархического разделения каждого максимального блока кодирования в соответствии с глубинами.
В соответствии с информацией о кодированной глубине и режиме кодирования максимальный блок кодирования может быть разделен на блоки кодирования, имеющие древовидную структуру. Каждый из блоков кодирования, имеющих древовидную структуру, определяется в качестве блока кодирования, соответствующего кодированной глубине, и оптимально кодируется для вывода наименьшей ошибки кодирования. Следовательно, эффективность кодирования и декодирования изображения может быть улучшена посредством декодирования каждой порции кодированных данных изображения в блоках кодирования после определения по меньшей мере одной кодированной глубины в соответствии с блоками кодирования.
В операции 1330 данные изображения каждого максимального блока кодирования декодируются на основе информации о кодированной глубине и режиме кодирования в соответствии с максимальными блоками кодирования. Декодированные данные изображения могут воспроизводиться устройством воспроизведения, сохраняться на носителе данных или передаваться по сети.
Ниже в данном документе описывается со ссылкой на фиг.16-23 видеокодирование и видеодекодирование, выполняемые в рабочем режиме инструментального средства кодирования с учетом размера блока кодирования согласно примерным вариантам осуществления.
Фиг.16 представляет собой блок-схему устройства 1400 видеокодирования, основанного на инструментальном средстве кодирования, учитывающим размер блока кодирования, согласно примерному варианту осуществления. Как показано на фиг.16, устройство 1400 включает в себя разделитель 1410 максимального блока кодирования, определитель 1420 блока кодирования и блок 1430 вывода.
Разделитель 1410 максимального блока кодирования разделяет текущий видеокадр на по меньшей мере один максимальный блок кодирования.
Определитель 1420 блока кодирования кодирует по меньшей мере один максимальный блок кодирования в блоки кодирования, соответствующие глубинам. В данном случае определитель 1420 блока кодирования может кодировать множество разделенных областей по меньшей мере одного максимального блока кодирования в рабочих режимах, соответствующих инструментальным средствам кодирования, в соответствии с глубинами блоков кодирования соответственно, основываясь на зависимости между глубиной блока кодирования, инструментальным средством кодирования и рабочим режимом.
Определитель 1420 блока кодирования кодирует блоки кодирования, соответствующие всем глубинам, сравнивает результаты кодирования друг с другом и определяет глубину блока кодирования, имеющего наибольшую эффективность кодирования, в качестве кодированной глубины. Так как в разделенных областях по меньшей мере одного максимального блока кодирования глубина, имеющая наибольшую эффективность кодирования, может различаться в соответствии с расположением, кодированная глубина каждой из разделенных областей по меньшей мере одного максимального блока кодирования может определяться независимо от глубины других областей. Таким образом, более одной кодированной глубины может определяться в одном максимальном блоке кодирования.
Примеры инструментального средства кодирования для кодирования могут включать в себя квантование, преобразование, внутреннее предсказание, внешнее предсказание, компенсацию движения, энтропийное кодирование и контурную фильтрацию, которые представляют собой методы видеокодирования. Согласно примерному варианту осуществления в устройстве 1400 видеокодирования каждое из множества инструментальных средств кодирования может выполняться в соответствии с по меньшей мере одним рабочим режимом. В данном случае термин «рабочий режим» указывает способ, которым выполняется инструментальное средство кодирования.
Например, если инструментальное средство кодирования представляет собой внешнее предсказание, рабочий режим инструментального средства кодирования может классифицироваться в первый рабочий режим, в котором выбирается срединное значение векторов движения прилегающих блоков предсказания, второй рабочий режим, в котором выбирается вектор движения блока предсказания в конкретном местоположении из числа прилегающих блоков предсказания, и третий рабочий режим, в котором выбирается вектор движения блока предсказания, который включает в себя шаблон, наиболее подобный шаблону текущего блока предсказания из числа прилегающих блоков предсказания.
Согласно примерному варианту осуществления устройство 1400 видеокодирования может изменяемым образом устанавливать рабочий режим инструментального средства кодирования в соответствии с размером блока кодирования. В настоящем примерном варианте осуществления устройство 1400 видеокодирования может изменяемым образом устанавливать рабочий режим по меньшей мере одного инструментального средства кодирования в соответствии с размером блока кодирования. Так как глубина блока кодирования соответствует размеру блока кодирования, рабочий режим по меньшей мере одного инструментального средства кодирования может определяться на основе глубины блока кодирования, соответствующего размеру блока кодирования. Таким образом, может быть установлена зависимость между глубиной блока кодирования, инструментальным средством кодирования и рабочим режимом. Аналогично, если инструментальное средство кодирования может выполняться в блоке предсказания или разделе блока кодирования, рабочий режим инструментального средства кодирования может определяться на основе размера блока предсказания или раздела.
Устройство 1400 видеокодирования может устанавливать зависимость между глубиной блока кодирования, инструментальным средством кодирования и рабочим режимом перед выполнением кодирования. Например, согласно другому примерному варианту осуществления устройство 1400 видеокодирования может устанавливать зависимость между глубиной блока кодирования, инструментальным средством кодирования и рабочим режимом посредством кодирования блоков кодирования по меньшей мере одного максимального блока кодирования, соответствующего глубинам, во всех рабочих режимах преопределенного инструментального средства кодирования и обнаружения рабочего режима, имеющего наибольшую эффективность кодирования, из числа рабочих режимов.
Устройство 1400 видеокодирования может назначать рабочий режим, вызывающий служебные биты для блоков кодирования, соответствующих глубинам, размеры которых равны или больше предварительно определенного размера, и может назначать рабочий режим, который не вызывает служебные биты для других блоков кодирования, размеры которых меньше предварительно определенного размера.
Устройство 1400 видеокодирования может кодировать и передавать информацию, касающуюся зависимости между глубиной блока кодирования, инструментальным средством кодирования и рабочим режимом в блоках слайса, блоках кадра, блоках видеокадра или блоках GOP изображения. Согласно другому примерному варианту осуществления устройство 1400 видеокодирования может вставлять информацию, касающуюся кодирования, и информацию, касающуюся зависимости между глубиной блока кодирования, инструментальным средством кодирования и рабочим режимом, в SPS.
Если определитель 1420 блока кодирования выполняет внутреннее предсказание, которое является типом инструментального средства кодирования, рабочий режим внутреннего предсказания может классифицироваться в соответствии с количеством направлений предсказания, т.е. направлений, в которых может упоминаться информация об окрестностях. Таким образом, рабочий режим внутреннего предсказания, выполняемого устройством 1400 видеокодирования, может включать в себя режимы внутреннего предсказания, представляющие количество направления предсказания, которые изменяются в соответствии с размером блока кодирования.
Также, если определитель 1420 блока кодирования выполняет внутреннее предсказание, рабочий режим внутреннего предсказания может классифицироваться в соответствии с тем, должно ли выполняться сглаживание с учетом структуры изображения. Таким образом, рабочий режим внутреннего предсказания, выполняемого устройством 1400 видеокодирования, может представлять, должно ли выполняться внутреннее предсказание в соответствии с размером блока кодирования посредством различения между собой режима внутреннего предсказания для сглаживания области блока кодирования и режима внутреннего предсказания для сохранения граничной линии.
Если определитель 1420 блока кодирования выполняет внешнее предсказание, которое является другим типом инструментального средства кодирования, определитель 1420 блока кодирования может селективно выполнять по меньшей мере один способ определения вектора движения. Таким образом, рабочий режим внешнего предсказания, выполняемого устройством 1400 видеокодирования, может включать в себя режим внешнего предсказания, представляющий способ определения вектора движения, который селективно выполняется в соответствии с размером блока кодирования.
Если определитель 1420 блока кодирования выполняет преобразование, которое является другим типом инструментального средства кодирования, определитель 1420 блока кодирования может селективно выполнять вращательное преобразование в соответствии со структурой изображения. Определитель 1420 блока кодирования может сохранять матрицу вращательного преобразования, умножаемую на матрицу данных предварительно определенного размера, которая является целью преобразования, чтобы эффективно выполнить вращательное преобразование. Таким образом, рабочий режим преобразования, выполняемого устройством 1400 видеокодирования, может включать в себя режим преобразования, представляющий индекс матрицы вращательного преобразования, соответствующий размеру блока кодирования.
Если определитель 1420 блока кодирования выполняет квантование, которое является другим типом инструментального средства кодирования, тогда может использоваться дельта параметров квантования, представляющая разность между текущим параметром квантования и предварительно определенным представительным параметром квантования. Таким образом, рабочий режим квантования, выполняемого устройством 1400 видеокодирования, может включать в себя режим квантования, указывающий, должна ли использоваться дельта параметров квантования, которая изменяется в соответствии с размером блока кодирования.
Если определитель 1420 блока кодирования выполняет интерполяцию, которая является другим типом инструментального средства кодирования, может использоваться интерполяционный фильтр. Определитель 1420 блока кодирования может селективно устанавливать коэффициенты или количество отводов интерполяционного фильтра, основываясь на размере блока кодирования, блока предсказания или раздела и глубины блока кодирования. Таким образом, рабочий режим интерполяционной фильтрации, выполняемой устройством 1400 видеокодирования, может включать в себя интерполяционный режим, указывающий коэффициенты или количество отводов интерполяционного фильтра, которые изменяются в соответствии с размером или глубиной блока кодирования и размера блока предсказания или раздела.
Блок 1430 вывода может выводить битовый поток, в котором кодированные видеоданные (т.е. окончательный результат кодирования, принятый от определителя 1420 блока кодирования), информация, касающаяся кодированной глубины, и режим кодирования включены для каждого из по меньшей мере одного максимального блока кодирования. Кодированные видеоданные могут представлять собой набор из множества порций видеоданных, которые кодируются в блоках кодирования, соответствующих кодированным глубинам разделенных областей по меньшей мере одного максимального блока кодирования соответственно.
Также, вышеупомянутые рабочие режимы инструментальных средств кодирования для блоков кодирования, соответствующих глубинам, могут кодироваться в виде информации, касающейся зависимости между глубиной блока кодирования, инструментальным средством кодирования и рабочим режимом и затем могут вставляться в битовый поток.
Согласно примерному варианту осуществления устройство 1400 видеокодирования может выполнять инструментальное средство кодирования, такое как квантование, преобразование, внутреннее предсказание, внешнее предсказание, компенсация движения, энтропийное кодирование и контурная фильтрация. Эти инструментальные средства кодирования могут выполняться в разных рабочих режимах в блоках кодирования, соответствующих глубинам соответственно. Вышеприведенные рабочие режимы являются только иллюстративными примерами, приведенными для удобства объяснения, и зависимость между глубиной блока кодирования (или размером блока кодирования), инструментальным средством кодирования и рабочим режимом в устройстве 1400 видеокодирования не ограничиваются вышеупомянутыми примерными вариантами осуществления.
Фиг.17 представляет собой блок-схему устройства 1500 видеодекодирования, основанного на инструментальном средстве кодирования, учитывающим размер блока кодирования согласно примерному варианту осуществления. Как показано на фиг.17, устройство 1500 видеодекодирования включает в себя приемник 1510, выделитель 1520 и декодер 1330.
Приемник 1510 принимает и выполняет синтаксический анализ битового потока, включающего в себя кодированные видеоданные. Выделитель 1520 выделяет кодированные видеоданные, информацию, касающуюся кодирования, и информацию, касающуюся зависимости между глубиной блока кодирования, инструментальным средством кодирования и рабочим режимом из битового потока, принимаемого приемником 1510.
Кодированные видеоданные получаются посредством кодирования данных изображения в максимальных блоках кодирования. Данные изображения в каждом из максимальных блоков кодирования иерархически разделяются на множество разделенных областей в соответствии с глубинами, и каждая из разделенных областей кодируется в блок кодирования соответствующей кодированной глубины. Информация, касающаяся кодирования, включает в себя информацию, касающуюся кодированных глубин максимальных блоков кодирования и режима кодирования.
Например, информация, касающаяся зависимости между глубиной блока кодирования, инструментальным средством кодирования и рабочим режимом, может устанавливаться в блоках данных изображения, например максимальных блоках кодирования, блоках кадра, блоках поля, блоках слайса или блоках GOP. В другом примере информация, касающаяся кодирования, и информация, касающаяся зависимости между глубиной блока кодирования, инструментальным средством кодирования и рабочим режимом, может извлекаться из SPS. Данные изображения, кодированные в блоках кодирования данных изображения, могут декодироваться в селективном рабочем режиме инструментального средства кодирования, основываясь на информации, касающейся зависимости между глубиной блока кодирования, инструментальным средством кодирования и рабочим режимом, который определяется в предварительно определенных блоках данных изображения.
Декодер 1530 может декодировать кодированные видеоданные в максимальных блоках кодирования и в рабочих режимах инструментальных средств кодирования в блоках кодирования, соответствующих по меньшей мере одной кодированной глубине соответственно, основываясь на информации, касающейся кодирования, и информации, касающейся зависимости между глубиной блока кодирования, инструментальным средством кодирования и рабочим режимом, которые выделяются выделителем 1520. Рабочий режим инструментального средства кодирования может устанавливаться в соответствии с размером блока кодирования. Так как размер блока кодирования, соответствующего кодированной глубине, соответствует кодированной глубине, рабочий режим инструментального средства кодирования для блока кодирования, соответствующего кодированной глубине, может определяться на основе кодированной глубины. Аналогично, если инструментальное средство кодирования для блока кодирования выполняется на основе блока предсказания или раздела блока кодирования, рабочий режим инструментального средства кодирования может определяться на основе размера блока предсказания или раздела.
Даже если зависимость между глубиной блока кодирования, инструментальным средством кодирования и рабочим режимом устанавливается в соответствии с инструментальным средством кодирования, декодер 1530 может выполнять инструментальное средство декодирования, соответствующее инструментальному средству кодирования. Например, декодер 1530 может обратно квантовать битовый поток в блоке кодирования, соответствующем кодированной глубине, основываясь на информации, касающейся зависимости между глубиной блока кодирования, квантованием и рабочим режимом.
Если декодер 1530 выполняет внутреннее предсказание, которое является типом инструментального средства декодирования, декодер 1530 может выполнять внутреннее предсказание текущего блока кодирования, соответствующего кодированной глубине, основываясь на информации, касающейся зависимости между глубиной блока кодирования, внутренним предсказанием и режимом внутреннего предсказания. Например, декодер 1530 может выполнять внутреннее предсказание текущего блока кодирования, соответствующего кодированной глубине, основываясь на информации, касающейся зависимости между глубиной блока кодирования, внутренним предсказанием и режимом внутреннего предсказания, и информации об окрестностях в соответствии с количеством направлений внутреннего предсказания, соответствующего размеру текущего блока кодирования.
Также, декодер 1530 может определять, выполнять ли внутреннее предсказание в соответствии с кодированным блоком текущего блока кодирования посредством различения между собой режима внутреннего предсказания для сглаживания и режима внутреннего предсказания для сохранения граничной линии, основываясь на информации, касающейся зависимости между глубиной блока кодирования, внутренним предсказанием и режимом внутреннего предсказания.
Если декодер 1530 выполняет внешнее предсказание, которое является другим типом инструментального средства декодирования, декодер 1530 может выполнять внешнее предсказание текущего блока кодирования, соответствующего кодированной глубине, основываясь на информации, касающейся зависимости между глубиной блока кодирования, внешним предсказанием и режимом внешнего предсказания. Например, декодер 1530 может выполнять режим внешнего предсказания текущего блока кодирования кодированной глубины посредством использования способа определения вектора движения, основываясь на информации, касающейся зависимости между глубиной блока кодирования, внешним предсказанием и режимом внешнего предсказания.
Если декодер 1530 выполняет обратное преобразование, которое является другим типом инструментального средства декодирования, декодер 1530 может селективно выполнять обратное вращательное преобразование, основываясь на информации, касающейся зависимости между глубиной блока кодирования, преобразованием и режимом преобразования. Таким образом, декодер 1530 может выполнять обратное вращательное преобразование текущего блока кодирования, соответствующего кодированной глубине, посредством использования матрицы вращательного преобразования индекса, соответствующего кодированной глубине, основываясь на информации, касающейся зависимости между глубиной блока кодирования, преобразованием и режимом обратного преобразования.
Если декодер 1530 выполняет обратное квантование, которое является другим типом инструментального средства кодирования, декодер 1530 может выполнять обратное квантование текущего блока кодирования, соответствующего кодированной глубине, посредством использования дельты параметров квантования, соответствующей кодированной глубине, основываясь на информации, касающейся глубины блока кодирования, квантования и режима квантования.
Если декодер 1530 выполняет интерполяцию или экстраполяцию, которая является другим типом инструментального средства кодирования, может использоваться фильтр для интерполяции или экстраполяции. Декодер 1530 может выполнять фильтрацию, используя фильтр для интерполяции или экстраполяции, для текущего блока кодирования, соответствующего кодированной глубине, посредством использования коэффициентов или количества отводов фильтра для интерполяции или экстраполяции, основываясь на рабочем режиме фильтрации для интерполяции или экстраполяции, указывая коэффициенты или количество отводов фильтра для интерполяции или экстраполяции. Рабочий режим фильтрации для интерполяции или экстраполяции может соответствовать по меньшей мере одному из размера текущего блока кодирования и размера блока предсказания или раздела текущего блока кодирования.
Устройство 1500 видеодекодирования может восстанавливать исходное изображение из данных изображения, декодируемых декодером 1530. Восстановленное изображение может воспроизводиться устройством отображения (не показано) или может сохраняться на носителе данных (не показан).
В устройстве 1400 видеокодирования и устройстве 1500 видеодекодирования согласно примерным вариантам осуществления размер блока кодирования может изменяться в соответствии с характеристиками изображения и эффективностью кодирования изображения. Размер блока данных, такого как блок кодирования, блок предсказания или блок преобразования, может увеличиваться, чтобы кодировать большое количество данных изображения, например изображения с высоким разрешением или высокого качества. Размер макроблока, имеющего иерархическую структуру согласно стандартам H.264, может быть 4×4, 8×8 или 16×16, но устройство 1400 видеокодирования и устройство 1500 видеодекодирования согласно одному или нескольким примерным вариантам осуществления может расширять размер блока данных до 4×4, 8×8, 16×16, 32×32, 64×64, 128×128 или более.
Чем больше блок данных, тем больше данных изображения, включенных в блок данных, и тем больше различных характеристик изображения в блоках данных. Таким образом, было бы неэффективным кодировать все блоки данных, имеющие различные размеры, посредством использования только одного инструментального средства кодирования.
Следовательно, устройство 1400 видеокодирования может определять глубину блока кодирования и рабочий режим инструментального средства кодирования в соответствии с характеристиками данных изображения, чтобы повысить эффективность кодирования и кодировать информацию, касающуюся зависимости между глубиной блока кодирования, инструментальным средством кодирования и рабочим режимом. Кроме того, устройство 1500 видеодекодирования может восстанавливать исходное изображение посредством декодирования принимаемого битового потока, основываясь на информации, касающейся зависимости между глубиной блока кодирования, инструментальным средством кодирования и рабочим режимом.
Следовательно, устройство 1400 видеокодирования и устройство 1500 видеодекодирования могут эффективно кодировать и декодировать большое количество данных изображения, таких как изображение с высоким разрешением или высокого качества соответственно.
Фиг.18 представляет собой схему для описания зависимости между размером блока кодирования, инструментальным средством кодирования и рабочим режимом согласно примерному варианту осуществления.
Как показано на фиг.18, согласно примерному варианту осуществления в устройстве 1400 видеокодирования или устройстве 1500 видеодекодирования блок 1610 кодирования 4×4, блок 1620 кодирования 8×8, блок 1630 кодирования 16×16, блок 1640 кодирования 32×32 и блок 1650 кодирования 64×64 могут использоваться в качестве блоков кодирования. Если максимальным блоком кодирования является блок 1650 кодирования 64×64, глубина блока 1650 кодирования 64×64 равна 0, глубина блока 1640 кодирования 32×32 равна 1, глубина блока 1630 кодирования 16×16 равна 2, глубина блока 1620 кодирования 8×8 равна 3 и глубина блока 1610 кодирования 4×4 равна 4.
Устройство 1400 видеокодирования может адаптивно определять рабочий режим инструментального средства кодирования в соответствии с глубиной блока кодирования. Например, если первое инструментальное средство TOOL1 кодирования может выполняться в первом рабочем режиме TOOL1-1 1660, втором рабочем режиме TOOL1-2 1662 и третьем рабочем режиме TOOL1-3, устройство 1400 видеокодирования может выполнять первое инструментальное средство TOOL1 кодирования в первом рабочем режиме TOOL1-1 1660 в отношении блока 1610 кодирования 4×4 и блока 1620 кодирования 8×8, может выполнять первое инструментальное средство TOOL1 кодирования во втором рабочем режиме 1662 в отношении блока 1630 кодирования 16×16 и блока 1640 кодирования 32×32, и может выполнять первое инструментальное средство TOOL1 кодирования в третьем рабочем режиме 1664 в отношении блока 1650 кодирования 64×64.
Зависимость между размером блока кодирования, инструментальным средством кодирования и рабочим режимом может определяться посредством кодирования текущего блока кодирования во всех рабочих режимах соответствующего инструментального средства кодирования и обнаружения рабочего режима, вызывающего результат кодирования с наибольшей эффективностью кодирования, из числа рабочих режимов во время кодирования текущего блока кодирования. В другом примерном варианте осуществления зависимость между размером блока кодирования, инструментальным средством кодирования и рабочим режимом может определяться предварительно, например, посредством по меньшей мере одного из рабочих характеристик системы кодирования, требований пользователя или внешних условий.
Так как размер максимального блока кодирования является фиксированным в отношении предварительно определенных данных, размер блока кодирования соответствует глубине самого блока кодирования. Таким образом, зависимость между инструментальным средством кодирования, адаптивным к размеру блока кодирования, и рабочим режимом может кодироваться посредством использования информации, касающейся зависимости между глубиной блока кодирования, инструментальным средством кодирования и рабочим режимом.
Информация, касающаяся зависимости между глубиной блока кодирования, инструментальным средством кодирования и рабочим режимом, может указывать оптимальные рабочие режимы инструментальных средств кодирования в блоках глубины блоков кодирования соответственно.
Таблица 2
Режим кодирования
Глубина блока кодирования = 4
Глубина блока кодирования = 3
Глубина блока кодирования = 2
Глубина блока кодирования = 1
Глубина блока кодирования = 0
рабочий режим первого инструментального средства кодирования
первый рабочий режим
первый рабочий режим
второй рабочий режим
второй рабочий режим
третий рабочий режим
рабочий режим второго инструментального средства кодирования
первый рабочий режим
второй рабочий режим
второй рабочий режим
третий рабочий режим
третий рабочий режим
Согласно примерной таблице 2 рабочие режимы первого и второго инструментальных средств кодирования могут быть изменяемым образом применяться к блокам код кодирования, имеющим глубины 4, 3, 2, 1 и 0 соответственно. Информация, касающаяся зависимости между глубиной блока кодирования, инструментальным средством кодирования и рабочим режимом, может кодироваться и передаваться в блоках последовательности, блоках GOP, блоках видеокадра или блоках слайса изображения.
Ниже подробно описываются различные примерные варианты осуществления зависимости между глубиной блока кодирования, инструментальным средством кодирования и рабочим режимом.
Фиг.19 представляет собой схему для описания зависимости между глубиной блока кодирования, инструментальным средством кодирования (например, внешним предсказанием) и рабочим режимом согласно примерному варианту осуществления.
Если устройство 1400 видеокодирования согласно примерному варианту осуществления выполняет внешнее предсказание, может использоваться по меньшей мере один способ определения вектора движения. Таким образом, рабочий режим внешнего предсказания, который является типом инструментального средства кодирования, может классифицироваться по способу определения вектора движения.
Например, как показано на фиг.19, в первом рабочем режиме внешнего предсказания срединное значение векторов движения mvpA, mvpB и mvpC прилегающих блоков A, B и C 1710, 1720 и 1730 кодирования выбирается в качестве предсказываемого вектора MVP движения текущего блока 1700 кодирования, как указывается в уравнении (4) .
Если применяется первый рабочий режим, величина вычисления является низкой, могут не использоваться служебные биты. Таким образом, даже если внешнее предсказание выполняется над блоками кодирования малого размера в первом рабочем режиме, величина вычисления или величина битов, подлежащих передаче, является небольшой.
Например, во втором рабочем режиме внешнего предсказания непосредственно отображается индекс вектора движения блока кодирования, который выбирается в качестве предсказываемого вектора движения текущего блока 1700 кодирования из числа векторов движения прилегающих блоков A, B и C 1710, 1720 и 1730 кодирования.
Например, если устройство 1400 видеокодирования выполняет внешнее предсказание текущего блока 1700 кодирования, вектор mvpA движения прилегающего блока A 1710 кодирования может выбираться в качестве оптимального предсказываемого вектора движения текущего блока 1700 кодирования, и может кодироваться индекс вектора mvpA движения. Таким образом, хотя имеет место служебная нагрузка на стороне кодирования, вызванная индексом, представляющим предсказываемый вектор движения, величина вычисления при выполнении внешнего предсказания во втором рабочем режиме является небольшой на стороне декодирования.
Например, в третьем рабочем режиме внешнего предсказания пиксели 1705 в предварительно определенном расположении на текущем блоке 1700 кодирования сравниваются с пикселями 1715, 1725, 1735 на предварительно определенных расположениях на прилегающих блоках A, B и C 1710, 1720 и 1730 кодирования, пиксели, степени искажения которых являются наименьшими, обнаруживаются из числа пикселей 1715, 1725, 1735, и вектор движения прилегающего блока кодирования, включающего в себя обнаруженные пиксели, выбирается в качестве предсказываемого вектора движения текущего блока 1700 кодирования.
Таким образом, хотя величина вычисления может быть большой для стороны декодирования для обнаружения пикселей, степени искажения которых являются наименьшими, сторона кодирования не испытывает служебной нагрузки в битах, подлежащих передаче. В частности, если внешнее предсказание выполняется над последовательностью изображения, включающей в себя конкретную структуру изображения в третьем рабочем режиме, результат предсказания является более точным, чем тогда, когда используется срединное значение векторов движения прилегающих блоков кодирования.
Устройство 1400 видеокодирования может кодировать информацию, касающуюся зависимости между первым рабочим режимом, вторым рабочим режимом и третьим рабочим режимом внешнего предсказания, определенных в соответствии с глубиной блока кодирования. Устройство 1500 видеодекодирования согласно примерному варианту осуществления может декодировать данные изображения посредством выделения информации, касающейся первого рабочего режима, второго рабочего режима и третьего рабочего режима внешнего предсказания, определенного в соответствии с глубиной блока кодирования, из принимаемого битового потока, и выполнения инструментального средства декодирования, относящегося к компенсации движения и внешнему предсказанию, выполняемым над текущим блоком кодирования кодированной глубины, основываясь на выделенной информации.
Устройство 1400 видеокодирования проверяет, имеет ли место служебная нагрузка в битах, подлежащих передаче, чтобы определить рабочий режим внешнего предсказания в соответствии с размером или глубиной блока кодирования. Если кодируется небольшой блок кодирования, дополнительная служебная нагрузка может существенно понижать ее эффективность кодирования, тогда как, если кодируется большой блок кодирования, на эффективность кодирования не оказывает существенного влияния дополнительная служебная нагрузка.
Следовательно, может быть эффективным выполнение внешнего предсказания в третьем рабочем режиме, который не вызывает дополнительной служебной нагрузки, когда кодируется небольшой блок кодирования. В этом отношении пример зависимости между размером блока кодирования и рабочим режимом внешнего предсказания показан в примерной таблице 3.
Таблица 3
Режим предсказания
Размер блока кодирования = 4
Размер блока кодирования = 8
Размер блока кодирования = 16
Размер блока кодирования = 32
Размер блока кодирования = 64
рабочий режим внешнего предсказания
третий рабочий режим
третий рабочий режим
первый рабочий режим
второй рабочий режим
второй рабочий режим
Фиг.20 представляет собой схему для описания зависимости между глубиной блока кодирования, инструментальным средством кодирования (например, внутренним предсказанием) и рабочим режимом согласно примерному варианту осуществления.
-1
Устройство 1400 видеокодирования согласно примерному варианту осуществления может выполнять направленную экстраполяцию в качестве внутреннего предсказания посредством использования восстановленных пикселей 1810, прилегающих к текущему блоку 1800 кодирования. Например, направление внутреннего предсказания может определяться как tan(dx, dy), и внешнее предсказание может выполняться по различным направлениям в соответствии с множеством параметров (dx, dy).
-1
Прилегающий пиксель 1830 на линии, проходящей от текущего пикселя 1820 в текущем блоке 1800 кодирования, который должен быть предсказан, и наклоненной под углом tan(dy/dx), определенным значениями dx и dy из текущего пикселя 1820, может использоваться в качестве предсказателя текущего пикселя 1830. Прилегающий пиксель 1830 может принадлежать блоку кодирования, который расположен на верхней или левой стороне текущего блока 1800 кодирования, который был ранее кодирован и восстановлен.
Если выполняется внутреннее предсказание, устройство 1400 видеокодирования может корректировать количество направлений внутреннего предсказания в соответствии с размером блока кодирования. Таким образом, рабочие режимы внутреннего предсказания, которое является типом инструментального средства кодирования, могут классифицироваться в соответствии с количеством направлений внутреннего предсказания.
Количество направлений внутреннего предсказания может изменяться в соответствии с размером и иерархической древовидной структурой блока кодирования. Служебные биты, используемые для представления режима внутреннего предсказания, могут понижать эффективность кодирования небольшого блока кодирования, но не оказывает влияния на эффективность кодирования большого блока кодирования.
Таким образом, устройство 1400 видеокодирования может кодировать информацию, касающуюся зависимости между глубиной блока кодирования и количеством направлений внутреннего предсказания. Также, устройство 1500 видеодекодирования согласно примерному варианту осуществления может декодировать данные изображения посредством выделения информации, касающейся зависимости между глубиной блока кодирования и количеством направлений внутреннего предсказания, из принимаемого битового потока и выполнения инструментального средства декодирования, относящегося к внутреннему предсказанию, выполняемому над текущим блоком кодирования кодированной глубины, основываясь на выделенной информации.
Устройство 1400 видеокодирования рассматривает структуру изображения текущего блока кодирования, чтобы определить рабочий режим внутреннего предсказания в соответствии с размером или глубиной блока кодирования. В случае изображения, содержащего детальные составляющие, внутреннее предсказание может выполняться посредством использования линейной экстраполяции, и, таким образом, может использоваться большое количество направлений внутреннего предсказания. Однако в случае плоской области изображения количество направлений внутреннего предсказания может быть относительно небольшим. Например, плоский режим или билинейный режим, использующий интерполяцию восстанавливаемых прилегающих пикселей, может использоваться для выполнения внутреннего предсказания плоской области изображения.
Так как большой блок кодирования определяется, вероятно, в плоской области изображения, количество направлений внутреннего предсказания может быть относительно небольшим, когда режим внутреннего предсказания выполняется над большим блоком кодирования. Также, так как небольшой блок кодирования, вероятно, определяется в области, включающей в себя детальные составляющие изображения, количество направлений внутреннего предсказания может быть относительно большим, когда режим внутреннего предсказания выполняется над небольшим блоком кодирования. Таким образом, зависимость между размером блока кодирования и режимом внутреннего предсказания может рассматриваться как зависимость между размером блока кодирования и количеством направлений внутреннего предсказания. Пример зависимости между размером блока кодирования и количеством направлений внутреннего предсказания показан в примерной таблице 4.
Таблица 4
Режим предсказания
Размер блока кодирования = 4
Размер блока кодирования = 8
Размер блока кодирования = 16
Размер блока кодирования = 32
Размер блока кодирования = 64
Количество направлений внутреннего предсказания
9
9
33
17
5
Большой блок кодирования может включать в себя структуры изображения, которые размещены по различным направлениям, и внутреннее предсказание, таким образом, может выполняться над большим блоком кодирования посредством использования линейной экстраполяции. В данном случае зависимость между размером блока кодирования и режимом внутреннего предсказания может устанавливаться так, как показано в примерной таблице 5.
Таблица 5
Режим предсказания
Размер блока кодирования = 4
Размер блока кодирования = 8
Размер блока кодирования = 16
Размер блока кодирования = 32
Размер блока кодирования = 64
Количество направлений внутреннего предсказания
9
9
33
33
17
Согласно примерному варианту осуществления кодирование с предсказанием выполняется в различных режимах внутреннего предсказания, установленных в соответствии с размерами блоков кодирования, таким образом более эффективно сжимая изображение в соответствии с характеристиками изображения.
Предсказываемые блоки кодирования, выводимые из устройства 1400 видеокодирования посредством выполнения различных режимов внутреннего предсказания в соответствии с глубинами блоков кодирования, имеют предварительно определенную направленность в соответствии с типом режима внутреннего предсказания. Вследствие направленности в таких предсказываемых блоках кодирования эффективность предсказания может быть высокой, когда пиксели текущего блока кодирования, который должен кодироваться, имеют предварительно определенную направленность, и может быть низкой, когда пиксели текущего блока кодирования не имеют предварительно определенной ориентации. Таким образом, может выполняться постобработка предсказываемого блока кодирования, полученного с использованием внутреннего предсказания, посредством создания нового предсказываемого блока кодирования посредством изменения значений пикселей в предсказываемом блоке кодирования посредством использования этих пикселей и по меньшей мере одного прилегающего пикселя, тем самым повышая эффективность предсказания изображения.
Например, в случае плоской области изображения может быть эффективным выполнение постобработки для сглаживания предсказываемого блока кодирования, полученного с использованием внутреннего предсказания. Также, в случае области, имеющей детальные составляющие изображения, может быть эффективным выполнение постобработки для сохранения детальных составляющих предсказываемого блока кодирования, полученного с использованием внутреннего предсказания.
Таким образом, устройство 1400 видеокодирования может кодировать информацию, касающуюся зависимости между глубиной блока кодирования и рабочим режимом, указывающим, должна ли выполняться постобработка предсказываемого блока кодирования, полученного с использованием внутреннего предсказания. Также, устройство 1500 видеодекодирования может декодировать данные изображения посредством выделения информации, касающейся зависимости между глубиной блока кодирования и рабочим режимом, указывающим, должна ли выполняться постобработка предсказываемого блока кодирования, полученного с использованием внутреннего предсказания, из принимаемого битового потока, и выполнения инструментального средства декодирования, относящегося к внутреннему предсказанию, выполняемому над текущим блоком кодирования кодированной глубины, основываясь на выделенной информации.
В устройстве 1400 видеокодирования режим внутреннего предсказания, в котором выполняется постобработка для сглаживания, и режим внутреннего предсказания, в котором не выполняется постобработка для сглаживания, могут выбираться для плоской области изображения и области, включающей в себя детальные составляющие изображения соответственно, в качестве рабочего режима, указывающего, должна ли выполняться постобработка предсказываемого блока кодирования, полученного с использованием внутреннего предсказания.
Большой блок кодирования может определяться в плоской области изображения, и небольшой блок кодирования может определяться в области, содержащей детальные составляющие изображения. Таким образом, устройство 1400 видеокодирования может определить, что режим внутреннего предсказания, в котором выполняется постобработка для сглаживания, выполняется над большим блоком кодирования, и режим внутреннего предсказания, в котором не выполняется постобработка для сглаживания, выполняется над небольшим блоком кодирования.
Следовательно, зависимость между глубиной блока кодирования и рабочим режимом, указывающим, должна ли выполняться постобработка предсказываемого блока кодирования, полученного посредством внутреннего предсказания, может рассматриваться в качестве зависимости между размером блока кодирования и тем, должна ли выполняться постобработка. В этом отношении пример зависимости между размером блока кодирования и рабочим режимом внутреннего предсказания может быть показан в примерной таблице 6.
Таблица 6
Режим предсказания
Размер блока кодирования = 4
Размер блока кодирования = 8
Размер блока кодирования = 16
Размер блока кодирования = 32
Размер блока кодирования = 64
Режим постобработки внутреннего предсказания
0
0
1
1
1
Если устройство 1400 видеокодирования выполняет преобразование, которое является типом инструментального средства кодирования, вращательное преобразование может селективно выполняться в соответствии со структурой изображения. Для эффективного вычисления вращательного преобразования матрица данных для вращательного преобразования может сохраняться в памяти. Если устройство 1400 видеокодирования выполняет вращательное преобразование или если устройство 1500 видеодекодирования выполняет обратное вращательное преобразование, относящиеся данные могут вызываться из памяти посредством использования индекса данных вращательного преобразования, используемых для вычисления. Такие данные вращательного преобразования могут устанавливаться в блоках кодирования или блоках преобразования или в соответствии с типом последовательности.
Таким образом, устройство 1400 видеокодирования может устанавливать режим преобразования, указанный индексом матрицы вращательного преобразования, соответствующего глубине блока кодирования, в качестве рабочего режима преобразования. Устройство 1400 видеокодирования может кодировать информацию, касающуюся зависимости между размером блока кодирования и режимом преобразования, указывающим индекс матрицы вращательного преобразования.
Устройство 1500 видеодекодирования может декодировать данные изображения посредством выделения информации, касающейся зависимости между глубиной блока кодирования и режимом преобразования, указывающим индекс матрицы вращательного преобразования, из принимаемого битового потока и выполнения обратного вращательного преобразования текущего блока кодирования кодированной глубины, основываясь на выделенной информации.
Следовательно, зависимость между глубиной блока кодирования, вращательным преобразованием и рабочим режимом может рассматриваться как зависимость между размером блока кодирования и индексом матрицы вращательного преобразования. В этом отношении зависимость между размером блока кодирования и рабочим режимом вращательного преобразования может быть показана в примерной таблице 7.
Таблица 7
Индекс преобразования
Размер блока кодирования = 4
Размер блока кодирования = 8
Размер блока кодирования = 16
Размер блока кодирования = 32
Размер блока кодирования = 64
Индекс матрицы вращательного преобразования
4-7
4-7
0-3
0-3
0-3
Если устройство 1400 видеокодирования выполняет квантование, которое является типом инструментального средства кодирования, может использоваться дельта параметров квантования, представляющая разность между текущим параметром квантования и предварительно определенным представительным параметром квантования. Дельта параметров квантования может изменяться в соответствии с размером блока кодирования. Таким образом, в устройстве 1400 видеокодирования рабочий режим квантования может включать в себя режим квантования, указывающий, должна ли использоваться дельта параметров квантования, изменяющаяся в соответствии с размером блока кодирования.
Таким образом, устройство 1400 видеокодирования может устанавливать режим квантования, указывающий, должна ли использоваться дельта параметров квантования, соответствующая размеру блока квантования, в качестве рабочего режима квантования. Устройство 1400 видеокодирования может кодировать информацию, касающуюся зависимости между глубиной блока кодирования и режимом квантования, указывающим, должна ли использоваться дельта параметров квантования.
Устройство 1500 видеодекодирования может декодировать данные изображения посредством выделения информации, касающейся зависимости между глубиной блока кодирования и режимом квантования, указывающим, должна ли использоваться дельта параметров квантования, из принимаемого битового потока и выполнения обратного квантования текущего блока кодирования кодированной глубины, основываясь на выделенной информации.
Следовательно, зависимость между глубиной блока кодирования, квантованием и рабочим режимом может рассматриваться как зависимость между размером блока кодирования и тем, должна ли использоваться дельта параметров квантования. В этом отношении пример зависимости между размером блока кодирования и рабочим режимом квантования показан в примерной таблице 8.
Таблица 8
Параметры квантования
Размер блока кодирования = 4
Размер блока кодирования = 8
Размер блока кодирования = 16
Размер блока кодирования = 32
Размер блока кодирования = 64
Дельта параметров квантования
ложь
ложь
истинна
ложь
ложь
Фиг.21 иллюстрирует синтаксис набора 1900 параметров последовательности, в который вставляется информация, касающаяся зависимости между глубиной блока кодирования, инструментальным средством кодирования и рабочим режимом, согласно примерному варианту осуществления.
На фиг.21 sequence_parameter_set обозначает синтаксис набора 1900 параметров последовательности для текущего слайса. Как показано на фиг.21, информация, касающаяся зависимости между глубиной блока кодирования, инструментальным средством кодирования и рабочим режимом, вставляется в синтаксис набора 1900 параметров последовательности для текущего слайса.
Кроме того, на фиг.21 picture_width обозначает ширину введенного изображения, picture_height обозначает высоту введенного изображения, max_coding_unit_size обозначает размер максимального блока кодирования, и max_coding_unit_depth обозначает максимальную глубину.
Согласно примерному варианту осуществления синтаксис use_independent_cu_decode_flag, указывающий, должно ли декодирование выполняться независимо в блоках кодирования, use_independent_cu_parse_flag, указывающий, должен ли синтаксический анализ независимо выполняться в блоках кодирования, use_mv_accuracy_control_flag, указывающий, должен ли вектор движения управляться точно, use_arbitrary_direction_intra_flag, указывающий, должно ли внутреннее предсказание выполняться в произвольном направлении, use_frequency_domain_prediction_flag, указывающий, должно ли кодирование/декодирование с предсказанием выполняться в частотной области преобразования, use_rotational_transform_flag, указывающий, должно ли выполняться вращательное преобразование, use_tree_significant_map_flag, указывающий, должно ли кодирование/декодирование выполняться с использованием значащей карты дерева, use_multi_parameter_intra_prediction_flag, указывающий должно ли кодирование с внутренним предсказанием выполняться с использованием многочисленных параметров, use_advanced_motion_vector_prediction_flag, указывающий, должно ли выполняться усовершенствованное предсказание вектора движения, use_adaptive_loop_filter_flag, указывающий, должна ли выполняться адаптивная контурная фильтрация, use_quadtree_adaptive_loop_filter_flag, указывающий, должна ли выполняться адаптивная контурная фильтрация дерева квадрантов, use_delta_qp_flag, указывающий, должно ли квантование выполняться с использованием дельты параметров квантования, use_random_noise_generation_flag, указывающий, должно ли выполняться генерирование случайного шума, use_asymetric_motion_partition_flag, указывающий, должна ли оценка движения выполняться в асимметричных блоках предсказания, может использоваться в качестве примеров параметра последовательности слайса. Возможно эффективно кодировать или декодировать текущий слайс посредством установки, должны ли вышеупомянутые операции использоваться посредством использования этих синтаксисов.
В частности, длина адаптивного контурного фильтра alf_filter_length, тип адаптивного контурного фильтра alf_filter_type, опорное значение для квантования коэффициента адаптивного контурного фильтра alf_qbits и количество цветовых составляющих адаптивной контурной фильтрации alf_num_color могут устанавливаться в наборе 1900 параметров последовательности, основываясь на use_adaptive_loop_filter_flag и use_quadtree_adaptive_loop_filter_flag.
Информация, касающаяся зависимости между глубиной блока кодирования, инструментальным средством кодирования и рабочим режимом, используемым в устройстве 1400 видеокодирования и устройстве 1500 видеодекодирования согласно примерным вариантам осуществления, могут указывать рабочий режим внешнего предсказания, соответствующий глубине блока кодирования uiDepth mvp_mode[uiDepth], и рабочий режим significant_map_mode[uiDepth], указывающий тип значащей карты из числа значащих карт дерева. Т.е. или зависимость между внешним предсказанием и соответствующим рабочим режимом в соответствии с глубиной блока кодирования, или зависимость между кодированием/декодированием с использованием значащей карты дерева и соответствующим рабочим режимом в соответствии с глубиной блока кодирования может устанавливаться в наборе 1900 параметров последовательности.
Битовая глубина входного отсчета input_sample_bit_depth и битовая глубина внутреннего отсчета internal_sample_bit_depth также могут устанавливаться в наборе 1900 параметров последовательности.
Информация, касающаяся зависимости между глубиной блока кодирования, инструментальным средством кодирования и рабочим режимом, кодируемая устройством 1400 видеокодирования или декодируемая устройством 1500 видеодекодирования согласно примерному варианту осуществления, не ограничивается информацией, вставленной в набор 1900 параметров последовательности, изображенный на фиг.21. Например, информация может кодироваться или декодироваться в максимальных блоках кодирования, блоков слайса, блоках кадра, блоках видеокадра или блоках GOP изображения.
Фиг.22 представляет собой блок-схему последовательности операций, иллюстрирующую способ видеокодирования, основанный на инструментальном средстве кодирования, учитывающим размер блока кодирования, согласно примерному варианту осуществления. Как показано на фиг.22, при операции 2010 текущий видеокадр разделяется на по меньшей мере один максимальный блок кодирования.
При операции 2020 кодированная глубина определяется посредством кодирования по меньшей мере одного максимального блока кодирования в блоках кодирования, соответствующих глубинам в рабочих режимах инструментальных средств кодирования соответственно, основываясь на зависимости между глубиной по меньшей мере одного блока кодирования по меньшей мере одного максимального блока кодирования, инструментальным средством кодирования и рабочим режимом. Таким образом по меньшей мере один максимальный блок кодирования включает в себя блоки кодирования, соответствующие по меньшей мере одной кодированной глубине.
Зависимость между глубиной по меньшей мере одного блока кодирования по меньшей мере одного максимального блока кодирования, инструментальным средством кодирования и рабочим режимом может предварительно устанавливаться в блоках слайсов, кадров, GOP или последовательностей кадров изображения. Зависимость между глубиной по меньшей мере одного блока кодирования по меньшей мере одного максимального блока кодирования, инструментальным средством кодирования и рабочим режимом может определяться посредством сравнения результатов кодирования блоков кодирования, соответствующих глубинам в по меньшей мере одном рабочем режиме, согласующим инструментальные средства кодирования друг с другом, и выбора рабочего режима, имеющего наибольшую эффективность кодирования из числа по меньшей мере одного рабочего режима во время кодирования по меньшей мере одного максимального блока кодирования. Иначе, зависимость между глубиной по меньшей мере одного блока кодирования по меньшей мере одного максимального блока кодирования, инструментальным средством кодирования и рабочим режимом может определяться таким образом, что блоки кодирования, соответствующие глубинам, размеры которых меньше или равны предварительно определенному размеру, могут соответствовать рабочему режиму, который не вызывает вставление служебных битов в кодируемый поток данных и другие блоки кодирования, размеры которых больше предварительно определенного размера, могут соответствовать рабочему режиму, вызывающему служебные биты.
При операции 2030 выводится битовый поток, включающий в себя кодированные видеоданные по меньшей мере одной кодированной глубины, информацию, касающуюся кодирования, и информацию, касающуюся зависимости между глубиной по меньшей мере одного блока кодирования по меньшей мере одного максимального блока кодирования, инструментальным средством кодирования и рабочим режимом в по меньшей мере одном максимальном блоке кодирования. Информация, касающаяся кодирования, может включать в себя по меньшей мере одну кодированную глубину и информацию, касающуюся режима кодирования в по меньшей мере одном максимальном блоке кодирования. Информация, касающаяся зависимости между глубиной по меньшей мере одного блока кодирования по меньшей мере одного максимального блока кодирования, инструментальным средством кодирования и рабочим режимом, может вставляться в блоки слайса, блоки кадра, GOP или последовательности кадров изображения.
Фиг.23 представляет собой блок-схему последовательности операций, иллюстрирующую способ видеодекодирования, основанный на инструментальном средстве кодирования, учитывающем размер блока кодирования, согласно примерному варианту осуществления. Как показано на фиг.23, при операции 2110 принимается и выполняется синтаксический анализ битового потока, включающего в себя кодированные видеоданные.
При операции 2120 кодированные видеоданные, информация, касающаяся кодирования, и информация, касающаяся зависимости между глубиной блока кодирования, инструментальным средством кодирования и рабочим режимом, выделяются из битового потока. Информация, касающаяся зависимости между глубиной блока кодирования, инструментальным средством кодирования и рабочим режимом может выделяться из битового потока в максимальных блоках кодирования, блоках слайса, блоках кадра, блоках GOP или последовательностях кадров изображения.
При операции 2130 кодированные видеоданные декодируются в максимальных блоках кодирования в соответствии с рабочим режимом инструментального средства кодирования, согласующимся с блоком кодирования, соответствующим по меньшей мере одной кодированной глубине, основываясь на информации, касающейся кодирования, и информации, касающейся зависимости между глубиной блока кодирования, инструментальным средством кодирования и рабочим режимом, выделенным из битового потока.
Хотя не ограничено этим, один или несколько примерных вариантов осуществления могут быть написаны в виде компьютерных программ и могут быть реализованы в цифровых компьютерах общего пользования, которые исполняют программы, используя считываемый компьютером носитель записи. Примеры считываемого компьютером носителя записи включают в себя магнитные носители данных (например, постоянное запоминающее устройство (ROM), дискеты, жесткие диски и т.д.) и оптические носители записи (например, компакт-диски (CD-ROM) или цифровые многофункциональные диски (DVD)). Кроме того, хотя это не требуется во всех примерных вариантах осуществления, один или несколько блоков устройства 100 или 1400 видеокодирования, устройства 200 или 1500 видеодекодирования, кодера 400 изображения и декодера 500 изображения могут включать в себя процессор или микропроцессор, исполняющий компьютерную программу, хранимую на считываемом компьютером носителе.
Хотя примерные варианты осуществления были конкретно показаны и описаны со ссылкой на чертежи выше, для специалиста в данной области техники понятно, что различные изменения в форме и деталях могут быть сделаны в них без отступления от сущности и объема идеи изобретения, определенной в прилагаемой формуле изобретения. Примерные варианты осуществления должны рассматриваться только в описательном смысле, а не с целью ограничения. Поэтому объем существа изобретения определяется не подробным описанием примерных вариантов осуществления, но прилагаемой формулой изобретения, и все отличия в объеме толкуются как включенные в настоящее существо изобретения.