СПОСОБ И УСТРОЙСТВО ДЛЯ ОПРЕДЕЛЕНИЯ ВЕКТОРА ДВИЖЕНИЯ В КОДИРОВАНИИ ИЛИ ДЕКОДИРОВАНИИ ВИДЕО
METHOD AND APPARATUS FOR MOTION VECTOR DETERMINATION IN VIDEO ENCODING OR DECODING

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение относится к кодированию и декодированию видео, и более конкретно, к кодированию и декодированию видео, в которых выполняется внешнее предсказание и/или компенсация движения.
УРОВЕНЬ ТЕХНИКИ
Так как разрабатывается и предоставляется аппаратное обеспечение для воспроизведения и хранения видеоконтента высокого разрешения или высокого качества, возрастает необходимость в видеокодеке для эффективного кодирования или декодирования видеоконтента высокого разрешения или высокого качества. Согласно стандартному видеокодеку, видео кодируется согласно ограниченному способу кодирования на основе макроблока, имеющего предварительно определенный размер.
Данные изображения пространственной области преобразовываются в коэффициенты частотной области посредством частотного преобразования. Согласно видеокодеку, изображение разделяется на блоки, имеющие предварительно определенный размер, для каждого соответствующего блока выполняется дискретное косинусное преобразование (DCT), и частотные коэффициенты кодируются в единицах блоков, для быстрого вычисления частотного преобразования. По сравнению с данными изображения пространственной области, коэффициенты частотной области легко сжимаются. В частности, так как значение пикселя изображения пространственной области выражается согласно ошибке предсказания посредством внешнего предсказания или внутреннего предсказания видеокодека, когда частотное преобразование выполняется над ошибкой предсказания, большой объем данных может преобразовываться в 0. Согласно видеокодеку, объем данных может уменьшаться посредством замены данных, которые последовательно и повторно генерируются, на данные малого размера.
Согласно кодированию многоракурсного видео, видео базового ракурса и одно или более видео дополнительного ракурса кодируются и декодируются. Посредством удаления временной/пространственной избыточности между видео базового ракурса и видео дополнительного ракурса и избыточности между ракурсами, объем данных видео базового ракурса и видео дополнительного ракурса может уменьшаться.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
ТЕХНИЧЕСКАЯ ПРОБЛЕМА
Настоящее изобретение обеспечивает способ и устройство определения вектора движения, выполняемый посредством предсказания вектора движения, способ и устройство для кодирования видео посредством выполнения внешнего предсказания и компенсации движения посредством предсказания вектора движения, и способ и устройство для декодирования видео посредством выполнения компенсации движения посредством предсказания вектора движения.
ТЕХНИЧЕСКОЕ РЕШЕНИЕ
Согласно одному аспекту согласно настоящему изобретению, обеспечивается способ определения вектора движения для внешнего предсказания, при этом способ определения вектора движения включает в себя операции определения списка векторов движения-кандидатов, содержащего векторы движения множества блоков-кандидатов, на которые ссылаются, чтобы предсказывать вектор движения текущего блока; когда опорное изображение первого блока-кандидата из числа множества блоков-кандидатов отличается от опорного изображения текущего блока, определение того, использовать ли или нет вектор движения первого блока-кандидата из списка векторов движения-кандидатов, на основе того, является ли каждое из опорного изображения текущего блока и опорного изображения первого блока-кандидата краткосрочным опорным изображением или долгосрочным опорным изображением; и определение вектора движения текущего блока посредством использования вектора движения-кандидата, выбранного из числа векторов движения, содержащихся в списке векторов движения-кандидатов.
ПРЕИМУЩЕСТВА ИЗОБРЕТЕНИЯ
Когда выполняется способ определения вектора движения согласно одному или более вариантам осуществления настоящего изобретения, в случае, когда опорное изображение, указанное посредством опорного индекса блока-кандидата, отличается от опорного изображения текущего блока, и, по меньшей мере, одно из опорных изображений текущего блока и блока-кандидата является долгосрочным опорным изображением, является возможным пропускать обработку масштабирования размера вектора движения блока-кандидата или обработку обеспечения ссылки на вектор движения блока-кандидата, и является возможным управлять текущим блоком, чтобы ссылаться на вектор движения другого блока-кандидата, имеющего относительно высокую точность предсказания, посредством чего эффективность обработки предсказания вектора движения может улучшаться.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг. 1 является блок-схемой устройства определения вектора движения согласно одному варианту осуществления согласно настоящему изобретению.
Фиг. 2 является блок-схемой последовательности операций способа определения вектора движения, согласно одному варианту осуществления настоящего изобретения.
Фиг. 3 иллюстрирует пример, в котором блок-кандидат является совместно размещенным блоком другого изображения, согласно одному варианту осуществления настоящего изобретения.
Фиг. 4 иллюстрирует пример, в котором блок-кандидат является соседним блоком того же изображения, согласно одному варианту осуществления настоящего изобретения.
Фиг. 5 является блок-схемой последовательности операций способа кодирования видео, включающего в себя способ определения вектора движения, согласно одному варианту осуществления настоящего изобретения.
Фиг. 6 является блок-схемой последовательности операций способа декодирования видео, включающего в себя способ определения вектора движения, согласно одному варианту осуществления настоящего изобретения.
Фиг. 7 является блок-схемой блока кодирования видео, включающего в себя устройство определения вектора движения, согласно одному варианту осуществления настоящего изобретения.
Фиг. 8 является блок-схемой блока декодирования видео, включающего в себя устройство определения вектора движения, согласно одному варианту осуществления настоящего изобретения.
Фиг. 9 является блок-схемой устройства кодирования видео на основе единицы кодирования согласно древовидной структуре, согласно одному варианту осуществления согласно настоящему изобретению.
Фиг. 10 является блок-схемой устройства декодирования видео на основе единицы кодирования согласно древовидной структуре, согласно одному варианту осуществления согласно настоящему изобретению.
Фиг. 11 является диаграммой для описания концепции единиц кодирования согласно одному варианту осуществления согласно настоящему изобретению.
Фиг. 12 является блок-схемой кодера изображений на основе единиц кодирования, согласно одному варианту осуществления согласно настоящему изобретению.
Фиг. 13 является блок-схемой декодера изображений на основе единиц кодирования, согласно одному варианту осуществления согласно настоящему изобретению.
Фиг. 14 является диаграммой, иллюстрирующей более глубокие единицы кодирования согласно глубинам, и фрагменты, согласно одному варианту осуществления согласно настоящему изобретению.
Фиг. 15 является диаграммой для описания отношения между единицей кодирования и единицами преобразования, согласно одному варианту осуществления согласно настоящему изобретению.
Фиг. 16 является диаграммой для описания информации кодирования единиц кодирования, соответствующих кодированной глубине, согласно одному варианту осуществления согласно настоящему изобретению.
Фиг. 17 является диаграммой более глубоких единиц кодирования согласно глубинам, согласно одному варианту осуществления согласно настоящему изобретению.
Фиг. 18 по 20 являются диаграммами для описания отношения между единицами кодирования, единицами предсказания и единицами преобразования, согласно одному варианту осуществления согласно настоящему изобретению.
Фиг. 21 является диаграммой для описания отношения между единицей кодирования, единицей предсказания или фрагментом, и единицей преобразования, согласно информации режима кодирования из Таблицы 1.
Фиг. 22 иллюстрирует физическую структуру диска, который хранит программу, согласно одному варианту осуществления настоящего изобретения.
Фиг. 23 иллюстрирует привод диска, который записывает и считывает программу посредством использования диска.
Фиг. 24 иллюстрирует полную структуру системы предоставления контента, которая обеспечивает службу распределения контента.
Фиг. 25 и 26 иллюстрируют внешнюю и внутреннюю структуры мобильного телефона, к которому применяются способ кодирования видео и способ декодирования видео, согласно вариантам осуществления настоящего изобретения.
Фиг. 27 иллюстрирует систему цифрового широковещания, применяющую систему связи, согласно одному варианту осуществления настоящего изобретения.
Фиг. 28 иллюстрирует сетевую структуру облачной вычислительной системы, использующей устройство кодирования видео и устройство декодирования видео, согласно одному варианту осуществления настоящего изобретения.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
НАИЛУЧШИЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ
Согласно одному аспекту согласно настоящему изобретению, обеспечивается способ определения вектора движения для внешнего предсказания, при этом способ определения вектора движения включает в себя операции определения списка векторов движения-кандидатов, содержащего векторы движения множества блоков-кандидатов, на которые ссылаются, чтобы предсказывать вектор движения текущего блока; когда опорное изображение первого блока-кандидата из числа множества блоков-кандидатов отличается от опорного изображения текущего блока, определения того, использовать ли или нет вектор движения первого блока-кандидата из списка векторов движения-кандидатов, на основе того, является ли каждое из опорного изображения текущего блока и опорного изображения первого блока-кандидата краткосрочным опорным изображением или долгосрочным опорным изображением; и определения вектора движения текущего блока посредством использования вектора движения-кандидата, выбранного из числа векторов движения, содержащихся в списке векторов движения-кандидатов.
Первый блок-кандидат может быть соседним блоком текущего блока в текущем изображении текущего блока или может быть совместно размещенным блоком в том же положении, что и текущий блок в изображении, которое восстанавливается ранее, чем текущее изображение.
Когда все из опорного изображения текущего блока и опорного изображения первого блока-кандидата являются долгосрочными опорными изображениями, операция определения того, использовать ли или нет вектор движения, может включать в себя операцию поддержания вектора движения первого блока-кандидата в списке векторов движения-кандидатов.
Когда одно из опорного изображения текущего блока и опорного изображения первого блока-кандидата является краткосрочным опорным изображением, и другое одно из опорного изображения текущего блока и опорного изображения первого блока-кандидата является долгосрочным опорным изображением, операция определения того, использовать ли или нет вектор движения, может включать в себя операцию определения не использовать вектор движения первого блока-кандидата в списке векторов движения-кандидатов.
Согласно другому аспекту согласно настоящему изобретению, обеспечивается устройство определения вектора движения для внешнего предсказания, при этом устройство определения вектора движения включает в себя блок определения списка кандидатов для определения списка векторов движения-кандидатов, содержащего векторы движения множества блоков-кандидатов, на которые ссылаются, чтобы предсказывать вектор движения текущего блока, и когда опорное изображение первого блока-кандидата из числа множества блоков-кандидатов отличается от опорного изображения текущего блока, для определения того, использовать ли или нет вектор движения первого блока-кандидата из списка векторов движения-кандидатов, на основе того, является ли каждое из опорного изображения текущего блока и опорного изображения первого блока-кандидата краткосрочным опорным изображением или долгосрочным опорным изображением; и блок определения вектора движения для определения вектора движения текущего блока посредством использования вектора движения-кандидата, выбранного из числа векторов движения, содержащихся в списке векторов движения-кандидатов.
Согласно другому аспекту согласно настоящему изобретению, обеспечивается машиночитаемый записывающий носитель, имеющий записанную на нем компьютерную программу для исполнения способа определения вектора движения.
ВАРИАНТ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
В дальнейшем, устройство 10 определения вектора движения и способ определения вектора движения будут описываться со ссылкой на фиг. 1 по 4. Также, способы и устройства для кодирования и декодирования видео посредством выполнения способа определения вектора движения будут описываться со ссылкой на фиг. 5 и 8. В дополнение, схемы кодирования и декодирования видео, включающие в себя способ определения вектора движения, на основе единиц кодирования, имеющих древовидную структуру, будут описываться со ссылкой на фиг. 9 по 21. В дальнейшем, признак ′изображение′ может указывать на неподвижное изображение или движущуюся картинку, то есть, само видео.
Сначала, устройство 10 определения вектора движения и способ определения вектора движения будут описываться со ссылкой на фиг. 1 по 4. Также, способы и устройства для кодирования и декодирования видео посредством выполнения способа определения вектора движения будут описываться со ссылкой на фиг. 5 и 8.
Фиг. 1 является блок-схемой устройства 10 определения вектора движения согласно одному варианту осуществления согласно настоящему изобретению.
Устройство 10 определения вектора движения включает в себя блок 12 определения списка кандидатов и блок 14 определения вектора движения.
Внешнее предсказание выполняется посредством использования сходства между текущим изображением и другим изображением. В опорном изображении, которое восстанавливается ранее, чем текущее изображение, обнаруживается опорная область, которая является сходной с текущей областью текущего изображения. Расстояние между координатами текущей области и опорной области представляется как вектор движения, и разность между значениями пикселей текущей области и опорной области представляется как остаточные данные. Таким образом, посредством выполнения внешнего предсказания над текущей областью, является возможным выводить индекс, указывающий опорное изображение, вектор движения, и остаточные данные, вместо прямого вывода информации изображения о текущей области.
Устройство 10 определения вектора движения может выполнять внешнее предсказание над каждым видеоизображением для каждого соответствующего блока. Блок может иметь квадратную форму, прямоугольную форму, или любую геометрическую форму и не ограничен единицей данных, имеющей предварительно определенный размер. Согласно одному варианту осуществления согласно настоящему изобретению, блок может быть максимальной единицей кодирования, единицей кодирования, единицей предсказания, единицей преобразования или подобным из числа единиц кодирования согласно древовидной структуре. Способы кодирования и декодирования видео на основе единиц кодирования согласно древовидной структуре будут описываться ниже со ссылкой на фиг. 9 по 21.
Опорное изображение, которое используется во внешнем предсказании текущего изображения должно быть изображением, которое декодируется ранее, чем текущее изображение. В настоящем варианте осуществления, опорное изображение для внешнего предсказания может классифицироваться в краткосрочное опорное изображение и долгосрочное опорное изображение. Буфер декодированных картинок (DPB (не показан)) хранит восстановленные изображения, которые генерируются посредством компенсации движения над предыдущими изображениями. Восстановленные изображения, которые сгенерированы ранее, могут использоваться в качестве опорного изображения для внешнего предсказания других изображений. Таким образом, чтобы выполнять внешнее предсказание текущего изображения, по меньшей мере, одно краткосрочное опорное изображение или, по меньшей мере, одно долгосрочное опорное изображение может выбираться из восстановленных изображений, сохраненных в буфере декодированных картинок. Краткосрочное опорное изображение может быть изображением, которое было только что или недавно декодировано в порядке декодирования, включая текущее изображение, тогда как долгосрочное опорное изображение может быть изображением, которое было декодировано намного ранее, чем текущее изображение, выбрано, чтобы использоваться в качестве опорного изображения для внешнего предсказания других изображений, и, таким образом, сохранено в буфере декодированных картинок.
Для предсказания вектора движения, слияния PU, или улучшенного предсказания вектора движения (AMVP), предсказание вектора движения текущего блока может определяться посредством ссылки на вектор движения другого блока.
Устройство 10 определения вектора движения может определять вектор движения посредством ссылки на вектор движения другого блока, который является по времени или пространственно смежным с текущим блоком. Устройство 10 определения вектора движения может определять список векторов движения-кандидатов, включающий в себя множество векторов движения блоков-кандидатов, которые могут становиться опорными целями для вектора движения текущего блока. Устройство 10 определения вектора движения может определять вектор движения текущего блока посредством ссылки на вектор движения, выбранный из списка векторов движения-кандидатов.
В настоящем варианте осуществления, блок-кандидат может указывать соседний блок текущего блока в текущем изображении или может быть совместно размещенным блоком, который находится в том же положении, что и текущий блок в изображении, восстановленном ранее, чем текущее изображение.
Блок 12 определения списка кандидатов может масштабировать размеры векторов движения-кандидатов, которые удовлетворяют предварительно определенному условию и которые находятся в списке векторов движения-кандидатов, включающем в себя векторы движения блоков-кандидатов, на которые ссылаются для предсказания вектора движения текущего блока, или может исключать векторы движения-кандидаты из списка векторов движения-кандидатов.
Когда опорное изображение первого блока-кандидата из числа блоков-кандидатов, включенных в список векторов движения-кандидатов, отличается от опорного изображения текущего блока, блок 12 определения списка кандидатов может определять, является ли каждое из опорного изображения текущего блока и опорного изображения первого блока-кандидата краткосрочным опорным изображением или долгосрочным опорным изображением. Блок 12 определения списка кандидатов может определять то, как использовать вектор движения первого блока-кандидата в списке векторов движения-кандидатов, на основе того, является ли каждое из опорного изображения текущего блока и опорного изображения первого блока-кандидата краткосрочным опорным изображением или долгосрочным опорным изображением.
Когда все из опорного изображения текущего блока и опорного изображения первого блока-кандидата являются долгосрочными опорными изображениями, блок 12 определения списка кандидатов может поддерживать вектор движения первого блока-кандидата в списке векторов движения-кандидатов. То есть, первый блок-кандидат может включаться в список векторов движения-кандидатов, в то время как размер вектора движения первого блока-кандидата не масштабируется.
Когда одно из опорного изображения текущего блока и опорного изображения первого блока-кандидата является краткосрочным опорным изображением, и другое одно из опорного изображения текущего блока и опорного изображения первого блока-кандидата является долгосрочным опорным изображением, блок 12 определения списка кандидатов может определять не использовать вектор движения первого блока-кандидата в списке векторов движения-кандидатов. Затем, вектор движения первого блока-кандидата может объявляться как неиспользуемый вектор движения.
Когда все из опорного изображения текущего блока и опорного изображения первого блока-кандидата являются краткосрочными опорными изображениями, блок 12 определения списка кандидатов может масштабировать размер вектора движения первого блока-кандидата и может включать масштабированный вектор движения первого блока-кандидата в список векторов движения-кандидатов. В этом случае, блок 12 определения списка кандидатов может масштабировать размер вектора движения первого блока-кандидата на основе отношения расстояния между текущим изображением и опорным изображением текущего блока к расстоянию между изображением первого блока-кандидата и опорным изображением первого блока-кандидата, и может обновлять значение вектора движения первого блока-кандидата как масштабированное значение в списке векторов движения-кандидатов.
Блок 14 определения вектора движения может выбирать вектор движения-кандидат из векторов движения, включенных в список векторов движения-кандидатов, и может определять вектор движения текущего блока посредством использования выбранного вектора движения-кандидата. Блок 14 определения вектора движения может определять вектор движения текущего блока посредством дублирования вектора движения-кандидата без изменения или посредством модификации вектора движения-кандидата.
Фиг. 2 является блок-схемой последовательности операций способа определения вектора движения, согласно одному варианту осуществления настоящего изобретения.
Устройство 10 определения вектора движения может предсказывать вектор движения текущего блока посредством использования вектора движения блока, который является по времени или пространственно близким к текущему блоку. Также, устройство 10 определения вектора движения может определять множество блоков-кандидатов, имеющих предсказуемые векторы движения, может выбирать блок-кандидат из числа блоков-кандидатов, может ссылаться на вектор движения выбранного блока-кандидата, и, таким образом, может определять вектор движения текущего блока.
Однако, когда опорное изображение, указанное посредством опорного индекса блока-кандидата из числа блоков-кандидатов, отличается от опорного изображения текущего блока, если устройство 10 определения вектора движения предсказывает вектор движения текущего блока посредством ссылки на вектор движения блока-кандидата, точность предсказанного вектора движения может ухудшаться, хотя размер вектора движения блока-кандидата масштабируется и затем осуществляется ссылка на вектор движения блока-кандидата. Таким образом, когда опорное изображение текущего блока отличается от опорного изображения блока-кандидата, устройство 10 определения вектора движения может определять, ссылаться ли на блок-кандидат после масштабирования размера вектора движения блока-кандидата, или может определять не ссылаться на блок-кандидат.
В дальнейшем, когда опорное изображение текущего блока отличается от опорного изображения блока-кандидата, способ предсказания, посредством устройства 10 определения вектора движения, вектора движения текущего блока на основе вектора движения блока-кандидата описывается подробно со ссылкой на операции 21, 23, и 25.
В операции 21, устройство 10 определения вектора движения определяет список векторов движения-кандидатов, включающий в себя векторы движения множества блоков-кандидатов, для текущего блока.
В операции 23, когда опорное изображение первого блока-кандидата из числа блоков-кандидатов отличается от опорного изображения текущего блока, устройство 10 определения вектора движения определяет, использовать ли или нет вектор движения первого блока-кандидата из списка векторов движения-кандидатов, на основе того, является ли каждое из опорного изображения текущего блока и опорного изображения первого блока-кандидата краткосрочным опорным изображением или долгосрочным опорным изображением.
Устройство 10 определения вектора движения может определять, является ли опорное изображение текущего блока долгосрочным опорным изображением, посредством использования долгосрочного опорного индекса, указывающего, является ли опорное изображение текущего блока долгосрочным опорным изображением. Аналогично, устройство 10 определения вектора движения может определять, является ли опорное изображение первого блока-кандидата долгосрочным опорным изображением, посредством использования долгосрочного опорного индекса первого блока-кандидата.
В другом варианте осуществления, когда значение разности между отсчетами порядка картинок (POC) опорного изображения текущего блока и опорного изображения первого блока-кандидата больше, чем первое пороговое значение, устройство 10 определения вектора движения может определять, что опорное изображение первого блока-кандидата является долгосрочным опорным изображением. Аналогично, когда значение разности между отсчетами POC опорного изображения текущего блока и опорного изображения первого блока-кандидата больше, чем второе пороговое значение, устройство 10 определения вектора движения может определять, что опорное изображение текущего блока является долгосрочным опорным изображением.
В операции 25, устройство 10 определения вектора движения определяет вектор движения текущего блока посредством использования вектора движения-кандидата, выбранного из векторов движения, включенных в список векторов движения-кандидатов.
В операции 25, независимо от того, является ли опорное изображение текущего блока краткосрочным опорным изображением или долгосрочным опорным изображением, устройство 10 определения вектора движения может определять опорный блок, указанный посредством вектора движения текущего блока, который определяется в опорном изображении текущего блока согласно POC, указанному посредством опорного индекса текущего блока.
В операции 23, когда все из опорного изображения текущего блока и опорного изображения первого блока-кандидата являются долгосрочными опорными изображениями, устройство 10 определения вектора движения может поддерживать вектор движения первого блока-кандидата в списке векторов движения-кандидатов без масштабирования размера вектора движения первого блока-кандидата. Когда одно из опорного изображения текущего блока и опорного изображения первого блока-кандидата является краткосрочным опорным изображением, и другое одно из опорного изображения текущего блока и опорного изображения первого блока-кандидата является долгосрочным опорным изображением, устройство 10 определения вектора движения может определять не использовать вектор движения первого блока-кандидата в списке векторов движения-кандидатов. Когда все из опорного изображения текущего блока и опорного изображения первого блока-кандидата являются краткосрочными опорными изображениями, устройство 10 определения вектора движения может обновлять вектор движения первого блока-кандидата в списке векторов движения-кандидатов, согласно вектору движения первого блока-кандидата, который масштабирован по размеру, на основе отношения расстояния между текущим изображением и опорным изображением текущего блока к расстоянию между изображением первого блока-кандидата и опорным изображением первого блока-кандидата.
Посредством выполнения операций 21, 23, и 25, устройство 10 определения вектора движения может повторно определять список векторов движения-кандидатов. Когда только одно из опорного изображения текущего блока и опорного изображения первого блока-кандидата является долгосрочным опорным изображением, устройство 10 определения вектора движения может исключать вектор движения первого блока-кандидата из списка векторов движения-кандидатов и, таким образом, может не использовать первый блок-кандидат в качестве опорной цели. Таким образом, устройство 10 определения вектора движения может определять вектор движения блока-кандидата посредством ссылки на другой вектор движения, включенный в список векторов движения-кандидатов.
Когда все из опорного изображения текущего блока и опорного изображения первого блока-кандидата являются долгосрочными опорными изображениями, устройство 10 определения вектора движения включает вектор движения первого блока-кандидата в список векторов движения-кандидатов без масштабирования размера вектора движения первого блока-кандидата. Таким образом, устройство 10 определения вектора движения может выбирать оптимальный опорный вектор движения из числа другого вектора движения-кандидата и вектора движения первого блока-кандидата, включенного в список векторов движения-кандидатов, и может определять вектор движения текущего блока посредством использования выбранного опорного вектора движения.
Когда все из опорного изображения текущего блока и опорного изображения первого блока-кандидата являются краткосрочными опорными изображениями, устройство 10 определения вектора движения может масштабировать размер вектора движения первого блока-кандидата и может включать вектор движения первого блока-кандидата в список векторов движения-кандидатов. Таким образом, устройство 10 определения вектора движения может выбирать оптимальный опорный вектор движения из числа другого вектора движения-кандидата и масштабированного по размеру вектора движения первого блока-кандидата, включенного в список векторов движения-кандидатов, и может определять вектор движения текущего блока посредством использования выбранного опорного вектора движения.
Таким образом, согласно устройству 10 определения вектора движения и способу определения вектора движения, описанным выше со ссылкой на фиг. 1 и 2, когда опорное изображение, указанное посредством опорного индекса блока-кандидата, отличается от опорного изображения текущего блока, и, по меньшей мере, одно из опорного изображения текущего блока и опорного изображения блока-кандидата является долгосрочным опорным изображением, обработка масштабирования размера вектора движения блока-кандидата может пропускаться или обработка обеспечения ссылки на вектор движения блока-кандидата может пропускаться.
То есть, когда опорное изображение текущего блока отличается от опорного изображения блока-кандидата, и, по меньшей мере, одно из опорного изображения текущего блока и опорного изображения блока-кандидата является долгосрочным опорным изображением, если вектор движения текущего блока предсказывается посредством ссылки на вектор движения блока-кандидата, точность предсказанного вектора движения может ухудшаться, и, поэтому, обработка обеспечения ссылки на вектор движения блока-кандидата, который не имеет точности предсказания, может пропускаться, и текущий блок может предсказываться посредством ссылки на вектор движения другого блока-кандидата, имеющего относительно высокую точность. Посредством этого, эффективность обработки предсказания вектора движения может улучшаться.
В дальнейшем, как показано на фиг. 3 и 4, подробно описывается способ предсказания вектора движения согласно типам блока-кандидата.
Фиг. 3 иллюстрирует пример, в котором блок-кандидат является совместно размещенным блоком другого изображения, согласно одному варианту осуществления настоящего изобретения.
Совместно размещенное изображение 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.
Согласно результату проверки, когда совместно размещенное опорное изображение 38 отличается от текущего опорного изображения 33, но все из текущего опорного изображения 33 и совместно размещенного опорного изображения 38 являются краткосрочными опорными изображениями, размер вектора 37 движения совместно размещенного блока 36 может масштабироваться на основе отношения расстояния Td между совместно размещенным изображением 35 и совместно размещенным опорным изображением 38 к расстоянию Tb между текущим изображением 30 и текущим опорным изображением 33.
Здесь, расстояние Td между совместно размещенным изображением 35 и совместно размещенным опорным изображением 38 может определяться согласно значению разности между отсчетами POC совместно размещенного изображения 35 и совместно размещенного опорного изображения 38. Аналогично, расстояние Tb между текущим изображением 30 и текущим опорным изображением 33 может определяться согласно значению разности между отсчетами POC текущего изображения 30 и текущего опорного изображения 33.
То есть, когда все из текущего опорного изображения 33 и совместно размещенного опорного изображения 38 являются краткосрочными опорными изображениями, вектор движения-кандидат MVcol′ может обновляться посредством значения, полученного посредством умножения вектора 37 движения (MVcol) совместно размещенного блока 36 на отношение расстояния Td между совместно размещенным изображением 35 и совместно размещенным опорным изображением 38 к расстоянию Tb между текущим изображением 30 и текущим опорным изображением 33 (MVcol′=MVcol*Tb/Td).
Таким образом, согласно результату проверки, когда совместно размещенное опорное изображение 38 отличается от текущего опорного изображения 33, но все из текущего опорного изображения 33 и совместно размещенного опорного изображения 38 являются краткосрочными опорными изображениями, устройство 10 определения вектора движения может изменять вектор 37 движения совместно размещенного блока 36 как значение MVcol′ в списке векторов движения-кандидатов, при этом значение MVcol′ получается посредством умножения вектора 37 движения совместно размещенного блока 36 на отношение (Tb/Td) расстояния Td между совместно размещенным изображением 35 и совместно размещенным опорным изображением 38 к расстоянию Tb между текущим изображением 30 и текущим опорным изображением 33.
Когда одно из текущего опорного изображения 33 и совместно размещенного опорного изображения 38 является краткосрочным опорным изображением, и другое одно из текущего опорного изображения 33 и совместно размещенного опорного изображения 38 является долгосрочным опорным изображением, флаг ′NOT-AVAILABLE′ может назначаться вектору 37 движения совместно размещенного блока 36. В этом случае, вектор 37 движения совместно размещенного блока 36 может исключаться из списка векторов движения-кандидатов.
Когда все из текущего опорного изображения 33 и совместно размещенного опорного изображения 38 являются долгосрочными опорными изображениями, вектор 37 движения совместно размещенного блока 36 может поддерживаться. В этом случае, вектор 37 движения совместно размещенного блока 36 может поддерживаться в списке векторов движения-кандидатов, пока размер вектора 37 движения не масштабируется.
Фиг. 4 иллюстрирует пример, в котором блок-кандидат является соседним блоком 46 того же изображения, согласно одному варианту осуществления настоящего изобретения.
Устройство 10 определения вектора движения может использовать соседний блок 46 в качестве блока-кандидата, который является опорной целью, используемой в предсказании вектора 44 движения текущего блока 41, при этом соседний блок 46 является смежным с текущим блоком 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.
Когда соседнее опорное изображение 48 отличается от текущего опорного изображения 43, устройство 10 определения вектора движения может повторно определять, ссылаться ли на вектор 47 движения соседнего блока 46, или то, как ссылаться на вектор 47 движения соседнего блока 46.
Согласно результату проверки, когда текущее опорное изображение 43 отличается от соседнего опорного изображения 48, но все из текущего опорного изображения 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′ может обновляться как значение, полученное посредством умножения вектора 47 движения (MVne) соседнего блока 46 на отношение (Tb/Td) расстояния Td между текущим изображением 40 и соседним опорным изображением 48 к расстоянию Tb между текущим изображением 40 и текущим опорным изображением 43 (MVne′ = MVne * Tb/Td).
Таким образом, согласно результату проверки, когда текущее опорное изображение 43 и соседнее опорное изображение 48 отличаются друг от друга, но все из них являются краткосрочными опорными изображениями, устройство 10 определения вектора движения может изменять вектор 47 движения соседнего блока 46 как значение MVne′ в списке векторов движения-кандидатов, при этом значение MVne′ получается посредством умножения вектора 47 движения (MVne) соседнего блока 46 на отношение (Tb/Td) расстояния Td между соседним опорным изображением 48 и текущим изображением 40 к расстоянию Tb между текущим изображением 40 и текущим опорным изображением 43.
Когда одно из текущего опорного изображения 43 и соседнего опорного изображения 48 является краткосрочным опорным изображением и другое одно является долгосрочным опорным изображением, флаг ′NON-USABLE′ может назначаться вектору 47 движения соседнего блока 46. В этом случае, вектор 47 движения соседнего блока 46 может исключаться из списка векторов движения-кандидатов текущего изображения 40.
Когда все из текущего опорного изображения 43 и соседнего опорного изображения 48 являются долгосрочными опорными изображениями, вектор 47 движения соседнего блока 46 может поддерживаться. В этом случае, вектор 47 движения соседнего блока 46 может поддерживаться в списке векторов движения-кандидатов, пока размер вектора 47 движения не масштабируется.
В вариантах осуществления из фиг. 3 и 4, устройство 10 определения вектора движения может определять, является ли каждое из текущего опорного изображения (т.е. текущих опорных изображений 33 и 43) и опорного изображения (т.е. совместно размещенного опорного изображения 38 и соседнего опорного изображения 48) блока-кандидата (т.е. совместно размещенного блока 36 и соседнего блока 46) краткосрочным опорным изображением или долгосрочным опорным изображением, посредством использования долгосрочных опорных индексов текущего блока (т.е. текущих блоков 31 и 41) и блока-кандидата, и согласно результату определения, устройство 10 определения вектора движения может определять, ссылаться ли или нет на вектор движения (т.е. векторы 37 и 47 движения) блока-кандидата, или ссылаться ли на вектор движения после масштабирования размера вектора движения.
В другом варианте осуществления устройство 10 определения вектора движения может определять, ссылаться ли или нет на вектор движения блока-кандидата, или ссылаться ли на вектор движения после масштабирования размера вектора движения, посредством использования опорных индексов, указывающих отсчеты POC текущего опорного изображения и опорного изображения блока-кандидата, вместо использования долгосрочных опорных индексов текущего блока и блока-кандидата.
Более подробно, устройство 10 определения вектора движения согласно другому варианту осуществления со ссылкой на фиг. 3 может сравнивать разность Tr между опорным индексом совместно размещенного блока 36 и опорным индексом текущего блока 31 с первым пороговым значением THpocdiff1, и когда разность Tr между опорными индексами больше, чем первое пороговое значение THpocdiff1, устройство 10 определения вектора движения может определять, что вектор 37 движения совместно размещенного блока 36 не является опорной целью, или может определять ссылаться на вектор 37 движения без масштабирования размера вектора 37 движения.
Аналогично, устройство 10 определения вектора движения согласно другому варианту осуществления со ссылкой на фиг. 4 может сравнивать разность Tr между опорным индексом соседнего блока 46 и опорным индексом текущего блока 41 с первым пороговым значением THpocdiff1, и когда разность Tr между опорными индексами больше, чем первое пороговое значение THpocdiff1, устройство 10 определения вектора движения может определять, что вектор 47 движения соседнего блока 46 не является опорной целью, или может определять ссылаться на вектор 47 движения без масштабирования размера вектора 47 движения.
В других вариантах осуществления из фиг. 3 и 4, когда разность Tr между опорным индексом блока-кандидата (т.е. блоков-кандидатов 36 и 46) и опорным индексом текущего блока 31 больше, чем первое пороговое значение THpocdiff1, устройство 10 определения вектора движения может определять, что, по меньшей мере, одно из опорного изображения-кандидата (т.е. совместно размещенного опорного изображения 38 и соседнего опорного изображения 48), которое указывается посредством опорного индекса блока-кандидата (36 и 46), и текущего опорного изображения (33 и 43), которое указывается посредством опорного индекса текущего блока 31, является долгосрочным опорным изображением.
Таким образом, когда разность Tr между опорным индексом блока-кандидата (36 и 46) и опорным индексом текущего блока 31 больше, чем первое пороговое значение THpocdiff1, устройство 10 определения вектора движения может не нуждаться масштабировать размер вектора (37 и 47) движения блока-кандидата (36 и 46) посредством использования отношения расстояний между изображениями (Tb/Td), но может определять, что блок-кандидат (36 и 46) не является опорной целью, и, таким образом, может исключать вектор (37 и 47) движения блока-кандидата (36 и 46) из списка векторов движения-кандидатов. Альтернативно, устройство 10 определения вектора движения может определять предсказывать вектор (34 и 44) движения текущего блока (31 и 41) посредством ссылки на вектор (37 и 47) движения блока-кандидата (36 и 46), пока размер вектора (37 и 47) движения блока-кандидата (36 и 46) не масштабируется.
В другом варианте осуществления устройство 10 определения вектора движения может сравнивать значение разности между отсчетами POC текущего изображения (30 и 40) и текущего опорного изображения (33 и 43) со вторым пороговым значением THpocdiff2 и согласно результату сравнения, устройство 10 определения вектора движения может определять, ссылаться ли или нет на вектор (37 и 47) движения блока-кандидата (36 и 46), или ссылаться ли на масштабированный вектор движения после масштабирования размера вектора (37 и 47) движения.
Таким образом, когда разность Tb между отсчетами POC текущего опорного изображения (33 и 43), которое указывается посредством опорного индекса текущего блока (31 и 41), и текущего изображения (30 и 40) больше, чем второе пороговое значение THpocdiff2, устройство 10 определения вектора движения может не нуждаться масштабировать размер вектора (37 и 47) движения блока-кандидата (36 и 46) посредством использования отношения расстояний между изображениями (Tb/Td), но может определять, что блок-кандидат (36 и 46) не является опорной целью, и, таким образом, может исключать вектор (37 и 47) движения блока-кандидата (36 и 46) из списка векторов движения-кандидатов. Альтернативно, устройство 10 определения вектора движения может определять предсказывать вектор (34 и 44) движения текущего блока (31 и 41) посредством ссылки на вектор (37 и 47) движения блока-кандидата (36 и 46), пока размер вектора (37 и 47) движения блока-кандидата (36 и 46) не масштабируется.
Первое пороговое значение THpocdiff1 или второе пороговое значение THpocdiff2 может устанавливаться как одно из значений ниже. i) количество опорных изображений; ii) двойная величина количества опорных изображений; iii) полная сумма размера группы картинок (GOP) и двойной величины количества опорных изображений; iv) полная сумма максимально разрешенного количества max_num_reorder_pics изображений, которые предшествуют текущему изображению в порядке декодирования, и которые являются последовательными в порядке вывода, и двойной величины количества опорных изображений; v) полная сумма максимального времени задержки max_output_delay, на которое вывод восстановленного изображения, которое сохранено в DPB, максимально задерживается, и двойной величины количества опорных изображений; vi) двойная величина размера GOP; vii) двойное количество максимально разрешенного количества max_num_reorder_pics изображений, которые предшествуют текущему изображению в порядке декодирования, и которые являются последовательными в порядке вывода; и viii) двойная величина максимального времени задержки max_output_delay, на которое вывод восстановленного изображения, которое сохранено в DPB, максимально задерживается.
Когда блок-кандидат является совместно размещенным блоком 36, первое пороговое значение THpocdiff1 или второе пороговое значение THpocdiff2 может изменяться согласно относительным положениям текущего изображения 30, текущего опорного изображения 33, и совместно размещенного опорного изображения 38. Например, может иметься два случая i) когда все из опорного индекса совместно размещенного блока 36 и опорного индекса текущего блока 31 больше или меньше, чем POC текущего изображения 30 (первый случай), и ii) когда POC текущего изображения 30 находится между опорным индексом совместно размещенного блока 36 и опорным индексом текущего блока 31 (второй случай). Первое пороговое значение THpocdiff1 или второе пороговое значение THpocdiff2 может отличаться в первом и втором случаях.
Также, первое пороговое значение THpocdiff1 или второе пороговое значение THpocdiff2 может изменяться на основе временной глубины иерархической структуры согласно временному предсказанию текущего изображения 30. Например, когда на множество изображений иерархически ссылаются для временного предсказания текущего изображения 30, первое пороговое значение THpocdiff1 или второе пороговое значение THpocdiff2 может регулироваться согласно тому, на сколько иерархий ссылаются в иерархической структуре.
Альтернативно, первое пороговое значение THpocdiff1 или второе пороговое значение THpocdiff2 может изменяться согласно положению текущего изображения 30 в структуре GOP, включающей в себя текущее изображение 30.
Альтернативно, первое пороговое значение THpocdiff1 или второе пороговое значение THpocdiff2 может изменяться согласно POC текущего изображения 30 в структуре GOP, включающей в себя текущее изображение 30.
Первое пороговое значение THpocdiff1 или второе пороговое значение THpocdiff2 текущего изображения 30, которое используется в кодировании видео, может кодироваться и передаваться в видеодекодер. Например, первое пороговое значение THpocdiff1 или второе пороговое значение THpocdiff2 может определяться для каждой последовательности, каждой картинки, или каждого среза, или может адаптивно определяться согласно картинкам. Соответственно, набор параметров последовательности (SPS), набор параметров картинки (PPS), заголовок среза, и набор параметров адаптации (APS) могут содержать информацию о первом пороговом значении THpocdiff1 или втором пороговом значении THpocdiff2.
В другом варианте осуществления видеокодер и видеодекодер могут не передавать и принимать первое пороговое значение THpocdiff1 или второе пороговое значение THpocdiff2 текущего изображения 30, но могут предсказывать первое пороговое значение THpocdiff1 или второе пороговое значение THpocdiff2. Например, первое пороговое значение THpocdiff1 или второе пороговое значение THpocdiff2 может предсказываться на основе произвольного доступа или низкой задержки, что является иерархической структурой временного предсказания текущего изображения 30. Альтернативно, первое пороговое значение THpocdiff1 или второе пороговое значение THpocdiff2 может предсказываться на основе POC текущего изображения 30.
В дальнейшем, как показано на фиг. 5 и 6, подробно описываются способы кодирования и декодирования видео, включающие в себя способ определения вектора движения.
Фиг. 5 является блок-схемой последовательности операций способа кодирования видео, включающего в себя способ определения вектора движения, согласно одному варианту осуществления настоящего изобретения.
В операции 51, согласно способу определения вектора движения, может определяться список векторов движения-кандидатов, включающий в себя векторы движения множества блоков-кандидатов, на которые ссылаются, чтобы предсказывать вектор движения текущего блока.
Когда опорное изображение первого блока-кандидата из числа блоков-кандидатов отличается от опорного изображения текущего блока, способ кодирования видео может определять, использовать ли вектор движения первого блока-кандидата в списке векторов движения-кандидатов, на основе того, является ли каждое из опорного изображения текущего блока и опорного изображения первого блока-кандидата краткосрочным опорным изображением или долгосрочным опорным изображением.
Когда все из опорного изображения текущего блока и опорного изображения первого блока-кандидата являются долгосрочными опорными изображениями, вектор движения первого блока-кандидата может включаться в список векторов движения-кандидатов, в то время как размер вектора движения первого блока-кандидата не масштабируется.
Когда одно из опорного изображения текущего блока и опорного изображения первого блока-кандидата является краткосрочным опорным изображением и другое одно из них является долгосрочным опорным изображением, способ кодирования видео может определять не использовать вектор движения первого блока-кандидата в списке векторов движения-кандидатов.
Когда все из опорного изображения текущего блока и опорного изображения первого блока-кандидата являются краткосрочными опорными изображениями, вектор движения первого блока-кандидата может включаться в список векторов движения-кандидатов после того, как размер вектора движения первого блока-кандидата масштабируется.
В операции 53, вектор движения-кандидат, который определяется в операции 51 и который из числа векторов движения, включенных в список векторов движения-кандидатов, может выбираться в качестве опорного вектора движения, и вектор движения текущего блока может определяться посредством ссылки на выбранный опорный вектор движения. Вектор движения текущего блока может определяться посредством дублирования опорного вектора движения без изменения или посредством модификации опорного вектора движения. Например, когда имеется разностная информация о векторе движения, опорный вектор движения и разностная информация могут синтезироваться, так что вектор движения текущего блока может определяться.
Когда определяется опорный блок, который указывается посредством вектора движения текущего блока, который определяется в опорном изображении текущего блока, могут генерироваться остаточные данные между опорным блоком и текущим блоком.
В операции 55, преобразование и квантование могут выполняться над остаточными данными, которые генерируются в операции 53, так что могут генерироваться квантованные коэффициенты преобразования.
Внешнее предсказание операций 51, 53, и 55, преобразование, и квантование могут выполняться над каждым блоком текущего изображения, так что квантованные коэффициенты преобразования могут генерироваться в каждом блоке. Также, энтропийное кодирование может выполняться над квантованными коэффициентами преобразования для каждого блока, так что битовый поток может генерироваться и выводиться.
Способ кодирования видео согласно варианту осуществления из фиг. 5 может осуществляться посредством устройства кодирования видео. Процессор кодирования видео для осуществления способа кодирования видео согласно варианту осуществления из фиг. 5 может монтироваться в устройство кодирования видео или может осуществлять управление в соединении с внешним устройством кодирования видео, так что устройство кодирования видео может выполнять операции кодирования видео, включающие в себя внешнее предсказание, преобразование, и квантование. Согласно одному варианту осуществления согласно настоящему изобретению, внутренний процессор кодирования видео устройства кодирования видео может осуществляться посредством добавления модуля обработки кодирования видео к устройству кодирования видео, центральному обрабатывающему устройству, или графическому обрабатывающему устройству, также как к отдельному процессору, который выполняет базовую операцию кодирования видео.
Фиг. 6 является блок-схемой последовательности операций способа декодирования видео, включающего в себя способ определения вектора движения, согласно одному варианту осуществления настоящего изобретения.
В операции 61, могут приниматься опорный индекс и квантованные коэффициенты преобразования текущего блока, и вектора движения блока-кандидата.
В операции 63, обратное квантование и обратное преобразование могут выполняться над квантованными коэффициентами преобразования текущего блока, которые принимаются в операции 61, так что остаточные данные текущего блока могут восстанавливаться.
В операции 65, может определяться список векторов движения-кандидатов для текущего блока. Когда опорное изображение первого блока-кандидата из множества блоков-кандидатов отличается от опорного изображения текущего блока, способ декодирования видео может определять, использовать ли вектор движения первого блока-кандидата в списке векторов движения-кандидатов, на основе того, является ли каждое из опорного изображения текущего блока и опорного изображения первого блока-кандидата краткосрочным опорным изображением или долгосрочным опорным изображением.
Когда все из опорного изображения текущего блока и опорного изображения первого блока-кандидата являются долгосрочными опорными изображениями, вектор движения первого блока-кандидата может включаться в список векторов движения-кандидатов, в то время как размер вектора движения первого блока-кандидата не масштабируется.
Когда одно из опорного изображения текущего блока и опорного изображения первого блока-кандидата является краткосрочным опорным изображением и другое одно из них является долгосрочным опорным изображением, способ декодирования видео может определять не использовать вектор движения первого блока-кандидата в списке векторов движения-кандидатов.
Когда все из опорного изображения текущего блока и опорного изображения первого блока-кандидата являются краткосрочными опорными изображениями, вектор движения первого блока-кандидата может включаться в список векторов движения-кандидатов после того, как размер вектора движения первого блока-кандидата масштабируется.
В операции 67, вектор движения-кандидат, который определяется в операции 65 и который находится из числа векторов движения, включенных в список векторов движения-кандидатов, может выбираться в качестве опорного вектора движения, и вектор движения текущего блока может определяться посредством ссылки на выбранный опорный вектор движения. Например, когда принимается разностная информация о векторе движения, опорный вектор движения и разностная информация могут синтезироваться, так что может определяться вектор движения текущего блока.
Может определяться опорный блок, который указывается посредством вектора движения текущего блока в опорном изображении текущего блока, который указывается посредством опорного индекса текущего блока. Посредством синтезирования определенного опорного блока и остаточных данных текущего блока, текущий блок может восстанавливаться.
Операции 61, 63, 65, и 67 могут выполняться для каждого из блоков, так что может восстанавливаться текущее изображение, включающее в себя восстановленные блоки. По мере того, как изображения восстанавливаются, может восстанавливаться видео, включающее в себя последовательность восстановленных изображений.
Процедура декодирования видео, включающая в себя операции 61, 63, 65, и 67, может выполняться, когда видео восстанавливается посредством приема кодированного видеопотока и затем декодирования видеопотока. В этом случае, в операции 61, принятый видеопоток может синтаксически разбираться, и, таким образом, квантованные коэффициенты преобразования опорного индекса текущего блока, и вектор движения блока-кандидата могут извлекаться из видеопотока.
Процедура декодирования видео, включающая в себя операции 61, 63, 65, и 67, также может выполняться, чтобы генерировать восстановленное изображение, чтобы на него ссылаться для внешнего предсказания другого изображения, в вышеупомянутом способе кодирования видео. В этом случае, в операции 61, опорный индекс и квантованные коэффициенты преобразования текущего блока, которые генерируются посредством внешнего предсказания, преобразования, и квантования, и вектор движения блока-кандидата могут приниматься, и затем операции 63, 65, и 67 могут пошагово выполняться, так что окончательно восстановленное текущее изображение может использоваться в качестве опорного изображения для внешнего предсказания другого изображения.
Способ декодирования видео согласно варианту осуществления из фиг. 6 может осуществляться посредством устройства декодирования видео. Процессор декодирования видео для осуществления способа декодирования видео согласно варианту осуществления из фиг. 6 может монтироваться в устройство декодирования видео или может осуществлять управление в соединении с внешним устройством декодирования видео, так что устройство декодирования видео может выполнять операции декодирования видео, включающие в себя обратное квантование, обратное преобразование, и внутреннее предсказание, и компенсацию движения. Согласно одному варианту осуществления согласно настоящему изобретению, внутренний процессор декодирования видео устройства декодирования видео может осуществляться посредством добавления обрабатывающего модуля декодирования видео к устройству декодирования видео, центральному обрабатывающему устройству, или графическому обрабатывающему устройству, также как к отдельному процессору, который выполняет базовую операцию декодирования видео.
Фиг. 7 является блок-схемой блока 70 кодирования видео, включающего в себя устройство 10 определения вектора движения, согласно одному варианту осуществления настоящего изобретения.
Блок 70 кодирования видео включает в себя блок 71 внешнего предсказания и блок 75 преобразования и квантования. Блок 71 внешнего предсказания может включать в себя устройство 10 определения вектора движения и блок 73 генерирования остатка.
Устройство 10 определения вектора движения определяет вектор движения для каждого блока. Также, для предсказания вектора движения, слияния PU, или AMVP, вектор движения текущего блока может предсказываться посредством ссылки на вектор движения другого блока. Устройство 10 определения вектора движения может определять список векторов движения-кандидатов текущего блока, чтобы выполнять предсказание вектора движения. Опорный вектор движения может выбираться из числа векторов движения-кандидатов, включенных в список векторов движения-кандидатов.
Устройство 10 определения вектора движения может определять опорный вектор движения посредством выбора оптимального вектора движения-кандидата из числа векторов движения, включенных в список векторов движения-кандидатов, и может определять вектор движения текущего блока посредством использования выбранного опорного вектора движения.
Блок 73 генерирования остатка может определять опорный блок, который указывается посредством вектора движения текущего блока в опорном изображении текущего блока, и может генерировать остаточные данные между опорным блоком и текущим блоком.
Соответственно, блок 71 внешнего предсказания может выполнять внешнее предсказание для каждого блока и затем может выводить остаточные данные для каждого блока.
Блок 75 преобразования и квантования может выполнять преобразование и квантование над остаточными данными, которые выводятся из блока 71 внешнего предсказания, и, таким образом, может генерировать квантованные коэффициенты преобразования. Блок 75 преобразования и квантования может выполнять преобразование и квантование над остаточными данными для каждого блока, который принимается от блока 71 внешнего предсказания, и, таким образом, может генерировать квантованные коэффициенты преобразования для каждого блока.
Блок 70 кодирования видео может выполнять энтропийное кодирование над квантованными коэффициентами преобразования, которые генерируются посредством блока 75 преобразования и квантования, и, таким образом, может выводить кодированный битовый поток. Также, когда опорный индекс, вектор движения, долгосрочный опорный индекс, или подобное выводятся из блока 71 внешнего предсказания, блок 70 кодирования видео может выполнять энтропийное кодирование не только над квантованными коэффициентами преобразования, но также над опорным индексом, вектором движения, и долгосрочным опорным индексом, и, таким образом, может выводить битовый поток.
Фиг. 8 является блок-схемой блока 80 декодирования видео, включающего в себя устройство 10 определения вектора движения, согласно одному варианту осуществления настоящего изобретения.
Блок 80 декодирования видео включает в себя блок 81 обратного квантования и обратного преобразования и блок 83 компенсации движения. Блок 83 компенсации движения может включать в себя устройство 10 определения вектора движения и блок 85 восстановления блоков.
Блок 80 декодирования видео может принимать опорный индекс и квантованные коэффициенты преобразования текущего блока, и вектор движения блока-кандидата. Блок 81 обратного квантования и обратного преобразования может выполнять обратное квантование и обратное преобразование над квантованными коэффициентами преобразования текущего блока, и, таким образом, может восстанавливать остаточные данные текущего блока.
Блок 83 компенсации движения может выполнять компенсацию движения над текущим блоком, который кодируется посредством внешнего предсказания, и, таким образом, может восстанавливать текущий блок.
Устройство 10 определения вектора движения определяет вектор движения для каждого блока. Устройство 10 определения вектора движения может определять список векторов движения-кандидатов текущего блока, чтобы предсказывать вектор движения. Блок-кандидат может включать в себя совместно размещенный блок или соседний блок. Устройство 10 определения вектора движения может определять опорный вектор движения из числа векторов движения-кандидатов, включенных в список векторов движения-кандидатов.
Когда опорное изображение первого блока-кандидата из числа блоков-кандидатов, включенных в список векторов движения-кандидатов текущего блока, отличается от опорного изображения текущего блока, устройство 10 определения вектора движения может определять, использовать ли или нет опорное изображение первого блока-кандидата в списке векторов движения-кандидатов, на основе того, является ли каждое из опорного изображения текущего блока и опорного изображения первого блока-кандидата краткосрочным опорным изображением или долгосрочным опорным изображением.
Устройство 10 определения вектора движения может определять опорный вектор движения посредством выбора оптимального вектора движения-кандидата из числа векторов движения-кандидатов, включенных в список векторов движения-кандидатов, может предсказывать вектор движения текущего блока посредством использования опорного вектора движения, и затем может определять вектор движения текущего блока.
Блок 85 восстановления блоков может определять опорное изображение текущего блока, который указывается посредством опорного индекса текущего блока, который принимается посредством блока 80 декодирования видео. Может определяться опорный блок, который вектор движения текущего блока, который определяется в устройстве 10 определения вектора движения, указывает в опорном изображении, опорный блок и остаточные данные текущего блока могут синтезироваться, и, таким образом, текущий блок может восстанавливаться.
Блок 83 компенсации движения может выполнять компенсацию движения для каждого блока, может восстанавливать каждый блок, и, таким образом, может восстанавливать текущее изображение, включающее в себя восстановленные блоки. Таким образом, блок 80 декодирования видео может восстанавливать изображения, и, таким образом, может восстанавливать видео, включающее в себя последовательность изображений.
Блок 80 декодирования видео может дополнительно включать в себя блок внутриконтурной фильтрации (не показан), который выполняет фильтрацию удаления блочности над восстановленным изображением, включающим в себя текущий блок и блоки, которые восстановлены, по мере того, как блоки, восстанавливаются.
Блок 80 декодирования видео может принимать кодированный видеопоток, может декодировать видеопоток, и, таким образом, может восстанавливать видео. В этом случае, блок 80 декодирования видео может осуществлять синтаксический разбор видеопотока и, таким образом, может извлекать опорный индекс и квантованные коэффициенты преобразования текущего блока, и вектор движения блока-кандидата из видеопотока. Также, блок 80 декодирования видео может дополнительно включать в себя блок приема (не показан), который принимает битовый поток, который выполняет энтропийное декодирование над битовым потоком, и который осуществляет синтаксический разбор и извлекает опорный индекс и квантованные коэффициенты преобразования текущего блока, и вектор движения блока-кандидата из битового потока.
Чтобы генерировать восстановленное изображение, чтобы на него ссылаться для внешнего предсказания другого изображения посредством блока 70 кодирования видео, который описан выше со ссылкой на фиг. 7, блок 80 декодирования видео может быть скомбинирован с блоком 70 кодирования видео. В этом случае, блок 80 декодирования видео может принимать опорный индекс и квантованные коэффициенты преобразования текущего блока, которые генерируются посредством внешнего предсказания, преобразования, и квантования и затем выводятся из блока 70 кодирования видео, может принимать вектор движения блока-кандидата, и может выводить текущее изображение, которое окончательно восстанавливается посредством блока 81 обратного квантования и обратного преобразования и блока 83 компенсации движения. Восстановленное изображение, которое выводится из блока 80 декодирования видео, может использоваться в качестве опорного изображения для внешнего предсказания другого изображения посредством блока 70 кодирования видео.
Как описано выше, в устройстве 10 определения вектора движения, блоки, полученные посредством разделения видеоданных, разделяются на блоки кодирования согласно древовидной структуре, и блоки кодирования предсказания используются для внешнего предсказания для блока кодирования. В дальнейшем, со ссылкой на фиг. 9 по 22, будут описываться способ и устройство для кодирования видео и способ и устройство для декодирования видео, на основе единицы кодирования и единицы преобразования согласно древовидной структуре.
Фиг. 9 является блок-схемой устройства 100 кодирования видео на основе единицы кодирования согласно древовидной структуре, согласно одному варианту осуществления согласно настоящему изобретению.
Устройство 100 кодирования видео посредством предсказания видео на основе единицы кодирования согласно древовидной структуре включает в себя блок 110 разделения максимальной единицы кодирования, определитель 120 единицы кодирования и блок 130 вывода. В дальнейшем, для удобства описания, устройство 100 кодирования видео посредством предсказания видео на основе единицы кодирования согласно древовидной структуре упоминается как ′устройство 100 кодирования видео′.
Блок 110 разделения максимального блока кодирования может разделять текущую картинку на основе максимальной единицы кодирования для текущей картинки изображения. Если текущая картинка больше, чем максимальная единица кодирования, данные изображения текущей картинки могут разделяться на по меньшей мере одну максимальную единицу кодирования. Максимальная единица кодирования согласно одному варианту осуществления согласно настоящему изобретению может быть единицей данных, имеющей размер 32×32, 64×64, 128×128, 256×256, и т.д., при этом форма единицы данных является квадратом, имеющим ширину и длину в квадратах 2. Данные изображения могут выводиться в определитель 120 единицы кодирования посредством, по меньшей мере, одной максимальной единицы кодирования.
Единица кодирования согласно одному варианту осуществления согласно настоящему изобретению может характеризоваться максимальным размером и глубиной. Глубина обозначает количество того, сколько раз единица кодирования пространственно разделяется из максимальной единицы кодирования, и по мере того, как глубина становится глубже, более глубокие единицы кодирования согласно глубинам могут разделяться из максимальной единицы кодирования до минимальной единицы кодирования. Глубина максимальной единицы кодирования является самой верхней глубиной, и глубина минимальной единицы кодирования является самой нижней глубиной. Так как размер единицы кодирования, соответствующей каждой глубине, уменьшается по мере того, как глубина максимальной единицы кодирования становится глубже, единица кодирования, соответствующая верхней глубине, может включать в себя множество единиц кодирования, соответствующих более низким глубинам.
Как описано выше, данные изображения текущей картинки разделяются на максимальные единицы кодирования согласно максимальному размеру единицы кодирования, и каждая из максимальных единицы кодирования может включать в себя более глубокие единицы кодирования, которые разделяются согласно глубинам. Так как максимальная единица кодирования согласно одному варианту осуществления согласно настоящему изобретению разделяется согласно глубинам, данные изображения пространственной области, включенные в максимальную единицу кодирования, могут иерархически классифицироваться согласно глубинам.
Могут предварительно определяться максимальная глубина и максимальный размер единицы кодирования, которые ограничивают полное количество того, сколько раз высота и ширина максимальной единицы кодирования иерархическим образом разделяются.
Определитель 120 единицы кодирования кодирует, по меньшей мере, одну область разделения, полученную посредством разделения области максимальной единицы кодирования согласно глубинам, и определяет глубину, чтобы выводить окончательно кодированные данные изображения согласно упомянутой, по меньшей мере, одной области разделения. Другими словами, определитель 120 единицы кодирования определяет кодированную глубину посредством кодирования данных изображения в более глубоких единицах кодирования согласно глубинам, согласно максимальной единице кодирования текущей картинки, и выбора глубины, имеющей наименьшую ошибку кодирования. Таким образом, кодированные данные изображения единицы кодирования, соответствующей определенной кодированной глубине, в конечном счете выводятся. Также, единицы кодирования, соответствующие кодированной глубине, могут рассматриваться как кодированные единицы кодирования. Определенная кодированная глубина и кодированные данные изображения согласно определенной кодированной глубине выводятся в блок 130 вывода.
Данные изображения в максимальной единице кодирования кодируются на основе более глубоких единиц кодирования, соответствующих, по меньшей мере, одной глубине, равной или ниже максимальной глубины, и результаты кодирования данных изображения сравниваются на основе каждой из более глубоких единиц кодирования. Глубина, имеющая наименьшую ошибку кодирования, может выбираться после сравнения ошибок кодирования более глубоких единиц кодирования. По меньшей мере, одна кодированная глубина может выбираться для каждой максимальной единицы кодирования.
Размер максимальной единицы кодирования разделяется, по мере того, как единица кодирования иерархическим образом разделяется согласно глубинам, и по мере того, как количество единиц кодирования увеличивается. Также, даже если единицы кодирования соответствуют одной и той же глубине в одной максимальной единице кодирования, определяется, разделять ли каждую из единиц кодирования, соответствующих одной и той же глубине, на более низкую глубину, посредством измерения ошибки кодирования данных изображения каждой единицы кодирования, отдельно. Соответственно, даже когда данные изображения включены в одну максимальную единицу кодирования, данные изображения разделяются на области согласно глубинам, и ошибки кодирования могут отличаться согласно областям в одной максимальной единицы кодирования, и, таким образом, кодированные глубины могут отличаться согласно областям в данных изображения. Таким образом, одна или более кодированных глубин могут определяться в одной максимальной единице кодирования, и данные изображения максимальной единицы кодирования могут разделяться согласно единицам кодирования, по меньшей мере, одной кодированной глубины.
Соответственно, определитель 120 единицы кодирования может определять единицы кодирования, имеющие древовидную структуру, включенную в максимальную единицу кодирования. ′Единицы кодирования, имеющие древовидную структуру′ согласно одному варианту осуществления согласно настоящему изобретению включают в себя единицы кодирования, соответствующие глубине, определенной как кодированная глубина, из числа всех более глубоких единиц кодирования, включенных в максимальную единицу кодирования. Единица кодирования кодированной глубины может иерархически определяться согласно глубинам в одной и той же области максимальной единицы кодирования, и может независимо определяться в разных областях. Аналогично, кодированная глубина в текущей области может независимо определяться по кодированной глубине в другой области.
Максимальная глубина согласно одному варианту осуществления согласно настоящему изобретению является индексом, относящимся к количеству того, сколько раз выполняется разделение из максимальной единицы кодирования до минимальной единицы кодирования. Первая максимальная глубина согласно одному варианту осуществления согласно настоящему изобретению может обозначать полное количество того, сколько раз разделение выполняется из максимальной единицы кодирования до минимальной единицы кодирования. Вторая максимальная глубина согласно одному варианту осуществления согласно настоящему изобретению может обозначать полное количество уровней глубины от максимальной единицы кодирования до минимальной единицы кодирования. Например, когда глубина максимальной единицы кодирования равняется 0, глубина единицы кодирования, в которой максимальная единица кодирования разделяется один раз, может устанавливаться на 1, и глубина единицы кодирования, в которой максимальная единица кодирования разделяется дважды, может устанавливаться на 2. Здесь, если минимальная единица кодирования является единицей кодирования, в которой максимальная единица кодирования разделяется четыре раза, существуют 5 уровней глубины глубин 0, 1, 2, 3 и 4, и, таким образом, первая максимальная глубина может устанавливаться на 4, и вторая максимальная глубина может устанавливаться на 5.
Кодирование с предсказанием и преобразование могут выполняться согласно максимальной единице кодирования. Кодирование с предсказанием и преобразование также выполняются на основе более глубоких единиц кодирования согласно глубине, равной или глубинам, меньшим, чем максимальная глубина, согласно максимальной единице кодирования. Преобразование может выполняться согласно способу ортогонального преобразования или целочисленного преобразования.
Так как количество более глубоких единиц кодирования увеличивается всякий раз, когда максимальная единица кодирования разделяется согласно глубинам, кодирование, включающее в себя кодирование с предсказанием, и преобразование, выполняется над всеми из более глубоких единиц кодирования, генерируемых по мере того, как глубина становится глубже. Для удобства описания, кодирование с предсказанием и преобразование теперь будут описываться на основе единицы кодирования текущей глубины, в максимальной единице кодирования.
Устройство 100 кодирования видео может различным образом выбирать размер или форму единицы данных для кодирования данных изображения. Чтобы кодировать данные изображения, выполняются операции, такие как кодирование с предсказанием, преобразование, и энтропийное кодирование, и в это время, для всех операций может использоваться одна и та же единица данных, или для каждой операции могут использоваться разные единицы данных.
Например, устройство 100 кодирования видео может выбирать не только единицу кодирования для кодирования данных изображения, но также единицу данных, отличающуюся от единицы кодирования, чтобы выполнять кодирование с предсказанием над данными изображения в единице кодирования.
Чтобы выполнять кодирование с предсказанием над максимальной единицей кодирования, кодирование с предсказанием может выполняться на основе единицы кодирования, соответствующей кодированной глубине, т.е. на основе единицы кодирования, которая более не разделяется на единицы кодирования, соответствующие более низкой глубине. В дальнейшем, единица кодирования, которая более не разделяется и становится базовой единицей для кодирования с предсказанием, теперь упоминается как ′единица предсказания′. Фрагмент, полученный посредством разделения единицы предсказания, может включать в себя единицу предсказания или единицу данных, полученную посредством разделения, по меньшей мере, одной из высоты и ширины единицы предсказания. Фрагмент является единицей данных, полученной посредством разделения единицы предсказания единицы кодирования, и единица предсказания может быть фрагментом, имеющим такой же размер, что и единица кодирования.
Например, когда единица кодирования, равная 2N×2N (где N является положительным целым числом) более не разделяется и становится единицей предсказания, равной 2N×2N, размер фрагмента может быть 2N×2N, 2N×N, N×2N, или N×N. Примеры типа фрагмента, включают в себя симметричные фрагменты, которые получаются посредством симметричного разделения высоты или ширины единицы предсказания, фрагменты, получаемые посредством асимметричного разделения высоты или ширины единицы предсказания, такие как 1:n или n:1, фрагменты, которые получаются посредством геометрического разделения единицы предсказания, и фрагменты, имеющие произвольные формы.
Режим предсказания единицы предсказания может быть, по меньшей мере, одним из внутреннего режима, внешнего режима, и режима пропуска. Например, внутренний режим или внешний режим могут выполняться над фрагментом, равным 2N×2N, 2N×N, N×2N, или N×N. Также, режим пропуска может выполняться только над фрагментом, равным 2N×2N. Кодирование независимо выполняется над одной единицей предсказания в единице кодирования, тем самым выбирается режим предсказания, имеющий наименьшую ошибку кодирования.
Устройство 100 кодирования видео также может выполнять преобразование над данными изображения в единице кодирования не только на основе единицы кодирования для кодирования данных изображения, но также на основе единицы преобразования, которая отличается от единицы кодирования. Чтобы выполнять преобразование в единице кодирования, преобразование может выполняться на основе единицы данных, имеющей размер, меньший или равный единице кодирования. Например, единица преобразования для преобразования может включать в себя единицу преобразования для внутреннего режима и единицу данных для внешнего режима.
Аналогично единице кодирования согласно древовидной структуре согласно настоящему варианту осуществления, единица преобразования в единице кодирования может рекурсивно разделяться на меньшие по размеру области, и остаточные данные в единице кодирования могут разделяться согласно преобразованию, имеющему древовидную структуру, согласно глубинам преобразования.
Согласно одному варианту осуществления согласно настоящему изобретению, глубина преобразования, указывающая количество того, сколько раз разделение выполняется, чтобы достичь единицу преобразования, посредством разделения высоты и ширины единицы кодирования, также может устанавливаться в единице преобразования. Например, когда размер единицы преобразования текущей единицы кодирования равняется 2N×2N, глубина преобразования может устанавливаться на 0. Когда размер единицы преобразования равняется N×N, глубина преобразования может устанавливаться на 1. В дополнение, когда размер единицы преобразования равняется N/2×N/2, глубина преобразования может устанавливаться на 2. То есть, единица преобразования согласно древовидной структуре также может устанавливаться согласно глубине преобразования.
Информация кодирования согласно единицам кодирования, соответствующим кодированной глубине, требует не только информацию о кодированной глубине, но также информацию, относящуюся к кодированию с предсказанием и преобразованию. Соответственно, определитель 120 единицы кодирования не только определяет кодированную глубину, имеющую наименьшую ошибку кодирования, но также определяет тип фрагмента в единице предсказания, режим предсказания согласно единицам предсказания, и размер единицы преобразования для преобразования.
Единицы кодирования и единица предсказания/фрагмент согласно древовидной структуре в максимальной единице кодирования, и способ определения единицы преобразования, согласно вариантам осуществления согласно настоящему изобретению, будут подробно описываться ниже со ссылкой на фиг. 11 по 22.
Определитель 120 единицы кодирования может измерять ошибку кодирования более глубоких единиц кодирования согласно глубинам посредством использования оптимизации частоты искажений на основе множителей Лагранжа.
Блок 130 вывода выводит данные изображения максимальной единицы кодирования, которые кодируются на основе упомянутой, по меньшей мере, одной кодированной глубины, определенной посредством определителя 120 единицы кодирования, и информацию о режиме кодирования согласно кодированной глубине, в битовых потоках.
Кодированные данные изображения могут получаться посредством кодирования остаточных данных изображения.
Информация о режиме кодирования согласно кодированной глубине может включать в себя информацию о кодированной глубине, типе фрагмента в единице предсказания, режиме предсказания, и размере единицы преобразования.
Информация о кодированной глубине может определяться посредством использования информации разделения согласно глубинам, которая указывает, выполняется ли кодирование над единицами кодирования более низкой глубины вместо текущей глубины. Если текущая глубина текущей единицы кодирования является кодированной глубиной, данные изображения в текущей единице кодирования кодируются и выводятся, и, таким образом, информация разделения может определяться, чтобы не разделять текущую единицу кодирования на более низкую глубину. Альтернативно, если текущая глубина текущей единицы кодирования не является кодированной глубиной, кодирование выполняется над единицей кодирования более низкой глубины, и, таким образом, информация разделения может определяться, чтобы разделять текущую единицу кодирования, чтобы получать единицы кодирования более низкой глубины.
Если текущая глубина не является кодированной глубиной, кодирование выполняется над единицей кодирования, которая разделяется на единицу кодирования более низкой глубины. Так как, по меньшей мере, одна единица кодирования более низкой глубины существует в одной единице кодирования текущей глубины, кодирование повторно выполняется над каждой единицей кодирования более низкой глубины, и, таким образом, кодирование может рекурсивно выполняться для единиц кодирования, имеющих одну и ту же глубину.
Так как единицы кодирования, имеющие древовидную структуру, определяются для одной максимальной единицы кодирования, и информация о, по меньшей мере, одном режиме кодирования определяется для единицы кодирования кодированной глубины, информация о, по меньшей мере, одном режиме кодирования может определяться для одной максимальной единицы кодирования. Также, кодированная глубина данных изображения максимальной единицы кодирования может быть разной согласно местоположениям, так как данные изображения иерархическим образом разделяются согласно глубинам, и, таким образом, информация о кодированной глубине и режиме кодирования может устанавливаться для данных изображения.
Соответственно, блок 130 вывода может назначать информацию кодирования о соответствующей кодированной глубине и режиме кодирования, по меньшей мере, одной из единицы кодирования, единицы предсказания и минимальной единицы, включенной в максимальную единицу кодирования.
Минимальная единица согласно одному варианту осуществления согласно настоящему изобретению является прямоугольной единицей данных, полученной посредством разделения минимальной единицы кодирования, составляющей самую нижнюю глубину, на 4. Альтернативно, минимальная единица может быть максимальной прямоугольной единицей данных, имеющей максимальный размер, который включается во все из единиц кодирования, единиц предсказания, единиц фрагментов и единиц преобразования, включенных в максимальную единицу кодирования.
Например, информация кодирования, выводимая посредством блока 130 вывода, может классифицироваться в информацию кодирования согласно единицам кодирования, и информацию кодирования согласно единицам предсказания. Информация кодирования согласно единицам кодирования может включать в себя информацию о режиме предсказания и о размере фрагментов. Информация кодирования согласно единицам предсказания может включать в себя информацию об оцененном направлении внешнего режима, об индексе опорного изображения внешнего режима, о векторе движения, о компоненте цветности внутреннего режима, и о способе интерполяции внутреннего режима.
Также, информация о максимальном размере единицы кодирования, определенной согласно картинкам, срезам или группам GOP, и информация о максимальной глубине могут вставляться в заголовок битового потока, SPS (набор параметров последовательности) или набор параметров картинки (PPS).
В дополнение, информация о максимальном размере единицы преобразования и информация о минимальном размере преобразования, которые являются приемлемыми для текущего видео, также могут выводиться посредством заголовка битового потока, SPS или PPS. Блок 130 вывода может кодировать и выводить опорную информацию, информацию предсказания, информацию предсказания одного направления, и информацию о типе среза, включающую в себя четвертый тип среза, которые относятся к предсказанию, описанному со ссылкой на фиг. 1 по 8.
В устройстве 100 кодирования видео, более глубокая единица кодирования может быть единицей кодирования, полученной посредством деления высоты или ширины единицы кодирования верхней глубины, которая находится на один слой выше, на два. Другими словами, когда размер единицы кодирования текущей глубины равняется 2N×2N, размер единицы кодирования более низкой глубины равняется N×N. Также, единица кодирования текущей глубины, имеющая размер, равный 2N×2N, может включать в себя максимальное значение 4 единицы кодирования более низкой глубины.
Соответственно, устройство 100 кодирования видео может формировать единицы кодирования, имеющие древовидную структуру, посредством определения единиц кодирования, имеющих оптимальную форму и оптимальный размер для каждой максимальной единицы кодирования, на основе размера максимальной единицы кодирования и максимальной глубины, определенной при рассмотрении характеристик текущей картинки. Также, так как кодирование может выполняться над каждой максимальной единицей кодирования посредством использования любого из различных режимов предсказания и преобразований, оптимальный режим кодирования может определяться при учете характеристик единицы кодирования различных размеров изображения.
Таким образом, если изображение, имеющее высокое разрешение или большой объем данных, кодируется в стандартном макроблоке, количество макроблоков в расчете на картинку избыточно увеличивается. Соответственно, количество частей сжатой информации, сгенерированной для каждого макроблока, увеличивается, и, таким образом, является трудным передавать сжатую информацию и эффективность сжатия данных уменьшается. Однако посредством использования устройства 100 кодирования видео, эффективность сжатия изображения может увеличиваться, так как единица кодирования регулируется при учете характеристик изображения при увеличении максимального размера единицы кодирования при учете размера изображения.
Устройство 100 кодирования видео из фиг. 9 может выполнять операции посредством устройства 10 определения вектора движения и блока 70 кодирования видео, которые описаны выше со ссылкой на фиг. 1.
Определитель 120 единицы кодирования может определять единицу предсказания, включающую в себя фрагмент для внешнего предсказания для каждой соответствующей единицы кодирования согласно древовидной структуре для каждой максимальной единицы кодирования, и может выполнять внешнее предсказание для каждой соответствующей единицы предсказания.
Определитель 120 единицы кодирования определяет вектор движения для каждой соответствующей единицы предсказания. Также, для предсказания вектора движения, слияния PU, или AMVP, вектор движения текущей единицы предсказания (фрагмента) может предсказываться посредством ссылки на вектор движения другой единицы предсказания. Определитель 120 единицы кодирования может определять список векторов движения-кандидатов текущей единицы предсказания, чтобы выполнять предсказание вектора движения. Опорный вектор движения может выбираться из числа векторов движения-кандидатов, включенных в список векторов движения-кандидатов. Первая единица предсказания-кандидат может быть соседней единицей предсказания, которая является смежной с текущей единицей предсказания в текущем изображении, или может быть совместно размещенной единицей предсказания в совместно размещенном изображении.
Когда опорное изображение первой единицы предсказания-кандидата из числа единиц предсказания-кандидатов в списке векторов движения-кандидатов текущей единицы предсказания отличается от опорного изображения текущей единицы предсказания, определитель 120 единицы кодирования определяет, использовать ли или нет вектор движения первой единицы предсказания-кандидата из списка векторов движения-кандидатов, на основе того, является ли каждое из опорного изображения текущей единицы предсказания и опорного изображения первой единицы предсказания-кандидата краткосрочным опорным изображением или долгосрочным опорным изображением.
Альтернативно, является возможным определять, является ли каждое из опорного изображения текущей единицы предсказания и опорного изображения первой единицы предсказания-кандидата краткосрочным опорным изображением или долгосрочным опорным изображением, на основе долгосрочных опорных индексов текущей единицы предсказания и первой единицы предсказания-кандидата.
Когда все из опорного изображения текущей единицы предсказания и опорного изображения первой единицы предсказания-кандидата являются долгосрочными опорными изображениями, является возможным поддерживать вектор движения первой единицы предсказания-кандидата в списке векторов движения-кандидатов без масштабирования размера вектора движения первой единицы предсказания-кандидата.
Когда одно из опорного изображения текущей единицы предсказания и опорного изображения первой единицы-кандидата является краткосрочным опорным изображением, и другое одно из опорного изображения текущей единицы предсказания и опорного изображения первой единицы-кандидата является долгосрочным опорным изображением, является возможным определять не использовать вектор движения первую единицу предсказания-кандидат в списке векторов движения-кандидатов.
Когда все из опорного изображения текущей единицы предсказания и опорного изображения первой единицы предсказания-кандидата являются краткосрочными опорными изображениями, является возможным масштабировать размер вектора движения первой единицы предсказания-кандидата и затем включать вектор движения первой единицы предсказания-кандидата в список векторов движения-кандидатов.
Определитель 120 единицы кодирования может определять опорный вектор движения посредством выбора оптимального опорного вектора движения из числа векторов движения, включенных в список векторов движения-кандидатов, и может предсказывать и определять вектор движения текущей единицы предсказания посредством использования выбранного опорного вектора движения.
Определитель 120 единицы кодирования может определять опорное изображение текущей единицы предсказания согласно POC, указанному посредством опорного индекса текущей единицы предсказания. Независимо от того, является ли опорное изображение текущей единицы предсказания краткосрочным опорным изображением или долгосрочным опорным изображением, опорный индекс может указывать POC, и определитель 120 единицы кодирования может определять изображение, которое указывается посредством POC, в качестве опорного изображения.
Определитель 120 единицы кодирования может определять опорный блок, который указывается посредством вектора движения текущей единицы предсказания в опорном изображении текущей единицы предсказания, и может генерировать остаточные данные между опорной единицей предсказания и текущей единицей предсказания.
Соответственно, определитель 120 единицы кодирования может выполнять внешнее предсказание для каждой единицы предсказания и затем может выводить остаточные данные для каждой единицы предсказания.
Определитель 120 блока кодирования может выполнять преобразование и квантование над единицами преобразования единицы кодирования, включающей в себя остаточные данные для каждой единицы предсказания, и, таким образом, может генерировать квантованные коэффициенты преобразования. Соответственно, определитель 120 единицы кодирования может генерировать квантованные коэффициенты преобразования для каждой единицы преобразования.
Также, определитель 120 единицы кодирования может выполнять операции блока 80 декодирования видео, описанного выше со ссылкой на фиг. 8, чтобы генерировать опорное изображение, используемое во внешнем предсказании единицы предсказания.
Определитель 120 единицы кодирования может выполнять обратное квантование и обратное преобразование над квантованными коэффициентами преобразования текущей единицы предсказания, и, таким образом, может восстанавливать остаточные данные текущего блока.
Определитель 120 единицы кодирования может определять список векторов движения-кандидатов текущей единицы предсказания, и когда опорное изображение первой единицы предсказания-кандидата из числа единиц предсказания-кандидатов в списке векторов движения-кандидатов текущей единицы предсказания отличается от опорного изображения текущей единицы предсказания, определитель 120 единицы кодирования может определять, использовать ли или нет вектор движения первой единицы предсказания-кандидата из списка векторов движения-кандидатов, на основе того, является ли каждое из опорного изображения текущей единицы предсказания и опорного изображения первой единицы предсказания-кандидата краткосрочным опорным изображением или долгосрочным опорным изображением.
Определитель 120 единицы кодирования может определять опорный вектор движения посредством выбора оптимального опорного вектора движения из числа векторов движения, включенных в список векторов движения-кандидатов, и может предсказывать и определять вектор движения текущего блока предсказания посредством использования выбранного опорного вектора движения.
Определитель 120 единицы кодирования может определять опорное изображение текущей единицы предсказания, указанной посредством опорного индекса текущей единицы предсказания. То есть, опорное изображение текущей единицы предсказания может определяться согласно POC, указанному посредством опорного индекса текущей единицы предсказания. Независимо от того, является ли опорное изображение текущей единицы предсказания краткосрочным опорным изображением или долгосрочным опорным изображением, опорный индекс может указывать POC, и изображение, которое указывается посредством POC, может определяться в качестве опорного изображения.
Соответственно, определитель 120 единицы кодирования может выполнять компенсацию движения для каждой единицы предсказания, может восстанавливать каждую единицу предсказания, и, таким образом, может восстанавливать текущее изображение, включающее в себя восстановленные единицы предсказания. Восстановленная единица предсказания и изображение могут становиться опорными целями другой единицы предсказания и другого изображения.
Фиг. 10 является блок-схемой устройства 200 декодирования видео на основе единицы кодирования согласно древовидной структуре, согласно одному варианту осуществления согласно настоящему изобретению.
Устройство 200 декодирования видео на основе единицы кодирования согласно древовидной структуре включает в себя приемник 210, модуль 220 извлечения данных изображения и информации кодирования, и декодер 230 данных изображения. В дальнейшем, для удобства описания, устройство 200 декодирования видео, использующее предсказание видео на основе единицы кодирования согласно древовидной структуре, упоминается как ′устройство 200 декодирования видео′.
Определения различных признаков, таких как единица кодирования, глубина, единица предсказания, единица преобразования, и информация о различных режимах кодирования, для операций декодирования устройства 200 декодирования видео являются идентичными определениям, описанным со ссылкой на фиг. 9 и устройство 100 кодирования видео.
Приемник 210 принимает и осуществляет синтаксический разбор битового потока кодированного видео. Модуль 220 извлечения данных изображения и информации кодирования извлекает кодированные данные изображения для каждой единицы кодирования из синтаксически разобранного битового потока, при этом единицы кодирования имеют древовидную структуру согласно каждому максимальной единице кодирования, и выводит извлеченные данные изображения в декодер 230 данных изображения. Модуль 220 извлечения данных изображения и информации кодирования может извлекать информацию о максимальном размере единицы кодирования текущей картинки, из заголовка о текущей картинке, SPS, или PPS.
Также, модуль 220 извлечения данных изображения и информации кодирования извлекает информацию о кодированной глубине и режиме кодирования для единиц кодирования, имеющих древовидную структуру согласно каждому максимальной единице кодирования, из синтаксически разобранного битового потока. Извлеченная информация о кодированной глубине и режиме кодирования выводится в декодер 230 данных изображения. Другими словами, данные изображения в битовом потоке разделяются на максимальную единицу кодирования, так что декодер 230 данных изображения декодирует данные изображения для каждой максимальной единицы кодирования.
Информация о кодированной глубине и режиме кодирования согласно максимальной единице кодирования может устанавливаться для информации о, по меньшей мере, одной единице кодирования, соответствующем кодированной глубине, и информация о режиме кодирования может включать в себя информацию о типе фрагмента соответствующей единицы кодирования, соответствующей кодированной глубине, о режиме предсказания, и размере единицы преобразования. Также, информация разделения согласно глубинам может извлекаться как информация о кодированной глубине.
Информация о кодированной глубине и режиме кодирования согласно каждой максимальной единице кодирования, извлекаемая посредством модуля 220 извлечения данных изображения и информации кодирования, является информацией о кодированной глубине и режиме кодирования, определенной, чтобы генерировать минимальную ошибку кодирования, когда кодер, такой как устройство 100 кодирования видео, повторно выполняет кодирование для каждой более глубокой единицы кодирования согласно глубинам согласно каждой максимальной единице кодирования. Соответственно, устройство 200 декодирования видео может восстанавливать изображение посредством декодирования данных изображения согласно кодированной глубине и режиму кодирования, который генерирует минимальную ошибку кодирования.
Так как информация кодирования о кодированной глубине и режиме кодирования может назначаться предварительно определенной единице данных из числа соответствующей единицы кодирования, единицы предсказания и минимальной единицы, модуль 220 извлечения данных изображения и информации кодирования может извлекать информацию о кодированной глубине и режиме кодирования согласно предварительно определенным единицам данных. О предварительно определенных единицах данных, которым назначена одна и та же информация о кодированной глубине и режиме кодирования, может делаться вывод, что они являются единицами данных, включенными в одну и ту же максимальную единицу кодирования.
Декодер 230 данных изображения восстанавливает текущую картинку посредством декодирования данных изображения в каждой максимальной единице кодирования на основе информации о кодированной глубине и режиме кодирования согласно максимальным единицам кодирования. Другими словами, декодер 230 данных изображения может декодировать кодированные данные изображения на основе извлеченной информации о типе фрагмента, режиме предсказания и единице преобразования для каждой единицы кодирования из числа единиц кодирования, имеющих древовидную структуру, включенную в каждую максимальную единицу кодирования. Обработка декодирования может включать в себя предсказание, включающее в себя внутреннее предсказание, и компенсацию движения, и обратное преобразование. Обратное преобразование может выполняться согласно способу обратного ортогонального преобразования или обратного целочисленного преобразования.
Декодер 230 данных изображения может выполнять внутреннее предсказание или компенсацию движения согласно фрагменту и режиму предсказания каждой единицы кодирования, на основе информации о типе фрагмента и режиме предсказания единицы предсказания единицы кодирования согласно кодированным глубинам.
В дополнение, декодер 230 данных изображения может считывать информацию единицы преобразования согласно древовидной структуре для каждой единицы кодирования, чтобы определять единицы преобразования для каждой единицы кодирования и выполнять обратное преобразование на основе единиц преобразования для каждой единицы кодирования, для обратного преобразования для каждой максимальной единицы кодирования. Посредством обратного преобразования, может восстанавливаться значение пикселя пространственной области единицы кодирования.
Декодер 230 данных изображения может определять, по меньшей мере, одну кодированную глубину текущей максимальной единицы кодирования посредством использования информации разделения согласно глубинам. Если информация разделения указывает, что данные изображения более не разделяются в текущей глубине, текущая глубина является кодированной глубиной. Соответственно, декодер 230 данных изображения может декодировать кодированные данные, по меньшей мере, одной единицы кодирования, соответствующего каждой кодированной глубине в текущей максимальной единице кодирования, посредством использования информации о типе фрагмента единицы предсказания, режиме предсказания, и размере единицы преобразования для каждой единицы кодирования, соответствующей кодированной глубине, и выводить данные изображения текущей максимальной единицы кодирования.
Другими словами, единицы данных, содержащие информацию кодирования, включающую в себя одну и ту же информацию разделения, могут собираться посредством отслеживания набора информации кодирования, назначенного для предварительно определенной единицы данных из числа единицы кодирования, единицы предсказания и минимальной единицы, и собранные единицы данных могут рассматриваться как одна единица данных, подлежащая декодированию посредством декодера 230 данных изображения в одном и том же режиме кодирования. Для каждой единицы кодирования, определенной, как описано выше, информация о режиме кодирования может получаться, чтобы декодировать текущую единицу кодирования.
Также, декодер 230 данных изображения устройства 200 декодирования видео, показанного на фиг. 10, может выполнять операции устройства 10 определения вектора движения и блока 80 декодирования видео, описанных выше со ссылкой на фиг. 1.
Декодер 230 данных изображения может определять единицы предсказания для компенсации движения и может выполнять компенсацию движения над соответствующими единицами предсказания для каждой соответствующей единицы кодирования согласно древовидной структуре в каждой максимальной единице кодирования. Декодер 230 данных изображения может выполнять обратное квантование и обратное преобразование над квантованными коэффициентами преобразования текущей единицы предсказания, и, таким образом, может восстанавливать остаточные данные текущей единицы. Декодер 230 данных изображения может выполнять компенсацию движения над текущей единицей предсказания, которая кодирована посредством внешнего предсказания, и, таким образом, может восстанавливать текущую единицу предсказания.
Декодер 230 данных изображения может определять список векторов движения-кандидатов текущей единицы предсказания, и когда опорное изображение первой единицы предсказания-кандидата из числа единиц предсказания-кандидатов в списке векторов движения-кандидатов отличается от опорного изображения текущей единицы предсказания, декодер 230 данных изображения может определять, использовать ли или нет вектор движения первой единицы предсказания-кандидата из списка векторов движения-кандидатов, на основе того, является ли каждое из опорного изображения текущей единицы предсказания и опорного изображения первой единицы предсказания-кандидата краткосрочным опорным изображением или долгосрочным опорным изображением. Первая единица предсказания-кандидат может быть соседней единицей предсказания, которая является смежной с текущей единицей предсказания в текущем изображении, или может быть совместно размещенной единицей предсказания в совместно размещенном изображении.
Является возможным определять, является ли каждое из опорного изображения текущей единицы предсказания и опорного изображения первой единицы предсказания-кандидата краткосрочным опорным изображением или долгосрочным опорным изображением, на основе долгосрочных опорных индексов текущей единицы предсказания и первой единицы предсказания-кандидата.
Когда все из опорного изображения текущей единицы предсказания и опорного изображения первой единицы предсказания-кандидата являются долгосрочными опорными изображениями, является возможным поддерживать вектор движения первой единицы предсказания-кандидата в списке векторов движения-кандидатов без масштабирования размера вектора движения первой единицы предсказания-кандидата.
Когда одно из опорного изображения текущей единицы предсказания и опорного изображения первой единицы-кандидата является краткосрочным опорным изображением, и другое одно из опорного изображения текущей единицы предсказания и опорного изображения первой единицы-кандидата является долгосрочным опорным изображением, является возможным определять не использовать вектор движения первой единицы предсказания-кандидата в списке векторов движения-кандидатов.
Когда все из опорного изображения текущей единицы предсказания и опорного изображения первой единицы предсказания-кандидата являются краткосрочными опорными изображениями, является возможным масштабировать размер вектора движения первой единицы предсказания-кандидата и затем включать вектор движения первой единицы предсказания-кандидата в список векторов движения-кандидатов.
Декодер 230 данных изображения может определять опорный вектор движения посредством выбора оптимального опорного вектора движения из числа векторов движения, включенных в список векторов движения-кандидатов, и может предсказывать и определять вектор движения текущей единицы предсказания посредством использования выбранного опорного вектора движения.
Декодер 230 данных изображения может определять опорное изображение текущей единицы предсказания согласно POC, указанному посредством опорного индекса текущей единицы предсказания. Независимо от того, является ли опорное изображение текущей единицы предсказания краткосрочным опорным изображением или долгосрочным опорным изображением, опорный индекс может указывать POC, и декодер 230 данных изображения может определять изображение, которое указывается посредством POC, в качестве опорного изображения.
Опорная единица предсказания, которая указывается посредством вектора движения текущей единицы предсказания в опорном изображении текущей единицы предсказания, может определяться, и опорная единица предсказания и остаточные данные текущей единицы предсказания могут синтезироваться, так что текущая единица предсказания может восстанавливаться.
Соответственно, декодер 230 данных изображения может выполнять компенсацию движения для каждой единицы предсказания, может восстанавливать каждую единицу предсказания, и, таким образом, может восстанавливать текущее изображение, включающее в себя восстановленные единицы предсказания. По мере того как изображения восстанавливаются вышеупомянутым способом, может восстанавливаться видео, включающее в себя последовательность восстановленных изображений. Также, восстановленный блок предсказания и изображение могут становиться опорными целями другой единицы предсказания и другого изображения.
Устройство 200 декодирования видео может получать информацию о, по меньшей мере, одной единице кодирования, которая генерирует минимальную ошибку кодирования, когда кодирование рекурсивно выполняется для каждой максимальной единицы кодирования, и может использовать упомянутую информацию, чтобы декодировать текущую картинку. Другими словами, единицы кодирования, имеющие древовидную структуру, определенную, чтобы быть оптимальными единицами кодирования, в каждой максимальной единице кодирования, могут декодироваться. Также, максимальный размер единицы кодирования определяется при учете разрешения и объема данных изображения.
Соответственно, даже если данные изображения имеют высокое разрешение и большой объем данных, данные изображения могут эффективно декодироваться и восстанавливаться посредством использования размера единицы кодирования и режима кодирования, которые адаптивно определяются согласно характеристикам данных изображения, посредством использования информации об оптимальном режиме кодирования, принятой от кодера.
Фиг. 11 является диаграммой для описания концепции единиц кодирования согласно одному варианту осуществления согласно настоящему изобретению.
Размер единицы кодирования может выражаться как ширина × высоту, и может равняться 64×64, 32×32, 16×16, и 8×8. Единица кодирования 64×64 может разделяться на фрагменты, равные 64×64, 64×32, 32×64, или 32×32, и единица кодирования 32×32 может разделяться на фрагменты, равные 32×32, 32×16, 16××32, или 16×16, единица кодирования 16×16 может разделяться на фрагменты, равные 16×16, 16×8, 8×16, или 8×8, и единица кодирования 8×8 может разделяться на фрагменты, равные 8×8, 8×4, 4×8, или 4×4.
В видеоданных 310, разрешение равняется 1920×1080, максимальный размер единицы кодирования равняется 64, и максимальная глубина равняется 2. В видеоданных 320, разрешение равняется 1920×1080, максимальный размер единицы кодирования равняется 64, и максимальная глубина равняется 3. В видеоданных 330, разрешение равняется 352×288, максимальный размер единицы кодирования равняется 16, и максимальная глубина равняется 1. Максимальная глубина, показанная на фиг. 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 контурной фильтрации. Квантованные коэффициенты преобразования могут выводиться как битовый поток 455 посредством энтропийного кодера 450.
Чтобы применять кодер 400 изображений в устройстве 100 кодирования видео, все элементы кодера 400 изображений, т.е. модуль 410 внутреннего предсказания, модуль 420 оценки движения, модуль 425 компенсации движения, преобразователь 430, модуль 440 квантования, энтропийный кодер 450, модуль 460 обратного квантования, обратный преобразователь 470, блок 480 удаления блочности и блок 490 контурной фильтрации, выполняют операции на основе каждой единицы кодирования из числа единиц кодирования, имеющих древовидную структуру, при учете максимальной глубины каждой максимальной единицы кодирования.
Конкретно, модуль 410 внутреннего предсказания, модуль 420 оценки движения, и модуль 425 компенсации движения определяет фрагменты и режим предсказания каждой единицы кодирования из числа единиц кодирования, имеющих древовидную структуру, при учете максимального размера и максимальной глубины текущей максимальной единицы кодирования, и преобразователь 430 определяет размер единицы преобразования в каждой единице кодирования из числа единиц кодирования, имеющих древовидную структуру.
Конкретно, для предсказания вектора движения, слияния PU, или AMVP, модуль 420 оценки движения может предсказывать вектор движения текущей единицы предсказания (фрагмента) посредством ссылки на вектор движения другой единицы предсказания.
Когда опорное изображение первой единицы предсказания-кандидата из числа единиц предсказания-кандидатов в списке векторов движения-кандидатов текущей единицы предсказания отличается от опорного кадра 495 текущей единицы предсказания, модуль 420 оценки движения определяет, использовать ли или нет вектор движения первой единицы предсказания-кандидата из списка векторов движения-кандидатов, на основе того, является ли каждый из опорного кадра 495 текущей единицы предсказания и опорного изображения первой единицы предсказания-кандидата краткосрочным опорным изображением или долгосрочным опорным изображением.
Когда, по меньшей мере, одно из опорного изображения текущей единицы предсказания и опорного изображения первой единицы предсказания-кандидата является долгосрочным опорным изображением, модуль 420 оценки движения может определять включать вектор движения первой единицы-кандидата в список векторов движения-кандидатов, в то время как размер вектора движения первой единицы-кандидата не масштабируется, или может определять не использовать вектор движения первой единицы-кандидата в списке векторов движения-кандидатов.
Модуль 420 оценки движения может определять опорный вектор движения посредством выбора оптимального опорного вектора движения из числа векторов движения, включенных в список векторов движения-кандидатов, и может предсказывать и определять вектор движения текущей единицы предсказания посредством использования выбранного опорного вектора движения. Модуль 420 оценки движения может определять опорный блок, который указывается посредством вектора движения текущей единицы в опорном кадре 495 текущей единицы предсказания, и может генерировать остаточные данные между опорной единицей предсказания и текущей единицей предсказания. Соответственно, модуль 420 оценки движения может выводить остаточные данные для каждой единицы предсказания.
Также, когда опорное изображение первой единицы предсказания-кандидата из числа единиц предсказания-кандидатов в списке векторов движения-кандидатов текущей единицы предсказания отличается от опорного кадра 495 текущей единицы предсказания, модуль 425 компенсации движения также может определять, использовать ли или нет или исключать ли вектор движения первой единицы предсказания-кандидата из списка векторов движения-кандидатов, на основе того, является ли, по меньшей мере, одно из опорного кадра 495 текущей единицы предсказания и опорного изображения первой единицы предсказания-кандидата долгосрочным опорным изображением.
Модуль 425 компенсации движения может определять опорный вектор движения посредством выбора оптимального опорного вектора движения из числа векторов движения, включенных в список векторов движения-кандидатов, и может предсказывать и определять вектор движения текущей единицы предсказания посредством использования выбранного опорного вектора движения.
Модуль 425 компенсации движения может определять опорную единицу предсказания, которая указывается посредством вектора движения текущей единицы предсказания в опорном кадре 495, может синтезировать опорную единицу предсказания и остаточные данные текущей единицы предсказания, и, таким образом, может восстанавливать текущую единицу предсказания.
Соответственно, модуль 425 компенсации движения может выполнять компенсацию движения для каждой единицы предсказания, может восстанавливать каждую единицу предсказания, и, таким образом, может восстанавливать текущее изображение, включающее в себя восстановленные единицы предсказания. Восстановленная единица предсказания и изображение могут становиться опорными целями другой единицы предсказания и другого изображения.
Фиг. 13 является блок-схемой декодера 500 изображений на основе единиц кодирования, согласно одному варианту осуществления согласно настоящему изобретению.
Модуль 510 синтаксического разбора осуществляет синтаксический разбор кодированных данных изображения, подлежащих декодированию, и информации о кодировании, требуемой для декодирования из битового потока 505. Кодированные данные изображения выводятся как обратно квантованные данные посредством энтропийного декодера 520 и модуля 530 обратного квантования, и обратно квантованные данные восстанавливаются в данные изображения в пространственной области посредством обратного преобразователя 540.
Модуль 550 внутреннего предсказания выполняет внутреннее предсказание над единицами кодирования во внутреннем режиме по отношению к данным изображения в пространственной области, и модуль 560 компенсации движения выполняет компенсацию движения над единицами кодирования во внешнем режиме посредством использования опорного кадра 585.
Данные изображения в пространственной области, которые прошли через модуль 550 внутреннего предсказания и модуль 560 компенсации движения, могут выводиться как восстановленный кадр 595 после постобработки посредством блока 570 удаления блочности и блока 580 контурной фильтрации. Также, данные изображения, которые подвергались последующей обработке посредством блока 570 удаления блочности и блока 580 контурной фильтрации, могут выводиться как опорный кадр 585.
Чтобы декодировать данные изображения в декодере 230 данных изображения устройства 200 декодирования видео, декодер 500 изображений может выполнять операции, которые выполняются после того, как модуль 510 синтаксического разбора выполняет работу.
Чтобы применять декодер 500 изображений в устройстве 200 декодирования видео, все элементы декодера 500 изображений, т.е. модуль 510 синтаксического разбора, энтропийный декодер 520, модуль 530 обратного квантования, обратный преобразователь 540, модуль 550 внутреннего предсказания, модуль 560 компенсации движения, блок 570 удаления блочности, и блок 580 контурной фильтрации, выполняют операции на основе единиц кодирования, имеющих древовидную структуру для каждой максимальной единицы кодирования.
Конкретно, модуль 550 внутреннего предсказания и модуль 560 компенсации движения выполняют операции на основе фрагментов и режима предсказания для каждой из единиц кодирования, имеющих древовидную структуру, и обратный преобразователь 540 выполняет операции на основе размера единицы преобразования для каждой единицы кодирования.
Конкретно, когда опорное изображение первой единицы предсказания-кандидата из числа единиц предсказания-кандидатов в списке векторов движения-кандидатов текущей единицы предсказания отличается от опорного кадра 585 текущей единицы предсказания, модуль 560 компенсации движения может определять, использовать ли или нет или исключать ли вектор движения первой единицы предсказания-кандидата из списка векторов движения-кандидатов, на основе того, является ли, по меньшей мере, одно из опорного кадра 585 текущей единицы предсказания и опорного изображения первой единицы предсказания-кандидата долгосрочным опорным изображением.
Модуль 560 компенсации движения может определять опорный вектор движения посредством выбора оптимального опорного вектора движения из числа векторов движения, включенных в список векторов движения-кандидатов, и может предсказывать и определять вектор движения текущей единицы предсказания посредством использования выбранного опорного вектора движения.
Модуль 560 компенсации движения может определять опорный кадр 585, указанный посредством POC, согласно опорному индексу текущей единицы предсказания, может определять опорную единицу предсказания, которая указывается посредством вектора движения текущей единицы предсказания в опорном кадре 585, может синтезировать опорный блок предсказания и остаточные данные текущей единицы предсказания, и, таким образом, может восстанавливать текущую единицу предсказания.
Соответственно, модуль 560 компенсации движения может выполнять компенсацию движения для каждой единицы предсказания, может восстанавливать каждую единицу предсказания, и, таким образом, может восстанавливать текущее изображение, включающее в себя восстановленные единицы предсказания. Восстановленная единица предсказания и изображение могут становиться опорными целями другой единицы предсказания и другого изображения.
Фиг. 14 является диаграммой, иллюстрирующей более глубокие единицы кодирования согласно глубинам, и фрагменты, согласно одному варианту осуществления согласно настоящему изобретению.
Устройство 100 кодирования видео и устройство 200 декодирования видео используют иерархические единицы кодирования, чтобы учитывать характеристики изображения. Максимальная высота, максимальная ширина, и максимальная глубина единиц кодирования могут адаптивно определяться согласно характеристикам изображения, или могут различным образом устанавливаться пользователем. Размеры более глубоких единиц кодирования согласно глубинам могут определяться согласно предварительно определенному максимальному размеру единицы кодирования.
В иерархической структуре 600 единиц кодирования, согласно одному варианту осуществления согласно настоящему изобретению, максимальная высота и максимальная ширина единиц кодирования равняются каждая 64, и максимальная глубина равняется 4. В этом случае, максимальная глубина указывает на полное количество того, сколько раз единица кодирования разделяется из максимальной единицы кодирования до минимальной единицы кодирования. Так как глубина становится глубже вдоль вертикальной оси иерархической структуры 600, высота и ширина более глубокой единицы кодирования каждая разделяются. Также, единица предсказания и фрагменты, которые являются основами для кодирования с предсказанием каждой более глубокой единицы кодирования, показываются вдоль горизонтальной оси иерархической структуры 600.
Другими словами, единица 610 кодирования является максимальной единицей кодирования в иерархической структуре 600, при этом глубина равняется 0 и размер, т.е. высота на ширину, равняется 64×64. Глубина становится глубже вдоль вертикальной оси, и существуют единица 620 кодирования, имеющая размер, равный 32×32, и глубину, равную 1, единица 630 кодирования, имеющая размер, равный 16×16, и глубину, равную 2, и единица 640 кодирования, имеющая размер, равный 8×8, и глубину, равную 3. Единица 640 кодирования, имеющая размер, равный 8×8, и глубину, равную 3, является минимальной единицей кодирования, имеющей низкую глубину.
Единица предсказания и фрагменты единицы кодирования, располагаются вдоль горизонтальной оси согласно каждой глубине. Другими словами, если единица 610 кодирования, имеющая размер, равный 64×64, и глубину, равную 0, является единицей предсказания, единица предсказания может разделяться на фрагменты, включенные в единицу 610 кодирования, т.е. фрагмент 610, имеющий размер, равный 64×64, фрагменты 612, имеющие размер, равный 64×32, фрагменты 614, имеющие размер, равный 32×64, или фрагменты 616, имеющие размер, равный 32×32.
Аналогично, единица предсказания единицы 620 кодирования, имеющей размер, равный 32×32, и глубину, равную 1, может разделяться на фрагменты, включенные в единицу 620 кодирования, т.е. фрагмент 620, имеющий размер, равный 32×32, фрагменты 622, имеющие размер, равный 32×16, фрагменты 624, имеющие размер, равный 16×32, и фрагменты 626, имеющие размер, равный 16×16.
Аналогично, единица предсказания единицы 630 кодирования, имеющей размер, равный 16×16, и глубину, равную 2, может разделяться на фрагменты, включенные в блок 630 кодирования, т.е. фрагмент, имеющий размер, равный 16×16, включенный в единицу 630 кодирования, фрагменты 632, имеющие размер, равный 16×8, фрагменты 634, имеющие размер, равный 8×16, и фрагменты 636, имеющие размер, равный 8×8.
Аналогично, единица предсказания единицы 640 кодирования, имеющей размер, равный 8×8, и глубину, равную 3, может разделяться на фрагменты, включенные в единицу 640 кодирования, т.е. фрагмент, имеющий размер, равный 8×8, включенный в единицу 640 кодирования, фрагменты 642, имеющие размер, равный 8×4, фрагменты 644, имеющие размер, равный 4×8, и фрагменты 646, имеющие размер, равный 4×4.
Чтобы определять упомянутую, по меньшей мере, одну кодированную глубину единиц кодирования, составляющих максимальную единицу 610 кодирования, определитель 120 единицы кодирования устройства 100 кодирования видео выполняет кодирование для единиц кодирования, соответствующих каждой глубине, включенной в максимальную единицу 610 кодирования.
Количество более глубоких единиц кодирования согласно глубинам, включающих в себя данные в одном и том же диапазоне и одном и том же размере, увеличивается по мере того, как глубина становится глубже. Например, требуются четыре единицы кодирования, соответствующих глубине, равной 2, чтобы охватить данные, которые включены в одну единицу кодирования, соответствующую глубине, равной 1. Соответственно, чтобы сравнить результаты кодирования одних и тех же данных согласно глубинам, единица кодирования, соответствующая глубине, равной 1, и четыре единицы кодирования, соответствующие глубине, равной 2, каждая, кодируются.
Чтобы выполнять кодирование для текущей глубины из числа глубин, наименьшая ошибка кодирования может выбираться для текущей глубины посредством выполнения кодирования для каждой единицы предсказания в единицах кодирования, соответствующих текущей глубине, вдоль горизонтальной оси иерархической структуры 600. Альтернативно, может осуществляться поиск минимальной ошибки кодирования посредством сравнения наименьших ошибок кодирования согласно глубинам, посредством выполнения кодирования для каждой глубины по мере того, как глубина становится глубже вдоль вертикальной оси иерархической структуры 600. Глубина и фрагмент, имеющие минимальную ошибку кодирования в единице 610 кодирования, могут выбираться в качестве кодированной глубины и типа фрагмента единицы 610 кодирования.
Фиг. 15 является диаграммой для описания отношения между единицей 710 кодирования и единицами 720 преобразования, согласно одному варианту осуществления согласно настоящему изобретению.
Устройство 100 или 200 кодирования видео кодирует или декодирует изображение согласно единицам кодирования, имеющим размеры, более маленькие, чем или равные максимальной единице кодирования для каждой максимальной единицы кодирования. Размеры единиц преобразования для преобразования во время кодирования могут выбираться на основе единиц данных, которые не больше, чем соответствующая единица кодирования.
Например, в устройстве 100 или 200 кодирования видео, если размер единицы 710 кодирования равняется 64×64, преобразование может выполняться посредством использования единиц 720 преобразования, имеющих размер, равный 32×32.
Также, данные единицы 710 кодирования, имеющей размер, равный 64×64, могут кодироваться посредством выполнения преобразования над каждой из единиц преобразования, имеющих размер, равный 32×32, 16×16, 8×8, и 4×4, которые являются меньшими, чем 64×64, и затем может выбираться единица преобразования, имеющая наименьшую ошибку кодирования.
Фиг. 16 является диаграммой для описания информации кодирования единиц кодирования, соответствующих кодированной глубине, согласно одному варианту осуществления согласно настоящему изобретению.
Блок 130 вывода устройства 100 кодирования видео может кодировать и передавать информацию 800 о типе фрагмента, информацию 810 о режиме предсказания, и информацию 820 о размере единицы преобразования для каждой единицы кодирования, соответствующей кодированной глубине, в качестве информации о режиме кодирования.
Информация 800 указывает информацию о форме фрагмента, полученного посредством разделения единицы предсказания текущей единицы кодирования, при этом фрагмент является единицей данных для кодирования с предсказанием текущей единицы кодирования. Например, текущая единица CU_0 кодирования, имеющая размер, равный 2N×2N, может разделяться на любой из фрагмента 802, имеющего размер, равный 2N×2N, фрагмента 804, имеющего размер, равный 2N×N, фрагмента 806, имеющего размер, равный N×2N, и фрагмента 808, имеющего размер, равный N×N. Здесь, информация 800 о типе фрагмента устанавливается, чтобы указывать один из фрагмента 804, имеющего размер, равный 2N×N, фрагмента 806, имеющего размер, равный N×2N, и фрагмента 808, имеющего размер, равный N×N.
Информация 810 указывает режим предсказания каждого фрагмента. Например, информация 810 может указывать режим кодирования с предсказанием, выполняемого над фрагментом, указанным посредством информации 800, т.е. внутренний режим 812, внешний режим 814, или режим 816 пропуска.
Информация 820 указывает единицу преобразования, на которой необходимо основываться, когда преобразование выполняется над текущей единицей кодирования. Например, единица преобразования может быть первой единицей 822 преобразования внутреннего режима, второй единицей 824 преобразования внутреннего режима, первой единицей 826 преобразования внешнего режима или второй единицей 828 преобразования внешнего режима.
Модуль 220 извлечения данных изображения и информации кодирования устройства 200 декодирования видео может извлекать и использовать информацию 800, 810, и 820 для декодирования, согласно каждой более глубокой единице кодирования.
Фиг. 17 является диаграммой более глубоких единиц кодирования согласно глубинам, согласно одному варианту осуществления согласно настоящему изобретению.
Информация разделения может использоваться, чтобы указывать изменение глубины. Информация разделения указывает, разделяется ли единица кодирования текущей глубины на единицы кодирования более низкой глубины.
Блок 910 предсказания для кодирования с предсказанием единицы 900 кодирования, имеющей глубину, равную 0, и размер, равный 2N_0×2N_0, может включать в себя фрагменты типа 912 фрагмента, имеющего размер, равный 2N_0×2N_0, типа 914 фрагмента, имеющего размер, равный 2N_0×N_0, типа 916 фрагмента, имеющего размер, равный N_0×2N_0, и типа 918 фрагмента, имеющего размер, равный N_0×N_0. Фиг. 17 иллюстрирует только типы 912 по 918 фрагментов, которые получаются посредством симметричного разделения единицы 910 предсказания, но тип фрагмента не ограничен этим, и фрагменты единицы 910 предсказания, могут включать в себя асимметричные фрагменты, фрагменты, имеющие предварительно определенную форму, и фрагменты, имеющие геометрическую форму.
Кодирование с предсказанием повторно выполняется над одним фрагментом, имеющим размер, равный 2N_0×2N_0, двумя фрагментами, имеющими размер, равный 2N_0×N_0, двумя фрагментами, имеющими размер, равный N_0×2N_0, и четырьмя фрагментами, имеющими размер, равный N_0×N_0, согласно каждому типу фрагмента. Кодирование с предсказанием во внутреннем режиме и внешнем режиме может выполняться над фрагментами, имеющими размеры, равные 2N_0×2N_0, N_0×2N_0, 2N_0×N_0, и N_0×N_0. Кодирование с предсказанием в режиме пропуска выполняется только над фрагментом, имеющим размер, равный 2N_0×2N_0.
Ошибки кодирования, включающего в себя кодирование с предсказанием, в типах 912 по 918 фрагментов сравниваются, и наименьшая ошибка кодирования определяется среди типов фрагментов. Если ошибка кодирования является наименьшей в одном из типов 912 по 916 фрагментов, единица 910 предсказания может не осуществлять разделение на более низкую глубину.
Если ошибка кодирования является наименьшей в типе 918 фрагмента, глубина изменяется с 0 на 1, чтобы разделять тип 918 фрагмента в операции 920, и кодирование повторно выполняется над единицами 930 кодирования, имеющими глубину, равную 2, и размер N_0×N_0, чтобы осуществлять поиск минимальной ошибки кодирования.
Единица 940 предсказания для кодирования с предсказанием единицы 930 кодирования, имеющей глубину, равную 1, и размер 2N_1×2N_1 (=N_0×N_0), может включать в себя фрагменты типа 942 фрагмента, имеющего размер, равный 2N_1×2N_1, типа 944 фрагмента, имеющего размер, равный 2N_1×N_1, типа 946 фрагмента, имеющего размер, равный N_1×2N_1, и типа 948 фрагмента, имеющего размер, равный N_1×N_1.
Если ошибка кодирования является наименьшей в типе 948 фрагмента, глубина изменяется с 1 на 2, чтобы разделять тип 948 фрагмента в операции 950, и кодирование повторно выполняется над единицами 960 кодирования, которые имеют глубину, равную 2, и размер, равный N_2×N_2, чтобы осуществлять поиск минимальной ошибки кодирования.
Когда максимальная глубина равняется d, операция разделения согласно каждой глубине может выполняться вплоть до того, когда глубина становится d-1, и информация разделения может кодироваться как вплоть до того, когда глубина будет одной из от 0 до d-2. Другими словами, когда кодирование выполняется вплоть до того, когда глубина равняется d-1, после того, как единица кодирования, соответствующая глубине, равной d-2, разделяется в операции 970, единица 990 предсказания для кодирования с предсказанием единицы 980 кодирования, имеющей глубину, равную d-1, и размер, равный 2N_(d-1)×2N_(d-1), может включать в себя фрагменты типа 992 фрагмента, имеющего размер, равный 2N_(d-1)×2N_(d-1), типа 994 фрагмента, имеющего размер, равный 2N_(d-1)×N_(d-1), типа 996 фрагмента, имеющего размер, равный N_(d-1)×2N_(d-1), и типа 998 фрагмента, имеющего размер, равный N_(d-1)×N_(d-1).
Кодирование с предсказанием может повторно выполняться над одним фрагментом, имеющим размер, равный 2N_(d-1)×2N_(d-1), двумя фрагментами, имеющими размер, равный 2N_(d-1)×N_(d-1), двумя фрагментами, имеющими размер, равный N_(d-1)×2N_(d-1), четырьмя фрагментами, имеющими размер, равный N_(d-1)×N_(d-1), из числа типов 992 по 998 фрагментов, чтобы осуществлять поиск типа фрагмента, имеющего минимальную ошибку кодирования.
Даже когда тип 998 фрагмента имеет минимальную ошибку кодирования, так как максимальная глубина равняется d, единица кодирования CU_(d-1), имеющая глубину, равную d-1, более не разделяется на более низкую глубину, и кодированная глубина для единиц кодирования, составляющих текущую максимальную единицу 900 кодирования, определяется как d-1 и тип фрагмента текущей максимальной единицы 900 кодирования может определяться как N_(d-1)×N_(d-1). Также, так как максимальная глубина равняется d и минимальная единица кодирования 980, имеющая самую нижнюю глубину, равную d-1, более не разделяется на более низкую глубину, информация разделения для минимальной единицы кодирования 980 не устанавливается.
Единица данных 999 может быть ′минимальной единицей′ для текущей максимальной единицы кодирования. Минимальная единица согласно одному варианту осуществления согласно настоящему изобретению может быть прямоугольной единицей данных, полученным посредством разделения минимальной единицы 980 кодирования на 4. Посредством повторного выполнения кодирования, устройство 100 кодирования видео может выбирать глубину, имеющую наименьшую ошибку кодирования, посредством сравнения ошибок кодирования согласно глубинам единицы 900 кодирования, чтобы определять кодированную глубину, и устанавливать соответствующий тип фрагмента и режим предсказания в качестве режима кодирования кодированной глубины.
Как таковые, минимальные ошибки кодирования согласно глубинам сравниваются во всех из глубин от 1 по d, и глубина, имеющая наименьшую ошибку кодирования, может определяться в качестве кодированной глубины. Кодированная глубина, тип фрагмента единицы предсказания, и режим предсказания могут кодироваться и передаваться в качестве информации о режиме кодирования. Также, так как единица кодирования разделяется от глубины, равной 0, до кодированной глубины, только информация разделения кодированной глубины устанавливается на 0, и информация разделения глубин, исключающих кодированную глубину, устанавливается на 1.
Модуль 220 извлечения данных изображения и информации кодирования устройства 200 декодирования видео может извлекать и использовать информацию о кодированной глубине и единице предсказания единицы 900 кодирования, чтобы декодировать фрагмент 912. Устройство 200 декодирования видео может определять глубину, в которой информация разделения равняется 0, в качестве кодированной глубины посредством использования информации разделения согласно глубинам, и использовать информацию о режиме кодирования соответствующей глубины для декодирования.
Фиг. 18 по 20 являются диаграммами для описания отношения между единицами 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 кодирования имеют размер, равный 2N×N, типы фрагментов в единицах 1016, 1048, и 1052 кодирования имеют размер, равный N×2N, и тип фрагмента единицы 1032 кодирования имеет размер, равный N×N. Единицы предсказания и фрагменты единиц 1010 кодирования являются меньшими или равными каждой единице кодирования.
Преобразование или обратное преобразование выполняется над данными изображения единицы 1052 кодирования в единицах 1070 преобразования в единице данных, которая меньше, чем единица 1052 кодирования. Также, единицы 1014, 1016, 1022, 1032, 1048, 1050, и 1052 кодирования в единицах 1070 преобразования отличаются от единиц в единицах 1060 предсказания в терминах размеров и форм. Другими словами, устройства 100 и 200 кодирования и декодирования видео могут выполнять внутреннее предсказание, оценку движения, компенсацию движения, преобразование, и обратное преобразование индивидуально над единицей данных в одной и той же единице кодирования.
Соответственно, кодирование рекурсивно выполняется над каждой из единиц кодирования, имеющих иерархическую структуру в каждой области максимальной единицы кодирования, чтобы определять оптимальную единицу кодирования, и, таким образом, могут получаться единицы кодирования, имеющие рекурсивную древовидную структуру. Информация кодирования может включать в себя информацию разделения о единице кодирования, информацию о типе фрагмента, информацию о режиме предсказания, и информацию о размере единицы преобразования. Таблица 1 показывает информацию кодирования, которая может устанавливаться посредством устройств 100 и 200 кодирования и декодирования видео.
Таблица 1
Информация 0 разделения (кодирование над единицей кодирования, имеющей размер, равный 2N×2N, и текущую глубину, равную d)
Информация 1 разделения
Режим предсказания
Тип фрагмента
Размер единицы преобразования
Повторное кодирование единиц кодирования, имеющих более низкую глубину d+1
Внутренний Внешний Пропуск (только 2N×2N)
Тип симметрич-ного фрагмента
Тип асимметрич-ного фрагмента
Информация 0 разделения единицы преобразо-вания
Информация 1 разделения единицы преобразо-вания
2N×2N2N×NN×2NN×N
2N×nU2N×nDnL×2NnR×2N
2N×2N
N×N (симметрич-ный тип)N/2×N/2 (асимметрич-ный тип)
Блок 130 вывода устройства 100 кодирования видео может выводить информацию кодирования о единицах кодирования, имеющих древовидную структуру, и модуль 220 извлечения данных изображения и информации кодирования устройства 200 декодирования видео может извлекать информацию кодирования о единицах кодирования, имеющих древовидную структуру из принятого битового потока.
Информация разделения указывает, разделяется ли текущая единица кодирования на единицы кодирования более низкой глубины. Если информация разделения текущей глубины d равняется 0, глубина, в которой текущая единица кодирования более не разделяется на более низкую глубину, является кодированной глубиной, и, таким образом, информация о типе фрагмента, режим предсказания, и размер единицы преобразования могут определяться для кодированной глубины. Если текущая единица кодирования дополнительно разделяется согласно информации разделения, кодирование независимо выполняется над четырьмя разделенными единицами кодирования более низкой глубины.
Режим предсказания может быть одним из внутреннего режима, внешнего режима и режима пропуска. Внутренний режим и внешний режим могут определяться во всех типах фрагментов, и режим пропуска определяется только в типе фрагмента, имеющем размер, равный 2N×2N.
Информация о типе фрагмента может указывать типы симметричных фрагментов, имеющие размеры, равные 2N×2N, 2N×N, N×2N, и N×N, которые получаются посредством симметричного разделения высоты или ширины единицы предсказания, и типы асимметричных фрагментов, имеющие размеры, равные 2N×nU, 2N××nD, nL×2N, и nR×2N, которые получаются посредством асимметричного разделения высоты или ширины единицы предсказания. Типы асимметричных фрагментов, имеющие размеры, равные 2N×nU и 2N×nD, могут соответственно получаться посредством разделения высоты единицы предсказания в 1:3 и 3:1, и типы асимметричных фрагментов, имеющие размеры, равные nL×2N и nR×2N, могут соответственно получаться посредством разделения ширины единицы предсказания в 1:3 и 3:1.
Размер единицы преобразования может устанавливаться на два типа во внутреннем режиме и два типа во внешнем режиме. Другими словами, если информация разделения единицы преобразования равняется 0, размер единицы преобразования может быть 2N×2N, который является размером текущей единицы кодирования. Если информация разделения единицы преобразования равняется 1, единицы преобразования могут получаться посредством разделения текущей единицы кодирования. Также, если тип фрагмента текущей единицы кодирования, имеющего размер, равный 2N×2N, является типом симметричного фрагмента, размер единицы преобразования может быть N×N, и если тип фрагмента текущей единицы кодирования является типом асимметричного фрагмента, размер единицы преобразования может быть N/2×N/2.
Информация кодирования о единицах кодирования, имеющих древовидную структуру, может включать в себя, по меньшей мере, один из единицы кодирования, соответствующей кодированной глубине, единицы предсказания и минимальной единицы. Единица кодирования, соответствующая кодированной глубине, может включать в себя, по меньшей мере, одно из единицы предсказания и минимальной единицы, содержащей такую же информацию кодирования.
Соответственно, определяется, включены ли смежные единицы данных в ту же единицу кодирования, соответствующую кодированной глубине, посредством сравнения информации кодирования смежных единиц данных. Также, соответствующая единица кодирования, соответствующая кодированной глубине, определяется посредством использования информации кодирования единицы данных, и, таким образом, может определяться распределение кодированных глубин в максимальной единице кодирования.
Соответственно, если текущая единица кодирования предсказывается на основе информации кодирования смежных единиц данных, информация кодирования единиц данных в более глубоких единицах кодирования, смежных с текущей единицей кодирования, может напрямую указываться и использоваться.
Альтернативно, если текущая единица кодирования предсказывается на основе информации кодирования смежных единиц данных, единицы данных, смежные с текущей единицей кодирования, ищутся с использованием кодированной информации единиц данных, и на найденные смежные единицы кодирования могут ссылаться для предсказания текущей единицы кодирования.
Фиг. 21 является диаграммой для описания отношения между единицей кодирования, единицей предсказания или фрагментом и единицей преобразования, согласно информации режима кодирования из Таблицы 1.
Максимальная единица 1300 кодирования включает в себя единицы 1302, 1304, 1306, 1312, 1314, 1316, и 1318 кодирования кодированных глубин. Здесь, так как единица 1318 кодирования является единицей кодирования кодированной глубины, информация разделения может устанавливаться на 0. Информация о типе фрагмента единицы 1318 кодирования, имеющей размер, равный 2N×2N может устанавливаться, чтобы быть одним из типа 1322 фрагмента, имеющего размер, равный 2N×2N, типа 1324 фрагмента, имеющего размер, равный 2N×N, типа 1326 фрагмента, имеющего размер, равный N×2N, типа 1328 фрагмента, имеющего размер, равный N×N, типа 1332 фрагмента, имеющего размер, равный 2N×nU, типа 1334 фрагмента, имеющего размер, равный 2N×nD, типа 1336 фрагмента, имеющего размер, равный nL×2N, и типа 1338 фрагмента, имеющего размер, равный nR×2N.
Информация разделения (флаг размера TU (единицы преобразования)) единицы преобразования является типом индекса преобразования. Размер единицы преобразования, соответствующий индексу преобразования, может изменяться согласно типу единицы предсказания или типу фрагмента единицы кодирования.
Например, когда тип фрагмента устанавливается как симметричный, т.е. тип 1322, 1324, 1326, или 1328 фрагмента, устанавливается единица 1342 преобразования, имеющая размер, равный 2N×2N, если информация разделения (флаг размера TU) единицы преобразования равняется 0, и устанавливается единица 1344 преобразования, имеющая размер, равный N×N, если флаг размера TU равняется 1.
Когда тип фрагмента устанавливается как асимметричный, т.е. тип 1332, 1334, 1336, или 1338 фрагмента, устанавливается единица 1352 преобразования, имеющая размер, равный 2N×2N, если флаг размера TU равняется 0, и устанавливается единица 1354 преобразования, имеющая размер, равный N/2×N/2, если флаг размера TU равняется 1.
Как показано на фиг. 21, флаг размера TU является флагом, имеющим значение, равное 0 или 1, но флаг размера TU не ограничен 1 битом, и единица преобразования может иерархическим образом разделяться, имея древовидную структуру, пока флаг размера TU увеличивается от 0. Информация разделения (флаг размера TU) единицы преобразования может быть примером индекса преобразования.
В этом случае, размер единицы преобразования, который фактически использовался, может быть выражен посредством использования флага размера TU единицы преобразования, согласно одному варианту осуществления согласно настоящему изобретению, вместе с максимальным размером и минимальным размером единицы преобразования. Согласно одному варианту осуществления согласно настоящему изобретению, устройство 100 кодирования видео выполнено с возможностью кодирования информации максимального размера единицы преобразования, информации минимального размера единицы преобразования, и флага максимального размера TU. Результат кодирования информации максимального размера единицы преобразования, информации минимального размера единицы преобразования и флага максимального размера TU может вставляться в SPS. Согласно одному варианту осуществления согласно настоящему изобретению, устройство 200 декодирования видео может декодировать видео посредством использования информации максимального размера единицы преобразования, информации минимального размера единицы преобразования и флага максимального размера TU.
Например, (a) если размер текущей единицы кодирования равняется 64×64 и максимальный размер единицы преобразования равняется 32×32, (a-1) тогда размер единицы преобразования может быть 32×32, когда флаг размера TU равняется 0, (a-2) может быть 16×16, когда флаг размера TU равняется 1, и (a-3) может быть 8×8, когда флаг размера TU равняется 2.
В качестве другого примера, (b) если размер текущей единицы кодирования равняется 32×32 и минимальный размер единицы преобразования равняется 32×32, (b-1) тогда размер единицы преобразования может быть 32×32, когда флаг размера TU равняется 0. Здесь, флаг размера TU не может быть установлен на значение, другое, нежели 0, так как размер единицы преобразования не может быть меньше, чем 32×32.
В качестве другого примера, (c) если размер текущей единицы кодирования равняется 64×64 и флаг максимального размера TU равняется 1, то флаг размера TU может быть 0 или 1. Здесь, флаг размера TU не может быть установлен на значение, другое, нежели 0 или 1.
Таким образом, если определяется, что флаг максимального размера TU равняется ′MaxTransformSizeIndex′, минимальный размер единицы преобразования равняется ′MinTransformSize′, и размер единицы преобразования равняется ′RootTuSize′, когда флаг размера TU равняется 0, то текущий минимальный размер единицы преобразования ′CurrMinTuSize′, который может определяться в текущей единице кодирования, может определяться посредством Уравнения (1):
CurrMinTuSize=max(MinTransformSize, RootTuSize/(2^MaxTransformSizeIndex)) (1)
По сравнению с текущим минимальным размером единицы преобразования ′CurrMinTuSize′, который может определяться в текущей единице кодирования, размер единицы преобразования ′RootTuSize′, когда флаг размера TU равняется 0, может обозначать максимальный размер единицы преобразования, который может выбираться в системе. В Уравнении (1), ′RootTuSize/(2^MaxTransformSizeIndex)′ обозначает размер единицы преобразования, когда размер ′RootTuSize′ единицы преобразования, когда флаг размера TU равняется 0, разделяется некоторое количество раз, соответствующее флагу максимального размера TU, и ′MinTransformSize′ обозначает минимальный размер преобразования. Таким образом, меньшее значение из числа ′RootTuSize/(2^MaxTransformSizeIndex)′ и ′MinTransformSize′ может быть текущим минимальным размером единицы преобразования ′CurrMinTuSize′, которая может определяться в текущей единицы кодирования.
Согласно одному варианту осуществления согласно настоящему изобретению, максимальный размер единицы преобразования RootTuSize может изменяться согласно типу режима предсказания.
Например, если текущий режим предсказания является внешним режимом, то ′RootTuSize′ может определяться посредством использования Уравнения (2) ниже. В Уравнении (2), ′MaxTransformSize′ обозначает максимальный размер единицы преобразования, и ′PUSize′ обозначает размер текущей единицы предсказания.
RootTuSize=min(MaxTransformSize, PUSize) (2)
То есть, если текущий режим предсказания является внешним режимом, размер единицы преобразования ′RootTuSize′, когда флаг размера TU равняется 0, может быть меньшим значением из числа максимального размера единицы преобразования и размера текущей единицы предсказания.
Если режим предсказания текущей единицы фрагмента является внутренним режимом, ′RootTuSize′ может определяться посредством использования Уравнения (3) ниже. В Уравнении (3), ′PartitionSize′ обозначает размер текущей единицы фрагмента.
RootTuSize=min(MaxTransformSize, PartitionSize) (3)
То есть, если текущий режим предсказания является внутренним режимом, размер единицы преобразования ′RootTuSize′, когда флаг размера TU равняется 0, может быть меньшим значением из числа максимального размера единицы преобразования и размера текущей единицы фрагмента.
Однако текущий максимальный размер единицы преобразования ′RootTuSize′, который изменяется согласно типу режима предсказания в единице фрагмента, является только примером и настоящее изобретение не ограничено этим.
Согласно способу кодирования видео на основе единиц кодирования, имеющих древовидную структуру, как описано со ссылкой на фиг. 9 по 21, данные изображения пространственной области кодируются для каждой единицы кодирования древовидной структуры. Согласно способу декодирования видео на основе единиц кодирования, имеющих древовидную структуру, декодирование выполняется для каждой максимальной единицы кодирования, чтобы восстанавливать данные изображения пространственной области. Таким образом, картинка и видео, которое является последовательностью картинок, могут восстанавливаться. Восстановленное видео может воспроизводиться посредством устройства воспроизведения, сохраняться в запоминающем носителе, или передаваться по сети.
Варианты осуществления согласно настоящему изобретению могут быть записаны как компьютерные программы и могут осуществляться в цифровых компьютерах общего использования, которые исполняют программы с использованием машиночитаемого записывающего носителя. Примеры машиночитаемого записывающего носителя включают в себя магнитные запоминающие носители (например, ROM, гибкие диски, жесткие диски, и т.д.) и оптические записывающие носители (например, CD-ROM, или DVD).
Для удобства описания, способ кодирования видео согласно способу определения вектора движения, который был описан со ссылкой на фиг. 1 по 21, будет собирательно упоминаться как ′способ кодирования видео согласно настоящему изобретению′. В дополнение, способ декодирования видео согласно способу определения вектора движения, который был описан со ссылкой на фиг. 1 по 21, будет упоминаться как ′способ декодирования видео согласно настоящему изобретению′.
Устройство кодирования видео, включающее в себя устройство 10 определения вектора движения, блок 70 кодирования видео, блок 80 декодирования видео, и устройство 100 кодирования видео, или кодер 400 изображений, которое было описано со ссылкой на фиг. 1 по 21, будет упоминаться как ′устройство кодирования видео согласно настоящему изобретению′. В дополнение, устройство декодирования видео, включающее в себя устройство 10 определения вектора движения, блок 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, персональный цифровой ассистент (PDA) 12200, видеокамера 12300, и мобильный телефон 12500, соединены с сетью 11100 Интернет посредством поставщика 11200 услуг сети Интернет, сети 11400 связи, и беспроводных базовых станций 11700, 11800, 11900, и 12000.
Однако система 11000 предоставления контента не ограничена тем, как проиллюстрировано на фиг. 24, и устройства там могут быть соединены избирательно. Множество независимых устройств может быть напрямую соединено с сетью 11400 связи, а не посредством беспроводных базовых станций 11700, 11800, 11900, и 12000.
Видеокамера 12300 является устройством формирования изображений, например, цифровой видеокамерой, которая выполнена с возможностью захвата видеоизображений. Мобильный телефон 12500 может применять, по меньшей мере, один способ связи из числа различных протоколов, например, персональная цифровая связь (PDC), множественный доступ с кодовым разделением каналов (CDMA), широкополосный многостанционный доступ с кодовым разделением каналов (W-CDMA), глобальная система мобильной связи (GSM), и персональная система Handyphone (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 из фиг. 25, и включает в себя отображающий экран 12520 для отображения изображений, захваченных посредством камеры 12530, или изображений, которые принимаются посредством антенны 12510 и декодируются, например, жидкокристаллический дисплей (LCD) или экран на органических светоизлучающих диодах (OLED). Смартфон 12500 включает в себя панель 12540 управления, включающую в себя кнопку управления и сенсорную панель. Если отображающий экран 12520 является сенсорным экраном, панель 12540 управления дополнительно включает в себя сенсорную чувствительную панель отображающего экрана 12520. Смартфон 12500 включает в себя громкоговоритель 12580 для вывода речи и звука или блок вывода звука другого типа, и микрофон 12550 для ввода речевых данных и звука или блок ввода звука другого типа. Смартфон 12500 дополнительно включает в себя камеру 12530, такую как камера прибора с зарядовой связью (CCD), чтобы захватывать видео и неподвижные изображения. Смартфон 12500 может дополнительно включать в себя запоминающий носитель 12570 для хранения кодированных/декодированных данных, например, видео или неподвижных изображений, захваченных посредством камеры 12530, принятых посредством электронной почты, или полученных согласно различным способам; и гнездо 12560, через которое запоминающий носитель 12570 загружается в мобильный телефон 12500. Запоминающий носитель 12570 может быть флэш-памятью, например, защищенной цифровой (SD) карточкой или электрически стираемым и программируемым постоянным запоминающим устройством (EEPROM), заключенной в пластиковый корпус.
Фиг. 26 иллюстрирует внутреннюю структуру мобильного телефона 12500, согласно одному варианту осуществления настоящего изобретения. Чтобы систематически управлять частями мобильного телефона 12500, включающего в себя отображающий экран 1252 и панель 12540 управления, схема 12700 источника питания, контроллер 12640 рабочего ввода, блок 12720 кодирования изображений, интерфейс 12630 камеры, контроллер 12620 LCD, блок 12690 декодирования изображений, мультиплексор/демультиплексор 12680, блок 12670 записи/считывания, блок 12660 модуляции/демодуляции, и процессор 12650 обработки звука соединены с центральным контроллером 12710 посредством шины 12730 синхронизации.
Если пользователь управляет кнопкой питания и переходит от состояния ′выключенного питания′ к состоянию ′включенного питания′, схема 12700 источника питания доставляет питание всем частям мобильного телефона 12500 от блока аккумуляторов, тем самым устанавливая мобильный телефон 12500 в рабочий режим.
Центральный контроллер 12710 включает в себя центральное обрабатывающее устройство (CPU), ROM, и оперативное запоминающее устройство (RAM).
В то время как мобильный телефон 12500 передает данные связи вовне, цифровой сигнал генерируется в мобильном телефоне 12500 под управлением центрального контроллера. Например, процессор 12650 обработки звука может генерировать цифровой звуковой сигнал, блок 12720 кодирования изображений может генерировать цифровой сигнал изображения, и текстовые данные сообщения могут генерироваться посредством панели 12540 управления и контроллера 12640 рабочего ввода. Когда цифровой сигнал доставляется в блок 12660 модуляции/демодуляции под управлением центрального контроллера 12710, блок 12660 модуляции/демодуляции модулирует частотный диапазон цифрового сигнала, и схема 12610 передачи данных выполняет цифроаналоговое преобразование (DAC) и частотное преобразование над модулированным в частотном диапазоне цифровым звуковым сигналом. Сигнал передачи, выведенный из схемы 12610 передачи данных, может передаваться в базовую станцию передачи речевых данных или беспроводную базовую станцию 12000 посредством антенны 12510.
Например, когда мобильный телефон 12500 находится в режиме разговора, звуковой сигнал, полученный посредством микрофона 12550, преобразовывается в цифровой звуковой сигнал посредством процессора 12650 обработки звука, под управлением центрального контроллера 12710. Цифровой звуковой сигнал может преобразовываться в сигнал преобразования посредством блока 12660 модуляции/демодуляции и схемы 12610 передачи данных, и может передаваться посредством антенны 12510.
Когда текстовое сообщение, например, сообщение электронной почты, передается в режиме передачи данных, текстовые данные текстового сообщения вводятся посредством панели 12540 управления и передаются в центральный контроллер 12610 посредством контроллера 12640 рабочего ввода. Под управлением центрального контроллера 12610, текстовые данные преобразовываются в сигнал передачи посредством блока 12660 модуляции/демодуляции и схемы 12610 передачи данных и передаются в беспроводную базовую станцию 12000 посредством антенны 12510.
Передаваемые данные изображения в режиме передачи данных, данные изображения, захваченные посредством камеры 12530, обеспечиваются в блок 12720 кодирования изображений посредством интерфейса 12630 камеры. Захваченные данные изображения могут напрямую отображаться на отображающем экране 12520 посредством интерфейса 12630 камеры и контроллера 12620 LCD.
Структура блока 12720 кодирования изображений может соответствовать структуре устройства 100 кодирования видео, описанного выше. Блок 12720 кодирования изображений может преобразовывать данные изображения, принятые от камеры 12530, в сжатые и кодированные данные изображения согласно способу кодирования видео, применяемому устройством 100 кодирования видео или кодером 400 изображений, описанными выше, и затем выводить кодированные данные изображения в мультиплексор/демультиплексор 12680. В течение операции записи камеры 12530, звуковой сигнал, полученный посредством микрофона 12550 мобильного телефона 12500, может преобразовываться в цифровые звуковые данные посредством процессора 12650 обработки звука, и цифровые звуковые данные могут доставляться в мультиплексор/демультиплексор 12680.
Мультиплексор/демультиплексор 12680 мультиплексирует кодированные данные изображения, принятые от блока 12720 кодирования изображений, вместе со звуковыми данными, принятыми от процессора 12650 обработки звука. Результат мультиплексирования данных может преобразовываться в сигнал передачи посредством блока 12660 модуляции/демодуляции и схемы 12610 передачи данных, и может затем передаваться посредством антенны 12510.
В то время как мобильный телефон 12500 принимает данные связи извне, восстановление частоты и ADC выполняются над сигналом, принятым посредством антенны 12510, чтобы преобразовывать сигнал в цифровой сигнал. Блок 12660 модуляции/демодуляции модулирует частотный диапазон цифрового сигнала. Модулированный в частотном диапазоне цифровой сигнал передается в блок 12690 декодирования видео, процессор 12650 обработки звука, или контроллер 12620 LCD, согласно типу цифрового сигнала.
В режиме разговора, мобильный телефон 12500 усиливает сигнал, принятый посредством антенны 12510, и получает цифровой звуковой сигнал посредством выполнения частотного преобразования и ADC над усиленным сигналом. Принятый цифровой звуковой сигнал преобразовывается в аналоговый звуковой сигнал посредством блока 12660 модуляции/демодуляции и процессора 12650 обработки звука, и аналоговый звуковой сигнал выводится посредством громкоговорителя 12580, под управлением центрального контроллера 12710.
Когда в режиме передачи данных, принимаются данные видеофайла, к которому осуществляется доступ на веб-сайте сети Интернет, сигнал, принимаемый от беспроводной базовой станции 12000 посредством антенны 12510, выводится как мультиплексированные данные посредством блока 12660 модуляции/демодуляции, и мультиплексированные данные передаются в мультиплексор/демультиплексор 12680.
Чтобы декодировать мультиплексированные данные, принятые посредством антенны 12510, мультиплексор/демультиплексор 12680 демультиплексирует мультиплексированные данные в поток кодированных видеоданных и поток кодированных аудиоданных. Посредством шины 12730 синхронизации, поток кодированных видеоданных и поток кодированных аудиоданных обеспечиваются в блок 12690 декодирования видео и процессор 12650 обработки звука, соответственно.
Структура блока 12690 декодирования изображений может соответствовать структуре устройства 200 декодирования видео, описанного выше. Блок 12690 декодирования изображений может декодировать кодированные видеоданные, чтобы получать восстановленные видеоданные и обеспечивать восстановленные видеоданные в отображающий экран 12520 посредством контроллера 12620 LCD, согласно способу декодирования видео, используемому устройством 200 декодирования видео или декодером 500 изображений, описанными выше.
Таким образом, данные видеофайла, к которому осуществляется доступ на веб-сайте сети Интернет, могут отображаться на отображающем экране 12520. В то же время, процессор 12650 обработки звука может преобразовывать аудиоданные в аналоговый звуковой сигнал, и обеспечивать аналоговый звуковой сигнал в громкоговоритель 12580. Таким образом, аудиоданные, содержащиеся в видеофайле, к которому осуществляется доступ на веб-сайте сети Интернет, также могут воспроизводиться посредством громкоговорителя 12580.
Мобильный телефон 12500 или другой тип терминала связи может быть терминалом приема и передачи, включающим в себя как устройство кодирования видео, так и устройство декодирования видео согласно одному варианту осуществления настоящего изобретения, может быть терминалом приема и передачи, включающим в себя только устройство кодирования видео, или может быть терминалом приема и передачи, включающим в себя только устройство декодирования видео.
Система связи согласно настоящему изобретению не ограничена системой связи, описанной выше со ссылкой на фиг. 25. Например, фиг. 27 иллюстрирует систему цифрового широковещания, применяющую систему связи, согласно одному варианту осуществления настоящего изобретения. Система цифрового широковещания из фиг. 27 может принимать цифровое широковещание, передаваемое посредством спутника или наземной сети, посредством использования устройства кодирования видео и устройства декодирования видео согласно одному варианту осуществления настоящего изобретения.
Конкретно, станция 12890 широковещания передает поток видеоданных в спутник передачи данных или спутник 12900 широковещания посредством использования радиоволн. Спутник 12900 широковещания передает сигнал широковещания, и сигнал широковещания передается в приемник широковещания спутника посредством бытовой антенны 12860. В каждом доме, кодированный видеопоток может декодироваться и воспроизводиться посредством TV приемника 12810, приставки к телевизору 12870, или другого устройства.
Когда устройство декодирования видео согласно одному варианту осуществления настоящего изобретения осуществлено в устройстве 12830 воспроизведения, устройство 12830 воспроизведения может осуществлять синтаксический разбор и декодировать кодированный видеопоток, записанный на запоминающем носителе 12820, таком как диск или карта памяти, чтобы восстанавливать цифровые сигналы. Таким образом, восстановленный видеосигнал может воспроизводиться, например, на мониторе 12840.
В приставке к телевизору 12870, соединенной с антенной 12860 для спутникового/наземного широковещания или кабельной антенной 12850 для приема широковещания кабельного телевидения (TV), согласно одному варианту осуществления настоящего изобретения может устанавливаться устройство декодирования видео. Данные, выводимые из приставки 12870 к телевизору также могут воспроизводиться на TV мониторе 12880.
В качестве другого примера, устройство декодирования видео согласно одному варианту осуществления настоящего изобретения может устанавливаться в TV приемнике 12810 вместо приставки 12870 к телевизору.
Автомобиль 12920, включающий в себя соответствующую антенну 12910, может принимать сигнал, передаваемый от спутника 12900 или беспроводной базовой станции 11700. Декодированное видео может воспроизводиться на отображающем экране автомобильной навигационной системы 12930, встроенной в автомобиль 12920.
Видеосигнал может кодироваться посредством устройства кодирования видео согласно одному варианту осуществления настоящего изобретения и может затем сохраняться в запоминающем носителе. Конкретно, сигнал изображения может сохраняться на диске 12960 DVD посредством модуля записи DVD или может сохраняться на жестком диске посредством устройства 12950 записи на жесткий диск. В качестве другого примера, видеосигнал может сохраняться на карте 12970 SD. Если устройство 12950 записи на жесткий диск включает в себя устройство декодирования видео согласно одному варианту осуществления настоящего изобретения, видеосигнал, записанный на диске 12960 DVD, карте 12970 SD, или другом запоминающем носителе, может воспроизводиться на TV мониторе 12880.
Автомобильная навигационная система 12930 может не включать в себя камеру 12530, интерфейс 12630 камеры, и блок 12720 кодирования изображений из фиг. 27. Например, компьютер 12100 и TV приемник 12810 может не содержаться в камере 12530, интерфейсе 12630 камеры, и блоке 12720 кодирования изображений из фиг. 27.
Фиг. 28 иллюстрирует сетевую структуру облачной вычислительной системы, использующей устройство кодирования видео и устройство декодирования видео, согласно одному варианту осуществления настоящего изобретения.
Облачная вычислительная система может включать в себя облачный вычислительный сервер 14000, пользовательскую базу данных (DB) 14100, множество вычислительных ресурсов 14200, и пользовательский терминал.
Облачная вычислительная система обеспечивает предоставляемую по запросу аутсорсинговую услугу множества вычислительных ресурсов 14200 посредством сети передачи данных, например, сети Интернет, в ответ на запрос от пользовательского терминала. В облачной вычислительной среде, поставщик услуг обеспечивает пользователей требуемыми услугами посредством комбинирования вычислительных ресурсов в центрах данных, расположенных в физически разных местоположениях, посредством использования технологии виртуализации. Пользователь услуг не должен устанавливать вычислительные ресурсы, например, приложение, хранилище, операционную систему (OS), и систему защиты, в его/ее собственный терминал, чтобы использовать их, но может выбирать и использовать требуемые услуги из числа услуг в виртуальном пространстве, сгенерированном посредством технологии виртуализации, в требуемый момент времени.
Пользовательский терминал определенного пользователя услуг соединяется с облачным вычислительным сервером 14100 посредством сети передачи данных, включающей в себя сеть Интернет и мобильную телекоммуникационную сеть. Пользовательские терминалы могут обеспечиваться облачными вычислительными услугами, и конкретно услугами воспроизведения видео, от облачного вычислительного сервера 14100. Пользовательские терминалы могут быть различными типами электронных устройств, выполненными с возможностью соединяться с сетью Интернет, например, настольным PC 14300, интеллектуальным TV 14400, смартфоном 14500, блокнотным компьютером (ноутбуком) 14600, портативным проигрывателем мультимедиа (PMP) 14700, планшетным PC 14800, и подобным.
Облачный вычислительный сервер 14100 может комбинировать множество вычислительных ресурсов 14200, распределенных в облачной сети, и обеспечивать пользовательские терминалы результатом комбинирования. Множество вычислительных ресурсов 14200 может включать в себя различные услуги данных, и может включать в себя данные, загруженные из пользовательских терминалов. Как описано выше, облачный вычислительный сервер 14100 может обеспечивать пользовательские терминалы требуемыми услугами посредством комбинирования базы видеоданных, распределенной в разных областях, согласно технологии виртуализации.
Пользовательская информация о пользователях, которые подписались на облачную вычислительную услугу, хранится в пользовательской DB 14100. Пользовательская информация может включать в себя информацию журнала событий, адреса, имена, и персональную кредитную информацию пользователей. Пользовательская информация может дополнительно включать в себя индексы видео. Здесь, индексы могут включать в себя список видео, которые уже были воспроизведены, список видео, которые воспроизводятся, точку паузы видео, которое воспроизводилось, и подобное.
Информация о видео, сохраненная в пользовательской DB 14100, может совместно использоваться между пользовательскими устройствами. Например, когда видеоуслуга обеспечивается в блокнотный компьютер (ноутбук) 14600 в ответ на запрос от блокнотного компьютера (ноутбука) 14600, предыстория воспроизведения видеоуслуги сохраняется в пользовательской DB 14100. Когда запрос на воспроизведение этой видеоуслуги принимается от смартфона 14500, облачный вычислительный сервер 14100 осуществляет поиск и воспроизводит эту видеоуслугу, на основе пользовательской DB 14100. Когда смартфон 14500 принимает поток видеоданных от облачного вычислительного сервера 14100, обработка воспроизведения видео посредством декодирования потока видеоданных является аналогичной операции мобильного телефона 12500, описанной выше со ссылкой на фиг. 27.
Облачный вычислительный сервер 14100 может ссылаться на предысторию воспроизведения требуемой видеоуслуги, сохраненную в пользовательской DB 14100. Например, облачный вычислительный сервер 14100 принимает запрос на воспроизведение видео, сохраненного в пользовательской DB 14100, от пользовательского терминала. Если это видео воспроизводилось, то способ потоковой передачи этого видео, выполняемый посредством облачного вычислительного сервера 14100, может изменяться согласно запросу от пользовательского терминала, т.е. согласно тому, будет ли видео воспроизводиться, начиная с его начала или его точки паузы. Например, если пользовательский терминал запрашивает воспроизведение видео, начиная с его начала, облачный вычислительный сервер 14100 передает потоковые данные видео, начиная с его первого кадра, в пользовательский терминал. Если пользовательский терминал запрашивает воспроизведение видео, начиная с его точки паузы, облачный вычислительный сервер 14100 передает потоковые данные видео, начиная с кадра, соответствующего точке паузы, в пользовательский терминал.
В этом случае, пользовательский терминал может включать в себя устройство декодирования видео, как описано выше со ссылкой на фиг. 1 по 23. В качестве другого примера, пользовательский терминал может включать в себя устройство кодирования видео, как описано выше со ссылкой на фиг. 1 по 23. Альтернативно, пользовательский терминал может включать в себя как устройство декодирования видео, так и устройство кодирования видео, как описано выше со ссылкой на фиг. 1 по 23.
Различные применения способа кодирования видео, способа декодирования видео, устройства кодирования видео, и устройства декодирования видео согласно вариантам осуществления настоящего изобретения, описанных выше со ссылкой на фиг. 1 по 21, были описаны выше со ссылкой на фиг. 22 по 28. Однако способы хранения способа кодирования видео и способа декодирования видео в запоминающем носителе или способы осуществления устройства кодирования видео и устройства декодирования видео в устройстве согласно различным вариантам осуществления настоящего изобретения, не ограничены вариантами осуществления, описанными выше со ссылкой на фиг. 22 по 28.
В то время как настоящее изобретение было конкретно показано и описано со ссылкой на его иллюстративные варианты осуществления, специалистам в данной области техники следует понимать, что различные изменения в форме и деталях могут делаться в нем без отхода от сущности и объема согласно настоящему изобретению, как определено посредством последующей формулы изобретения.