СПОСОБ И УСТРОЙСТВО КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ ИНФОРМАЦИИ ИЗОБРАЖЕНИЙ
METHOD AND APPARATUS FOR ENCODING AND DECODING IMAGE INFORMATION

1. ОБЛАСТЬ ТЕХНИКИ
Изобретение относится к кодированию и декодированию изображений, и особенно видеопотоков, состоящих из ряда последовательных изображений. Более конкретно, изобретению относится к сжатию изображений или последовательностей изображений с помощью блочных преобразований, в которых используются различные режимы кодирования.
Таким образом, изобретение может быть применено в кодировании видеоинформации, которое осуществляется современными видеокодерами (MPEG, H.264 и т.п.) или будет осуществляться разрабатываемыми видеокодерами (ITU-T/VCEG (H.265) или ISO/MPEG (HVC)).
2. ПРЕДПОСЫЛКИ СОЗДАНИЯ ИЗОБРЕТЕНИЯ
Известны системы кодирования изображений (JPEG, JPEG-XR) или гибридные системы кодирования видеоинформации (MPEG, H.264), а также технические средства сжатия видеоинформации. Различные технологии кодирования видеоинформации используют блочное представление видеопоследовательности, например, технологии, осуществляющие стандарты сжатия видеоинформации, разработанные организацией MPEG (MPEG-1, MPEG-2, MPEG-4, Часть 2, и т.п.) или ITU-T (H.261, …, H.264/AVC).
В соответствии с технологией H.264, и как показано на фигуре 1а, каждое изображение 1 может быть разделено на сегменты, которые разделяются на макроблоки 10, которые, в свою очередь, разделяются на блоки 11. Блок состоит из группы пикселей.
Кодирование блока в классическом варианте осуществляется с использованием предсказания блока и кодирования дополнений, которые должны быть добавлены к предсказанному блоку. Предсказание осуществляется с помощью уже восстановленной информации (уже закодированных/декодированных предыдущих блоков в текущем изображении, предварительно закодированных изображений при кодировании видеоинформации и т.п.).
Для определенной технологии кодирования могут использоваться несколько режимов кодирования блоков. Режим кодирования в общем случае содержит две стадии: первая стадия - предсказание образца, который должен кодироваться, после чего следует вторая стадия кодирования дополнений предсказанного результата. Обычно блоки могут кодироваться в разных режимах, таких как внутрикадровое кодирование, межкадровое кодирование, кодирование с пропуском блоков.
Для этих разных режимов кодирования первая стадия предсказания, как правило, соответствует:
- временному предсказанию, то есть, со ссылкой на опорный блок, принадлежащий одному или нескольким изображениям; и/или
- пространственному предсказанию, в зависимости от блоков, расположенных рядом с блоком текущего изображения, которое должно быть закодировано.
Во втором случае предсказание может быть выполнено только на основе блоков, которые уже были закодированы.
В режиме внутрикадрового кодирования используется только информация, содержащаяся в самом изображении. Иначе говоря, предсказание блока изображения, кодируемого в режиме внутрикадрового кодирования, осуществляется с обращением к ранее закодированным блокам одного и того же изображения. Например, текущий блок кодируется с использованием величины текстуры уже закодированных/декодированных соседних блоков.
При межкадровом кодировании осуществляется предсказание с использованием компенсации движения из предыдущих закодированных изображений. Более конкретно, в этом типе кодирования учитывается одно (или несколько) опорных изображений. Для кодируемого блока текущего изображения устанавливается сдвиг или перемещение между опорным и текущим изображениями. Блок, используемый для предсказания кодируемого блока, представляет собой блок пикселей опорного изображения, сдвинутый на величину вектора движения.
Режим кодирования с "пропусками блоков" представляет собой специальный режим межкадрового кодирования с временным предсказанием, для которого в декодер не передается никакой информации. Иначе говоря, можно "пропустить" блок, если для этого блока уже определены составные части основной информации кодирования. В этом режиме кодирования предсказание осуществляется путем компенсации движения для текущего блока с использованием векторов движения соседних блоков, если они существуют в опорном изображении, и не выполняется кодирование/декодирование предсказанных отличий.
Затем для заданного режима кодирования устанавливаются параметры предсказания, и выполняется кодирование. В соответствии с системой кодирования Н.264 можно для каждого блока кодировать параметры предсказания, такие как режим кодирования (внутрикадровый, межкадровый, с пропуском блоков), тип разбиения, информация о предсказании (ориентация, опорное изображение и т.п.), информация о движении (вектор движения), информация о текстуре (направление экстраполяции величин текстуры), коэффициенты кодирования и т.п.
В соответствии с системой кодирования Н.264 изображения I кодируются с использованием пространственного предсказания (внутрикадровое предсказание), а изображения Р и В кодируются с использованием временного предсказания относительно других изображений I, P или В, закодированных/декодированных с использованием компенсации движения.
В процессе кодирования этих параметров предсказания (например, вектора движения для блока), для снижения затрат на их кодирование, их величины предсказываются по величинам этих параметров предсказания для уже закодированных соседних блоков с одинаковым режимом кодирования (например, векторы движения соседних блоков).
Например, вектор движения, использованный для блока, закодированного в межкадровом режиме, кодируется с использованием предсказания следующим образом:
- на первой стадии определяется вектор предсказания для вектора движения обрабатываемого блока; обычно такой вектор (средний вектор) определяется по срединным величинам компонентов векторов движения уже закодированных соседних блоков;
- на второй стадии кодируется ошибка предсказания, то есть разница между вектором движения текущего блока и ранее определенного вектора предсказания.
В работе "Алгоритм конкуренции для выбора и кодирования вектора движения", J.Jung и G.Laroche, ITU-T VCEG, AC06, July 2006, предложено расширение этого алгоритма предсказания вектора движения.
В предложенном алгоритме осуществляется конкуренция в группе, состоящей из нескольких возможных векторов предсказания (вместо среднего вектора движения, используемого в AVC), и определяется вектор, который используется наиболее эффективно.
Однако в этом алгоритме, использующем конкуренцию, определение группы прогнозируемых векторов движения представляет определенные сложности. Действительно, увеличение числа таких векторов (расширенная группа) обеспечивает улучшение предсказания, однако в этом случае повышаются затраты на определение наиболее эффективного вектора движения.
Поэтому имеется потребность в новой технологии, которая могла бы обеспечить улучшение характеристик кодирования определенного блока, ограничивая в то же время затраты на обработку и передачу информации и, соответственно, обеспечивая улучшение эффективности сжатия.
3. КРАТКОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
В изобретении предлагается новое техническое решение, в котором устранены вышеуказанные недостатки предшествующего уровня техники, в форме способа кодирования информации изображения, содержащей данные о движении, путем выбора вектора движения из группы по меньшей мере трех возможных векторов (кандидатов на выбор) по меньшей мере для одного текущего блока текущего изображения, которое должно быть закодировано.
В соответствии с изобретением такой способ кодирования включает стадию определения подгруппы оптимального выбора, содержащей часть указанных возможных векторов, стадию выбора вектора движения из векторов подгруппы оптимального выбора и стадию ввода в указанную информацию данных о назначении вектора движения, выбранного из векторов подгруппы оптимального выбора.
Таким образом, в основе изобретения лежит новый подход, обладающий признаками изобретения, к кодированию информации изображений и, более конкретно, к кодированию с предсказанием векторов движения с использованием конкуренции, в результате чего обеспечивается улучшение характеристик предсказания за счет более широкого выбора векторов движения, и в то же время обеспечивается повышение эффективности сжатия при применении в передатчике предлагаемого способа, который может быть воспроизведен по меньшей мере в одном приемнике.
Изобретение основывается на группе локально адаптируемых векторов движения, относящихся к блоку изображения, в результате чего обеспечивается выбор вектора движения из группы векторов движения, которая лучше адаптирована и указывается как подгруппа оптимального выбора, и в то же время обеспечивается ограничение затрат на обработку и передачу информации об использовании вектора движения.
В соответствии с одним из вариантов осуществления изобретения определение подгруппы оптимального выбора включает:
- стадию сравнения по меньшей мере двух первых возможных векторов, в результате чего формируется информация о близости этих первых векторов, которая может принимать первое значение, указывающее на то, что в соответствии с заданным критерием эти первые векторы идентичны или близки, или второе значение, указывающее на то, что в соответствии с заданным критерием эти первые векторы не являются идентичными или близкими;
- стадию формирования подгруппы оптимального выбора из одного из первых возможных векторов и по меньшей мере одного второго возможного вектора, отличного от первых возможных векторов, если информация о близости принимает первое значение;
- стадию формирования подгруппы оптимального выбора из первых возможных векторов, если информация о близости принимает второе значение.
Таким образом, предлагаемый в настоящем изобретении способ кодирования может использоваться для обеспечения для блока изображения, которое должно быть закодировано, подгруппы возможных векторов движения, которые адаптированы в большей степени, например, когда первые возможные векторы близки или равны, в соответствии с первым критерием.
Предсказание оптимизируется, поскольку вектор движения выбирается из этой подгруппы оптимального выбора, содержащей в принципе лучшие возможные векторы.
В соответствии с одним из признаков изобретения первые возможные векторы входят в подгруппу возможных векторов, связанную по меньшей мере с одним из блоков, который прилегает к текущему блоку и занимает заданное положение в пространстве и/или во времени.
Таким образом, первые возможные векторы движения могут быть связаны, например, со следующими блоками:
- с блоком, расположенным слева от текущего блока (обозначен А);
- с блоком, расположенным над текущим блоком (обозначен В);
- с блоком, расположенным выше и справа от текущего блока (обозначен С);
- с блоком, расположенным выше и слева от текущего блока (обозначен D);
- с блоком изображения, предшествующего текущему изображению и указываемого как опорное изображение, расположенным в том же месте, что и текущий блок (обозначен Т).
Первые возможные векторы движения также могут быть получены из срединных величин компонентов некоторых или всех векторов движения, связанных с блоками А, В, С и D (средний вектор движения).
Первые возможные векторы движения могут быть также связаны с блоком изображения, предшествующего текущему изображению, который расположен в той же позиции, что и текущий блок, но сдвинут на величину вектора движения (компенсация движения), или же может соответствовать векторам, полученным, например, в результате сравнения с образцом (шаблоном).
В соответствии с одним из вариантов первая подгруппа содержит возможный вектор, связанный с блоком А, расположенным непосредственно слева от текущего блока текущего изображения, и возможный вектор, связанный с блоком В, расположенным непосредственно над текущим блоком текущего изображения.
В соответствии с другим признаком изобретения второй возможный вектор является вектором, связанным с блоком изображения, предшествующего текущему изображению, который расположен в том же самом месте, что и текущий блок.
Таким образом, второй возможный вектор движения может быть связан, например, с блоком Т.
Этот вариант называется "АВ плюс Т", поскольку в нем используется первая группа "по умолчанию", содержащая возможные векторы движения, связанные с блоками А и В, и затем второй возможный вектор движения, связанный с блоком Т, если возможные векторы движения, связанные с блоками А и В, равны или близки.
В соответствии с другим признаком изобретения заданный критерий входит в группу, содержащую равенство первых возможных векторов и сравнение разницы между первыми возможными векторами с первым заданным пороговым значением.
Таким образом, когда первые векторы движения равны, то в предпочтительном варианте предлагается другой возможный вектор движения для действительного выбора из векторов движения (между первыми равными векторами движения и другим возможным вектором) в подгруппе оптимального выбора для задания их конкуренции.
Аналогично, когда первые векторы движения близки, то в предпочтительном варианте предлагается другой возможный вектор движения для действительного выбора из векторов движения, которые достаточно удалены (между первыми близкими векторами движения и другим возможным вектором), и, соответственно, для оптимизации задания конкуренции возможных векторов движения.
В соответствии с другим признаком изобретения сравнение повторяется по меньшей мере один раз на второй подгруппе, содержащей один из первых возможных векторов и по меньшей мере один второй возможный вектор, отличный от первых возможных векторов.
Таким образом, обеспечивается возможность предложения в подгруппе оптимального выбора возможных векторов движения, которые различаются и находятся на достаточном расстоянии друг от друга.
Например, когда первые возможные векторы движения близки или равны, и когда во второй сформированной группе возникает аналогичная ситуация, то в изобретении обеспечивается формирование третьей подгруппы, подгруппы оптимального выбора, содержащей достаточно удаленные возможные векторы движения.
В соответствии с одним из вариантов определение подгруппы оптимального выбора содержит стадию исключения возможного вектора, если разница между ним и по меньшей мере одним другим возможным вектором превышает второе заданное пороговое значение.
Таким образом, в изобретении также обеспечивается возможность не предлагать подгруппу оптимального выбора, содержащую возможные векторы движения, которые слишком удалены друг от друга (что создает трудности в задании конкуренции этих двух возможных векторов движения на стадии выбора), путем сравнения возможных векторов движения, которые должны присутствовать в этой подгруппе оптимального выбора.
В изобретении также предлагается компьютерная программа, которая содержит команды и обеспечивает осуществление вышеописанного способа кодирования, когда эта программа выполняется процессором.
Можно отметить, что предлагаемый в изобретении способ кодирования может быть осуществлен в разных вариантах, в частности с использованием аппаратных средств или программных средств.
В изобретении также предлагается устройство кодирования информации изображения, содержащей данные о движении, путем выбора вектора движения из группы по меньшей мере трех возможных векторов по меньшей мере для одного текущего блока изображения, которое должно быть закодировано.
В соответствии с изобретением такое устройство кодирования включает средство определения подгруппы оптимального выбора, содержащей часть указанных возможных векторов, средство выбора вектора движения из векторов подгруппы оптимального выбора и средство ввода в указанную информацию данных о назначении вектора движения, выбранного из векторов подгруппы оптимального выбора.
Такое устройство кодирования особенно подходит для осуществления вышеописанного способа кодирования. Это может быть, например, видеокодер типа MPEG или Н.264 или видеокодер по одному из будущих стандартов сжатия.
Это устройство кодирования конечно может иметь различные признаки, присущие предлагаемому в изобретении способу кодирования.
В изобретении также предлагается информация изображения, формируемая в соответствии с вышеописанным способом кодирования.
В соответствии с изобретением такая информация содержит по меньшей мере один текущий блок текущего изображения, которое должно быть закодировано, и данные о назначении вектора движения, выбранного из векторов подгруппы оптимального выбора, определяемой при кодировании и декодировании, и содержащей часть группы возможных векторов.
Такая информация конечно может содержать различные признаки, присущие предлагаемому в изобретении способу кодирования.
В изобретении предлагается также способ декодирования данных о движении, путем выбора вектора движения, выбранного при кодировании, из группы по меньшей мере трех возможных векторов движения, по меньшей мере для одного текущего блока текущего изображения, которое должно быть закодировано.
В соответствии с изобретением такой способ декодирования включает определение подгруппы оптимального выбора, содержащей часть указанных возможных векторов движения, аналогично определению, осуществляемому при кодировании, считывание данных о выборе, обеспечиваемых при кодировании и указывающих один из векторов подгруппы оптимального выбора, и выбор вектора движения из векторов подгруппы оптимального выбора в считанных данных о выборе.
В соответствии с одним из вариантов осуществления изобретения определение подгруппы оптимального выбора включает:
- стадию сравнения по меньшей мере двух первых возможных векторов, в результате чего формируется информация о близости этих первых векторов, которая может принимать первое значение, указывающее на то, что в соответствии с заданным критерием эти первые векторы идентичны или близки, или второе значение, указывающее на то, что в соответствии с заданным критерием эти первые векторы не являются идентичными или близкими;
- стадию формирования подгруппы оптимального выбора из одного из первых возможных векторов и по меньшей мере одного второго возможного вектора, отличного от первых возможных векторов, если информация о близости принимает первое значение;
- стадию формирования подгруппы оптимального выбора с первыми возможными векторами, если информация о близости принимает второе значение.
Таким образом, предлагаемый в изобретении способ декодирования обеспечивает возможность при приеме и считывании информации кодирования, и более конкретно данных о выборе, определять вектор движения, соответствующий кодируемому текущему блоку, из подгруппы оптимального выбора, определяемой таким же образом, как и в способе кодирования.
В изобретении также предлагается компьютерная программа, которая содержит команды и обеспечивает осуществление вышеописанного способа декодирования, когда эта программа выполняется процессором.
Можно отметить, что предлагаемый в изобретении способ кодирования может быть осуществлен в разных вариантах, в частности с использованием аппаратных средств или программных средств.
Этот способ декодирования конечно может иметь различные признаки, присущие предлагаемому в изобретении способу кодирования.
В изобретении предлагается также устройство декодирования данных о движении, путем выбора вектора движения, выбранного при кодировании, из группы по меньшей мере трех возможных векторов движения, по меньшей мере для одного текущего блока текущего изображения, которое должно быть закодировано.
В соответствии с изобретением такое устройство декодирования содержит средство определение подгруппы оптимального выбора, содержащей часть указанных возможных векторов движения, аналогично определению, осуществляемому при кодировании, средство считывания данных о выборе, обеспечиваемых при кодировании и указывающих один из векторов подгруппы оптимального выбора, и средство выбора вектора движения из векторов подгруппы оптимального выбора из считанных данных о выборе.
Такое устройство декодирования особенно подходит для осуществления вышеописанного способа декодирования. Это может быть, например, видеодекодер типа MPEG или Н.264 или видеодекодер по одному из будущих стандартов сжатия.
Это устройство декодирования конечно может иметь различные признаки, присущие предлагаемому в изобретении способу декодирования.
4. КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Другие признаки и достоинства изобретения станут более понятными из нижеприведенного описания предпочтительного варианта его осуществления, который является всего лишь его иллюстративным, неограничивающим примером, и из прилагаемых чертежей, на которых показано:
- фигура 1a - схема разбиения изображения на блоки (уже описывалась выше при ссылках на предшествующий уровень техники);
- фигура 1b - схема расположения заданного блока относительно соседних блоков;
- фигура 2а - блок-схема основных стадий способа кодирования в соответствии с одним из вариантов осуществления изобретения;
- фигура 2b - более подробная блок-схема стадий способа кодирования в соответствии с этим вариантом осуществления изобретения;
- фигура 3а - блок-схема основных стадий способа декодирования в соответствии с одним из вариантов осуществления изобретения;
- фигура 3b - более подробная блок-схема стадий способа декодирования в соответствии с этим вариантом осуществления изобретения;
- фигуры 4, 5 - блок-схемы устройств кодирования и декодирования, соответственно, в соответствии одним из вариантов осуществления изобретения.
5. ОПИСАНИЕ ВАРИАНТА ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
5.1 Принцип изобретения
Принцип изобретения заключается в использовании группы возможных векторов движения (кандидатов для выбора), которые представляют собой локально адаптивные переменные, для выбора вектора движения путем конкуренции между векторами группы. В соответствии с изобретением адаптация может осуществляться для каждого блока изображения, которое должно быть закодировано, в соответствии с величинами возможных векторов движения первой группы.
Таким образом, в соответствии с изобретением кодирование данных о движения путем конкуренции между векторами движения осуществляется на основе автоматической адаптации, от одного блока к другому в пределах изображения, которое должно быть закодировано, группы векторов движения, которые должны использоваться для установления конкуренции между ними.
Обычно для кодирования с предсказанием векторов движения путем использования конкуренции, для блока изображения, которое должно быть закодировано, рассматривается группа возможных векторов движения, из которых выбирается и кодируется вектор движения. Эти возможные векторы движения могут быть связаны по меньшей мере с одним из блоков, непосредственно прилегающих к текущему блоку, для предварительно заданного положения в пространстве и/или во времени, как это показано на фигуре 1b.
Например, возможные векторы движения для кодирования текущего блока Х текущего изображения Iс могут быть связаны с соседними блоками А, В, С или D в пространстве и/или с соседним блоком Т во времени опорного изображения Iref.
Возможные векторы движения могут быть также связаны с блоком изображения, предшествующего текущему изображению, который расположен в той же позиции, что и текущий блок, но сдвинут на величину вектора движения (компенсация движения), или же може соответствовать векторам, полученным, например, в результате сравнения с образцом (шаблоном).
5.2 Описание вариантов осуществления предложенного способа кодирования
В соответствии с одним из вариантов осуществления изобретения, блок-схема которого представлена на фигуре 2а, для текущего блока изображения, которое должно быть закодировано, имеется группа Е возможных векторов (р1, р2, р3, …) движения для выбора вектора движения, который должен использоваться для рассматриваемого блока.
На первой стадии 20 из группы Е выбирается подгруппа возможных векторов движения, которая является подгруппой оптимального обнаружения. Эта стадия 20 определения более подробно показана ниже, на фигуре 2b.
После того как эта подгруппа оптимального обнаружения определена, между содержащимися в ней возможными векторами движения осуществляется конкуренция в соответствии с известными способами (см., например, публикацию "Алгоритм конкуренции для выбора и кодирования вектора движения", J.Jung и G.Laroche, ITU-T VCEG, АСОб, July 2006, уже упоминавшуюся в связи с рассмотрением предшествующего уровня техники) для выбора на стадии 21 вектора р движения, который должен быть закодирован для рассматриваемого блока.
Наконец, на стадии 22 в поток информации вводятся данные для указания этого выбранного вектора р движения, чтобы декодирующее устройство могло также выбрать этот вектор для декодирования рассматриваемого блока.
Далее более подробно описываются различные стадии, обеспечивающие формирование оптимальной группы обнаружения, со ссылками на фигуру 2b.
На стадии 201 осуществляется сравнение по меньшей мере двух векторов движения группы Е, обозначенных, например, р1 и р2. Необходимо отметить, что такое сравнение может также осуществляться для большего числа векторов движения, в зависимости от числа векторов, для которых может быть задана конкуренция. В зависимости от выбранного количества векторов движения увеличиваются или уменьшаются затраты на обработку и передачу информации, и поэтому выбор количества векторов движения определяется как функция характеристик производительности, необходимой для кодирования информации движения и, соответственно, необходимой степени сжатия.
Эта первая стадия сравнения дает возможность определить, могут ли эти два первых вектора р1 и р2 движения сформировать группу оптимальных векторов движения с точки зрения возможности их конкуренции.
Например, вектор р1 может быть связан с блоком А, и вектор р2 может быть связан с блоком В текущего изображения (см. фигуру 1b). Этот выбор определяется заранее и известен декодеру, так что он может использовать способ декодирования, идентичный использованному способу кодирования. Действительно, как уже указывалось со ссылками на фигуры 3а и 3b, способ декодирования содержит те же самые стадии, что и способ кодирования, и декодеру известно определенное количество параметров, использованных кодером для оптимизации затрат на обработку информации.
В соответствии с первой модификацией рассматриваемого варианта эта стадия 201 сравнения состоит из проверки равенства первых двух векторов р1 и р2 движения.
Если векторы р1 и р2 движения равны, то на стадии 21 нет необходимости задавать конкуренцию этих векторов, и равенство р1=р2 определяет вектор движения, который должен быть закодирован для текущего блока. Поэтому в этом случае для оптимизации предсказания целесообразно на стадии 203 сформировать другую группу возможных векторов движения, которые не равны, из и по меньшей мере одного другого вектора р3 из группы Е.
Эта подгруппа, указываемая как подгруппа оптимального обнаружения, содержит, например, векторы р1 (=р2) и р3, где вектор р3 может быть связан, например, с блоком Т опорного кадра (см. фигуру 1b). Аналогично, как и в случае выбора первых векторов р1 и р2 движения, выбор р3 определен заранее и известен декодеру.
Затем выбор вектора движения, который должен быть закодирован для рассматриваемого блока, осуществляется на стадии 21, ранее описанной со ссылками на фигуру 2а, из этой подгруппы оптимального обнаружения. Поэтому выбранным вектором р будет либо вектор р1, либо вектор р3.
С другой стороны, во втором случае, если векторы р1 и р2 движения не равны, то на стадии 202 будет сформирована подгруппа оптимального обнаружения, содержащая векторы р1 и р2.
Затем на стадии 21, ранее описанной со ссылками на фигуру 2а, осуществляется выбор вектора движения, который должен быть закодирован для рассматриваемого блока, из этой подгруппы оптимального обнаружения. Поэтому выбранным вектором р будет либо вектор р1, либо вектор р2.
В двух предыдущих случаях стадия 22 введения в поток информации данных, указывающих выбранный вектор р движения, как было указано выше со ссылками на фигуру 2а, осуществляется для обеспечения возможности выбора этого вектора движения декодирующим устройством для декодирования рассматриваемого блока.
В соответствии со второй модификацией рассматриваемого варианта стадия 201 сравнения состоит из проверки близости первых двух векторов р1 и р2 движения.
Эта проверка близости может содержать сравнение разницы между первыми возможными векторами движения с заданным пороговым значением. Это пороговое значение определяется согласованно кодером и декодером и может быть переменным внутри изображения.
Таким образом, если векторы р1 и р2 достаточно близки, то стадия 21 задания конкуренции этих двух векторов не будет оптимальной из-за их близости. Поэтому в этом случае для оптимизации предсказания целесообразно на стадии 203 сформировать другую группу возможных векторов движения, которые не будут близкими, из р1 (или р2, или же снова из средней величины амплитуд векторов р1 и р2 движения) и по меньшей мере одного другого вектора р3 из группы Е.
Следующие стадии 21 и 22 будут такими же, что и в первой модификации.
В соответствии с третьей модификацией рассматриваемого варианта (на фигурах не иллюстрируется) перед формированием подгруппы оптимального обнаружения выполняется дополнительная проверка для исключения некоторых возможных векторов движения, имеющихся в группе Е, которые слишком удалены от первого вектора р1 движения.
Таким образом, если имеет место случай, в котором первые два вектора р1 и р2 равны или близки, то в соответствии с вышеописанными стадиями для формирования подгруппы оптимального обнаружения выбирается третий вектор р3. Как уже указывалось, этот выбор определяется заранее и может содержать, например, выбор вектора р3, связанного с блоком Т опорного изображения.
Однако в некоторых случаях может оказаться, что векторы р3 и р1 слишком далеки друг от друга или слишком близки для задания их в качестве конкурентов.
Этот альтернативный вариант предлагаемого в изобретении способа кодирования дает возможность устранить эти особенные случаи путем исключения или признания недействительным вектора р3 в качестве возможного вектора движения и использования другого вектора р4, также предварительного определенного, для формирования вместе с вектором р1 подгруппы оптимального обнаружения.
Поэтому эта дополнительная проверка может представлять собой, например, сравнение величин векторов р1 и р3 и исключение вектора р3, если результат сравнения больше или меньше заданного порогового значения.
Эта дополнительная проверка может также представлять собой сравнение амплитуды вектора р3 с заданным пороговым значением, и если амплитуда вектора р3 больше или меньше этого заданного порогового значения, то вектор р3 исключается.
Например, выражение для этого заданного порогового значения может иметь следующий вид:
<mrow><msqrt><mrow><mo stretchy="false">(</mo><mfrac><mrow><mrow><mo>(</mo><mrow><mn>1</mn><mo>−</mo><mi>p</mi></mrow><mo>)</mo></mrow></mrow><mi>p</mi></mfrac><mo stretchy="false">)</mo></mrow></msqrt></mrow>
где р соответствует вероятности выбора возможного вектора р3 движения, когда задается конкуренция векторов р1 и р3, причем эта вероятность р может быть переменной величиной, которая изменяется по результатам обучения.
Эта модификация также позволяет улучшить эффективность предсказания.
В соответствии с четвертой модификацией рассматриваемого варианта, если вектор р1 или р2 отсутствует (например, текущий блок расположен на левом краю изображения, то блок А отсутствует, и поэтому отсутствует также вектор движения, связанный с блоком А, или же блок А закодирован во внутрикадровом или в межкадровом режиме, однако с использованием другого опорного изображения и т.д.), то подгруппа оптимального обнаружения непосредственно формируется из векторов р2 и р3, если отсутствует вектор р1, или из векторов р1 и р3, если отсутствует вектор р2.
В соответствии со вторым вариантом (на фигурах не показан) возможна итерация стадии сравнения возможных векторов движения для обеспечения максимальной оптимизации формирования подгруппы оптимального обнаружения.
Например, если первые два вектора р1 и р2 движения определяются как равные или близкие, то в соответствии с вышеописанным вариантом формируется подгруппа, содержащая вектор р1 и другой вектор р3. В соответствии с предыдущим вариантом выбор вектора движения, который должен быть закодирован для текущего блока, осуществляется из этих двух векторов р1 и р3.
Однако в отличие от первого варианта, в этом втором варианте два вектора р1 и р3 снова сравниваются для формирования другой оптимальной подгруппы обнаружения, если векторы р1 и р3 равны или близки (в соответствии с заданным критерием). В этом случае для формирования оптимальной подгруппы обнаружения может использоваться вектор р4 движения вместе с р1 (=р2=р3).
Таким образом, указанная итерация обеспечивает, насколько это возможно, и в зависимости от числа векторов движения, имеющихся в группе Е, осуществление стадии 21 выбора для группы, содержащей два равных или близких возможных векторов движения для оптимизации задания конкуренции возможных векторов движения.
Число итераций может быть определено заранее и поэтому известно декодеру, или же может быть решено, что если два выбранных вектора равны или близки, то должна осуществляться дополнительная итерация, пока не будут исчерпаны все возможные векторы движения, имеющиеся в группе Е.
Необходимо отметить, что в некоторых особенных случаях для одного или нескольких блоков изображения, которое должно быть закодировано, если указание вектора движения осуществляется непосредственно, то можно отказаться от передачи данных, в которых указывается вектор движения, который должен использоваться. Эти особенные случаи соответствуют, например, равенству всех возможных векторов движения в группе Е или другой ситуации, в которой имеется только один вектор движения.
Различные варианты, рассмотренные в настоящем описании, а также их модификации, обеспечивают возможность кодирования, в котором потенциально используются три возможных вектора движения для задания их конкуренции, в то время как затраты на кодирование соответствуют использованию двух возможных векторов движения. Это возможно, поскольку декодер будет иметь возможность воспроизведения способа, осуществляемого при кодировании (особенно проверки 201), как это объясняется ниже, и поэтому нет необходимости в передаче соответствующих данных.
Необходимо напомнить, что изобретение также может обеспечивать реализацию подгрупп оптимального обнаружения, содержащих более двух возможных векторов движения, причем выбор вектора движения, который должен кодироваться для текущего блока, осуществляется с использованием более двух векторов, и затраты на обработку и передачу информации с выбранным вектором связаны с числом возможных векторов движения. Снова следует отметить, что изобретение обеспечивает кодирование с возможностью использования числа возможных векторов движения, превышающего число векторов, используемых в известных способах, без увеличения затрат на кодирование.
Кроме того, способ кодирования, предлагаемый в настоящем изобретении, обеспечивает возможность локальной адаптации, то есть, адаптации для каждого блока изображения, который должен быть закодирован, подгруппы оптимального обнаружения, которая должна использоваться для задания конкуренции возможных векторов движения.
5.3 Описание вариантов осуществления предложенного способа декодирования
Принципиальным моментом настоящего изобретения является осуществление при кодировании и декодировании одного и того же способа выбора вектора движения для рассматриваемого блока.
Ниже приведено описание основных стадий способа декодирования в соответствии с изобретением со ссылками на фигуры За и ЗЬ для потока информации, содержащего данные о движении, закодированные в соответствии с одним из вариантов вышеописанного способа кодирования по настоящему изобретению.
Как показано на фигуре За и описано выше со ссылками на фигуры 2а и 2b, относящимися к способу кодирования, для текущего блока изображения, который должен быть закодирован, имеется группа возможных векторов движения (р1, р2, р3, …) для выбора вектора движения, который должен быть декодирован для рассматриваемого блока.
На первой стадии 30 определяется подгруппа возможных векторов движения из группы Е, которая является подгруппой оптимального обнаружения. Эта стадия 30 определения описывается ниже более подробно со ссылками на фигуру ЗЬ и соответствует стадии 20 вышеописанного способа кодирования.
На стадии 31 считывания обеспечивается получение данных, указывающих вектор р движения, выбранный при кодировании, причем эти данные вводятся в информационный поток при кодировании, как это уже было описано (стадия 22 способа кодирования).
Эти данные дают возможность декодирующему устройству на стадии 32 выбрать вектор прогнозируемого движения, который должен использоваться для декодирования рассматриваемого блока, из возможных векторов движения, имеющихся в подгруппе оптимального обнаружения, сформированной на стадии 30 способа декодирования.
Различные стадии, обеспечивающие формирование оптимальной группы обнаружения, иллюстрируются более подробно на фигуре 3b и уже описывались выше со ссылками на фигуру 2b.
Стадии 301, 302 и 303 способа декодирования соответствуют стадиям 201, 202 и 203, соответственно, способа кодирования.
В частности может быть осуществлено несколько вариантов способа декодирования по настоящему изобретению в зависимости от того, используется ли при сравнении критерий равенства или близости векторов, или от того, используется или нет итерация стадии 301 и т.п.
Таким образом, подгруппа оптимального выбора, сформированная с использованием способа декодирования по рассматриваемому варианту осуществления изобретения, соответствует подгруппе оптимального обнаружения, полученной при кодировании.
Таким образом, при использовании этой подгруппы оптимального обнаружения (содержащей, например, векторы р1 и р2, или р1 и р3) и считанных на стадии 31 данных, указывающих выбранный вектор движения, который должен использоваться, способ декодирования может выбрать правильный вектор движения для декодирования на одной из стадий 32 рассматриваемого блока.
5.4 Структура кодирующих и декодирующих устройств
На фигурах 4 и 5 представлена упрощенная структура кодирующего и декодирующего устройства в соответствии с вышеописанными вариантами осуществления изобретения.
Как показано на фигуре 4, в состав кодирующего устройства входит запоминающее устройство 41, содержащее буферную память, блок 42 обработки информации с микропроцессором µР, выполняющим компьютерную программу 43, обеспечивающую осуществление предлагаемого в изобретении способа кодирования.
При инициализации процесса команды компьютерной программы 43 загружаются, например, в ОЗУ и могут выполняться микропроцессором блока 42 обработки информации. Блок 42 обработки информации вводит информацию изображения, содержащую данные о движении, включающие группу, содержащую по меньшей мере три возможных вектора движения. Микропроцессор блока 42 обработки информации выполняет стадии вышеописанного способа кодирования в соответствии с командами компьютерной программы 43 для выбора вектора движения. Для этой цели кодирующее устройство содержит, кроме буферной памяти 41, средство формирования подгруппы оптимального выбора, содержащей часть возможных векторов движения, средство выбора вектора движения из векторов подгруппы оптимального выбора и средство ввода в поток информации данных, указывающих вектор движения, выбранный из векторов подгруппы оптимального выбора. Управление указанными средствами осуществляет микропроцессор блока 42 обработки информации. Таким образом, блок 42 обработки передает по меньшей мере в одно декодирующее устройство поток информации, содержащий по меньшей мере один элемент данных, указывающих выбранный вектор движения.
Как показано на фигуре 5, в состав декодирующего устройства входит запоминающее устройство 51, содержащее буферную память, блок 52 обработки информации с микропроцессором µP, выполняющим компьютерную программу 53, обеспечивающую осуществление предлагаемого в изобретении способа декодирования.
При инициализации процесса команды компьютерной программы 53 загружаются, например, в ОЗУ и могут выполняться микропроцессором блока 52 обработки информации. Блок 52 обработки информации считывает поток информации, содержащий в частности информацию о движении. Микропроцессор блока 52 обработки информации выполняет стадии вышеописанного способа декодирования в соответствии с командами компьютерной программы 53 для выбора вектора движения. Для этой цели декодирующее устройство содержит, кроме буферной памяти 51, средство формирования подгруппы оптимального выбора, содержащей часть возможных векторов движения, аналогичное средству, реализованному в кодирующем устройстве, средство считывания данных о выборе, обеспечиваемых при кодировании и указывающих один из векторов подгруппы оптимального выбора, и средство выбора вектора движения из векторов подгруппы оптимального выбора из считанных данных о выборе. Управление указанными средствами осуществляет микропроцессор блока 52 обработки информации.