Область техники, к которой относится изобретение
Настоящее раскрытие сущности относится к кодированию и декодированию видео, а более конкретно, к кодированию и декодированию видео посредством выполнения внешнего прогнозирования и/или компенсации движения.
Уровень техники
По мере того, как разрабатываются и предоставляются аппаратные средства для воспроизведения и сохранения высококачественного видеоконтента высокого разрешения, растет потребность в видеокодеке для эффективного кодирования или декодирования высококачественного видеоконтента высокого разрешения. В традиционном видеокодеке видео кодируется согласно ограниченному способу кодирования на основе макроблока, имеющего предварительно определенный размер.
Данные изображений в пространственной области преобразуются в коэффициенты в частотной области посредством использования преобразования частоты. В видеокодеке, изображение разбивается на блоки, имеющие предварительно определенный размер, и дискретное косинусное преобразование (DCT) выполняется для каждого блока для того, чтобы кодировать частотные коэффициенты в единицах блоков, с тем чтобы быстро выполнять преобразование частоты. Коэффициенты в частотной области легко просто по сравнению с данными изображений в пространственной области. В частности, поскольку пиксельное значение изображения в пространственной области выражается в ошибке прогнозирования через внешнее прогнозирование или внутреннее прогнозирование видеокодека, большой объем данных может быть преобразован в 0, когда преобразование частоты выполняется в отношении ошибки прогнозирования. Видеокодек заменяет данные, которые возникают непрерывно и многократно, на данные, имеющие небольшой размер, за счет этого уменьшая объем данных.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
ТЕХНИЧЕСКАЯ ЗАДАЧА
Настоящее раскрытие сущности предоставляет способ и устройство для определения вектора движения через прогнозирование векторов движения и предоставляет способ и устройство для кодирования видео, дополняемого посредством внешнего прогнозирования и компенсации движения через прогнозирование векторов движения, а также способ и устройство для декодирования видео, дополняемого посредством компенсации движения через прогнозирование векторов движения.
ТЕХНИЧЕСКОЕ РЕШЕНИЕ
Согласно одному или более вариантов осуществления настоящего раскрытия сущности, предусмотрен способ прогнозирования векторов движения для внешнего прогнозирования, причем способ прогнозирования векторов движения включает в себя: определение множества возможных вариантов блоков, к которым обращаются с тем, чтобы прогнозировать вектор движения текущего блока, из соседних блоков относительно текущего блока; определение возможного варианта вектора движения первого возможного варианта блока во множестве возможных вариантов блоков на основе того, представляют или нет каждое из опорного изображения первого возможного варианта блока и опорного изображения текущего блока собой долговременное опорное изображение; и определение вектора движения текущего блока посредством использования списка возможных вариантов векторов движения, включающего в себя определенный возможный вариант вектора движения первого возможного варианта блока и возможные варианты векторов движения из оставшихся возможных вариантов блоков.
ПРЕИМУЩЕСТВА ИЗОБРЕТЕНИЯ
Согласно одному или более вариантов осуществления, раскрытых в данном документе, когда по меньшей мере одно из текущего блока и опорных изображений текущего блока представляют собой долговременное опорное изображение, опускается операция регулирования размера вектора движения возможного варианта блока или операция обращения к вектору движения возможного варианта блока, и текущий блок может быть прогнозирован посредством обращения к вектору движения другого возможного варианта блока, имеющего относительно высокую точность прогнозирования. Соответственно, может повышаться эффективность операций прогнозирования вектора движения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг. 1 является блок-схемой устройства прогнозирования векторов движения согласно вариантам осуществления настоящего раскрытия сущности;
Фиг. 2 является блок-схемой устройства прогнозирования векторов движения согласно вариантам осуществления настоящего раскрытия сущности;
Фиг. 3 иллюстрирует соседние блоки, пространственно смежные с текущим блоком, согласно вариантам осуществления настоящего раскрытия сущности;
Фиг. 4A является схемой для описания случая, когда возможный вариант блока представляет собой совместно размещенный блок другого изображения, согласно вариантам осуществления настоящего раскрытия сущности;
Фиг. 4B является схемой для описания случая, когда возможный вариант блока представляет собой соседний блок идентичного изображения, согласно вариантам осуществления настоящего раскрытия сущности;
Фиг. 5 является блок-схемой последовательности операций, иллюстрирующей способ кодирования видео, дополняемый посредством способа прогнозирования векторов движения, согласно вариантам осуществления настоящего раскрытия сущности;
Фиг. 6 является блок-схемой последовательности операций, иллюстрирующей способ декодирования видео, дополняемый посредством способа прогнозирования векторов движения, согласно вариантам осуществления настоящего раскрытия сущности;
Фиг. 7 является блок-схемой видеокодера, включающего в себя устройство прогнозирования векторов движения, согласно вариантам осуществления настоящего раскрытия сущности;
Фиг. 8 является блок-схемой видеодекодера, включающего в себя устройство прогнозирования векторов движения, согласно вариантам осуществления настоящего раскрытия сущности;
Фиг. 9 является блок-схемой устройства кодирования видео на основе единиц кодирования согласно древовидной структуре, согласно вариантам осуществления настоящего раскрытия сущности;
Фиг. 10 является блок-схемой устройства декодирования видео на основе единиц кодирования согласно древовидной структуре, согласно вариантам осуществления настоящего раскрытия сущности;
Фиг. 11 является схемой для описания принципа единиц кодирования согласно вариантам осуществления настоящего раскрытия сущности;
Фиг. 12 является блок-схемой кодера изображений на основе единиц кодирования согласно вариантам осуществления настоящего раскрытия сущности;
Фиг. 13 является блок-схемой декодера изображений на основе единиц кодирования согласно вариантам осуществления настоящего раскрытия сущности;
Фиг. 14 является схемой, иллюстрирующей более глубокие единицы кодирования согласно глубинам и сегменты согласно вариантам осуществления настоящего раскрытия сущности;
Фиг. 15 является схемой для описания взаимосвязи между единицей кодирования и единицами преобразования, согласно вариантам осуществления настоящего раскрытия сущности;
Фиг. 16 является схемой для описания информации кодирования единиц кодирования, соответствующих кодированной глубине, согласно вариантам осуществления настоящего раскрытия сущности;
Фиг. 17 является схемой более глубоких единиц кодирования согласно глубинам, согласно вариантам осуществления настоящего раскрытия сущности;
Фиг. 18-20 являются схемами для описания взаимосвязи между единицами кодирования, единицами прогнозирования и единицами преобразования, согласно вариантам осуществления настоящего раскрытия сущности;
Фиг. 21 является схемой для описания взаимосвязи между единицей кодирования, единицей прогнозирования и единицей преобразования, согласно информации режима кодирования по таблице 1;
Фиг. 22 является схемой физической структуры диска, на котором сохраняется программа, согласно вариантам осуществления настоящего раскрытия сущности;
Фиг. 23 является схемой накопителя на дисках для записи и считывания программы посредством использования диска;
Фиг. 24 является схемой общей структуры системы предоставления контента для предоставления услуг распространения контента;
Фиг. 25 и 26 являются схемами, соответственно, внешней конструкции и внутренней конструкции мобильного телефона, к которому применяются способ кодирования видео и способ декодирования видео, согласно вариантам осуществления настоящего раскрытия сущности;
Фиг. 27 является схемой цифровой широковещательной системы, к которой применяется система связи, согласно вариантам осуществления настоящего раскрытия сущности; и
Фиг. 28 является схемой, иллюстрирующей сетевую структуру облачной вычислительной системы с использованием устройства кодирования видео и устройства декодирования видео, согласно вариантам осуществления настоящего раскрытия сущности.
ОПТИМАЛЬНЫЙ РЕЖИМ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
Согласно вариантам осуществления, раскрытым в данном документе, предусмотрен способ прогнозирования векторов движения для внешнего прогнозирования, причем способ прогнозирования векторов движения включает в себя: определение множества возможных вариантов блоков, к которым обращаются с тем, чтобы прогнозировать вектор движения текущего блока, из соседних блоков относительно текущего блока; определение возможного варианта вектора движения первого возможного варианта блока во множестве возможных вариантов блоков на основе того, представляют или нет каждое из опорного изображения первого возможного варианта блока и опорного изображения текущего блока собой долговременное опорное изображение; и определение вектора движения текущего блока посредством использования списка возможных вариантов векторов движения, включающего в себя определенный возможный вариант вектора движения первого возможного варианта блока и возможные варианты векторов движения из оставшихся возможных вариантов блоков.
Определение возможного варианта вектора движения первого возможного варианта блока может включать в себя, когда как опорное изображение текущего блока, так и опорное изображение первого возможного варианта блока представляют собой долговременные опорные изображения, определение текущего вектора движения первого возможного варианта блока в качестве возможного варианта вектора движения первого возможного варианта блока.
Определение возможного варианта вектора движения первого возможного варианта блока может включать в себя, когда как опорное изображение текущего блока, так и опорное изображение первого возможного варианта блока представляют собой кратковременные опорные изображения, изменение текущего вектора движения первого возможного варианта блока на основе отношения расстояния между текущим изображением и опорным изображением текущего блока и расстояния между изображением первого возможного варианта блока и опорным изображением первого возможного варианта блока и определение измененного текущего вектора движения в качестве возможного варианта вектора движения первого возможного варианта блока.
Первый возможный вариант блока может представлять собой соседний блок относительно текущего блока в текущем изображении, включающем в себя текущий блок, или совместно размещенный блок в том же местоположении, что местоположение текущего блока в изображении, восстановленном до текущего изображения.
Согласно вариантам осуществления, раскрытым в данном документе, предусмотрено устройство прогнозирования векторов движения для внешнего прогнозирования, причем устройство прогнозирования векторов движения включает в себя: модуль определения возможных вариантов блоков для определения множества возможных вариантов блоков, к которым обращаются с тем, чтобы прогнозировать вектор движения текущего блока, из соседних блоков относительно текущего блока, и определения возможного варианта вектора движения первого возможного варианта блока во множестве возможных вариантов блоков на основе того, представляют или нет каждое из опорного изображения первого возможного варианта блока и опорного изображения текущего блока собой долговременное опорное изображение; и модуль определения векторов движения для определения вектора движения текущего блока посредством использования списка возможных вариантов векторов движения, включающего в себя определенный возможный вариант вектора движения первого возможного варианта блока и возможные варианты векторов движения из оставшихся возможных вариантов блоков.
Согласно вариантам осуществления, раскрытым в данном документе, предусмотрен машиночитаемый носитель записи, имеющий записанную программу для осуществления способа прогнозирования векторов движения.
НАИЛУЧШИЙ РЕЖИМ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
Ниже в этом документе описываются устройство прогнозирования векторов движения и способ определения векторов движения согласно вариантам осуществления настоящего раскрытия сущности со ссылкой на фиг. 1-4B. Кроме того, способы кодирования и декодирования видео и устройства кодирования и декодирования видео, дополняемые посредством способа прогнозирования векторов движения, согласно вариантам осуществления настоящего раскрытия сущности, описываются со ссылкой на фиг. 5 и 8. Кроме того, операции кодирования видео и операции декодирования видео, дополняемые посредством операций прогнозирования векторов движения и на основе единиц кодирования, имеющих древовидную структуру, согласно вариантам осуществления настоящего раскрытия сущности, описываются со ссылкой на фиг. 9-21. В дальнейшем в этом документе, "изображение" может обозначать неподвижное изображение или движущееся изображение видео либо само видео.
Сначала описываются устройство прогнозирования векторов движения и способ определения векторов движения согласно вариантам осуществления, раскрытым в данном документе, со ссылкой на фиг. 1-4B. Далее описываются способы кодирования и декодирования видео и устройства кодирования и декодирования видео, которые дополняются посредством способа прогнозирования векторов движения, согласно вариантам осуществления, раскрытым в данном документе, со ссылкой на фиг. 5 и 8.
Фиг. 1 является блок-схемой устройства 10 прогнозирования векторов движения согласно вариантам осуществления настоящего раскрытия сущности.
Устройство 10 прогнозирования векторов движения включает в себя модуль 12 определения возможных вариантов блоков и модуль 14 определения векторов движения.
Внешнее прогнозирование использует подобие между текущим изображением и другим изображением. Опорная область, аналогичная текущей области текущего изображения, обнаруживается из опорного изображения, восстановленного до текущего изображения. Расстояние между текущей областью и опорной областью в координатах выражается в векторе движения, а разность между пиксельными значениями текущей области и опорной области выражается как остаточные данные. Соответственно, вместо прямого вывода информации изображений текущей области, индекс, указывающий опорное изображение, вектор движения и остаточные данные, может выводиться через внешнее прогнозирование текущей области.
Устройство 10 прогнозирования векторов движения согласно варианту осуществления может выполнять внешнее прогнозирование согласно блокам каждого изображения видео. Блок может иметь квадратную форму, прямоугольную форму или произвольную геометрическую форму и не ограничивается единицей данных, имеющей предварительно определенный размер. Блок согласно варианту осуществления может представлять собой максимальную единицу кодирования, единицу кодирования, единицу прогнозирования или единицу преобразования, из единиц кодирования согласно древовидной структуре. Далее описываются операции кодирования и декодирования видео на основе единиц кодирования согласно древовидной структуре, со ссылкой на фиг. 9-21.
Опорное изображение, используемое для внешнего прогнозирования текущего изображения, должно декодироваться до текущего изображения. Опорное изображение для внешнего прогнозирования согласно варианту осуществления может классифицироваться на кратковременное опорное изображение и долговременное опорное изображение. Декодированный буфер изображений сохраняет восстановленные изображения, сформированные через компенсацию движения предыдущих изображений. Сформированные восстановленные изображения могут быть использованы в качестве опорных изображений для внешнего прогнозирования других изображений. Соответственно по меньшей мере одно кратковременное опорное изображение или по меньшей мере одно долговременное опорное изображение для внешнего прогнозирования текущего изображения могут быть выбраны из числа восстановленных изображений, сохраненных в декодированном буфере изображений. Кратковременное опорное изображение может представлять собой изображение, декодированное непосредственно или недавно перед текущим изображением согласно порядку декодирования, тогда как долговременное опорное изображение может представлять собой изображение, декодированное задолго до текущего изображения, но выбирается и сохраняется в декодированном буфере изображений для использования в качестве опорного изображения для внешнего прогнозирования других изображений.
Вектор движения текущего блока может быть определен посредством обращения к вектору движения другого блока для прогнозирования векторов движения, объединения единиц прогнозирования (PU) или усовершенствованного прогнозирования векторов движения (AMVP).
Устройство 10 прогнозирования векторов движения может определять вектор движения текущего блока посредством обращения к вектору движения другого блока, пространственно смежного или смежного во времени с текущим блоком. Устройство 10 прогнозирования векторов движения может определять список возможных вариантов векторов движения, включающий в себя множество векторов движения возможных вариантов блоков, к которым можно обращаться. Устройство 10 прогнозирования векторов движения может определять вектор движения текущего блока посредством обращения к одному вектору движения, выбранному из списка возможных вариантов векторов движения.
Модуль 12 определения возможных вариантов блоков может определять множество возможных вариантов блоков, к которым можно обращаться с тем, чтобы прогнозировать вектор движения текущего блока, из числа соседних блоков, окружающих текущий блок.
Возможный вариант блока согласно вариантам осуществления настоящего раскрытия сущности может представлять собой соседний блок, смежный с текущим блоком в текущем изображении текущего блока, или совместно размещенный блок в местоположении, идентичном местоположению текущего блока в изображении, восстановленном до текущего изображения.
Модуль 14 определения векторов движения может формировать список возможных вариантов векторов движения, включающий в себя возможные варианты векторов движения множества возможных вариантов блоков, к которым обращаются с тем, чтобы прогнозировать вектор движения текущего блока.
Модуль 14 определения векторов движения может определять вектор движения возможного варианта блока из множества возможных вариантов блоков в качестве возможного варианта вектора движения, как один в списке возможных вариантов векторов движения, на основе того, представляют или нет опорное изображение возможного варианта блока и опорное изображение текущего блока собой долговременное опорное изображение. Модуль 14 определения векторов движения может выбирать текущий вектор движения возможного варианта блока в качестве возможного варианта вектора движения или масштабировать текущий вектор движения и затем выбирать масштабированный текущий вектор движения в качестве возможного варианта вектора движения. Определенный возможный вариант вектора движения может быть включен в список возможных вариантов векторов движения.
Когда опорное изображение возможного варианта блока отличается от опорного изображения текущего блока, модуль 14 определения векторов движения может определять то, представляют или нет опорное изображение текущего блока и опорное изображение возможного варианта блока собой долговременное опорное изображение. Модуль 14 определения векторов движения может определять то, как использовать вектор движения возможного варианта блока, на основе того, представляют опорные изображения текущего блока и возможного варианта блока собой кратковременное опорное изображение или долговременное опорное изображение.
Когда опорное изображение текущего блока и опорное изображение возможного варианта блока представляют собой долговременные опорные изображения, модуль 14 определения векторов движения может определять текущий вектор движения возможного варианта блока в качестве возможного варианта вектора движения. Здесь, текущий вектор движения возможного варианта блока включается в список возможных вариантов векторов движения без масштабирования.
Когда опорное изображение текущего блока и опорное изображение возможного варианта блока представляют собой кратковременное опорное изображение, модуль 14 определения векторов движения может масштабировать текущий вектор движения возможного варианта блока. Здесь, модуль 12 определения возможных вариантов блоков может масштабировать текущий вектор движения возможного варианта блока на основе отношения расстояния между текущим изображением и опорным изображением текущего блока и расстояния между изображением возможного варианта блока и опорным изображением возможного варианта блока. Модуль 14 определения векторов движения может включать масштабированный текущий вектор движения возможного варианта блока в список возможных вариантов векторов движения.
Когда одно из опорного изображения текущего блока и опорного изображения возможного варианта блока представляет собой кратковременное опорное изображение, а другое представляет собой долговременное опорное изображение, модуль 14 определения векторов движения может определять не использовать вектор движения возможного варианта блока в качестве возможного варианта вектора движения списка возможных вариантов векторов движения. Информация вероятности опорного изображения возможного варианта блока может задаваться как деактивированное состояние.
Альтернативно, когда одно из опорного изображения текущего блока и опорного изображения возможного варианта блока представляет собой кратковременное опорное изображение, а другое представляет собой долговременное опорное изображение, возможный вариант вектора движения первого возможного варианта блока может задаваться равным 0.
Модуль 14 определения векторов движения может определять по меньшей мере один возможный вариант вектора движения из списка возможных вариантов векторов движения и определять вектор движения текущего блока посредством использования выбранного по меньшей мере одного возможного варианта вектора движения. Модуль 14 определения векторов движения может копировать, комбинировать или модифицировать по меньшей мере один возможный вариант вектора движения, чтобы определять вектор движения текущего блока.
Фиг. 2 является блок-схемой последовательности операций, иллюстрирующей способ прогнозирования векторов движения согласно вариантам осуществления настоящего раскрытия сущности.
Вектор движения текущего блока может быть прогнозирован посредством использования вектора движения блока, временно или пространственно смежного с текущим блоком, посредством использования устройства 10 прогнозирования векторов движения согласно вариантам осуществления настоящего раскрытия сущности. Альтернативно, может определяться множество возможных вариантов блоков, допускающих прогнозирование вектора движения, может выбираться один из возможных вариантов блоков, и вектор движения текущего блока может определяться посредством обращения к вектору движения выбранного возможного варианта блока.
Когда опорное изображение, указываемое посредством опорного индекса предварительно определенного возможного варианта блока из числа возможных вариантов блоков, отличается от опорного изображения текущего блока, и устройство 10 прогнозирования векторов движения прогнозирует вектор движения текущего блока посредством обращения к вектору движения предварительно определенного возможного варианта блока, точность прогнозного вектора движения может быть низкой, даже когда вектор движения предварительно определенного возможного варианта блока масштабируется. Соответственно, когда опорное изображение текущего блока и опорное изображение предварительно определенного возможного варианта блока отличаются друг от друга, устройство 10 прогнозирования векторов движения может определять то, следует или нет масштабировать и обращаться к вектору движения предварительно определенного возможного варианта блока, либо то, следует или нет не обращаться к соответствующему вектору движения.
Ниже описывается способ прогнозирования векторов движения, в котором вектор движения текущего блока прогнозируется из вектора движения возможного варианта блока посредством устройства 10 прогнозирования векторов движения, со ссылкой на этапы 21, 23 и 25 по фиг. 2.
На этапе 21, устройство 10 прогнозирования векторов движения может определять возможные варианты блоков, к которым следует обращаться, из соседних блоков, пространственно смежных с текущим блоком, или из блоков в местоположении, идентичном местоположению текущего блока, из числа изображений во времени до или рядом с текущим изображением.
На этапе 23, устройство 10 прогнозирования векторов движения может определять вектор движения первого возможного варианта блока в качестве возможного варианта вектора движения текущего блока на основе того, представляют или нет опорное изображение текущего блока и опорное изображение первого возможного варианта блока собой долговременное опорное изображение.
На этапе 25, устройство 10 прогнозирования векторов движения может определять список возможных вариантов векторов движения, включающий в себя возможный вариант вектора движения первого возможного варианта блока и возможные варианты векторов движения из оставшихся возможных вариантов блоков. Устройство 10 прогнозирования векторов движения может определять вектор движения текущего блока посредством использования по меньшей мере одного возможного варианта вектора движения в списке возможных вариантов векторов движения.
Когда опорное изображение первого возможного варианта блока отличается от опорного изображения текущего блока, устройство 10 прогнозирования векторов движения может определять то, следует или нет использовать вектор движения первого возможного варианта блока в качестве возможного варианта вектора движения в списке возможных вариантов векторов движения, на основе того, представляют или нет опорное изображение текущего блока и опорное изображение первого возможного варианта блока собой кратковременное опорное изображение или долговременное опорное изображение.
Устройство 10 прогнозирования векторов движения может определять то, представляет или нет опорное изображение текущего блока собой долговременное опорное изображение, посредством использования долговременного опорного индекса, указывающего то, представляет или нет опорное изображение текущего блока собой долговременное опорное изображение. Аналогично, определяется то, представляет или нет опорное изображение первого возможного варианта блока собой долговременное опорное изображение, посредством использования долговременного опорного индекса первого возможного варианта блока.
На этапе 25, когда опорные изображения текущего блока и первого возможного варианта блока представляют собой долговременные опорные изображения, устройство 10 прогнозирования векторов движения может включать текущий вектор движения первого возможного варианта блока в список возможных вариантов векторов движения без масштабирования текущего вектора движения первого возможного варианта блока.
На этапе 25, когда одно из опорных изображений представляет собой кратковременное опорное изображение, а другое представляет собой долговременное опорное изображение, может быть определено то, что вектор движения первого возможного варианта блока не используется в списке возможных вариантов векторов движения.
На этапе 25, когда оба опорных изображения представляют собой кратковременные опорные изображения, текущий вектор движения первого возможного варианта блока может масштабироваться согласно отношению расстояния между опорными изображениями текущего изображения и текущего блока и расстояния между изображением первого возможного варианта блока и опорным изображением первого возможного варианта блока. Масштабированный текущий вектор движения может быть включен в список возможных вариантов векторов движения.
Устройство 10 прогнозирования векторов движения может определять список возможных вариантов векторов движения через этапы 21, 23 и 25. Когда только одно из опорных изображений представляет собой долговременное опорное изображение, устройство 10 прогнозирования векторов движения исключает вектор движения первого возможного варианта блока из списка возможных вариантов векторов движения, и в силу этого к нему не обращаются. Соответственно, устройство 10 прогнозирования векторов движения может определять вектор движения текущего блока посредством обращения к оставшимся векторам движения в списке возможных вариантов векторов движения.
Когда оба опорных изображения представляют собой долговременные опорные изображения, устройство 10 прогнозирования векторов движения включает вектор движения первого возможного варианта блока в список возможных вариантов векторов движения без масштабирования. Соответственно, устройство 10 прогнозирования векторов движения может выбирать оптимальный опорный вектор движения из числа вектора движения первого возможного варианта блока и оставшегося возможного варианта вектора движения и определять вектор движения текущего блока на основе выбранного оптимального опорного вектора движения.
Когда оба опорных изображения представляют собой кратковременные опорные изображения, устройство 10 прогнозирования векторов движения масштабирует текущий вектор движения первого возможного варианта блока и включает масштабированный текущий вектор движения в список возможных вариантов векторов движения, в качестве возможного варианта вектора движения. Соответственно, устройство 10 прогнозирования векторов движения может выбирать оптимальный опорный вектор движения из числа возможного варианта вектора движения первого возможного варианта блока и оставшихся возможных вариантов векторов движения и определять вектор движения текущего блока посредством использования выбранного оптимального опорного вектора движения.
Как описано выше, согласно устройству 10 прогнозирования векторов движения и способу прогнозирования векторов движения, описанным выше со ссылкой на фиг. 1 и 2, когда по меньшей мере одно из опорных изображений представляет собой долговременное опорное изображение, может опускаться операция масштабирования вектора движения возможного варианта блока или операция обращения к вектору движения возможного варианта блока.
Другими словами, если вектор движения текущего блока прогнозируется посредством обращения к вектору движения возможного варианта блока, когда опорное изображение текущего блока и опорное изображение возможного варианта блока отличаются друг от друга, и по меньшей мере одно из опорных изображений представляет собой долговременное опорное изображение, точность прогнозного вектора движения может быть низкой. Таким образом, может опускаться операция обращения к вектору движения возможного варианта блока, точность прогнозирования которого является низкой, и текущий блок может быть прогнозирован посредством обращения к вектору движения другого возможного варианта блока, точность прогнозирования которого является относительно высокой. Соответственно, может повышаться эффективность прогнозирования вектора движения.
Фиг. 3 иллюстрирует соседние блоки, пространственно смежные с текущим блоком 20, согласно вариантам осуществления настоящего раскрытия сущности.
Чтобы прогнозировать информацию кодирования текущего блока 20, можно обращаться к информации кодирования по меньшей мере одного из блока A0 21, блока A1 22, блока B0 23, блока B1 24 и блока B2 25 из числа соседних блоков, пространственно смежных с текущим блоком 20. На фиг. 3, размеры блока A0 21, блока A1 22, блока B0 23, блока B1 24 и блока B2 25 не показывают фактические размеры соседних блоков. Здесь, блок A0 21, блок A1 22, блок B0 23, блок B1 24 и блок B2 25 показывают блоки, расположенные в относительных направлениях относительно текущего блока 20.
Координата X блока увеличивается слева направо, и координата Y блока увеличивается сверху вниз. Блок A0 21 может представлять собой блок, включающий в себя выборку, координаты X и Y которой меньше нижней левой выборки. Блок A1 22 может представлять собой блок, включающий в себя выборки, координата X которых меньше, но координата Y является идентичной нижней левой выборке. Блок B0 23 может представлять собой блок, включающий в себя выборку, координаты X и Y которой больше верхней правой выборки. B1 24 может представлять собой блок, включающий в себя выборку, координата Y которой меньше, но координата X является идентичной верхней правой выборке. Блок B2 25 может представлять собой блок, включающий в себя выборку, координаты X и Y которой меньше верхней левой выборки.
Устройство 10 прогнозирования векторов движения может использовать блок A0 21, блок A1 22, блок B0 23, блок B1 24 и блок B2 25 в качестве возможных вариантов блоков, чтобы прогнозировать вектор движения текущего блока 20. Соответственно, устройство 10 прогнозирования векторов движения может обращаться к информации кодирования блока A0 21, блока A1 22, блока B0 23, блока B1 24 и блока B2 25 из числа соседних блоков, окружающих текущий блок 20.
Устройство 10 прогнозирования векторов движения может определять возможный вариант блока, который должен представлять собой опорный блок для текущего блока, и информация прогнозирования которого должна быть объединена с информацией прогнозирования текущего блока 20 посредством использования возможных вариантов векторов движения, включенных в список возможных вариантов векторов движения. Информация прогнозирования определенного возможного варианта блока может быть кодирована как информация прогнозирования текущего блока.
Например, когда информация кодирования блока A0 21 из числа блока A0 21, блока A1 22, блока B0 23, блока B1 24 и блока B2 25 является идентичной информации кодирования текущего блока 20, текущий блок 20 может быть объединен и кодирован с блоком A0 21. Посредством объединения текущего блока 20 и блока A0 21, не кодируется многократно перекрывающаяся часть информации кодирования блока A0 21 и текущего блока 20. Соответственно, когда кодер выводит информацию кодирования блока A0 21, информация кодирования текущего блока 20 может не выводиться снова. Даже когда информация кодирования текущего блока 20 не анализируется синтаксически, в то время как приемное устройство синтаксически анализирует информацию кодирования для блоков, включающих в себя текущий блок 20 и блок A0 21, которые взаимно объединяются, декодер может декодировать текущий блок 20 посредством использования информации кодирования, синтаксически проанализированной заранее для блока A0 21.
Устройство 10 прогнозирования векторов движения может прогнозировать вектор движения текущего блока 20 посредством комбинирования по меньшей мере одного из возможных вариантов векторов движения в списке возможных вариантов векторов движения.
При прогнозировании вектора движения, вектор движения текущего блока 20 может быть определен посредством использования векторов движения блока A0 21, блока A1 22, блока B0 23, блока B1 24 и блока B2 25, расположенных рядом с текущим блоком 20. Оценка вектора движения текущего блока 20 может быть определена посредством использования оценок векторов движения блока A0 21, блока A1 22, блока B0 23, блока B1 24 и блока B2 25. Альтернативно, оценка вектора движения текущего блока 20 может быть определена посредством использования комбинации двух или более векторов движения (оценок векторов движения) блока A0 21, блока A1 22, блока B0 23, блока B1 24 и блока B2 25.
Соответственно, вектор движения (оценка вектора движения) текущего блока 20 может быть прогнозирован, по меньшей мере, из одного из векторов движения (оценок векторов движения) блока A0 21, блока A1 22, блока B0 23, блока B1 24 и блока B2 25. Соответственно, когда кодер сначала кодирует и выводит векторы движения (оценки векторов движения) блока A0 21, блока A1 22, блока B0 23, блока B1 24 и блока B2 25, кодер может не кодировать вектор движения (оценку вектора движения) текущего блока 20. Даже когда вектор движения (оценка вектора движения) текущего блока 20 не принимается, декодер может прогнозировать вектор движения (оценку вектора движения) текущего блока 20 посредством использования по меньшей мере одного из векторов движения (предикторов векторов движения) блока A0 21, блока A1 22, блока B0 23, блока B1 24 и блока B2 25.
В дальнейшем в этом документе описывается схема прогнозирования векторов движения согласно типу возможного варианта блока со ссылкой на фиг. 4A и 4B.
Фиг. 4A является схемой для описания случая, когда возможный вариант блока представляет собой совместно размещенный блок 36 другого изображения, согласно вариантам осуществления настоящего раскрытия сущности.
Совместно размещенное изображение 35 представляет собой изображение, восстановленное до текущего изображения 30, и к нему можно обращаться для внешнего прогнозирования текущего блока 31 в текущем изображении 30. Совместно размещенное изображение 35 может быть определено согласно связанному индексу 32 текущего блока 31.
Блок совместно размещенного изображения 35, который находится в местоположении, идентичном местоположению текущего блока 31 текущего изображения 30, может быть определен в качестве совместно размещенного блока 36. Устройство 10 прогнозирования векторов движения может использовать совместно размещенный блок 36 в качестве возможного варианта блока, к которому следует обращаться с тем, чтобы прогнозировать вектор 34 движения текущего блока 31. Соответственно, вектор 34 движения текущего блока 31 может быть прогнозирован посредством обращения к вектору 37 движения совместно размещенного блока 36.
Совместно размещенное опорное изображение 38 может быть определено согласно номеру в последовательности изображений (POC), указываемому посредством опорного индекса совместно размещенного блока 36. Текущее опорное изображение 33 может быть определено согласно POC, указываемому посредством опорного индекса текущего блока 31.
Тем не менее, когда совместно размещенное опорное изображение 38 и текущее опорное изображение 33 отличаются друг от друга, устройство 10 прогнозирования векторов движения может определять снова то, следует или нет обращаться к вектору 37 движения совместно размещенного блока 36, либо то, как обращаться к вектору 37 движения совместно размещенного блока 36.
Подробно, когда опорный индекс совместно размещенного блока 36 и опорный индекс текущего блока 31 отличаются друг от друга, устройство 10 прогнозирования векторов движения может определять то, представляют совместно размещенное опорное изображение 38 и текущее опорное изображение 33 собой кратковременное или долговременное опорное изображение, посредством использования долговременных опорных индексов совместно размещенного блока 36 и текущего блока 31.
Тем не менее, когда совместно размещенное опорное изображение 38 и текущее опорное изображение 33 отличаются друг от друга, устройство 10 прогнозирования векторов движения может снова определять то, следует или нет обращаться к вектору 37 движения совместно размещенного блока 36, либо то, как обращаться к вектору 37 движения совместно размещенного блока 36.
Когда текущее опорное изображение 33 и совместно размещенное опорное изображение 38 отличаются друг от друга, но представляют собой кратковременные опорные изображения, вектор 37 движения совместно размещенного блока 36 может масштабироваться на основе отношения расстояния Td между совместно размещенным изображением 35 и совместно размещенным опорным изображением 38 и расстояния Tb между текущим изображением 30 и текущим опорным изображением 33. Здесь, расстояние Td между текущим изображением 30 и совместно размещенным опорным изображением 38 может быть определено на основе разностного значения POC текущего изображения 30 и совместно размещенного опорного изображения 38. Аналогично, расстояние Tb между текущим изображением 30 и текущим опорным изображением 33 может быть определено на основе разностного значения POC текущего изображения 30 и текущего опорного изображения 33.
Другими словами, когда текущее опорное изображение 33 и совместно размещенное опорное изображение 38 представляют собой кратковременные опорные изображения, возможный вариант MVcol' вектора движения может быть обновлен на значение, полученное посредством умножения вектора 37 MVcol движения совместно размещенного блока 36 на отношение расстояния Td и расстояния Tb. (MVcol'=MVcol*Tb/Td)
Соответственно, когда текущее опорное изображение 33 и совместно размещенное опорное изображение 38 отличаются друг от друга, но представляют собой кратковременные опорные изображения, устройство 10 прогнозирования векторов движения может изменять вектор 37 движения совместно размещенного блока 36 в списке возможных вариантов векторов движения на возможный вариант MVcol' вектора движения.
Когда одно из текущего опорного изображения 33 и совместно размещенного опорного изображения 38 представляет собой кратковременное опорное изображение, а другое представляет собой долговременное опорное изображение, флаг недоступности может назначаться вектору 37 движения совместно размещенного блока 36. В этом случае, вектор 37 движения совместно размещенного блока 36 может исключаться из списка возможных вариантов векторов движения текущего изображения 30.
Когда текущее опорное изображение 33 и совместно размещенное опорное изображение 38 представляют собой долговременные опорные изображения, может поддерживаться вектор 37 движения совместно размещенного блока 36. В этом случае, вектор 37 движения совместно размещенного блока 36 может поддерживаться без масштабирования в списке возможных вариантов векторов движения.
Фиг. 4B является схемой для описания случая, когда возможный вариант блока представляет собой соседний блок 46 идентичного изображения, согласно вариантам осуществления настоящего раскрытия сущности.
Устройство 10 прогнозирования векторов движения может использовать соседний блок 46, смежный с текущим блоком 41 в текущем изображении 40, в качестве возможного варианта блока, к которому следует обращаться с тем, чтобы прогнозировать вектор 44 движения текущего блока 41. Соответственно, вектор 44 движения текущего блока 41 может быть прогнозирован посредством обращения к вектору 47 движения соседнего блока 46.
Соседнее опорное изображение 48 может быть определено согласно POC, указываемому посредством опорного индекса соседнего блока 46. Текущее опорное изображение 43 может быть определено согласно POC, указываемому посредством опорного индекса текущего блока 41.
Тем не менее, когда соседнее опорное изображение 48 и текущее опорное изображение 43 отличаются друг от друга, устройство 10 прогнозирования векторов движения может снова определять то, обращаются или нет к вектору 47 движения соседнего блока 46, либо то, как обращаться к вектору 47 движения соседнего блока 46.
Подробно, когда опорный индекс соседнего блока 46 и опорный индекс текущего блока 41 отличаются друг от друга, устройство 10 прогнозирования векторов движения может определять то, представляют соседний блок 46 и текущее опорное изображение 43 собой кратковременное или долговременное опорное изображение, посредством использования долговременного опорного индекса соседнего блока 46 и долговременного опорного индекса текущего блока 41.
Тем не менее, когда соседний блок 46 и текущее опорное изображение 33 отличаются друг от друга, устройство 10 прогнозирования векторов движения может определять то, следует или нет обращаться к вектору 47 движения соседнего блока 46, либо то, как обращаться к вектору 47 движения соседнего блока 46.
Когда текущее опорное изображение 43 и соседнее опорное изображение 48 отличаются друг от друга, но представляют собой кратковременные опорные изображения, вектор 47 движения соседнего блока 46 может масштабироваться на основе отношения расстояния Td между текущим изображением 40 и соседним опорным изображением 48 и расстояния Tb между текущим изображением 40 и текущим опорным изображением 43. Здесь, расстояние Td между текущим изображением 40 и соседним опорным изображением 48 может быть определено на основе разностного значения POC текущего изображения 40 и соседнего опорного изображения 48. Аналогично, расстояние Tb между текущим изображением 40 и текущим опорным изображением 43 может быть определено на основе разностного значения POC текущего изображения 40 и текущего опорного изображения 43.
Другими словами, когда текущее опорное изображение 43 и соседнее опорное изображение 48 представляют собой кратковременные опорные изображения, возможный вариант MVne' вектора движения может быть обновлен на значение, полученное посредством умножения отношения расстояния Td и расстояния Tb на вектор 47 MVne движения совместно размещенного блока 46. (MVne'=MVne*Tb/Td)
Соответственно, когда текущее опорное изображение 43 и соседнее опорное изображение 48 отличаются друг от друга, но представляют собой кратковременные опорные изображения, устройство 10 прогнозирования векторов движения может изменять вектор 47 движения соседнего блока 46 в списке возможных вариантов векторов движения на возможный вариант MVne' вектора движения.
Когда одно из текущего опорного изображения 43 и соседнего опорного изображения 48 представляет собой кратковременное опорное изображение, а другое представляет собой долговременное опорное изображение, флаг недоступности может назначаться вектору 47 движения соседнего блока 46. В этом случае, вектор 47 движения соседнего блока 46 может исключаться из списка возможных вариантов векторов движения текущего изображения 40.
Когда текущее опорное изображение 43 и соседнее опорное изображение 48 представляют собой долговременные опорные изображения, может поддерживаться вектор 47 движения соседнего блока 46. В этом случае, вектор 47 движения соседнего блока 46 может поддерживаться без масштабирования в списке возможных вариантов векторов движения.
На фиг. 4A и 4B, устройство 10 прогнозирования векторов движения может определять то, представляют текущее опорное изображение 33 или 43 и опорное изображение (совместно размещенное опорное изображение 38 или соседнее опорное изображение 48) возможного варианта блока (совместно размещенного блока 36 или соседнего блока 46) собой кратковременное или долговременное опорное изображение, посредством использования долговременных опорных индексов текущего блока 31 или 41 и совместно размещенного блока 36 или соседнего блока 46, и определять то, следует или нет обращаться к вектору 37 или 47 движения совместно размещенного блока 36 или соседнего блока 46, либо то, следует или нет обращаться к вектору 37 или 47 движения совместно размещенного блока 36 или соседнего блока 46 после масштабирования.
Ниже описываются способ кодирования видео и способ декодирования видео, которые дополняются посредством способа прогнозирования векторов движения согласно варианту осуществления, со ссылкой на фиг. 5 и 6.
Фиг. 5 является блок-схемой последовательности операций, иллюстрирующей способ кодирования видео, дополняемый посредством способа прогнозирования векторов движения, согласно вариантам осуществления настоящего раскрытия сущности.
На этапе 51, множество возможных вариантов блоков может быть определено из соседних блоков относительно текущего блока, и векторы движения возможных вариантов блоков могут быть определены в качестве одного или более возможных вариантов векторов движения текущего блока на основе того, представляют или нет опорные изображения текущего блока и возможных вариантов блоков собой долговременное опорное изображение, согласно способу прогнозирования векторов движения.
Когда опорное изображение первого возможного варианта блока в возможных вариантах блоков отличается от опорного изображения текущего блока, определяется то, следует или нет использовать вектор движения первого возможного варианта блока как есть либо после масштабирования, на основе того, представляют или нет опорные изображения текущего блока и первого возможного варианта блока собой долговременное опорное изображение.
Когда опорные изображения текущего блока и первого возможного варианта блока представляют собой долговременные опорные изображения, вектор движения первого возможного варианта блока может быть включен в список возможных вариантов векторов движения без масштабирования.
Когда одно из опорных изображений представляет собой кратковременное опорное изображение, а другое представляет собой долговременное опорное изображение, может быть определено не использовать вектор движения первого возможного варианта блока в списке возможных вариантов векторов движения.
Когда опорные изображения представляют собой кратковременные опорные изображения, вектор движения первого возможного варианта блока может быть включен в список возможных вариантов векторов движения после масштабирования.
На этапе 53, может определяться список возможных вариантов векторов движения, включающий в себя возможные варианты векторов движения возможных вариантов блоков, и вектор движения текущего блока может определяться посредством использования по меньшей мере одного возможного варианта вектора движения в списке возможных вариантов векторов движения.
Один возможный вариант вектора движения в списке возможных вариантов векторов движения может быть выбран в качестве опорного вектора движения. Выбранный возможный вариант вектора движения может быть модифицирован до определения в качестве опорного вектора движения. Альтернативно по меньшей мере один возможный вариант вектора движения может быть выбран и комбинирован для определения в качестве вектора движения текущего блока. Например, когда имеется различная информация вектора движения, информация разности синтезируется в опорный вектор движения с тем, чтобы определять вектор движения текущего блока.
Когда опорный блок, указываемый посредством определенного вектора движения текущего блока, определяется в опорном изображении текущего блока, могут формироваться остаточные данные между опорным блоком и текущим блоком.
На этапе 55, остаточные данные преобразуются и квантуются с тем, чтобы формировать квантованные коэффициенты преобразования.
Этапы 51-55 могут выполняться согласно блокам текущего изображения, за счет этого формируя квантованные коэффициенты преобразования согласно блокам. Кроме того, энтропийное кодирование может выполняться для квантованных коэффициентов преобразования согласно блокам, с тем чтобы формировать и выводить поток битов.
Способ кодирования видео по фиг. 5 может быть реализован посредством устройства кодирования видео. Операции кодирования видео, включающие в себя внешнее прогнозирование, преобразование и квантование, могут выполняться, поскольку процессор кодирования видео, осуществляющий способ кодирования видео по фиг. 5, работает посредством монтажа в устройстве кодирования видео или внешнего взаимодействия с устройством кодирования видео. Процессор кодирования видео устройства кодирования видео может выполнять базовые процессы кодирования видео, поскольку не только отдельный процессор, но также и устройство кодирования видео, центральное обрабатывающее устройство или графическое обрабатывающее устройство включают в себя модуль обработки кодирования видео.
Фиг. 6 является блок-схемой последовательности операций, иллюстрирующей способ декодирования видео, дополняемый посредством способа прогнозирования векторов движения, согласно вариантам осуществления настоящего раскрытия сущности.
На этапе 61, могут приниматься опорный индекс и квантованные коэффициенты преобразования текущего блока, а также вектор движения возможного варианта блока.
На этапе 63, деквантование и обратное преобразование выполняется для квантованных коэффициентов преобразования текущего блока, принимаемого на этапе 61, чтобы восстанавливать остаточные данные текущего блока.
На этапе 65, могут определяться возможные варианты блоков, к которым следует обращаться с тем, чтобы прогнозировать вектор движения текущего блока. Возможный вариант вектора движения первого возможного варианта блока в возможных вариантах блоков может быть определен на основе того, представляют или нет каждое из опорного изображения первого возможного варианта блока и опорного изображения текущего блока собой долговременное опорное изображение.
Когда опорное изображение текущего блока и опорное изображение возможного варианта блока представляют собой долговременные опорные изображения, к вектору движения возможного варианта блока можно обращаться без масштабирования.
Когда одно из опорных изображений представляет собой кратковременное опорное изображение, а другое представляет собой долговременное опорное изображение, может быть определено то, что не следует обращаться к вектору движения первого возможного варианта блока.
Когда опорные изображения представляют собой кратковременные опорные изображения, вектор движения возможного варианта блока может масштабироваться, и затем к нему можно обращаться.
На этапе 67, может формироваться список возможных вариантов векторов движения, включающий в себя возможные варианты векторов движения, определенные на этапе 65. Опорный вектор движения может быть определен посредством использования по меньшей мере одного возможного варианта вектора движения в списке возможных вариантов векторов движения. Один возможный вариант вектора движения может быть выбран и использован как есть либо может быть модифицирован до использования в качестве опорного вектора движения. Альтернативно по меньшей мере один возможный вариант вектора движения может быть комбинирован для использования в качестве опорного вектора движения.
Опорный блок, указываемый посредством вектора движения текущего блока, может быть определен в опорном изображении текущего блока, указываемом посредством принимаемого опорного индекса текущего блока. Текущий блок может быть восстановлен посредством синтезирования остаточных данных и определенного опорного блока.
Текущее изображение, включающее в себя восстановленные текущие блоки, может быть восстановлено посредством выполнения этапов 61-67 согласно блокам. Когда изображения восстанавливаются как таковые, может восстанавливаться видео, включающее в себя последовательность восстановленных изображений.
Этапы 61-67 могут выполняться, когда видео восстанавливается посредством декодирования кодированного потока битов при приеме кодированного потока битов в ходе операций декодирования видео. Здесь, на этапе 61, принимаемый кодированный поток битов может быть синтаксически анализирован, и опорный индекс и квантованные коэффициенты преобразования текущего блока, а также вектор движения возможного варианта блока могут быть извлечены из синтаксически проанализированного потока битов.
В ходе способа кодирования видео, описанного выше со ссылкой на фиг. 5, этапы 61-67 также могут выполняться для того, чтобы формировать восстановленное изображение, к которому следует обращаться для внешнего прогнозирования другого изображения. Здесь, на этапе 61, принимаются опорный индекс и квантованные коэффициенты преобразования текущего блока, сформированного через внешнее прогнозирование, преобразование и квантование, а также вектор движения возможного варианта блока, и затем этапы 63-67 выполняются для того, чтобы использовать конечное восстановленное текущее изображение в качестве опорного изображения для внешнего прогнозирования другого изображения.
Способ декодирования видео по фиг. 6 может быть реализован посредством устройства декодирования видео. Операции декодирования видео, включающие в себя деквантование, обратное преобразование и прогнозирование/компенсацию, могут выполняться, поскольку процессор декодирования видео, осуществляющий способ декодирования видео по фиг. 6, работает посредством монтажа в устройстве декодирования видео или внешнего взаимодействия с устройством декодирования видео. Процессор декодирования видео устройства декодирования видео может выполнять базовые процессы декодирования видео, поскольку не только отдельный процессор, но также и устройство декодирования видео, центральное обрабатывающее устройство или графическое обрабатывающее устройство включают в себя модуль обработки декодирования видео.
Ниже описываются видеокодер 70 и видеодекодер 80, включающие в себя устройство 10 прогнозирования векторов движения согласно вариантам осуществления настоящего раскрытия сущности, со ссылкой на фиг. 7 и 8.
Фиг. 7 является блок-схемой видеокодера 70, включающего в себя устройство 10 прогнозирования векторов движения, согласно вариантам осуществления настоящего раскрытия сущности.
Видеокодер 70 может включать в себя модуль 71 внешнего прогнозирования и модуль 75 квантования с преобразованием. Модуль 71 внешнего прогнозирования может включать в себя устройство 10 прогнозирования векторов движения согласно варианту осуществления и формирователь 73 остатков.
Устройство 10 прогнозирования векторов движения определяет вектор движения согласно блокам. Кроме того, для прогнозирования векторов движения, объединения единиц прогнозирования (PU) или усовершенствованного прогнозирования векторов движения (AMVP), вектор движения текущего блока может быть прогнозирован посредством обращения к вектору движения другого блока. Устройство 10 прогнозирования векторов движения может определять список возможных вариантов векторов движения текущего блока для прогнозирования векторов движения. Один опорный вектор движения может быть определен из возможных вариантов векторов движения, включенных в список возможных вариантов векторов движения.
Устройство 10 прогнозирования векторов движения может определять то, как обращаться к вектору движения первого возможного варианта блока из возможных вариантов блоков в списке возможных вариантов векторов движения, на основе того, представляют или нет каждое из опорного изображения первого возможного варианта блока и опорного изображения текущего блока собой долговременное опорное изображение.
Устройство 10 прогнозирования векторов движения может определять опорный вектор движения посредством выбора оптимального возможного варианта вектора движения из возможных вариантов векторов движения в списке возможных вариантов векторов движения и прогнозировать вектор движения текущего блока посредством использования опорного вектора движения.
Формирователь 73 остатков может определять опорный блок, указываемый посредством вектора движения текущего блока из опорного изображения текущего блока, и формировать остаточные данные между опорным блоком и текущим блоком.
Соответственно, модуль 71 внешнего прогнозирования может выводить остаточные данные согласно блокам посредством выполнения внешнего прогнозирования согласно блокам.
Модуль 75 квантования с преобразованием может формировать коэффициенты преобразования с квантованием посредством выполнения преобразования и квантования над остаточными данными, выводимых посредством модуля 71 внешнего прогнозирования. Модуль 75 квантования с преобразованием может формировать квантованные коэффициенты преобразования согласно блокам посредством выполнения преобразования и квантования над остаточными данными согласно блокам, принимаемым из модуля 71 внешнего прогнозирования.
Видеокодер 70 может выводить кодированный поток битов посредством выполнения энтропийного кодирования для квантованных коэффициентов преобразования, сформированных посредством модуля 75 квантования с преобразованием. Кроме того, когда опорный индекс, вектор движения и долговременный опорный индекс выводятся из модуля 71 внешнего прогнозирования, видеокодер 70 может выводить поток битов посредством выполнения энтропийного кодирования не только для квантованных коэффициентов преобразования, но также и для опорного индекса, вектора движения и долговременного опорного индекса.
Фиг. 8 является блок-схемой видеодекодера 80, включающего в себя устройство 10 прогнозирования векторов движения, согласно вариантам осуществления настоящего раскрытия сущности.
Видеодекодер 80 включает в себя модуль 81 деквантования и обратного преобразования и модуль 83 компенсации движения. Модуль 71 внешнего прогнозирования может включать в себя устройство 10 прогнозирования векторов движения согласно варианту осуществления и модуль 85 восстановления блоков.
Видеодекодер 80 может принимать опорный индекс и квантованные коэффициенты преобразования текущего блока, а также вектор движения возможного варианта блока. Модуль 81 деквантования и обратного преобразования может восстанавливать остаточные данные текущего блока посредством выполнения деквантования и обратного преобразования над принимаемыми квантованными коэффициентами преобразования текущего блока.
Модуль 83 компенсации движения может восстанавливать текущий блок посредством выполнения компенсации движения для текущего блока, кодированного через внешнее прогнозирование.
Устройство 10 прогнозирования векторов движения определяет вектор движения согласно блокам. Устройство 10 прогнозирования векторов движения может определять список возможных вариантов векторов движения текущего блока для прогнозирования векторов движения. Возможный вариант блока может представлять собой совместно размещенный блок или соседний блок. Устройство 10 прогнозирования векторов движения может определять один опорный вектор движения из возможных вариантов векторов движения, включенных в список возможных вариантов векторов движения.
Устройство 10 прогнозирования векторов движения может определять то, как обращаться к вектору движения первого возможного варианта блока в возможных вариантах блоков, на основе того, представляют или нет каждое из опорного изображения первого возможного варианта блока и опорного изображения текущего блока собой долговременное опорное изображение.
Устройство 10 прогнозирования векторов движения может определять опорный вектор движения посредством выбора оптимального возможного варианта вектора движения из возможных вариантов векторов движения в списке возможных вариантов векторов движения и прогнозировать и определять вектор движения текущего блока посредством использования опорного вектора движения.
Модуль 85 восстановления блоков может определять опорное изображение текущего блока, указываемого посредством опорного индекса текущего блока, принимаемого посредством видеодекодера 80. Вектор движения текущего блока, определенный посредством устройства 10 прогнозирования векторов движения, указывает опорный блок в опорном изображении, и текущий блок может быть восстановлен посредством синтезирования опорного блока и остаточных данных текущего блока.
Соответственно, модуль 83 компенсации движения может восстанавливать блоки посредством выполнения компенсации движения согласно блокам и восстанавливать текущее изображение, включающее в себя восстановленные блоки. Соответственно, видеодекодер 80 может восстанавливать видео, включающее в себя последовательность изображений, по мере того, как восстанавливаются изображения.
Видеодекодер 80 дополнительно может включать в себя модуль внутриконтурной фильтрации, который выполняет фильтрацию для удаления блочности для восстановленного текущего блока и восстановленного изображения, включающего в себя восстановленные блоки.
Видеодекодер 80 может восстанавливать видео посредством декодирования кодированного потока битов при приеме кодированного потока битов. Здесь, видеодекодер 80 может синтаксически анализировать принимаемый поток битов и извлекать опорный индекс и квантованные коэффициенты преобразования текущего блока, а также вектор движения возможного варианта блока из синтаксически проанализированного потока битов. Кроме того, видеодекодер 80 дополнительно может включать в себя приемное устройство, которое принимает поток битов, выполняет энтропийное декодирование для потока битов, а также синтаксический анализ и извлечение опорного индекса и квантованных коэффициентов преобразования текущего блока и вектора движения возможного варианта блока из потока битов.
Кроме того, видеодекодер 80 может быть комбинирован с видеокодером 70 для формирования посредством видеокодера 70 по фиг. 7 восстановленного изображения, к которому следует обращаться для внешнего прогнозирования другого изображения. Здесь, видеодекодер 80 может принимать опорный индекс и квантованные коэффициенты преобразования текущего блока, сформированного и выводимого через внешнее прогнозирование, преобразование и квантование посредством видеокодера 70, и вектора движения возможного варианта блока и выводить конечное восстановленное текущее изображение через модуль 81 деквантования и обратного преобразования и модуль 83 компенсации движения. Восстановленное изображение, выводимое посредством видеодекодера 80, может быть использовано в качестве опорного изображения для внешнего прогнозирования другого изображения посредством видеокодера 70.
Как описано выше, устройство 10 прогнозирования векторов движения может разбивать блоки видеоданных на единицы кодирования, имеющие древовидную структуру, и могут использоваться единицы прогнозирования для внешнего прогнозирования единиц кодирования. В дальнейшем в этом документе описываются способ кодирования видео, устройство кодирования видео, способ декодирования видео и устройство декодирования видео на основе единиц кодирования, имеющих древовидную структуру, и единиц преобразования, со ссылкой на фиг. 9-22.
Фиг. 9 является блок-схемой устройства 100 кодирования видео на основе единиц кодирования согласно древовидной структуре, согласно вариантам осуществления настоящего раскрытия сущности.
Устройство 100 кодирования видео на основе единиц кодирования согласно древовидной структуре, заключающее в себе прогнозирование видео на основе единиц кодирования согласно древовидной структуре, включает в себя модуль 110 разбиения на максимальные единицы кодирования, модуль 120 определения единиц кодирования и модуль 130 вывода. Для удобства пояснения, "устройство 100 кодирования видео на основе единиц кодирования согласно древовидной структуре" упоминается в качестве "устройства 100 кодирования видео" в дальнейшем.
Модуль 110 разбиения на максимальные единицы кодирования может разбивать текущее изображение на основе максимальной единицы кодирования, которая представляет собой единицу кодирования, имеющую максимальный размер для текущего изображения рисунка. Если текущее изображение превышает максимальную единицу кодирования, данные изображений для текущего изображения могут разбиваться, по меньшей мере, на одну максимальную единицу кодирования. Максимальная единица кодирования согласно вариантам осуществления настоящего раскрытия сущности может представлять собой единицу данных, имеющую размер 32x32, 64x64, 128x128, 256x256 и т.д., при этом форма единицы данных является квадратом, имеющим ширину и длину в квадратах по 2. Данные изображений могут выводиться в модуль 120 определения единиц кодирования согласно по меньшей мере одной максимальной единице кодирования.
Единица кодирования согласно вариантам осуществления настоящего раскрытия сущности может отличаться посредством максимального размера и глубины. Глубина обозначает число раз, которое единица кодирования пространственно разбивается от максимальной единицы кодирования, и по мере того, как увеличивается глубина, более глубокие единицы кодирования согласно глубинам могут разбиваться от максимальной единицы кодирования до минимальной единицы кодирования. Глубина максимальной единицы кодирования является самой верхней глубиной, а глубина минимальной единицы кодирования является самой нижней глубиной. Поскольку размер единицы кодирования, соответствующей каждой глубине, снижается по мере того, как увеличивается глубина максимальной единицы кодирования, единица кодирования, соответствующая верхней глубине, может включать в себя множество единиц кодирования, соответствующих нижним глубинам.
Как описано выше, данные изображений для текущего изображения разбиваются на максимальные единицы кодирования согласно максимальному размеру единицы кодирования, и каждая из максимальных единиц кодирования может включать в себя более глубокие единицы кодирования, которые разбиваются согласно глубинам. Поскольку максимальная единица кодирования согласно вариантам осуществления настоящего раскрытия сущности разбивается согласно глубинам, данные изображений пространственной области, включенные в максимальную единицу кодирования, могут быть иерархически классифицированы согласно глубинам.
Максимальная глубина и максимальный размер единицы кодирования, которые ограничивают общее число раз, которое иерархически разбиваются высота и ширина максимальной единицы кодирования, может быть предварительно определена.
Модуль 120 определения единиц кодирования кодирует по меньшей мере одну область разбиения, полученную посредством разбиения области максимальной единицы кодирования согласно глубинам, и определяет глубину, чтобы выводить конечные кодированные данные изображений согласно по меньшей мере одной области разбиения. Другими словами, модуль 120 определения единиц кодирования определяет кодированную глубину посредством кодирования данных изображений в более глубоких единицах кодирования согласно глубинам, согласно максимальной единице кодирования текущего изображения и выбора глубины, имеющей наименьшую ошибку кодирования. Определенная кодированная глубина и кодированные данные изображений согласно определенной кодированной глубине выводятся в модуль 130 вывода.
Данные изображений в максимальной единице кодирования кодируются на основе более глубоких единиц кодирования, соответствующих по меньшей мере одной глубине, равной или ниже максимальной глубины, и результаты кодирования данных изображений сравниваются на основе каждой из более глубоких единиц кодирования. Глубина, имеющая наименьшую ошибку кодирования, может быть выбрана после сравнения ошибок кодирования более глубоких единиц кодирования. По меньшей мере, одна кодированная глубина может быть выбрана для каждой максимальной единицы кодирования.
Размер максимальной единицы кодирования разбивается по мере того, как единица кодирования иерархически разбивается согласно глубинам, и по мере того, как увеличивается число единиц кодирования. Кроме того, даже если единицы кодирования соответствуют идентичной глубине в одной максимальной единице кодирования, определяется то, разбивать или нет каждую из единиц кодирования, соответствующих идентичной глубине, до нижней глубины посредством измерения ошибки кодирования данных изображений каждой единицы кодирования, отдельно. Соответственно, даже когда данные изображений включаются в одну максимальную единицу кодирования, ошибки кодирования могут отличаться согласно областям в одной максимальной единице кодирования, и за счет этого кодированные глубины могут отличаться согласно областям в данных изображений. Таким образом, одна или более кодированных глубин могут быть определены в одной максимальной единице кодирования, и данные изображений максимальной единицы кодирования могут быть разделены согласно единицам кодирования по меньшей мере одной кодированной глубины.
Соответственно, модуль 120 определения единиц кодирования может определять единицы кодирования, имеющие древовидную структуру, включенные в максимальную единицу кодирования. "Единицы кодирования, имеющие древовидную структуру" согласно вариантам осуществления настоящего раскрытия сущности включают в себя единицы кодирования, соответствующие глубине, определенной как кодированная глубина, из всех более глубоких единиц кодирования, включенных в максимальную единицу кодирования. Единица кодирования кодированной глубины может быть иерархически определена согласно глубинам в идентичной области максимальной единицы кодирования и может быть независимо определена в различных областях. Аналогично, кодированная глубина в текущей области может быть независимо определена из кодированной глубины в другой области.
Максимальная глубина согласно вариантам осуществления настоящего раскрытия сущности является индексом, связанным с числом разбиений от максимальной единицы кодирования до минимальной единицы кодирования. Первая максимальная глубина согласно вариантам осуществления настоящего раскрытия сущности может обозначать общее число разбиений от максимальной единицы кодирования до минимальной единицы кодирования. Вторая максимальная глубина согласно вариантам осуществления настоящего раскрытия сущности может обозначать общее число уровней глубины от максимальной единицы кодирования до минимальной единицы кодирования. Например, когда глубина максимальной единицы кодирования равна 0, глубина единицы кодирования, на которую максимальная единица кодирования разбивается один раз, может задаваться равной 1, а глубина единицы кодирования, на которую максимальная единица кодирования разбивается два раза, может задаваться равной 2. Здесь, если минимальная единица кодирования представляет собой единицу кодирования, на которую максимальная единица кодирования разбивается четыре раза, имеется 5 уровней глубины с глубинами 0, 1, 2, 3 и 4, и за счет этого первая максимальная глубина может задаваться равной 4, а вторая максимальная глубина может задаваться равной 5.
Прогнозирующее кодирование и преобразование могут выполняться согласно максимальной единице кодирования. Прогнозирующее кодирование и преобразование также выполняются на основе более глубоких единиц кодирования согласно глубине, равной, или глубинам, меньшим максимальной глубины, согласно максимальной единице кодирования.
Поскольку число более глубоких единиц кодирования увеличивается каждый раз, когда максимальная единица кодирования разбивается согласно глубинам, кодирование, включающее в себя прогнозирующее кодирование и преобразование, выполняется для всех более глубоких единиц кодирования, сформированных по мере того, как увеличивается глубина. Для удобства описания, прогнозирующее кодирование и преобразование далее описываются на основе единицы кодирования текущей глубины в максимальной единице кодирования.
Устройство 100 кодирования видео может по-разному выбирать размер или форму единицы данных для кодирования данных изображений. Чтобы кодировать данные изображений, выполняются такие операции, как прогнозирующее кодирование, преобразование и энтропийное кодирование, и в это время, идентичная единица данных может использоваться для всех операций, или различные единицы данных могут использоваться для каждой операции.
Например, устройство 100 кодирования видео может выбирать не только единицу кодирования для кодирования данных изображений, но также и единицу данных, отличающуюся от единицы кодирования, с тем чтобы выполнять прогнозирующее кодирование для данных изображений в единице кодирования.
Чтобы выполнять прогнозирующее кодирование в максимальной единице кодирования, прогнозирующее кодирование может выполняться на основе единицы кодирования, соответствующей кодированной глубине, т.е. на основе единицы кодирования, которая более не разбивается на единицы кодирования, соответствующие нижней глубине. В дальнейшем в этом документе, единица кодирования, которая более не разбивается и становится базисной единицей для прогнозирующего кодирования, далее упоминается как "единица прогнозирования". Сегмент, полученный посредством разбиения единицы прогнозирования, может включать в себя единицу данных, полученную посредством разбиения по меньшей мере одной из высоты и ширины единицы прогнозирования. Сегмент представляет собой единицу данных, если разбивается единица прогнозирования единицы кодирования, и единица прогнозирования может представлять собой сегмент, имеющий размер, идентичный размеру единицы кодирования.
Например, когда единица кодирования в 2Nx2N (где N является положительным целым числом) более не разбивается и становится единицей прогнозирования в 2Nx2N, размер сегмента может составлять 2Nx2N, 2NxN, Nx2N или NxN. Примеры типа сегмента включают в себя симметричные сегменты, которые получаются посредством симметричного разбиения высоты или ширины единицы прогнозирования, сегменты, полученные посредством асимметричного разбиения высоты или ширины единицы прогнозирования, к примеру, 1:n или n:1, сегменты, которые получаются посредством геометрического разбиения единицы прогнозирования, и сегменты, имеющие произвольные формы.
Режим прогнозирования единицы прогнозирования может представлять собой по меньшей мере одно из внутреннего режима, внешнего режима и режима пропуска. Например, внутренний режим или внешний режим может выполняться для сегмента в 2Nx2N, 2NxN, Nx2N или NxN. Кроме того, режим пропуска может выполняться только для сегмента в 2Nx2N. Кодирование независимо выполняется для одной единицы прогнозирования в единице кодирования, в силу этого выбирая режим прогнозирования, имеющий наименьшую ошибку кодирования.
Устройство 100 кодирования видео также может выполнять преобразование для данных изображений в единице кодирования на основе не только единицы кодирования для кодирования данных изображений, но также и на основе единицы данных, которая отличается от единицы кодирования. Чтобы выполнять преобразование в единице кодирования, преобразование может выполняться на основе единицы данных, имеющей размер, меньший или равный единице кодирования. Например, единица данных для преобразования может включать в себя единицу данных для внутреннего режима и единицу данных для внешнего режима.
Единица преобразования в единице кодирования может рекурсивно разбиваться на области меньших размеров аналогично единице кодирования согласно древовидной структуре. Таким образом, остаточные данные в единице кодирования могут быть разделены согласно единице преобразования, имеющей древовидную структуру, согласно глубинам преобразования.
Глубина преобразования, указывающая число разбиений, чтобы достигать единицы преобразования посредством разбиения высоты и ширины единицы кодирования, также может задаваться в единице преобразования. Например, в текущей единице кодирования 2Nx2N, глубина преобразования может быть равна 0, когда размер единицы преобразования составляет 2Nx2N, может быть равна 1, когда размер единицы преобразования составляет NxN, и может быть равна 2, когда размер единицы преобразования составляет N/2xN/2. Иными словами, единица преобразования, имеющая древовидную структуру, может задаваться согласно глубинам преобразования.
Информация кодирования согласно единицам кодирования, соответствующим кодированной глубине, требует не только информацию относительно кодированной глубины, но также и информацию, связанную с прогнозирующим кодированием и преобразованием. Соответственно, модуль 120 определения единиц кодирования не только определяет кодированную глубину, имеющую наименьшую ошибку кодирования, но также и определяет тип сегмента в единице прогнозирования, режим прогнозирования согласно единицам прогнозирования и размер единицы преобразования для преобразования.
Ниже подробно описываются единицы кодирования согласно древовидной структуре в максимальной единице кодирования и способы определения единицы прогнозирования/сегмента и единицы преобразования согласно вариантам осуществления, раскрытым в данном документе, со ссылкой на фиг. 11-22.
Модуль 120 определения единиц кодирования может измерять ошибку кодирования более глубоких единиц кодирования согласно глубинам посредством использования оптимизации искажения в зависимости от скорости передачи на основе множителей Лагранжа.
Модуль 130 вывода выводит данные изображений максимальной единицы кодирования, которая кодируется на основе по меньшей мере одной кодированной глубины, определенной посредством модуля 120 определения единиц кодирования, и информации относительно режима кодирования согласно кодированной глубине в потоках битов.
Кодированные данные изображений могут быть получены посредством кодирования остаточных данных изображения.
Информация относительно режима кодирования согласно кодированной глубине может включать в себя информацию относительно кодированной глубины, относительно типа сегмента в единице прогнозирования, режима прогнозирования и размера единицы преобразования.
Информация относительно кодированной глубины может быть задана посредством использования информации разбиения согласно глубинам, которая указывает то, выполняется или нет кодирование для единиц кодирования нижней глубины вместо текущей глубины. Если текущая глубина текущей единицы кодирования является кодированной глубиной, данные изображений в текущей единице кодирования кодируются и выводятся, и в силу этого информация разбиения может быть задана таким образом, чтобы не разбивать текущую единицу кодирования до нижней глубины. Альтернативно, если текущая глубина текущей единицы кодирования не является кодированной глубиной, кодирование выполняется для единицы кодирования нижней глубины, и в силу этого информация разбиения может быть задана таким образом, чтобы разбивать текущую единицу кодирования для того, чтобы получать единицы кодирования нижней глубины.
Если текущая глубина не является кодированной глубиной, кодирование выполняется для единицы кодирования, которая разбивается на единицу кодирования нижней глубины. Поскольку по меньшей мере одна единица кодирования нижней глубины присутствует в одной единице кодирования текущей глубины, кодирование многократно выполняется для каждой единицы кодирования нижней глубины, и за счет этого кодирование может быть рекурсивно выполнено для единиц кодирования, имеющих идентичную глубину.
Поскольку единицы кодирования, имеющие древовидную структуру, определяются для одной максимальной единицы кодирования, и информация, по меньшей мере, относительно одного режима кодирования определяется для единицы кодирования кодированной глубины, информация, по меньшей мере, относительно одного режима кодирования может быть определена для одной максимальной единицы кодирования. Кроме того, кодированная глубина данных изображений максимальной единицы кодирования может отличаться согласно местоположениям, поскольку данные изображений иерархически разбиваются согласно глубинам, и в силу этого информация относительно кодированной глубины и режима кодирования может задаваться для данных изображений.
Соответственно, модуль 130 вывода может назначать информацию кодирования относительно соответствующей кодированной глубины и режима кодирования по меньшей мере одной из единицы кодирования, единицы прогнозирования и минимальной единицы, включенной в максимальную единицу кодирования.
Минимальная единица согласно вариантам осуществления настоящего раскрытия сущности представляет собой квадратную единицу данных, полученную посредством разбиения минимальной единицы кодирования, составляющей самую нижнюю кодированную глубину, на 4. Альтернативно, минимальная единица может представлять собой максимальную квадратную единицу данных, которая может быть включена во все из единиц кодирования, единиц прогнозирования, единиц сегментирования и единиц преобразования, включенных в максимальную единицу кодирования.
Например, информация кодирования, выводимая посредством модуля 130 вывода, может классифицироваться на информацию кодирования согласно более глубоким единицам кодирования и информацию кодирования согласно единицам прогнозирования. Информация кодирования согласно более глубоким единицам кодирования может включать в себя информацию относительно режима прогнозирования и относительно размера сегментов. Информация кодирования согласно единицам прогнозирования может включать в себя информацию относительно оцененного направления внешнего режима, относительно индекса опорного изображения внешнего режима, относительно вектора движения, относительно компонента сигнала цветности внутреннего режима и относительно способа интерполяции внутреннего режима.
Информация относительно максимального размера единицы кодирования, заданного согласно изображениям, слайсам или GOP, и информация относительно максимальной глубины могут вставляться в заголовок потока битов, набор параметров последовательности или набор параметров изображения.
Информация относительно максимального размера единицы преобразования, разрешенного относительно текущего, видео и информация относительно минимального размера единицы преобразования также может выводиться через заголовок потока битов, набор параметров последовательности или набор параметров изображения. Модуль 130 вывода может кодировать и выводить ссылочную информацию, связанную с прогнозированием, информацию прогнозирования и информацию типов слайсов, которые описываются выше со ссылкой на фиг. 1-8.
В устройстве 100 кодирования видео, более глубокая единица кодирования может представлять собой единицу кодирования, полученную посредством деления высоты или ширины единицы кодирования верхней глубины, которая на один слой выше, на два. Другими словами, когда размер единицы кодирования текущей глубины равен 2Nx2N, размер единицы кодирования нижней глубины равен NxN. Кроме того, единица кодирования с текущей глубиной, имеющей размер 2Nx2N, может включать в себя максимум 4 единицы кодирования с нижней глубиной.
Соответственно, устройство 100 кодирования видео может формировать единицы кодирования, имеющие древовидную структуру, посредством определения единиц кодирования, имеющих оптимальную форму и оптимальный размер для каждой максимальной единицы кодирования, на основе размера максимальной единицы кодирования и максимальной глубины, определенных с учетом характеристик текущего изображения. Кроме того, поскольку кодирование может выполняться для каждой максимальной единицы кодирования посредством использования любого из различных режимов прогнозирования и преобразований, оптимальный режим кодирования может быть определен с учетом характеристик единицы кодирования различных размеров изображений.
Таким образом, если изображение, имеющее высокое разрешение или большой объем данных, кодируется в традиционном макроблоке, число макроблоков в расчете на изображение чрезмерно увеличивается. Соответственно, увеличивается число фрагментов сжатой информации, сформированной для каждого макроблока, и в силу этого трудно передавать сжатую информацию, и снижается эффективность сжатия данных. Тем не менее, посредством использования устройства 100 кодирования видео, может повышаться эффективность сжатия изображений, поскольку единица кодирования регулируется с учетом характеристик изображения при увеличении максимального размера единицы кодирования с учетом размера изображения.
Устройство 100 кодирования видео по фиг. 9 может выполнять операции устройства 10 прогнозирования векторов движения по фиг. 1 или видеокодера 70 по фиг. 7.
Модуль 120 определения единиц кодирования может определять единицу прогнозирования, включающую в себя сегмент для внешнего прогнозирования согласно единицам кодирования, имеющим древовидную структуру для каждой максимальной единицы кодирования, и выполнять модуль внешнего прогнозирования.
Модуль 120 определения единиц кодирования определяет вектор движения согласно единицам прогнозирования. Кроме того, для прогнозирования векторов движения, PU-объединения или AMVP, вектор движения текущей единицы прогнозирования (сегмента) может быть прогнозирован посредством обращения к вектору движения другой единицы прогнозирования. Устройство 10 прогнозирования векторов движения может определять список возможных вариантов векторов движения текущей единицы прогнозирования для прогнозирования векторов движения. Один опорный вектор движения может быть определен из возможных вариантов векторов движения в списке возможных вариантов векторов движения. Возможный вариант единицы прогнозирования может представлять собой соседнюю единицу прогнозирования, смежную с текущей единицей прогнозирования, или совместно размещенную единицу прогнозирования в совместно размещенном изображении.
Модуль 120 определения единиц кодирования может определять то, как обращаться к вектору движения первого возможного варианта единицы прогнозирования из множества возможных вариантов единиц прогнозирования, смежных с текущей единицей прогнозирования, на основе того, представляют или нет опорное изображение первого возможного варианта единицы прогнозирования и опорное изображение текущей единицы прогнозирования собой долговременное опорное изображение.
Определяется то, представляют опорные изображения собой кратковременное или долговременное опорное изображение, на основе долговременных опорных индексов текущей единицы прогнозирования и первого возможного варианта единицы прогнозирования.
Когда опорные изображения представляют собой долговременные опорные изображения, к вектору движения возможного варианта единицы прогнозирования можно обращаться как есть без масштабирования.
Когда одно из опорных изображений представляет собой кратковременное опорное изображение, а другое представляет собой долговременное опорное изображение, может быть определено не обращаться к вектору движения первого возможного варианта единицы прогнозирования.
Когда опорные изображения представляют собой кратковременные опорные изображения, к вектору движения возможного варианта единицы прогнозирования можно обращаться после масштабирования.
Модуль 120 определения единиц кодирования может определять опорный вектор движения посредством выбора оптимального возможного варианта вектора движения из возможных вариантов векторов движения, определенных согласно возможным вариантам блоков, и затем прогнозировать и определять вектор движения текущей единицы прогнозирования посредством использования опорного вектора движения.
Модуль 120 определения единиц кодирования может определять опорный блок, указываемый посредством вектора движения текущего блока в опорном изображении текущей единицы прогнозирования, и формировать остаточные данные между опорной единицей прогнозирования и текущей единицей прогнозирования.
Соответственно, модуль 120 определения единиц кодирования может выводить остаточные данные согласно единицам прогнозирования посредством выполнения внешнего прогнозирования согласно единицам прогнозирования.
Модуль 120 определения единиц кодирования может формировать квантованные коэффициенты преобразования посредством выполнения преобразования и квантования для единиц преобразования единицы кодирования, включающих в себя остаточные данные согласно единицам прогнозирования. Соответственно, модуль 120 определения единиц кодирования может формировать квантованные коэффициенты преобразования согласно единицам преобразования.
Модуль 120 определения единиц кодирования может выполнять операции видеодекодера 80, описанного выше со ссылкой на фиг. 8, для того чтобы формировать опорное изображение для внешнего прогнозирования единицы прогнозирования.
Модуль 120 определения единиц кодирования может восстанавливать остаточные данные текущего блока посредством выполнения деквантования и обратного преобразования над принимаемыми квантованными коэффициентами преобразования текущей единицы прогнозирования. Текущая единица прогнозирования может быть восстановлена посредством выполнения компенсации движения для текущей единицы прогнозирования, кодированной через внешнее прогнозирование.
Как описано выше, модуль 120 определения единиц кодирования может определять то, как использовать вектор движения первого возможного варианта единицы прогнозирования из множества возможных вариантов единиц прогнозирования, смежных с текущей единицей прогнозирования, на основе того, представляют или нет опорное изображение первого возможного варианта единицы прогнозирования и опорное изображение текущей единицы прогнозирования собой долговременное опорное изображение.
Модуль 120 определения единиц кодирования может определять опорный вектор движения посредством выбора оптимального возможного варианта вектора движения из числа возможных вариантов векторов движения, включенных в список возможных вариантов векторов движения, и прогнозировать и определять вектор движения текущей единицы прогнозирования посредством использования опорного вектора движения.
Модуль 120 определения единиц кодирования может определять опорное изображение текущей единицы прогнозирования, указываемой посредством принимаемого опорного индекса текущей единицы прогнозирования. Опорное изображение текущей единицы прогнозирования может быть определено согласно POC, указываемому посредством опорного индекса текущей единицы прогнозирования. Опорный индекс указывает POC независимо от того, представляет опорное изображение собой долговременное или кратковременное опорное изображение, и изображение, указываемое посредством POC, может быть определено в качестве опорного изображения.
Опорная единица прогнозирования, указываемая посредством вектора движения текущей единицы прогнозирования, определяется из опорного изображения, и текущая единица прогнозирования может быть восстановлена посредством синтезирования опорной единицы прогнозирования и остаточных данных текущей единицы прогнозирования.
Соответственно, модуль 120 определения единиц кодирования может восстанавливать единицы прогнозирования посредством выполнения компенсации движения согласно единицам прогнозирования и восстанавливать текущее изображение, включающее в себя восстановленные единицы прогнозирования. Восстановленные единицы прогнозирования и восстановленное текущее изображение могут упоминаться в качестве другого прогнозного изображения и другого изображения.
Фиг. 10 является блок-схемой устройства 200 декодирования видео на основе единиц кодирования согласно древовидной структуре, согласно вариантам осуществления настоящего раскрытия сущности.
Устройство 200 декодирования видео на основе единиц кодирования согласно древовидной структуре, заключающее в себе прогнозирование видео на основе единиц кодирования, имеющих древовидную структуру, включает в себя приемное устройство 210, модуль 220 извлечения данных изображений и информации кодирования и декодер 230 данных изображений. Для удобства пояснения, "устройство 200 декодирования видео на основе единиц кодирования согласно древовидной структуре" упоминается в качестве "устройства 200 декодирования видео" в дальнейшем.
Определения различных терминов, таких как единица кодирования, глубина, единица прогнозирования, единица преобразования и информация относительно различных режимов кодирования, для операций декодирования устройства 200 декодирования видео являются идентичными определениям, описанным со ссылкой на фиг. 9 и на устройство 100 кодирования видео.
Приемное устройство 210 принимает и синтаксически анализирует поток битов кодированного видео. Модуль 220 извлечения данных изображений и информации кодирования извлекает кодированные данные изображений для каждой единицы кодирования из синтаксически проанализированного потока битов, при этом единицы кодирования имеют древовидную структуру согласно каждой максимальной единице кодирования, и выводит извлеченные данные изображений в декодер 230 данных изображений. Модуль 220 извлечения данных изображений и информации кодирования может извлекать информацию относительно максимального размера единицы кодирования текущего изображения из заголовка относительно текущего изображения, набора параметров последовательности или набора параметров изображения.
Кроме того, модуль 220 извлечения данных изображений и информации кодирования извлекает информацию относительно кодированной глубины и режима кодирования для единиц кодирования, имеющих древовидную структуру, согласно каждой максимальной единице кодирования из синтаксически проанализированного потока битов. Извлеченная информация относительно кодированной глубины и режима кодирования выводится в декодер 230 данных изображений. Другими словами, данные изображений в потоке битов разбиваются на максимальные единицы кодирования так, что декодер 230 данных изображений декодирует данные изображений для каждой максимальной единицы кодирования.
Информация относительно кодированной глубины и режима кодирования согласно максимальной единице кодирования может задаваться для информации относительно по меньшей мере одной единицы кодирования, соответствующей кодированной глубине, и информация относительно режима кодирования может включать в себя информацию относительно типа сегмента соответствующей единицы кодирования, соответствующей кодированной глубине, относительно режима прогнозирования и размера единицы преобразования. Кроме того, информация разбиения согласно глубинам может быть извлечена в качестве информации относительно кодированной глубины.
Информация относительно кодированной глубины и режима кодирования согласно каждой максимальной единице кодирования, извлеченной посредством модуля 220 извлечения данных изображений и информации кодирования, является информацией относительно определенной кодированной глубины и режима кодирования для того, чтобы формировать минимальную ошибку кодирования, когда кодер, такой как устройство 100 кодирования видео, многократно выполняет кодирование для каждой более глубокой единицы кодирования согласно глубинам согласно каждой максимальной единице кодирования. Соответственно, устройство 200 декодирования видео может восстанавливать изображение посредством декодирования данных изображений согласно кодированной глубине и режиму кодирования, который формирует минимальную ошибку кодирования.
Поскольку информация кодирования относительно кодированной глубины и режима кодирования может назначаться предварительно определенной единице данных из соответствующей единицы кодирования, единицы прогнозирования и минимальной единицы, модуль 220 извлечения данных изображений и информации кодирования может извлекать информацию относительно кодированной глубины и режима кодирования согласно предварительно определенным единицам данных. Если информация относительно кодированной глубины и режима кодирования соответствующей максимальной единицы кодирования записывается согласно каждой из предварительно определенных единиц данных, предварительно определенные единицы данных, которым назначается идентичная информация относительно кодированной глубины и режима кодирования, могут логически выводиться в качестве единиц данных, включенных в идентичную максимальную единицу кодирования.
Декодер 230 данных изображений восстанавливает текущее изображение посредством декодирования данных изображений в каждой максимальной единице кодирования на основе информации относительно кодированной глубины и режима кодирования согласно максимальным единицам кодирования. Другими словами, декодер 230 данных изображений может декодировать кодированные данные изображений на основе извлеченной информации относительно типа сегмента, режима прогнозирования и единицы преобразования для каждой единицы кодирования из единиц кодирования, имеющих в себя древовидную структуру, включенных в каждую максимальную единицу кодирования. Операции декодирования могут включать в себя прогнозирование, включающее в себя внутреннее прогнозирование и компенсацию движения, а также обратное преобразование.
Декодер 230 данных изображений может выполнять внутреннее прогнозирование или компенсацию движения согласно сегменту и режиму прогнозирования каждой единицы кодирования на основе информации относительно типа сегмента и режима прогнозирования единицы прогнозирования единицы кодирования согласно кодированным глубинам.
Помимо этого, декодер 230 данных изображений может считывать информацию относительно единицы преобразования согласно древовидной структуре для каждой единицы кодирования, с тем чтобы выполнять обратное преобразование на основе единиц преобразования для каждой единицы кодирования, для обратного преобразования для каждой максимальной единицы кодирования. Через обратное преобразование может быть восстановлено пиксельное значение пространственной области единицы кодирования.
Декодер 230 данных изображений может определять кодированную глубину текущей максимальной единицы кодирования посредством использования информации разбиения согласно глубинам. Если информация разбиения указывает то, что данные изображений более не разбиваются при текущей глубине, текущая глубина является кодированной глубиной. Соответственно, декодер 230 данных изображений может декодировать кодированные данные в текущей максимальной единице кодирования посредством использования информации относительно типа сегмента единицы прогнозирования, режима прогнозирования и размера единицы преобразования для каждой единицы кодирования, соответствующей кодированной глубине.
Другими словами, единицы данных, содержащие информацию кодирования, включающую в себя идентичную информацию разбиения, могут собираться посредством наблюдения набора информации кодирования, назначаемого для предварительно определенной единицы данных из числа единицы кодирования, единицы прогнозирования и минимальной единицы, и собранные единицы данных могут рассматриваться как одна единица данных, которая должна быть декодирована посредством декодера 230 данных изображений в одном режиме кодирования. В связи с этим, текущая единица кодирования может декодироваться посредством получения информации относительно режима кодирования для каждой единицы кодирования.
Кроме того, декодер 230 данных изображений устройства 200 декодирования видео по фиг. 10 может выполнять операции устройства 10 компенсации движения по фиг. 1 или видеодекодера 80 по фиг. 8.
Декодер 230 данных изображений может определять единицу прогнозирования для компенсации движения и выполнять компенсацию движения для каждой единицы прогнозирования, согласно единицам кодирования, имеющим древовидную структуру, для каждой максимальной единицы кодирования.
Декодер 230 данных изображений может восстанавливать остаточные данные текущего блока посредством выполнения деквантования и обратного преобразования над квантованными коэффициентами преобразования текущей единицы прогнозирования. Текущая единица прогнозирования может быть восстановлена посредством выполнения компенсации движения для текущей единицы прогнозирования, кодированной через внешнее прогнозирование.
Декодер 230 данных изображений может определять то, должен вектор движения первого возможного варианта единицы прогнозирования из множества возможных вариантов единиц прогнозирования, смежных с текущей единицей прогнозирования, использоваться как есть либо после модификации, на основе того, представляют или нет опорное изображение первого возможного варианта единицы прогнозирования и опорное изображение текущей единицы прогнозирования собой долговременное опорное изображение.
Возможный вариант единицы прогнозирования может представлять собой соседнюю единицу прогнозирования, смежную с текущей единицей прогнозирования в текущем изображении, или совместно размещенную единицу прогнозирования в совместно размещенном изображении.
Может быть определено то, представляют опорные изображения текущей единицы прогнозирования и первого возможного варианта единицы прогнозирования собой кратковременное или долговременное опорное изображение, на основе долговременных опорных индексов текущей единицы прогнозирования и первого возможного варианта единицы прогнозирования.
Когда опорные изображения представляют собой долговременные опорные изображения, вектор движения первого возможного варианта единицы прогнозирования может использоваться как есть без масштабирования.
Когда одно из опорных изображений представляет собой кратковременное опорное изображение, а другое представляет собой долговременное опорное изображение, может быть определено не обращаться к вектору движения первого возможного варианта единицы прогнозирования.
Когда опорные изображения представляют собой кратковременные опорные изображения, вектор движения первого возможного варианта единицы прогнозирования может масштабироваться для определения в качестве возможного варианта вектора движения.
Декодер 230 данных изображений может определять список возможных вариантов векторов движения, включающий в себя возможные варианты векторов движения, определенные согласно возможным вариантам блоков. Опорный вектор движения определяется посредством выбора оптимального возможного варианта вектора движения из списка возможных вариантов векторов движения, и вектор движения текущего блока может быть прогнозирован и определен посредством использования опорного вектора движения.
Декодер 230 данных изображений может определять опорное изображение текущей единицы прогнозирования согласно POC, указываемому посредством опорного индекса текущей единицы прогнозирования. Опорный индекс указывает POC независимо от того, представляет опорное изображение собой долговременное или кратковременное опорное изображение, и изображение, указываемое посредством POC, может быть определено в качестве опорного изображения.
Опорная единица прогнозирования, указываемая посредством вектора движения текущей единицы прогнозирования, определяется из опорного изображения, и текущая единица прогнозирования может быть восстановлена посредством синтезирования опорной единицы прогнозирования и остаточных данных текущей единицы прогнозирования.
Соответственно, декодер 230 данных изображений может восстанавливать единицы прогнозирования посредством выполнения компенсации движения согласно единицам прогнозирования и восстанавливать текущее изображение, включающее в себя восстановленную единицу прогнозирования. Соответственно, видео, включающее в себя последовательность изображений, может быть восстановлено по мере того, как восстанавливаются изображения. К восстановленной единице прогнозирования и восстановленному текущему изображению можно обращаться для другой единицы прогнозирования и изображения.
Таким образом, устройство 200 декодирования видео может получать информацию относительно по меньшей мере одной единицы кодирования, которая формирует минимальную ошибку кодирования, когда кодирование рекурсивно выполняется для каждой максимальной единицы кодирования, и может использовать эту информацию для того, чтобы декодировать текущее изображение. Другими словами, могут быть декодированы единицы кодирования, имеющие древовидную структуру, определенные как оптимальные единицы кодирования в каждой максимальной единице кодирования.
Соответственно, даже если данные изображений имеют высокое разрешение и большой объем данных, данные изображений могут быть эффективно декодированы и восстановлены посредством использования размера единицы кодирования и режима кодирования, которые адаптивно определяются согласно характеристикам данных изображений, посредством использования информации относительно оптимального режима кодирования, принимаемой из кодера.
Фиг. 11 является схемой для описания принципа единиц кодирования согласно вариантам осуществления настоящего раскрытия сущности.
Размер единицы кодирования может выражаться посредством "ширина x высота" и может составлять 64x64, 32x32, 16x16 и 8x8. Единица кодирования в 64x64 может разбиваться на сегменты в 64x64, 64x32, 32x64 или 32x32, и единица кодирования в 32x32 может разбиваться на сегменты в 32x32, 32x16, 16x32 или 16x16, единица кодирования в 16x16 может разбиваться на сегменты в 16x16, 16x8, 8x16 или 8x8, и единица кодирования в 8x8 может разбиваться на сегменты в 8x8, 8x4, 4x8 или 4x4.
В видеоданных 310, разрешение составляет 1920x1080, максимальный размер единицы кодирования равен 64, и максимальная глубина равна 2. В видеоданных 320, разрешение составляет 1920x1080, максимальный размер единицы кодирования равен 64, и максимальная глубина равна 3. В видеоданных 330, разрешение составляет 352x288, максимальный размер единицы кодирования равен 16, и максимальная глубина равна 1. Максимальная глубина, показанная на фиг. 11, обозначает общее число разбиений от максимальной единицы кодирования до минимальной единицы декодирования.
Если разрешение является высоким, или объем данных является большим, максимальный размер единицы кодирования может быть большим, с тем чтобы не только повышать эффективность кодирования, но также и точно отражать характеристики изображения. Соответственно, максимальный размер единицы кодирования видеоданных 310 и 320, имеющих более высокое разрешение, чем видеоданные 330, может составлять 64.
Поскольку максимальная глубина видеоданных 310 равна 2, единицы 315 кодирования видеоданных 310 могут включать в себя максимальную единицу кодирования, имеющую размер продольной оси в 64, и единицы кодирования, имеющие размеры продольной оси в 32 и 16, поскольку глубины увеличиваются на два уровня посредством разбиения максимальной единицы кодирования два раза. Когда максимальная глубина видеоданных 330 равна 1, единицы кодирования 335 видеоданных 330 могут включать в себя максимальную единицу кодирования, имеющую размер по продольной оси в 16, и единицы кодирования, имеющие размер по продольной оси в 8, поскольку глубины увеличиваются на один уровень посредством разбиения максимальной единицы кодирования один раз.
Поскольку максимальная глубина видеоданных 320 равна 3, единицы 325 кодирования видеоданных 320 могут включать в себя максимальную единицу кодирования, имеющую размер по продольной оси в 64, и единицы кодирования, имеющие размеры по продольной оси в 32, 16 и 8, поскольку глубины увеличиваются на 3 уровня посредством разбиения максимальной единицы кодирования три раза. По мере того, как увеличивается глубина, может точно выражаться подробная информация.
Фиг. 12 является блок-схемой кодера 400 изображений на основе единиц кодирования согласно вариантам осуществления настоящего раскрытия сущности.
Кодер 400 изображений выполняет операции модуля 120 определения единиц кодирования устройства 100 кодирования видео, чтобы кодировать данные изображений. Другими словами, модуль 410 внутреннего прогнозирования выполняет внутреннее прогнозирование для единиц кодирования во внутреннем режиме из текущего кадра 405, и модуль 420 оценки движения и модуль 425 компенсации движения, соответственно, выполняют взаимную оценку и компенсацию движения для единиц кодирования во взаимном режиме из текущего кадра 405 посредством использования текущего кадра 405 и опорного кадра 495.
Данные, выводимые из модуля 410 внутреннего прогнозирования, модуля 420 оценки движения и модуля 425 компенсации движения, выводятся в качестве квантованного коэффициента преобразования через преобразователь 430 и квантователь 440. Квантованный коэффициент преобразования восстанавливается в качестве данных в пространственной области через деквантователь 460 и обратный преобразователь 470, и восстановленные данные в пространственной области выводятся в качестве опорного кадра 495 после постобработки через модуль 480 удаления блочности и модуль 490 регулирования на основе адаптивного к выборке смещения (SAO). Квантованный коэффициент преобразования может выводиться в качестве потока 455 битов через энтропийный кодер 450.
Для применения кодера 400 изображений в устройстве 100 кодирования видео, все элементы кодера 400 изображений, т.е. модуль 410 внутреннего прогнозирования, модуль 420 оценки движения, модуль 425 компенсации движения, преобразователь 430, квантователь 440, энтропийный кодер 450, деквантователь 460, обратный преобразователь 470, модуль 480 удаления блочности и модуль 490 SAO-регулирования, выполняют операции на основе каждой единицы кодирования из единиц кодирования, имеющих древовидную структуру, с учетом максимальной глубины каждой максимальной единицы кодирования.
В частности, модуль 410 внутреннего прогнозирования, модуль 420 оценки движения и модуль 425 компенсации движения определяют сегменты и режим прогнозирования каждой единицы кодирования из единиц кодирования, имеющих древовидную структуру, с учетом максимального размера и максимальной глубины текущей максимальной единицы кодирования, и преобразователь 430 определяет размер единицы преобразования в каждой единице кодирования из единиц кодирования, имеющих древовидную структуру.
Подробно, модуль 420 оценки движения может прогнозировать вектор движения текущей единицы прогнозирования (сегмента) посредством обращения к вектору движения другой единицы прогнозирования для PU-объединения или AMVP. Модуль 420 оценки движения может прогнозировать вектор движения согласно способу прогнозирования векторов движения, описанному выше со ссылкой на фиг. 1-4B.
Модуль 420 оценки движения может определять опорный вектор движения посредством выбора оптимального возможного варианта вектора движения из числа возможных вариантов векторов движения, включенных в список возможных вариантов векторов движения, и прогнозировать и определять вектор движения текущей единицы прогнозирования посредством использования опорного вектора движения. Модуль 420 оценки движения может определять опорный блок, указываемый посредством вектора движения текущего блока в опорном кадре 495 текущей единицы прогнозирования, и формировать остаточные данные между опорной единицей прогнозирования и текущей единицей прогнозирования. Соответственно, модуль 420 оценки движения может выводить остаточные данные согласно единицам прогнозирования.
Кроме того, модуль 425 компенсации движения может прогнозировать вектор движения согласно способу прогнозирования векторов движения, описанному выше со ссылкой на фиг. 1-4B, и выполнять компенсацию движения посредством использования вектора движения.
Модуль 425 компенсации движения может определять опорную единицу прогнозирования, указываемую посредством вектора движения текущей единицы прогнозирования в опорном кадре 495, и текущая единица прогнозирования может быть восстановлена посредством синтезирования опорной единицы прогнозирования и остаточных данных текущей единицы прогнозирования.
Соответственно, модуль 425 компенсации движения может восстанавливать единицы прогнозирования посредством выполнения компенсации движения согласно единицам прогнозирования и восстанавливать текущее изображение, включающее в себя восстановленные единицы прогнозирования. К восстановленной единице прогнозирования и восстановленному изображению можно обращаться для другой единицы прогнозирования и изображения.
Фиг. 13 является блок-схемой декодера 500 изображений на основе единиц кодирования согласно вариантам осуществления настоящего раскрытия сущности.
Синтаксический анализатор 510 синтаксически анализирует кодированные данные изображений, которые должны быть декодированы, и информацию относительно кодирования, требуемую для декодирования, из потока 505 битов. Кодированные данные изображений выводятся в качестве обратно квантованных данных через энтропийный декодер 520 и деквантователь 530, и обратно квантованные данные восстанавливаются в данные изображений в пространственной области через обратный преобразователь 540.
Модуль 550 внутреннего прогнозирования выполняет внутреннее прогнозирование для единиц кодирования во внутреннем режиме относительно данных изображений в пространственной области, и модуль 560 компенсации движения выполняет компенсацию движения для единиц кодирования во взаимном режиме посредством использования опорного кадра 585.
Данные изображений в пространственной области, которые пропущены через модуль 550 внутреннего прогнозирования и модуль 560 компенсации движения, могут выводиться в качестве восстановленного кадра 595 после постобработки через модуль 570 удаления блочности и модуль 580 SAO-регулирования. Кроме того, данные изображений, которые постобрабатываются через модуль 570 удаления блочности и модуль 580 SAO-регулирования, могут выводиться в качестве опорного кадра 585.
Чтобы декодировать данные изображений в декодере 230 данных изображений устройства 200 декодирования видео, декодер 500 изображений может выполнять операции, которые выполняются после синтаксического анализатора 510.
Для применения декодера 500 изображений в устройстве 200 декодирования видео, все элементы декодера 500 изображений, т.е. синтаксический анализатор 510, энтропийный декодер 520, деквантователь 530, обратный преобразователь 540, модуль 550 внутреннего прогнозирования, модуль 560 компенсации движения, модуль 570 удаления блочности и модуль 580 SAO-регулирования выполняют операции на основе единиц кодирования, имеющих древовидную структуру, для каждой максимальной единицы кодирования.
В частности, модуль 550 внутреннего прогнозирования и модуль 560 компенсации движения выполняют операции на основе сегментов и режима прогнозирования для каждой из единиц кодирования, имеющих древовидную структуру, а обратный преобразователь 540 выполняет операции на основе размера единицы преобразования для каждой единицы кодирования.
Подробно, модуль 560 компенсации движения может прогнозировать вектор движения согласно способу прогнозирования векторов движения, описанному выше со ссылкой на фиг. 1-4B. Модуль 560 компенсации движения может определять опорный кадр 585, указываемый посредством POC согласно опорному индексу текущей единицы прогнозирования, определять опорную единицу прогнозирования, указываемую посредством вектора движения текущей единицы прогнозирования из опорного кадра 585, и восстанавливать текущую единицу прогнозирования посредством синтезирования опорной единицы прогнозирования и остаточных данных текущей единицы прогнозирования.
Соответственно, модуль 560 компенсации движения может восстанавливать единицы прогнозирования посредством выполнения компенсации движения согласно единицам прогнозирования и формировать восстановленное изображение, включающее в себя восстановленные единицы прогнозирования. К восстановленной единице прогнозирования и восстановленному изображению можно обращаться для другой единицы прогнозирования и другого изображения.
Фиг. 14 является схемой, иллюстрирующей более глубокие единицы кодирования согласно глубинам и сегментам согласно вариантам осуществления настоящего раскрытия сущности.
Устройство 100 кодирования видео и устройство 200 декодирования видео используют иерархические единицы кодирования с тем, чтобы учитывать характеристики изображения. Максимальная высота, максимальная ширина и максимальная глубина единиц кодирования могут быть адаптивно определены согласно характеристикам изображения или могут быть по-другому заданы пользователем. Размеры более глубоких единиц кодирования согласно глубинам могут быть определены согласно предварительно определенному максимальному размеру единицы кодирования.
В иерархической структуре 600 единиц кодирования, согласно вариантам осуществления настоящего раскрытия сущности, максимальная высота и максимальная ширина единиц кодирования равны 64, а максимальная глубина равна 4. В этом случае, максимальная глубина означает общее число раз, когда единица кодирования разбивается от максимальной единицы кодирования до минимальной единицы кодирования. Поскольку глубина увеличивается вдоль вертикальной оси иерархической структуры 600, разбиваются высота и ширина более глубокой единицы кодирования. Кроме того, единица прогнозирования и сегменты, которые являются базисами для прогнозирующего кодирования каждой более глубокой единицы кодирования, показаны вдоль горизонтальной оси иерархической структуры 600.
Другими словами, единица 610 кодирования представляет собой максимальную единицу кодирования в иерархической структуре 600, в которой глубина равна 0, а размер, т.е. высота на ширину, равен 64x64. Глубина увеличивается вдоль вертикальной оси, и имеются единица 620 кодирования, имеющая размер 32x32 и глубину 1, единица 630 кодирования, имеющая размер 16x16 и глубину 2, и единица 640 кодирования, имеющая размер 8x8 и глубину 3. Единица 640 кодирования, имеющая размер 8x8 и глубину 3, представляет собой единицу кодирования, имеющую наименьшую глубину, и минимальную единицу кодирования.
Единица прогнозирования и сегменты единицы кодирования размещаются вдоль горизонтальной оси согласно каждой глубине. Другими словами, если единица 610 кодирования, имеющая размер 64x64 и глубину 0, представляет собой единицу прогнозирования, единица прогнозирования может разбиваться на сегменты, включенные в единицу 610 кодирования, т.е. на сегмент 610, имеющий размер 64x64, сегменты 612, имеющие размер 64x32, сегменты 614, имеющие размер 32x64, или сегменты 616, имеющие размер 32x32.
Аналогично, единица прогнозирования единицы 620 кодирования, имеющей размер 32x32 и глубину в 1, может разбиваться на сегменты, включенные в единицу 620 кодирования, т.е. на сегмент 620, имеющий размер 32x32, сегменты 622, имеющие размер 32x16, сегменты 624, имеющие размер 16x32, и сегменты 626, имеющие размер 16x16.
Аналогично, единица прогнозирования единицы 630 кодирования, имеющей размер 16x16 и глубину в 2, может разбиваться на сегменты, включенные в единицу 630 кодирования, т.е. на сегмент, имеющий размер 16x16, включенный в единицу 630 кодирования, сегменты 632, имеющие размер 16x8, сегменты 634, имеющие размер 8x16, и сегменты 636, имеющие размер 8x8.
Аналогично, единица прогнозирования единицы 640 кодирования, имеющей размер 8x8 и глубину 3, может разбиваться на сегменты, включенные в единицу 640 кодирования, т.е. на сегмент, имеющий размер 8x8, включенный в единицу 640 кодирования, сегменты 642, имеющие размер 8x4, сегменты 644, имеющие размер 4x8, и сегменты 646, имеющие размер 4x4.
Чтобы определять по меньшей мере одну кодированную глубину единиц кодирования, составляющих максимальную единицу 610 кодирования, модуль 120 определения единиц кодирования устройства 100 кодирования видео выполняет кодирование для единиц кодирования, соответствующих каждой глубине, включенной в максимальную единицу 610 кодирования.
Число более глубоких единиц кодирования согласно глубинам, включающим в себя данные в идентичном диапазоне и идентичного размера, увеличивается по мере того, как увеличивается глубина. Например, четыре единицы кодирования, соответствующие глубине 2, требуются для того, чтобы охватывать данные, которые включаются в одну единицу кодирования, соответствующую глубине 1. Соответственно, чтобы сравнивать результаты кодирования идентичных данных согласно глубинам, кодируются единица кодирования, соответствующая глубине 1, и четыре единицы кодирования, соответствующие глубине 2.
Чтобы выполнять кодирование для текущей глубины из глубин, наименьшая ошибка кодирования может быть выбрана для текущей глубины посредством выполнения кодирования для каждой единицы прогнозирования в единицах кодирования, соответствующих текущей глубине, вдоль горизонтальной оси иерархической структуры 600. Альтернативно, поиск минимальной ошибки кодирования может выполняться посредством сравнения наименьших ошибок кодирования согласно глубинам, посредством выполнения кодирования для каждой глубины по мере того, как глубина увеличивается вдоль вертикальной оси иерархической структуры 600. Глубина и сегмент, имеющие минимальную ошибку кодирования в единице 610 кодирования, могут быть выбраны в качестве кодированной глубины и типа сегмента единицы 610 кодирования.
Фиг. 15 является схемой для описания взаимосвязи между единицей 710 кодирования и единицами 720 преобразования, согласно вариантам осуществления настоящего раскрытия сущности.
Устройство 100 кодирования видео или устройство 200 декодирования видео кодирует или декодирует изображение согласно единицам кодирования, имеющим размеры, меньшие или равные максимальной единице кодирования для каждой максимальной единицы кодирования. Размеры единиц преобразования для преобразования в ходе кодирования могут быть выбраны на основе единиц данных, которые не больше соответствующей единицы кодирования.
Например, в устройстве 100 кодирования видео или устройстве 200 декодирования видео, если размер единицы 710 кодирования составляет 64x64, преобразование может выполняться посредством использования единиц 720 преобразования, имеющих размер 32x32.
Кроме того, данные единицы 710 кодирования, имеющей размер 64x64, могут быть кодированы посредством выполнения преобразования для каждой из единиц преобразования, имеющих размер 32x32, 16x16, 8x8 и 4x4, которые меньше 64x64, а затем может быть выбрана единица преобразования, имеющая наименьшую ошибку кодирования.
Фиг. 16 является схемой для описания информации кодирования единиц кодирования, соответствующих кодированной глубине, согласно вариантам осуществления настоящего раскрытия сущности.
Модуль 130 вывода устройства 100 кодирования видео может кодировать и передавать информацию 800 относительно типа сегмента, информацию 810 относительно режима прогнозирования и информацию 820 относительно размера единицы преобразования для каждой единицы кодирования, соответствующей кодированной глубине, в качестве информации относительно режима кодирования.
Информация 800 указывает информацию относительно формы сегмента, полученного посредством разбиения единицы прогнозирования текущей единицы кодирования, при этом сегмент представляет собой единицу данных для прогнозирующего кодирования текущей единицы кодирования. Например, текущая единица кодирования CU_0, имеющая размер 2Nx2N, может разбиваться на любой из сегмента 802, имеющего размер 2Nx2N, сегмента 804, имеющего размер 2NxN, сегмента 806, имеющего размер Nx2N, и сегмента 808, имеющего размер NxN. Здесь, информация 800 относительно типа сегмента задается так, что она указывает одно из сегмента 804, имеющего размер 2NxN, сегмента 806, имеющего размер Nx2N, и сегмента 808, имеющего размер NxN.
Информация 810 указывает режим прогнозирования каждого сегмента. Например, информация 810 может указывать режим прогнозирующего кодирования, выполняемого для сегмента, указываемого посредством информации 800, т.е. внутренний режим 812, внешний режим 814 или режим 816 пропуска.
Информация 820 указывает единицу преобразования, на которой следует базироваться, когда преобразование выполняется для текущей единицы кодирования. Например, единица преобразования может представлять собой первую единицу 822 внутреннего преобразования, вторую единицу 824 внутреннего преобразования, первую единицу 826 внешнего преобразования или вторую единицу 828 внешнего преобразования.
Модуль 220 извлечения данных изображений и информации кодирования устройства 200 декодирования видео может извлекать и использовать информацию 800, 810 и 820 для декодирования согласно каждой более глубокой единице кодирования.
Фиг. 17 является схемой более глубоких единиц кодирования согласно глубинам, согласно вариантам осуществления настоящего раскрытия сущности.
Информация разбиения может быть использована для того, чтобы указывать изменение глубины. Информация разбиения указывает то, разбивается или нет единица кодирования текущей глубины на единицы кодирования нижней глубины.
Единица 910 прогнозирования для прогнозирующего кодирования единицы 900 кодирования, имеющей глубину 0 и размер 2N_0x2N_0, может включать в себя сегменты типа 912 сегмента, имеющего размер 2N_0x2N_0, типа 914 сегмента, имеющего размер 2N_0xN_0, типа 916 сегмента, имеющего размер N_0x2N_0, и типа 918 сегмента, имеющего размер N_0xN_0. Фиг. 17 иллюстрирует только типы 912-918 сегментов, которые получаются посредством симметричного разбиения единицы 910 прогнозирования, но тип сегмента не ограничен этим, и сегменты единицы 910 прогнозирования могут включать в себя асимметричные сегменты, сегменты, имеющие предварительно определенную форму, и сегменты, имеющие геометрическую форму.
Прогнозирующее кодирование многократно выполняется для одного сегмента, имеющего размер 2N_0x2N_0, двух сегментов, имеющих размер 2N_0xN_0, двух сегментов, имеющих размер N_0x2N_0, и четырех сегментов, имеющих размер N_0xN_0, согласно каждому типу сегмента. Прогнозирующее кодирование во внутреннем режиме и взаимном режиме может выполняться для сегментов, имеющих размеры 2N_0x2N_0, N_0x2N_0, 2N_0xN_0 и N_0xN_0. Прогнозирующее кодирование в режиме пропуска выполняется только для сегмента, имеющем размер 2N_0x2N_0.
Если ошибка кодирования является наименьшей в одном из типов 912-916 сегментов, единица 910 прогнозирования может не разбиваться на нижнюю глубину.
Если ошибка кодирования является наименьшей в типе 918 сегмента, глубина изменяется с 0 на 1, чтобы разбивать тип 918 сегмента, на этапе 920, и кодирование многократно выполняется для единиц 930 кодирования, имеющих глубину в 2 и размер N_0xN_0, чтобы выполнять поиск минимальной ошибки кодирования.
Единица 940 прогнозирования для прогнозирующего кодирования единицы 930 кодирования, имеющей глубину в 1 и размер 2N_1x2N_1 (=N_0xN_0), может включать в себя сегменты типа 942 сегмента, имеющего размер 2N_1x2N_1, типа 944 сегмента, имеющего размер 2N_1xN_1, типа 946 сегмента, имеющего размер N_1x2N_1, и типа 948 сегмента, имеющего размер N_1xN_1.
Если ошибка кодирования является наименьшей в типе 948 сегмента, глубина изменяется от 1 до 2, чтобы разбивать тип 948 сегмента, на этапе 950, и кодирование многократно выполняется для единиц 960 кодирования, которые имеют глубину в 2 и размер N_2xN_2, чтобы выполнять поиск минимальной ошибки кодирования.
Когда максимальная глубина составляет d, операция разбиения согласно каждой глубине может выполняться до того, когда глубина становится d-1, и информация разбиения может быть кодирована до того, когда глубина составляет одно из 0-d-2. Другими словами, когда кодирование выполняется до того, когда глубина составляет d-1, после того как единица кодирования, соответствующая глубине d-2, разбивается на этапе 970, единица 990 прогнозирования для прогнозирующего кодирования единицы 980 кодирования, имеющей глубину d-1 и размер 2N_(d-1)x2N_(d-1), может включать в себя сегменты типа 992 сегмента, имеющего размер 2N_(d-1)x2N_(d-1), типа 994 сегмента, имеющего размер 2N_(d-1)xN_(d-1), типа 996 сегмента, имеющего размер N_(d-1)x2N_(d-1), и типа 998 сегмента, имеющего размер N_(d-1)xN_(d-1).
Прогнозирующее кодирование может многократно выполняться для одного сегмента, имеющего размер 2N_(d-1)x2N_(d-1), двух сегментов, имеющих размер 2N_(d-1)xN_(d-1), двух сегментов, имеющих размер N_(d-1)x2N_(d-1), четырех сегментов, имеющих размер N_(d-1)xN_(d-1), из типов 992-998 сегментов, чтобы выполнять поиск типа сегмента, имеющего минимальную ошибку кодирования.
Даже когда тип 998 сегмента имеет минимальную ошибку кодирования, поскольку максимальная глубина составляет d-1, единица кодирования CU_(d-1), имеющая глубину d-1, более не разбивается до нижней глубины, и кодированная глубина для единиц кодирования, составляющих текущую максимальную единицу 900 кодирования, определяется как d-1, и тип сегмента текущей максимальной единицы 900 кодирования может быть определен как N_(d-1)xN_(d-1). Кроме того, поскольку максимальная глубина составляет d, и минимальная единица 980 кодирования, имеющая самую нижнюю глубину d-1, более не разбивается до нижней глубины, информация разбиения для минимальной единицы 980 кодирования не задается.
Единица 999 данных может представлять собой "минимальную единицу" для текущей максимальной единицы кодирования. Минимальная единица согласно вариантам осуществления настоящего раскрытия сущности может представлять собой квадратную единицу данных, полученную посредством разбиения минимальной единицы 980 кодирования на 4. Посредством многократного выполнения кодирования, устройство 100 кодирования видео может выбирать глубину, имеющую наименьшую ошибку кодирования, посредством сравнения ошибок кодирования согласно глубинам единицы 900 кодирования для того, чтобы определять кодированную глубину и задавать соответствующий тип сегмента и режим прогнозирования в качестве режима кодирования кодированной глубины.
Также, минимальные ошибки кодирования согласно глубинам сравниваются во всех глубинах 1-d, и глубина, имеющая наименьшую ошибку кодирования, может быть определена в качестве кодированной глубины. Кодированная глубина, тип сегмента единицы прогнозирования и режим прогнозирования могут быть кодированы и переданы в качестве информации относительно режима кодирования. Кроме того, поскольку единица кодирования разбивается от глубины в 0 до кодированной глубины, только информация разбиения кодированной глубины задается равной 0, а информация разбиения глубин за исключением кодированной глубины задается равной 1.
Модуль 220 извлечения данных изображений и информации кодирования устройства 200 декодирования видео может извлекать и использовать информацию относительно кодированной глубины и единицы прогнозирования единицы 900 кодирования для того, чтобы декодировать тип 912 сегмента. Устройство 200 декодирования видео может определять глубину, при которой информация разбиения равна 0, в качестве кодированной глубины посредством использования информации разбиения согласно глубинам и использовать информацию относительно режима кодирования соответствующей глубины для декодирования.
Фиг. 18-18 являются схемами для описания взаимосвязи между единицами 1010 кодирования, единицами 1060 прогнозирования и единицами 1070 преобразования, согласно вариантам осуществления настоящего раскрытия сущности.
Единицы 1010 кодирования представляют собой единицы кодирования, имеющие древовидную структуру, согласно кодированным глубинам, определенным посредством устройства 100 кодирования видео, в максимальной единице кодирования. Единицы 1060 прогнозирования представляют собой сегменты единиц прогнозирования каждой из единиц 1010 кодирования, и единицы 1070 преобразования представляют собой единицы преобразования каждой из единиц 1010 кодирования.
Когда глубина максимальной единицы кодирования равна 0 в единицах 1010 кодирования, глубины единиц 1012 и 1054 кодирования равны 1, глубины единиц 1014, 1016, 1018, 1028, 1050 и 1052 кодирования равны 2, глубины единиц 1020, 1022, 1024, 1026, 1030, 1032 и 1048 кодирования равны 3, а глубины единиц 1040, 1042, 1044 и 1046 кодирования равны 4.
В единицах прогнозирования 1060, некоторые единицы 1014, 1016, 1022, 1032, 1048, 1050, 1052 и 1054 кодирования получаются посредством разбиения единиц кодирования в единицах 1010 кодирования. Другими словами, типы сегментов в единицах 1014, 1022, 1050 и 1054 кодирования имеют размер 2NxN, типы сегментов в единицах 1016, 1048 и 1052 кодирования имеют размер Nx2N, и тип сегмента единицы 1032 кодирования имеет размер NxN. Единицы прогнозирования и сегменты единиц 1010 кодирования меньше или равны каждой единице кодирования.
Преобразование или обратное преобразование выполняется для данных изображений единицы 1052 кодирования в единицах 1070 преобразования в единице данных, которая меньше единицы 1052 кодирования. Кроме того, единицы 1014, 1016, 1022, 1032, 1048, 1050 и 1052 кодирования в единицах 1070 преобразования отличаются от единиц кодирования в единицах 1060 прогнозирования с точки зрения размеров и форм. Другими словами, устройства 100 и 200 кодирования и декодирования видео могут выполнять внутреннее прогнозирование, оценку движения, компенсацию движения, преобразование и обратное преобразование по отдельности для единицы данных в идентичной единице кодирования.
Соответственно, кодирование рекурсивно выполняется для каждой из единиц кодирования, имеющих иерархическую структуру в каждой области максимальной единицы кодирования для того, чтобы определять оптимальную единицу кодирования, и за счет этого могут быть получены единицы кодирования, имеющие рекурсивную древовидную структуру. Информация кодирования может включать в себя информацию разбиения относительно единицы кодирования, информацию относительно типа сегмента, информацию относительно режима прогнозирования и информацию относительно размера единицы преобразования. Таблица 1 показывает информацию кодирования, которая может задаваться посредством устройств 100 и 200 кодирования и декодирования видео.
Внешний
Пропуск (только 2Nx2N)
2NxN
Nx2N
NxN
2NxnD
nLx2N
nRx2N
N/2xN/2 (асимметричный тип)
Модуль 130 вывода устройства 100 кодирования видео может выводить информацию кодирования относительно единиц кодирования, имеющих древовидную структуру, и модуль 220 извлечения данных изображений и информации кодирования устройства 200 декодирования видео может извлекать информацию кодирования относительно единиц кодирования, имеющих древовидную структуру, из принимаемого потока битов.
Информация разбиения указывает то, разбивается или нет текущая единица кодирования на единицы кодирования нижней глубины. Если информация разбиения текущей глубины d равна 0, глубина, при которой текущая единица кодирования более не разбивается в нижнюю глубину, является кодированной глубиной, и в силу этого информация относительно типа сегмента, режима прогнозирования и размера единицы преобразования может быть задана для кодированной глубины. Если текущая единица кодирования дополнительно разбивается согласно информации разбиения, кодирование независимо выполняется для четырех разбитых единиц кодирования нижней глубины.
Режим прогнозирования может представлять собой одно из внутреннего режима, внешнего режима и режима пропуска. Внутренний режим и внешний режим могут быть заданы во всех типах сегментов, а режим пропуска задается только в типе сегмента, имеющем размер 2Nx2N.
Информация относительно типа сегмента может указывать типы симметричных сегментов, имеющих размеры 2Nx2N, 2NxN, Nx2N и NxN, которые получаются посредством симметричного разбиения высоты или ширины единицы прогнозирования, и типы асимметричных сегментов, имеющих размеры 2NxnU, 2NxnD, nLx2N и nRx2N, которые получаются посредством асимметричного разбиения высоты или ширины единицы прогнозирования. Типы асимметричных сегментов, имеющих размеры 2NxnU и 2NxnD, могут быть получены, соответственно, посредством разбиения высоты единицы прогнозирования в 1:3 и 3:1, а типы асимметричных сегментов, имеющих размеры nLx2N, и nRx2N, могут быть получены, соответственно, посредством разбиения ширины единицы прогнозирования в 1:3 и 3:1.
Размер единицы преобразования может задаваться как два типа во внутреннем режиме и два типа во взаимном режиме. Другими словами, если информация разбиения единицы преобразования равна 0, размер единицы преобразования может составлять 2Nx2N, что представляет собой размер текущей единицы кодирования. Если информация разбиения единицы преобразования равна 1, единицы преобразования могут быть получены посредством разбиения текущей единицы кодирования. Кроме того, если тип сегмента текущей единицы кодирования, имеющей размер 2Nx2N, представляет собой тип симметричного сегмента, размер единицы преобразования может составлять NxN, а если тип сегмента текущей единицы кодирования представляет собой тип асимметричного сегмента, размер единицы преобразования может составлять N/2xN/2.
Информация кодирования относительно единиц кодирования, имеющих древовидную структуру, может включать в себя по меньшей мере одну из единицы кодирования, соответствующей кодированной глубине, единицы прогнозирования и минимальной единицы. Единица кодирования, соответствующая кодированной глубине, может включать в себя по меньшей мере одну из единицы прогнозирования и минимальной единицы, содержащей идентичную информацию кодирования.
Соответственно, определяется то, включаются или нет смежные единицы данных в идентичную единицу кодирования, соответствующую кодированной глубине, посредством сравнения информации кодирования смежных единиц данных. Кроме того, соответствующая единица кодирования, соответствующая кодированной глубине, определяется посредством использования информации кодирования единицы данных, и за счет этого может быть определено распределение кодированных глубин в максимальной единице кодирования.
Соответственно, если текущая единица кодирования прогнозируется на основе информации кодирования смежных единиц данных, можно обращаться непосредственно к информации кодирования единиц данных в более глубоких единицах кодирования, смежных с текущей единицей кодирования, и она может использоваться.
Альтернативно, если текущая единица кодирования прогнозируется на основе информации кодирования смежных единиц данных, единицы данных, смежные с текущей единицей кодирования, ищутся с использованием кодированной информации единиц данных, и к искомым смежным единицам кодирования можно обращаться для прогнозирования текущей единицы кодирования.
Фиг. 21 является схемой для описания взаимосвязи между единицей кодирования, единицей прогнозирования и единицей преобразования, согласно информации режима кодирования по таблице 1.
Максимальная единица 1300 кодирования включает в себя единицы 1302, 1304, 1306, 1312, 1314, 1316 и 1318 кодирования кодированных глубин. Здесь, поскольку единица 1318 кодирования представляет собой единицу кодирования кодированной глубины, информация разбиения может задаваться равной 0. Информация относительно типа сегмента единицы 1318 кодирования, имеющей размер 2Nx2N, может задаваться как одно из типа 1322 сегмента, имеющего размер 2Nx2N, типа 1324 сегмента, имеющего размер 2NxN, типа 1326 сегмента, имеющего размер Nx2N, типа 1328 сегмента, имеющего размер NxN, типа 1332 сегмента, имеющего размер 2NxnU, типа 1334 сегмента, имеющего размер 2NxnD, типа 1336 сегмента, имеющего размер nLx2N, и типа 1338 сегмента, имеющего размер nRx2N.
Информация разбиения (флаг TU-размера) единицы преобразования представляет собой тип индекса преобразования. Размер единицы преобразования, соответствующей индексу преобразования, может изменяться согласно типу единицы прогнозирования или типу сегмента единицы кодирования.
Например, когда тип сегмента задается как симметричный, т.е. тип 1322, 1324, 1326 или 1328 сегмента, единица 1342 преобразования, имеющая размер 2Nx2N, задается, если флаг TU-размера единицы преобразования равен 0, и единица 1344 преобразования, имеющая размер NxN, задается, если флаг TU-размера равен 1.
Когда тип сегмента задается как асимметричный, т.е. тип 1332, 1334, 1336 или 1338 сегмента, единица 1352 преобразования, имеющая размер 2Nx2N, задается, если флаг TU-размера равен 0, и единица 1354 преобразования, имеющая размер N/2xN/2 задается, если флаг TU-размера равен 1.
Ссылаясь на фиг. 21, флаг TU-размера представляет собой флаг, имеющий значение в 0 или 1, но флаг TU-размера не ограничивается 1 битом, и может иерархически разбиваться единица преобразования, имеющая древовидную структуру, в то время как флаг TU-размера увеличивается от 0. Информация разбиения (флаг TU-размера) единицы преобразования может быть примером индекса преобразования.
В этом случае, размер единицы преобразования, которая фактически использована, может выражаться посредством использования флага TU-размера единицы преобразования, согласно варианту осуществления согласно настоящему раскрытию сущности, вместе с максимальным размером и минимальным размером единицы преобразования. Устройство 100 кодирования видео допускает кодирование информации размера максимальных единиц преобразования, информации размера минимальных единиц преобразования и флага максимального TU-размера. Результат кодирования информации размера максимальных единиц преобразования, информации размера минимальных единиц преобразования и флага максимального TU-размера может быть вставлен в SPS. Устройство 200 декодирования видео может декодировать видео посредством использования информации размера максимальных единиц преобразования, информации размера минимальных единиц преобразования и флага максимального TU-размера.
Например, (a) если размер текущей единицы кодирования равен 64x64, и размер максимальной единицы преобразования равен 32x32, (a-1) то размер единицы преобразования может составлять 32x32, когда флаг TU-размера равен 0, (a-2) может составлять 16x16, когда флаг TU-размера равен 1, и (a-3) может составлять 8x8, когда флаг TU-размера равен 2.
В качестве другого примера, (b) если размер текущей единицы кодирования равен 32x32, и размер минимальной единицы преобразования равен 32x32, (b-1) то размер единицы преобразования может составлять 32x32, когда флаг TU-размера равен 0. Здесь, флаг TU-размера не может задаваться равным значению, отличному от 0, поскольку размер единицы преобразования не может составлять меньше 32x32.
В качестве другого примера, (c) если размер текущей единицы кодирования равен 64x64, и флаг максимального TU-размера равен 1, то флаг TU-размера может составлять 0 или 1. Здесь, флаг TU-размера не может задаваться равным значению, отличному от 0 или 1.
Таким образом, если задается то, что флагом максимального TU-размера является MaxTransformSizelndex, размером минимальной единицы преобразования является MinTransformSize, а размером единицы преобразования является RootTuSize, когда флаг TU-размера равен 0, то текущий размер минимальной единицы преобразования CurrMinTuSize, который может быть определен в текущей единице кодирования, может быть задан посредством уравнения (1):
CurrMinTuSize=max(MinTransformSize, RootTuSize/(2^MaxTransformSizeIndex)) (1)
По сравнению с размером текущей минимальной единицы преобразования CurrMinTuSize, который может быть определен в текущей единице кодирования, размер единицы преобразования RootTuSize, когда флаг TU-размера равен 0, может обозначать размер максимальной единицы преобразования, который может быть выбран в системе. В уравнении (1), RootTuSize/(2^MaxTransformSizeIndex) обозначает размер единицы преобразования, когда размер единицы преобразования RootTuSize, когда флаг TU-размера равен 0, разбивается число раз, соответствующее флагу максимального TU-размера, а MinTransformSize обозначает минимальный размер преобразования. Таким образом, меньшее значение из RootTuSize/(2^MaxTransformSizeIndex) и MinTransformSize может представлять собой размер текущей минимальной единицы преобразования CurrMinTuSize, который может быть определен в текущей единице кодирования.
Согласно варианту осуществления согласно настоящему раскрытию сущности, размер максимальной единицы преобразования RootTuSize может варьироваться согласно типу режима прогнозирования.
Например, если текущий режим прогнозирования представляет собой внешний режим, то RootTuSize может быть определен посредством использования нижеприведенного уравнения (2). В уравнении (2), MaxTransformSize обозначает размер максимальной единицы преобразования, и PUSize обозначает размер текущей единицы прогнозирования:
RootTuSize=min(MaxTransformSize, PUSize) (2)
Иными словами, если текущий режим прогнозирования представляет собой внешний режим, размер единицы преобразования RootTuSize, когда флаг TU-размера равен 0, может быть меньшим значением из размера максимальной единицы преобразования и размера текущей единицы прогнозирования.
Если режим прогнозирования текущей единицы сегментирования представляет собой внутренний режим, RootTuSize может быть определен посредством использования нижеприведенного уравнения (3). В уравнении (3), PartitionSize обозначает размер текущей единицы сегментирования:
RootTuSize=min(MaxTransformSize, PartitionSize) (3)
Иными словами, если текущий режим прогнозирования представляет собой внутренний режим, размер единицы преобразования RootTuSize, когда флаг TU-размера равен 0, может быть меньшим значением из размера максимальной единицы преобразования и размера текущей единицы сегментирования.
Тем не менее, размер текущей максимальной единицы преобразования RootTuSize, который варьируется согласно типу режима прогнозирования в единице сегментирования, является просто примером, и настоящее раскрытие сущности не ограничено этим.
Согласно способу кодирования видео на основе единиц кодирования, имеющих древовидную структуру, как описано со ссылкой на фиг. 9-21, данные изображений пространственной области кодируются для каждой единицы кодирования древовидной структуры. Согласно способу декодирования видео на основе единиц кодирования, имеющих древовидную структуру, декодирование выполняется для каждой максимальной единицы кодирования для того, чтобы восстанавливать данные изображений пространственной области. Таким образом, могут быть восстановлены изображение и видео, которое является последовательностью изображений. Восстановленное видео может воспроизводиться посредством устройства воспроизведения, сохраняться на носителе хранения данных или передаваться через сеть.
Варианты осуществления согласно настоящему раскрытию сущности могут быть записаны в качестве компьютерной программы и могут быть реализованы в цифровых компьютерах общего назначения, которые выполняют программы с использованием машиночитаемого носителя записи. Примеры машиночитаемого носителя записи включают в себя магнитные носители хранения данных (например, ROM, гибкие диски, жесткие диски и т.д.) и оптические носители записи (например, CD-ROM или DVD).
Для удобства описания, способ кодирования видео согласно способу прогнозирования векторов движения, описанному со ссылкой на фиг. 1-21, обобщенно упоминается в качестве "способа кодирования видео согласно настоящему раскрытию сущности". Помимо этого, способ декодирования видео согласно способу прогнозирования векторов движения, описанному со ссылкой на фиг. 1-21, упоминается в качестве "способа декодирования видео согласно настоящему раскрытию сущности".
Кроме того, устройство кодирования видео, включающее в себя устройство 20 внешнего прогнозирования, видеокодер 70, видеодекодер 80, устройство 100 кодирования видео или кодер 400 изображений, которые описаны со ссылкой на фиг. 1-21, упоминается в качестве "устройства кодирования видео согласно настоящему раскрытию сущности". Помимо этого, устройство декодирования видео, включающее в себя устройство 20 внешнего прогнозирования, видеодекодер 80, устройство 200 декодирования видео или декодер 500 изображений, которые описаны со ссылкой на фиг. 1-21, упоминается в качестве "устройства декодирования видео согласно настоящему раскрытию сущности".
Ниже подробно описывается машиночитаемый носитель записи, сохраняющий программу, например, диск 26000, согласно вариантам осуществления настоящего раскрытия сущности.
Фиг. 22 является схемой физической структуры диска 26000, на котором сохраняется программа, согласно вариантам осуществления настоящего раскрытия сущности. Диск 26000, который представляет собой носитель хранения данных, может представлять собой жесткий диск, диск на основе постоянного запоминающего устройства на компакт-дисках (CD-ROM), Blu-Ray-диск или универсальный цифровой диск (DVD). Диск 26000 включает в себя множество концентрических дорожек Tr, которые разделяются на конкретное число секторов Se в направлении вдоль окружности диска 26000. В конкретной области диска 26000 может назначаться и сохраняться программа, которая осуществляет способ определения параметров квантования, способ кодирования видео и способ декодирования видео, описанные выше.
Ниже описывается компьютерная система, осуществляемая с использованием носителя хранения данных, который сохраняет программу для осуществления способа кодирования видео и способа декодирования видео, как описано выше, со ссылкой на фиг. 23.
Фиг. 23 является схемой накопителя 26800 на дисках для записи и считывания программы посредством использования диска 26000. Компьютерная система 26700 может сохранять программу, которая осуществляет по меньшей мере один из способа кодирования видео и способа декодирования видео согласно вариантам осуществления настоящего раскрытия сущности, на диске 26000 через накопитель 26800 на дисках. Чтобы выполнять программу, сохраненную на диске 26000 в компьютерной системе 26700, программа может считываться с диска 26000 и передаваться в компьютерную систему 26700 посредством использования накопителя 26800 на дисках.
Программа, которая осуществляет по меньшей мере один из способа кодирования видео и способа декодирования видео согласно вариантам осуществления настоящего раскрытия сущности, может быть сохранена не только на диске 26000, проиллюстрированном на фиг. 22 или 23, но также и на карте памяти, ROM-кассете или полупроводниковом накопителе (SSD).
Ниже описывается система, к которой применяются способ кодирования видео и способ декодирования видео, описанные выше.
Фиг. 24 является схемой общей структуры системы 11000 предоставления контента для предоставления услуг распространения контента. Зона обслуживания системы связи разделяется на соты предварительно определенного размера, и беспроводные базовые станции 11700, 11800, 11900 и 12000 устанавливаются в этих сотах, соответственно.
Система 11000 предоставления контента включает в себя множество независимых устройств. Например, множество независимых устройств, таких как компьютер 12100, персональное цифровое устройство 12200 (PDA), видеокамера 12300 и мобильный телефон 12500, подключаются к Интернету 11100 через поставщика 11200 Интернет-услуг, сеть 11400 связи и беспроводные базовые станции 11700, 11800, 11900 и 12000.
Тем не менее, система 11000 предоставления контента не ограничивается тем, что проиллюстрировано на фиг. 24, и устройства могут избирательно подключаться к ней. Множество независимых устройств могут подключаться к сети 11400 связи непосредственно, а не через беспроводные базовые станции 11700, 11800, 11900 и 12000.
Видеокамера 12300 представляет собой устройство формирования изображений, например, цифровую видеокамеру, которая допускает захват видеоизображений. Мобильный телефон 12500 может использовать по меньшей мере один способ связи из ряда различных протоколов, например, системы персональной цифровой связи (PDC), множественного доступа с кодовым разделением каналов (CDMA), широкополосного множественного доступа с кодовым разделением каналов (W-CDMA), глобальной системы мобильной связи (GSM) и системы персональных мобильных телефонов (PHS).
Видеокамера 12300 может подключаться к серверу 11300 потоковой передачи через беспроводную базовую станцию 11900 и сеть 11400 связи. Сервер 11300 потоковой передачи дает возможность передачи контента, принимаемого от пользователя через видеокамеру 12300, в потоковом режиме через широковещательную передачу в реальном времени. Контент, принимаемый из видеокамеры 12300, может быть кодирован с использованием видеокамеры 12300 или сервера 11300 потоковой передачи. Видеоданные, захваченные посредством видеокамеры 12300, могут быть переданы на сервер 11300 потоковой передачи через компьютер 12100.
Видеоданные, захваченные посредством камеры 12600, также могут быть переданы на сервер 11300 потоковой передачи через компьютер 12100. Камера 12600 представляет собой устройство формирования изображений, допускающее захват как неподвижных изображений, так и видеоизображений, аналогично цифровой камере. Видеоданные, захваченные посредством камеры 12600, могут быть кодированы с использованием камеры 12600 или компьютера 12100. Программное обеспечение, которое выполняет кодирование и декодирование видео, может быть сохранено на машиночитаемом носителе записи, например, на CD-ROM-диске, гибком диске, жестком диске, SSD или карте памяти, которая может быть доступной посредством компьютера 12100.
Если видеоданные захватываются посредством камеры, встроенной в мобильный телефон 12500, видеоданные могут быть приняты из мобильного телефона 12500.
Видеоданные также могут быть кодированы посредством системы на больших интегральных схемах (LSI), установленной в видеокамере 12300, мобильном телефоне 12500 или камере 12600.
Система 11000 предоставления контента может кодировать данные контента, записанные пользователем с использованием видеокамеры 12300, камеры 12600, мобильного телефона 12500 или другого устройства формирования изображений, например, контент, записанный во время концерта, и передавать кодированные данные контента на сервер 11300 потоковой передачи. Сервер 11300 потоковой передачи может передавать кодированные данные контента в типе потокового контента другим клиентам, которые запрашивают данные контента.
Клиенты представляют собой устройства, допускающие декодирование кодированных данных контента, например, компьютер 12100, PDA 12200, видеокамеру 12300 или мобильный телефон 12500. Таким образом, система 11000 предоставления контента дает возможность клиентам принимать и воспроизводить кодированные данные контента. Кроме того, система 11000 предоставления контента дает возможность клиентам принимать кодированные данные контента и декодировать и воспроизводить кодированные данные контента в реальном времени, в силу этого обеспечивая персональную широковещательную передачу.
Операции кодирования и декодирования множества независимых устройств, включенных в систему 11000 предоставления контента, могут быть аналогичными операциям кодирования и декодирования устройства кодирования видео и устройства декодирования видео согласно вариантам осуществления настоящего раскрытия сущности.
Ниже подробнее описывается мобильный телефон 12500, включенный в систему 11000 предоставления контента согласно вариантам осуществления настоящего раскрытия сущности, со ссылкой на фиг. 25 и 26.
Фиг. 25 иллюстрирует внешнюю конструкцию мобильного телефона 12500, к которому применяются способ кодирования видео и способ декодирования видео, согласно вариантам осуществления настоящего раскрытия сущности. Мобильный телефон 12500 может представлять собой смартфон, функции которого не ограничены, и большое число функций которого может изменяться или дополняться.
Мобильный телефон 12500 включает в себя внутреннюю антенну 12510, через которую можно обмениваться радиочастотным (RF) сигналом с беспроводной базовой станцией 12000 по фиг. 21, и включает в себя экран 12520 отображения для отображения изображений, захватываемых посредством камеры 12530, или изображений, которые принимаются через антенну 12510 и декодируются, например, жидкокристаллический дисплей (LCD) или экран на органических светоизлучающих диодах (OLED). Мобильный телефон 12500 включает в себя панель 12540 управления, включающую в себя кнопку управления и сенсорную панель. Если экран 12520 отображения представляет собой сенсорный экран, панель 12540 управления дополнительно включает в себя панель с сенсорным управлением экрана 12520 отображения. Мобильный телефон 12500 включает в себя динамик 12580 для вывода речи и звука или другой тип модуля звукового вывода и микрофон 12550 для ввода речи и звука или другой тип модуля звукового ввода. Мобильный телефон 12500 дополнительно включает в себя камеру 12530, к примеру, камеру на основе прибора с зарядовой связью (CCD), для того чтобы захватывать видеоизображения и неподвижные изображения. Мобильный телефон 12500 дополнительно может включать в себя носитель 12570 хранения данных для сохранения кодированных/декодированных данных, например, видеоизображений или неподвижных изображений, захваченных посредством камеры 12530, принимаемых по электронной почте или согласно различными способами; и гнездо 12560, через которое носитель 12570 хранения данных загружается в мобильный телефон 12500. Носитель 12570 хранения данных может представлять собой флэш-память, например, карту по стандарту Secure Digital (SD) или электрически стираемое программируемое постоянное запоминающее устройство (EEPROM), включенное в пластиковый корпус.
Фиг. 26 иллюстрирует внутреннюю конструкцию мобильного телефона 12500, согласно вариантам осуществления настоящего раскрытия сущности. Чтобы систематически управлять частями мобильного телефона 12500, включающими в себя экран 12520 отображения и панель 12540 управления, схема 12700 электропитания, контроллер 12640 функционального ввода, модуль 12720 кодирования изображений, интерфейс 12630 камеры, жидкокристаллический контроллер 12620, модуль 12690 декодирования изображений, мультиплексор/демультиплексор 12680, модуль 12670 записи/считывания, модуль 12660 модуляции/демодуляции и звуковой процессор 12650 подключаются к центральному контроллеру 12710 через шину 12730 синхронизации.
Если пользователь нажимает кнопку включения питания и переключается из состояния отключенного питания в состояние включенного питания, схема 12700 электропитания подает питание во все части мобильного телефона 12500 из аккумуляторной батареи, в силу этого переводя мобильный телефон 12500 в рабочий режим.
Центральный контроллер 12710 включает в себя центральный процессор (CPU), ROM и RAM.
В то время, когда мобильный телефон 12500 передает передаваемые данные наружу, цифровой сигнал формируется посредством мобильного телефона 12500 под управлением центрального контроллера 12710. Например, звуковой процессор 12650 может формировать цифровой звуковой сигнал, модуль 12720 кодирования изображений может формировать сигнал цифрового изображения, и текстовые данные сообщения могут быть сформированы через панель 12540 управления и контроллер 12640 функционального ввода. Когда цифровой сигнал передается в модуль 12660 модуляции/демодуляции под управлением центрального контроллера 12710, модуль 12660 модуляции/демодуляции модулирует полосу частот цифрового сигнала, и схема 12610 связи выполняет цифро-аналоговое преобразование (DAC) и преобразование частоты для модулированного по полосе частот цифрового звукового сигнала. Передаваемый сигнал, выводимый из схемы 12610 связи, может быть передан в базовую станцию для речевой связи или в беспроводную базовую станцию 12000 через антенну 12510.
Например, когда мобильный телефон 12500 находится в режиме разговора, звуковой сигнал, полученный через микрофон 12550, преобразуется в цифровой звуковой сигнал посредством звукового процессора 12650, под управлением центрального контроллера 12710. Цифровой звуковой сигнал может быть преобразован в сигнал преобразования через модуль 12660 модуляции/демодуляции и схему 12610 связи и может быть передан через антенну 12510.
Когда текстовое сообщение, например, почтовое сообщение, передается в режиме передачи данных, текстовые данные текстового сообщения вводятся через панель 12540 управления и передаются в центральный контроллер 12710 через контроллер 12640 функционального ввода. Под управлением центрального контроллера 12710, текстовые данные преобразуются в передаваемый сигнал через модуль 12660 модуляции/демодуляции и схему 12610 связи и передаются в беспроводную базовую станцию 12000 через антенну 12510.
Чтобы передавать данные изображений в режиме передачи данных, данные изображений, захваченные посредством камеры 12530, предоставляются в модуль 12720 кодирования изображений через интерфейс 12630 камеры. Захваченные данные изображений могут быть непосредственно отображены на экране 12520 отображения через интерфейс 12630 камеры и жидкокристаллический контроллер 12620.
Структура модуля 12720 кодирования изображений может соответствовать структуре устройства 100 кодирования видео, описанного выше. Модуль 12720 кодирования изображений может преобразовывать данные изображений, принятые из камеры 12530, в сжатые и кодированные данные изображений согласно способу кодирования видео, описанному выше, и затем выводить кодированные данные изображений в мультиплексор/демультиплексор 12680. В ходе операции записи камеры 12530 звуковой сигнал, полученный посредством микрофона 12550 мобильного телефона 12500, может быть преобразован в цифровые звуковые данные через звуковой процессор 12650, и цифровые звуковые данные могут быть переданы в мультиплексор/демультиплексор 12680.
Мультиплексор/демультиплексор 12680 мультиплексирует кодированные данные изображений, принятые из модуля 12720 кодирования изображений, вместе со звуковыми данными, принимаемыми из звукового процессора 12650. Результат мультиплексирования данных может быть преобразован в передаваемый сигнал через модуль 12660 модуляции/демодуляции и схему 12610 связи и затем может быть передан через антенну 12510.
В то время, когда мобильный телефон 12500 принимает передаваемые данные извне, восстановление частоты и ADC выполняются для сигнала, принимаемого через антенну 12510, чтобы преобразовывать сигнал в цифровой сигнал. Модуль 12660 модуляции/демодуляции модулирует полосу частот цифрового сигнала. Модулированный по полосе частот цифровой сигнал передается в модуль 12690 декодирования видео, звуковой процессор 12650 или жидкокристаллический контроллер 12620, согласно типу цифрового сигнала.
В режиме разговора, мобильный телефон 12500 усиливает сигнал, принимаемый через антенну 12510, и получает цифровой звуковой сигнал посредством выполнения преобразования частоты и ADC для усиленного сигнала. Принимаемый цифровой звуковой сигнал преобразуется в аналоговый звуковой сигнал через модуль 12660 модуляции/демодуляции и звуковой процессор 12650, и аналоговый звуковой сигнал выводится через динамик 12580, под управлением центрального контроллера 12710.
Когда в режиме передачи данных принимаются данные видеофайла, доступного на Интернет-веб-узле, сигнал, принимаемый из беспроводной базовой станции 12000 через антенну 12510, выводится в качестве мультиплексированных данных через модуль 12660 модуляции/демодуляции, и мультиплексированные данные передаются в мультиплексор/демультиплексор 12680.
Чтобы декодировать мультиплексированные данные, принятые через антенну 12510, мультиплексор/демультиплексор 12680 демультиплексирует мультиплексированные данные в кодированный поток видеоданных и кодированный поток аудиоданных. Через шину 12730 синхронизации кодированный поток видеоданных и кодированный поток аудиоданных предоставляются в модуль 12690 декодирования видео и звуковой процессор 12650, соответственно.
Структура модуля 12690 декодирования изображений может соответствовать структуре устройства 200 декодирования видео, описанного выше. Модуль 12690 декодирования изображений может декодировать кодированные видеоданные, чтобы получать восстановленные видеоданные, и предоставлять восстановленные видеоданные на экран 12520 отображения через жидкокристаллический контроллер 12620, согласно способу декодирования видео, описанному выше.
Таким образом, данные видеофайла, доступного на Интернет-веб-узле, могут отображаться на экране 12520 отображения. Одновременно, звуковой процессор 12650 может преобразовывать аудиоданные в аналоговый звуковой сигнал и предоставлять аналоговый звуковой сигнал на динамик 12580. Таким образом, аудиоданные, содержащиеся в видеофайле, доступном на Интернет-веб-узле, также могут быть воспроизведены через динамик 12580.
Мобильный телефон 12500 или другой тип терминала связи может представлять собой приемо-передающий терминал, включающий в себя и устройство кодирования видео и устройство декодирования видео согласно вариантам осуществления настоящего раскрытия сущности, может представлять собой приемо-передающий терминал, включающий в себя только устройство кодирования видео, либо может представлять собой приемо-передающий терминал, включающий в себя только устройство декодирования видео.
Система связи согласно настоящему раскрытию сущности не ограничивается системой связи, описанной выше со ссылкой на фиг. 24. Например, фиг. 27 иллюстрирует цифровую широковещательную систему с использованием системы связи, согласно вариантам осуществления настоящего раскрытия сущности. Цифровая широковещательная система по фиг. 27 может принимать цифровую широковещательную передачу, передаваемую через спутниковую или наземную сеть посредством использования устройства кодирования видео и устройства декодирования видео согласно вариантам осуществления настоящего раскрытия сущности.
В частности, широковещательная станция 12890 передает поток видеоданных на спутник связи или широковещательный спутник 12900 посредством использования радиоволн. Широковещательный спутник 12900 передает широковещательный сигнал, и широковещательный сигнал передается в спутниковое широковещательное приемное устройство через домашнюю антенну 12860. В каждом доме, кодированный видеопоток может декодироваться и воспроизводиться посредством телевизионного приемника 12810, абонентской приставки 12870 или другого устройства.
Когда устройство декодирования видео согласно вариантам осуществления настоящего раскрытия сущности реализуется в устройстве 12830 воспроизведения, устройство 12830 воспроизведения может синтаксически анализировать и декодировать кодированный видеопоток, записанный на носителе 12820 хранения данных, к примеру, на диске или карте памяти, чтобы восстанавливать цифровые сигналы. Таким образом, восстановленный видеосигнал может быть воспроизведен, например, на мониторе 12840.
В абонентской приставке 12870, подключенной к антенне 12860 для спутниковой/наземной широковещательной передачи или к кабельной антенне 12850 для приема кабельной телевизионной широковещательной передачи, может быть установлено устройство декодирования видео согласно вариантам осуществления настоящего раскрытия сущности. Данные, выводимые из абонентской приставки 12870, также могут воспроизводиться на телевизионном мониторе 12880.
В качестве другого примера, устройство декодирования видео согласно вариантам осуществления настоящего раскрытия сущности может быть установлено в телевизионном приемнике 12810 вместо абонентской приставки 12870.
Автомобиль 12920, который имеет надлежащую антенну 12910, может принимать сигнал, передаваемый из спутника 12900 или беспроводной базовой станции 11700 по фиг. 21. Декодированное видео может быть воспроизведено на экране отображения автомобильной навигационной системы 12930, установленной в автомобиле 12920.
Видеосигнал может быть кодирован посредством устройства кодирования видео согласно вариантам осуществления настоящего раскрытия сущности и затем может быть сохранен на носителе хранения данных. В частности, сигнал изображения может быть сохранен на DVD-диске 12960 посредством записывающего DVD-устройства или может быть сохранен на жестком диске посредством записывающего устройства 12950 на жестком диске. В качестве другого примера, видеосигнал может быть сохранен на SD-карте 12970. Если записывающее устройство 12950 на жестком диске включает в себя устройство декодирования видео согласно вариантам осуществления настоящего раскрытия сущности, видеосигнал, записанный на DVD-диске 12960, SD-карте 12970 или другом носителе хранения данных, может быть воспроизведен на телевизионном мониторе 12880.
Автомобильная навигационная система 12930 может не включать в себя камеру 12530, интерфейс 12630 камеры и модуль 12720 кодирования изображений по фиг. 24. Например, компьютер 12100 и телевизионный приемник 12810 могут не включаться в камеру 12530, интерфейс 12630 камеры и модуль 12720 кодирования изображений по фиг. 24.
Фиг. 28 является схемой, иллюстрирующей сетевую структуру облачной вычислительной системы с использованием устройства кодирования видео и устройства декодирования видео, согласно вариантам осуществления настоящего раскрытия сущности.
Облачная вычислительная система может включать в себя облачный вычислительный сервер 14000, базу 14100 данных (DB) пользователей, множество вычислительных ресурсов 14200 и пользовательский терминал.
Облачная вычислительная система предоставляет аутсорсинговую услугу по запросу для множества вычислительных ресурсов 14200 через сеть передачи данных, например, Интернет, в ответ на запрос из пользовательского терминала. В облачном вычислительном окружении поставщик услуг предоставляет пользователям требуемые услуги посредством комбинирования вычислительных ресурсов в центре обработки и хранения данных, расположенном в физически различных местоположениях, посредством использования технологии виртуализации. Пользователь услуг не должен обязательно устанавливать вычислительные ресурсы, например, приложения, хранилище данных, операционную систему (ОС) и систему безопасности, в собственный терминал, чтобы использовать их, а может выбирать и использовать требуемые услуги из числа услуг в виртуальном пространстве, сформированном через технологию виртуализации в требуемый момент времени.
Пользовательский терминал указанного пользователя услуг подключается к облачному вычислительному серверу 14000 через сеть передачи данных, включающую в себя Интернет и сеть мобильной связи. Пользовательским терминалам могут предоставляться услуги облачных вычислений и, в частности, услуги воспроизведения видео из облачного вычислительного сервера 14000. Пользовательские терминалы могут представлять собой различные типы электронных устройств, допускающих подключение к Интернету, например, настольный PC 14300, интеллектуальный телевизор 14400, смартфон 14500, ноутбук 14600, портативный мультимедийный проигрыватель 14700 (PMP), планшетный PC 14800 и т.п.
Облачный вычислительный сервер 14000 может комбинировать множество вычислительных ресурсов 14200, распределенных в облачной сети, и предоставлять в пользовательские терминалы результат комбинирования. Множество вычислительных ресурсов 14200 может включать в себя различные услуги передачи данных и может включать в себя данные, выгруженные из пользовательских терминалов. Как описано выше, облачный вычислительный сервер 14000 может предоставлять в пользовательские терминалы требуемые услуги посредством комбинирования видеобазы данных, распределенной в различных областях, согласно технологии виртуализации.
Пользовательская информация относительно пользователей, которые подписаны на услугу облачных вычислений, сохраняется в DB 14100 пользователей. Пользовательская информация может включать в себя регистрационную информацию, адреса, имена и персональную кредитную информацию пользователей. Пользовательская информация дополнительно может включать в себя индексы видео. Здесь, индексы могут включать в себя список видео, которые уже воспроизведены, список видео, которые воспроизводятся, точку приостановки видео, которое воспроизведено, и т.п.
Информация относительно видео, сохраненного в DB 14100 пользователей, может совместно использоваться между пользовательскими устройствами. Например, когда услуга передачи видео предоставляется в ноутбук 14600 в ответ на запрос из ноутбука 14600, предыстория воспроизведения услуги передачи видео сохраняется в DB 14100 пользователей. Когда запрос на то, чтобы воспроизводить эту услугу передачи видео, принимается из смартфона 14500, облачный вычислительный сервер 14000 выполняет поиск и воспроизводит эту услугу передачи видео на основе DB 14100 пользователей. Когда смартфон 14500 принимает поток видеоданных из облачного вычислительного сервера 14000, операции воспроизведения видео посредством декодирования потока видеоданных являются аналогичными операциям мобильного телефона 12500, описанного выше со ссылкой на фиг. 21.
Облачный вычислительный сервер 14000 может обращаться к предыстории воспроизведения требуемой услуги передачи видео, сохраненной в DB 14100 пользователей. Например, облачный вычислительный сервер 14000 принимает запрос на то, чтобы воспроизводить видео, сохраненное в DB 14100 пользователей, из пользовательского терминала. Если это видео воспроизведено, то способ потоковой передачи этого видео, осуществляемый посредством облачного вычислительного сервера 14000, может варьироваться согласно запросу из пользовательского терминала, т.е. согласно тому, воспроизводится видео начиная с начала или с точки приостановки. Например, если пользовательский терминал запрашивает воспроизводить видео начиная с начала, облачный вычислительный сервер 14000 передает потоковые данные видео начиная с первого кадра в пользовательский терминал. Если пользовательский терминал запрашивает воспроизводить видео начиная с точки приостановки, облачный вычислительный сервер 14000 передает потоковые данные видео начиная с кадра, соответствующего точке приостановки, в пользовательский терминал.
В этом случае, пользовательский терминал может включать в себя устройство декодирования видео, как описано выше со ссылкой на фиг. 1-23. В качестве другого примера, пользовательский терминал может включать в себя устройство кодирования видео, как описано выше со ссылкой на фиг. 1-23. Альтернативно, пользовательский терминал может включать в себя и устройство декодирования видео и устройство кодирования видео, как описано выше со ссылкой на фиг. 1-23.
Различные варианты применения способа кодирования видео, способа декодирования видео, устройства кодирования видео и устройства декодирования видео согласно вариантам осуществления настоящего раскрытия сущности, описанным выше со ссылкой на фиг. 1-23, описаны выше со ссылкой на фиг. 22-28. Тем не менее, способы сохранения способа кодирования видео и способа декодирования видео на носителе хранения данных или способы реализации устройства кодирования видео и устройства декодирования видео в устройстве, согласно различным вариантам осуществления настоящего раскрытия сущности, не ограничены вариантами осуществления, описанными выше со ссылкой на фиг. 22-28.
Хотя настоящее раскрытие сущности конкретно показано и описано со ссылкой на его примерные варианты осуществления, специалисты в данной области техники должны понимать, что различные изменения по форме и содержанию могут вноситься без отступления от сущности и объема согласно настоящему раскрытию сущности, задаваемого посредством прилагаемой формулы изобретения.
Изобретение относится к области кодирования и декодирования видео. Технический результат – повышение эффективности предсказания вектора движения. Способ предсказания вектора движения текущего блока содержит этапы, на которых: определяют совместно размещенное изображение; когда одно из опорного изображения совместно размещенного блока и опорного изображения текущего блока представляет собой долговременное опорное изображение, определяют, что вектор движения совместно размещенного блока недоступен; когда опорное изображение совместно размещенного блока и опорное изображение текущего блока представляют собой долговременные опорные изображения, получают возможный вариант предсказания временного вектора движения без масштабирования вектора движения совместно размещенного блока; принимают информацию прогнозирования возможного варианта блока, который объединяется с текущим блоком; определяют предиктор вектора движения текущего блока из числа возможных вариантов предсказания вектора движения; формируют вектор движения текущего блока с использованием предиктора вектора движения. 1 з.п. ф-лы, 29 ил., 1 табл.
1. Способ предсказания вектора движения текущего блока, причем способ содержит этапы, на которых:
определяют совместно размещенное изображение из изображений, восстановленных до текущего изображения, согласно связанному индексу;
когда одно из опорного изображения совместно размещенного блока, включенного в совместно размещенное изображение, и опорного изображения текущего блока представляет собой долговременное опорное изображение, определяют, что вектор движения совместно размещенного блока недоступен;
когда как опорное изображение совместно размещенного блока, так и опорное изображение текущего блока представляют собой долговременные опорные изображения, получают возможный вариант предсказания временного вектора движения без масштабирования вектора движения совместно размещенного блока;
принимают информацию прогнозирования возможного варианта блока, указывающую возможный вариант блока, который объединяется с текущим блоком;
определяют предиктор вектора движения текущего блока из числа возможных вариантов предсказания вектора движения, содержащих возможный вариант предсказания временного вектора движения, на основе информации прогнозирования возможного варианта блока; и
формируют вектор движения текущего блока с использованием предиктора вектора движения,
при этом масштабирование основано на соотношении расстояния (Td) между совместно размещенным изображением и опорным изображением совместно размещенного блока и расстояния (Tb) между текущим изображением и опорным изображением текущего блока.
2. Способ по п. 1, в котором определение предиктора вектора движения содержит сохранение возможных вариантов предсказания вектора движения в списке возможных вариантов вектора движения.
Станок для изготовления деревянных ниточных катушек из цилиндрических, снабженных осевым отверстием, заготовок | 1923 |
|
SU2008A1 |
Приспособление для суммирования отрезков прямых линий | 1923 |
|
SU2010A1 |
Изложница с суживающимся книзу сечением и с вертикально перемещающимся днищем | 1924 |
|
SU2012A1 |
Способ приготовления лака | 1924 |
|
SU2011A1 |
Способ и приспособление для нагревания хлебопекарных камер | 1923 |
|
SU2003A1 |
CHONG SOON LIM, "High-level Syntax: MVP scaling issue for LTRPs", Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 9th Meeting: Geneva, CH, 27 April - 7 May 2012, Document: JCTVC-I0422, опубл | |||
Прибор для нагревания перетягиваемых бандажей подвижного состава | 1917 |
|
SU15A1 |
Печь для непрерывного получения сернистого натрия | 1921 |
|
SU1A1 |
СПОСОБ И УСТРОЙСТВО ДЛЯ ДЕКОДИРОВАНИЯ/КОДИРОВАНИЯ СИГНАЛА ВИДЕО | 2007 |
|
RU2395174C1 |
Авторы
Даты
2017-07-04—Публикация
2013-07-02—Подача