СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ ГЕОМЕТРИИ ОБЛАКА ТОЧЕК
METHOD AND APPARATUS FOR ENCODING THE GEOMETRY OF A POINT CLOUD

1. Область техники
Настоящие принципы, в общем, относятся к кодированию и декодированию облака точек, представляющего внешнюю поверхность трехмерного объекта. В частности, но не только, область техники настоящих принципов относится к кодированию/декодированию изображений глубины, представляющих геометрию такого облака точек.
2. Уровень техники
Настоящий раздел предназначен для того, чтобы ознакомить читателя с различными аспектами области техники, которые могут относиться к различным аспектам настоящих принципов, которые описываются и/или заявляются в формуле изобретения ниже. Считается, что это пояснение должно быть полезным при предоставлении читателю исходной информации для того, чтобы упрощать понимание различных аспектов настоящих принципов. Соответственно, следует понимать, что данные формулировки должны читаться в этом смысле, а не как допущения предшествующего уровня техники.
Облако точек представляет собой набор точек данных в некоторой системе координат. В трехмерной системе координат (в трехмерном пространстве), эти точки обычно предназначены для того, чтобы представлять внешнюю поверхность трехмерного объекта. Каждая точка облака точек зачастую задается посредством своего местоположения (координат X, Y и Z в трехмерном пространстве) и возможно посредством других ассоциированных атрибутов, таких как цвет, представленный в цветовом RGB- или YUV-пространстве, например, прозрачность, коэффициент отражения, двухкомпонентный нормальный вектор и т.д.
Общепринято представлять облако точек в качестве набора 6-компонентных точек (X, Y, Z, R, G, B) или эквивалентно (X, Y, Z, Y, U, V), где (X, Y, Z) задает координаты цветной точки в трехмерном пространстве, и (R, G, B) или (Y, U, V) задает цвет этой цветной точки.
Облака точек могут быть статическими или динамическими в зависимости от того, видоизменяется или нет облако относительно времени. Следует отметить, что в случае динамического облака точек, число точек не является постоянным, а, наоборот, в общем, видоизменяется со временем. Динамическое облако точек в силу этого представляет собой упорядоченный по времени список набора точек.
На практике, облака точек могут использоваться в различных целях, к примеру, для предметов культурного наследия/здания, в которых объекты, такие как статуи или здания, сканируются в трехмерном виде, чтобы совместно использовать пространственную конфигурацию объекта без его отправки или посещения. Кроме того, они представляют собой способ обеспечивать сохранение знаний касательно объекта в случае, если он может быть уничтожен; например, храм в силу землетрясения. Такие облака точек типично являются статическими, цветными и огромными.
Другой вариант использования представляет собой топографию и картографию, когда при использовании трехмерных представлений, карты не ограничены плоскостью и могут включать в себя рельеф. Google Maps сегодня представляет собой хороший пример трехмерных карт, но использует ячеистые сети вместо облаков точек. Тем не менее, облака точек могут представлять собой подходящий формат данных для трехмерных карт, и такие облака точек типично являются статическими, цветными и огромными.
Автомобильная промышленность и автономные автомобили также представляют собой предметные области, в которых могут использоваться облака точек. Автономные автомобили должны иметь возможность "зондировать" свое окружение, чтобы принимать оптимальное решение по вождению на основе реальности своих непосредственных окрестностей. Типичные датчики, такие как лидары, формируют динамические облака точек, которые используются посредством механизма принятия решений. Эти облака точек не предназначены для просмотра человеком, и они типично являются небольшими, не обязательно цветными и динамическими с высокой частотой захвата. Он могут иметь другие атрибуты, такие как коэффициент отражения, предоставленный посредством лидара, поскольку этот атрибут представляет собой хорошую информацию относительно материала считываемого объекта и может помогать в принятии решения.
Виртуальная реальность и иммерсивные миры в последнее время становятся горячей темой для обсуждений и предсказываются многими в качестве будущего после двумерного плоского видео. Базовая идея состоит в том, чтобы погружать зрителя в окружение с круговым обзором вокруг него, в отличие от стандартного телевизора, на котором он может смотреть только на виртуальный мир впереди него. Предусмотрено несколько градаций в иммерсивности в зависимости от свободы зрителя в окружении. Облако цветных точек представляет собой хороший возможный вариант формата для того, чтобы распределять миры виртуальной реальности (или VR). Они могут быть статическими или динамическими и типично имеют усредненный размер, скажем, не более миллионов точек за раз.
Сжатие облаков точек должно успешно выполнять сохранение/передачу трехмерных объектов для иммерсивных миров только в том случае, если размер потока битов является достаточно низким для того, чтобы обеспечивать возможность практического хранения/передачи конечному пользователю.
Крайне важно иметь возможность распределять динамические облака точек конечному пользователю с рациональным расходом по скорости передачи битов при поддержании приемлемого (или предпочтительно очень хорошего) качества восприятия. Эффективное сжатие этих динамических облаков точек представляет собой ключевой момент для обеспечения практичности цепочек распределения иммерсивных миров.
Технологии сжатия облаков точек на основе изображений становятся все более популярными вследствие своей комбинации эффективности сжатия и низкой сложности. Они развиваются на двух основных этапах: во-первых, они проецируют (в ортогональной проекции) облако точек, т.е. трехмерные точки, на двумерные изображения. Например, по меньшей мере, одно изображение глубины представляет геометрию облака точек, т.е. пространственные координаты трехмерных точек в трехмерном пространстве, и, по меньшей мере, одно изображение текстуры представляет атрибут, ассоциированный с трехмерными точками облака точек, например, информацию текстуры/цвета, ассоциированную с этими трехмерными точками. Далее, эти технологии кодируют такие изображения глубины и текстуры с помощью унаследованных видеокодеров.
Технологии сжатия облаков точек на основе изображений достигают хорошей производительности сжатия за счет использования производительности двумерного видеокодера, к примеру, как указано в HEVC ("ITU-T H.265 Telecommunication standardization sector of ITU (10/2014), series H: audiovisual and multimedia systems, infrastructure of audiovisual services - coding of moving video, High efficiency video coding, Recommendation ITU-T H.265"), при том, что одновременно они поддерживают сложность низкой за счет использования простых схем проекции.
Одна из сложностей технологий сжатия облаков точек на основе изображений заключается в том, что облако точек может не быть подходящим для проекции на изображения, в частности, когда распределение точек соответствует поверхности с множеством сгибов (вогнутых/выпуклых областей, как в одежде), либо когда распределение точек вообще не соответствует поверхности (как в мехе или волосах). В этих ситуациях, технологии сжатия облаков точек на основе изображений страдают от низкой эффективности сжатия (требуется множество небольших проекций, что снижает эффективность сжатия двумерного видео), или плохого качества (вследствие трудности проецирования облака точек на поверхность).
Один из подходов, используемых в предшествующем уровне техники для того, чтобы облегчать эту проблему, состоит в проецировании множественной информации геометрии и текстуры на идентичное пространственное местоположение (пиксел) изображения. Это означает то, что несколько глубин и/или изображений текстуры могут формироваться в расчете на трехмерную точку облака точек.
0
1
0
1
0
Это имеет место, например, для так называемого кодера облаков точек на основе тестовой модели категории 2 (TMC2), заданного в ISO/IEC JTC1/SC29/WG11/N17248, Макао, Китай, октябрь 2017 года, в котором облако точек ортогонально проецируется на плоскость проекции. Два значения глубины затем ассоциированы в расчете на координату упомянутой плоскости проекции: одно из них представляет значение глубины, ассоциированное с ближайшей точкой (наименьшее значение глубины), а другое представляет значение глубины самой дальней точки (наибольшее значение глубины). Первое изображение глубины затем формируется из наименьших значений глубины (D), и второе изображение глубины формируется из разности между наибольшими (D) и наименьшими (D) значениями глубины, удовлетворяющей D- D<=SurfaceThickness, где SurfaceThickness является максимальной толщиной поверхности.
Изображения глубины и ассоциированные метаданные затем кодируются и декодируются. После этого геометрия облака точек восстанавливается из декодированных изображений глубины. Далее, цвет/текстура назначается каждой точке восстановленного облака точек, и изображения текстуры (здесь два) формируются из упомянутых назначенных цветов/текстур. Два изображения текстуры затем кодируются.
В силу этого, второе изображение глубины содержит значимые контурные высокочастотные признаки, которые очень сложно кодировать.
3. Сущность изобретения
Ниже представлена упрощенная сущность настоящих принципов, чтобы предоставлять базовое понимание некоторых аспектов настоящих принципов. Эта сущность не является всесторонним обзором настоящих принципов. Она не имеет намерение идентифицировать ключевые или критически важные элементы настоящих принципов. Нижеприведенная сущность просто представляет некоторые аспекты настоящих принципов в упрощенной форме в качестве вступления к более подробному описанию, предоставленному ниже.
Настоящие принципы изложены для того, чтобы устранять, по меньшей мере, один из недостатков предшествующего уровня техники за счет способа для кодирования значений глубины ортогонально проецируемых точек облака точек на плоскость проекции, содержащего:
- получение первого кодированного изображения глубины посредством кодирования первого изображения глубины в потоке битов, причем упомянутое первое изображение глубины представляет значения глубины более близких точек облака точек;
- определение и кодирование, в потоке битов, режима кодирования глубины в расчете на область изображения, причем упомянутый режим кодирования глубины указывает то, также кодируются или нет значения глубины в области изображения для второго изображения глубины в потоке битов, причем упомянутое второе изображение глубины представляет значения глубины более далеких точек облака точек; и
- если, по меньшей мере, один режим кодирования глубины указывает то, что значения глубины в области изображения для второго изображения глубины кодируются в потоке битов, кодирование, по меньшей мере, частично второго изображения глубины в потоке битов.
Согласно варианту осуществления, определение того, кодируются или нет значения глубины в области изображения для второго изображения глубины в потоке битов, содержит:
- получение декодированного первого изображения глубины посредством декодирования первого кодированного изображения глубины и декодированного второго изображения глубины посредством кодирования и декодирования второго изображения глубины;
- вычисление первой функции затрат на искажение в зависимости от скорости передачи с учетом первого расстояния и первой скорости передачи битов, причем упомянутое первое расстояние вычисляется между значениями глубины в совместно размещенной области изображения для упомянутого декодированного первого изображения глубины и значениями глубины в совместно размещенной области изображения для декодированного второго изображения глубины, причем упомянутая скорость передачи данных вычисляется для кодирования упомянутого второго изображения глубины;
- вычисление второй функции затрат на искажение в зависимости от скорости передачи с учетом второго расстояния, причем скорость передачи данных здесь считается нулевой, причем упомянутое второе расстояние вычисляется между значениями глубины совместно размещенной области изображения для упомянутого декодированного первого изображения глубины и интерполированными значениями глубины, получаемыми посредством интерполяции значений глубины в упомянутом декодированном первом изображении глубины;
- если вторая функция затрат на искажение в зависимости от скорости передачи ниже первой функции затрат на искажение в зависимости от скорости передачи, то режим кодирования глубины для упомянутой области изображения указывает то, что значения глубины в совместно размещенной области изображения для второго изображения глубины не кодируются в потоке битов, в противном случае, режим кодирования глубины для упомянутой области изображения указывает то, что значения глубины в совместно размещенной области изображения для второго изображения глубины кодируются в потоке битов.
Согласно варианту осуществления, определение того, кодируются или нет значения глубины в области изображения для второго изображения глубины в потоке битов, содержит:
- вычисление интерполированных значений глубины для упомянутой области изображения для второго изображения глубины посредством интерполяции значений глубины в упомянутом первом изображении глубины;
- вычисление расстояния между значениями глубины в упомянутой области изображения для второго изображения глубины и интерполированными значениями глубины, полученными посредством интерполяции значений глубины в декодированном первом изображении глубины, полученном посредством декодирования первого кодированного изображения глубины;
- если расстояние ниже порогового значения, то режим кодирования глубины для упомянутой области изображения указывает то, что значения глубины в упомянутой области изображения для второго изображения глубины не кодируются в потоке битов, в противном случае, режим кодирования глубины для упомянутой области изображения указывает то, что значения глубины в упомянутой области изображения для второго изображения глубины кодируются в потоке битов.
Согласно варианту осуществления, вышеуказанное первое и второе расстояние или вышеуказанное расстояние вычисляется, по меньшей мере, между частью восстановленного облака точек и соответствующей частью облака точек, причем упомянутая, по меньшей мере, часть облака точек восстанавливается из декодированного первого изображения глубины и второго изображения глубины.
Согласно варианту осуществления, упомянутая, по меньшей мере, часть облака точек восстанавливается из значений глубины в упомянутой области изображения и из значений глубины, по меньшей мере, в одной ранее рассматриваемой области изображения.
Согласно варианту осуществления, если режим кодирования глубины для упомянутой области изображения указывает то, что значения глубины в упомянутой области изображения для второго изображения глубины не кодируются в потоке битов, значения глубины пикселов в упомянутой области изображения для второго изображения глубины заменяются на постоянное значение перед кодированием, по меньшей мере, частично, второго изображения глубины.
Согласно варианту осуществления, режим кодирования глубины кодируется как метаданные, ассоциированные с восстановлением облака точек, геометрия которого представляется посредством упомянутых первого и второго изображений глубины.
Настоящие принципы изложены для того, чтобы устранять, по меньшей мере, один из недостатков предшествующего уровня техники за счет способа для декодирования значений глубины ортогонально проецируемых точек исходного облака точек на плоскость проекции, содержащего:
- получение декодированного первого изображения глубины посредством декодирования потока битов;
- получение режима кодирования глубины, ассоциированного с областью изображения для декодированного второго изображения глубины, из потока битов;
- если режим кодирования глубины указывает то, что значения глубины в упомянутой области изображения для декодированного второго изображения глубины кодируются в потоке битов, декодирование, по меньшей мере, частично второго изображения глубины из потока битов,
- в противном случае, вычисление интерполированных значений глубины в упомянутой области изображения для декодированного второго изображения глубины посредством интерполяции значений глубины в декодированном первом изображении глубины.
Согласно варианту осуществления, полное второе изображение глубины кодируется/декодируется в/из потока битов, когда, по меньшей мере, один режим кодирования глубины указывает то, что значения глубины в области изображения для второго изображения глубины кодируются/декодируются в потоке битов.
Согласно варианту осуществления, размер и форма области изображения для второго изображения глубины представляют собой размер и форму упомянутого второго изображения глубины. Согласно другим своим аспектам, настоящие принципы относятся к устройству, компьютерному программному продукту, энергонезависимому машиночитаемому носителю и видеосигналу.
Конкретный характер настоящих принципов, а также другие цели, преимущества, признаки и варианты использования настоящих принципов должны становиться очевидными из нижеприведенного описания примеров, рассматриваемого вместе с прилагаемыми чертежами.
4. Краткое описание чертежей
На чертежах проиллюстрированы примеры настоящих принципов. Они показывают следующее:
Фиг. 1 схематично показывает схему этапов способа для кодирования геометрии облака точек, представленного посредством первого и второго изображений глубины, в соответствии с примером настоящих принципов;
Фиг. 2 схематично показывает схему этапа 120 способа по фиг. 1 в соответствии с вариантом осуществления настоящих принципов;
Фиг. 3 схематично показывает схему этапа 120 способа по фиг. 1 в соответствии с вариантом осуществления настоящих принципов;
Фиг. 4 схематично показывает схему этапов способа для декодирования геометрии облака точек из первого и второго изображений глубины, представляющих различные значения глубины ортогонально проецируемых точек исходного облака точек, в соответствии с примером настоящих принципов;
Фиг. 5 схематично показывает способ для кодирования геометрии и текстуры облака точек, как задано в предшествующем уровне техники (TMC2);
Фиг. 6 схематично показывает пример использования способов 100 и 200 в способе кодирования по фиг. 5;
Фиг. 7 схематично показывает способ для декодирования геометрии и текстуры облака точек, как задано в предшествующем уровне техники (TMC2);
Фиг. 8 схематично показывает пример использования способа 200 в способе декодирования по фиг. 7;
Фиг. 9 показывает пример архитектуры устройства в соответствии с примером настоящих принципов; и
Фиг. 10 показывает два удаленных устройства, обменивающиеся данными по сети связи в соответствии с примером настоящих принципов; и
Фиг. 11 показывает синтаксис сигнала в соответствии с примером настоящих принципов.
Аналогичные или идентичные элементы упоминаются с идентичными ссылками с номерами.
5. Подробное описание примера настоящих принципов
Далее подробнее описываются настоящие принципы со ссылкой на прилагаемые чертежи, на которых показаны примеры настоящих принципов. Тем не менее, настоящие принципы могут осуществляться во множестве альтернативных форм и не должны рассматриваться как ограниченные примерам, изложенными в данном документе. Соответственно, хотя настоящие принципы допускают различные модификации и альтернативные формы, их конкретные примеры показаны в качестве примера на чертежах и подробнее описываются в данном документе. Тем не менее, необходимо понимать, что отсутствует намерение ограничивать настоящие принципы конкретными раскрытыми формами, а наоборот, раскрытие сущности должно охватывать все модификации, эквиваленты и альтернативы, попадающие в пределы сущности и объема настоящих принципов, заданных посредством формулы изобретения.
Терминология, используемая в данном документе, служит только для цели описания конкретных примеров и не имеет намерение ограничивать настоящие принципы. При использовании в данном документе, формы единственного числа "a", "an" и "the" служат для того, чтобы включать в себя также формы множественного числа, если контекст явно не указывает иное. Следует дополнительно понимать, что термины "содержит", "содержащий", "включает в себя" и/или "включающий в себя" при использовании в данном подробном описании задают наличие изложенных признаков, целых чисел, этапов, операций, элементов или компонентов, однако не препятствуют наличию или добавлению одного или более других признаков, целых чисел, этапов, операций, элементов, компонентов или их групп. Кроме того, когда элемент упоминается как "чувствительный" или "соединенный" с другим элементом, он может быть непосредственно чувствительным или соединенным с другим элементом, или могут присутствовать промежуточные элементы. Напротив, когда элемент упоминается как "непосредственно чувствительный" или "непосредственно соединенный" с другим элементом, промежуточные элементы не присутствуют. При использовании в данном документе, термин "и/или" включает в себя все без исключения комбинации одного или более ассоциированных перечисленных элементов и может сокращаться как "/".
Следует понимать, что хотя термины "первый", "второй" и т.д. могут использоваться в данном документе для того, чтобы описывать различные элементы, эти элементы не должны быть ограничены посредством этих терминов. Эти термины используются только для того, чтобы отличать один элемент от другого. Например, первый элемент может называться "вторым элементом", и, аналогично, второй элемент может называться "первым элементом" без отступления от идей настоящих принципов.
Хотя некоторые схемы включают в себя стрелки на трактах связи, чтобы показывать первичное направление связи, следует понимать, что связь может осуществляться в противоположном направлении относительно проиллюстрированных стрелок.
Некоторые примеры описываются относительно блок-схем и блок-схем последовательности операций способа, на которых каждый этап представляет схемный элемент, модуль или часть кода, который содержит одну или более выполняемых инструкций для реализации указанной логической функции(й). Также следует отметить, что в других реализациях, функция(и), отмеченная на этапах, может осуществляться в другом случайном порядке. Например, два этапа, показанные друг за другом, фактически могут выполняться практически одновременно, либо этапы иногда могут выполняться в обратном порядке, в зависимости от предусмотренной функциональности.
Ссылка в данном документе на "в соответствии с примером", или "в примере" означает то, что конкретный признак, структура или характеристика, описанная в связи с примером, может включена, по меньшей мере, в одну реализацию настоящих принципов. Вхождения фразы "в соответствии с примером" или "в примере" в различных местах в описании изобретения не обязательно ссылаются на идентичный пример, и при этом отдельные или альтернативные примеры не являются обязательно взаимоисключающими относительно других примеров.
Ссылки с номерами, появляющиеся в формуле изобретения, служат только в качестве иллюстрации и не должны иметь ограничивающего влияния на объем формулы изобретения.
Хотя не описано явно, настоящие примеры и разновидности могут использоваться в любой комбинации или субкомбинации.
Настоящие принципы описываются для кодирования/декодирования геометрии облака точек из двух изображений глубины, но распространяются на кодирование/декодирование последовательности облаков точек (временно динамического облака точек), поскольку геометрия последовательности облаков точек кодируется/декодируется посредством/из двух последовательностей (видео) изображений глубины, причем два изображения глубины, ассоциированные с облаком точек, кодируются независимо от двух изображений глубины другого облака точек последовательности.
0
1
0
1
0
Как пояснено выше, облако точек ортогонально проецируется на плоскость проекции, и два изображения D и D глубины получаются из значений глубины, ассоциированных с упомянутыми проецируемыми трехмерными точками. D представляет собой первое изображение глубины, которое представляет значения глубины ближайших точек облака точек, и D представляет собой второе изображение глубины, которое представляет значения глубины самых дальних точек облака точек. Первое изображение D глубины кодируется с использованием, например, унаследованного кодера изображений/видеокодера.
Далее, термин "область изображения" обозначает набор пикселов изображения. Эти пикселы могут быть смежными пикселами или не могут быть смежными пикселами, но все они совместно используют, по меньшей мере, одно общее свойство.
Например, непосредственно изображение может считаться областью изображения. Изображение также может разбиваться на несколько блоков, и в таком случае блок представляет собой область изображения.
Область изображения также может иметь непрямоугольную форму. Это имеет место, например, когда пикселы изображения, которые имеют идентичный (или аналогичный) извлеченный признак, ассоциированы таким образом, чтобы формировать область изображения.
Примеры признака, извлеченного из изображения, могут представлять собой цвет, текстуру, нормальный вектор и т.д.
0
1
Фиг. 1 схематично показывает схему этапов способа 100 для кодирования геометрии облака точек, представленного посредством первого (D) и второго (D) изображений глубины, в соответствии с примером настоящих принципов.
0
На этапе 110, первое изображение D глубины кодируется в потоке B битов.
i
1
На этапе 120, модуль определяет режим DCM кодирования глубины в расчете на область изображения, причем упомянутый режим кодирования глубины указывает то, также кодируются или нет значения глубины пикселов в области изображения для второго изображения D глубины в потоке B битов. Этот режим кодирования глубины обозначается как "явный" режим далее.
i
На этапе 130, модуль кодирует упомянутый режим DCM кодирования глубины в потоке B битов.
i
1
1
На этапе 140, если, по меньшей мере, один режим DCM кодирования глубины указывает то, что значения глубины пикселов в области изображения для второго изображения D глубины кодируются в потоке B битов ("явный" режим), модуль кодирует, по меньшей мере, частично второе изображение D глубины в потоке B битов.
Этапы 130 и 140 повторяются до тех пор, пока не будет рассмотрена каждая из I областей изображения.
1
1
Согласно настоящим принципам, дополнительный режим кодирования глубины кодируется в потоке битов, чтобы указывать то, кодируется явно (или неявно) либо нет область изображения для второго изображения D глубины в потоке битов. Когда режим кодирования глубины, ассоциированный с областью изображения для второго изображения D глубины, указывает то, что значения глубины пикселов в этой области изображения не кодируются в потоке битов ("неявный" режим), скорость передачи битов снижается по сравнению с эффективной передачей кодированных данных, представляющих упомянутые значения глубины, как раскрыто в предшествующем уровне техники. Таким образом, передача такого режима кодирования глубины в расчете на область изображения увеличивает эффективность кодирования изображений глубины, представляющих геометрию облака точек.
Согласно варианту осуществления, размер и форма области изображения для второго изображения глубины представляют собой размер и форму упомянутого второго изображения глубины, т.е. область изображения представляет собой непосредственно изображение.
Один режим кодирования глубины затем передается, чтобы указывать то, кодируется (или не кодируется) полное второе изображение глубины в потоке битов.
1
i
Согласно этапу 140, полное второе изображение D глубины кодируется в потоке B битов, когда, по меньшей мере, один режим DCM кодирования глубины задается как "явный" режим.
Согласно другому варианту осуществления, режим кодирования глубины назначается каждой области изображения для второго изображения глубины.
Упомянутая область изображения может иметь прямоугольную форму, например, блок изображения, или непрямоугольную форму, к примеру, патчи по проецируемой глубине в TMC2.
Эти варианты осуществления повышают эффективность кодирования посредством локальной адаптации режима кодирования глубины к характеристикам контента изображений.
1
Согласно варианту осуществления этапа 120, как проиллюстрировано на фиг. 2, определение того, кодируются или нет значения глубины пикселов в области изображения для второго изображения D глубины в потоке битов, содержит следующие этапы.
1
Модуль получает декодированное первое изображение  глубины посредством декодирования первого кодированного изображения глубины и декодированное второе изображение  глубины посредством кодирования и декодирования второго изображения D глубины.
0
0
1
Текущая область изображения для упомянутого декодированного первого изображения  глубины рассматривается. Значения глубины пикселов в упомянутой текущей области изображения представляют собой набор значений глубины, обозначаемый как  . Первый показатель Dist качества вычисляется между значениями глубины пикселов в упомянутой текущей области  изображения и значениями глубины совместно размещенных пикселов в декодированном втором изображении  глубины, т.е. значениями глубины пикселов в совместно размещенной области изображения для декодированного второго изображения глубины, причем упомянутый набор значений глубины обозначается как  . Также вычисляется скорость RA передачи данных для кодирования упомянутого второго изображения D глубины.
0
0
0
Первая функция Cost затрат на искажение в зависимости от скорости передачи затем вычисляется с учетом упомянутого первого расстояния Dist и упомянутой первой скорости RA передачи битов.
Модуль вычисляет интерполированные значения глубины для пикселов совместно размещенной области изображения для декодированного второго изображения  глубины посредством интерполяции значений глубины пикселов в упомянутом декодированном первом изображении  глубины. Набор интерполированных значений глубины обозначается как .
1
Второй показатель Dist качества вычисляется между значениями глубины пикселов в упомянутой текущей области  изображения и интерполированными значениями  глубины.
1
1
Вторая функция Cost затрат на искажение в зависимости от скорости передачи затем вычисляется с учетом упомянутого второго расстояния Dist, причем скорость передачи данных здесь считается нулевой, поскольку второе изображение глубины не кодируется (передается).
1
0
i
1
i
1
Если вторая функция Cost затрат на искажение в зависимости от скорости передачи ниже первой функции Cost затрат на искажение в зависимости от скорости передачи, то режим DCM кодирования глубины для текущей области i изображения задается как "неявный", т.е. указывает то, что значения глубины в текущей области изображения для второго изображения D глубины не кодируются в потоке битов. В противном случае, режим DCM кодирования глубины для текущей области i изображения задается как "явный", т.е. указывает то, что значения глубины в текущей области изображения для второго изображения D глубины кодируются в потоке битов.
Этапы этого варианта осуществления повторяются до тех пор, пока не будет рассмотрена каждая из I областей изображения.
Этот вариант осуществления этапа 120 предоставляет наилучший компромисс по искажению в зависимости от скорости передачи для определения того, кодируются (или нет) значения глубины пикселов в области изображения для второго изображения глубины в потоке битов.
1
Согласно альтернативному варианту осуществления этапа 120, как проиллюстрировано на фиг. 3, определение того, кодируются или нет значения глубины пикселов в области изображения для второго изображения D глубины в потоке битов, содержит следующие этапы.
1
0
Модуль вычисляет интерполированные значения глубины для пикселов совместно размещенной области изображения для второго изображения D глубины посредством интерполяции значений глубины пикселов в упомянутом первом изображении D глубины. Набор интерполированных значений глубины обозначается как .
1
Расстояние DIST затем вычисляется между значениями глубины в текущей области i изображения для второго изображения D глубины, обозначаемыми как  , и упомянутыми интерполированными значениями  глубины.
i
1
i
1
Если расстояние DIST ниже порогового значения TH, то режим DCM кодирования глубины для текущей области i изображения задается как "неявный", т.е. указывает то, что значения глубины в текущей области изображения для второго изображения D глубины не кодируются в потоке битов. В противном случае, режим DCM кодирования глубины для текущей области i изображения задается как "явный", т.е. указывает то, что значения глубины в текущей области изображения для второго изображения D глубины кодируются в потоке битов.
Этапы этого варианта осуществления повторяются до тех пор, пока не будет рассмотрена каждая из I областей изображения.
Этот альтернативный вариант осуществления этапа 120 предоставляет субоптимальный компромисс по искажению в зависимости от скорости передачи, поскольку показатель вычисляется без процесса кодирования/декодирования, но снижает сложность процесса выбора по сравнению со сложностью вышеуказанного оптимального варианта осуществления по фиг. 2.
Согласно варианту осуществления, расстояние DIST между двумя наборами упорядоченных значений глубины A и B является расстоянием, заданным следующим образом:
,
j
j
где A, соответственно, B, обозначают j-ое значение глубины упорядоченного набора A, соответственно, B, для J значений глубины.
Упорядочение набора значений означает то, что значения Aj и Bj глубины представляют различные значения глубины совместно размещенных пикселов в двух различных изображениях глубины.
Расстояние DIST не ограничено этим вариантом осуществления и может распространяться на любой другой известный показатель для вычисления расстояния между двумя наборами J значений, такой как, например, сумма абсолютных разностей, среднее/максимум/минимум разностей и т.д.
Согласно варианту осуществления, расстояние DIST вычисляется, по меньшей мере, между частью восстановленного облака точек и соответствующей частью исходного облака точек.
В качестве примера, расстояние DIST задается посредством ISO/IEC JTC1/SC29/WG1 MPEG2017/N16763, Хобарт, апрель 2017 года, приложение B.
Упомянутая, по меньшей мере, часть облака точек восстанавливается из декодированного первого изображения глубины и второго изображения глубины.
Согласно варианту осуществления, упомянутая, по меньшей мере, часть облака точек восстанавливается из значений глубины пикселов в области изображения.
Согласно варианту осуществления, упомянутая, по меньшей мере, часть облака точек восстанавливается из значений глубины пикселов в текущей области изображения и из значений глубины пикселов, по меньшей мере, в одной ранее рассматриваемой области изображения.
Например, согласно этому варианту осуществления, "временное" второе изображение глубины инициализируется с постоянным значением. После этого, значения глубины пикселов упомянутого временного второго изображения глубины итеративно заменяются либо посредством значений глубины кодированного/декодированного второго изображения глубины, когда текущая область изображения кодируется явно ("явный" режим), либо посредством дополнения значения глубины ближайшей соседней точки, ранее кодированной согласно "явному" режиму.
Таким образом, восстановленное облако точек, которое зависит от кодирования значений глубины пикселов в ранее рассматриваемых областях изображения, становится аналогичным восстановленному облаку точек.
Следует отметить, что в этом варианте осуществления, "временное" изображение глубины не кодируется в потоке битов. Второе изображение глубины по-прежнему кодируется согласно способу по фиг. 1.
i
1
Согласно варианту осуществления этапа 140, если режим DCM кодирования глубины, ассоциированный с областью изображения, задается как "неявный", значения глубины пикселов в упомянутой области изображения для второго изображения глубины заменяются на постоянное значение перед кодированием, по меньшей мере, частично, второго изображения D глубины.
i
Согласно варианту осуществления, режим DCM кодирования глубины кодируется как метаданные, ассоциированные с восстановлением облака точек, геометрия которого представляется посредством упомянутых первого и второго изображений глубины.
Упомянутые метаданные могут быть ассоциированы, например, с каждым изображением, общими для двух изображений либо ассоциированы с каждой областью изображения и используются для восстановления геометрии облака точек на стороне кодирования и декодирования, как подробнее пояснено в отношении фиг. 5 и 6.
i
0
Согласно варианту осуществления, режим DCM кодирования глубины кодируется как синтаксический элемент SEI-сообщения, например, присоединенный к NAL-единице, ассоциированной с первым изображением D глубины.
Пример DCM в SEI-сообщении в HEVC
Синтаксис
Дескриптор
dcm_info(payloadSize){
dcm_mode
u(8)
}
dcm_mode содержит идентификационный номер, который используется для того, чтобы идентифицировать режим кодирования глубины. Когда dcm_mode равен 0, это означает, например, "явный" режим, когда 1, это означает "неявный" режим.
Согласно разновидности, режим кодирования глубины также может находиться в SPS- или PPS-сообщении.
i
Согласно другому варианту осуществления, режим DCM кодирования глубины кодируется как водяной знак, встраиваемый в изображения глубины.
i
0
В качестве разновидности, режим DCM кодирования глубины встраивается в качестве видимого водяного знака в пустой зоне первого изображения D глубины.
0
i
Например, блок N*N пикселов в предварительно заданном углу первого изображения D глубины: все пикселы такого блока задаются равными идентичному двоичному значению, например, 0 (1), чтобы указывать то, что режим DCM кодирования глубины задается как "явный" ("неявный").
В декодере, затем вычисляется среднее значение блока, и если упомянутое среднее находится ближе к 0, чем к максимальному значению (все пикселные значения равны 1), в таком случае декодированный блок указывает то, что используется "явный" режим, в противном случае, он указывает то, что используется "неявный" режим.
i
Согласно другому варианту осуществления, режим DCM кодирования глубины должен добавляться в двоичную информацию метаданных, ассоциированных с геометрией облака точек, представленного посредством первого и второго изображений глубины, таких как карта заполнения, заданная в TMC2.
i
Этот вариант осуществления лучше подходит для того, чтобы указывать режим DCM кодирования глубины при более высоком разрешении, чем в расчете на изображение.
Подробнее рассмотрим то, как это реализуется в TMC2. Высокоуровневый синтаксис текущей версии TMC2 показывается в таблице 1 и таблице 2. Таблица 3 предоставляет синтаксис инкапсуляции потоков геометрии (глубины) и текстуры (цвета). Таблица 4 и таблица 5 описывают подробный синтаксис для карты заполнения и декодирования индексов ассоциирования блоков с патчами. Кроме того, таблица 6 и таблица 7 описывают синтаксис для арифметического кодирования элементарных значений.
Табл. 1. Заголовок потока битов
Магическое число
ReadUint32
Версия
ReadUint32
Полный размер
ReadUint64
GroupOfFrames x N
ReadGroupOfFrames
Табл. 2. Заголовок группы кадров
Размер
ReadUint8
Ширина
ReadUint16
Высота
ReadUint16
Разрешение заполнения
ReadUint8
radius2Smoothing
ReadUint8
neighborCountSmoothing
ReadUint8
radius2BoundaryDetection
ReadUint8
thresholdSmoothing
ReadUint8
losslessGeo
ReadUint8
losslessTexture
ReadUint8
noAttributes
ReadUint8
Геометрический поток видеобитов
ReadVideo()
Карты заполнения x M
ReadOccupancyMap()
Поток видеобитов текстуры
ReadVideo()
Табл. 3. Функция ReadVideo()
Размер потока видеобитов
ReadUint32
Считываемый поток видеобитов
ReadUint8 x размер
Табл. 4. Функция ReadOccupancyMap()
Число патчей
ReadUint32
Точность заполнения
ReadUint8
Максимальное число возможных вариантов
ReadUint8
Число U<sub>0</sub> битов
ReadUint8
Число V<sub>0</sub> битов
ReadUint8
Число U<sub>1</sub> битов
ReadUint8
Число V<sub>1</sub> битов
ReadUint8
Число D<sub>1</sub> битов
ReadUint8
Размер арифметического потока битов
ReadUint32
Арифметический поток битов
ReadArithmetic()
Табл. 5. Функция ReadArithmetic()
Для всех патчей
U<sub>0</sub>
DecodeUInt32(bitCountU0)
V<sub>0</sub>
DecodeUInt32(bitCountV0)
U<sub>1</sub>
DecodeUInt32(bitCountU1)
V<sub>1</sub>
DecodeUInt32(bitCountV1)
D<sub>1</sub>
DecodeUInt32(bitCountD1)
deltaSizeU0
DecodeExpGolomb()
deltaSizeV0
DecodeExpGolomb()
//Декодирование индексов ассоциирования блоков с патчами
Для всех блоков
Если число возможных вариантов патчей > 1
Индекс возможного варианта
Decode
Если индекс возможного варианта == maxCandidateCount
индекс ассоциирования блока с патчем
DecodeUInt32(bitCountPatch)
Иначе
Индекс ассоциирования блока с патчем=индекс возможного варианта
//Декодирование карт заполнения
Для всех блоков
Если индекс ассоциирования блока с патчем > 0
isFull
decode
If not Full
bestTraversalOrderIndex
decode
runCountMinusTwo
decode
Occupancy
decode
for (size_t r=0; r < runCountMinusOne; ++r)
{
runLength
decode
for (size_t j=0; j <= runLength; ++j)
Block[traversalOrder[i++]] = occupancy;
occupancy = !occupancy;
}
Для всех оставшихся блоков
Block[traversalOrder[i++]] = occupancy;
Текущий синтаксис кодирует метаданные в расчете на блок на двух этапах: сначала кодирование индекса ассоциирования блока с патчем для всех блоков изображения-патча, после этого кодирование карты заполнения для этих блоков, принадлежащих патчу.
Индекс ассоциирования блока с патчем задает индекс патча, ассоциированного с каждым блоком изображений текстуры и глубины, при этом блоки формируют регулярную квадратную сетку. Размер блока задается посредством параметра "разрешение заполнения" в заголовке группы кадров и типично задается равным 16 пикселов.
Карта заполнения, которая указывает то, какие пикселы из изображений текстуры и глубины представляют облако точек, которое должно восстанавливаться, также кодируется в расчете на блок. В этом случае, блоки формируют сетку в каждом блоке "разрешение заполнения", причем сетка имеет размер "точность заполнения" и типично задается равной 4 пикселам.
Пример DCM-режима, кодированного в качестве метаданных
Пример DCM в карте заполнения (в расчете на изображение (кадр)): модификация таблицы 5
Табл. 6. Функция ReadArithmetic()
Для всех патчей
U<sub>0</sub>
DecodeUInt32(bitCountU0)
V<sub>0</sub>
DecodeUInt32(bitCountV0)
U<sub>1</sub>
DecodeUInt32(bitCountU1)
V<sub>1</sub>
DecodeUInt32(bitCountV1)
D<sub>1</sub>
DecodeUInt32(bitCountD1)
deltaSizeU0
DecodeExpGolomb()
deltaSizeV0
DecodeExpGolomb()
dcm_mode
ReadUint8
//Декодирование индексов ассоциирования блоков с патчами
Для всех блоков
Если число возможных вариантов патчей > 1
Индекс возможного варианта
Decode
Если индекс возможного варианта == maxCandidateCount
индекс ассоциирования блока с патчем
DecodeUInt32(bitCountPatch)
Иначе
Индекс ассоциирования блока с патчем=индекс возможного варианта
//Декодирование карт заполнения
Для всех блоков
Если индекс ассоциирования блока с патчем > 0
isFull
decode
If not Full
bestTraversalOrderIndex
decode
runCountMinusTwo
decode
Occupancy
decode
for (size_t r=0; r < runCountMinusOne; ++r)
{
runLength
decode
for (size_t j=0; j <= runLength; ++j)
Block[traversalOrder[i++]] = occupancy;
occupancy = !occupancy;
}
Для всех оставшихся блоков
Block[traversalOrder[i++]] = occupancy;
i
i
Согласно варианту осуществления, режимы DCM кодирования глубины, ассоциированные с областями изображения, представляют собой двоичные значения последовательности двоичных значений, при этом каждое двоичное значение указывает режимы DCM кодирования глубины для области изображения. Например, 0 указывает "неявный" режим, и 1 указывает "явный" режим.
Согласно варианту осуществления, способы энтропийного кодирования или кодирования по длинам серий могут использоваться для того, чтобы кодировать последовательность двоичных значений.
0
1
Фиг. 4 схематично показывает схему этапов способа 200 для декодирования геометрии облака точек из первого (D) и второго (D) изображений глубины, представляющих различные значения глубины ортогонально проецируемых точек исходного облака точек, в соответствии с примером настоящих принципов.
На этапе 210, декодированное первое изображение глубины получается посредством декодирования потока B битов.
i
На этапе 220, режим DCM кодирования глубины, ассоциированный с текущей областью i изображения для декодированного второго изображения глубины, декодируется из потока B битов.
i
1
1
На этапе 230, если режим DCM кодирования глубины указывает то, что значения глубины пикселов в упомянутой текущей области изображения для декодированного второго изображения глубины D кодируются в потоке B битов ("явный" режим), модуль декодирует, по меньшей мере, частично второе изображение D глубины из потока B битов.
В противном случае, на этапе 240, модуль вычисляет интерполированные значения глубины для пикселов области изображения для декодированного второго изображения  глубины посредством интерполяции значений глубины пикселов в декодированном первом изображении  глубины.
Этапы 220-240 повторяются до тех пор, пока не будет рассмотрена каждая из I областей изображения.
Геометрия облака точек затем восстанавливается посредством депроецирования декодированного первого () и второго (  ) изображений глубины, как задано, например, в TMC2.
Согласно варианту осуществления способа, вычисление интерполированных значений глубины для пикселов области изображения для второго изображения глубины посредством интерполяции значений глубины пикселов в первом изображении глубины содержит:
- определение совместно размещенного пиксела в первом изображении глубины для каждого текущего пиксела упомянутой области изображения для второго изображения глубины;
- определение, по меньшей мере, одного соседнего пиксела упомянутого совместно размещенного пиксела в первом изображении глубины;
- вычисление интерполированного значения глубины для каждого текущего пиксела с учетом упомянутого, по меньшей мере, одного соседнего пиксела в первом изображении глубины.
Согласно варианту осуществления, пространственное расстояние между колокализованным пикселом в первом изображении глубины и упомянутым, по меньшей мере, одним соседним пикселом составляет ниже данного порогового значения.
Согласно варианту осуществления, интерполированное значение глубины текущего пиксела в области изображения для второго изображения глубины представляет собой значение глубины ближайшего соседнего пиксела из числа упомянутого, по меньшей мере, одного соседнего пиксела в первом изображении глубины. Согласно варианту осуществления, интерполированное значение глубины текущего пиксела в области изображения для второго изображения глубины представляет собой максимальное значение глубины упомянутого, по меньшей мере, одного соседнего пиксела в первом изображении глубины.
Согласно варианту осуществления, интерполированное значение глубины текущего пиксела в области изображения для второго изображения глубины представляет собой минимальное значение глубины упомянутого, по меньшей мере, одного соседнего пиксела в первом изображении глубины.
Согласно варианту осуществления, интерполированное значение глубины текущего пиксела в области изображения для второго изображения глубины представляет собой среднее значений глубины упомянутого, по меньшей мере, одного соседнего пиксела в первом изображении глубины.
Фиг. 5 схематично показывает способ для кодирования геометрии и текстуры облака точек, как задано в TMC2.
0
1
По существу, кодер захватывает геометрическую информацию исходного облака PC точек в первом (D) и втором (D) изображениях глубины.
В качестве примера, первое и второе изображения глубины получаются следующим образом в TMC2.
Патчи глубины (набор трехмерных точек облака PC точек) получаются посредством кластеризации точек облака PC точек согласно нормальным векторам в этих точках. Все извлеченные патчи глубины затем проецируются на двумерную сетку и пакетируются, при одновременной попытке минимизировать неиспользуемое пространство и гарантировании того, что каждый блок TxT (например, 16×16) сетки ассоциирован с уникальным патчем, где T является определяемым пользователем параметром, который передан в служебных сигналах в поток битов.
0
1
0
Изображения глубины затем формируются посредством использования трехмерного-в-двумерное преобразования, вычисленного во время процесса пакетирования, более конкретно, позиции пакетирования и размера проецируемой зоны каждого патча. Более точно, пусть H(u, v) представляет собой набор точек текущего патча, которые проецируются в идентичный пиксел (u, v). Первый слой, также называемый "ближайшим слоем" или "первым изображением D глубины", сохраняет точку H(u, v) с наименьшим значением глубины. Второй слой, называемый "самым дальним слоем" или "вторым изображением D глубины", захватывает точку H(u, v) с наибольшим значением глубины в интервале [D, D+Δ], где D является значением глубины пикселов в первом изображении D глубины, и Δ является определяемым пользователем параметром, который описывает толщину поверхности.
0
Первое изображение D глубины затем выводит процесс пакетирования. Процесс дополнения также используется для того, чтобы заполнять пустое пространство между патчами, чтобы формировать кусочно-гладкое первое изображение глубины, подходящее для сжатия видео.
0
1
Сформированные изображения D и D глубины/слои затем сохраняются в качестве видеокадров и сжимаются с использованием любого унаследованного видеокодека, такого как HEVC.
Кодер также захватывает информацию текстуры исходного облака PC точек в двух изображениях текстуры посредством кодирования/декодирования первого и второго изображения глубины и восстановления геометрии облака точек посредством депроецирования упомянутых декодированных первого и второго изображений  глубины. После восстановления, цвет назначается (цветоперенос) каждой точке восстановленного облака точек из цветовой информации исходного облака PC точек способом минимизации ошибки кодирования цветовой информации.
Согласно одному варианту осуществления, для каждой восстановленной точки, цвет ее ближайшей точки в исходном облаке точек назначен в качестве цвета, который должен кодироваться.
Первое и второе изображения T0, T1 текстуры затем формируются посредством сохранения цветовой информации, которая должна кодироваться, для каждой восстановленной точки в идентичной позиции, аналогично изображениям глубины, т.е. (i, u,v).
Фиг. 6 схематично показывает пример использования способов 100 и 200 в способе кодирования по фиг. 5.
Согласно этому примеру, кодирование первого изображения  глубины и кодирование второго изображения  глубины по фиг. 5 заменяется посредством способа 100 кодирования по фиг. 1, и декодирование второго изображения  глубины по фиг. 5 заменяется посредством способа 200 декодирования по фиг. 4.
Фиг. 7 схематично показывает способ для декодирования геометрии и текстуры облака точек, как задано в предшествующем уровне техники (TMC2).
Декодированное первое изображение  глубины и декодированное второе изображение  глубины получаются посредством декодирования потока B битов. Возможно, метаданные также декодируются для того, чтобы восстанавливать геометрию облака  точек.
Геометрия облака точек за счет этого восстанавливается посредством депроекции упомянутых декодированных первого и второго изображений глубины и возможно упомянутых метаданных.
Фиг. 8 схематично показывает пример использования способа 200 в способе декодирования по фиг. 7.
Согласно этому примеру, декодирование первого и второго изображений глубины по фиг. 7 заменяется посредством способа декодирования по фиг. 4.
На фиг. 1-8, модули представляют собой функциональные блоки, которые могут иметь или могут не иметь взаимосвязь с отличимыми физическими блоками. Например, эти модули или некоторые из них могут объединяться в уникальном компоненте или схеме либо способствовать функциональностям программного обеспечения. В противоположность этому, некоторые модули потенциально могут состоять из отдельных физических объектов. Оборудование, которое является совместимым с настоящими принципами, реализуется либо с использованием исключительно аппаратных средств, например, с использованием специализированных аппаратных средств, таких как ASIC, FPGA или VLSI, соответственно, "специализированная интегральная схема", "программируемая пользователем вентильная матрица", "сверхбольшая интегральная схема", либо с использованием нескольких интегрированных электронных компонентов, встроенных в устройство, либо с использованием сочетания аппаратных и программных компонентов.
Фиг. 9 представляет примерную архитектуру устройства 90, которое может быть выполнено с возможностью реализовывать способ, описанный в отношении фиг. 1-8.
Устройство 90 содержит следующие элементы, которые соединены посредством шины 91 данных и адреса:
- микропроцессор 92 (или CPU), который представляет собой, например, DSP (или процессор цифровых сигналов);
- ROM 93 (или постоянное запоминающее устройство);
- RAM 94 (или оперативное запоминающее устройство);
- интерфейс 95 ввода-вывода для приема данных, которые следует передавать, из приложения; и
- аккумулятор 96.
В соответствии с примером, аккумулятор 96 является внешним для устройства. В каждом упомянутом запоминающем устройстве, слово "регистр", используемое в описании изобретения, может соответствовать зоне небольшого размера (в несколько битов) или очень большой зоне (например, всей программы либо большому объему принимаемых или декодированных данных). ROM 93 содержит, по меньшей мере, программу и параметры. ROM 93 может сохранять алгоритмы и инструкции для того, чтобы выполнять технологии в соответствии с настоящими принципами. После включения, CPU 92 выгружает программу в RAM и выполняет соответствующие инструкции.
RAM 94 содержит, в регистре, программу, выполняемую посредством CPU 92 и выгруженную после включения устройства 90, входные данные в регистре, промежуточные данные в различных состояниях способа в регистре и другие переменные, используемые для осуществления способа, в регистре.
Реализации, описанные в данном документе, могут реализовываться, например, в способе или процессе, оборудовании, программно-реализованной программе, потоке данных или сигнале. Даже если поясняется только в контексте одной формы реализации (например, поясняется только как способ или устройство), реализация поясненных признаков также может реализовываться в других формах (например, как программа). Оборудование может реализовываться, например, в соответствующих аппаратных средствах, программном обеспечении и микропрограммном обеспечении. Способы могут реализовываться, например, в таком оборудовании, как, например, процессор, который означает устройства обработки в целом, включающие в себя, например, компьютер, микропроцессор, интегральную схему или программируемое логическое устройство. Процессоры также включают в себя устройства связи, такие как, например, компьютеры, сотовые телефоны, портативные/персональные цифровые устройства (PDA) и другие устройства, которые упрощают обмен информацией между конечными пользователями.
В соответствии с примером кодирования или кодера, облако PC точек получается из источника. Например, источник принадлежит набору, содержащему:
- локальное запоминающее устройство (93 или 94), например, запоминающее устройство для хранения видеоданных или RAM (или оперативное запоминающее устройство), флэш-память, ROM (или постоянное запоминающее устройство), жесткий диск;
- интерфейс (95) хранения данных, например, интерфейс с устройством хранения данных большой емкости, RAM, флэш-памятью, ROM, оптическим диском или магнитной подложкой;
- интерфейс (95) связи, например, проводной интерфейс (например, шинный интерфейс, глобальный сетевой интерфейс, локальный сетевой интерфейс) или беспроводной интерфейс (к примеру, IEEE 802.11-интерфейс или Bluetooth- интерфейс); и
- схему захвата изображений (например, датчик, такой как, например, CCD (или прибор с зарядовой связью) либо CMOS (или комплементарная структура "металл-оксид-полупроводник").
В соответствии с примером декодирования или декодера, декодированные первое и/или второе изображения глубины или восстановленное облако точек отправляются в назначение; в частности, назначение принадлежит набору, содержащему:
- локальное запоминающее устройство (93 или 94), например, запоминающее устройство для хранения видеоданных или RAM, флэш-память, жесткий диск;
- интерфейс (95) хранения данных, например, интерфейс с устройством хранения данных большой емкости, RAM, флэш-памятью, ROM, оптическим диском или магнитной подложкой;
- интерфейс (95) связи, например, проводной интерфейс (например, шинный интерфейс (например, USB (или универсальную последовательную шину)), глобальный сетевой интерфейс, локальный сетевой интерфейс, интерфейс HDMI (мультимедийный интерфейс высокой четкости)) или беспроводной интерфейс (к примеру, IEEE 802.11-интерфейс, Wi-Fi- или Bluetooth-интерфейс); и
- дисплей.
В соответствии с примерами кодирования или кодера, поток B битов отправляется в назначение. В качестве примера, поток B битов сохраняется в локальном или удаленном запоминающем устройстве, например, в запоминающем устройстве (94) для хранения видеоданных или RAM (94), на жестком диске (93). В разновидности, один или оба потока битов отправляются в интерфейс (95) хранения данных, например, в интерфейс с устройством хранения данных большой емкости, флэш-памятью, ROM, оптическим диском или магнитной подложкой, и/или передаются по интерфейсу (95) связи, например, по интерфейсу с линией связи "точка-точка", шиной связи, линией связи "точка-многоточка" или широковещательной сетью.
В соответствии с примерами декодирования или декодера, поток B битов получается из источника. В качестве примера, поток битов считывается из локального запоминающего устройства, например, запоминающего устройства (94) для хранения видеоданных, RAM (94), ROM (93), флэш-памяти (93) или жесткого диска (93). В разновидности, поток битов принимается из интерфейса (95) хранения данных, например, интерфейса с устройством хранения данных большой емкости, RAM, ROM, флэш-памятью, оптическим диском или магнитной подложкой, и/или принимается из интерфейса (95) связи, например, интерфейса с линией связи "точка-точка", шиной, линией связи "точка-многоточка" или широковещательной сетью.
В соответствии с примерами, устройство 90, выполненное с возможностью реализовывать способ кодирования, описанный в отношении фиг. 1-3 или 5-6, принадлежит набору, содержащему:
- мобильное устройство;
- устройство связи;
- игровое устройство;
- планшет (или планшетный компьютер);
- переносной компьютер;
- фотокамеру;
- видеокамеру;
- микросхему кодирования;
- сервер неподвижных изображений; и
- видеосервер (например, широковещательный сервер, сервер "видео по запросу" или веб-сервер).
В соответствии с примерами, устройство 90, выполненное с возможностью реализовывать способ декодирования, описанный в отношении фиг. 4 или 7-8, принадлежит набору, содержащему:
- мобильное устройство;
- устройство связи;
- игровое устройство;
- абонентскую приставку;
- телевизор;
- планшет (или планшетный компьютер);
- переносной компьютер;
- дисплей, и
- микросхему декодирования.
Согласно примеру настоящих принципов, проиллюстрированных на фиг. 10, в контексте передачи между двумя удаленными устройствами A и B по сети NET связи, устройство A содержит процессор, связанный с запоминающим устройством RAM и ROM, которые выполнены с возможностью реализовывать способ для кодирования геометрии облака точек, как описано в отношении фиг. 1-3 или 5-6, и устройство B содержит процессор, связанный с запоминающим устройством RAM и ROM, которые выполнены с возможностью реализовывать способ для декодирования облака точек, как описано в отношении фиг. 4 или 7-8.
В соответствии с примером, сеть представляет собой широковещательную сеть, адаптированную с возможностью широковещательно передавать неподвижные изображения или видеоизображения из устройства A в устройства декодирования, включающие в себя устройство B.
i
Сигнал, предназначенный для передач посредством устройства A, переносит поток B битов. Поток B битов содержит кодированное первое изображение глубины и возможно, по меньшей мере, часть кодированного второго изображения глубины, как пояснено в отношении фиг. 1. Этот сигнал дополнительно содержит информационные данные, представляющие, по меньшей мере, один режим DCM кодирования глубины. Каждый режим кодирования глубины указывает то, кодируются значения глубины пикселов в области i изображения для второго изображения глубины в потоке B битов ("явный" режим) или не кодируются ("неявный" режим).
i
i
Фиг. 11 показывает пример синтаксиса такого сигнала, когда данные передаются по протоколу передачи с коммутацией пакетов. Передаваемый пакет P содержит заголовок H и рабочие данные PAYLOAD. Бит заголовка H, например, выделяется представлению режима DCM кодирования глубины. Таким образом, по меньшей мере, один бит заголовка H выделяется представлению, по меньшей мере, одного режима DCM кодирования глубины.
Реализации различных процессов и признаков, описанных в данном документе, могут осуществляться во множестве различных видов оборудования или приложений. Примеры такого оборудования включают в себя кодер, декодер, постпроцессор, обрабатывающий вывод из декодера, препроцессор, предоставляющий ввод в кодер, видеокодер, видеодекодер, видеокодек, веб-сервер, абонентскую приставку, переносной компьютер, персональный компьютер, сотовый телефон, PDA и любое другое устройство для обработки изображения или видео, либо другие устройства связи. Должно быть очевидным, что оборудование может быть мобильным и даже установленным в мобильном транспортном средстве.
Дополнительно, способы могут реализовываться посредством инструкций, выполняемых посредством процессора, и такие инструкции (и/или значения данных, сформированные посредством реализации) могут сохраняться на машиночитаемом носителе хранения данных. Машиночитаемый носитель хранения данных может принимать форму машиночитаемого программного продукта, осуществленного на одном или более машиночитаемых носителей и имеющего осуществленный машиночитаемый программный код, который выполняется посредством компьютера. Машиночитаемый носитель хранения данных при использовании в данном документе считается энергонезависимым носителем хранения данных с внутренними возможностями сохранять информацию в себе, а также с внутренними возможностями предоставлять извлечение информации из себя. Машиночитаемый носитель хранения данных, например, может представлять собой, но не только, электронную, магнитную, оптическую, электромагнитную, инфракрасную или полупроводниковую систему, оборудование или устройство либо любую подходящую комбинацию вышеприведенного. Следует принимать во внимание, что ниже, при предоставлении более конкретных примеров машиночитаемых носителей хранения данных, к которым могут применяться настоящие принципы, приводится просто иллюстративный, а не полный перечень, как должны принимать во внимание специалисты в данной области техники: портативная компьютерная дискета; жесткий диск; постоянное запоминающее устройство (ROM); стираемое программируемое постоянное запоминающее устройство (EPROM или флэш-память); портативное постоянное запоминающее устройство на компакт-дисках (CD-ROM); оптическое устройство хранения данных; магнитное устройство хранения данных; или любая подходящая комбинация вышеприведенного.
Инструкции могут формировать прикладную программу, материально осуществленную на процессорночитаемом носителе.
Инструкции, например, могут находиться в аппаратных средствах, микропрограммном обеспечении, программном обеспечении или в комбинации. Инструкции могут содержаться, например, в операционной системе, в отдельном приложении или в комбинации означенного. Следовательно, процессор может характеризоваться, например, в качестве как устройства, выполненного с возможностью осуществлять процесс, так и устройства, которое включает в себя процессорночитаемый носитель (к примеру, устройство хранения данных), имеющий инструкции для выполнения процесса. Дополнительно, процессорночитаемый носитель может сохранять, в дополнение или вместо инструкций, значения данных, сформированные посредством реализации.
Специалистам данной области техники должно быть очевидным, что реализации также могут формировать множество сигналов, отформатированных с возможностью переносить информацию, которая, например, может сохраняться или передаваться. Информация может включать в себя, например, инструкции для осуществления способа или данные, сформированные посредством одной из описанных реализаций. Например, сигнал может форматироваться с возможностью переносить в качестве данных правила для записи или считывания синтаксиса описанного примера настоящих принципов либо переносить в качестве данных фактические синтаксические значения, записанные посредством описанного примера настоящих принципов. Этот сигнал, например, может форматироваться как электромагнитная волна (к примеру, с использованием радиочастотного участка спектра) или как сигнал в полосе модулирующих частот. Форматирование может включать в себя, например, кодирование потока данных и модуляцию несущей с кодированным потоком данных. Информация, которую переносит сигнал, например, может представлять собой аналоговую или цифровую информацию. Как известно, сигнал может передаваться по множеству различных линий проводной или беспроводной связи. Сигнал может сохраняться на процессорночитаемом носителе.
Описан ряд реализаций. Тем не менее, следует понимать, что могут вноситься различные модификации. Например, элементы различных реализаций могут комбинироваться, дополняться, модифицироваться или удаляться для того, чтобы формировать другие реализации. Дополнительно, специалисты в данной области техники должны понимать, что другие структуры и процессы могут использоваться вместо раскрытых структур и процессов, и результирующие реализации должны выполнять, по меньшей мере, практически идентичную функцию(и), по меньшей мере, практически идентичным способом(ами), чтобы добиваться, по меньшей мере, практически идентичного результата(ов), что и раскрытые реализации. Соответственно, эти и другие реализации предполагаются посредством этой заявки.