Область техники, к которой относится изобретение
[0001] Настоящее раскрытие относится к способу кодирования трехмерных данных, к способу декодирования трехмерных данных, к устройству кодирования трехмерных данных и к устройству декодирования трехмерных данных.
Уровень техники
[0002] Устройства или услуги с использованием трехмерных данных предположительно должны находить широкое применение в широком диапазоне областей техники, таких как машинное зрение, которое обеспечивает автономную работу автомобилей или роботов, картографическая информация, мониторинг, обследование инфраструктуры и распространение видео. Трехмерные данные получаются через различные средства, включающие в себя датчик расстояния, такой как дальномер, а также стереокамеру и комбинацию множества монокулярных камер.
[0003] Способы представления трехмерных данных включают в себя способ, известный как схема на основе облаков точек, которая представляет форму трехмерной структуры посредством точечной группы в трехмерном пространстве. В схеме на основе облаков точек сохраняются позиции и цвета точечной группы. Хотя облако точек предположительно должно представлять собой основной способ представления трехмерных данных, огромный объем данных точечной группы требует сжатия объема трехмерных данных посредством кодирования для накопления и передачи, как и в случае двумерного движущегося изображения (примеры включают в себя MPEG-4 AVC и HEVC, стандартизированное посредством MPEG).
[0004] Между тем, сжатие облаков точек частично поддерживается, например, посредством библиотеки с открытым исходным кодом (библиотеки облаков точек) для связанной с облаками точек обработки.
[0005] Кроме того, известна технология для поиска и отображения инфраструктурного объекта, расположенного в окрестности транспортного средства (например, см. патентный документ (PTL) 1).
Список библиографических ссылок
Патентные документы
[0006] PTL 1. Международная публикация WO 2014/020663
Сущность изобретения
Техническая задача
[0007] Возникает потребность в повышении эффективности кодирования в процессе кодирования трехмерных данных.
[0008] Настоящее раскрытие имеет цель предложить способ кодирования трехмерных данных, способ декодирования трехмерных данных, устройство кодирования трехмерных данных или устройство декодирования трехмерных данных, которые делают возможным повышение эффективности кодирования.
Решение задачи
[0009] Способ кодирования трехмерных данных согласно одному аспекту настоящего раскрытия включает в себя: вычисление разностных значений, каждое из которых представляет собой разность между (i) соответствующим одним из фрагментов информации атрибутов трехмерных точек, включенных в данные облаков точек, и (ii) прогнозированным значением, соответствующим надлежащей информации атрибутов; формирование второй кодовой последовательности, включающей в себя первую информацию и вторую информацию, причем первая информация указывает общее число нулевых разностных значений, последовательных в первой кодовой последовательности, в которой разностные значения размещаются, причем вторая информация указывает значение ненулевого разностного значения, включенного в разностные значения, причем нулевые разностные значения включаются в разностные значения и имеют значение 0; и формирование потока битов, включающего в себя вторую кодовую последовательность.
[0010] Способ декодирования трехмерных данных согласно одному аспекту настоящего раскрытия включает в себя: получение второй кодовой последовательности из потока битов, причем вторая кодовая последовательность включает в себя первую информацию и вторую информацию, причем первая информация указывает общее число нулевых разностных значений, последовательных в первой кодовой последовательности, в которой разностные значения размещаются, причем вторая информация указывает значение ненулевого разностного значения, включенного в разностные значения, причем нулевые разностные значения включаются в разностные значения и имеют значение 0, причем разностные значения представляют собой разность между (i) соответствующим одним из фрагментов информации атрибутов трехмерных точек, включенных в данные облаков точек, и (ii) прогнозированным значением, соответствующим надлежащей информации атрибутов; получение разностных значений посредством восстановления первой кодовой последовательности из второй кодовой последовательности; и вычисление фрагментов информации атрибутов посредством суммирования прогнозированных значений с разностными значениями, причем прогнозированные значения соответствуют другому одному из разностных значений.
Преимущества изобретения
[0011] Настоящее раскрытие предлагает способ кодирования трехмерных данных, способ декодирования трехмерных данных, устройство кодирования трехмерных данных или устройство декодирования трехмерных данных, которые допускают повышение эффективности кодирования.
Краткое описание чертежей
[0012] Фиг. 1 является схемой, показывающей структуру кодированных трехмерных данных согласно варианту 1 осуществления.
Фиг. 2 является схемой, показывающей пример структур прогнозирования для SPC, которые принадлежат крайнему нижнему слою в GOS согласно варианту 1 осуществления.
Фиг. 3 является схемой, показывающей пример структур прогнозирования для слоев согласно варианту 1 осуществления.
Фиг. 4 является схемой, показывающей примерный порядок кодирования GOS согласно варианту 1 осуществления.
Фиг. 5 является схемой, показывающей примерный порядок кодирования GOS согласно варианту 1 осуществления.
Фиг. 6 является блок-схемой устройства кодирования трехмерных данных согласно варианту 1 осуществления.
Фиг. 7 является блок-схемой последовательности операций способа для процессов кодирования согласно варианту 1 осуществления.
Фиг. 8 является блок-схемой устройства декодирования трехмерных данных согласно варианту 1 осуществления.
Фиг. 9 является блок-схемой последовательности операций способа для процессов декодирования согласно варианту 1 осуществления.
Фиг. 10 является схемой, показывающей пример метаинформации согласно варианту 1 осуществления.
Фиг. 11 является схемой, показывающей примерную структуру SWLD согласно варианту 2 осуществления.
Фиг. 12 является схемой, показывающей примерные операции, выполняемые посредством сервера и клиента согласно варианту 2 осуществления.
Фиг. 13 является схемой, показывающей примерные операции, выполняемые посредством сервера и клиента согласно варианту 2 осуществления.
Фиг. 14 является схемой, показывающей примерные операции, выполняемые посредством сервера и клиентов согласно варианту 2 осуществления.
Фиг. 15 является схемой, показывающей примерные операции, выполняемые посредством сервера и клиентов согласно варианту 2 осуществления.
Фиг. 16 является блок-схемой устройства кодирования трехмерных данных согласно варианту 2 осуществления.
Фиг. 17 является блок-схемой последовательности операций способа для процессов кодирования согласно варианту 2 осуществления.
Фиг. 18 является блок-схемой устройства декодирования трехмерных данных согласно варианту 2 осуществления.
Фиг. 19 является блок-схемой последовательности операций способа для процессов декодирования согласно варианту 2 осуществления.
Фиг. 20 является схемой, показывающей примерную структуру WLD согласно варианту 2 осуществления.
Фиг. 21 является схемой, показывающей примерную структуру в виде дерева октантов WLD согласно варианту 2 осуществления.
Фиг. 22 является схемой, показывающей примерную структуру SWLD согласно варианту 2 осуществления.
Фиг. 23 является схемой, показывающей примерную структуру в виде дерева октантов SWLD согласно варианту 2 осуществления.
Фиг. 24 является блок-схемой устройства создания трехмерных данных согласно варианту 3 осуществления.
Фиг. 25 является блок-схемой устройства передачи трехмерных данных согласно варианту 3 осуществления.
Фиг. 26 является блок-схемой устройства обработки трехмерной информации согласно варианту 4 осуществления.
Фиг. 27 является блок-схемой устройства создания трехмерных данных согласно варианту 5 осуществления.
Фиг. 28 является схемой, показывающей структуру системы согласно варианту 6 осуществления.
Фиг. 29 является блок-схемой клиентского устройства согласно варианту 6 осуществления.
Фиг. 30 является блок-схемой сервера согласно варианту 6 осуществления.
Фиг. 31 является блок-схемой последовательности операций способа для процесса создания трехмерных данных, выполняемого посредством клиентского устройства согласно варианту 6 осуществления.
Фиг. 32 является блок-схемой последовательности операций способа для процесса передачи информации датчиков, выполняемого посредством клиентского устройства согласно варианту 6 осуществления.
Фиг. 33 является блок-схемой последовательности операций способа для процесса создания трехмерных данных, выполняемого посредством сервера согласно варианту 6 осуществления.
Фиг. 34 является блок-схемой последовательности операций способа для процесса передачи трехмерных карт, выполняемого посредством сервера согласно варианту 6 осуществления.
Фиг. 35 является схемой, показывающей структуру варьирования системы согласно варианту 6 осуществления.
Фиг. 36 является схемой, показывающей структуру серверных и клиентских устройств согласно варианту 6 осуществления.
Фиг. 37 является блок-схемой устройства кодирования трехмерных данных согласно варианту 7 осуществления.
Фиг. 38 является схемой, показывающей пример остатка прогнозирования согласно варианту 7 осуществления.
Фиг. 39 является схемой, показывающей пример объема согласно варианту 7 осуществления.
Фиг. 40 является схемой, показывающей пример представления в виде дерева октантов объема согласно варианту 7 осуществления.
Фиг. 41 является схемой, показывающей пример битовых последовательностей объема согласно варианту 7 осуществления.
Фиг. 42 является схемой, показывающей пример представления в виде дерева октантов объема согласно варианту 7 осуществления.
Фиг. 43 является схемой, показывающей пример объема согласно варианту 7 осуществления.
Фиг. 44 является схемой для описания процесса внутреннего прогнозирования согласно варианту 7 осуществления.
Фиг. 45 является схемой для описания процесса вращения и перемещения в пространстве согласно варианту 7 осуществления.
Фиг. 46 является схемой, показывающей примерный синтаксис RT-флага и RT-информации согласно варианту 7 осуществления.
Фиг. 47 является схемой для описания процесса взаимного прогнозирования согласно варианту 7 осуществления.
Фиг. 48 является блок-схемой устройства декодирования трехмерных данных согласно варианту 7 осуществления.
Фиг. 49 является блок-схемой последовательности операций способа для процесса кодирования трехмерных данных, выполняемого посредством устройства кодирования трехмерных данных согласно варианту 7 осуществления.
Фиг. 50 является блок-схемой последовательности операций способа для процесса декодирования трехмерных данных, выполняемого посредством устройства декодирования трехмерных данных согласно варианту 7 осуществления.
Фиг. 51 является схемой, иллюстрирующей опорную взаимосвязь в структуре в виде дерева октантов согласно варианту 8 осуществления.
Фиг. 52 является схемой, иллюстрирующей опорную взаимосвязь в пространственной области согласно варианту 8 осуществления.
Фиг. 53 является схемой, иллюстрирующей пример соседних опорных узлов согласно варианту 8 осуществления.
Фиг. 54 является схемой, иллюстрирующей взаимосвязь между родительским узлом и узлами согласно варианту 8 осуществления.
Фиг. 55 является схемой, иллюстрирующей пример кода заполнения родительского узла согласно варианту 8 осуществления.
Фиг. 56 является блок-схемой устройства кодирования трехмерных данных согласно варианту 8 осуществления.
Фиг. 57 является блок-схемой устройства декодирования трехмерных данных согласно варианту 8 осуществления.
Фиг. 58 является блок-схемой последовательности операций способа для процесса кодирования трехмерных данных согласно варианту 8 осуществления.
Фиг. 59 является блок-схемой последовательности операций способа для процесса декодирования трехмерных данных согласно варианту 8 осуществления.
Фиг. 60 является схемой, иллюстрирующей пример выбора таблицы кодирования согласно варианту 8 осуществления.
Фиг. 61 является схемой, иллюстрирующей опорную взаимосвязь в пространственной области согласно варьированию 1 варианта 8 осуществления.
Фиг. 62 является схемой, иллюстрирующей пример синтаксиса информации заголовка согласно варьированию 1 варианта 8 осуществления.
Фиг. 63 является схемой, иллюстрирующей пример синтаксиса информации заголовка согласно варьированию 1 варианта 8 осуществления.
Фиг. 64 является схемой, иллюстрирующей пример соседних опорных узлов согласно варьированию 2 варианта 8 осуществления.
Фиг. 65 является схемой, иллюстрирующей пример текущего узла и соседних узлов согласно варьированию 2 варианта 8 осуществления.
Фиг. 66 является схемой, иллюстрирующей опорную взаимосвязь в структуре в виде дерева октантов согласно варьированию 3 варианта 8 осуществления.
Фиг. 67 является схемой, иллюстрирующей опорную взаимосвязь в пространственной области согласно варьированию 3 варианта 8 осуществления.
Фиг. 68 является схемой, иллюстрирующей пример трехмерных точек согласно варианту 9 осуществления.
Фиг. 69 является схемой, иллюстрирующей пример задания LoD согласно варианту 9 осуществления.
Фиг. 70 является схемой, иллюстрирующей пример задания LoD согласно варианту 9 осуществления.
Фиг. 71 является схемой, иллюстрирующей пример информации атрибутов, которая должна использоваться для прогнозированных значений согласно варианту 9 осуществления.
Фиг. 72 является схемой, иллюстрирующей примеры экспоненциальных кодов Голомба согласно варианту 9 осуществления.
Фиг. 73 является схемой, указывающей процесс для экспоненциальных кодов Голомба согласно варианту 9 осуществления.
Фиг. 74 является схемой, указывающей пример синтаксиса в заголовке атрибутов согласно варианту 9 осуществления.
Фиг. 75 является схемой, указывающей пример синтаксиса в данных атрибутов согласно варианту 9 осуществления.
Фиг. 76 является блок-схемой последовательности операций способа для процесса кодирования трехмерных данных согласно варианту 9 осуществления.
Фиг. 77 является блок-схемой последовательности операций способа для процесса кодирования информации атрибутов согласно варианту 9 осуществления.
Фиг. 78 является схемой, указывающей обработку для экспоненциальных кодов Голомба согласно варианту 9 осуществления.
Фиг. 79 является схемой, указывающей пример обратной таблицы поиска, указывающей взаимосвязи между оставшимися кодами и их значениями согласно варианту 9 осуществления.
Фиг. 80 является блок-схемой последовательности операций способа для процесса декодирования трехмерных данных согласно варианту 9 осуществления.
Фиг. 81 является блок-схемой последовательности операций способа для процесса декодирования информации атрибутов согласно варианту 9 осуществления.
Фиг. 82 является блок-схемой устройства кодирования трехмерных данных согласно варианту 9 осуществления.
Фиг. 83 является блок-схемой устройства декодирования трехмерных данных согласно варианту 9 осуществления.
Фиг. 84 является блок-схемой последовательности операций способа для процесса кодирования трехмерных данных согласно варианту 9 осуществления.
Фиг. 85 является блок-схемой последовательности операций способа для процесса декодирования трехмерных данных согласно варианту 9 осуществления.
Фиг. 86 является схемой, показывающей первый пример таблицы, представляющей прогнозированные значения, вычисленные в режимах прогнозирования согласно варианту 10 осуществления.
Фиг. 87 является схемой, показывающей примеры элементов информации атрибута (фрагментов информации атрибутов), используемых в качестве прогнозированных значений согласно варианту 10 осуществления.
Фиг. 88 является схемой, показывающей второй пример таблицы, представляющей прогнозированные значения, вычисленные в режимах прогнозирования согласно варианту 10 осуществления.
Фиг. 89 является схемой, показывающей третий пример таблицы, представляющей прогнозированные значения, вычисленные в режимах прогнозирования согласно варианту 10 осуществления.
Фиг. 90 является схемой, показывающей четвертый пример таблицы, представляющей прогнозированные значения, вычисленные в режимах прогнозирования согласно варианту 10 осуществления.
Фиг. 91 является схемой, показывающей пример опорной взаимосвязи согласно варианту 11 осуществления.
Фиг. 92 является схемой, показывающей пример вычисления QW согласно варианту 11 осуществления.
Фиг. 93 является схемой, показывающей пример вычисления прогнозированного остатка согласно варианту 11 осуществления.
Фиг. 94 является схемой, показывающей пример обработки кодирования согласно варианту 11 осуществления.
Фиг. 95 является схемой, показывающей пример усеченного унарного кода согласно варианту 11 осуществления.
Фиг. 96 является схемой, показывающей пример синтаксиса информации атрибутов согласно варианту 11 осуществления.
Фиг. 97 является схемой, показывающей пример прогнозированного остатка и ZeroCnt согласно варианту 11 осуществления.
Фиг. 98 является схемой, показывающей пример синтаксиса информации атрибутов согласно варианту 11 осуществления.
Фиг. 99 является блок-схемой последовательности операций способа для обработки кодирования трехмерных данных согласно варианту 11 осуществления.
Фиг. 100 является блок-схемой последовательности операций способа для обработки кодирования информации атрибутов согласно варианту 11 осуществления.
Фиг. 101 является блок-схемой последовательности операций способа для обработки прогнозированного остаточного кодирования согласно варианту 11 осуществления.
Фиг. 102 является блок-схемой последовательности операций способа для обработки декодирования трехмерных данных согласно варианту 11 осуществления.
Фиг. 103 является блок-схемой последовательности операций способа для обработки декодирования информации атрибутов согласно варианту 11 осуществления.
Фиг. 104 является блок-схемой последовательности операций способа для обработки прогнозированного остаточного декодирования согласно варианту 11 осуществления.
Фиг. 105 является блок-схемой кодера информации атрибутов согласно варианту 11 осуществления.
Фиг. 106 является блок-схемой декодера информации атрибутов согласно варианту 11 осуществления.
Фиг. 107 является схемой, показывающей пример обработки кодирования согласно модификации варианта 11 осуществления.
Фиг. 108 является схемой, показывающей пример синтаксиса информации атрибутов согласно модификации варианта 11 осуществления.
Фиг. 109 является схемой, показывающей пример прогнозированного остатка, ZeroCnt и TotalZeroCnt согласно модификации варианта 11 осуществления.
Фиг. 110 является блок-схемой последовательности операций способа для обработки прогнозированного остаточного кодирования согласно модификации варианта 11 осуществления.
Фиг. 111 является блок-схемой последовательности операций способа для обработки прогнозированного остаточного декодирования согласно модификации варианта 11 осуществления.
Фиг. 112 является блок-схемой последовательности операций способа для обработки кодирования трехмерных данных согласно варианту 11 осуществления.
Фиг. 113 является блок-схемой последовательности операций способа для обработки декодирования трехмерных данных согласно варианту 11 осуществления.
Подробное описание вариантов осуществления
[0013] Способ кодирования трехмерных данных согласно одному аспекту настоящего раскрытия включает в себя: вычисление разностных значений, каждое из которых представляет собой разность между (i) соответствующим одним из фрагментов информации атрибутов трехмерных точек, включенных в данные облаков точек, и (ii) прогнозированным значением, соответствующим надлежащей информации атрибутов; формирование второй кодовой последовательности, включающей в себя первую информацию и вторую информацию, причем первая информация указывает общее число нулевых разностных значений, последовательных в первой кодовой последовательности, в которой разностные значения размещаются, причем вторая информация указывает значение ненулевого разностного значения, включенного в разностные значения, причем нулевые разностные значения включаются в разностные значения и имеют значение 0; и формирование потока битов, включающего в себя вторую кодовую последовательность.
[0014] Согласно этому, поскольку способ кодирования трехмерных данных может уменьшать объем кода в случае последовательных разностных значений, имеющих значение в 0 за счет использования первой информации, эффективность кодирования может повышаться.
[0015] Например, каждый из фрагментов информации атрибутов может включать в себя компоненты, каждое из разностных значений может включать в себя разностные компоненты, соответствующие компонентам, первая информация может указывать общее число нулевых разностных значений, включающих в себя разностные компоненты, все из которых равны 0, и вторая информация может указывать значения разностных компонентов, по меньшей мере, один из которых не равен 0, и которые включаются в ненулевое разностное значение.
[0016] Согласно этому, поскольку способ кодирования трехмерных данных может уменьшать объем кода по сравнению со случаем, в котором первая информация предоставляется для каждого компонента, эффективность кодирования может повышаться.
[0017] Например, когда, по меньшей мере, два из значений разностных компонентов, включенных в ненулевое разностное значение, различаются, вторая информация может указывать значения разностных компонентов, и когда все значения разностных компонентов, включенных в ненулевое разностное значение, являются идентичными, вторая информация может указывать значение, полученное посредством вычитания 1 из каждого из значений разностных компонентов.
[0018] Согласно этому, поскольку способ кодирования трехмерных данных может уменьшать объем кода, эффективность кодирования может повышаться.
[0019] Например, когда каждый из фрагментов информации атрибутов включает в себя, по меньшей мере, два компонента, вторая информация может указывать значения, по меньшей мере, двух компонентов, и когда каждый из фрагментов информации атрибутов включает в себя один компонент, вторая информация может указывать значение, полученное посредством вычитания 1 из значения одного компонента.
[0020] Согласно этому, поскольку способ кодирования трехмерных данных может уменьшать объем кода, эффективность кодирования может повышаться.
[0021] Например, трехмерные точки могут классифицироваться на слои, на основе геометрической информации трехмерных точек, и разностные значения могут размещаться для каждого из слоев в первой кодовой последовательности.
[0022] Например, способ кодирования трехмерных данных дополнительно может включать в себя: квантование каждого из разностных значений; и размещение разностных значений, квантованных в первой кодовой последовательности.
[0023] Способ декодирования трехмерных данных согласно одному аспекту настоящего раскрытия включает в себя: получение второй кодовой последовательности из потока битов, причем вторая кодовая последовательность включает в себя первую информацию и вторую информацию, причем первая информация указывает общее число нулевых разностных значений, последовательных в первой кодовой последовательности, в которой разностные значения размещаются, причем вторая информация указывает значение ненулевого разностного значения, включенного в разностные значения, причем нулевые разностные значения включаются в разностные значения и имеют значение 0, причем разностные значения представляют собой разность между (i) соответствующим одним из фрагментов информации атрибутов трехмерных точек, включенных в данные облаков точек, и (ii) прогнозированным значением, соответствующим надлежащей информации атрибутов; получение разностных значений посредством восстановления первой кодовой последовательности из второй кодовой последовательности; и вычисление фрагментов информации атрибутов посредством суммирования прогнозированных значений с разностными значениями, причем прогнозированные значения соответствуют другому одному из разностных значений.
[0024] Согласно этому, поскольку способ декодирования трехмерных данных может уменьшать объем кода в случае последовательных разностных значений, имеющих значение в нуль за счет использования первой информации, эффективность кодирования может повышаться.
[0025] Например, каждый из фрагментов информации атрибутов может включать в себя компоненты, каждое из разностных значений может включать в себя разностные компоненты, соответствующие компонентам, первая информация может указывать общее число нулевых разностных значений, включающих в себя разностные компоненты, все из которых равны 0, и вторая информация может указывать значения разностных компонентов, по меньшей мере, один из которых не равен 0, и которые включаются в ненулевое разностное значение.
[0026] Согласно этому, поскольку способ декодирования трехмерных данных может уменьшать объем кода по сравнению со случаем, в котором первая информация предоставляется для каждого компонента, эффективность кодирования может повышаться.
[0027] Например, когда, по меньшей мере, два из значений разностных компонентов, включенных в ненулевое разностное значение, различаются, вторая информация может указывать значения разностных компонентов, и когда все значения разностных компонентов, включенных в ненулевое разностное значение, являются идентичными, вторая информация может указывать значение, полученное посредством вычитания 1 из каждого из значений разностных компонентов.
[0028] Согласно этому, поскольку способ декодирования трехмерных данных может уменьшать объем кода, эффективность кодирования может повышаться.
[0029] Например, когда значения, указываемые посредством второй информации, являются идентичными, значения разностных компонентов могут вычисляться посредством суммирования 1 с каждым из значений, и первая кодовая последовательность может восстанавливаться с использованием вычисленных значений разностных компонентов.
[0030] Например, когда каждый из фрагментов информации атрибутов включает в себя, по меньшей мере, два компонента, вторая информация может указывать значения, по меньшей мере, двух компонентов, и когда каждый из фрагментов информации атрибутов включает в себя один компонент, вторая информация может указывать значение, полученное посредством вычитания 1 из значения одного компонента.
[0031] Согласно этому, поскольку способ декодирования трехмерных данных может уменьшать объем кода, эффективность кодирования может повышаться.
[0032] Например, когда значение, соответствующее одному компоненту, указывается посредством второй информации, значение одного компонента может вычисляться посредством суммирования 1 со значением, и первая кодовая последовательность может восстанавливаться с использованием значения одного вычисленного компонента.
[0033] Например, трехмерные точки могут классифицироваться на слои, на основе геометрической информации трехмерных точек, и разностные значения могут размещаться для каждого из слоев в первой кодовой последовательности.
[0034] Например, квантованные разностные значения могут размещаться в первой кодовой последовательности, квантованные разностные значения могут получаться посредством восстановления первой кодовой последовательности, и разностные значения могут получаться посредством обратного квантования соответствующего одного из квантованных разностных значений.
[0035] Устройство кодирования трехмерных данных согласно одному аспекту настоящего раскрытия включает в себя процессор и запоминающее устройство. С использованием запоминающего устройства, процессор вычисляет разностные значения, каждое из которых представляет собой разность между (i) соответствующим одним из фрагментов информации атрибутов трехмерных точек, включенных в данные облаков точек, и (ii) прогнозированным значением, соответствующим надлежащей информации атрибутов; формирует вторую кодовую последовательность, включающую в себя первую информацию и вторую информацию, причем первая информация указывает общее число нулевых разностных значений, последовательных в первой кодовой последовательности, в которой разностные значения размещаются, причем вторая информация указывает значение ненулевого разностного значения, включенного в разностные значения, причем нулевые разностные значения включаются в разностные значения и имеют значение 0; и формирует поток битов, включающий в себя вторую кодовую последовательность.
[0036] Согласно этому, поскольку устройство кодирования трехмерных данных может уменьшать объем кода в случае последовательных разностных значений, имеющих значение в нуль за счет использования первой информации, эффективность кодирования может повышаться.
[0037] Устройство декодирования трехмерных данных согласно одному аспекту настоящего раскрытия включает в себя процессор и запоминающее устройство. С использованием запоминающего устройства, процессор: получает вторую кодовую последовательность из потока битов, причем вторая кодовая последовательность включает в себя первую информацию и вторую информацию, причем первая информация указывает общее число нулевых разностных значений, последовательных в первой кодовой последовательности, в которой разностные значения размещаются, причем вторая информация указывает значение ненулевого разностного значения, включенного в разностные значения, причем нулевые разностные значения включаются в разностные значения и имеют значение 0, причем разностные значения представляют собой разность между (i) соответствующим одним из фрагментов информации атрибутов трехмерных точек, включенных в данные облаков точек, и (ii) прогнозированным значением, соответствующим надлежащей информации атрибутов; получает разностные значения посредством восстановления первой кодовой последовательности из второй кодовой последовательности; и вычисляет фрагменты информации атрибутов посредством суммирования прогнозированных значений с разностными значениями, причем прогнозированные значения соответствуют другому одному из разностных значений.
[0038] Согласно этому, поскольку устройство декодирования трехмерных данных может уменьшать объем кода в случае последовательных разностных значений, имеющих значение в нуль за счет использования первой информации, эффективность кодирования может повышаться.
[0039] Следует отметить, что эти общие или конкретные аспекты могут реализовываться как система, способ, интегральная схема, компьютерная программа или машиночитаемый носитель записи, такой как CD-ROM, либо могут реализовываться как любая комбинация системы, способа, интегральной схемы, компьютерной программы и носителя записи.
[0040] Далее описываются варианты осуществления со ссылкой на чертежи. Следует отметить, что нижеприведенные варианты осуществления указывают примерные варианты осуществления настоящего раскрытия. Числовые значения, формы, материалы, составляющие элементы, компоновка и соединение составляющих элементов, этапы, порядок обработки этапов и т.д., указанных в нижеприведенных вариантах осуществления, представляют собой просто примеры и в силу этого не имеют намерение ограничивать настоящее раскрытие. Из числа составляющих элементов, описанных в нижеприведенных вариантах осуществления, составляющие элементы, не изложенные ни в одном из независимых пунктов формулы изобретения, которые указывают наиболее обобщенные идеи, описываются как необязательные составляющие элементы.
[0041] Вариант 1 осуществления
Во-первых, описывается структура данных для кодированных трехмерных данных (в дальнейшем также называемых "кодированными данными") согласно настоящему варианту осуществления. Фиг. 1 является схемой, показывающей структуру кодированных трехмерных данных согласно настоящему варианту осуществления.
[0042] В настоящем варианте осуществления, трехмерное пространство разделяется на пространства (SPC), которые соответствуют изображениям при кодировании движущихся изображений, и трехмерные данные кодируются на основе SPC. Каждое SPC дополнительно разделяется на объемы (VLM), которые соответствуют макроблокам и т.д. при кодировании движущихся изображений, и прогнозирования и преобразования выполняются на основе VLM. Каждый объем включает в себя множество вокселов (VXL), каждый из которых представляет собой минимальную единицу, в которой позиционные координаты ассоциируются. Следует отметить, что прогнозирование представляет собой процесс формирования прогнозирующих трехмерных данных, аналогичных текущей единице обработки, посредством ссылки на другую единицу обработки и кодирования дифференциала между прогнозирующими трехмерными данными и текущей единицей обработки, как и в случае прогнозирований, выполняемых для двумерных изображений. Такое прогнозирование включает в себя не только пространственное прогнозирование, в котором ссылаются на другую единицу прогнозирования, соответствующую идентичному времени, но также и временное прогнозирование, в котором ссылаются на единицу прогнозирования, соответствующую другому времени.
[0043] При кодировании трехмерного пространства, представленного посредством данных точечных групп, таких как облако точек, например, устройство кодирования трехмерных данных (в дальнейшем также называемое "устройством кодирования") кодирует точки в точечной группе или точки, включенные в соответствующие вокселы, совместным способом, в соответствии с размером воксела. Более точные вокселы обеспечивают высокоточное представление трехмерной формы точечной группы, тогда как большие вокселы обеспечивают приблизительное представление трехмерной формы точечной группы.
[0044] Следует отметить, что далее описывается случай, в котором трехмерные данные представляют собой облако точек, но трехмерные данные не ограничены облаком точек, и в силу этого могут использоваться трехмерные данные любого формата.
[0045] Также следует отметить, что могут использоваться вокселы с иерархической структурой. В таком случае, когда иерархия включает в себя n уровней, может последовательно указываться то, включается или нет точка дискретизации в (n-1)-ый уровень или нижние уровни (уровни ниже n-го уровня). Например, когда только n-ый уровень декодируется, и (n-1)-ый уровень или нижние уровни включают в себя точку дискретизации, n-ый уровень может декодироваться при условии, что точка дискретизации включается в центр воксела на n-ом уровне.
[0046] Кроме того, устройство кодирования получает данные точечных групп, с использованием, например, датчика расстояния, стереокамеры, монокулярной камеры, гироскопического датчика или инерциального датчика.
[0047] Как и в случае кодирования движущихся изображений, каждое SPC классифицируется на одну, по меньшей мере, из трех структур прогнозирования, которые включают в себя: внутреннее SPC (I-SPC), которое является отдельно декодируемым; прогнозирующее SPC (P-SPC), допускающее только однонаправленную ссылку; и двунаправленное SPC (B-SPC), допускающее двунаправленные ссылки. Каждое SPC включает в себя два типа информации времени: время декодирования и время отображения.
[0048] Кроме того, как показано на фиг. 1, единица обработки, которая включает в себя множество SPC, представляет собой группу пространств (GOS), которая представляет собой единицу произвольного доступа. Кроме того, единица обработки, которая включает в себя множество GOS, представляет собой мир (WLD).
[0049] Пространственная область, занимаемая посредством каждого мира, ассоциирована с абсолютной позицией на земле, посредством использования, например, GPS или информации широты и долготы. Такая информация позиции сохраняется в качестве метаинформации. Следует отметить, что метаинформация может быть включена в кодированные данные или может передаваться отдельно от кодированных данных.
[0050] Кроме того, в GOS все SPC могут быть трехмерно смежными друг с другом, либо может быть предусмотрено SPC, которое не является трехмерно смежным с другим SPC.
[0051] Следует отметить, что далее также описываются такие процессы, как кодирование, декодирование и ссылка, которые должны выполняться для трехмерных данных, включенных в единицы обработки, такие как GOS, SPC и VLM, просто как выполнение кодирования/кодировать, декодирования/декодировать, ссылки и т.д. для единицы обработки. Также следует отметить, что трехмерные данные, включенные в единицу обработки, включают в себя, например, по меньшей мере, одну пару из пространственной позиции, такой как трехмерные координаты, и значения атрибута, такого как цветовая информация.
[0052] Далее описываются структуры прогнозирования для SPC в GOS. Множество SPC в идентичной GOS или множество VLM в идентичном SPC занимают взаимно различные пространства, при наличии идентичной информации времени (времени декодирования и времени отображения).
[0053] SPC в GOS, которая идет первой в порядке декодирования, представляет собой I-SPC. GOS имеют два типа: закрытая GOS и открытая GOS. Закрытая GOS представляет собой GOS, в которой все SPC в GOS являются декодируемыми, когда декодирование начинается с первого I-SPC. Между тем, открытая GOS представляет собой GOS, в которой ссылаются на другую GOS в одном или более SPC, предшествующих первому I-SPC в GOS по времени отображения, и в силу этого не может отдельно декодироваться.
[0054] Следует отметить, что в случае кодированных данных картографической информации, например, WLD иногда декодируется в обратном направлении, которое является противоположным порядку кодирования, и в силу этого обратное воспроизведение является затруднительным, когда GOS являются взаимозависимыми. В таком случае, по существу используется закрытая GOS.
[0055] Каждая GOS имеет многослойную структуру в направлении высоты, и SPC последовательно кодируются или декодируются из SPC в нижнем слое.
[0056] Фиг. 2 является схемой, показывающей пример структур прогнозирования для SPC, которые принадлежат крайнему нижнему слою в GOS. Фиг. 3 является схемой, показывающей пример структур прогнозирования для слоев.
[0057] GOS включает в себя, по меньшей мере, одно I-SPC. Из объектов в трехмерном пространстве, таких как человек, животное, автомобиль, велосипед, светофор и здание, служащих в качестве ориентира, объект небольшого размера является особенно эффективным при кодировании в качестве I-SPC. При декодировании GOS с низкой пропускной способностью или на высокой скорости, например, устройство декодирования трехмерных данных (в дальнейшем также называемое "устройством декодирования") декодирует только I-SPC в GOS.
[0058] Устройство кодирования также может изменять интервал кодирования или частоту возникновения I-SPC, в зависимости от степени разреженности и сплошности объектов в WLD.
[0059] В структуре, показанной на фиг. 3, устройство кодирования или устройство декодирования кодирует или декодирует множество слоев последовательно с нижнего слоя (слоя 1). Это увеличивает приоритет данных по земле и около нее, которые заключают в себе больший объем информации, когда, например, рассматривается беспилотный автомобиль.
[0060] Относительно кодированных данных, используемых для беспилотного аппарата, например, кодирование или декодирование может выполняться последовательно из SPC в верхнем слое в GOS в направлении высоты.
[0061] Устройство кодирования или устройство декодирования также может кодировать или декодировать множество слоев таким способом, что устройство декодирования может иметь приблизительное понимание GOS сначала, и затем разрешение постепенно увеличивается. Устройство кодирования или устройство декодирования, например, может выполнять кодирование или декодирование в порядке слоев 3, 8, 1, 9, ...,.
[0062] Далее описывается обработка статических объектов и динамических объектов.
[0063] Трехмерное пространство включает в себя сцены или неподвижные объекты, такие как здание и дорога (далее совместно называемые "статическими объектами"), и объекты с движением, такие как автомобиль и человек (далее совместно называемые "динамическими объектами"). Обнаружение объектов отдельно выполняется, например, посредством извлечения ключевых точек из данных облаков точек или из видео камеры, такой как стереокамера. В этом описании, в дальнейшем описывается примерный способ кодирования динамического объекта.
[0064] Первый способ представляет собой способ, в котором статический объект и динамический объект кодируются без различения. Второй способ представляет собой способ, в котором проводится различение между статическим объектом и динамическим объектом на основе идентификационной информации.
[0065] Например, GOS используется в качестве единицы идентификации. В таком случае, проводится различение между GOS, которая включает в себя SPC, составляющие статический объект, и GOS, которая включает в себя SPC, составляющие динамический объект, на основе идентификационной информации, сохраненной в кодированных данных или сохраненной отдельно от кодированных данных.
[0066] Альтернативно, SPC может использоваться в качестве единицы идентификации. В таком случае, проводится различение между SPC, которое включает в себя VLM, составляющие статический объект, и SPC, которое включает в себя VLM, составляющие динамический объект, на основе такой описанной идентификационной информации.
[0067] Альтернативно, VLM или VXL могут использоваться в качестве единицы идентификации. В таком случае, проводится различение между VLM или VXL, который включает в себя статический объект, и VLM или VXL, который включает в себя динамический объект, на основе такой описанной идентификационной информации.
[0068] Устройство кодирования также может кодировать динамический объект в качестве, по меньшей мере, одного VLM или SPC и может кодировать VLM или SPC, включающее в себя статический объект, и SPC, включающее в себя динамический объект, в качестве взаимно различных GOS. Когда GOS-размер является переменным в зависимости от размера динамического объекта, устройство кодирования отдельно сохраняет GOS-размер в качестве метаинформации.
[0069] Устройство кодирования также может кодировать статический объект и динамический объект отдельно друг от друга и может накладывать динамический объект на мир, состоящий из статических объектов. В таком случае, динамический объект состоит, по меньшей мере, из одного SPC, и каждое SPC ассоциировано, по меньшей мере, с одним SPC, составляющим статический объект, на который должно накладываться каждое SPC. Следует отметить, что динамический объект может представляться не посредством SPC, а посредством, по меньшей мере, одного VLM или VXL.
[0070] Устройство кодирования также может кодировать статический объект и динамический объект в качестве взаимно различных потоков.
[0071] Устройство кодирования также может формировать GOS, которая включает в себя, по меньшей мере, одно SPC, составляющее динамический объект. Устройство кодирования дополнительно может задавать размер GOS, включающей в себя динамический объект (GOS_M), и размер GOS, включающей в себя статический объект, соответствующий пространственной области GOS_M, равными идентичному размеру (так что идентичная пространственная область является занятой). Это обеспечивает возможность выполнения наложения на основе GOS.
[0072] На SPC, включенное в другую кодированную GOS, можно ссылаться в P-SPC или B-SPC, составляющем динамический объект. В случае если позиция динамического объекта временно изменяется, и идентичный динамический объект кодируется как объект в GOS, соответствующей другому времени, ссылка на SPC по GOS является эффективной с точки зрения коэффициента сжатия.
[0073] Первый способ и второй способ могут выбираться в соответствии с надлежащим использованием кодированных данных. Когда кодированные трехмерные данные используются в качестве карты, например, динамический объект должен разделяться, и в силу этого устройство кодирования использует второй способ. Между тем, устройство кодирования использует первый способ, когда разделение динамического объекта не требуется, к примеру, в случае если кодируются трехмерные данные события, такие как концерт и спортивные соревнования.
[0074] Время декодирования и время отображения GOS или SPC могут храниться в кодированных данных или в качестве метаинформации. Все статические объекты могут иметь идентичную информацию времени. В таком случае, устройство декодирования может определять фактическое время декодирования и время отображения. Альтернативно, другое значение может назначаться каждой GOS или SPC в качестве времени декодирования, и идентичное значение может быть назначено в качестве времени отображения. Кроме того, как и в случае модели декодера при кодировании движущихся изображений, такого как гипотетический опорный декодер (HRD), совместимый с HEVC, может использоваться модель, которая обеспечивает то, что декодер может выполнять декодирование бесперебойно за счет наличия буфера предварительно определенного размера и посредством считывания потока битов с предварительно определенной скоростью передачи битов в соответствии с временами декодирования.
[0075] Далее описывается топология GOS в мире. Координаты трехмерного пространства в мире представляются посредством трех осей координат (оси X, оси Y и оси Z), которые являются ортогональными друг к другу. Предварительно определенный набор правил для порядка кодирования GOS обеспечивает возможность выполнения кодирования таким образом, что пространственно смежные GOS являются смежными в кодированных данных. В примере, показанном на фиг. 4, например, GOS в плоскостях X и Z последовательно кодируются. После завершения кодирования всех GOS в определенных плоскостях X и Z, значение оси Y обновляется. Другими словами, мир расширяется в направлении по оси Y по мере того, как кодирование продолжается. Числовые GOS-индексы задаются в соответствии с порядком кодирования.
[0076] Здесь, трехмерные пространства в соответствующих мирах заранее ассоциированы "один-к-одному" с абсолютными географическими координатами, такими как GPS-координаты или координаты по широте/долготе. Альтернативно, каждое трехмерное пространство может представляться как позиция относительно заранее заданной опорной позиции. Направления оси X, оси Y и оси Z в трехмерном пространстве представляются посредством направленных векторов, которые определяются на основе широт и долгот и т.д. Такие направленные векторы сохраняются вместе с кодированными данными в качестве метаинформации.
[0077] GOS имеют фиксированный размер, и устройство кодирования сохраняет такой размер в качестве метаинформации. GOS-размер может изменяться, например, в зависимости от того, это городской район или нет, либо того, это внутри или снаружи помещения. Другими словами, GOS-размер может изменяться в соответствии с количеством или атрибутами объектов с информационными значениями. Альтернативно, в идентичном мире, устройство кодирования может адаптивно изменять GOS-размер или интервал между I-SPC в GOS в соответствии с плотностью объектов и т.д. Например, устройство кодирования задает GOS-размер как меньший, а интервал между I-SPC в GOS как более короткий, по мере того, как плотность объектов становится более высокой.
[0078] В примере, показанном на фиг. 5, чтобы обеспечивать произвольный доступ с большей степенью детализации, GOS с высокой плотностью объектов сегментируется на области третьей-десятой GOS. Следует отметить, что седьмая-десятая GOS расположены после третьей-шестой GOS.
[0079] Далее описываются структура и последовательность операций устройства кодирования трехмерных данных согласно настоящему варианту осуществления. Фиг. 6 является блок-схемой устройства 100 кодирования трехмерных данных согласно настоящему варианту осуществления. Фиг. 7 является блок-схемой последовательности операций способа примерной операции, выполняемой посредством устройства 100 кодирования трехмерных данных.
[0080] Устройство 100 кодирования трехмерных данных, показанное на фиг. 6, кодирует трехмерные данные 111, за счет этого формируя кодированные трехмерные данные 112. Такое устройство 100 кодирования трехмерных данных включает в себя модуль 101 получения, модуль 102 определения областей кодирования, модуль 103 разделения и кодер 104.
[0081] Как показано на фиг. 7, во-первых, модуль 101 получения получает трехмерные данные 111, которые представляют собой данные точечных групп (S101).
[0082] Затем, модуль 102 определения областей кодирования определяет текущую область для кодирования из числа пространственных областей, соответствующих полученным данным точечных групп (S102). Например, в соответствии с позицией пользователя или транспортного средства, модуль 102 определения областей кодирования определяет, в качестве текущей области, пространственную область около такой позиции.
[0083] Затем, модуль 103 разделения разделяет данные точечных групп, включенные в текущую область, на единицы обработки. Единицы обработки здесь означают такие единицы, как GOS и SPC, описанные выше. Текущая область здесь соответствует, например, миру, описанному выше. Более конкретно, модуль 103 разделения разделяет данные точечных групп на единицы обработки на основе предварительно определенного GOS-размера или присутствия/отсутствия/размера динамического объекта (S103). Модуль 103 разделения дополнительно определяет начальную позицию SPC, которое идет первым в порядке кодирования в каждой GOS.
[0084] Затем, кодер 104 последовательно кодирует множество SPC в каждой GOS, за счет этого формируя кодированные трехмерные данные 112 (S104).
[0085] Следует отметить, что, хотя здесь описывается пример, в котором текущая область разделяется на GOS и SPC, после чего каждая GOS кодируется, этапы обработки не ограничены этим порядком. Например, могут использоваться этапы, в которых определяется структура одного GO, после чего выполняется кодирование такой GOS, и затем определяется структура последующей GOS.
[0086] Таким образом, как описано выше, устройство 100 кодирования трехмерных данных кодирует трехмерные данные 111, за счет этого формируя кодированные трехмерные данные 112. Более конкретно, устройство 100 кодирования трехмерных данных разделяет трехмерные данные на первые единицы обработки (GOS), причем каждая из них представляет собой единицу произвольного доступа и ассоциирована с трехмерными координатами, разделяет каждую из первых единиц обработки (GOS) на вторые единицы обработки (SPC) и разделяет каждую из вторых единиц обработки (SPC) на третьи единицы обработки (VLM). Каждая из третьих единиц обработки (VLM) включает в себя, по меньшей мере, один воксел (VXL), который представляет собой минимальную единицу, в которой информация позиции ассоциирована.
[0087] Затем, устройство 100 кодирования трехмерных данных кодирует каждую из первых единиц обработки (GOS), за счет этого формируя кодированные трехмерные данные 112. Более конкретно, устройство 100 кодирования трехмерных данных кодирует каждую из вторых единиц обработки (SPC) в каждой из первых единиц обработки (GOS). Устройство 100 кодирования трехмерных данных дополнительно кодирует каждую из третьих единиц обработки (VLM) в каждой из вторых единиц обработки (SPC).
[0088] Когда текущая первая единица обработки (GOS) представляет собой закрытую GOS, например, устройство 100 кодирования трехмерных данных кодирует текущую вторую единицу обработки (SPC), включенную в такую текущую первую единицу обработки (GOS), посредством ссылки на другую вторую единицу обработки (SPC), включенную в текущую первую единицу обработки (GOS). Другими словами, устройство 100 кодирования трехмерных данных не ссылается на вторую единицу обработки (SPC), включенную в первую единицу обработки (GOS), которая отличается от текущей первой единицы обработки (GOS).
[0089] Между тем, когда текущая первая единица обработки (GOS) представляет собой открытую GOS, устройство 100 кодирования трехмерных данных кодирует текущую вторую единицу обработки (SPC), включенную в такую текущую первую единицу обработки (GOS), посредством ссылки на другую вторую единицу обработки (SPC), включенную в текущую первую единицу обработки (GOS), или на вторую единицу обработки (SPC), включенную в первую единицу обработки (GOS), которая отличается от текущей первой единицы обработки (GOS).
[0090] Кроме того, устройство 100 кодирования трехмерных данных выбирает, в качестве типа текущей второй единицы обработки (SPC), одно из следующего: первый тип (I-SPC), в котором не ссылаются на другую вторую единицу обработки (SPC); второй тип (P-SPC), в котором ссылаются на другую одну вторую единицу обработки (SPC); и третий тип, в котором ссылаются на другие две вторых единицы обработки (SPC). Устройство 100 кодирования трехмерных данных кодирует текущую вторую единицу обработки (SPC) в соответствии с выбранным типом.
[0091] Далее описываются структура и последовательность операций устройства декодирования трехмерных данных согласно настоящему варианту осуществления. Фиг. 8 является блок-схемой устройства 200 декодирования трехмерных данных согласно настоящему варианту осуществления. Фиг. 9 является блок-схемой последовательности операций способа примерной операции, выполняемой посредством устройства 200 декодирования трехмерных данных.
[0092] Устройство 200 декодирования трехмерных данных, показанное на фиг. 8, декодирует кодированные трехмерные данные 211, за счет этого формируя декодированные трехмерные данные 212. Кодированные трехмерные данные 211 здесь, например, представляют собой кодированные трехмерные данные 112, сформированные посредством устройства 100 кодирования трехмерных данных. Такое устройство 200 декодирования трехмерных данных включает в себя модуль 201 получения, модуль 202 определения GOS для начала декодирования, модуль 203 определения SPC для декодирования и декодер 204.
[0093] Во-первых, модуль 201 получения получает кодированные трехмерные данные 211 (S201). Затем, модуль 202 определения GOS для начала декодирования определяет текущую GOS для декодирования (S202). Более конкретно, модуль 202 определения GOS для начала декодирования ссылается на метаинформацию, сохраненную в кодированных трехмерных данных 211 или сохраненную отдельно от кодированных трехмерных данных, чтобы определять, в качестве текущей GOS, GOS, которая включает в себя SPC, соответствующее пространственной позиции, объекту или времени, с которого должно начинаться декодирование.
[0094] Затем, модуль 203 определения SPC для декодирования определяет тип(ы) (I-, P- и/или B-) SPC, которые должны декодироваться в GOS (S203). Например, модуль 203 определения SPC для декодирования определяет то, следует (1) декодировать только I-SPC, (2) декодировать I-SPC и P-SPC или (3) декодировать SPC всех типов. Следует отметить, что настоящий этап может не выполняться, когда тип(ы) SPC, которые должны декодироваться, заранее определяются, к примеру, когда заранее определяются все SPC, которые должны декодироваться.
[0095] Далее декодер 204 получает местоположение адреса в кодированных трехмерных данных 211, с которого начинается SPC, которое идет первым в GOS в порядке декодирования (идентичном порядку кодирования). Декодер 204 получает кодированные данные первого SPC из местоположения адреса и последовательно декодирует SPC с такого первого SPC (S204). Следует отметить, что местоположение адреса сохраняется в метаинформации и т.д.
[0096] Устройство 200 декодирования трехмерных данных декодирует декодированные трехмерные данные 212 таким образом, как описано выше. Более конкретно, устройство 200 декодирования трехмерных данных декодирует каждые кодированные трехмерные данные 211 первых единиц обработки (GOS), причем каждая из них представляет собой единицу произвольного доступа и ассоциирована с трехмерными координатами, за счет этого формируя декодированные трехмерные данные 212 первых единиц обработки (GOS). Еще более конкретно, устройство 200 декодирования трехмерных данных декодирует каждую из вторых единиц обработки (SPC) в каждой из первых единиц обработки (GOS). Устройство 200 декодирования трехмерных данных дополнительно декодирует каждую из третьих единиц обработки (VLM) в каждой из вторых единиц обработки (SPC).
[0097] Далее описывается метаинформация для произвольного доступа. Такая метаинформация формируется посредством устройства 100 кодирования трехмерных данных и включается в кодированные трехмерные данные 112 (211).
[0098] В традиционном произвольном доступе для двумерного движущегося изображения, декодирование начинается с первого кадра в единице произвольного доступа, которая находится близко к указанному времени. Между тем, в дополнение ко временам, произвольный доступ к пространствам (координатам, объектам и т.д.) предположительно должен выполняться в мире.
[0099] Чтобы обеспечивать произвольный доступ, по меньшей мере, к трем элементам координат, объектов и времен, подготавливаются таблицы, которые ассоциируют соответствующие элементы с числовыми GOS-индексами. Кроме того, числовые GOS-индексы ассоциированы с адресами соответствующих первых I-SPC в GOS. Фиг. 10 является схемой, показывающей примерные таблицы, включенные в метаинформацию. Следует отметить, что не все таблицы, показанные на фиг. 10, обязательно должны использоваться, и в силу этого используется, по меньшей мере, одна из таблиц.
[0100] Далее описывается пример, в котором произвольный доступ выполняется из координат в качестве начальной точки. Чтобы осуществлять доступ к координатам (x2, y2 и z2), сначала ссылаются на таблицу координат и GOS, которая указывает то, что точка, соответствующая координатам (x2, y2 и z2), включается во вторую GOS. Затем ссылаются на таблицу GOS и адресов, которая указывает то, что адрес первого I-SPC во второй GOS представляет собой addr(2). В связи с этим, декодер 204 получает данные из этого адреса, чтобы начинать декодирование.
[0101] Следует отметить, что адреса могут или представлять собой логические адреса либо физические адреса HDD или запоминающего устройства. Альтернативно, информация, которая идентифицирует сегменты файлов, может использоваться вместо адресов. Сегменты файлов, например, представляют собой единицы, полученные посредством сегментации, по меньшей мере, одной GOS и т.д.
[0102] Когда объект охватывает множество GOS, таблица объектов и GOS может показывать множество GOS, которым принадлежит такой объект. Когда такое множество GOS представляют собой закрытые GOS, устройство кодирования и устройство декодирования могут выполнять кодирование или декодирование параллельно. Между тем, когда такое множество GOS представляют собой открытые GOS, более высокая эффективность сжатия достигается посредством множества GOS, ссылающихся друг на друга.
[0103] Примерные объекты включают в себя человека, животное, автомобиль, велосипед, светофор и здание, служащие в качестве ориентира. Например, устройство 100 кодирования трехмерных данных извлекает ключевые точки, конкретные для объекта, из облака трехмерных точек и т.д., при кодировании мира, и обнаруживает объект на основе таких ключевых точек, чтобы задавать обнаруженный объект в качестве точки произвольного доступа.
[0104] Таким образом, как описано выше, устройство 100 кодирования трехмерных данных формирует первую информацию, указывающую множество первых единиц обработки (GOS) и трехмерные координаты, ассоциированные с соответствующими первыми единицами обработки (GOS). Кодированные трехмерные данные 112 (211) включают в себя такую первую информацию. Первая информация дополнительно указывает, по меньшей мере, одно из объектов, времен и местоположений хранения данных, которые ассоциированы с соответствующими первыми единицами обработки (GOS).
[0105] Устройство 200 декодирования трехмерных данных получает первую информацию из кодированных трехмерных данных 211. С использованием такой первой информации, устройство 200 декодирования трехмерных данных идентифицирует кодированные трехмерные данные 211 первой единицы обработки, которая соответствует указанным трехмерным координатам, объекту или времени, и декодирует кодированные трехмерные данные 211.
[0106] Далее описывается пример другой метаинформации. В дополнение к метаинформации для произвольного доступа, устройство 100 кодирования трехмерных данных также может формировать и сохранять метаинформацию, как описано ниже, и устройство 200 декодирования трехмерных данных может использовать такую метаинформацию во время декодирования.
[0107] Когда трехмерные данные используются в качестве картографической информации, например, профиль задается в соответствии с надлежащим использованием, и информация, указывающая такой профиль, может быть включена в метаинформацию. Например, профиль задается для городского или пригородного района либо для летающего объекта, и максимальный или минимальный размер и т.д. мира, SPC или VLM и т.д. задается в каждом профиле. Например, более подробная информация требуется для городского района, чем для пригородного района, и в силу этого минимальный VLM-размер задается небольшим.
[0108] Метаинформация может включать в себя значения тега, указывающие типы объектов. Каждое из таких значений тега ассоциировано с VLM, SPC или GOS, которые составляют объект. Например, значение тега может задаваться для каждого типа объекта таким образом, например, что значение тега "0" указывает "человека", значение тега "1" указывает "автомобиль", и значение тега "2" указывает "светофор". Альтернативно, когда трудно проводить оценку типа объекта, либо такое проведение оценки не требуется, может использоваться значение тега, которое указывает размер или атрибут, указывающий, например, то, представляет объект собой динамический объект или статический объект.
[0109] Метаинформация также может включать в себя информацию, указывающую диапазон пространственной области, занимаемой посредством мира.
[0110] Метаинформация также может сохранять SPC- или VXL-размер в качестве информации заголовка, общей для целого потока кодированных данных или для множества SPC, таких как SPC в GOS.
[0111] Метаинформация также может включать в себя идентификационную информацию по датчику расстояния или камере, которая использована для того, чтобы формировать облако точек, или информацию, указывающую точность позиционирования точечной группы в облаке точек.
[0112] Метаинформация также может включать в себя информацию, указывающую то, мир состоит только из статических объектов или включает в себя динамический объект.
[0113] Далее описываются варьирования настоящего варианта осуществления.
[0114] Устройство кодирования или устройство декодирования может кодировать или декодировать два или более взаимно различных SPC или GOS параллельно. GOS, которые должны кодироваться или декодироваться параллельно, могут определяться на основе метаинформации и т.д., указывающей пространственные позиции GOS.
[0115] Когда трехмерные данные используются в качестве пространственной карты для использования посредством автомобиля или летающего объекта и т.д. при движении или для создания такой пространственной карты, например, устройство кодирования или устройство декодирования может кодировать или декодировать GOS или SPC, включенные в пространство, которое идентифицируется на основе GPS-информации, информации маршрута, увеличения масштаба и т.д.
[0116] Устройство декодирования может также начинать декодирование последовательно из пространства, которое находится близко к собственному местоположению или маршруту движения. Устройство кодирования или устройство декодирования может отдавать более низкий приоритет пространству, удаленному от собственного местоположения или маршрута движения, чем приоритет близлежащего пространства, чтобы кодировать или декодировать такое удаленное пространство. "Отдавать более низкий приоритет" означает здесь, например, понижение приоритета в последовательности обработки, снижение разрешения (применение прореживания в обработке) или понижение качества изображений (увеличение эффективности кодирования, например, посредством задания шага квантования большим).
[0117] При декодировании кодированных данных, которые иерархически кодируются в пространстве, устройство декодирования может декодировать только нижний слой в иерархии.
[0118] Устройство декодирования также может начинать декодирование предпочтительно с нижнего слоя иерархии в соответствии с увеличением масштаба или надлежащим использованием карты.
[0119] Для оценки собственного местоположения или распознавания объектов и т.д., участвующих в беспилотном вождении автомобиля или робота, устройство кодирования или устройство декодирования может кодировать или декодировать области с более низком разрешением, за исключением области, которая находится ниже или на заданной высоте от земли (области, которая должна распознаваться).
[0120] Устройство кодирования также может кодировать облака точек, представляющие пространственные формы внутренней части помещения и наружной части помещения, отдельно. Например, разделение GOS, представляющей внутреннюю часть помещения (внутренней GOS), и GOS, представляющей наружную часть помещения (наружной GOS), обеспечивает возможность устройству декодирования выбирать GOS, которая должна декодироваться, в соответствии с местоположением точки обзора, при использовании кодированных данных.
[0121] Устройство кодирования также может кодировать внутреннюю GOS и наружную GOS, имеющие близкие координаты, так что такие GOS приближаются друг к другу в кодированном потоке. Например, устройство кодирования ассоциирует идентификаторы таких GOS друг с другом и сохраняет информацию, указывающую ассоциированные идентификаторы, в метаинформации, которая сохраняется в кодированном потоке или сохраняется отдельно. Это обеспечивает возможность устройству декодирования ссылаться на информацию в метаинформации, чтобы идентифицировать внутреннюю GOS и наружную GOS, имеющие близкие координаты.
[0122] Устройство кодирования также может изменять GOS-размер или SPC-размер в зависимости от того, представляет GOS собой внутреннюю GOS или наружную GOS. Например, устройство кодирования задает размер внутренней GOS меньшим размера наружной GOS. Устройство кодирования также может изменять точность извлечения ключевых точек из облака точек или точность обнаружения объектов, например, в зависимости от того, представляет GOS собой внутреннюю GOS или наружную GOS.
[0123] Устройство кодирования также может добавлять, в кодированные данные, информацию, посредством которой устройство декодирования отображает объекты с различением между динамическим объектом и статическим объектом. Это обеспечивает возможность устройству декодирования отображать динамический объект, например, вместе с красным полем или буквами для пояснения. Следует отметить, что устройство декодирования может отображать только красное поле или буквы для пояснения вместо динамического объекта. Устройство декодирования также может отображать более конкретные типы объектов. Например, красное поле может использоваться для автомобиля, а желтое поле может использоваться для человека.
[0124] Устройство кодирования или устройство декодирования также может определять то, следует либо нет кодировать или декодировать динамический объект и статический объект в качестве другого SPC или GOS, в соответствии, например, с частотой возникновения динамических объектов или соотношением между статическими объектами и динамическими объектами. Например, когда частота возникновения или соотношение динамических объектов превышают пороговое значение, SPC или GOS, включающая в себя смесь динамического объекта и статического объекта, принимается, тогда как когда частота возникновения или соотношение динамических объектов составляет ниже порогового значения, SPC или GOS, включающая в себя смесь динамического объекта и статического объекта, не принимается.
[0125] При обнаружении динамического объекта не из облака точек, а из информации двумерных изображений камеры, устройство кодирования может отдельно получать информацию для идентификации результата обнаружения (поле или буквы) и позицию объекта и кодировать эти элементы информации в качестве части кодированных трехмерных данных. В таком случае, устройство декодирования накладывает вспомогательную информацию (поле или буквы), указывающую динамический объект, на результант декодирования статического объекта, чтобы отображать его.
[0126] Устройство кодирования также может изменять разреженность и сплошность VXL или VLM в SPC в соответствии со степенью сложности формы статического объекта. Например, устройство кодирования задает VXL или VLM с более высокой плотностью по мере того, как форма статического объекта становится более сложной. Устройство кодирования дополнительно может определять шаг квантования и т.д. для квантования пространственных позиций или цветовой информации в соответствии с разреженностью и сплошностью VXL или VLM. Например, устройство кодирования задает шаг квантования как меньший по мере того, как плотность VXL или VLM становится более высокой.
[0127] Как описано выше, устройство кодирования или устройство декодирования согласно настоящему варианту осуществления кодирует или декодирует пространство на основе SPC, которое включает в себя координатную информацию.
[0128] Кроме того, устройство кодирования и устройство декодирования выполняют кодирование или декодирование на основе объема в SPC. Каждый объем включает в себя воксел, который представляет собой минимальную единицу, в которой информация позиции ассоциирована.
[0129] Кроме того, с использованием таблицы, которая ассоциирует соответствующие элементы пространственной информации, включающей в себя координаты, объекты и времена, с GOS, либо с использованием таблицы, которая ассоциирует эти элементы друг с другом, устройство кодирования и устройство декодирования ассоциируют любые элементы друг с другом, чтобы выполнять кодирование или декодирование. Устройство декодирования использует значения выбранных элементов, чтобы определять координаты, и идентифицирует объем, воксел или SPC из таких координат, чтобы декодировать SPC, включающее в себя такой объем или воксел, или идентифицированное SPC.
[0130] Кроме того, устройство кодирования определяет объем, воксел или SPC, которое может выбираться в соответствии с элементами, через извлечение ключевых точек и распознавание объектов и кодирует определенный объем, воксел или SPC, в качестве объема, воксела или SPC, для которого является возможным произвольный доступ.
[0131] SPC классифицируются на три типа: I-SPC, которое является отдельно кодируемым или декодируемым; P-SPC, которое кодируется или декодируется посредством ссылки на любое из обработанных SPC; и B-SPC, которое кодируется или декодируется посредством ссылки на любые два из обработанных SPC.
[0132] По меньшей мере, один объем соответствует статическому объекту или динамическому объекту. SPC, включающее в себя статический объект, и SPC, включающее в себя динамический объект, кодируются или декодируются в качестве взаимно различных GOS. Другими словами, SPC, включающее в себя статический объект, и SPC, включающее в себя динамический объект, назначаются различным GOS.
[0133] Динамические объекты кодируются или декодируются на основе объекта и ассоциированы, по меньшей мере, с одним SPC, включающим в себя статический объект. Другими словами, множество динамических объектов отдельно кодируются, и полученные кодированные данные динамических объектов ассоциированы с SPC, включающим в себя статический объект.
[0134] Устройство кодирования и устройство декодирования отдают увеличенный приоритет I-SPC в GOS, чтобы выполнять кодирование или декодирование. Например, устройство кодирования выполняет кодирование таким способом, который предотвращает ухудшение характеристик I-SPC (таким способом, который обеспечивает воспроизведение исходных трехмерных данных с более высокой точностью воспроизведения после декодирования). Устройство декодирования декодирует, например, только I-SPC.
[0135] Устройство кодирования может изменять частоту использования I-SPC в зависимости от разреженности и сплошности или числа (количества) объектов в мире, чтобы выполнять кодирование. Другими словами, устройство кодирования изменяет частоту выбора I-SPC в зависимости от числа или разреженности и сплошности объектов, включенных в трехмерные данные. Например, устройство кодирования использует I-SPC на более высокой частоте по мере того, как плотность объектов в мире становится более высокой.
[0136] Устройство кодирования также задает точки произвольного доступа на основе GOS и сохраняет информацию, указывающую пространственные области, соответствующие GOS, в информации заголовка.
[0137] Устройство кодирования использует, например, значение по умолчанию в качестве пространственного размера GOS. Следует отметить, что устройство кодирования может изменять GOS-размер в зависимости от числа (количества) или разреженности и сплошности объектов или динамических объектов. Например, устройство кодирования задает пространственный размер GOS как меньший по мере того, как плотность объектов или динамических объектов становится более высокой, или число объектов или динамических объектов становится больше.
[0138] Кроме того, каждое SPC или объем включает в себя группу ключевых точек, которая извлекается посредством использования информации, полученной посредством датчика, такого как датчик глубины, гироскопический датчик или датчик с камерой. Координаты ключевых точек задаются в центральных позициях соответствующих вокселов. Кроме того, более точные вокселы предоставляют высокоточную информацию позиции.
[0139] Группа ключевых точек извлекается посредством использования множества изображений. Множество изображений включают в себя, по меньшей мере, два типа информации времени: фактическую информацию времени и идентичную информацию времени, общую для множества изображений, которые ассоциированы с SPC (например, время кодирования, используемое для управления скоростью, и т.д.).
[0140] Кроме того, кодирование или декодирование выполняется на основе GOS, которая включает в себя, по меньшей мере, одно SPC.
[0141] Устройство кодирования и устройство декодирования прогнозируют P-SPC или B-SPC в текущей GOS посредством ссылки на SPC в обработанной GOS.
[0142] Альтернативно, устройство кодирования и устройство декодирования прогнозируют P-SPC или B-SPC в текущей GOS, с использованием обработанных SPC в текущей GOS, без ссылки на другую GOS.
[0143] Кроме того, устройство кодирования и устройство декодирования передают или принимают кодированный поток на основе мира, который включает в себя, по меньшей мере, одну GOS.
[0144] Кроме того, GOS имеет многослойную структуру в одном направлении, по меньшей мере, в мире, и устройство кодирования и устройство декодирования начинают кодирование или декодирование с нижнего слоя. Например, случайная доступная GOS принадлежит крайнему нижнему слою. На GOS, которая принадлежит идентичному слою или нижнему слою, ссылаются в GOS, которая принадлежит верхнему слою. Другими словами, GOS пространственно разделяется в предварительно определенном направлении заранее, чтобы иметь множество слоев, включающих в себя, по меньшей мере, одно SPC. Устройство кодирования и устройство декодирования кодируют или декодируют каждое SPC посредством ссылки на SPC, включенное в слой, идентичный слою каждого SPC, или на SPC, включенное в слой ниже слоя каждого SPC.
[0145] Кроме того, устройство кодирования и устройство декодирования последовательно кодируют или декодируют GOS на основе мира, который включает в себя такие GOS. Таким образом, устройство кодирования и устройство декодирования записывают или считывают информацию, указывающую порядок (направление) кодирования или декодирования, в качестве метаданных. Другими словами, кодированные данные включают в себя информацию, указывающую порядок кодирования множества GOS.
[0146] Устройство кодирования и устройство декодирования также кодируют или декодируют взаимно различные два или более SPC или GOS параллельно.
[0147] Кроме того, устройство кодирования и устройство декодирования кодируют или декодируют пространственную информацию (координаты, размер и т.д.) относительно SPC или GOS.
[0148] Устройство кодирования и устройство декодирования кодируют или декодируют SPC или GOS, включенные в идентифицированное пространство, которое идентифицируется на основе внешней информации относительно собственного местоположения или/и размера области, такой как GPS-информация, информация маршрута или увеличение.
[0149] Устройство кодирования или устройство декодирования отдает более низкий приоритет пространству, удаленному от собственного местоположения, чем приоритет близлежащего пространства, чтобы выполнять кодирование или декодирование.
[0150] Устройство кодирования задает направление в одном из направлений в мире, в соответствии с увеличением или надлежащим использованием, чтобы кодировать GOS, имеющую многослойную структуру в таком направлении. Кроме того, устройство декодирования декодирует GOS, имеющую многослойную структуру в одном из направлений в мире, которое задано в соответствии с увеличением или надлежащим использованием, предпочтительно с нижнего слоя.
[0151] Устройство кодирования изменяет точность извлечения ключевых точек, точность распознавания объектов или размер пространственных областей и т.д., включенных в SPC, в зависимости от того, представляет объект собой внутренний объект или наружный объект. Следует отметить, что устройство кодирования и устройство декодирования кодируют или декодируют внутреннюю GOS и наружную GOS, имеющие близкие координаты, таким способом, что эти GOS приближаются друг к другу в мире, и ассоциирует их идентификаторы друг с другом для кодирования и декодирования.
[0152] Вариант 2 осуществления
При использовании кодированных данных облака точек в фактическом устройстве или услуге, желательно, если необходимая информация передается/принимается в соответствии с надлежащим использованием, чтобы уменьшать полосу пропускания сети. Тем не менее, отсутствует и такая функциональность в структуре кодирования трехмерных данных, и способ кодирования для нее.
[0153] Настоящий вариант осуществления описывает способ кодирования трехмерных данных и устройство кодирования трехмерных данных для предоставления функциональности передачи/приема только необходимой информации в кодированных данных облака трехмерных точек в соответствии с надлежащим использованием, а также способ декодирования трехмерных данных и устройство декодирования трехмерных данных для декодирования таких кодированных данных.
[0154] Воксел (VXL) с признаком, большим или равным данного количества, задается как воксел признаков (FVXL), и мир (WLD), состоящий из FVXL, задается как разреженный мир (SWLD). Фиг. 11 является схемой, показывающей примерные структуры разреженного мира и мира. SWLD включает в себя: FGOS, причем каждая из них представляет собой GOS, состоящую из FVXL; FSPC, причем каждое из них представляет собой SPC, состоящее из FVXL; и FVLM, причем каждый из них представляет собой VLM, состоящий из FVXL. Структура данных и структура прогнозирования FGOS, FSPC и FVLM могут быть идентичными структуре данных и структуре прогнозирования GOS, SPC и VLM.
[0155] Признак представляет информацию трехмерной позиции относительно VXL или информацию диапазона видимого света относительно позиции VXL. Большое число признаков обнаруживается, в частности, в углу, на краю и т.д. трехмерного объекта. Более конкретно, такой признак представляет собой трехмерный признак или признак диапазона видимого света, как описано ниже, но может представлять собой любой признак, который представляет информацию позиции, информацию яркости или цветовую информацию и т.д. относительно VXL.
[0156] В качестве трехмерных признаков используются признаки подписи гистограмм ориентаций (SHOT), признаки гистограмм точечных признаков (PFH) или признаки точечных пар (PPF).
[0157] SHOT-признаки получаются посредством разделения периферии VXL и вычисления внутреннего произведения опорной точки и нормального вектора каждой разделенной области, чтобы представлять результат вычисления в качестве гистограммы. SHOT-признаки характеризуются посредством большого числа размерностей и высокоуровневого представления признаков.
[0158] PFH-признаки получаются посредством выбора большого числа двух точечных пар около VXL и вычисления нормального вектора и т.д. из каждых двух точечных пар, чтобы представлять результат вычисления в качестве гистограммы. PFH-признаки представляют собой признаки гистограмм и в силу этого характеризуются посредством устойчивости к в известной степени искажения, а также посредством высокоуровневого представления признаков.
[0159] PPF-признаки получаются посредством использования нормального вектора и т.д. для каждых двух точек VXL. PPF-признаки, для которых используются все VXL, имеют устойчивость к окклюзии.
[0160] В качестве признаков диапазона видимого света, используются масштабно-инвариантное преобразование признаков (SIFT), ускоренные надежные признаки (SURF) или гистограмма ориентированных градиентов (HOG) и т.д., которые используют информацию относительно изображения, такую как информация градиента яркости.
[0161] SWLD формируется посредством вычисления вышеописанных признаков соответствующих VXL в WLD для того, чтобы извлекать FVXL. Здесь, SWLD может обновляться каждый раз, когда обновляется WLD, или может регулярно обновляться после истечения определенного периода времени, независимо от времени, когда обновляется WLD.
[0162] SWLD может формироваться для каждого типа признаков. Например, различные SWLD могут формироваться для соответствующих типов признаков, такие как SWLD1 на основе SHOT-признаков и SWLD2 на основе признаков SIFT, так что SWLD избирательно используются в соответствии с надлежащим использованием. Кроме того, вычисленный признак каждого FVXL может храниться в каждом FVXL в качестве информации признаков.
[0163] Далее описывается использование разреженного мира (SWLD). SWLD включает в себя только вокселы признаков (FVXL), и в силу этого его размер данных меньше, в общем, размера WLD, который включает в себя все VXL.
[0164] В варианте применения, который использует признаки для определенной цели, использование информации относительно SWLD вместо WLD уменьшает время, требуемое для того, чтобы считывать данные с жесткого диска, а также полосу пропускания и время, требуемое для передачи данных по сети. Например, WLD и SWLD хранятся на сервере в качестве картографической информации таким образом, что картографическая информация, которая должна отправляться, выбирается между WLD и SWLD в соответствии с запросом от клиента. Это уменьшает полосу пропускания сети и время, требуемое для передачи данных. Ниже поясняются более конкретные примеры.
[0165] Фиг. 12 и фиг. 13 являются схемами, показывающими примеры использования SWLD и WLD. Как показывает фиг. 12, когда клиент 1, который представляет собой установленное в транспортном средстве устройство, требует картографическую информацию, чтобы использовать ее для определения собственного местоположения, клиент 1 отправляет на сервер запрос на получение картографических данных для оценки собственного местоположения (S301). Сервер отправляет в клиент 1 SWLD в ответ на запрос на получение (S302). Клиент 1 использует принимаемый SWLD для того, чтобы определять собственное местоположение (S303). Таким образом, клиент 1 получает VXL-информацию относительно периферии клиента 1 через различные средства, включающие в себя датчик расстояния, такой как, дальномер, а также стереокамеру и комбинацию множества монокулярных камер. Клиент 1 затем оценивает информацию собственного местоположения из полученной VXL-информации и SWLD. Здесь, информация собственного местоположения включает в себя информацию трехмерной позиции, ориентацию и т.д. клиента 1.
[0166] Как показывает фиг. 13, когда клиент 2, который представляет собой установленное в транспортном средстве устройство, требует картографическую информацию, чтобы использовать ее для рендеринга карты, такой как трехмерная карта, клиент 2 отправляет на сервер запрос на получение картографических данных для рендеринга карт (S311). Сервер отправляет в клиент 2 WLD в ответ на запрос на получение (S312). Клиент 2 использует принимаемый WLD для того, чтобы подготавливать посредством рендеринга карту (S313). Таким образом, клиент 2 использует, например, изображение, которое клиент 2 захватывает посредством камеры для съемки в диапазоне видимого света и т.д., и WLD, полученный из сервера, чтобы создавать изображение для рендеринга, и подготавливает посредством рендеринга такое созданное изображение на экране автомобильной навигационной системы и т.д.
[0167] Как описано выше, сервер отправляет в клиент SWLD, когда признаки соответствующих VXL главным образом требуются, к примеру, в случае оценки собственного местоположения, и отправляет в клиент WLD, когда подробная VXL-информация требуется, к примеру, в случае рендеринга карт. Это предоставляет возможность эффективной отправки/приема картографических данных.
[0168] Следует отметить, что клиент может проводить самооценку в отношении того, что из SWLD и WLD необходимо, и запрашивать сервер на предмет того, чтобы отправлять SWLD или WLD. Кроме того, сервер может проводить оценку того, что из SWLD и WLD следует отправлять, в соответствии с состоянием клиента или сети.
[0169] Далее описывается способ переключения отправки/приема между разреженным миром (SWLD) и миром (WLD).
[0170] То, следует принимать WLD или SWLD, может переключаться в соответствии с полосой пропускания сети. Фиг. 14 является схемой, показывающей примерную операцию в таком случае. Например, когда используется низкоскоростная сеть, что ограничивает применимую полосу пропускания сети, к примеру, в окружении по стандарту долгосрочного развития (LTE), клиент осуществляет доступ к серверу по низкоскоростной сети (S321) и получает SWLD из сервера в качестве картографической информации (S322). Между тем, когда используется высокоскоростная сеть, которая имеет адекватно широкую полосу пропускания сети, к примеру, в Wi-Fi-окружении, клиент осуществляет доступ к серверу по высокоскоростной сети (S323) и получает WLD из сервера (S324). Это позволяет клиенту получать соответствующую картографическую информацию в соответствии с полосой пропускания сети, которую использует такой клиент.
[0171] Более конкретно, клиент принимает SWLD по LTE-сети на улице и получает WLD по Wi-Fi-сети в закрытом помещении, к примеру, в инфраструктурном объекте. Это позволяет клиенту получать более подробную картографическую информацию относительно окружения в помещениях.
[0172] Как описано выше, клиент может запрашивать WLD или SWLD в соответствии с полосой пропускания сети, которую использует такой клиент. Альтернативно, клиент может отправлять на сервер информацию, указывающую полосу пропускания сети, которую использует такой клиент, и сервер может отправлять в клиент данные (WLD или SWLD), подходящие для такого клиента, в соответствии с информацией. Альтернативно, сервер может идентифицировать полосу пропускания сети, которую использует клиент, и отправлять в клиент данные (WLD или SWLD), подходящие для такого клиента.
[0173] Кроме того, то, следует принимать WLD или SWLD, может переключаться в соответствии со скоростью движения. Фиг. 15 является схемой, показывающей примерную операцию в таком случае. Например, при движении на высокой скорости (S331), клиент принимает SWLD из сервера (S332). Между тем, при движении на низкой скорости (S333), клиент принимает WLD из сервера (S334). Это позволяет клиенту получать картографическую информацию, подходящую для скорости, при уменьшении полосы пропускания сети. Более конкретно, при движении по скоростной автомагистрали, клиент принимает SWLD с небольшим объемом данных, что обеспечивает обновление приблизительной картографической информации с соответствующей скоростью. Между тем, при движении по общей дороге, клиент принимает WLD, который обеспечивает получение более подробной картографической информации.
[0174] Как описано выше, клиент может запрашивать сервер на предмет WLD или SWLD в соответствии со скоростью движения такого клиента. Альтернативно, клиент может отправлять на сервер информацию, указывающую скорость движения такого клиента, и сервер может отправлять в клиент данные (WLD или SWLD), подходящие для такого клиента, в соответствии с информацией. Альтернативно, сервер может идентифицировать скорость движения клиента, чтобы отправлять данные (WLD или SWLD), подходящие для такого клиента.
[0175] Кроме того, клиент может получать, из сервера, SWLD сначала, из которого клиент может получать WLD важной области. Например, при получении картографической информации, клиент сначала получает SWLD для приблизительной картографической информации, из которой клиент сужается до области, в которой такие признаки, как здания, светофоры или люди, появляются на высокой частоте, так что клиент может позднее получать WLD такой суженной области. Это позволяет клиенту получать подробную информацию относительно необходимой области, при уменьшении объема данных, принимаемых из сервера.
[0176] Сервер также может создавать из WLD различные SWLD для соответствующих объектов, и клиент может принимать SWLD в соответствии с надлежащим использованием. Это уменьшает полосу пропускания сети. Например, сервер распознает людей или автомобили в WLD заранее и создает SWLD людей и SWLD автомобилей. Клиент, при желании получать информацию относительно людей около клиента, принимает SWLD людей и, при желании получать информацию относительно автомобилей, принимает SWLD автомобилей. Такие типы SWLD могут отличаться посредством информации (флага или типа и т.д.), добавляемой в заголовок, и т.д.
[0177] Далее описываются структура и последовательность операций устройства кодирования трехмерных данных (например, сервера) согласно настоящему варианту осуществления. Фиг. 16 является блок-схемой устройства 400 кодирования трехмерных данных согласно настоящему варианту осуществления. Фиг. 17 является блок-схемой последовательности операций способа для процессов кодирования трехмерных данных, выполняемых посредством устройства 400 кодирования трехмерных данных.
[0178] Устройство 400 кодирования трехмерных данных, показанное на фиг. 16, кодирует входные трехмерные данные 411, за счет этого формируя кодированные трехмерные данные 413 и кодированные трехмерные данные 414, каждые из которых представляют собой кодированный поток. Здесь, кодированные трехмерные данные 413 представляют собой кодированные трехмерные данные, соответствующие WLD, и кодированные трехмерные данные 414 представляют собой кодированные трехмерные данные, соответствующие SWLD. Такое устройство 400 кодирования трехмерных данных включает в себя модуль 401 получения, модуль 402 определения областей кодирования, SWLD-модуль 403 извлечения, WLD-кодер 404 и SWLD-кодер 405.
[0179] Во-первых, как показывает фиг. 17, модуль 401 получения получает входные трехмерные данные 411, которые представляют собой данные точечных групп в трехмерном пространстве (S401).
[0180] Затем, модуль 402 определения областей кодирования определяет текущую пространственную область для кодирования на основе пространственной области, в которой данные облаков точек присутствуют (S402).
[0181] Затем, SWLD-модуль 403 извлечения задает текущую пространственную область в качестве WLD и вычисляет признак из каждого VXL, включенного в WLD. Затем SWLD-модуль 403 извлечения извлекает VXL, имеющие количество признаков, большее или равное предварительно определенному пороговому значению, задает извлеченные VXL в качестве FVXL и добавляет такие FVXL в SWLD, за счет этого формируя извлеченные трехмерные данные 412 (S403). Другими словами, извлеченные трехмерные данные 412, имеющие количество признаков, большее или равное пороговому значению, извлекаются из входных трехмерных данных 411.
[0182] Затем, WLD-кодер 404 кодирует входные трехмерные данные 411, соответствующие WLD, за счет этого формируя кодированные трехмерные данные 413, соответствующие WLD (S404). Таким образом, WLD-кодер 404 добавляет в заголовок кодированных трехмерных данных 413 информацию, которая отличает то, что такие кодированные трехмерные данные 413 представляют собой поток, включающий в себя WLD.
[0183] SWLD-кодер 405 кодирует извлеченные трехмерные данные 412, соответствующие SWLD, за счет этого формируя кодированные трехмерные данные 414, соответствующие SWLD (S405). Таким образом, SWLD-кодер 405 добавляет в заголовок кодированных трехмерных данных 414 информацию, которая отличает то, что такие кодированные трехмерные данные 414 представляют собой поток, включающий в себя SWLD.
[0184] Следует отметить, что процесс формирования кодированных трехмерных данных 413 и процесс формирования кодированных трехмерных данных 414 могут выполняться в обратном порядке. Также следует отметить, что часть или все эти процессы могут выполняться параллельно.
[0185] Параметр "world_type" задается, например, в качестве информации, добавляемой в каждый заголовок кодированных трехмерных данных 413 и кодированных трехмерных данных 414; world_type=0 указывает то, что поток включает в себя WLD, и world_type=1 указывает то, что поток включает в себя SWLD. Увеличенное число значений может дополнительно назначаться, чтобы задавать большее число типов, например, world_type=2. Кроме того, одни из кодированных трехмерных данных 413 и кодированных трехмерных данных 414 могут включать в себя указанный флаг. Например, кодированным трехмерным данным 414 может назначаться флаг, указывающий то, что такой поток включает в себя SWLD. В таком случае, устройство декодирования может отличать то, представляет такой поток собой поток, включающий в себя WLD, или поток, включающий в себя SWLD, в соответствии с присутствием/отсутствием флага.
[0186] Кроме того, способ кодирования, используемый посредством WLD-кодера 404 для того, чтобы кодировать WLD, может отличаться от способа кодирования, используемого посредством SWLD-кодера 405 для того, чтобы кодировать SWLD.
[0187] Например, данные SWLD прореживаются и в силу этого могут иметь более низкую корреляцию с данными окружения, чем корреляция WLD. По этой причине, из внутреннего прогнозирования и взаимного прогнозирования, взаимное прогнозирование может более предпочтительно выполняться в способе кодирования, используемом для SWLD, чем в способе кодирования, используемом для WLD.
[0188] Кроме того, способ кодирования, используемый для SWLD, и способ кодирования, используемый для WLD, могут представлять трехмерные позиции по-разному. Например, трехмерные координаты могут использоваться для того, чтобы представлять трехмерные позиции FVXL в SWLD, и дерево октантов, описанное ниже, может использоваться для того, чтобы представлять трехмерные позиции в WLD, и наоборот.
[0189] Кроме того, SWLD-кодер 405 выполняет кодирование таким способом, что кодированные трехмерные данные 414 SWLD имеют меньший размер данных, чем размер данных для кодированных трехмерных данных 413 WLD. SWLD может иметь более низкую корреляцию между данными, например, чем корреляция для WLD, как описано выше. Это может приводить к сниженной эффективности кодирования и в силу этого к кодированным трехмерным данным 414, имеющим больший размер данных, чем размер данных для кодированных трехмерных данных 413 WLD. Когда размер данных для результирующих кодированных трехмерных данных 414 превышает размер данных для кодированных трехмерных данных 413 WLD, SWLD-кодер 405 выполняет кодирование снова, чтобы повторно формировать кодированные трехмерные данные 414, имеющие уменьшенный размер данных.
[0190] Например, SWLD-модуль 403 извлечения повторно формирует извлеченные трехмерные данные 412, имеющие сокращенное число ключевых точек, которые должны извлекаться, и SWLD-кодер 405 кодирует такие извлеченные трехмерные данные 412. Альтернативно, SWLD-кодер 405 может выполнять более приблизительное квантование. Более приблизительное квантование достигается, например, посредством округления данных на самом нижнем уровне в структуре в виде дерева октантов, описанной ниже.
[0191] При провале попытки снижать размер данных для кодированных трехмерных данных 414 SWLD до меньше размера данных для кодированных трехмерных данных 413 WLD, SWLD-кодер 405 может не формировать кодированные трехмерные данные 414 SWLD. Альтернативно, кодированные трехмерные данные 413 WLD могут копироваться в качестве кодированных трехмерных данных 414 SWLD. Другими словами, кодированные трехмерные данные 413 WLD могут использоваться как есть в качестве кодированных трехмерных данных 414 SWLD.
[0192] Далее описываются структура и последовательность операций устройства декодирования трехмерных данных (например, клиента) согласно настоящему варианту осуществления. Фиг. 18 является блок-схемой устройства 500 декодирования трехмерных данных согласно настоящему варианту осуществления. Фиг. 19 является блок-схемой последовательности операций способа для процессов декодирования трехмерных данных, выполняемых посредством устройства 500 декодирования трехмерных данных.
[0193] Устройство 500 декодирования трехмерных данных, показанное на фиг. 18, декодирует кодированные трехмерные данные 511, за счет этого формируя декодированные трехмерные данные 512 или декодированные трехмерные данные 513. Кодированные трехмерные данные 511 здесь, например, представляют собой кодированные трехмерные данные 413 или кодированные трехмерные данные 414, сформированные посредством устройства 400 кодирования трехмерных данных.
[0194] Такое устройство 500 декодирования трехмерных данных включает в себя модуль 501 получения, анализатор 502 заголовков, WLD-декодер 503 и SWLD-декодер 504.
[0195] Во-первых, как показывает фиг. 19, модуль 501 получения получает кодированные трехмерные данные 511 (S501). Затем, анализатор 502 заголовков анализирует заголовок кодированных трехмерных данных 511, чтобы идентифицировать то, представляют кодированные трехмерные данные 511 собой поток, включающий в себя WLD, или поток, включающий в себя SWLD (S502). Например, на вышеописанный параметр world_type ссылаются при выполнении такой идентификации.
[0196] Когда кодированные трехмерные данные 511 представляют собой поток, включающий в себя WLD ("Да" на S503), WLD-декодер 503 декодирует кодированные трехмерные данные 511, за счет этого формируя декодированные трехмерные данные 512 WLD (S504). Между тем, когда кодированные трехмерные данные 511 представляют собой поток, включающий в себя SWLD ("Нет" на S503), SWLD-декодер 504 декодирует кодированные трехмерные данные 511, за счет этого формируя декодированные трехмерные данные 513 SWLD (S505).
[0197] Кроме того, как и в случае устройства кодирования, способ декодирования, используемый посредством WLD-декодера 503 для того, чтобы декодировать WLD, может отличаться от способа декодирования, используемого посредством SWLD-декодера 504 для того, чтобы декодировать SWLD. Например, из внутреннего прогнозирования и взаимного прогнозирования, взаимное прогнозирование может более предпочтительно выполняться в способе декодирования, используемом для SWLD, чем в способе декодирования, используемом для WLD.
[0198] Кроме того, способ декодирования, используемый для SWLD, и способ декодирования, используемый для WLD, могут представлять трехмерные позиции по-разному. Например, трехмерные координаты могут использоваться для того, чтобы представлять трехмерные позиции FVXL в SWLD, и дерево октантов, описанное ниже, может использоваться для того, чтобы представлять трехмерные позиции в WLD, и наоборот.
[0199] Далее описывается представление в виде дерева октантов, которое представляет собой способ представления трехмерных позиций. VXL-данные, включенные в трехмерных данных, преобразуются в структуру в виде дерева октантов перед кодированием. Фиг. 20 является схемой, показывающей примерные VXL в WLD. Фиг. 21 является схемой, показывающей структуру в виде дерева октантов WLD, показанного на фиг. 20. Пример, показанный на фиг. 20, иллюстрирует три VXL 1-3, которые включают в себя точечные группы (далее называются "эффективными VXL"). Как показывает фиг. 21, структура в виде дерева октантов задается из узлов и листьев. Каждый узел имеет максимум восемь узлов или листьев. Каждый лист имеет VXL-информацию. Здесь, из листьев, показанных на фиг. 21, лист 1, лист 2 и лист 3 представляют VXL1, VXL2 и VXL3, показанные на фиг. 20, соответственно.
[0200] Более конкретно, каждый узел и каждый лист соответствуют трехмерной позиции. Узел 1 соответствует всему блоку, показанному на фиг. 20. Блок, который соответствует узлу 1, разделяется на восемь блоков. Из этих восьми блоков, блоки, включающие в себя эффективные VXL, задаются в качестве узлов, в то время как другие блоки задаются в качестве листьев. Каждый блок, который соответствует узлу, дополнительно разделяется на восемь узлов или листьев. Эти процессы повторяются число раз, которое равно числу уровней в структуре в виде дерева октантов. Все блоки на самом нижнем уровне задаются в качестве листьев.
[0201] Фиг. 22 является схемой, показывающей примерный SWLD, сформированный из WLD, показанного на фиг. 20. Проводится оценка VXL1 и VXL2, показанных на фиг. 20, в качестве FVXL1 и FVXL2 как результат извлечения признаков, и в силу этого они добавляются в SWLD. Между тем, не проводится оценка VXL3 в качестве FVXL, и в силу этого он не добавляется в SWLD. Фиг. 23 является схемой, показывающей структуру в виде дерева октантов SWLD, показанного на фиг. 22. В структуре в виде дерева октантов, показанной на фиг. 23, лист 3, соответствующий VXL3, показанному на фиг. 21, удаляется. Следовательно, узел 3, показанный на фиг. 21, теряет эффективный VXL и изменяется на лист. Как описано выше, SWLD имеет меньшее число листьев, в общем, чем WLD, и в силу этого кодированные трехмерные данные SWLD меньше кодированных трехмерных данных WLD.
[0202] Далее описываются варьирования настоящего варианта осуществления.
[0203] Для оценки собственного местоположения, например, клиент, представляющий собой установленное в транспортном средстве устройство и т.д., может принимать SWLD из сервера, чтобы использовать такой SWLD для того, чтобы оценивать собственное местоположение. Между тем, для обнаружения помех, клиент может обнаруживать помехи посредством использования трехмерной информации относительно периферии, полученной посредством такого клиента через различные средства, включающие в себя датчик расстояния, такой как дальномер, а также стереокамеру и комбинацию множества монокулярных камер.
[0204] В общем, SWLD с меньшей вероятностью должен включать VXL-данные относительно плоской области. В связи с этим, сервер может хранить мир подвыборок (subWLD), полученный посредством субдискретизации WLD для обнаружения статических помех, и отправлять в клиент SWLD и subWLD. Это позволяет клиенту выполнять оценку собственного местоположения и обнаружение помех на стороне клиента, при уменьшении полосы пропускания сети.
[0205] Когда клиент подготавливает посредством рендеринга трехмерные картографические данные на высокой скорости, картографическая информация, имеющая ячеистую структуру, является более полезной в некоторых случаях. В связи с этим, сервер может формировать ячеистую сеть из WLD, с тем чтобы хранить его заранее в качестве ячеистого мира (MWLD). Например, при желании выполнять приблизительный трехмерный рендеринг, клиент принимает MWLD, а при желании выполнять детализированный трехмерный рендеринг, клиент принимает WLD. Это уменьшает полосу пропускания сети.
[0206] В вышеприведенном описании, сервер задает, в качестве FVXL, VXL, имеющие количество признаков, большее или равное пороговому значению, но сервер может вычислять FVXL посредством другого способа. Например, сервер может проводить оценку того, что VXL, VLM, SPC или GOS, которая составляет светофор или перекресток и т.д., необходимы для оценки собственного местоположения, помощи при вождении или беспилотного вождения и т.д. и включает такую VXL, VLM, SPC или GOS в SWLD в качестве FVXL, FVLM, FSPC или FGOS. Такое проведение оценки может быть осуществляться вручную. Кроме того, FVXL и т.д., которые заданы на основе количества признаков, могут добавляться в FVXL и т.д., полученные посредством вышеописанного способа. Другими словами, SWLD-модуль 403 извлечения дополнительно может извлекать, из входных трехмерных данных 411, данные, соответствующие объекту, имеющему предварительно определенный атрибут, в качестве извлеченных трехмерных данных 412.
[0207] Кроме того, то, что VXL, VLM, SPC или GOS необходимы для такого намеченного использования, может помечаться отдельно от признаков. Сервер может отдельно хранить, в качестве верхнего слоя SWLD (например, мира полос движения), FVXL светофора или перекрестка и т.д., необходимого для оценки собственного местоположения, помощи при вождении или беспилотного вождения и т.д.
[0208] Сервер также может добавлять атрибут в VXL в WLD на основе произвольного доступа или на основе предварительно определенной единицы. Атрибут, например, включает в себя информацию, указывающую то, необходимы или нет VXL для оценки собственного местоположения, либо информацию, указывающую то, являются или нет VXL важными в качестве информации трафика, такой как светофор или перекресток и т.д. Атрибут также может включать соответствие между VXL и признаками (перекресток или дорога и т.д.) в информацию полос движения (в файлы географических данных (GDF) и т.д.).
[0209] Способ, как описано ниже, может использоваться для того, чтобы обновлять WLD или SWLD.
[0210] Информация обновления, указывающая изменения и т.д. касательно человека, дорожных работ или древовидной линии (для грузовиков), выгружается на сервер в качестве точечных групп или метаданных. Сервер обновляет WLD на основе такой загруженной информации и затем обновляет SWLD посредством использования обновленного WLD.
[0211] Клиент, при обнаружении рассогласования между трехмерной информацией, которую такой клиент формирует во время оценки собственного местоположения, и трехмерной информацией, принимаемой из сервера, может отправлять на сервер трехмерную информацию, которую такой клиент формирует, вместе с уведомлением касательно обновления. В таком случае, сервер обновляет SWLD посредством использования WLD. Когда SWLD не должен обновляться, сервер проводит такую оценку, что непосредственно WLD является устаревшим.
[0212] В вышеприведенном описании, информация, которая отличает то, представляет кодированный поток собой кодированный поток WLD или SWLD, добавляется в качестве информации заголовка кодированного потока. Тем не менее, когда предусмотрено множество типов миров, таких как ячеистый мир и мир полос движения, информация, которая отличает эти типы миров, может добавляться в информацию заголовка. Кроме того, когда имеются множество SWLD с различными количествами признаков, информация, которая отличает соответствующие SWLD, может добавляться в информацию заголовка.
[0213] В вышеприведенном описании, SWLD состоит из FVXL, но SWLD может включать в себя VXL, для которых не проведена оценка в качестве FVXL. Например, SWLD может включать в себя смежный VXL, используемый для того, чтобы вычислять признак FVXL. Это позволяет клиенту вычислять признак FVXL при приеме SWLD, даже в случае, если информация признаков не добавляется в каждый FVXL SWLD. В таком случае, SWLD может включать в себя информацию, которая отличает то, представляет каждый VXL собой FVXL или VXL.
[0214] Как описано выше, устройство 400 кодирования трехмерных данных извлекает, из входных трехмерных данных 411 (первых трехмерных данных), извлеченные трехмерные данные 412 (вторые трехмерные данные), имеющие количество признаков, большее или равное пороговому значению, и кодирует извлеченные трехмерные данные 412, чтобы формировать кодированные трехмерные данные 414 (первые кодированные трехмерные данные).
[0215] Это устройство 400 кодирования трехмерных данных формирует кодированные трехмерные данные 414, которые получаются посредством кодирования данных, имеющих количество признаков, большее или равное пороговому значению. Это уменьшает объем данных по сравнению со случаем, в котором входные трехмерные данные 411 кодируются как есть. Устройство 400 кодирования трехмерных данных за счет этого допускает уменьшение объема данных, которые должны передаваться.
[0216] Устройство 400 кодирования трехмерных данных дополнительно кодирует входные трехмерные данные 411, чтобы формировать кодированные трехмерные данные 413 (вторые кодированные трехмерные данные).
[0217] Это устройство 400 кодирования трехмерных данных обеспечивает избирательную передачу кодированных трехмерных данных 413 и кодированных трехмерных данных 414, в соответствии, например, с надлежащим использованием и т.д.
[0218] Кроме того, извлеченные трехмерные данные 412 кодируются посредством первого способа кодирования, и входные трехмерные данные 411 кодируются посредством второго способа кодирования, отличающегося от первого способа кодирования.
[0219] Это устройство 400 кодирования трехмерных данных обеспечивает использование способа кодирования, подходящего для каждых из входных трехмерных данных 411 и извлеченных трехмерных данных 412.
[0220] Кроме того, из внутреннего прогнозирования и взаимного прогнозирования, взаимное прогнозирование более предпочтительно выполняется в первом способе кодирования, чем во втором способе кодирования.
[0221] Это устройство 400 кодирования трехмерных данных обеспечивает возможность более предпочтительного выполнения взаимного прогнозирования для извлеченных трехмерных данных 412, в которых смежные элементы данных с большой вероятностью имеют низкую корреляцию.
[0222] Кроме того, первый способ кодирования и второй способ кодирования представляют трехмерные позиции по-разному. Например, второй способ кодирования представляет трехмерные позиции посредством дерева октантов, и первый способ кодирования представляет трехмерные позиции посредством трехмерных координат.
[0223] Это устройство 400 кодирования трехмерных данных обеспечивает возможность использования более подходящего способа для того, чтобы представлять трехмерные позиции трехмерных данных с учетом разности числа включенных элементов данных (числа VXL или FVXL).
[0224] Кроме того, по меньшей мере, одни из кодированных трехмерных данных 413 и кодированных трехмерных данных 414 включают в себя идентификатор, указывающий то, представляют кодированные трехмерные данные собой кодированные трехмерные данные, полученные посредством кодирования входных трехмерных данных 411, или кодированные трехмерные данные, полученные посредством кодирования части входных трехмерных данных 411. Другими словами, такой идентификатор указывает то, представляют кодированные трехмерные данные собой кодированные трехмерные данные 413 WLD или кодированные трехмерные данные 414 SWLD.
[0225] Это обеспечивает возможность устройству декодирования легко проводить оценку в отношении того, представляют полученные кодированные трехмерные данные собой кодированные трехмерные данные 413 или кодированные трехмерные данные 414.
[0226] Кроме того, устройство 400 кодирования трехмерных данных кодирует извлеченные трехмерные данные 412 таким способом, что кодированные трехмерные данные 414 имеют меньший объем данных, чем объем данных для кодированных трехмерных данных 413.
[0227] Это устройство 400 кодирования трехмерных данных обеспечивает возможность кодированным трехмерным данным 414 иметь меньший объем данных, чем объем данных для кодированных трехмерных данных 413.
[0228] Кроме того, устройство 400 кодирования трехмерных данных дополнительно извлекает данные, соответствующие объекту, имеющему предварительно определенный атрибут, из входных трехмерных данных 411 в качестве извлеченных трехмерных данных 412. Объект, имеющий предварительно определенный атрибут, например, представляет собой объект, необходимый для оценки собственного местоположения, помощи при вождении или беспилотного вождения и т.д., либо более конкретно, светофор, перекресток и т.д.
[0229] Это устройство 400 кодирования трехмерных данных допускает формирование кодированных трехмерных данных 414, которые включают в себя данные, требуемые посредством устройства декодирования.
[0230] Кроме того, устройство 400 кодирования трехмерных данных (сервер) дополнительно отправляет, в клиент, одни из кодированных трехмерных данных 413 и кодированных трехмерных данных 414 в соответствии с состоянием клиента.
[0231] Это устройство 400 кодирования трехмерных данных допускает отправку соответствующих данных в соответствии с состоянием клиента.
[0232] Кроме того, состояние клиента включает в себя одно из состояния связи (например, полосы пропускания сети) клиента и скорости движения клиента.
[0233] Кроме того, устройство 400 кодирования трехмерных данных дополнительно отправляет, в клиент, одни из кодированных трехмерных данных 413 и кодированных трехмерных данных 414 в соответствии с запросом от клиента.
[0234] Это устройство 400 кодирования трехмерных данных допускает отправку соответствующих данных в соответствии с запросом от клиента.
[0235] Кроме того, устройство 500 декодирования трехмерных данных согласно настоящему варианту осуществления декодирует кодированные трехмерные данные 413 или кодированные трехмерные данные 414, сформированные посредством устройства 400 кодирования трехмерных данных, описанного выше.
[0236] Другими словами, устройство 500 декодирования трехмерных данных декодирует, посредством первого способа декодирования, кодированные трехмерные данные 414, полученные посредством кодирования извлеченных трехмерных данных 412, имеющих количество признаков, большее или равное пороговому значению, причем извлеченные трехмерные данные 412 извлекаются из входных трехмерных данных 411. Устройство 500 декодирования трехмерных данных также декодирует, посредством второго способа декодирования, кодированные трехмерные данные 413, полученные посредством кодирования входных трехмерных данных 411, причем второй способ декодирования отличается от первого способа декодирования.
[0237] Это устройство 500 декодирования трехмерных данных обеспечивает избирательный прием кодированных трехмерных данных 414, полученных посредством кодирования данных, имеющих количество признаков, большее или равное пороговому значению, и кодированных трехмерных данных 413, в соответствии, например, с надлежащим использованием и т.д. Устройство 500 декодирования трехмерных данных за счет этого допускает уменьшение объема данных, которые должны передаваться. Такое устройство 500 декодирования трехмерных данных дополнительно обеспечивает использование способа декодирования, подходящего для каждых из входных трехмерных данных 411 и извлеченных трехмерных данных 412.
[0238] Кроме того, из внутреннего прогнозирования и взаимного прогнозирования, взаимное прогнозирование более предпочтительно выполняется в первом способе декодирования, чем во втором способе декодирования.
[0239] Это устройство 500 декодирования трехмерных данных обеспечивает возможность более предпочтительного выполнения взаимного прогнозирования для извлеченных трехмерных данных, в которых смежные элементы данных с большой вероятностью имеют низкую корреляцию.
[0240] Кроме того, первый способ декодирования и второй способ декодирования представляют трехмерные позиции по-разному. Например, второй способ декодирования представляет трехмерные позиции посредством дерева октантов, и первый способ декодирования представляет трехмерные позиции посредством трехмерных координат.
[0241] Это устройство 500 декодирования трехмерных данных обеспечивает возможность использования более подходящего способа для того, чтобы представлять трехмерные позиции трехмерных данных с учетом разности числа включенных элементов данных (числа VXL или FVXL).
[0242] Кроме того, по меньшей мере, одни из кодированных трехмерных данных 413 и кодированных трехмерных данных 414 включают в себя идентификатор, указывающий то, представляют кодированные трехмерные данные собой кодированные трехмерные данные, полученные посредством кодирования входных трехмерных данных 411, или кодированные трехмерные данные, полученные посредством кодирования части входных трехмерных данных 411. Устройство 500 декодирования трехмерных данных ссылается на такой идентификатор при идентификации между кодированными трехмерными данными 413 и кодированными трехмерными данными 414.
[0243] Это устройство 500 декодирования трехмерных данных допускает простое проведение оценки в отношении того, представляют полученные кодированные трехмерные данные собой кодированные трехмерные данные 413 или кодированные трехмерные данные 414.
[0244] Устройство 500 декодирования трехмерных данных дополнительно уведомляет сервер в отношении состояния клиента (устройства 500 декодирования трехмерных данных). Устройство 500 декодирования трехмерных данных принимает одни из кодированных трехмерных данных 413 и кодированных трехмерных данных 414 из сервера, в соответствии с состоянием клиента.
[0245] Это устройство 500 декодирования трехмерных данных допускает прием соответствующих данных в соответствии с состоянием клиента.
[0246] Кроме того, состояние клиента включает в себя одно из состояния связи (например, полосы пропускания сети) клиента и скорости движения клиента.
[0247] Устройство 500 декодирования трехмерных данных дополнительно выполняет запрос сервера на предмет одних из кодированных трехмерных данных 413 и кодированных трехмерных данных 414 и принимает одни из кодированных трехмерных данных 413 и кодированных трехмерных данных 414 из сервера, в соответствии с запросом.
[0248] Это устройство 500 декодирования трехмерных данных допускает прием соответствующих данных в соответствии с надлежащим использованием.
[0249] Вариант 3 осуществления
Настоящий вариант осуществления описывает способ передачи/приема трехмерных данных между транспортными средствами. Например, трехмерные данные передаются/принимаются между рассматриваемым транспортным средством и близлежащим транспортным средством.
[0250] Фиг. 24 является блок-схемой устройства 620 создания трехмерных данных согласно настоящему варианту осуществления. Такое устройство 620 создания трехмерных данных, которое включается, например, в рассматриваемое транспортное средство, объединяет первые трехмерные данные 632, созданные посредством устройства 620 создания трехмерных данных, с принимаемыми вторыми трехмерными данными 635, за счет этого создавая третьи трехмерные данные 636, имеющие более высокую плотность.
[0251] Такое устройство 620 создания трехмерных данных включает в себя модуль 621 создания трехмерных данных, модуль 622 определения диапазонов запросов, модуль 623 поиска, приемное устройство 624, декодер 625 и модуль 626 объединения.
[0252] Во-первых, модуль 621 создания трехмерных данных создает первые трехмерные данные 632 посредством использования информации 631 датчиков, обнаруженной посредством датчика, включенного в рассматриваемое транспортное средство. Затем, модуль 622 определения диапазонов запросов определяет диапазон запросов, который представляет собой диапазон трехмерного пространства, данных по которому недостаточно в созданных первых трехмерных данных 632.
[0253] Затем, модуль 623 поиска выполняет поиск близлежащего транспортного средства, имеющего трехмерные данные диапазона запросов, и отправляет информацию 633 диапазона запросов, указывающую диапазон запросов, в найденное близлежащее транспортное средство 601 (S623). Затем, приемное устройство 624 принимает кодированные трехмерные данные 634, которые представляют собой кодированный поток диапазона запросов, из близлежащего транспортного средства 601 (S624). Следует отметить, что модуль 623 поиска может без различия отправлять запросы во все транспортные средства, включенные в указанный диапазон, чтобы принимать кодированные трехмерные данные 634 из транспортного средства, которое отвечает на запрос. Модуль 623 поиска может отправлять запрос не только в транспортные средства, но также и в объект, такой как светофор и дорожный знак, и принимать кодированные трехмерные данные 634 из объекта.
[0254] Затем, декодер 625 декодирует принимаемые кодированные трехмерные данные 634, за счет этого получая вторые трехмерные данные 635. Затем, модуль 626 объединения объединяет первые трехмерные данные 632 со вторыми трехмерными данными 635, за счет этого создавая трехмерные данные 636, имеющие более высокую плотность.
[0255] Далее описываются структура и операции устройства 640 передачи трехмерных данных согласно настоящему варианту осуществления. Фиг. 25 является блок-схемой устройства 640 передачи трехмерных данных.
[0256] Устройство 640 передачи трехмерных данных включается, например, в вышеописанное близлежащее транспортное средство. Устройство 640 передачи трехмерных данных обрабатывает пятые трехмерные данные 652, созданные посредством близлежащего транспортного средства, в шестые трехмерные данные 654, запрашиваемые посредством рассматриваемого транспортного средства, кодирует шестые трехмерные данные 654, чтобы формировать кодированные трехмерные данные 634, и отправляет кодированные трехмерные данные 634 в рассматриваемое транспортное средство.
[0257] Устройство 640 передачи трехмерных данных включает в себя модуль 641 создания трехмерных данных, приемное устройство 642, модуль 643 извлечения, кодер 644 и передающее устройство 645.
[0258] Во-первых, модуль 641 создания трехмерных данных создает пятые трехмерные данные 652 посредством использования информации 651 датчиков, обнаруженной посредством датчика, включенного в близлежащее транспортное средство. Затем, приемное устройство 642 принимает информацию 633 диапазона запросов из рассматриваемого транспортного средства.
[0259] Затем, модуль 643 извлечения извлекает из пятых трехмерных данных 652 трехмерные данные диапазона запросов, указываемого посредством информации 633 диапазона запросов, за счет этого обрабатывая пятые трехмерные данные 652 в шестые трехмерные данные 654. Затем, кодер 644 кодирует шестые трехмерные данные 654, чтобы формировать кодированные трехмерные данные 643, которые представляют собой кодированный поток. После этого передающее устройство 645 отправляет кодированные трехмерные данные 634 в рассматриваемое транспортное средство.
[0260] Следует отметить, что хотя здесь описывается примерный случай, в котором рассматриваемое транспортное средство включает в себя устройство 620 создания трехмерных данных, и близлежащее транспортное средство включает в себя устройство 640 передачи трехмерных данных, каждое из транспортных средств может включать в себя функциональность как устройства 620 создания трехмерных данных, так и устройства 640 передачи трехмерных данных.
[0261] Вариант 4 осуществления
Настоящий вариант осуществления описывает операции, выполняемые в анормальных случаях, когда оценка собственного местоположения выполняется на основе трехмерной карты.
[0262] Трехмерная карта предположительно должна находить свое широкое применение в беспилотном вождении транспортного средства и автономном перемещении и т.д. мобильного объекта, такого как робот и летающий объект (например, беспилотный аппарат). Примерное средство для обеспечения возможности такого автономного перемещения включает в себя способ, в котором мобильный объект движется в соответствии с трехмерной картой при оценке собственного местоположения на карте (оценке собственного местоположения).
[0263] Оценка собственного местоположения обеспечивается посредством сопоставления трехмерной карты с трехмерной информацией относительно окрестности рассматриваемого транспортного средства (в дальнейшем называемой "самообнаруженными трехмерными данными"), полученной посредством датчика, оснащенного в рассматриваемом транспортном средстве, такого как дальномер (например, лидар) и стереокамера, чтобы оценивать местоположение рассматриваемого транспортного средства на трехмерной карте.
[0264] Как и в случае HD-карты, предлагаемой компанией HERE Technologies, например, трехмерная карта может включать в себя не только облако трехмерных точек, но также и двумерные картографические данные, такие как информация относительно форм дорог и перекрестков, или информацию, которая изменяется в реальном времени, такую как информация относительно затора трафика и аварий. Трехмерная карта включает в себя множество слоев, к примеру, слои трехмерных данных, двумерных данных и метаданных, которые изменяются в реальном времени, из числа которых устройство может получать или ссылаться только на необходимые данные.
[0265] Данные облаков точек могут представлять собой SWLD, как описано выше, или могут включать в себя данные точечных групп, которые отличаются от ключевых точек. Передача/прием данных облаков точек, по существу, выполняется в одной или более единиц произвольного доступа.
[0266] Способ, описанный ниже, используется в качестве способа сопоставления трехмерной карты с самообнаруженными трехмерными данными. Например, устройство сравнивает формы точечных групп в облаках точек друг друга и определяет то, что части, имеющие высокую степень подобия между ключевыми точками, соответствуют идентичной позиции. Когда трехмерная карта формируется посредством SWLD, устройство также выполняет сопоставление посредством сравнения ключевых точек, которые формируют SWLD, с трехмерными ключевыми точками, извлеченными из самообнаруженных трехмерных данных.
[0267] Здесь, чтобы обеспечивать высокоточную оценку собственного местоположения, должны удовлетворяться следующие потребности: (A) трехмерная карта и самообнаруженные трехмерные данные уже получены; и (B) их точности удовлетворяют предварительно определенному требованию. Тем не менее, один из (A) и (B) не может удовлетворяться в анормальных случаях, таких как случаи, описанные ниже.
[0268] 1. Трехмерная карта является недоступной для получения по связи.
[0269] 2. Трехмерная карта не присутствует, или полученная трехмерная карта повреждена.
[0270] 3. Датчик рассматриваемого транспортного средства является проблемным, или точность сформированных самообнаруженных трехмерных данных является недостаточной вследствие плохой погоды.
[0271] Далее описываются операции для того, чтобы преодолевать такие анормальные случаи. Нижеприведенное описание иллюстрирует примерный случай транспортного средства, но способ, описанный ниже, является применимым к мобильным объектам в целом, которые допускают автономное перемещение, таким как робот и беспилотный аппарат.
[0272] Далее описывается структура устройства обработки трехмерной информации и его операция согласно настоящему варианту осуществления, допускающему преодоление анормальных случаев относительно трехмерной карты или самообнаруженных трехмерных данных. Фиг. 26 является блок-схемой примерной структуры устройства 700 обработки трехмерной информации согласно настоящему варианту осуществления.
[0273] Устройство 700 обработки трехмерной информации оснащается, например, в мобильном объекте, таком как автомобиль. Как показано на фиг. 26, устройство 700 обработки трехмерной информации включает в себя модуль 701 получения трехмерных карт, модуль 702 получения самообнаруженных данных, модуль 703 проведения оценки анормальных случаев, модуль 704 определения операций преодоления и функциональный контроллер 705.
[0274] Следует отметить, что устройство 700 обработки трехмерной информации может включать в себя непроиллюстрированный двумерный или одномерный датчик, который обнаруживает структурный объект или мобильный объект около рассматриваемого транспортного средства, такой как камера, допускающая получение двумерных изображений, и датчик для одномерных данных с использованием ультразвука или лазера. Устройство 700 обработки трехмерной информации также может включать в себя непроиллюстрированный модуль связи, который получает трехмерную карту по сети мобильной связи, к примеру, по 4G и 5G, либо через связь между транспортными средствами или связь между транспортным средством и дорожной инфраструктурой.
[0275] Модуль 701 получения трехмерных карт получает трехмерную карту 711 окрестности маршрута движения. Например, модуль 701 получения трехмерных карт получает трехмерную карту 711 по сети мобильной связи либо через связь между транспортными средствами или связь между транспортным средством и дорожной инфраструктурой.
[0276] Затем, модуль 702 получения самообнаруженных данных получает самообнаруженные трехмерные данные 712 на основе информации датчиков. Например, модуль 702 получения самообнаруженных данных формирует самообнаруженные трехмерные данные 712 на основе информации датчиков, полученной посредством датчика, оснащенного в рассматриваемом транспортном средстве.
[0277] Затем, модуль 703 проведения оценки анормальных случаев осуществляет предварительно определенную проверку, по меньшей мере, одного из полученной трехмерной карты 711 и самообнаруженных трехмерных данных 712, чтобы обнаруживать анормальный случай. Другими словами, модуль 703 проведения оценки анормальных случаев проводит оценку в отношении того, является или нет, по меньшей мере, одно из полученной трехмерной карты 711 и самообнаруженных трехмерных данных 712 анормальным.
[0278] Когда анормальный случай обнаруживается, модуль 704 определения операций преодоления определяет операцию преодоления, чтобы преодолевать такой анормальный случай. Затем, функциональный контроллер 705 управляет работой каждой из единиц обработки, необходимых для того, чтобы выполнять операцию преодоления.
[0279] Между тем, когда анормальный случай не обнаруживается, устройство 700 обработки трехмерной информации завершает процесс.
[0280] Кроме того, устройство 700 обработки трехмерной информации оценивает местоположение транспортного средства, оснащенного устройством 700 обработки трехмерной информации, с использованием трехмерной карты 711 и самообнаруженных трехмерных данных 712. Затем, устройство 700 обработки трехмерной информации выполняет автоматическую работу транспортного средства посредством использования оцененного местоположения транспортного средства.
[0281] Как описано выше, устройство 700 обработки трехмерной информации получает, через канал связи, картографические данные (трехмерную карту 711), которые включают в себя первую информацию трехмерной позиции. Первая информация трехмерной позиции включает в себя, например, множество единиц произвольных доступа, каждая из которых представляет собой сборку, по меньшей мере, одного подпространства и является отдельно декодируемой, причем, по меньшей мере, одно подпространство имеет информацию трехмерных координат и служит в качестве единицы, в которой каждая из множества единиц произвольного доступа кодируется. Первая информация трехмерной позиции, например, представляет собой данные (SWLD), полученные посредством кодирования ключевых точек, каждая из которых имеет количество трехмерных признаков, большее или равное предварительно определенному пороговому значению.
[0282] Устройство 700 обработки трехмерной информации также формирует вторую информацию трехмерной позиции (самообнаруженные трехмерные данные 712) из информации, обнаруженной посредством датчика. Устройство 700 обработки трехмерной информации затем проводит оценку в отношении того, является или нет одна из первой информации трехмерной позиции и второй информации трехмерной позиции анормальной, посредством выполнения, для одной из первой информации трехмерной позиции и второй информации трехмерной позиции, процесса проведения оценки того, присутствует или нет анормальность.
[0283] Устройство 700 обработки трехмерной информации определяет операцию преодоления, чтобы преодолевать анормальность, когда проводится оценка одной из первой информации трехмерной позиции и второй информации трехмерной позиции как анормальной. Устройство 700 обработки трехмерной информации затем выполняет управление, которое требуется для того, чтобы выполнять операцию преодоления.
[0284] Эта структура обеспечивает возможность устройству 700 обработки трехмерной информации обнаруживать анормальность относительно одной из первой информации трехмерной позиции и второй информации трехмерной позиции и выполнять операцию преодоления для этого.
[0285] Вариант 5 осуществления
Настоящий вариант осуществления описывает способ и т.д. передачи трехмерных данных в едущее сзади транспортное средство.
[0286] Фиг. 27 является блок-схемой примерной структуры устройства 810 создания трехмерных данных согласно настоящему варианту осуществления. Такое устройство 810 создания трехмерных данных оснащается, например, в транспортном средстве. Устройство 810 создания трехмерных данных передает и принимает трехмерные данные в/из внешней облачной системы мониторинга трафика, едущего впереди транспортного средства или едущего сзади транспортного средства и создает и сохраняет трехмерные данные.
[0287] Устройство 810 создания трехмерных данных включает в себя приемное устройство 811 данных, модуль 812 связи, контроллер 813 приема, преобразователь 814 форматов, множество датчиков 815, модуль 816 создания трехмерных данных, синтезатор 817 трехмерных данных, устройство 818 хранения трехмерных данных, модуль 819 связи, контроллер 820 передачи, преобразователь 821 форматов и передающее устройство 822 данных.
[0288] Приемное устройство 811 данных принимает трехмерные данные 831 из облачной системы мониторинга трафика или едущего впереди транспортного средства. Трехмерные данные 831 включают в себя, например, информацию относительно области, необнаруживаемой посредством датчиков 815 рассматриваемого транспортного средства, такую как облако точек, видео в диапазоне видимого света, информация глубины, информация позиций датчиков и информация скорости.
[0289] Модуль 812 связи обменивается данными с облачной системой мониторинга трафика или едущим впереди транспортным средством, чтобы передавать запрос на передачу данных и т.д. в облачную систему мониторинга трафика или едущее впереди транспортное средство.
[0290] Контроллер 813 приема обменивается информацией, такой как информация относительно поддерживаемых форматов, с партнером по связи через модуль 812 связи, чтобы устанавливать связь с партнером по связи.
[0291] Преобразователь 814 форматов применяет преобразование формата и т.д. к трехмерным данным 831, принимаемым посредством приемного устройства 811 данных, чтобы формировать трехмерные данные 832. Преобразователь 814 форматов также распаковывает или декодирует трехмерные данные 831, когда трехмерные данные 831 сжимаются или кодируются.
[0292] Множество датчиков 815 представляет собой группу датчиков, таких как камеры для съемки в диапазоне видимого света и камеры для съемки в инфракрасном диапазоне, которые получают информацию за пределами транспортного средства и формируют информацию 833 датчиков. Информация 833 датчиков, например, представляет собой трехмерные данные, такие как облако точек (данные точечных групп), когда датчики 815 представляют собой лазерные датчики, такие как лидары. Следует отметить, что один датчик может служить в качестве множества датчиков 815.
[0293] Модуль 816 создания трехмерных данных формирует трехмерные данные 834 из информации 833 датчиков. Трехмерные данные 834 включают в себя, например, информацию, такую как облако точек, видео в диапазоне видимого света, информация глубины, информация позиций датчиков и информация скорости.
[0294] Синтезатор 817 трехмерных данных синтезирует трехмерные данные 834, созданные на основе информации 833 датчиков рассматриваемого транспортного средства, с трехмерными данными 832, созданными посредством облачной системы мониторинга трафика или едущего впереди транспортного средства и т.д., за счет этого формируя трехмерные данные 835 пространства, которое включает в себя пространство перед едущим впереди транспортным средством, необнаруживаемое посредством датчиков 815 рассматриваемого транспортного средства.
[0295] Устройство 818 хранения трехмерных данных сохраняет сформированные трехмерные данные 835 и т.д.
[0296] Модуль 819 связи обменивается данными с облачной системой мониторинга трафика или едущим сзади транспортным средством, чтобы передавать запрос на передачу данных и т.д. в облачную систему мониторинга трафика или едущее сзади транспортное средство.
[0297] Контроллер 820 передачи обменивается информацией, такой как информация относительно поддерживаемых форматов, с партнером по связи через модуль 819 связи, чтобы устанавливать связь с партнером по связи. Контроллер 820 передачи также определяет область передачи, которая представляет собой пространство трехмерных данных, которые должны передаваться, на основе информации формирования трехмерных данных относительно трехмерных данных 832, сформированных посредством синтезатора 817 трехмерных данных, и запроса на передачу данных из партнера по связи.
[0298] Более конкретно, контроллер 820 передачи определяет область передачи, которая включает в себя пространство перед рассматриваемым транспортным средством, необнаруживаемое посредством датчика едущего сзади транспортного средства, в ответ на запрос на передачу данных из облачной системы мониторинга трафика или едущего сзади транспортного средства. Контроллер 820 передачи, например, проводит оценку в отношении того, является или нет пространство допускающим передачу, или того, включает или нет уже передаваемое пространство в себя обновление, на основе информации формирования трехмерных данных, чтобы определять область передачи. Например, контроллер 820 передачи определяет, в качестве области передачи, область, которая представляет собой: область, указываемую посредством запроса на передачу данных; и область, соответствующие трехмерные данные 835 которой присутствуют. Контроллер 820 передачи затем уведомляет преобразователь 821 форматов в отношении формата, поддерживаемого посредством партнера по связи, и области передачи.
[0299] Из трехмерных данных 835, сохраненных в устройстве 818 хранения трехмерных данных, преобразователь 821 форматов преобразует трехмерные данные 836 области передачи в формат, поддерживаемый посредством конца приемного устройства, чтобы формировать трехмерные данные 837. Следует отметить, что преобразователь 821 форматов может сжимать или кодировать трехмерные данные 837, чтобы уменьшать объем данных.
[0300] Передающее устройство 822 данных передает трехмерные данные 837 в облачную систему мониторинга трафика или едущее сзади транспортное средство. Такие трехмерные данные 837 включают в себя, например, информацию относительно мертвой зоны, которая представляет собой область, скрытую из вида едущего сзади транспортного средства, такую как облако точек перед рассматриваемым транспортным средством, видео в диапазоне видимого света, информация глубины и информация позиций датчиков.
[0301] Следует отметить, что описан пример, в котором преобразователь 814 форматов и преобразователь 821 форматов выполняют преобразование формата и т.д., но преобразование формата может не выполняться.
[0302] При вышеприведенной структуре, устройство 810 создания трехмерных данных получает, из внешнего устройства, трехмерные данные 831 области, необнаруживаемой посредством датчиков 815 рассматриваемого транспортного средства, и синтезирует трехмерные данные 831 с трехмерными данными 834, которые основаны на информации 833 датчиков, обнаруженной посредством датчиков 815 рассматриваемого транспортного средства, за счет этого формируя трехмерные данные 835. Устройство 810 создания трехмерных данных за счет этого допускает формирование трехмерных данных диапазона, необнаруживаемого посредством датчиков 815 рассматриваемого транспортного средства.
[0303] Устройство 810 создания трехмерных данных также допускает передачу, в облачную систему мониторинга трафика или едущее сзади транспортное средство и т.д., трехмерных данных пространства, которое включает в себя пространство перед рассматриваемым транспортным средством, необнаруживаемое посредством датчика едущего сзади транспортного средства, в ответ на запрос на передачу данных из облачной системы мониторинга трафика или едущего сзади транспортного средства.
[0304] Вариант 6 осуществления
В варианте 5 осуществления, описывается пример, в котором клиентское устройство транспортного средства и т.п. передает трехмерные данные в другое транспортное средство или на сервер, к примеру, в облачную систему мониторинга трафика. В настоящем варианте осуществления, клиентское устройство передает информацию датчиков, полученную через датчик, на сервер или в клиентское устройство.
[0305] Сначала описывается структура системы согласно настоящему варианту осуществления. Фиг. 28 является схемой, показывающей структуру системы передачи/приема трехмерной карты и информации датчиков согласно настоящему варианту осуществления. Эта система включает в себя сервер 901 и клиентские устройства 902A и 902B. Следует отметить, что клиентские устройства 902A и 902B также называются "клиентским устройством 902", когда не проводится конкретное различение между ними.
[0306] Клиентское устройство 902, например, представляет собой установленное в транспортном средстве устройство, оснащенное в мобильном объекте, таком как транспортное средство. Сервер 901, например, представляет собой облачную систему мониторинга трафика и допускает обмен данными с множеством клиентских устройств 902.
[0307] Сервер 901 передает трехмерную карту, сформированную посредством облака точек, в клиентское устройство 902. Следует отметить, что структура трехмерной карты не ограничена облаком точек и также может представлять собой другую структуру, выражающую трехмерные данные, такую как ячеистая структура.
[0308] Клиентское устройство 902 передает информацию датчиков, полученную посредством клиентского устройства 902, на сервер 901. Информация датчиков включает в себя, например, по меньшей мере, одно из информации, полученной посредством лидара, изображения в диапазоне видимого света, инфракрасного изображения, изображения глубины, информации позиций датчиков или информации скорости датчиков.
[0309] Данные, которые должны передаваться и приниматься между сервером 901 и клиентским устройством 902, могут сжиматься, чтобы уменьшать объем данных, а также могут передаваться распакованными, чтобы поддерживать точность данных. При сжатии данных, можно использовать способ трехмерного сжатия в облаке точек, например, на основе структуры в виде дерева октантов. Можно использовать способ сжатия двумерных изображений в изображении в диапазоне видимого света, инфракрасном изображении и изображении глубины. Способ сжатия двумерных изображений, например, представляет собой MPEG-4 AVC или HEVC, стандартизированный посредством MPEG.
[0310] Сервер 901 передает трехмерную карту, управляемую посредством сервера 901, в клиентское устройство 902 в ответ на запрос на передачу на предмет трехмерной карты из клиентского устройства 902. Следует отметить, что сервер 901 также может передавать трехмерную карту без ожидания запроса на передачу на предмет трехмерной карты из клиентского устройства 902. Например, сервер 901 может широковещательно передавать трехмерную карту, по меньшей мере, в одно клиентское устройство 902, расположенное в предварительно определенном пространстве. Сервер 901 также может передавать трехмерную карту, подходящую для позиции клиентского устройства 902, с фиксированными временными интервалами в клиентское устройство 902, которое принимает запрос на передачу однократно. Сервер 901 также может передавать трехмерную карту, управляемую посредством сервера 901, в клиентское устройство 902 каждый раз, когда трехмерная карта обновляется.
[0311] Клиентское устройство 902 отправляет запрос на передачу на предмет трехмерной карты на сервер 901. Например, когда клиентское устройство 902 хочет выполнять оценку собственного местоположения во время движения, клиентское устройство 902 передает запрос на передачу на предмет трехмерной карты на сервер 901.
[0312] Следует отметить, что в следующих случаях клиентское устройство 902 может отправлять запрос на передачу на предмет трехмерной карты на сервер 901. Клиентское устройство 902 может отправлять запрос на передачу на предмет трехмерной карты на сервер 901, когда трехмерная карта, сохраненная посредством клиентского устройства 902, является устаревшей. Например, клиентское устройство 902 может отправлять запрос на передачу на предмет трехмерной карты на сервер 901, когда фиксированный период проходит с момента, когда трехмерная карта получается посредством клиентского устройства 902.
[0313] Клиентское устройство 902 также может отправлять запрос на передачу на предмет трехмерной карты на сервер 901 до фиксированного времени, когда клиентское устройство 902 выходит из пространства, показанного на трехмерной карте, сохраненной посредством клиентского устройства 902. Например, клиентское устройство 902 может отправлять запрос на передачу на предмет трехмерной карты на сервер 901, когда клиентское устройство 902 расположено в пределах предварительно определенного расстояния от границы пространства, показанного на трехмерной карте, сохраненной посредством клиентского устройства 902. Когда тракт перемещения и скорость перемещения клиентского устройства 902 понимаются, время, когда клиентское устройство 902 выходит из пространства, показанного на трехмерной карте, сохраненной посредством клиентского устройства 902, может прогнозироваться на основе тракта перемещения и скорости перемещения клиентского устройства 902.
[0314] Клиентское устройство 902 также может отправлять запрос на передачу на предмет трехмерной карты на сервер 901, когда ошибка во время совмещения трехмерных данных и трехмерной карты, созданной из информации датчиков посредством клиентского устройства 902, находится, по меньшей мере, на фиксированном уровне.
[0315] Клиентское устройство 902 передает информацию датчиков на сервер 901 в ответ на запрос на передачу на предмет информации датчиков из сервера 901. Следует отметить, что клиентское устройство 902 может передавать информацию датчиков на сервер 901 без ожидания запроса на передачу на предмет информации датчиков из сервера 901. Например, клиентское устройство 902 может периодически передавать информацию датчиков в течение фиксированного периода, когда клиентское устройство 902 однократно принимает запрос на передачу на предмет информации датчиков из сервера 901. Клиентское устройство 902 может определять то, что имеется вероятность возникновения изменения трехмерной карты окружающей зоны клиентского устройства 902, и передавать эту информацию и информацию датчиков на сервер 901, когда ошибка во время совмещения трехмерных данных, созданных посредством клиентского устройства 902 на основе информации датчиков, и трехмерной карты, полученной из сервера 901, находится, по меньшей мере, на фиксированном уровне.
[0316] Сервер 901 отправляет запрос на передачу на предмет информации датчиков в клиентское устройство 902. Например, сервер 901 принимает информацию позиции, такую как GPS-информация, относительно клиентского устройства 902 из клиентского устройства 902. Сервер 901 отправляет запрос на передачу на предмет информации датчиков в клиентское устройство 902, чтобы формировать новую трехмерную карту, когда определяется то, что клиентское устройство 902 приближается к пространству, в котором трехмерная карта, управляемая посредством сервера 901, содержит мало информации, на основе информации позиции относительно клиентского устройства 902. Сервер 901 также может отправлять запрос на передачу на предмет информации датчиков, при желании (i) обновлять трехмерную карту, (ii) проверять дорожные условия во время снегопада, аварии и т.п., или (iii) проверять условия затора в движении, условия аварии/происшествия и т.п.
[0317] Клиентское устройство 902 может задавать объем данных информации датчиков, которая должна передаваться на сервер 901, в соответствии с условиями связи или полосой пропускания в ходе приема запроса на передачу на предмет информации датчиков, которая должна приниматься из сервера 901. Задание объема данных информации датчиков, которая должна передаваться на сервер 901, например, представляет собой увеличение/уменьшение непосредственно данных или надлежащий выбор способа сжатия.
[0318] Фиг. 29 является блок-схемой, показывающей примерную структуру клиентского устройства 902. Клиентское устройство 902 принимает трехмерную карту, сформированную посредством облака точек и т.п. из сервера 901, и оценивает собственное местоположение клиентского устройства 902 с использованием трехмерной карты, созданной на основе информации датчиков клиентского устройства 902. Клиентское устройство 902 передает полученную информацию датчиков на сервер 901.
[0319] Клиентское устройство 902 включает в себя приемное устройство 1011 данных, модуль 1012 связи, контроллер 1013 приема, преобразователь 1014 форматов, датчики 1015, модуль 1016 создания трехмерных данных, процессор 1017 трехмерных изображений, устройство 1018 хранения трехмерных данных, преобразователь 1019 форматов, модуль 1020 связи, контроллер 1021 передачи и передающее устройство 1022 данных.
[0320] Приемное устройство 1011 данных принимает трехмерную карту 1031 из сервера 901. Трехмерная карта 1031 представляет собой данные, которые включают в себя облако точек, такие как WLD или SWLD. Трехмерная карта 1031 может включать в себя сжатые данные или несжатые данные.
[0321] Модуль 1012 связи обменивается данными с сервером 901 и передает запрос на передачу данных (например, запрос на передачу на предмет трехмерной карты) на сервер 901.
[0322] Контроллер 1013 приема обменивается информацией, такой как информация относительно поддерживаемых форматов, с партнером по связи через модуль 1012 связи, чтобы устанавливать связь с партнером по связи.
[0323] Преобразователь 1014 форматов выполняет преобразование формата и т.п. для трехмерной карты 1031, принимаемой посредством приемного устройства 1011 данных, чтобы формировать трехмерную карту 1032. Преобразователь 1014 форматов также выполняет процесс распаковки или декодирования, когда трехмерная карта 1031 сжимается или кодируется. Следует отметить, что преобразователь 1014 форматов не выполняет процесс распаковки или декодирования, когда трехмерная карта 1031 представляет собой несжатые данные.
[0324] Датчики 815 представляют собой группу датчиков, таких как лидары, камеры для съемки в диапазоне видимого света, камеры для съемки в инфракрасном диапазоне или датчики глубины, которые получают информацию относительно местоположения за пределами транспортного средства, оснащенного клиентским устройством 902, и формируют информацию 1033 датчиков. Информация 1033 датчиков, например, представляет собой трехмерные данные, такие как облако точек (данные точечных групп), когда датчики 1015 представляют собой лазерные датчики, такие как лидары. Следует отметить, что один датчик может служить в качестве датчиков 1015.
[0325] Модуль 1016 создания трехмерных данных формирует трехмерные данные 1034 окружающей зоны рассматриваемого транспортного средства на основе информации 1033 датчиков. Например, модуль 1016 создания трехмерных данных формирует данные облаков точек с цветовой информацией относительно окружающей зоны рассматриваемого транспортного средства с использованием информации, полученной посредством лидара, и видео в диапазоне видимого света, полученного посредством камеры для съемки в диапазоне видимого света.
[0326] Процессор 1017 трехмерных изображений выполняет процесс оценки собственного местоположения и т.п. рассматриваемого транспортного средства, с использованием (i) принимаемой трехмерной карты 1032, такой как облако точек, и (ii) трехмерных данных 1034 окружающей зоны рассматриваемого транспортного средства, сформированных с использованием информации 1033 датчиков. Следует отметить, что процессор 1017 трехмерных изображений может формировать трехмерные данные 1035 относительно окрестности рассматриваемого транспортного средства посредством объединения трехмерной карты 1032 и трехмерных данных 1034 и может выполнять процесс оценки собственного местоположения с использованием созданных трехмерных данных 1035.
[0327] Устройство 1018 хранения трехмерных данных сохраняет трехмерную карту 1032, трехмерные данные 1034, трехмерные данные 1035 и т.п.
[0328] Преобразователь 1019 форматов формирует информацию 1037 датчиков посредством преобразования информации 1033 датчиков в формат, поддерживаемый на конце приемного устройства. Следует отметить, что преобразователь 1019 форматов может сокращать объем данных посредством сжатия или кодирования информации 1037 датчиков. Преобразователь 1019 форматов может опускать этот процесс, когда преобразование формата не требуется. Преобразователь 1019 форматов также может управлять объемом данных, которые должны передаваться в соответствии с указанным диапазоном передачи.
[0329] Модуль 1020 связи обменивается данными с сервером 901 и принимает запрос на передачу данных (запрос на передачу на предмет информации датчиков) и т.п. из сервера 901.
[0330] Контроллер 1021 передачи обменивается информацией, такой как информация относительно поддерживаемых форматов, с партнером по связи через модуль 1020 связи, чтобы устанавливать связь с партнером по связи.
[0331] Передающее устройство 1022 данных передает информацию 1037 датчиков на сервер 901. Информация 1037 датчиков включает в себя, например, информацию, полученную через датчики 1015, такую как информация, полученная посредством лидара, изображение яркости, полученное посредством камеры для съемки в диапазоне видимого света, инфракрасное изображение, полученное посредством камеры для съемки в инфракрасном диапазоне, изображение глубины, полученное посредством датчика глубины, информация позиций датчиков и информация скорости датчиков.
[0332] Далее описывается структура сервера 901. Фиг. 30 является блок-схемой, показывающей примерную структуру сервера 901. Сервер 901 передает информацию датчиков из клиентского устройства 902 и создает трехмерные данные на основе принимаемой информации датчиков. Сервер 901 обновляет трехмерную карту, управляемую посредством сервера 901, с использованием созданных трехмерных данных. Сервер 901 передает обновленную трехмерную карту в клиентское устройство 902 в ответ на запрос на передачу на предмет трехмерной карты из клиентского устройства 902.
[0333] Сервер 901 включает в себя приемное устройство 1111 данных, модуль 1112 связи, контроллер 1113 приема, преобразователь 1114 форматов, модуль 1116 создания трехмерных данных, модуль 1117 объединения трехмерных данных, устройство 1118 хранения трехмерных данных, преобразователь 1119 форматов, модуль 1120 связи, контроллер 1121 передачи и передающее устройство 1122 данных.
[0334] Приемное устройство данных 1111 принимает информацию 1037 датчиков из клиентского устройства 902. Информация 1037 датчиков включает в себя, например, информацию, полученную посредством лидара, изображение яркости, полученное посредством камеры для съемки в диапазоне видимого света, инфракрасное изображение, полученное посредством камеры для съемки в инфракрасном диапазоне, изображение глубины, полученное посредством датчика глубины, информацию позиций датчиков, информацию скорости датчиков и т.п.
[0335] Модуль 1112 связи обменивается данными с клиентским устройством 902 и передает запрос на передачу данных (например, запрос на передачу на предмет информации датчиков) и т.п. в клиентское устройство 902.
[0336] Контроллер 1113 приема обменивается информацией, такой как информация относительно поддерживаемых форматов, с партнером по связи через модуль 1112 связи, чтобы устанавливать связь с партнером по связи.
[0337] Преобразователь 1114 форматов формирует информацию 1132 датчиков посредством выполнения процесса распаковки или декодирования, когда принимаемая информация 1037 датчиков сжимается или кодируется. Следует отметить, что преобразователь 1114 форматов не выполняет процесс распаковки или декодирования, когда информация 1037 датчиков представляет собой несжатые данные.
[0338] Модуль 1116 создания трехмерных данных формирует трехмерные данные 1134 окружающей зоны клиентского устройства 902 на основе информации 1132 датчиков. Например, модуль 1116 создания трехмерных данных формирует данные облаков точек с цветовой информацией относительно окружающей зоны клиентского устройства 902 с использованием информации, полученной посредством лидара, и видео в диапазоне видимого света, полученного посредством камеры для съемки в диапазоне видимого света.
[0339] Модуль 1117 объединения трехмерных данных обновляет трехмерную карту 1135 посредством объединения трехмерных данных 1134, созданных на основе информации 1132 датчиков, с трехмерной картой 1135, управляемой посредством сервера 901.
[0340] Устройство 1118 хранения трехмерных данных сохраняет трехмерную карту 1135 и т.п.
[0341] Преобразователь 1119 форматов формирует трехмерную карту 1031 посредством преобразования трехмерной карты 1135 в формат, поддерживаемый на конце приемного устройства. Следует отметить, что преобразователь 1119 форматов может сокращать объем данных посредством сжатия или кодирования трехмерной карты 1135. Преобразователь 1119 форматов может опускать этот процесс, когда преобразование формата не требуется. Преобразователь 1119 форматов также может управлять объемом данных, которые должны передаваться в соответствии с указанным диапазоном передачи.
[0342] Модуль 1120 связи обменивается данными с клиентским устройством 902 и принимает запрос на передачу данных (запрос на передачу на предмет трехмерной карты) и т.п. из клиентского устройства 902.
[0343] Контроллер 1121 передачи обменивается информацией, такой как информация относительно поддерживаемых форматов, с партнером по связи через модуль 1120 связи, чтобы устанавливать связь с партнером по связи.
[0344] Передающее устройство 1122 данных передает трехмерную карту 1031 в клиентское устройство 902. Трехмерная карта 1031 представляет собой данные, которые включают в себя облако точек, такие как WLD или SWLD. Трехмерная карта 1031 может включать одно из сжатых данных и несжатых данных.
[0345] Далее описывается последовательность операций клиентского устройства 902. Фиг. 31 является блок-схемой последовательности операций способа для операции, когда клиентское устройство 902 получает трехмерную карту.
[0346] Клиентское устройство 902 сначала запрашивает сервер 901 на предмет того, чтобы передавать трехмерную карту (облако точек и т.д.) (S1001). В этот момент, посредством передачи также информации позиции относительно клиентского устройства 902, полученной через GPS и т.п., клиентское устройство 902 также может запрашивать сервер 901 на предмет того, чтобы передавать трехмерную карту, связанную с этой информацией позиции.
[0347] Клиентское устройство 902 затем принимает трехмерную карту из сервера 901 (S1002). Когда принимаемая трехмерная карта представляет собой сжатые данные, клиентское устройство 902 декодирует принимаемую трехмерную карту и формирует несжатую трехмерную карту (S1003).
[0348] Клиентское устройство 902 затем создает трехмерные данные 1034 окружающей зоны клиентского устройства 902 с использованием информации 1033 датчиков, полученной посредством датчиков 1015 (S1004). Клиентское устройство 902 затем оценивает собственное местоположение клиентского устройства 902 с использованием трехмерной карты 1032, принимаемой из сервера 901, и трехмерных данных 1034, созданных с использованием информации 1033 датчиков (S1005).
[0349] Фиг. 32 является блок-схемой последовательности операций способа для операции, когда клиентское устройство 902 передает информацию датчиков. Клиентское устройство 902 сначала принимает запрос на передачу на предмет информации датчиков из сервера 901 (S1011). Клиентское устройство 902, которое принимает запрос на передачу, передает информацию 1037 датчиков на сервер 901 (S1012). Следует отметить, что клиентское устройство 902 может формировать информацию 1037 датчиков посредством сжатия каждого фрагмента информации с использованием способа сжатия, подходящего для каждого фрагмента информации, когда информация 1033 датчиков включает в себя множество фрагментов информации, полученных посредством датчиков 1015.
[0350] Далее описывается последовательность операций сервера 901. Фиг. 33 является блок-схемой последовательности операций способа для операции, когда сервер 901 получает информацию датчиков. Сервер 901 сначала запрашивает клиентское устройство 902 на предмет того, чтобы передавать информацию датчиков (S1021). Сервер 901 затем принимает информацию 1037 датчиков, передаваемую из клиентского устройства 902 в соответствии с запросом (S1022). Сервер 901 затем создает трехмерные данные 1134 с использованием принимаемой информации 1037 датчиков (S1023). Сервер 901 затем отражает созданные трехмерные данные 1134 на трехмерной карте 1135 (S1024).
[0351] Фиг. 34 является блок-схемой последовательности операций способа для операции, когда сервер 901 передает трехмерную карту. Сервер 901 сначала принимает запрос на передачу на предмет трехмерной карты из клиентского устройства 902 (S1031). Сервер 901, который принимает запрос на передачу на предмет трехмерной карты, передает трехмерную карту в клиентское устройство 902 (S1032). В этот момент, сервер 901 может извлекать трехмерную карту окрестности клиентского устройства 902 наряду с информацией позиции относительно клиентского устройства 902 и передавать извлеченную трехмерную карту. Сервер 901 может сжимать трехмерную карту, сформированную посредством облака точек, с использованием, например, способа сжатия структуры в виде дерева октантов, и передавать сжатую трехмерную карту.
[0352] В дальнейшем в этом документе описываются варьирования настоящего варианта осуществления.
[0353] Сервер 901 создает трехмерные данные 1134 окрестности позиции клиентского устройства 902 с использованием информации 1037 датчиков, принимаемой из клиентского устройства 902. Сервер 901 затем вычисляет разность между трехмерными данными 1134 и трехмерной картой 1135 посредством сопоставления созданных трехмерных данных 1134 с трехмерной картой 1135 идентичной зоны, управляемой посредством сервера 901. Сервер 901 определяет то, что определенный тип аномалии возникает в окружающей зоне клиентского устройства 902, когда разность превышает или равна предварительно определенному пороговому значению. Например, есть возможность того, что большая разность возникает между трехмерной картой 1135, управляемой посредством сервера 901, и трехмерными данными 1134, созданными на основе информации 1037 датчиков, когда проседание грунта и т.п. возникает вследствие стихийного бедствия, такого как землетрясение.
[0354] Информация 1037 датчиков может включать в себя информацию, указывающую, по меньшей мере, одно из типа датчика, производительности датчика и номера модели датчика. К информации 1037 датчиков также может присоединяться идентификатор класса и т.п. в соответствии с производительностью датчика. Например, когда информация 1037 датчиков получается посредством лидара, есть возможность назначать идентификаторы для производительности датчика. Датчик, допускающий получение информации с точностью в единицах в несколько миллиметров, имеет класс 1, датчик, допускающий получение информации с точностью в единицах в несколько сантиметров, имеет класс 2, и датчик, допускающий получение информации с точностью в единицах в несколько метров, имеет класс 3. Сервер 901 может оценивать информацию производительности датчика и т.п. из номера модели клиентского устройства 902. Например, когда клиентское устройство 902 оснащается в транспортном средстве, сервер 901 может определять информацию спецификации датчика из типа транспортного средства. В этом случае, сервер 901 может получать информацию относительно типа транспортного средства заранее, и информация также может быть включена в информацию датчиков. Сервер 901 может изменять степень коррекции относительно трехмерных данных 1134, созданных с использованием информации 1037 датчиков, с использованием полученной информации 1037 датчиков. Например, когда производительность датчика является высокой по точности (класс 1), сервер 901 не корректирует трехмерные данные 1134. Когда производительность датчика является низкой по точности (класс 3), сервер 901 корректирует трехмерные данные 1134 в соответствии с точностью датчика. Например, сервер 901 увеличивает степень (интенсивность) коррекции со снижением точности датчика.
[0355] Сервер 901 может одновременно отправлять запрос на передачу на предмет информации датчиков во множество клиентских устройств 902 в определенном пространстве. Сервер 901 не должен использовать всю информацию датчиков для создания трехмерных данных 1134 и, например, может выбирать информацию датчиков, которая должна использоваться в соответствии с производительностью датчика, при приеме множества фрагментов информации датчиков из множества клиентских устройств 902. Например, при обновлении трехмерной карты 1135, сервер 901 может выбирать высокоточную информацию датчиков (класс 1) из числа принимаемого множества фрагментов информации датчиков и создавать трехмерные данные 1134 с использованием выбранной информации датчиков.
[0356] Сервер 901 не ограничен только тем, что он представляет собой сервер, такой как облачная система мониторинга трафика, и также может представлять собой другое (установленное в транспортном средстве) клиентское устройство. Фиг. 35 является схемой структуры системы в этом случае.
[0357] Например, клиентское устройство 902C отправляет запрос на передачу на предмет информации датчиков в клиентское устройство 902A, расположенное поблизости, и получает информацию датчиков из клиентского устройства 902A. Клиентское устройство 902C затем создает трехмерные данные с использованием полученной информации датчиков клиентского устройства 902A и обновляет трехмерную карту клиентского устройства 902C. Это обеспечивает возможность клиентскому устройству 902C формировать трехмерную карту пространства, которое может получаться из клиентского устройства 902A, и полностью использовать производительность клиентского устройства 902C. Например, такой случай возможен, когда клиентское устройство 902C имеет высокую производительность.
[0358] В этом случае, клиентскому устройству 902A, которое предоставляет информацию датчиков, дается право получать высокоточную трехмерную карту, сформированную посредством клиентского устройства 902C. Клиентское устройство 902A принимает высокоточную трехмерную карту из клиентского устройства 902C в соответствии с этими правами.
[0359] Сервер 901 может отправлять запрос на передачу на предмет информации датчиков во множество клиентских устройств 902 (в клиентское устройство 902A и клиентское устройство 902B), расположенных поблизости от клиентского устройства 902C. Когда датчик клиентского устройства 902A или клиентского устройства 902B имеет высокую производительность, клиентское устройство 902C допускает создание трехмерных данных с использованием информации датчиков, полученной посредством этого высокопроизводительного датчика.
[0360] Фиг. 36 является блок-схемой, показывающей структуру функциональности сервера 901 и клиентского устройства 902. Сервер 901 включает в себя, например, процессор 1201 сжатия/декодирования трехмерных карт, который сжимает и декодирует трехмерную карту, и процессор 1202 сжатия/декодирования информации датчиков, который сжимает и декодирует информацию датчиков.
[0361] Клиентское устройство 902 включает в себя процессор 1211 декодирования трехмерных карт и процессор 1212 сжатия информации датчиков. Процессор 1211 декодирования трехмерных карт принимает кодированные данные сжатой трехмерной карты, декодирует кодированные данные и получает трехмерную карту. Процессор 1212 сжатия информации датчиков сжимает саму информацию датчиков вместо трехмерных данных, созданных с использованием полученной информации датчиков, и передает кодированные данные сжатой информации датчиков на сервер 901. При такой структуре, клиентское устройство 902 не должно внутренне сохранять процессор, который выполняет процесс для сжатия трехмерных данных трехмерной карты (облака точек и т.д.), при условии, что клиентское устройство 902 внутренне сохраняет процессор, который выполняет процесс для декодирования трехмерной карты (облака точек и т.д.). Это позволяет ограничивать затраты, потребление мощности и т.п. клиентского устройства 902.
[0362] Как указано выше, клиентское устройство 902 согласно настоящему варианту осуществления оснащается в мобильном объекте и создает трехмерные данные 1034 окружающей зоны мобильного объекта с использованием информации 1033 датчиков, которая получается через датчик 1015, оснащенный в мобильном объекте, и указывает окружающее условие мобильного объекта. Клиентское устройство 902 оценивает собственное местоположение мобильного объекта с использованием созданных трехмерных данных 1034. Клиентское устройство 902 передает полученную информацию 1033 датчиков на сервер 901 или другой мобильный объект.
[0363] Это обеспечивает возможность клиентскому устройству 902 передавать информацию 1033 датчиков на сервер 901 и т.п. Это позволяет дополнительно уменьшать объем передаваемых данных по сравнению с моментом передачи трехмерных данных. Поскольку для клиентского устройства 902 нет необходимости выполнять такие процессы, как сжатие или кодирование трехмерных данных, можно уменьшать объем обработки клиентского устройства 902. В связи с этим, клиентское устройство 902 допускает уменьшение объема данных, которые должны передаваться, или упрощение структуры устройства.
[0364] Клиентское устройство 902 дополнительно передает запрос на передачу на предмет трехмерной карты на сервер 901 и принимает трехмерную карту 1031 из сервера 901. При оценке собственного местоположения, клиентское устройство 902 оценивает собственное местоположение с использованием трехмерных данных 1034 и трехмерной карты 1032.
[0365] Информация 1034 датчиков включает в себя, по меньшей мере, одно из информации, полученной посредством лазерного датчика, изображения яркости, инфракрасного изображения, изображения глубины, информации позиций датчиков или информации скорости датчиков.
[0366] Информация 1033 датчиков включает в себя информацию, которая указывает производительность датчика.
[0367] Клиентское устройство 902 кодирует или сжимает информацию 1033 датчиков и, при передаче информации датчиков, передает информацию 1037 датчиков, которая кодирована или сжата, на сервер 901 или в другой мобильный объект 902. Это обеспечивает возможность клиентскому устройству 902 уменьшать объем данных, которые должны передаваться.
[0368] Например, клиентское устройство 902 включает в себя процессор и запоминающее устройство. Процессор выполняет вышеуказанные процессы с использованием запоминающего устройства.
[0369] Сервер 901 согласно настоящему варианту осуществления допускает обмен данными с клиентским устройством 902, оснащенным в мобильном объекте, и принимает информацию 1037 датчиков, которая получается через датчик 1015, оснащенный в мобильном объекте, и указывает окружающее условие мобильного объекта. Сервер 901 создает трехмерные данные 1134 окружающей зоны мобильного объекта с использованием принимаемой информации 1037 датчиков.
[0370] Вследствие этого, сервер 901 создает трехмерные данные 1134 с использованием информации 1037 датчиков, передаваемой из клиентского устройства 902. Это позволяет дополнительно уменьшать объем передаваемых данных по сравнению с моментом, когда клиентское устройство 902 передает трехмерные данные. Поскольку для клиентского устройства 902 нет необходимости выполнять такие процессы, как сжатие или кодирование трехмерных данных, можно уменьшать объем обработки клиентского устройства 902. В связи с этим, сервер 901 допускает уменьшение объема данных, которые должны передаваться, или упрощение структуры устройства.
[0371] Сервер 901 дополнительно передает запрос на передачу на предмет информации датчиков в клиентское устройство 902.
[0372] Сервер 901 дополнительно обновляет трехмерную карту 1135 с использованием созданных трехмерных данных 1134 и передает трехмерную карту 1135 в клиентское устройство 902 в ответ на запрос на передачу на предмет трехмерной карты 1135 из клиентского устройства 902.
[0373] Информация 1037 датчиков включает в себя, по меньшей мере, одно из информации, полученной посредством лазерного датчика, изображения яркости, инфракрасного изображения, изображения глубины, информации позиций датчиков или информации скорости датчиков.
[0374] Информация 1037 датчиков включает в себя информацию, которая указывает производительность датчика.
[0375] Сервер 901 дополнительно корректирует трехмерные данные в соответствии с производительностью датчика. Это обеспечивает возможность способу создания трехмерных данных повышать качество трехмерных данных.
[0376] При приеме информации датчиков, сервер 901 принимает множество фрагментов информации 1037 датчиков, принимаемой из множества клиентских устройств 902, и выбирает информацию 1037 датчиков, которая должна использоваться при создании трехмерных данных 1134, на основе множества фрагментов информации, каждый из которых указывает производительность датчика, включенного во множество фрагментов информации 1037 датчиков. Это обеспечивает возможность серверу 901 повышать качество трехмерных данных 1134.
[0377] Сервер 901 декодирует или распаковывает принимаемую информацию 1037 датчиков и создает трехмерные данные 1134 с использованием информации 1132 датчиков, которая декодирована или распакована. Это обеспечивает возможность серверу 901 уменьшать объем данных, которые должны передаваться.
[0378] Например, сервер 901 включает в себя процессор и запоминающее устройство. Процессор выполняет вышеуказанные процессы с использованием запоминающего устройства.
[0379] Вариант 7 осуществления
В настоящем варианте осуществления, в дальнейшем описываются способы кодирования и декодирования трехмерных данных с использованием процесса взаимного прогнозирования.
[0380] Фиг. 37 является блок-схемой устройства 1300 кодирования трехмерных данных согласно настоящему варианту осуществления. Это устройство 1300 кодирования трехмерных данных формирует кодированный поток битов (в дальнейшем в этом документе, также называемый просто "потоком битов"), который представляет собой кодированный сигнал, посредством кодирования трехмерных данных. Как проиллюстрировано на фиг. 37, устройство 1300 кодирования трехмерных данных включает в себя модуль 1301 разделения, вычитатель 1302, преобразователь 1303, квантователь 1304, обратный квантователь 1305, обратный преобразователь 1306, сумматор 1307, запоминающее устройство 1308 опорных объемов, модуль 1309 внутреннего прогнозирования, запоминающее устройство 1310 опорных пространств, модуль 1311 взаимного прогнозирования, контроллер 1312 прогнозирования и энтропийный кодер 1313.
[0381] Модуль 1301 разделения разделяет множество объемов (VLM), которые представляют собой единицы кодирования каждого пространства (SPC), включенного в трехмерные данные. Модуль 1301 разделения задает представление в виде дерева октантов (задание как дерева октантов) вокселов в каждом объеме. Следует отметить, что модуль 1301 разделения может задавать пространства как представление в виде дерева октантов с пространствами, имеющими размер, идентичный размеру объемов. Модуль 1301 разделения также может присоединять информацию (информацию глубины и т.д.), необходимую для того, чтобы задавать представление в виде дерева октантов, к заголовку и т.п. потока битов.
[0382] Вычитатель 1302 вычисляет разность между объемом (целевым объемом кодирования), выведенным посредством модуля 1301 разделения, и прогнозированным объемом, сформированным через внутреннее прогнозирование или взаимное прогнозирование, которое описывается ниже, и выводит вычисленную разность в преобразователь 1303 в качестве остатка прогнозирования. Фиг. 38 является схемой, показывающей примерное вычисление остатка прогнозирования. Следует отметить, что битовые последовательности целевого объема кодирования и прогнозированного объема, показанных здесь, например, представляют собой информацию позиции, указывающую позиции трехмерных точек, включенных в объемы.
[0383] В дальнейшем в этом документе описывается порядок сканирования представления в виде дерева октантов и вокселов. Объем кодируется после преобразования в структуру в виде дерева октантов (задания как дерева октантов). Структура в виде дерева октантов включает в себя узлы и листья. Каждый узел имеет восемь узлов или листьев, и каждый лист имеет вокселную (VXL) информацию. Фиг. 39 является схемой, показывающей примерную структуру объема, включающего в себя вокселы. Фиг. 40 является схемой, показывающей пример объема, показанного на фиг. 39, преобразованного в структуру в виде дерева октантов. Из числа листьев, показанных на фиг. 40, листья 1, 2 и 3, соответственно, представляют VXL 1, VXL 2 и VXL 3 и представляют VXL, включающие в себя точечную группу (в дальнейшем в этом документе, активные VXL).
[0384] Дерево октантов представляется, например, посредством двоичных последовательностей единиц и нулей. Например, при предоставлении для узлов или активных VXL значения в 1, а для всех остальных значения в 0, каждому узлу и листу назначается двоичная последовательность, показанная на фиг. 40. Таким образом, эта двоичная последовательность сканируется в соответствии с порядком сканирования в ширину или в глубину. Например, при сканировании в ширину, получается двоичная последовательность, показанная в A по фиг. 41. При сканировании в глубину, получается двоичная последовательность, показанная в B по фиг. 41. Двоичные последовательности, полученные посредством этого сканирования, кодируются посредством энтропийного кодирования, которое уменьшает объем информации.
[0385] Далее описывается информация глубины в представлении в виде дерева октантов. Глубина в представлении в виде дерева октантов используется для того, чтобы управлять тем, с насколько большой степенью детализации сохраняется информация облаков точек, включенная в объем. После задания большой глубины, можно воспроизводить информацию облаков точек до более точного уровня, но объем данных для представления узлов и листьев увеличивается. Тем не менее, после задания небольшой глубины, объем данных снижается, но некоторая информация, такая как информация облаков точек, первоначально хранимая, теряется, поскольку фрагменты информации облаков точек, включающие в себя различные позиции и различные цвета, теперь рассматриваются в качестве фрагментов информации облаков точек, включающих в себя идентичную позицию и идентичный цвет.
[0386] Например, фиг. 42 является схемой, показывающей пример, в котором дерево октантов с глубиной в 2, показанное на фиг. 40, представляется с глубиной в 1. Дерево октантов, показанное на фиг. 42, имеет более низкий объем данных, чем дерево октантов, показанное на фиг. 40. Другими словами, преобразованное в двоичную форму дерево октантов, показанное на фиг. 42, имеет меньшее число битов, чем дерево октантов, показанное на фиг. 40. Лист 1 и лист 2, показанные на фиг. 40, представляются посредством листа 1, показанного на фиг. 41. Другими словами, информация относительно листа 1 и листа 2, находящегося в различных позициях, теряется.
[0387] Фиг. 43 является схемой, показывающей объем, соответствующий дереву октантов, показанному на фиг. 42. VXL 1 и VXL 2, показанные на фиг. 39, соответствуют VXL 12, показанному на фиг. 43. В этом случае, устройство 1300 кодирования трехмерных данных формирует цветовую информацию VXL 12, показанного на фиг. 43, с использованием цветовой информации VXL 1 и VXL 2, показанных на фиг. 39. Например, устройство 1300 кодирования трехмерных данных вычисляет среднее значение, медиану, средневзвешенное значение и т.п. цветовой информации VXL 1 и VXL 2 в качестве цветовой информации VXL 12. Таким образом, устройство 1300 кодирования трехмерных данных может управлять уменьшением объема данных посредством изменения глубины дерева октантов.
[0388] Устройство 1300 кодирования трехмерных данных может задавать информацию глубины дерева октантов в единицах миров, единицах пространств или единицах объемов. В этом случае, устройство 1300 кодирования трехмерных данных может присоединять информацию глубины к информации заголовка мира, информации заголовка пространства или информации заголовка объема. Во всех мирах, пространствах и объемах, ассоциированных с различными временами, идентичное значение может использоваться в качестве информации глубины. В этом случае, устройство 1300 кодирования трехмерных данных может присоединять информацию глубины к информации заголовка, управляющей мирами, ассоциированными со всеми временами.
[0389] Когда цветовая информация включается в вокселы, преобразователь 1303 применяет преобразование частоты, например, ортогональное преобразование, к остатку прогнозирования цветовой информации вокселов в объеме. Например, преобразователь 1303 создает одномерный массив посредством сканирования остатка прогнозирования в определенном порядке сканирования. Затем, преобразователь 1303 преобразует одномерный массив в частотную область посредством применения одномерного ортогонального преобразования к созданному одномерному массиву. Вследствие этого, когда значение остатка прогнозирования в объеме является аналогичным, значение низкочастотного компонента увеличивается, и значение высокочастотного компонента снижается. В связи с этим, можно более эффективно уменьшать объем кода в квантователе 1304.
[0390] Преобразователь 1303 не должен обязательно использовать ортогональное преобразование в одной размерности, но также может использовать ортогональное преобразование в двух или более размерностей. Например, преобразователь 1303 преобразует остаток прогнозирования в двумерный массив в определенном порядке сканирования и применяет двумерное ортогональное преобразование к полученному двумерному массиву. Преобразователь 1303 может выбирать способ ортогонального преобразования, который должен использоваться, из множества способов ортогонального преобразования. В этом случае, устройство 1300 кодирования трехмерных данных присоединяет, к потоку битов, информацию, указывающую то, какой способ ортогонального преобразования используется. Преобразователь 1303 может выбирать способ ортогонального преобразования, который должен использоваться, из множества способов ортогонального преобразования в различных размерностях. В этом случае, устройство 1300 кодирования трехмерных данных присоединяет, к потоку битов, то, в скольких размерностях используется способ ортогонального преобразования.
[0391] Например, преобразователь 1303 сопоставляет порядок сканирования остатка прогнозирования с порядком сканирования (в ширину, в глубину и т.п.) в дереве октантов в объеме. Это позволяет уменьшать объем служебной информации, поскольку информация, указывающая порядок сканирования остатка прогнозирования, не должна обязательно присоединяться к потоку битов. Преобразователь 1303 может применять порядок сканирования, отличающийся от порядка сканирования дерева октантов. В этом случае, устройство 1300 кодирования трехмерных данных присоединяет, к потоку битов, информацию, указывающую порядок сканирования остатка прогнозирования. Это обеспечивает возможность устройству 1300 кодирования трехмерных данных эффективно кодировать остаток прогнозирования. Устройство 1300 кодирования трехмерных данных может присоединять, к потоку битов, информацию (флаг и т.д.), указывающую то, следует или нет применять порядок сканирования дерева октантов, а также может присоединять, к потоку битов, информацию, указывающую порядок сканирования остатка прогнозирования, когда порядок сканирования дерева октантов не применяется.
[0392] Преобразователь 1303 не только преобразует остаток прогнозирования цветовой информации, а также может преобразовывать другую информацию атрибутов, включенную в вокселы. Например, преобразователь 1303 может преобразовывать и кодировать информацию, такую как информация коэффициента отражения, полученная при получении облака точек через лидар, и т.п.
[0393] Преобразователь 1303 может пропускать эти процессы, когда пространства не включают в себя информацию атрибутов, такую как цветовая информация. Устройство 1300 кодирования трехмерных данных может присоединять, к потоку битов, информацию (флаг), указывающую то, следует или нет пропускать процессы преобразователя 1303.
[0394] Квантователь 1304 формирует квантованный коэффициент посредством выполнения квантования с использованием управляющего параметра квантования для частотного компонента остатка прогнозирования, сформированного посредством преобразователя 1303. Вследствие этого, объем информации дополнительно уменьшается. Сформированный квантованный коэффициент выводится в энтропийный кодер 1313. Квантователь 1304 может управлять управляющим параметром квантования в единицах миров, единицах пространств или единицах объемов. В этом случае, устройство 1300 кодирования трехмерных данных присоединяет управляющий параметр квантования к каждой информации заголовка и т.п. Квантователь 1304 может выполнять управление квантованием посредством изменения весового коэффициента в расчете на частотный компонент остатка прогнозирования. Например, квантователь 1304 может точно квантовать низкочастотный компонент и примерно квантовать высокочастотный компонент. В этом случае, устройство 1300 кодирования трехмерных данных может присоединять, к заголовку, параметр, выражающий весовой коэффициент каждого частотного компонента.
[0395] Квантователь 1304 может пропускать эти процессы, когда пространства не включают в себя информацию атрибутов, такую как цветовая информация. Устройство 1300 кодирования трехмерных данных может присоединять, к потоку битов, информацию (флаг), указывающую то, следует или нет пропускать процессы квантователя 1304.
[0396] Обратный квантователь 1305 формирует обратно квантованный коэффициент остатка прогнозирования посредством выполнения обратного квантования для квантованного коэффициента, сформированного посредством квантователя 1304 с использованием управляющего параметра квантования, и выводит сформированный обратно квантованный коэффициент в обратный преобразователь 1306.
[0397] Обратный преобразователь 1306 формирует остаток прогнозирования после применения обратного преобразования посредством применения обратного преобразования для обратно квантованного коэффициента, сформированного посредством обратного квантователя 1305. Этот остаток прогнозирования после применения обратного преобразования не должен обязательно полностью совпадать с остатком прогнозирования, выведенным посредством преобразователя 1303, поскольку остаток прогнозирования после применения обратного преобразования представляет собой остаток прогнозирования, который формируется после квантования.
[0398] Сумматор 1307 суммирует, чтобы формировать восстановленный объем (i), остаток прогнозирования после применения обратного преобразования, сформированный посредством обратного преобразователя 1306, с (ii) прогнозированным объемом, который формируется через внутреннее прогнозирование или внутреннее прогнозирование, которое описывается ниже и используется для того, чтобы формировать предварительный квантованный остаток прогнозирования. Этот восстановленный объем сохраняется в запоминающем устройстве 1308 опорных объемов или запоминающем устройстве 1310 опорных пространств.
[0399] Модуль 1309 внутреннего прогнозирования формирует прогнозированный объем целевого объема кодирования с использованием информации атрибутов соседнего объема, сохраненной в запоминающем устройстве 1308 опорных объемов. Информация атрибутов включает в себя цветовую информацию или коэффициент отражения вокселов. Модуль 1309 внутреннего прогнозирования формирует прогнозированное значение цветовой информации или коэффициент отражения целевого объема кодирования.
[0400] Фиг. 44 является схемой для описания операции модуля 1309 внутреннего прогнозирования. Например, модуль 1309 внутреннего прогнозирования формирует прогнозированный объем целевого объема кодирования (idx объема=3), показанный на фиг. 44, с использованием соседнего объема (idx объема=0). Idx объема здесь представляет собой информацию идентификатора, которая присоединяется к объему в пространстве, и различное значение назначается каждому объему. Порядок назначения idx объема может быть идентичным порядку кодирования, а также может отличаться от порядка кодирования. Например, модуль 1309 внутреннего прогнозирования использует среднее значение цветовой информации вокселов, включенных в idx объема=0, который представляет собой соседний объем, в качестве прогнозированного значения цветовой информации целевого объема кодирования, показанного на фиг. 44. В этом случае, остаток прогнозирования формируется посредством вычитания прогнозированного значения цветовой информации из цветовой информации каждого воксела, включенного в целевой объем кодирования. Следующие процессы выполняются посредством преобразователя 1303 и последующих процессоров относительно этого остатка прогнозирования. В этом случае, устройство 1300 кодирования трехмерных данных присоединяет, к потоку битов, информацию соседних объемов и информацию режима прогнозирования. Информация соседних объемов здесь представляет собой информацию, указывающую соседний объем, используемый при прогнозировании, и указывает, например, idx объема для соседнего объема, используемого при прогнозировании. Информация режима прогнозирования здесь указывает режим, используемый для того, чтобы формировать прогнозированный объем. Режим, например, представляет собой режим средних значений, в котором прогнозированное значение формируется с использованием среднего значения вокселов в соседнем объеме, или режим медиан, в котором прогнозированное значение формируется с использованием медианы вокселов в соседнем объеме.
[0401] Модуль 1309 внутреннего прогнозирования может формировать прогнозированный объем с использованием множества соседних объемов. Например, в структуре, показанной на фиг. 44, модуль 1309 внутреннего прогнозирования формирует прогнозированный объем 0 с использованием объема с idx объема=0 и формирует прогнозированный объем 1 с использованием объема с idx объема=1. Модуль 1309 внутреннего прогнозирования затем формирует среднее прогнозированного объема 0 и прогнозированного объема 1 в качестве конечного прогнозированного объема. В этом случае, устройство 1300 кодирования трехмерных данных может присоединять, к потоку битов, множество idx объемов для множества объемов, используемых для того, чтобы формировать прогнозированный объем.
[0402] Фиг. 45 является схемой, принципиально показывающей процесс взаимного прогнозирования согласно настоящему варианту осуществления. Модуль 1311 взаимного прогнозирования кодирует (взаимно прогнозирует) пространство (SPC), ассоциированное с определенным временем T_Cur, с использованием кодированного пространства, ассоциированного с другим временем T_LX. В этом случае, модуль 1311 взаимного прогнозирования выполняет процесс кодирования посредством применения процесса вращения и перемещения в пространстве к кодированному пространству, ассоциированному с другим временем T_LX.
[0403] Устройство 1300 кодирования трехмерных данных присоединяет, к потоку битов, RT-информацию, связанную с процессом вращения и перемещения в пространстве, подходящим для пространства, ассоциированного с другим временем T_LX. Другое время T_LX, например, представляет собой время T_L0 перед определенным временем T_Cur. В этот момент, устройство 1300 кодирования трехмерных данных может присоединять, к потоку битов, RT-информацию RT_L0, связанную с процессом вращения и перемещения в пространстве, подходящим для пространства, ассоциированного со временем T_L0.
[0404] Альтернативно, другое время T_LX, например, представляет собой время T_L1 после определенного времени T_Cur. В этот момент, устройство 1300 кодирования трехмерных данных может присоединять, к потоку битов, RT-информацию RT_L1, связанную с процессом вращения и перемещения в пространстве, подходящим для пространства, ассоциированного со временем T_L1.
[0405] Альтернативно, модуль 1311 взаимного прогнозирования кодирует (двунаправленное прогнозирование) со ссылкой на пространства, ассоциированные со временем T_L0 и временем T_L1, которые отличаются друг от друга. В этом случае, устройство 1300 кодирования трехмерных данных может присоединять, к потоку битов, как RT-информацию RT_L0, так и RT-информацию RT_L1, связанную с процессом вращения и перемещения в пространстве, подходящим для своих пространств.
[0406] Следует отметить, что T_L0 описывается как находящееся до T_Cur, а T_L1 как находящееся до после T_Cur, но не обязательно ограничивается этим. Например, оба из T_L0 и T_L1 могут находиться до T_Cur. Также оба из T_L0 и T_L1 могут находиться после T_Cur.
[0407] Устройство 1300 кодирования трехмерных данных может присоединять, к потоку битов, RT-информацию, связанную с процессом вращения и перемещения в пространстве, подходящим для пространств, ассоциированных с различными временами, при кодировании со ссылкой на каждые из пространств. Например, устройство 1300 кодирования трехмерных данных управляет множеством кодированных пространств, к которым следует обращаться, с использованием двух опорных списков (списка L0 и списка L1). Когда первое опорное пространство в списке L0 представляет собой L0R0, второе опорное пространство в списке L0 представляет собой L0R1, первое опорное пространство в списке L1 представляет собой L1R0, и второе опорное пространство в списке L1 представляет собой L1R1, устройство 1300 кодирования трехмерных данных присоединяет, к потоку битов, RT-информацию RT_L0R0 L0R0, RT-информацию RT_L0R1 L0R1, RT-информацию RT_L1R0 L1R0 и RT-информацию RT_L1R1 L1R1. Например, устройство 1300 кодирования трехмерных данных присоединяет эти фрагменты RT-информации к заголовку и т.п. потока битов.
[0408] Устройство 1300 кодирования трехмерных данных определяет то, следует или нет применять вращение и перемещение в пространстве в расчете на опорное пространство, при кодировании со ссылкой на опорные пространства, ассоциированные с различными временами. В этом случае, устройство 1300 кодирования трехмерных данных может присоединять, к информации заголовка и т.п. потока битов, информацию (RT-флаг и т.д.), указывающую то, применяется или нет вращение и перемещение в пространстве в расчете на опорное пространство. Например, устройство 1300 кодирования трехмерных данных вычисляет RT-информацию и значение ошибки итеративного алгоритма ближайших точек (ICP), с использованием ICP-алгоритма в расчете на опорное пространство, на которое следует ссылаться из целевого пространства кодирования. Устройство 1300 кодирования трехмерных данных определяет то, что вращение и перемещение в пространстве не должно обязательно выполняться, и деактивирует RT-флаг, когда значение ICP-ошибки ниже или равно предварительно определенному фиксированному значению. Напротив, устройство 1300 кодирования трехмерных данных активирует RT-флаг и присоединяет RT-информацию к потоку битов, когда значение ICP-ошибки превышает вышеуказанное фиксированное значение.
[0409] Фиг. 46 является схемой, показывающей примерный синтаксис, который должен присоединяться к заголовку RT-информации и RT-флагу. Следует отметить, что число битов, назначенное каждому синтаксису, может определяться на основе диапазона этого синтаксиса. Например, когда восемь опорных пространств включаются в опорный список L0, 3 бита могут назначаться MaxRefSpc_l0. Число битов, которое должно назначаться, может быть переменным в соответствии со значением, которое может принимать каждый синтаксис, а также может быть фиксированным независимо от значения, которое может принимать каждый синтаксис. Когда число битов, которое должно назначаться, является фиксированным, устройство 1300 кодирования трехмерных данных может присоединять это фиксированное число битов к другой информации заголовка.
[0410] MaxRefSpc_l0, показанный на фиг. 46, указывает число опорных пространств, включенных в опорный список L0. RT_flag_l0[i] представляет собой RT-флаг опорного пространства i в опорном списке L0. Когда RT_flag_l0[i] равен 1, вращение и перемещение в пространстве применяются к опорному пространству i. Когда RT_flag_l0[i] равен 0, вращение и перемещение в пространстве не применяются к опорному пространству i.
[0411] R_l0[i] и T_l0[i] представляют собой RT-информацию опорного пространства i в опорном списке L0. R_l0[i] представляет собой информацию вращения опорного пространства i в опорном списке L0. Информация вращения указывает контент применяемого процесса вращения и, например, представляет собой матрицу вращения или кватернион. T_l0[i] представляет собой информацию перемещения в пространстве опорного пространства i в опорном списке L0. Информация перемещения в пространстве указывает контент применяемого процесса перемещения в пространстве и, например, представляет собой вектор перемещения в пространстве.
[0412] MaxRefSpc_l1 указывает число опорных пространств, включенных в опорный список L1. RT_flag_l1[i] представляет собой RT-флаг опорного пространства i в опорном списке L1. Когда RT_flag_l1[i] равен 1, вращение и перемещение в пространстве применяются к опорному пространству i. Когда RT_flag_l1[i] равен 0, вращение и перемещение в пространстве не применяются к опорному пространству i.
[0413] R_l1[i] и T_l1[i] представляют собой RT-информацию опорного пространства i в опорном списке L1. R_l1[i] представляет собой информацию вращения опорного пространства i в опорном списке L1. Информация вращения указывает контент применяемого процесса вращения и, например, представляет собой матрицу вращения или кватернион. T_l1[i] представляет собой информацию перемещения в пространстве опорного пространства i в опорном списке L1. Информация перемещения в пространстве указывает контент применяемого процесса перемещения в пространстве и, например, представляет собой вектор перемещения в пространстве.
[0414] Модуль 1311 взаимного прогнозирования формирует прогнозированный объем целевого объема кодирования с использованием информации относительно кодированного опорного пространства, сохраненной в запоминающем устройстве 1310 опорных пространств. Как указано выше, до формирования прогнозированного объема для целевого объема кодирования, модуль 1311 взаимного прогнозирования вычисляет RT-информацию в целевом пространстве кодирования и опорном пространстве с использованием ICP-алгоритма, чтобы приближаться к полной позиционной взаимосвязи между целевым пространством кодирования и опорным пространством. Модуль 1311 взаимного прогнозирования затем получает опорное пространство B посредством применения процесса вращения и перемещения в пространстве к опорному пространству с использованием вычисленной RT-информации. Затем, модуль 1311 взаимного прогнозирования формирует прогнозированный объем целевого объема кодирования в целевом пространстве кодирования с использованием информации в опорном пространстве B. Устройство 1300 кодирования трехмерных данных присоединяет, к информации заголовка и т.п. целевого пространства кодирования, RT-информацию, используемую для того, чтобы получать опорное пространство B.
[0415] Таким образом, модуль 1311 взаимного прогнозирования допускает повышение точности прогнозированного объема посредством формирования прогнозированного объема с использованием информации опорного пространства, после приближения к полной позиционной взаимосвязи между целевым пространством кодирования и опорным пространством, посредством применения процесса вращения и перемещения в пространстве к опорному пространству. Можно уменьшать объем кода, поскольку можно ограничивать остаток прогнозирования. Следует отметить, что описан пример, в котором ICP выполняется с использованием целевого пространства кодирования и опорного пространства, но не обязательно ограничивается этим. Например, модуль 1311 взаимного прогнозирования может вычислять RT-информацию посредством выполнения ICP с использованием, по меньшей мере, одного из (i) целевого пространства кодирования, в котором число вокселов или облаков точек отсекается, или (ii) опорного пространства, в котором число вокселов или облаков точек отсекается, чтобы уменьшать объем обработки.
[0416] Когда значение ICP-ошибки, полученное в качестве результата ICP, меньше предварительно определенного первого порогового значения, т.е. когда, например, позиционная взаимосвязь между целевым пространством кодирования и опорным пространством является аналогичной, модуль 1311 взаимного прогнозирования определяет то, что процесс вращения и перемещения в пространстве не требуется, и процесс вращения и перемещения в пространстве не должен обязательно выполняться. В этом случае, устройство 1300 кодирования трехмерных данных может управлять объемом служебной информации без присоединения RT-информации к потоку битов.
[0417] Когда значение ICP-ошибки превышает предварительно определенное второе пороговое значение, модуль 1311 взаимного прогнозирования определяет то, что изменение формы между пространствами является большим, и внутреннее прогнозирование может применяться ко всем объемам целевого пространства кодирования. В дальнейшем в этом документе, пространства, к которым применяется внутреннее прогнозирование, называются "внутренними пространствами". Второе пороговое значение превышает вышеуказанное первое пороговое значение. Настоящий вариант осуществления не ограничен ICP, и любой тип способа может использоваться при условии, что способ вычисляет RT-информацию с использованием двух вокселных наборов или двух наборов облаков точек.
[0418] Когда информация атрибутов, например, информация формы или цветовая информация, включается в трехмерные данные, модуль 1311 взаимного прогнозирования выполняет поиск, например, объема, информация атрибутов которого, например, информация формы или цветовая информация, является наиболее аналогичной целевому объему кодирования в опорном пространстве, в качестве прогнозированного объема для целевого объема кодирования в целевом пространстве кодирования. Это опорное пространство, например, представляет собой опорное пространство, для которого выполнен вышеуказанный процесс вращения и перемещения в пространстве. Модуль 1311 взаимного прогнозирования формирует прогнозированный объем с использованием объема (опорного объема), полученного через поиск. Фиг. 47 является схемой для описания операции формирования прогнозированного объема. При кодировании целевого объема кодирования (idx объема=0), показанного на фиг. 47 с использованием взаимного прогнозирования, модуль 1311 взаимного прогнозирования выполняет поиск объема с наименьшим остатком прогнозирования, который представляет собой разность между целевым объемом кодирования и опорным объемом, при последовательном сканировании опорного объема в опорном пространстве. Модуль 1311 взаимного прогнозирования выбирает объем с наименьшим остатком прогнозирования в качестве прогнозированного объема. Остатки прогнозирования целевого объема кодирования и прогнозированного объема кодируются посредством процессов, выполняемых посредством преобразователя 1303 и последующих процессоров. Остаток прогнозирования здесь представляет собой разность между информацией атрибутов целевого объема кодирования и информацией атрибутов прогнозированного объема. Устройство 1300 кодирования трехмерных данных присоединяет, к заголовку и т.п. потока битов, idx объема опорного объема в опорном пространстве, в качестве прогнозированного объема.
[0419] В примере, показанном на фиг. 47, опорный объем с idx объема=4 из опорного пространства L0R0 выбирается в качестве прогнозированного объема для целевого объема кодирования. Остатки прогнозирования целевого объема кодирования и опорного объема и idx опорного объема=4 затем кодируются и присоединяются к потоку битов.
[0420] Следует отметить, что описан пример, в котором прогнозированный объем информации атрибутов формируется, но идентичный процесс может применяться к прогнозированному объему информации позиции.
[0421] Контроллер 1312 прогнозирования управляет тем, следует кодировать целевой объем кодирования с использованием внутреннего прогнозирования или взаимного прогнозирования. Режим, включающий в себя внутреннее прогнозирование и взаимное прогнозирование, называется здесь "режимом прогнозирования". Например, контроллер 1312 прогнозирования вычисляет остаток прогнозирования, когда целевой объем кодирования прогнозируется с использованием внутреннего прогнозирования, и остаток прогнозирования, когда целевой объем кодирования прогнозируется с использованием взаимного прогнозирования, в качестве значений оценки и выбирает режим прогнозирования, значение оценки которого меньше. Следует отметить, что контроллер 1312 прогнозирования может вычислять фактический объем кода посредством применения ортогонального преобразования, квантования и энтропийного кодирования к остатку прогнозирования внутреннего прогнозирования и к остатку прогнозирования взаимного прогнозирования и выбирать режим прогнозирования с использованием вычисленного объема кода в качестве значения оценки. Служебная информация (информация idx опорных объемов и т.д.), отличная от остатка прогнозирования, может добавляться в значение оценки. Контроллер 1312 прогнозирования может непрерывно выбирать внутреннее прогнозирование, когда заранее определена необходимость кодировать целевое пространство кодирования с использованием внутреннего пространства.
[0422] Энтропийный кодер 1313 формирует кодированный сигнал (кодированный поток битов) посредством кодирования переменной длины квантованного коэффициента, который представляет собой ввод из квантователя 1304. Конкретно, энтропийный кодер 1313, например, преобразует в двоичную форму квантованный коэффициент и арифметически кодирует получаемый двоичный сигнал.
[0423] Далее описывается устройство декодирования трехмерных данных, которое декодирует кодированный сигнал, сформированный посредством устройства 1300 кодирования трехмерных данных. Фиг. 48 является блок-схемой устройства 1400 декодирования трехмерных данных согласно настоящему варианту осуществления. Это устройство 1400 декодирования трехмерных данных включает в себя энтропийный декодер 1401, обратный квантователь 1402, обратный преобразователь 1403, сумматор 1404, запоминающее устройство 1405 опорных объемов, модуль 1406 внутреннего прогнозирования, запоминающее устройство 1407 опорных пространств, модуль 1408 взаимного прогнозирования и контроллер 1409 прогнозирования.
[0424] Энтропийный декодер 1401 декодирует на основе кода переменной длины кодированный сигнал (кодированный поток битов). Например, энтропийный декодер 1401 формирует двоичный сигнал посредством арифметического декодирования кодированного сигнала и формирует квантованный коэффициент с использованием сформированного двоичного сигнала.
[0425] Обратный квантователь 1402 формирует обратно квантованный коэффициент посредством обратного квантования квантованного коэффициента, введенного из энтропийного декодера 1401, с использованием параметра квантования, присоединенного к потоку битов, и т.п.
[0426] Обратный преобразователь 1403 формирует остаток прогнозирования посредством обратного преобразования обратно квантованного коэффициента, введенного из обратного квантователя 1402. Например, обратный преобразователь 1403 формирует остаток прогнозирования посредством обратного ортогонального преобразования обратно квантованного коэффициента, на основе информации, присоединенной к потоку битов.
[0427] Сумматор 1404 суммирует, чтобы формировать восстановленный объем, (i) остаток прогнозирования, сформированный посредством обратного преобразователя 1403, с (ii) прогнозированным объемом, сформированным через внутреннее прогнозирование или внутреннее прогнозирование. Этот восстановленный объем выводится в качестве декодированных трехмерных данных и сохраняется в запоминающем устройстве 1405 опорных объемов или запоминающем устройстве 1407 опорных пространств.
[0428] Модуль 1406 внутреннего прогнозирования формирует прогнозированный объем через внутреннее прогнозирование с использованием опорного объема в запоминающем устройстве 1405 опорных объемов и информации, присоединенной к потоку битов. Конкретно, модуль 1406 внутреннего прогнозирования получает информацию соседних объемов (например, idx объема), присоединенную к потоку битов, и информацию режима прогнозирования и формирует прогнозированный объем через режим, указываемый посредством информации режима прогнозирования, с использованием соседнего объема, указываемого в информации соседних объемов. Следует отметить, что конкретика этих процессов является идентичной вышеуказанным процессам, выполняемым посредством модуля 1309 внутреннего прогнозирования, за исключением того, для чего используется информация, присоединенная к потоку битов.
[0429] Модуль 1408 взаимного прогнозирования формирует прогнозированный объем через взаимное прогнозирование с использованием опорного пространства в запоминающем устройстве 1407 опорных пространств и информации, присоединенной к потоку битов. Конкретно, модуль 1408 взаимного прогнозирования применяет процесс вращения и перемещения в пространстве к опорному пространству с использованием RT-информации в расчете на опорное пространство, присоединенной к потоку битов, и формирует прогнозированный объем с использованием опорного пространства после вращения и перемещения в пространстве. Следует отметить, что, когда RT-флаг присутствует в потоке битов в расчете на опорное пространство, модуль 1408 взаимного прогнозирования применяет процесс вращения и перемещения в пространстве к опорному пространству в соответствии с RT-флагом. Следует отметить, что конкретика этих процессов является идентичной вышеуказанным процессам, выполняемым посредством модуля 1311 взаимного прогнозирования, за исключением того, для чего используется информация, присоединенная к потоку битов.
[0430] Контроллер 1409 прогнозирования управляет тем, следует декодировать целевой объем декодирования с использованием внутреннего прогнозирования или взаимного прогнозирования. Например, контроллер 1409 прогнозирования выбирает внутреннее прогнозирование или взаимное прогнозирование в соответствии с информацией, которая присоединяется к потоку битов, и указывает режим прогнозирования, который должен использоваться. Следует отметить, что контроллер 1409 прогнозирования может непрерывно выбирать внутреннее прогнозирование, когда заранее определена необходимость декодировать целевое пространство декодирования с использованием внутреннего пространства.
[0431] В дальнейшем в этом документе описываются варьирования настоящего варианта осуществления. В настоящем варианте осуществления, описан пример, в котором вращение и перемещение в пространстве применяется в единицах пространств, но вращение и перемещение в пространстве также может применяться в меньших единицах. Например, устройство 1300 кодирования трехмерных данных может разделять пространство на подпространства и применять вращение и перемещение в пространстве в единицах подпространств. В этом случае, устройство 1300 кодирования трехмерных данных формирует RT-информацию в расчете на подпространство и присоединяет сформированную RT-информацию к заголовку и т.п. потока битов. Устройство 1300 кодирования трехмерных данных может применять вращение и перемещение в пространстве в единицах объемов, которые представляют собой единицу кодирования. В этом случае, устройство 1300 кодирования трехмерных данных формирует RT-информацию в единицах кодированных объемов и присоединяет сформированную RT-информацию к заголовку и т.п. потока битов. Вышеуказанное также может комбинироваться. Другими словами, устройство 1300 кодирования трехмерных данных может применять вращение и перемещение в пространстве в больших единицах и затем применять вращение и перемещение в пространстве в небольших единицах. Например, устройство 1300 кодирования трехмерных данных может применять вращение и перемещение в пространстве в единицах пространств, а также может применять различные вращения и перемещения в пространстве к каждому из множества объемов, включенных в полученные пространства.
[0432] В настоящем варианте осуществления, описан пример, в котором вращение и перемещение в пространстве применяется к опорному пространству, но не обязательно ограничивается этим. Например, устройство 1300 кодирования трехмерных данных может применять процесс масштабирования и изменять размер трехмерных данных. Устройство 1300 кодирования трехмерных данных также может применять одно или два из вращения, перемещения в пространстве и масштабирования. При применении процессов на нескольких стадиях и различных единицах, как указано выше, тип процессов, применяемых в каждой единице, может отличаться. Например, вращение и перемещение в пространстве может применяться в единицах пространств, и перемещение в пространстве может применяться в единицах объемов.
[0433] Следует отметить, что эти варьирования также являются применимыми к устройству 1400 декодирования трехмерных данных.
[0434] Как указано выше, устройство 1300 кодирования трехмерных данных согласно настоящему варианту осуществления выполняет следующие процессы. Фиг. 48 является блок-схемой последовательности операций способа для процесса взаимного прогнозирования, выполняемого посредством устройства 1300 кодирования трехмерных данных.
[0435] Устройство 1300 кодирования трехмерных данных формирует прогнозированную информацию позиции (например, прогнозированный объем) с использованием информации позиции относительно трехмерных точек, включенных в трехмерные опорные данные (например, опорное пространство), ассоциированные со временем, отличающимся от времени, ассоциированного с текущими трехмерными данными (например, целевым пространством кодирования) (S1301). Конкретно, устройство 1300 кодирования трехмерных данных формирует прогнозированную информацию позиции посредством применения процесса вращения и перемещения в пространстве к информации позиции относительно трехмерных точек, включенных в трехмерные опорные данные.
[0436] Следует отметить, что устройство 1300 кодирования трехмерных данных может выполнять процесс вращения и перемещения в пространстве с использованием первой единицы (например, пространств) и может выполнять формирование прогнозированной информации позиции с использованием второй единицы (например, объемов), которая меньше первой единицы. Например, устройство 1300 кодирования трехмерных данных выполняет поиск объема из множества объемов, включенных в опорное пространство после вращения и перемещения в пространстве, информация позиции которого отличается меньше всего от информации позиции целевого объема кодирования, включенного в целевое пространство кодирования. Следует отметить, что устройство 1300 кодирования трехмерных данных может выполнять процесс вращения и перемещения в пространстве и формирование прогнозированной информации позиции в идентичной единице.
[0437] Устройство 1300 кодирования трехмерных данных может формировать прогнозированную информацию позиции посредством применения (i) первого процесса вращения и перемещения в пространстве к информации позиции относительно трехмерных точек, включенных в трехмерные опорные данные, и (ii) второго процесса вращения и перемещения в пространстве к информации позиции относительно трехмерных точек, полученной через первый процесс вращения и перемещения в пространстве, причем первый процесс вращения и перемещения в пространстве использует первую единицу (например, пространства), и причем второй процесс вращения и перемещения в пространстве использует вторую единицу (например, объемы), которая меньше первой единицы.
[0438] Например, как проиллюстрировано на фиг. 41, информация позиции относительно трехмерных точек и прогнозированная информация позиции представляется с использованием структуры в виде дерева октантов. Например, информация позиции относительно трехмерных точек и прогнозированная информация позиции выражается в порядке сканирования, который приоритезирует широту выше глубины в структуре в виде дерева октантов. Например, информация позиции относительно трехмерных точек и прогнозированная информация позиции выражается в порядке сканирования, который приоритезирует глубину выше широты в структуре в виде дерева октантов.
[0439] Как проиллюстрировано на фиг. 46, устройство 1300 кодирования трехмерных данных кодирует RT-флаг, который указывает то, следует или нет применять процесс вращения и перемещения в пространстве к информации позиции относительно трехмерных точек, включенных в трехмерные опорные данные. Другими словами, устройство 1300 кодирования трехмерных данных формирует кодированный сигнал (кодированный поток битов), включающий в себя RT-флаг. Устройство 1300 кодирования трехмерных данных кодирует RT-информацию, которая указывает контент процесса вращения и перемещения в пространстве. Другими словами, устройство 1300 кодирования трехмерных данных формирует кодированный сигнал (кодированный поток битов), включающий в себя RT-информацию. Следует отметить, что устройство 1300 кодирования трехмерных данных может кодировать RT-информацию, когда RT-флаг указывает необходимость применять процесс вращения и перемещения в пространстве, и не должен обязательно кодировать RT-информацию, когда RT-флаг указывает необходимость не применять процесс вращения и перемещения в пространстве.
[0440] Трехмерные данные включают в себя, например, информацию позиции относительно трехмерных точек и информацию атрибутов (цветовую информацию и т.д.) каждой трехмерной точки. Устройство 1300 кодирования трехмерных данных формирует прогнозированную информацию атрибутов с использованием информации атрибутов трехмерных точек, включенных в трехмерные опорные данные (S1302).
[0441] Устройство 1300 кодирования трехмерных данных затем кодирует информацию позиции относительно трехмерных точек, включенных в текущие трехмерные данные, с использованием прогнозированной информации позиции. Например, как проиллюстрировано на фиг. 38, устройство 1300 кодирования трехмерных данных вычисляет дифференциальную информацию позиции, причем дифференциальная информация позиции представляет собой разность между прогнозированной информацией позиции и информацией позиции относительно трехмерных точек, включенных в текущие трехмерные данные (S1303).
[0442] Устройство 1300 кодирования трехмерных данных кодирует информацию атрибутов трехмерных точек, включенных в текущие трехмерные данные, с использованием прогнозированной информации атрибутов. Например, устройство 1300 кодирования трехмерных данных вычисляет дифференциальную информацию атрибутов, причем дифференциальная информация атрибутов представляет собой разность между прогнозированной информацией атрибутов и информацией атрибутов относительно трехмерных точек, включенных в текущие трехмерные данные (S1304). Устройство 1300 кодирования трехмерных данных затем выполняет преобразование и квантование для вычисленной дифференциальной информации атрибутов (S1305).
[0443] В завершение, устройство 1300 кодирования трехмерных данных кодирует (например, энтропийно кодирует) дифференциальную информацию позиции и квантованную дифференциальную информацию атрибутов (S1036). Другими словами, устройство 1300 кодирования трехмерных данных формирует кодированный сигнал (кодированный поток битов), включающий в себя дифференциальную информацию позиции и дифференциальную информацию атрибутов.
[0444] Следует отметить, что, когда информация атрибутов не включается в трехмерные данные, устройство 1300 кодирования трехмерных данных не должно обязательно выполнять этапы S1302, S1304 и S1305. Устройство 1300 кодирования трехмерных данных также может выполнять только одно из кодирования информации позиции относительно трехмерных точек и кодирования информации атрибутов трехмерных точек.
[0445] Порядок процессов, показанных на фиг. 49, представляет собой просто пример и не ограничен этим. Например, поскольку процессы относительно информации позиции (S1301 и S1303) и процессы относительно информации атрибутов (S1302, S1304 и S1305) являются отдельными друг от друга, они могут выполняться в предпочтительном порядке, и их часть также может выполняться параллельно.
[0446] В силу вышеуказанного, устройство 1300 кодирования трехмерных данных согласно настоящему варианту осуществления формирует прогнозированную информацию позиции с использованием информации позиции относительно трехмерных точек, включенных в трехмерные опорные данные, ассоциированные со временем, отличающимся от времени, ассоциированного с текущими трехмерными данными; и кодирует дифференциальную информацию позиции, которая представляет собой разность между прогнозированной информацией позиции и информацией позиции относительно трехмерных точек, включенных в текущие трехмерные данные. Это позволяет повышать эффективность кодирования, поскольку можно уменьшать объем данных кодированного сигнала.
[0447] Устройство 1300 кодирования трехмерных данных согласно настоящему варианту осуществления формирует прогнозированную информацию атрибутов с использованием информации атрибутов относительно трехмерных точек, включенных в трехмерные опорные данные; и кодирует дифференциальную информацию атрибутов, которая представляет собой разность между прогнозированной информацией атрибутов и информацией атрибутов относительно трехмерных точек, включенных в текущие трехмерные данные. Это позволяет повышать эффективность кодирования, поскольку можно уменьшать объем данных кодированного сигнала.
[0448] Например, устройство 1300 кодирования трехмерных данных включает в себя процессор и запоминающее устройство. Процессор использует запоминающее устройство для того, чтобы выполнять вышеуказанные процессы.
[0449] Фиг. 48 является блок-схемой последовательности операций способа для процесса взаимного прогнозирования, выполняемого посредством устройства 1400 декодирования трехмерных данных.
[0450] Устройство 1400 декодирования трехмерных данных декодирует (например, энтропийно декодирует) дифференциальную информацию позиции и дифференциальную информацию атрибутов из кодированного сигнала (кодированного потока битов) (S1401).
[0451] Устройство 1400 декодирования трехмерных данных декодирует, из кодированного сигнала, RT-флаг, который указывает то, следует или нет применять процесс вращения и перемещения в пространстве к информации позиции относительно трехмерных точек, включенных в трехмерные опорные данные. Устройство 1400 декодирования трехмерных данных кодирует RT-информацию, которая указывает контент процесса вращения и перемещения в пространстве. Следует отметить, что устройство 1400 декодирования трехмерных данных может декодировать RT-информацию, когда RT-флаг указывает необходимость применять процесс вращения и перемещения в пространстве, и не должен обязательно декодировать RT-информацию, когда RT-флаг указывает необходимость не применять процесс вращения и перемещения в пространстве.
[0452] Устройство 1400 декодирования трехмерных данных затем выполняет обратное преобразование и обратное квантование для декодированной дифференциальной информации атрибутов (S1402).
[0453] Устройство 1400 декодирования трехмерных данных затем формирует прогнозированную информацию позиции (например, прогнозированный объем) с использованием информации позиции относительно трехмерных точек, включенных в трехмерные опорные данные (например, опорное пространство), ассоциированные со временем, отличающимся от времени, ассоциированного с текущими трехмерными данными (например, целевым пространством декодирования) (S1403). Конкретно, устройство 1400 декодирования трехмерных данных формирует прогнозированную информацию позиции посредством применения процесса вращения и перемещения в пространстве к информации позиции относительно трехмерных точек, включенных в трехмерные опорные данные.
[0454] Более конкретно, когда RT-флаг указывает необходимость применять процесс вращения и перемещения в пространстве, устройство 1400 декодирования трехмерных данных применяет процесс вращения и перемещения в пространстве к информации позиции относительно трехмерных точек, включенных в трехмерные опорные данные, указываемые в RT-информации. Напротив, когда RT-флаг указывает необходимость не применять процесс вращения и перемещения в пространстве, устройство 1400 декодирования трехмерных данных не применяет процесс вращения и перемещения в пространстве к информации позиции относительно трехмерных точек, включенных в трехмерные опорные данные.
[0455] Следует отметить, что устройство 1400 декодирования трехмерных данных может выполнять процесс вращения и перемещения в пространстве с использованием первой единицы (например, пространств) и может выполнять формирование прогнозированной информации позиции с использованием второй единицы (например, объемов), которая меньше первой единицы. Следует отметить, что устройство 1400 декодирования трехмерных данных может выполнять процесс вращения и перемещения в пространстве и формирование прогнозированной информации позиции в идентичной единице.
[0456] Устройство 1400 декодирования трехмерных данных может формировать прогнозированную информацию позиции посредством применения (i) первого процесса вращения и перемещения в пространстве к информации позиции относительно трехмерных точек, включенных в трехмерные опорные данные, и (ii) второго процесса вращения и перемещения в пространстве к информации позиции относительно трехмерных точек, полученной через первый процесс вращения и перемещения в пространстве, причем первый процесс вращения и перемещения в пространстве использует первую единицу (например, пространства), и причем второй процесс вращения и перемещения в пространстве использует вторую единицу (например, объемы), которая меньше первой единицы.
[0457] Например, как проиллюстрировано на фиг. 41, информация позиции относительно трехмерных точек и прогнозированная информация позиции представляется с использованием структуры в виде дерева октантов. Например, информация позиции относительно трехмерных точек и прогнозированная информация позиции выражается в порядке сканирования, который приоритезирует широту выше глубины в структуре в виде дерева октантов. Например, информация позиции относительно трехмерных точек и прогнозированная информация позиции выражается в порядке сканирования, который приоритезирует глубину выше широты в структуре в виде дерева октантов.
[0458] Устройство 1400 декодирования трехмерных данных формирует прогнозированную информацию атрибутов с использованием информации атрибутов трехмерных точек, включенных в трехмерные опорные данные (S1404).
[0459] Устройство 1400 декодирования трехмерных данных затем восстанавливает информацию позиции относительно трехмерных точек, включенных в текущие трехмерные данные, посредством декодирования кодированной информации позиции, включенной в кодированный сигнал, с использованием прогнозированной информации позиции. Кодированная информация позиции здесь представляет собой дифференциальную информацию позиции. Устройство 1400 декодирования трехмерных данных восстанавливает информацию позиции относительно трехмерных точек, включенных в текущие трехмерные данные, посредством добавления дифференциальной информации позиции в прогнозированную информацию позиции (S1405).
[0460] Устройство 1400 декодирования трехмерных данных восстанавливает информацию атрибутов трехмерных точек, включенных в текущие трехмерные данные, посредством декодирования кодируемой информации атрибутов, включенной в кодированный сигнал, с использованием прогнозированной информации атрибутов. Кодированная информация атрибутов здесь представляет собой дифференциальную информацию позиции. Устройство 1400 декодирования трехмерных данных восстанавливает информацию атрибутов относительно трехмерных точек, включенных в текущие трехмерные данные, посредством добавления дифференциальной информации атрибутов в прогнозированную информацию атрибутов (S1406).
[0461] Следует отметить, что, когда информация атрибутов не включается в трехмерные данные, устройство 1400 декодирования трехмерных данных не должно обязательно выполнять этапы S1402, S1404 и S1406. Устройство 1400 декодирования трехмерных данных также может выполнять только одно из декодирования информации позиции относительно трехмерных точек и декодирования информации атрибутов трехмерных точек.
[0462] Порядок процессов, показанных на фиг. 50, представляет собой просто пример и не ограничен этим. Например, поскольку процессы относительно информации позиции (S1403 и S1405) и процессы относительно информации атрибутов (S1402, S1404 и S1406) являются отдельными друг от друга, они могут выполняться в предпочтительном порядке, и их часть также может выполняться параллельно.
[0463] Вариант 8 осуществления
В настоящем варианте осуществления, в дальнейшем описывается способ управления ссылкой, когда код заполнения кодируется. Следует отметить, что хотя далее описывается, главным образом, работа устройства кодирования трехмерных данных, устройство декодирования трехмерных данных может выполнять идентичный процесс.
[0464] Фиг. 51 и фиг. 52 являются схемой, иллюстрирующей опорную взаимосвязь согласно настоящему варианту осуществления. В частности, фиг. 51 является схемой, иллюстрирующей опорную взаимосвязь в структуре в виде дерева октантов, и фиг. 52 является схемой, иллюстрирующей опорную взаимосвязь в пространственной области.
[0465] В настоящем варианте осуществления, когда устройство кодирования трехмерных данных кодирует информацию кодирования текущего узла, который должен кодироваться (в дальнейшем называется "текущим узлом"), устройство кодирования трехмерных данных ссылается на информацию кодирования каждого узла в родительском узле, которому принадлежит текущий узел. Тем не менее, в этом отношении, устройство трехмерного кодирования не ссылается на информацию кодирования каждого узла в другом узле (в дальнейшем называется "родительским соседним узлом"), который находится в слое, идентичном слою родительского узла. Другими словами, устройство кодирования трехмерных данных деактивирует или запрещает ссылку на родительский соседний узел.
[0466] Следует отметить, что устройство кодирования трехмерных данных может разрешать ссылку на информацию кодирования родительского узла (в дальнейшем также называется "прародительским узлом") относительно родительского узла. Другими словами, устройство кодирования трехмерных данных может кодировать информацию кодирования текущего узла со ссылкой на информацию кодирования каждого прародительского узла и родительского узла, которым принадлежит текущий узел.
[0467] Здесь, информация кодирования, например, представляет собой код заполнения. Когда устройство кодирования трехмерных данных кодирует код заполнения текущего узла, устройство кодирования трехмерных данных ссылается на информацию (в дальнейшем называемую "информацией заполнения"), указывающую то, включается или нет облако точек в каждый узел в родительском узле, которому принадлежит текущий узел. Иначе говоря, когда устройство кодирования трехмерных данных кодирует код заполнения текущего узла, устройство кодирования трехмерных данных ссылается на код заполнения родительского узла. С другой стороны, устройство кодирования трехмерных данных не ссылается на информацию заполнения каждого узла в родительском соседнем узле. Другими словами, устройство кодирования трехмерных данных не ссылается на код заполнения родительского соседнего узла. Кроме того, устройство кодирования трехмерных данных может ссылаться на информацию заполнения каждого узла в прародительском узле. Другими словами, устройство кодирования трехмерных данных может ссылаться на информацию заполнения каждого из родительского узла и родительского соседнего узла.
[0468] Например, когда устройство кодирования трехмерных данных кодирует код заполнения текущего узла, устройство кодирования трехмерных данных выбирает таблицу кодирования, которая должна использоваться для энтропийного кодирования кода заполнения текущего узла, с использованием кода заполнения прародительского узла или родительского узла, которому принадлежит текущий узел. Следует отметить, что подробности описываются ниже. В это время, устройство кодирования трехмерных данных не должно обязательно ссылаться на код заполнения родительского соседнего узла. Поскольку это обеспечивает возможностью устройству кодирования трехмерных данных, при кодировании кода заполнения текущего узла, надлежащим образом выбирать таблицу кодирования согласно информации кода заполнения родительского узла или прародительского узла, устройство кодирования трехмерных данных может повышать эффективность кодирования. Кроме того, посредством отсутствия ссылки на соседний узел, устройство кодирования трехмерных данных может подавлять процесс проверки информации родительского соседнего узла и уменьшать емкость запоминающего устройства для сохранения информации. Кроме того, сканирование кода заполнения каждого узла дерева октантов в порядке в глубину упрощает кодирование.
[0469] Далее описывается пример выбора таблицы кодирования с использованием кода заполнения родительского узла. Фиг. 53 является схемой, иллюстрирующей пример текущего узла и соседних опорных узлов. Фиг. 54 является схемой, иллюстрирующей взаимосвязь между родительским узлом и узлами. Фиг. 55 является схемой, иллюстрирующей пример кода заполнения родительского узла. Здесь, соседний опорный узел представляет собой узел, на который ссылаются, когда текущий узел кодируется, из числа узлов, пространственно соседних с текущим узлом. В примере, показанном на фиг. 53, соседние узлы принадлежат слою, идентичному слою текущего узла. Кроме того, узел X, соседний с текущим узлом в направлении по оси X, узел Y, соседний с текущим блоком в направлении по оси Y, и узел Z, соседний с текущим блоком в направлении по оси Z, используются в качестве опорных соседних узлов. Другими словами, один соседний узел задается в качестве опорного соседнего узла в каждом из направлений по оси X, Y и Z.
[0470] Следует отметить, что номера узлов, показанные на фиг. 54, представляют собой один пример, и взаимосвязь между номерами узлов и позициями узлов не ограничена взаимосвязью, показанной на фиг. 54. Хотя узел 0 назначается биту низшего порядка, и узел 7 назначается биту высшего порядка на фиг. 55, назначения могут проводиться в обратном порядке. Помимо этого, каждый узел может назначаться любому биту.
[0471] Устройство кодирования трехмерных данных определяет таблицу кодирования, которая должна использоваться, когда устройство кодирования трехмерных данных энтропийно кодирует код заполнения текущего узла, например, с использованием следующего уравнения.
[0472] CodingTable = (FlagX<<2)+(FlagY<<1)+(FlagZ)
[0473] Здесь, CodingTable указывает таблицу кодирования для кода заполнения текущего узла и указывает одно из значений в пределах от 0 до 7. FlagX представляет собой информацию заполнения соседнего узла X. FlagX указывает 1, когда соседний узел X включает в себя облако точек (является занятым), и указывает 0, когда он не включает. FlagY представляет собой информацию заполнения соседнего узла Y. FlagY указывает 1, когда соседний узел Y включает в себя облако точек (является занятым), и указывает 0, когда он не включает. FlagZ представляет собой информацию заполнения соседнего узла Z. FlagZ указывает 1, когда соседний узел Z включает в себя облако точек (является занятым), и указывает 0, когда он не включает.
[0474] Следует отметить, что поскольку информация, указывающая то, является или нет соседний узел занятым, включается в код заполнения родительского узла, устройство кодирования трехмерных данных может выбирать таблицу кодирования с использованием значения, указываемого посредством кода заполнения родительского узла.
[0475] Из вышеописанного, устройство кодирования трехмерных данных может повышать эффективность кодирования посредством выбора таблицы кодирования с использованием информации, указывающей то, включает или нет соседний узел для текущего узла в себя облако точек.
[0476] Кроме того, как проиллюстрировано на фиг. 53, устройство кодирования трехмерных данных может выбирать соседний опорный узел согласно пространственной позиции текущего узла в родительском узле. Другими словами, устройство кодирования трехмерных данных может выбирать соседний узел, на который следует ссылаться из соседних узлов, согласно пространственной позиции текущего узла в родительском узле.
[0477] Далее описываются примеры конфигураций устройства кодирования трехмерных данных и устройства декодирования трехмерных данных. Фиг. 56 является блок-схемой устройства 2100 кодирования трехмерных данных согласно настоящему варианту осуществления. Устройство 2100 кодирования трехмерных данных, проиллюстрированное на фиг. 56, включает в себя формирователь 2101 деревьев октантов, модуль 2102 вычисления геометрической информации, модуль 2103 выбора таблиц кодирования и энтропийный кодер 2104.
[0478] Формирователь 2101 деревьев октантов формирует, например, дерево октантов из введенных трехмерных точек (облака точек) и формирует код заполнения для каждого узла, включенного в дерево октантов. Модуль 2102 вычисления геометрической информации получает информацию заполнения, указывающую то, является или нет соседний опорный узел для текущего узла занятым. Например, модуль 2102 вычисления геометрической информации получает информацию заполнения соседнего опорного узла из кода заполнения родительского узла, которому принадлежит текущий узел. Следует отметить, что, как проиллюстрировано на фиг. 53, модуль 2102 вычисления геометрической информации может выбирать соседний опорный узел согласно позиции текущего узла в родительском узле. Помимо этого, модуль 2102 вычисления геометрической информации не ссылается на информацию заполнения каждого узла в родительском соседнем узле.
[0479] Модуль 2103 выбора таблиц кодирования выбирает таблицу кодирования, которая должна использоваться для энтропийного кодирования кода заполнения текущего узла, с использованием информации заполнения соседнего опорного узла, вычисленной посредством модуля 2102 вычисления геометрической информации. Энтропийный кодер 2104 формирует поток битов посредством энтропийного кодирования кода заполнения с использованием выбранной таблицы кодирования. Следует отметить, что энтропийный кодер 2104 может присоединять, к потоку битов, информацию, указывающую выбранную таблицу кодирования.
[0480] Фиг. 57 является блок-схемой устройства 2110 декодирования трехмерных данных согласно настоящему варианту осуществления. Устройство 2110 декодирования трехмерных данных, проиллюстрированное на фиг. 57, включает в себя формирователь 2111 деревьев октантов, модуль 2112 вычисления геометрической информации, модуль 2113 выбора таблиц кодирования и энтропийный декодер 2114.
[0481] Формирователь 2111 деревьев октантов формирует дерево октантов пространства (узлов) с использованием информации заголовка потока битов и т.д. Формирователь 2111 деревьев октантов формирует дерево октантов, например, посредством формирования большого пространства (корневого узла) с использованием размера пространства вдоль направлений по оси X, по оси Z и по оси Y, присоединенных к информации заголовка, и формирования восьми небольших пространств A (узлов A0-A7) посредством разделения пространства на два вдоль каждого из направлений по оси X, по оси Z и по оси Y. Узлы A0-A7 задаются в качестве текущего узла в последовательности.
[0482] Модуль 2112 вычисления геометрической информации получает информацию заполнения, указывающую то, является или нет соседний опорный узел для текущего узла занятым. Например, модуль 2112 вычисления геометрической информации получает информацию заполнения соседнего опорного узла из кода заполнения родительского узла, которому принадлежит текущий узел. Следует отметить, что, как проиллюстрировано на фиг. 53, модуль 2112 вычисления геометрической информации может выбирать соседний опорный узел согласно позиции текущего узла в родительском узле. Помимо этого, модуль 2112 вычисления геометрической информации не ссылается на информацию заполнения каждого узла в родительском соседнем узле.
[0483] Модуль 2113 выбора таблиц кодирования выбирает таблицу кодирования (таблицу декодирования), которая должна использоваться для энтропийного декодирования кода заполнения текущего узла, с использованием информации заполнения соседнего опорного узла, вычисленной посредством модуля 2112 вычисления геометрической информации. Энтропийный декодер 2114 формирует трехмерные точки посредством энтропийного декодирования кода заполнения с использованием выбранной таблицы кодирования. Следует отметить, что модуль 2113 выбора таблиц кодирования может получать, посредством выполнения декодирования, информацию выбранной таблицы кодирования, присоединенной к потоку битов, и энтропийный декодер 2114 может использовать таблицу кодирования, указываемую посредством полученной информации.
[0484] Каждый бит кода заполнения (8 битов), включенного в поток битов, указывает то, включает или нет соответствующее одно из восьми небольших пространств A (узлов A0-A7) в себя облако точек. Кроме того, устройство декодирования трехмерных данных формирует дерево октантов посредством разделения узла A0 небольшого пространства на восемь небольших пространств B (узлов B0-B7) и получает информацию, указывающую то, включает или нет каждый узел небольшого пространства B в себя облако точек, посредством декодирования кода заполнения. Таким образом, устройство декодирования трехмерных данных декодирует код заполнения каждого узла при формировании дерева октантов посредством разделения большого пространства на небольшие пространства.
[0485] Далее описываются процедуры для процессов, выполняемых посредством устройства кодирования трехмерных данных и устройства декодирования трехмерных данных. Фиг. 58 является блок-схемой последовательности операций способа для процесса кодирования трехмерных данных в устройстве кодирования трехмерных данных. Во-первых, устройство кодирования трехмерных данных определяет (задает) пространство (текущий узел), включающее в себя часть или все введенное облако трехмерных точек (S2101). Затем, устройство кодирования трехмерных данных формирует восемь небольших пространств (узлов) посредством разделения текущего узла на восемь (S2102). После этого устройство кодирования трехмерных данных формирует код заполнения для текущего узла согласно тому, включает или нет каждый узел в себя облако точек (S2103).
[0486] После этого, устройство кодирования трехмерных данных вычисляет (получает) информацию заполнения соседнего опорного узла для текущего узла из кода заполнения родительского узла для текущего узла (S2104). Затем, устройство кодирования трехмерных данных выбирает таблицу кодирования, которая должна использоваться для энтропийного кодирования, на основе вычисленной информации заполнения соседнего опорного узла для текущего узла (S2105). После этого устройство кодирования трехмерных данных энтропийно кодирует код заполнения текущего узла с использованием выбранной таблицы кодирования (S2106).
[0487] В завершение, устройство кодирования трехмерных данных повторяет процесс разделения каждого узла на восемь и кодирования кода заполнения узла до тех пор, пока узел не может разделяться (S2107). Другими словами, этапы S2102-S2106 рекурсивно повторяются.
[0488] Фиг. 59 является блок-схемой последовательности операций способа для процесса декодирования трехмерных данных в устройстве декодирования трехмерных данных. Во-первых, устройство декодирования трехмерных данных определяет (задает) пространство (текущий узел), которое должно декодироваться, с использованием информации заголовка потока битов (S2111). Затем, устройство декодирования трехмерных данных формирует восемь небольших пространств (узлов) посредством разделения текущего узла на восемь (S2112). После этого устройство декодирования трехмерных данных вычисляет (получает) информацию заполнения соседнего опорного узла для текущего узла из кода заполнения родительского узла для текущего узла (S2113).
[0489] После этого, устройство декодирования трехмерных данных выбирает таблицу кодирования, которая должна использоваться для энтропийного декодирования, на основе информации заполнения соседнего опорного узла (S2114). Затем, устройство декодирования трехмерных данных энтропийно декодирует код заполнения текущего узла с использованием выбранной таблицы кодирования (S2115).
[0490] В завершение, устройство декодирования трехмерных данных повторяет процесс разделения каждого узла на восемь и декодирования кода заполнения узла до тех пор, пока узел не может разделяться (S2116). Другими словами, этапы S2112-S2115 рекурсивно повторяются.
[0491] Далее описывается пример выбора таблицы кодирования. Фиг. 60 является схемой, иллюстрирующей пример выбора таблицы кодирования. Например, аналогично таблице 0 кодирования, показанной на фиг. 60, идентичный контекстный режим может применяться к кодам заполнения. Кроме того, другая контекстная модель может назначаться каждому коду заполнения. Поскольку это обеспечивает возможность назначения контекстной модели в соответствии с вероятностью появления кода заполнения, можно повышать эффективность кодирования. Кроме того, может использоваться контекстный режим, который обновляет таблицу вероятностей в соответствии с частотой возникновения кода заполнения. Альтернативно, может использоваться контекстная модель, имеющая фиксированную таблицу вероятностей.
[0492] В дальнейшем в этом документе описывается варьирование 1 настоящего варианта осуществления. Фиг. 61 является схемой, иллюстрирующей опорную взаимосвязь в настоящем варьировании. Хотя устройство кодирования трехмерных данных не ссылается на код заполнения родительского соседнего узла в вышеописанном варианте осуществления, устройство кодирования трехмерных данных может переключать то, следует или нет ссылаться на код заполнения родительского соседнего узла, согласно конкретному условию.
[0493] Например, когда устройство кодирования трехмерных данных кодирует дерево октантов при сканировании дерева октантов в ширину, устройство кодирования трехмерных данных кодирует код заполнения текущего узла со ссылкой на информацию заполнения узла в родительском соседнем узле. Напротив, когда устройство кодирования трехмерных данных кодирует дерево октантов при сканировании дерева октантов в глубину, устройство кодирования трехмерных данных запрещает ссылку на информацию заполнения узла в родительском соседнем узле. Посредством соответствующего выбора допускающего ссылку узла согласно порядку сканирования (порядку кодирования) узлов дерева октантов вышеуказанным способом, можно повышать эффективность кодирования и снижать нагрузку по обработке.
[0494] Следует отметить, что устройство кодирования трехмерных данных может присоединять, к заголовку потока битов, информацию, указывающую например, то, кодируется дерево октантов в ширину или в глубину. Фиг. 62 является схемой, иллюстрирующей пример синтаксиса информации заголовка в этом случае; octree_scan_order, показанный на фиг. 62, представляет собой информацию порядка кодирования (флаг порядка кодирования), указывающую порядок кодирования для дерева октантов. Например, когда octree_scan_order равен 0, указывается "в ширину", а когда octree_scan_order равен 1, указывается "в глубину". Поскольку это обеспечивает возможность устройству декодирования трехмерных данных определять то, кодирован либо нет поток битов в ширину или в глубину, со ссылкой на octree_scan_order, устройство декодирования трехмерных данных может надлежащим образом декодировать поток битов
[0495] Кроме того, устройство кодирования трехмерных данных может присоединять, к информации заголовка потока битов, информацию, указывающую то, следует или нет запрещать ссылку на родительский соседний узел. Фиг. 63 является схемой, иллюстрирующей пример синтаксиса информации заголовка в этом случае; limit_refer_flag представляет собой информацию переключения запрета (флаг переключения запрета), указывающую то, следует или нет запрещать ссылку на родительский соседний узел. Например, когда limit_refer_flag равен 1, запрет ссылки на родительский соседний узел указывается, а когда limit_refer_flag равен 0, ограничение по ссылке (разрешение ссылки на родительский соседний узел) не указывается.
[0496] Другими словами, устройство кодирования трехмерных данных определяет то, следует или нет запрещать ссылку на родительский соседний узел, и выбирает то, следует запрещать или разрешать ссылку на родительский соседний узел, на основе результата вышеуказанного определения. Помимо этого, устройство кодирования трехмерных данных формирует поток битов, включающий в себя информацию переключения запрета, которая указывает результат определения и указывает то, следует или нет запрещать ссылку на родительский соседний узел.
[0497] Устройство декодирования трехмерных данных получает, из потока битов, информацию переключения запрета, указывающую то, следует или нет запрещать ссылку на родительский соседний узел, и выбирает то, следует запрещать или разрешать ссылку на родительский соседний узел, на основе информации переключения запрета.
[0498] Это обеспечивает возможность устройству кодирования трехмерных данных управлять ссылкой на родительский соседний узел и формировать поток битов. Это также обеспечивает возможность устройству декодирования трехмерных данных получать, из заголовка потока битов, информацию, указывающую то, следует или нет запрещать ссылку на родительский соседний узел.
[0499] Хотя процесс кодирования кода заполнения описывается в качестве примера процесса кодирования, в котором ссылка на родительский соседний узел запрещается в настоящем варианте осуществления, настоящее раскрытие не обязательно ограничивается этим. Например, идентичный способ может применяться, когда кодируется другая информация узла дерева октантов. Например, способ настоящего варианта осуществления может применяться, когда кодируется другая информация атрибутов, такая как цвет, нормальный вектор или степень отражения, добавляемая в узел. Дополнительно, идентичный способ может применяться, когда кодируется таблица кодирования или прогнозированное значение.
[0500] В дальнейшем в этом документе описывается варьирование 2 настоящего варианта осуществления. В вышеприведенном описании, как проиллюстрировано на фиг. 53, приводится пример, в котором используются три опорных соседних узла, но могут использоваться четыре или более опорных соседних узла. Фиг. 64 является схемой, иллюстрирующей пример текущего узла и соседних опорных узлов.
[0501] Например, устройство кодирования трехмерных данных вычисляет таблицу кодирования, которая должна использоваться, когда устройство кодирования трехмерных данных энтропийно кодирует код заполнения текущего узла, показанного на фиг. 64, с использованием следующего уравнения.
[0502] CodingTable = (FlagX0<<3)+(FlagX1<<2)+(FlagY<<1)+(FlagZ)
[0503] Здесь, CodingTable указывает таблицу кодирования для кода заполнения текущего узла и указывает одно из значений в пределах от 0 до 15. FlagXN представляет собой информацию заполнения соседнего узла XN (N=0...1). FlaxXN указывает 1, когда соседний узел XN включает в себя облако точек (является занятым), и указывает 0, когда он не включает. FlagY представляет собой информацию заполнения соседнего узла Y. FlagY указывает 1, когда соседний узел Y включает в себя облако точек (является занятым), и указывает 0, когда он не включает. FlagZ представляет собой информацию заполнения соседнего узла Z. FlagZ указывает 1, когда соседний узел Z включает в себя облако точек (является занятым), и указывает 0, когда он не включает.
[0504] В это время, когда соседний узел, например, соседний узел X0 на фиг. 64, является недопускающим ссылку (на него запрещена ссылка), устройство кодирования трехмерных данных может использовать, в качестве заменяющего значения, фиксированное значение, к примеру, 1 (занятый) или 0 (незанятый).
[0505] Фиг. 65 является схемой, иллюстрирующей пример текущего узла и соседних опорных узлов. Как проиллюстрировано на фиг. 65, когда соседний узел является недопускающим ссылку (на него запрещена ссылка), информация заполнения соседнего узла может вычисляться со ссылкой на код заполнения прародительского узла для текущего узла. Например, устройство кодирования трехмерных данных может вычислять FlagX0 в вышеприведенном уравнении с использованием информации заполнения соседнего узла G0 вместо соседнего узла X0, проиллюстрированного на фиг. 65, и может определять значение таблицы кодирования с использованием вычисленного FlagX0. Следует отметить, что соседний узел G0, проиллюстрированный на фиг. 65 представляет собой соседний узел, заполнение или незаполнение которого может определяться с использованием кода заполнения прародительского узла. Соседний узел X1 представляет собой соседний узел, заполнение или незаполнение которого может определяться с использованием кода заполнения родительского узла.
[0506] В дальнейшем в этом документе описывается варьирование 3 настоящего варианта осуществления. Фиг. 66 и фиг. 67 являются схемой, иллюстрирующей опорную взаимосвязь согласно настоящему варьированию. В частности, фиг. 66 является схемой, иллюстрирующей опорную взаимосвязь в структуре в виде дерева октантов, и фиг. 67 является схемой, иллюстрирующей опорную взаимосвязь в пространственной области.
[0507] В настоящем варьировании, когда устройство кодирования трехмерных данных кодирует информацию кодирования текущего узла, который должен кодироваться (в дальнейшем называемого "текущим узлом 2), устройство кодирования трехмерных данных ссылается на информацию кодирования каждого узла в родительском узле, которому принадлежит текущий узел 2. Другими словами, устройство кодирования трехмерных данных разрешает ссылку на информацию (например, информацию заполнения) дочернего узла относительно первого узла, из числа соседних узлов, который имеет родительский узел, идентичный родительскому узлу для текущего узла. Например, когда устройство кодирования трехмерных данных кодирует код заполнения текущего узла 2, проиллюстрированного на фиг. 66, устройство кодирования трехмерных данных ссылается на код заполнения узла в родительском узле, которому принадлежит текущий узел 2, например, текущий узел, проиллюстрированный на фиг. 66. Как проиллюстрировано на фиг. 67, код заполнения текущего узла, проиллюстрированного на фиг. 66, указывает, например, то, является или нет занятым каждый узел в текущем узле, соседнем с текущим узлом 2. Соответственно, поскольку устройство кодирования трехмерных данных может выбирать таблицу кодирования для кода заполнения текущего узла 2 в соответствии с более конкретной формой текущего узла, устройство кодирования трехмерных данных может повышать эффективность кодирования.
[0508] Устройство кодирования трехмерных данных может вычислять таблицу кодирования, которая должна использоваться, когда устройство кодирования трехмерных данных энтропийно кодирует код заполнения текущего узла 2, например, с использованием следующего уравнения.
[0509] CodingTable = (FlagX1<<5)+(FlagX2<<4)+(FlagX3<<3)+(FlagX4<<2)+(FlagY<<1)+(FlagZ)
[0510] Здесь, CodingTable указывает таблицу кодирования для кода заполнения текущего узла 2 и указывает одно из значений в пределах от 0 до 63. FlagXN представляет собой информацию заполнения соседнего узла XN (N=1...4). FlagXN указывает 1, когда соседний узел XN включает в себя облако точек (является занятым), и указывает 0, когда он не включает. FlagY представляет собой информацию заполнения соседнего узла Y. FlagY указывает 1, когда соседний узел Y включает в себя облако точек (является занятым), и указывает 0, когда он не включает. FlagZ представляет собой информацию заполнения соседнего узла Z. FlagZ указывает 1, когда соседний узел Z включает в себя облако точек (является занятым), и указывает 0, когда он не включает.
[0511] Следует отметить, что устройство кодирования трехмерных данных может изменять способ вычисления таблицы кодирования, согласно позиции узла для текущего узла 2 в родительском узле.
[0512] Когда ссылка на родительский соседний узел не запрещается, устройство кодирования трехмерных данных может ссылаться на информацию кодирования каждого узла в родительском соседнем узле. Например, когда ссылка на родительский соседний узел не запрещается, ссылка на информацию (например, информацию заполнения) дочернего узла третьего узла имеет родительский узел, отличный от родительского узла для текущего узла. В примере, проиллюстрированном на фиг. 65, например, устройство кодирования трехмерных данных получает информацию заполнения дочернего узла относительно соседнего узла X0 со ссылкой на код заполнения соседнего узла X0, имеющего родительский узел, отличный от родительского узла для текущего узла. Устройство кодирования трехмерных данных выбирает таблицу кодирования, которая должна использоваться для энтропийного кодирования кода заполнения текущего узла, на основе полученной информации заполнения дочернего узла относительно соседнего узла X0.
[0513] Как указано выше, устройство кодирования трехмерных данных согласно настоящему варианту осуществления кодирует информацию (например, код заполнения) текущего узла, включенного в N-арную древовидную структуру трехмерных точек, включенных в трехмерные данные, где N является целым числом, большим или равным 2. Как проиллюстрировано на фиг. 51 и фиг. 52, при кодировании, устройство кодирования трехмерных данных разрешает ссылку на информацию (например, информацию заполнения) первого узла, включенного в соседние узлы, пространственно соседние с текущим узлом, и запрещает ссылку на информацию второго узла, включенного в соседние узлы, причем первый узел имеет родительский узел, идентичный родительскому узлу для текущего узла, причем второй узел имеет родительский узел, отличный от родительского узла для текущего узла. Иначе говоря, при кодировании, устройство кодирования трехмерных данных разрешает ссылку на информацию (например, код заполнения) родительского узла и запрещает ссылку на информацию (например, код заполнения) другого узла (родительского соседнего узла) в слое, идентичном слою родительского узла.
[0514] Вследствие этого, устройство кодирования трехмерных данных может повышать эффективность кодирования со ссылкой на информацию первого узла, включенного в соседние узлы, пространственно соседние с текущим узлом, причем первый узел имеет родительский узел, идентичный родительскому узлу для текущего узла. Кроме того, устройство кодирования трехмерных данных может уменьшать объем обработки посредством отсутствия ссылки на информацию второго узла, включенного в соседние узлы, причем второй узел имеет родительский узел, отличный от родительского узла для текущего узла. Таким образом, устройство кодирования трехмерных данных может не только повышать эффективность кодирования, но также и уменьшать объем обработки.
[0515] Например, устройство кодирования трехмерных данных дополнительно определяет то, следует или нет запрещать ссылку на информацию второго узла. При кодировании, устройство кодирования трехмерных данных выбирает то, следует запрещать или разрешать ссылку на информацию второго узла, на основе результата определения. Кроме того, устройство кодирования трехмерных данных формирует поток битов, включающий в себя информацию переключения запрета (например, limit_refer_flag, показанный на фиг. 63), которая указывает результат определения и указывает то, следует или нет запрещать ссылку на информацию второго узла.
[0516] Вследствие этого, устройство кодирования трехмерных данных может выбирать то, следует или нет запрещать ссылку на информацию второго узла. Помимо этого, устройство декодирования трехмерных данных может надлежащим образом выполнять процесс декодирования с использованием информации переключения запрета.
[0517] Например, информация текущего узла представляет собой информацию (например, код заполнения), которая указывает то, присутствует или нет трехмерная точка в каждом из дочерних узлов, принадлежащих текущему узлу. Информация первого узла представляет собой информацию (информацию заполнения первого узла), которая указывает то, присутствует или нет трехмерная точка в первом узле. Информация второго узла представляет собой информацию (информацию заполнения второго узла), которая указывает то, присутствует или нет трехмерная точка во втором узле.
[0518] Например, при кодировании, устройство кодирования трехмерных данных выбирает таблицу кодирования на основе того, присутствует или нет трехмерная точка в первом узле, и энтропийно кодирует информацию (например, код заполнения) текущего узла с использованием выбранной таблицы кодирования.
[0519] Например, как проиллюстрировано на фиг. 66 и фиг. 67, при кодировании, устройство кодирования трехмерных данных разрешает ссылку на информацию (например, информацию заполнения) дочернего узла относительно первого узла, причем дочерний узел включается в соседние узлы.
[0520] Вследствие этого, поскольку устройство кодирования трехмерных данных предоставляет ссылку на более подробную информацию соседнего узла, устройство кодирования трехмерных данных может повышать эффективность кодирования.
[0521] Например, как проиллюстрировано на фиг. 53, при кодировании, устройство кодирования трехмерных данных выбирает соседний узел, на который следует ссылаться из соседних узлов, согласно пространственной позиции текущего узла в родительском узле.
[0522] Вследствие этого, устройство кодирования трехмерных данных может ссылаться на соответствующий соседний узел согласно пространственной позиции текущего узла в родительском узле.
[0523] Например, устройство кодирования трехмерных данных включает в себя процессор и запоминающее устройство, и процессор выполняет вышеуказанный процесс с использованием запоминающего устройства.
[0524] Устройство декодирования трехмерных данных согласно настоящему варианту осуществления декодирует информацию (например, код заполнения) текущего узла, включенного в N-арную древовидную структуру трехмерных точек, включенных в трехмерные данные, где N является целым числом, большим или равным 2. Как проиллюстрировано на фиг. 51 и фиг. 52, при декодировании, устройство декодирования трехмерных данных разрешает ссылку на информацию (например, информацию заполнения) первого узла, включенного в соседние узлы, пространственно соседние с текущим узлом, и запрещает ссылку на информацию второго узла, включенного в соседние узлы, причем первый узел имеет родительский узел, идентичный родительскому узлу для текущего узла, причем второй узел имеет родительский узел, отличный от родительского узла для текущего узла. Иначе говоря, при декодировании, устройство декодирования трехмерных данных разрешает ссылку на информацию (например, код заполнения) родительского узла и запрещает ссылку на информацию (например, код заполнения) другого узла (родительского соседнего узла) в слое, идентичном слою родительского узла.
[0525] Вследствие этого, устройство декодирования трехмерных данных может повышать эффективность кодирования со ссылкой на информацию первого узла, включенного в соседние узлы, пространственно соседние с текущим узлом, причем первый узел имеет родительский узел, идентичный родительскому узлу для текущего узла. Кроме того, устройство декодирования трехмерных данных может уменьшать объем обработки посредством отсутствия ссылки на информацию второго узла, включенного в соседние узлы, причем второй узел имеет родительский узел, отличный от родительского узла для текущего узла. Таким образом, устройство декодирования трехмерных данных может не только повышать эффективность кодирования, но также и уменьшать объем обработки.
[0526] Например, устройство декодирования трехмерных данных дополнительно получает, из потока битов, информацию переключения запрета (например, limit_refer_flag, показанный на фиг. 63), указывающую то, следует или нет запрещать ссылку на информацию второго узла. При декодировании, устройство декодирования трехмерных данных выбирает то, следует запрещать или разрешать ссылку на информацию второго узла, на основе информации переключения запрета.
[0527] Вследствие этого, устройство декодирования трехмерных данных может надлежащим образом выполнять процесс декодирования с использованием информации переключения запрета.
[0528] Например, информация текущего узла представляет собой информацию (например, код заполнения), которая указывает то, присутствует или нет трехмерная точка в каждом из дочерних узлов, принадлежащих текущему узлу. Информация первого узла представляет собой информацию (информацию заполнения первого узла), которая указывает то, присутствует или нет трехмерная точка в первом узле. Информация второго узла представляет собой информацию (информацию заполнения второго узла), которая указывает то, присутствует или нет трехмерная точка во втором узле.
[0529] Например, при декодировании, устройство кодирования трехмерных данных выбирает таблицу кодирования на основе того, присутствует или нет трехмерная точка в первом узле, и энтропийно декодирует информацию (например, код заполнения) текущего узла с использованием выбранной таблицы кодирования.
[0530] Например, как проиллюстрировано на фиг. 66 и фиг. 67, при декодировании, устройство декодирования трехмерных данных разрешает ссылку на информацию (например, информацию заполнения) дочернего узла относительно первого узла, причем дочерний узел включается в соседние узлы.
[0531] Вследствие этого, поскольку устройство декодирования трехмерных данных предоставляет ссылку на более подробную информацию соседнего узла, устройство декодирования трехмерных данных может повышать эффективность кодирования.
[0532] Например, как проиллюстрировано на фиг. 53, при декодировании, устройство декодирования трехмерных данных выбирает соседний узел, на который следует ссылаться из соседних узлов, согласно пространственной позиции текущего узла в родительском узле.
[0533] Вследствие этого, устройство декодирования трехмерных данных может ссылаться на соответствующий соседний узел согласно пространственной позиции текущего узла в родительском узле.
[0534] Например, устройство декодирования трехмерных данных включает в себя процессор и запоминающее устройство, и процессор выполняет вышеуказанный процесс с использованием запоминающего устройства.
Вариант 9 осуществления
[0535] Информация облака трехмерных точек включает в себя геометрическую информацию (геометрию) и информацию атрибутов (атрибут). Геометрическая информация включает в себя координаты (координату X, координату Y, координату Z) относительно определенной точки. Когда геометрическая информация кодируется, способ представления позиции каждой из трехмерных точек в представлении в виде дерева октантов и кодирования информации дерева октантов, чтобы уменьшать объем кода, используется вместо прямого кодирования координат трехмерной точки.
[0536] С другой стороны, информация атрибутов включает в себя информацию, указывающую, например, цветовую информацию (RGB, YUV и т.д.) каждой трехмерной точки, отражательную способность и нормальный вектор. Например, устройство кодирования трехмерных данных допускает кодирование информации атрибутов с использованием способа кодирования, отличающегося от способа, используемого для того, чтобы кодировать геометрическую информацию.
[0537] В настоящем варианте осуществления, способ кодирования информации атрибутов поясняется. Следует отметить, что в настоящем варианте осуществления, способ поясняется на основе примерного случая с использованием целочисленных значений в качестве значений информации атрибутов. Например, когда каждый из цветовых RGB- или YUV-компонентов имеет 8-битовую точность, цветовой компонент составляет целочисленное значение в диапазоне от 0 до 255. Когда значение отражательной способности имеет 10-битовую точность, значение отражательной способности составляет целое число в диапазоне от 0 до 1023. Следует отметить, что когда битовая точность информации атрибутов представляет собой десятичную точность, устройство кодирования трехмерных данных может умножать значение на значение масштаба, чтобы округлять его до целочисленного значения таким образом, что значение информации атрибутов становится целочисленным значением. Следует отметить, что устройство кодирования трехмерных данных может добавлять значение масштаба, например, в заголовок потока битов.
[0538] В качестве способа кодирования информации атрибутов трехмерной точки, есть возможность вычислять прогнозированное значение информации атрибутов трехмерной точки и кодировать разность (остаток прогнозирования) между исходным значением информации атрибутов и прогнозированным значением. Например, при условии, что значение информации атрибутов относительно трехмерной точки p составляет Ap, и прогнозированное значение составляет Pp, устройство кодирования трехмерных данных кодирует абсолютное разностное значение Diffp=|Ap-Pp|. В этом случае, когда высокоточное прогнозированное значение Pp может формироваться, абсолютное дифференциальное значение Diffp является небольшим. Таким образом, например, можно сокращать объем кода посредством энтропийного кодирования абсолютного дифференциального значения Diffp с использованием таблицы кодирования, что уменьшает число битов возникновения больше, когда абсолютное дифференциальное значение Diffp меньше.
[0539] В качестве способа формирования прогнозного значения информации атрибутов, есть возможность использовать информацию атрибутов опорной трехмерной точки, которая представляет собой другую трехмерную точку, которая граничит с текущей трехмерной точкой, которая должна кодироваться. Здесь, опорная трехмерная точка представляет собой трехмерную точку в диапазоне предварительно определенного расстояния от текущей трехмерной точки. Например, когда имеются текущая трехмерная точка p=(x1, y1, z1) и трехмерная точка q=(x2, y2, z2), устройство кодирования трехмерных данных вычисляет евклидово расстояние d(p, q) между трехмерной точкой p и трехмерной точкой q, представленное посредством уравнения A1.
[0540] Математическое выражение 1
... (уравнение A1)
[0541] Устройство кодирования трехмерных данных определяет то, что позиция трехмерной точки q находится ближе к позиции текущей трехмерной точки p, когда евклидово расстояние d(p, q) меньше предварительно определенного порогового значения THd, и определяет использовать значение информации атрибутов трехмерной точки q для того, чтобы формировать прогнозированное значение информации атрибутов текущей трехмерной точки p. Следует отметить, что способ вычисления расстояния может представлять собой другой способ, и может использоваться расстояние Махаланобиса и т.п. Помимо этого, устройство кодирования трехмерных данных может определять не использовать, в обработке прогнозирования, любую трехмерную точку за пределами предварительно определенного диапазона расстояния от текущей трехмерной точки. Например, когда трехмерная точка r присутствует, и расстояние d(p, r) между текущей трехмерной точкой p и трехмерной точкой r превышает или равно пороговому значению THd, устройство кодирования трехмерных данных может определять не использовать трехмерную точку r для прогнозирования. Следует отметить, что устройство кодирования трехмерных данных может добавлять информацию, указывающую пороговое значение THd, например, в заголовок потока битов.
[0542] Фиг. 68 является схемой, иллюстрирующей пример трехмерных точек. В этом примере, расстояние d(p q) между текущей трехмерной точкой p и трехмерной точкой q меньше порогового значения THd. Таким образом, устройство кодирования трехмерных данных определяет то, что трехмерная точка q представляет собой опорную трехмерную точку относительно текущей трехмерной точки p, и определяет использовать значение информации Aq атрибутов трехмерной точки q для того, чтобы формировать прогнозированное значение Pp информации Ap атрибутов текущей трехмерной точки p.
[0543] Напротив, расстояние d(p, r) между текущей трехмерной точкой p и трехмерной точкой r превышает или равно пороговому значению THd. Таким образом, устройство кодирования трехмерных данных определяет то, что трехмерная точка r не представляет собой опорную трехмерную точку относительно текущей трехмерной точки p, и определяет не использовать значение информации Ar атрибутов трехмерной точки r, чтобы формировать прогнозированное значение Pp информации Ap атрибутов текущей трехмерной точки p.
[0544] Помимо этого, при кодировании информации атрибутов относительно целевой трехмерной точки с использованием прогнозированного значения, устройство кодирования трехмерных данных использует трехмерную точку, информация атрибутов которой уже кодирована и декодирована, в качестве опорной трехмерной точки. Аналогично, при декодировании информации атрибутов текущей трехмерной точки, которая должна декодироваться, устройство декодирования трехмерных данных использует трехмерную точку, информация атрибутов которой уже декодирована, в качестве опорной трехмерной точки. Таким образом, можно формировать идентичное прогнозированное значение во время кодирования и декодирования. Таким образом, поток битов трехмерной точки, сформированной посредством кодирования, может декодироваться корректно на стороне декодирования.
[0545] Кроме того, при кодировании информации атрибутов каждой из трехмерных точек, есть возможность классифицировать трехмерную точку как один из множества слоев с использованием геометрической информации трехмерной точки и затем кодировать информацию атрибутов. Здесь, каждый из классифицированных слоев называется "уровнем детализации (LoD)". В дальнейшем поясняется способ формирования LoD со ссылкой на фиг. 69.
[0546] Во-первых, устройство кодирования трехмерных данных выбирает начальную точку a0 и назначает начальную точку a0 LoD0. Затем, устройство кодирования трехмерных данных извлекает точку a1, удаленную от точки a0 более чем на пороговое значение Thres_LoD[0] LoD0, и назначает точку a1 LoD0. Затем, устройство кодирования трехмерных данных извлекает точку a2, удаленную от точки a1 более чем на пороговое значение Thres_LoD[0] LoD0, и назначает точку a2 LoD0. Таким образом, устройство кодирования трехмерных данных конфигурирует LoD0 таким образом, что расстояния между точками в LoD0 превышают пороговое значение Thres_LoD[0].
[0547] Затем, устройство кодирования трехмерных данных выбирает точку b0, которая еще не назначена ни одному LoD, и назначает точку b0 LoD1. Затем, устройство кодирования трехмерных данных извлекает точку b1, которая является удаленной от точки b0 более чем на пороговое значение Thres_LoD[1] LoD1 и которая еще не назначена ни одному LoD, и назначает точку b1 LoD1. Затем, устройство кодирования трехмерных данных извлекает точку b2, которая является удаленной от точки b1 более чем на пороговое значение Thres_LoD[1] LoD1 и которая еще не назначена ни одному LoD, и назначает точку b2 LoD1. Таким образом, устройство кодирования трехмерных данных конфигурирует LoD1 таким образом, что расстояния между точками в LoD1 превышают пороговое значение Thres_LoD[1].
[0548] Затем, устройство кодирования трехмерных данных выбирает точку c0, которая еще не назначена ни одному LoD, и назначает точку c0 LoD2. Затем, устройство кодирования трехмерных данных извлекает точку c1, которая является удаленной от точки c0 более чем на пороговое значение Thres_LoD[2] LoD2 и которая еще не назначена ни одному LoD, и назначает точку c1 LoD2. Затем, устройство кодирования трехмерных данных извлекает точку c2, которая является удаленной от точки c1 более чем на пороговое значение Thres_LoD[2] LoD2 и которая еще не назначена ни одному LoD, и назначает точку c2 LoD2. Таким образом, устройство кодирования трехмерных данных конфигурирует LoD2 таким образом, что расстояния между точками в LoD2 превышают пороговое значение Thres_LoD[2]. Например, как проиллюстрировано на фиг. 70, пороговые значения Thres_LoD[0], Thres_LoD[1] и Thres_LoD[2] соответствующих LoD задаются.
[0549] Помимо этого, устройство кодирования трехмерных данных может добавлять информацию, указывающую пороговое значение каждого LoD, например, в заголовок потока битов. Например, в случае примера, проиллюстрированного на фиг. 70, устройство кодирования трехмерных данных может добавлять пороговые значения Thres_LoD[0], Thres_LoD[1] и Thres_LoD[2] соответствующих LoD в заголовок.
[0550] Альтернативно, устройство кодирования трехмерных данных может назначать все трехмерные точки, которые еще не назначены ни одному LoD, в LoD крайнего нижнего слоя. В этом случае, устройство кодирования трехмерных данных допускает уменьшение объема кода заголовка за счет неназначения порогового значения LoD крайнего нижнего слоя заголовку. Например, в случае примера, проиллюстрированного на фиг. 70, устройство кодирования трехмерных данных назначает пороговые значения Thres_LoD[0] и Thres_LoD[1] заголовку и не назначает Thres_LoD[2] заголовку. В этом случае, устройство кодирования трехмерных данных может оценивать значение 0 Thres_LoD[2]. Помимо этого, устройство кодирования трехмерных данных может добавлять число LoD в заголовок. Таким образом, устройство кодирования трехмерных данных допускает определение LoD крайнего нижнего слоя с использованием числа LoD.
[0551] Помимо этого, задание пороговых значений для LoD соответствующих слоев таким образом, что большее пороговое значение задается для верхнего слоя, приводит к тому, что верхний слой (слой ближе к LoD0) имеет разреженное облако точек (разреженное), в котором трехмерные точки находятся дальше, и приводит к тому, что нижний слой имеет иметь плотное облако точек (плотное), в котором трехмерные точки находятся ближе. Следует отметить, что, в примере, проиллюстрированном на фиг. 70, LoD0 представляет собой крайний верхний слой.
[0552] Помимо этого, способ выбора начальной трехмерной точки во время задания каждого LoD может зависеть от порядка кодирования во время кодирования геометрической информации. Например, устройство кодирования трехмерных данных конфигурирует LoD0 посредством выбора трехмерной точки, кодированной сначала во время кодирования геометрической информации, в качестве начальной точки a0 LoD0 и выбора точки a1 и точки a2 из начальной точки a0 в качестве начала координат. Устройство кодирования трехмерных данных затем может выбирать трехмерную точку, геометрическая информация которой кодирована в самое раннее время из трехмерных точек, которые не принадлежат LoD0, в качестве начальной точки b0 LoD1. Другими словами, устройство кодирования трехмерных данных может выбирать трехмерную точку, геометрическая информация которой кодирована в самое раннее время из трехмерных точек, которые не принадлежат слоям (LoD0 в LoDn-1) выше LoDn, в качестве начальной точки n0 LoDn. Таким образом, устройство кодирования трехмерных данных допускает конфигурирование LoD, идентичного LoD при кодировании, посредством использования, при декодировании, способа выбора начальной точки, аналогичного способу, используемому при кодировании, что обеспечивает соответствующее декодирование потока битов. Более конкретно, устройство кодирования трехмерных данных выбирает трехмерную точку, геометрическая информация которой декодирована в самое раннее время из трехмерных точек, которые не принадлежат слоям выше LoDn, в качестве начальной точки n0 LoDn.
[0553] В дальнейшем в этом документе, приводится описание способа формирования прогнозированного значения информации атрибутов каждой трехмерной точки с использованием информации LoD. Например, при кодировании трехмерных точек, начиная с трехмерных точек, включенных в LoD0, устройство кодирования трехмерных данных формирует текущие трехмерные точки, которые включаются в LoD1 с использованием кодированной и декодированной (далее также называется просто "кодированной") информации атрибутов, включенной в LoD0 и LoD1. Таким образом, устройство кодирования трехмерных данных формирует прогнозированное значение информации атрибутов относительно трехмерной точки, включенной в LoDn, с использованием кодированной информации атрибутов, включенной в LoDn' (n'<=n). Другими словами, устройство кодирования трехмерных данных не использует информацию атрибутов каждой из трехмерных точек, включенных в любой слой ниже LoDn, чтобы вычислять прогнозированное значение информации атрибутов каждой из трехмерных точек, включенных в LoDn.
[0554] Например, устройство кодирования трехмерных данных вычисляет среднее информации атрибутов N или меньше трехмерных точек из кодированных трехмерных точек, окружающих текущую трехмерную точку, которая должна кодироваться, чтобы формировать прогнозированное значение информации атрибутов текущей трехмерной точки. Помимо этого, устройство кодирования трехмерных данных может суммировать значение N например, с заголовком потока битов. Следует отметить, что устройство кодирования трехмерных данных может изменять значение N для каждой трехмерной точки и может суммировать значение N для каждой трехмерной точки. Это обеспечивает выбор соответствующего N для каждой трехмерной точки, что позволяет увеличивать точность прогнозированного значения. Соответственно, можно уменьшать остаток прогнозирования. Альтернативно, устройство кодирования трехмерных данных может суммировать значение N с заголовком потока битов и может фиксировать значение, указывающее N в потоке битов. Это исключает необходимость кодировать или декодировать значение N для каждой трехмерной точки, что позволяет уменьшать объем обработки. Помимо этого, устройство кодирования трехмерных данных может кодировать значения N отдельно для каждого LoD. Таким образом, можно увеличивать эффективность кодирования посредством выбора соответствующего N для каждого LoD.
[0555] Альтернативно, устройство кодирования трехмерных данных может вычислять прогнозированное значение информации атрибутов трехмерной точки на основе средневзвешенных значений информации атрибутов кодированных N соседних трехмерных точек. Например, устройство кодирования трехмерных данных вычисляет весовые коэффициенты с использованием информации расстояния между текущей трехмерной точкой и каждой из N соседних трехмерных точек.
[0556] При кодировании значения N для каждого LoD, например, устройство кодирования трехмерных данных задает большее значение N равным LoD верхнего слоя и задает меньшее значение N равным LoD нижнего слоя. Расстояние между трехмерными точками, принадлежащими LoD верхнего слоя, является большим, имеется вероятность того, что можно увеличивать точность прогнозирования посредством задания большого значения N, выбора множества соседних трехмерных точек и усреднения значений. Кроме того, расстояние между трехмерными точками, принадлежащими LoD нижнего слоя, является небольшим, можно выполнять эффективное прогнозирование при сокращении объема обработки усреднения посредством задания меньшего значения N.
[0557] Фиг. 71 является схемой, иллюстрирующей пример информации атрибутов, которая должна использоваться для прогнозированных значений. Как описано выше, прогнозированное значение точки P, включенной в LoDN, формируется с использованием кодированной периферийной точки P', включенной в LoDN' (N'<=N). Здесь, соседняя точка P' выбирается на основе расстояния от точки P. Например, прогнозированное значение информации атрибутов точки b2, проиллюстрированной на фиг. 71, формируется с использованием информации атрибутов каждой из точек a0, a1, b0 и b1.
[0558] Соседние точки, которые должны выбираться, варьируются в зависимости от значений N, описанных выше. Например, в случае N=5, a0, a1, a2, b0 и b1 выбираются в качестве соседних точек. В случае N=4, a0, a1, a2 и b1 выбираются на основе информации расстояния.
[0559] Прогнозированное значение вычисляется посредством зависимого от расстояния усреднения со взвешиванием. Например, в примере, проиллюстрированном на фиг. 71, прогнозированное значение a2p точки a2 вычисляется посредством усреднения со взвешиванием информации атрибутов каждой из точки a0 и a1, как представлено посредством уравнения A2 и уравнения A3. Следует отметить, что Ai представляет собой значение информации атрибутов ai.
[0560] Математическое выражение 2
... (уравнение A2)
... (уравнение A3)
[0561] Помимо этого, прогнозированное значение b2p точки b2 вычисляется посредством усреднения со взвешиванием информации атрибутов каждой из точки a0, a1, a2, b0 и b1, как представлено посредством уравнения A4 и уравнения A6. Следует отметить, что Bi представляет собой значение информации атрибутов bi.
[0562] Математическое выражение 3
... (уравнение A4)
... (уравнение A5)
... (уравнение A6)
[0563] Помимо этого, устройство кодирования трехмерных данных может вычислять разностное значение (остаток прогнозирования), сформированное из значения информации атрибутов трехмерной точки и соседних точек, и может квантовать вычисленный остаток прогнозирования. Например, устройство кодирования трехмерных данных выполняет квантование посредством деления остатка прогнозирования на масштаб квантования (также называемый "шагом квантования"). В этом случае, ошибка (ошибка квантования), которая может формироваться посредством квантования, уменьшается по мере того, как масштаб квантования меньше. В другом случае, в котором масштаб квантования больше, результирующая ошибка квантования больше.
[0564] Следует отметить, что устройство кодирования трехмерных данных может изменять масштаб квантования, который должен использоваться для каждого LoD. Например, устройство кодирования трехмерных данных уменьшает масштаб квантования больше для верхнего слоя и увеличивает масштаб квантования больше для нижнего слоя. Значение информации атрибутов трехмерной точки, принадлежащей верхнему слою, может использоваться в качестве прогнозированного значения информации атрибутов трехмерной точки, принадлежащей нижнему слою. Таким образом, можно увеличивать эффективность кодирования посредством уменьшения масштаба квантования для верхнего слоя, чтобы уменьшать ошибку квантования, которая может формироваться в верхнем слое, и увеличивать точность прогнозирования прогнозированного значения. Следует отметить, что устройство кодирования трехмерных данных может добавлять масштаб квантования, который должен использоваться для каждого LoD, например, в заголовок. Таким образом, устройство кодирования трехмерных данных может декодировать масштаб квантования корректно, за счет этого надлежаще декодируя поток битов.
[0565] Устройство кодирования трехмерных данных может преобразовывать целочисленное значение со знаком (квантованное значение со знаком), которое представляет собой квантованный остаток прогнозирования, в целочисленное значение без знака (квантованное значение без знака). Это исключает необходимость рассматривать возникновение отрицательного целого числа при энтропийном кодировании остатка прогнозирования. Следует отметить, что устройство кодирования трехмерных данных должно не всегда преобразовывать целочисленное значение со знаком в целочисленное значение без знака, и, например, что устройство кодирования трехмерных данных может энтропийно кодировать знаковый бит отдельно.
[0566] Остаток прогнозирования вычисляется посредством вычитания прогнозированного значения из исходного значения. Например, как представлено посредством уравнения A7, остаток прогнозирования a2r точки a2 вычисляется посредством вычитания прогнозированного значения a2p точки a2 из значения A2 информации атрибутов точки a2. Как представлено посредством уравнения A8, остаток прогнозирования b2r точки b2 вычисляется посредством вычитания прогнозированного значения b2p точки b2 из значения B2 информации атрибутов точки b2.
[0567] a2r=A2-a2p... (уравнение A7)
[0568] b2r=B2-b2p... (уравнение A8)
[0569] Помимо этого, остаток прогнозирования квантуется посредством деления на шаг квантования (QS). Например, квантованное значение a2q точки a2 вычисляется согласно уравнению A9. Квантованное значение b2q точки b2 вычисляется согласно уравнению A10. Здесь, QS_LoD0 представляет собой QS для LoD0, и QS_LoD1 представляет собой QS для LoD1. Другими словами, QS может изменяться согласно LoD.
[0570] a2q=a2r/QS_LoD0... (уравнение A9)
[0571] b2q=b2r/QS_LoD1... (уравнение A10)
[0572] Помимо этого, устройство кодирования трехмерных данных преобразует целочисленные значения со знаком, которые представляют собой квантованные значения, как указано ниже, в целочисленные значения без знака, как указано ниже. Когда целочисленное значение a2q со знаком меньше 0, устройство кодирования трехмерных данных задает целочисленное значение a2u без знака равным -1-(2xa2q). Когда целочисленное значение a2q со знаком равно 0 или больше, устройство кодирования трехмерных данных задает целочисленное значение a2u без знака равным 2xa2q.
[0573] Аналогично, когда целочисленное значение b2q со знаком меньше 0, устройство кодирования трехмерных данных задает целочисленное значение b2u без знака равным -1-(2xb2q). Когда целочисленное значение b2q со знаком равно 0 или больше, устройство кодирования трехмерных данных задает целочисленное значение b2u без знака равным 2xb2q.
[0574] Помимо этого, устройство кодирования трехмерных данных может кодировать квантованный остаток прогнозирования (целочисленное значение без знака) посредством энтропийного кодирования. Например, устройство кодирования трехмерных данных может преобразовывать в двоичную форму целочисленное значение без знака и затем применять двоичное арифметическое кодирование к двоичному значению.
[0575] Следует отметить, что в этом случае, устройство кодирования трехмерных данных может переключать способы преобразования в двоичную форму согласно значению остатка прогнозирования. Например, когда остаток pu прогнозирования меньше порогового значения R_TH, устройство кодирования трехмерных данных преобразует в двоичную форму остаток pu прогнозирования с использованием фиксированного числа битов, требуемого для представления порогового значения R_TH. Помимо этого, когда остаток pu прогнозирования превышает или равен пороговому значению R_TH, устройство кодирования трехмерных данных преобразует в двоичную форму двоичные данные порогового значения R_TH и значение (pu-R_TH), с использованием кодирования экспоненциальным кодом Голомба и т.п.
[0576] Например, когда пороговое значение R_TH равно 63, и остаток pu прогнозирования меньше 63, устройство кодирования трехмерных данных преобразует в двоичную форму остаток pu прогнозирования с использованием 6 битов. Когда остаток pu прогнозирования выше или равен 63, устройство кодирования трехмерных данных выполняет арифметическое кодирование посредством преобразования в двоичную форму двоичных данных (111111) порогового значения R_TH и (pu-63) с использованием кодирования экспоненциальным кодом Голомба.
[0577] В более конкретном примере, когда остаток pu прогнозирования равен 32, устройство кодирования трехмерных данных формирует 6-битовые двоичные данные (100000) и арифметически кодирует битовую последовательность. Помимо этого, когда остаток pu прогнозирования равен 66, устройство кодирования трехмерных данных формирует двоичные данные (111111) порогового значения R_TH и битовую последовательность (00100), представляющую значение 3 (66-63), с использованием кодирования экспоненциальным кодом Голомба и арифметически кодирует битовую последовательность (111111+00100).
[0578] Таким образом, устройство кодирования трехмерных данных может выполнять кодирование, при предотвращении резкого увеличения двоичного числа битов в случае, если остаток прогнозирования становится большим, посредством переключения способов преобразования в двоичную форму согласно абсолютной величине остатка прогнозирования. Следует отметить, что устройство кодирования трехмерных данных может добавлять пороговое значение R_TH, например, в заголовок потока битов.
[0579] Например, в случае если кодирование выполняется на высокой скорости передачи битов, т.е. когда масштаб квантования является небольшим, небольшая ошибка квантования и высокая точность прогнозирования получаются. Как результат, остаток прогнозирования может не быть большим. Таким образом, в этом случае, устройство кодирования трехмерных данных задает большое пороговое значение R_TH. Это снижает вероятность того, что двоичные данные порогового значения R_TH кодируются, что увеличивает эффективность кодирования. В противоположном случае, в котором кодирование выполняется на низкой скорости передачи битов, т.е. когда масштаб квантования является большим, большая ошибка квантования и низкая точность прогнозирования получаются. Как результат, остаток прогнозирования может быть большим. Таким образом, в этом случае, устройство кодирования трехмерных данных задает небольшое пороговое значение R_TH. Таким образом, можно предотвращать резкое увеличение длины в битах двоичных данных.
[0580] Помимо этого, устройство кодирования трехмерных данных может переключать пороговое значение R_TH для каждого LoD и может добавлять пороговое значение R_TH для каждого LoD, например, в заголовок. Другими словами, устройство кодирования трехмерных данных может переключать способы преобразования в двоичную форму для каждого LoD. Например, поскольку расстояния между трехмерными точками являются большими в верхнем слое, точность прогнозирования является низкой, что может увеличивать остаток прогнозирования. Таким образом, устройство кодирования трехмерных данных предотвращает резкое увеличение длины в битах двоичных данных посредством задания небольшого порогового значения R_TH для верхнего слоя. Помимо этого, поскольку расстояния между трехмерными точками являются небольшими в нижнем слое, точность прогнозирования является высокой, что может уменьшать остаток прогнозирования. Таким образом, устройство кодирования трехмерных данных увеличивает эффективность кодирования посредством задания большого порогового значения R_TH для нижнего слоя.
[0581] Фиг. 72 является схемой, указывающей примеры экспоненциальных кодов Голомба. Схема указывает взаимосвязи между значениями перед преобразованием в двоичную форму (недвоичными значениями) и битами после преобразования в двоичную форму (коды). Следует отметить, что нуль и единица, указываемые на фиг. 72, могут инвертироваться.
[0582] Устройство кодирования трехмерных данных применяет арифметическое кодирование к двоичным данным остатков прогнозирования. Таким образом, эффективность кодирования может увеличиваться. Следует отметить, что при применении арифметического кодирования, имеется вероятность того, что тенденции вероятности возникновения нуля и единицы в каждом бите варьируются, в двоичных данных, между n-битовым кодом, который представляет собой часть, преобразованную в двоичную форму посредством n битов, и оставшимся кодом, который представляет собой часть, преобразованную в двоичную форму с использованием кодирования экспоненциальным кодом Голомба. Таким образом, устройство кодирования трехмерных данных может переключать способы применения арифметического кодирования между n-битовым кодом и оставшимся кодом.
[0583] Например, устройство кодирования трехмерных данных выполняет арифметическое кодирование для n-битового кода с использованием одной или более таблиц кодирования (таблиц вероятностей), отличающихся для каждого бита. В это время, устройство кодирования трехмерных данных может изменять число таблиц кодирования, которые должны использоваться для каждого бита. Например, устройство кодирования трехмерных данных выполняет арифметическое кодирование с использованием одной таблицы кодирования для первого бита b0 в n-битовом коде. Устройство кодирования трехмерных данных использует две таблицы кодирования для следующего бита b1. Устройство кодирования трехмерных данных переключает таблицы кодирования, которые должны использоваться для арифметического кодирования бита b1, согласно значению (0 или 1) b0. Аналогично, устройство кодирования трехмерных данных использует четыре таблицы кодирования для следующего бита b2. Устройство кодирования трехмерных данных переключает таблицы кодирования, которые должны использоваться для арифметического кодирования бита b2, согласно значениям (в диапазоне от 0 до 3) b0 и b1.
[0584] Таким образом, устройство кодирования трехмерных данных использует 2n-1 таблиц кодирования при арифметическом кодировании каждого бита bn-1 в n-битовом коде. Устройство кодирования трехмерных данных переключает таблицы кодирования, которые должны использоваться, согласно значениям (шаблонам возникновения) битов перед bn-1. Таким образом, устройство кодирования трехмерных данных может использовать таблицы кодирования, подходящие для каждого бита, и в силу этого может увеличивать эффективность кодирования.
[0585] Следует отметить, что устройство кодирования трехмерных данных может сокращать число таблиц кодирования, которые должны использоваться для каждого бита. Например, устройство кодирования трехмерных данных может переключать 2m таблиц кодирования согласно значениям (шаблонам возникновения) m битов (m<n-1) перед bn-1 при арифметическом кодировании каждого бита bn-1. Таким образом, можно увеличивать эффективность кодирования при уменьшении числа таблиц кодирования, которые должны использоваться для каждого бита. Следует отметить, что устройство кодирования трехмерных данных может обновлять вероятности возникновения нуля и единицы в каждой таблице кодирования согласно значениям двоичных данных, возникающих фактически. Помимо этого, устройство кодирования трехмерных данных может фиксировать вероятности возникновения нуля и единицы в таблицах кодирования для некоторого бита(ов). Таким образом, можно сокращать число обновлений вероятностей возникновения и в силу этого уменьшать объем обработки.
[0586] Например, когда n-битовый код представляет собой b0, b1, b2, ..., bn-1, таблица кодирования для b0 составляет одну таблицу (CTb0). Таблицы кодирования для b1 составляют две таблицы (CTb10 и CTb11). Таблицы кодирования, которые должны использоваться, переключаются согласно значению (0 или 1) b0. Таблицы кодирования для b2 составляют четыре таблицы (CTb20, CTb21, CTb22 и CTb23). Таблицы кодирования, которые должны использоваться, переключаются согласно значениям (в диапазоне от 0 до 3) b0 и b1. Таблицы кодирования для bn-1 составляют 2n-1 таблиц (CTbn0, CTbn1, ..., CTbn (2n-1-1)). Таблицы кодирования, которые должны использоваться, переключаются согласно значениям (в диапазоне от 0 до 2n-1-1) b0, b1, ..., bn-2.
[0587] Следует отметить, что устройство кодирования трехмерных данных может применять, к n-битовому коду, арифметическое кодирование (m=2n) посредством m-арного, который задает значение в диапазоне от 0 до 2n-1 без преобразования в двоичную форму. Когда устройство кодирования трехмерных данных арифметически кодирует n-битовый код посредством m-арного, устройство декодирования трехмерных данных может восстанавливать n-битовый код посредством арифметического декодирования m-арного.
[0588] Фиг. 73 является схемой для иллюстрации обработки в случае, если оставшиеся коды представляют собой экспоненциальные коды Голомба. Как указано на фиг. 73, каждый оставшийся код, который представляет собой часть, преобразованную в двоичную форму с использованием кодирования экспоненциальным кодом Голомба, включает в себя префикс и суффикс. Например, устройство кодирования трехмерных данных переключает таблицы кодирования между префиксом и суффиксом. Другими словами, устройство кодирования трехмерных данных арифметически кодирует каждый из битов, включенных в префикс, с использованием таблиц кодирования для префикса, и арифметически кодирует каждый из битов, включенных в суффикс, с использованием таблиц кодирования для суффикса.
[0589] Следует отметить, что устройство кодирования трехмерных данных может обновлять вероятности возникновения нуля и единицы в каждой таблице кодирования согласно значениям двоичных данных, возникающих фактически. Помимо этого, устройство кодирования трехмерных данных может фиксировать вероятности возникновения нуля и единицы в одной из таблиц кодирования. Таким образом, можно сокращать число обновлений вероятностей возникновения и в силу этого уменьшать объем обработки. Например, устройство кодирования трехмерных данных может обновлять вероятности возникновения для префикса и может фиксировать вероятности возникновения для суффикса.
[0590] Помимо этого, устройство кодирования трехмерных данных декодирует квантованный остаток прогнозирования посредством обратного квантования и восстановления и использует декодированное значение, которое представляет собой декодированный остаток прогнозирования, для прогнозирования текущей трехмерной точки, которая должна кодироваться, и следующей трехмерной точки(ек). Более конкретно, устройство кодирования трехмерных данных вычисляет обратно квантованное значение посредством умножения квантованного остатка прогнозирования (квантованного значения) на масштаб квантования и суммирует обратно квантованное значение и прогнозное значение, чтобы получать декодированное значение (восстановленное значение).
[0591] Например, квантованное значение a2iq точки a2 вычисляется с использованием квантованного значения a2q точки a2 согласно уравнению A11. Обратно квантованное значение b2iq точки b2 вычисляется с использованием квантованного значения b2q точки b2 согласно формуле H12. Здесь, QS_LoD0 представляет собой QS для LoD0, и QS_LoD1 представляет собой QS для LoD1. Другими словами, QS может изменяться согласно LoD.
[0592] a2iq=a2q x QS_LoD0... (уравнение A11)
[0593] b2iq=b2q x QS_LoD1... (уравнение A12)
[0594] Например, как представлено посредством уравнения A13, декодированное значение a2rec точки a2 вычисляется посредством суммирования значения a2iq обратного квантования точки a2 с прогнозированным значением a2p точки a2. Как представлено посредством уравнения A14, декодированное значение b2rec точки b2 вычисляется посредством суммирования обратно квантованного значения b2iq точки b2 с прогнозированным значением b2p точки b2.
[0595] a2rec=a2iq+a2p... (уравнение A13)
[0596] b2rec=b2iq+b2p... (уравнение A14)
[0597] В дальнейшем в этом документе описывается пример синтаксиса потока битов согласно настоящему варианту осуществления. Фиг. 74 является схемой, указывающей пример синтаксиса заголовка (attribute_header) атрибутов согласно настоящему варианту осуществления. Заголовок атрибута представляет собой информацию заголовка информации атрибутов. Как указано на фиг. 74, заголовок атрибутов включает в себя информацию (NumLoD) числа слоев, информацию (NumOfPoint[i]) числа трехмерных точек, пороговое значение (Thres_Lod[i]) слоя, информацию (NumNeighborPoint[i]) числа соседних точек, пороговое прогнозное значение (THd[i]), масштаб (QS[i]) квантования и пороговое значение (R_TH[i]) преобразования в двоичную форму.
[0598] Информация (NumLoD) числа слоев указывает число LoD, которые должны использоваться.
[0599] Информация (NumOfPoint[i]) числа трехмерных точек указывает число трехмерных точек, принадлежащих слою i. Следует отметить, что устройство кодирования трехмерных данных может добавлять, в другой заголовок, информацию числа трехмерных точек, указывающую общее число трехмерных точек. В этом случае, устройство кодирования трехмерных данных не должно добавлять, в заголовок, NumOfPoint[numLoD-1], указывающий число трехмерных точек, принадлежащих крайнему нижнему слою. В этом случае, устройство декодирования трехмерных данных допускает вычисление NumOfPoint[numLoD-1] согласно уравнению A15. В этом случае, можно уменьшать объем кода заголовка.
[0600] Математическое выражение 4
... (уравнение A15)
[0601] Пороговое значение (Thres_Lod[i]) слоя представляет собой пороговое значение, которое должно использоваться для того, чтобы задавать слой i. Устройство кодирования трехмерных данных и устройство декодирования трехмерных данных конфигурируют LoDi таким образом, что расстояние между точками в LoDi становится больше порогового значения Thres_Lod[i]. Устройство кодирования трехмерных данных не должно добавлять значение Thres_LoD[numLoD-1] (крайний нижний слой) в заголовок. В этом случае, устройство декодирования трехмерных данных может оценивать 0 в качестве значения Thres_LoD[numLoD-1]. В этом случае, можно уменьшать объем кода заголовка.
[0602] Информация (NumNeighborPoint[i]) числа соседних точек указывает верхнее предельное значение числа соседних точек, которые должны использоваться для того, чтобы формировать прогнозированное значение трехмерной точки, принадлежащей слою i. Устройство кодирования трехмерных данных может вычислять прогнозированное значение с использованием числа M соседних точек, когда число M соседних точек меньше NumNeighborPoint[i] (M<NumNeighborPoint[i]). Кроме того, когда нет необходимости различать значения NumNeighborPoint[i] для соответствующих LoD, устройство кодирования трехмерных данных может добавлять фрагмент информации (NumNeighborPoint) числа соседних точек, которые должны использоваться во всех LoD, в заголовок.
[0603] Пороговое прогнозное значение (THd[i]) указывает верхнее предельное значение расстояния между текущей трехмерной точкой, которая должна кодироваться или декодироваться в слое i, и каждой из соседних трехмерных точек, которые должны использоваться для того, чтобы прогнозировать текущую трехмерную точку. Устройство кодирования трехмерных данных и устройство декодирования трехмерных данных не используют, для прогнозирования, трехмерные точки, удаленные от текущей трехмерной точки THd[i]. Следует отметить, что когда нет необходимости различать значения THd[i] для соответствующих LoD, устройство кодирования трехмерных данных может добавлять одно пороговое прогнозное значение (THd), которое должно использоваться во всех LoD, в заголовок.
[0604] Масштаб (QS[i]) квантования указывает масштаб квантования, который должен использоваться для квантования и обратного квантования в слое i.
[0605] Пороговое значение (R_TH[i]) преобразования в двоичную форму представляет собой пороговое значение для переключения способов преобразования в двоичную форму остатков прогнозирования трехмерных точек, принадлежащих слою i. Например, устройство кодирования трехмерных данных преобразует в двоичную форму остаток pu прогнозирования с использованием фиксированного числа битов, когда остаток прогнозирования меньше порогового значения R_TH, и преобразует в двоичную форму двоичные данные порогового значения R_TH и значения (pu-R_TH) с использованием кодирования экспоненциальным кодом Голомба, когда остаток прогнозирования превышает или равен пороговому значению R_TH. Следует отметить, что когда нет необходимости переключать значения R_TH[i] между LoD, устройство кодирования трехмерных данных может добавлять одно пороговое значение (R_TH) преобразования в двоичную форму, которое должно использоваться во всех LoD, в заголовок.
[0606] Следует отметить, что R_TH[i] может составлять максимальное значение, которое может представляться посредством n битов. Например, R_TH равно 63 в случае 6 битов, и R_TH равно 255 в случае 8 битов. Альтернативно, устройство кодирования трехмерных данных может кодировать число битов вместо кодирования максимального значения, которое может представляться посредством n битов, в качестве порогового значения преобразования в двоичную форму. Например, устройство кодирования трехмерных данных может добавлять значение 6 в случае R_TH[i]=63 в заголовок и может добавлять значение 8 в случае R_TH[i]=255 в заголовок. Альтернативно, устройство кодирования трехмерных данных может задавать минимальное значение (минимальное число битов), представляющее R_TH[i], и добавлять относительное число битов из минимального значения в заголовок. Например, устройство кодирования трехмерных данных может добавлять значение 0 в заголовок, когда R_TH[i]=63 удовлетворяется, и минимальное число битов равно 6, и может добавлять значение 2 в заголовок, когда R_TH[i]=255 удовлетворяется, и минимальное число битов равно 6.
[0607] Альтернативно, устройство кодирования трехмерных данных может энтропийно кодировать, по меньшей мере, одно из NumLoD, Thres_ LoD [i], NumNeighborPoint[i], THd[i], QS[i] и R_TH[i] и добавлять энтропийного кодированное одно в заголовок. Например, устройство кодирования трехмерных данных может преобразовывать в двоичную форму каждое значение и выполнять арифметическое кодирование для двоичного значения. Помимо этого, устройство кодирования трехмерных данных может кодировать каждое значение с использованием фиксированной длины, чтобы уменьшать объем обработки.
[0608] Кроме того, устройство кодирования трехмерных данных может не добавлять, по меньшей мере, одно из NumLoD, Thres_Lod[i], NumNeighborPoint[i], THd[i], QS[i] и R_TH[i] в заголовок. Например, по меньшей мере, одно из этих значений может задаваться посредством профиля или уровня в стандарте и т.п. Таким образом, можно уменьшать объем в битах заголовка.
[0609] Фиг. 75 является схемой, указывающей пример синтаксиса данных (attribute_data) атрибутов согласно настоящему варианту осуществления. Данные атрибутов включают в себя кодированные данные информации атрибутов множества трехмерных точек. Как указано на фиг. 75, данные атрибутов включают в себя n-битовый код и оставшийся код.
[0610] N-битовый код представляет собой кодированные данные остатка прогнозирования значения информации атрибутов либо части кодированных. Длина в битах n-битового кода зависит от значения R_TH[i]. Например, длина в битах n-битового кода составляет 6 битов, когда значение, указываемое посредством R_TH[i], равно 63, длина в битах n-битового кода составляет 8 битов, когда значение, указываемое посредством R_TH[i], равно 255.
[0611] Оставшийся код представляет собой кодированные данные, кодированные с использованием кодирования экспоненциальным кодом Голомба, из кодированных данных остатка прогнозирования значения информации атрибутов. Оставшийся код кодируется или декодируется, когда значение n-битового кода равно R_TH[i]. Устройство декодирования трехмерных данных декодирует остаток прогнозирования посредством суммирования значения n-битового кода и значения оставшегося кода. Следует отметить, что оставшийся код должен не всегда кодироваться или декодироваться, когда значение n-битового кода не равно R_TH[i].
[0612] В дальнейшем в этом документе, приводится описание последовательности операций обработки в устройстве кодирования трехмерных данных. Фиг. 76 является блок-схемой последовательности операций способа для процесса кодирования трехмерных данных, выполняемого посредством устройства кодирования трехмерных данных.
[0613] Во-первых, устройство кодирования трехмерных данных кодирует геометрическую информацию (геометрию) (S3001). Например, кодирование трехмерных данных выполняется с использованием представления в виде дерева октантов.
[0614] Когда позиции трехмерных точек изменены посредством квантования и т.д., после кодирования геометрической информации, устройство кодирования трехмерных данных переназначает информацию атрибутов исходных трехмерных точек трехмерным точкам после изменения (S3002). Например, устройство кодирования трехмерных данных интерполирует значения информации атрибутов согласно величинам изменения позиции, чтобы переназначать информацию атрибутов. Например, устройство кодирования трехмерных данных обнаруживает N трехмерных точек перед изменением ближе к трехмерным позициям после изменения и выполняет усреднение со взвешиванием значений информации атрибутов N трехмерных точек. Например, устройство кодирования трехмерных данных определяет весовые коэффициенты на основе расстояний от трехмерных позиций после изменения до соответствующих N трехмерных позиций при усреднении со взвешиванием. Устройство кодирования трехмерных данных затем определяет значения, полученные через усреднение со взвешиванием, в качестве значений информации атрибутов трехмерных точек после изменения. Когда две или более из трехмерных точек изменяются на идентичную трехмерную позицию посредством квантования и т.д., устройство кодирования трехмерных данных может назначать среднее значение информации атрибутов двух или более трехмерных точек перед изменением в качестве значений информации атрибутов трехмерных точек после изменения.
[0615] Затем, устройство кодирования трехмерных данных кодирует переназначенную информацию атрибутов (атрибут) (S3003). Например, при кодировании множества видов информации атрибутов, устройство кодирования трехмерных данных может кодировать множество видов информации атрибутов по порядку. Например, при кодировании цветов и отражательных способностей в качестве информации атрибутов, устройство кодирования трехмерных данных может формировать поток битов, дополненный результатами цветового кодирования и результатами кодирования отражательных способностей после результатов цветового кодирования. Следует отметить, что порядок множества результатов кодирования информации атрибутов, которая должна добавляться в поток битов, не ограничен порядком и может представлять собой любой порядок.
[0616] Альтернативно, устройство кодирования трехмерных данных может добавлять, в заголовок, например, информацию, указывающую начальное местоположение кодированных данных каждой информации атрибутов в потоке битов. Таким образом, устройство декодирования трехмерных данных допускает избирательное декодирование информации атрибутов, которая должна декодироваться, и в силу этого допускает пропуск процесса декодирования информации атрибутов, которая не должна декодироваться. Соответственно, можно сокращать объем обработки посредством устройства декодирования трехмерных данных. Альтернативно, устройство кодирования трехмерных данных может кодировать множество видов информации атрибутов параллельно и может интегрировать результаты кодирования в один поток битов. Таким образом, устройство кодирования трехмерных данных допускает кодирование множества видов информации атрибутов на высокой скорости.
[0617] Фиг. 77 является блок-схемой последовательности операций способа процесса кодирования информации атрибутов (S3003). Во-первых, устройство кодирования трехмерных данных задает LoD (S3011). Другими словами, устройство кодирования трехмерных данных назначает каждую из трехмерных точек любому из множества LoD.
[0618] Затем, устройство кодирования трехмерных данных начинает цикл для каждого LoD (S3012). Другими словами, устройство кодирования трехмерных данных итеративно выполняет процессы этапов от S3013 до S3021 для каждого LoD.
[0619] Затем, устройство кодирования трехмерных данных начинает цикл для каждой трехмерной точки (S3013). Другими словами, устройство кодирования трехмерных данных итеративно выполняет процессы этапов от S3014 до S3020 для каждой трехмерной точки.
[0620] Во-первых, устройство кодирования трехмерных данных выполняет поиск множества соседних точек, которые представляют собой трехмерные точки, присутствующие в окружении текущей трехмерной точки, которая должна обрабатываться, и должны использоваться для того, чтобы вычислять прогнозированное значение текущей трехмерной точки (S3014). Затем, устройство кодирования трехмерных данных вычисляет среднее взвешенное значений информации атрибутов множества соседних точек и задает результирующее значение равным прогнозированному значению P (S3015). Затем, устройство кодирования трехмерных данных вычисляет остаток прогнозирования, который представляет собой разность между информацией атрибутов текущей трехмерной точки и прогнозированным значением (S3016). Затем, устройство кодирования трехмерных данных квантует остаток прогнозирования, чтобы вычислять квантованное значение (S3017). Затем, устройство кодирования трехмерных данных арифметически кодирует квантованное значение (S3018).
[0621] Затем, устройство кодирования трехмерных данных обратно квантует квантованное значение, чтобы вычислять обратно квантованное значение (S3019). Затем, устройство кодирования трехмерных данных суммирует прогнозное значение с обратно квантованным значением, чтобы формировать декодированное значение (S3020). Затем, устройство кодирования трехмерных данных завершает цикл для каждой трехмерной точки (S3021). Затем, устройство кодирования трехмерных данных завершает цикл для каждого LoD (S3022).
[0622] В дальнейшем в этом документе, приводится описание процесса декодирования трехмерных данных в устройстве декодирования трехмерных данных, которое декодирует поток битов, сформированный посредством устройства кодирования трехмерных данных.
[0623] Устройство декодирования трехмерных данных формирует декодированные двоичные данные посредством арифметического декодирования двоичных данных информации атрибутов в потоке битов, сформированном посредством устройства кодирования трехмерных данных, согласно способу, аналогичному способу, выполняемому посредством устройства кодирования трехмерных данных. Следует отметить, что когда способы применения арифметического кодирования переключаются между частью (n-битовым кодом), преобразованной в двоичную форму с использованием n битов, и частью (оставшимся кодом), преобразованной в двоичную форму с использованием кодирования экспоненциальным кодом Голомба в устройстве кодирования трехмерных данных, устройство декодирования трехмерных данных выполняет декодирование в соответствии с арифметическим кодированием при применении арифметического декодирования.
[0624] Например, устройство декодирования трехмерных данных выполняет арифметическое декодирование с использованием таблиц кодирования (таблиц декодирования), отличающихся для каждого бита при арифметическом декодировании n-битового кода. В это время, устройство декодирования трехмерных данных может изменять число таблиц кодирования, которые должны использоваться для каждого бита. Например, устройство декодирования трехмерных данных выполняет арифметическое декодирование с использованием одной таблицы кодирования для первого бита b0 в n-битовом коде. Устройство декодирования трехмерных данных использует две таблицы кодирования для следующего бита b1. Устройство декодирования трехмерных данных переключает таблицы кодирования, которые должны использоваться для арифметического декодирования бита b1, согласно значению (0 или 1) b0. Аналогично, устройство декодирования трехмерных данных использует четыре таблицы кодирования для следующего бита b2. Устройство декодирования трехмерных данных переключает таблицы кодирования, которые должны использоваться для арифметического декодирования бита b2, согласно значениям (в диапазоне от 0 до 3) b0 и b1.
[0625] Таким образом, устройство декодирования трехмерных данных использует 2n-1 таблиц кодирования при арифметическом декодировании каждого бита bn-1 в n-битовом коде. Устройство декодирования трехмерных данных переключает таблицы кодирования, которые должны использоваться, согласно значениям (шаблонам возникновения) битов перед bn-1. Таким образом, устройство декодирования трехмерных данных допускает надлежащее декодирование потока битов, кодированного при повышенной эффективности кодирования, с использованием таблиц кодирования, подходящих для каждого бита.
[0626] Следует отметить, что устройство декодирования трехмерных данных может сокращать число таблиц кодирования, которые должны использоваться для каждого бита. Например, устройство декодирования трехмерных данных может переключать 2m таблиц кодирования согласно значениям (шаблонам возникновения) m битов (m<n-1) перед bn-1 при арифметическом декодировании каждого бита bn-1. Таким образом, устройство декодирования трехмерных данных допускает надлежащее декодирование потока битов, кодированного при повышенной эффективности кодирования, при уменьшении числа таблиц кодирования, которые должны использоваться для каждого бита. Следует отметить, что устройство декодирования трехмерных данных может обновлять вероятности возникновения нуля и единицы в каждой таблице кодирования согласно значениям двоичных данных, возникающих фактически. Помимо этого, устройство декодирования трехмерных данных может фиксировать вероятности возникновения нуля и единицы в таблицах кодирования для некоторого бита(ов). Таким образом, можно сокращать число обновлений вероятностей возникновения и в силу этого уменьшать объем обработки.
[0627] Например, когда n-битовый код представляет собой b0, b1, b2, ..., bn-1, таблица кодирования для b0 составляет одну (CTb0). Таблицы кодирования для b1 составляют две таблицы (CTb10 и CTb11). Таблицы кодирования, которые должны использоваться, переключаются согласно значению (0 или 1) b0. Таблицы кодирования для b2 составляют четыре таблицы (CTb20, CTb21, CTb22 и CTb23). Таблицы кодирования, которые должны использоваться, согласно значениям (в диапазоне от 0 до 3) b0 и b1. Таблицы кодирования для bn-1 составляют 2n-1 таблиц (CTbn0, CTbn1, ..., CTbn (2n-1-1)). Таблицы кодирования, которые должны использоваться, переключаются согласно значениям (в диапазоне от 0 до 2n-1-1) b0, b1, ..., bn-2.
[0628] Фиг. 78 является схемой для иллюстрации обработки в случае, если оставшиеся коды представляют собой экспоненциальные коды Голомба. Как указано на фиг. 78, часть (оставшаяся часть), преобразованная в двоичную форму и кодированная посредством устройства кодирования трехмерных данных с использованием кодирования экспоненциальным кодом Голомба, включает в себя префикс и суффикс. Например, устройство декодирования трехмерных данных переключает таблицы кодирования между префиксом и суффиксом. Другими словами, устройство декодирования трехмерных данных арифметически декодирует каждый из битов, включенных в префикс, с использованием таблиц кодирования для префикса и арифметически декодирует каждый из битов, включенных в суффикс, с использованием таблиц кодирования для суффикса.
[0629] Следует отметить, что устройство декодирования трехмерных данных может обновлять вероятности возникновения нуля и единицы в каждой таблице кодирования согласно значениям двоичных данных, возникающих во время декодирования. Помимо этого, устройство декодирования трехмерных данных может фиксировать вероятности возникновения нуля и единицы в одной из таблиц кодирования. Таким образом, можно сокращать число обновлений вероятностей возникновения и в силу этого уменьшать объем обработки. Например, устройство декодирования трехмерных данных может обновлять вероятности возникновения для префикса и может фиксировать вероятности возникновения для суффикса.
[0630] Кроме того, устройство декодирования трехмерных данных декодирует квантованный остаток прогнозирования (целочисленное значение без знака) посредством отмены преобразования в двоичную форму двоичных данных остатка прогнозирования, арифметически декодированного согласно способу в соответствии со способом кодирования, используемым посредством устройства кодирования трехмерных данных. Устройство декодирования трехмерных данных сначала арифметически декодирует двоичные данные n-битового кода, чтобы вычислять значение n-битового кода. Затем, устройство декодирования трехмерных данных сравнивает значение n-битового кода с пороговым значением R_TH.
[0631] В случае если значение n-битового кода и пороговое значение R_TH совпадают, устройство декодирования трехмерных данных определяет то, что бит, кодированный с использованием кодирования экспоненциальным кодом Голомба, присутствует далее, и арифметически декодирует оставшийся код, который представляет собой двоичные данные, кодированные с использованием кодирования экспоненциальным кодом Голомба. Устройство декодирования трехмерных данных затем вычисляет, из декодированного оставшегося кода, значения оставшегося кода с использованием обратной таблицы поиска, указывающей взаимосвязь между оставшимся кодом и значением. Фиг. 79 является схемой, указывающей пример обратной таблицы поиска, указывающей взаимосвязи между оставшимися кодами и их значениями. Затем, устройство декодирования трехмерных данных суммирует полученное значение оставшегося кода с R_TH, за счет этого получая квантованный остаток прогнозирования после отмены преобразования в двоичную форму.
[0632] В противоположном случае, в котором значение n-битового кода и пороговое значение R_TH не совпадают (значение n-битового кода меньше значения R_TH), устройство декодирования трехмерных данных определяет значение n-битового кода в качестве квантованного остатка прогнозирования после отмены преобразования в двоичную форму как есть. Таким образом, устройство декодирования трехмерных данных допускает надлежащее декодирование потока битов, сформированного при переключении способов преобразования в двоичную форму согласно значениям остатков прогнозирования посредством устройства кодирования трехмерных данных.
[0633] Следует отметить, что когда пороговое значение R_TH добавляется, например, в заголовок потока битов, устройство декодирования трехмерных данных может декодировать пороговое значение R_TH из заголовка и может переключать способы декодирования с использованием декодированного порогового значения R_TH. Когда пороговое значение R_TH добавляется, например, в заголовок для каждого LoD, устройство декодирования трехмерных данных переключает способы декодирования с использованием порогового значения R_TH, декодированного для каждого LoD.
[0634] Например, когда пороговое значение R_TH равно 63, и значение декодированного n-битового кода равно 63, устройство декодирования трехмерных данных декодирует оставшийся код с использованием кодирования экспоненциальным кодом Голомба, за счет этого получая значение оставшегося кода. Например, в примере, указываемом на фиг. 79, оставшийся код равен 00100, и 3 получается в качестве значения оставшегося кода. Затем, устройство декодирования трехмерных данных суммирует 63, которое представляет собой пороговое значение R_TH, и 3, которое представляет собой значение оставшегося кода, за счет этого получая 66, которое представляет собой значение остатка прогнозирования.
[0635] Помимо этого, когда значение декодированного n-битового кода равно 32, устройство декодирования трехмерных данных задает 32, которое представляет собой значение n-битового кода, в качестве значения остатка прогнозирования.
[0636] Помимо этого, устройство декодирования трехмерных данных преобразует декодированный квантованный остаток прогнозирования, например, из целочисленного значения без знака в целочисленное значение со знаком, через инверсию обработки относительно обработки в устройстве кодирования трехмерных данных. Таким образом, при энтропийном декодировании остатка прогнозирования, устройство декодирования трехмерных данных допускает надлежащее декодирование потока битов, сформированного без учета возникновения отрицательного целого числа. Следует отметить, что устройство декодирования трехмерных данных не всегда должно преобразовывать целочисленное значение без знака в целочисленное значение со знаком, и что, например, устройство декодирования трехмерных данных может декодировать знаковый бит при декодировании потока битов, сформированного посредством отдельного энтропийного кодирования знакового бита.
[0637] Устройство декодирования трехмерных данных выполняет декодирование посредством обратного квантования и восстановления квантованного остатка прогнозирования после преобразования в целочисленное значение со знаком, чтобы получать декодированное значение. Устройство декодирования трехмерных данных использует сформированное декодированное значение для прогнозирования текущей трехмерной точки, которая должна декодироваться, и следующей трехмерной точки(ек). Более конкретно, устройство декодирования трехмерных данных умножает квантованный остаток прогнозирования на декодированный масштаб квантования, чтобы вычислять обратно квантованное значение, и суммирует обратно квантованное значение и прогнозированное значение, чтобы получать декодированное значение.
[0638] Декодированное целочисленное значение без знака (квантованное значение без знака) преобразуется в целочисленное значение со знаком через обработку, указанную ниже. Когда младший бит (LSB) декодированного целочисленного значения a2u без знака равен 1, устройство декодирования трехмерных данных задает целочисленное значение a2q со знаком равным -((a2u+1)>>1). Когда LSB целочисленного значения a2u без знака не равен 1, устройство декодирования трехмерных данных задает целочисленное значение a2q со знаком равным (a2u>>1).
[0639] Аналогично, когда LSB декодированного целочисленного значения b2u без знака равен 1, устройство декодирования трехмерных данных задает целочисленное значение b2q со знаком равным -((b2u+1)>>1). Когда LSB декодированного целочисленного значения n2u без знака не равен 1, устройство декодирования трехмерных данных задает целочисленное значение b2q со знаком равным (b2u>>1).
[0640] Подробности обработки обратного квантования и восстановления посредством устройства декодирования трехмерных данных являются аналогичными обработке обратного квантования и восстановления в устройстве кодирования трехмерных данных.
[0641] В дальнейшем в этом документе, приводится описание последовательности операций обработки в устройстве декодирования трехмерных данных. Фиг. 80 является блок-схемой последовательности операций способа для процесса декодирования трехмерных данных, выполняемого посредством устройства декодирования трехмерных данных. Во-первых, устройство декодирования трехмерных данных декодирует геометрическую информацию (геометрию) из потока битов (S3031). Например, устройство декодирования трехмерных данных выполняет декодирование с использованием представления в виде дерева октантов.
[0642] Затем, устройство декодирования трехмерных данных декодирует информацию атрибутов (атрибут) из потока битов (S3032). Например, при декодировании множества видов информации атрибутов, устройство декодирования трехмерных данных может декодировать множество видов информации атрибутов по порядку. Например, при декодировании цветов и отражательных способностей в качестве информации атрибутов, устройство декодирования трехмерных данных декодирует результаты цветового кодирования и результаты кодирования отражательных способностей в порядке назначения в потоке битов. Например, когда результаты кодирования отражательных способностей добавляются после результатов цветового кодирования в поток битов, устройство декодирования трехмерных данных декодирует результаты цветового кодирования и затем декодирует результаты кодирования отражательных способностей. Следует отметить, что устройство декодирования трехмерных данных может декодировать, в любом порядке, результаты кодирования информации атрибутов, добавляемой в поток битов.
[0643] Альтернативно, устройство кодирования трехмерных данных может добавлять, в заголовок, например, информацию, указывающую начальное местоположение кодированных данных каждой информации атрибутов в потоке битов. Таким образом, устройство декодирования трехмерных данных допускает избирательное декодирование информации атрибутов, которая должна декодироваться, и в силу этого допускает пропуск процесса декодирования информации атрибутов, которая не должна декодироваться. Соответственно, можно сокращать объем обработки посредством устройства декодирования трехмерных данных. Помимо этого, устройство декодирования трехмерных данных может декодировать множество видов информации атрибутов параллельно и может интегрировать результаты декодирования в одно облако трехмерных точек. Таким образом, устройство декодирования трехмерных данных допускает декодирование множества видов информации атрибутов на высокой скорости.
[0644] Фиг. 81 является блок-схемой последовательности операций способа процесса декодирования информации атрибутов (S3032). Во-первых, устройство декодирования трехмерных данных задает LoD (S3041). Другими словами, устройство декодирования трехмерных данных назначает каждую из трехмерных точек, имеющих декодированную геометрическую информацию, любому из множества LoD. Например, этот способ назначения является идентичным способу назначения, используемому в устройстве кодирования трехмерных данных.
[0645] Затем, устройство декодирования трехмерных данных начинает цикл для каждого LoD (S3042). Другими словами, устройство декодирования трехмерных данных итеративно выполняет процессы этапов от S3043 до S3049 для каждого LoD.
[0646] Затем, устройство декодирования трехмерных данных начинает цикл для каждой трехмерной точки (S3043). Другими словами, устройство декодирования трехмерных данных итеративно выполняет процессы этапов от S3044 до S3048 для каждой трехмерной точки.
[0647] Во-первых, устройство декодирования трехмерных данных выполняет поиск множества соседних точек, которые представляют собой трехмерные точки, присутствующие в окружении текущей трехмерной точки, которая должна обрабатываться, и должны использоваться для того, чтобы вычислять прогнозированное значение текущей трехмерной точки, которая должна обрабатываться (S3044). Затем, устройство декодирования трехмерных данных вычисляет среднее взвешенное значений информации атрибутов множества соседних точек и задает результирующее значение равным прогнозированному значению P (S3045). Следует отметить, что эти процессы являются аналогичными процессам в устройстве кодирования трехмерных данных.
[0648] Затем, устройство декодирования трехмерных данных арифметически декодирует квантованное значение из потока битов (S3046). Устройство декодирования трехмерных данных обратно квантует декодированное квантованное значение, чтобы вычислять обратно квантованное значение (S3047). Затем, устройство декодирования трехмерных данных суммирует прогнозированное значение с обратно квантованным значением, чтобы формировать декодированное значение (S3048). Затем, устройство декодирования трехмерных данных завершает цикл для каждой трехмерной точки (S3049). Затем, устройство кодирования трехмерных данных завершает цикл для каждого LoD (S3050).
[0649] Далее описываются конфигурации устройства кодирования трехмерных данных и устройства декодирования трехмерных данных согласно настоящему варианту осуществления. Фиг. 82 является блок-схемой, иллюстрирующей конфигурацию устройства 3000 кодирования трехмерных данных согласно настоящему варианту осуществления. Устройство 3000 кодирования трехмерных данных включает в себя кодер 3001 геометрической информации, модуль 3002 переназначения информации атрибутов и кодер 3003 информации атрибутов.
[0650] Кодер 3003 информации атрибутов кодирует геометрическую информацию (геометрию) множества трехмерных точек, включенных во входное облако точек. Модуль 3002 переназначения информации атрибутов переназначает значения информации атрибутов множества трехмерных точек, включенных во входное облако точек, с использованием результатов кодирования и декодирования геометрической информации. Кодер 3003 информации атрибутов кодирует переназначенную информацию атрибутов (атрибут). Более того, устройство 3000 кодирования трехмерных данных формирует поток битов, включающий в себя кодированную геометрическую информацию и кодированную информацию атрибутов.
[0651] Фиг. 83 является блок-схемой, иллюстрирующей конфигурацию устройства 3010 декодирования трехмерных данных согласно настоящему варианту осуществления. Устройство 3010 декодирования трехмерных данных включает в себя декодер 3011 геометрической информации и декодер 3012 информации атрибутов.
[0652] Декодер 3011 геометрической информации декодирует геометрическую информацию (геометрию) множества трехмерных точек из потока битов. Декодер 3012 информации атрибутов декодирует информацию атрибутов (атрибут) множества трехмерных точек из потока битов. Кроме того, устройство 3010 декодирования трехмерных данных интегрирует декодированную геометрическую информацию и декодированную информацию атрибутов, чтобы формировать выходное облако точек.
[0653] Как описано выше, устройство кодирования трехмерных данных согласно настоящему варианту осуществления выполняет процесс, проиллюстрированный на фиг. 84. Устройство кодирования трехмерных данных кодирует трехмерную точку, имеющую информацию атрибутов. Во-первых, устройство кодирования трехмерных данных вычисляет прогнозированное значение информации атрибутов трехмерной точки (S3061). Затем, устройство кодирования трехмерных данных вычисляет остаток прогнозирования, который представляет собой разность между информацией атрибутов трехмерной точки и прогнозированным значением (S3062). Затем, устройство кодирования трехмерных данных преобразует в двоичную форму остаток прогнозирования, чтобы формировать двоичные данные (S3063). Затем, устройство кодирования трехмерных данных арифметически кодирует двоичные данные (S3064).
[0654] Таким образом, устройство кодирования трехмерных данных допускает уменьшение объема кода подлежащих кодированию данных информации атрибутов посредством вычисления остатка прогнозирования информации атрибутов и преобразования в двоичную форму и арифметического кодирования остатка прогнозирования.
[0655] Например, при арифметическом кодировании (S3064), устройство кодирования трехмерных данных использует таблицы кодирования, отличающиеся для каждого из битов двоичных данных. За счет этого, устройство кодирования трехмерных данных может увеличивать эффективность кодирования.
[0656] Например, при арифметическом кодировании (S3064), число таблиц кодирования, которые должны использоваться, больше для бита низшего порядка двоичных данных.
[0657] Например, при арифметическом кодировании (S3064), устройство кодирования трехмерных данных выбирает таблицы кодирования, которые должны использоваться для того, чтобы арифметически кодировать текущий бит, включенный в двоичные данные, согласно значению бита высшего порядка относительно текущего бита. За счет этого, поскольку устройство кодирования трехмерных данных может выбирать таблицы кодирования, которые должны использоваться, согласно значению бита высшего порядка, устройство кодирования трехмерных данных может увеличивать эффективность кодирования.
[0658] Например, при преобразовании в двоичную форму (S3063), устройство кодирования трехмерных данных: преобразует в двоичную форму остаток прогнозирования с использованием фиксированного числа битов, чтобы формировать двоичные данные, когда остаток прогнозирования меньше порогового значения (R_TH); и формирует двоичные данные, включающие в себя первый код (n-битовый код) и второй код (оставшийся код), когда остаток прогнозирования превышает или равен пороговому значению (R_TH). Первый код имеет фиксированное число битов, указывающее пороговое значение (R_TH), и второй код (оставшийся код) получается посредством преобразования в двоичную форму, с использованием кодирования экспоненциальным кодом Голомба, значения, полученного посредством вычитания порогового значения (R_TH) из остатка прогнозирования. При арифметическом кодировании (S3064), устройство кодирования трехмерных данных использует способы арифметического кодирования, отличающиеся между первым кодом и вторым кодом.
[0659] Вследствие этого, например, поскольку можно арифметически кодировать первый код и второй код с использованием способов арифметического кодирования, соответственно, подходящих для первого кода и второго кода, можно увеличивать эффективность кодирования.
[0660] Например, устройство кодирования трехмерных данных квантует остаток прогнозирования и, при преобразовании в двоичную форму (S3063), преобразует в двоичную форму квантованный остаток прогнозирования. Пороговое значение (R_TH) изменяется согласно масштабу квантования в квантовании. Вследствие этого, поскольку устройство кодирования трехмерных данных может использовать пороговое значение надлежащим образом согласно масштабу квантования, можно увеличивать эффективность кодирования.
[0661] Например, второй код включает в себя префикс и суффикс. При арифметическом кодировании (S3064), устройство кодирования трехмерных данных использует различные таблицы кодирования между префиксом и суффиксом. Таким образом, устройство кодирования трехмерных данных может увеличивать эффективность кодирования.
[0662] Например, устройство кодирования трехмерных данных включает в себя процессор и запоминающее устройство, и процессор выполняет вышеуказанный процесс с использованием запоминающего устройства.
[0663] Устройство декодирования трехмерных данных согласно настоящему варианту осуществления выполняет процесс, проиллюстрированный на фиг. 85. Устройство декодирования трехмерных данных декодирует трехмерную точку, имеющую информацию атрибутов. Во-первых, устройство декодирования трехмерных данных вычисляет прогнозированное значение информации атрибутов трехмерной точки (S3071). Затем, устройство декодирования трехмерных данных арифметически декодирует кодированные данные, включенные в поток битов, чтобы формировать двоичные данные (S3072). Затем, устройство декодирования трехмерных данных отменяет преобразование в двоичную форму двоичных данных, чтобы формировать остаток прогнозирования (S3073). Затем, устройство декодирования трехмерных данных вычисляет декодированное значение информации атрибутов трехмерной точки посредством суммирования прогнозированного значения и остатка прогнозирования (S3074).
[0664] Таким образом, устройство декодирования трехмерных данных допускает надлежащее декодирование потока битов информации атрибутов, сформированной посредством вычисления остатка прогнозирования информации атрибутов и преобразования в двоичную форму и арифметического декодирования остатка прогнозирования.
[0665] Например, при арифметическом декодировании (S3072), устройство декодирования трехмерных данных использует таблицы кодирования, отличающиеся для каждого из битов двоичных данных. Вследствие этого, устройство декодирования трехмерных данных допускает надлежащее декодирование потока битов, кодированного при повышенной эффективности кодирования.
[0666] Например, при арифметическом декодировании (S3072), число таблиц кодирования, которые должны использоваться, больше для младшего бита двоичных данных.
[0667] Например, при арифметическом декодировании (S3072), устройство декодирования трехмерных данных выбирает таблицы кодирования, которые должны использоваться для того, чтобы арифметически декодировать текущий бит, включенный в двоичные данные, согласно значению бита высшего порядка относительно текущего бита. Вследствие этого, устройство декодирования трехмерных данных допускает надлежащее декодирование потока битов, кодированного при повышенной эффективности кодирования.
[0668] Например, при отмене преобразования в двоичную форму (S3073), устройство декодирования трехмерных данных отменяет преобразование в двоичную форму первого кода (n-битового кода) фиксированного числа битов, включенного в двоичные данные, чтобы формировать первое значение. Устройство декодирования трехмерных данных: определяет первое значение в качестве остатка прогнозирования, когда первое значение меньше порогового значения (R_TH); и когда первое значение превышает или равно пороговому значению (R_YH), формирует второе значение посредством отмены преобразования в двоичную форму второго кода (оставшегося кода), который представляет собой экспоненциальный код Голомба, включенный в двоичные данные, и суммирует первое значение и второе значение, за счет этого формируя остаток прогнозирования. При арифметическом декодировании (S3072), устройство декодирования трехмерных данных использует способы арифметического декодирования, отличающиеся между первым кодом и вторым кодом.
[0669] Вследствие этого, устройство декодирования трехмерных данных допускает надлежащее декодирование потока битов, кодированного при повышенной эффективности кодирования.
[0670] Например, устройство декодирования трехмерных данных обратно квантует остаток прогнозирования и, помимо этого (S3074), суммирует прогнозированное значение и обратно квантованный остаток прогнозирования. Пороговое значение (R_TH) изменяется согласно масштабу квантования при обратном квантовании. Вследствие этого, устройство декодирования трехмерных данных допускает надлежащее декодирование потока битов, кодированного при повышенной эффективности кодирования.
[0671] Например, второй код включает в себя префикс и суффикс. При арифметическом декодировании (S3072) устройство декодирования трехмерных данных использует различные таблицы кодирования между префиксом и суффиксом. Вследствие этого, устройство декодирования трехмерных данных допускает надлежащее декодирование потока битов, кодированного при повышенной эффективности кодирования.
[0672] Например, устройство декодирования трехмерных данных включает в себя процессор и запоминающее устройство, и процессор выполняет вышеописанный процесс с использованием запоминающего устройства.
Вариант 10 осуществления
[0673] Прогнозированные значения могут формироваться посредством способа, отличающегося от способа в варианте 9 осуществления. В дальнейшем в этом документе, трехмерная точка, которая должна кодироваться, называется "первой трехмерной точкой", и одна или более трехмерных точек около первой трехмерной точки называются "одной или более вторых трехмерных точек" в некоторых случаях.
[0674] Например, при формировании прогнозированного значения элемента информации атрибута (информации атрибутов) трехмерной точки, значение атрибута как есть ближайшей трехмерной точки из кодированных и декодированных трехмерных точек около трехмерной точки, которая должна кодироваться, может формироваться в качестве прогнозированного значения. При формировании прогнозированного значения, информация (PredMode) режима прогнозирования может присоединяться для каждой трехмерной точки, и одно прогнозированное значение может выбираться из множества прогнозированных значений, чтобы обеспечивать возможность формирования прогнозированного значения. В частности, например, есть возможность того, что для общего числа M режимов прогнозирования, среднее значение назначается режиму 0 прогнозирования, значение атрибута трехмерной точки A назначается режиму 1 прогнозирования, ..., и значение атрибута Z трехмерной точки назначается режиму M-1 прогнозирования, и режим прогнозирования, используемый для прогнозирования, присоединяется к потоку битов для каждой трехмерной точки. В связи с этим, значение первого режима прогнозирования, указывающее первый режим прогнозирования для вычисления, в качестве прогнозированного значения, среднего элементов информации атрибута окружающих трехмерных точек может быть меньше значения второго режима прогнозирования, указывающего второй режим прогнозирования для вычисления, в качестве прогнозированного значения, элемента информации атрибута как есть окружающей трехмерной точки. Здесь, "среднее значение" в качестве прогнозированного значения, вычисленного в режиме 0 прогнозирования, составляет среднее значение для значений атрибутов трехмерных точек около трехмерной точки, которая должна кодироваться.
[0675] Фиг. 86 является схемой, показывающей первый пример таблицы, представляющей прогнозированные значения, вычисленные в режимах прогнозирования согласно варианту 10 осуществления. Фиг. 87 является схемой, показывающей примеры элементов информации атрибута, используемых в качестве прогнозированных значений согласно варианту 10 осуществления. Фиг. 88 является схемой, показывающей второй пример таблицы, представляющей прогнозированные значения, вычисленные в режимах прогнозирования согласно варианту 10 осуществления.
[0676] Число M режимов прогнозирования может присоединяться к потоку битов. Число M режимов прогнозирования может задаваться посредством профиля или уровня стандартов, а не присоединяться в поток битов. Число M режимов прогнозирования также может вычисляться из числа N трехмерных точек, используемых для прогнозирования. Например, число M режимов прогнозирования может вычисляться посредством M=N+1.
[0677] Таблица на фиг. 86 представляет собой пример случая с числом N трехмерных точек, используемых для прогнозирования, равным 4, и число M режимов прогнозирования, равным 5. Прогнозированное значение элемента информации атрибута точки b2 может формироваться посредством использования элементов информации атрибута точек a0, a1, a2, b1. При выборе одного режима прогнозирования из множества режимов прогнозирования, режим прогнозирования для формирования, в качестве прогнозированного значения, значения атрибута каждой из точек a0, a1, a2, b1 может выбираться в соответствии с информацией расстояния от точки b2 до каждой из точек a0, a1, a2, b1. Режим прогнозирования присоединяется для каждой трехмерной точки, которая должна кодироваться. Прогнозированное значение вычисляется в соответствии со значением, соответствующим присоединенному режиму прогнозирования.
[0678] Таблица на фиг. 88, как показано на фиг. 86, представляет собой пример случая с числом N трехмерных точек, используемых для прогнозирования, равным 4, и числом M режимов прогнозирования, равным 5. Прогнозированное значение элемента информации атрибута точки a2 может формироваться посредством использования элементов информации атрибута точек a0, a1. При выборе одного режима прогнозирования из множества режимов прогнозирования, режим прогнозирования для формирования, в качестве прогнозированного значения, значения атрибута каждой из точек a0 и a1 может выбираться в соответствии с информацией расстояния от точки a2 до каждой из точек a0, a1. Режим прогнозирования присоединяется для каждой трехмерной точки, которая должна кодироваться. Прогнозированное значение вычисляется в соответствии со значением, соответствующим присоединенному режиму прогнозирования.
[0679] Когда число соседних точек, т.е. число N окружающих трехмерных точек меньше четыре, к примеру, в точке a2 выше, режим прогнозирования, которому не назначается прогнозированное значение, может записываться как "не доступно" в таблице.
[0680] Назначение значений режимов прогнозирования может определяться в соответствии с расстоянием от трехмерной точки, которая должна кодироваться. Например, значения режима прогнозирования, указывающие множество режимов прогнозирования, снижаются со снижением расстоянием от трехмерной точки, которая должна кодироваться, до окружающих трехмерных точек, имеющих элементы информации атрибута, используемые в качестве прогнозированных значений. Пример на фиг. 86 показывает то, что точки b1, a2, a1, a0 последовательно находятся ближе к точке b2 в качестве трехмерной точки, которая должна кодироваться. Например, при вычислении прогнозированного значения, элемент информации атрибута точки b1 вычисляется как прогнозированное значение в режиме прогнозирования, указываемом посредством значения режима прогнозирования "1", из двух или более режимов прогнозирования, и элемент информации атрибута точки a2 вычисляется как прогнозированное значение в режиме прогнозирования, указываемом посредством значения режима прогнозирования "2". В связи с этим, значение режима прогнозирования, указывающее режим прогнозирования для вычисления, в качестве прогнозированного значения, элемент информации атрибута точки b1 меньше значения режима прогнозирования, указывающего режим прогнозирования для вычисления, в качестве прогнозированного значения, элемента информации атрибута точки a2 дальше от точки b2, чем точка b1.
[0681] Таким образом, небольшое значение режима прогнозирования может назначаться точке, которая с большей вероятностью должна прогнозироваться и выбираться вследствие небольшого расстояния, за счет этого уменьшая число битов для кодирования значения режима прогнозирования. Кроме того, небольшое значение режима прогнозирования может предпочтительно назначаться трехмерной точке, принадлежащей LoD, идентичному LoD трехмерной точки, которая должна кодироваться.
[0682] Фиг. 89 является схемой, показывающей третий пример таблицы, представляющей прогнозированные значения, вычисленные в режимах прогнозирования согласно варианту 10 осуществления. В частности, третий пример представляет собой пример случая, в котором элемент информации атрибута, используемый в качестве прогнозированного значения, представляет собой значение цветовой информации (YUV) окружающей трехмерной точки. В связи с этим, элемент информации атрибута, используемый в качестве прогнозированного значения, может представлять собой цветовую информацию, указывающую цвет трехмерной точки.
[0683] Как показано на фиг. 89, прогнозированное значение, вычисленное в режиме прогнозирования, указываемом посредством значения режима прогнозирования "0", составляет среднее Y-, U- и V-компонентов, задающих цветовое YUV-пространство. В частности, прогнозированное значение включает в себя средневзвешенное значение Yave из значений Yb1, Ya2, Ya1, Ya0 Y-компонента, соответствующих точкам b1, a2, a1, a0, соответственно, средневзвешенное значение Uave из значений Ub1, Ua2, Ua1, Ua0 U-компонента, соответствующих точкам b1, a2, a1, a0, соответственно, и средневзвешенное значение Vave из значений Vb1, Va2, Va1, Va0 V-компонента, соответствующих точкам b1, a2, a1, a0, соответственно. Прогнозированные значения, вычисленные в режимах прогнозирования, указываемых посредством значений режима прогнозирования в "1"-"4", включают в себя цветовую информацию окружающих трехмерных точек b1, a2, a1, a0. Цветовая информация указывается посредством комбинаций значений Y-, U- и V-компонента.
[0684] На фиг. 89, цветовая информация указывается посредством значения, заданного посредством цветового YUV-пространства, но не ограничивается цветовым YUV-пространством. Цветовая информация может указываться посредством значения, заданного посредством цветового RGB-пространства, или значения, заданного посредством любого другого цветового пространства.
[0685] В связи с этим, при вычислении прогнозированного значения, два или более средних или два или более элемента информации атрибута могут вычисляться как прогнозированные значения режимов прогнозирования. Два или более средних или два или более элемента информации атрибута могут указывать два или более значений компонентов, задающие цветовое пространство.
[0686] Например, когда режим прогнозирования, указываемый посредством значения режима прогнозирования "2" в таблице на фиг. 89, выбирается, Y-компонент, U-компонент и V-компонент в качестве значений атрибутов трехмерной точки, которая должна кодироваться, могут кодироваться как прогнозированные значения Ya2, Ua2, Va2. В этом случае, значение режима прогнозирования "2" присоединяется к потоку битов.
[0687] Фиг. 90 является схемой, показывающей четвертый пример таблицы, представляющей прогнозированные значения, вычисленные в режимах прогнозирования согласно варианту 10 осуществления. В частности, четвертый пример представляет собой пример случая, в котором элемент информации атрибута, используемый в качестве прогнозированного значения, представляет собой значение информации отражательной способности окружающей трехмерной точки. Информация отражательной способности, например, представляет собой информацию, указывающую отражательную способность R.
[0688] Как показано на фиг. 90, прогнозированное значение, вычисленное в режиме прогнозирования, указываемом посредством значения режима прогнозирования "0", представляет собой средневзвешенное значение Rave отражательных способностей Rb1, Ra2, Ra1, Ra0, соответствующий точкам b1, a2, a1, a0, соответственно. Прогнозированные значения, вычисленные в режимах прогнозирования, указываемых посредством значений режима прогнозирования в "1"-"4", представляют собой отражательные способности Rb1, Ra2, Ra1, Ra0 окружающих трехмерных точек b1, a2, a1, a0, соответственно.
[0689] Например, когда режим прогнозирования, указываемый посредством значения режима прогнозирования "3" в таблице на фиг. 90, выбирается, отражательная способность в качестве значения атрибута трехмерной точки, которая должна кодироваться, может кодироваться как прогнозированное значение Ra1. В этом случае, значение режима прогнозирования "3" присоединяется к потоку битов.
[0690] Как показано на фиг. 89 и 90, элемент информации атрибута может включать в себя первой элемент информации атрибутов и второй элемент информации атрибутов, отличающийся от первого элемента информации атрибута. Первой элемент информации атрибутов, например, представляет собой цветовую информацию. Второй элемент информации атрибутов, например, представляет собой информацию отражательной способности. При вычислении прогнозированного значения, первое прогнозированное значение может вычисляться посредством использования элемента первой информации атрибутов, и второе прогнозированное значение может вычисляться посредством использования элемента второй информации атрибутов.
[0691] Вариант 11 осуществления
В качестве другого примера кодирования информации атрибутов трехмерной точки посредством использования информации относительно LoD, в дальнейшем описывается способ, который кодирует множество трехмерных точек в порядке от трехмерных точек, включенных в нижний слой LoD. Например, при кодировании множества трехмерных точек в порядке от трехмерных точек, включенных в LoDn нижнего слоя из LoD, устройство кодирования трехмерных данных может вычислять прогнозированные значения трехмерных точек, включенных в LoDn, посредством использования информации атрибутов трехмерных точек, включенных в слой выше LoDn LoD.
[0692] Фиг. 91 является схемой, показывающей пример опорной взаимосвязи. Например, в случае примера, показанного на фиг. 91, устройство кодирования трехмерных данных вычисляет прогнозированные значения трехмерных точек, включенных в LoD2, посредством использования информации атрибутов трехмерных точек, включенных в LoD0 или LoD1. Дополнительно, устройство кодирования трехмерных данных вычисляет прогнозированные значения трехмерных точек, включенных в LoD1, посредством использования информации атрибутов трехмерных точек, включенных в LoD0. В этом случае, LoD0 или LoD1 не должны обязательно представлять собой информацию атрибутов, которая кодирована и декодирована. В этом случае, устройство кодирования трехмерных данных может использовать, например, значение перед кодированием.
[0693] Таким образом, устройство кодирования трехмерных данных может формировать прогнозированные значения информации атрибутов трехмерных точек, включенных в LoDn, посредством использования информации атрибутов, включенной в LoDn' (n'<n). Соответственно, поскольку множество трехмерных точек, включенных в LoDn, не ссылаются друг на друга, устройство кодирования трехмерных данных может вычислять параллельно прогнозированные значения множества трехмерных точек, включенных в LoDn.
[0694] Например, устройство кодирования трехмерных данных формирует прогнозированное значение информации атрибутов трехмерной точки посредством вычисления среднего значений атрибутов N или меньше трехмерных точек из трехмерных точек вокруг текущей трехмерной точки, которая должна кодироваться. Дополнительно, устройство кодирования трехмерных данных может добавлять значение N в заголовок потока битов и т.п. Следует отметить, что устройство кодирования трехмерных данных может изменять значение N для каждой трехмерной точки и добавлять значение N для каждой трехмерной точки. Соответственно, поскольку соответствующий N может выбираться для каждой трехмерной точки, точность прогнозированного значения может повышаться. Следовательно, прогнозированный остаток может уменьшаться. Дополнительно, устройство кодирования трехмерных данных может добавлять значение N в заголовок потока битов и может фиксировать значение N в потоке битов. Соответственно, поскольку становится необязательным кодировать или декодировать значение N для каждой трехмерной точки, объем обработки может уменьшаться. Дополнительно, устройство кодирования трехмерных данных может отдельно кодировать значение N для каждого LoD. Соответственно, эффективность кодирования может повышаться посредством выбора соответствующего N для каждого LoD.
[0695] Альтернативно, устройство кодирования трехмерных данных может вычислять прогнозированное значение информации атрибутов трехмерной точки со средневзвешенным значением информации атрибутов периферийных трехмерных точек N. Например, устройство кодирования трехмерных данных вычисляет весовой коэффициент посредством использования соответствующих фрагментов информации расстояния текущей трехмерной точки и периферийных трехмерных точек N.
[0696] При отдельном кодировании значении N для каждого LoD, устройство кодирования трехмерных данных задает, например, значение N большим для верхних слоев в LoD и значение N меньшим для нижних слоев. Расстояние между трехмерными точками, принадлежащими верхним слоям в LoD, превышает расстояние между трехмерными точками, принадлежащими верхнему слою в LoD. Следовательно, в верхних слоях, имеется вероятность того, что точность прогнозирования может повышаться посредством усреднения большего числа периферийных трехмерных точек посредством задания значения N большим. Дополнительно, расстояние между трехмерными точками, принадлежащими нижним слоям в LoD, является небольшим. Следовательно, в нижних слоях, появляется возможность выполнять эффективное прогнозирование при подавлении объема обработки усреднения, посредством задания значения N небольшим.
[0697] Как описано выше, прогнозированное значение точки P, включенной в LoDN, формируется посредством использования кодированной окружающей точки P', включенной в LoDN' (N'<=N). Здесь, окружающая точка P' выбирается на основе расстояния от точки P. Например, прогнозированное значение информации атрибутов точки b2, показанной на фиг. 91, формируется посредством использования информации атрибутов точек a0, a1 и a2.
[0698] Периферийные точки, которые должны выбираться изменяются согласно вышеописанному значению N. Например, когда N=3, точки a0, a1 и a2 выбираются в качестве окружающих точек относительно точки b2. Когда N=2, точки a1 и a2 выбираются на основе информации расстояния.
[0699] Прогнозированное значение вычисляется посредством зависимого от расстояния усреднения со взвешиванием. Например, в примере, показанном на фиг. 91, прогнозированное значение b2p точки b2 вычисляется посредством среднего взвешенного информации атрибутов точки a0 и точки a1, как показано в уравнении J1) и уравнение J2. Следует отметить, что Ai представляет собой значение информации атрибутов точки ai. Дополнительно, d(p, q), например, представляет собой евклидово расстояние между трехмерной точкой p и трехмерной точкой q.
[0700] Математическое выражение 5
... (уравнение J1)
... (уравнение J2)
[0701] Дополнительно, как показано в уравнение J3 и уравнении J4, прогнозированное значение aNp точки aN вычисляется посредством среднего взвешенного информации атрибутов точек aN-4, aN-3, aN-2 и aN-1.
[0702] Математическое выражение 6
... (уравнение J3)
... (уравнение J4)
[0703] Дополнительно, устройство кодирования трехмерных данных может вычислять разностное значение (прогнозированный остаток) между значением информации атрибутов трехмерной точки и прогнозированным значением, сформированным из окружающих точек, и может квантовать вычисленный прогнозированный остаток. Например, устройство кодирования трехмерных данных выполняет квантование посредством деления прогнозированного остатка на масштаб квантования (также называемый "шагом квантования"). В этом случае, чем меньше масштаб квантования, тем меньше ошибка (ошибка квантования), которая может возникать вследствие квантования. С другой стороны, чем больше масштаб квантования, тем больше ошибка квантования.
[0704] Следует отметить, что устройство кодирования трехмерных данных может изменять масштаб квантования, который должен использоваться для каждого LoD. Например, устройство кодирования трехмерных данных задает масштаб квантования меньшим для верхних слоев и задает масштаб квантования большим для нижних слоев. Поскольку значение информации атрибутов трехмерных точек, принадлежащих верхним слоям, может использоваться в качестве прогнозированного значения информации атрибутов трехмерных точек, принадлежащих нижним слоям, эффективность кодирования может повышаться посредством подавления ошибки квантования, которая может возникать в верхних слоях, посредством задания масштаба квантования для верхних слоев небольшим, чтобы увеличивать точность прогнозированного значения. Следует отметить, что устройство кодирования трехмерных данных может добавлять масштаб квантования, используемый для каждого LoD, в заголовок и т.п. Соответственно, поскольку устройство декодирования трехмерных данных может корректно декодировать масштаб квантования, поток битов может надлежащим образом декодироваться.
[0705] Дополнительно, устройство кодирования трехмерных данных может адаптивно переключать масштаб квантования, который должен использоваться, согласно важности текущей трехмерной точки. Например, устройство кодирования трехмерных данных использует небольшой масштаб квантования для трехмерной точки с высокой важностью и использует большой масштаб квантования для трехмерной точки с низкой важностью. Здесь, важность может вычисляться, например, из числа раз, когда на текущую трехмерную точку ссылаются посредством других трехмерных точек во время вычисления прогнозированного значения, весового коэффициента в это время и т.п. Например, значение следующего QW (весового коэффициента квантования) используется в качестве важности. Устройство кодирования трехмерных данных задает значение QW трехмерной точки с высокой важностью большим и задает масштаб квантования небольшим. Соответственно, поскольку ошибка квантования трехмерной точки с высокой важностью становится небольшой, эффективность кодирования может повышаться.
[0706] Фиг. 92 является схемой, показывающей пример вычисления QW. QS (шаг квантования) может изменяться согласно LoD. QS_LoD0 представляет собой QS для LoD0, и QS_LoD1 представляет собой QS для LoD1.
[0707] QW представляет собой значение, представляющее важность текущей трехмерной точки. Например, когда точка b2 используется для вычисления прогнозированного значения точки c0, значение QW точки c0 может умножаться на весовой коэффициент Wb2_c0 для точки b2, вычисленный во время формирования прогнозированного значения точки c0, и полученное значение может суммироваться со значением QW точки b2. Соответственно, значение QW трехмерной точки, которая часто использована для формирования прогнозированного значения, становится большим, и эффективность прогнозирования может повышаться посредством подавления ошибки квантования трехмерной точки.
[0708] Например, устройство кодирования трехмерных данных может сначала инициализировать значения QW всех трехмерных точек с 1 и может обновлять QW каждой трехмерной точки согласно структуре прогнозирования. Альтернативно, устройство кодирования трехмерных данных может изменять начальное значение согласно слою LoD, без инициализации QW всех трехмерных точек со значением 1. Например, устройство кодирования трехмерных данных может задавать масштаб квантования для верхних слоев меньшим посредством задания начальных значений QW для верхних слоев большими. Соответственно, поскольку ошибки прогнозирования для верхних слоев могут подавляться, точность прогнозирования для нижних слоев может увеличиваться, и эффективность кодирования может повышаться.
[0709] Устройство кодирования трехмерных данных может преобразовывать целочисленное значение со знаком (квантованное значение со знаком), которое представляет собой квантованный остаток прогнозирования, в целочисленное значение без знака (квантованное значение без знака). Соответственно, при энтропийном кодировании прогнозированного остатка, становится необязательным рассматривать возникновение отрицательного целого числа. Следует отметить, что устройство кодирования трехмерных данных не должно обязательно преобразовывать целочисленное значение со знаком в целочисленное значение без знака и, например, может отдельно энтропийно кодировать знаковый бит.
[0710] Фиг. 93 является схемой, показывающей пример вычисления прогнозированного остатка. Прогнозированный остаток вычисляется посредством вычитания прогнозированного значения из исходного значения. Например, как показано в уравнении J5, прогнозированный остаток b2r точки b2 вычисляется посредством вычитания прогнозированного значения b2p точки b2 из значения B2 информации атрибутов точки b2.
[0711] b2r=B2-b2p... (уравнение J5)
[0712] Дополнительно, прогнозированный остаток квантуется посредством деления на QS (шаг квантования). Например, квантованное значение b2q точки b2 вычисляется посредством уравнения J6. Здесь, QS_LoD1 представляет собой QS для LoD1. Таким образом, QS может изменяться согласно LoD.
[0713] b2q=b2r/QS_LoD1... (уравнение J6)
[0714] Дополнительно, при использовании QW, как описано выше, квантованное значение b2q точки b2 вычисляется посредством уравнения J7 и уравнения J8.
[0715] Математическое выражение 7
... (уравнение J7)
... (уравнение J8)
[0716] Дополнительно, устройство кодирования трехмерных данных преобразует целочисленное значение со знаком, которое представляет собой вышеописанное квантованное значение, в целочисленное значение без знака следующим образом. Аналогично, когда целочисленное значение b2q со знаком меньше 0, устройство кодирования трехмерных данных задает целочисленное значение b2u без знака равным -1-(2xb2q). Когда целочисленное значение b2q со знаком равно 0 или больше, устройство кодирования трехмерных данных задает целочисленное значение b2u без знака равным 2xb2q.
[0717] Дополнительно, устройство кодирования трехмерных данных сканирует и кодирует прогнозированный остаток (целочисленное значение без знака) после квантования согласно определенному порядку. Например, устройство кодирования трехмерных данных кодирует множество трехмерных точек в порядке от трехмерных точек, включенных в верхние слои LoD, к нижним слоям.
[0718] Фиг. 94 является схемой, показывающей пример этого кодирования. В случае примера, показанного на фиг. 94, устройство кодирования трехмерных данных кодирует множество трехмерных точек от точки a0, включенной в LoD0 верхнего слоя в порядке a1, a2, b0, b1, b2, c0, c1, c2, ..., cN. Здесь, возникает такая тенденция, что чем ниже LoD, тем более вероятно то, что прогнозированный остаток после квантования становится равным 0. Это может быть обусловлено следующим и т.п.
[0719] Поскольку прогнозированное значение трехмерной точки, принадлежащей нижнему слою LoD, формируется со ссылкой на большее число трехмерных точек, чем прогнозированное значение трехмерной точки верхнего слоя, точность прогнозирования является высокой, и прогнозированный остаток легко становится равным 0. Дополнительно, посредством переключения масштаба квантования согласно вышеописанной важности и т.п., чем ниже слой, тем больше масштаб квантования и тем более вероятно то, что прогнозированный остаток после квантования становится равным 0. Таким образом, трехмерные точки нижнего слоя с большей вероятностью должны иметь 0 для прогнозированного остатка после квантования. Следовательно, значение 0 с большей вероятностью должно последовательно формироваться для первой кодовой последовательности в нижних слоях. Здесь, первая кодовая последовательность представляет собой кодовую последовательность, в которой прогнозированные остатки после квантования множества точек согласно вышеописанному порядку кодирования размещаются, как показано на фиг. 94.
[0720] С другой стороны, устройство кодирования трехмерных данных подсчитывает число раз, когда значение 0 возникает в первой кодовой последовательности, и кодирует число раз, когда значение 0 последовательно возникает, вместо последовательных значений 0. Таким образом, устройство кодирования трехмерных данных формирует вторую кодовую последовательность посредством замены прогнозированных остатков последовательных значений 0 в первой кодовой последовательности последовательным числом раз (ZeroCnt) в 0. Соответственно, когда имеются последовательные значения 0 прогнозированных остатков после квантования, эффективность кодирования может повышаться посредством кодирования последовательного числа раз в 0, вместо кодирования множества нулей.
[0721] Дополнительно, устройство кодирования трехмерных данных может энтропийно кодировать значение ZeroCnt. Например, устройство кодирования трехмерных данных преобразует в двоичную форму значение ZeroCnt с усеченным унарным кодом общего числа T кодированных трехмерных точек и арифметически кодирует каждый бит после преобразования в двоичную форму. Фиг. 95 является схемой, показывающей пример усеченного унарного кода в случае, если общее число кодированных трехмерных точек составляет T. В это время, устройство кодирования трехмерных данных может повышать эффективность кодирования посредством использования различной таблицы кодирования для каждого бита. Например, устройство кодирования трехмерных данных использует таблицу 1 кодирования для первого бита, использует таблицу 2 кодирования для второго бита и таблицу 3 кодирования для последующих битов. Таким образом, устройство кодирования трехмерных данных может повышать эффективность кодирования посредством переключения таблицы кодирования для каждого бита.
[0722] Дополнительно, устройство кодирования трехмерных данных может арифметически кодировать ZeroCnt после преобразования в двоичную форму ZeroCnt с экспоненциальным кодом Голомба. Соответственно, когда значение ZeroCnt легко становится большим, эффективность может повышаться в большей степени, чем при арифметическом кодировании с преобразованием в двоичную форму с помощью усеченного унарного кода. Следует отметить, что устройство кодирования трехмерных данных может добавлять флаг для переключения между использованием усеченного унарного кода и использованием экспоненциального кода Голомба в заголовок. Соответственно, устройство кодирования трехмерных данных может повышать эффективность кодирования посредством выбора оптимального способа преобразования в двоичную форму. Дополнительно, устройство декодирования трехмерных данных может корректно декодировать поток битов посредством ссылки на флаг, включенный в заголовок, чтобы переключать способ преобразования в двоичную форму.
[0723] Фиг. 96 является схемой, показывающей пример синтаксиса информации (attribute_data) атрибутов. Информация (attribute_data) атрибутов включает в себя число последовательных нулей (ZeroCnt), число (attribute_dimension) размерностей атрибутов и прогнозированный остаток (значение [j][i]).
[0724] Число последовательных нулей (ZeroCnt) указывает число раз, когда которое значение 0 продолжается в прогнозированном остатке после квантования. Следует отметить, что устройство кодирования трехмерных данных может арифметически кодировать ZeroCnt после преобразования в двоичную форму ZeroCnt.
[0725] Число (attribute_dimension) размерностей атрибутов указывает число размерностей информации атрибутов. Например, когда информация атрибутов представляет собой цветовую информацию (RGB, YUV и т.п.) трехмерной точки, поскольку цветовая информация является трехмерной, число размерностей атрибутов задается равным значению 3. Когда информация атрибутов представляет собой отражательную способность, поскольку отражательная способность является одномерной, число размерностей атрибутов задается равным значению 1. Следует отметить, что число размерностей атрибутов может добавляться в заголовок информации атрибутов потока битов и т.п.
[0726] Прогнозированный остаток (значение [j][i]) указывает прогнозированный остаток после квантования информации атрибутов j-ой размерности i-ой трехмерной точки. Например, когда информация атрибутов представляет собой цветовую информацию, значение [99][1] указывает прогнозированный остаток второй размерности (например, значение G) 100-й трехмерной точки. Дополнительно, когда информация атрибутов представляет собой информацию отражательной способности, значение [119][0] указывает прогнозированный остаток первой размерности (например, отражательную способность) 120-й трехмерной точки.
[0727] Следует отметить, что когда следующие условия удовлетворяются, устройство кодирования трехмерных данных может вычитать значение 1 из значения [j][i] и может энтропийно кодировать полученное значение. В этом случае, устройство декодирования трехмерных данных восстанавливает прогнозированный остаток посредством суммирования значения 1 со значением [j][i] после энтропийного декодирования.
[0728] Вышеописанные условия состоят в представляют собой (1), когда attribute_dimension=1, или (2) когда attribute_dimension равен 1 или более, и когда значения всех размерностей равны. Например, когда информация атрибутов представляет собой отражательную способность, поскольку attribute_dimension=1, устройство кодирования трехмерных данных вычитает значение 1 из прогнозированного остатка, чтобы вычислять значение, и кодирует вычисленное значение. Устройство декодирования трехмерных данных вычисляет прогнозированный остаток посредством суммирования значения 1 со значением после декодирования.
[0729] Более конкретно, например, когда прогнозированный остаток отражательной способности равен 10, устройство кодирования трехмерных данных кодирует значение 9, полученное посредством вычитания значения 1 из значения 10 прогнозированного остатка. Устройство декодирования трехмерных данных суммирует значение 1 с декодированным значением 9, чтобы вычислять значение 10 прогнозированного остатка.
[0730] Дополнительно, поскольку attribute_dimension=3, когда информация атрибутов представляет собой цвет, например, когда прогнозированный остаток после квантования каждого из компонентов R, G и B является идентичным, устройство кодирования трехмерных данных вычитает значение 1 из каждого прогнозированного остатка и кодирует полученное значение. Устройство декодирования трехмерных данных суммирует значение 1 со значением после декодирования. Более конкретно, например, когда прогнозированный остаток R, G и B=(1, 1, 1), устройство кодирования трехмерных данных кодирует (0, 0, 0). Устройство декодирования трехмерных данных суммирует 1 с каждым компонентом (0, 0, 0), чтобы вычислять (1, 1, 1). Дополнительно, когда прогнозированный остаток R, G и B=(2, 1, 2), устройство кодирования трехмерных данных кодирует (2, 1, 2) как есть. Устройство декодирования трехмерных данных использует декодированный (2, 1, 2) как есть качестве прогнозированного остатка.
[0731] Таким образом, посредством предоставления ZeroCnt, поскольку шаблон, в котором все размерности равны 0 в качестве значения, не формируется, значение, полученное посредством вычитания 1 из значения, указываемого посредством значения, может кодироваться. Следовательно, эффективность кодирования может повышаться.
[0732] Устройство кодирования трехмерных данных может переключать способ вычислений значения ZeroCnt в зависимости от значения attribute_dimension. Например, когда attribute_dimension=3, устройство кодирования трехмерных данных может подсчитывать число раз, когда значения прогнозированных остатков всех компонентов (размерности) становятся равными 0. Фиг. 97 является схемой, показывающей пример прогнозированного остатка и ZeroCnt в этом случае. Например, в случае цветовой информации, показанной на фиг. 97, устройство кодирования трехмерных данных подсчитывает число последовательных прогнозированных остатков, имеющих 0 для всех R-, G- и B-компонентов, и добавляет подсчитанное число в поток битов в качестве ZeroCnt. Соответственно, становится необязательным кодировать ZeroCnt для каждого компонента, и объем служебной информации может уменьшаться. Следовательно, эффективность кодирования может повышаться. Следует отметить, что устройство кодирования трехмерных данных может вычислять ZeroCnt для каждой размерности, даже когда attribute_dimension равен двум или более, и может добавлять вычисленный ZeroCnt в поток битов.
[0733] Фиг. 98 является схемой, показывающей другой пример синтаксиса информации (attribute_data) атрибутов. Информация атрибутов, показанная на фиг. 98, дополнительно включает в себя информацию (PredMode) режима прогнозирования в дополнение к информации атрибутов, показанной на фиг. 96.
[0734] Информация (PredMode) режима прогнозирования указывает режим прогнозирования для кодирования или декодирования значения атрибута j-ой трехмерной точки. PredMode принимает значения от значения 0 до M-1 (M является общим числом режимов прогнозирования). Когда PredMode не включается в поток битов (когда maxdiff>=ThfixandandNumPredMode[i]>1, что представляет собой условие, не удовлетворяется), устройство декодирования трехмерных данных может оценивать то, что PredMode имеет значение 0.
[0735] Здесь, maxdiff представляет собой значение максимальной абсолютной разности информации атрибутов множества трехмерных точек, на которые можно ссылаться. Thfix[i] представляет собой предварительно заданное пороговое значение. Дополнительно, значение 0 информации режима прогнозирования, например, представляет собой режим прогнозирования, который использует среднее информации атрибутов множества трехмерных точек, которое может называться "прогнозированным значением". Таким образом, когда разность между множеством фрагментов информации атрибутов, на которую можно ссылаться, меньше предварительно заданного значения, предварительно заданный режим прогнозирования используется. Дополнительно, NumPredMode[i] указывает число доступных режимов прогнозирования. Таким образом, когда число доступных режимов прогнозирования равно 1, предварительно заданный режим прогнозирования используется.
[0736] Следует отметить, что устройство декодирования трехмерных данных может использовать не только значение 0, но и любое предварительно заданное значение от 0 до M-1 в качестве оцененного значения. Дополнительно, оцененное значение в случае, если PredMode не включается в поток битов, может отдельно добавляться в заголовок и т.п.
[0737] Устройство кодирования трехмерных данных может арифметически кодировать PredMode посредством преобразования в двоичную форму PredMode с усеченным унарным кодом посредством использования числа режимов прогнозирования, которым назначается прогнозированное значение.
[0738] Фиг. 99 является блок-схемой последовательности операций способа для обработки кодирования трехмерных данных согласно настоящему варианту осуществления. Во-первых, устройство кодирования трехмерных данных кодирует геометрическую информацию (геометрию) (S6501). Например, устройство кодирования трехмерных данных выполняет кодирование с использованием представления в виде дерева октантов.
[0739] Затем, устройство кодирования трехмерных данных преобразует информацию атрибутов (S6502). Например, после кодирования геометрической информации, когда позиция трехмерной точки изменяется вследствие квантования и т.п., устройство кодирования трехмерных данных переназначает информацию атрибутов исходной трехмерной точки трехмерной точке после изменения. Следует отметить, что устройство кодирования трехмерных данных может интерполировать значение информации атрибутов согласно величине изменения позиции, чтобы выполнять переназначение. Например, устройство кодирования трехмерных данных обнаруживает N трехмерных точек перед изменением около трехмерной позиции после изменения, выполняет усреднение со взвешиванием значения информации атрибутов N трехмерных точек на основе расстояния от трехмерной позиции после изменения каждой из трехмерных точек N и определяет полученное значение в качестве значения информации атрибутов трехмерной точки после изменения. Дополнительно, когда две или более трехмерных точки изменяются на идентичную трехмерную позицию вследствие квантования и т.п., устройство кодирования трехмерных данных может назначать среднее значение информации атрибутов в двух или более трехмерных точках перед изменением в качестве значения информации атрибутов после изменения.
[0740] Затем, устройство кодирования трехмерных данных кодирует информацию атрибутов (S6503). Например, при кодировании множества фрагментов информации атрибутов, устройство кодирования трехмерных данных может кодировать множество фрагментов информации атрибутов по порядку. Например, при кодировании цвета и отражательной способности в качестве информации атрибутов, устройство кодирования трехмерных данных формирует поток битов, в который результат кодирования отражательной способности добавляется, после результата кодирования цвета. Следует отметить, что множество результатов кодирования информации атрибутов, добавляемой в поток битов, могут располагаться в любом порядке.
[0741] Устройство кодирования трехмерных данных может добавлять информацию, указывающую начальную точку кодированных данных каждой информации атрибутов в потоке битов, в заголовок и т.п. Соответственно, поскольку устройство декодирования трехмерных данных может избирательно декодировать информацию атрибутов, которая должна декодироваться, обработка декодирования информации атрибутов, которая не должна декодироваться, может опускаться. Следовательно, объем обработки для устройства декодирования трехмерных данных может уменьшаться. Дополнительно, устройство кодирования трехмерных данных может кодировать множество фрагментов информации атрибутов параллельно и может интегрировать результаты кодирования в один поток битов. Соответственно, устройство кодирования трехмерных данных может кодировать множество фрагментов информации атрибутов на высокой скорости.
[0742] Фиг. 100 является блок-схемой последовательности операций способа для обработки кодирования информации атрибутов (S6503). Во-первых, устройство кодирования трехмерных данных задает LoD (S6511). Таким образом, устройство кодирования трехмерных данных назначает каждую трехмерную точку любому из множества LoD.
[0743] Затем, устройство кодирования трехмерных данных начинает цикл для каждого LoD (S6512). Таким образом, устройство кодирования трехмерных данных многократно выполняет обработку этапов S6513-S6521 для каждого LoD.
[0744] Затем, устройство кодирования трехмерных данных начинает цикл для каждой трехмерной точки (S6513). Таким образом, устройство кодирования трехмерных данных многократно выполняет процесс от этапа S6514 до этапа S6520 для каждой трехмерной точки.
[0745] Во-первых, устройство кодирования трехмерных данных выполняет поиск множества окрестности точек, которые представляют собой трехмерные точки, которые существуют в окрестности текущей трехмерной точки и которые используются для вычисления прогнозированного значения текущей трехмерной точки (S6514). Затем, устройство кодирования трехмерных данных вычисляет среднее взвешенное значения информации атрибутов множества окрестности точек и задает полученное значение равным прогнозированному значению P (S6515). Затем, устройство кодирования трехмерных данных вычисляет прогнозированный остаток, который представляет собой разность между информацией атрибутов текущей трехмерной точки и прогнозированным значением (S6516). Затем, устройство кодирования трехмерных данных вычисляет квантованное значение посредством квантования прогнозированного остатка (S6517). Затем, устройство кодирования трехмерных данных арифметически кодирует квантованное значение (S6518).
[0746] Дополнительно, устройство кодирования трехмерных данных затем вычисляет обратно квантованное значение посредством обратного квантования квантованного значения (S6519). Устройство кодирования трехмерных данных затем формирует декодированное значение посредством суммирования прогнозированного значения с обратно квантованным значением (S6520). Затем, устройство кодирования трехмерных данных завершает цикл в единице трехмерной точки (S6521). Дополнительно, устройство кодирования трехмерных данных завершает цикл в единице LoD (S6522).
[0747] Фиг. 101 является блок-схемой последовательности операций способа для обработки прогнозированного остаточного кодирования (S6518). Во-первых, устройство кодирования трехмерных данных преобразует прогнозированный остаток из целочисленного значения со знаком в целочисленное значение без знака (S6531).
[0748] Если не все прогнозированные остатки обрабатываются ("Нет" на S6532), устройство кодирования трехмерных данных определяет то, равно или нет значение прогнозированного остатка, который должен обрабатываться, нулю (S6533). Когда значение прогнозированного остатка, который должен обрабатываться, равно нулю ("Да" на S6533), устройство кодирования трехмерных данных постепенно увеличивает ZeroCnt на 1 (S6534) и возвращается к этапу S6532.
[0749] Когда значение прогнозированного остатка, который должен обрабатываться, не равно нулю ("Нет" на S6533), устройство кодирования трехмерных данных кодирует ZeroCnt и сбрасывает ZeroCnt на нуль (S6535). Дополнительно, устройство кодирования трехмерных данных кодирует прогнозированный остаток, который должен обрабатываться (S6536), и возвращается к этапу S6532. Например, устройство кодирования трехмерных данных выполняет двоичное арифметическое кодирование. Дополнительно, устройство кодирования трехмерных данных может вычитать значение 1 из прогнозированного остатка и кодировать полученное значение.
[0750] Дополнительно, обработка этапов S6533-S6536 многократно выполняется для каждого прогнозированного остатка. Помимо этого, когда все прогнозированные остатки обрабатываются ("Да" на S6532), устройство кодирования трехмерных данных завершает обработку.
[0751] Фиг. 102 является блок-схемой последовательности операций способа для обработки декодирования трехмерных данных согласно настоящему варианту осуществления. Во-первых, устройство декодирования трехмерных данных декодирует геометрическую информацию (геометрию) из потока битов (S6541). Например, устройство декодирования трехмерных данных выполняет декодирование с использованием представления в виде дерева октантов.
[0752] Затем, устройство декодирования трехмерных данных декодирует информацию атрибутов из потока битов (S6542). Например, при декодировании множества фрагментов информации атрибутов, устройство декодирования трехмерных данных может декодировать множество фрагментов информации атрибутов по порядку. Например, при декодировании цвета и отражательной способности в качестве информации атрибутов, устройство декодирования трехмерных данных декодирует результат кодирования цвета и результат кодирования отражательной способности согласно порядку, в котором они добавляются в поток битов. Например, когда результат кодирования отражательной способности добавляется после результата кодирования цвета в потоке битов, устройство декодирования трехмерных данных декодирует результат кодирования цвета и после этого декодирует результат кодирования отражательной способности. Следует отметить, что устройство декодирования трехмерных данных может декодировать результаты кодирования информации атрибутов, добавляемой в поток битов, в любом порядке.
[0753] Устройство декодирования трехмерных данных может получать информацию, указывающую начальную точку кодированных данных каждого фрагмента информации атрибутов в потоке битов, посредством декодирования заголовка и т.п. Соответственно, поскольку устройство декодирования трехмерных данных может избирательно декодировать информацию атрибутов, которая должна декодироваться, обработка декодирования информации атрибутов, которая не должна декодироваться, может опускаться. Следовательно, объем обработки для устройства декодирования трехмерных данных может уменьшаться. Дополнительно, устройство декодирования трехмерных данных может декодировать множество фрагментов информации атрибутов параллельно и может интегрировать результаты декодирования в одно облако трехмерных точек. Соответственно, устройство декодирования трехмерных данных может декодировать множество фрагментов информации атрибутов на высокой скорости.
[0754] Фиг. 103 является блок-схемой последовательности операций способа для обработки декодирования информации атрибутов (S6542). Во-первых, устройство декодирования трехмерных данных задает LoD (S6551). Таким образом, устройство декодирования трехмерных данных назначает каждую из множества трехмерных точек, имеющих декодированную геометрическую информацию, любому из множества LoD. Например, этот способ назначения является идентичным способу назначения, используемому посредством устройства кодирования трехмерных данных.
[0755] Затем, устройство декодирования трехмерных данных начинает цикл для каждого LoD (S6552). Таким образом, устройство декодирования трехмерных данных многократно выполняет обработку этапов S6553-S6559 для каждого LoD.
[0756] Затем, устройство декодирования трехмерных данных начинает цикл для каждой трехмерной точки (S6553). Таким образом, устройство декодирования трехмерных данных многократно выполняет обработку этапов S6554-S6558 для каждой трехмерной точки.
[0757] Во-первых, устройство декодирования трехмерных данных выполняет поиск множества окрестности точек, которые представляют собой трехмерные точки, которые существуют в окрестности текущей трехмерной точки и которые используются для вычисления прогнозированного значения текущей трехмерной точки (S6554). Затем, устройство декодирования трехмерных данных вычисляет среднее взвешенное значения информации атрибутов множества окрестности точек и задает полученное значение равным прогнозированному значению P (S6555). Следует отметить, что эти обработки являются идентичными обработкам в устройстве кодирования трехмерных данных.
[0758] Затем, устройство декодирования трехмерных данных арифметически декодирует квантованное значение из потока битов (S6556). Дополнительно, устройство декодирования трехмерных данных вычисляет обратно квантованное значение посредством выполнения обратного квантования декодированного квантованного значения (S6557). Устройство декодирования трехмерных данных затем формирует декодированное значение посредством суммирования прогнозированного значения с обратно квантованным значением (S6558). Затем, устройство декодирования трехмерных данных завершает цикл для каждой трехмерной точки (S6559). Дополнительно, устройство декодирования трехмерных данных завершает цикл для каждого LoD (S6560).
[0759] Фиг. 104 является блок-схемой последовательности операций способа для обработки прогнозированного остаточного декодирования (S6556). Во-первых, устройство декодирования трехмерных данных декодирует ZeroCnt из потока битов (S6561). Если не все прогнозированные остатки обрабатываются ("Нет" на S6562), устройство декодирования трехмерных данных определяет то, превышает или нет ZeroCnt 0 (S6563).
[0760] Когда ZeroCnt превышает нуль ("Да" на S6563), устройство декодирования трехмерных данных задает прогнозированный остаток, который должен обрабатываться, равным 0 (S6564). Затем, устройство декодирования трехмерных данных вычитает 1 из ZeroCnt (S6565) и возвращается к этапу S6562.
[0761] Когда ZeroCnt равно нулю ("Нет" на S6563), устройство декодирования трехмерных данных декодирует прогнозированный остаток, который должен обрабатываться (S6566). Например, устройство декодирования трехмерных данных использует двоичное арифметическое декодирование. Дополнительно, устройство декодирования трехмерных данных может суммировать значение 1 с декодированным прогнозированным остатком.
[0762] Затем, устройство декодирования трехмерных данных декодирует ZeroCnt, задает полученное значение равным ZeroCnt (S6567) и возвращается к этапу S6562.
[0763] Дополнительно, обработка этапов S6563-S6567 многократно выполняется для каждого прогнозированного остатка. Помимо этого, когда все прогнозированные остатки обрабатываются ("Да" на S6562), устройство кодирования трехмерных данных преобразует множество декодированных прогнозированных остатков из целочисленных значений без знака в целочисленные значения со знаком (S6568).
[0764] Фиг. 105 является блок-схемой кодера 6500 информации атрибутов, включенного в устройство кодирования трехмерных данных. Кодер 6500 информации атрибутов включает в себя модуль 6501 задания LoD, модуль 6502 поиска, модуль 6503 прогнозирования, вычитатель 6504, квантователь 6505, обратный квантователь 6506, модуль 6507 восстановления и запоминающее устройство 6508.
[0765] Модуль 6501 задания LoD формирует LoD посредством использования геометрической информации трехмерных точек. Поиски модуля 6502 поиска соседних трехмерных точек каждой трехмерной точки посредством использования результата формирования LoD и информации расстояния между трехмерными точками. Модуль 6503 прогнозирования формирует прогнозированное значение информации атрибутов текущей трехмерной точки. Дополнительно, модуль 6503 прогнозирования назначает прогнозированное значение множеству режимов 0-M-1 прогнозирования и выбирает режим прогнозирования, который должен использоваться, из множества режимов прогнозирования.
[0766] Вычитатель 6504 формирует прогнозированный остаток посредством вычитания прогнозированного значения из информации атрибутов. Квантователь 6505 квантует прогнозированный остаток информации атрибутов. Обратный квантователь 6506 выполняет обратное квантование прогнозированного остатка после квантования. Модуль 6507 восстановления формирует декодированное значение посредством суммирования прогнозированного значения и прогнозированного остатка после обратного квантования. Запоминающее устройство 6508 сохраняет значение (декодированное значение) информации атрибутов каждой декодированной трехмерной точки. Информация атрибутов декодированной трехмерной точки, сохраненной в запоминающем устройстве 6508, используется для прогнозирования некодированной трехмерной точки посредством модуля 6503 прогнозирования.
[0767] Арифметический кодер 6509 вычисляет ZeroCnt из прогнозированного остатка после квантования и арифметически кодирует ZeroCnt. Дополнительно, арифметический кодер 6509 арифметически кодирует ненулевой прогнозированный остаток после квантования. Арифметический кодер 6509 может преобразовывать в двоичную форму прогнозированный остаток перед арифметическим кодированием. Помимо этого, арифметический кодер 6509 может формировать и кодировать различные виды информации заголовка. Дополнительно, арифметический кодер 6509 может арифметически кодировать информацию (PredMode) режима прогнозирования, указывающую режим прогнозирования, используемый для кодирования посредством модуля 6503 прогнозирования, и может добавлять информацию режима прогнозирования в поток битов.
[0768] Фиг. 106 является блок-схемой декодера 6510 информации атрибутов, включенного в устройство декодирования трехмерных данных. Декодер 6510 информации атрибутов включает в себя арифметический декодер 6511, модуль 6512 задания LoD, модуль 6513 поиска, модуль 6514 прогнозирования, обратный квантователь 6515, модуль 6516 восстановления и запоминающее устройство 6517.
[0769] Арифметический декодер 6511 арифметически декодирует ZeroCnt и прогнозированный остаток, включаемый в поток битов. Дополнительно, арифметический декодер 6511 декодирует различные виды информации заголовка. Помимо этого, арифметический декодер 6511 арифметически декодирует информацию (PredMode) режима прогнозирования из потока битов и выводит полученную информацию режима прогнозирования в модуль 6514 прогнозирования.
[0770] Модуль 6512 задания LoD формирует LoD посредством использования геометрической информации декодированных трехмерных точек. Модуль 6513 поиска выполняет поиск соседних трехмерных точек каждой трехмерной точки посредством использования результата формирования LoD и информации расстояния между трехмерными точками.
[0771] Модуль 6514 прогнозирования формирует прогнозированное значение информации атрибутов текущей трехмерной точки, которая должна декодироваться. Обратный квантователь 6515 выполняет обратное квантование арифметически декодированного прогнозированного остатка. Модуль 6516 восстановления формирует декодированное значение посредством суммирования прогнозированного значения и прогнозированного остатка после обратного квантования. Запоминающее устройство 6517 сохраняет значение (декодированное значение) информации атрибутов каждой декодированной трехмерной точки. Информация атрибутов декодированной трехмерной точки, сохраненной в запоминающем устройстве 6517, используется для прогнозирования недекодированной трехмерной точки посредством модуля 6514 прогнозирования.
[0772] В дальнейшем в этом документе описывается модификация настоящего варианта осуществления. В настоящем варианте осуществления, хотя показан пример, в котором трехмерные точки кодируются в порядке от верхних слоев до нижних слоев LoD в качестве порядка кодирования, он не обязательно ограничивается этим. Например, может использоваться способ, который сканирует в порядке от нижних слоев до верхних слоев LoD. Следует отметить, что также в этом случае, устройство кодирования трехмерных данных может кодировать число раз, которое значение 0 является последовательным, в качестве ZeroCnt.
[0773] Дополнительно, в настоящем варианте осуществления, хотя показан пример, в котором LoD компонуются из трехмерных точек, и кодирование выполняется на основе информации LoD, это не обязательно ограничивается этим. Например, устройство кодирования трехмерных данных или устройство декодирования трехмерных данных могут формировать коды Мортона посредством использования геометрической информации трехмерных точек и могут выполнять кодирование или декодирование в порядке кодов Мортона. Соответственно, поскольку время обработки для формирования LoD может уменьшаться, более высокая скорость может быть реализована.
[0774] Дополнительно, в настоящем варианте осуществления, хотя показан пример, в котором прогнозированный остаток каждого слоя LoD вычисляется, вычисленный прогнозированный остаток квантуется, и прогнозированный остаток после квантования кодируется, это не обязательно ограничивается этим. Например, устройство кодирования трехмерных данных может использовать систему, которая формирует прогнозированный остаток нижних слоев и после этого выполняет кодирование посредством возврата прогнозированного остатка нижних слоев в верхние слои. Например, устройство кодирования трехмерных данных может применять эту систему в системе, которая суммирует прогнозированный остаток нижних слоев с весовым коэффициентом со значением атрибута (информацией атрибутов) верхних слоев, используемых для прогнозирования, и кодирует значение атрибута после суммирования в качестве значения атрибута трехмерных точек в верхних слоях при кодировании прогнозированного остатка. Соответственно, прогнозированный остаток может эффективно кодироваться, и эффективность кодирования может повышаться.
[0775] Дополнительно, устройство кодирования трехмерных данных может переключать то, следует или нет использовать способ кодирования с использованием ZeroCnt, описанного в настоящем варианте осуществления, согласно WLD, SPC или объему. В этом случае, устройство кодирования трехмерных данных может добавлять информацию, указывающую то, применяется или нет способ кодирования с использованием ZeroCnt, к информации заголовка. Соответственно, устройство декодирования трехмерных данных может надлежащим образом выполнять декодирование. В качестве примера способа изменения, например, устройство кодирования трехмерных данных подсчитывает число раз возникновения прогнозированного остатка, имеющего значение 0 относительно одного объема. Когда значение счетчика превышает предварительно заданное пороговое значение, устройство кодирования трехмерных данных применяет способ с использованием ZeroCnt к следующему объему, и когда значение счетчика равно или меньше порогового значения, устройство кодирования трехмерных данных не применяет способ с использованием ZeroCnt к следующему объему. Соответственно, поскольку устройство кодирования трехмерных данных может надлежащим образом переключать то, применять или нет способ кодирования с использованием ZeroCnt согласно характеристике трехмерной точки, которая должна кодироваться, эффективность кодирования может повышаться.
[0776] В дальнейшем в этом документе описывается другая технология (модификация) настоящего варианта осуществления. Устройство кодирования трехмерных данных сканирует и кодирует прогнозированные остатки (целочисленные значения без знака) после квантования согласно определенному порядку. Например, устройство кодирования трехмерных данных кодирует множество трехмерных точек из трехмерных точек, включенных в нижние слои LoD к верхним слоям по порядку.
[0777] Фиг. 107 является схемой, показывающей пример этого кодирования. В примере, показанном на фиг. 107, устройство кодирования трехмерных данных кодирует множество трехмерных точек от точки cN, включенной в LoD2 нижнего слоя, в порядке c2, c1, c0, b2, b1, b0, a2, a1 и a0. Здесь, возникает такая тенденция, что чем ниже LoD, тем более вероятно то, что прогнозированный остаток после квантования становится равным 0. Это может быть обусловлено следующим и т.п.
[0778] Поскольку прогнозированное значение трехмерной точки, принадлежащей нижнему слою LoD, формируется со ссылкой на большее число трехмерных точек, чем прогнозированное значение трехмерной точки верхнего слоя, точность прогнозирования является высокой, и сам прогнозированный остаток легко становится равным 0. Дополнительно, посредством переключения вышеописанного масштаба адаптивного квантования, чем ниже слой, тем больше масштаб квантования и тем более вероятно то, что прогнозированный остаток после квантования становится равным 0. Таким образом, трехмерные точки нижнего слоя с большей вероятностью должны иметь 0 для прогнозированного остатка после квантования. Следовательно, значение 0 с большей вероятностью должно последовательно формироваться для первой кодовой последовательности в нижних слоях.
[0779] С другой стороны, устройство кодирования трехмерных данных подсчитывает число раз, когда значение 0 возникает в первой кодовой последовательности, и кодирует число раз, когда значение 0 последовательно возникает, вместо последовательных значений 0. Соответственно, когда имеются последовательные значения 0 прогнозированных остатков после квантования, эффективность кодирования может повышаться посредством кодирования последовательного числа раз в 0 (ZeroCnt), вместо кодирования множества нулей.
[0780] Дополнительно, устройство кодирования трехмерных данных может кодировать информацию, указывающую общее число раз возникновения значения 0. Соответственно, объем служебной информации кодирования ZeroCnt может уменьшаться, и эффективность кодирования может повышаться.
[0781] Например, устройство кодирования трехмерных данных кодирует общее число прогнозированных остатков, имеющих значение 0, в качестве TotalZeroCnt. Соответственно, в примере, показанном на фиг. 107, в то время, когда устройство декодирования трехмерных данных декодирует второй ZeroCnt (значение 1), включенное во вторую кодовую последовательность, общее число декодированных ZeroCnt должно составлять N+1 (=TotalZeroCnt). Следовательно, устройство декодирования трехмерных данных может идентифицировать то, что 0 не возникает после этого. Следовательно, после этого становится необязательным для устройства кодирования трехмерных данных кодировать ZeroCnt для каждого значения, и объем кода может уменьшаться.
[0782] Дополнительно, устройство кодирования трехмерных данных может энтропийно кодировать TotalZeroCnt. Например, устройство кодирования трехмерных данных преобразует в двоичную форму значение TotalZeroCnt с усеченным унарным кодом общего числа T кодированных трехмерных точек и арифметически кодирует каждый бит после преобразования в двоичную форму. В это время, устройство кодирования трехмерных данных может повышать эффективность кодирования посредством использования различной таблицы кодирования для каждого бита. Например, устройство кодирования трехмерных данных использует таблицу 1 кодирования для первого бита, использует таблицу 2 кодирования для второго бита и таблицу 3 кодирования для последующих битов. Таким образом, устройство кодирования трехмерных данных может повышать эффективность кодирования посредством переключения таблицы кодирования для каждого бита.
[0783] Дополнительно, устройство кодирования трехмерных данных может арифметически кодировать TotalZeroCnt после преобразования в двоичную форму TotalZeroCnt с экспоненциальным кодом Голомба. Соответственно, когда значение TotalZeroCnt легко становится большим, эффективность может повышаться в большей степени, чем при арифметическом кодировании с преобразованием в двоичную форму с помощью усеченного унарного кода. Следует отметить, что устройство кодирования трехмерных данных может добавлять флаг для переключения между использованием усеченного унарного кода и использованием экспоненциального кода Голомба в заголовок. Соответственно, устройство кодирования трехмерных данных может повышать эффективность кодирования посредством выбора оптимального способа преобразования в двоичную форму. Дополнительно, устройство декодирования трехмерных данных может корректно декодировать поток битов посредством ссылки на флаг, включенный в заголовок, чтобы переключать способ преобразования в двоичную форму.
[0784] Фиг. 108 является схемой, показывающей пример синтаксиса информации (attribute_data) атрибутов в настоящей модификации. Информация (attribute_data) атрибутов, показанная на фиг. 108, дополнительно включает в себя общее число (TotalZeroCnt) нулей в дополнение к информации атрибутов, показанной на фиг. 96. Следует отметить, что другая информация является идентичной информации на фиг. 96. Общее число (TotalZeroCnt) нулей указывает общее число прогнозированных остатков, имеющих значение 0 после квантования.
[0785] Дополнительно, устройство кодирования трехмерных данных может переключать способ вычислений значений TotalZeroCnt и ZeroCnt в зависимости от значения attribute_dimension. Например, когда attribute_dimension=3, устройство кодирования трехмерных данных может подсчитывать число раз, когда значения прогнозированных остатков всех компонентов (размерности) становятся равными 0. Фиг. 109 является схемой, показывающей пример прогнозированного остатка, ZeroCnt и TotalZeroCnt в этом случае. Например, в случае цветовой информации, показанной на фиг. 109, устройство кодирования трехмерных данных подсчитывает число последовательных прогнозированных остатков, имеющих 0 для всех R-, G- и B-компонентов, и добавляет подсчитанное число в поток битов в качестве TotalZeroCnt и ZeroCnt. Соответственно, становится необязательным кодировать TotalZeroCnt и ZeroCnt для каждого компонента, и объем служебной информации может уменьшаться. Следовательно, эффективность кодирования может повышаться. Следует отметить, что устройство кодирования трехмерных данных может вычислять TotalZeroCnt и ZeroCnt для каждой размерности, даже когда attribute_dimension равен двум или более, и может добавлять вычисленные TotalZeroCnt и ZeroCnt в поток битов.
[0786] Фиг. 110 является блок-схемой последовательности операций способа для обработки прогнозированного остаточного кодирования (S6518) в настоящей модификации. Во-первых, устройство кодирования трехмерных данных преобразует прогнозированный остаток из целочисленного значения со знаком в целочисленное значение без знака (S6571). Затем, устройство кодирования трехмерных данных кодирует TotalZeroCnt (S6572).
[0787] Если не все прогнозированные остатки обрабатываются ("Нет" на S6573), устройство кодирования трехмерных данных определяет то, равно или нет значение прогнозированного остатка, который должен обрабатываться, нулю (S6574). Когда значение прогнозированного остатка, который должен обрабатываться, равно нулю ("Да" на S6574), устройство кодирования трехмерных данных постепенно увеличивает ZeroCnt на 1 (S6575) и возвращается к этапу S6573.
[0788] Когда значение прогнозированного остатка, который должен обрабатываться, не равно нулю ("Нет" на S6574), устройство кодирования трехмерных данных определяет то, превышает или нет TotalZeroCnt 0 (S6576). Когда TotalZeroCnt превышает 0 ("Да" на S6576), устройство кодирования трехмерных данных кодирует ZeroCnt и задает TotalZeroCnt равным TotalZeroCnt-ZeroCnt (S6577).
[0789] После этапа S6577, либо когда TotalZeroCnt равен 0 ("Нет" на S6576), устройство кодирования трехмерных данных кодирует прогнозированный остаток, сбрасывает ZeroCnt на 0 (S6578) и возвращается к этапу S6573. Например, устройство кодирования трехмерных данных выполняет двоичное арифметическое кодирование. Дополнительно, устройство кодирования трехмерных данных может вычитать значение 1 из прогнозированного остатка и кодировать полученное значение.
[0790] Дополнительно, обработка этапов S6574-S6578 многократно выполняется для каждого прогнозированного остатка. Помимо этого, когда все прогнозированные остатки обрабатываются ("Да" на S6573), устройство кодирования трехмерных данных завершает обработку.
[0791] Фиг. 111 является блок-схемой последовательности операций способа для обработки прогнозированного остаточного декодирования (S6556) в настоящей модификации. Во-первых, устройство декодирования трехмерных данных декодирует TotalZeroCnt из потока битов (S6581). Затем, устройство декодирования трехмерных данных декодирует ZeroCnt из потока битов и задает TotalZeroCnt равным TotalZeroCnt-ZeroCnt (S6582).
[0792] Если не все прогнозированные остатки обрабатываются ("Нет" на S6583), устройство декодирования трехмерных данных определяет то, превышает или нет ZeroCnt 0 (S6584).
[0793] Когда ZeroCnt превышает нуль ("Да" на S6584), устройство декодирования трехмерных данных задает прогнозированный остаток, который должен обрабатываться, равным 0 (S6585). Затем, устройство декодирования трехмерных данных вычитает 1 из ZeroCnt (S6586) и возвращается к этапу S6583.
[0794] Когда ZeroCnt равно нулю ("Нет" на S6584), устройство декодирования трехмерных данных декодирует прогнозированный остаток, который должен обрабатываться (S6587). Например, устройство декодирования трехмерных данных использует двоичное арифметическое декодирование. Дополнительно, устройство декодирования трехмерных данных может суммировать значение 1 с декодированным прогнозированным остатком.
[0795] Затем, устройство декодирования трехмерных данных определяет то, превышает или нет TotalZeroCnt 0 (S6588). Когда TotalZeroCnt превышает 0 ("Да" на S6588), устройство декодирования трехмерных данных декодирует ZeroCnt, задает полученное значение равным ZeroCnt, задает TotalZeroCnt равным TotalZeroCnt-ZeroCnt (S6589) и возвращается к этапу S6583. Дополнительно, когда TotalZeroCnt равен 0 ("Нет" на S6588), трехмерное устройство декодирования возвращается к этапу S6583.
[0796] Дополнительно, обработка этапов S6584-S6589 многократно выполняется для каждого прогнозированного остатка. Помимо этого, когда все прогнозированные остатки обрабатываются ("Да" на S6583), устройство кодирования трехмерных данных преобразует декодированный прогнозированный остаток из целочисленного значения без знака в целочисленное значение со знаком (S6590).
[0797] Как указано выше, устройство кодирования трехмерных данных согласно настоящему варианту осуществления выполняет процесс, показанный посредством фиг. 112. Устройство кодирования трехмерных данных вычисляет разностные значения (например, остатки прогнозирования), каждый из которых представляет собой разность между (i) соответствующим одним из фрагментов информации атрибутов трехмерных точек, включенных в данные облаков точек, и (ii) прогнозированным значением, соответствующим надлежащей информации атрибутов (S6591). Устройство кодирования трехмерных данных формирует вторую кодовую последовательность, включающую в себя первую информацию (например, ZeroCnt) и вторую информацию (например, значение), причем первая информация указывает общее число нулевых разностных значений, последовательных в первой кодовой последовательности, в которой разностные значения размещаются, причем вторая информация указывает значение ненулевого разностного значения, включенного в разностные значения, причем нулевые разностные значения включаются в разностные значения и имеют значение 0 (S6592). Устройство кодирования трехмерных данных формирует поток битов, включающий в себя вторую кодовую последовательность (S6593).
[0798] Согласно этому, поскольку устройство кодирования трехмерных данных может уменьшать объем кода в случае последовательных разностных значений, имеющих значение в нуль за счет использования первой информации, эффективность кодирования может повышаться.
[0799] Например, как показано посредством фиг. 97, каждый из фрагментов информации атрибутов включает в себя компоненты, каждое из разностных значений включает в себя разностные компоненты, соответствующие компонентам, первая информация указывает общее число нулевых разностных значений, включающих в себя разностные компоненты, все из которых равны 0, и вторая информация указывает значения разностных компонентов, по меньшей мере, один из которых не равен 0, и которые включаются в ненулевое разностное значение.
[0800] Согласно этому, поскольку устройство кодирования трехмерных данных может уменьшать объем кода по сравнению со случаем, в котором первая информация предоставляется для каждого компонента, эффективность кодирования может повышаться.
[0801] Например, когда, по меньшей мере, два из значений разностных компонентов, включенных в ненулевое разностное значение, отличаются, вторая информация указывает значения разностных компонентов, и когда все значения разностных компонентов, включенных в ненулевое разностное значение, являются идентичными, вторая информация указывает значение, полученное посредством вычитания 1 из каждого из значений разностных компонентов.
[0802] Согласно этому, поскольку устройство кодирования трехмерных данных может уменьшать объем кода, эффективность кодирования может повышаться.
[0803] Например, когда каждый из фрагментов информации атрибутов включает в себя, по меньшей мере, два компонента, вторая информация указывает значения, по меньшей мере, двух компонентов, и когда каждый из фрагментов информации атрибутов включает в себя один компонент, вторая информация указывает значение, полученное посредством вычитания 1 из значения одного компонента.
[0804] Согласно этому, поскольку устройство кодирования трехмерных данных может уменьшать объем кода, эффективность кодирования может повышаться.
[0805] Например, трехмерные точки классифицируются на слои (например, LoD), на основе геометрической информации трехмерных точек, и разностные значения размещаются для каждого из слоев в первой кодовой последовательности.
[0806] Например, устройство кодирования трехмерных данных дополнительно квантует каждое из разностных значений и размещает разностные значения, квантованные в первой кодовой последовательности.
[0807] Например, устройство кодирования трехмерных данных включает в себя процессор и запоминающее устройство, и процессор выполняет вышеописанный процесс с использованием запоминающего устройства.
[0808] Устройство декодирования трехмерных данных согласно настоящему варианту осуществления выполняет процесс, показанный посредством фиг. 113. Устройство декодирования трехмерных данных получает вторую кодовую последовательность из потока битов, причем вторая кодовая последовательность включает в себя первую информацию (например, ZeroCnt) и вторую информацию (например, значение), причем первая информация указывает общее число нулевых разностных значений, последовательных в первой кодовой последовательности, в которой разностные значения (например, остатки прогнозирования) размещаются, причем вторая информация указывает значение ненулевого разностного значения, включенного в разностные значения, причем нулевые разностные значения включаются в разностные значения и имеют значение 0, причем разностные значения представляют собой разность между (i) соответствующим одним из фрагментов информации атрибутов трехмерных точек, включенных в данные облаков точек, и (ii) прогнозированным значением, соответствующим надлежащей информации атрибутов (S6595). Устройство декодирования трехмерных данных получает разностные значения посредством восстановления первой кодовой последовательности из второй кодовой последовательности (S6596). Устройство декодирования трехмерных данных вычисляет фрагменты информации атрибутов посредством суммирования прогнозированных значений с разностными значениями, причем прогнозированные значения соответствуют другому одному из разностных значений (S6597).
[0809] Согласно этому, поскольку устройство декодирования трехмерных данных может уменьшать объем кода в случае последовательных разностных значений, имеющих значение в нуль за счет использования первой информации, эффективность кодирования может повышаться.
[0810] Например, как показано посредством фиг. 97, каждый из фрагментов информации атрибутов включает в себя компоненты, каждое из разностных значений включает в себя разностные компоненты, соответствующие компонентам, первая информация указывает общее число нулевых разностных значений, включающих в себя разностные компоненты, все из которых равны 0, и вторая информация указывает значения разностных компонентов, по меньшей мере, один из которых не равен 0, и которые включаются в ненулевое разностное значение.
[0811] Согласно этому, поскольку устройство декодирования трехмерных данных может уменьшать объем кода по сравнению со случаем, в котором первая информация предоставляется для каждого компонента, эффективность кодирования может повышаться.
[0812] Например, когда, по меньшей мере, два из значений разностных компонентов, включенных в ненулевое разностное значение, отличаются, вторая информация указывает значения разностных компонентов, и когда все значения разностных компонентов, включенных в ненулевое разностное значение, являются идентичными, вторая информация указывает значение, полученное посредством вычитания 1 из каждого из значений разностных компонентов.
[0813] Согласно этому, поскольку устройство декодирования трехмерных данных может уменьшать объем кода, эффективность кодирования может повышаться.
[0814] Например, когда значения, указываемые посредством второй информации, являются идентичными, устройство декодирования трехмерных данных вычисляет значения разностных компонентов посредством суммирования 1 с каждым из значений и восстанавливает первую кодовую последовательность с использованием вычисленных значений разностных компонентов.
[0815] Например, когда каждый из фрагментов информации атрибутов включает в себя, по меньшей мере, два компонента, вторая информация указывает значения, по меньшей мере, двух компонентов, и когда каждый из фрагментов информации атрибутов включает в себя один компонент, вторая информация указывает значение, полученное посредством вычитания 1 из значения одного компонента.
[0816] Согласно этому, поскольку устройство декодирования трехмерных данных может уменьшать объем кода, эффективность кодирования может повышаться.
[0817] Например, когда значение, соответствующее одному компоненту, указывается посредством второй информации, устройство декодирования трехмерных данных вычисляет значение одного компонента посредством суммирования 1 со значением и восстанавливает первую кодовую последовательность с использованием значения одного вычисленного компонента.
[0818] Например, трехмерные точки классифицируются на слои (например, LoD), на основе геометрической информации трехмерных точек, и разностные значения размещаются для каждого из слоев в первой кодовой последовательности.
[0819] Например, квантованные разностные значения размещаются в первой кодовой последовательности, квантованные разностные значения получаются посредством восстановления первой кодовой последовательности, и разностные значения получаются посредством обратного квантования соответствующего одного из квантованных разностных значений.
[0820] Например, устройство декодирования трехмерных данных включает в себя процессор и запоминающее устройство, и процессор выполняет вышеописанный процесс с использованием запоминающего устройства.
[0821] Выше описываются устройство кодирования трехмерных данных, устройство декодирования трехмерных данных и т.п. согласно вариантам осуществления настоящего раскрытия, но настоящее раскрытие не ограничено этими вариантами осуществления.
[0822] Следует отметить, что каждый из процессоров, включенных в устройство кодирования трехмерных данных, устройство декодирования трехмерных данных и т.п. согласно вышеуказанным вариантам осуществления, типично реализуется в качестве большой интегральной (LSI) схемы, которая представляет собой интегральную схему (IC). Они могут принимать форму отдельных микросхем или могут частично или полностью пакетироваться в одну микросхему.
[0823] Такая IC не ограничена LSI и в силу этого может реализовываться как специализированная схема или процессор общего назначения. Альтернативно, может использоваться программируемая пользователем вентильная матрица (FPGA), которая предоставляет возможность программирования после изготовления LSI, или переконфигурируемый процессор, который предоставляет возможность переконфигурирования соединения и настройки схемных элементов внутри LSI.
[0824] Кроме того, в вышеописанных вариантах осуществления, структурные компоненты могут реализовываться как специализированные аппаратные средства или могут быть реализованы посредством выполнения программно-реализованной программы, подходящей для таких структурных компонентов. Альтернативно, структурные компоненты могут реализовываться посредством программного исполнительного модуля, такого как CPU или процессор, считывающий и выполняющий программно-реализованную программу, записанную на носителе записи, таком как жесткий диск или полупроводниковое запоминающее устройство.
[0825] Настоящее раскрытие также может реализовываться как способ кодирования трехмерных данных, способ декодирования трехмерных данных и т.п., осуществляемые посредством устройства кодирования трехмерных данных, устройства декодирования трехмерных данных и т.п.
[0826] Кроме того, разделения функциональных блоков, показанных на блок-схемах, представляют собой просто примеры, и в силу этого множество функциональных блоков могут реализовываться как один функциональный блок, или один функциональный блок может разделяться на множество функциональных блоков, или одна или более функций могут перемещаться в другой функциональный блок. Кроме того, функции множества функциональных блоков, имеющих аналогичные функции, могут обрабатываться только посредством аппаратных средств или программного обеспечения параллелизованным или разделенным во времени способом.
[0827] Кроме того, порядок обработки выполнения этапов, показанный на блок-схемах последовательности операций способа, представляет собой просто иллюстрацию для конкретного описания настоящего раскрытия и в силу этого может представляет собой порядок, отличный от показанного порядка. Кроме того, один или более этапов могут выполняться одновременно (параллельно) с другим этапом.
[0828] Выше описываются устройство кодирования трехмерных данных, устройство декодирования трехмерных данных и т.п. согласно одному или более аспектов на основе вариантов осуществления, но настоящее раскрытие не ограничено этими вариантами осуществления. Один или более аспектов в силу этого могут включать в себя формы, достигаемые посредством внесения различных модификаций в вышеуказанные варианты осуществления, которые могут быть задуманы специалистами в данной области техники, а также формы, достигаемые посредством комбинирования структурных компонентов в различных вариантах осуществления, без существенного отступления от сущности настоящего раскрытия.
Промышленная применимость
[0829] Настоящее раскрытие является применимым к устройству кодирования трехмерных данных и к устройству декодирования трехмерных данных.
Ссылки с номерами на чертежах
[0830] 100, 400 - устройство кодирования трехмерных данных
101, 201, 401, 501 - модуль получения
102, 402 - модуль определения областей кодирования
103 - модуль разделения
104, 644 - кодер
111 - трехмерные данные
112, 211, 413, 414, 511, 634 - кодированные трехмерные данные
200, 500 - устройство декодирования трехмерных данных
202 - модуль определения GOS для начала декодирования
203 - модуль определения SPC для декодирования
204, 625 - декодер
212, 512, 513 - декодированные трехмерные данные
403 - SWLD-модуль извлечения
404 - WLD-кодер
405 - SWLD-кодер
411 - входные трехмерные данные
412 - извлеченные трехмерные данные
502 - анализатор заголовков
503 - WLD-декодер
504 - SWLD-декодер
620, 620A - устройство создания трехмерных данных
621, 641 - модуль создания трехмерных данных
622 - модуль определения диапазонов запросов
623 - модуль поиска
624, 642 - приемное устройство
626 - модуль объединения
631, 651 - информация датчиков
632 - первые трехмерные данные
633 - информация диапазона запросов
635 - вторые трехмерные данные
636 - третьи трехмерные данные
640 - устройство передачи трехмерных данных
643 - модуль извлечения
645 - передающее устройство
652 - пятые трехмерные данные
654 - шестые трехмерные данные
700 - устройство обработки трехмерной информации
701 - модуль получения трехмерных карт
702 - модуль получения самообнаруженных данных
703 - модуль проведения оценки анормальных случаев
704 - модуль определения операций преодоления
705 - функциональный контроллер
711 - трехмерная карта
712 - самообнаруженные трехмерные данные
810 - устройство создания трехмерных данных
811 - приемное устройство данных
812, 819 - модуль связи
813 - контроллер приема
814, 821 - преобразователь форматов
815 - датчик
816 - модуль создания трехмерных данных
817 - синтезатор трехмерных данных
818 - устройство хранения трехмерных данных
820 - контроллер передачи
822 - передающее устройство данных
831, 832, 834, 835, 836, 837 - трехмерные данные
833 - информация датчиков
901 - сервер
902, 902A, 902B, 902C - клиентское устройство
1011, 1111 - приемное устройство данных
1012, 1020, 1112, 1120 - модуль связи
1013, 1113 - контроллер приема
1014, 1019, 1114, 1119 - преобразователь форматов
1015 - датчик
1016, 1116 - модуль создания трехмерных данных
1017 - процессор трехмерных изображений
1018, 1118 - устройство хранения трехмерных данных
1021, 1121 - контроллер передачи
1022, 1122 - передающее устройство данных
1031, 1032, 1135 - трехмерная карта
1033, 1037, 1132 - информация датчиков
1034, 1035, 1134 - трехмерные данные
1117 - модуль объединения трехмерных данных
1201 - процессор сжатия/декодирования трехмерных карт
1202 - процессор сжатия/декодирования информации датчиков
1211 - процессор декодирования трехмерных карт
1212 - процессор сжатия информации датчиков
1300 - устройство кодирования трехмерных данных
1301 - модуль разделения
1302 - вычитатель
1303 - преобразователь
1304 - квантователь
1305, 1402 - обратный квантователь
1306, 1403 - обратный преобразователь
1307, 1404 - сумматор
1308, 1405 - запоминающее устройство опорных объемов
1309, 1406 - модуль внутреннего прогнозирования
1310, 1407 - запоминающее устройство опорных пространств
1311, 1408 - модуль взаимного прогнозирования
1312, 1409 - контроллер прогнозирования
1313 - энтропийный кодер
1400 - устройство декодирования трехмерных данных
1401 - энтропийный декодер
2100 - устройство кодирования трехмерных данных
2101, 2111 - формирователь деревьев октантов
2102, 2112 - модуль вычисления геометрической информации
2103, 2113 - модуль выбора таблиц кодирования
2104 - энтропийный кодер
2110 - устройство декодирования трехмерных данных
2114 - энтропийный декодер
3000 - устройство кодирования трехмерных данных
3001 - кодер геометрической информации
3002 - модуль переназначения информации атрибутов
3003 - кодер информации атрибутов
3010 - устройство декодирования трехмерных данных
3011 - декодер геометрической информации
3012 - декодер информации атрибутов
6500 - кодер информации атрибутов
6501, 6512 LoD - модуль задания
6502, 6513 - модуль поиска
6503, 6514 - модуль прогнозирования
6504 - вычитатель
6505 - квантователь
6506, 6515 - обратный квантователь
6507, 6516 - модуль восстановления
6508, 6517 - запоминающее устройство
6509 - арифметический кодер
6510 - декодер информации атрибутов
6511 - арифметический декодер
Изобретение относится к способу кодирования трехмерных данных, к способу декодирования трехмерных данных, к устройству кодирования трехмерных данных и к устройству декодирования трехмерных данных. Техническим результатом является повышение эффективности кодирования. Способ кодирования трехмерных данных включает в себя: вычисление разностных значений, каждое из которых представляет собой разность между (i) соответствующим одним из фрагментов информации атрибутов трехмерных точек, включенных в данные облаков точек, и (ii) прогнозированным значением, соответствующим надлежащей информации атрибутов; формирование второй кодовой последовательности, включающей в себя первую информацию и вторую информацию, причем первая информация указывает общее число нулевых разностных значений, последовательных в первой кодовой последовательности, в которой разностные значения размещаются, причем вторая информация указывает значение ненулевого разностного значения, включенного в разностные значения, причем нулевые разностные значения включаются в разностные значения и имеют значение 0; и формирование потока битов, включающего в себя вторую кодовую последовательность. 4 н. и 12 з.п. ф-лы, 113 ил.
1. Способ кодирования трехмерных данных, содержащий этапы, на которых:
вычисляют разностные значения, каждое из которых представляет собой разность между (i) соответствующим одним из фрагментов информации атрибутов трехмерных точек, включенных в данные облаков точек, и (ii) прогнозированным значением, соответствующим надлежащей информации атрибутов;
формируют вторую кодовую последовательность, включающую в себя первую информацию и вторую информацию, причем первая информация указывает общее число нулевых разностных значений, последовательных в первой кодовой последовательности, в которой разностные значения размещаются, а вторая информация указывает значение ненулевого разностного значения, включенного в разностные значения, причем нулевые разностные значения включаются в разностные значения и имеют значение 0; и
формируют поток битов, включающий в себя вторую кодовую последовательность.
2. Способ кодирования трехмерных данных по п. 1,
в котором каждый из фрагментов информации атрибутов включает в себя компоненты,
каждое из разностных значений включает в себя разностные компоненты, соответствующие компонентам,
первая информация указывает общее число нулевых разностных значений, каждый включающий в себя разностные компоненты, все из которых равны 0, и
вторая информация указывает значения разностных компонентов, по меньшей мере один из которых не равен 0 и которые включены в ненулевое разностное значение.
3. Способ кодирования трехмерных данных по п. 2,
в котором, когда по меньшей мере два из значений разностных компонентов, включенных в ненулевое разностное значение, отличаются, вторая информация указывает значения разностных компонентов, и
когда все значения разностных компонентов, включенных в ненулевое разностное значение, являются идентичными, вторая информация указывает значение, полученное посредством вычитания 1 из каждого из значений разностных компонентов.
4. Способ кодирования трехмерных данных по п. 2,
в котором, когда каждый из фрагментов информации атрибутов включает в себя по меньшей мере два компонента, вторая информация указывает значения по меньшей мере двух компонентов, и
когда каждый из фрагментов информации атрибутов включает в себя один компонент, вторая информация указывает значение, полученное посредством вычитания 1 из значения одного компонента.
5. Способ кодирования трехмерных данных по любому из пп. 1-4,
в котором трехмерные точки классифицируются на слои, на основе геометрической информации трехмерных точек, и
разностные значения размещаются для каждого из слоев в первой кодовой последовательности.
6. Способ кодирования трехмерных данных по любому из пп. 1-4, дополнительно содержащий этапы, на которых:
квантуют каждое из разностных значений; и
размещают разностные значения, квантованные в первой кодовой последовательности.
7. Способ декодирования трехмерных данных, содержащий этапы, на которых:
получают вторую кодовую последовательность из потока битов, причем вторая кодовая последовательность включает в себя первую информацию и вторую информацию, причем первая информация указывает общее число нулевых разностных значений, последовательных в первой кодовой последовательности, в которой разностные значения размещаются, а вторая информация указывает значение ненулевого разностного значения, включенного в разностные значения, причем нулевые разностные значения включаются в разностные значения и имеют значение 0, причем разностные значения представляют собой разность между (i) соответствующим одним из фрагментов информации атрибутов трехмерных точек, включенных в данные облаков точек, и (ii) прогнозированным значением, соответствующим надлежащей информации атрибутов;
получают разностные значения посредством восстановления первой кодовой последовательности из второй кодовой последовательности; и
вычисляют фрагменты информации атрибутов посредством суммирования прогнозированных значений с разностными значениями, причем прогнозированные значения соответствуют другому одному из разностных значений.
8. Способ декодирования трехмерных данных по п. 7,
в котором каждый из фрагментов информации атрибутов включает в себя компоненты,
каждое из разностных значений включает в себя разностные компоненты, соответствующие компонентам,
первая информация указывает общее число нулевых разностных значений, каждый включающий в себя разностные компоненты, все из которых равны 0, и
вторая информация указывает значения разностных компонентов, по меньшей мере один из которых не равен 0 и которые включаются в ненулевое разностное значение.
9. Способ декодирования трехмерных данных по п. 8,
в котором, когда по меньшей мере два из значений разностных компонентов, включенных в ненулевое разностное значение, отличаются, вторая информация указывает значения разностных компонентов, и
когда все значения разностных компонентов, включенных в ненулевое разностное значение, являются идентичными, вторая информация указывает значение, полученное посредством вычитания 1 из каждого из значений разностных компонентов.
10. Способ декодирования трехмерных данных по п. 9,
в котором, когда значения, указываемые посредством второй информации, являются идентичными, значения разностных компонентов вычисляются посредством суммирования 1 с каждым из значений и первая кодовая последовательность восстанавливается с использованием вычисленных значений разностных компонентов.
11. Способ декодирования трехмерных данных по п. 8,
в котором, когда каждый из фрагментов информации атрибутов включает в себя по меньшей мере два компонента, вторая информация указывает значения по меньшей мере двух компонентов, и
когда каждый из фрагментов информации атрибутов включает в себя один компонент, вторая информация указывает значение, полученное посредством вычитания 1 из значения одного компонента.
12. Способ декодирования трехмерных данных по п. 11,
в котором, когда значение, соответствующее одному компоненту, указывается посредством второй информации, значение одного компонента вычисляется посредством суммирования 1 со значением и первая кодовая последовательность восстанавливается с использованием значения одного вычисленного компонента.
13. Способ декодирования трехмерных данных по любому из пп. 7-12,
в котором трехмерные точки классифицируются на слои, на основе геометрической информации трехмерных точек, и
разностные значения размещаются для каждого из слоев в первой кодовой последовательности.
14. Способ декодирования трехмерных данных по любому из пп. 7-12,
в котором квантованные разностные значения размещаются в первой кодовой последовательности,
квантованные разностные значения получаются посредством восстановления первой кодовой последовательности, и
разностные значения получаются посредством обратного квантования соответствующего одного из квантованных разностных значений.
15. Устройство кодирования трехмерных данных, содержащее:
процессор; и
запоминающее устройство;
при этом с использованием запоминающего устройства, процессор:
вычисляет разностные значения, каждое из которых представляет собой разность между (i) соответствующим одним из фрагментов информации атрибутов трехмерных точек, включенных в данные облаков точек, и (ii) прогнозированным значением, соответствующим надлежащей информации атрибутов;
формирует вторую кодовую последовательность, включающую в себя первую информацию и вторую информацию, причем первая информация указывает общее число нулевых разностных значений, последовательных в первой кодовой последовательности, в которой разностные значения размещаются, а вторая информация указывает значение ненулевого разностного значения, включенного в разностные значения, причем нулевые разностные значения включаются в разностные значения и имеют значение 0; и
формирует поток битов, включающий в себя вторую кодовую последовательность.
16. Устройство декодирования трехмерных данных, содержащее:
процессор; и
запоминающее устройство;
при этом, с использованием запоминающего устройства, процессор:
получает вторую кодовую последовательность из потока битов, причем вторая кодовая последовательность включает в себя первую информацию и вторую информацию, причем первая информация указывает общее число нулевых разностных значений, последовательных в первой кодовой последовательности, в которой разностные значения размещаются, а вторая информация указывает значение ненулевого разностного значения, включенного в разностные значения, причем нулевые разностные значения включаются в разностные значения и имеют значение 0, причем разностные значения представляют собой разность между (i) соответствующим одним из фрагментов информации атрибутов трехмерных точек, включенных в данные облаков точек, и (ii) прогнозированным значением, соответствующим надлежащей информации атрибутов;
получает разностные значения посредством восстановления первой кодовой последовательности из второй кодовой последовательности; и
вычисляет фрагменты информации атрибутов посредством суммирования прогнозированных значений с разностными значениями, причем прогнозированные значения соответствуют другому одному из разностных значений.
Способ обработки целлюлозных материалов, с целью тонкого измельчения или переведения в коллоидальный раствор | 1923 |
|
SU2005A1 |
Способ защиты переносных электрических установок от опасностей, связанных с заземлением одной из фаз | 1924 |
|
SU2014A1 |
Станок для изготовления деревянных ниточных катушек из цилиндрических, снабженных осевым отверстием, заготовок | 1923 |
|
SU2008A1 |
СПОСОБ КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ ВИДЕОИНФОРМАЦИИ НА ОСНОВЕ ТРЕХМЕРНОГО ДИСКРЕТНОГО КОСИНУСНОГО ПРЕОБРАЗОВАНИЯ | 2008 |
|
RU2375838C1 |
СПОСОБ КОДИРОВАНИЯ ИЗОБРАЖЕНИЙ, СПОСОБ ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЙ, УСТРОЙСТВО КОДИРОВАНИЯ ИЗОБРАЖЕНИЙ, УСТРОЙСТВО ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЙ И УСТРОЙСТВО КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЙ | 2013 |
|
RU2658174C1 |
Авторы
Даты
2023-06-16—Публикация
2019-12-20—Подача