СПОСОБ АДАПТИВНОГО ПРЕДСКАЗАНИЯ КАДРА ДЛЯ КОДИРОВАНИЯ МНОГОРАКУРСНОЙ ВИДЕОПОСЛЕДОВАТЕЛЬНОСТИ

1. Способ кодирования многоракурсной видеопоследовательности, к которой прилагается многоракурсная последовательность карт глубин, заключающийся в том, что каждый вновь кодируемый кадр многоракурсной видеопоследовательности, определяемый в соответствии с заранее заданным порядком кодирования, представляют как совокупность неперекрывающихся блоков, определяют, по меньшей мере, один уже закодированный кадр, соответствующий данному ракурсу и обозначаемый как опорный, формируют синтезированные кадры для кодируемого и опорных кадров, отличающийся тем, что для каждого неперекрывающегося блока пикселей кодируемого кадра, обозначаемого как кодируемый блок, определяют пространственно-совмещенный блок внутри синтезированного кадра, соответствующего кодируемому кадру, обозначаемый как виртуальный блок, для которого определяют пространственную позицию блока пикселей в синтезируемом кадре, соответствующем опорному кадру, такую, что определенный таким образом опорный виртуальный блок является наиболее точным численным приближением виртуального блока; для определенного таким образом опорного виртуального блока определяют пространственно совмещенный блок, принадлежащий опорному кадру, обозначаемый как опорный блок, и вычисляют ошибку между виртуальным блоком и опорным виртуальным блоком, а также вычисляют ошибку между опорным виртуальным блоком и опорным блоком, затем выбирают минимальную из них и, на основе этого, определяют, по меньшей мере, один режим разностного кодирования, задающий, какие из найденных на предыдущих шагах блоков необходимо использовать для формирования предсказания при последующем разностном кодировании кодируемого блока, и осуществляют разностное кодирование кодируемого блока в соответствии с выбранным режимом разностного кодирования.
2. Способ по п.1, отличающийся тем, что в случае, если ошибка между виртуальным блоком и опорным виртуальным блоком оказалась меньше, чем ошибка между опорным виртуальным блоком и опорным блоком, то выбирают режим разностного кодирования, при котором в качестве предсказания используют опорный блок; в противном случае выбирают режим разностного кодирования, при котором в качестве предсказания используют виртуальный блок.
3. Способ по п.2, отличающийся тем, что вычисляют ошибку между виртуальным блоком и кодируемым блоком, а также вычисляют ошибку между ссылочным блоком и кодируемым блоком, причем в случае, если ошибка между виртуальным блоком и кодируемым блоком оказалась меньше, чем ошибка между опорным блоком и кодируемым блоком, то в качестве предсказания выбирают виртуальный блок; в противном случае выбирают опорный блок; на основании выбранного режима разностного кодирования и выбранного блока производят кодирование информации о выбранном блоке, а также осуществляют разностное кодирование кодируемого блока.
4. Способ по п.3, отличающийся тем, что в случае, если ошибка, относящаяся к выбранному режиму разностного кодирования, при котором в качестве предсказания выбирается опорный блок, а минимальная найденная ошибка - это ошибка между виртуальным блоком и кодируемым блоком, и найденная абсолютная разность между этими ошибками не превышает предварительно заданного порогового значения, то в качестве предсказания выбирают опорный блок; в случае, если ошибка, относящаяся к выбранному режиму разностного кодирования, при котором в качестве предсказания выбирают виртуальный блок, а минимальная найденная ошибка - это ошибка между опорным блоком и кодируемым блоком, и найденная абсолютная разность между этими ошибками не превышает предварительно заданного порогового значения, то в качестве предсказания выбирают виртуальный блок; в иных случаях в качестве предсказания выбирают блок в соответствии с определенным режимом кодирования; производят кодирование информации о выбранном блоке, а также осуществляют разностное кодирование кодируемого блока.
5. Способ по п.4, отличающийся тем, что опорный виртуальный блок и опорный блок используют для вычисления разностного блока, при этом разностной блок вычисляют как попиксельную разность между виртуальным блоком и попиксельной разностью между опорным виртуальным блоком и опорным блоком; вычисляют ошибку между найденным разностным блоком и кодируемым блоком; в случае, если найденная ошибка оказывается меньше, чем ошибка между выбранным на предыдущих шагах в качестве предсказателя блоком и кодируемым блоком, то в качестве предсказателя используют найденный разностный блок; производят кодирование информации о выбранном блоке, а также осуществляют разностное кодирование кодируемого блока.