УСТРОЙСТВО, ОБОРУДОВАНИЕ, СПОСОБ КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ ВИДЕОИЗОБРАЖЕНИЙ
DEVICE, EQUIPMENT, METHOD FOR ENCODING AND DECODING VIDEO IMAGES

Область техники, к которой относится изобретение
Настоящее изобретение относится к области обработки видеоизображения и, в частности, к способу кодирования видеоизображения, способу декодирования видеоизображения, оборудованию для кодирования видеоизображения, оборудованию для декодирования видеоизображения, устройству кодирования и устройству декодирования.
Уровень техники
В связи с быстрым развитием интернет-технологий, посредством которых удовлетворяют все больше и больше материальных и духовных запросов людей, в настоящее время наблюдают растущий спрос интернет-видео приложений, особенно для видео приложений высокой четкости. Тем не менее, видео высокой четкости, имеет довольно большой объем данных. Для передачи видео высокой четкости по сети интернет с ограниченной пропускной способностью необходимо, прежде всего, решить техническую задачу сжатия и кодирования видео высокой четкости. В настоящее время усовершенствование стандартов видео кодирования осуществляют две международные организации: Экспертная группа по движущемуся изображения (Motion Picture Experts Group, «MPEG» для краткости) международной организации по стандартизации (International Organization for Standardization, «ISO» для краткости)/Международная электротехническая комиссия (International Electrotechnical, «IEC» для краткости) и Экспертная группа по кодированию видео (Video Coding Experts Group, «VCEG» для краткости) международного союза электросвязи-сектора стандартизации электросвязи (International Telecommunication Union-Telecommunication Standardization Sector, «ITU-T» для краткости). MPEG, созданная в 1986 году, специализируется на разработке соответствующих стандартов, которые, в основном, применяют для хранения, телевизионного вещания, потокового мультимедиа в интернете или беспроводной сети и тому подобное в области мультимедиа. ITU-T, в основном, разрабатывает стандарты кодирования видео для передачи видео в режиме реального времени, таких как видеотелефоны, видеоконференции или других приложений.
В последние десятилетия были успешно разработаны на международном уровне конкретные стандарты кодирования видео для различных приложений, в основном, включающие в себя: MPEG-1 стандарт для компакт-диска видео (Video Compact Disc «VCD» для краткости), MPEG-2 стандарт для цифрового видеодиска (Digital Video Disc, «DVD» для краткости) и цифрового телевизионного вещания (Digital Video Broadcasting, «DVB» для краткости), H.261 стандарт, H.263 стандарт и H.264 стандарт для видеоконференции, MPEG-4 стандарт, позволяющий кодировать объект в любой форме, и последний стандарт кодирования видео высокой эффективности (High Efficiency Video Coding, «HEVC» для краткости).
В соответствии с обоими стандартом кодирования видео H.264 и последним стандартом кодирования видео HEVC, которые широко используются в настоящее время, выполняют различные типы операций кодирования такие, как блочное предсказание, преобразование и энтропийного кодирование с помощью блока изображения в качестве базового блока. Блок изображения представляет собой двумерный массив точки выборки, который может представлять собой квадратный массив или прямоугольный массив. Например, блок изображения размером 4x4 может рассматриваться как квадратный массив точки выборки, включающий в себя в общей сложности 4 × 4, то есть 16 точек выборки. Как показано на фиг.1, блок изображения может быть обозначен как В. Сигнал блока изображения является значением выборки точки выборки в блоке изображения, и может быть представлен в виде , где  представляет координаты каждой точки выборки в блоке изображения. Аналогичным образом, изображение может быть также представлено в виде двумерного массива точки выборки и обозначается с помощью способа, аналогичного способу, используемому для блока изображения. Кроме того, точка выборки также может упоминаться как пиксель, и должна быть использована без различия в данном описании настоящего изобретения.
Видеопоследовательность включает в себя изображения, расположенные кадр за кадром. Как правило, генерируют последовательные изображения в довольно коротком временном интервале, и изображения изменяются незначительно. Следовательно, существует небольшая разница между последовательными изображениями. Таким образом, может быть закодировано только различие между текущим изображением и опорным изображением на основании временной корреляции между последовательными изображениями. Опорное изображение, как правило, является восстановленным кодированным изображением, время генерирования которого близко к текущему изображению. Таким образом, объем информации, подлежащей кодированию, уменьшается, и достигают эффект сжатия сигнала. В технологии кодирования видео этот тип способа упоминаются, как технология кодирования межкадрового предсказания, и технология широко используются в современных стандартах кодирования видео. Фиг. 2 показывает архитектуру кодирования межкадрового предсказания. Изображение, подлежащее кодированию, которое обычно представляет собой покадровое изображение видео, поступает на вход и делится на блоки изображения, которые не перекрываются друг с другом. Кодер получает вектор движения блока изображения на основании оценки движения, и кодер получает посредством компенсации движения сигнал предсказания с компенсацией движения блока изображения с использованием вектора движения блока изображения. Затем сигнал предсказания с компенсацией движения вычитается из исходного сигнала блока изображения для получения остаточного сигнала предсказания. После прохождения преобразования, квантования и энтропийного кодирования, остаточный сигнал предсказания записывается в битовый поток. В процессе кодирования, если полученный сигнал предсказания с компенсацией движения блока изображения является более точным, то количество полученных остаточных сигналов предсказания меньше, количество бит, которые должны быть закодированы, меньше, и коэффициент сжатия блока изображения выше.
Для получения оценки движения из опорного изображения с использованием текущего блока  изображения, блока  изображения, который имеет такой же размер, и который наилучшим образом соответствует текущему блоку изображения. Смещение местоположения блока  изображения относительно  в пространстве, называют вектором движения блока  изображения. Компенсация движения представляет собой процесс получения сигнала предсказания из опорного изображения на основании вектора движения блока  изображения. Полученный сигнал упоминается как сигнал предсказания с компенсацией движения.
Сторона декодера выполняет де-квантование и обратное преобразование на остаточном сигнале предсказания блока изображения, чтобы получить восстановленный остаточный сигнал, а затем получает сигнал предсказания с компенсацией движения из опорного изображения посредством предсказания с компенсацией движения на основе вектора движения блока изображения, и может получить восстановленный сигнал блока изображения путем суммирования сигнала предсказания с компенсацией движения и восстановленного остаточного сигнала блока изображения.
Фиг.3 показывает деление блока изображения и взаимосвязь между блоком изображения и вектором движения. Изображение  в момент  делят на блоки изображения, которые имеют различные размеры и которые не перекрываются друг с другом. Стрелка в каждом блоке изображения схематически представляет вектор движения, определяемый стороной кодера, и длина, и направление, соответственно, представляют интенсивность движения и направление движения текущего блока изображения. Вектор движения каждого блока изображения применяется ко всем точкам выборки в блоке изображения. Более конкретно, сигнал предсказания каждого блока изображения получают из указанного опорного изображения для всех точек выборки в блоке изображения на основе смещения местоположения, представленного вектором движения.
Предсказание с компенсацией движения на основании блочной структуры больше подходит для реализации в программном обеспечении и аппаратном обеспечении и имеет низкую сложность, и может обеспечить сравнительно высокую эффективность сжатия при ограничении вычислительных ресурсов. Тем не менее, есть и некоторые недостатки. Так, например, в способе, один вектор движения используется для указания движения всех пикселей в блоке изображения. Когда все пиксели имеют одинаковое направление движения и тот же размер, к примеру, в поступательном движении, способ может быть использован для точного указания движения всех пикселей. Когда пиксели в блоке изображения имеют разные направления движения или размеры, например, в движениях, таких как масштабирование и поворот, способ не может быть использован для точного указания движения всех пикселей. Следовательно, не может быть получен точный сигнал предсказания и производительность сжатия ухудшается.
th
Для устранения недостатков существующей технологии предсказания с компенсацией движения, предложена технология предсказания с компенсацией движения на основе поля вектора движения, изменяющееся линейно. Поле вектора движения является полем вектора движения блока изображения. Блок изображения разделяется на более мелкие субблоки. Субблок может быть таким же малоразмерным, как пиксель и таким же большим как исходный блок. Каждый субблок имеет вектор движения. Векторы движения всех субблоков в блоке изображения образуют поле вектора движения блока изображения. Поле вектора движения блока изображения может изменяться линейно или нелинейно. То, что поле вектора движения блока изображения изменяется линейно означает, что векторы движения соседних субблоков в блоке изображения изменяются равномерно. Если векторы движения соседних блоков в блоке изменении изображения изменяются неравномерно, то поле вектора движения блока изображения изменяется нелинейно. Эта спецификация ориентирована, главным образом, на технологию предсказания с компенсацией движения на основе поля вектора движения, которое изменяется по линейному закону. В документе с названием «Получение вектора движения деформируемого блока» (Image Processing (ICIP), 2012 19 IEEE International Conference, pp.1549-1552, September 30 2012 to October 3 2012) предложенный Na Zhang, Xiaopeng Fan, Debin Zhao и Wen Gao, где используют четыре вершины в блоке изображения в качестве контрольных точек, и выполняют способ билинейной интерполяции на векторах движения четырех точек управления для получения вектора движения каждого 4x4 блока в блоке изображения. Векторы движения четырех вершин в блоке изображения получают на основании векторов движения окружающих блоков изображения, и векторы движения всех 4x4 блоков образуют поле вектора движения блока изображения. Затем, получают сигнал предсказания с компенсацией движения блока изображения из опорного изображения на основе поля вектора движения. В технологии предсказания с компенсацией движения на основе поля вектора движения, размер блока, имеющий независимый вектор движения, уменьшается, непоступательные движения, такие как поворот и масштабирование, могут быть указаны более точно и может быть получен более точный сигнал предсказания с компенсацией движения. Вышеизложенное поле вектора движения получают путем выполнения билинейной интерполяции векторов движения контрольных точек, и поле вектора движения удовлетворяет билинейной модели. Билинейная интерполяция представляет собой математический способ интерполяции. Со ссылкой на фиг.4, далее приведено описание конкретного способа интерполяции:
Предполагают, что должно быть рассчитано значение функции  в  и значения функции  в четырех точках , ,  и  уже известны. Во-первых, выполняют линейную интерполяцию в направлении , чтобы получить:
(1)
Затем, выполняют линейную интерполяцию в направлении , чтобы получить:
(2)
Значение в точке может быть получено путем подстановки результата, полученного из формулы (1) в формулу (2). Векторы движения всех точек в блоке изображения могут быть получены на основании векторов движения контрольных точек, используя способ интерполяции.
В этом способе, вектор движения контрольной точки выбирают на основе вектора движения окружающего блока изображения, и выбранный вектор движения может быть неточным. Если вектор движения контрольной точки получают путем оценки движения и поиска, вектор движения контрольной точки должен быть записан в битовый поток. В этом случае, требуется более эффективный способ, например, используют модель аффинного преобразования для указания поля вектора движения блока изображения. Таким образом, предложена технология предсказания с компенсацией движения, основанная на аффинном преобразовании.
Аффинное преобразование представляет собой отношение отображения между двумя пространствами, и общее аффинное преобразование включает в себя вращение, масштабирование и перемещение. Поле вектора движения, которое представляет блок изображения, и которое получают с использованием модели аффинного преобразования, изменяется линейно, и поле вектора движения удовлетворяет аффинному преобразованию. Модель общего 6-параметрового аффинного преобразования может представлять вышеприведенные три движения. В частности, как показано в формуле (3),  являются координатами пикселя  аффинного блока изображения в текущем изображении,  являются координатами пикселя , который находится в опорном изображении, и соответствует пикселю , и  являются параметрами аффинного преобразования. Если параметры аффинного преобразования известны, то может быть вычислена позиция  пикселя  в опорном изображении и, следовательно, может быть получен сигнал предсказания пикселя из опорного изображения.
(3)
Аффинный параметр, как правило, рассчитан на основе векторов движения некоторых пикселей в блоке изображения. Вектор движения может быть выражен формулой (4):
(4)
Формулу (3) подставляют в формулу (4), чтобы получить:
(5)
Конкретные значения параметров аффинного преобразования могут быть получены путем подстановки множества групп известных векторов движения, например, три группы известных векторов движения, в формулу (5). Таким образом, векторы движения всех точек в блоке изображения можно вычислить с помощью формулы (3) и формулы (4). На практике, как правило, вектор движения угловой точки (контрольная точка) в блоке изображения сначала получают путем оценки движения, затем вычисляют параметр аффинного преобразования на основе вектора движения угловой точки, и вычисляют векторы движения всех пиксели в блоке изображений. На фиг. 5 (а) и фиг. 5 (b) показан вектор движения угловой точки. Фиг. 5 (а) иллюстрирует блок Х изображения. Ширина блока изображения является w высота h. Координаты верхней левой угловой точки являются , и вектор движения является . Координаты верхней правой угловой точки являются , и вектор движения является . Координаты левой нижней угловой точки составляют , и вектор движения равен . Может быть получена следующая модель аффинного преобразования 6-параметров путем раздельных подстановок трех векторов ,  и  движения в формулу 5:
(6)
Векторы движения трех вершин в блоке изображения могут отличаться. Как показано на фиг.5 (b), отображение отношения блока изображения в опорном изображении обозначено пунктирными линиями. После вычисления векторов движения всех точек в блоке изображения, получают сигналы предсказания с компенсацией движения всех точек в блоке изображений посредством предсказания с компенсацией движения.
В приведенном выше контенте используют 6-параметровая модель аффинного преобразования в качестве примера. Тем не менее, модель аффинного преобразования не ограничиваются 6-параметровой моделью, и может представлять собой 4-параметровую модель аффинного преобразования, показанную в формулах (7) и (8), 2-параметровая модель масштабирования показана в формуле (9) или т.п. Если выбрана 4-параметровая модель аффинного преобразования для блока изображения для предсказания с компенсацией движения, аффинная модель имеет четыре неизвестных параметра, и параметры модели могут быть получены с помощью двух групп векторов движения. Две группы векторов движения могут быть векторами движения двух угловых точек в блоке изображения, или могут быть векторами движения двух точек в блоке изображения.
(7)
(8)
(9)
Формула (3) подставлена в формулу (7), чтобы получить:
(10)
Координаты верхнего левого угла являются точки , и вектор движения представляет собой . Координаты верхнего правого угла являются точки , и вектор движения представляет собой . Координаты и векторы движения обоих угловых точек подставляют в формулу (10), и может быть получена формула модели движения, для которых верхняя левая угловая точка и верхняя правая угловая точка используют как контрольные точки:
(11)
Координаты верхней левой угловой точки являются , и вектор движения представляет собой . Координаты левой нижней угловой точки являются , и вектор движения представляет собой . Координаты и векторы движения обоих угловых точек подставляют в формулу (10), и получают формулу модели движения, для которой верхняя левая угловая точка и нижняя левая угловая точка используются как контрольные точки:
(12)
По сравнению с последним стандартом кодирования видео HEVC, для последовательности изображений/видео кадров, включающей в себя поворот и масштабирование движения, технология предсказания с компенсацией движения на основании поля вектора движения, что изменяется линейно, может значительно повысить производительность кодирования. Поле вектора движения, которое изменяется линейно, включает в себя поле вектора движения, генерируемого с использованием модели аффинного преобразования, и поле вектора движения, генерируемое с использованием билинейной модели. Технология предсказания с компенсацией движения на основании аффинного преобразования используются в качестве примера. После получения параметра аффинного преобразования блока изображения, должен быть вычислен вектор движения каждой точки в блоке изображения, и выполняют предсказание с компенсацией движения на основании вектора движения каждой точки, чтобы получить сигнал предсказания с компенсацией движения каждой точки. Поскольку векторы движения всех пикселей в блоке изображения могут отличаться, различные операции должны быть выполнены на пикселях на основе векторов движения. Предсказание с компенсацией движения на основе пикселей имеет высокую сложность. Для уменьшения сложности кодирования/декодирования в соответствующей технологии блок изображения должен быть дополнительно разделен на субблоки изображения, вычисляют вектор движения каждого субблока изображения и затем получают сигнал предсказания с компенсацией движения каждого субблока изображения.
Однако в соответствующей технологии размеры субблоков изображения являются фиксированными. Субблок изображения с чрезмерно малыми размерами приводит к сравнительно высокому уровню сложности кодирования/декодирования и субблок изображения с чрезмерно большим размером снижает производительность кодирования/декодирование. Следовательно, на практике применение такого эффективного способа кодирования в значительной степени ограничено.
Раскрытие сущности изобретения
Настоящее изобретение относится к способу декодирования видеоизображения, способу кодирования видеоизображения, устройству декодирования, устройству кодирования, оборудованию для декодирования и оборудованию для кодирования. Может быть выбран субблок изображения с соответствующим размером, так что весь блок изображения разделяют на множество субблоков изображения с одинаковым размером для обработки, чтобы уменьшить сложность кодирования/декодирования, а также повысить производительность кодирования/декодирования.
Согласно первому аспекту обеспечивается способ декодирования видеоизображения, включающий в себя: определение разности вектора движения аффинного блока изображения; определение точности вектора движения аффинного блока изображения; определение размера аффинного субблока изображения компенсации движения в аффинном блоке изображения на основании разности вектора движения, точности вектора движения, расстояния между контрольными точками в аффинном блоке изображения и размера аффинного блока изображения, где размер включает в себя длину в горизонтальном направлении и длину в вертикальном направлении, так что длина аффинного блока изображения в горизонтальном направлении представляет собой целое число, кратное длине аффинного блока субблока изображения компенсации движения в горизонтальном направлении, и длина аффинного блока изображения в вертикальном направлении представляет собой целое число, кратное длине аффинного субблока изображения компенсации движения в вертикальном направлении; и контрольные точки являются пикселями, используемые для определения разности вектора движения; и выполнение обработки декодирования на аффинном блоке изображения на основании размера аффинного субблока изображения компенсации движения.
В способе декодирования видеоизображения, представленном в соответствии с первым аспектом настоящего изобретения, размер аффинного субблока изображения компенсации движения адаптивно определяется на основе определяемых двух параметров, то есть разности вектора движения и точности вектора движения, так и в сочетании с расстоянием между контрольными точками в аффинном блоке изображения и размером аффинного блока изображения, так что аффинный блок изображения может быть разделен на множество аффинных субблоков изображения компенсации движения с одинаковым размером. Это может значительно уменьшить сложность на стороне декодера и повысить эффективность декодирования.
Основываясь на первом аспекте настоящего изобретения предлагается способ определения и корректировки размера аффинного субблока изображения компенсации движения, что может быть конкретно: пропорциональной корректировкой первого горизонтального/вертикального расстояния на основании пропорции точности вектора движения в первом компоненте/втором компоненте разности вектора движения, чтобы получить длину аффинного субблока изображения компенсации движения в горизонтальном/вертикальном направлении; и определением, является ли длина аффинного блока изображения в горизонтальном/вертикальном направлении целым числом, кратным длине аффинного субблока изображения компенсации движения в горизонтальном/вертикальном направлении и, если длина аффинного блока изображения в горизонтальном/вертикальном направлении не является целым числом, кратным длине аффинного субблока изображения компенсации движения в горизонтальном/вертикальном направлении, корректировкой длины аффинного субблока изображения компенсации движения в горизонтальном/вертикальном направлении, так что длина аффинного блока изображения в горизонтальном/вертикальном направлении представляет собой целое число, кратное скорректированной длине аффинного субблока изображения компенсации движения в горизонтальном/вертикальном направлении. В этой конкретной реализации длину аффинного субблока изображения компенсации движения в горизонтальном/вертикальном направлении получают путем корректировки первого расстояния по горизонтали/вертикали между контрольными точками, основываясь на пропорции взаимосвязи между точностью вектора движения и первым компонентом/вторым компонентом разности вектора движения, так что размер аффинного субблока изображения компенсация движения может соответствовать точности вектора движения аффинного блока изображения. Это обеспечивает качество декодирования и уменьшает сложность декодирования.
На основании первого аспекта настоящего изобретения, корректировка длины аффинного субблока изображения компенсации движения в горизонтальном/вертикальном направлении, так что длина аффинного блока изображения в горизонтальном/вертикальном направлении представляет собой целое число, кратное скорректированной длине аффинного субблока изображения компенсации движения в горизонтальном/вертикальном направлении может быть конкретно: корректировкой, то есть увеличением/уменьшением, длины аффинного субблока изображения компенсации движения в горизонтальном/вертикальном направлении с помощью одной или более единиц длин, и затем циклическим выполнением вышеприведенного решения до тех пор, пока длина аффинного блока изображения в горизонтальном/вертикальном направлении не будет представляет собой целое число, кратное скорректированной длине аффинного субблока изображения компенсации движения в горизонтальном/вертикальном направлении. Единица длины, как правило, представляет собой один блок пикселей. Более конкретно, корректируют длину аффинного субблока изображения компенсации движения в горизонтальном/вертикальном направлении, то есть увеличивают/уменьшают на 1. Кроме того, вышеприведенная корректировка может быть корректировкой, то есть увеличением/уменьшением длины аффинного субблока изображения компенсации движения в горизонтальном/вертикальном направлении на фиксированный размер шага, и размер шага представляет собой значение корректировки, то есть основной единицей, используемой для корректировки длины аффинного субблока изображения компенсации движения в горизонтальном/вертикальном направлении в каждом цикле. Размер шага может быть любым значением и, как правило, одним блоком пикселей, или может быть другим значением, таким как 2,5 блока пикселей. Возможно, значение размера шага/корректировки, используемой в вышеприведенной корректировке, может меняться в зависимости от соотношения первоначальной длины (то есть нескорректированной длины) аффинного субблока изображения компенсации движения в горизонтальном/вертикальном направлении. Например, когда начальная длина аффинного субблока изображения компенсации движения в горизонтальном направлении представляет собой нечетное число, выбирают нечетный размер шага. Например, нечетное количество единиц длин, например, одну единицу длины, используют в качестве размера шага для корректировки. Когда начальная длина аффинного субблока изображения компенсации движения в горизонтальном направлении является четным числом, выбирают четный размер шага. Например, четное количество единиц длин используют в качестве размера шага. В этом варианте осуществления может быть обеспечено, что длина аффинного субблока изображения компенсации движения в горизонтальном/вертикальном направлении может быть быстро приближено к значению, с помощью которого, длина аффинного блока изображения в горизонтальном/вертикальном направлении делится, и дополнительно снижается сложность.
Для повышения эффективности и сокращения времени работы, в способе декодирования, представленном в соответствии с первым аспектом настоящего изобретения, длина аффинного субблока изображения компенсации движения в горизонтальном/вертикальном направлении может быть скорректирована до ближайшего значения, с помощью которого длина аффинного блока изображения в горизонтальном/вертикальном направлении делится. Если разница между длиной аффинного субблока изображения компенсации движения в горизонтальном/вертикальном направлении и два соседних значения, с помощью которых длина аффинного блока изображения в горизонтальном/вертикальном направлении делится, равны, то корректировка может быть выбрана в соответствии требованиями стороны кодера и стороны декодера. Например, если требуется низкая задержка, то может быть выбрана корректировка, то есть увеличение. Если требуется высокое качество, то может быть выбрана корректировка, то есть уменьшение.
N
N+i
max
Когда определено, что длина аффинной блока изображения в горизонтальном/вертикальном направлении не является целым числом, кратным длине аффинного субблока изображения компенсации движения в горизонтальном/вертикальном направлении, чтобы еще больше упростить алгоритм, может быть отдельно установлена одна и та же таблица на стороне кодера и стороне декодера, и возможная максимальная длина аффинного блока изображения в горизонтальном/вертикальном направлении делится на множество интервалов, используя допустимый минимальный делитель в качестве начального значения, например, 2. Интервал деления равен 2, где , W - это возможно максимальная длина аффинного блока изображения в горизонтальном/вертикальном направлении. Определяют интервал, в течение которого длина аффинного субблока изображения компенсации движения в горизонтальном/вертикальном направлении снижается, и значение нижнего предела или значение верхнего предела интервала, в течение которого длина аффинного субблока изображения компенсации движения в горизонтальном/вертикальном направлении снижается, используются как окончательно определенная длина аффинного субблока изображения компенсации движения в горизонтальном/вертикальном направлении. Для правила получения значения нижнего предела или значения верхнего предела, сделана ссылка к соглашению между стороной кодера и стороной декодера. Верхнее предельное значение или нижнее предельное значение приближенного интервала может быть явно указано, используя битовый поток или может быть выбрано при округлении. С помощью указанной выше таблицы, конечная длина аффинного субблока изображения компенсации движения в горизонтальном/вертикальном направлении может быть определена с помощью таблицы поиска на основе исходной длины аффинного субблока изображения компенсации движения в горизонтальном/вертикальном направлении. Таким образом, сложность системы снижается, и время вычисления уменьшается.
В качестве варианта, для дополнительного снижения сложности вычислений в решении, в способе декодирования, представленном в соответствии с первым аспектом настоящего изобретения, не только если длина аффинного блока изображения в горизонтальном/вертикальном направлении представляет собой целое число, кратное длине аффинного субблока изображения компенсации движения в горизонтальном/вертикальном направлении, но также определяют, является ли длина аффинного субблока изображения компенсации движения в горизонтальном/вертикальном направлении целым числом, кратным заданной длине S, что облегчает вычисление. Более конкретно, следует определить, удовлетворяет ли длина аффинного субблока изображения компенсации движения в горизонтальном/вертикальном направлении следующим двум условиям:
(1) длина аффинного блока изображения в горизонтальном/вертикальном направлении представляет собой целое число, кратное длине аффинного субблока изображения компенсации движения в горизонтальном/вертикальном направлении; и
(2) длина аффинного субблока изображения компенсации движения в горизонтальном/вертикальном направлении представляет собой целое число, кратное заданной длине S.
n
Если длина аффинного субблока изображения компенсации движения в горизонтальном/вертикальном направлении не удовлетворяет двум условиям, то длину аффинного субблока изображения компенсации движения в горизонтальном/вертикальном направлении корректируют, так что длина аффинного субблока изображения компенсации движения в горизонтальном/вертикальном направлении удовлетворяет условию (1) и условию (2). Более конкретно, длина аффинного блока изображения в горизонтальном/вертикальном направлении представляет собой целое число, кратное скорректированной длине аффинного субблока изображения компенсации движения в горизонтальном/вертикальном направлении, и скорректированная длина аффинного субблока изображения компенсации движения в горизонтальном/вертикальном направлении представляет собой целое число, кратное заданной длине. Заданная длина S, как правило, равна 4, или может быть значением, таким как 8, 16 или 32, или S равно 2, где n равно нулю или является положительным целым числом. Следует отметить, что значение S не должно быть больше, чем размер аффинного блока изображений. Это решение применимо к аффинному блоку изображения в любой форме. Когда аффинный блок изображения делят в соответствии с правилом дерева квадрантов (Quad Tree), или размер аффинного блока изображения является 2Nx2N, а именно, в форме квадрата, при условии, что любое из указанных выше условий (1) и (2) удовлетворено, другое условие может быть выполнено. Таким образом, только одно из определяющих условий должно быть активировано/применено. Последовательность для определения, выполнены условия (1) и (2) и последовательность для корректировки длины аффинного субблока изображения компенсации движения в горизонтальном/вертикальном направлении на основании результата определения могут быть взаимозаменяемыми в случайном порядке.
В способе декодирования, представленном в соответствии с первым аспектом настоящего изобретения, чтобы избежать случая, в котором размер аффинного субблока изображения компенсации движения является недействительным, то есть меньше, чем допустимый минимального размер, но больше, чем размер аффинного блока изображения, может быть выбрана и выполнена операция ограничения амплитуды длины, определяемой вышеуказанным образом, аффинного субблока изображения компенсация движения в горизонтальном/вертикальном направлении. Более конкретно, используют сравнение для обеспечения длины аффинного субблока изображения компенсации движения в горизонтальном/вертикальном направлении, чтобы находиться в диапазоне от нижнего предела Тm/Тn до верхнего предела W/H. Тm/Тn является заданным значением и, как правило, равно 4 и W/H является длиной аффинного блока изображения в горизонтальном/вертикальном направлении.
Кроме того, способ декодирования, предоставленный в первом аспекте настоящего изобретения, применим к модели аффинного преобразования, основанной на трех контрольных точках, и модели аффинного преобразования, основанной на двух контрольных точках. В модели аффинного преобразования, основанной на трех контрольных точках, должны быть независимо получены и независимо скорректированы длины аффинного субблока изображения компенсации движения в вертикальном направлении и в горизонтальном направлении. Соответственно, в модели аффинного преобразования, основанной на двух контрольных точках, получают только длину, которая является длинной аффинного субблока изображения компенсация движения в одном из горизонтального направления и вертикального направления, и которая должна быть независимо друг от друга получена, и длина в другом направлении дополнительно получают; и длины в обоих направлениях должны корректироваться независимо. Когда размер аффинного блока изображения является 2Nx2N правильного квадрата, так как длины аффинного блока изображения в горизонтальном направлении и вертикальном направлении, являются такими же, то только одна из длин аффинного блока изображения в горизонтальном направлении и вертикальном направлении должна быть определена и скорректирована.
Согласно второму аспекту, обеспечивается способ кодирования видеоизображения, который, в основном, содержит: определение разность вектора движения аффинного блока изображения; определение точности вектора движения аффинного блока изображения; определение размера аффинного субблока изображения компенсации движения в аффинном блоке изображения на основании разности вектора движения, точности вектора движения, расстояния между контрольными точками в аффинном блоке изображения, размера аффинного блока изображения, где размер включает в себя длину в горизонтальном направлении и длину в вертикальном направлении, так что длина аффинного блока изображения в горизонтальном направлении представляет собой целое число, кратное длине аффинного субблока изображения компенсации движения в горизонтальном направлении, и длина аффинного блока изображения в вертикальном направлении представляет собой целое число, кратное длине аффинного субблока изображения компенсации движения в вертикальном направлении; и контрольные точки являются пикселями, используемые для определения разности вектора движения; и выполнение обработки кодирования на аффинном блоке изображения на основании размера аффинного субблока изображения компенсации движения.
В способе кодирования видеоизображения, представленном во втором аспекте настоящего изобретения, размер аффинного субблока изображения компенсации движения адаптивно определяется на основании определяемых двух параметров, то есть разности вектора движения и точности вектора движения, так и в сочетании с расстоянием между контрольными точками в аффинном блоке изображения и размером аффинного изображения, так что аффинный блок изображения может быть разделен на множество аффинных субблоков изображения компенсации движения с одинаковым размером. Это может значительно уменьшить сложность на стороне кодера и улучшить эффективность кодирования. Способ кодирования видеоизображения в соответствии со вторым аспектом настоящего изобретения включает в себя одни и те же основные этапы, то есть определение размера аффинного субблока изображения компенсации движения и корректировку размера аффинного субблока изображения компенсации движения, как способ декодирования видеоизображения в соответствии с первым аспектом настоящего изобретения, но включает в себя иной последний этап. Поэтому решения в способе декодирования видеоизображения в соответствии с первым аспектом настоящего изобретения, также применимы к способу кодирования видеоизображения в соответствии со вторым аспектом настоящего изобретения. Для получения дополнительной информации смотрите предшествующее описание способа декодирования видеоизображения в первом аспекте.
В соответствии с третьим аспектом, обеспечивается оборудование для декодирования видеоизображения, главным образом, включающее в себя: модуль определения разности вектора движения, выполненный с возможностью определять разность вектора движения аффинного блока изображения; модуль определения точности вектора движения, выполненный с возможностью определять точность вектора движения аффинного блока изображения; модуль определения размера субблока изображения, выполненный с возможностью определять размер аффинного субблока изображения компенсации движения в аффинном блоке изображения на основании разности вектора движения, точности вектора движения, расстояния между контрольными точками в аффинном блоке изображения и размера аффинного блока изображения, где размер включает в себя длину в горизонтальном направлении и длину в вертикальном направлении, так что длина аффинного блока изображения в горизонтальном направлении представляет собой целое число, кратное длине аффинного субблока изображения компенсации движения в горизонтальном направлении, и длина аффинного блока изображения в вертикальном направлении представляет собой целое число, кратное длине аффинного субблока изображения компенсации движения в вертикальном направлении; и контрольные точки являются пикселями, используемые для определения разности вектора движения; и модуль декодирования, выполненный с возможностью выполнять обработку декодирования на аффинном блоке изображения на основании размера аффинного субблока изображения компенсации движения.
Оборудование для декодирования видеоизображения, представленное в третьем аспекте настоящего изобретения, соответствует способу декодирования видеоизображения, представленному в соответствии с первым аспектом настоящего изобретения, имеет функцию выполнения всех этапов в способе декодирования видеоизображения, предусмотренные в первом аспекте настоящего изобретения, и могут быть получены те же технические эффекты, то есть в значительной степени уменьшить сложность на стороне декодера и повысить эффективность декодирования.
В соответствии с четвертым аспектом, обеспечивается оборудование для кодирования видеоизображения, в основном, включающее в себя: модуль определения разности вектора движения, выполненный с возможностью определять разность вектора движения аффинного блока изображения; модуль определения точности вектора движения, выполненный с возможностью определять точность вектора движения аффинного блока изображения; модуль определения размера субблока изображения, выполненный с возможностью определять размер аффинного субблока изображения компенсации движения в аффинном блоке изображения на основании разности вектора движения, точности вектора движения, расстояния между контрольными точками в аффинном блоке изображения и размера аффинного блока изображения, где размер включает в себя длину в горизонтальном направлении и длину в вертикальном направлении, так что длина аффинного блока изображения в горизонтальном направлении представляет собой целое число, кратное длине аффинного субблока изображения компенсации движения в горизонтальном направлении, и длина аффинного блока изображения в вертикальном направлении представляет собой целое число, кратное длине аффинного субблока изображения компенсации движения в вертикальном направлении; и контрольные точки являются пикселями, используемые для определения разности вектора движения; и модуль кодирования, выполненный с возможностью выполнять обработку кодирования на аффинном блоке изображения на основании размера аффинного субблока изображения компенсации движения.
Оборудование для кодирования видеоизображения, предоставленное в четвертом аспекте настоящего изобретения, соответствует способу кодирования видеоизображения, представленному во втором аспекте настоящего изобретения, и имеет функцию реализации всех этапов способа кодирования видеоизображения, представленных во втором аспекте настоящего изобретения, и могут быть получены те же технические эффекты, то есть в значительной степени уменьшить сложность на стороне кодера и повысить эффективность кодирования.
В соответствии с пятым аспектом, обеспечивается устройство декодирования видеоизображения, включающее в себя процессор и постоянную память, где процессор вызывает программный код, сохраненный в памяти для реализации способа декодирования, представленного в соответствии с первым аспектом настоящего изобретения.
В соответствии с шестым аспектом, обеспечивается устройство кодирования видеоизображения, включающее в себя процессор и постоянную память, где процессор вызывает программный код, сохраненный в памяти для осуществления способа кодирования, представленного в соответствии со вторым аспектом.
Исходя из вышеизложенных технических решений, в соответствии с способом кодирования видеоизображения, способом декодирования видеоизображения, оборудованием для кодирования, оборудованием для декодирования, устройством кодирования и устройством декодирования в вариантах осуществления настоящего изобретения, адаптивно определяют размер аффинного субблока изображения компенсации движения на основании определенных двух параметром, то есть разности вектора движения и точности вектора движения, так и в сочетании с расстоянием между контрольными точками в аффинном блоке изображения и размером аффинного изображения, так что аффинный блок изображения может быть разделен на множество аффинных субблоков изображения компенсации движения с тем же размером. Это уменьшает сложность кодирования/декодирования и повышает эффективность кодирования/декодирования.
Краткое описание чертежей
Для более четкого описания технических решений в вариантах осуществления настоящего изобретения, приведено следующее краткое описание прилагаемых чертежей, необходимые для описания вариантов осуществления. Очевидно, что сопровождающие чертежи в следующих описаниях показывают лишь некоторые варианты осуществления настоящего изобретения, и специалист в данной области техники в еще может получить другие чертежи из этих прилагаемых чертежей без творческих усилий.
Фиг.1 представляет собой схему блока изображения в процессе кодирования видеоизображения;
Фиг.2 представляет собой схему основной процедуры кодирования видеоизображения;
Фиг.3 представляет собой схему разделения блока изображения и взаимоотношение между блоком изображения и вектором движения в процессе кодирования видеоизображения;
Фиг.4 представляет собой схему получения поля вектора движения блока изображения с помощью билинейной интерполяции;
Фиг.5 (а) и фиг.5 (b) представляют собой схему получения поля вектора движения блока изображения с помощью модели аффинного преобразования;
Фиг.6 представляет собой схему структуры видеодекодера, используемого для способа декодирования согласно варианту осуществления настоящего изобретения;
Фиг.7 представляет собой блок-схему алгоритма способа декодирования видеоизображения в соответствии с вариантом осуществления настоящего изобретения;
Фиг.8 представляет собой схему аффинного блока изображения и контрольных точек в соответствии с вариантом осуществления настоящего изобретения;
Фиг.9 представляет собой еще одну схему аффинного блока изображения и контрольных точек в соответствии с вариантом осуществления настоящего изобретения;
Фиг.10 представляет собой схематическое изображение трех неперекрывающихся пикселей в аффинном блоке изображения в соответствии с вариантом осуществления настоящего изобретения;
Фиг.11 представляет собой еще одну схему аффинного блока изображения в соответствии с вариантом осуществления настоящего изобретения;
Фиг.12 представляет собой еще одну блок-схему последовательности операций способа декодирования видеоизображения в соответствии с вариантом осуществления настоящего изобретения;
Фиг.13 представляет собой еще одну блок-схему последовательности операций способа декодирования видеоизображения в соответствии с вариантом осуществления настоящего изобретения;
Фиг.14 представляет собой блок-схему последовательности операций способа кодирования видеоизображения в соответствии с вариантом осуществления настоящего изобретения;
Фиг.15 представляет собой еще одну блок-схему последовательности операций способа кодирования видеоизображения в соответствии с вариантом осуществления настоящего изобретения;
Фиг.16 представляет собой еще одну блок-схему последовательности операций способа кодирования видеоизображения в соответствии с вариантом осуществления настоящего изобретения;
Фиг.17 представляет собой блок-схему приспособления для декодирования в соответствии с вариантом осуществления настоящего изобретения;
Фиг.18 представляет собой блок-схему приспособления для кодирования согласно варианту осуществления настоящего изобретения;
Фиг.19 представляет собой блок-схему устройства декодирования согласно варианту осуществления настоящего изобретения; и
Фиг.20 представляет собой блок-схему устройства кодирования в соответствии с вариантом осуществления настоящего изобретения.
Осуществление изобретения
Задачей настоящего изобретения является снижение сложности кодирования/декодирования при сохранении производительности предсказания с компенсацией движения, на основании аффинного преобразования, так что способ может быть эффективно применен на практике. В данном описании блок изображения, который независимо имеет параметр аффинного преобразования, называется аффинный блоком изображения, то есть аффинный блок. Субблок изображения, который получают путем деления аффинного блока изображения и используется для предсказания с компенсацией движения, упоминается как аффинное суб-изображение компенсации движения (Affine Motion Compensation, «Affine-MC», для краткости) и обозначается как аффинный МС блок. Техническое решение, представленное в настоящем изобретении, основано на адаптивном делении аффинного блока на множество аффинных MC блоков с тем же размером, в соответствии с требованием кодирования/декодированием. Конкретный способ заключается в адаптивном делении, на основании точности вектора движения аффинного блока, вектора движения аффинного блока и расстояния между контрольными точками в аффинной блоке, аффинного блока на аффинные MC блоки, которые удовлетворяют требованиям.
Далее, в качестве примера использована сторона декодера для описания решений по настоящему изобретению с помощью конкретных вариантов осуществления.
На стороне декодера, декодер обычно используется для реализации способа декодирования, и декодирует и восстанавливает закодированный битовый поток видеоданных. Базовая логическая структура декодера показана на фиг. 6. Видеодекодер 60 включает в себя блок 650 энтропийного декодирования, блок 652 предсказания, блок 654 деквантования, блок 656 обратного преобразования, блок 658 восстановления, блок 659 фильтра и буфер 660 декодированного изображения. Блок 652 предсказания включает в себя блок 662 компенсации движения и блок 664 внутрикадрового предсказания. Блок 650 энтропийного декодирования включает в себя блок 666 обычного CABAC кодирования/декодирования и блок 668 обходного кодирования/декодирования. В другом варианте осуществления видеодекодер 60 может включать в себя больше или меньше, или иные функциональные компоненты.
Базовый рабочий процесс видеодекодера 60 выглядит следующим образом: после приема кодированного битового потока видеоданных (называемый, как битовый поток для краткости), блок 650 энтропийного декодирования выполняет синтаксический анализ битового потока для извлечения синтаксического элемента из битового потока. Как часть синтаксического анализа битового потока, блок 650 энтропийного декодирования может проанализировать синтаксический элемент, который находится в битовом потоке и на котором выполнено энтропийное кодирование. Блок 652 предсказания, блок 654 деквантования блок 656 обратного преобразования, блок 658 восстановления и блок 659 фильтра может декодировать видеоданные на основании синтаксического элемента, извлеченного из битового потока, то есть генерировать декодированные видеоданные. Синтаксический элемент может включать в себя обычное CABAC кодированное/декодированное двоичное кодовое слово и обходное кодированное/декодированное двоичное кодовое слово. Блок 650 энтропийного декодирования может использовать блок 666 обычного CABAC кодирования/декодирования для декодирования обычного CABAC кодированного/декодированного двоичного кодового слова, и может использовать блок 668 обходного кодирования/декодирования, чтобы декодировать обходное кодированное/декодированное двоичное кодовое слово.
Блок 652 предсказания включает в себя блок 662 компенсации движения и блок 664 внутрикадрового предсказания. Если используют кодирование с межкадровым предсказанием для блока изображения, подлежащего декодированию, то блок 662 компенсации движения может определить один или более опорных блоков на основании информации движения блока изображения, подлежащего декодированию, и генерируют предсказанный пиксельный блок блока изображения, подлежащего декодированию, на основании опорного блока. Когда используют кодирование с внутрикадровым предсказанием для блока изображения, подлежащего декодированию, блок 664 внутрикадрового предсказания осуществляет внутрикадровое предсказание для генерирования предсказанного пиксельного блока изображения. Блок 664 внутрикадрового предсказания может генерировать предсказанный пиксельный блок блока изображения, подлежащего декодированию, на основании пикселя пространственного соседнего блока изображения с использованием режима внутрикадрового предсказания.
Блок 658 восстановления восстанавливает предсказанный пиксельный блок, полученный блоком 652 предсказания, и остаточные данные блока изображения, подлежащего декодированию, которые были обработаны с помощью блока 654 деквантования и блока 656 обратного преобразования, для получения восстановленного блока изображения блока изображения, подлежащего декодированию. Кадр изображения, который включает в себя множество блоков изображения, фильтруется с помощью блока 659 фильтра и затем сохраняется в буфере 660 декодированного изображения. Таким образом, декодирование кодированного битового потока видеоданных завершено. Декодированное изображение, сохраненное в буфере 660 декодированного изображения 660, может непосредственно выводится на устройство отображения для отображения или может быть использовано в качестве опорного изображения в последующем процессе декодирования битового потока.
Техническое решение по настоящему изобретению применяют к процессу, в котором блок 662 компенсации движения выполняет декодирование с предсказанием компенсации движения. Пример процесса декодирования показан на фиг.7. Следует отметить, что способ декодирования и способ кодирования в настоящем изобретении, являются, по существу, аналогичными, и способ декодирования является обратным процессом способа кодирования. Хотя способ декодирования используется в качестве примера в дальнейшем, если явно не указано иное, способ, в основном, является таким же, как способ кодирования. Таким образом, в процессе декодирования, описанном в последующем изложении, объяснение и описание, связанное с кодированием не представляет собой какой-либо конфликт или несогласованность с решением.
На фиг.7 схематично показана блок-схема способа декодирования видеоизображения в соответствии с вариантом осуществления настоящего изобретения. В частности, как показано на фиг.7, способ 700 включает в себя следующие этапы:
S710. Определить разность вектора движения аффинного блока изображения.
S720. Определить точность вектора движения аффинного блока изображения.
S730. Определить размер аффинного субблока изображения компенсации движения в аффинном блоке изображения на основании разности вектора движения, точности вектора движения, расстояния между контрольными точками в аффинном блоке изображения и размера аффинного блока изображения, где размер включает в себя длину в горизонтальном направлении и длину в вертикальном направлении, так что длина аффинного блока изображения в горизонтальном направлении представляет собой целое число, кратное длине аффинного субблока изображения компенсации движения в горизонтальном направлении и длина аффинного блока изображения в вертикальном направлении представляет собой целое число, кратное длине аффинного субблока изображения компенсации движения в вертикальном направлении; и контрольные точки являются пикселями, используемые для определения разности вектора движения.
S740. Выполнить обработку декодирования на аффинном блоке изображения на основании размера аффинного субблока изображения компенсации движения.
В частности, устройство декодирования/кодирования определяет разность вектора движения аффинного блока изображения на основании определенных контрольных точек, определяет точность вектора движения аффинного блока изображения, и определяет размер аффинного субблока изображения компенсации движения в аффинном блоке изображения на основании определенной разности вектора движения и точности вектора движения, расстояния между контрольными точками и размера аффинного блока изображения, где размером аффинного субблока изображения компенсации движения является размер, используемый для деления аффинного блока изображения, и аффинный блок изображения делят на множество аффинных субблоков изображения компенсации движения с одинаковым размером на основании размера деления. Затем, устройство декодирования/кодирования декодирует аффинный блок изображения на основании аффинных субблоков изображения компенсации движения. Следует отметить, что аффинный блок изображения, как правило, имеет форму правильного прямоугольника или квадрата. Соответственно, аффинный субблок изображения компенсации движения также имеет форму правильного прямоугольника или квадрата. Таким образом, после определения длины аффинного субблока изображения компенсации движения в горизонтальном направлении и вертикальном направлении, может быть определен общий размер аффинного суб-изображения компенсации движения. Горизонтальное направление и вертикальное направление представляют собой систему координат, которая обычно используется в предшествующем уровне техники и используется, чтобы найти положение блока изображения/аффинного блока изображения в видеоизображении. Горизонтальное направление обычно представляет собой направление длинной стороны обычного прямоугольного видеоизображения, вертикальное направление, обычно представляет собой направление короткой стороны обычного прямоугольного видеоизображения, и горизонтальное направление и вертикальное направление перпендикулярны друг к другу. Без потери общности, горизонтальное направление может быть заменено на первом направлении, и вертикальное направление может быть заменено на втором направлении, перпендикулярном первому направлению. Однако, для простоты описания, горизонтальное направление и вертикальное направление используются для описания в данном описании. Кроме того, «декодирование аффинного блока изображения», описанное в способе декодирования в данном описании, представляет собой процесс синтаксического разбора кодированных данных битового потока и восстановления кодированного изображения с помощью аффинного блока изображения в качестве базового блока. Хотя используют «декодирование аффинного блока изображения», нельзя считать, что аффинный блок изображения был восстановлен.
При выполнении способа декодирования видеоизображения в этом варианте осуществления настоящего изобретения, блок 662 компенсации движения определяет размер аффинного субблока изображения компенсации движения на основании определенной разности вектора движения и точности вектора движения аффинного блока изображения, расстояния между контрольными точками и размера аффинного блока изображения, делит аффинный блок изображения на множество аффинных суб-изображений компенсации движения одного размера на основании размера аффинного субблока изображения компенсации движения и затем выполняет обработку декодирования. Таким образом, в процессе декодирования аффинного субблока изображения компенсации движения с соответствующим размером может быть адаптивно выбран на основе изменения указанных выше параметров, сложность декодирования уменьшается и производительность повышается.
Следует понимать, что в данном варианте осуществления настоящего изобретения, аффинный блок изображения (Affine) является блоком изображения, чьи векторы движения всех блоков соответствуют одинаковым аффинным моделям, например, одна и та же аффинная модель и может быть представлена с использованием такого же параметра или же группы параметров. Блок представляет собой группой пикселей, например, может представлять собой пиксель или может быть структурой блока 1 × 3 или 2 × 4 или тому подобное. Это не ограничивается в настоящем изобретении. Кроме того, в этом варианте осуществления настоящего изобретения, любые неперекрывающиеся пиксели могут быть выбраны в качестве контрольных точек для определения разности вектора движения аффинного блока. Это не ограничивается в настоящем изобретении.
Предпочтительно, S710 включает в себя:
определение первого компонента разности векторов движения на основании разности между векторами движения первой контрольной точки и второй контрольной точки, которые расположены на одной горизонтальной линии; и/или
определение второго компонента разности вектора движения на основании разности между векторами движения третьей контрольной точкой и четвертой контрольной точкой, которые расположены на одной вертикальной линии.
Существует первое горизонтальное расстояние между первой контрольной точкой и второй контрольной точкой, и есть первое вертикальное расстояние между третьей контрольной точкой и четвертой контрольной точкой. Следует отметить, что «и/или» в решении в этапе S710 конкретно указывает следующие три различные технические решения:
Решение 1: способ определения разности вектора движения аффинного блока изображения на основании трех контрольных точек включает в себя: определение первого компонента разности вектора движения на основании разности между векторами движения первой контрольной точки и второй контрольной точки, которые расположены на одной и той же горизонтальной линии, и определение второго компонента разности вектора движения на основании разности между векторами движения третьей контрольной точки и четвертой контрольной точки, которые расположены на одной и той же вертикальной линии.
Решение 2: способ определения разности вектора движения аффинного блока изображения на основании двух контрольных точек в горизонтальном направлении включает в себя: определение первого компонента разности вектора движения на основании разности между векторами движения первой контрольной точки и второй контрольной точки, которые расположены на одной и той же горизонтальной линии.
Решение 3: способ определения разности вектора движения аффинного блока изображения на основании двух контрольных точек в вертикальном направлении включает в себя: определение второго компонента разности вектора движения на основании разности между векторами движения третьей контрольной точки и четвертой контрольной точки, которые расположены на одной и той же вертикальной линии.
Следует понимать, что в данном варианте осуществления настоящего изобретения, первый компонент разности вектора движения является горизонтальной составляющей разности векторов движения, и второй компонент разности вектора движения представляет собой вертикальный компонент разности векторов движения. В решении 1, первый компонент разности вектора движения и второй компонент разности вектора движения совместно отражают разность вектора движения аффинного блока изображения. Тем не менее, в решении 2 и решении 3 первый компонент разности вектора движения и второй компонент разности вектора движения независимо друг от друга отражают разность вектора движения аффинного блока изображения. Другими словами, в решении 1, разность вектора движения аффинного блока изображения включает в себя первый компонент разности вектора движения и второй компонент разности вектора движения; в решении 2 разность вектора движения аффинного блока изображения включает в себя первый компонент разности вектора движения; и в решении 3 разность вектора движения аффинного блока изображения включает в себя второй компонент разности вектора движения. Следует также понимать, что в данном варианте осуществления настоящего изобретения, первый, второй, третий и четвертый только используются для различения пикселей и не должны представлять собой какое-либо ограничение объема защиты настоящего изобретения. Например, первая контрольная точка также может упоминаться в качестве второй контрольной точки и вторая контрольная точка может упоминаться в качестве первой контрольной точки.
Дополнительно, в этом варианте осуществления настоящего изобретения, первая контрольная точка и третья контрольная точка являются такими же пикселями. Более конкретно, выбраны три контрольные точки и одна из трех контрольных точек находятся на одной горизонтальной линии в качестве одной из двух других контрольных точек, и расположена на одной вертикальной линии в качестве последней контрольной точки.
Возможно, в этом варианте осуществления настоящего изобретения, первой контрольной точкой, второй контрольной точкой, третьей контрольной точкой и четвертой контрольной точкой являются вершинами аффинного блока. Предполагают, что четыре вершины в аффинном блоке, соответственно, обозначены как верхняя левая вершина, нижняя левая вершина, верхняя правая вершина и нижняя правая вершина.
В решении 1, любые три вершин в двух ортогональных направлениях могут быть выбраны для определения разности вектора движения аффинного блока. Например, верхняя левая вершина, нижняя левая вершина и верхняя правая вершина могут быть выбраны, или могут быть выбраны верхняя левая вершина, верхняя правая вершина и нижняя правая вершина.
В решении 2, могут быть выбраны любые две вершины, расположенные на одной горизонтальной линии, чтобы определить разность вектора движения аффинного блока. Например, могут быть выбраны верхняя левая вершина и верхняя правая вершина или могут быть выбраны нижняя левая вершина и нижняя правая вершина.
В решении 3, могут быть выбраны любые две вершины, расположенные на одной и той же вертикальной линии, чтобы определить разность вектора движения аффинного блока. Например, могут быть выбраны верхняя левая вершина и нижняя левая вершина или могут быть выбраны верхняя правая вершина и нижняя правая вершина. Это не ограничивается в настоящем изобретении.
Возможно, в этом варианте осуществления настоящего изобретения, разница между компонентами, которые являются векторами движения первой контрольной точки и второй контрольной точки, и которые находятся в одном из двух направлений (горизонтальное направление и вертикальное направление, или называют направление х и направление у), может быть определены в качестве первого компонента разности вектора движения аффинного блока и разница между компонентами, которые являются векторами движения третьей контрольной точки и четвертой контрольной точки, и в любом из двух направлений может быть определена в качестве второй компоненты разности вектора движения аффинного блока. Способ определения разности вектора движения применяется к решениям 1, 2 и 3. В качестве альтернативы, в соответствии с фактическими потребностями сложности кодирования и производительности кодирования, значения между двумя разностями между компонентами векторов движения первой контрольной точки и второй контрольной точки в двух направлениях, может быть выбрана и определена в качестве первого компонента, и значение между двумя разностями между компонентами векторов движения третьей контрольной точки и четвертой контрольной точки в двух направлениях, может быть выбрана и определена в качестве второго компонента. Это не ограничивается в настоящем изобретении.
Вектор движения каждой из первой контрольной точки до четвертой контрольной точки, как правило, включает в себя два компонента, то есть горизонтальную составляющая и вертикальную составляющую. Таким образом, в предшествующих этапах, определение первого компонента разности вектора движения на основании разности между векторами движения первой контрольной точки и второй контрольной точки, которые расположены на одной горизонтальной линии, и определение второго компонента разности вектора движения на основании разности между векторами движения третьей контрольной точки и четвертой контрольной точки, которые расположены на одной вертикальной линии, может быть конкретно реализована следующим образом:
определение первой горизонтальной составляющей разности и первая вертикальная составляющая разности между векторами движения первой контрольной точки и второй контрольной точки, и определение больше одной первой горизонтальной составляющей разности и первой вертикальной составляющей разницы в качестве первого компонента разности вектора движения; и
соответственно, определение второй горизонтальной составляющей разности и второй вертикальной составляющей разницы между векторами движения третьей контрольной точки и четвертой контрольной точки, и определение больше одной второй горизонтальной составляющей разности и второй вертикальной составляющей разницы в качестве второго компонента разности вектора движения.
Более конкретно, если  и  используют для представления горизонтальной составляющей и вертикальной составляющей вектора движения пикселя на позиции , разность вектора движения аффинного блока может быть определена в соответствии с формулами (13) и (14):
(13)
(14)
представляет собой максимальное значение,  представляет собой горизонтальную составляющая разности вектора движения аффинного блока,  представляет собой вертикальную составляющая разности вектора движения аффинного блока, W представляет собой первое горизонтальное расстояние между первой контрольной точкой и второй контрольной точкой, и Н представляет собой первое вертикальное расстояние между третьей контрольной точкой и четвертой контрольной точкой. Со ссылкой на фиг.8, формула (13) выражает, что вектор движения горизонтальной разности  является максимальной дельтой компонентов векторов движения двух контрольных точек в одном и том же горизонтальном направлении, другими словами, абсолютное значение разности вектора движения является самым большим. Например, вершины 0 и 1 или вершины 2 и 3 могут быть выбраны в качестве контрольных точек, чтобы вычислить . Формула (14) выражает, что вектор движения вертикальной разности  является максимальной дельтой компонентов векторов движения двух контрольных точек в одном и том же вертикальном направлении, другими словами, абсолютное значение разности вектора движения является самым большим. Например, вершины 0 и 2 или вершины 1 и 3 могут быть выбраны в качестве контрольных точек, чтобы вычислить . Это может быть понятно, что формулы (13) и (14) применимы к любому из решений 1, 2 и 3. Детали представлены следующим образом:
В решении 1, разность вектора движения аффинного блока изображения определяют на основании трех контрольных точек, и разность вектора движения включает в себя первый компонент и второй компонент. Таким образом, в решении 1, разность вектора движения аффинного блока изображения получают при использовании комбинации формулы (13) и формулы (14).
В решении 2, разность вектора движения аффинного блока изображения определяются на основании двух контрольных точек в горизонтальном направлении, и разность вектора движения включает в себя только первый компонент. Таким образом, в решении 2 разность вектора движения аффинного блока изображения получают с использованием формулы (13). Фиг.8 используется в качестве примера. В большинстве случаев, вектор движения вершины в аффинном блоке известен. В этом случае, разность вектора движения может быть непосредственно вычислена на основании вектора движения вершины в аффинном блоке.
Если векторы  и  движения вершин в аффинной блоке на фиг. 8 известны, то:
(15)
Если векторы  и  движения вершин в аффинной блоке на фиг. 8 известны, то:
(16)
Может быть выбрана также комбинация других известных векторов движения. Это не ограничивается в настоящем изобретении.
Эти векторы движения контрольных точек, используемые в вышеприведенном решении, могут быть получены на основании модели аффинного преобразования. Например, когда используется 4-параметровая модель аффинного преобразования, и (0,0) на верхнем левом углу и (W, 0) на верхнем правом углу в аффинном блоке изображения используют в качестве контрольных точек, формула модели выглядит следующим образом:
(17)
и , соответственно, являются векторами движения контрольных точек на верхнем левом углу и правом верхнем углу. Если координаты  и  контрольных точек в нижнем левом углу и нижнем правом углу подставить в формулу, то может быть получено  и .
В решении 3 разность вектора движения аффинного блока изображения определяют на основании двух контрольных точек в вертикальном направлении, и разность вектора движения включает в себя только второй компонент. Таким образом, в решении 3 разность вектора движения аффинного блока изображения получают с использованием формулы (14). Фиг.8 используется в качестве примера. В большинстве случаев, вектор движения вершины в аффинном блоке известен. В этом случае, разность вектора движения может быть непосредственно вычислена на основании вектора движения вершины в аффинном блоке.
Если векторы  и  движения вершин в аффинной блоке на фиг. 8 известны, то:
(18)
Если векторы  и  движения вершин в аффинной блоке на фиг. 8 известны, то:
(19)
Также может быть выбрана комбинация других известных векторов движения. Это не ограничивается в настоящем изобретении.
Эти векторы движения контрольных точек, используемые в вышеприведенном решении, могут быть получены на основе модели аффинного преобразования. Например, когда используется 4-параметровая модель аффинного преобразования и (0,0) на верхнем левом углу и (0, Н) на нижнем левом углу используются в качестве контрольных точек, формула модели выглядит следующим образом:
(20)
и , соответственно, являются векторами движения контрольных точек на верхнем левом углу и в нижнем левом углу. Если координаты  и  контрольных точек на верхний правом углу и нижнем правом углу подставляют в формулу, то может быть получено  и .
Возможно, в этом варианте осуществления настоящего изобретения, разность вектора движения получают на основе аффинной модели, то есть разность вектора движения получают путем определения параметра аффинного преобразования пикселя в аффинном блоке изображения. Следует отметить, что пиксели в аффинном блоке изображения имеют один и тот же параметр аффинного преобразования.
Соответственно, вышеприведенный этап определения первой горизонтальной составляющей разницы и первой вертикальной составляющей разницы между векторами движения первой контрольной точки и второй контрольной точки конкретно является: определение первой горизонтальной составляющей разности и первой вертикальной составляющей разности на основании параметра аффинного преобразования и первого горизонтального расстояния; и предшествующий этап определения второй горизонтальной составляющей разницы и второй вертикальной составляющей разницы между векторами движения третьей контрольной точки и четвертой контрольной точки является: определение второй горизонтальной составляющей разности и второй вертикальной составляющей разности на основании параметра аффинного преобразования и первого вертикального расстояния.
Следует понимать, что порядковые номера упомянутых процессов не указывают на последовательность выполнения. Последовательность выполнения процессов должна быть определена на основе функций и внутренней логике процессов, и не должна представлять собой какое-либо ограничение в процессах реализации этого варианта осуществления настоящего изобретения.
Возможно, в этом варианте осуществления настоящего изобретения, модель аффинного преобразования может быть 6-параметровой моделью аффинного преобразования предшествующего уровня техники, или может быть 4-параметровой или 2-параметровой моделью аффинного преобразования предшествующего уровня техники. 6-параметровая модель аффинного преобразования, в основном, применяется к сценарию в решении 1 на основе трех контрольных точек, и 4-параметровая модель аффинного преобразования, в основном, применяется для сценариев в решении 2 и решении 3 на основе двух контрольных точек. Ниже описан способ получения разности вектора движения на основе параметров аффинного преобразования по отдельности, используя 6-параметровую модель аффинного преобразования и 4-параметровую модель аффинного преобразования, в качестве примера.
В 6-параметровой модели аффинного преобразования предполагают, что  являются координатами пикселя  в текущем аффинном блоке изображения в текущем изображении,  являются координатами пикселя , который находится в опорном изображении, и который соответствует пикселю , и  являются параметрами аффинного преобразования. Если параметры аффинного преобразования известны, то может быть вычислена позиция  пикселя  в опорном изображении и, следовательно, может быть получен сигнал предсказания пикселя из опорного изображения.
(21)
(22)
Параметры аффинного преобразования обычно могут быть вычислены на основании векторов движения некоторых пикселей в аффинном блоке изображения, и горизонтальная составляющая и вертикальная составляющая вектора движения могут быть выражены с помощью формул (23) и (24), соответственно:
(23)
(24)
Формулу (21) подставляют в формулу (23), и формулу (22) подставляют в формулу (24), чтобы получить горизонтальную составляющую и вертикальную составляющую вектора движения пикселя с координатами (х, у), где горизонтальная составляющая и вертикальная составляющая выражают формулами (25) и (26), соответственно:
(25)
(26)
Формулу (25) подставляют в формулу (13), и формулу (26) подставляют в формулу (14). Таким образом, формулы (13) и (14) преобразуются в формулы (27) и (28), соответственно:
(27)
(28)
Первый компонент и второй компонент разности вектора движения аффинного блока могут быть определены на основании расстояния между контрольными точками и путем определения параметров , ,  и  аффинного преобразованием.
В 4-параметровой модели аффинного преобразования предполагают, что  являются координатами пикселя в аффинном блоке изображения в текущем изображении,  являются координатами пикселя , который находится в опорном изображении, и который соответствует пикселю , и  являются параметрами аффинного преобразования. Если параметры аффинного преобразования известны, то может быть вычислена позиция  пикселя  в опорном изображении и, следовательно, может быть получен сигнал предсказания для пикселя из опорного изображения:
(29)
(30)
Формула (29) соответствует сценарию в решении 2, в котором разность вектора движения аффинного блока изображения определяется на основании двух контрольных точек в горизонтальном направлении. Формула (30) соответствует сценарию в решении 3, в котором разность вектора движения аффинного блока изображения определяется на основании двух контрольных точек в вертикальном направлении.
Параметры аффинного преобразования, как правило, могут быть рассчитаны на основе векторов движения некоторых пикселей в блоке изображения. Для горизонтальной составляющей и вертикальной составляющей вектора движения сделана ссылка на формулы (23) и (24). Формулы (29) и (30) подставляют в формулы (23) и (24), соответственно, чтобы получить горизонтальную составляющую и вертикальную составляющую вектора движения пикселя с координатами (х, у), где горизонтальная составляющая и вертикальная составляющая выражаются формулами (31) и (32) соответственно:
(31)
(32)
Формулы (31) и (32) подставляют в формулы (13) и (14). Таким образом, формулы (13) и (14) преобразуются в формулы (33) и (34), соответственно:
(33)
(34)
Первый компонент или второй компонент разности векторов движения аффинного блока в сценарии в решении 2 или решении 3 может быть определен на основании расстояния между контрольными точками и путем определения параметров a и b аффинного преобразования.
Следует понимать, что способ определения разности вектора движения при использовании 2-параметровой модели аффинного преобразования является, по существу, таким же, как способ определения разности вектора движения, используемый при 6-параметровой модели аффинного преобразования или 4-параметровой модели аффинного преобразования. Для краткости, детали не описаны здесь еще раз.
Возможно, в этом варианте осуществления настоящего изобретения, в процессе декодирования параметры аффинного преобразования могут быть получены путем выполнения итеративного расчета параметра. Например, параметр а увеличиваются на 1, чтобы определить, является ли оптимальной модель на основании которой получен сигнал предсказания с компенсацией движения. В качестве альтернативы, параметры аффинного преобразования могут быть получены путем вычитания на основании параметра аффинного преобразования соседнего аффинного блока. Тем не менее, это не ограничивается в настоящем изобретении.
Возможно, в этом варианте осуществления настоящего изобретения, вектор движения первой контрольной точки, вектор движения второй контрольной точки, вектор движения третьей контрольной точки и вектор движения четвертой контрольной точки могут быть определены для определения разности вектора движения аффинного блока изображения.
Соответственно, в сценарии в решении 1, разница между горизонтальной составляющей вектора движения первой контрольной точки и горизонтальной составляющей вектора движения второй контрольной точки определяют в качестве первой горизонтальной составляющей разности; разница между вертикальной составляющей вектора движения первой контрольной точки и вертикальной составляющей вектора движения второй контрольной точки определяют как первую вертикальную составляющую разности; разница между горизонтальной составляющей вектора движения третьей контрольной точки и горизонтальной составляющей вектора движения четвертой контрольной точки определяют в качестве второй горизонтальной составляющей разности; и разница между вертикальной составляющей вектора движения третьей контрольной точки и вертикальной составляющей вектора движения четвертой контрольной точки определяются в качестве второй вертикальной составляющей разности.
В сценарии в решении 2, разница между горизонтальной составляющей вектора движения первой контрольной точки и горизонтальной составляющей вектора движения второй контрольной точки определяют как первую горизонтальную составляющую разности; и разница между вертикальной составляющей вектора движения первой контрольной точки и вертикальной составляющей вектора движения второй контрольной точки определяют как первую вертикальную составляющую разности.
В сценарии в решении 3 разница между горизонтальной составляющей вектора движения третьей контрольной точки и горизонтальной составляющей вектора движения четвертой контрольной точки определяют в качестве второй горизонтальной составляющей разности; и разница между вертикальной составляющей вектора движения третьей контрольной точки и вертикальной составляющей вектора движения четвертой контрольной точки определяются в качестве второй вертикальной составляющей разности.
В частности, векторы движения контрольных точек могут быть непосредственно определены, и первый компонент и второй компонент разности векторов движения аффинного блока могут быть непосредственно получены путем вычисления разницы между компонентами векторов движения.
Например, фиг.9 представляет собой схему аффинного блока изображения и контрольные точки в соответствии с вариантом осуществления настоящего изобретения. Две контрольные точки А и В на расстоянии  расположены на одной горизонтальной линии, и две контрольные точки C и D на расстоянии  расположены на одной вертикальной линии. Если векторы движения контрольных точек A, B, C и D известны, то первый компонент и второй компонент разности вектора движения аффинного блока могут быть определены в соответствии с формулами (35) и (36):
(35)
(36)
Возможно, в этом варианте осуществления настоящего изобретения, контрольные точки А и С могут быть одинаковыми пикселями.
Возможно, в этом варианте осуществления настоящего изобретения, контрольные точки А, В, С и D могут быть вершинами аффинного блока. В этом случае, расстояние между контрольными точками А и В представляет собой ширина W аффинного блока, и расстояние между контрольными точками C и D представляет собой высоту Н аффинного блока.
Возможно, в этом варианте осуществления настоящего изобретения первая контрольная точка и вторая контрольная точка являются двумя соседними пикселями, и третья контрольная точка и четвертая контрольная точка являются двумя смежными пикселями. Другими слова, контрольные точки не обязательно выбраны из четырех угловых точек, также упоминаются как вершины, в аффинном блоке изображения, но могут быть точками, которые находятся на любой позиции в аффинном блоке изображения и совместно установленные на стороне кодера и стороне декодера, явно указанные в битовом потоке с использованием сигнализации, или получены с помощью оценки или дублирования на основании контрольных точек в окружающем аффинном блоке изображения. В этом случае, определение первой горизонтальной составляющей разности, первой вертикальной составляющей разницы, второй горизонтальной составляющей разницы и второй вертикальной составляющей разницы, конкретно именно является следующим:
Определяют вектор движения первого пикселя, вектор движения второго пиксела и вектор движения третьего пикселя, где первый пиксель, второй пиксель и третий пиксель являются пикселями, которые не перекрываются с друг с другом; определяют второе горизонтальное расстояние и второе вертикальное расстояние между первым пикселем и вторым пикселем; определяют третье горизонтальное расстояние и третье вертикальное расстояние между первым пикселем и третьим пикселем; определяют первую горизонтальную составляющую разности, первую вертикальную составляющую разницы, вторую горизонтальную составляющую разности и вторую вертикальную составляющую разности на основании вектора движения первого пикселя, вектора движения второго пикселя, вектора движения третьего пикселя, второго горизонтального расстояния, второго вертикального расстояния, третьего горизонтального расстояния и третьего вертикального расстояния. Вышеизложенное описание основано на решении 1 трех контрольных точек в качестве примера. Различие между решением 2 или решением 3 на основе двух контрольных точек и решением 1 на основе трех контрольных точки заключается: используют только первый компонент разности или второй компонент разницы в решении 1 в качестве разности вектора движения аффинного блока изображения на основе двух контрольных точек.
В частности, предполагают, что А, В и С находятся в блоке изображения любых трех пикселей, которые не перекрываются друг с другом, позиции трех пикселей показаны на фиг. 10, и векторы движения трех пикселей представляют собой ,  и , соответственно. Расстояние между пикселем A и пикселем В в горизонтальном направлении равно  и расстояние между пикселем A и пикселем В в вертикальном направлении равно . Расстояние между пикселем A и пикселем С в горизонтальном направлении равно , и расстояние между пикселем A и пикселем С в вертикальном направлении равно . Расстояние между пикселем B и пикселем С в горизонтальном направлении равно , и расстояние между пикселем B и пикселем С в вертикальном направлении равно . Предполагают, что разности между горизонтальными составляющими векторов движения двух пикселей, которые являются смежными в горизонтальном направлении равны  и , соответственно, и разности между вертикальными составляющими векторов движения двух пикселей, которые являются смежными в вертикальном направлении равны  и , соответственно. Так как вектор движения в блоке изображения изменяется линейно, , ,  и  могут быть определены путем определения векторов движения пикселей А, В и С, и может быть определена разность вектора движения между соседними пикселями в блоке изображения. В частности, разность вектора движения может быть определена по формулам (37) до (40):
(37)
(38)
(39)
(40)
В качестве альтернативы, разность вектора движения может быть определена в соответствии с формулами (37) и (38) и формулами (41) и (42):
(41)
(42)
Возможно, в этом варианте осуществления настоящего изобретения, устройство декодирования может получить векторы движения всех контрольных точек посредством оценки движения и поиска, можно получить векторы движения всех контрольных точек на основе окружающего блока изображения, или может вычислить векторы движения всех контрольных точек на основе модели аффинного преобразования. В качестве альтернативы, устройство декодирования может получить векторы движения некоторых контрольных точек посредством оценки движения и поиска, и получить векторы движения других контрольных точек на основании соседнего блока изображения. В качестве альтернативы, устройство декодирования может получить векторы движения некоторых контрольных точек с помощью оценки аффинного движения и поиска, и вычисляют векторы движения других контрольных точек на основе модели аффинного преобразования. В качестве альтернативы, устройство декодирования может получить векторы движения некоторых контрольных точек на основе соседнего блока изображения и вычисляют векторы движения других контрольных точек на основе модели аффинного преобразования. Тем не менее, это не ограничивается в настоящем изобретении.
Возможно, на S720 может быть определено первое заданное значение как точность вектора движения аффинного блока изображения; или точность вектора движения аффинного блока изображения может быть определена на основе признака соседнего блока изображения аффинного блока изображения. Соседний блок изображения представляет собой блок изображения, находящийся рядом с аффинным блоком изображения в пространстве и/или во времени.
В частности, значение вектора движения аффинного блока может быть целым числом. В этом случае, точность вектора движения рассматривают, как цельно-пиксельную точность, то есть точность пикселя равна 1. В качестве альтернативы, значение точности вектора движения не может быть целым числом. В этом случае, вектор движения берут в качестве субпиксельной точности, включающей в себя точность, такую как 1/2, ¼ или 1/8. Фиг. 11 показывает изображение блока 4 × 4, где х представляет собой пиксель на целочисленном пиксельной позиции, и собранное изображения имеет только пиксели на целочисленных позициях; и О представляет собой пиксель на 1/2 точности позиции, и пиксель на 1/2 точности позиции должен быть получен путем выполнения интерполяции на пикселе на целочисленной позиции пикселя. Значение пикселя на другой позиции точности должно быть получено путем выполнения дополнительной интерполяции на пикселе с целочисленной точностью или пикселя с 1/2 точностью. Если точность вектора движения текущего пикселя представляет собой целое число, текущий пиксель указан на позиции Х в опорном изображении. Если точность вектора движения текущего пикселя равна 1/2, то текущий пиксель указан на позиции O в опорном изображении.
Точность вектора движения аффинного блока является самой высокой точностью вектора движения для всех пикселей в аффинном блоке. Точность вектора движения аффинного блока может быть задана, например, целым числом точности пикселей или точностью, такой как 1/2, 1/4, 1/8 или 1/16. Альтернативно, точность вектора движения аффинного блока может быть определена на основе признака соседнего блока изображения аффинного блока. Например, если окружающее изображение сравнительно гладкое, то может быть предсказано, что текущий аффинный блок также является гладким, и может быть выбрана сравнительно высокая точность вектора движения, например, точность 1/8 или 1/16; в противном случае, выбирают сравнительно низкую точность вектора движения, например, целое число пикселей точности или точность 1/2. Полученная точность обозначается как .
Возможно, как показано на фиг. 12, S730 конкретно включает в себя следующие этапы.
S1201. Пропорционально корректировать первое горизонтальное расстояние, основываясь на пропорции точности вектора движения к первому компоненту разности вектора движения, чтобы получить длину аффинного субблока изображения компенсации движения в горизонтальном направлении; и определить, является ли длина аффинного блока изображения в горизонтальном направлении целым числом, кратным длине аффинного субблока изображения компенсации движения в горизонтальном направлении, и, если длина аффинного блока изображения в горизонтальном направлении не является целым числом, кратным длине аффинного субблока изображения компенсации движения в горизонтальном направлении, корректировать длину аффинного субблока изображения компенсации движения в горизонтальном направлении, так что длина аффинного блока изображения в горизонтальном направлении представляет собой целое число, кратное скорректированной длине аффинного субблока изображения компенсации движения в горизонтальном направлении.
N
В частности, пропорция точности вектора движения к первому компоненту разности вектора движения представляет собой отношение точности вектора движения к первому компоненту разности вектора движения. Продукт отношения и первого горизонтального расстояния является длиной аффинного субблока изображения компенсации движения в горизонтальном направлении, и также может быть отнесен к начальной длине в горизонтальном направлении. Очевидно, что начальная длина аффинного субблока изображения компенсации движения в горизонтальном направлении может не быть целым числом в некоторых случаях. В этом случае, начальная длина должна быть округлена. Для обеспечения прогнозируемой точности, как правило, выполняют округление с понижением. Более конкретно, десятичную часть непосредственно отбрасывают. Например, начальное значение длины составляет 8,35 (то есть длина 8,35 единичных пикселей), и непосредственно используют в качестве длины аффинного субблока изображения компенсации движения в горизонтальном направлении число 8. Конечно, может быть альтернативно использован принцип округления. Более конкретно, если дробная часть меньше 5, выполняют округление вниз; и, если дробная часть больше 5, выполняют округление с повышением. Например, когда длина рассчитывается как 8,86, то 9 используют в качестве длины. Для обеспечения эффективности работы, минимальное значение исходной длины не должно быть меньше, чем заданное значение, например, не меньше, чем заданное значение, например, 2, 4, 8 или 2. Заданное значение обычно устанавливают на 4. Начальная длина также не должна быть больше, чем длина аффинного блока изображения в горизонтальном направлении. Соответствует ли начальная длина в горизонтальном направлении или округленная начальная длина в горизонтальном направлении зависит от того, делится ли длина аффинного блока изображения в горизонтальном направлении на начальную длину. Если длина аффинного блока изображения в горизонтальном направлении делится на начальную длину, то это указывает, что аффинный блок изображения может быть разделен на целое количество субблоков в горизонтальном направлении на основании начальной длины в горизонтальном направлении или округленной начальной длины в горизонтальном направлении. Способ корректировки, как правило, представляет собой способ, в котором начальная длина в горизонтальном направлении или округленная начальная длина в горизонтальном направлении постепенно увеличивается/уменьшается. Более конкретно, если определено, что длина аффинного блока изображения в горизонтальном направлении не является целым числом, кратным длине аффинного субблока изображения компенсации движения в горизонтальном направлении, длина аффинного субблока изображения компенсации движения в горизонтальном направлении корректируется, то есть увеличивается/уменьшается, с помощью одного или нескольких единиц длин, и затем циклически выполняется упомянутое решение до тех пор, длина аффинного блока изображения в горизонтальном направлении не будет целым числом, кратным скорректированной длине аффинного субблока изображения компенсации движения в горизонтальном направлении. Единица длины, как правило, является одним блоком пикселей. Более конкретно, длина аффинного субблока изображения компенсации движения в горизонтальном направлении корректируется, то есть увеличивается/уменьшается на 1. Без потери общности, другими словами, длина аффинного субблока изображения компенсации движения в горизонтальном направлении корректируется, то есть увеличивается/уменьшается на фиксированный размер шага. Размер шага представляет собой значение корректировки т.е, базовый блок или амплитуду, используемые для корректировки длины аффинного субблока изображения компенсации движения в горизонтальном направлении в каждом цикле. Размер шага, как правило, является вышеупомянутым одним блоком пикселей, или может быть другим значением, например, два пиксельных блоков. Возможно, значение размера/шага корректировки, используемое в вышеприведенной корректировке, может меняться в зависимости от соотношения первоначальной длины аффинного субблока изображения компенсации движения в горизонтальном направлении. Например, когда начальная длина аффинного субблока изображения компенсации движения в горизонтальном направлении представляет собой нечетное число, то выбирают нечетный размер шага. Например, нечетное количество единичных длин, например, одна единица длины, используют в качестве размера шага для корректировки. Когда начальная длина аффинного субблока изображения компенсации движения в горизонтальном направлении является четным числом, выбирают четный размер шага. Например, в качестве размера шага используют четное количество единичных длин.
Кроме того, является ли корректировка увеличением или уменьшением может быть выбрано в соответствии с соглашением между стороной декодера и стороной кодера, может быть явно указано на стороне кодера в потоке битов и выбирается на стороне декодера, основанного на явном указании, может быть выведено с использованием значения точности вектора движения окружающего соседнего блока, или может быть определенно на основании отношения соотношения между длиной аффинного блока изображения в горизонтальном направлении и длиной аффинного субблока изображения компенсации движения в горизонтальном направлении. Например, если отношение меньше, чем пороговое значение, выбирается уменьшение; в противном случае, выбирается увеличение.
Для упрощения алгоритма и обеспечения эффективности кодирования и декодирования, если определено, что длина аффинного блока изображения в горизонтальном направлении не является целым числом, кратным длине аффинного субблока изображения компенсации движения в горизонтальном направление, корректируют длину аффинного субблока изображения компенсации движения в горизонтальном направлении, то есть увеличивают на одну заданную единицу длины, и затем предшествующее решение не будет циклически выполняется до тех пор, пока длина аффинного блока изображения в горизонтальном направление представляет собой целое число, кратное скорректированной длине аффинного субблока изображения компенсации движения в горизонтальном направлении.
Дополнительно, для повышения эффективности и сокращения времени работы, длина аффинного субблока изображения компенсации движения в горизонтальном направлении может быть скорректирована до ближайшего значения, с помощью которого делят длину аффинного блока изображения в горизонтальном направлении. Например, длина аффинного субблока изображения компенсации движения в горизонтальном направлении равна 7, в то время, как длина аффинной блока изображения в горизонтальном направлении равна 16. В этом случае, длина аффинного субблока изображения компенсации изображения в горизонтальном направлении увеличивается на изменения 1 до 8, с помощью которого 16 делится. Аналогично, если длина аффинного субблока изображения компенсации движения в горизонтальном направлении составляет 5, длина аффинного субблока изображения компенсации движения в горизонтальном направлении уменьшается на 1, чтобы изменить до 4, с помощью которого 16 делится. Если разности между длиной аффинного субблока изображения компенсации движения в горизонтальном направлении и двумя соседними значениями, с помощью которых длина аффинного блока изображения в горизонтальном направлении делится, равны, например, длина аффинного субблока изображения компенсации движения в горизонтальном направлении составляет 6, длина аффинного блока изображения в горизонтальном направлении составляет 16, а также два значения, которые являются смежными с длиной 6 и с помощью которых 16 делится, равно 4 и 8, соответственно, корректировка может быть выбрана в соответствии с требованиями стороны кодера и стороны декодера. Например, если требуется низкая задержка, может быть выбрана корректировка, то есть увеличение. Если требуется высокое качество, выбирают корректировку, то есть уменьшение. Это не ограничивается в настоящем изобретении.
N
N+i
Дополнительно, на этапе S1201, когда определено, что длина аффинного блока изображения в горизонтальном направлении не является целым числом, кратным длине аффинного субблока изображения компенсации движения в горизонтальном направлении, чтобы еще больше упростить алгоритм, такая же таблица может быть отдельно установлена на стороне кодера и стороне декодера, и возможная максимальная длина аффинного блока изображения в горизонтальном направлении разделяется на множество интервалов, используя допустимый минимальный делитель в качестве начального значения, пример, 2. Продолжительность интервала составляет 2, где , и Wmax является возможно максимальной длиной аффинного блока изображения в горизонтальном направлении. Определяют интервал, в котором находится длина аффинного субблока изображения компенсации движения в горизонтальном направлении, и значение нижнего предела или значение верхнего предела интервала, в рамках которого длина аффинного субблока изображения компенсации движения в горизонтальном направлении, используют как окончательно определенную длину аффинного субблока изображения компенсации движения в горизонтальном направлении. Для правила получения значения нижнего предела или значения верхнего предела, относится к соглашению между стороной кодера и стороной декодера. Верхнее предельное значение или нижнее предельное значение приближенного интервала может быть явно указано, используя поток битов, или может быть выбрано посредством округления. С помощью приведенных выше таблиц, окончательная длина аффинного субблока изображения компенсации движения в горизонтальном направлении может быть определена с помощью таблицы поиска на основе начальной длины аффинного субблока изображения компенсации движения в горизонтальном направлении. Таким образом, этап корректировки длины аффинного субблока изображения компенсации движения в горизонтальном направлении на этапе S1201 можно заменить, сложность системы снижается и время вычисления уменьшается.
Возможно, чтобы дополнительно уменьшить сложность вычислений в решении, на этапе S1201, но не только если длина аффинного блока изображения в горизонтальном направлении представляет собой целое число, кратное длине аффинного субблока изображения компенсации движения в горизонтальном направлении, определяют, будет ли длина аффинного субблока изображения компенсации движения в горизонтальном направлении представляет собой целое число, кратное заданной длины S, что облегчает расчет. Более конкретно, должно ли быть определено, соответствует ли длина аффинного субблока изображения компенсации движения в горизонтальном направлении следующим условиям:
(1) Длина аффинного блока изображения в горизонтальном направлении представляет собой целое число, кратное длине аффинного субблока изображения компенсации движения в горизонтальном направлении; и (2) длина аффинного субблока изображения компенсации движения в горизонтальном направлении представляет собой целое кратное заданной длины S.
N
Если длина аффинного субблока изображения компенсации движения в горизонтальном направлении не отвечает двум условиям, корректируют длину аффинного субблока изображения компенсации движения в горизонтальном направлении, так что длина аффинного субблока изображения компенсации движения в горизонтальном направлении удовлетворяет условию (1) и условию (2). Более конкретно, длина аффинного блока изображения в горизонтальном направлении представляет собой целое число, кратное скорректированной длине аффинного субблока изображения компенсации движения в горизонтальном направлении, и также корректировать длину аффинного субблока изображения компенсации движения в горизонтальном направлении представляет собой целое число, кратное заданной длине. Заданная длина S, как правило, равно 4 или может быть значением, таким как 8, 16 или 32. Другими словами, S = 2, где N равно нулю или является положительным целым числом. Это решение применимо к аффинному блоку изображения в любой форме. Когда аффинный блок изображения разделяется в соответствии с правилом дерева квадрантов (Quad Tree), при условии, что выполнено любое из указанных выше условий, определяющих (1) и (2), другое условие может быть выполнено. Таким образом, только одно из определяющих условий должно быть активировано/применено. Последовательность для определения, выполнены ли условия (1) и (2) и последовательность для корректировки длины аффинного субблока изображения компенсации движения в горизонтальном направлении на основании результата определения, могут быть взаимозаменяемы в случайном порядке. Для различения, корректировка, выполняемая в течение первого времени, может упоминаться в качестве первой корректировки, а также корректировка, выполняемая во втором времени (в случае необходимости), может быть отнесена к повторной корректировке.
В качестве варианта, должна быть выполнена операция ограничения амплитуды длины, которая является аффинного субблока изображения компенсации движения в горизонтальном направлении, и что определяется вышеуказанным образом. Более конкретно, используют способ сравнения для обеспечения M нахождения в пределах диапазона от нижнего предела Tm до верхнего предела W. Tm является заданным значением и, как правило, равно 4, и W представляет собой длину аффинного блока изображения в горизонтальном направлении.
S1203. Пропорционально корректировать первое вертикальное расстояние, основываясь на пропорции точности вектора движения ко второй компоненте разности вектора движения, чтобы получить длину аффинного субблока изображения компенсации движения в вертикальном направлении; и определить, является ли длина аффинной блока изображения в вертикальном направлении целым числом, кратным длине аффинного субблока изображения компенсации движения в вертикальном направлении и, если длина аффинного блока изображения в вертикальном направлении не является целым числом, кратной длине аффинного субблока изображения компенсации движения в вертикальном направлении, корректировать длину аффинного субблока изображения компенсации движения в вертикальном направлении, так что длина аффинного блока изображения в вертикальном направлении представляет собой целое число, кратное скорректированной длине аффинного субблока изображения компенсации движения в вертикальном направлении.
N
В частности, пропорция точности вектора движения ко второй компоненте разности вектора движения представляет собой отношение точности вектора движения ко второй компоненте разности вектора движения. Продукт отношения и первого вертикального расстояния является длиной аффинного субблока изображения компенсации движения в вертикальном направлении, и может быть отнесена к начальной длине в вертикальном направлении. Может быть понятно, что начальная длина аффинного субблока изображения компенсации движения в вертикальном направлении может не быть целым числом, в некоторых случаях. В этом случае, начальная длина должна быть округлена. Для обеспечения точности выполняют округление вниз, как правило. Более конкретно, десятичная часть непосредственно отбрасывают. Например, значение начальной длины составляет 8,35 (то есть длина 8,35 единичных пикселей), и 8 непосредственно используются в качестве длины аффинного субблока изображения компенсации движения в вертикальном направлении. Конечно, может быть альтернативно использован принцип округления. Более конкретно, если дробная часть меньше 5, выполняют округление вниз; и, если дробная часть больше 5 то выполняется округление с повышением. Например, когда длина рассчитывается как 8,86, 9 используют в качестве длины. Для обеспечения эффективности работы, минимальное значение начальной длины не должно быть меньше, чем заданное значение, например, не меньше, чем заданное значение, например, 2, 4, 8 или 2. Заданное значение обычно устанавливают на 4. Начальная длина также не должна быть больше, чем длина аффинного блока изображения в вертикальном направлении. Соответствует ли начальная длина в вертикальном направлении или округленная начальная длина в вертикальном направлении, зависит от того, делится ли длина аффинного блока изображения в вертикальном направлении на начальную длину. Если длина аффинного блока изображения в вертикальном направлении делится на начальную длину, это указывает, может ли аффинный блок изображения быть разделен на целое количество субблоков в вертикальном направлении на основе начальной длины в вертикальном направлении или округленной начальной длины в вертикальном направлении. Способ корректировки, как правило, является способом, в котором начальная длина в вертикальном направлении или округленная начальная длина в вертикальном направлении постепенно увеличивается/уменьшается. Более конкретно, если определено, что длина аффинного блока изображения в вертикальном направлении не является целым числом, кратным длине аффинного субблока изображения компенсации движения в вертикальном направлении, корректируют длину аффинного субблока изображения компенсации движения в вертикальном направлении, то есть увеличение/уменьшение, с помощью одного или нескольких единичных длин, и затем предшествующее решение циклически выполняется до тех пор, пока длина аффинного блока изображения в вертикальном направлении не является целым числом, кратной откорректированной длины аффинного субблока изображения компенсации движения в вертикальном направлении. Единица длины, как правило, представляет собой один блок пикселей. Более конкретно, корректируют длину аффинного субблока изображения компенсации движения в вертикальном направлении, то есть увеличивают/уменьшают на 1. Без потери общности, другими словами, корректируют длину аффинного субблока изображения компенсации движения в вертикальном направлении, то есть увеличивают/уменьшают на фиксированный размер шага. Размер шага представляет собой значением корректировки, то есть базовый блок или амплитуда, используемые для корректировки длины аффинного субблока изображения компенсации движения в вертикальном направлении в каждом цикле. Размер шага, как правило, является одним блоком пикселей, или может быть другим значением, например, два пиксельных блоков. Возможно, размер шага/шаг корректировки, используемые в вышеприведенной корректировке может меняться в зависимости от соотношения начальной длины аффинного субблока изображения компенсации движения в вертикальном направлении. Например, когда начальная длина аффинного субблока изображения компенсации движения в вертикальном направлении представляет собой нечетное число, то выбирают нечетный размер шага. Например, нечетное количество единичных длин, например, одна единица длины, используют в качестве размера шага для корректировки. Когда начальная длина аффинного субблока изображения компенсации движения в вертикальном направлении является четным числом, выбирают четный размер шага. Например, четное количество единичных длин используют в качестве размера шага.
Дополнительно, является ли корректировка увеличением или уменьшением может быть выбрана в соответствии с соглашением между стороной декодера и стороной кодера, может быть явно указано на стороне кодера в потоке битов и выбирается на стороне декодера, основанного на явном указании, может быть выведено с использованием точности вектора движения окружающего соседнего блока, или может быть определенно на основании отношения соотношения между длиной аффинного блока изображения в вертикальном направлении и длиной аффинного субблока изображения компенсации движения в вертикальном направлении. Например, если отношение меньше, чем пороговое значение, выбирают уменьшение; в противном случае, выбирают увеличение.
Для упрощения алгоритма и обеспечения эффективности кодирования и декодирования, если определено, что длина аффинного блока изображения в вертикальном направлении не является целым числом, кратным длине аффинного субблока изображения компенсации движения в вертикальном направление, корректируют длину аффинного субблока изображения компенсации движения в вертикальном направлении, то есть увеличивают на одну заданную единицу длины и затем выполняют упомянутое решение циклически до тех пор, пока длина аффинного блока изображения в вертикальном направлении не будет представляет собой целое число, кратное скорректированной длине аффинного субблока изображения компенсации движения в вертикальном направлении.
Дополнительно, для повышения эффективности и сокращения времени работы, длина аффинного субблока изображения компенсации движения в вертикальном направлении может быть доведена до ближайшего значения, с помощью которого, длина аффинного блока изображения в вертикальном направлении делится. Например, длина аффинного субблока изображения компенсации движения в вертикальном направлении равна 7, в то время, как длина аффинного блока изображения в вертикальном направлении равна 16. В этом случае, длина аффинного субблока изображения компенсации движения в вертикальном направлении увеличивается на 1 для изменения до 8, с помощью которого 16 делится. Аналогично, если длина аффинного субблока изображения компенсации движения в вертикальном направлении равна 5, длина аффинного субблока изображения компенсации движения в вертикальном направлении уменьшается на 1, чтобы изменить до 4, с помощью которого 16 делится. Если разница между длиной аффинного субблока изображения компенсации движения в вертикальном направлении и два соседних значения, с помощью которых длина аффинного блока изображения в вертикальном направлении делится, равны, например, длина аффинного субблока изображения компенсации движения в вертикальном направлении равна 6, длина аффинного блока изображения в вертикальном направлении равна 16, и два значения, которые являются смежными с длиной 6 и с помощью которых 16 делится равно 4 и 8, соответственно, корректировка может быть выбрана в соответствии с требованиями стороны кодера и стороны декодера. Например, если требуется низкая задержка, может быть выбрана корректировка, то есть увеличение. Если требуется высокое качество, то выбирают корректировку, то есть уменьшение. Это не ограничивается в настоящем изобретении.
N
N+i
Дополнительно, на этапе S1203, когда определено, что длина аффинного блока изображения в вертикальном направлении не является целым числом, кратным длине аффинного субблока изображения компенсации движения в вертикальном направлении, чтобы еще больше упростить алгоритм, одинаковая таблица может быть отдельно установлена на стороне кодера и стороне декодера, и возможная максимальная длина аффинного блока изображения в вертикальном направлении разделяется на множество интервалов, используя допустимый минимальный делитель в качестве начального значения, для примера, 2. Длительность интервала 2, где , а Wmax является возможной максимальной длиной аффинного блока изображения в вертикальном направлении. Определяют интервал, в рамках которого находится длина аффинного субблока изображения компенсации движения в вертикальном направлении, и значение нижнего предела или значение верхнего предела интервала, в рамках которого находится длина аффинного субблока изображения компенсации движения в вертикальном направлении, используются как окончательная определенная длина аффинного субблока изображения компенсации движения в вертикальном направлении. Для правила получения значения нижнего предела или значения верхнего предела сделана ссылка на соглашение между стороной кодера и стороной декодера. Верхнее предельное значение или нижнее предельное значение приближенного интервала может быть явно указано, используя поток битов, или может быть выбрано посредством округления. С помощью приведенных выше таблиц, окончательная длина аффинного субблока изображения компенсации движения в вертикальном направлении может быть определена с помощью таблицы поиска на основе начальной длины аффинного субблока изображения компенсации движения в вертикальном направлении. Таким образом, этап корректировки длины аффинного субблока изображения компенсации движения в вертикальном направлении на этапе S1203 можно заменить, сложность системы снижается, и время вычисления уменьшается.
Возможно, для дополнительного снижения сложности вычислений в решении на этапе S1203 не только если длина аффинного блока изображения в вертикальном направлении представляет собой целое число, кратное длине аффинного субблока изображения компенсации движения в вертикальном направлении, но также если длина аффинного субблока изображения компенсации движения в вертикальном направлении представлять собой целое число, кратное заданной длине S, что облегчает вычисление. Более конкретно, необходимо определить, удовлетворяет ли длина аффинного субблока изображения компенсации движения в вертикальном направлении следующим условиям:
(1) Длина аффинного блока изображения в вертикальном направлении представляет собой целое число, кратное длине аффинного субблока изображения компенсации движения в вертикальном направлении; и (2) длина аффинного субблока изображения компенсации движения в вертикальном направлении представляет собой целое кратное заданной длины S.
n
Если длина аффинного субблока изображения компенсации движения в вертикальном направлении не отвечает двум условиям, длина аффинного субблока изображения компенсации движения в вертикальном направлении корректируют так, чтобы длина аффинного субблока изображения компенсации движения в вертикальном направлении удовлетворяет условию (1) и условию (2). Более конкретно, длина аффинного блока изображения в вертикальном направлении представляет собой целое число, кратное скорректированной длине аффинного субблока изображения компенсации движения в вертикальном направлении, и скорректированная длина аффинного субблока изображения компенсации движения в вертикальном направлении представляет собой целое число, кратное заданной длине. Заданная длина S, как правило, равна 4, или может быть значением, таким как 8, 16 или 32. Другими словами, S = 2, где n равно нулю или является положительным целым числом. Это решение применимо к аффинному блоку изображения в любой форме. Когда аффинный блок изображения делят в соответствии с правилом дерева квадрантов (Qual Tree), при условии, что любое из указанных выше условий (1) и (2) определения удовлетворено, другое условие может быть выполнено. Таким образом, только одно из определяющих условий должно быть активировано/применено. Последовательность для определения выполнения условия (1) и (2) и последовательность для корректировки длины аффинного субблока изображения компенсации движения в горизонтальном направлении на основании результата определения могут быть взаимозаменяемыми в случайном порядке. Для различия, выполняемая корректировка в течение первого времени, может упоминаться в качестве первой корректировки, а также корректировка, выполняемая во втором времени (в случае необходимости) может быть отнесена к повторной корректировке.
Упомянутые этапы S1201 и S1203 применимы к сценарию в решении 1 на основании трех контрольных точек. В сценарии на основании трех контрольных точек, отдельно вычисляют длины аффинного субблока изображения компенсации движения в горизонтальном направлении и вертикальном направлении. Для сценариев в решении 2 и решении 3, основанные на двух контрольных точках, может быть выполнен только этап S1201 или этап S1203 для независимого вычисления длины аффинного субблока изображения компенсации движения в горизонтальном направлении или длины аффинного субблока изображения компенсации движения в вертикальном направлении. Затем, длина аффинного субблока изображения компенсации движения в горизонтальном/вертикальном направлении или скорректированная длина аффинного субблока изображения компенсации движения в горизонтальном/вертикальном направлении используют в качестве начальной длины аффинного субблока изображения компенсации движения в другом направлении, то есть в вертикальном/горизонтальном направлении, и отдельно выполняют указанные выше определения, то есть:
определение, является ли длина аффинного блока изображения в вертикальном/горизонтальном направлении целым числом, кратным длине аффинного субблока изображения компенсации движения в вертикальном/горизонтальном направлении; или
определение, является ли длина аффинного блока изображения в вертикальном/горизонтальном направлении целым числом, кратным длине аффинного субблока изображения компенсации движения в вертикальном/горизонтальном направлении, и определение, является ли длина аффинного субблока изображения компенсации движения в вертикальном/горизонтальном направлении целым числом, кратным заданной длине S.
В сценарии решения 2 и решения 3 на основе двух контрольных точек, в соответствии с требованием, только длина аффинного субблока изображения компенсации движения в горизонтальном направлении может быть вычислена в решении с тремя контрольными точками, или только длина аффинного субблока изображения компенсации движения в вертикальном направлении может быть вычислена; и другой размер компоненты аффинного субблока изображения компенсации движения выводится или рассчитывается на основе одной компоненты, полученного размера, то есть длины в горизонтальном направлении или длины в вертикальном направлении. Очевидно, что, когда размер аффинного блока изображения является формой правильного 2Nx2N квадрата, поскольку длины аффинного блока изображения в горизонтальном направлении и вертикальном направлении являются одинаковыми, то необходимо будет определить только одну из длин аффинного блока изображения в горизонтальном направлении и вертикальном направлении.
Возможно, должна быть выполнена операция ограничения амплитуда по длине, которая является длиной аффинного субблока изображения компенсации движения в вертикальном направлении, что и определяют вышеуказанным образом. Более конкретно, используют способ сравнения для обеспечения M нахождения в пределах диапазона от нижнего предела Tm до верхнего предела W. Tm является заданным значением и, как правило, равно 4, и W представляет собой длину аффинного блока изображения в вертикальном направлении.
В частности, полученные разности  и  вектора движения, как правило, сравнительно невелики, что свидетельствует о том, что точность вектора движения каждого пикселя чрезмерно высока, например, 1/32 или 1/64. Чрезмерно высокая точность вектора движения мало способствует производительности сжатия видео, и вызывает огромное количество вычислений. Следовательно, аффинный блок делят на множество аффинных-MC блоков на основании ранее полученной ожидаемой точности  вектора движения, чтобы гарантировать, что точность вектора движения каждого аффинного MC блока достигает . Меньшее значение  и  не меньше .
Возможно, в этом варианте осуществления настоящего изобретения, предполагают, что расстояние по горизонтали между первой контрольной точкой и второй контрольной точкой является W, и вертикальное расстояние между третьей контрольной точкой и четвертой контрольной точкой представляет собой Н, и предполагают, что ширина аффинного МС блока составляет  или обозначается как М, и высота равна  или обозначается как N.
В сценарии в решении 1, определение разности вектора движения аффинного блока изображения на основании трех контрольных точек и получение размера аффинного субблока изображения компенсации движения может быть реализовано с помощью следующей формулы (43), то есть М и N определяются в соответствии с формулой (43) или (44):
и  (43); или
и  (44)
Это эквивалентно:
(45)
В сценарии в решении 2 определение разности вектора движения аффинного блока изображения на основании двух контрольных точек в горизонтальном направлении и получение размера аффинного субблока изображения компенсации движения может быть реализовано с помощью следующей формулы (46), то есть М и N определяются в соответствии с формулой (46):
(46)
Это эквивалентно:
Если  (47)
В сценарии в решении 3 определение разности вектора движения аффинного блока изображения на основании двух контрольных точек в вертикальном направлении и получение размера аффинного субблока изображения компенсации движения может быть реализовано с помощью следующей формулы (48), то есть М и N определяются в соответствии с формулой (48):
(48)
Это эквивалентно:
Если  (49)
После вычисления М и N по формулам (45), (47) и (49) для упрощения алгоритма, облегчают выполнение М и Н операции, а именно, требуется дополнительно определить, может ли быть равномерно разделен аффинный блок изображения с шириной W и высотой H на целое количество аффинных субблоков изображения компенсации движения. Более конкретно, необходимо определить, может ли W делится на М и Н делится ли на N. Если W является неделимым М и/или H является неделимым на N, значение, с помощью которого W и/или Н является неделимым, то есть М и/или N, корректируются, так что W делится на М, Н делится на N, и М и N удовлетворяют Тm ≤ M ≤ W и Tn ≤ N ≤ H.
Способ корректировки может быть следующим:
(1) Когда W является неделимыми на М, М постепенно уменьшаются/увеличиваются до тех пор W не будет делятся на М. При Н неделимом на N, N постепенно уменьшается/увеличивались до тех пор, пока Н делится на N. При M = N, либо только М и N должны быть скорректированы.
Возможно, верхний предел и нижний предел M и верхний предел, и нижний предел N ограничены, так что Тm ≤ M ≤ W, Tn ≤ N ≤ Н, Тm и Тn обычно устанавливают на 4.
(2) Используют таблица поиска: в построенной двумерной таблице, W и М являются входными, и выводят М, которое удовлетворяет условию; и Н и N являются входными и выводится N, которое удовлетворяет условию.
Возможно, после вычисления М и N по формулам (45), (47) и (49), М и N, кроме того, корректирует, так что W делится на М, Н делится на N, и М и Н каждый кратны S и удовлетворяется Тm ≤ M ≤ W и Тn ≤ N ≤ H.
Способ корректировки может быть следующим:
(1) Когда W является неделимым М или М не является кратным S, М постепенно уменьшаются до тех пор, пока W не делятся на М и М является кратным S. Если Н является неделимым на N или N не кратно S, то N постепенно уменьшается до тех пор, H не будет делиться на N и N является кратным S. S обычно устанавливается на 4. При M = N, только одно из М и N должна быть скорректирована.
Возможно, верхний предел и нижний предел M и верхний предел и нижний предел N ограничено, так что Тm ≤ M ≤ W, Tn ≤ N ≤ Н, Тm и Тn обычно устанавливаются на 4.
(2) Используют способ таблицы поиска: в построенной двумерной таблице, W и М являются входными, и выводят М, которое удовлетворяет условию; и Н и N являются входными и выводят N, которое удовлетворяет условию.
В частности, указанные выше решения могут быть реализованы с помощью следующего примера алгоритма кода в таблице 1.
Таким образом, в соответствии со способом декодирования видеоизображения в этом варианте осуществления настоящего изобретения, устройство декодирования определяет размер аффинного субблока изображения компенсации движения на основе определенной разности вектора движения и точности вектора движения аффинного блока изображения, расстояния между контрольными точками, размера аффинного блока изображения, так что аффинный блок изображения может быть равномерно разделен на множество аффинных субблоков изображения компенсации движения с тем же размером. Таким образом, способ реализуют с помощью аппаратных средств/программного обеспечения, а также сложность уменьшается. Доказано, с помощью экспериментов в настоящем изобретении, что сложность на стороне кодера может быть снижена на 50%, сложность на стороне декодера может быть уменьшена на 70%, и поддерживается 90% - 95% от производительности. Таким образом, технология предсказания с компенсацией движения на основе аффинной модели может быть эффективно применено на практике.
Возможно, как показано на фиг.13, S740 включает в себя следующие этапы:
S1301. Определить вектор движения каждого аффинного субблока изображения компенсации движения в аффинных субблоках изображения компенсации движения.
S1303. Определить сигнал предсказания с компенсацией движения каждого аффинного субблока изображения компенсации движения на основании вектора движения каждого аффинного субблока изображения компенсации движения.
S1305. Декодировать каждый аффинный субблок изображения компенсации движения на основании сигнала предсказания с компенсацией движения каждого аффинного субблока изображения компенсации движения.
Следует понимать, что в данном варианте осуществления настоящего изобретения, каждый аффинный МС блок может включать в себя множество пикселей, и вектор движения пикселей должен быть выбран из каждого аффинного MC блока в качестве вектора движения аффинного MC блока.
Возможно, в S1301, вектор движения пикселя на центральной позиции аффинного MC блока может быть выбран в качестве вектора движения аффинного MC блока, среднего значения векторов движения всех пикселей в аффинном MC блоке может быть использовано в качестве вектора движения аффинного MC блока, или вектор движения верхнего левого пикселя в аффинном MC блоке может быть выбран в качестве вектора движения аффинного MC блока. Тем не менее, это не ограничивается в настоящем изобретении.
Возможно, в этом варианте осуществления настоящего изобретения, сигнал граничного пикселя в каждом аффинном субблоке изображения компенсации движения фильтруется, и граничный пиксель является одной или несколькими строками пикселей на границе каждого аффинного субблока изображения компенсации движения.
Возможно, в этом варианте осуществления настоящего изобретения сигнал граничного пикселя включает в себя сигнал предсказании с компенсацией движения и/или восстановленный сигнал, и восстановленный сигнал представляет собой сумму сигнала предсказания с компенсацией движения и восстановленного остаточного сигнала.
В частности, блок, обозначенный на схеме сплошной жирной линией, представляет собой аффинный блок, блок, обозначенный на схеме сплошной тонкой линией, представляет собой аффинный MC блок, блок, обозначенный на схеме пунктирной линией, представляет собой пиксель на границе соседнего аффинного MC блока, и точка пересечения представляет собой пиксель. Область блока, обозначаемая пунктирной линий на фиг. 11, включает в себя две строки или два столбца пикселей в соседних аффинных MC блоках на соответствующих границах смежных аффинных MC блоках, или может включать в себя одну строку или один столбец, три строки или три столбца, или тому подобное пикселей на соответствующих границах соседних аффинных MC блоках. Поскольку векторы движения соседних аффинных MC блоков могут быть разными, сигналы предсказания, полученные из опорного изображения, не являются смежными в опорном изображении. Это вызывает разрыв сигналов предсказания на границах смежных аффинных MC блоков, что дополнительно вызывает разрыв остаточного сигнала, и влияет на производительность кодирования изображения/декодирования остаточного сигнала. Таким образом, рассмотрена фильтрация сигнала предсказания с компенсацией движения на границе аффинного MC блока.
Восстановленный сигнал, как правило, получают путем суммирования сигнала предсказания с компенсацией движения и восстановленного остаточного сигнала. Кодирование с потерями обычно выполняются на остаточном сигнале. Это приводит к искажению восстановленного остаточного сигнала относительно исходного остаточного сигнала. Искажение пикселей на границах смежных аффинных MC блоков могут быть различными. Например, значение пикселя на правой стороне в первом аффинном MC блоке становится больше из-за искажения, и значение пикселя на левой стороне в аффинном MC блоке, который является смежным с и справа от первого аффинного MC блока становится меньше из-за искажения. Это вызывает разрыв граничных значений пикселей восстановленных пикселей в аффинных МС блоках, и искажает субъективные и объективные эффекты. Таким образом, восстановленный сигнал должен быть отфильтрован.
Возможно, в этом варианте осуществления настоящего изобретения, фильтрация может быть выполнена с помощью фильтра нижних частот, так что значение пикселя в граничной области изменяется более плавно. Например, фильтрация выполняется с использованием фильтра Гаусса. Тем не менее, это не ограничивается в настоящем изобретении.
Возможно, в этом варианте осуществления настоящего изобретения, фильтрация может быть выполнена с использованием способа компенсации движения перекрывающихся блоков (Overlapped block motion compensation, «OBMC», для краткости). Предсказание с компенсацией движения выполняется на отфильтрованном пикселе с использованием вектора движения аффинного MC блока, примыкающий к отфильтрованному пикселю, и выполняют взвешенное усреднение на полученном сигнале предсказания с компенсацией движения и сигнале предсказания с компенсацией движения, полученного с использованием вектора движения отфильтрованного пикселя, чтобы получить конечный сигнал предсказания с компенсацией движения.
В соответствии с способом декодирования видеоизображения в этом варианте осуществления настоящего изобретения, устройство декодирования определяет размер аффинного субблока изображения компенсации движения на основе определенной разности вектора движения и точности вектора движения аффинного блока изображения, и расстояния между контрольными точками, и дополнительно корректируют размер аффинного субблока изображения компенсации движения на основании соотношения между размером аффинного блока изображения и размером аффинного субблока изображения компенсации движения, так что размер аффинного субблока изображения компенсации движения легко реализовать, и сложность уменьшается. Доказано с помощью экспериментов в настоящем изобретении, что сложность на стороне кодера может быть уменьшена на 50%, сложность на стороне декодера может быть уменьшена на 70%, и поддерживают производительность на уровне 90% до 95%. Таким образом, технология предсказания с компенсацией движения на основе аффинной модели может быть эффективно применена на практике.
Возможно, способ декодирования в настоящем изобретении, может также представлять собой следующее:
синтаксический анализ битового потока для получения разности вектора движения аффинного блока изображения и точности вектора движения аффинного блока изображения, где пиксели в аффинном блоке изображения имеют один и тот же параметр аффинного преобразования;
определение размера аффинного субблока изображения компенсация движения в аффинном блоке изображения на основании разности вектора движения, точности вектора движения и расстояния между контрольными точками в аффинном блоке изображения, где размер включает в себя длину в горизонтальном направлении и длину в вертикальном направлении, так что длина аффинного блока изображения в горизонтальном направлении представляет собой целое число, кратное длине аффинного субблока изображения компенсации движения в горизонтальном направлении, и длина аффинного блока изображения в вертикальном направлении представляет собой целое число, кратное длине аффинного субблока изображения компенсации движения в вертикальном направлении; и контрольные точки являются пикселями, используемые для определения разности вектора движения; и
выполнение обработки декодирования на аффинном блоке изображения на основании размера аффинного субблока изображения компенсации движения; или
синтаксический анализ битового потока для получения информации аффинного блока изображения;
определение размера аффинного субблока изображения компенсации движения в аффинном блоке изображения на основании информации аффинного блока изображения, где размер включает в себя длину в горизонтальном направлении и длину в вертикальном направлении, длину аффинного блока изображения в горизонтальном направлении представляет собой целое число, кратное длине аффинного субблока изображения компенсации движения в горизонтальном направлении, и длина аффинного блока изображения в вертикальном направлении представляет собой целое число, кратное длине аффинного субблока изображения компенсации движения в вертикальном направлении; и
выполнение обработки декодирования на аффинном блоке изображения на основании размера аффинного субблока изображения компенсации движения.
Таким образом, стороне декодера не требуется выполнять повторный расчет, а непосредственно использовать параметр, передаваемый стороной кодера на сторону декодера для определения размера аффинного субблока изображения компенсации движения. Таким образом, дополнительно снижают сложность вычисления.
Вышеприведенное изложение подробно описывается способ декодирования видеоизображения в соответствии с вариантами осуществления настоящего изобретения со ссылкой на фиг. 1 - фиг. 13. Сказанное дополнительно иллюстрирует, что способ реализации этого решения на стороне декодера и стороне кодера, в основном, одинаков. Для более четкого описания, ниже приведено изложение способа кодирования видеоизображения в соответствии с вариантами осуществления настоящего изобретения со ссылкой на фиг. 14 - фиг. 16. Следует отметить, что, так как связанные с ними операции на стороне кодера, по существу, являются такими же, как на стороне декодера, чтобы избежать повторения, детали реализации не описаны здесь еще раз.
Фиг.14 представляет собой блок-схему последовательности способа кодирования видеоизображения, в соответствии с вариантом осуществления настоящего изобретения.
Способ, показанный на фиг. 14, может быть выполнен с помощью устройства кодирования. Так, например, похожий на декодер, кодер, как правило, включает в себя блок предсказания, блок генерирования остаточного сигнала, блок преобразования, блок квантования, блок деквантования, блок обратного преобразования, блок восстановления, блок фильтра, буфер декодированного изображения и блок энтропийного кодирования. Блок энтропийного кодирования включает в себя блок обычного кодирования/декодирования CABAC и блок обходного кодирования/декодирования. Блок предсказания включает в себя блок межкадрового предсказания и блок внутрикадрового предсказания. Блок межкадрового предсказания включает в себя блок оценки движения и блок компенсации движения. В другом варианте осуществления кодер может включать в себя больше или меньше, или иные функциональные компоненты. По аналогии со способом декодирования, способ кодирования по настоящему изобретению, в основном, применяется к способу выполнения межкадрового предсказания с помощью блока межкадрового предсказания. Для детальной структуры каждого функционального блока кодера, обратитесь к правилам и описанию в предшествующем уровне техники, такому как стандарт H.265. Подробное описание в настоящем изобретении опущено. В настоящем изобретении, только следующий вариант осуществления используется для описания основного процесса адаптивного определения размера аффинного субблока изображения компенсации движения и выполнения кодирования в способе в этом варианте осуществления настоящего изобретения.
В частности, как показано на фиг. 14, способ 1400 включает в себя следующие этапы:
S1410. Определить разность вектора движения аффинного блока изображения.
S1430. Определить точность вектора движения аффинного блока изображения.
S1450. Определить размер аффинного субблока изображения компенсации движения в аффинном блоке изображения на основании разности векторов движения, точности вектора движения, расстояния между контрольными точками в аффинном блоке изображения, и размер аффинного блока изображения, где размер включает в себя длину в горизонтальном направлении и длину в вертикальном направлении, так что длина аффинного блока изображения в горизонтальном направлении представляет собой целое число, кратное длине аффинного субблока изображения компенсации движения в горизонтальном направлении, и длина аффинного блока изображения в вертикальном направлении представляет собой целое число, кратное длине аффинного субблока изображения компенсации движения в вертикальном направлении; и контрольные точки являются пикселями, используемые для определения разности вектора движения.
S1470. Выполнить обработку кодирования на аффинном блоке изображения на основании размера аффинного субблока изображения компенсации движения.
В частности, устройство кодирования определяет разность вектора движения аффинного блока изображения на основании определенных контрольных точек, определить точность вектора движения аффинного блока изображения, и определить размер аффинного субблока изображения компенсации движения в аффинном блоке изображения на основании определенной разности вектора движения и точности вектора движения, расстояния между контрольными точками, и размер аффинного блока изображения, где размер аффинного субблока изображения компенсации движения является размером, используемый для деления аффинного блока изображения, и аффинный блок изображения разделяют на множество аффинных субблоков изображения компенсации движения с одинаковым размером на основании размера разделения. Затем устройство кодирования кодирует аффинный блок изображения на основании аффинном субблоке изображения компенсации движения.
Таким образом, путем выполнения способа кодирования видеоизображения в этом варианте осуществления настоящего изобретения блок межкадрового предсказания определяет размер аффинного субблока изображения компенсации движения на основании определенной разности вектора движения и точности вектора движения аффинного блока изображения, расстояния между контрольными точками, и размер аффинного блока изображения, разбивают аффинный блок изображения на множество аффинных субблоков изображения компенсации движения с одним размером на основании размера аффинного субблока изображения компенсации движения и затем выполняет обработку кодирования. Таким образом, в процессе кодирования, аффинный субблок изображения компенсации движения с соответствующим размером может быть адаптивно выбран на основе изменения указанных выше параметров, кодирующая сложность уменьшается, и производительность кодирования, то есть эффективность сжатия, повышается.
Предпочтительно, S1410 включает в себя:
определение первой компоненты разности векторов движения на основании разности между векторами движения первой контрольной точки и второй контрольной точки, которые расположены на одной горизонтальной линии; и/или
определение второй компоненты разности вектора движения на основании разности между векторами движения третьей контрольной точкой и четвертой контрольной точкой, которые расположены на одной вертикальной линии.
Существует первое горизонтальное расстояние между первой контрольной точкой и второй контрольной точкой, и есть первое вертикальное расстояние между третьей контрольной точкой и четвертой контрольной точкой. Следует отметить, что «и/или» в решении на этапе S1410 конкретно указывает на следующие три различных технических решений:
Решение 1: способ определения разности вектора движения аффинного блока изображения на основании трех контрольных точек включает в себя:
определение первой компоненты разности векторов движения на основании разности между векторами движения первой контрольной точки и второй контрольной точки, которые расположены на одной и той же горизонтальной линии, и определение второй компоненты разности вектора движения на основе разности между векторами движения третьего контрольной точки и четвертой контрольной точки, которые расположены на одной и той же вертикальной линии.
Решение 2: способ определения разности вектора движения аффинного блока изображения на основании двух контрольных точек в горизонтальном направлении включает в себя: определение первой компоненты разности векторов движения на основании разности между векторами движения первой контрольной точки и второй контрольной точки, которые расположены на одной и той же горизонтальной линии.
Решение 3: способ определения разности вектора движения аффинного блока изображения на основании двух контрольных точек в вертикальном направлении включает в себя: определение второй компоненты разности векторов движения на основании разности между векторами движения третьей контрольной точки и четвертой контрольной точки, которые расположены на одной и той же вертикальной линии.
Следует понимать, что в данном варианте осуществления настоящего изобретения, первый компонент разности векторов движения является горизонтальной составляющей разности вектора движения, и второй компонент разности вектора движения представляет собой вертикальную составляющую разницы вектора движения. В решении 1 первый компонент разности вектора движения, второй компонент разности вектора движения совместно составляют разность вектора движения аффинного блока изображения. Тем не менее, в решении 2 и решении 3, первый компонент разности вектора движения, второй компонент разности вектора движения независимо друг от друга отражают разность вектора движения аффинного блока изображения. Другими словами, в решении 1, разность вектора движения аффинного блока изображения включает в себя первый компонент разности вектора движения, второй компонент разности вектора движения; в решении 2, разность вектора движения аффинного блока изображения включает в себя первый компонент разности вектора движения; и в решении 3, разность вектора движения аффинного блока изображения включает в себя третий компонент разности вектора движения. Следует также понимать, что в данном варианте осуществления настоящего изобретения, первый, второй, третий и четвертый только используются для различения пикселей и не должны представлять собой какое-либо ограничение на объем защиты настоящего изобретения. Например, первая контрольная точка также может упоминаться в качестве второй контрольной точки, и вторая контрольная точка может упоминаться в качестве первой контрольной точки.
Возможно, в этом варианте осуществления настоящего изобретения, первая контрольная точка и третья контрольная точка являются такими же пикселями. Более конкретно, три контрольные точки выбраны, и одна из трех контрольных точек находятся на одной горизонтальной линии в качестве одной из двух других контрольных точек, и расположены на одной вертикальной линии в качестве последней контрольной точки.
Возможно, в этом варианте осуществления настоящего изобретения первая контрольная точка, вторая контрольная точка, третья контрольная точка и четвертая контрольная точка являются вершинами аффинного блока. Предполагают, что четыре вершины в аффинном блоке, соответственно, обозначены как верхняя левая вершина, нижняя левая вершина, верхняя правая вершина и нижняя правая вершина.
В решении 1, любые три вершин в двух ортогональных направлениях могут быть выбраны для определения разности вектора движения аффинного блока. Например, верхняя левая вершина, нижняя левая вершина и верхняя правая вершина могут быть выбраны или могут быть выбраны верхняя левая вершина, верхняя правая вершина и нижняя правая вершина.
В решении 2, могут быть выбраны любые две вершины, расположенные на одной горизонтальной линии, чтобы определить разность вектора движения аффинного блока. Например, могут быть выбраны верхняя левая вершина и верхняя правая вершина или могут быть выбраны нижняя левая вершина и нижняя правая вершина.
В решении 3 могут быть выбраны любые две вершины, расположенные на одной и той же вертикальной линии, чтобы определить разность вектора движения аффинного блока. Например, могут быть выбраны верхняя левая вершина и нижняя левая вершина или могут быть выбраны верхняя правая вершина и нижняя правая вершина. Это не ограничивается в настоящем изобретении.
В качестве варианта, в этом варианте осуществления настоящего изобретения, может быть определена разница между компонентами, которые являются векторами движения первой контрольной точки и второй контрольной точки, и которые находятся в одном из двух направлений (горизонтальное направление и вертикальное направление, или называют направление х и направление у), в качестве первой компоненты разности вектора движения аффинного блока, и может быть определена разница между компонентами, которые имеют векторы движения третьей контрольной точки и четвертой контрольной точки в любом из двух направлений в качестве второй компоненты разности вектора движения аффинного блока. Способ определения разности вектора движения применяется к решениям 1, 2 и 3. В качестве альтернативы, в соответствии с фактическими потребностями сложности кодирования и производительности кодирования, значения между двумя разностями между компонентами векторов движения первой контрольной точки и второй контрольной точки в двух направлениях, может быть выбрана и определена в качестве первого компонента, и значение между двумя разностями между компонентами вектора движения третьей контрольной точки и четвертой контрольной точки в двух направлениях, может быть выбрана и определена в качестве второго компонента. Это не ограничивается в настоящем изобретении.
Вектор движения каждого из первой контрольной точки до четвертой контрольной точки, как правило, включает в себя две компоненты, то есть горизонтальную составляющую и вертикальную составляющую. Таким образом, в предшествующих этапах, определение первой компоненты разности вектора движения на основе разности между векторами движения первой контрольной точки и второй контрольной точки, которые расположены на одной горизонтальной линии, и определение второго компонента разности вектора движения на основе разности между векторами движения третьей контрольной точки и четвертой контрольной точки, которые расположены на одной вертикальной линии, может быть конкретно реализовано следующим образом:
определение первой горизонтальной составляющей разности и первой вертикальной составляющей разности между векторами движения первой контрольной точки и второй контрольной точки, и определение больше одной из первой горизонтальной составляющей разности и первой вертикальной составляющей разницы в качестве первого компонента из разности вектора движения; и
соответственно, определение второй горизонтальной составляющей разности и второй вертикальной составляющей разницы между векторами движения третьей контрольной точки и четвертой контрольной точки, и определением больше одной из второй горизонтальной составляющей разности и второй вертикальной составляющей разницы в качестве второго компонента разности вектора движения.
Возможно, в этом варианте осуществления настоящего изобретения, разность вектора движения получает на основе аффинной модели, то есть разности векторов движения получают путем определения параметров аффинного преобразования пикселя в аффинном блоке изображения. Следует отметить, что пиксели в аффинном блоке изображения имеют один и тот же параметр аффинного преобразования.
Соответственно, вышеприведенное этап определения первой горизонтальной составляющей разницы и первой вертикальной составляющей разницы между векторами движения первой контрольной точки и второй контрольной точки представляет собой, именно: определение первой горизонтальной составляющей разности и первой вертикальной составляющей разницы на основе параметра аффинного преобразования и первого горизонтального расстояния; и предшествующий этап определения второй горизонтальной составляющей разницы и второй вертикальной составляющей разницы между векторами движения третьей контрольной точки и четвертой контрольной точки представляет собой именно: определение второй горизонтальной составляющей разности и второй вертикальной составляющей разности на основании параметра аффинного преобразования и первого вертикального расстояния.
Следует понимать, что номера последовательности из указанных выше процессов не указывают на последовательность выполнения. Последовательность выполнения процессов должна быть определена на основе функций и внутренней логике процессов, и не должна представлять собой какое-либо ограничение на процессах реализации этого варианта осуществления настоящего изобретения.
Возможно, в этом варианте осуществления настоящего изобретения, модель аффинного преобразования может быть известной моделью 6-параметрового аффинного преобразования или может быть моделью предшествующего уровня техники 4-параметровой или 2-параметровой моделью аффинного преобразования. Модель 6-параметрого аффинного преобразования, в основном, применяется к сценарию в решении 1 на основании трех контрольных точек, и модель 4-параметрового аффинного преобразования, в основном, применяется для сценариев в решении 2 и решении 3 на основе двух контрольных точек. Для конкретного содержания, см описания способа декодирования в данном описании.
Возможно, в этом варианте осуществления настоящего изобретения могут быть определен вектор движения первой контрольной точки, вектор движения второй контрольной точки, вектор движения третьей контрольной точки и вектор движения четвертой контрольной точки для определения разности вектора движения аффинного блока изображения.
Соответственно, в сценарии в решении 1, разница между горизонтальной составляющей вектора движения первой контрольной точки и горизонтальной составляющей вектора движения второй контрольной точки определяется в качестве первого компонента горизонтальной разности; разница между вертикальной составляющей вектора движения первой контрольной точки и вертикальной составляющей вектора движения второй контрольной точки определяется как первая компонента вертикальной разности; разница между горизонтальной составляющей вектора движения третьей контрольной точки и горизонтальной составляющей вектора движения четвертой контрольной точки определяются в качестве второго компонента горизонтальной разности; и разница между вертикальной составляющей вектора движения третьей контрольной точки и вертикальной составляющей вектора движения четвертой контрольной точки определяются в качестве второго компонента вертикальной разности.
В сценарии в решении 2, разница между горизонтальной составляющей вектора движения первой контрольной точки и горизонтальной составляющей вектора движения второй контрольной точки определяется как первая компонента горизонтальной разности; и разница между вертикальной составляющей вектора движения первой контрольной точки и вертикальной составляющей вектора движения второй контрольной точки определяется как первая компонента вертикальной разности.
В сценарии в решении 3 разница между горизонтальной составляющей вектора движения третьей контрольной точки и горизонтальной составляющей вектора движения четвертой контрольной точки определяются в качестве второго компонента горизонтальной разности; и разница между вертикальной составляющей вектора движения третьей контрольной точки и вертикальной составляющей вектора движения четвертой контрольной точки определяются в качестве второго компонента вертикальной разности.
В частности, могут быть непосредственно определены векторы движения контрольных точек, и первый компонент и второй компонент разности векторов движения аффинного блока могут быть непосредственно получены путем вычисления разницы между компонентами векторов движения.
Возможно, в этом варианте осуществления настоящего изобретения первая контрольная точка и вторая контрольная точка являются двумя соседними пикселями, и третья контрольная точка и четвертая контрольная точка являются двумя смежными пикселями. Другими слова, контрольные точки не обязательно выбраны из четырех угловых точек, также упоминаемые как вершины, в аффинного блока изображения, но могут быть точками, которые находятся на любой позиции в аффинном блоке изображения и совместно установленные на стороне кодера и стороне декодера, что явно указано в битовом потоке с использованием сигнализации, или получены с помощью оценки или дублирования на основе контрольных точек в окружении аффинного блока изображения. В этом случае, определение первой горизонтальной составляющей разности, первой вертикальной составляющей разности, второй горизонтальной составляющей разницы и второй вертикальной составляющей разницу представляется собой именно следующее:
Определяют вектор движения первого пикселя, вектор движения второго пикселя и вектор движения третьего пикселя, где первый пиксель, второй пиксель и третий пиксель являются пикселями, которые не перекрываются с друг с другом; определяют второе горизонтальное расстояние и второе вертикальное расстояние между первым пикселем и вторым пикселем; определяют третье горизонтальное расстояние и третье вертикальное расстояние между первым пикселем и третьим пикселем; и определяют первую горизонтальную составляющую разности, первую вертикальную составляющую разницы, вторую горизонтальную составляющую разности и вторую вертикальную составляющую разности на основании вектора движения первого пикселя, вектор движения второго пикселя, вектора движения третьего пикселя, второго горизонтального расстояния, второго вертикального расстояния, третьего горизонтального расстояния и третьего вертикального расстояния. В решении 1 описан пример на основе трех контрольных точек. Как очевидно из приведенного выше примера, разница между решением 2 или решением 3 на основе двух контрольных точек и решения 1 на основе трех контрольных точек заключается: используют только первый компонент разности или второй компонент разницы в решении 1 в качестве разности вектора движения аффинного изображения на основе два контрольных точек.
Возможно, в этом варианте осуществления настоящего изобретения устройство кодирования может получить векторы движения всех контрольных точек посредством оценки движения и поиска, может получить векторы движения всех контрольных точек на основе окружающего блока изображения или может вычислить векторы движения всех контрольных точек на основе модели аффинного преобразования. В качестве альтернативы, устройство кодирования может получить векторы движения некоторых контрольных точек посредством оценки движения и поиска, и получить векторы движения других контрольных точек на основе соседнего блока изображения. В качестве альтернативы, устройство кодирования может получить векторы движения некоторых контрольных точек с помощью аффинной оценки движения и поиска, и вычислить векторы движения других контрольных точек на основе модели аффинного преобразования. В качестве альтернативы, устройство кодирования может получить векторы движения некоторых контрольных точек на основе соседнего блока изображения и вычислять векторы движения других контрольных точек на основе модели аффинного преобразования. Тем не менее, это не ограничивается в настоящем изобретении.
Возможно, в S1430 может быть определено первое заданное значение как точность вектора движения аффинного блока изображения; или точность вектора движения аффинного блока изображения может быть определена на основе признака соседнего блока изображения аффинного блока изображения. Соседний блок изображения представляет собой блок изображения рядом с аффинным блоком изображения в пространстве и/или во времени.
Возможно, как показано на фиг. 15, в частности, S1450 включает в себя следующие этапы.
S1501. Пропорционально корректировать первое горизонтальное расстояние, основываясь на соотношении точности вектора движения к первому компоненту разности вектора движения, чтобы получить длину аффинного субблока изображения компенсации движения в горизонтальном направлении; и определить длину аффинного блока изображения в горизонтальном направлении, является ли целым числом, кратным длине аффинного субблока изображения компенсации движения в горизонтальном направлении, и, если длина аффинного блока изображения в горизонтальном направлении является не целым числом, кратным длине аффинного субблока изображения компенсации движения в горизонтальном направлении, корректировать длину аффинного субблока изображения компенсации движения в горизонтальном направлении, так что длина аффинного блока изображения в горизонтальном направлении представляет собой целое число, кратное скорректированной длине аффинного субблока изображения компенсации движения в горизонтальном направлении.
N
В частности, пропорция точности вектора движения к первому компоненту разности вектора движения представляет собой отношение точности вектора движения к первому компоненту разности вектора движения. Продукт отношения и первого горизонтального расстояние является длиной аффинного субблока изображения компенсации движения в горизонтальном направлении, а также может быть отнесен к начальной длине в горизонтальном направлении. Это может быть понятно, что в некоторых случаях, начальная длина аффинного субблока изображения компенсации движения в горизонтальном направлении может не быть целым числом. В этом случае, начальная длина должна быть округлена. Для обеспечения точности выполняют, как правило, округление вниз. Более конкретно, десятичная часть непосредственно отбрасывают. Например, начальное значение длины составляет 8,35 (то есть длина 8,35 единичных пикселей), и 8 непосредственно используются в качестве длины аффинного субблока изображения компенсации движения в горизонтальном направлении. Конечно, может быть альтернативно использован принцип округления с повышением. Более конкретно, если дробная часть меньше 5, округление вниз выполняется; и, если дробная часть больше 5, выполняют округление с повышением. Например, когда длина рассчитывается как 8,86, 9 используют в качестве длины. Для обеспечения эффективности работы, минимальное значение начальной длины не должно быть меньше, чем заданное значение, например, не меньше, чем заданное значение, например, 2, 4, 8 или 2. Заданное значение обычно устанавливаются на 4. Начальная длина также не должна быть больше, чем длина аффинного блока изображения в горизонтальном направлении. Соответствует ли начальная длина в горизонтальном направлении или округленная начальная длина в горизонтальном направлении, зависит от того, делится ли длина аффинного блока изображения в горизонтальном направлении на начальную длину. Если длина аффинного блока изображения в горизонтальном направлении делится на начальную длину, то это указывает на то, может ли быть аффинный блок изображения разделен на целое количество субблоков в горизонтальном направлении на основе начальной длины в горизонтальном направлении или округленной начальной длины в горизонтальном направлении. Способ корректировки, как правило, является способом, в котором начальная длина в горизонтальном направлении или округленная начальная длина в горизонтальном направлении постепенно увеличивается/уменьшается. Более конкретно, если определено, что длина аффинного блока изображения в горизонтальном направлении не является целым числом, кратным длине аффинного субблока изображения компенсации движения в горизонтальном направлении, то корректируют длину аффинного субблока изображения компенсации движения в горизонтальном направлении, то есть увеличивают/уменьшают с помощью одного или нескольких единичных длин, и затем циклически выполняют предшествующее решение до тех пор, пока длина аффинного блока изображения в горизонтальном направлении не будет является целым числом, кратным откорректированной длине аффинного субблока изображения компенсации движения в горизонтальном направлении. Единица длины, как правило, является одним блоком пикселей. Более конкретно, корректируют длину аффинного субблока изображения компенсации движения в горизонтальном направлении, то есть увеличивают/уменьшают на 1. Без потери общности, другими словами, корректируют длину аффинного субблока изображения компенсации движения в горизонтальном направлении, то есть увеличивают/уменьшают на фиксированный размер шага. Размер шага является значением корректировки, то есть базовым блоком или амплитудой, используемой для корректировки длины аффинного субблока изображения компенсации движения в горизонтальном направлении в каждом цикле. Размер шага, как правило, представляет собой вышеупомянутый один блок пикселей или может быть другим значением, например, двумя блоками пикселей. Возможно, значение размера/шаг корректировки, используемое в вышеприведенной корректировке, может меняться в зависимости от соотношения первоначальной длины аффинного субблока изображения компенсации движения в горизонтальном направлении. Например, когда начальная длина аффинного субблока изображения компенсации движения в горизонтальном направлении представляет собой нечетное число, то выбирают нечетный размер шага. Например, нечетное количество единичных длин, например, одну единичную длину используют в качестве размера шага для корректировки. Когда начальная длина аффинного субблока изображения компенсации движения в горизонтальном направлении является четным числом, выбирают четный размер шага. Например, четное количество единичных длин используют в качестве размера шага.
Кроме того, является ли корректировка увеличением или уменьшением, может быть выбрано в соответствии с соглашением между стороной декодера и стороной кодера, может быть явно указано на стороне кодера в потоке битов и выбирается на стороне декодера, основанного на явном указании, может быть выведено с использованием точности вектора движения окружающего соседнего блока, или может быть определенно на основании отношения соотношения между длиной аффинного блока изображения в горизонтальном направлении и длиной аффинного субблока изображения компенсации движения в горизонтальном направлении. Например, если отношение меньше, чем пороговое значение, выбирается уменьшение; в противном случае, выбирается увеличение.
Для упрощения алгоритма и обеспечения эффективности кодирования и декодирования, если определено, что длина аффинного блока изображения в горизонтальном направлении не является целым числом, кратным длине аффинного субблока изображения компенсации движения в горизонтальном направление, корректируют длину аффинного субблока изображения компенсации движения в горизонтальном направлении, то есть увеличивают на одну заданную единицу длины, а затем предшествующее решение будет циклически выполняется до тех пор, пока длина аффинного блока изображения в горизонтальном направление не будет представлять собой целое число, кратное скорректированной длине аффинного субблока изображения компенсации движения в горизонтальном направлении.
Дополнительно, для повышения эффективности и сокращения времени работы, длина аффинного субблока изображения компенсации движения в горизонтальном направлении может быть доведена до ближайшего значения, с помощью которого длина аффинного блока изображения в горизонтальном направлении делится. Например, длина аффинного субблока изображения компенсации движения в горизонтальном направлении равна 7, в то время как длина аффинного блока изображения в горизонтальном направлении равна 16. В этом случае, длину аффинного субблока изображения компенсации движения в горизонтальном направлении увеличивается на 1 и изменяется до 8, с помощью которого 16 делится. Аналогично, если длина аффинного субблока изображения компенсация движения в горизонтальном направлении составляет 5, длина аффинного субблока изображения компенсации движения в горизонтальном направлении уменьшается на 1, чтобы изменить до 4, с помощью которого 16 делится. Если разница между длиной аффинного субблока изображения компенсации движения в горизонтальном направлении и два соседних значения, с помощью которого длина аффинного изображения в горизонтальном направлении делится, равны, например, длина аффинного субблока изображения компенсации движения в горизонтальном направлении составляет 6, длина аффинного блока изображения в горизонтальном направлении составляет 16, а также два значения, которые являются смежными с длиной 6 и с помощью которых 16 делится, равно 4 и 8, соответственно, корректировка может быть выбрана в соответствии с требованиями стороны кодера и стороны декодера. Например, если требуется низкая задержка, то выполняют корректировку увеличения. Если требуется высокое качество, то выполняют корректировку уменьшения. Это не ограничивается в настоящем изобретении.
N
N+i
Дополнительно, на этапе S1501, когда определено, что длина аффинного блока изображения в горизонтальном направлении не является целым числом, кратным длине аффинного субблока изображения компенсации движения в горизонтальном направлении, чтобы еще больше упростить алгоритм, такая же таблица может быть отдельно установлена на стороне кодера и стороне декодера, и возможная максимальная длина аффинного блока изображения в горизонтальном направлении разделяется на множество интервалов, используя допустимый минимальный делитель в качестве начального значения, для примера, 2. Диапазон интервала 2, где , Wmax - это возможно максимальная длина аффинного блока изображения в горизонтальном направлении. Определяют интервал, в котором находится длина аффинного субблока изображения компенсации движения в горизонтальном направлении, и значение нижнего предела или значение верхнего предела интервала, в котором находится длина аффинного субблока изображения компенсации движения в горизонтальном направлении, используются как окончательно определенная длина аффинного субблока изображения компенсации движения в горизонтальном направлении. Правило получения значения нижнего предела или значения верхнего предела, относится к соглашению между стороной кодера и стороной декодера. Верхнее предельное значение или нижнее предельное значение приближенного интервала может быть явно указано, используя поток битов, или может быть выбрано посредством округления. С помощью приведенных выше таблиц, окончательная длина аффинного субблока изображения компенсации движения в горизонтальном направлении может быть определена с помощью таблицы поиска на основе начальной длины аффинного субблока изображения компенсации движения в горизонтальном направлении. Таким образом, этап корректировки длины аффинного субблока изображения компенсации движения в горизонтальном направлении на этапе S1501 можно заменить, сложность системы снижается, и время вычисления уменьшается.
Возможно, для дополнительного уменьшения сложности вычислений в решении на этапе S1501, а не только усли длина аффинного блока изображения в горизонтальном направлении представляет собой целое число, кратное длине аффинного субблока изображения компенсации движения в горизонтальном направлении, также определяют, представляет собой ли длина аффинного субблока изображения компенсации движения в горизонтальном направлении целое число, кратное заданной длине S, что облегчает расчет. Более конкретно, должно быть определено, соответствует ли длина аффинного субблока изображения компенсации движения в горизонтальном направлении следующим условиям:
(1) Длина аффинного блока изображения в горизонтальном направлении представляет собой целое число, кратное длине аффинного субблока изображения компенсации движения в горизонтальном направлении; и (2) длина аффинного субблока изображения компенсации движения в горизонтальном направлении представляет собой целое кратное заданной длины S.
n
Если длина аффинного субблока изображения компенсации движения в горизонтальном направлении не отвечает двум условиям, то корректируют длину аффинного субблока изображения компенсации движения в горизонтальном направлении, так что длина аффинного субблока изображения компенсации движения в горизонтальном направлении удовлетворяет условию (1) и условию (2). Более конкретно, длина аффинного блока изображения в горизонтальном направлении представляет собой целое число, кратное скорректированной длине аффинного субблока изображения компенсации движения в горизонтальном направлении, а также скорректированная длина аффинного субблока изображения компенсации движения в горизонтальном направлении представляет собой целое число, кратное заданной длине. Заданная длина S, как правило, равна 4, или может быть значением, таким как 8, 16 или 32. Другими словами, S = 2, где n равно нулю или положительному целому числу. Это решение применимо к аффинному блоку изображения в любой форме. Когда аффинный блок изображения делят в соответствии с правилом дерева квадрантов (Qual Tree), при условии, что выполнено любое из указанных выше определяющих условий (1) и (2), может быть выполнено другое условие. Таким образом, только одно из определяющих условий должно быть активировано/применено.
Возможно, должна быть выполнена операция ограничения амплитуды по длине, которая является длиной аффинного субблока изображения компенсации движения в горизонтальном направлении, и что определяется вышеуказанным образом. Более конкретно, используют способ сравнения, чтобы позволить M находиться в пределах диапазона от нижнего предела Tm до верхнего предела W. Tm является заданным значением и, как правило, равно 4, и W представляет собой длину аффинного блока изображения в горизонтальном направлении.
S1503. Пропорционально корректировать первое вертикальное расстояние, основываясь на соотношении точности вектора движения ко второму компоненту разности вектора движения, чтобы получить длину аффинного субблока изображения компенсации движения в вертикальном направлении; и определить, является ли длина аффинного блока изображения в вертикальном направлении целым числом, кратным длине аффинного субблока изображения компенсации движения в вертикальном направлении и, если длина аффинного блока изображения в вертикальном направлении не является целым числом, кратным длине аффинного субблока изображения компенсации движения в вертикальном направлении, корректировать длину аффинного субблока изображения компенсации движения в горизонтальном направлении, так что длина аффинного блока изображения в горизонтальном направлении представляет собой целое число, кратное скорректированной длине аффинного субблока изображения компенсации движения в вертикальном направлении.
N
В частности, пропорция точности вектора движения ко второму компоненту разности вектора движения представляет собой отношение точности вектора движения ко второму компоненту разности вектора движения. Продукт отношения и первого вертикального расстояния является длиной аффинного субблока изображения компенсации движения в вертикальном направлении, а также может быть отнесен к начальной длине в вертикальном направлении. Очевидно, что начальная длина аффинного субблока изображения компенсации движения в вертикальном направлении может не быть целым числом, в некоторых случаях. В этом случае, начальная длина должна быть округлена. Для обеспечения точности, как правило, выполняют округление с понижением. Более конкретно, десятичная часть непосредственно отбрасывается. Например, начальное значение длины составляет 8,35 (то есть длина 8,35 единичных пикселей) и 8 непосредственно используются в качестве длины аффинного субблока изображения компенсации движения в вертикальном направлении. Конечно, может быть альтернативно использован принцип округления. Более конкретно, если дробная часть меньше 5, то выполняют округление вниз; и, если дробная часть больше 5, то выполняют округление с повышением. Например, когда длина рассчитывается как 8,86, то 9 используют в качестве длины. Для обеспечения эффективности работы, минимальное значение исходной длины не должно быть меньше, чем заданное значение, например, не меньше, чем заданное значение, например, 2, 4, 8 или 2. Заданное значение обычно устанавливаются на 4. Начальная длина также не должна быть больше, чем длина аффинного блока изображения в вертикальном направлении. Соответствует ли начальная длина в вертикальном направлении или округленная начальная длина в вертикальном направлении, зависит от того, делится ли длина аффинного блока изображения в вертикальном направлении на начальную длину. Если длина аффинной блока изображения в вертикальном направлении делится на начальную длину, то это указывает, может ли аффинный блок изображения быть разделен на целое количество субблоков в вертикальном направлении на основании начальной длины в вертикальном направлении или округленной начальной длины в вертикальном направлении. Способ корректировки, как правило, представляет собой способ, в котором начальная длина в вертикальном направлении или округленная начальная длина в вертикальном направлении постепенно увеличивается/уменьшается. Более конкретно, если определено, что длина аффинного блока изображения в вертикальном направлении не является целым числом, кратным длине аффинного субблока изображения компенсации движения в вертикальном направлении, то корректируют длину аффинного субблока изображения компенсации движения в вертикальном направлении, то есть увеличивают/уменьшают, с помощью одного или нескольких единичных длин, и затем циклически выполняют предшествующее решение до тех пор, тока длина аффинного блока изображения в вертикальном направлении не будет равна целому числу, кратному скорректированной длине аффинного субблока изображения компенсации движения в вертикальном направлении. Единица длины, как правило, представляет собой один блок пикселей. Более конкретно, длина аффинного субблока изображения компенсации движения в вертикальном направлении корректируется, то есть увеличивается/уменьшается на 1. Без потери общности, другими словами, корректируют длину аффинного субблока изображения компенсации движения в вертикальном направлении, то есть увеличивают/уменьшают на фиксированный размер шага. Размер шага является значением корректировки, то есть базовым блоком или амплитудой, используемым для корректировки длины аффинного субблока изображения компенсации движения в вертикальном направлении в каждом цикле. Размер шага, как правило, является упомянутым одним блоком пикселей или может быть другим значением, например, двумя блоками пикселей. Возможно, значение размера/шаг корректировки, используемое в вышеприведенной корректировке, может меняться в зависимости от соотношения начальной длины аффинного субблока изображения компенсации движения в вертикальном направлении. Например, когда начальная длина аффинного субблока изображения компенсации движения в вертикальном направлении представляет собой нечетное число, выбирают нечетный размер шага. Например, нечетное количество единичных длин, например, одна единица длины, используют в качестве размера шага для корректировки. Когда начальная длина аффинного субблока изображения компенсации движения в вертикальном направлении является четным числом, выбирают четный размер шага. Например, в качестве размера шага используют четное количество единичных длин.
Кроме того, является ли корректировка увеличением или уменьшением, может быть выбрано в соответствии с соглашением между стороной декодера и стороной кодера, может быть явно указано на стороне кодера в потоке битов и выбирается на стороне декодера на основе явного указания, может быть получено с использованием точности вектора движения окружающего соседнего блока, или может быть определено на основании отношения соотношения между длиной аффинного блока изображения в вертикальном направлении и длинами аффинного субблока изображения компенсации движения в вертикальном направлении. Например, если отношение меньше, чем пороговое значение, выбирается уменьшение; в противном случае, выбирается увеличение.
Для упрощения алгоритма и обеспечения эффективности кодирования и декодирования, если определено, что длина аффинного блока изображения в вертикальном направлении не является целым числом, кратным длине аффинного субблока изображения компенсации движения в вертикальном направлении, то корректируют длину аффинного субблока изображения компенсации движения в вертикальном направлении, то есть увеличивают на одну заданную единицу длины и затем циклический выполняется упомянутое решение до тех пор, пока длина аффинного блока изображения в вертикальном направлении не будет целым числом, кратным скорректированной длине аффинного субблока изображения компенсации движения в вертикальном направлении.
Дополнительно, для повышения эффективности и сокращения времени работы, длина аффинного субблока изображения компенсации движения в вертикальном направлении может быть доведена до ближайшего значения, с помощью которого длина аффинного блока изображения в вертикальном направлении делится. Например, длина аффинного субблока изображения компенсации движения в вертикальном направлении равна 7, в то время, как длина аффинного блока изображения в вертикальном направлении составляет 16. В этом случае, длина аффинного субблока изображения компенсации движения в вертикальном направлении увеличивается на 1 для изменения до 8, с помощью которого 16 делится. Аналогично, если длина аффинного субблока изображения компенсации движения в вертикальном направлении равна 5, то длина аффинного субблока изображения компенсации движения в вертикальном направлении уменьшается на 1, чтобы изменить до 4, с помощью которого 16 делится. Если разница между длиной аффинного субблока изображения компенсации движения в вертикальном направлении и два соседних значения, с помощью которого длина аффинного блока изображения в вертикальном направлении делится, равны, например, длина аффинного субблока изображения компенсации движения в вертикальном направлении равна 6, длина аффинного блока изображения в вертикальном направлении равна 16, и два значения, которые являются смежными с длиной 6 и с помощью которых 16 делится равно 4 и 8, соответственно, корректировка может быть выбрана в соответствии с требованиями стороны кодера и стороны декодера. Например, если требуется низкая задержка, то выполняют корректировку увеличения. Если требуется высокое качество, то выбирают корректировку уменьшения. Это не ограничивается в настоящем изобретении.
N
N+i
Дополнительно, на этапе S1503, когда определено, что длина аффинного блока изображения в вертикальном направлении не является целым числом, кратным длине аффинного субблока изображения компенсации движения в вертикальном направлении, чтобы еще больше упростить алгоритм, такая же таблица может быть отдельно установлена на стороне кодера и стороне декодера, и возможная максимальная длина аффинного блока изображения в вертикальном направлении разделяется на множество интервалов, используя допустимый минимальный делитель в качестве начального значения, для пример, 2. Интервал составляет 2, где  и Wmax это возможно максимальная длина аффинного блока изображения в вертикальном направлении. Определяют интервал, в рамках которого находится длина аффинного субблока изображения компенсации движения в вертикальном направлении, и значение нижнего предела или значение верхнего предела интервала, в рамках которого находится длина аффинного субблока изображения компенсации движения в вертикальном направлении, используются как окончательно определенная длина аффинного субблока изображения компенсации движения в вертикальном направлении. Правило для получения значения нижнего предела или значения верхнего предела установлено по соглашению между стороной кодера и стороной декодера. Верхнее предельное значение или нижнее предельное значение приближенного интервала может быть явно указано, используя поток битов, или может быть выбрано согласно округления. С помощью приведенных выше таблиц, окончательная длина аффинного субблока изображения компенсации движения в вертикальном направлении может быть определена с помощью таблицы поиска на основе начальной длины аффинного субблока изображения компенсации движения в вертикальном направлении. Таким образом, этап корректировки длины аффинного субблока изображения компенсации движения в вертикальном направлении на этапе S1503 можно заменить, сложность системы снижается, и время вычисления уменьшается.
В качестве варианта, для дополнительного уменьшения сложности вычислений в решении на этапе S1503, определяют не только если длина аффинного блока изображения в вертикальном направлении представляет собой целое число, кратное длине аффинного субблока изображения компенсации движения в вертикальном направлении, но определяют, будет ли длина аффинного субблока изображения компенсации движения в вертикальном направлении представляет собой целое число, кратное заданной длине S, что снизит сложность вычислений. Более конкретно, определяют, соответствует ли длина аффинного субблока изображения компенсации движения в вертикальном направлении следующим условиям:
(1) Длина аффинного блока изображения в вертикальном направлении представляет собой целое число, кратное длине аффинного субблока изображения компенсации движения в вертикальном направлении; и (2) длина аффинного субблока изображения компенсация движения в вертикальном направлении представляет собой целое кратное заданной длины S.
n
Если длина аффинного субблока изображения компенсации движения в вертикальном направлении не отвечает двум условиям, то корректируют длину аффинного субблока изображения компенсации движения в вертикальном направлении, так что длина аффинного субблока изображения компенсации движения в вертикальном направлении удовлетворяет условию (1) и условию (2). Более конкретно, длина аффинного блока изображения в вертикальном направлении представляет собой целое число, кратное скорректированной длине аффинного субблока изображения компенсации движения в вертикальном направлении, а также корректированная длина аффинного субблока изображения компенсации движения в вертикальном направлении представляет собой целое число, кратное заданной длине. Заданная длина S, как правило, равна 4, или может быть значением, таким как 8, 16 или 32. Другими словами, S = 2, где n равно нулю или положительному целому числу. Это решение применимо к аффинному блоку изображения в любой форме. Когда аффинный блок изображения разделяется в соответствии с правилом дерева квадрантов (Qual Tree), при условии, что любое из указанных выше определяющих условий (1) и (2) выполнено, другое условие может быть выполнено. Таким образом, только одно из определяющих условий должно быть активировано/применено.
В качестве варианта, должна быть выполнена операция ограничения амплитуды по длине, которая является длиной аффинного субблока изображения компенсации движения в вертикальном направлении, что и определяются вышеуказанным образом. Более конкретно, используют способ сравнения, чтобы обеспечить нахождение M в пределах диапазона от нижнего предела Tm до верхнего предела W. Tm является заданным значением и, как правило, равно 4, и W представляет собой длину аффинного блока изображения в вертикальном направлении.
Описание конкретных реализаций определения и корректировки размера аффинного субблока изображения компенсации движения может быть понятно со ссылкой на конкретное описание способа декодирования в данном документе.
Таким образом, в соответствии со способом кодирования видеоизображения в этом варианте осуществления настоящего изобретения, устройство кодирования определяет размер аффинного субблока изображения компенсации движения на основании определенной разности вектора движения и точности вектора движения аффинного блока изображения, расстояния между контрольными точками и дополнительно корректирует размер аффинного субблока изображения компенсации движения на основании соотношения между размером аффинного блока изображения и размером аффинного субблока изображения компенсации движения, так что размер аффинного субблока изображения компенсации движения легко реализовать, и сложность уменьшается. Доказано с помощью экспериментов в настоящем изобретении, что сложность на стороне кодера может быть уменьшена на 50%, сложность на стороне декодера может быть уменьшена на 70%, и поддерживают производительность на уровне 90% до 95%. Таким образом, технология предсказания с компенсацией движения на основе аффинной модели может быть эффективно применена на практике.
В качестве варианта, как показано на фиг.16, S1470 включает в себя следующие этапы:
S1601. Определить вектор движения каждого аффинного субблока изображения компенсации движения в аффинных субблоках изображения компенсации движения.
S1603. Определить сигнал предсказания с компенсацией движения каждого аффинного субблока изображения компенсации движения на основании вектора движения каждого аффинного субблока изображения компенсации движения.
S1605. Кодировать каждый аффинный субблок изображения компенсации движения на основании сигнала предсказания с компенсацией движения каждого аффинного субблока изображения компенсации движения.
Следует понимать, что в данном варианте осуществления настоящего изобретения, каждый аффинный МС блок может включать в себя множество пикселей, и должен быть выбран вектор движения пикселей из каждого аффинного MC блока в качестве вектора движения аффинного MC блока.
В качестве варианта, в S1601 может быть выбран вектор движения пикселя на центральной позиции аффинного MC блока в качестве вектора движения аффинного MC блока, может быть использовано среднее значения векторов движения всех пикселей в аффинном MC блоке в качестве вектора движения аффинного MC блока, или может быть выбран вектор движения верхнего левого пикселя в аффинном MC блоке в качестве вектора движения аффинного MC блока. Тем не менее, это не ограничивается в настоящем изобретении.
В качестве варианта, в этом варианте осуществления настоящего изобретения, сигнал граничного пикселя в каждом аффинном субблоке изображения компенсации движения фильтруется, и граничный пиксель представляет собой одну или несколько строк пикселей на границе каждого аффинного субблока изображения компенсации движения.
В качестве варианта, в этом варианте осуществления настоящего изобретения сигнал граничного пикселя включает в себя сигнал предсказании с компенсацией движения и/или восстановленный сигнал, и восстановленный сигнал представляет собой сумму сигнала предсказания с компенсацией движения и восстановленный остаточный сигнал.
Восстановленный сигнал, как правило, получают путем суммирования сигнала предсказания с компенсацией движения и восстановленного остаточного сигнала. Кодирование с потерями обычно выполняются на остаточный сигнале. Это приводит к искажению восстановленного остаточного сигнала относительно исходного остаточного сигнала. Искажение пикселей на границах смежных аффинных MC блоков могут быть различными. Например, пиксель на правой стороне в первом аффинном MC блоке становится больше, из-за искажения, и пиксель на левой стороне в аффинном MC блоке, который является смежным и справа от первого аффинного MC блока, становится меньше из-за искажения. Это вызывает разрыв граничных значений пикселей восстановленных пикселей в аффинных МС блоках, а также искажает субъективные и объективные эффекты. Таким образом, восстановленный сигнал должен быть отфильтрован.
В качестве варианта, в этом варианте осуществления настоящего изобретения, фильтрация может быть выполнена с помощью фильтра нижних частот, так что значение пикселя в граничной области изменяется более плавно. Например, фильтрация выполняется с использованием фильтра Гаусса. Тем не менее, это не ограничивается в настоящем изобретении.
В качестве варианта, в этом варианте осуществления настоящего изобретения, фильтрация может быть выполнена с использованием способа компенсации движения перекрывающихся блоков (Overlapped block motion compensation, «OBMC» для краткости). Выполняют предсказание с компенсацией движения для фильтрации пикселя с использованием вектора движения аффинного MC блока, примыкающий к отфильтрованному пикселю, и выполняют взвешенное усреднение на полученном сигнале предсказания с компенсацией движения и сигнале предсказания с компенсацией движения, полученного с использованием вектора движения отфильтрованного пикселя, чтобы получить конечный сигнал предсказания с компенсацией движения.
В соответствии со способом кодирования видеосигнала в этом варианте осуществления настоящего изобретения, устройство декодирования определяет размер аффинного субблока изображения движения компенсации на основании определенной разность вектора движения и точности вектора движения аффинного блока изображения, и расстояния между контрольными точками, и дополнительно корректирует размер аффинного субблока изображения компенсации движения на основании соотношения между размером аффинного блока изображения и размером аффинного субблока изображения компенсации движения, так что размер аффинного субблока изображения компенсации движения легко реализовать, и сложность уменьшается. Доказано, с помощью экспериментов в настоящем изобретении, что сложность на стороне кодера может быть уменьшена на 50%, сложность на стороне декодера может быть уменьшена на 70%, и поддерживается производительность на уровне 90% до 95%. Таким образом, технология предсказания с компенсацией движения на основе аффинной модели может быть эффективно применена на практике.
Ниже описывается оборудование 1700 для декодирования для осуществления настоящего изобретения со ссылкой на фиг. 17. Оборудование 1700 для декодирования включает в себя:
модуль 1710 определения разницы вектора движения, выполненный с возможностью определять разность вектора движения аффинного блока изображения;
модуль 1730 определения точности вектора движения, выполненный с возможностью определять точность вектора движения аффинного блока изображения;
модуль 1750 определения размера субблока изображения, выполненный с возможностью определять размер аффинного субблока изображения компенсации движения в аффинном блоке изображения на основании разности вектора движения, точности вектора движения, расстояния между контрольными точками в аффинном блоке изображениях и размера аффинного блока изображения, где размер включает в себя длину в горизонтальном направлении и длину в вертикальном направлении, так что длина аффинного блока изображения в горизонтальном направлении представляет собой целое число, кратное длине аффинного субблока изображения компенсации движения в горизонтальном направлении, и длина аффинного блока изображения в вертикальном направлении представляет собой целое число, кратное длине аффинного субблока изображения компенсации движения в вертикальном направлении; и контрольные точки являются пикселями, используемые для определения разности вектора движения; и
модуль 1770 декодирования, выполненный с возможностью выполнять обработку декодирования на аффинном блоке изображения на основании размера аффинного субблока изображения компенсации движения.
В частности, оборудование для декодирования определяет разность вектора движения аффинного блока изображения на основании определенных контрольных точек, определяет точность вектора движения аффинного блока изображения и определяет размер аффинного субблока изображения компенсации движения в аффинном блоке изображения на основании определенной разности вектора движения и точности вектора движения, расстояния между контрольными точками и размера аффинного блока изображения, где размером аффинного субблока изображения компенсации движения является размер, используемый для разделения аффинного блока изображения, и аффинный блок изображения разделяют на множество аффинных субблоков изображения компенсации движения с одинаковым размером на основании размера разделения. Затем оборудование для декодирования декодирует аффинный блок изображения на основании аффинных субблоков изображения компенсации движения. Модули оборудования для декодирования реализуют функции различных этапов в способе декодирования согласно настоящему изобретению. Более конкретно, модули реализуют функции всех этапов способа декодирования в способе по настоящему изобретению, например, этапы S710 - S740 до расширений и вариаций этих этапов. Для получения дополнительной информации сделана ссылка на описание способа декодирования в данном описании. Для краткости, детали не описаны здесь еще раз.
Ниже подробно описывается оборудование для кодирования в соответствии с вариантом осуществления настоящего изобретения со ссылкой на фиг. 18. Оборудование 1800 для кодирования включает в себя:
модуль 1810 определения разницы вектора движения, выполненный с возможностью определять разницу вектора движения аффинного блока изображения;
модуль 1830 определения точности вектора движения, выполненный с возможностью определять точность вектора движения аффинного блока изображения;
модуль 1850 определения размера субблока изображения, выполненный с возможностью определять размер аффинного субблока изображения компенсации движения в аффинном блоке изображения на основании разности вектора движения, точности вектора движения, расстояния между контрольными точками в аффинном блоке изображения и размера аффинного блока изображения, где размер включает в себя длину в горизонтальном направлении и длину в вертикальном направлении, так что длина аффинного блока изображения в горизонтальном направлении представляет собой целое число, кратное длине аффинного субблока изображения компенсации движения в горизонтальном направлении, и длина аффинного блока изображения в вертикальном направлении представляет собой целое число, кратное длине аффинного субблока изображения компенсации движения в вертикальном направлении; и контрольные точки являются пикселями, используемые для определения разности вектора движения; и
модуль 1870 кодирования, выполненный с возможностью выполнять обработку кодирования на аффинном блоке изображения на основании размера аффинного субблока изображения компенсации движения.
В частности, оборудование для кодирования определяет разность вектора движения аффинного блока изображения на основании определенных контрольных точек, определяет точность вектора движения аффинного блока изображения, и определяет размер аффинного субблока изображения компенсации движения в аффинном блоке изображения на основании определенной разности вектора движения и точности вектора движения, расстояния между контрольными точками и размера аффинного блока изображения, где размером аффинного субблока изображения компенсации движения является размер, используемый для разделения аффинного блока изображения, и аффинный блок изображения разделяют на множество аффинных субблоков изображения компенсации движения с одинаковым размером на основании размера разделения. Затем оборудование для кодирования кодирует аффинный блок изображения на основе аффинных субблоков изображения компенсации движения. Модули оборудования для кодирования реализовывают функции различных этапов способа кодирования согласно настоящему изобретению. Более конкретно, модули реализовывают функции всех этапов способа кодирования в способе по настоящему изобретению, например, этапы S1410 - S1470 и расширения и вариации этих этапов. Для получения дополнительной информации сделана ссылка на описание способа кодирования в данном документе. Для краткости детали не описаны в данном описании снова.
Как показано на фиг. 19, вариант осуществления настоящего изобретения дополнительно предоставляет устройство 1900 декодирования, включающее в себя процессор 1910, память 1930, и системную шину 1950. Процессор и память соединены с помощью системной шины. Память выполнена с возможностью хранить инструкции. Процессор выполнен с возможностью выполнять инструкции, сохраненные в памяти. Память хранит программный код. Процессор может вызвать программный код, сохраненный в памяти, для выполнения всех этапов и расширения этапов в способе 700 декодирования согласно настоящему изобретению, то есть все способы, описанные на фиг. 7 - фиг. 13.
Например, процессор может вызывать программный код, сохраненный в памяти, чтобы выполнить операции декодирования в полном объеме в способе по настоящему изобретению:
определения разности вектора движения аффинного блока изображения;
определения точности вектора движения аффинного блока изображения;
определение размера аффинного субблока изображения компенсации движения в аффинном блоке изображения на основании разности вектора движения, точности вектора движения, расстояния между контрольными точками в аффинном блоке изображения и размера аффинного блока изображения, где размер включает в себя длину в горизонтальном направлении и длину в вертикальном направлении, так что длина аффинного блока изображения в горизонтальном направлении представляет собой целое число, кратное длине аффинного субблока изображения компенсации движения в горизонтальном направлении и длина аффинного блока изображения в вертикальном направлении представляет собой целое число, кратное длине аффинного субблока изображения компенсации движения в вертикальном направлении; и контрольные точки являются пикселями, используемые для определения разности вектора движения; и
выполнение обработки декодирования на аффинном блоке изображения на основании размера аффинного субблока изображения компенсации движения.
В процессе декодирования может быть выбран субблок изображения с соответствующим размером и размер изображения субблока корректируется, так что аффинный блок изображения разделяется на множество аффинных субблоков изображения компенсации движения с тем же размером. Таким образом, сложность декодирования уменьшается и производительность декодирования повышается.
Следует понимать, что в данном варианте осуществления настоящего изобретения, процессор 1910 может представлять собой центральный блок обработки (Central Processing Unit, «CPU» для краткости). В качестве альтернативы, процессор 1910 может быть другим процессором общего назначения, цифровым сигнальным процессором (DSP), специализированной интегральной схемой (ASIC), программируемой пользователем вентильной матрицей (FPGA) или другим программируемым логическим устройством, дискретным логическим элементом или транзисторным логическим устройством, дискретным аппаратным компонентом или тому подобным. Процессор общего назначения может представлять собой микропроцессор или процессор может быть любым обычным процессором или тому подобным.
Память 1930 может включать в себя память только для чтения и оперативное запоминающее устройство, и предоставить инструкции и данные в процессор 1910. Часть памяти 1930 может дополнительно включать в себя энергонезависимое оперативное запоминающее устройство. Например, память 1930 может дополнительно хранить информацию о типе устройства.
В дополнение к шине данных, системная шина 1950 может дополнительно включать в себя шину питания, шину управления, шину сигнала состояния и тому подобное. Тем не менее, для четкого описания, различные виды шин на чертеже отмечены как системная шина 1950.
В процессе реализации, этапы вышеописанных способов могут быть реализованы с помощью аппаратных средств интегрированной логической схемы в процессоре 1910 или с помощью инструкции в виде программного обеспечения. Этапы способов, описанные со ссылкой на варианты осуществления настоящего изобретения, могут быть непосредственно выполнены в аппаратном процессоре, или могут быть выполнены с использованием комбинации аппаратных средств процессора и модуля программного обеспечения. Программный модуль может быть расположен на носителе информации, известным в данной области техники, таком как оперативное запоминающее устройство, флэш-память, память только для чтения, программируемой памяти только для чтения, электрически стираемой программируемой памяти или регистр. Носитель данных находятся в памяти 1930 и процессор 1910 считывает информацию из памяти 1930 и выполняет этапы, указанных выше способов в сочетании с аппаратной частью процессора.
Как показано на фиг. 20, вариант осуществления настоящего изобретения дополнительно предоставляет устройство 2000 кодирования, включающее в себя процессор 2010, память 2030 и системную шину 2050. Процессор 2010 и память 2030 соединены с помощью системной шины 2050. Память 2030 выполнена с возможностью хранить инструкции. Процессор 2010 выполнен с возможностью выполнять инструкцию, сохраненную в памяти 2030. Память 2030 устройства 2000 кодирования хранит программный код. Процессор 2010 может вызвать программный код, сохраненный в памяти 2030, чтобы выполнить все этапы и расширения этапов в способе 1400 кодирования согласно настоящему изобретению, то есть все этапы способа, описанные на фиг. 14 - фиг. 16. Например, процессор 2010 может вызвать программный код, хранящийся в памяти 2030 для выполнения следующих операций:
определение разности вектора движения аффинного блока изображения;
определения точности вектора движения аффинного блока изображения;
определение размера аффинного субблока изображения компенсации движения в аффинном блоке изображения на основании разности вектора движения, точности вектора движения, расстояния между контрольными точками в аффинном блоке изображения и размера аффинного блока изображения, где размер включает в себя длину в горизонтальном направлении и длину в вертикальном направлении, так что длина аффинного блока изображения в горизонтальном направлении представляет собой целое число, кратное длине аффинного субблока изображения компенсации движения в горизонтальном направлении и длина аффинного блока изображения в вертикальном направлении представляет собой целое число, кратное длине аффинного субблока изображения компенсации движения в вертикальном направлении; и контрольные точки являются пикселями, используемые для определения разности вектора движения; и
выполнение обработки кодирования на аффинном блоке изображения на основе размера аффинного субблока изображения компенсации движения.
В процессе кодирования может быть выбран субблок изображения с соответствующим размером и корректируют размер субблока изображения, так что аффинный блок изображения разделяется на множество аффинных субблоков изображения компенсации движения с тем же размером. Таким образом, сложность кодирования уменьшается и производительность кодирования повышается.
Следует понимать, что в данном варианте осуществления настоящего изобретения, процессор 2010 может представлять собой центральный блок обработки (Central Processing Unit, «CPU» для краткости). В качестве альтернативы, процессор 1910 может быть другим процессором общего назначения, цифровым сигнальным процессором (DSP), специализированной интегральной схемой (ASIC), программируемой пользователем вентильной матрицей (FPGA) или другим программируемым логическим устройством, дискретным логическим элементом или транзисторным логическим устройством, дискретным аппаратным компонентом или тому подобным. Процессор общего назначения может представлять собой микропроцессор или процессор может быть любым обычным процессором или тому подобным
Память 2030 может включать в себя память только для чтения и оперативное запоминающее устройство, и предоставить инструкции и данные в процессор 2010. Память 2030 может дополнительно включать в себя энергонезависимое оперативное запоминающее устройство. Например, память 2030 может дополнительно хранить информацию о типе устройства.
В дополнение к шине данных, системная шина 2050 может дополнительно включать в себя шину питания, шину управления, шину сигнала состояния и тому подобное. Тем не менее, для четкого описания, различные виды шин на чертеже отмечены как системная шина 2050.
В процессе реализации, этапы вышеописанных способов могут быть реализованы с помощью аппаратных средств интегрированной логической схемы в процессоре 2010, или с помощью инструкции в виде программного обеспечения. Этапы способов, описанные со ссылкой на варианты осуществления настоящего изобретения, могут быть непосредственно выполнены в аппаратном процессоре, или могут быть выполнены с использованием комбинации аппаратных средств процессора и модуля программного обеспечения. Программный модуль может быть расположен на материальном носителе данных, известном в данной области техники, такой как оперативное запоминающее устройство, флэш-память, память только для чтения, программируемой памяти только для чтения, электрически стираемой программируемой памяти или регистр. Носитель данных находятся в памяти 2030, и процессор 2010 считывает информацию из памяти 2030 года и выполняет этапы, указанных выше способов в сочетании с аппаратной частью процессора. Повторное подробное описание опущено.