СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ ВИДЕО И СПОСОБ И УСТРОЙСТВО ДЛЯ ДЕКОДИРОВАНИЯ ВИДЕО С УЧЕТОМ ПОРЯДКА ПРОПУСКА И РАЗБИЕНИЯ
METHOD AND APPARATUS FOR ENCODING VIDEO AND METHOD AND APPARATUS FOR DECODING VIDEO BASED ON OMISSION AND PARTITION ORDER

Область техники, к которой относится изобретение
[001] Устройства и способы в соответствии с примерными вариантами осуществления относятся к кодированию и декодированию видео.
Уровень техники
[002] По мере того как разрабатываются и предоставляются аппаратные средства для воспроизведения и сохранения высококачественного видеосодержимого высокого разрешения, растет потребность в видеокодеке для эффективного кодирования или декодирования высококачественного видеосодержимого высокого разрешения. В видеокодеке предшествующего уровня техники видео кодируется согласно ограниченному способу кодирования на основе макроблока, имеющего предварительно определенный размер.
Сущность изобретения
Техническая задача
[003] Примерные варианты осуществления предоставляют кодирование и декодирование видео с учетом порядка пропуска и разбиения единицы кодирования согласно характеристикам единицы данных.
Решение задачи
[004] Согласно аспекту примерного варианта осуществления, предусмотрен способ кодирования видео с учетом порядка пропуска и разбиения, причем способ включает в себя: разбиение изображения на максимальные единицы кодирования, включающие в себя единицы кодирования, являющиеся единицами данных, в которых кодируется изображение; для максимальной единицы кодирования определение единиц кодирования, имеющих древовидную структуру, включающих в себя единицы кодирования кодированных глубин, и определение режимов кодирования для единиц кодирования кодированных глубин посредством выполнения кодирования на основе единиц кодирования согласно глубинам, причем единицы кодирования согласно глубинам получаются посредством иерархического разбиения максимальной единицы кодирования по мере того, как глубина увеличивается, и глубины являются пропорциональными числу раз, на которое разбивается максимальная единица кодирования; и вывод информации относительно размера максимальной единицы кодирования и для максимальной единицы кодирования информации, указывающей порядок информации разбиения и информации режима пропуска, который избирательно определяется для единиц кодирования согласно глубинам, информации относительно режимов кодирования для единиц кодирования кодированных глубин, включающей в себя информацию разбиения и информацию режима пропуска, которые размещаются согласно порядку, и кодированным видеоданным.
Преимущества изобретения
[005] Единицы кодирования, имеющие древовидную структуру, формируются посредством определения единиц кодирования, имеющих оптимальную форму и оптимальный размер для каждой максимальной единицы кодирования, на основе размера максимальной единицы кодирования и максимальной глубины, определенной с учетом характеристик текущего изображения. Кроме того, поскольку кодирование может выполняться для каждой максимальной единицы кодирования посредством использования любого из различных режимов прогнозирования и преобразований, оптимальный режим кодирования может быть определен с учетом характеристик единицы кодирования различных размеров изображения.
[006] Порядок информации режима пропуска и информации разбиения определяется с учетом единицы данных, режима кодирования и т.п. Кроме того, порядок информации режима пропуска и информации разбиения может быть определен с учетом общего числа битов информации режима пропуска и информации разбиения и частоты возникновения режима пропуска при кодировании и декодировании видеоданных. Поскольку может задаваться порядок информации режима пропуска и информации разбиения единиц кодирования согласно глубинам, может быть дополнительно повышена эффективность передачи кодированных данных.
Краткое описание чертежей
[007] Фиг.1 является блок-схемой устройства для кодирования видео, согласно примерному варианту осуществления.
[008] Фиг.2 является блок-схемой устройства для декодирования видео, согласно примерному варианту осуществления.
[009] Фиг.3 является схемой для описания принципа единиц кодирования согласно примерному варианту осуществления.
[0010] Фиг.4 является блок-схемой кодера изображений на основе единиц кодирования согласно примерному варианту осуществления.
[0011] Фиг.5 является блок-схемой декодера изображений на основе единицы кодирования согласно примерному варианту осуществления.
[0012] Фиг.6 является схемой, иллюстрирующей более глубокие единицы кодирования согласно глубинам и единице прогнозирования согласно примерному варианту осуществления.
[0013] Фиг.7 является схемой для описания взаимосвязи между единицей кодирования и единицами преобразования, согласно примерному варианту осуществления.
[0014] Фиг.8 является схемой для описания информации кодирования единиц кодирования, соответствующих кодированной глубине, согласно примерному варианту осуществления.
[0015] Фиг.9 является схемой более глубоких единиц кодирования согласно глубинам, согласно примерному варианту осуществления.
[0016] Фиг.10-12 являются схемами для описания взаимосвязи между единицами кодирования, единицами прогнозирования и единицами преобразования, согласно примерному варианту осуществления.
[0017] Фиг.13 является схемой для описания взаимосвязи между единицей кодирования, единицей прогнозирования или сегментом и единицей преобразования, согласно информации режима кодирования по таблице 1.
[0018] Фиг.14 является блок-схемой последовательности операций, иллюстрирующей способ кодирования видео согласно примерному варианту осуществления.
[0019] Фиг.15 является блок-схемой последовательности операций, иллюстрирующей способ декодирования видео согласно примерному варианту осуществления.
[0020] Фиг.16 является блок-схемой, иллюстрирующей устройство для кодирования видео с учетом порядка пропуска и разбиения, согласно примерному варианту осуществления.
[0021] Фиг.17 является блок-схемой, иллюстрирующей устройство для декодирования видео с учетом порядка пропуска и разбиения, согласно примерному варианту осуществления.
[0022] Фиг.18 иллюстрирует единицы кодирования согласно кодированным глубинам в максимальной единице кодирования, согласно примерному варианту осуществления.
[0023] Фиг.19-21 являются блок-схемами последовательности операций способа, иллюстрирующими способы кодирования и декодирования информации пропуска и информации разбиения, согласно различным примерным вариантам осуществления.
[0024] Фиг.22 является блок-схемой последовательности операций, иллюстрирующей способ кодирования видео с учетом порядка пропуска и разбиения, согласно примерному варианту осуществления.
[0025] Фиг.23 является блок-схемой последовательности операций, иллюстрирующей способ декодирования видео с учетом порядка пропуска и разбиения, согласно примерному варианту осуществления.
Оптимальный режим осуществления изобретения
[0026] Согласно аспекту примерного варианта осуществления, предусмотрен способ кодирования видео с учетом порядка пропуска и разбиения, причем способ включает в себя: разбиение изображения на максимальные единицы кодирования, включающие в себя единицы кодирования, являющиеся единицами данных, в которых кодируется изображение; для максимальной единицы кодирования определение единиц кодирования, имеющих древовидную структуру, включающих в себя единицы кодирования кодированных глубин, и определение режимов кодирования для единиц кодирования кодированных глубин посредством выполнения кодирования на основе единиц кодирования согласно глубинам, причем единицы кодирования согласно глубинам получаются посредством иерархического разбиения максимальной единицы кодирования по мере того, как глубина увеличивается, и глубины являются пропорциональными числу раз, на которое разбивается максимальная единица кодирования; и вывод информации относительно размера максимальной единицы кодирования и для максимальной единицы кодирования информации, указывающей порядок информации разбиения и информации режима пропуска, который избирательно определяется для единиц кодирования согласно глубинам, информации относительно режимов кодирования для единиц кодирования кодированных глубин, включающей в себя информацию разбиения и информацию режима пропуска, которые размещаются согласно порядку, и кодированным видеоданным.
[0027] Единица кодирования может отличаться посредством максимального размера и глубины. Глубина обозначает число раз, на которое единица кодирования иерархически разбивается, и по мере того, как глубина увеличивается, более глубокие единицы кодирования согласно глубинам могут разбиваться от максимальной единицы кодирования до минимальной единицы кодирования. Глубина максимальной единицы кодирования может быть самой верхней глубиной, а глубина минимальной единицы кодирования может быть самой нижней глубиной. Поскольку размеры единиц кодирования согласно глубинам снижаются по мере того, как глубина максимальной единицы кодирования увеличивается, единица кодирования верхней глубины может включать в себя множество единиц кодирования нижних глубин.
[0028] Согласно максимальному размеру единицы кодирования, данные изображений текущего изображения могут разбиваться на максимальные единицы кодирования, и каждая из максимальных единиц кодирования может включать в себя единицы кодирования, разбиваемые согласно глубинам. Поскольку максимальная единица кодирования разбивается согласно глубинам, данные изображений пространственной области, включенные в максимальную единицу кодирования, могут быть иерархически классифицированы согласно глубинам.
[0029] Может быть предварительно определена максимальная глубина и максимальный размер единицы кодирования, которые ограничивают общее число раз, сколько высота и ширина максимальной единицы кодирования иерархически разбиваются.
[0030] Порядок информации разбиения и информации режима пропуска, который избирательно определяется для единиц кодирования согласно глубинам, может быть определен посредством, по меньшей мере, одного из последовательности изображений, которой принадлежат единицы кодирования согласно глубинам, серии последовательных макроблоков, типа серии последовательных макроблоков согласно направлению прогнозирования и параметра квантования единицы данных.
[0031] Порядок информации разбиения и информации режима пропуска, который избирательно определяется для единиц кодирования согласно глубинам, может быть определен посредством глубин единиц кодирования в максимальной единице кодирования.
[0032] Порядок информации разбиения и информации режима пропуска единиц кодирования согласно глубинам может быть определен таким образом, что если единица кодирования является максимальной единицей кодирования, информация режима пропуска предшествует информации разбиения, а если единица кодирования не является максимальной единицей кодирования, информация разбиения предшествует информации режима пропуска.
[0033] Согласно аспекту другого примерного варианта осуществления, предусмотрен способ декодирования видео с учетом порядка пропуска и разбиения, причем способ включает в себя: прием и синтаксический анализ потока битов кодированных видеоданных; извлечение, из потока битов, информации относительно максимального размера единицы кодирования, являющейся единицей данных, в которой декодируется изображение, информации относительно порядка информации разбиения и информации режима пропуска относительно единиц кодирования согласно глубинам и, согласно порядку информации разбиения и информации режима пропуска, информации относительно кодированной глубины и режима кодирования и кодированных видеоданных согласно максимальной единице кодирования изображения; и на основе извлеченной информации относительно максимального размера единицы кодирования и информации относительно кодированной глубины и режима кодирования, декодирование кодированных видеоданных изображения согласно единицам кодирования, имеющим древовидную структуру, включающим в себя единицы кодирования кодированных глубин.
[0034] Извлечение может включать в себя: если единица кодирования является максимальной единицей кодирования, согласно порядку информации разбиения и информации режима пропуска, определение того, прогнозируется или нет максимальная единица кодирования в режиме пропуска согласно информации режима пропуска, до определения того, разбивается или нет максимальная единица кодирования, согласно информации разбиения; если единица кодирования не является максимальной единицей кодирования, определение того, разбивается или нет единица кодирования согласно информации разбиения, до определения того, прогнозируется или нет единица кодирования в режиме пропуска согласно информации режима пропуска; и извлечение информации относительно кодированной глубины и режима кодирования кодированной глубины и кодированных видеоданных согласно единицам кодирования кодированной глубины.
[0035] При извлечении, если извлекается один фрагмент информации разбиения и пропуска, полученной посредством комбинирования информации разбиения и информации режима пропуска для единицы кодирования согласно глубинам единицы кодирования согласно глубинам могут прогнозироваться в режиме пропуска без разбиения, а если извлекается информация разбиения или информация режима пропуска для единиц кодирования согласно глубинам, единицы кодирования согласно глубинам могут не разбиваться или могут не прогнозироваться в режиме пропуска.
[0036] Согласно аспекту другого примерного варианта осуществления, предусмотрено устройство для кодирования видео с учетом порядка пропуска и разбиения, причем это устройство включает в себя: модуль разделения на максимальные единицы кодирования, который разбивает изображение на максимальные единицы кодирования, включающие в себя единицы кодирования, являющиеся единицами данных, в которых кодируется изображение; модуль определения единиц кодирования и режимов кодирования, который для максимальной единицы кодирования определяет единицы кодирования, имеющие древовидную структуру, включающие в себя единицы кодирования кодированных глубин, и определяет режимы кодирования для единиц кодирования кодированных глубин посредством выполнения кодирования на основе единиц кодирования согласно глубинам, причем единицы кодирования согласно глубинам получаются посредством иерархического разбиения максимальной единицы кодирования по мере того, как глубина увеличивается; и модуль вывода, который выводит информацию относительно размера максимальной единицы кодирования и для максимальной единицы кодирования информацию, указывающую порядок информации разбиения и информации режима пропуска, который избирательно определяется для единиц кодирования согласно глубинам, информацию относительно режимов кодирования единиц кодирования кодированных глубин, включающую в себя информацию разбиения и информацию режима пропуска, которые размещаются согласно порядку, и кодированные видеоданные.
[0037] Согласно аспекту другого примерного варианта осуществления, предусмотрено устройство для декодирования видео с учетом порядка пропуска и разбиения, причем это устройство включает в себя: приемное устройство, которое принимает и синтаксически анализирует поток битов кодированных видеоданных; модуль извлечения данных, который извлекает, из потока битов, информацию относительно максимального размера единицы кодирования, являющейся единицей данных, в которой декодируется изображение, информацию относительно порядка информации разбиения и информации режима пропуска единиц кодирования согласно глубинам и, согласно порядку информации разбиения и информации режима пропуска, информацию относительно кодированной глубины и режима кодирования согласно максимальной единице кодирования изображения; и декодер, который, на основе информации относительно максимального размера единицы кодирования и информации относительно кодированной глубины и режима кодирования, декодирует кодированные видеоданные изображения согласно единицам кодирования, имеющим древовидную структуру, включающим в себя единицы кодирования кодированных глубин.
[0038] Согласно аспекту другого примерного варианта осуществления, предусмотрен компьютерно-читаемый носитель записи, имеющий реализованную программу для осуществления способа кодирования. Кроме того, согласно аспекту другого примерного варианта осуществления, предусмотрен машиночитаемый носитель записи, имеющий реализованную программу для осуществления способа декодирования.
Оптимальный режим осуществления изобретения
[0039] Устройство для кодирования видео, устройство для декодирования видео, способ кодирования видео и способ декодирования видео согласно примерным вариантам осуществления поясняются со ссылкой на фиг.1-23. Кодирование и декодирование видео на основе пространственно иерархической единицы данных согласно одному или более примерных вариантов осуществления поясняется со ссылкой на фиг.1-15, и кодирование и декодирование видео с учетом порядка пропуска и разбиения согласно одному или более примерных вариантов осуществления поясняется со ссылкой на фиг.16-23.
[0040] Далее подробнее описываются примерные варианты осуществления со ссылкой на прилагаемые чертежи.
[0041] В дальнейшем в этом документе "единица кодирования" является единицей данных для кодирования, в которой данные изображений кодируются на стороне кодера, например в устройстве кодирования, включающем в себя процессор и кодер, и единицей кодированных данных, в которой кодированные данные изображений декодируются на стороне декодера, например в устройстве декодирования, включающем в себя процессор и декодер, согласно примерным вариантам осуществления.
[0042] В дальнейшем в этом документе "изображение" может обозначать неподвижное изображение для видео или движущееся изображение, т.е. само видео.
[0043] Устройство для кодирования видео, устройство для декодирования видео, способ кодирования видео и способ декодирования видео согласно примерным вариантам осуществления поясняются со ссылкой на фиг.1-15.
[0044] Фиг.1 является блок-схемой устройства 100 для кодирования видео, согласно примерному варианту осуществления;
[0045] Устройство 100 включает в себя модуль 110 разделения на максимальные единицы кодирования, модуль 120 определения единиц кодирования и модуль 130 вывода.
[0046] Модуль 110 разделения на максимальные единицы кодирования может разбивать текущее изображение на основе максимальной единицы кодирования для текущей картины изображения. Если текущее изображение превышает максимальную единицу кодирования, данные изображений текущего изображения могут разбиваться, по меньшей мере, на одну максимальную единицу кодирования. Максимальная единица кодирования согласно примерному варианту осуществления может быть единицей данных, имеющей размер 32×32, 64×64, 128×128, 256×256 и т.д., при этом форма единицы данных является квадратом, имеющим ширину и длину в квадратах 2. Данные изображений могут выводиться в модуль 120 определения единиц кодирования согласно, по меньшей мере, одной максимальной единице кодирования.
[0047] Единица кодирования согласно примерному варианту осуществления может отличаться посредством максимального размера и глубины. Глубина обозначает число раз, на которое единица кодирования пространственно разбивается от максимальной единицы кодирования, и по мере того, как глубина увеличивается или возрастает, более глубокие единицы кодирования согласно глубинам могут разбиваться от максимальной единицы кодирования до минимальной единицы кодирования. Глубина максимальной единицы кодирования является самой верхней глубиной, а глубина минимальной единицы кодирования является самой нижней глубиной. Поскольку размер единицы кодирования, соответствующей каждой глубине, снижается по мере того, как глубина максимальной единицы кодирования увеличивается, единица кодирования, соответствующая верхней глубине, может включать в себя множество единиц кодирования, соответствующих нижним глубинам.
[0048] Как описано выше, данные изображений текущего изображения разбиваются на максимальные единицы кодирования согласно максимальному размеру единицы кодирования, и каждая из максимальных единиц кодирования может включать в себя более глубокие единицы кодирования, которые разбиваются согласно глубинам. Поскольку максимальная единица кодирования согласно примерному варианту осуществления разбивается согласно глубинам, данные изображений пространственной области, включенные в максимальную единицу кодирования, могут быть иерархически классифицированы согласно глубинам.
[0049] Может быть предварительно определена максимальная глубина и максимальный размер единицы кодирования, которые ограничивают общее число раз, сколько высота и ширина максимальной единицы кодирования иерархически разбиваются.
[0050] Модуль 120 определения единиц кодирования кодирует, по меньшей мере, одну разделенную область, полученную посредством разбиения области максимальной единицы кодирования согласно глубинам, и определяет глубину, чтобы в завершение выводить кодированные данные изображений согласно, по меньшей мере, одной разделенной области. Другими словами, модуль 120 определения единиц кодирования определяет кодированную глубину посредством кодирования данных изображений в более глубоких единицах кодирования согласно глубинам, согласно максимальной единице кодирования текущего изображения и выбора глубины, имеющей наименьшую ошибку кодирования. Таким образом, кодированные данные изображений единицы кодирования, соответствующей определенной кодированной глубине, в завершение выводятся. Кроме того, единицы кодирования, соответствующие кодированной глубине, могут рассматриваться в качестве кодированных единиц кодирования.
[0051] Определенная кодированная глубина и кодированные данные изображений согласно определенной кодированной глубине выводятся в модуль 130 вывода.
[0052] Данные изображений в максимальной единице кодирования кодируются на основе более глубоких единиц кодирования, соответствующих, по меньшей мере, одной глубине, равной или ниже максимальной глубины, и результаты кодирования данных изображений сравниваются на основе каждой из более глубоких единиц кодирования. Глубина, имеющая наименьшую ошибку кодирования, может быть выбрана после сравнения ошибок кодирования более глубоких единиц кодирования. По меньшей мере, одна кодированная глубина может быть выбрана для каждой максимальной единицы кодирования.
[0053] Размер максимальной единицы кодирования разбивается по мере того, как единица кодирования иерархически разбивается согласно глубинам, и по мере того, как число единиц кодирования увеличивается. Кроме того, даже если единицы кодирования соответствуют идентичной глубине в одной максимальной единице кодирования, каждая из единиц кодирования, соответствующих идентичной глубине, может разбиваться до нижней глубины посредством измерения ошибки кодирования данных изображений каждой единицы кодирования отдельно. Соответственно даже когда данные изображений включаются в одну максимальную единицу кодирования, данные изображений разбиваются на области согласно глубинам, ошибки кодирования могут отличаться согласно областям в одной максимальной единице кодирования, и тем самым кодированные глубины могут отличаться согласно областям в данных изображений. Таким образом, одна или более кодированных глубин могут быть определены в одной максимальной единице кодирования, и данные изображений максимальной единицы кодирования могут быть разделены согласно единицам кодирования, по меньшей мере, одной кодированной глубины.
[0054] Соответственно модуль 120 определения единиц кодирования может определять единицы кодирования, имеющие в себя древовидную структуру, включенные в максимальную единицу кодирования. "Единицы кодирования, имеющие древовидную структуру" согласно примерному варианту осуществления включают в себя единицы кодирования, соответствующие глубине, определенной как кодированная глубина, из всех более глубоких единиц кодирования, включенных в максимальную единицу кодирования. Единица кодирования кодированной глубины может быть иерархически определена согласно глубинам в идентичной области максимальной единицы кодирования и может быть независимо определена в различных областях. Аналогично кодированная глубина в текущей области может быть независимо определена из кодированной глубины в другой области.
[0055] Максимальная глубина согласно примерному варианту осуществления является индексом, связанным с числом разбиений от максимальной единицы кодирования до минимальной единицы кодирования. Первая максимальная глубина согласно примерному варианту осуществления может обозначать общее число разбиений от максимальной единицы кодирования до минимальной единицы кодирования. Вторая максимальная глубина согласно примерному варианту осуществления может обозначать общее число уровней глубины от максимальной единицы кодирования до минимальной единицы кодирования. Например, когда глубина максимальной единицы кодирования равна 0, глубина единицы кодирования, на которую максимальная единица кодирования разбивается один раз, может задаваться равной 1, а глубина единицы кодирования, на которую максимальная единица кодирования разбивается два раза, может задаваться равной 2. Здесь, если минимальная единица кодирования является единицей кодирования, на которую максимальная единица кодирования разбивается четыре раза, имеется 5 уровней глубины глубин 0, 1, 2, 3 и 4, и тем самым первая максимальная глубина может задаваться равной 4, а вторая максимальная глубина может задаваться равной 5.
[0056] Прогнозирующее кодирование и преобразование может выполняться согласно максимальной единице кодирования. Прогнозирующее кодирование и преобразование также выполняются на основе более глубоких единиц кодирования согласно глубине, равной, или глубинам, меньшим максимальной глубины, согласно максимальной единице кодирования. Преобразование может выполняться согласно способу ортогонального преобразования или целочисленного преобразования.
[0057] Поскольку число более глубоких единиц кодирования увеличивается каждый раз, когда максимальная единица кодирования разбивается согласно глубинам, кодирование, включающее в себя прогнозирующее кодирование и преобразование, выполняется для всех более глубоких единиц кодирования, формируемых по мере того, как глубина увеличивается. Для удобства описания прогнозирующее кодирование и преобразование далее описываются на основе единицы кодирования текущей глубины в максимальной единице кодирования.
[0058] Устройство 100 может переменно выбирать размер или форму единицы данных для кодирования данных изображений. Чтобы кодировать данные изображений, выполняются такие операции, как прогнозирующее кодирование, преобразование и энтропийное кодирование, и в это время идентичная единица данных может использоваться для всех операций, или различные единицы данных могут использоваться для каждой операции.
[0059] Например, устройство 100 может выбирать не только единицу кодирования для кодирования данных изображений, но также и единицу данных, отличающуюся от единицы кодирования, с тем чтобы выполнять прогнозирующее кодирование для данных изображений в единице кодирования.
[0060] Чтобы выполнять прогнозирующее кодирование в максимальной единице кодирования, прогнозирующее кодирование может выполняться на основе единицы кодирования, соответствующей кодированной глубине, т.е. на основе единицы кодирования, которая больше не разбивается на единицы кодирования, соответствующие нижней глубине. В дальнейшем в этом документе единица кодирования, которая больше не разбивается и становится базисной единицей для прогнозирующего кодирования, далее упоминается как "единица прогнозирования". Сегмент, полученный посредством разбиения единицы прогнозирования, может включать в себя единицу данных, полученную посредством разбиения, по меньшей мере, одной из высоты и ширины единицы прогнозирования.
[0061] Например, когда единица кодирования в 2N×2N (где N является положительным целым числом) больше не разбивается и становится единицей прогнозирования в 2N×2N, размер сегмента может составлять 2N×2N, 2N×N, N×2N или N×N. Примеры типа сегмента включают в себя симметричные сегменты, которые получаются посредством симметричного разбиения высоты или ширины единицы прогнозирования, сегменты, полученные посредством асимметричного разбиения высоты или ширины единицы прогнозирования, к примеру, 1:n или n:1, сегменты, которые получаются посредством геометрического разбиения единицы прогнозирования, и сегменты, имеющие произвольные формы.
[0062] Режим прогнозирования единицы прогнозирования может быть, по меньшей мере, одним из внутреннего режима, взаимного режима и режима пропуска. Например, внутренний режим или взаимный режим могут выполняться для сегмента в 2N×2N, 2N×N, N×2N или N×N. Кроме того, режим пропуска может выполняться только для сегмента в 2N×2N. Кодирование независимо выполняется для одной единицы прогнозирования в единице кодирования, тем самым выбирая режим прогнозирования, имеющий наименьшую ошибку кодирования.
[0063] Устройство 100 также может выполнять преобразование для данных изображений в единице кодирования на основе не только для единицы кодирования для кодирования данных изображений, но также и на основе единицы данных, которая отличается от единицы кодирования.
[0064] Чтобы выполнять преобразование в единице кодирования, преобразование может выполняться на основе единицы данных, имеющей размер, меньший или равный единице кодирования. Например, единица данных для преобразования может включать в себя единицу данных для внутреннего режима и единицу данных для взаимного режима.
1
2
[0065] Единица данных, используемая в качестве базиса преобразования, далее упоминается как "единица преобразования". Глубина преобразования, указывающая число разбиений, чтобы достигать единицы преобразования посредством разбиения высоты и ширины единицы кодирования, также может задаваться в единице преобразования. Например, в текущей единице кодирования в 2N×2N глубина преобразования может составлять 0, когда размер единицы преобразования также составляет 2N×2N, может составлять 1, когда каждая из высоты и ширины текущей единицы кодирования разбивается на две равные части, полностью разбивается на 4 единицу преобразования, и размер единицы преобразования тем самым составляет N×N, и может составлять 2, когда каждая из высоты и ширины текущей единицы кодирования разбивается на четыре равные части, полностью разбивается на 4 единицы преобразования, и размер единицы преобразования тем самым составляет N/2×N/2. Например, единица преобразования может задаваться согласно иерархической древовидной структуре, в которой единица преобразования верхней глубины преобразования разбивается на четыре единицы преобразования с более низкой глубиной преобразования согласно иерархическим характеристикам глубины преобразования.
[0066] Аналогично единице кодирования единица преобразования в единице кодирования может рекурсивно разбиваться на области меньших размеров, так что единица преобразования может быть определена независимо в единицах областей. Таким образом, остаточные данные в единице кодирования могут быть разделены согласно преобразованию, имеющему древовидную структуру согласно глубинам преобразования.
[0067] Информация кодирования согласно единицам кодирования, соответствующим кодированной глубине, требует не только информацию относительно кодированной глубины, но также и информацию, связанную с прогнозирующим кодированием и преобразованием. Соответственно модуль 120 определения единиц кодирования не только определяет кодированную глубину, имеющую наименьшую ошибку кодирования, но также и определяет тип сегмента в единице прогнозирования, режим прогнозирования согласно единицам прогнозирования и размер единицы преобразования для преобразования.
[0068] Ниже подробно описываются единицы кодирования согласно древовидной структуре в максимальной единице кодирования и способ определения сегмента согласно примерным вариантам осуществления со ссылкой на фиг.3-12.
[0069] Модуль 120 определения единиц кодирования может измерять ошибку кодирования более глубоких единиц кодирования согласно глубинам посредством использования оптимизации искажения в зависимости от скорости передачи на основе множителей Лагранжа.
[0070] Модуль 130 вывода выводит данные изображений максимальной единицы кодирования, которая кодируется на основе, по меньшей мере, одной кодированной глубины, определенной посредством модуля 120 определения единиц кодирования, и информации относительно режима кодирования согласно кодированной глубине в потоках битов.
[0071] Кодированные данные изображений могут быть получены посредством кодирования остаточных данных изображения.
[0072] Информация относительно режима кодирования согласно кодированной глубине может включать в себя информацию относительно кодированной глубины, относительно типа сегмента в единице прогнозирования, режима прогнозирования и размера единицы преобразования.
[0073] Информация относительно кодированной глубины может быть задана посредством использования информации разбиения согласно глубинам, которая указывает, выполняется или нет кодирование для единиц кодирования нижней глубины вместо текущей глубины. Если текущая глубина текущей единицы кодирования является кодированной глубиной, данные изображений в текущей единице кодирования кодируются и выводятся, и тем самым информация разбиения может быть задана так, чтобы не разбивать текущую единицу кодирования до нижней глубины. Альтернативно если текущая глубина текущей единицы кодирования не является кодированной глубиной, кодирование выполняется для единицы кодирования нижней глубины, и тем самым информация разбиения может быть задана так, чтобы разбивать текущую единицу кодирования, чтобы получать единицы кодирования нижней глубины.
[0074] Если текущая глубина не является кодированной глубиной, кодирование выполняется для единицы кодирования, которая разбивается на единицу кодирования нижней глубины. Поскольку, по меньшей мере, одна единица кодирования нижней глубины существует в одной единице кодирования текущей глубины, кодирование многократно выполняется для каждой единицы кодирования нижней глубины, и тем самым кодирование может быть рекурсивно выполнено для единиц кодирования, имеющих идентичную глубину.
[0075] Поскольку единицы кодирования, имеющие древовидную структуру, определяются для одной максимальной единицы кодирования, и информация, по меньшей мере, относительно одного режима кодирования определяется для единицы кодирования кодированной глубины, информация, по меньшей мере, относительно одного режима кодирования может быть определена для одной максимальной единицы кодирования. Кроме того, кодированная глубина данных изображений максимальной единицы кодирования может отличаться согласно местоположениям, поскольку данные изображений иерархически разбиваются согласно глубинам, и тем самым информация относительно кодированной глубины и режима кодирования может задаваться для данных изображений.
[0076] Соответственно модуль 130 вывода может назначать информацию кодирования относительно соответствующей кодированной глубины и режима кодирования, по меньшей мере, одной из единицы кодирования, единицы прогнозирования и минимальной единицы, включенной в максимальную единицу кодирования.
[0077] Минимальная единица согласно примерному варианту осуществления является прямоугольной единицей данных, полученной посредством разбиения минимальной единицы кодирования, составляющей самую нижнюю глубину, на 4. Альтернативно минимальная единица может быть максимальной прямоугольной единицей данных, которая может быть включена во все из единиц кодирования, единиц прогнозирования, единиц сегментирования и единиц преобразования, включенных в максимальную единицу кодирования.
[0078] Например, вывод информации кодирования через модуль 130 вывода может классифицироваться на информацию кодирования согласно единицам кодирования и информацию кодирования согласно единицам прогнозирования. Информация кодирования согласно единицам кодирования может включать в себя информацию относительно режима прогнозирования и относительно размера сегментов. Информация кодирования согласно единицам прогнозирования может включать в себя информацию относительно оцененного направления взаимного режима, относительно индекса опорного изображения взаимного режима, относительно вектора движения, относительно компонента сигнала цветности внутреннего режима и относительно способа интерполяции внутреннего режима. Кроме того, информация относительно максимального размера единицы кодирования, заданного согласно изображениям, сериям последовательных макроблоков или GOP, и информация относительно максимальной глубины могут быть вставлены в SPS (набор параметров последовательности) или заголовок потока битов.
[0079] В устройстве 100 более глубокая единица кодирования может быть единицей кодирования, полученной посредством деления высоты или ширины единицы кодирования верхней глубины на два. Другими словами, когда размер единицы кодирования текущей глубины равен 2N×2N, размер единицы кодирования нижней глубины равен N×N. Кроме того, единица кодирования текущей глубины, имеющей размер 2N×2N, может включать в себя максимум 4 единицы кодирования нижней глубины.
[0080] Соответственно устройство 100 может формировать единицы кодирования, имеющие древовидную структуру, посредством определения единиц кодирования, имеющих оптимальную форму и оптимальный размер для каждой максимальной единицы кодирования, на основе размера максимальной единицы кодирования и максимальной глубины, определенной с учетом характеристик текущего изображения. Кроме того, поскольку кодирование может выполняться для каждой максимальной единицы кодирования посредством использования любого из различных режимов прогнозирования и преобразований, оптимальный режим кодирования может быть определен с учетом характеристик единицы кодирования различных размеров изображения.
[0081] Таким образом, если изображение, имеющее высокое разрешение или большой объем данных, кодируется в традиционном макроблоке, число макроблоков в расчете на изображение чрезмерно увеличивается. Соответственно увеличивается число фрагментов сжатой информации, формируемой для каждого макроблока, и тем самым трудно передавать сжатую информацию, и эффективность сжатия данных снижается. Тем не менее, посредством использования устройства 100 эффективность сжатия изображений может быть повышена, поскольку единица кодирования регулируется с учетом характеристик изображения при увеличении максимального размера единицы кодирования с учетом размера изображения.
[0082] Фиг.2 является блок-схемой устройства для декодирования видео 200 согласно примерному варианту осуществления.
[0083] Устройство 200 включает в себя приемное устройство 210, модуль 220 извлечения данных изображений и информации кодирования и декодер 230 данных изображений. Определения различных терминов, таких как единица кодирования, глубина, единица прогнозирования, единица преобразования и информация относительно различных режимов кодирования для различных операций устройства 200 являются идентичными определениям, описанным со ссылкой на фиг.1 и устройство 100.
[0084] Приемное устройство 210 принимает и синтаксически анализирует поток битов кодированного видео. Модуль 220 извлечения данных изображений и информации кодирования извлекает кодированные данные изображений для каждой единицы кодирования из синтаксически проанализированного потока битов, при этом единицы кодирования имеют древовидную структуру согласно каждой максимальной единице кодирования, и выводит извлеченные данные изображений в декодер 230 данных изображений. Модуль 220 извлечения данных изображений и информации кодирования может извлекать информацию относительно максимального размера единицы кодирования текущего изображения из заголовка относительно текущего изображения или SPS.
[0085] Кроме того, модуль 220 извлечения данных изображений и информации кодирования извлекает информацию относительно кодированной глубины и режима кодирования для единиц кодирования, имеющих древовидную структуру, согласно каждой максимальной единице кодирования из синтаксически проанализированного потока битов. Извлеченная информация относительно кодированной глубины и режима кодирования выводится в декодер 230 данных изображений. Другими словами, данные изображений в потоке битов разбиваются на максимальные единицы кодирования так, что декодер 230 данных изображений декодирует данные изображений для каждой максимальной единицы кодирования.
[0086] Информация относительно кодированной глубины и режима кодирования согласно максимальной единице кодирования может задаваться для информации относительно, по меньшей мере, одной единицы кодирования, соответствующей кодированной глубине, и информация относительно режима кодирования может включать в себя информацию относительно типа сегмента соответствующей единицы кодирования, соответствующей кодированной глубине, относительно режима прогнозирования и размера единицы преобразования. Кроме того, разбиение информации согласно глубинам может быть извлечено в качестве информации относительно кодированной глубины.
[0087] Информация относительно кодированной глубины и режима кодирования согласно каждой максимальной единице кодирования, извлеченной посредством модуля 220 извлечения данных изображений и информации кодирования, является информацией относительно определенной кодированной глубины и режима кодирования, чтобы формировать минимальную ошибку кодирования, когда кодер, такой как устройство 100, многократно выполняет кодирование для каждой более глубокой единицы кодирования согласно глубинам согласно каждой максимальной единице кодирования. Соответственно устройство 200 может восстанавливать изображение посредством декодирования данных изображений согласно кодированной глубине и режиму кодирования, который формирует минимальную ошибку кодирования.
[0088] Поскольку информация кодирования относительно кодированной глубины и режима кодирования может назначаться предварительно определенной единице данных из соответствующей единицы кодирования, единицы прогнозирования и минимальной единицы, модуль 220 извлечения данных изображений и информации кодирования может извлекать информацию относительно кодированной глубины и режима кодирования согласно предварительно определенным единицам данных. Предварительно определенные единицы данных, которым назначается идентичная информация относительно кодированной глубины и режима кодирования, могут логически выводиться как единицы данных, включенные в идентичную максимальную единицу кодирования.
[0089] Декодер 230 данных изображений восстанавливает текущее изображение посредством декодирования данных изображений в каждой максимальной единице кодирования на основе информации относительно кодированной глубины и режима кодирования согласно максимальным единицам кодирования. Другими словами, декодер 230 данных изображений может декодировать кодированные данные изображений на основе извлеченной информации относительно типа сегмента, режима прогнозирования и единицы преобразования для каждой единицы кодирования из единиц кодирования, имеющих древовидную структуру, включенных в каждую максимальную единицу кодирования. Процесс декодирования может включать в себя процесс прогнозирования, включающий в себя процесс внутреннего прогнозирования и компенсации движения и обратного преобразования. Обратное преобразование может выполняться согласно способу обратного ортогонального преобразования или обратного целочисленного преобразования.
[0090] Декодер 230 данных изображений может выполнять внутреннее прогнозирование или компенсацию движения согласно сегменту и режиму прогнозирования каждой единицы кодирования на основе информации относительно типа сегмента и режима прогнозирования единицы прогнозирования единицы кодирования согласно кодированным глубинам.
[0091] Кроме того, декодер 230 данных изображений может выполнять обратное преобразование согласно каждой единице преобразования в единице кодирования на основе информации относительно размера единицы преобразования единицы кодирования согласно кодированным глубинам, с тем чтобы выполнять обратное преобразование согласно максимальным единицам кодирования.
[0092] Декодер 230 данных изображений может определять, по меньшей мере, одну кодированную глубину текущей максимальной единицы кодирования посредством использования информации разбиения согласно глубинам. Если информация разбиения указывает, что данные изображений больше не разбиваются при текущей глубине, текущая глубина является кодированной глубиной. Соответственно декодер 230 данных изображений может декодировать кодированные данные, по меньшей мере, одной единицы кодирования, соответствующей каждой кодированной глубине в текущей максимальной единице кодирования, посредством использования информации относительно типа сегмента единицы прогнозирования, режима прогнозирования и размера единицы преобразования для каждой единицы кодирования, соответствующей кодированной глубине, и выводить данные изображений текущей максимальной единицы кодирования.
[0093] Другими словами, единицы данных, содержащие информацию кодирования, включающую в себя идентичную информацию разбиения, могут собираться посредством наблюдения набора информации кодирования, назначаемого для предварительно определенной единицы данных из единицы кодирования, единицы прогнозирования и минимальной единицы, и собранные единицы данных могут рассматриваться как одна единица данных, которая должна быть декодирована посредством декодера 230 данных изображений в одном режиме кодирования.
[0094] Устройство 200 может получать информацию относительно, по меньшей мере, одной единицы кодирования, которая формирует минимальную ошибку кодирования, когда кодирование рекурсивно выполняется для каждой максимальной единицы кодирования, и может использовать эту информацию для того, чтобы декодировать текущее изображение. Другими словами, могут быть декодированы единицы кодирования, имеющие древовидную структуру, определенные как оптимальные единицы кодирования в каждой максимальной единице кодирования. Кроме того, максимальный размер единицы кодирования определяется с учетом разрешения и объема данных изображений.
[0095] Соответственно даже если данные изображений имеют высокое разрешение и большой объем данных, данные изображений могут быть эффективно декодированы и восстановлены посредством использования размера единицы кодирования и режима кодирования, которые адаптивно определяются согласно характеристикам данных изображений, посредством использования информации относительно оптимального режима кодирования, принимаемой из кодера.
[0096] Далее описывается способ определения единиц кодирования, имеющих древовидную структуру, единицы прогнозирования и единицы преобразования, согласно примерному варианту осуществления со ссылкой на фиг.3-13.
[0097] Фиг.3 является схемой для описания принципа единиц кодирования согласно примерному варианту осуществления.
[0098] Размер единицы кодирования может выражаться как "ширина × высота" и может составлять 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.
[0099] В видеоданных 310 разрешение составляет 1920×1080, максимальный размер единицы кодирования равен 64, и максимальная глубина равна 2. В видеоданных 320 разрешение составляет 1920×1080, максимальный размер единицы кодирования равен 64, и максимальная глубина равна 3. В видеоданных 330 разрешение составляет 352×288, максимальный размер единицы кодирования равен 16, и максимальная глубина равна 1. Максимальная глубина, показанная на фиг.3, обозначает общее число разбиений от максимальной единицы кодирования до минимальной единицы декодирования.
[00100] Если разрешение является высоким, или объем данных является большим, максимальный размер единицы кодирования может быть большим, с тем чтобы не только повышать эффективность кодирования, но также и точно отражать характеристики изображения. Соответственно максимальный размер единицы кодирования видеоданных 310 и 320, имеющих более высокое разрешение, чем видеоданные 330, может составлять 64.
[00101] Поскольку максимальная глубина видеоданных 310 равна 2, единицы 315 кодирования видеоданных 310 могут включать в себя максимальную единицу кодирования, имеющую размер по продольной оси, равный 64, и единицы кодирования, имеющие размеры по продольной оси, равные 32 и 16, поскольку глубины увеличиваются на два уровня посредством разбиения максимальной единицы кодирования два раза. Между тем, поскольку максимальная глубина видеоданных 330 равна 1, единицы кодирования 335 видеоданных 330 могут включать в себя максимальную единицу кодирования, имеющую размер по продольной оси, равный 16, и единицы кодирования, имеющие размер по продольной оси, равный 8, поскольку глубины увеличиваются на один уровень посредством разбиения максимальной единицы кодирования один раз.
[00102] Поскольку максимальная глубина видеоданных 320 равна 3, единицы 325 кодирования видеоданных 320 могут включать в себя максимальную единицу кодирования, имеющую размер по продольной оси, равный 64, и единицы кодирования, имеющие размеры по продольной оси, равные 32, 16 и 8, поскольку глубины увеличиваются на 3 уровня посредством разбиения максимальной единицы кодирования три раза. По мере того как глубина увеличивается, подробная информация может быть точно выражена.
[00103] Фиг.4 является блок-схемой кодера 400 изображений на основе единиц кодирования согласно примерному варианту осуществления.
[00104] Кодер 400 изображений выполняет операции модуля 120 определения единиц кодирования устройства 100, чтобы кодировать данные изображений. Другими словами, модуль 410 внутреннего прогнозирования выполняет внутреннее прогнозирование для единиц кодирования во внутреннем режиме из текущего кадра 405, и модуль 420 оценки движения и модуль 425 компенсации движения выполняют взаимную оценку и компенсацию движения для единиц кодирования во взаимном режиме из текущего кадра 405 посредством использования текущего кадра 405 и опорного кадра 495.
[00105] Данные, выводимые из модуля 410 внутреннего прогнозирования, модуль 420 оценки движения и модуль 425 компенсации движения, выводятся в качестве квантованного коэффициента преобразования через преобразователь 430 и квантователь 440. Квантованный коэффициент преобразования восстанавливается в качестве данных в пространственной области через обратный квантователь 460 и обратный преобразователь 470, и восстановленные данные в пространственной области выводятся в качестве опорного кадра 495 после постобработки через модуль 480 удаления блочности и модуль 490 контурной фильтрации. Квантованный коэффициент преобразования может выводиться в качестве потока 455 битов через энтропийный кодер 450.
[00106] Для применения кодера 400 изображений в устройстве 100 все элементы кодера 400 изображений, т.е. модуль 410 внутреннего прогнозирования, модуль 420 оценки движения, модуль 425 компенсации движения, преобразователь 430, квантователь 440, энтропийный кодер 450, обратный квантователь 460, обратный преобразователь 470, модуль 480 удаления блочности и модуль 490 контурной фильтрации выполняют операции на основе каждой единицы кодирования из единиц кодирования, имеющих древовидную структуру, с учетом максимальной глубины каждой максимальной единицы кодирования.
[00107] В частности, модуль 410 внутреннего прогнозирования, модуль 420 оценки движения и модуль 425 компенсации движения определяет сегменты и режим прогнозирования каждой единицы кодирования из единиц кодирования, имеющих древовидную структуру, с учетом максимального размера и максимальной глубины текущей максимальной единицы кодирования, и преобразователь 430 определяет размер единицы преобразования в каждой единице кодирования из единиц кодирования, имеющих древовидную структуру.
[00108] Фиг.5 является блок-схемой декодера 500 изображений на основе единицы кодирования, согласно примерному варианту осуществления.
[00109] Синтаксический анализатор 510 синтаксически анализирует кодированные данные изображений, которые должны быть декодированы, и информацию относительно кодирования, требуемого для декодирования, из потока 505 битов. Кодированные данные изображений выводятся в качестве обратно квантованных данных через энтропийный декодер 520 и обратный квантователь 530, и обратно квантованные данные восстанавливаются в данные изображений в пространственной области через обратный преобразователь 540.
[00110] Модуль 550 внутреннего прогнозирования выполняет внутреннее прогнозирование для единиц кодирования во внутреннем режиме относительно данных изображений в пространственной области, и модуль 560 компенсации движения выполняет компенсацию движения для единиц кодирования во взаимном режиме посредством использования опорного кадра 585.
[00111] Данные изображений в пространственной области, которые пропущены через модуль 550 внутреннего прогнозирования и модуль 560 компенсации движения, могут выводиться в качестве восстановленного кадра 595 после постобработки через модуль 570 удаления блочности и модуль 580 контурной фильтрации. Кроме того, данные изображений, которые постобрабатываются через модуль 570 удаления блочности и модуль 580 контурной фильтрации, могут выводиться в качестве опорного кадра 585.
[00112] Чтобы декодировать данные изображений в декодере 230 данных изображений устройства 200, декодер 500 изображений может выполнять операции, которые выполняются после синтаксического анализатора 510.
[00113] Для применения декодера 500 изображений в устройстве 200 все элементы декодера 500 изображений, т.е. синтаксический анализатор 510, энтропийный декодер 520, обратный квантователь 530, обратный преобразователь 540, модуль 550 внутреннего прогнозирования, модуль 560 компенсации движения, модуль 570 удаления блочности и модуль 580 контурной фильтрации выполняют операции на основе единиц кодирования, имеющих древовидную структуру, для каждой максимальной единицы кодирования.
[00114] В частности, модуль 550 внутреннего прогнозирования и модуль 560 компенсации движения выполняют операции на основе сегментов и режима прогнозирования для каждой из единиц кодирования, имеющих древовидную структуру, а обратный преобразователь 540 выполняет операции на основе размера единицы преобразования для каждой единицы кодирования.
[00115] Фиг.6 является схемой, иллюстрирующей более глубокие единицы кодирования согласно глубинам и сегментам, согласно примерному варианту осуществления.
[00116] Устройство 100 и устройство 200 используют иерархические единицы кодирования с тем, чтобы учитывать характеристики изображения. Максимальная высота, максимальная ширина и максимальная глубина единиц кодирования могут быть адаптивно определены согласно характеристикам изображения или могут быть по-другому заданы пользователем. Размеры более глубоких единиц кодирования согласно глубинам могут быть определены согласно предварительно определенному максимальному размеру единицы кодирования.
[00117] В иерархической структуре 600 единиц кодирования, согласно примерному варианту осуществления, максимальная высота и максимальная ширина единиц кодирования равны 64, а максимальная глубина равна 4. Поскольку глубина увеличивается вдоль вертикальной оси иерархической структуры 600, высота и ширина более глубокой единицы кодирования разбиваются. Кроме того, единица прогнозирования и сегменты, которые являются базисами для прогнозирующего кодирования каждой более глубокой единицы кодирования, показаны вдоль горизонтальной оси иерархической структуры 600.
[00118] Другими словами, единица 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, является минимальной единицей кодирования.
[00119] Единица прогнозирования и сегменты единицы кодирования размещаются вдоль горизонтальной оси согласно каждой глубине. Другими словами, если единица 610 кодирования, имеющая размер 64×64 и глубину, равную 0, является единицей прогнозирования, единица прогнозирования может разбиваться на сегменты, включенные в единицу 610 кодирования, т.е. на сегмент 610, имеющий размер 64×64, сегменты 612, имеющие размер 64×32, сегменты 614, имеющие размер 32×64, или сегменты 616, имеющие размер 32×32.
[00120] Аналогично единица прогнозирования единицы 620 кодирования, имеющей размер 32×32 и глубину, равную 1, может разбиваться на сегменты, включенные в единицу 620 кодирования, т.е. на сегмент 620, имеющий размер 32×32, сегменты 622, имеющие размер 32×16, сегменты 624, имеющие размер 16×32, и сегменты 626, имеющие размер 16×16.
[00121] Аналогично единица прогнозирования единицы 630 кодирования, имеющей размер 16×16 и глубину, равную 2, может разбиваться на сегменты, включенные в единицу 630 кодирования, т.е. на сегмент, имеющий размер 16×16, включенный в единицу 630 кодирования, сегменты 632, имеющие размер 16×8, сегменты 634, имеющие размер 8×16, и сегменты 636, имеющие размер 8×8.
[00122] Аналогично единица прогнозирования единицы 640 кодирования, имеющей размер 8×8 и глубину, равную 3, может разбиваться на сегменты, включенные в единицу 640 кодирования, т.е. на сегмент, имеющий размер 8×8, включенный в единицу 640 кодирования, сегменты 642, имеющие размер 8×4, сегменты 644, имеющие размер 4×8, и сегменты 646, имеющие размер 4×4.
[00123] Единица 650 кодирования, имеющая размер 4×4 и глубину, равную 4, является минимальной единицей кодирования и единицей кодирования самой нижней глубины. Единица прогнозирования единицы 650 кодирования назначается только сегменту, имеющему размер 4×4, в отличие от сегментирования на сегменты 652, имеющие размер 4×2, сегменты 654, имеющие размер 2×4, и сегменты 656, имеющие размер 2×2.
[00124] Чтобы определять, по меньшей мере, одну кодированную глубину единиц кодирования, составляющих максимальную единицу 610 кодирования, модуль 120 определения единиц кодирования устройства 100 выполняет кодирование для единиц кодирования, соответствующих каждой глубине, включенной в максимальную единицу 610 кодирования.
[00125] Число более глубоких единиц кодирования согласно глубинам, включающим в себя данные в идентичном диапазоне и идентичного размера, увеличивается по мере того, как глубина увеличивается. Например, четыре единицы кодирования, соответствующие глубине 2, требуются, чтобы охватывать данные, которые включаются в одну единицу кодирования, соответствующую глубине 1. Соответственно чтобы сравнивать результаты кодирования идентичных данных согласно глубинам, единица кодирования, соответствующая глубине 1, и четыре единицы кодирования, соответствующие глубине 2, кодируются.
[00126] Чтобы выполнять кодирование для текущей глубины из глубин, наименьшая ошибка кодирования может быть выбрана для текущей глубины посредством выполнения кодирования для каждой единицы прогнозирования в единицах кодирования, соответствующих текущей глубине, вдоль горизонтальной оси иерархической структуры 600. Альтернативно минимальная ошибка кодирования может находиться посредством сравнения наименьших ошибок кодирования согласно глубинам, посредством выполнения кодирования для каждой глубины по мере того, как глубина увеличивается вдоль вертикальной оси иерархической структуры 600. Глубина и сегмент, имеющие минимальную ошибку кодирования в единице 610 кодирования, могут быть выбраны в качестве кодированной глубины и типа сегмента единицы 610 кодирования.
[00127] Фиг.7 является схемой для описания взаимосвязи между единицей 710 кодирования и единицами 720 преобразования, согласно примерному варианту осуществления.
[00128] Устройство 100 или 200 кодирует или декодирует изображение согласно единицам кодирования, имеющим размеры, меньшие или равные максимальной единице кодирования для каждой максимальной единицы кодирования. Размеры единиц преобразования для преобразования во время кодирования могут быть выбраны на основе единиц данных, которые не больше соответствующей единицы кодирования.
[00129] Например, в устройстве 100 или 200, если размер единицы 710 кодирования составляет 64×64, преобразование может выполняться посредством использования единиц 720 преобразования, имеющих размер 32×32.
[00130] Кроме того, данные единицы 710 кодирования, имеющей размер 64×64, могут быть кодированы посредством выполнения преобразования для каждой из единиц преобразования, имеющих размер 32×32, 16×16, 8×8 и 4×4, которые меньше 64×64, а затем может быть выбрана единица преобразования, имеющая наименьшую ошибку кодирования.
[00131] Фиг.8 является схемой для описания информации кодирования единиц кодирования, соответствующих кодированной глубине, согласно примерному варианту осуществления.
[00132] Модуль 130 вывода устройства 100 может кодировать и передавать информацию 800 относительно типа сегмента, информацию 810 относительно режима прогнозирования и информацию 820 относительно размера единицы преобразования для каждой единицы кодирования, соответствующей кодированной глубине, в качестве информации относительно режима кодирования.
[00133] Информация 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.
[00134] Информация 810 указывает режим прогнозирования каждого сегмента. Например, информация 810 может указывать режим прогнозирующего кодирования, выполненного для сегмента, указываемого посредством информации 800, т.е. внутренний режим 812, взаимный режим 814 или режим 816 пропуска.
[00135] Информация 820 указывает единицу преобразования, на которой следует базироваться, когда преобразование выполняется для текущей единицы кодирования. Например, единица преобразования может быть первой единицей 822 внутреннего преобразования, второй единицей 824 внутреннего преобразования, первой единицей взаимного преобразования 826 или второй единицей 828 взаимного преобразования.
[00136] Модуль 220 извлечения данных изображений и информации кодирования устройства 200 может извлекать и использовать информацию 800, 810 и 820 для декодирования.
[00137] Фиг.9 является схемой более глубоких единиц кодирования согласно глубинам, согласно примерному варианту осуществления.
[00138] Информация разбиения может быть использована для того, чтобы указывать изменение глубины. Информация разбиения указывает, разбивается или нет единица кодирования текущей глубины на единицы кодирования нижней глубины.
[00139] Единица 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 прогнозирования могут включать в себя асимметричные сегменты, сегменты, имеющие предварительно определенную форму, и сегменты, имеющие геометрическую форму.
[00140] Прогнозирующее кодирование многократно выполняется для одного сегмента, имеющего размер 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.
[00141] Ошибки кодирования, включающие в себя прогнозирующее кодирование, в типах 912-918 сегментов сравниваются, и определяется наименьшая ошибка кодирования для типов сегментов. Если ошибка кодирования является наименьшей в одном из типов 912-916 сегментов, единица 910 прогнозирования может не разбиваться на нижнюю глубину.
[00142] Если ошибка кодирования является наименьшей в типе 918 сегмента, глубина изменяется с 0 на 1, чтобы разбивать тип 918 сегмента, на этапе 920, и кодирование многократно выполняется для единиц 930 кодирования, имеющих глубину, равную 2, и размер N_0×N_0, чтобы выполнять поиск минимальной ошибки кодирования.
[00143] Единица 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.
[00144] Если ошибка кодирования является наименьшей в типе 948 сегмента, глубина изменяется от 1 до 2, чтобы разбивать тип 948 сегмента, на этапе 950, и кодирование многократно выполняется для единиц 960 кодирования, которые имеют глубину, равную 2, и размер N_2×N_2, чтобы выполнять поиск минимальной ошибки кодирования.
[00145] Когда максимальная глубина составляет 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).
[00146] Прогнозирующее кодирование может многократно выполняться для одного сегмента, имеющего размер 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 сегментов, чтобы выполнять поиск типа сегмента, имеющего минимальную ошибку кодирования.
[00147] Даже когда тип 998 сегмента имеет минимальную ошибку кодирования, поскольку максимальная глубина составляет d, единица кодирования CU_(d-1), имеющая глубину d-1, больше не разбивается до нижней глубины, и кодированная глубина для единиц кодирования, составляющих текущую максимальную единицу 900 кодирования, определяется как d-1, и тип сегмента единицы 900 кодирования может быть определен как N_(d-1)×N_(d-1). Кроме того, поскольку максимальная глубина составляет d, и минимальная единица 980 кодирования, имеющая самую нижнюю глубину d-1, больше не разбивается до нижней глубины, информация разбиения для единицы 980 кодирования не задается.
[00148] Единица 999 данных может быть "минимальной единицей" для текущей максимальной единицы кодирования. Минимальная единица согласно примерному варианту осуществления может быть прямоугольной единицей данных, полученной посредством разбиения минимальной единицы 980 кодирования на 4. Посредством выполнения кодирования многократно устройство 100 может выбирать глубину, имеющую наименьшую ошибку кодирования, посредством сравнения ошибок кодирования согласно глубинам единицы 900 кодирования, чтобы определять кодированную глубину и задавать соответствующий тип сегмента и режим прогнозирования в качестве режима кодирования кодированной глубины.
[00149] Также минимальные ошибки кодирования согласно глубинам сравниваются во всех глубинах 1-d, и глубина, имеющая наименьшую ошибку кодирования, может быть определена в качестве кодированной глубины. Кодированная глубина, тип сегмента единицы прогнозирования и режим прогнозирования могут быть кодированы и переданы в качестве информации относительно режима кодирования. Кроме того, поскольку единица кодирования разбивается от глубины, равной 0, до кодированной глубины, только информация разбиения кодированной глубины задается равной 0, а информация разбиения глубин за исключением кодированной глубины задается равной 1.
[00150] Модуль 220 извлечения данных изображений и информации кодирования устройства 200 может извлекать и использовать информацию относительно кодированной глубины и единицы прогнозирования единицы 900 кодирования, чтобы декодировать сегмент 912. Устройство 200 может определять глубину, при которой информация разбиения равна 0, в качестве кодированной глубины посредством использования информации разбиения согласно глубинам и использовать информацию относительно режима кодирования соответствующей глубины для декодирования.
[00151] Фиг.10-12 являются схемами для описания взаимосвязи между единицами 1010 кодирования, единицами 1060 прогнозирования и единицами 1070 преобразования, согласно примерному варианту осуществления.
[00152] Единицы 1010 кодирования являются единицами кодирования, имеющими древовидную структуру согласно кодированным глубинам, определенным посредством устройства 100, в максимальной единице кодирования. Единицы 1060 прогнозирования являются сегментами единиц прогнозирования каждой из единиц 1010 кодирования, и единицы 1070 преобразования являются единицами преобразования каждой из единиц 1010 кодирования.
[00153] Когда глубина максимальной единицы кодирования равна 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.
[00154] В единицах 1060 прогнозирования некоторые единицы 1014, 1016, 1022, 1032, 1048, 1050, 1052 и 1054 кодирования разбиваются на сегменты для прогнозирующего кодирования. Другими словами, типы сегментов в единицах 1014, 1022, 1050 и 1054 кодирования имеют размер 2N×N, типы сегментов в единицах 1016, 1048 и 1052 кодирования имеют размер N×2N, и тип сегмента единицы 1032 кодирования имеет размер N×N. Единицы прогнозирования и сегменты единиц 1010 кодирования меньше или равны каждой единицы кодирования.
[00155] Преобразование или обратное преобразование выполняются для данных изображений единицы 1052 кодирования в единицах 1070 преобразования в единице данных, которая меньше единицы 1052 кодирования. Кроме того, единицы 1014, 1016, 1022, 1032, 1048, 1050 и 1052 кодирования в единицах 1070 преобразования отличаются от единиц кодирования в единицах 1060 прогнозирования с точки зрения размеров и форм. Другими словами, устройства 100 и 200 могут выполнять внутреннее прогнозирование, оценку движения, компенсацию движения, преобразование и обратное преобразование по отдельности для единицы данных в идентичной единице кодирования.
[00156] Соответственно кодирование рекурсивно выполняется для каждой из единиц кодирования, имеющих иерархическую структуру в каждой области максимальной единицы кодирования, чтобы определять оптимальную единицу кодирования, и тем самым могут быть получены единицы кодирования, имеющие рекурсивную древовидную структуру. Информация кодирования может включать в себя информацию разбиения относительно единицы кодирования, информацию относительно типа сегмента, информацию относительно режима прогнозирования и информацию относительно размера единицы преобразования. Таблица 1 показывает информацию кодирования, которая может задаваться посредством устройств 100 и 200.
[00157]
Таблица 1
Информация 0 разбиения (кодирование для единицы кодирования, имеющей размер 2N×2N и текущую глубину d)
Информация 1 разбиения
Режим прогно-зирования
Тип сегмента
Размер единицы преобразования
Многократное кодирование единиц кодирования, имеющих нижнюю глубину d+1
Внутренний, взаимный, пропуск (только 2Nx2N)
Тип симметричного сегмента
Тип асимметрич-ного сегмента
Информация 0 разбиения единицы преобразования
Информация 1 разбиения единицы преобразования
2N×2N, 2N×N, N×2N, N×N
2N×nU, 2N×nD, nL×2N, nR×2N
2N×2N
N×N (симметричный тип), N/2×N/2 (асимметричный тип)
[00158] Модуль 130 вывода устройства 100 может выводить информацию кодирования относительно единиц кодирования, имеющих древовидную структуру, и модуль 220 извлечения данных изображений и информации кодирования устройства 200 может извлекать информацию кодирования относительно единиц кодирования, имеющих древовидную структуру, из принимаемого потока битов.
[00159] Информация разбиения указывает, разбивается или нет текущая единица кодирования на единицы кодирования нижней глубины. Если информация разбиения текущей глубины d равна 0, глубина, при которой текущая единица кодирования больше не разбивается в нижнюю глубину, является кодированной глубиной, и тем самым информация относительно типа сегмента, режима прогнозирования и размера единицы преобразования может быть задана для кодированной глубины. Если текущая единица кодирования дополнительно разбивается согласно информации разбиения, кодирование независимо выполняется для четырех единиц кодирования разбиения нижней глубины.
[00160] Режим прогнозирования может быть одним из внутреннего режима, взаимного режима и режима пропуска. Внутренний режим и взаимный режим могут быть заданы во всех типах сегментов, а режим пропуска задается только в типе сегмента, имеющем размер 2N×2N.
[00161] Информация относительно типа сегмента может указывать типы симметричных сегментов, имеющие размеры 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.
[00162] Размер единицы преобразования может задаваться как два типа во внутреннем режиме и два типа во взаимном режиме. Другими словами, если информация разбиения единицы преобразования равна 0, размер единицы преобразования может составлять 2N×2N, что является размером текущей единицы кодирования. Если информация разбиения единицы преобразования равна 1, единицы преобразования могут быть получены посредством разбиения текущей единицы кодирования. Кроме того, если типом сегмента текущей единицы кодирования, имеющей размер 2N×2N, является тип симметричного сегмента, размер единицы преобразования может составлять N×N, а если типом сегмента текущей единицы кодирования является тип асимметричного сегмента, размер единицы преобразования может составлять N/2×N/2.
[00163] Информация кодирования относительно единиц кодирования, имеющих древовидную структуру, может включать в себя, по меньшей мере, одну из единицы кодирования, соответствующей кодированной глубине, единицы прогнозирования и минимальной единицы. Единица кодирования, соответствующая кодированной глубине, может включать в себя, по меньшей мере, одну из единицы прогнозирования и минимальной единицы, содержащей идентичную информацию кодирования.
[00164] Соответственно определяется то, включаются или нет смежные единицы данных в идентичную единицу кодирования, соответствующую кодированной глубине, посредством сравнения информации кодирования смежных единиц данных. Кроме того, соответствующая единица кодирования, соответствующая кодированной глубине, определяется посредством использования информации кодирования единицы данных, и тем самым может быть определено распределение кодированных глубин в максимальной единице кодирования.
[00165] Соответственно если текущая единица кодирования прогнозируется на основе информации кодирования смежных единиц данных, можно обращаться непосредственно к информации кодирования единиц данных в более глубоких единицах кодирования, смежных с текущей единицей кодирования, и она может использоваться.
[00166] Альтернативно если текущая единица кодирования прогнозируется на основе информации кодирования смежных единиц данных, единицы данных, смежные с текущей единицей кодирования, ищутся с использованием кодированной информации единиц данных, и к искомым смежным единицам кодирования можно обращаться для прогнозирования текущей единицы кодирования.
[00167] Фиг.13 является схемой для описания взаимосвязи между единицей кодирования, единицей прогнозирования или сегментом и единицей преобразования, согласно информации режима кодирования по таблице 1.
[00168] Максимальная единица 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.
[00169] Когда тип сегмента задается как симметричный, т.е. тип 1322, 1324, 1326 или 1328 сегмента, единица 1342 преобразования, имеющая размер 2N×2N, задается, если информация разбиения (флаг TU-размера) единицы преобразования равна 0, и единица преобразования 1344, имеющая размер N×N, задается, если флаг TU-размера равен 1.
[00170] Когда тип сегмента задается как асимметричный, т.е. тип 1332, 1334, 1336 или 1338 сегмента, задается единица 1352 преобразования, имеющая размер 2N×2N, если флаг TU-размера равен 0, и задается единица 1354 преобразования, имеющая размер N/2×N/2, если флаг TU-размера равен 1.
[00171] Ссылаясь на фиг.13, флаг TU-размера является флагом, имеющим значение, равное 0 или 1, но флаг TU-размера не ограничивается 1 битом, и единица преобразования может иерархически разбиваться при наличии древовидной структуры, в то время как флаг TU-размера увеличивается от 0.
[00172] В этом случае размер единицы преобразования, которая фактически использована, может выражаться посредством использования флага TU-размера единицы преобразования, согласно примерному варианту осуществления, вместе с максимальным размером и минимальным размером единицы преобразования. Согласно примерному варианту осуществления, устройство 100 кодирования видео допускает кодирование информации размера максимальных единиц преобразования, информации размера минимальных единиц преобразования и флага максимального TU-размера. Результат кодирования информации размера максимальных единиц преобразования, информации размера минимальных единиц преобразования и флага максимального TU-размера может быть вставлен в SPS. Согласно примерному варианту осуществления, устройство 200 декодирования видео может декодировать видео посредством использования информации размера максимальных единиц преобразования, информации размера минимальных единиц преобразования и флага максимального TU-размера.
[00173] Например, если размер текущей единицы кодирования равен 64×64, и размер максимальной единицы преобразования равен 32×32, то размер единицы преобразования может составлять 32×32, когда флаг TU-размера равен 0, может составлять 16×16, когда флаг TU-размера равен 1, и может составлять 8×8, когда флаг TU-размера равен 2.
[00174] В качестве другого примера, если размер текущей единицы кодирования равен 32×32, и размер минимальной единицы преобразования равен 32×32, то размер единицы преобразования может составлять 32×32, когда флаг TU-размера равен 0. Здесь флаг TU-размера не может задаваться равным значению, отличному от 0, поскольку размер единицы преобразования не может составлять меньше 32×32.
[00175] В качестве другого примера, если размер текущей единицы кодирования равен 64×64, и флаг максимального TU-размера равен 1, то флаг TU-размера может составлять 0 или 1. Здесь флаг TU-размера не может задаваться равным значению, отличному от 0 или 1.
[00176] Таким образом, если задается то, что флагом максимального TU-размера является MaxTransformSizelndex, размером минимальной единицы преобразования является MinTransformSize, а размером единицы преобразования является RootTuSize, когда флаг TU-размера равен 0, то текущий размер минимальной единицы преобразования CurrMinTuSize, который может быть определен в текущей единице кодирования, может быть задан посредством уравнения (1):
[00177] CurrMinTuSize=max (MinTransformSize, RootTuSize/(2^MaxTransformSizeIndex)) (1)
[00178] По сравнению с текущим размером минимальной единицы преобразования CurrMinTuSize, который может быть определен в текущей единице кодирования, размер единицы преобразования RootTuSize, когда флаг TU-размера равен 0, может обозначать размер максимальной единицы преобразования, который может быть выбран в системе. В уравнении (1) RootTuSize/(2^MaxTransformSizeIndex) обозначает размер единицы преобразования, когда разбивается размер единицы преобразования RootTuSize, когда флаг TU-размера равен 0, число раз, соответствующее флагу максимального TU-размера и MinTransformSize, обозначает минимальный размер преобразования. Таким образом, меньшее значение из RootTuSize/(2^MaxTransformSizeIndex) и MinTransformSize может быть текущим размером минимальной единицы преобразования CurrMinTuSize, который может быть определен в текущей единице кодирования.
[00179] Согласно примерному варианту осуществления, размер максимальной единицы преобразования RootTuSize может варьироваться согласно типу режима прогнозирования.
[00180] Например, если текущим режимом прогнозирования является взаимный режим, то RootTuSize может быть определен посредством использования нижеприведенного уравнения (2). В уравнении (2) MaxTransformSize обозначает размер максимальной единицы преобразования, и PUSize обозначает текущий размер единицы прогнозирования.
[00181] RootTuSize=min(MaxTransformSize, PUSize) (2)
[00182] То есть, если текущим режимом прогнозирования является взаимный режим, размер единицы преобразования RootTuSize, когда флаг TU-размера равен 0, может быть меньшим значением из размера максимальной единицы преобразования и текущего размера единицы прогнозирования.
[00183] Если режимом прогнозирования текущей единицы сегментирования является внутренний режим, RootTuSize может быть определен посредством использования нижеприведенного уравнения (3). В уравнении (3) PartitionSize обозначает размер текущей единицы сегментирования.
[00184] RootTuSize=min(MaxTransformSize, PartitionSize) (3)
[00185] То есть, если текущим режимом прогнозирования является внутренний режим, размер единицы преобразования RootTuSize, когда флаг TU-размера равен 0, может быть меньшим значением из размера максимальной единицы преобразования и размера текущей единицы сегментирования.
[00186] Тем не менее, текущий размер максимальной единицы преобразования RootTuSize, который варьируется согласно типу режима прогнозирования в единице сегментирования, является просто примером и не ограничен этим.
[00187] Фиг.14 является блок-схемой последовательности операций способа кодирования изображения, согласно примерному варианту осуществления.
[00188] На этапе 1210 текущее изображение разбивается, по меньшей мере, на одну максимальную единицу кодирования. Максимальная глубина, указывающая общее число возможных разбиений, может быть предварительно определена.
[00189] На этапе 1220 посредством кодирования определяется кодированная глубина, чтобы выводить конечный результат кодирования согласно, по меньшей мере, одной разделенной области, которая получается посредством разбиения области каждой максимальной единицы кодирования согласно глубинам, по меньшей мере, одной разделенной области, и определяется единица кодирования согласно древовидной структуре.
[00190] Максимальная единица кодирования пространственно разбивается каждый раз, когда глубина увеличивается, и тем самым разбивается на единицы кодирования нижней глубины. Каждая единица кодирования может разбиваться на единицы кодирования другой нижней глубины посредством пространственного разбивания независимо от смежных единиц кодирования. Кодирование многократно выполняется для каждой единицы кодирования согласно глубинам.
[00191] Кроме того, единица преобразования согласно типам сегментов, имеющим наименьшую ошибку кодирования, определяется для каждой более глубокой единицы кодирования. Чтобы определять кодированную глубину, имеющую минимальную ошибку кодирования в каждой максимальной единице кодирования, ошибки кодирования могут измеряться и сравниваться во всех более глубоких единицах кодирования согласно глубинам.
[00192] На этапе 1230 кодированные данные изображений, составляющие конечный результат кодирования согласно кодированной глубине, выводятся для каждой максимальной единицы кодирования с информацией кодирования относительно кодированной глубины и режима кодирования. Информация относительно режима кодирования может включать в себя информацию относительно кодированной глубины или информации разбиения, информацию относительно типа сегмента единицы прогнозирования, режима прогнозирования и размера единицы преобразования. Кодированная информация относительно режима кодирования может быть передана в декодер с кодированными данными изображений.
[00193] Фиг.15 является блок-схемой последовательности операций способа декодирования изображения, согласно примерному варианту осуществления.
[00194] На этапе 1310 поток битов кодированного видео принимается и синтаксически анализируется.
[00195] На этапе 1320 кодированные данные изображений для текущего изображения, назначаемого максимальной единице кодирования, и информация относительно кодированной глубины и режима кодирования согласно максимальным единицам кодирования, извлекаются из синтаксически проанализированного потока битов. Кодированная глубина каждой максимальной единицы кодирования является глубиной, имеющей наименьшую ошибку кодирования для каждой максимальной единицы кодирования. При кодировании каждой максимальной единицы кодирования данные изображений кодируются на основе, по меньшей мере, одной единицы данных, полученной посредством иерархического разбиения каждой максимальной единицы кодирования согласно глубинам.
[00196] Согласно информации относительно кодированной глубины и режима кодирования, максимальная единица кодирования может разбиваться на единицы кодирования, имеющие древовидную структуру. Каждая единица кодирования из единиц кодирования, имеющих древовидную структуру, определяется в качестве единицы кодирования, соответствующей кодированной глубине, оптимально кодированной так, что она выводит наименьшую ошибку кодирования. Соответственно эффективность кодирования и декодирования изображения может быть повышена посредством декодирования каждого фрагмента кодированных данных изображений в единицах кодирования после определения, по меньшей мере, одной кодированной глубины согласно единицам кодирования.
[00197] На этапе 1330 данные изображений каждой максимальной единицы кодирования декодируются на основе информации относительно кодированной глубины и режима кодирования согласно максимальным единицам кодирования. Декодированные данные изображений могут быть воспроизведены посредством устройства воспроизведения, сохранены на носителе хранения данных или переданы через сеть.
[00198] Далее поясняется кодирование и декодирование видео с учетом порядка пропуска и разбиения согласно примерным вариантам осуществления со ссылкой на фиг.16-23.
[00199] Фиг.16 является блок-схемой, иллюстрирующей устройство 1400 для кодирования видео с учетом порядка пропуска и разбиения, согласно примерному варианту осуществления.
[00200] Ссылаясь на фиг.16, устройство 1400 включает в себя модуль 1410 разделения на максимальные единицы кодирования, модуль 1420 определения единиц кодирования и режимов кодирования и модуль 1430 вывода.
[00201] Устройство 1400 по фиг.16 может быть примером устройства 100 по фиг.1 и модуль 110 разделения на максимальные единицы кодирования, модуль 120 определения единиц кодирования и модуль 130 вывода устройства 100 по фиг.1 могут соответствовать модулю 1410 разделения на максимальные единицы кодирования, модулю 1420 определения единиц кодирования и режимов кодирования и модулю 1430 вывода по фиг.16 соответственно.
[00202] Модуль 1410 разделения на максимальные единицы кодирования разбивает изображение входного изображения на максимальные единицы кодирования, имеющие предварительно определенные размеры, и данные изображений согласно максимальным единицам кодирования выводятся в модуль 1420 определения единиц кодирования и режимов кодирования.
[00203] Модуль 1420 определения единиц кодирования и режимов кодирования иерархически разбивает области каждого ввода максимальных единиц кодирования из модуля 1410 разделения на максимальные единицы кодирования по мере того, как глубина увеличивается, и по отдельности выполняет кодирование на основе единиц кодирования согласно глубинам, соответствующим числам разбиения для каждой иерархически разбитой независимой области. Модуль 1420 определения единиц кодирования и режимов кодирования определяет режим кодирования и кодированную глубину, чтобы выводить результат кодирования согласно каждой области. Режим кодирования может включать в себя информацию относительно типа сегмента единицы кодирования, соответствующей кодированной глубине, относительно режима прогнозирования и относительно размера единицы преобразования.
[00204] Чтобы определять режим кодирования и кодированную глубину, чтобы выводить результат кодирования для каждой независимой области максимальной единицы кодирования, модуль 1420 определения единиц кодирования и режимов кодирования может выполнять кодирование на основе единиц кодирования согласно глубинам и может выполнять поиск кодированной глубины, имеющей наименьшую ошибку кодирования в исходных данных изображений, и режиму кодирования, связанному с кодированной глубиной. Соответственно модуль 1420 определения единиц кодирования и режимов кодирования может определять единицы кодирования, имеющие древовидную структуру, посредством определения единиц кодирования, соответствующих кодированным глубинам для каждой максимальной единицы кодирования текущего изображения.
[00205] Информация относительно кодированной глубины и режима кодирования, определенная посредством модуля 1420 определения единиц кодирования и режимов кодирования, и соответствующий результат кодирования выводятся в модуль 1430 вывода.
[00206] Модуль 1430 вывода выводит информацию относительно кодированной глубины и режима кодирования согласно максимальной единице кодирования и кодированным видеоданным. Режим кодирования включает в себя информацию режима пропуска, указывающую то, является или нет режим прогнозирования единицы кодирования режимом пропуска, и информацию разбиения, указывающую то, разбивается или нет единица кодирования до нижней глубины. Поскольку режим прогнозирования единицы кодирования может быть определен в единице кодирования кодированной глубины, которая дополнительно не разбивается, информация режима пропуска может быть кодирована в единице кодирования кодированной глубины.
[00207] Модуль 1430 вывода может избирательно определять порядок, в котором выводятся информация режима пропуска и информация разбиения единиц кодирования согласно глубинам.
[00208] Модуль 1430 вывода может выводить информацию, указывающую избирательно определенный порядок, в котором выводятся информация режима пропуска и информация разбиения. Соответственно модуль 1430 вывода может выводить информацию относительно порядка, в котором выводятся информация режима пропуска и информация разбиения, информацию относительно режима кодирования, включающую в себя информацию режима пропуска и информацию разбиения, которые размещаются в избирательно определенном порядке, и кодированные видеоданные.
[00209] Порядок информации режима пропуска и информации разбиения, который избирательно определяется для каждой единицы кодирования согласно глубинам, может быть определен согласно, по меньшей мере, одному из последовательности изображений, которой принадлежит единица кодирования, соответствующая каждой глубине, серии последовательных макроблоков, типа серии последовательных макроблоков согласно направлению прогнозирования и параметра квантования (QP) единицы данных.
[00210] Кроме того, порядок информации режима пропуска и информации разбиения, который избирательно определяется для каждой единицы кодирования согласно глубинам, может быть по отдельности определен согласно глубинам единиц кодирования в максимальной единице кодирования.
[00211] Например, порядок информации режима пропуска и информации разбиения может быть определен таким образом, что информация режима пропуска предшествует информации разбиения для максимальной единицы кодирования, а информация разбиения предшествует информации режима пропуска для единиц кодирования нижних глубин, отличных от максимальной единицы кодирования.
[00212] Модуль 1430 вывода может выполнять кодирование посредством комбинирования информации разбиения и информации режима пропуска в качестве одного фрагмента информации разбиения и пропуска. Кроме того, модуль 1430 вывода может назначать различные числа битов информации разбиения и пропуска согласно частоте возникновения комбинации информации разбиения и информации режима пропуска.
[00213] Например, если кодируется как информация разбиения, указывающая, что соответствующая единица кодирования разбивается, так и информация режима пропуска, указывающая, что режим прогнозирования соответствующей единицы кодирования не является режимом пропуска, информации разбиения и пропуска может назначаться один бит. Кроме того, в случаях, отличных от случая, в котором кодируется как информация разбиения, указывающая, что соответствующая единица кодирования разбивается, так и информация режима пропуска, указывающая, что режим прогнозирования соответствующей единицы кодирования не является режимом пропуска, информации разбиения и пропуска может назначаться два бита, и она может выводиться.
[00214] Модуль 1430 вывода может не кодировать связанную с коэффициентами преобразования и прогнозированием информацию, к примеру, направление прогнозирования и вектор движения для единицы кодирования, которая прогнозируется в режиме пропуска. Избирательно, модуль 1430 вывода может кодировать информацию индексов прогнозирующих параметров векторов движения относительно единицы прогнозирования, смежной с текущей единицей кодирования. Кроме того, модуль 1430 вывода может выводить информацию относительно максимального размера единиц кодирования.
[00215] Фиг.17 является блок-схемой, иллюстрирующей устройство 1500 для декодирования видео с учетом порядка пропуска и разбиения, согласно примерному варианту осуществления.
[00216] Ссылаясь на фиг.17, устройство 1500 включает в себя приемное устройство 1510, модуль 1520 извлечения данных и декодер 1530. Устройство 1500 по фиг.17 может быть примером устройства 200 по фиг.2. Приемное устройство 210, модуль 220 извлечения данных изображений и информации кодирования и декодер 230 данных изображений устройства 200 по фиг.2 могут соответствовать приемному устройству 1510, модулю 1520 извлечения данных и декодеру 1530 устройства 1500 по фиг.17 соответственно.
[00217] Приемное устройство 1510 принимает и синтаксически анализирует поток битов кодированного видео.
[00218] Модуль 1520 извлечения данных принимает синтаксически проанализированный поток битов из приемного устройства 1510 и извлекает кодированные видеоданные и информацию относительно кодированной глубины и режима кодирования для каждой максимальной единицы кодирования из потока битов. Кроме того, модуль 1520 извлечения данных может извлекать информацию относительно максимального размера единиц кодирования из потока битов. Модуль 1520 извлечения данных извлекает, из потока битов, информацию относительно порядка информации режима пропуска и информации разбиения единиц кодирования согласно глубинам.
[00219] Модуль 1520 извлечения данных может считывать информацию режима пропуска и информацию разбиения из информации относительно режима кодирования на основе извлеченной информации относительно порядка информации режима пропуска и информации разбиения и извлекать кодированные видеоданные в единицах кодирования согласно глубинам на основе информации режима пропуска и информации разбиения.
[00220] Порядок информации режима пропуска и информации разбиения может избирательно задаваться согласно, по меньшей мере, одному из последовательности изображений, которой принадлежит единица кодирования, соответствующая каждой глубине, серии последовательных макроблоков, типа серии последовательных макроблоков согласно направлению прогнозирования и QP единицы данных. Кроме того, порядок информации режима пропуска и информации разбиения может избирательно задаваться согласно глубинам единиц кодирования согласно глубинам в максимальной единице кодирования.
[00221] Например, если единица кодирования является максимальной единицей кодирования, согласно порядку информации режима пропуска и информации разбиения, прогнозируется или нет единица кодирования в режиме пропуска согласно информации режима пропуска, может быть определено до определения того, разбивается или нет единица кодирования согласно информации разбиения. Кроме того, если единица кодирования не является максимальной единицей кодирования, разбивается или нет единица кодирования согласно информации разбиения, может быть определено до определения того, прогнозируется или нет единица кодирования в режиме пропуска согласно информации режима пропуска.
[00222] Модуль 1520 извлечения данных может извлекать один фрагмент информации разбиения и пропуска, полученной посредством комбинирования информации режима пропуска и информации разбиения для единиц кодирования согласно глубинам. Например, если извлекается один бит информации разбиения и пропуска, соответствующая единица кодирования может прогнозироваться в режиме пропуска без разбиения, а если считываются два бита информации разбиения и пропуска, то, разбивается или нет соответствующая единица кодирования, может быть определено на основе информации разбиения, и то, прогнозируется или нет соответствующая единица кодирования в режиме пропуска, может быть определено на основе информации режима пропуска.
[00223] Модуль 1520 извлечения данных может извлекать только информацию разбиения и информацию режима пропуска для единицы кодирования, которая прогнозируется в режиме пропуска, и может не извлекать информацию для прогнозирующего декодирования, к примеру, связанную с коэффициентами преобразования и прогнозированием информацию, такую как направление прогнозирования и вектор движения. Информация индексов прогнозирующих параметров векторов движения для единицы кодирования, которая прогнозируется в режиме пропуска, может быть избирательно извлечена. Соответственно декодер 1530 может выполнять прогнозирующее декодирование для текущей единицы кодирования посредством заимствования информации движения единицы прогнозирования, смежной с текущей единицей кодирования, которая прогнозируется в режиме пропуска, или логического выведения информации движения текущей единицы кодирования из информации движения смежной единицы прогнозирования.
[00224] Декодер 1530 декодирует кодированные видеоданные согласно единице кодирования, по меньшей мере, одной кодированной глубины для каждой максимальной единицы кодирования кодированных видеоданных на основе информации относительно кодированной глубины и режима кодирования.
[00225] Декодированные и восстановленные видеоданные могут быть переданы в различные терминалы, которые могут воспроизводить видеоданные, или могут быть сохранены в устройстве хранения данных.
[00226] Устройство 1400 по фиг.16 и устройство 1500 по фиг.17 могут определять порядок информации режима пропуска и информации разбиения с учетом единицы данных, режима кодирования и т.п. Кроме того, порядок информации режима пропуска и информации разбиения может быть определен с учетом общего числа битов информации режима пропуска и информации разбиения и частоты возникновения режима пропуска при кодировании и декодировании видеоданных. Поскольку может задаваться порядок информации режима пропуска и информации разбиения единиц кодирования согласно глубинам, может быть дополнительно повышена эффективность передачи кодированных данных.
[00227] Фиг.18 иллюстрирует единицы кодирования согласно кодированным глубинам в максимальной единице кодирования, согласно примерному варианту осуществления.
[00228] Чтобы пояснять порядок, в котором модуль 1520 извлечения данных считывает кодированный поток битов, выводимый из модуля 1430 вывода с учетом порядка информации режима пропуска и информации разбиения, примерно проиллюстрирована максимальная единица 1600 кодирования.
[00229] Единицы кодирования, включенные в максимальную единицу 1600 кодирования, включают в себя максимальную единицу 1600 кодирования, имеющую глубину, равную 0, единицы 1610, 1620, 1630 и 1640 кодирования, имеющие глубину, равную 1, и единицы 1622, 1624, 1626 и 1628 кодирования, имеющие глубину, равную 2. Кроме того, единицы 1610, 1630 и 1640 кодирования, имеющие кодированную глубину, равную 1, и единицы 1622, 1624, 1626 и 1628 кодирования, имеющие кодированную глубину, равную 2, определяются в качестве кодированных глубин максимальной единицы 1600 кодирования. Кроме того, предполагается, что режимы прогнозирования единиц 1610, 1630 и 1640 кодирования, имеющих глубину, равную 1, задаются как режимы пропуска, а режимы прогнозирования единиц 1622, 1624, 1626 и 1628 кодирования, имеющих глубину, равную 2, не задаются как режимы пропуска.
[00230] Сначала поясняется пример, в котором модуль 1520 извлечения данных устройства 1500 считывает информацию разбиения до считывания информации режима пропуска для максимальной единицы 1600 кодирования текущего изображения. В этом примере, в котором информация разбиения предшествует информации режима пропуска, если информация разбиения равна 1, рекурсивно считывается информация разбиения единиц кодирования нижних глубин, а если информация разбиения равна 0, считывается информация режима пропуска единицы кодирования соответствующей глубины.
[00231] Соответственно порядок, в котором задаются или считываются информация разбиения и информация режима пропуска, следующий.
[00232] Могут последовательно считываться информация 1 разбиения относительно максимальной единицы 1600 кодирования, информация 0 разбиения и информация 1 пропуска относительно единицы 1610 кодирования, имеющей глубину, равную 1, информация 0 разбиения относительно единицы 1620 кодирования, имеющей глубину, равную 1, информация 0 разбиения и информация 0 пропуска относительно единицы 1622 кодирования, имеющей глубину, равную 2, информация 0 разбиения и информация 0 пропуска относительно единицы 1624 кодирования, имеющей глубину, равную 2, информация 0 разбиения и информация 0 пропуска относительно единицы 1626 кодирования, имеющей глубину, равную 2, информация 0 разбиения и информация 0 пропуска относительно единицы 1628 кодирования, имеющей глубину, равную 2, информация 0 разбиения, и информация 1 пропуска относительно единицы 1630 кодирования, имеющей глубину, равную 1, и информация 0 разбиения и информация 1 пропуска относительно единицы 1640 кодирования, имеющей глубину, равную 1. Соответственно общее число битов информации разбиения и информации режима пропуска максимальной единицы 1600 кодирования составляет 16.
[00233] Кроме того, поясняется другой пример, в котором модуль 1520 извлечения данных устройства 1400 считывает информацию режима пропуска максимальной единицы 1600 кодирования текущего изображения раньше информации разбиения. В этом примере, в котором информация режима пропуска предшествует информации разбиения, если информация режима пропуска равна 1, информация разбиения единиц кодирования, имеющих нижние глубины, не должна задаваться, а если информация режима пропуска равна 0, информация разбиения задается. Соответственно порядок, в котором задаются или считываются информация разбиения и информация режима пропуска, следующий.
[00234] Могут последовательно считываться информация 0 режима пропуска относительно максимальной единицы 1600 кодирования, информация 1 режима пропуска относительно единицы 1610 кодирования, имеющей глубину, равную 1, информация 0 режима пропуска и информация 1 разбиения относительно единицы 1620 кодирования, имеющей глубину, равную 1, информация 0 режима пропуска и информация 0 разбиения относительно единицы 1622 кодирования, имеющей глубину, равную 2, информация 0 режима пропуска и информация 0 разбиения относительно единицы 1624 кодирования, имеющей глубину, равную 2, информация 0 режима пропуска и информация 0 разбиения относительно единицы 1626 кодирования, имеющей глубину, равную 2, информация 0 режима пропуска и информация 0 разбиения относительно единицы 1628 кодирования, имеющей глубину, равную 2, информация 1 режима пропуска относительно единицы 1630 кодирования, имеющей глубину, равную 1, и информация 1 режима пропуска относительно единицы 1640 кодирования, имеющей глубину, равную 1. В этом случае общее число битов информации разбиения и информации режима пропуска относительно максимальной единицы 1600 кодирования составляет 14.
[00235] Фиг.19-21 являются блок-схемами последовательности операций способа, иллюстрирующими способы кодирования и декодирования информации пропуска и информации разбиения, согласно различным примерным вариантам осуществления.
[00236] Если модуль 1430 вывода устройства 1400 выводит кодированный поток битов таким образом, что информация разбиения предшествует информации режима пропуска согласно первому способу разбиения, модуль 1520 извлечения данных устройства 1500 считывает кодированные видеоданные согласно порядку, в котором считываются информация режима пропуска и информация разбиения.
[00237] То есть на этапе 1650, согласно первому способу разбиения, модуль 1520 извлечения данных считывает информацию разбиения относительно максимальной единицы кодирования, имеющей глубину, равную 0, и определяет то, разбивается или нет максимальная единица кодирования. Если на этапе 1650 определяется то, что максимальная единица кодирования не разбивается, способ переходит к этапу 1652. На этапе 1652 считывается информация режима пропуска, и определяется то, прогнозируется или нет максимальная единица кодирования в режиме пропуска. Если на этапе 1650 определяется то, что максимальная единица кодирования разбивается, способ переходит к этапу 1654. На этапе 1654 считывается информация разбиения единицы кодирования, имеющей глубину, равную 1. Аналогично на этапе 1654 определяется то, разбивается или нет единица кодирования, имеющая глубину, равную 1. Если на этапе 1654 определяется то, что единица кодирования, имеющая глубину, равную 1, не разбивается согласно информации разбиения единицы кодирования, имеющей глубину, равную 1, способ переходит к этапу 1656. На этапе 1656 считывается информация режима пропуска единицы кодирования, имеющей глубину, равную 1. Если на этапе 1654 определяется то, что единица кодирования, имеющая глубину, равную 1, разбивается, способ переходит к этапу 1658. На этапе 1658 считывается информация разбиения единицы кодирования, имеющей глубину, равную 2, и определяется то, разбивается или нет единица кодирования, имеющая глубину, равную 2. Если на этапе 1658 определяется то, что единица кодирования, имеющая глубину, равную 2, не разбивается, способ переходит к этапу 1660. На этапе 1660 считывается информация режима пропуска единицы кодирования, имеющей глубину, равную 2. Если на этапе 1658 определяется то, что единица кодирования, имеющая глубину, равную 2, разбивается, способ может переходить к следующей глубине.
[00238] Если модуль 1430 вывода устройства 1400 выводит кодированный поток битов таким образом, что информация режима пропуска предшествует информации разбиения согласно первому способу пропуска, модуль 1520 извлечения данных устройства 1500 считывает кодированные видеоданные согласно порядку, в котором считываются информация режима пропуска и информация разбиения.
[00239] То есть на этапе 1670, согласно первому способу пропуска, модуль 1520 извлечения данных считывает информацию режима пропуска относительно максимальной единицы кодирования, имеющей глубину, равную 0. Если из считывания определяется то, что режим прогнозирования максимальной единицы кодирования является режимом пропуска, декодер 1530 может декодировать максимальную единицу кодирования в режиме пропуска. На этапе 1670, если из считывания определяется то, что режим прогнозирования максимальной единицы кодирования не является режимом пропуска, способ может переходить к этапу 1672. На этапе 1672 модуль 1520 извлечения данных может считывать информацию разбиения максимальной единицы кодирования, имеющей глубину, равную 0. На этапе 1672, если из считывания определяется то, что максимальная единица кодирования не разбивается, декодер 1530 может декодировать максимальную единицу кодирования. На этапе 1672 если из считывания определяется то, что максимальная единица кодирования разбивается, способ переходит к этапу 1674. На этапе 1674 модуль 1520 извлечения данных может считывать информацию режима пропуска единицы кодирования, имеющей глубину, равную 1.
[00240] Аналогично на этапе 1674, согласно информации режима пропуска единицы кодирования, имеющей глубину, равную 1, если из считывания определяется то, что режим прогнозирования единицы кодирования, имеющей глубину, равную 1, является режимом пропуска, единица кодирования, имеющая глубину, равную 1, может быть декодирована в режиме пропуска. Если из считывания на этапе 1674 определяется то, что режим прогнозирования единицы кодирования, имеющей глубину, равную 1, не является режимом пропуска, способ переходит к этапу 1676. На этапе 1676 информация разбиения единицы кодирования, имеющей глубину, равную 1, может считываться.
[00241] Если модуль 1430 вывода устройства 1400 выполняет кодирование таким образом, что информация режима пропуска предшествует информации разбиения для максимальной единицы кодирования, а информация разбиения предшествует информации режима пропуска для единиц кодирования, отличных от максимальной единицы кодирования, модуль 1520 извлечения данных устройства 1500 считывает кодированные видеоданные согласно порядку, в котором считываются информация режима пропуска и информация разбиения.
[00242] То есть на этапе 1680, согласно первому способу пропуска для максимальной единицы кодирования, имеющей глубину, равную 0, модуль 1520 извлечения данных считывает информацию режима пропуска относительно максимальной единицы кодирования, имеющей глубину, равную 0. Если из считывания определяется то, что режим прогнозирования максимальной единицы кодирования является режимом пропуска, декодер 1530 может декодировать максимальную единицу кодирования в режиме пропуска. На этапе 1680, если из считывания определяется то, что режим прогнозирования максимальной единицы кодирования не является режимом пропуска, способ переходит к этапу 1682. На этапе 1682 модуль 1520 извлечения данных может считывать информацию разбиения максимальной единицы кодирования, имеющей глубину, равную 0. На этапе 1682, если из считывания определяется то, что максимальная единица кодирования не разбивается, декодер 1530 может декодировать максимальную единицу кодирования. На этапе 1682, если из считывания определяется то, что максимальная единица кодирования разбивается, модуль 1520 извлечения данных может считывать информацию разбиения и информацию режима пропуска единицы кодирования, имеющей глубину, равную 1, на этапах 1684 и 1686.
[00243] На этапе 1684, согласно первому способу разбиения для единицы кодирования, имеющей глубину, равную 1, если из считывания определяется то, что единица кодирования, имеющая глубину, равную 1, не разбивается согласно информации разбиения единицы кодирования, имеющей глубину, равную 1, способ переходит к этапу 1686. На этапе 1686 считывается информация режима пропуска единицы кодирования, имеющей глубину, равную 1. На этапе 1684, если из считывания определяется то, что единица кодирования, имеющая глубину, равную 1, разбивается, способ переходит к этапу 1688, и информация разбиения единицы кодирования, имеющей глубину, равную 2, может считываться. На этапе 1688, если единица кодирования, имеющая глубину, равную 2, не разбивается согласно информации разбиения единицы кодирования, имеющей глубину, равную 2, способ переходит к этапу 1690. На этапе 1690 информация режима пропуска единицы кодирования, имеющей глубину, равную 2, может считываться, и если единица кодирования, имеющая глубину, равную 2, разбивается, способ может переходить к следующей глубине.
[00244] Общие числа битов информации режима пропуска и информации разбиения согласно примерным вариантам осуществления по фиг.19-21 должны сравниваться друг с другом следующим образом.
[00245] Подробно, если максимальная единица кодирования кодируется в режиме пропуска, общие числа битов информации режима пропуска и информации разбиения согласно различным примерным вариантам осуществления являются такими, как показано в таблице 2.
[00246]
Таблица 2
Вариант осуществления
Информация режима пропуска и информация разбиения
Общее число битов
Первый способ разбиения (фиг.19)
Информация 0 разбиения, информация 1 режима пропуска
2 бита
Первый способ пропуска (фиг.20)
Информация 1 режима пропуска
1 бит
Первый способ пропуска максимальной единицы кодирования (фиг.21)
Информация 1 режима пропуска
1 бит
[00247] Согласно первому способу разбиения по таблице 2, поскольку информация разбиения максимальной единицы кодирования, имеющей глубину, равную 0, кодируется как 0, и информация режима пропуска максимальной единицы кодирования, имеющей глубину, равную 0, кодируется как T, модуль 1520 извлечения данных может считывать в общей сложности два бита информации режима пропуска и информации разбиения. Согласно первому способу пропуска по таблице 2, поскольку информация режима пропуска максимальной единицы кодирования, имеющей глубину, равную 0, кодируется как T, модуль 1520 извлечения данных может считывать в общей сложности один бит информации режима пропуска. Согласно первому способу пропуска максимальной единицы кодирования по таблице 2, поскольку информация режима пропуска максимальной единицы кодирования, имеющей глубину, равную 0, кодируется как T, модуль 1520 извлечения данных может считывать в общей сложности только один бит информации режима пропуска.
[00248] Подробно, если единица кодирования, имеющая глубину, равную 2, кодируется в режиме пропуска, общие числа битов информации режима пропуска и информации разбиения согласно различным примерным вариантам осуществления являются такими, как показано в таблице 3.
[00249]
Таблица 3
Вариант осуществления
Информация режима пропуска и информация разбиения
Общее число битов
Первый способ разбиения (фиг.19)
Информация 1 разбиения, информация 1 разбиения, информация 0 разбиения, информация 1 режима пропуска
4 бита
Первый способ пропуска (фиг.20)
Информация 0 режима пропуска, информация 1 разбиения, информация 0 режима пропуска, информация 1 разбиения, информация 1 режима пропуска
5 битов
Первый способ пропуска максимальной единицы кодирования (фиг.21)
Информация 0 режима пропуска, информация 1 разбиения, информация 1 разбиения, информация 0 разбиения, информация 1 режима пропуска
5 битов
[00250] Согласно первому способу разбиения по таблице 3, поскольку информация разбиения максимальной единицы кодирования, имеющей глубину, равную 0, кодируется как T, информация разбиения единицы кодирования, имеющей глубину, равную 1, кодируется как T, информация разбиения единицы кодирования, имеющей глубину, равную 2, кодируется как 0, и информация режима пропуска единицы кодирования, имеющей глубину, равную 2, кодируется как T, модуль 1520 извлечения данных может считывать в общей сложности четыре бита информации режима пропуска и информации разбиения. Согласно первому способу пропуска по таблице 3, поскольку информация режима пропуска максимальной единицы кодирования, имеющей глубину, равную 0, кодируется как 0, информация разбиения максимальной единицы кодирования, имеющей глубину, равную 0, кодируется как T, информация режима пропуска единицы кодирования, имеющей глубину, равную 1, кодируется как 0, информация разбиения единицы кодирования, имеющей глубину, равную 1, кодируется как T, и информация режима пропуска единицы кодирования, имеющей глубину, равную 2, кодируется как T, модуль 1520 извлечения данных может считывать в общей сложности пять битов информации режима пропуска и информации разбиения. Согласно первому способу пропуска максимальной единицы кодирования по таблице 3, поскольку информация режима пропуска максимальной единицы кодирования, имеющей глубину, равную 0, кодируется как 0, информация разбиения максимальной единицы кодирования, имеющей глубину, равную 0, кодируется как T, информация разбиения единицы кодирования, имеющей глубину, равную 1, кодируется как T, информация разбиения единицы кодирования, имеющей глубину, равную 2, кодируется как 0, и информация режима пропуска единицы кодирования, имеющей глубину, равную 2, кодируется как T, модуль 1520 извлечения данных может считывать в общей сложности пять битов информации режима пропуска и информации разбиения.
[00251] Как описано выше со ссылкой на фиг.19-21, посредством изменения порядка информации разбиения и информации режима пропуска, общее число битов информации режима пропуска относительно единиц кодирования согласно глубинам может варьироваться. Например, если единица кодирования верхней глубины прогнозируется и кодируется в режиме пропуска, поскольку информация разбиения единицы кодирования нижней глубины не должна быть кодирована, если существует много областей, прогнозированных и кодированных в режиме пропуска, может быть преимущественным с точки зрения скорости передачи битов, если информация режима пропуска предшествует информации разбиения. Тем не менее, в изображении с небольшим числом режимов пропуска, может быть преимущественным с точки зрения скорости передачи битов, если информация разбиения предшествует информации режима пропуска.
[00252] Соответственно скорость передачи битов может регулироваться посредством регулирования порядка информации разбиения и информации режима пропуска согласно характеристикам изображения, последовательности, уровню единицы данных, к примеру, серии последовательных макроблоков, QP и типу серии последовательных макроблоков. Кроме того, как в примере, поясненном со ссылкой на фиг.21, в котором первый способ пропуска выбирается только для максимальной единицы кодирования, а первый способ разбиения выбирается для единиц кодирования, имеющих глубины, отличные от максимальной единицы кодирования, порядок информации разбиения и информации режима пропуска может быть изменен согласно глубинам.
[00253] В примерном варианте осуществления, описанном со ссылкой на фиг.18, информация режима пропуска или информация разбиения заранее считывается в единицах изображений. Устройство 1400 по фиг.16 и устройство 1500 по фиг.17 могут переменно определять порядок, в котором выводятся или считываются информация режима пропуска и информация разбиения, согласно единице данных, глубине, QP и типу серии последовательных макроблоков согласно направлению прогнозирования без ограничения примерным вариантом осуществления по фиг.18.
[00254] Кроме того, информация разбиения и информация режима пропуска могут быть комбинированы и использованы в качестве одного фрагмента информации разбиения и пропуска. Устройство 1400 по фиг.16 и устройство 1500 по фиг.17 могут использовать информацию разбиения и пропуска, которой назначается 1 бит, для комбинации информации разбиения и информации режима пропуска, имеющей высокую частоту возникновения, и информацию разбиения и пропуска, которой назначается 2 бита, для комбинации, имеющей низкую частоту возникновения.
[00255] Если информация разбиения предшествует информации режима пропуска, поскольку информация разбиения единицы кодирования нижней глубины считана сразу, когда информация разбиения единицы кодирования текущей глубины равна 1, режим пропуска текущей единицы кодирования не считывается. Соответственно могут возникать три комбинации, т.е. информация 1 разбиения, комбинация информации 0 разбиения и информации 0 режима пропуска и комбинация информации 0 разбиения и информации 1 режима пропуска. Например, частота возникновения комбинации информации 0 разбиения и информации 1 режима пропуска является наибольшей, комбинации назначается 1 бит, и каждой из информации 1 разбиения и комбинации информации 0 разбиения и информации 0 режима пропуска может назначаться 2 бита.
[00256] Фиг.22 является блок-схемой последовательности операций, иллюстрирующей способ кодирования видео с учетом порядка пропуска и разбиения, согласно примерному варианту осуществления.
[00257] На этапе 1710 изображение разбивается на максимальные единицы кодирования, предварительно определявшие максимальные размеры.
[00258] На этапе 1720 для каждой из единиц кодирования, имеющих древовидную структуру, определяется режим кодирования относительно кодированной глубины, чтобы выводить результат кодирования, и единица кодирования кодированной глубины посредством выполнения кодирования на основе единиц кодирования согласно глубинам, согласно областям, полученным посредством иерархического разбиения максимальной единицы кодирования по мере того, как глубина увеличивается.
[00259] На этапе 1730 для каждой максимальной единицы кодирования выводится информация, указывающая порядок информации режима пропуска и информации разбиения, который избирательно определяется для каждой единицы кодирования согласно глубинам, информация относительно режима кодирования, включающая в себя информацию режима пропуска и информацию разбиения, которые размещаются согласно определенному порядку, и кодированные видеоданные.
[00260] Кроме того, может задаваться один фрагмент комбинированной информации разбиения и пропуска, полученной посредством комбинирования информации разбиения и информации режима пропуска. Кроме того, число битов соответствующей информации разбиения и пропуска может назначаться на основе частоты возникновения комбинации информации разбиения и информации режима пропуска.
[00261] Фиг.23 является блок-схемой последовательности операций, иллюстрирующей способ декодирования видео с учетом порядка пропуска и разбиения, согласно примерному варианту осуществления.
[00262] На этапе 1810 поток битов кодированного видео принимается и синтаксически анализируется.
[00263] На этапе 1820 информация относительно порядка информации режима пропуска и информации разбиения единиц кодирования согласно глубинам извлекается из потока битов, и, согласно порядку информации режима пропуска и информации разбиения, информация относительно кодированной глубины и режима кодирования и кодированные видеоданные извлекаются согласно максимальной единице кодирования из потока битов.
[00264] Кроме того, один фрагмент комбинированной информации разбиения и пропуска, полученной посредством комбинирования информации разбиения и информации режима пропуска, может считываться. Способ декодирования видео по фиг.23 может считывать комбинацию информации разбиения и информации режима пропуска на основе информации разбиения и пропуска, которая отличительно назначается на основе частоты возникновения комбинации информации разбиения и информации режима пропуска.
[00265] На этапе 1830 кодированные видеоданные декодируются согласно единицам кодирования, имеющим древовидную структуру, для каждой максимальной единицы кодирования кодированных видеоданных на основе информации относительно кодированной глубины и режима кодирования.
[00266] Примерные варианты осуществления могут записываться как компьютерные программы и могут быть реализованы на цифровых компьютерах общего назначения, которые выполняют программы с использованием компьютерно-читаемого носителя записи. Примеры компьютерно-читаемого носителя записи включают в себя магнитные носители хранения данных (например, ROM, гибкие диски, жесткие диски и т.д.) и оптические носители записи (например, CD-ROM или DVD). Кроме того, один или более модулей устройства 1400 и устройства 1500 могут включать в себя процессор или микропроцессор, выполняющий компьютерную программу, сохраненную на компьютерно-читаемом носителе, таком как локальное устройство 220 хранения.
[00267] Хотя примерные варианты осуществления конкретно показаны и описаны выше, специалисты в данной области техники должны понимать, что различные изменения в форме и подробностях могут вноситься в них без отступления от сущности и объема идеи изобретения, заданного посредством прилагаемой формулы изобретения. Примерные варианты осуществления должны рассматриваться только в описательном смысле, а не в целях ограничения. Следовательно, объем идеи изобретения задается не посредством подробного описания примерных вариантов осуществления, а посредством прилагаемой формулы изобретения, и все отличия в пределах объема должны истолковываться как включенные в настоящее изобретение.