СПОСОБ И УСТРОЙСТВО КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЯ С ИСПОЛЬЗОВАНИЕМ МЕЖКАДРОВОГО ПРОГНОЗИРОВАНИЯ
METHOD AND DEVICE FOR ENCODING AND DECODING IMAGE USING INTERFRAME PREDICTION

Настоящее изобретение относится к области технологий для обработки видеоизображения и, в частности, к способу и устройству кодирования и декодирования изображения с использованием межкадрового прогнозирования.
Уровень техники
В системах кодирования и декодирования видео обычно используется гибридная структура кодирования для кодирования и декодирования видео последовательностей. Сторона кодирующего устройства гибридной структуры кодирования обычно содержит модуль прогнозирования, преобразовательный модуль, модуль квантования и модуль энтропийного кодирования. Сторона декодирующего устройства гибридной структуры кодирования обычно содержит модуль энтропийного декодирования, модуль деквантования, модуль обратного преобразования и модуль компенсации прогнозирования. Эти кодирующие и декодирующие модули можно комбинировать для эффективного удаления избыточной информации видео последовательности и обеспечения того, что кодированное изображение этой видео последовательности будет получено на стороне декодирующего устройства.
В системах кодирования и декодирования видео, изображение видео последовательности обычно разбивают на блоки изображения для кодирования. Одно изображение разбивают на блоки изображения, и затем эти блоки изображения кодируют и декодируют с использованием перечисленных выше модулей.
Среди перечисленных выше модулей, модуль прогнозирования конфигурирован для получения информации прогнозируемого блока для блока изображения из состава кодируемого изображения видео последовательности на стороне кодирующего устройства, с целью определения, на основе конкретного режима, нужно ли получить остаток для рассматриваемого блока изображения. Модуль компенсации прогнозирования конфигурирован для получения информации прогнозируемого блока для текущего декодируемого блока изображения и затем определения, на основе конкретного режима, следует ли получить текущий декодируемый блок изображения на основе остатка блока изображения, полученного в процессе декодирования. Модуль прогнозирования и модуль компенсации прогнозирования обычно используют две технологии: внутрикадровое прогнозирование и межкадровое прогнозирование. Согласно технологии межкадрового прогнозирования, изображение, соседнее с текущим изображением и используемое для межкадрового прогнозирования, называется опорным изображением.
Согласно технологии межкадрового прогнозирования, для эффективного удаления избыточной информации из текущего блока изображения, на стороне кодирующего устройства и на стороне декодирующего устройства необходимо получить согласованный блок изображения, наиболее подобный текущему блоку изображения, из состава опорного изображения таким образом, чтобы уменьшить остаток текущего блока изображения. При осуществлении межкадрового прогнозирования для текущего блока изображении, производят поиск в опорном изображении для обнаружения подходящего согласованного блока изображения на основе прогнозируемой информации движения. В этом случае, информацию вектора движения в составе прогнозируемой информации движения определяют на основе информации вектора движения для соседнего блока. Другими словами, вся информация о предшествующем опорном изображении может быть использована для кодирования и декодирования текущего блока изображения. Можно понять, что при межкадровом кодировании и декодировании информацию вектора движения для соседнего блока напрямую используют в качестве предиктора вектора движения для текущего блока. Этот способ непосредственного получения предиктора вектора движения для межкадрового прогнозирования неизбежно вызывает отклонения точности прогнозирования движения.
Раскрытие сущности изобретения
Варианты настоящего изобретения обеспечивают способ и устройство кодирования и декодирования изображения с использованием межкадрового прогнозирования таким образом, чтобы повысить точность определения движения при межкадровом прогнозировании.
Согласно первому аспекту, предложен способ кодирования изображения с использованием межкадрового прогнозирования, содержащий: определение прогнозируемой информации движения для первого кодируемого блока, где прогнозируемая информация движения содержит предиктор вектора движения и прогнозируемую информацию опорного изображения, и эта прогнозируемая информация опорного изображения используется для представления прогнозируемого блока опорного изображения; осуществление двунаправленного прогнозирования первого кодируемого блока на основе прогнозируемой информации движения для получения первоначального прогнозируемого кодируемого блока для первого кодируемого блока и получение первого прогнозируемого кодируемого блока для первого кодируемого блока на основе первоначального прогнозируемого кодируемого блока; осуществление поиска движения с первой точностью для прогнозируемого блока опорного изображения с целью получения по меньшей мере одного второго прогнозируемого кодируемого блока, где поисковую позицию для поиска движения определяют с использованием предиктора вектора движения и первой точности; вычисление разности между первым прогнозируемым кодируемым блоком и каждым из вторых прогнозируемых кодируемых блоков, и использование предиктора вектора движения между первым кодируемым блоком и вторым прогнозируемым кодируемым блоком с наименьшей разностью в качестве целевого предиктора вектора движения для первого кодируемого блока; осуществление двунаправленного прогнозирования для первого кодируемого блока на основе целевого предиктора вектора движения для получения третьего прогнозируемого кодируемого блока для первого кодируемого блока; и получение целевого прогнозируемого кодируемого блока для первого кодируемого блока на основе третьего прогнозируемого кодируемого блока, и кодирование первого кодируемого блока на основе целевого прогнозируемого кодируемого блока.
Благоприятный эффект состоит в том, что при кодировании первого кодируемого блока устройство кодирующей стороны может обновлять целевой предиктор вектора движения с использованием поиска движения таким образом, чтобы повысить точность определения движения при межкадровом прогнозировании.
С учетом первого аспекта, в одном из возможных вариантов, прогнозируемая информация движения может представлять собой прогнозируемую информацию движения в прямом направлении и/или прогнозируемую информацию движения в обратном направлении, предиктор вектора движения может представлять собой предиктор вектора движения в прямом направлении и/или предиктор вектора движения в обратном направлении, прогнозируемый блок опорного изображения может представлять собой прогнозируемый блок опорного изображения в прямом направлении и/или прогнозируемый блок опорного изображения в обратном направлении.
С учетом первого аспекта, в одном из возможных вариантов, первоначальный кодируемый прогнозируемый блок может представлять собой первоначальный кодируемый прогнозируемый блок прямого направления и/или первоначальный кодируемый прогнозируемый блок обратного направления, и осуществление двунаправленного прогнозирования для первого кодируемого блока на основе прогнозируемой информации движения с целью получения первоначального прогнозируемого кодируемого блока для первого кодируемого блока может представлять собой: осуществление прогнозирования в прямом направлении для первого кодируемого блока на основе прогнозируемой информации движения в прямом направлении с целью получения первоначального прогнозируемого кодируемого блока прямого направления для первого кодируемого блока; и осуществление прогнозирования в обратном направлении для первого кодируемого блока на основе прогнозируемой информации движения в обратном направлении с целью получения первоначального прогнозируемого кодируемого блока обратного направления для первого кодируемого блока.
С учетом первого аспекта, в одном из возможных вариантов, процедура получения первого прогнозируемого кодируемого блока для первого кодируемого блока на основе первоначального прогнозируемого кодируемого блока содержит следующие операции: выполнение взвешенного суммирования первоначального прогнозируемого кодируемого блока прямого направления и первоначального прогнозируемого кодируемого блока обратного направления с целью получения первого прогнозируемого кодируемого блока для первого кодируемого блока; или использование первоначального прогнозируемого кодируемого блока прямого направления, в качестве первого прогнозируемого кодируемого блока для первого кодируемого блока; или использование первоначального прогнозируемого кодируемого блока обратного направления в качестве первого прогнозируемого кодируемого блока для первого кодируемого блока.
Благоприятный эффект состоит в том, что после осуществления двунаправленного прогнозирования для первого кодируемого блока на основе прогнозируемой информации движения, сторона кодирующего устройства может комбинировать первоначальный кодируемый прогнозируемый блок прямого направления и первоначальный кодируемый прогнозируемый блок обратного направления для получения первого прогнозируемого кодируемого блока, или может получить первый кодируемый прогнозируемый блок на основе первоначального прогнозируемого кодируемого блока одного направления. Варианты реализации диверсифицированы, так что их можно гибко выбирать на основе фактической ситуации.
С учетом первого аспекта, в одном из возможных вариантов, второй кодируемый прогнозируемый блок может представлять собой второй кодируемый прогнозируемый блок прямого направления и/или второй кодируемый прогнозируемый блок обратного направления, и процедура осуществления поиска движения с первой точностью для прогнозируемого блока опорного изображения с целью получения по меньшей мере одного второго прогнозируемого кодируемого блока содержит: выполнение поиска движения с первой точностью для прогнозируемого блока опорного изображения прямого направления на основе предиктора вектора движения в прямом направлении, и использование каждого найденного прогнозируемого кодируемого блока прямого направления в качестве второго прогнозируемого кодируемого блока прямого направления с целью получения по меньшей мере одного второго прогнозируемого кодируемого блока; и выполнение поиска движения с первой точностью для прогнозируемого блока опорного изображения в обратном направлении на основе предиктора вектора движения в обратном направлении, и использование каждого найденного прогнозируемого кодируемого блока обратного направления в качестве второго прогнозируемого кодируемого блока обратного направления для получения по меньшей мере одного второго прогнозируемого кодируемого блока, где первая точность может представлять собой точность до целого числа пикселей, точность до 1/2 пикселя, точность до 1/4 пикселя или точность до 1/8 пикселя.
С учетом первого аспекта, в одном из возможных вариантов, целевой предиктор вектора движения может представлять собой целевой предиктор вектора движения в прямом направлении и/или целевой предиктор вектора движения в обратном направлении, и процедура вычисления разности между первым прогнозируемым кодируемым блоком и каждым из вторых прогнозируемых кодируемых блоков, и использования предиктора вектора движения между первым кодируемым блоком и тем из вторых прогнозируемых кодируемых блоков, которому соответствует наименьшая разность, в качестве целевого предиктора вектора движения для первого кодируемого блока содержит: сравнение разностей между вторыми кодируемыми прогнозируемыми блоками прямого направления и первым прогнозируемым кодируемым блоком и использование целевого предиктора вектора движения в прямом направлении между первым кодируемым блоком и тем из вторых прогнозируемых кодируемых блоков прямого направления, которому соответствует наименьшая разность, в качестве искомого целевого предиктора вектора движения; и/или сравнение разностей между вторыми кодируемыми прогнозируемыми блоками обратного направления и первым прогнозируемым кодируемым блоком, и использование целевого предиктора вектора движения в обратном направлении между первым кодируемым блоком и тем из вторых прогнозируемых кодируемых блоков обратного направления, которому соответствует наименьшая разность, в качестве искомого целевого предиктора вектора движения.
Благоприятный эффект состоит в том, что разности между вторыми кодируемыми прогнозируемыми блоками, полученными путем осуществления поиска движения применительно к прогнозируемому блоку опорного изображения, и первым прогнозируемым кодируемым блоком сравнивают для обновления целевого предиктора вектора движения для первого кодируемого блока, повышая тем самым точность определения движения при межкадровом прогнозировании.
С учетом первого аспекта, в одном из возможных вариантов, третий кодируемый прогнозируемый блок для первого кодируемого блока может представлять собой третий кодируемый прогнозируемый блок прямого направления и/или третий кодируемый прогнозируемый блок обратного направления, процедура двунаправленного прогнозирования для первого кодируемого блока на основе целевого предиктора вектора движения с целью получения третьего прогнозируемого кодируемого блока для первого кодируемого блока содержит: выполнение прогнозирования в прямом направлении для первого кодируемого блока на основе целевого предиктора вектора движения в прямом направлении с целью получения третьего прогнозируемого кодируемого блока в прямом направлении для первого кодируемого блока; и выполнение прогнозирования в обратном направлении для первого кодируемого блока на основе целевого предиктора вектора движения в обратном направлении с целью получения третьего прогнозируемого кодируемого блока обратного направления для первого кодируемого блока.
С учетом первого аспекта, в одном из возможных вариантов, процедура получения целевого прогнозируемого кодируемого блока для первого кодируемого блока на основе третьего прогнозируемого кодируемого блока содержит: выполнение взвешенного суммирования третьего прогнозируемого кодируемого блока прямого направления и третьего прогнозируемого кодируемого блока обратного направления с целью получения целевого прогнозируемого кодируемого блока для первого кодируемого блока; или использование третьего прогнозируемого кодируемого блока прямого направления в качестве целевого прогнозируемого кодируемого блока для первого кодируемого блока; или использование третьего прогнозируемого кодируемого блока обратного направления в качестве целевого прогнозируемого кодируемого блока для первого кодируемого блока.
Благоприятный эффект состоит в том, что после выполнения двунаправленного прогнозирования для третьего кодируемого блока на основе целевого предиктора вектора движения с целью получения третьего прогнозируемого кодируемого блока, сторона кодирующего устройства может комбинировать третий кодируемый прогнозируемый блок прямого направления и третий кодируемый прогнозируемый блок обратного направления с целью получения прогнозируемого кодируемого блока для первого кодируемого блока, или может получить целевой кодируемый прогнозируемый блок для первого кодируемого блока на основе третьего прогнозируемого кодируемого блока одного направления. Варианты реализации диверсифицированы, так что их можно гибко выбирать на основе фактической ситуации.
Согласно второму аспекту, предложен способ декодирования изображения с использованием межкадрового прогнозирования, содержащий: определение прогнозируемой информации движения для первого декодируемого блока, где прогнозируемая информация движения содержит предиктор вектора движения и прогнозируемую информацию опорного изображения, так что эта прогнозируемая информация опорного изображения используется для представления прогнозируемого блока опорного изображения; выполнение двунаправленного прогнозирования для первого декодируемого блока на основе прогнозируемой информации движения с целью получения первоначального прогнозируемого декодируемого блока для первого декодируемого блока, и получение первого прогнозируемого декодируемого блока для первого декодируемого блока на основе первоначального прогнозируемого декодируемого блока; выполнение поиска движения с первой точностью для прогнозируемого блока опорного изображения с целью получения по меньшей мере одного второго прогнозируемого декодируемого блока, где поисковую позицию для поиска движения определяют с использованием предиктора вектора движения и первой точности; вычисление разности между первым прогнозируемым декодируемым блоком и каждым из вторых прогнозируемых декодируемых блоков, и использование предиктора вектора движения между первым декодируемым блоком и тем из вторых прогнозируемых декодируемых блоков, которому соответствует наименьшая разность, в качестве целевого предиктора вектора движения для первого декодируемого блока; выполнение двунаправленного прогнозирования для первого декодируемого блока на основе целевого предиктора вектора движения с целью получения третьего прогнозируемого декодируемого блока для первого декодируемого блока; и получение целевого прогнозируемого декодируемого блока для первого декодируемого блока на основе третьего прогнозируемого декодируемого блока, и декодирование первого декодируемого блока на основе целевого прогнозируемого декодируемого блока.
Благоприятный эффект состоит в том, что при кодировании первого декодируемого блока, на стороне декодирующего устройства можно обновлять целевой предиктор вектора движения с использованием поиска движения для того, чтобы повысить точность определения движения при межкадровом прогнозировании.
С учетом второго аспекта, в одном из возможных вариантов, прогнозируемая информация движения может представлять собой прогнозируемую информацию движения в прямом направлении и/или прогнозируемую информацию движения в обратном направлении, предиктор вектора движения может представлять собой предиктор вектора движения в прямом направлении и/или предиктор вектора движения в обратном направлении, прогнозируемый блок опорного изображения может представлять собой прогнозируемый блок опорного изображения прямого направления и/или прогнозируемый блок опорного изображения обратного направления.
С учетом второго аспекта, в одном из возможных вариантов, первоначальный декодируемый прогнозируемый блок может представлять собой первоначальный декодируемый прогнозируемый блок прямого направления и/или первоначальный декодируемый прогнозируемый блок обратного направления, и процедура выполнения двунаправленного прогнозирования для первого декодируемого блока на основе прогнозируемой информации движения с целью получения первоначального прогнозируемого декодируемого блока для первого декодируемого блока содержит: осуществление прогнозирования в прямом направлении для первого декодируемого блока на основе прогнозируемой информации движения в прямом направлении с целью получения первоначального прогнозируемого декодируемого блока прямого направления для первого декодируемого блока; и осуществление прогнозирования в обратном направлении для первого декодируемого блока на основе прогнозируемой информации движения в обратном направлении с целью получения первоначального прогнозируемого декодируемого блока обратного направления для первого декодируемого блока.
С учетом второго аспекта, в одном из возможных вариантов, процедура получения первого прогнозируемого декодируемого блока для первого декодируемого блока на основе первоначального прогнозируемого декодируемого блока содержит следующие операции: выполнение взвешенного суммирования первоначального прогнозируемого декодируемого блока прямого направления и первоначального прогнозируемого декодируемого блока обратного направления с целью получения первого прогнозируемого декодируемого блока для первого декодируемого блока; или использование первоначального прогнозируемого декодируемого блока прямого направления в качестве первого прогнозируемого декодируемого блока для первого декодируемого блока; или использование первоначального прогнозируемого декодируемого блока обратного направления в качестве первого прогнозируемого декодируемого для первого декодируемого блока.
Благоприятный эффект состоит в том, что после выполнения двунаправленного прогнозирования для первого декодируемого блока на основе прогнозируемой информации движения, сторона декодирующего устройства может объединить первоначальный декодируемый прогнозируемый блок прямого направления и первоначальный декодируемый прогнозируемый блок обратного направления с целью получения первого прогнозируемого декодируемого блока, или может получить первый декодируемый прогнозируемый блок на основе первоначального прогнозируемого декодируемого блока одного направления. Варианты реализации диверсифицированы, так что их можно гибко выбирать на основе фактической ситуации.
С учетом второго аспекта, в одном из возможных вариантов, второй декодируемый прогнозируемый блок может представлять собой второй декодируемый прогнозируемый блок прямого направления и/или второй декодируемый прогнозируемый блок обратного направления, и процедура выполнения поиска движения с первой точностью для прогнозируемого блока опорного изображения с целью получения по меньшей мере одного второго прогнозируемого декодируемого блока содержит: выполнение поиска движения с первой точностью для прогнозируемого блока опорного изображения в прямом направлении на основе предиктора вектора движения в прямом направлении, и использование каждого найденного прогнозируемого декодируемого блока прямого направления в качестве второго прогнозируемого декодируемого блока прямого направления с целью получения по меньшей мере одного второго прогнозируемого декодируемого блока; и выполнение поиска движения с первой точностью для прогнозируемого блока опорного изображения в обратном направлении на основе предиктора вектора движения в обратном направлении, и использование каждого найденного прогнозируемого декодируемого блока обратного направления в качестве второго прогнозируемого декодируемого блока обратного направления с целью получения по меньшей мере одного второго прогнозируемого декодируемого блока, где первая точность может представлять собой точность до целого числа пикселей, точность до 1/2 пикселя, точность до 1/4 пикселя или точность до 1/8 пикселя.
С учетом второго аспекта, в одном из возможных вариантов, целевой предиктор вектора движения может представлять собой целевой предиктор вектора движения в прямом направлении и/или целевой предиктор вектора движения в обратном направлении, и процедура вычисления разности между первым прогнозируемым декодируемым блоком и каждым из вторых прогнозируемых декодируемых блоков, и использования предиктора вектора движения между первым декодируемым блоком и тем из вторых прогнозируемых декодируемых блоков, которому соответствует наименьшая разность, в качестве целевого предиктора вектора движения для первого декодируемого блока содержит: сравнение разностей между вторыми декодируемыми прогнозируемыми блоками прямого направления и первым прогнозируемым декодируемым блоком, и использование целевого предиктора вектора движения в прямом направлении между первым декодируемым блоком и вторым прогнозируемым декодируемым блоком прямого направления, которому соответствует наименьшая разность, в качестве целевого предиктора вектора движения; и/или сравнение разностей между вторыми декодируемыми прогнозируемыми блоками обратного направления и первым прогнозируемым декодируемым блоком, и использование целевого предиктора вектора движения в обратном направлении между первым декодируемым блоком и вторым прогнозируемым декодируемым блоком обратного направления, которому соответствует наименьшая разность, в качестве целевого предиктора вектора движения.
Благоприятный эффект состоит в том, что разности между вторыми декодируемыми прогнозируемыми блоками, полученными в результате выполнения поиска движения для прогнозируемого блока опорного изображения, и первым прогнозируемым декодируемым блоком сравнивают для обновления целевого предиктора вектора движения для первого декодируемого блока, повышая тем самым точность определения движении при межкадровом прогнозировании.
С учетом второго аспекта, в одном из возможных вариантов, третий декодируемый прогнозируемый блок для первого декодируемого блока может представлять собой третий декодируемый прогнозируемый блок прямого направления и/или третий декодируемый прогнозируемый блок обратного направления, а процедура выполнения двунаправленного прогнозирования для первого декодируемого блока на основе целевого предиктора вектора движения с целью получения третьего прогнозируемого декодируемого блока для первого декодируемого блока содержит: осуществление прогнозирования в прямом направлении для первого декодируемого блока на основе целевого предиктора вектора движения в прямом направлении с целью получения третьего прогнозируемого декодируемого блока прямого направления для первого декодируемого блока; и осуществление прогнозирования в обратном направлении для первого декодируемого блока на основе целевого предиктора вектора движения в обратном направлении с целью получения третьего прогнозируемого декодируемого блока обратного направления для первого декодируемого блока.
С учетом второго аспекта, в одном из возможных вариантов, процедура получения целевого прогнозируемого декодируемого блока для первого декодируемого блока на основе третьего прогнозируемого декодируемого блока содержит следующие операции: осуществление взвешенного суммирования третьего прогнозируемого декодируемого блока прямого направления и третьего прогнозируемого декодируемого блока обратного направления с целью получения целевого прогнозируемого декодируемого блока для первого декодируемого блока; или использование третьего прогнозируемого декодируемого блока прямого направления в качестве целевого прогнозируемого декодируемого блока для первого декодируемого блока; или использование третьего прогнозируемого декодируемого блока обратного направления в качестве целевого прогнозируемого декодируемого блока для первого декодируемого блока.
Благоприятный эффект состоит в том, что после выполнения двунаправленного прогнозирования для третьего декодируемого блока на основе целевого предиктора вектора движения с целью получения третьего прогнозируемого декодируемого блока, сторона декодирующего устройства может объединить третий декодируемый прогнозируемый блок прямого направления и третий декодируемый прогнозируемый блок обратного направления с целью получения целевого прогнозируемого декодируемого блока для первого декодируемого блока или может получить целевой декодируемый прогнозируемый блок для первого декодируемого блока на основе третьего прогнозируемого декодируемого блока одного направления. Варианты реализации диверсифицированы, так что их можно гибко выбирать на основе фактической ситуации.
Согласно третьему аспекту предложена аппаратура для кодирования изображения с использованием межкадрового прогнозирования, содержащая: решающий модуль, конфигурированный для определения прогнозируемой информации движения для первого кодируемого блока, где эта прогнозируемая информация движения содержит предиктор вектора движения и прогнозируемую информацию опорного изображения, где эта прогнозируемая информация опорного изображения используется для представления прогнозируемого блока опорного изображения; процессорный модуль, конфигурированный для: выполнения двунаправленного прогнозирования для первого кодируемого блока на основе прогнозируемой информации движения с целью получения первоначального прогнозируемого кодируемого блока для первого кодируемого блока, и получения первого прогнозируемого кодируемого блока для первого кодируемого блока на основе первоначального прогнозируемого кодируемого блока; выполнение поиска движения с первой точностью для прогнозируемого блока опорного изображения с целью получения по меньшей одного второго прогнозируемого кодируемого блока, где поисковую позицию для поиска движения определяют с использованием предиктора вектора движения и первой точности; вычисление разности между первым прогнозируемым кодируемым блоком и каждым из вторых прогнозируемых кодируемых блоков, и использование предиктора вектора движения между первым кодируемым блоком и вторым прогнозируемым кодируемым блоком, которому соответствует наименьшая разность, в качестве целевого предиктора вектора движения для первого кодируемого блока; и выполнение двунаправленного прогнозирования для первого кодируемого блока на основе целевого предиктора вектора движения для получения третьего прогнозируемого кодируемого блока для первого кодируемого блока; и кодирующий модуль, конфигурированный для: получения целевого прогнозируемого кодируемого блока для первого кодируемого блока на основе третьего прогнозируемого кодируемого блока, и кодирования первого кодируемого блока на основе этого целевого прогнозируемого кодируемого блока.
С учетом третьего аспекта, в одном из возможных вариантов, прогнозируемая информация движения может представлять собой прогнозируемую информацию движения в прямом направлении и/или прогнозируемую информацию движения в обратном направлении, предиктор вектора движения может представлять собой предиктор вектора движения в прямом направлении и/или предиктор вектора движения в обратном направлении, и прогнозируемый блок опорного изображения может представлять собой прогнозируемый блок опорного изображения в прямом направлении и/или прогнозируемый блок опорного изображения в обратном направлении.
С учетом третьего аспекта, в одном из возможных вариантов, первоначальный кодируемый прогнозируемый блок может представлять собой первоначальный кодируемый прогнозируемый блок прямого направления и/или первоначальный кодируемый прогнозируемый блок обратного направления, и при выполнении двунаправленного прогнозирования для первого кодируемого блока на основе прогнозируемой информации движения с целью получения первоначального прогнозируемого кодируемого блока для первого кодируемого блока, процессорный модуль в частности конфигурирован для: выполнения прогнозирования в прямом направлении для первого кодируемого блока на основе прогнозируемой информации движения в прямом направлении с целью получения первоначального прогнозируемого кодируемого блока прямого направления для первого кодируемого блока; и выполнения прогнозирования в обратном направлении для первого кодируемого блока на основе прогнозируемой информации движения в обратном направлении с целью получения первоначального прогнозируемого кодируемого блока обратного направления для первого кодируемого блока.
С учетом третьего аспекта, в одном из возможных вариантов, при получении первого прогнозируемого кодируемого блока для первого кодируемого блока на основе первоначального прогнозируемого кодируемого блока, процессорный модуль, в частности, конфигурирован для: выполнения взвешенного суммирования первоначального прогнозируемого кодируемого блока прямого направления и первоначального прогнозируемого кодируемого блока обратного направления с целью получения первого прогнозируемого кодируемого блока для первого кодируемого блока; или использования первоначального прогнозируемого кодируемого блока прямого направления в качестве первого прогнозируемого кодируемого блока для первого кодируемого блока; или использования первоначального прогнозируемого кодируемого блока обратного направления в качестве первого прогнозируемого кодируемого блока для первого кодируемого блока.
С учетом третьего аспекта, в одном из возможных вариантов, второй кодируемый прогнозируем блок может представлять собой второй кодируемый прогнозируемый блок прямого направления и/или второй кодируемый прогнозируемый блок обратного направления, и при выполнении поиска движения с первой точностью для прогнозируемого блока опорного изображения на основе предиктора вектора движения с целью получения по меньшей мере одного второго прогнозируемого кодируемого блока, процессорный модуль, в частности, конфигурирован для: выполнения поиска движения с первой точностью для прогнозируемого блока опорного изображения в прямом направлении на основе предиктора вектора движения в прямом направлении, и использования каждого найденного прогнозируемого кодируемого блока прямого направления в качестве второго прогнозируемого кодируемого блока прямого направления с целью получения по меньшей мере одного второго прогнозируемого кодируемого блока; и выполнения поиска движения с первой точностью для прогнозируемого блока опорного изображения в обратном направлении на основе предиктора вектора движения в обратном направлении, и использования каждого найденного прогнозируемого кодируемого блока обратного направления в качестве второго прогнозируемого кодируемого блока обратного направления с целью получения по меньшей мере одного второго прогнозируемого кодируемого блока, где первая точность может представлять собой точность до целого числа пикселей, точность до 1/2 пикселя, точность до 1/4 пикселя или точность до 1/8 пикселя.
С учетом третьего аспекта, в одном из возможных вариантов, целевой предиктор вектора движения может представлять собой целевой предиктор вектора движения в прямом направлении и/или целевой предиктор вектора движения в обратном направлении, и при вычислении разности между первым прогнозируемым кодируемым блоком и каждым из вторых прогнозируемых кодируемых блоков, и использовании предиктора вектора движения между первым кодируемым блоком и вторым прогнозируемым кодируемым блоком, которому соответствует наименьшая разность, в качестве целевого предиктора вектора движения для первого кодируемого блока, процессорный модуль, в частности, конфигурирован для: сравнения разностей между вторыми кодируемыми прогнозируемыми блоками прямого направления и первым прогнозируемым кодируемым блоком, и использования целевого предиктора вектора движения в прямом направлении между первым кодируемым блоком и вторым прогнозируемым кодируемым блоком прямого направления, которому соответствует наименьшая разность, в качестве целевого предиктора вектора движения; или сравнения разностей между вторыми кодируемыми прогнозируемыми блоками обратного направления и первым прогнозируемым кодируемым блоком, и использования целевого предиктора вектора движения в обратном направлении между первым кодируемым блоком и вторым прогнозируемым кодируемым блоком обратного направления, которому соответствует наименьшая разность, в качестве целевого предиктора вектора движения.
С учетом третьего аспекта, в одном из возможных вариантов, кодируемый прогнозируемый блок для первого кодируемого блока может представлять собой третий кодируемый прогнозируемый блок прямого направления и третий кодируемый прогнозируемый блок обратного направления, и при выполнении двунаправленного прогнозирования для первого кодируемого блока на основе целевого предиктора вектора движения с целью получения третьего прогнозируемого кодируемого блока для первого кодируемого блока, процессорный модуль, в частности, конфигурирован для: выполнения прогнозирования в прямом направлении для первого кодируемого блока на основе целевого предиктора вектора движения в прямом направлении с целью получения третьего прогнозируемого кодируемого блока прямого направления для первого кодируемого блока; и выполнения прогнозирования в обратном направлении для первого кодируемого блока на основе целевого предиктора вектора движения в обратном направлении с целью получения третьего прогнозируемого кодируемого блока обратного направления для первого кодируемого блока.
С учетом третьего аспекта, в одном из возможных вариантов, при получении целевого прогнозируемого кодируемого блока для первого кодируемого блока на основе третьего прогнозируемого кодируемого блока, процессорный модуль, в частности, конфигурирован для: выполнения взвешенного суммирования третьего прогнозируемого кодируемого блока прямого направления и третьего прогнозируемого кодируемого блока обратного направления с целью получения целевого прогнозируемого кодируемого блока для первого кодируемого блока; или использования третьего прогнозируемого кодируемого блока прямого направления в качестве целевого прогнозируемого кодируемого блока для первого кодируемого блока; или использования третьего прогнозируемого кодируемого блока обратного направления в целевого прогнозируемого кодируемого блока для первого кодируемого блока.
Согласно четвертому аспекту, предложена аппаратура для декодирования изображения с использованием межкадрового прогнозирования, содержащая: решающий модуль, конфигурированный для определения прогнозируемой информации движения для первого декодируемого блока, где эта прогнозируемая информация движения содержит предиктор вектора движения и прогнозируемую информацию опорного изображения, так что эту прогнозируемую информацию опорного изображения используют для представления прогнозируемого блока опорного изображения; процессорный модуль, конфигурированный для: выполнения двунаправленного прогнозирования для первого декодируемого блока на основе прогнозируемой информации движения с целью получения первоначального прогнозируемого декодируемого блока для первого декодируемого блока, и получения первого прогнозируемого декодируемого блока для первого декодируемого блока на основе указанного первоначального прогнозируемого декодируемого блока; выполнения поиска движения с первой точностью для прогнозируемого блока опорного изображения с целью получения по меньшей мере одного второго прогнозируемого декодируемого блока, где поисковую позицию для поиска движения определяют с использованием предиктора вектора движения и с первой точностью; вычисления разности между первым прогнозируемым декодируемым блоком и каждым из вторых прогнозируемых декодируемых блоков, и использования предиктора вектора движения между первым декодируемым блоком и вторым прогнозируемым декодируемым блоком, которому соответствует наименьшая разность, в качестве предиктора вектора движения для первого декодируемого блока; и выполнения двунаправленного прогнозирования для первого декодируемого блока на основе целевого предиктора вектора движения с целью получения третьего прогнозируемого декодируемого блока для первого декодируемого блока; и декодирующий модуль, конфигурированный для: получения целевого прогнозируемого декодируемого блока для первого декодируемого блока на основе третьего прогнозируемого декодируемого блока, и декодирования первого декодируемого блока на основе целевого прогнозируемого декодируемого блока.
С учетом четвертого аспекта, в одном из возможных вариантов, прогнозируемая информация движения может представлять собой прогнозируемую информацию движения в прямом направлении и/или прогнозируемую информацию движения в обратном направлении, предиктор вектора движения может представлять собой предиктор вектора движения в прямом направлении и/или предиктор вектора движения в обратном направлении, и прогнозируемый блок опорного изображения может представлять собой прогнозируемый блок опорного изображения в прямом направлении и/или прогнозируемый блок опорного изображения в обратном направлении.
С учетом четвертого аспекта, в одном из возможных вариантов, первоначальный декодируемый прогнозируемый блок может представлять собой первоначальный декодируемый прогнозируемый блок прямого направления и/или первоначальный декодируемый прогнозируемый блок обратного направления, и при выполнении двунаправленного прогнозирования для первого декодируемого блока на основе прогнозируемой информации движения с целью получения первоначального прогнозируемого декодируемого блока для первого декодируемого блока, процессорный модуль, в частности, конфигурирован для: выполнения прогнозирования в прямом направлении для первого декодируемого блока на основе прогнозируемой информации движения в прямом направлении с целью получения первоначального прогнозируемого декодируемого блока прямого направления для первого декодируемого блока; и выполнения прогнозирования в обратном направлении для первого декодируемого блока на основе прогнозируемой информации движения в обратном направлении с целью получения первоначального прогнозируемого декодируемого блока обратного направления для первого декодируемого блока.
С учетом четвертого аспекта, в одном из возможных вариантов, при получении первого прогнозируемого декодируемого блока для первого декодируемого блока на основе первоначального прогнозируемого декодируемого блока, процессорный модуль, в частности, конфигурирован для: выполнения взвешенного суммирования первоначального прогнозируемого декодируемого блока прямого направления и первоначального прогнозируемого декодируемого блока обратного направления с целью получения первого прогнозируемого декодируемого блока для первого декодируемого блока; или использования первоначального прогнозируемого декодируемого блока прямого направления в качестве первого прогнозируемого декодируемого блока для первого декодируемого блока; или использования первоначального прогнозируемого декодируемого блока обратного направления в качестве первого прогнозируемого декодируемого блока для первого декодируемого блока.
С учетом четвертого аспекта, в одном из возможных вариантов, второй декодируемый прогнозируемый блок может представлять собой второй декодируемый прогнозируемый блок прямого направления и/или второй декодируемый прогнозируемый блок обратного направления, и при выполнении поиска движения с первой точностью для прогнозируемого блока опорного изображения на основе предиктора вектора движения с целью получения по меньшей мере одного второго прогнозируемого декодируемого блока, процессорный модуль, в частности, конфигурирован для: выполнения поиска движения с первой точностью для прогнозируемого блока опорного изображения в прямом направлении на основе предиктора вектора движения в прямом направлении, и использования каждого из найденных прогнозируемых декодируемых блоков прямого направления в качестве второго прогнозируемого декодируемого блока прямого направления с целью получения по меньшей мере одного второго прогнозируемого декодируемого блока; и выполнения поиска движения с первой точностью для прогнозируемого блока опорного изображения в обратном направлении на основе предиктора вектора движения в обратном направлении, и использования каждого из найденных прогнозируемых декодируемых блоков обратного направления в качестве второго прогнозируемого декодируемого блока обратного направления с целью получения по меньшей мере одного второго прогнозируемого декодируемого блока, где первая точность может представлять собой точность до целого числа пикселей, точность до 1/2 пикселя, точность до 1/4 пикселя или точность до 1/8 пикселя.
С учетом четвертого аспекта, в одном из возможных вариантов, целевой предиктор вектора движения может представлять собой целевой предиктор вектора движения в прямом направлении и/или целевой предиктор вектора движения в обратном направлении, и при вычислении разности между первым прогнозируемым декодируемым блоком и каждым из вторых прогнозируемых декодируемых блоков, и использовании предиктора вектора движения between между первым декодируемым блоком и вторым прогнозируемым декодируемым блоком, которому соответствует наименьшая разность, в качестве целевого предиктора вектора движения для первого декодируемого блока, процессорный модуль, в частности, конфигурирован для: сравнения разностей между вторыми декодируемыми прогнозируемыми блоками прямого направления и первым прогнозируемым декодируемым блоком, и использования целевого предиктора вектора движения в прямом направлении между первым декодируемым блоком и вторым прогнозируемым декодируемым блоком прямого направления, которому соответствует наименьшая разность, в качестве целевого предиктора вектора движения; или сравнения разностей между вторыми декодируемыми прогнозируемыми блоками обратного направления и первым прогнозируемым декодируемым блоком, и использования целевого предиктора вектора движения в обратном направлении между первым декодируемым блоком и вторым прогнозируемым декодируемым блоком обратного направления, которому соответствует наименьшая разность, в качестве целевого предиктора вектора движения.
С учетом четвертого аспекта, в одном из возможных вариантов, третий декодируемый прогнозируемый блок для первого декодируемого блока может представлять собой третий декодируемый прогнозируемый блок прямого направления и/или третий декодируемый прогнозируемый блок обратного направления, и при выполнении двунаправленного прогнозирования для первого декодируемого блока на основе целевого предиктора вектора движения с целью получения третьего прогнозируемого декодируемого блока для первого декодируемого блока, процессорный модуль, в частности, конфигурирован для: выполнения прогнозирования в прямом направлении для первого декодируемого блока на основе целевого предиктора вектора движения в прямом направлении с целью получения третьего прогнозируемого декодируемого блока прямого направления для первого декодируемого блока; и выполнения прогнозирования в обратном направлении для первого декодируемого блока на основе целевого предиктора вектора движения в обратном направлении с целью получения третьего прогнозируемого декодируемого блока обратного направления для первого декодируемого блока.
С учетом четвертого аспекта, в одном из возможных вариантов, при получении целевого прогнозируемого декодируемого блока для первого декодируемого блока на основе третьего прогнозируемого декодируемого блока, процессорный модуль, в частности, конфигурирован для: выполнения взвешенного суммирования третьего прогнозируемого декодируемого блока прямого направления и третьего прогнозируемого декодируемого блока обратного направления с целью получения целевого прогнозируемого декодируемого блока для первого декодируемого блока; или использования третьего прогнозируемого декодируемого блока прямого направления в качестве целевого прогнозируемого декодируемого блока для первого декодируемого блока; или использования третьего прогнозируемого декодируемого блока обратного направления в качестве целевого прогнозируемого декодируемого блока для первого декодируемого блока.
Согласно пятому аспекту, предложено кодирующее устройство, содержащее процессор и запоминающее устройство, где запоминающее устройство хранит читаемую компьютером программу, а процессор выполняет хранящуюся в запоминающем устройстве программу с целью осуществления способа кодирования согласно первому аспекту.
Согласно шестому аспекту, предложено декодирующее устройство, содержащее процессор и запоминающее устройство, где запоминающее устройство хранит читаемую компьютером программу, а процессор выполняет хранящуюся в запоминающем устройстве программу с целью осуществления способа декодирования согласно первому аспекту.
Согласно седьмому аспекту, предложен компьютерный носитель для хранения информации, конфигурированный для сохранения команд компьютерного программного обеспечения для реализации первого аспекта и второго аспекта, где совокупность команд компьютерного программного обеспечения содержит программу, разработанную для осуществления указанных выше аспектов.
Следует понимать, что аспекты с третьего по седьмой вариантов настоящего изобретения согласованы с техническими решениями первого и второго аспектов вариантов настоящего изобретения, а благоприятные эффекты, достигаемые всеми аспектами и соответствующие способы реализации аналогичны. Подробности повторно здесь описаны не будет.
Краткое описание чертежей
Фиг. 1A и фиг. 1B соответственно представляют упрощенные схемы выбора прогнозируемой информации движения для текущего блока в объединенном режиме и в необъединенном режиме;
фиг. 2 представляет упрощенную блок-схему видео кодека или электронного устройства;
фиг. 3 представляет упрощенную блок-схему системы видео кодека;
фиг. 4 представляет логическую схему способа кодирования изображения с использованием межкадрового прогнозирования согласно одному из вариантов настоящего изобретения;
фиг. 5 представляет логическую схему способа декодирования изображения с использованием межкадрового прогнозирования согласно одному из вариантов настоящего изобретения;
фиг. 6A, фиг. 6B, фиг. 7, фиг. 8A, фиг. 8B, фиг. 8C, фиг. 8D, фиг. 9A и фиг. 9B представляют упрощенные схемы процедуры декодирования изображения с использованием межкадрового прогнозирования согласно одному из вариантов настоящего изобретения;
фиг. 10 представляет структурную схему аппаратуры для кодирования изображения с использованием межкадрового прогнозирования согласно одному из вариантов настоящего изобретения;
фиг. 11 представляет структурную схему устройства для кодирования изображения с использованием межкадрового прогнозирования согласно одному из вариантов настоящего изобретения;
фиг. 12 представляет структурную схему аппаратуры для декодирования изображения с использованием межкадрового прогнозирования согласно одному из вариантов настоящего изобретения; и
фиг. 13 представляет структурную схему устройства для декодирования изображения с использованием межкадрового прогнозирования согласно одному из вариантов настоящего изобретения.
Осуществление изобретения
Дальнейшее четко и полно описывает технические решения вариантов настоящего изобретения со ссылками на прилагаемые чертежи вариантов настоящего изобретения. Очевидно, что описываемые варианты представляют лишь некоторые, а не все варианты настоящего изобретения. Все прочие варианты, которые могут быть получены специалистом в рассматриваемой области на основе вариантов настоящего изобретения без особых творческих усилий, попадут в объем защиты настоящего изобретения.
Технологию межкадрового прогнозирования подразделяют на объединенный (Merge) режим и необъединенный режим, а необъединенный режим далее подразделяют на режим пропуска (SKIP) и режим без пропуска.
В необъединенном режиме и режиме без пропуска из состава объединенного режима в рамках технологии межкадрового прогнозирования, избыточную информацию из состава текущего блока изображения удаляют на основе информации пикселей кодированного или декодированного изображения, соседствующего с текущим блоком, для получения остатка.
Согласно технологии межкадрового прогнозирования, для эффективного удаления избыточной информации из текущего блока изображения, на стороне кодирующего устройства или стороне декодирующего устройства необходимо получить блок изображения, в наибольшей степени подобный текущему блоку изображения, из состава опорного изображения, чтобы уменьшить остаток текущего блока изображения. На стороне кодирующего устройства или на стороне декодирующего устройства обычно получают блок указанного выше опорного изображения с использованием оценки движения. В рамках существующей технологии кодирования и декодирования видео изображения, обычно осуществляют поиск в опорном изображении для обнаружения подходящего согласованного блока изображения в единицах блоков изображения в ходе кодирования и декодирования в процессе оценки движения. В некоторых вариантах, блок изображения представляет собой единицу прогнозирования для изображения, подлежащего кодированию, на стороне кодирующего устройства, или единицу прогнозирования для изображения, подлежащего восстановлению на, стороне декодирующего устройства. В некоторых вариантах, блок изображения представляет собой единицу преобразования для изображения, подлежащего кодированию на стороне кодирующего устройства, или единицу преобразования для изображения, подлежащего восстановлению, на стороне декодирующего устройства. В некоторых вариантах, блок изображения представляет собой единицу кодирования или субъединицу кодирования для изображения, подлежащего кодированию на стороне кодирующего устройства, или единицу кодирования или субъединицу кодирования для изображения, подлежащего восстановлению, на стороне декодирующего устройства. Никаких ограничений здесь не накладывают.
В необъединенном режиме технологии межкадрового прогнозирования, на стороне кодирующего устройства вычитают величину пикселя, соответствующую текущему блоку изображения, и величину пикселя, соответствующую согласованному блоку изображения, для получения остатка, осуществляют энтропийное кодирование величины, полученной после преобразования и квантования остатка, и, наконец, записывают, в кодовом потоке, и поток битов, полученный посредством энтропийного кодирования, и сдвиг движения (а именно, разность векторов движения), полученный посредством поиска. Соответственно, в ходе компенсации прогнозирования (которая также может называться компенсацией движения), на стороне декодирующего устройства сначала осуществляют энтропийное кодирование после получения кодированного энтропийным способом потока битов, с целью получения соответствующего остатка и соответствующей разности векторов движения; затем получают величину вектора движения на основе полученной разности векторов движения и величины вектора движения из соседнего блока; получают соответствующий согласованный блок изображения из состава опорного изображения на основе величины вектора движения; и суммируют величину пикселя, соответствующую согласованному блоку изображения, и величину пикселя, соответствующую остатку, с целью получения величины для декодированного текущего блока изображения.
В режиме без пропуска объединенного режима из состава технологии межкадрового прогнозирования, на стороне кодирующего устройства выполняют вычитание величины пикселя, соответствующей текущему блоку изображения, и величины пикселя, соответствующей согласованному блоку изображения, для получения остатка, осуществляют энтропийное кодирование величины, полученной после преобразования и квантования остатка, и, наконец, записывают поток битов, полученный в результате энтропийного кодирования, в кодовый поток. Соответственно, в ходе компенсации прогнозирования (которая также может называться компенсацией движения), на стороне декодирующего устройства сначала осуществляют энтропийное кодирование после получения кодированного энтропийным способом потока битов, с целью получения соответствующего остатка; получают соответствующий согласованный блок изображения из состава опорного изображения на основе величины вектора движения соседнего блока; и суммируют величину пикселя, соответствующую согласованному блоку изображения, и величину пикселя, соответствующую остатку, с целью получения величины для декодированного текущего блока изображения.
В режиме пропуска объединенного режима из состава технологии межкадрового прогнозирования, для сохранения частоты передачи битов данных, остаток и разность векторов движения получать не нужно. В ходе обоих процессов – и кодирования, и декодирования, соответствующий согласованный блок изображения получают непосредственно на основе информации движения соседнего блока и используют в качестве величины текущего блока изображения.
Как показано на фиг. 1A, в объединенном режиме, соседние блоки маркируют разными величинами индексов, и используют эти величины индексов для определения соседнего блока, чья информация вектора движения используется текущим блоком в качестве прогнозируемой информации движения текущего блока. Как показано на фиг. 1B, в необъединенном режиме, формируют список предикторов вектора движения посредством определения соседнего блока и выбирают один предиктор вектора движения из этого списка предикторов вектора движения для текущего блока в качестве предиктора вектора движения для этого текущего блока. Можно выяснить, что, при межкадровом кодировании и декодировании, информацию вектора движения для соседнего блока непосредственно используют в качестве предиктора вектора движения для текущего блока. Этот способ непосредственного получения предиктора вектора движения при межкадровом прогнозировании неизбежно вызывает отклонения точности прогнозирования векторов движения.
На фиг. 2 представляют упрощенную блок-схему аппаратуры видео кодека или электронного устройства 50. Согласно одному из вариантов настоящего изобретения эта аппаратура или электронное устройство может быть встроено в кодек. На фиг. 3 представлена упрощенная схема аппаратуры системы видео кодека согласно одному из вариантов настоящего изобретения. Далее описаны модули, показанные на фиг. 2 и фиг. 3.
Электронное устройство 50 может представлять собой, например, мобильный терминал или абонентский терминал в системе радиосвязи. Следует понимать, что варианты настоящего изобретения могут быть реализованы в каком-либо электронном устройстве или аппаратуре, которой может потребоваться кодировать или декодировать, либо и кодировать, и декодировать видео изображение.
Устройство 50 может содержать корпус, конфигурированный для включения в состав устройства и защиты этого устройства. Устройство 50 может далее содержать дисплей 32 в форме жидкокристаллического дисплея. В другом варианте настоящего изобретения дисплей может быть построен по какой-либо подходящей технологии для создания дисплеев для представления изображения или видео. Устройство 50 может далее содержать клавиатуру 34. В другом варианте настоящего изобретения может быть использован какой-либо подходящий механизм интерфейса данных или интерфейса пользователя. Например, интерфейс пользователя может быть реализован в виде виртуальной клавиатуры или системы ввода данных, чтобы служить частью сенсорного дисплея. Аппаратура может содержать микрофон 36 или какое-либо другое подходящее устройство для ввода аудио сигналов, причем это устройство ввода может быть устройством ввода цифровых или аналоговых сигналов. Устройство 50 может далее содержать следующее устройство вывода аудио сигналов. В этом варианте настоящего изобретения устройство вывода аудио сигналов может представлять собой головную гарнитуру 38, громкоговоритель, разъем для присоединения аналогового аудио выхода или разъем для присоединения цифрового аудио выхода. Устройство 50 может также содержать аккумулятор 40. В другом варианте настоящего изобретения устройство может получать напряжение питания от какого-либо другого подходящего мобильного источника энергии, такого как солнечный элемент, топливный элемент или тактовый генератор. Аппаратура может далее содержать инфракрасный порт 42, конфигурированный для осуществления связи в состоянии прямой видимости на малую дальность. В другом варианте устройство 50 может использовать любое подходящее решение для связи малой дальности, такое как беспроводное соединение Bluetooth или проводное USB-соединение/соединение по силовому проводу под напряжением.
Устройство 50 может содержать контроллер 56 или процессор, конфигурированный для управления этой аппаратурой. Контроллер 56 может быть соединен с запоминающим устройством 58. В этом варианте настоящего изобретения запоминающее устройство может сохранять данные изображения и аудио данные, и/или может сохранять команды, выполняемые контроллером 56. Контроллер 56 может быть соединен со схемой 54 кодека, способной осуществлять кодирование и декодирование аудио и/или видеоданных, либо контроллер 56 соединен со схемой кодека 54 для осуществления вспомогательного кодирования и декодирования.
Устройство 50 может дополнительно содержать устройство 48 для считывания информации с карт и карточку 46 с микропроцессором, конфигурированные для предоставления информации пользователя и позволяющие предоставить информацию пользователя для аутентификации в сети и авторизованной аутентификации пользователя.
Устройство 50 может дополнительно содержать схему 52 радио интерфейса. Эта схема радио интерфейса соединена с контроллером и предназначена для генерации, например, сигнала радиосвязи, используемого для связи в сети сотовой связи, в системе радиосвязи или в локальной сети радиосвязи. Устройство 50 может далее содержать антенну 44. Эта антенна соединена со схемой 52 радио интерфейса для передачи высокочастотных сигналов, генерируемых в этой схеме 52 радио интерфейса, другим (нескольким) единицам аппаратуры и приема высокочастотных сигналов от других (нескольких) единиц аппаратуры.
В некоторых вариантах настоящего изобретения, устройство 50 содержит видеокамеру, способную записывать или воспринимать один кадр. Кодек 54 или контроллер принимает и обрабатывает эти одиночные кадры. В некоторых вариантах настоящего изобретения, аппаратура может принимать данные видеоизображения, подлежащие обработке, от другого устройства перед передачей этих данных и/или записью для сохранения. В некоторых вариантах настоящего изобретения, устройство 50 может принимать, через беспроводное или проводное соединение, изображение для кодирования/декодирования.
На фиг. 3 представлена упрощенная блок-схема другой системы 10 видео кодека согласно одному из вариантов настоящего изобретения. Как показано на фиг. 3, система 10 видео кодека содержит аппаратуру-источник 12 и аппаратуру-адресат 14. Аппаратура-источник 12 генерирует кодированные видеоданные. Поэтому аппаратура-источник 12 может называться аппаратурой видео кодирования или устройством видео кодирования. Аппаратура-адресат 14 может декодировать кодированные видеоданные, генерируемые аппаратурой-источником 12. Поэтому аппаратура-адресат 14 может называться аппаратурой видео декодирования или устройством видео декодирования. Аппаратура-источник 12 и аппаратура-адресат 14 могут представлять собой экземпляры аппаратуры видео кодека или устройства видео кодека. Эти аппаратура-источник 12 и аппаратура-адресат 14 могут представлять собой аппаратуру самого широкого диапазона, включая настольный компьютер, мобильную компьютерную аппаратуру, компьютер-ноутбук (например, портативный компьютер), планшетный компьютер, приставку, мобильный телефон, такой как смартфон, телевизор, видеокамеру, дисплей, цифровой медиа плеер, видеоигровую приставку, встроенный автомобильный компьютер или другую аналогичную аппаратуру.
Аппаратура-адресат 14 может принимать кодированные видеоданные от аппаратуры-источника 12 по каналу 16. Канал 16 может содержать один или несколько носителей сигнала и/или единиц аппаратуры, которые могут передавать кодированные видеоданные от аппаратуры-источника 12 к аппаратуре-адресату 14. В одном из примеров канал 16 может содержать один или несколько носителей (линий) связи, позволяющих аппаратуре-источнику 12 передавать кодированные видеоданные напрямую аппаратуре-адресату 14 в реальном времени. В этом случае, аппаратура-источник 12 может модулировать кодированные видеоданные в соответствии со стандартами связи (например, протоколом радиосвязи) и может передавать модулированные видеоданные аппаратуре-адресату 14. Указанные один или несколько носителей связи могут представлять собой беспроводные и/или проводные носители связи, такие как сигналы в высокочастотной (radio frequency (RF)) области спектра и/или одна или несколько физических линий передачи. Эти один или несколько носителей связи могут составлять часть сети связи с передачей пакетов данных (например, локальной сети связи, крупномасштабной сети связи или глобальной сети связи (например, Интернет)). Совокупность одного или нескольких носителей связи может содержать маршрутизатор, коммутатор, базовую станцию или другое устройство, способствующее передаче информации от аппаратуры-источника 12 к аппаратуре-адресату 14.
В другом случае канал 16 может содержать носитель для хранения информации, сохраняющий кодированные видеоданные, генерируемые аппаратурой-источником 12. В этом случае аппаратура-адресат 14 может получать доступ к такому носителю информации посредством устройств для доступа к дискам или устройств для доступа к карточкам. Такой носитель для хранения информации может представлять собой какой-либо носитель для локального хранения и доступа к данным, такой как диск Блю-рей, диск DVD, диск CD-ROM, флэш-память или другой подходящий носитель для хранения цифровых данных, конфигурированный для хранения кодированных видеоданных.
В другом случае, канал 16 может содержать файловый сервер или другую промежуточную аппаратуру для сохранения данных, которая сохраняет кодированные видеоданные, генерируемые аппаратурой-источником 12. В этом случае аппаратура-адресат 14 может обратиться и получить доступ, посредством потоковой передачи или скачивания, к кодированным видеоданным, хранящимся на файловом сервере или в другой промежуточной аппаратуре для сохранения данных. Файловый сервер может представлять собой сервер такого типа, который способен сохранять кодированные видеоданные и передавать эти кодированные видеоданные аппаратуре-адресату 14. Один из примеров файлового спектра может представлять собой веб-сервер (например, связанный с веб-сайтом), сервер, работающий по протоколу передачи файлов (File Transfer Protocol (FTP)), присоединенную к сети аппаратуру для хранения данных (network-attached storage (NAS)) или локальный дисковод.
Аппаратура-адресат 14 может получать доступ к кодированным видеоданным через стандартные соединения для передачи данных (например, Интернет-соединение). К примерам разных типов соединений для передачи данных относятся радиоканал (например, соединение Wi-Fi), проводное соединение (например, цифровая абонентская линия (DSL) или кабельный модем) или сочетание таких типов соединений, позволяющее получить доступ к кодированным видеоданным, хранящимся на файловом сервере. Передача кодированных видеоданных от файлового сервера может представлять собой потоковую передачу, скачивание или сочетание передач этих типов.
Технология согласно настоящему изобретению не исчерпывается сценарием беспроводных приложений. Например, эта технология может быть использована для поддержки видео  кодирования и декодирования в следующих разнообразных мультимедийных приложениях: телевизионное вещание в эфире, передачи кабельного телевидения, передачи спутникового телевидения, потоковые передачи видео (например, через Интернет), кодирование видеоданных, записанных на носителе для хранения данных, декодирование видеоданных, записанных на носителе для хранения данных, или в других приложениях. В некоторых случаях, система 10 видео кодека может быть конфигурирована для поддержки передачи видео в одном направлении или в двух направлениях с целью поддержки таких приложений, как потоковая передача видео, воспроизведение видео, видео вещание и/или видео телефония.
В случае, показанном на фиг. 3, аппаратура-источник 12 содержит источник 18 видео, видео кодирующее устройство 20 и выходной интерфейс 22. В некоторых примерах выходной интерфейс 22 может содержать модулятор/демодулятор (модем) и/или передатчик. Источник 18 видео может содержать устройство для съемки (захвата) видео (например, видеокамеру), архив видео, содержащий видеоданные, снятые ранее, входной видео интерфейс, конфигурированный для приема видеоданных от провайдера видео контента и/или систему компьютерной графики, конфигурированную для генерации видеоданных, или сочетание указанных выше источников видеоданных.
Видео кодирующее устройство 20 может кодировать видеоданные от источника 18 видео. В некоторых случаях, аппаратура-источник 12 напрямую передает кодированные видеоданные аппаратуре-адресату 14 с использованием выходного интерфейса 22. Кодированные видеоданные могут быть также сохранены на носителе для хранения данных или на файловом сервере для более позднего доступа со стороны аппаратуры-адресата 14 с целью декодирования и/или воспроизведение.
В случае, показанном на фиг. 3, аппаратура-адресат 14 содержит входной интерфейс 28, видео декодирующее устройство 30 и дисплейное устройство 32. В некоторых случаях, входной интерфейс 28 содержит приемник и/или модем. Входной интерфейс 28 может принимать кодированные видеоданные по каналу 16. Дисплейное устройство 32 может быть интегрировано в аппаратуру-адресат 14 или может быть расположено вне аппаратуры-адресата 14. Обычно это дисплейное устройство 32 представляет декодированные видеоданные. Дисплейное устройство 32 может содержать разнообразную дисплейную аппаратуру, такую как жидкокристаллический дисплей (liquid crystal display (LCD)), плазменный дисплей, дисплей на органических светодиодах (organic light-emitting diode (OLED)) или дисплей какого-либо другого типа.
Видео кодирующее устройство 20 и видео декодирующее устройство 30 могут работать в соответствии со стандартом сжатия видео (например, стандартом высокоэффективного видео кодирования (High Efficiency Video Coding H.265)), и могут соответствовать тестовой модели стандарта HEVC (HM). Текстовое описание ITU-TH.265 (V3) (04/2015) стандарта H.265 было опубликовано 29 апреля 2015 г., может быть скачано по ссылке http://handle.itu.int/11.1002/1000/12455, и все содержание этого файла включено сюда посредством ссылки.
В качестве альтернативы, видео кодирующее устройство 20 и видео декодирующее устройство 30 могут работать в соответствии с какими-либо другими частными или промышленными стандартами. Совокупность таких стандартов содержит стандарты ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262, ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual, или ITU-T H.264 (также называемый ISO/IEC MPEG-4 AVC), и содержит расширения для масштабируемого видео кодирования (scalable video coding (SVC)) и для многокадрового видео кодирования (multi-view video coding (MVC)). Следует понимать, что технология настоящего изобретения не ограничивается каким-либо конкретным стандартом или технологией кодека.
В дополнение к этому, фиг. 3 представляет собой всего лишь один случай, а технология согласно настоящему изобретению может быть применена к приложениям видео кодека (например, однонаправленное видео кодирование или видео декодирование), которые совсем не обязательно содержат какую-либо передачу данных между аппаратурой кодирования и аппаратурой декодирования. В другом случае, вызывают данные из локального запоминающего устройства и передают эти данные через сеть в режиме потоковой передачи, либо с данными оперируют аналогичным образом. Аппаратура кодирования может кодировать данные и сохранять эти данные в запоминающем устройстве, и/или аппаратура декодирования может вызывать данные из запоминающего устройства и декодировать эти данные. Во многих случаях, кодирование и декодирование могут производиться несколькими устройствами, которые не осуществляют связь одно с другим, а только кодируют данные и записывают в запоминающем устройстве и/или вызывают данные из запоминающего устройства и декодируют эти данные.
Каждое устройство – видео кодирующее устройство 20 и видео декодирующее устройство 30, может быть реализовано в виде какой-либо одной из нескольких подходящих схем, таких как один или несколько микропроцессоров, цифровой процессор сигнала (digital signal processor (DSP)), специализированная интегральная схема (application-specific integrated circuit (ASIC)), программируемая пользователем вентильная матрица (field-programmable gate array (FPGA)), дискретное логическое устройство, аппаратура или сочетание перечисленных элементов. Если технология частично или полностью реализована с использованием загружаемого программного обеспечения, аппаратура может сохранять команды этого программного обеспечения на подходящем энергонезависимом читаемом компьютером носителе данных и может выполнять, с использованием одного или нескольких процессоров, команды этого программного обеспечения с целью реализации технологии согласно настоящему изобретению. Любой из перечисленных выше объектов (включая аппаратуру, программное обеспечение, сочетание аппаратуры и программного обеспечение и т.п.) могут рассматриваться в качестве одного или нескольких процессоров. Каждое из устройств – видео кодирующее устройство 20 и видео декодирующее устройство 30, могут быть включены в одно или несколько кодирующих устройств или декодирующих устройств, каждое из видео кодирующих устройств 20 и видео декодирующих устройств 30 может быть интегрировано в качестве составной части в объединенное кодирующее/декодирующее устройство (coder/decoder (codec (CODEC))) в составе другой аппаратуры.
Согласно настоящему изобретению обычно может быть указано, что видео кодирующее устройство 20 передает информацию другой аппаратуре (например, видео декодирующему устройству 30) с использованием сигнала. Термин «передача с использованием сигнала» обычно может относиться к синтаксическому элементу и/или представлять передачу кодированных видео данных. Эта передача может происходить в реальном времени или почти в реальном времени. В качестве альтернативы, такая связь может осуществляться в пределах некоторого промежутка времени, например, может происходить, когда синтаксический элемент сохранен на читаемом компьютером носителе для хранения данных с использованием кодированных двоичных данных в процессе кодирования. Этот синтаксический элемент может быть вызван аппаратурой декодирования в любой момент времени после сохранения на носителе данных.
Как показано на фиг. 4, один из вариантов настоящего изобретения предлагает способ кодирования изображения с использованием межкадрового прогнозирования. Конкретная процедура выглядит следующим образом.
Этап 401: Определение прогнозируемой информации движения для первого кодируемого блока, где прогнозируемая информация движения содержит предиктор вектора движения и прогнозируемую информацию опорного изображения, и эта прогнозируемая информация опорного изображения используется для представления прогнозируемого блока опорного изображения.
Первый кодируемый блок представляет собой текущий блок, подлежащий обработке и кодированию, предиктор вектора движения в составе прогнозируемой информации движения может представлять собой предиктор вектора движения в прямом направлении и/или предиктор вектора движения в обратном направлении, и прогнозируемая информация опорного изображения может представлять собой информацию индекса опорного кадра для прогнозируемого блока опорного изображения в прямом направлении и/или информацию индекса опорного кадра для прогнозируемого блока опорного изображения в обратном направлении.
Далее, прогнозируемый блок опорного изображения для первого кодируемого блока получают на основе предиктора вектора движения или прогнозируемой информации опорного изображения для первого кодируемого блока.
В качестве опции, прогнозируемая информация движения для первого кодируемого блока содержит предиктор вектора движения в прямом направлении, предиктор вектора движения в обратном направлении, порядковый номер картинки (picture order count (Picture Order Count, POC)), соответствующий прогнозируемому блоку опорного изображения в прямом направлении, и номер POC, соответствующий прогнозируемому блоку опорного изображения в обратном направлении; либо может содержать только предиктор вектора движения в прямом направлении и номер POC, соответствующий прогнозируемому блоку опорного изображения в прямом направлении; либо может содержать только предиктор вектора движения в обратном направлении и номер POC, соответствующий прогнозируемому блоку опорного изображения в обратном направлении.
В частности, способ определения прогнозируемой информации движения для первого кодируемого блока, ссылается на известный в технике способ определения прогнозируемой информации движения для текущего кодируемого блока.
При использовании объединенного режима межкадрового прогнозирования строят список кандидатов прогнозируемой информации движения на основе информации движения соседнего блока для первого кодируемого блока, и выбирают кандидата прогнозируемой информации движения из этого списка кандидатов прогнозируемой информации движения в качестве прогнозируемой информации движения для первого кодируемого блока. Список кандидатов информации движения содержит предиктор вектора движения, информацию индекса опорного кадра для блока опорного изображения и другую подобную информацию. Следует отметить, что предиктор вектора движения в этом режиме представляет собой величину вектора движения для соседнего блока.
При использовании необъединенного режима межкадрового прогнозирования строят список предикторов вектора движения на основе информации движения соседнего блока для первого кодируемого блока, и выбирают вектор движения из списка предикторов вектора движения в качестве предиктора вектора движения для первого кодируемого блока. Следует отметить, что предиктор вектора движения в этом режиме может представлять собой величину вектора движения соседнего блока, либо может представлять собой сумму величины вектора движения выбранного соседнего блока и разности векторов движения для первого кодируемого блока. Эта разность векторов движения представляет собой разность между вектором движения, полученным посредством выполнения оценки движения для первого кодируемого блока, и величиной вектора движения для выбранного соседнего блока.
Этап 402: Выполнение двунаправленного прогнозирования для первого кодируемого блока на основе прогнозируемой информации движения с целью получения первоначального прогнозируемого кодируемого блока для первого кодируемого блока, и получения первого прогнозируемого кодируемого блока для первого кодируемого блока на основе первоначального прогнозируемого кодируемого блока.
Далее, когда номер POC, соответствующий прогнозируемому блоку опорного изображения, не равен номеру POC для первого кодируемого блока, процедура двунаправленного прогнозирования содержит выполнение прогнозирования в прямом направлении и прогнозирования в обратном направлении для первого кодируемого блока на основе прогнозируемой информации движения. Когда номер POC, соответствующий прогнозируемому блоку опорного изображения, меньше номера POC для первого кодируемого блока, прогнозирование в прямом направлении осуществляют для первого кодируемого блока на основе прогнозируемой информации движения; или когда номер POC, соответствующий прогнозируемому блоку опорного изображения, больше номера POC для первого кодируемого блока, прогнозирование в обратном направлении осуществляют для первого кодируемого блока на основе прогнозируемой информации движения.
В частности, процедура выполнения двунаправленного прогнозирования для первого кодируемого блока на основе прогнозируемой информации движения с целью получения первоначального прогнозируемого кодируемого блока прямого направления для первого кодируемого блока содержит следующие операции.
S421. Выполнение прогнозирования в прямом направлении для первого кодируемого блока на основе прогнозируемой информации движения, конкретнее, выполнение прогнозирования в прямом направлении для первого кодируемого блока на основе прогнозируемой информации движения в прямом направлении с целью получения первоначального прогнозируемого кодируемого блока прямого направления для первого кодируемого блока.
В одном из возможных вариантов, прогнозирование в прямом направлении осуществляют для первого кодируемого блока на основе прогнозируемого блока опорного изображения в прямом направлении из состава прогнозируемой информации движения с целью получения первоначального прогнозируемого кодируемого блока прямого направления для первого кодируемого блока.
В другом возможном варианте, прогнозирование в прямом направлении осуществляют для первого кодируемого блока на основе предиктора вектора движения в прямом направлении из состава прогнозируемой информации движения с целью получения первоначального прогнозируемого кодируемого блока прямого направления для первого кодируемого блока.
S422. Выполнение прогнозирования в обратном направлении для первого кодируемого блока на основе прогнозируемой информации движения, конкретнее, выполнение прогнозирования в обратном направлении для первого кодируемого блока на основе прогнозируемой информации движения в обратном направлении с целью получения первоначального прогнозируемого кодируемого блока обратного направления для первого кодируемого блока.
В одном из возможных вариантов, прогнозирование в прямом направлении осуществляют для первого кодируемого блока на основе прогнозируемого блока опорного изображения в обратном направлении из состава прогнозируемой информации движения с целью получения первоначального прогнозируемого кодируемого блока прямого направления для первого кодируемого блока.
В другом возможном варианте, прогнозирование в прямом направлении выполняют для первого кодируемого блока на основе предиктора вектора движения в обратном направлении из состава прогнозируемой информации движения с целью получения первоначального прогнозируемого кодируемого блока прямого направления для первого кодируемого блока.
Первоначальный кодируемый прогнозируемый блок может представлять собой первоначальный кодируемый прогнозируемый блок прямого направления и/или первоначальный кодируемый прогнозируемый блок обратного направления.
Далее, процедура получения первого прогнозируемого кодируемого блока для первого кодируемого блока на основе первоначального прогнозируемого кодируемого блока имеет три следующих варианта.
В первом варианте, выполняют взвешенное суммирование первоначального прогнозируемого кодируемого блока прямого направления и первоначального прогнозируемого кодируемого блока обратного направления с целью получения первого прогнозируемого кодируемого блока для первого кодируемого блока.
В этом варианте, в качестве опции, используют среднюю величину первоначального прогнозируемого кодируемого блока прямого направления и первоначального прогнозируемого кодируемого блока обратного направления в качестве первого прогнозируемого кодируемого блока для первого кодируемого блока.
Во втором варианте, первоначальный кодируемый прогнозируемый блок прямого направления используется в качестве первого прогнозируемого кодируемого блока для первого кодируемого блока.
В третьем варианте, первоначальный кодируемый прогнозируемый блок обратного направления используется в качестве первого прогнозируемого кодируемого блока для первого кодируемого блока.
Этап 403: Выполнение оценки движения с первой точностью для прогнозируемого блока опорного изображения на основе предиктора вектора движения с целью получения по меньшей мере одного второго прогнозируемого кодируемого блока.
В некоторых вариантах, этот этап предназначен для осуществления поиска движения с первой точностью на основе прогнозируемого блока опорного изображения, где поисковую позицию для поиска движения определяют с использованием предиктора вектора движения и первой точности. В реализуемом варианте позицией поиска движения является позиция, находящаяся в окрестностях позиции, представленной предиктором вектора движения, и попадающая в зону охвата первой точности. Например, если позиция, указанная предиктором вектора движения, имеет координаты (1, 1), а первая точность соответствует точности 1/2 пикселя, позиция поиска движения ограничена контуром с координатами (1.5, 1), (1.5, 1.5), (1.5, –0.5), (1, 1), (1, 1.5), (1, –0.5), (–0.5, 1), (–0.5, 1.5) и (–0.5, –0.5).
В частности, процедура выполнения оценки движения с первой точностью для прогнозируемого блока опорного изображения на основе предиктора вектора движения с целью получения по меньшей мере одного второго прогнозируемого кодируемого блока содержит следующие операции:
S431. Выполнение поиска движения с первой точностью для прогнозируемого блока опорного изображения в прямом направлении на основе предиктора вектора движения в прямом направлении, и использование каждого найденного прогнозируемого кодируемого блока прямого направления в качестве второго прогнозируемого кодируемого блока прямого направления с целью получения по меньшей мере одного второго прогнозируемого кодируемого блока.
S432. Выполнение поиска движения с первой точностью для прогнозируемого блока опорного изображения в обратном направлении на основе предиктора вектора движения в обратном направлении, и использование каждого найденного прогнозируемого кодируемого блока обратного направления в качестве второго прогнозируемого кодируемого блока обратного направления с целью получения по меньшей мере одного второго прогнозируемого кодируемого блока, где второй кодируемый прогнозируемый блок может представлять собой второй кодируемый прогнозируемый блок прямого направления и второй кодируемый прогнозируемый блок обратного направления.
Первая точность может представлять собой точность до целого числа пикселей, точность до 1/2 пикселя, точность до 1/4 пикселя или точность до 1/8 пикселя. Этот перечень не является исчерпывающим.
Этап 404: Вычисление разности между первым прогнозируемым кодируемым блоком и каждым из вторых прогнозируемых кодируемых блоков, и использование предиктора вектора движения между первым кодируемым блоком и вторым прогнозируемым кодируемым блоком, которому соответствует наименьшая разность, в качестве целевого предиктора вектора движения для первого кодируемого блока.
В частности, процедура вычисления разности между первым прогнозируемым кодируемым блоком и каждым из вторых прогнозируемых кодируемых блоков, и использования предиктора вектора движения между первым кодируемым блоком и вторым прогнозируемым кодируемым блоком, которому соответствует наименьшая разность, в качестве целевого предиктора вектора движения для первого кодируемого блока содержит следующие операции:
S441. Сравнение разностей между вторыми кодируемыми прогнозируемыми блоками прямого направления и первым прогнозируемым кодируемым блоком, и использование целевого предиктора вектора движения в прямом направлении между первым кодируемым блоком и вторым прогнозируемым кодируемым блоком прямого направления, которому соответствует минимальная разность, в качестве целевого предиктора вектора движения.
S442. Сравнение разностей между вторыми кодируемыми прогнозируемыми блоками обратного направления и первым прогнозируемым кодируемым блоком, и использование целевого предиктора вектора движения в обратном направлении между первым кодируемым блоком и вторым прогнозируемым кодируемым блоком обратного направления, которому соответствует минимальная разность, в качестве целевого предиктора вектора движения, где целевой предиктор вектора движения может представлять собой целевой предиктор вектора движения в прямом направлении и/или целевой предиктор вектора движения в обратном направлении.
В частности, при сравнении разностей между вторыми кодируемыми прогнозируемыми блоками и первым прогнозируемым кодируемым блоком сумма абсолютных величин разностей пикселей в двух блоках изображения может быть использована в качестве величины разности между вторым прогнозируемым кодируемым блоком и первым прогнозируемым кодируемым блоком. В качестве опции, сумма квадратов величин разностей пикселей в двух блоках изображения может быть использована в качестве величины разности между вторым прогнозируемым кодируемым блоком и первым прогнозируемым кодируемым блоком. Способ сравнения разностей ничем специально не ограничен.
Этап 405: Выполнение двунаправленного прогнозирования для первого кодируемого блока на основе целевого предиктора вектора движения с целью получения третьего прогнозируемого кодируемого блока для первого кодируемого блока.
В частности, процедура выполнения двунаправленного прогнозирования для первого кодируемого блока на основе целевого предиктора вектора движения с целью получения третьего прогнозируемого кодируемого блока для первого кодируемого блока содержит следующие операции:
S451. Выполнение прогнозирования в прямом направлении для первого кодируемого блока на основе целевого предиктора вектора движения в прямом направлении с целью получения третьего прогнозируемого кодируемого блока прямого направления для первого кодируемого блока.
S452. Выполнение прогнозирования в обратном направлении для первого кодируемого блока на основе целевого предиктора вектора движения в обратном направлении с целью получения третьего прогнозируемого кодируемого блока обратного направления для первого кодируемого блока, где этот третий кодируемый прогнозируемый блок для первого кодируемого блока может представлять собой третий кодируемый прогнозируемый блок прямого направления и/или третий кодируемый прогнозируемый блок обратного направления.
Этап 406: Получение целевого прогнозируемого кодируемого блока для первого кодируемого блока на основе третьего прогнозируемого кодируемого блока, и кодирование первого кодируемого блока на основе целевого прогнозируемого кодируемого блока.
В частности, процедура получения целевого прогнозируемого кодируемого блока для первого кодируемого блока на основе третьего прогнозируемого кодируемого блока имеет следующие три варианта.
В первом варианте осуществляет взвешенное суммирование третьего прогнозируемого кодируемого блока прямого направления и третьего прогнозируемого кодируемого блока обратного направления с целью получения целевого прогнозируемого кодируемого блока для первого кодируемого блока.
В этом варианте, в качестве опции, среднюю величину третьего прогнозируемого кодируемого блока прямого направления и третьего прогнозируемого кодируемого блока обратного направления используют в качестве целевого прогнозируемого кодируемого блока для первого кодируемого блока.
Во втором варианте, третий кодируемый прогнозируемый блок прямого направления используют в качестве целевого прогнозируемого кодируемого блока для первого кодируемого блока.
В третьем варианте, третий кодируемый прогнозируемый блок обратного направления используют в качестве целевого прогнозируемого кодируемого блока для первого кодируемого блока.
Следует понимать, что в некоторых вариантах, флаговый бит может быть кодирован в составе информации более высокого уровня в кодовом потоке, такого как уровень среза, уровень кадра или уровень последовательности, так что этот флаговый бит используется для индикации, применяется ли способ кодирования изображения, показанный на фиг. 4.
Как показано на фиг. 5, один из вариантов настоящего изобретения предлагает способ декодирования изображения с использованием межкадрового прогнозирования. Конкретная процедура имеет следующий вид.
Этап 501: Определение прогнозируемой информации движения для первого декодируемого блока, где эта прогнозируемая информация движения содержит предиктор вектора движения и прогнозируемую информацию опорного изображения, и эта прогнозируемая информация опорного изображения используется для представления прогнозируемого блока опорного изображения.
Первый декодируемый блок представляет собой текущий подлежащий обработке блок, который должен быть построен на основе информации проанализированного кодового потока, предиктор вектора движения в составе прогнозируемой информации движения может представлять собой предиктор вектора движения в прямом направлении и/или предиктор вектора движения в обратном направлении, и эта прогнозируемая информация опорного изображения может представлять собой информацию индекса опорного кадра для прогнозируемого блока опорного изображения в прямом направлении и/или информацию индекса опорного кадра для прогнозируемого блока опорного изображения в обратном направлении.
Далее, прогнозируемый блок опорного изображения для первого кодируемого блока получают на основе предиктора вектора движения или прогнозируемой информации опорного изображения для первого декодируемого блока.
В качестве опции, прогнозируемая информация движения для первого декодируемого блока содержит предиктор вектора движения в прямом направлении, предиктор вектора движения в обратном направлении, порядковый номер картинки (POC), соответствующий прогнозируемому блоку опорного изображения в прямом направлении, и номер POC, соответствующий прогнозируемому блоку опорного изображения в обратном направлении; или может содержать только предиктор вектора движения в прямом направлении и номер POC, соответствующий прогнозируемому блоку опорного изображения в прямом направлении; или может содержать только предиктор вектора движения в обратном направлении и номер POC, соответствующий прогнозируемому блоку опорного изображения в обратном направлении.
В частности, способ определения прогнозируемой информации движения для первого декодируемого блока, ссылается на известный в технике способ определения прогнозируемой информации движения для текущего декодируемого блока.
При использовании объединенного режима межкадрового прогнозирования строят список кандидатов прогнозируемой информации движения на основе информации движения соседнего блока для первого декодируемого блока, и выбирают кандидата прогнозируемой информации движения из этого списка кандидатов прогнозируемой информации движения в качестве прогнозируемой информации движения для первого декодируемого блока. Список кандидатов информации движения содержит предиктор вектора движения, информацию индекса опорного кадра для блока опорного изображения и другую подобную информацию. Следует отметить, что предиктор вектора движения в этом режиме представляет собой величину вектора движения для соседнего блока.
При использовании необъединенного режима межкадрового прогнозирования строят список предикторов вектора движения на основе информации движения соседнего блока для первого декодируемого блока, и выбирают вектор движения из списка предикторов вектора движения в качестве предиктора вектора движения для первого декодируемого блока. Следует отметить, что предиктор вектора движения в этом режиме может представлять собой величину вектора движения соседнего блока, либо может представлять собой сумму величины вектора движения выбранного соседнего блока и разности векторов движения для первого декодируемого блока. Эта разность векторов движения может быть получена непосредственно с использованием декодирования.
Этап 502: Выполнение двунаправленного прогнозирования для первого декодируемого блока на основе прогнозируемой информации движения с целью получения первоначального прогнозируемого декодируемого блока для первого декодируемого блока, и получения первого прогнозируемого декодируемого блока для первого декодируемого блока на основе первоначального прогнозируемого декодируемого блока.
Далее, когда номер POC, соответствующий прогнозируемому блоку опорного изображения, не равен номеру POC для первого декодируемого блока, процедура двунаправленного прогнозирования содержит выполнение прогнозирования в прямом направлении и прогнозирования в обратном направлении для первого декодируемого блока на основе прогнозируемой информации движения. Когда номер POC, соответствующий прогнозируемому блоку опорного изображения, меньше номера POC для первого декодируемого блока, прогнозирование в прямом направлении осуществляют для первого декодируемого блока на основе прогнозируемой информации движения; или когда номер POC, соответствующий прогнозируемому блоку опорного изображения, больше номера POC для первого декодируемого блока, прогнозирование в обратном направлении осуществляют для первого декодируемого блока на основе прогнозируемой информации движения.
В частности, процедура выполнения двунаправленного прогнозирования для первого декодируемого блока на основе прогнозируемой информации движения с целью получения первоначального прогнозируемого декодируемого блока прямого направления для первого декодируемого блока содержит следующие операции.
S521. Выполнение прогнозирования в прямом направлении для первого декодируемого блока на основе прогнозируемой информации движения, конкретнее, выполнение прогнозирования в прямом направлении для первого декодируемого блока на основе прогнозируемой информации движения в прямом направлении с целью получения первоначального прогнозируемого декодируемого блока прямого направления для первого декодируемого блока.
В одном из возможных вариантов, прогнозирование в прямом направлении осуществляют для первого декодируемого блока на основе прогнозируемого блока опорного изображения в прямом направлении из состава прогнозируемой информации движения с целью получения первоначального прогнозируемого декодируемого блока прямого направления для первого декодируемого блока.
В другом возможном варианте, прогнозирование в прямом направлении осуществляют для первого декодируемого блока на основе предиктора вектора движения в прямом направлении из состава прогнозируемой информации движения с целью получения первоначального прогнозируемого декодируемого блока прямого направления для первого декодируемого блока.
S522. Выполнение прогнозирования в обратном направлении для первого декодируемого блока на основе прогнозируемой информации движения, конкретнее, выполнение прогнозирования в обратном направлении для первого декодируемого блока на основе прогнозируемой информации движения в обратном направлении с целью получения первоначального прогнозируемого декодируемого блока обратного направления для первого декодируемого блока.
В одном из возможных вариантов, прогнозирование в прямом направлении осуществляют для первого декодируемого блока на основе прогнозируемого блока опорного изображения в обратном направлении из состава прогнозируемой информации движения с целью получения первоначального прогнозируемого декодируемого блока прямого направления для первого декодируемого блока.
В другом возможном варианте, прогнозирование в прямом направлении выполняют для первого декодируемого блока на основе предиктора вектора движения в обратном направлении из состава прогнозируемой информации движения с целью получения первоначального прогнозируемого декодируемого блока прямого направления для первого декодируемого блока.
Первоначальный декодируемый прогнозируемый блок может представлять собой первоначальный декодируемый прогнозируемый блок прямого направления и/или первоначальный декодируемый прогнозируемый блок обратного направления.
Далее, процедура получения первого прогнозируемого декодируемого блока для первого декодируемого блока на основе первоначального прогнозируемого декодируемого блока имеет три следующих варианта.
В первом варианте, выполняют взвешенное суммирование первоначального прогнозируемого декодируемого блока прямого направления и первоначального прогнозируемого кодируемого блока обратного направления с целью получения первого прогнозируемого декодируемого блока для первого декодируемого блока.
В этом варианте, в качестве опции, используют среднюю величину первоначального прогнозируемого декодируемого блока прямого направления и первоначального прогнозируемого декодируемого блока обратного направления в качестве первого прогнозируемого декодируемого блока для первого декодируемого блока.
Во втором варианте, первоначальный декодируемый прогнозируемый блок прямого направления используется в качестве первого прогнозируемого декодируемого блока для первого декодируемого блока.
В третьем варианте, первоначальный декодируемый прогнозируемый блок обратного направления используется в качестве первого прогнозируемого декодируемого блока для первого декодируемого блока.
Этап 503: Выполнение оценки движения с первой точностью для прогнозируемого блока опорного изображения на основе предиктора вектора движения с целью получения по меньшей мере одного второго прогнозируемого декодируемого блока
В некоторых вариантах, этот этап предназначен для осуществления поиска движения с первой точностью на основе прогнозируемого блока опорного изображения, где поисковую позицию для поиска движения определяют с использованием предиктора вектора движения и первой точности. В реализуемом варианте позицией поиска движения является позиция, находящаяся в окрестностях позиции, представленной предиктором вектора движения, и попадающая в зону охвата первой точности. Например, если позиция, указанная предиктором вектора движения, имеет координаты (1, 1), а первая точность соответствует точности 1/2 пикселя, позиция поиска движения ограничена контуром с координатами (1.5, 1), (1.5, 1.5), (1.5, –0.5), (1, 1), (1, 1.5), (1, –0.5), (–0.5, 1), (–0.5, 1.5) и (–0.5, –0.5).
В частности, процедура выполнения оценки движения с первой точностью для прогнозируемого блока опорного изображения на основе предиктора вектора движения с целью получения по меньшей мере одного второго прогнозируемого декодируемого блока содержит следующие операции:
S531. Выполнение поиска движения с первой точностью для прогнозируемого блока опорного изображения в прямом направлении на основе предиктора вектора движения в прямом направлении, и использование каждого найденного прогнозируемого декодируемого блока прямого направления в качестве второго прогнозируемого декодируемого блока прямого направления с целью получения по меньшей мере одного второго прогнозируемого декодируемого блока.
S532. Выполнение поиска движения с первой точностью для прогнозируемого блока опорного изображения в обратном направлении на основе предиктора вектора движения в обратном направлении, и использование каждого найденного прогнозируемого кодируемого блока обратного направления в качестве второго прогнозируемого декодируемого блока обратного направления с целью получения по меньшей мере одного второго прогнозируемого декодируемого блока, где второй декодируемый прогнозируемый блок может представлять собой второй декодируемый прогнозируемый блок прямого направления и второй декодируемый прогнозируемый блок обратного направления.
Первая точность может представлять собой точность до целого числа пикселей, точность до 1/2 пикселя, точность до 1/4 пикселя или точность до 1/8 пикселя. Этот перечень не является исчерпывающим.
Этап 504: Вычисление разности между первым прогнозируемым декодируемым блоком и каждым из вторых прогнозируемых декодируемых блоков, и использование предиктора вектора движения между первым декодируемым блоком и вторым прогнозируемым декодируемым блоком, которому соответствует наименьшая разность, в качестве целевого предиктора вектора движения для первого декодируемого блока.
В частности, процедура вычисления разности между первым прогнозируемым декодируемым блоком и каждым из вторых прогнозируемых декодируемых блоков, и использования предиктора вектора движения между первым декодируемым блоком и вторым прогнозируемым декодируемым блоком, которому соответствует наименьшая разность, в качестве целевого предиктора вектора движения для первого декодируемого блока содержит следующие операции:
S541. Сравнение разностей между вторыми декодируемыми прогнозируемыми блоками прямого направления и первым прогнозируемым декодируемым блоком, и использование целевого предиктора вектора движения в прямом направлении между первым декодируемым блоком и вторым прогнозируемым декодируемым блоком прямого направления, которому соответствует минимальная разность, в качестве целевого предиктора вектора движения.
S542. Сравнение разностей между вторыми декодируемыми прогнозируемыми блоками обратного направления и первым прогнозируемым декодируемым блоком, и использование целевого предиктора вектора движения в обратном направлении между первым декодируемым блоком и вторым прогнозируемым декодируемым блоком обратного направления, которому соответствует минимальная разность, в качестве целевого предиктора вектора движения, где целевой предиктор вектора движения может представлять собой целевой предиктор вектора движения в прямом направлении и/или целевой предиктор вектора движения в обратном направлении.
В частности, при сравнении разностей между вторыми декодируемыми прогнозируемыми блоками и первым прогнозируемым декодируемым блоком сумма абсолютных величин разностей пикселей в двух блоках изображения может быть использована в качестве величины разности между вторым прогнозируемым декодируемым блоком и первым прогнозируемым декодируемым блоком. В качестве опции, сумма квадратов величин разностей пикселей в двух блоках изображения может быть использована в качестве величины разности между вторым прогнозируемым декодируемым блоком и первым прогнозируемым декодируемым блоком. Способ сравнения разностей ничем специально не ограничен.
Этап 505: Выполнение двунаправленного прогнозирования для первого декодируемого блока на основе целевого предиктора вектора движения с целью получения третьего прогнозируемого декодируемого блока для первого декодируемого блока.
В частности, процедура выполнения двунаправленного прогнозирования для первого декодируемого блока на основе целевого предиктора вектора движения с целью получения третьего прогнозируемого декодируемого блока для первого декодируемого блока содержит следующие операции:
S451. Выполнение прогнозирования в прямом направлении для первого декодируемого блока на основе целевого предиктора вектора движения в прямом направлении с целью получения третьего прогнозируемого декодируемого блока прямого направления для первого декодируемого блока.
S452. Выполнение прогнозирования в обратном направлении для первого декодируемого блока на основе целевого предиктора вектора движения в обратном направлении с целью получения третьего прогнозируемого декодируемого блока обратного направления для первого декодируемого блока, где этот третий декодируемый прогнозируемый блок для первого декодируемого блока может представлять собой третий декодируемый прогнозируемый блок прямого направления и/или третий декодируемый прогнозируемый блок обратного направления.
Этап 506: Получение целевого прогнозируемого декодируемого блока для первого декодируемого блока на основе третьего прогнозируемого декодируемого блока, и декодирование первого декодируемого блока на основе целевого прогнозируемого декодируемого блока.
В частности, процедура получения целевого прогнозируемого декодируемого блока для первого декодируемого блока на основе третьего прогнозируемого декодируемого блока имеет следующие три варианта.
В первом варианте осуществляют взвешенное суммирование третьего прогнозируемого декодируемого блока прямого направления и третьего прогнозируемого декодируемого блока обратного направления с целью получения целевого прогнозируемого декодируемого блока для первого декодируемого блока.
В этом варианте, в качестве опции, среднюю величину третьего прогнозируемого декодируемого блока прямого направления и третьего прогнозируемого декодируемого блока обратного направления используют в качестве целевого прогнозируемого декодируемого блока для первого декодируемого блока.
Во втором варианте, третий декодируемый прогнозируемый блок прямого направления используют в качестве целевого прогнозируемого декодируемого блока для первого декодируемого блока.
В третьем варианте, третий декодируемый прогнозируемый блок обратного направления используют в качестве целевого прогнозируемого декодируемого блока для первого декодируемого блока.
Следует понимать, что в некоторых вариантах, соответствующий стороне кодирующего устройства флаговый бит может быть сначала проанализирован в составе информации более высокого уровня в кодовом потоке, такого как уровень среза, уровень кадра или уровень последовательности, так что этот флаговый бит используется для индикации, применяется ли способ декодирования изображения, показанный на фиг. 5.
Далее способ кодирования, показанный на фиг. 4, и способ декодирования, показанный на фиг. 5, будут описаны подробно с использованием ряда конкретных вариантов.
Вариант 1
Как показано на фиг. 6A и фиг. 6B, текущий декодируемый блок является первым декодируемым блоком, а чертежи иллюстрируют получение прогнозируемой информации движения для текущего декодируемого блока. Предполагается, что предикторы вектора движения в прямом и обратном направлениях для этого текущего декодируемого блока равны соответственно (–10, 4) и (5, 6), номер POC, соответствующий текущему декодируемому блоку, равен 4, номер POC, соответствующий прогнозируемому блоку опорного изображения в прямом направлении, равен 2, и номер POC, соответствующий прогнозируемому блоку опорного изображения в обратном направлении, равен 6.
Прогнозирование в прямом направлении и прогнозирование в обратном направлении по отдельности выполняют для текущего декодируемого блока с целью получения первоначального прогнозируемого декодируемого блока прямого направления (Forward Prediction Block, FPB) и первоначального прогнозируемого декодируемого блока обратного направления (Backward Prediction Block, BPB) для текущего декодируемого блока, и предполагается, что первоначальный декодируемый прогнозируемый блок прямого направления и первоначальный декодируемый прогнозируемый блок обратного направления обозначены соответственно FPB 1 и BPB 1. Далее осуществляют взвешенное суммирование блока FPB 1 и блока BPB 1 с целью получения первого прогнозируемого декодируемого блока (Decoding Prediction Block, DPB) для текущего декодируемого блока, и предполагается, что этот первый декодируемый прогнозируемый блок обозначен DPB 1.
Величины (–10, 4) и (5, 6) используют в качестве опорных входных данных для предикторов вектора движения в прямом и обратном направлениях, и по отдельности выполняют поиск движения с первой точностью для прогнозируемого блока опорного изображения в прямом направлении и прогнозируемого блока опорного изображения в обратном направлении. В этом случае первая точность представляет собой точность до 1/2 пикселя в диапазоне 1-пиксель. Первый декодируемый прогнозируемый блок DPB 1 используют в качестве опоры. Разности между этим первым прогнозируемым декодируемым блоком DPB 1 и каждым из соответствующих новых прогнозируемых декодируемых блоков прямого и обратного направления, найденных в результате поиска движения, сравнивают для получения предикторов вектора движения в прямом и обратном направлениях, соответствующих новому декодируемому прогнозируемому блоку, имеющему наименьшую разность относительно блока DPB 1, так что эти найденные предикторы будут служить целевыми предикторами вектора движения. Предполагается, что эти предикторы вектора движения в прямом и обратном направлениях равны соответственно (–11, 4) и (6, 6).
Целевые предикторы вектора движения обновляют до (–11, 4) и (6, 6). В дополнение к этому, выполняют прогнозирование в прямом направлении и прогнозирование в обратном направлении для первого декодируемого блока на основе этих целевых предикторов вектора движения, и осуществляют взвешенное суммирование полученных новых прогнозируемого декодируемого блока прямого направления и прогнозируемого декодируемого блока обратного направления с целью получения целевого прогнозируемого декодируемого блока. Предполагается, что целевой декодируемый прогнозируемый блок обозначен DPB 2, и декодируемый прогнозируемый блок для текущего декодируемого блока обновляют до этого блока DPB 2.
Следует отметить, что когда поиск движения с первой точностью осуществляется для прогнозируемого блока опорного изображения в прямом направлении и прогнозируемого блока опорного изображения в обратном направлении, первая точность может представлять собой какую-либо заданную точность, например, точность до целого числа пикселей, точность до 1/2 пикселя, точность до 1/4 пикселя или точность до 1/8 пикселя.
Вариант 2
Как показано на фиг. 6A и фиг. 6B, текущий кодируемый блок является первым кодируемым блоком, а чертежи иллюстрируют получение прогнозируемой информации движения для текущего кодируемого блока. Предполагается, что предикторы вектора движения в прямом и обратном направлениях для этого текущего кодируемого блока равны соответственно (–10, 4) и (5, 6), номер POC, соответствующий текущему декодируемому блоку, равен 4, номер POC, соответствующий прогнозируемому блоку опорного изображения в прямом направлении, равен 2, и номер POC, соответствующий прогнозируемому блоку опорного изображения в обратном направлении, равен 6.
Прогнозирование в прямом направлении и прогнозирование в обратном направлении по отдельности выполняют для текущего кодируемого блока с целью получения первоначального прогнозируемого кодируемого блока прямого направления и первоначального прогнозируемого кодируемого блока обратного направления для текущего кодируемого блока, и предполагается, что первоначальный кодируемый прогнозируемый блок прямого направления и первоначальный кодируемый прогнозируемый блок обратного направления обозначены соответственно FPB 1 и BPB 1. Далее осуществляют взвешенное суммирование блока FPB 1 и блока BPB 1 с целью получения первого прогнозируемого кодируемого блока для текущего кодируемого блока, и предполагается, что этот первый кодируемый прогнозируемый блок обозначен DPB 1.
Величины (–10, 4) и (5, 6) используют в качестве опорных входных данных для предикторов вектора движения в прямом и обратном направлениях, и по отдельности выполняют поиск движения с первой точностью для прогнозируемого блока опорного изображения в прямом направлении и прогнозируемого блока опорного изображения в обратном направлении. В этом случае первая точность представляет собой точность до 1/2 пикселя в диапазоне 1-пиксель. Первый кодируемый прогнозируемый блок DPB 1 используют в качестве опоры. Разности между этим первым прогнозируемым кодируемым блоком DPB 1 и каждым из соответствующих новых прогнозируемых кодируемых блоков прямого и обратного направления, найденных в результате поиска движения, сравнивают для получения предикторов вектора движения в прямом и обратном направлениях, соответствующих новому кодируемому прогнозируемому блоку, имеющему наименьшую разность относительно блока DPB 1, так что эти найденные предикторы будут служить целевыми предикторами вектора движения. Предполагается, что эти предикторы вектора движения в прямом и обратном направлениях равны соответственно (–11, 4) и (6, 6).
Целевые предикторы вектора движения обновляют до (–11, 4) и (6, 6). В дополнение к этому, выполняют прогнозирование в прямом направлении и прогнозирование в обратном направлении для первого кодируемого блока на основе этих целевых предикторов вектора движения, и осуществляют взвешенное суммирование полученных новых прогнозируемого кодируемого блока прямого направления и прогнозируемого кодируемого блока обратного направления с целью получения целевого прогнозируемого кодируемого блока. Предполагается, что целевой кодируемый прогнозируемый блок обозначен DPB 2, и кодируемый прогнозируемый блок для текущего кодируемого блока обновляют до этого блока DPB 2.
Следует отметить, что когда поиск движения с первой точностью осуществляется для прогнозируемого блока опорного изображения в прямом направлении и прогнозируемого блока опорного изображения в обратном направлении, первая точность может представлять собой какую-либо заданную точность, например, точность до целого числа пикселей, точность до 1/2 пикселя, точность до 1/4 пикселя или точность до 1/8 пикселя.
Вариант 3
Как показано на фиг. 7, текущий декодируемый блок является первым декодируемым блоком, а чертежи иллюстрируют получение прогнозируемой информации движения для текущего декодируемого блока. Предполагается, что предиктор вектора движения в прямом направлении для этого текущего декодируемого блока равен (–21, 18), номер POC, соответствующий текущему декодируемому блоку, равен 4, и номер POC, соответствующий прогнозируемому блоку опорного изображения в прямом направлении, равен 2.
Прогнозирование в прямом направлении выполняют для текущего декодируемого блока с целью получения первоначального прогнозируемого декодируемого блока прямого направления для текущего декодируемого блока, и предполагается, что первоначальный декодируемый прогнозируемый блок прямого направления обозначен FPB 1. В этом случае блок FPB 1 используется в качестве первого прогнозируемого декодируемого блока для текущего декодируемого блока, и этот первый декодируемый прогнозируемый блок обозначен DPB 1.
Величину (–21, 18) используют в качестве опорных входных данных для предиктора вектора движения в прямом направлении, и выполняют поиск движения с первой точностью для прогнозируемого блока опорного изображения в прямом направлении. В этом случае первая точность представляет собой точность до 1 пикселя в диапазоне 5-пикселей. Первый декодируемый прогнозируемый блок DPB 1 используют в качестве опоры. Разности между этим первым прогнозируемым декодируемым блоком DPB 1 и соответствующими новыми декодируемыми прогнозируемыми блоками обратного направления, найденными в результате поиска движения, сравнивают для получения предиктора вектора движения в прямом направлении, соответствующего новому декодируемому прогнозируемому блоку, имеющему наименьшую разность относительно блока DPB 1, так что этот найденный предиктор будут служить целевым предиктором вектора движения. Предполагается, что этот предиктор вектора движения в прямом направлении равен (–19, 19).
Целевой предиктор вектора движения обновляют до (–19, 19). В дополнение к этому, выполняют прогнозирование в прямом направлении для первого декодируемого блока на основе этого целевого предиктора вектора движения, и полученный новый декодируемый прогнозируемый блок прямого направления используют в качестве целевого прогнозируемого декодируемого блока. Предполагается, что целевой декодируемый прогнозируемый блок обозначен DPB 2, и декодируемый прогнозируемый блок для текущего декодируемого блока обновляют до этого блока DPB 2.
Следует отметить, что когда поиск движения с первой точностью осуществляется для прогнозируемого блока опорного изображения в прямом направлении и прогнозируемого блока опорного изображения в обратном направлении, первая точность может представлять собой какую-либо заданную точность, например, точность до целого числа пикселей, точность до 1/2 пикселя, точность до 1/4 пикселя или точность до 1/8 пикселя.
Вариант 4
Как показано на фиг. 7, текущий кодируемый блок является первым кодируемым блоком, а чертежи иллюстрируют получение прогнозируемой информации движения для текущего кодируемого блока. Предполагается, что предиктор вектора движения в прямом направлении для этого текущего кодируемого блока равен (–21, 18), номер POC, соответствующий текущему кодируемому блоку, равен 4, и номер POC, соответствующий прогнозируемому блоку опорного изображения в прямом направлении, равен 2.
Прогнозирование в прямом направлении выполняют для текущего кодируемого блока с целью получения первоначального прогнозируемого кодируемого блока прямого направления для текущего кодируемого блока, и предполагается, что первоначальный кодируемый прогнозируемый блок прямого направления обозначен FPB 1. В этом случае блок FPB 1 используется в качестве первого прогнозируемого кодируемого блока для текущего кодируемого блока, и этот первый кодируемый прогнозируемый блок обозначен DPB 1.
Величину (–21, 18) используют в качестве опорных входных данных для предиктора вектора движения в прямом направлении, и выполняют поиск движения с первой точностью для прогнозируемого блока опорного изображения в прямом направлении. В этом случае первая точность представляет собой точность до 1 пикселя в диапазоне 5-пикселей. Первый кодируемый прогнозируемый блок DPB 1 используют в качестве опоры. Разности между этим первым прогнозируемым кодируемым блоком DPB 1 и соответствующими новыми кодируемыми прогнозируемыми блоками обратного направления, найденными в результате поиска движения, сравнивают для получения предиктора вектора движения в прямом направлении, соответствующего новому кодируемому прогнозируемому блоку, имеющему наименьшую разность относительно блока DPB 1, так что этот найденный предиктор будут служить целевым предиктором вектора движения. Предполагается, что этот предиктор вектора движения в прямом направлении равен (–19, 19).
Целевой предиктор вектора движения обновляют до (–19, 19). В дополнение к этому, выполняют прогнозирование в прямом направлении для первого кодируемого блока на основе этого целевого предиктора вектора движения, и полученный новый кодируемый прогнозируемый блок прямого направления используют в качестве целевого прогнозируемого кодируемого блока. Предполагается, что целевой кодируемый прогнозируемый блок обозначен DPB 2, и кодируемый прогнозируемый блок для текущего кодируемого блока обновляют до этого блока DPB 2.
Следует отметить, что когда поиск движения с первой точностью осуществляется для прогнозируемого блока опорного изображения в прямом направлении и прогнозируемого блока опорного изображения в обратном направлении, первая точность может представлять собой какую-либо заданную точность, например, точность до целого числа пикселей, точность до 1/2 пикселя, точность до 1/4 пикселя или точность до 1/8 пикселя.
Вариант 5
Как показано на фиг. 8A, фиг. 8B, фиг. 8C и фиг. 8D, текущий кодируемый блок является первым кодируемым блоком, а чертежи иллюстрируют получение прогнозируемой информации движения для текущего кодируемого блока. Предполагается, что предикторы вектора движения в прямом и обратном направлениях для этого текущего кодируемого блока равны соответственно (–6, 12) и (8, 4), номер POC, соответствующий текущему кодируемому блоку, равен 8, номер POC, соответствующий прогнозируемому блоку опорного изображения в прямом направлении, равен 4, и номер POC, соответствующий прогнозируемому блоку опорного изображения в обратном направлении, равен 12.
Прогнозирование в прямом направлении и прогнозирование в обратном направлении по отдельности выполняют для текущего кодируемого блока с целью получения первоначального прогнозируемого кодируемого блока прямого направления и первоначального прогнозируемого кодируемого блока обратного направления для текущего кодируемого блока, и предполагается, что первоначальный кодируемый прогнозируемый блок прямого направления и первоначальный кодируемый прогнозируемый блок обратного направления обозначены соответственно FPB 1 и BPB 1. Далее осуществляют взвешенное суммирование блока FPB 1 и блока BPB 1 с целью получения первого прогнозируемого кодируемого блока для текущего кодируемого блока, и предполагается, что этот первый кодируемый прогнозируемый блок обозначен DPB 1.
Величины (–6, 12) и (8, 4) используют в качестве опорных входных данных для предикторов вектора движения в прямом и обратном направлениях, и по отдельности выполняют поиск движения с первой точностью для прогнозируемого блока опорного изображения в прямом направлении и прогнозируемого блока опорного изображения в обратном направлении. Первый кодируемый прогнозируемый блок DPB 1 используют в качестве опоры. Разности между этим первым прогнозируемым кодируемым блоком DPB 1 и каждым из соответствующих новых прогнозируемых кодируемых блоков прямого и обратного направления, найденных в результате поиска движения, сравнивают для получения предикторов вектора движения в прямом и обратном направлениях, соответствующих новому кодируемому прогнозируемому блоку, имеющему наименьшую разность относительно блока DPB 1, так что эти найденные предикторы будут служить целевыми предикторами вектора движения. Предполагается, что эти предикторы вектора движения в прямом и обратном направлениях равны соответственно (–11, 4) и (6, 6).
Целевые предикторы вектора движения обновляют до (–11, 4) и (6, 6). В дополнение к этому, выполняют прогнозирование в прямом направлении и прогнозирование в обратном направлении для первого кодируемого блока на основе этих целевых предикторов вектора движения, и осуществляют взвешенное суммирование полученных новых прогнозируемого кодируемого блока прямого направления и прогнозируемого кодируемого блока обратного направления с целью получения целевого прогнозируемого кодируемого блока. Предполагается, что целевой кодируемый прогнозируемый блок обозначен DPB 2, и кодируемый прогнозируемый блок для текущего кодируемого блока обновляют до этого блока DPB 2.
После этого, величины (–11, 4) и (6, 6) используют в качестве опорных входных данных для предикторов вектора движения в прямом и обратном направлениях, и по отдельности выполняют поиск движения с первой точностью для прогнозируемого блока опорного изображения в прямом направлении и прогнозируемого блока опорного изображения в обратном направлении. Кодируемый прогнозируемый блок DPB 2 для текущего кодируемого блока используют в качестве опоры. Разности между этим первым прогнозируемым кодируемым блоком DPB 2 и каждым из соответствующих новых прогнозируемых кодируемых блоков прямого и обратного направления, найденных в результате поиска движения, сравнивают для получения предикторов вектора движения в прямом и обратном направлениях, соответствующих новому кодируемому прогнозируемому блоку, имеющему наименьшую разность относительно блока DPB 2, так что эти найденные предикторы будут служить целевыми предикторами вектора движения. Предполагается, что эти предикторы вектора движения в прямом и обратном направлениях равны соответственно (–7, 11) и (6, 5).
После этого, обновляют целевые предикторы вектора движения до (–7, 11) и (6, 5). В дополнение к этому, прогнозирование в прямом направлении и прогнозирование в обратном направлении осуществляют для первого кодируемого блока на основе самых последних по времени целевых предикторов вектора движения, и осуществляют взвешенное суммирование полученных новых прогнозируемого кодируемого блока прямого направления и прогнозируемого кодируемого блока обратного направления с целью получения целевого прогнозируемого кодируемого блока. Предполагается, что целевой кодируемый прогнозируемый блок обозначен DPB 3, и кодируемый прогнозируемый блок для текущего кодируемого блока обновляют до этого блока DPB 3.
Кроме того, целевой предиктор вектора движения может быть затем обновлен в соответствии с изложенным выше способом, причем число таких повторений не ограничено.
Следует отметить, что когда поиск движения с первой точностью осуществляется для прогнозируемого блока опорного изображения в прямом направлении и прогнозируемого блока опорного изображения в обратном направлении, первая точность может представлять собой какую-либо заданную точность, например, точность до целого числа пикселей, точность до 1/2 пикселя, точность до 1/4 пикселя или точность до 1/8 пикселя.
Вариант 6
В этом варианте способ получения предиктора вектора движения в процессе кодирования в необъединенном режиме с использованием межкадрового прогнозирования отличается от способа, изложенного для предшествующих вариантов. Вариант 6 подробно описывает процедуру декодирования в необъединенном режиме с использованием межкадрового прогнозирования. Аналогично, процесс кодирования и процесс декодирования в необъединенном режиме с использованием межкадрового прогнозирования подобны, так что подробности здесь вновь описаны не будут.
Как показано на фиг. 9A и фиг. 9B, текущий декодируемый блок является первым декодируемым блоком, а чертежи иллюстрируют получение прогнозируемой информации движения для текущего декодируемого блока. Предполагается, что предикторы вектора движения в прямом и обратном направлениях для этого текущего кодируемого блока равны соответственно (–10, 4) и (5, 6), разности векторов движения в прямом и обратном направлениях равны соответственно (–2, 1) и (1, 1), номер POC, соответствующий текущему декодируемому блоку, равен 4, номер POC, соответствующий прогнозируемому блоку опорного изображения в прямом направлении, равен 2, и номер POC, соответствующий прогнозируемому блоку опорного изображения в обратном направлении, равен 6.
Прогнозирование в прямом направлении и прогнозирование в обратном направлении по отдельности выполняют для текущего декодируемого блока с целью получения первоначального прогнозируемого декодируемого блока прямого направления (-FPB) и первоначального прогнозируемого декодируемого блока обратного направления (BPB) для текущего декодируемого блока, и предполагается, что первоначальный декодируемый прогнозируемый блок прямого направления и первоначальный декодируемый прогнозируемый блок обратного направления обозначены соответственно FPB 1 и BPB 1. Далее осуществляют взвешенное суммирование блока FPB 1 и блока BPB 1 с целью получения первого прогнозируемого декодируемого блока (DPB) для текущего декодируемого блока, и предполагается, что этот первый декодируемый прогнозируемый блок обозначен DPB 1.
Величины предикторов вектора движения в прямом и обратном направлениях, равные соответственно (–10, 4) + (–2, 1) = (–12, 5) и (5, 6) + (1, 1) = (6, 7), используют в качестве опорных входных данных для предикторов вектора движения в прямом и обратном направлениях, и по отдельности выполняют поиск движения с первой точностью для прогнозируемого блока опорного изображения в прямом направлении и прогнозируемого блока опорного изображения в обратном направлении. В этом случае первая точность представляет собой точность до 1/4 пикселя в диапазоне 1-пиксель. Первый декодируемый прогнозируемый блок DPB 1 используют в качестве опоры. Разности между этим первым прогнозируемым декодируемым блоком DPB 1 и каждым из соответствующих новых прогнозируемых декодируемых блоков прямого и обратного направления, найденных в результате поиска движения, сравнивают для получения предикторов вектора движения в прямом и обратном направлениях, соответствующих новому декодируемому прогнозируемому блоку, имеющему наименьшую разность относительно блока DPB 1, так что эти найденные предикторы будут служить целевыми предикторами вектора движения. Предполагается, что эти предикторы вектора движения в прямом и обратном направлениях равны соответственно (–11, 4) и (6, 6).
Целевые предикторы вектора движения обновляют до (–11, 4) и (6, 6). В дополнение к этому, выполняют прогнозирование в прямом направлении и прогнозирование в обратном направлении для первого декодируемого блока на основе этих целевых предикторов вектора движения, и осуществляют взвешенное суммирование полученных новых прогнозируемого декодируемого блока прямого направления и прогнозируемого декодируемого блока обратного направления с целью получения целевого прогнозируемого декодируемого блока. Предполагается, что целевой декодируемый прогнозируемый блок обозначен DPB 2, и декодируемый прогнозируемый блок для текущего декодируемого блока обновляют до этого блока DPB 2.
Следует отметить, что когда поиск движения с первой точностью осуществляется для прогнозируемого блока опорного изображения в прямом направлении и прогнозируемого блока опорного изображения в обратном направлении, первая точность может представлять собой какую-либо заданную точность, например, точность до целого числа пикселей, точность до 1/2 пикселя, точность до 1/4 пикселя или точность до 1/8 пикселя.
В заключение, рассмотренные выше способы кодирования и декодирования могут быть применены ко всем процессам двунаправленного прогнозирования в ходе кодирования и декодирования видеоизображения, и обновленные предиктор вектора движения и кодируемые и декодируемые прогнозируемые блоки могут быть применены ко всем процессам кодирования и декодирования видеоизображения. Система кодека получает текущие кодируемые и декодируемые прогнозируемые блоки на основе прогнозируемой информации движения для текущих кодируемых и декодируемых блоков; осуществляет поиск движения на основе предиктора вектора движения и прогнозируемого блок опорного изображения с целью получения новых кодируемых и прогнозируемых декодируемых блоков; и обновляет предиктор вектора движения и кодируемые и декодируемые прогнозируемые блоки для текущих кодируемых и декодируемых блоков посредством сравнения разностей с текущими кодируемыми и декодируемыми прогнозируемыми блоками, чтобы повысить точность определения движения.
Согласно приведенным выше вариантам, как показано на фиг. 10, один из вариантов настоящего изобретения предлагает аппаратуру 1000 для кодирования изображения с использованием межкадрового прогнозирования. Как показано на фиг. 10, аппаратура 1000 содержит решающий модуль 1001, процессорный модуль 1002 и кодирующий модуль 1003.
Решающий модуль 1001 конфигурирован для определения прогнозируемой информации движения для первого кодируемого блока, где прогнозируемая информация движения содержит предиктор вектора движения и прогнозируемую информацию опорного изображения, и эта прогнозируемая информация опорного изображения используется для представления прогнозируемого блока опорного изображения.
Процессорный модуль 1002 конфигурирован для: выполнения двунаправленного прогнозирования для первого кодируемого блока на основе прогнозируемой информации движения с целью получения первоначального прогнозируемого кодируемого блока для первого кодируемого блока, и получения первого прогнозируемого кодируемого блока для первого кодируемого блока на основе первоначального прогнозируемого кодируемого блока; выполнения поиска движения с первой точностью для прогнозируемого блока опорного изображения с целью получения по меньшей мере одного второго прогнозируемого кодируемого блока, где поисковую позицию для поиска движения определяют с использованием предиктора вектора движения и первой точности; вычисления разности между первым прогнозируемым кодируемым блоком и каждым из вторых прогнозируемых кодируемых блоков, и использования предиктора вектора движения между первым кодируемым блоком и вторым прогнозируемым кодируемым блоком, которому соответствует наименьшая разность, в качестве предиктора вектора движения для первого кодируемого блока; и выполнения двунаправленного прогнозирования для первого кодируемого блока на основе целевого предиктора вектора движения с целью получения третьего прогнозируемого кодируемого блока для первого кодируемого блока.
Кодирующий модуль 1003 конфигурирован для: получения целевого прогнозируемого кодируемого блока для первого кодируемого блока на основе третьего прогнозируемого кодируемого блока, и кодирования первого кодируемого блока на основе целевого прогнозируемого кодируемого блока.
В качестве опции, прогнозируемая информация движения может представлять собой прогнозируемую информацию движения в прямом направлении и/или прогнозируемую информацию движения в обратном направлении, предиктор вектора движения может представлять собой предиктор вектора движения в прямом направлении и/или предиктор вектора движения в обратном направлении, и прогнозируемый блок опорного изображения может представлять собой прогнозируемый блок опорного изображения в прямом направлении и/или прогнозируемый блок опорного изображения в обратном направлении.
В качестве опции, первоначальный кодируемый прогнозируемый блок может представлять собой первоначальный кодируемый прогнозируемый блок прямого направления и первоначальный кодируемый прогнозируемый блок обратного направления, и при выполнении двунаправленного прогнозирования для первого кодируемого блока на основе прогнозируемой информации движения с целью получения первоначального прогнозируемого кодируемого блока для первого кодируемого блока, процессорный модуль 1002 в частности конфигурирован для:
выполнения прогнозирования в прямом направлении для первого кодируемого блока на основе прогнозируемой информации движения в прямом направлении с целью получения первоначального прогнозируемого кодируемого блока прямого направления для первого кодируемого блока; и
выполнения прогнозирования в обратном направлении для первого кодируемого блока на основе прогнозируемой информации движения в обратном направлении с целью получения первоначального прогнозируемого кодируемого блока обратного направления для первого кодируемого блока.
В качестве опции, при получении первого прогнозируемого кодируемого блока для первого кодируемого блока на основе первоначального прогнозируемого кодируемого блока, процессорный модуль 1002 в частности конфигурирован для:
выполнения взвешенного суммирования первоначального прогнозируемого кодируемого блока прямого направления и первоначального прогнозируемого кодируемого блока обратного направления с целью получения прогнозируемого кодируемого блока для первого кодируемого блока; или
использования первоначального прогнозируемого кодируемого блока прямого направления в качестве первого прогнозируемого кодируемого блока для первого кодируемого блока; или
использования первоначального прогнозируемого кодируемого блока обратного направления качестве первого прогнозируемого кодируемого блока для первого кодируемого блока.
В качестве опции, второй кодируемый прогнозируемый блок может представлять собой второй кодируемый прогнозируемый блок прямого направления и второй кодируемый прогнозируемый блок обратного направления, и при выполнении поиска движения с первой точностью для прогнозируемого блока опорного изображения на основе предиктора вектора движения с целью получения по меньшей мере одного второго прогнозируемого кодируемого блока, процессорный модуль 1002 в частности конфигурирован для:
выполнения поиска движения с первой точностью для прогнозируемого блока опорного изображения в прямом направлении на основе предиктора вектора движения в прямом направлении, и использования каждого найденного прогнозируемого кодируемого блока прямого направления в качестве второго прогнозируемого кодируемого блока прямого направления с целью получения по меньшей мере одного второго прогнозируемого кодируемого блока; и
выполнения поиска движения с первой точностью для прогнозируемого блока опорного изображения в обратном направлении на основе предиктора вектора движения в обратном направлении, и использования каждого найденного прогнозируемого кодируемого блока обратного направления в качестве второго прогнозируемого кодируемого блока обратного направления с целью получения по меньшей мере одного второго прогнозируемого кодируемого блока.
Первая точность может представлять собой точность до целого числа пикселей, точность до 1/2 пикселя, точность до 1/4 пикселя или точность до 1/8 пикселя.
В качестве опции, целевой предиктор вектора движения может представлять собой целевой предиктор вектора движения в прямом направлении и/или целевой предиктор вектора движения в обратном направлении, и при вычислении разности между первым прогнозируемым кодируемым блоком и каждым из вторых прогнозируемых кодируемых блоков, и использовании предиктора вектора движения между первым кодируемым блоком и вторым прогнозируемым кодируемым блоком, которому соответствует наименьшая разность, в качестве целевого предиктора вектора движения для первого кодируемого блока, процессорный модуль 1002 в частности конфигурирован для:
сравнения разностей между вторыми кодируемыми прогнозируемыми блоками прямого направления и первым прогнозируемым кодируемым блоком, и использования целевого предиктора вектора движения в прямом направлении между первым кодируемым блоком и вторым прогнозируемым кодируемым блоком прямого направления, которому соответствует наименьшая разность, в качестве целевого предиктора вектора движения; или
сравнения разностей между вторыми кодируемыми прогнозируемыми блоками обратного направления и первым прогнозируемым кодируемым блоком, и использования целевого предиктора вектора движения в обратном направлении между первым кодируемым блоком и вторым прогнозируемым кодируемым блоком обратного направления, которому соответствует наименьшая разность, в качестве целевого предиктора вектора движения.
В качестве опции, третий кодируемый прогнозируемый блок для первого кодируемого блока может представлять собой третий кодируемый прогнозируемый блок прямого направления и третий кодируемый прогнозируемый блок обратного направления, и при выполнении двунаправленного прогнозирования для первого кодируемого блока на основе целевого предиктора вектора движения с целью получения прогнозируемого кодируемого блока для первого кодируемого блока, процессорный модуль 1002 в частности конфигурирован для:
выполнения прогнозирования в прямом направлении для первого кодируемого блока на основе целевого предиктора вектора движения в прямом направлении с целью получения третьего прогнозируемого кодируемого блока прямого направления для первого кодируемого блока; и
выполнения прогнозирования в прямом направлении для первого кодируемого блока на основе целевого предиктора вектора движения в обратном направлении с целью получения третьего прогнозируемого кодируемого блока обратного направления для первого кодируемого блока.
В качестве опции, при получении целевого прогнозируемого кодируемого блока для первого кодируемого блока на основе третьего прогнозируемого кодируемого блока, процессорный модуль 1002 в частности конфигурирован для:
выполнения взвешенного суммирования третьего прогнозируемого кодируемого блока прямого направления и третьего прогнозируемого кодируемого блока направления обратного направления с целью получения прогнозируемого кодируемого блока для первого кодируемого блока; или
использования третьего прогнозируемого кодируемого блока прямого направления в качестве целевого прогнозируемого кодируемого блока для первого кодируемого блока; или
использования третьего прогнозируемого кодируемого блока обратного направления в качестве целевого прогнозируемого кодируемого блока для первого кодируемого блока.
Следует отметить, что для информации о реализации функций и о способе взаимодействия каждого из модулей аппаратуры 1000 в этом варианте настоящего изобретения следует далее обратиться к описаниям соответствующего варианта способа. Подробности здесь повторно описаны не будут.
Согласно же концепции изобретения, показанной на фиг. 11, один из вариантов настоящего изобретения далее предлагает кодирующее устройство 1100. Как показано на фиг. 11, кодирующее устройство 1100 содержит процессор 1101 и запоминающее устройство 1102. В запоминающем устройстве 1102 записан программный код, используемый для исполнения технических решений согласно настоящему изобретению, так что этот код применяют в качестве команд для процессора 1101 с целью осуществления способа кодирования, показанного на фиг. 4.
Код, соответствующий способу, показанному на фиг. 4, может быть также встроен в кристалл интегральной схемы при проектировании кристалла для процессора, так что когда схема работает, может происходить осуществление способа, показанного на фиг. 4.
В соответствии с изложенными выше вариантами, один из вариантов настоящего изобретения предлагает аппаратуру 1200, показанную на фиг. 12, для декодирования изображения с использованием межкадрового прогнозирования. Как показано на фиг. 12, аппаратура 1200 содержит решающий модуль 1201, процессорный модуль 1202 и декодирующий модуль 1203.
Решающий модуль 1201 конфигурирован для определения прогнозируемой информации движения для первого декодируемого блока, где прогнозируемая информация движения содержит предиктор вектора движения и прогнозируемую информацию опорного изображения, и эта прогнозируемая информация опорного изображения используется для представления прогнозируемого блока опорного изображения.
Процессорный модуль 1202 конфигурирован для: выполнения двунаправленного прогнозирования для первого декодируемого блока на основе прогнозируемой информации движения с целью получения первоначального прогнозируемого декодируемого блока для первого декодируемого блока, и получения первого прогнозируемого декодируемого блока для первого декодируемого блока на основе первоначального прогнозируемого декодируемого блока; выполнения поиска движения с первой точностью для прогнозируемого блока опорного изображения с целью получения по меньшей мере одного второго прогнозируемого декодируемого блока, где поисковую позицию для поиска движения определяют с использованием предиктора вектора движения и первой точности; вычисления разности между первым прогнозируемым декодируемым блоком и каждым из вторых прогнозируемых декодируемых блоков, и использования предиктора вектора движения между первым декодируемым блоком и вторым прогнозируемым декодируемым блоком, которому соответствует наименьшая разность, в качестве целевого предиктора вектора движения для первого декодируемого блока; и выполнения двунаправленного прогнозирования для первого декодируемого блока на основе целевого предиктора вектора движения с целью получения третьего прогнозируемого декодируемого блока для первого декодируемого блока.
Декодирующий модуль 1203 конфигурирован для: получения целевого прогнозируемого декодируемого блока для первого декодируемого блока на основе третьего прогнозируемого декодируемого блока, и декодирования первого декодируемого блока на основе целевого прогнозируемого декодируемого блока.
В качестве опции, прогнозируемая информация движения может представлять собой прогнозируемую информацию движения в прямом направлении и/или прогнозируемую информацию движения в обратном направлении, предиктор вектора движения может представлять собой предиктор вектора движения в прямом направлении и/или предиктор вектора движения в обратном направлении, и прогнозируемый блок опорного изображения может представлять собой прогнозируемый блок опорного изображения в прямом направлении и/или прогнозируемый блок опорного изображения в обратном направлении.
В качестве опции, первоначальный декодируемый прогнозируемый блок может представлять собой первоначальный декодируемый прогнозируемый блок прямого направления и/или первоначальный декодируемый прогнозируемый блок обратного направления, и при выполнении двунаправленного прогнозирования для первого декодируемого блока на основе прогнозируемой информации движения с целью получения первоначального прогнозируемого декодируемого блока для первого декодируемого блока, процессорный модуль 1202 в частности конфигурирован для:
выполнения прогнозирования в прямом направлении для первого декодируемого блока на основе прогнозируемой информации движения в прямом направлении с целью получения первоначального прогнозируемого декодируемого блока прямого направления для первого декодируемого блока; и
выполнения прогнозирования в обратном направлении для первого декодируемого блока на основе прогнозируемой информации движения в обратном направлении с целью получения первоначального прогнозируемого декодируемого блока обратного направления для первого декодируемого блока.
В качестве опции, при получении первого прогнозируемого декодируемого блока для первого декодируемого блока на основе первоначального прогнозируемого декодируемого блока, процессорный модуль 1202 в частности конфигурирован для:
выполнения взвешенного суммирования первоначального прогнозируемого декодируемого блока прямого направления и первоначального прогнозируемого декодируемого блока обратного направления с целью получения первого прогнозируемого декодируемого блока для первого декодируемого блока; или
использования первоначального прогнозируемого декодируемого блока прямого направления в качестве первого прогнозируемого декодируемого блока для первого декодируемого блока; или
использования первоначального прогнозируемого декодируемого блока обратного направления в качестве первого прогнозируемого декодируемого блока для первого декодируемого блока.
В качестве опции, второй декодируемый прогнозируемый блок может представлять собой второй декодируемый прогнозируемый блок прямого направления и/или второй декодируемый прогнозируемый блок обратного направления, и при выполнении поиска движения с первой точностью для прогнозируемого блока опорного изображения на основе предиктора вектора движения с целью получения меньшей мере одного второго прогнозируемого декодируемого блока, процессорный модуль 1202 в частности конфигурирован для:
выполнения поиска движения с первой точностью для прогнозируемого блока опорного изображения в прямом направлении на основе предиктора вектора движения в прямом направлении, и использования каждого их найденных прогнозируемых декодируемых блоков прямого направления в качестве второго прогнозируемого декодируемого блока прямого направления с целью получения по меньшей мере одного второго прогнозируемого декодируемого блока; и
выполнения поиска движения с первой точностью для прогнозируемого блока опорного изображения в обратном направлении на основе предиктора вектора движения в обратном направлении, и использования каждого из найденных прогнозируемых декодируемых блоков обратного направления в качестве второго прогнозируемого декодируемого блока обратного направления с целью получения по меньшей мере одного второго прогнозируемого декодируемого блока.
Первая точность может представлять собой точность до целого числа пикселей, точность до 1/2 пикселя, точность до 1/4 пикселя или точность до 1/8 пикселя.
В качестве опции, целевой предиктор вектора движения может представлять собой целевой предиктор вектора движения в прямом направлении и/или целевой предиктор вектора движения в обратном направлении, и при вычислении разности между первым прогнозируемым декодируемым блоком и каждым из вторых прогнозируемых декодируемых блоков, и использовании предиктора вектора движения между первым декодируемым блоком и вторым прогнозируемым декодируемым блоком, которому соответствует наименьшая разность, в качестве целевого предиктора вектора движения для первого декодируемого блока, процессорный модуль 1202 в частности конфигурирован для:
сравнения разностей между вторыми декодируемыми прогнозируемыми блоками прямого направления и первым прогнозируемым декодируемым блоком, и использования целевого предиктора вектора движения в прямом направлении между первым декодируемым блоком и втором прогнозируемым декодируемым блоком прямого направления, которому соответствует наименьшая разность, в качестве целевого предиктора вектора движения; или
сравнения разностей между вторыми декодируемыми прогнозируемыми блоками обратного направления и первым прогнозируемым декодируемым блоком, и использования целевого предиктора вектора движения в обратном направлении между первым декодируемым блоком и втором прогнозируемым декодируемым блоком обратного направления, которому соответствует наименьшая разность, в качестве целевого предиктора вектора движения.
В качестве опции, третий декодируемый прогнозируемый блок для первого декодируемого блока может представлять собой третий декодируемый прогнозируемый блок прямого направления и/или третий декодируемый прогнозируемый блок обратного направления, и при выполнении двунаправленного прогнозирования для первого декодируемого блока на основе целевого предиктора вектора движения с целью получения третьего прогнозируемого декодируемого блока для первого декодируемого блока, процессорный модуль 1202 в частности конфигурирован для:
выполнения прогнозирования в прямом направлении для первого декодируемого блока на основе целевого предиктора вектора движения в прямом направлении с целью получения третьего прогнозируемого декодируемого блока прямого направления для первого декодируемого блока; и
выполнения прогнозирования в обратном направлении для первого декодируемого блока на основе целевого предиктора вектора движения в обратном направлении с целью получения третьего прогнозируемого декодируемого блока обратного направления для первого декодируемого блока.
В качестве опции, при получении целевого прогнозируемого декодируемого блока для первого декодируемого блока на основе третьего прогнозируемого декодируемого блока, процессорный модуль 1202 в частности конфигурирован для:
выполнения взвешенного суммирования третьего прогнозируемого декодируемого блока прямого направления и третьего прогнозируемого декодируемого блока обратного направления с целью получения целевого прогнозируемого декодируемого блока для первого декодируемого блока; или
использования третьего прогнозируемого декодируемого блока прямого направления в качестве целевого прогнозируемого декодируемого блока для первого декодируемого блока; или
использования третьего прогнозируемого декодируемого блока обратного направления в качестве целевого прогнозируемого декодируемого блока для первого декодируемого блока.
Следует отметить, что для информации о реализации функций и о способе взаимодействия каждого из модулей аппаратуры 1200 в этом варианте настоящего изобретения следует далее обратиться к описаниям соответствующего варианта способа. Подробности здесь повторно описаны не будут.
Следует понимать, что разбиение аппаратуры 1000 и аппаратуры 1200 на модули представляет собой просто логическое разбиение функций. В реальном варианте все или некоторые модули могут быть интегрированы в одном физическом объекте, либо эти модули могут быть выполнены физически отдельными. Например, описанные выше модули могут представлять собой раздельно расположенные процессорные элементы, либо могут быть интегрированы в кристалле интегральной схемы контроллера для реализации, либо могут быть записаны в элементе памяти контроллера в форме программного кода, привлекаемого процессорным элементом контроллера для осуществления функций описанных выше модулей. В дополнение к этому, модули могут быть интегрированы или могут быть выполнены раздельно. Процессорный элемент может представлять собой кристалл интегральной схемы и может быть способен обрабатывать сигналы. В одном из вариантов этапы описанных выше способов или описанные выше модули могут быть реализованы в виде аппаратной логической интегральной схемы в процессорном элементе, или могут быть выполнены с использованием команд в форме программного обеспечения. Процессорный элемент может представлять собой процессор общего назначения, такой как центральный процессор (central processing unit, CPU), либо может быть конфигурирован в виде одной или нескольких интегральных схем, осуществляющих описанные выше способы, таких как одна или несколько специализированных интегральных схем (ASIC), один или несколько микропроцессоров (цифровых процессоров сигнала (digital signal processor, DSP)) одна или несколько программируемых пользователем вентильных матриц (FPGA).
Согласно же концепции изобретения, один из вариантов настоящего изобретения далее предлагает декодирующее устройство 1300. Как показано на фиг. 13, декодирующее устройство 1310 содержит процессор 1301 и запоминающее устройство 1302. В запоминающем устройстве 1302 записан программный код, используемый для исполнения технических решений согласно настоящему изобретению, так что этот код применяют в качестве команд для процессора 1301 с целью осуществления способа декодирования, показанного на фиг. 5.
Код, соответствующий способу, показанному на фиг. 5, может быть также встроен в кристалл интегральной схемы при проектировании кристалла для процессора, так что когда схема работает, может происходить осуществление способа, показанного на фиг. 5.
Можно понять, что процессор в составе кодирующего устройства 1100 и декодирующего устройства 1300 в различных вариантах настоящего изобретения может представлять собой процессор CPU, процессор DSP, схему ASIC или одну или несколько интегральных схем, конфигурированных для управления выполнением программ согласно техническим решениям настоящего изобретения. Одно или несколько запоминающих устройств в составе компьютерной системы могут представлять собой постоянное запоминающее устройство (read-only memory, ROM) или статическое запоминающее устройство другого типа, способное сохранять статическую информацию и статические команды, запоминающее устройство с произвольной выборкой (random access memory, RAM) или динамическое запоминающее устройство другого типа, способное сохранять информацию и команды, или может представлять собой запоминающее устройство на магнитных дисках. Эти запоминающие устройства соединены с процессором посредством шины, либо могут быть соединены с процессором специальным соединительным кабелем.
Даже рядовой специалист в рассматриваемой области может понимать, что все или некоторые этапы описанных выше способов согласно различным вариантам, могут быть реализованы посредством программ, содержащих команды для процессора. Такая программа может быть сохранена на читаемом компьютером носителе для хранения информации. Этот носитель для хранения информации может быть энергонезависимым, таким как запоминающее устройство с произвольной выборкой, постоянное запоминающее устройство, флэш-память, жесткий диск, твердотельный накопитель, магнитная лента, дискета, оптический диск или какое-либо сочетание этих элементов.
Настоящее изобретение описано со ссылками на соответствующие логические схемы и блок-схемы способов и устройств согласно вариантам изобретения. Следует понимать, что для реализации каждого процесса и каждого модуля, показанных на логических схемах и блок-схемах, а также сочетаний процессов и блоков согласно логическим схемам и блок–схемам могут быть использованы команды компьютерной программы. Эти команды компьютерной программы могут быть созданы для процессора общего назначения, специализированного компьютера, встроенного процессора или процессора какого-либо другого программируемого устройства для обработки данных для генерации машины, так что при выполнении этих команд компьютером или процессором какого-либо другого программируемого устройства для обработки данных происходит генерация аппаратуры для осуществления какой-либо конкретной функции одного или нескольких процессов, показанных на логических схемах, или одного или нескольких модулей, показанных на блок-схемах.
Приведенные выше описания представляют всего лишь примеры вариантов настоящего изобретения, и не предназначены для ограничения объема защиты изобретения. Любые варианты или замены, легко находимые специалистом в рассматриваемой области в пределах технического объема, описанного для настоящего изобретения, попадают в объем защиты изобретения. Поэтому объем защиты настоящего изобретения соответствует объему защиты формулы изобретения.