СПОСОБ И СИСТЕМА ДЛЯ КОДИРОВАНИЯ СИГНАЛА ТРЕХМЕРНОГО ВИДЕО, ИНКАПСУЛИРОВАННЫЙ СИГНАЛ ТРЕХМЕРНОГО ВИДЕО, СПОСОБ И СИСТЕМА ДЛЯ ДЕКОДЕРА СИГНАЛА ТРЕХМЕРНОГО ВИДЕО
METHOD AND SYSTEM FOR ENCODING THREE-DIMENSIONAL VIDEO SIGNAL, ENCAPSULATED THREE-DIMENSIONAL VIDEO SIGNAL, METHOD AND SYSTEM FOR THREE-DIMENSIONAL VIDEO DECODER

Область техники
Настоящее изобретение относится к области кодирования и декодирования видео. Согласно настоящему изобретению представлены способ и система для кодирования сигнала трехмерного видео. Настоящее изобретение также относится к способу и системе для декодирования сигнала трехмерного видео. Кроме того, настоящее изобретение относится к кодированному сигналу трехмерного видео.
Уровень техники
В последнее время растет интерес к области предоставления трехмерных изображений на трехмерных дисплеях. Предполагается, что технология формирования трехмерных изображений будет следующей по значимости инновацией в области формирования изображений после изобретения способа формирования цветных изображений. В ближайшее время ожидается вывод автостереоскопических дисплеев на рынок потребительских товаров.
Устройство трехмерного отображения, как правило, представляет собой экран, на котором отображаются изображения.
По существу, ощущение трехмерности может быть создано путем использования стереопар, то есть, двух слегка отличающихся друг от друга изображений, направленных на два глаза наблюдателя.
Существует ряд способов произведения стереоизображений. Изображения могут быть мультиплексированы по времени на двумерном дисплее, но для этого требуется, чтобы наблюдатели носили очки с, например, LCD-затворами. Когда стереоизображения отображаются одновременно, то изображения могут быть направлены на соответствующий глаз посредством головного дисплея или посредством поляризованных очков (в последнем случае изображения генерируются посредством ортогонально поляризованного света). Используемые наблюдателем очки эффективно направляют соответствующие виды на каждый глаз. Затворы или поляризаторы в очках синхронизируются с частотой смены кадров, чтобы управлять трассировкой. Для предотвращения мерцания частота смены кадров должна быть вдвое больше, либо разрешение должно быть вдвое меньше относительно двумерного эквивалентного изображения. Недостатком подобной системы является необходимость применения очков для создания стереоэффекта. Это вызывает неудобства для наблюдателей, которые не носят очки в повседневной жизни, и может вызвать потенциальную проблему для тех наблюдателей, которые уже носят очки, поскольку может быть невозможным одновременное применение двух пар очков.
Вместо разделения изображения вблизи глаз наблюдателя, два стереоизображения могут быть разделены на дисплее посредством разделительного экрана, такого как параллактический барьер, например, раскрытый в патенте США № 5969850. Подобное устройство называют автостереоскопическим дисплеем, поскольку оно само обеспечивает стереоскопический эффект без применения очков. Известно несколько разных типов автостереоскопических устройств.
Независимо от типа используемого дисплея, в устройство отображения должна быть введена информация трехмерного изображения. Обычно это выполняется в форме видеосигнала, содержащего цифровые данные.
Из-за огромных объемов данных, свойственных цифровым изображениям, обработка и/или передача сигналов цифрового изображения представляет существенные проблемы. Во многих случаях доступной вычислительной мощности и/или пропускной способности бывает недостаточно для обработки и/или передачи сигналов высококачественного видео. Более конкретно, каждый кадр цифрового изображения являет собой неподвижное изображение, формируемое из матрицы пикселей.
Сырые цифровые данные обычно имеют огромные объемы, что требует большой вычислительной мощности и/или высоких скоростей передачи, которые не всегда доступны. Для уменьшения объема передаваемых данных были предложены различные способы сжатия, такие как, например, MPEG-2, MPEG-4 и H.263.
Эти способы сжатия изначально были определены для стандартных двумерных изображений.
Генерация трехмерных изображений обычно выполняется путем преобразования входного кодированного сигнала двумерного видео в сигнал трехмерного видео на стороне дисплея. Входные последовательности двумерных данных преобразуются в последовательности трехмерных данных непосредственно до отображения видеопоследовательности. Часто на стороне дисплея, к пикселям двумерного изображения добавляется карта глубины, которая предоставляет информацию о глубине заданного пикселя в изображении и, соответственно, предоставляет информацию трехмерного изображения. Используя карту глубины для изображения можно построить левое и правое изображения, которые предоставляют трехмерное изображение. Относительная глубина объектов в двумерном изображении может быть выведена, например, исходя из фокуса (сфокусированное изображение, несфокусированное изображение) или того, как объекты загораживают друг друга.
Поскольку трехмерная информация, генерируемая на стороне дисплея, будет иметь дефекты, существует необходимость в генерации улучшенной трехмерной информации. Трехмерная информация, которая генерируется на стороне получения, может обеспечить более высокое качество трехмерного изображения благодаря:
- возможности большей вычислительной мощности на стороне получения,
- возможности оффлайновой обработки,
- возможности ручного вмешательства.
Если трехмерная информация генерируется на стороне получения, то требуется выполнить передачу этой информации, и для сокращения дополнительной служебной информации в терминах битовой скорости требуется сжатие трехмерной информации. Предпочтительно, сжатие (или кодирование) трехмерной информации выполняется посредством существующих стандартов сжатия с относительно небольшими изменениями.
Часто трехмерная информация задается в форме изображения с картой глубины (z-картой).
Карты глубины с более высоким качеством обеспечивают возможность трехмерным дисплеям производить большую глубину. Тем не менее, увеличение в воспроизведении глубины приводят к видимым дефектам вокруг разрывов глубины. Эти видимые дефекты существенно ухудшают положительный эффект улучшенных карт глубины. Сверх того, пропускная способность ограничена, и эффективность кодирования имеет очень большое значение.
Соответственно, задачей настоящего изобретения является предоставление способа кодирования данных трехмерного изображения на стороне передачи, причем видимые дефекты вокруг разрывов глубины для отображаемого изображения сокращаются, тогда как объем данных удерживается в допустимых пределах. Предпочтительно, эффективность кодирования имеет высокое значение. Кроме того, предпочтительно, упомянутый способ совместим с существующими стандартами кодирования.
Еще одной задачей настоящего изобретения является предоставление усовершенствованного кодера для кодирования сигнала трехмерного видео, декодера для декодирования сигнала трехмерного видео, а также предоставление сигнала трехмерного видео.
Сущность изобретения
Для решения этой задачи упомянутый способ кодирования согласно настоящему изобретению отличается тем, что он содержит этап, на котором кодируют сигнал трехмерного видео, причем упомянутый кодированный сигнал трехмерного видео содержит видеокадр центрального вида, карту глубины для видеокадра центрального вида и кадр данных загораживания для видеокадра центрального вида, причем под управлением данных в карте глубины для центрального вида, для кадра данных загораживания генерируется средство индикации для различения функциональных данных в кадре данных загораживания от нефункциональных данных, причем впоследствии кадр данных загораживания кодируют.
На практике это означает, что в кадре данных загораживания существуют области, для которых не генерируются какие-либо релевантные данные загораживания (то есть, нефункциональные данные). Способ содержит "функцию переключения", причем переключение имеет, по меньшей мере, две установки, в одной из которых данные распознаются как нефункциональные, то есть, независящие от фактического содержимого видео и/или нерелевантные, а в другой установке данные распознаются как функциональные, то есть, зависящие от содержимого видео и релевантные. Способность различения нефункциональных данных от функциональных позволяет увеличить эффективность кодирования и/или сократить количество передаваемых битов.
В предпочтительных вариантах осуществления кадр данных загораживания кодируется после кодирования карты глубины. В принципе, может использоваться исходная карта глубины. Тем не менее, на стороне декодера будет использован обратный процесс, причем на стороне декодера будет доступна только кодированная версия и "исходник" будет недоступен. Использование исходника на стороне кодера вместо кодированной/декодированной версии приводит к неопределенности, поскольку процесс на стороне декодера не будет идентичен.
В одном варианте осуществления, под управлением данных в карте глубины в кадре данных загораживания генерируется фиксированная величина или величина в фиксированном диапазоне, которая используется в качестве средства индикации для различения нефункциональных данных.
Подобная фиксированная величина (например, чистый черный или чистый белый) далее интерпретируется декодером и определяется, что хотя пиксель кадра данных загораживания может иметь некоторое значение, а именно фиксированную величину или величину в фиксированном диапазоне, он не должен обрабатываться как действительные данные загораживания, то есть, он не содержит релевантной информации видео. Это позволяет существенно сократить количество битов и повысить эффективность кодирования. Дополнительное преимущество может быть достигнуто, если фиксированный диапазон выбирается в качестве величины (например, чистый черный), которая, как правило, генерируется в случае наличия ошибки в изображении. Предпочтительно, любые функциональные данные фиксированной величины или в фиксированном диапазоне заменяются на величину, которая отличается от упомянутой фиксированной величины или лежит вне упомянутого фиксированного диапазона величин, чтобы исключить эту фиксированную величину или диапазон величин для функциональных данных. Это может быть с легкостью реализовано, например, путем отсечения данных загораживания. Отсечение предоставит "свободный диапазон" (то есть, отсеченные величины) величин, одна или все из которых могут быть использованы в качестве средства индикации для нефункциональных данных.
В подобных вариантах осуществления индикация в явном виде включается в данные в кадре данных загораживания, то есть, определенные величины соответствуют нефункциональным данным.
Предпочтительно фиксированная величина или фиксированный диапазон внедряется в видеосигнал в виде метаданных.
Средство индикации также может иметь форму вставляемого в поток данных параметра, который позволяет декодеру различать нефункциональные данные от функциональных данных внутри кадра данных загораживания.
Настоящее изобретение основано на следующих принципах:
Карта глубины генерируется на стороне получения изображения, что обеспечивает возможность получения лучших карт глубины, поскольку на стороне получения доступно больше информации с большей степенью детализации.
Предоставление кадра данных загораживания для кадра центрального вида обеспечивает возможность существенного улучшения качества трехмерного изображения по сравнению со случаем генерации данных загораживания на принимающей стороне.
Способность различения функциональных данных от нефункциональных данных, например, посредством использования фиксированных величин в кадре данных загораживания, значительно уменьшает объем передаваемых данных и увеличивает эффективность кодирования.
Данные карты глубины могут предоставлять очень хорошую базу для различения функциональных данных от нефункциональных данных.
Настоящее изобретение также реализовано в кодере для кодирования сигнала трехмерного видео, причем кодированный сигнал трехмерного видео содержит видеокадр центрального вида, карту глубины для видеокадра центрального вида и кадр данных загораживания для видеокадра центрального вида, причем кодер содержит входы для кадров данных центрального вида, карт глубины для кадра данных центрального вида и кадров данных загораживания, которые требуется кодировать, причем кодер содержит контроллер, который на основании данных для карты глубины управляет переключателем, который для упомянутого кадра данных загораживания генерирует либо нефункциональные данные, либо функциональные данные.
Предпочтительно, в управлении применяется пороговая величина разрыва глубины, причем разрыв глубины в карте глубины, который меньше упомянутой пороговой величины, является определяющим фактором. Предпочтительно данные загораживания генерируются после кодирования карты глубины. Это обусловлено тем, что данные загораживания генерируются, если разрыв глубины достаточно большой (выше определенной пороговой величины) и разрывы глубины варьируют между исходной и кодированной картой глубины из-за сжатия. Так, если данные загораживания не определены на декодированной карте глубины, использованная пороговая величина может быть ниже действительно заданной пороговой величины. Это может привести к большему объему данных загораживания, чем строго необходимо, что в свою очередь приводит к более высокой битовой скорости.
Разрывы глубины возникают, когда разница между величинами глубины соседних пикселей имеет большое значение. Факт, что один объект может быть скрыт за другим, может быть выведен из скачкообразных изменений величины глубины. Внезапное изменение является индикацией изменения в изображении с объектов переднего плана на объекты заднего плана или (более обобщенно) с одного объекта на другой. Плавные изменения величин указывают на изменения внутри объекта. Данные загораживания генерируются только тогда, когда разрывы глубины (то есть, изменение величины глубины между смежными пикселями) больше пороговой величины, то есть, когда они имеют достаточно высокое значение.
Данные загораживания генерируются для областей "расположенных за объектом переднего плана", то есть, для областей, расположенных рядом с линиями или точками, где изменение величины глубины больше пороговой величины. Подобные области можно с легкостью различить по разрывам глубины в изображении, которые выше пороговой величины. Предпочтительно, пороговая величина вычисляется из данных в карте глубины. Это реализуется в контроллере. Альтернативно, пороговая величина может быть установлена равной фиксированной величине, но, предпочтительно, она вычисляется динамически, поскольку различные изображения могут иметь разное содержимое, причем упомянутое содержимое влияет на оптимальную пороговую величину. Контроллер, предпочтительно, имеет вывод для вставки пороговой величины, используемой в кодированных данных трехмерного изображения. Эта пороговая величина может быть использована в декодере, благодаря чему исключается необходимость в декодере для установки используемой пороговой величины.
Было выявлено, что дополнительное уменьшение количества битов может быть достигнуто путем уменьшения объема данных в кадре данных загораживания.
Данные загораживания заполняют края вокруг объектов переднего плана. Уменьшение объема данных в кадре данных загораживания имеет только ограниченный эффект на качество, между тем сокращается количество битов в кодированном сигнале трехмерного видео.
В предпочтительном варианте осуществления контроллер имеет вход для битовой скорости кодированного кадра данных загораживания.
Таким образом, контроллер может регулировать параметры, посредством которых выполняется различение между "функциональными" и "нефункциональными" данными, и, соответственно, контроллер может регулировать объем функциональных данных относительно объема нефункциональных данных в кадрах данных загораживания. Это обеспечивает возможность ручного вмешательства. На практике, это может, например, означать, что пороговая величина регулируется в зависимости от битовой скорости таким образом, что если возникает опасность превышения назначенной битовой скорости для кадра данных загораживания, то пороговая величина увеличивается, так что области кадра с функциональными данными сокращаются.
В еще одном варианте осуществления кадра глубины видео и кадр данных загораживания кодируются, причем кадр данных загораживания кодируется с использованием одного или более кадров центрального вида в качестве опорного кадра.
Согласно наблюдениям, для предпочтительных вариантов осуществления эффективность кодирования кадра данных загораживания существенно повысилась, когда для кадров данных загораживания использовались опорные кадры с центрального вида. Сначала это может показаться неожиданным, поскольку данные загораживания содержат данные, которые невидимы в центральном виде и, соответственно, недоступны в кадре центрального вида. Тем не менее, корреляция данных загораживания с данными центрального вида вблизи объекта переднего плана в центральном виде может быть высокой из-за движения объекта переднего плана. Было выявлено, что использование опорного кадра (кадров) из центрального вида для кодирования кадра данных загораживания значительно повышает эффективность кодирования данных загораживания.
Объем данных загораживания ограничивается картой глубины видео. В рамках настоящего изобретения генерация кадра данных загораживания, предпочтительно, также ограничивается максимальным диапазоном углов наблюдения. Объем данных загораживания, таким образом, ограничивается картой глубины видео и (в предпочтительном варианте осуществления) максимальным диапазоном видов или максимальным углом наблюдения. В подобных вариантах осуществления данные загораживания ограничиваются данными, которые можно видеть при заданной карте глубины и максимальном сдвиге (то есть, угле наблюдения) влево и вправо. Таким образом, объем дополнительных данных, сверх объема, необходимого для данных центрального вида и карты глубины для данных центрального вида, ограничен и требуется только ограниченное количество дополнительных битов. Контроллер в декодере, предпочтительно, имеет вход для максимального диапазона углов наблюдения.
В настоящем изобретении данные загораживания генерируются на стороне сбора видеоданных.
Как упоминалось выше, известно, что на конце приемника генерируют некоторый тип данных загораживания. Тем не менее, когда это реализуется на конце приемника на основании центрального вида и карты глубины для центрального вида, то невозможно в точности реконструировать данные загораживания, то есть, конструировать то, что находится за объектами переднего плана, поскольку фундаментально неизвестно, что находится за объектом переднего плана в центральном виде. Данные загораживания обычно генерируются из центрального вида посредством алгоритма типа "обоснованного предположения". Отсутствующие части заполняются по предположению.
Сверх того, полноценные трехмерные способы полностью не совместимы с настоящими методами кодирования, либо эта совместимость связана со сложностями. В настоящем изобретении все кодированные данные относятся только к одной точке наблюдения и одной координатной системе, что облегчает обеспечение совместимости с существующими способами.
В обработке видеосигнала, сигнал содержит кадры, кодированные по схеме внутрикадрового кодирования и межкадрового кодирования, например, I-кадры, P-кадры и B-кадры. I-кадры кодируются внутри кадра. P-кадры и B-кадры называют кадрами, кодированными по схеме межкадрового кодирования. При внутрикадровом кодировании кадры могут быть реконструированы без ссылки на другие кадры, тогда как при межкадровом кодировании кадры реконструируются с помощью данных других кадров (предсказание вперед или назад).
Настоящее изобретение реализовано в способе кодирования, но оно в равной степени реализовано в соответствующем кодере, имеющем средство для выполнения различных этапов упомянутого способа. Подобное средство может быть предоставлено аппаратным или программным образом, либо как сочетание аппаратного или программного обеспечения.
Настоящее изобретение также реализовано в сигнале, произведенном посредством способа кодирования, и в любом способе декодирования и декодере, используемых для декодирования подобных сигналов.
В частности, настоящее изобретение также реализовано в способе для декодирования кодированного видеосигнала, где декодируют сигнал трехмерного видео, причем упомянутый сигнал трехмерного видео содержит кодированный видеокадр центрального вида, карту глубины для видеокадра центрального вида и кадр данных загораживания для видеокадра центрального вида, причем кодированный видеосигнал содержит индикации для различения нефункциональных данных загораживания от функциональных данных загораживания, причем при декодировании производится комбинированный поток данных, содержащий функциональные данные загораживания и данные центрального вида.
Настоящее изобретение также реализовано в декодере для декодирования кодированного видеосигнала, где декодируют сигнал трехмерного видео, причем упомянутый сигнал трехмерного видео содержит кодированный видеокадр центрального вида, карту глубины для видеокадра центрального вида и кадр данных загораживания для видеокадра центрального вида, причем кодированный видеосигнал содержит индикации для различения нефункциональных данных загораживания от функциональных данных загораживания, причем декодер содержит объединитель для произведения комбинированного потока данных, причем упомянутый комбинированный сигнал содержит функциональные данные загораживания и данные центрального вида.
Краткое описание чертежей
Эти и другие аспекты настоящего изобретения более подробно описаны ниже, со ссылкой на сопутствующие чертежи, на которых:
Фиг.1 - иллюстрация примера автостереоскопического устройства отображения;
Фиг.2 и 3- иллюстрации проблемы загораживания;
Фиг.4 - левый и правый виды сцены, сгенерированной компьютером;
Фиг.5 - иллюстрация представления с Фиг.4 в трех картах данных - центральный вид, карта глубины для центрального вида и данные загораживания для центрального вида;
Фиг.6 - иллюстрация схемы кодирования и кодера согласно настоящему изобретению;
Фиг.7 - иллюстрация одного варианта осуществления схемы декодирования и декодера согласно настоящему изобретению;
Фиг.8 - иллюстрация еще одного варианта осуществления схемы декодирования и декодера согласно настоящему изобретению;
Фиг.9 - иллюстрация данных центрального вида и данных загораживания в большом масштабе, где видно выравнивание данных загораживания по блочной сетке;
Фиг.10 - иллюстрация схем кодирования/декодирования;
Фиг.11 и 12 - иллюстрация дополнительных схем кодирования/декодирования;
Фиг.13 - иллюстрация способа кодирования с использованием кадров центрального вида в качестве опорных кадров при кодировании кадров загораживания;
Фиг.14 - иллюстрация способа кодирования с использованием карт глубины для кадров центрального вида в качестве опорных кадров при кодировании карт глубины для кадров загораживания;
Фиг.15 - иллюстрация этапа декодирования, на котором опорный кадр центрального вида используется при декодировании кадров загораживания;
Фиг.16 - иллюстрация еще одного варианта осуществления настоящего изобретения.
Перечисленные фигуры вычерчены не в масштабе. Как правило, на фигурах идентичные компоненты обозначены одинаковыми ссылочными номерами.
Подробное описание предпочтительных вариантов осуществления
Фиг.1 представляет собой иллюстрацию примера автостереоскопического устройства отображения. Данное устройство отображения содержит двояковыпуклый экран 3 для формирования двух стереоизображений 5 и 6. Вертикальные линии двух стереоизображений поочередно (пространственно) отображаются на, например, пространственном модуляторе 2 света (например, ЖК-экране) с тыловой подсветкой 1. В сочетании тыловая подсветка и пространственный модулятор света формируют матрицу пикселей. Структура линз двояковыпуклого экрана 3 направляет стереоизображение на соответствующий глаз наблюдателя.
На Фиг.2 и 3 проиллюстрирована проблема загораживания. Линия, обозначенная термином "Задний план", является задним планом, а линия, обозначенная термином "Передний план", представляет объект, который расположен перед задним планом. Обозначения "Левый" и "Правый" представляют два вида этой сцены. Эти два вида могут представлять собой, например, левый и правый вид для стереоизображения, либо крайние два вида в случае использования n-мерного дисплея. Остающиеся n-2 вида, необходимые для n-мерного дисплея, должны генерироваться на стороне дисплея. Линии, обозначенные как L+R, могут быть видны с обоих видов, тогда как часть L может быть видна только с Левого вида, а часть R может быть видна только с Правого вида. Следовательно, часть R не может быть видна с Левого вида, а часть L не может быть видна с Правого вида. На Фиг.3 центр обозначает центральный вид. Как показано на этой фигуре, доля (L1 и, соответственно, R1) части L и R заднего плана, показанного на Фиг.3, может быть видна с центрального вида. Тем не менее, некоторая доля части L и R невидима с центрального вида, поскольку она скрыта за объектом переднего плана. Эти области, обозначенные как Oc, скрыты для центральной точки наблюдения, но видимы с других точек наблюдения. Как показано, области загораживания, как правило, образуются по краям объектов переднего плана. Генерация трехмерных данных только на основании центрального вида и карты глубины создает проблемы для загороженных областей. Данные частей изображения, которые скрыты за объектами переднего плана, неизвестны.
Лучшие карты глубины обеспечивают возможность трехмерным дисплеям производить большую глубину. Увеличение в воспроизведении глубины приведет к видимым дефектам вокруг разрывов глубины по причине недостатка данных загораживания. Следовательно, настоящие изобретатели осознали необходимость данных загораживания для высококачественных карт глубины.
Фиг.4 представляет собой иллюстрацию левого и правого видов сцены, сгенерированной компьютером. На данной иллюстрации мобильный телефон парит в виртуальной комнате с желтым мозаичным полом и двумя стенами. В левом виде ясно видна фермерша, тогда как на правом виде она не видна. С другой стороны, на правом виде видна коричневая корова, которая не видна на левом виде.
На Фиг.5 показана сцена, описанная выше. В данном случае, согласно настоящему изобретению упомянутая сцена представлена в трех картах данных - карте с данными изображения для центрального вида, карте глубины для центрального вида и карте загораживания для центрального вида, причем данные загораживания определяются посредством карты глубины видео. Размеры функциональных данных загораживания определяются посредством карты глубины. По существу, это соответствует линиям шагов в глубине центрального вида. Области, содержащиеся в данных загораживания, формируются в этом примере посредством полосы, соответствующей контуру мобильного телефона. Эта полоса (которая, таким образом, определяет размер данных загораживания) может быть определена различными способами:
- как ширина, соответствующая максимальному диапазону видов и шагу глубины;
- как стандартная глубина;
- как ширина, которая должна быть установлена;
- как область, смежная с контуром мобильного телефона (с наружной и/или с внутренней стороны).
Карта глубины являет собой плотную карту. В карте глубины светлые части представляют объекты, которые расположены близко, и чем темнее карта глубины, тем дальше находится объект от наблюдателя.
Согласно примеру настоящего изобретения, проиллюстрированному на Фиг.5, функциональные данные загораживания определяются полосой с шириной, которая соответствует ограничению данных тем объемом, который будет виден при заданной карте глубины и максимальном сдвиге влево и вправо. Остальная часть данных загораживания является нефункциональной.
Большинство стандартов кодирования цифрового видео поддерживают дополнительные каналы данных, которые могут быть либо на уровне видео, либо на уровне системы. При доступности этих каналов, передача данных загораживания может быть реализована напрямую.
Фиг.6 представляет собой иллюстрацию одного варианта осуществления способа кодирования и кодера согласно настоящему изобретению. Кодер принимает три потока данных - данные 61, предоставляющие данные для центрального вида, данные 62, предоставляющие карты глубины для центрального вида, и данные 63, предоставляющие данные загораживания. Для каждого из этих потоков данных присутствует кодер: для данных центрального вида - Кодер ЦВ, для карты глубины данных центрального вида - Кодер ЦВ(z), для данных загораживания - Кодер ЗГРЖ, и для опциональной карты глубины для данных загораживания - Кодер ЗГРЖ(z). Кадр данных загораживания может представлять собой большой набор данных.
Эти данные также могут содержать карту глубины для данных загораживания, как схематически показано в самой нижней части Фиг.6.
Данные карты глубины центрального вида предоставляются в контроллер 65, причем контроллер 65 управляет детерминатором или переключателем 66. В зависимости от вывода контроллера 65 данные в кадре данных загораживания разделяются на функциональные данные (то есть, данные, которые должны быть обработаны как действительные данные загораживания в остальной части способа кодирования и последующем декодировании) и нефункциональные данные, то есть, данные, которые должны быть функционально игнорированы. На Фиг.5 нефункциональные области отмечены серым цветом. Нефункциональные данные схематически обозначены на Фиг.6 как ЗГРЖ="0". Самый простой и прямой способ разрешения данной проблемы заключается в назначении фиксированной величины данным для нефункциональных областей (например, чистый черный). В остальной части кодера и в декодере эти нефункциональные данные будут распознаваться как нефункциональные. Внутри контроллера, предпочтительно, устанавливается или вычисляется пороговая величина. Предпочтительно, фиксированная величина или величина из фиксированного диапазона резервируется для нефункциональных данных, и любые нефункциональные данные фиксированной величины или из фиксированного диапазона величин заменяются на величину, отличную от упомянутой зарезервированной величины, или лежат вне упомянутого зарезервированного диапазона.
Если чистый черный (Y=0) обозначает нефункциональные данные, то любые нефункциональные данные будут распознаны декодером как нефункциональные данные, но любые данные в функциональной области, которые случайно будут иметь чисто черный цвет, также будут рассматриваться как "нефункциональные" данные и, как следствие, в функциональных областях будут сформированы маленькие дыры. Путем резервирования чистого черного для нефункциональных данных, этот негативный эффект будет предотвращен. Это с легкостью может быть реализовано путем отсечения входящих данных загораживания (лежащих, например, в диапазоне яркости от 0 до 255) по величине яркости, равной 4. Все сигналы чистого черного (или любой сигнал с величиной Y, равной 0, 1, 2 или 3) во входящих данных загораживания будут преобразованы в незначительно менее черный, то есть, "чистый черный" подобного пикселя будет заменен на величину (в данном примере это выполняется посредством отсечения), которая отличается от упомянутой зарезервированной величины или лежит вне упомянутого диапазона зарезервированных величин. "Чистый черный", тогда, будет зарезервирован для нефункциональных данных. В этом примере, для нефункциональных данных также можно зарезервировать диапазон Y = 0, 1, 2 или 3. Результирующий сигнал трехмерного видео относительно легко можно распознать как сигнал, сгенерированный по способу согласно данному варианту осуществления настоящего изобретения, поскольку многие кадры данных загораживания будут иметь относительно большие области "чистого черного", тогда как остальные области будут иметь цвета разных величин, и ни один из пикселей в остальных областях не будет "чисто черным".
Путем ограничения функциональных областей загораживания на основании карты глубины видео объем дополнительных данных удерживается в рамках. Предпочтительно, сначала кодируется карта глубины и далее кодируются данные загораживания, причем данные для карты глубины используются для различения функциональных и нефункциональных данных. Разрывы глубины возникают, когда разница между величинами глубины соседних пикселей имеет большое значение. Факт, что один объект может быть скрыт за другим, может быть выведен из скачкообразных изменений величины глубины. Внезапное изменение является индикацией изменения в изображении с объекта переднего плана на объект заднего плана или (более обобщенно) с одного объекта на другой. Плавные изменения величин указывают на изменения внутри объекта. Данные загораживания генерируются только тогда, когда разрывы глубины (то есть, изменение величины глубины между смежными пикселями) больше пороговой величины, то есть, они имеют достаточно высокое значение. В одном конкретном варианте осуществления, определяется максимальная ошибка кодирования (что устанавливает нижний лимит для пороговой величины ПВ) и вычисляется пороговая величина ПВ. При управлении ПВ, пороговая величина сравнивается с разностями в глубине между пикселями, что схематически показано посредством блока 67 вычитания. В этот блок подаются данные карты глубины декодера и данные соседней карты глубины (схематически посредством сдвига τ1 на Фиг.6). Когда шаг по глубине между соседними пикселями больше, чем пороговая величина ПВ, то этот шаг указывает "действительный край" в данных. Таким образом, выполняется сравнение между измеренным шагом в глубине или разрывом глубины и вычисленной пороговой величиной ПВ, и определяется фактор управления. Из действительных краев определяется позиция объектов переднего плана и, соответственно, пределы функциональных областей данных загораживания. Контроллер 65 соответствующим образом управляет переключателем 66. Когда пиксель кадра данных загораживания входит в нефункциональную часть кадра, эти данные распознаются как нефункциональные.
Преимущество заключается в том, что функциональные данные загораживания будут сгенерированы и обработаны в кодере загораживания только для тех частей кадра данных загораживания, которые являют собой функциональные данные загораживания. Задача заполнения областей загораживания, которые обычно имеют малые размеры, для разрывов глубины ниже нижней пороговой величины может быть решена посредством других способов, например, растягивания.
Предпочтительно, области загораживания определяются на основе минимального разрыва глубины, а также максимального диапазона видов или максимального угла наблюдения, который будет сгенерирован на стороне дисплея. На Фиг.6 это обозначено линией между терминами "максимальный угол наблюдения" и блоком "управление". Последнее упомянутое ограничение определяет полосу пропускания областей загораживания в карте загораживания, то есть, насколько глубоко в задний план требуется обеспечить видимость. Кроме максимального угла наблюдения, полоса пропускания также может зависеть от величины действительной глубины, что является причиной, по которой линия проходит от декодера к блоку управления.
На Фиг.6 также проиллюстрировано, что контроллер принимает в качестве вводов кодированные/декодированные данные карты глубины. Можно использовать исходные данные, то есть, напрямую подавать исходные данные в блок управления и другие части. Тем не менее, на стороне декодера исходные данные не будут доступны, и будут доступны только кодированные, сильно сжатые данные. Эти данные декодируются, так что на конце декодирования должен использоваться кодированный сигнал. Например, функциональные данные загораживания генерируются, если разрыв глубины достаточно большой (выше определенной пороговой величины) и разрывы глубины различаются в исходной и кодированной карте глубины из-за сжатия. Так, если данные загораживания не определены на декодированной карте глубины, использованная пороговая величина должна быть ниже действительно заданной пороговой величины, чтобы не пропустить функциональные данные. Это может привести к большему объему данных загораживания, чем строго необходимо, что в свою очередь приводит к более высокой битовой скорости.
Области в кадре данных загораживания, которые не содержат полезных данных загораживания (серые области на Фиг.5) распознаются как нефункциональные, и они не участвуют в процессе кодирования. Как описано выше, простым вариантом реализации этого принципа является назначение подобным пикселям некоторой фиксированной величины, такой как, например, чистый черный или чистый белый. К нефункциональным данным загораживания могут быть применены исключительные меры и способы сжатия, которые не были бы оправданы для функциональных данных загораживания из-за потенциальной возможности потери информации с последующей потерей качества изображения, что позволяет сильно сократить количество битов в сигнале кодированного кадра загораживания и в передаче, между тем увеличивая эффективность кодирования и декодирования без ухудшения качества результирующего изображения. К данным, которые определяются как нефункциональные, может быть применена любая форма кодирования (переменной длины), которая обеспечит минимальное количество битов. Поскольку максимальная глубина известна из карты глубины, и также известен максимальный угол наблюдения, может быть вычислена максимальная область загораживания. В еще одном предпочтительном варианте осуществления могут быть предприняты меры для повышения эффективности кодирования. Еще один предпочтительный вариант осуществления, например, задан посредством линии между кодером ЗГРЖ и блоком управления. Ввод битовой скорости кодированного кадра загораживания может быть использован для управления переключателем 66. Если есть опасность, что упомянутая битовая скорость превысит установленную величину, то управление переключателем 66 может быть реализовано более строго, то есть, пороговая величина ПВ увеличивается и/или максимальный диапазон видов уменьшается. Конечно, это приведет к уменьшению размера функциональных областей и увеличению процентной доли нефункциональных данных в кадрах загораживания. Это может иметь негативный эффект на изображение на дисплее, однако положительным результатом является то, что битовая скорость кодированного кадра загораживания удерживается в заданных пределах. В целом, общий результат имеет положительную величину. Если доступен кадр глубины загораживания, информация об этом кадре глубины загораживания также может быть использована в контроллере 65 для "тонкой настройки" обнаружения краев изображений. В тех вариантах осуществления, где объем данных загораживания автоматически не уменьшается, альтернативой может быть запуск уменьшения объема при возникновении опасности, что битовая скорость превысит установленную величину.
Еще один вариант осуществления включает в себя дополнительный ввод данных центрального вида в контроллер. Когда вокруг края в центральном виде, изображение центрального вида очень гладкое, то есть, видно небольшое количество деталей, в особенности, когда вокруг всего объекта переднего плана присутствует гладкий задний план (например, простой цвет без текстуры), то растяжение обычно дает хорошие результаты. Растяжение представляет собой операцию, которая выполняется на стороне декодера и которая не требует передачи битов. В подобных обстоятельствах, вместо декларирования данных загораживания в качестве функциональных, данные загораживания (хотя высота шага может быть достаточно большой) могут быть обозначены как нефункциональные. Это обеспечивает сокращение битов с минимальным отрицательным эффектом.
Все используемые в данном способе кодирования параметрические данные, такие как пороговая величина ПВ, фиксированная величина для нефункциональных данных (или фиксированный диапазон), сдвиги τ1 и τ2, а также параметры, такие как максимальный угол наблюдения, битовая скорость кодированных данных загораживания, используемые в управлении, могут быть переданы с потоком кодированных данных в качестве метаданных. Тогда, на стороне декодера эти параметры используются схожим образом.
На Фиг.6 также проиллюстрирован еще один дополнительный вариант осуществления, в котором кодер содержит кодер (Кодер ЦВ) для кодирования кадров центрального вида и декодер (Декодер ЦВ) для декодирования кодированных кадров центрального вида, кодер (Кодер ЗГРЖ) для кодирования кадров данных загораживания и ввод у кодера для кодирования кадров данных загораживания для ввода декодированных кадров центрального вида в качестве опорных кадров. Это схематически показано посредством линии, проходящей от декодера ЦВ к кодеру ЗГРЖ. Предпочтительно, в качестве опорного кадра используется не только кадр центрального вида с того же момента времени, но также используется временной сдвиг (или сдвиг по кадру), то есть, один или более ранних или будущих кадров центрального вида используются в качестве опорных кадров в кодере для кадров данных загораживания. Согласно наблюдениям, эффективность кодирования данных загораживания существенно повысилась, когда для кадров данных загораживания использовались опорные кадры с центрального вида. Сначала это может показаться неожиданным, поскольку данные загораживания содержат данные, которые невидимы в центральном виде в текущий момент времени и, соответственно, недоступны в кадре центрального вида. Тем не менее, присутствует высокая корреляция данных загораживания с данными заднего плана, находящимися близко к объекту переднего плана. Было выявлено, что использование опорного кадра (кадров) из центрального вида для кодирования кадра данных загораживания значительно повышает эффективность кодирования данных загораживания. Это схематически показано в части 67.
Линия, проходящая от блока управления к переключателю 66' указывающая данные для карты глубины кадров загораживания, указывает, что если некоторые данные загораживания определяются как нефункциональные, то та же операция может быть применена к соответствующим данным глубины для кадра загораживания. Это позволяет сокращать количество битов в карте глубины для данных загораживания. В принципе, представляется возможным использование только переключателя 66', но большее сокращение количества битов достижимо в кадрах загораживания, а не в карте глубины для кадров загораживания. Представляется возможным использовать данные в карте глубины кадра данных загораживания в качестве средства для различения самой нефункциональной области в кадре данных загораживания. Это позволит, например, идентифицировать нефункциональные области в кадре данных загораживания посредством содержимого карты глубины для кадра данных загораживания. Подобные нефункциональные области больше не будут ограничены по величинам и, таким образом, могут быть использованы для хранения другой информации. Следует отметить, что термин "нефункциональный" обозначает "не содержащий величины, относящиеся к величине пикселя". Средства индикации для индикации нефункциональных областей в кадре данных загораживания далее включаются в кодированную карту глубины для кадра данных загораживания.
На Фиг.7 проиллюстрирован способ декодирования и декодер согласно настоящему изобретению. Части этого декодера, которые в целом соответствуют частям кодера, обозначены номером, который на 10 единиц больше соответствующего номера с Фиг.6.
Самая правая часть на Фиг.7 и 8 иллюстрирует различные виды на экране. Центральный вид являет собой вид на экран под прямым углом. Другие виды формируются путем изменения угла наблюдения, который схематически обозначен индексом угла наблюдения в диапазоне от +2 до -2.
Здесь разрыв глубины центра управляет блоком деформации (по существу, выполняет сдвиг пикселей). Величина деформации также зависит от желаемой позиции N точки наблюдения, причем каждой позиции точки наблюдения соответствует некоторый угол наблюдения. Базовая деформация оставляет "дырки" в результирующем кадре пикселей.
Когда доступны данные глубины загораживания, загораживание также деформируется посредством разрыва глубины загораживания с помощью переключателя S, который будет в положении a.
Когда доступна информация деформированного загораживания, обозначающая, что она неравна "0" (что также может быть определено как малый интервал), эта информация загораживания может быть использована для заполнения "дырки" в центральном виде (переключатель 76 в положении a). В противном случае "дырка" заполняется путем копирования края "отверстия" (переключатель 76 в положении b), например, путем растяжения.
Диапазон "0" передается кодером и принимается декодером, так что его величина известна и можно корректно управлять переключателем 76.
Когда нет доступной информации глубины загораживания, переключатель S обычно находится в положении c, что означает использование глубины центра. Когда разрыв центральной глубины выполняет скачек (больший, чем пороговая величина ПВ), разрыв глубины повторяется, причем переключатель S находится в положении b.
Пороговая величина ПВ также передается кодером в потоке в качестве метаданных (см. также Фиг.6) и также управляет переключателем 76 в части места, откуда нужно брать данные для заполнения "дыр" деформированных центральных изображений. Когда разрыв глубины центра меньше пороговой величины ПВ, переключатель 76 находится в положении b. Сигнал 78 являет собой комбинированный сигнал, содержащий функциональные данные загораживания, а также данные центрального вида, причем положение переключателя 76 определяет комбинирование.
Фиг.8 представляет собой иллюстрацию еще одного варианта осуществления способа кодирования и декодера согласно настоящему изобретению.
Центральный вид декодируется в декодере для центрального вида (Декодер ЦВ). Декодированный центральный вид предоставит изображение центрального вида, и чтобы сгенерировать изображения под различными углами в блоке "Деформация 2" выполняется деформация (операция искажения). В результате получается изображение с "дырами". Объекты в центральном виде загораживают определенные части заднего плана, который сейчас должен стать "видимым". Тем не менее, данные для изображения центрального вида не содержат данных для этих частей "дыр". Эти дыры должны быть заполнены в операции заполнения дыр. В обычных способах это, например, выполняется путем растяжения, то есть, величина пикселей вокруг "отверстия" используется для выполнения обоснованного предположения о содержимом пикселей в дыре. Тем не менее, это в действительности не отображает то, что находится позади изображения переднего плана, а просто выполняется предположение. В настоящем изобретении используется кодированный кадр данных загораживания. В позиции 88 производится комбинированный поток данных. Комбинированный поток данных содержит функциональные данные загораживания, а также данные с центрального вида. Переключатели имеют первое положение (для функциональных данных загораживания, что на фигурах схематически обозначено как ЗГРЖ≠"0"), в котором обеспечивается пропускание данных загораживания. Переключатель 86 обеспечивает ту же функцию, что и переключатель 76 с Фиг.7. Если данные распознаются как нефункциональные, то переключатель 86 переводится в положение, в котором данные центрального вида пропускаются. Результатом является комбинированный поток 88 данных, содержащий данные центрального вида, а также части, которые выводятся из кадра данных загораживания, причем упомянутые части содержат функциональные данные загораживания. Таким образом, переключатели 76 и 86 представляют собой объединители, которые по инициации различения между функциональными и нефункциональными данными и, возможно, другим параметрам производят комбинированный сигнал 78, 88, содержащий комбинацию функциональных данных загораживания и данных центрального вида. Этот комбинированный сигнал используется для заполнения дыр.
Этот сигнал 88 сейчас "деформируется" посредством блока "Деформация 1". Если доступен поток глубины загораживания, то информация глубины, используемая блоком "деформация 1", принимается из декодированного потока глубины загораживания. В противном случае информация глубины, используемая блоком "деформация 1", выводится из сигнала глубины центрального вида. Для позиций "без дыр", декодированный сигнал глубины центрального вида проводится через переключатель sw3 и переключатель sw2 в блок "деформация 1".
В позициях "дыр", переключатель sw3 находится в положении "дыра" и сигнал глубины центрального вида повторяется (или альтернативно используется ослабленный сигнал глубины центрального вида) до следующей позиции "без дыр".
Опцией для декодера является простое повторение последней известной величины глубины непосредственно до "дыры", однако, поскольку эта позиция обычно находится очень близко к большому скачку глубины и, следовательно, может содержать, определенные дефекты кодирования, которые могут привести к неточным величинам глубины для "дыр". Кодер может детектировать подобные ситуации в подобных местах, например, путем измерения ошибки глубины величин, которые должны повторяться, и сокращения ошибок путем их кодирования с более высокой точностью (например, путем уменьшения величины Qsc). С другой стороны, декодер также может предпринять меры, не просто повторяя последнюю величину глубины, а путем, например, повторения средней или серединной величины из небольшого ряда величин глубины непосредственно вне "дыры".
В блоке "деформация 1" к потоку составных данных применяется искажение. Это деформированное составное изображение используется в операции заполнения дыр, чтобы синхронизировать различные виды с разных углов. Поскольку поток составных данных содержит функциональные данные из кадров данных загораживания, предоставляется возможность гораздо более точного наполнения дыр, в результате чего обеспечивается повышение качества изображения. Следует отметить, что определенные "дыры" в деформированном изображении центрального вида все же будут заполнены путем растяжения. Например, в некоторых вариантах осуществления для малой высоты шага, которая меньше пороговой величины, данные загораживания являются нефункциональными и, таким образом, поток составных данных содержит данные центрального вида, поскольку переключатель установлен таким образом, что данные центрального вида пропускаются. Для ясности следует отметить, что используемый в настоящем описании термин "переключатель" может обозначать переключатель, образуемый из аппаратного обеспечения, программного обеспечения или любого компьютерного кода для выполнения заданной функции. Преимущество заключается в том, что с одной стороны для подобной ситуации заполнение дыр является очень хорошей и эффективной процедурой, тогда как с другой стороны путем ограничения функциональных данных загораживания и обеспечения возможности экстремального сжатия нефункциональных данных загораживания эффективность кодирования может быть повышена. Главной разницей между вариантами осуществления с Фиг.7 и 8 является то, что на Фиг.7 деформация выполняется до произведения комбинированного сигнала, тогда как на Фиг.8 комбинированный сигнал 88 производится до деформации. Сверх того, на Фиг.8 также производится комбинированный сигнал 88z глубины.
Предпочтительно данные загораживания выравниваются по блочной сетке. Это обеспечивает возможность повышения эффективности кодирования. Фиг.9 представляет собой иллюстрацию данных центрального вида и данных загораживания в большом масштабе, где видно выравнивание данных загораживания по блочной сетке.
Данные загораживания должны быть кодированы, предпочтительно, посредством известных способов.
В настоящем изобретении данные загораживания могут быть кодированы с использованием опорных кадров с центрального вида. В рамках настоящего изобретения было выявлено, что пространственная и временная корреляции данных загораживания гораздо меньше, чем корреляция в, например, центральном виде. Согласно наблюдениям, эффективность кодирования данных загораживания существенно повысилась, когда использовались опорные кадры с центрального вида. Это может показаться странным, поскольку данные загораживания недоступны в центральном виде. Тем не менее, присутствует высокая корреляция данных загораживания с данными заднего плана, находящимися близко к объекту переднего плана, но сдвинутыми по времени. Использование опорного кадра (кадров), который возможно сдвинут по времени с центрального вида, для кодирования данных загораживания повысит эффективность кодирования данных загораживания.
На Фиг.9 проиллюстрирована часть мобильного телефона в большом масштабе. Ясно видно, что присутствует высокая корреляция между данными загораживания и данными заднего плана в центральном виде. Применение этой пространственной корреляции между данными центрального вида и данными загораживания значительно сокращает битовую скорость. В институте стандартизации MPEG, например, стандарт H.264 MVC (Multi View Coding - Кодирование по Множеству Видов) содержит некоторые базовые принципы для обеспечения возможности применения опорных кадров в разных видах, что обеспечивает хорошую производительность. Подход MVC основан на инструментах, которые используют обычные B-кадры с применением корреляции между видами, захваченными с множества камер. Эти инструменты могут применяться для цели использования опорных кадров с центрального вида для кодирования данных загораживания.
В еще одном варианте осуществления можно иметь один или более видов, содержащих центральный вид, и второй вид, который содержит данные загораживания, и кодировать этот поток с использованием H.264 MVC с общими B-кадрами. Это означает, что не требуется разрабатывать новый стандарт кодирования, и в этом случае стандарт MVC используется иным образом, что может быть обозначено флагом.
Фиг.10 схематически иллюстрирует схему кодирования MVC для моментов T0, T1 и т.д., при передаче различных видов s1, s2 и т.д., как показано в части A Фиг.10. Часть B Фиг.10 схематически иллюстрирует, как может быть использована схожая схема при кодировании кадра центрального вида (ЦВ) и кадра данных загораживания (ЗГРЖ).
Тем не менее, использование общих B-кадров в одном кодере и/или MVC имеет 3 важных ограничения: должны совпадать частота смены кадров и разрешение, и должны использоваться существующие стандарты/аппаратное обеспечение.
Некоторые более сложные стандарты сжатия видео, такие как AVC, имеют возможность генерации множества предсказаний. Выполняется относительно большое количество временных предсказаний (то есть, предсказаний вперед и предсказаний назад). Для выполнения предсказаний используются не только ближайшие кадры, но также кадры, находящиеся дальше по времени. В буфере сохраняются несколько кадров, которые должны быть использованы для временных предсказаний. Этот принцип используется в рамках первого аспекта настоящего изобретения.
Фиг.11 представляет собой схематическую иллюстрацию множества ссылок. Стрелки обозначают ссылки между кадрами, а количество стрелок обозначает количество используемых кадров. Моменты T0, T1 и т.д. обозначают порядок отображения. В данной фигуре можно заметить, что в кодировании (и аналогично в декодировании) для кадра P в момент T4, кадра I в момент T0, кадра P в момент T2, а также в более ранний момент, используются опорные кадры. Это показано посредством стрелок, проходящих к кадру P в момент T4. Кадр P в момент T4 сам по себе является опорным кадром для кадра B в момент T3 (назад) и кадра P в момент T6 (вперед). На Фиг.11, I и P обозначают кадры, кодированные по схеме внутрикадрового кодирования и кодирования с предсказанием, соответственно, а B обозначает кадры, кодированные по схеме двунаправленного предсказания. Стрелки обозначают предсказания. В случае, показанном на Фиг.11 в момент T5, например, используются предсказания с моментов T2, T4, T6 и T8.
Фиг.12 представляет собой схематическую иллюстрацию одного предпочтительного варианта осуществления настоящего изобретения.
Как можно заметить, существует два типа кадров - кадр центрального вида и кадры данных загораживания. Аналогично Фиг.11, где центральные кадры используются в качестве опорных кадров для центральных кадров, в данном случае кадры данных загораживания используются в качестве опорных кадров для предсказания кадров данных загораживания вперед и назад.
Следует отметить, что в каждый момент T0, T1 и т.д. в одном и том же месте и в случае приглушения, корреляция между кадром данных загораживания и кадром центрального вида ограничена, поскольку кадр данных загораживания содержит данные, которые не входят в центральный вид. Тем не менее, было выявлено, что обеспечивается значительный прирост эффективности кодирования, если кадр центрального вида используется в качестве опорного кадра для кадра данных загораживания, что схематически показано на Фиг.12 посредством стрелок, проходящих от кадров центрального вида (верхних блоков) к кадрам данных загораживания (нижним блокам). На Фиг.12, I обозначает внутрикадровое кодирование, P обозначает кодирование с предсказанием, а B обозначает двунаправленное кодирование. Упомянутые индексы относятся к уровню, в котором находятся упомянутые кадры. Изображения могут предсказываться только с нижнего уровня. Так, данные загораживания в момент T0 могут быть предсказаны из изображений в центральном виде, тогда как данные загораживания в момент T2 могут использовать все изображения центрального вида, а также данные загораживания в моменты T0 и T8. Может быть специфицировано количество опорных кадров, которые будут использованы. Это ограничение вводится исходя из соображений реализации, а не из концептуальных соображений.
Так, применение опорных кадров центрального вида для кодирования данных загораживания, для обеспечения более высокой эффективности кодирования, являет собой базовый принцип этого варианта осуществления настоящего изобретения.
Это уже было показано на Фиг.6 посредством линии между декодером ЦВ и кодером ЗГРЖ.
В рамках настоящего изобретения кадры, сохраняемые в процессе кодирования для предсказания загораживания, могут включать в себя предшествующие кадры загораживания, а также предшествующие или последующие кадры центрального вида. Использование кадров центрального вида не исключает возможности применения данных загораживания.
Тем не менее, использование общих B-кадров в одном кодере и/или MVC имеет 3 важных ограничения: должны совпадать частота смены кадров и разрешение, и должны использоваться существующие стандарты/аппаратное обеспечение.
Фиг.13 представляет собой схему, иллюстрирующую порядок применения этих принципов для совместного кодирования изображений центрального вида и изображений данных загораживания, что соответствует предпочтительному варианту осуществления, схематически обозначенному блоком 67 на Фиг.6. Изображения данных загораживания могут быть сжаты при уменьшенном пространственном (и даже временном) разрешении, чтобы обеспечить возможность функционирования также при очень малом объеме служебной информации. В случае уменьшения пространственного разрешения оптимальные коэффициенты фильтрации с увеличением размера могут быть определены и переданы с кодированным битовым потоком данных загораживания. В случае уменьшения временного разрешения (частоты смены кадров) для процесса отображения трехмерных изображений могут использоваться известные способы временного преобразования (такие как естественное движение).
В нижней части данной фигуры показана возможная схема для кодирования данных центрального вида.
Ниже приведен список сокращений, используемых на Фиг.13.
ДКП: Дискретное Косинусное Преобразование
К: Квантизация
-1
ДКП: Обратное Дискретное Косинусное Преобразование
-1
К: Обратная Квантизация
КПД: Кодирование с Переменной Длиной
ОД/КД: Оценка Движения/Компенсация Движения
R0, R1 и т.д.: кадры из памяти, используемые в кодировании
ВШПi: Временной Штамп Представления i.
Реализация этой схемы сводится к изменению указателей памяти в точно заданные моменты времени. Конечно, количество кадров, используемых с уровня данных центрального вида, может быть любым, однако с практической точки зрения (исходя из ограничений памяти, что свойственно случаю, например, варианта осуществления MVC) целесообразно применять некоторые ограничения.
Хорошим выбором рассматриваются такие значения текущего кадра (ВШПi) и величины сдвига кадров (например, a=5), при которых кадр ВШПi-a будет соответствовать предыдущему кадру центрального вида. Также можно рассматривать будущие кадры, например, ВШПi+a, используя будущий кадр центрального вида для предсказания содержимого кадров загораживания. Также может быть большее количество сдвигов, например, a= -5, -2, 0, 2, 5. Также вес сдвинутых кадров центрального вида может обеспечивать некоторую вариацию. Номер сдвига соответствует смещению τ2 на Фиг.6. Смещение τ2 являет собой смещение, иллюстрирующее смещение во времени, тогда как сдвиг временного штампа является смещением по кадрам (и, следовательно, также по времени). На Фиг.6 схематически проиллюстрировано одно смещение τ2. Очевидно, что может использоваться большее количество смещений, чем одно смещение τ2 (поскольку может быть больше одного предшествующего или последующего кадра центрального вида, который используется в качестве опорного кадра). Согласно концепции настоящего изобретения опорные кадры могут содержать кадры центрального вида, а также предыдущие кадры данных загораживания. Номер (номера) a сдвига и, возможно, вес соответствующих кадров центрального вида может быть определен на основании содержимого предыдущего видеокадра, например, в зависимости от движения объекта переднего плана относительно заднего плана и направления этого движения, причем номер сдвига будет меньше, когда определяется быстрое движение в этом направлении и используется несколько предшествующих кадров, причем, чем старше кадр, тем меньше вес.
В вариантах осуществления, где вычисляются сдвиги или смещения и/или веса, подобная информация, предпочтительно, включается в состав видеосигнала, например, в качестве метаданных. Это устранит необходимость в соответствующих вычислительных этапах на стороне декодера.
Вычисление номеров сдвигов или смещений и, возможно, весов может быть выполнено на основании исходных данных в изображении, но, предпочтительно, это выполняется на основании кодированных/декодированных кадров. На стороне декодера исходный сигнал больше не будет доступен. Кроме того, как показано в данной фигуре, кодированные/декодированные кадры формируют опорные кадры, так что любые параметры, используемые в вычислении, предпочтительно, относятся к этим кадрам.
-1
-2
В зависимости от определенного движения и его направления, кадры загораживания также могут быть использованы в качестве опорных кадров, которые на Фиг.13 схематически обозначены линией, проходящей от линии кодированных кадров загораживания к памятям R, R.
На Фиг.13 проиллюстрирован предпочтительный вариант осуществления, в котором до выполнения кодирования данные загораживания уменьшаются в размере (см. также Фиг.6). После кодирования, результирующие данные должны быть снова увеличены в размере. Для этого вычисляются коэффициенты фильтрации с повышением для наилучшего увеличения размера, например, путем сравнения уменьшенных в размере и впоследствии увеличенных в размере кадров с исходными кадрами, чтобы насколько возможно уменьшить артефакты уменьшения/увеличения размера. Эти коэффициенты внедряются в битовой поток данных в форме метаданных. Это позволяет выполнять ту же процедуру на стороне декодера.
В этом варианте осуществления опорные кадры, используемые в кодировании данных загораживания, являют собой кадры центрального вида, а также кадры данных загораживания.
Тот же принцип может быть применен также к кодированию карты глубины для кадра загораживания. Карты глубины для данных центрального вида могут быть использованы в качестве опорных кадров в кодировании карты глубины для кадра загораживания. В качестве примера, схема для подобного кодирования показана на Фиг.14. Аналогично, принцип использования нефункциональных данных для кадра данных загораживания может быть использован для карты глубины для кадра загораживания (см. также Фиг.6).
Как указано выше, принцип применения кадров центрального вида в качестве опорных для кодирования кадров загораживания (содержащих данные действительного изображения или данные глубины) применим независимо от принципа различения функциональных и нефункциональных данных в кадрах загораживания (или карте глубины для кадров загораживания). Тем не менее, вышеописанный принцип в особенности полезен, когда он применяется в сочетании с принципом различения нефункциональных данных.
Использование одного кодера с обобщенным двунаправленным кодированием, где кадры центрального вида и данных загораживания кодируются как перемежающаяся последовательность изображений, предоставляет полезный вариант осуществления, однако имеет недостаток, заключающийся в отсутствии обратной совместимости с существующими схемами двумерного кодирования.
Представляется возможным перемежать данные загораживания и данные центрального вида. Обычный декодер не сможет обработать подобный поток. Все кадры были бы декодированы и отображены, в результате чего получилось бы искаженное изображение. Данную задачу могут решить инструменты MVC.
Фиг.15 представляет собой иллюстрацию этапа декодирования, на котором опорный кадр центрального вида используется при декодировании кадров загораживания.
-1
-1
Этапы, по существу, формируют процесс, обратный процессу кодирования, проиллюстрированному на Фиг.13. ОК обозначает обратную квантизацию, что на Фиг.13 указано как К; ОДПФ обозначает Обратное Дискретное Преобразование Фурье (ДПФ). В случае схемы кодирования с Фиг.14 для кодирования данных глубины может быть применена схожая схема декодирования.
Настоящее изобретение относится к способу и системе кодирования, а также к способу и системе декодирования, как описано выше.
Настоящее изобретение также реализовано в видеосигнале, содержащем кодированные видеосигналы и информацию управления, которая содержит, например, функциональные параметры для применения в способе декодирования. Информация управления может содержать данные согласно любому из описанных выше вариантов осуществления или согласно любой их комбинации.
Информация управления, заключенная в видеосигнал согласно настоящему изобретению, может содержать один или более из следующих типов информации:
A: общая информация, применимая ко всему видеосигналу и указывающая:
1. Что данный способ используется для кодирования видеосигнала. Это полезно, если в будущем будет только один стандартный способ.
2. Что для кодирования видеосигнала используется конкретный вариант осуществления данного способа или параметры конкретного варианта осуществления, такие как пороговая величина ПВ.
3. Параметры, используемые в упомянутом способе, такие как, например:
- Используемые временные штампы.
- Параметры, используемые при кодировании видеосигнала, такие как параметры для фильтров, алгоритмы увеличения или уменьшения размера, либо алгоритмы, позволяющие определять, которые предсказания используются.
B: конкретная, динамическая информация.
Если видеосигнал генерируются динамически, то есть, определенные выборы в процессе кодирования зависят от содержимого видео, то эти выборы, выполняемые в кодере, могут быть включены в кодированный видеосигнал. Например, если способ кодирования содержит алгоритм для принятия решения о временных штампах, которые требуется использовать (например, величина a или τ2), то выбором является включение деталей упомянутых алгоритмов выбора в видеосигнал (и, таким образом, включение общей информации в видеосигнал). Тем не менее, это действует, только если декодер содержит упомянутый алгоритм. Если декодер не содержит упомянутый алгоритм, то может быть передана конкретная динамическая информация, то есть, для конкретной части видеосигнала (например, посредством флага) определяется, что используется конкретная величина временного штампа.
Видеосигнал может содержать общую информацию, а также динамическую информацию. Все вышеперечисленные типы информации, также как и другие типы информации, относящиеся к использованию способа согласно настоящему изобретению, в рамках приложения называются параметром.
Настоящее изобретение также реализовано в любом компьютерном программном продукте для способа или устройства согласно настоящему изобретению. Термин "компьютерный программный продукт" обозначает любой физически реализованный набор команд, позволяющий процессору общего или специального назначения после загрузки ряда этапов (которые могут включать в себя промежуточные этапы преобразования, такие как преобразование в промежуточный язык и финальный язык обработки) выполнять любые отличительные функции настоящего изобретения. В частности, компьютерный программный продукт может быть реализован как данные на носителе, таком как, диск или лента, данные в памяти, данные, передаваемые по проводному или беспроводному сетевому соединению, или программный код на бумаге. Кроме программного кода, отличительные данные, необходимые для упомянутой программы, также могут быть реализованы как компьютерный программный продукт.
Настоящее изобретение вкратце можно описать следующим образом.
В способе для кодирования и кодере для сигнала трехмерного видео кодируют кадры центрального вида, карту глубины для кадров центрального вида и кадр данных загораживания. На основании карты глубины для кадра центрального вида выполняется различение функциональных и нефункциональных данных в кадре данных загораживания. Это обеспечивает возможность значительного сокращения количества битов, необходимых для кодированного кадра данных загораживания. В декодере комбинированный поток данных формируется из функциональных данных в кодированных кадрах данных загораживания и кадрах центрального вида. Предпочтительно, кадры центрального вида используются в качестве опорных кадров при кодировании кадров данных загораживания.
Следует отметить, что вышеописанные варианты осуществления приведены только для иллюстрации настоящего изобретения, а не для его ограничения, и специалисты в данной области техники будут в состоянии разработать множество альтернативных вариантов осуществления в рамках объема изобретения, который определен прилагаемой формулой изобретения.
Фиг.16 представляет собой иллюстрацию еще одного варианта осуществления настоящего изобретения.
L
L
R
R
L
L
R
R
1
2
1
2
L
L
L
L
R
R
L
R
L
R
(1)
(2)
(1)
(2)
(1)
(2)
(1)
(2)
(k)
(k+1)
(k)
(k+1)
(k)
(k+1)
(k)
(m)
(k)
(m)
,
Фиг.16 иллюстрирует типовой профиль D неравенства как функцию от позиции x пикселя центрального вида. Профиль неравенства, по существу, иллюстрирует некоторое количество объектов в центральном виде в различных позициях, разделенных шагами по глубине Δ , Δ ,Δ ,Δ где L обозначает неравенства, относящиеся к видам левого глаза, то есть, углу наблюдения слева, а R обозначает неравенства, относящиеся к видам правого глаза. Если новый вид формируется с использованием этого профиля неравенства, то из-за шагов неравенства возникнут дыры в новом виде. Если новый вид отображается для левого глаза, то шаги Δ  и Δ  приведут к возникновению дыр (hL1 & hL2). Если новый вид отображается для правого глаза, то шаги Δ  и Δ  приведут к возникновению дыр (hR1 & hR2). Для вида левого глаза, значение ΔL, которое превышает пороговую величину, обозначает, что дыра должна быть заполнена соответствующими данными из кадра загораживания. Тем не менее, это выполняется только тогда, когда присутствуют соответствующие "функциональные данные" (области L, L, R, R в примерах с 1 по 4). В этом примере эти области функциональных данных можно отличить от областей нефункциональных данных, поскольку величины яркости функциональных данных, например, выше пороговой величины, тогда как яркость данных ниже упомянутой пороговой величина (например, величина яркости, равная 3) обозначает нефункциональные данные. Если в соответствующих позициях дыр присутствуют "нефункциональные" данные, то эта дыра должна быть заполнена посредством данных из текстуры центрального вида, например, путем повторения текстуры. Если возникают два последовательных шага Δ  и Δ  без "нефункциональных" данных, то "функциональные" данные принадлежат дыре, образованной из-за Δ , и они не могут быть использованы для заполнения дыры, образованной из-за Δ  (пример 2). Тот же принцип действителен для Δ  и Δ . Если в кадре данных загораживания между двумя последовательными шагами Δ  и Δ  возникают "нефункциональные" данные, то те же "функциональные" данные будут использованы для заполнения дыр, образованных из-за Δ  и из-за Δ , чтобы создать вид левого глаза и вид правого глаза, соответственно (пример 3). Для заданной дыры "функциональные" данные могут присутствовать или отсутствовать (пример 4).
Если в кодере доступны все трехмерные данные (например, когда центральный вид был сконструирован посредством технологии "синего экрана" и доступны все промежуточные уровни), то до комбинирования этих данных в кадр загораживания кодер должен сделать выбор частей, которые являются наиболее важными, также учитывая битовую скорость данных загораживания. Примеры с 1 по 4 демонстрируют некоторые из разных выборов, которые может сделать кодер. Путем вставки нефункциональных промежутков (ЗГРЖ="0") между частями (L1, L2,..., R1, R2,...), эти части могут быть разделены друг от друга и интерпретированы корректно на стороне декодера (так что они появляются в корректной дыре в течение отображения). Когда в результате выборов, сделанных кодером, подобные данные заполнения дыр недоступны, поскольку (ЗГРЖ="0") или они имеют неправильный тип (например, для отображения правого вида часть Lx не может быть использована для заполнения дыры), дыра должна быть заполнена посредством данных из центрального вида, например, путем повторения данных. Как упоминалось выше в примере 3, если между Li и Rj отсутствуют нефункциональные данные, то подобная часть может быть использована для заполнения соответствующей дыры в течение отображения для обоих направлений L и R.
Величина насыщенности текстуры в потенциально подходящей части для кадра данных загораживания может быть критерием для кодера, чтобы определить части, которые следует предпочесть относительно других (в примере 2, например, часть L1 более важна, чем часть L2, которая была опущена).
В подобных вариантах осуществления части загораживания комбинируются в один кадр данных загораживания, и генерируется средство индикации (промежутки) для различения разных частей загораживания друг от друга.
В этом варианте осуществления переходы с функциональных данных (ЗГРЖ≠"0") на нефункциональные данные (ЗГРЖ="0"), то есть, присутствие или отсутствие промежутка сигнала загораживания, по меньшей мере, для одного пикселя используется в качестве индикатора для различения разных частей загораживания в кадре данных загораживания. Как описано выше, в вариантах осуществления для нефункциональных данных может быть зарезервирована величина или величина может лежать в зарезервированном диапазоне. Если используется зарезервированный диапазон, например, 0, 1, 2 и 3, то действительная величина может использоваться для передачи информации декодера на соседнюю функциональную область, например, если это правая или левая область, то величина 0, например, может указывать, что следующая функциональная область является левой областью, а величина 1 может указывать, что следующая область является правой областью. Эта информация может применяться в декодере, поскольку декодеру будут известны характеристики разных частей загораживания.
Как упоминалось выше со ссылкой на Фиг.6, термин "нефункциональные" означает, что данные не могут быть применены для величины пикселя. Упомянутые данные, таким образом, не обрабатываются как данные пикселя. Тем не менее, "нефункциональные" данные могут содержать другую информацию, например. Вкратце, если используется диапазон величин, то можно передавать через "нефункциональные" данные информацию декодера, отличную от величин пикселей. Если нефункциональные данные могут быть различены посредством другого средства, а не их величины, например, посредством содержимого карты глубины (см. описание Фиг.6), то относительно большой объем информации может храниться в нефункциональных областях кадров данных загораживания. Само собой разумеется, что это увеличит количество битов, необходимых для кадра данных загораживания, но также увеличивается эффективность кодирования, если подобная информация представляет ценность и не может быть эффективно передана иным образом.
На стороне декодера, декодер для декодирования кодированного сигнала принимает видеосигнал, в котором множество частей загораживания комбинированы в один кадр данных загораживания и присутствуют индикаторы (вставленные промежутки и/или действительные величины в этих промежутках) для различения частей загораживания друг от друга, и декодер содержит средство для идентификации индикаторов, то есть, используется алгоритм, обратный алгоритму, который используется для вставки индикаторов.
В формуле изобретения позиционные обозначения, включенные в скобки, не следует рассматривать как ограничивающие данный пункт формулы изобретения.
Термин "содержащий" не исключает наличия других элементов или этапов, отличных от перечисленных в заданном пункте формулы изобретения. Настоящее изобретение может быть реализовано посредством любого сочетания отличительных признаков различных предпочтительных вариантов осуществления, как описано выше.