Область техники, к которой относится изобретение
[0001] Настоящее раскрытие относится к способу кодирования трехмерных данных, к способу декодирования трехмерных данных, к устройству кодирования трехмерных данных и к устройству декодирования трехмерных данных.
Уровень техники
[0002] Устройства или услуги с использованием трехмерных данных предположительно должны находить широкое применение в широком диапазоне областей техники, таких как машинное зрение, которое обеспечивает автономную работу автомобилей или роботов, картографическая информация, мониторинг, обследование инфраструктуры и распространение видео. Трехмерные данные получаются через различные средства, включающие в себя датчик расстояния, такой как дальномер, а также стереокамеру и комбинацию множества монокулярных камер.
[0003] Способы представления трехмерных данных включают в себя способ, известный как схема на основе облаков точек, которая представляет форму трехмерной структуры посредством точечной группы в трехмерном пространстве. В схеме на основе облаков точек сохраняются позиции и цвета точечной группы. Хотя облако точек предположительно должно представлять собой основной способ представления трехмерных данных, огромный объем данных облака точек требует сжатия объема трехмерных данных посредством кодирования для накопления и передачи, как и в случае двумерного движущегося кинокадра (примеры включают в себя стандарт усовершенствованного кодирования видео уровня 4 Экспертной группы по киноизображению (MPEG-4 AVC) и стандарт высокоэффективного кодирования видео (HEVC), стандартизированные посредством MPEG).
[0004] Между тем сжатие облаков точек частично поддерживается, например, посредством библиотеки с открытым исходным кодом (библиотеки облаков точек) для связанной с облаками точек обработки.
[0005] Кроме того, известна технология для поиска и отображения инфраструктурного объекта, расположенного в окрестности транспортного средства (например, см. PTL 1).
Список библиографических ссылок
Патентные документы
[0006] PTL 1. Международная публикация WO 2014/020663
Сущность изобретения
Техническая задача
[0007] Возникает потребность в надлежащем выполнении кодирования при кодировании трехмерных данных.
[0008] Настоящее раскрытие имеет цель предложить способ кодирования трехмерных данных, способ декодирования трехмерных данных, устройство кодирования трехмерных данных или устройство декодирования трехмерных данных, которые делают возможным надлежащее выполнение кодирования.
Решение задачи
[0009] В соответствии с аспектом настоящей заявки, способ кодирования трехмерных данных включает в себя: вычисление значений коэффициентов из фрагментов информации атрибутов трехмерных точек, включенных в данные облаков точек; квантование значений коэффициентов отдельно, чтобы формировать квантованные значения; и формирование потока битов, включающего в себя квантованные значения, при этом каждое из значений коэффициентов принадлежит любому из слоев при квантовании, каждое из значений коэффициентов квантуется с использованием параметра квантования для слоя, которому принадлежит значение коэффициента, из слоев, и поток битов включает в себя первую информацию и фрагменты второй информации, причем первая информация указывает опорный параметр квантования, причем фрагменты второй информации предназначены для вычисления параметров квантования для слоев из опорного параметра квантования.
[0010] В соответствии с другим аспектом настоящей заявки, способ декодирования трехмерных данных включает в себя: вычисление параметров квантования для слоев, с использованием (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 является схемой, иллюстрирующей пример задания LoD согласно варианту 8 осуществления.
Фиг. 53 является схемой, иллюстрирующей пример задания LoD согласно варианту 8 осуществления.
Фиг. 54 является схемой, иллюстрирующей пример информации атрибутов, которая должна использоваться для прогнозированных значений согласно варианту 8 осуществления.
Фиг. 55 является схемой, иллюстрирующей примеры экспоненциальных кодов Голомба согласно варианту 8 осуществления.
Фиг. 56 является схемой, указывающей процесс для экспоненциальных кодов Голомба согласно варианту 8 осуществления.
Фиг. 57 является схемой, указывающей пример синтаксиса в заголовке атрибутов согласно варианту 8 осуществления.
Фиг. 58 является схемой, указывающей пример синтаксиса в данных атрибутов согласно варианту 8 осуществления.
Фиг. 59 является блок-схемой последовательности операций способа для процесса кодирования трехмерных данных согласно варианту 8 осуществления.
Фиг. 60 является блок-схемой последовательности операций способа для процесса кодирования информации атрибутов согласно варианту 8 осуществления.
Фиг. 61 является схемой, указывающей обработку для экспоненциальных кодов Голомба согласно варианту 8 осуществления.
Фиг. 62 является схемой, указывающей пример обратной таблицы поиска, указывающей взаимосвязи между оставшимися кодами и их значениями согласно варианту 8 осуществления.
Фиг. 63 является блок-схемой последовательности операций способа для процесса декодирования трехмерных данных согласно варианту 8 осуществления.
Фиг. 64 является блок-схемой последовательности операций способа для процесса декодирования информации атрибутов согласно варианту 8 осуществления.
Фиг. 65 является блок-схемой устройства кодирования трехмерных данных согласно варианту 8 осуществления.
Фиг. 66 является блок-схемой устройства декодирования трехмерных данных согласно варианту 8 осуществления.
Фиг. 67 является блок-схемой последовательности операций способа для процесса кодирования трехмерных данных согласно варианту 8 осуществления.
Фиг. 68 является блок-схемой последовательности операций способа для процесса декодирования трехмерных данных согласно варианту 8 осуществления.
Фиг. 69 является схемой, показывающей первый пример таблицы, представляющей прогнозированные значения, вычисленные в режимах прогнозирования согласно варианту 9 осуществления.
Фиг. 70 является схемой, показывающей примеры элементов информации атрибутов (фрагментов информации атрибутов), используемых в качестве прогнозированных значений согласно варианту 9 осуществления.
Фиг. 71 является схемой, показывающей второй пример таблицы, представляющей прогнозированные значения, вычисленные в режимах прогнозирования согласно варианту 9 осуществления.
Фиг. 72 является схемой, показывающей третий пример таблицы, представляющей прогнозированные значения, вычисленные в режимах прогнозирования согласно варианту 9 осуществления.
Фиг. 73 является схемой, показывающей четвертый пример таблицы, представляющей прогнозированные значения, вычисленные в режимах прогнозирования согласно варианту 9 осуществления.
Фиг. 74 является схемой для описания кодирования информации атрибутов посредством использования адаптивного к области иерархического преобразования (RAHT) согласно варианту 10 осуществления.
Фиг. 75 является схемой, показывающей пример задания масштаба квантования для каждой иерархии согласно варианту 10 осуществления.
Фиг. 76 является схемой, показывающей пример первой кодовой последовательности и второй кодовой последовательности согласно варианту 10 осуществления.
Фиг. 77 является схемой, показывающей пример усеченного унарного кода согласно варианту 10 осуществления.
Фиг. 78 является схемой для описания обратного преобразования Хаара согласно варианту 10 осуществления.
Фиг. 79 является схемой, показывающей пример синтаксиса информации атрибутов согласно варианту 10 осуществления.
Фиг. 80 является схемой, показывающей пример коэффициента кодирования и ZeroCnt согласно варианту 10 осуществления.
Фиг. 81 является блок-схемой последовательности операций способа для обработки кодирования трехмерных данных согласно варианту 10 осуществления.
Фиг. 82 является блок-схемой последовательности операций способа для обработки кодирования информации атрибутов согласно варианту 10 осуществления.
Фиг. 83 является блок-схемой последовательности операций способа для обработки кодирования коэффициентов кодирования согласно варианту 10 осуществления.
Фиг. 84 является блок-схемой последовательности операций способа для обработки декодирования трехмерных данных согласно варианту 10 осуществления.
Фиг. 85 является блок-схемой последовательности операций способа для обработки декодирования информации атрибутов согласно варианту 10 осуществления.
Фиг. 86 является блок-схемой последовательности операций способа для обработки декодирования коэффициентов кодирования согласно варианту 10 осуществления.
Фиг. 87 является блок-схемой кодера информации атрибутов согласно варианту 10 осуществления.
Фиг. 88 является блок-схемой декодера информации атрибутов согласно варианту 10 осуществления.
Фиг. 89 является схемой для описания процесса, выполняемого посредством квантователя и обратного квантователя согласно варианту 11 осуществления.
Фиг. 90 является схемой для описания значения по умолчанию и дельты квантования значения квантования согласно варианту 11 осуществления.
Фиг. 91 является блок-схемой, иллюстрирующей конфигурацию первого кодера, включенного в устройство кодирования трехмерных данных согласно варианту 11 осуществления.
Фиг. 92 является блок-схемой, иллюстрирующей конфигурацию модуля разделения согласно варианту 11 осуществления.
Фиг. 93 является блок-схемой, иллюстрирующей конфигурацию кодера геометрической информации и кодера информации атрибутов согласно варианту 11 осуществления.
Фиг. 94 является блок-схемой, иллюстрирующей конфигурацию первого декодера согласно варианту 11 осуществления.
Фиг. 95 является блок-схемой, иллюстрирующей конфигурацию декодера геометрической информации и декодера информации атрибутов согласно варианту 11 осуществления.
Фиг. 96 является блок-схемой последовательности операций способа, иллюстрирующей пример процесса относительно определения значения квантования при кодировании геометрической информации или при кодировании информации атрибутов согласно варианту 11 осуществления.
Фиг. 97 является блок-схемой последовательности операций способа, иллюстрирующей пример процесса декодирования геометрической информации и информации атрибутов согласно варианту 11 осуществления.
Фиг. 98 является схемой для описания первого примера способа передачи параметра квантования согласно варианту 11 осуществления.
Фиг. 99 является схемой для описания второго примера способа передачи параметра квантования согласно варианту 11 осуществления.
Фиг. 100 является схемой для описания третьего примера способа передачи параметра квантования согласно варианту 11 осуществления.
Фиг. 101 является блок-схемой последовательности операций способа для процесса кодирования данных облаков точек согласно варианту 11 осуществления.
Фиг. 102 является блок-схемой последовательности операций способа, иллюстрирующей пример процесса определения QP-значения и обновления дополнительной информации согласно варианту 11 осуществления.
Фиг. 103 является блок-схемой последовательности операций способа, иллюстрирующей пример процесса кодирования согласно варианту 11 осуществления.
Фиг. 104 является блок-схемой последовательности операций способа, иллюстрирующей процесс декодирования данных облаков точек согласно варианту 11 осуществления.
Фиг. 105 является блок-схемой последовательности операций способа, иллюстрирующей пример процесса получения QP-значений и декодирования QP-значения для среза или плитки согласно варианту 11 осуществления.
Фиг. 106 является схемой, иллюстрирующей пример синтаксиса GPS согласно варианту 11 осуществления.
Фиг. 107 является схемой, иллюстрирующей пример синтаксиса APS согласно варианту 11 осуществления.
Фиг. 108 является схемой, иллюстрирующей пример синтаксиса заголовка геометрической информации согласно варианту 11 осуществления.
Фиг. 109 является схемой, иллюстрирующей пример синтаксиса заголовка информации атрибутов согласно варианту 11 осуществления.
Фиг. 110 является схемой для описания другого примера способа передачи параметра квантования согласно варианту 11 осуществления.
Фиг. 111 является схемой для описания другого примера способа передачи параметра квантования согласно варианту 11 осуществления.
Фиг. 112 является схемой для описания девятого примера способа передачи параметра квантования согласно варианту 11 осуществления.
Фиг. 113 является схемой для описания примера управления QP-значением согласно варианту 11 осуществления.
Фиг. 114 является блок-схемой последовательности операций, иллюстрирующей пример способа определения QP-значения на основе качества объекта согласно варианту 11 осуществления.
Фиг. 115 является блок-схемой последовательности операций, иллюстрирующей пример способа определения QP-значения на основе управления скоростью согласно варианту 11 осуществления.
Фиг. 116 является блок-схемой последовательности операций способа, иллюстрирующей процесс кодирования согласно варианту 11 осуществления.
Фиг. 117 является блок-схемой последовательности операций способа, иллюстрирующей процесс декодирования согласно варианту 11 осуществления.
Фиг. 118 является схемой для иллюстрации примера способа передачи параметров квантования согласно варианту 12 осуществления.
Фиг. 119 является схемой, показывающей первый пример синтаксиса APS и синтаксиса заголовка информации атрибутов согласно варианту 12 осуществления.
Фиг. 120 является схемой, показывающей второй пример синтаксиса APS согласно варианту 12 осуществления.
Фиг. 121 является схемой, показывающей второй пример синтаксиса заголовка информации атрибутов согласно варианту 12 осуществления.
Фиг. 122 является схемой, показывающей взаимосвязь между SPS, APS и заголовком информации атрибутов согласно варианту 12 осуществления.
Фиг. 123 является блок-схемой последовательности операций способа для процесса кодирования согласно варианту 12 осуществления.
Фиг. 124 является блок-схемой последовательности операций способа для процесса декодирования согласно варианту 12 осуществления.
Фиг. 125 является блок-схемой, показывающей конфигурацию устройства кодирования трехмерных данных согласно варианту 13 осуществления.
Фиг. 126 является блок-схемой, показывающей конфигурацию устройства декодирования трехмерных данных согласно варианту 13 осуществления.
Фиг. 127 является схемой, показывающей пример задания LoD согласно варианту 13 осуществления.
Фиг. 128 является схемой, показывающей пример иерархической структуры RAHT согласно варианту 13 осуществления.
Фиг. 129 является блок-схемой устройства кодирования трехмерных данных согласно варианту 13 осуществления.
Фиг. 130 является блок-схемой модуля разделения согласно варианту 13 осуществления.
Фиг. 131 является блок-схемой кодера информации атрибутов согласно варианту 13 осуществления.
Фиг. 132 является блок-схемой устройства декодирования трехмерных данных согласно варианту 13 осуществления.
Фиг. 133 является блок-схемой декодера информации атрибутов согласно варианту 13 осуществления.
Фиг. 134 является схемой, показывающей пример задания параметра квантования при разделении на плитки и разделении на срезы согласно варианту 13 осуществления.
Фиг. 135 является схемой, показывающей пример задания параметра квантования согласно варианту 13 осуществления.
Фиг. 136 является схемой, показывающей пример задания параметра квантования согласно варианту 13 осуществления.
Фиг. 137 является схемой, показывающей пример синтаксиса заголовка атрибутов согласно варианту 13 осуществления.
Фиг. 138 является схемой, показывающей пример синтаксиса заголовка атрибутов согласно варианту 13 осуществления.
Фиг. 139 является схемой, показывающей пример задания параметра квантования согласно варианту 13 осуществления.
Фиг. 140 является схемой, показывающей пример синтаксиса заголовка атрибутов согласно варианту 13 осуществления.
Фиг. 141 является схемой, показывающей пример синтаксиса заголовка атрибутов согласно варианту 13 осуществления.
Фиг. 142 является блок-схемой последовательности операций способа для процесса кодирования трехмерных данных согласно варианту 13 осуществления.
Фиг. 143 является блок-схемой последовательности операций способа для процесса кодирования информации атрибутов согласно варианту 13 осуществления.
Фиг. 144 является блок-схемой последовательности операций способа для процесса ΔQP-определения согласно варианту 13 осуществления.
Фиг. 145 является блок-схемой последовательности операций способа для процесса декодирования трехмерных данных согласно варианту 13 осуществления.
Фиг. 146 является блок-схемой последовательности операций способа для процесса декодирования информации атрибутов согласно варианту 13 осуществления.
Фиг. 147 является блок-схемой кодера информации атрибутов согласно варианту 13 осуществления.
Фиг. 148 является блок-схемой декодера информации атрибутов согласно варианту 13 осуществления.
Фиг. 149 является схемой, показывающей пример задания параметра квантования согласно варианту 13 осуществления.
Фиг. 150 является схемой, показывающей пример синтаксиса заголовка атрибутов согласно варианту 13 осуществления.
Фиг. 151 является схемой, показывающей пример синтаксиса заголовка атрибутов согласно варианту 13 осуществления.
Фиг. 152 является блок-схемой последовательности операций способа для процесса кодирования трехмерных данных согласно варианту 13 осуществления.
Фиг. 153 является блок-схемой последовательности операций способа для процесса кодирования информации атрибутов согласно варианту 13 осуществления.
Фиг. 154 является блок-схемой последовательности операций способа для процесса декодирования трехмерных данных согласно варианту 13 осуществления.
Фиг. 155 является блок-схемой последовательности операций способа для процесса декодирования информации атрибутов согласно варианту 13 осуществления.
Фиг. 156 является блок-схемой кодера информации атрибутов согласно варианту 13 осуществления.
Фиг. 157 является блок-схемой декодера информации атрибутов согласно варианту 13 осуществления.
Фиг. 158 является схемой, показывающей пример синтаксиса заголовка атрибутов согласно варианту 13 осуществления.
Фиг. 159 является блок-схемой последовательности операций способа для процесса кодирования трехмерных данных согласно варианту 13 осуществления.
Фиг. 160 является блок-схемой последовательности операций способа для процесса декодирования трехмерных данных согласно варианту 13 осуществления.
Фиг. 161 является схемой, показывающей пример формирования LoD-слоев согласно варианту 14 осуществления.
Фиг. 162 является схемой, показывающей пример разделения слоев согласно варианту 14 осуществления.
Фиг. 163 является схемой, показывающей пример разделения слоев согласно варианту 14 осуществления.
Фиг. 164 является схемой, показывающей пример разделения слоев согласно варианту 14 осуществления.
Фиг. 165 является схемой, показывающей пример разделения слоев согласно варианту 14 осуществления.
Фиг. 166 является схемой, показывающей пример разделения слоев согласно варианту 14 осуществления.
Фиг. 167 является блок-схемой последовательности операций способа для процесса кодирования трехмерных данных согласно варианту 14 осуществления.
Фиг. 168 является блок-схемой последовательности операций способа для процесса кодирования информации атрибутов согласно варианту 14 осуществления.
Фиг. 169 является блок-схемой последовательности операций способа для процесса задания LoD согласно варианту 14 осуществления.
Фиг. 170 является блок-схемой последовательности операций способа для процесса декодирования трехмерных данных согласно варианту 14 осуществления.
Фиг. 171 является блок-схемой последовательности операций способа для процесса декодирования информации атрибутов согласно варианту 14 осуществления.
Фиг. 172 является блок-схемой кодера информации атрибутов согласно варианту 14 осуществления.
Фиг. 173 является блок-схемой декодера информации атрибутов согласно варианту 14 осуществления.
Подробное описание вариантов осуществления
[0013] Способ кодирования трехмерных данных в соответствии с аспектом настоящего раскрытия включает в себя: вычисление значений коэффициентов из фрагментов информации атрибутов трехмерных точек, включенных в данные облаков точек; квантование значений коэффициентов отдельно, чтобы формировать квантованные значения; и формирование потока битов, включающего в себя квантованные значения, при этом каждое из значений коэффициентов принадлежит любому из слоев при квантовании, каждое из значений коэффициентов квантуется с использованием параметра квантования для слоя, которому принадлежит значение коэффициента, из слоев, и поток битов включает в себя первую информацию и фрагменты второй информации, причем первая информация указывает опорный параметр квантования, причем фрагменты второй информации предназначены для вычисления параметров квантования для слоев из опорного параметра квантования.
[0014] При такой конфигурации, согласно способу кодирования трехмерных данных, параметр квантования может изменяться для каждого слоя, и в силу этого кодирование может выполняться надлежащим образом. Помимо этого, согласно способу кодирования трехмерных данных, первая информация, которая указывает опорный параметр квантования, и вторая информация для вычисления множества параметров квантования из опорного параметра квантования кодируется, и в силу этого эффективность кодирования может повышаться.
[0015] Например, возможно то, что каждый из фрагментов второй информации указывает разность между опорным параметром квантования и параметром квантования для соответствующего одного из слоев из параметров квантования.
[0016] Например, также возможно то, что поток битов дополнительно включает в себя первый флаг, указывающий то, включаются или нет фрагменты второй информации в поток битов.
[0017] Например, дополнительно возможно то, что поток битов дополнительно включает в себя третью информацию, указывающую общее число фрагментов второй информации, включенных в поток битов.
[0018] Например, еще дополнительно возможно то, что каждая из трехмерных точек классифицируется на любой из слоев в соответствии с геометрической информацией трехмерной точки.
[0019] Например, еще дополнительно возможно то, что значения коэффициентов формируются посредством сортировки каждого из фрагментов информации атрибутов на один из компонента верхних частот и компонента нижних частот, которые должны классифицироваться на слои.
[0020] Способ декодирования трехмерных данных в соответствии с другим аспектом настоящего раскрытия включает в себя: вычисление параметров квантования для слоев, с использованием (i) первой информации, указывающей опорный параметр квантования, и (ii) фрагментов второй информации для вычисления параметров квантования для слоев из опорного параметра квантования, причем первая информация и фрагменты второй информации включаются в поток битов; обратное квантование каждого из квантованных значений, включенных в поток битов, с использованием параметра квантования для слоя, которому принадлежит квантованное значение, из параметров квантования, вычисленных при вычислении, чтобы формировать значения коэффициентов; и вычисление, из значений коэффициентов, сформированных при обратном квантовании, фрагментов информации атрибутов трехмерных точек, включенных в данные облаков точек.
[0021] При такой конфигурации, согласно способу декодирования трехмерных данных, параметр квантования может изменяться для каждого слоя, и в силу этого декодирование может выполняться надлежащим образом. Помимо этого, согласно способу декодирования трехмерных данных, может надлежащим образом декодироваться поток битов, который кодируется с эффективностью кодирования, повышенной посредством использования первой информации, которая указывает опорный параметр квантования, и множества фрагментов второй информации для вычисления множества параметров квантования из опорного параметра квантования.
[0022] Например, возможно то, что каждый из фрагментов второй информации указывает разность между опорным параметром квантования и параметром квантования для соответствующего одного из слоев из параметров квантования.
[0023] Например, также возможно то, что поток битов дополнительно включает в себя первый флаг, указывающий то, включаются или нет фрагменты второй информации в поток битов.
[0024] Например, дополнительно возможно то, что поток битов дополнительно включает в себя третью информацию, указывающую общее число фрагментов второй информации, включенных в поток битов.
[0025] Например, еще дополнительно возможно то, что каждая из трехмерных точек классифицируется на любой из слоев в соответствии с геометрической информацией трехмерной точки.
[0026] Например, еще дополнительно возможно то, что значения коэффициентов формируются посредством сортировки каждого из фрагментов информации атрибутов на один из компонента верхних частот и компонента нижних частот, которые должны классифицироваться на слои.
[0027] Устройство кодирования трехмерных данных в соответствии с еще одним другим аспектом настоящего раскрытия включает в себя: процессор; и запоминающее устройство, при этом, с использованием запоминающего устройства, процессор: вычисляет значения коэффициентов из фрагментов информации атрибутов трехмерных точек, включенных в данные облаков точек; квантует значения коэффициентов отдельно, чтобы формировать квантованные значения; и формирует поток битов, включающий в себя квантованные значения, при этом каждое из значений коэффициентов принадлежит любому из слоев при квантовании, каждое из значений коэффициентов квантуется с использованием параметра квантования для слоя, которому принадлежит значение коэффициента, из слоев, и поток битов включает в себя первую информацию и фрагменты второй информации, причем первая информация указывает опорный параметр квантования, причем фрагменты второй информации предназначены для вычисления параметров квантования для слоев из опорного параметра квантования, причем каждый из параметров квантования представляет собой параметр квантования.
[0028] При такой конфигурации, устройство кодирования трехмерных данных может изменять параметр квантования для каждого слоя и в силу этого может надлежащим образом выполнять кодирование. Помимо этого, поскольку устройство кодирования трехмерных данных кодирует первую информацию, которая указывает опорный параметр квантования, и множество фрагментов второй информации для вычисления множества параметров квантования из опорного параметра квантования, эффективность кодирования может повышаться.
[0029] Устройство декодирования трехмерных данных в соответствии с еще одним другим аспектом настоящего раскрытия включает в себя: процессор; и запоминающее устройство, при этом, с использованием запоминающего устройства, процессор: вычисляет параметры квантования для слоев, с использованием (i) первой информации, указывающей опорный параметр квантования, и (ii) фрагментов второй информации для вычисления параметров квантования для слоев из опорного параметра квантования, причем первая информация и фрагменты второй информации включаются в поток битов; обратно квантует каждое из квантованных значений, включенных в поток битов, с использованием параметра квантования для слоя, которому принадлежит квантованное значение, из параметров квантования, вычисленных при вычислении, чтобы формировать значения коэффициентов; и вычисляет, из значений коэффициентов, сформированных при обратном квантовании, фрагменты информации атрибутов трехмерных точек, включенных в данные облаков точек.
[0030] При такой конфигурации, устройство декодирования трехмерных данных может изменять параметр квантования для каждого слоя и в силу этого может надлежащим образом выполнять декодирование. Помимо этого, устройство декодирования трехмерных данных может надлежащим образом декодировать поток битов, кодированный с эффективностью кодирования, повышенной посредством использования первой информации, которая указывает опорный параметр квантования, и множества фрагментов второй информации для вычисления множества параметров квантования из опорного параметра квантования.
[0031] Следует отметить, что эти общие или конкретные аспекты могут реализовываться как система, способ, интегральная схема, компьютерная программа или машиночитаемый носитель записи, такой как постоянное запоминающее устройство на компакт-дисках (CD-ROM), либо могут реализовываться как любая комбинация системы, способа, интегральной схемы, компьютерной программы и носителя записи.
[0032] Далее описываются варианты осуществления со ссылкой на чертежи. Следует отметить, что нижеприведенные варианты осуществления указывают примерные варианты осуществления настоящего раскрытия . Числовые значения, формы, материалы, составляющие элементы, компоновка и соединение составляющих элементов, этапы, порядок обработки этапов и т.д., указанных в нижеприведенных вариантах осуществления, представляют собой просто примеры и в силу этого не имеют намерение ограничивать настоящее раскрытие . Из числа составляющих элементов, описанных в нижеприведенных вариантах осуществления, составляющие элементы, не изложенные ни в одном из независимых пунктов формулы изобретения, которые указывают наиболее обобщенные идеи, описываются как необязательные составляющие элементы.
[0033] Вариант 1 осуществления
Во-первых, описывается структура данных для кодированных трехмерных данных (в дальнейшем также называемых "кодированными данными") согласно настоящему варианту осуществления. Фиг. 1 является схемой, показывающей структуру кодированных трехмерных данных согласно настоящему варианту осуществления.
[0034] В настоящем варианте осуществления, трехмерное пространство разделяется на пространства (SPC), которые соответствуют кинокадрам при кодировании движущихся кинокадров, и трехмерные данные кодируются на основе SPC. Каждое SPC дополнительно разделяется на объемы (VLM), которые соответствуют макроблокам и т.д. при кодировании движущихся кинокадров, и прогнозирования и преобразования выполняются на основе VLM. Каждый объем включает в себя множество вокселов (VXL), каждый из которых представляет собой минимальную единицу, в которой позиционные координаты ассоциируются. Следует отметить, что прогнозирование представляет собой процесс формирования прогнозирующих трехмерных данных, аналогичных текущей единице обработки, посредством ссылки на другую единицу обработки и кодирования дифференциала между прогнозирующими трехмерными данными и текущей единицей обработки, как и в случае прогнозирований, выполняемых для двумерных изображений. Такое прогнозирование включает в себя не только пространственное прогнозирование, в котором ссылаются на другую единицу прогнозирования, соответствующую идентичному времени, но также и временное прогнозирование, в котором ссылаются на единицу прогнозирования, соответствующую другому времени.
[0035] При кодировании трехмерного пространства, представленного посредством данных точечных групп, таких как облако точек, например, устройство кодирования трехмерных данных (в дальнейшем также называемое "устройством кодирования") кодирует точки в точечной группе или точки, включенные в соответствующие вокселы, совместным способом, в соответствии с размером воксела. Более точные вокселы обеспечивают высокоточное представление трехмерной формы точечной группы, тогда как большие вокселы обеспечивают приблизительное представление трехмерной формы точечной группы.
[0036] Следует отметить, что далее описывается случай, в котором трехмерные данные представляют собой облако точек, но трехмерные данные не ограничены облаком точек, и в силу этого могут использоваться трехмерные данные любого формата.
[0037] Также следует отметить, что могут использоваться вокселы с иерархической структурой. В таком случае, когда иерархия включает в себя n уровней, может последовательно указываться то, включается или нет точка дискретизации в (n-1)-ый уровень или его нижние уровни (уровни ниже n-ого уровня). Например, когда только n-ый уровень декодируется, и (n-1)-ый уровень или нижние уровни включают в себя точку дискретизации, n-ый уровень может декодироваться при условии, что точка дискретизации включается в центр воксела на n-ом уровне.
[0038] Кроме того, устройство кодирования получает данные точечных групп, с использованием, например, датчика расстояния, стереокамеры, монокулярной камеры, гироскопического датчика или инерциального датчика.
[0039] Как и в случае кодирования движущихся кинокадров, каждое SPC классифицируется на одну, по меньшей мере, из трех структур прогнозирования, которые включают в себя: внутреннее SPC (I-SPC), которое является отдельно декодируемым; прогнозирующее SPC (P-SPC), допускающее только однонаправленную ссылку; и двунаправленное SPC (B-SPC), допускающее двунаправленные ссылки. Каждое SPC включает в себя два типа информации времени: время декодирования и время отображения.
[0040] Кроме того, как показано на фиг. 1, единица обработки, которая включает в себя множество SPC, представляет собой группу пространств (GOS), которая представляет собой единицу произвольного доступа. Кроме того, единица обработки, которая включает в себя множество GOS, представляет собой мир (WLD).
[0041] Пространственная область, занимаемая посредством каждого мира, ассоциирована с абсолютной позицией на земле, посредством использования, например, GPS или информации широты и долготы. Такая информация позиции сохраняется в качестве метаинформации. Следует отметить, что метаинформация может быть включена в кодированные данные или может передаваться отдельно от кодированных данных.
[0042] Кроме того, в GOS все SPC могут быть трехмерно смежными друг с другом, либо может быть предусмотрено SPC, которое не является трехмерно смежным с другим SPC.
[0043] Следует отметить, что далее также описываются такие процессы, как кодирование, декодирование и ссылка, которые должны выполняться для трехмерных данных, включенных в единицы обработки, такие как GOS, SPC и VLM, просто как выполнение кодирования/кодировать, декодирования/декодировать, ссылки и т.д. для единицы обработки. Также следует отметить, что трехмерные данные, включенные в единицу обработки, включают в себя, например, по меньшей мере, одну пару из пространственной позиции, такой как трехмерные координаты, и значения атрибута, такого как цветовая информация.
[0044] Далее описываются структуры прогнозирования для SPC в GOS. Множество SPC в идентичной GOS или множество VLM в идентичном SPC занимают взаимно различные пространства, при наличии идентичной информации времени (времени декодирования и времени отображения).
[0045] SPC в GOS, которая идет первой в порядке декодирования, представляет собой I-SPC. GOS имеют два типа: закрытая GOS и открытая GOS. Закрытая GOS представляет собой GOS, в которой все SPC в GOS являются декодируемыми, когда декодирование начинается с первого I-SPC. Между тем, открытая GOS представляет собой GOS, в которой ссылаются на другую GOS в одном или более SPC, предшествующих первому I-SPC в GOS по времени отображения, и в силу этого не может отдельно декодироваться.
[0046] Следует отметить, что в случае кодированных данных картографической информации, например, WLD иногда декодируется в обратном направлении, которое является противоположным порядку кодирования, и в силу этого обратное воспроизведение является затруднительным, когда GOS являются взаимозависимыми. В таком случае, по существу используется закрытая GOS.
[0047] Каждая GOS имеет многослойную структуру в направлении высоты, и SPC последовательно кодируются или декодируются из SPC в нижнем слое.
[0048] Фиг. 2 является схемой, показывающей пример структур прогнозирования для SPC, которые принадлежат крайнему нижнему слою в GOS. Фиг. 3 является схемой, показывающей пример структур прогнозирования из слоев.
[0049] GOS включает в себя, по меньшей мере, одно I-SPC. Из объектов в трехмерном пространстве, таких как человек, животное, автомобиль, велосипед, светофор и здание, служащих в качестве ориентира, объект небольшого размера является особенно эффективным при кодировании в качестве I-SPC. При декодировании GOS с низкой пропускной способностью или на высокой скорости, например, устройство декодирования трехмерных данных (в дальнейшем также называемое "устройством декодирования") декодирует только I-SPC в GOS.
[0050] Устройство кодирования также может изменять интервал кодирования или частоту возникновения I-SPC, в зависимости от степени разреженности и сплошности объектов в WLD.
[0051] В структуре, показанной на фиг. 3, устройство кодирования или устройство декодирования кодирует или декодирует множество слоев последовательно с нижнего слоя (слоя 1). Это увеличивает приоритет данных по земле и около нее, которые заключают в себе больший объем информации, когда, например, рассматривается беспилотный автомобиль.
[0052] Относительно кодированных данных, используемых для беспилотного аппарата, например, кодирование или декодирование может выполняться последовательно из SPC в верхнем слое в GOS в направлении высоты.
[0053] Устройство кодирования или устройство декодирования также может кодировать или декодировать множество слоев таким способом, что устройство декодирования может иметь приблизительное понимание GOS сначала, и затем разрешение постепенно увеличивается. Устройство кодирования или устройство декодирования, например, может выполнять кодирование или декодирование в порядке слоев 3, 8, 1, 9, ...,.
[0054] Далее описывается обработка статических объектов и динамических объектов.
[0055] Трехмерное пространство включает в себя сцены или неподвижные объекты, такие как здание и дорога (в дальнейшем совместно называемые "статическими объектами"), и объекты с движением, такие как автомобиль и человек (в дальнейшем совместно называемые "динамическими объектами"). Обнаружение объектов отдельно выполняется, например, посредством извлечения ключевых точек из данных облаков точек или из видео камеры, такой как стереокамера. В этом описании, в дальнейшем описывается примерный способ кодирования динамического объекта.
[0056] Первый способ представляет собой способ, в котором статический объект и динамический объект кодируются без различения. Второй способ представляет собой способ, в котором проводится различение между статическим объектом и динамическим объектом на основе идентификационной информации.
[0057] Например, GOS используется в качестве единицы идентификации. В таком случае, проводится различение между GOS, которая включает в себя SPC, составляющие статический объект, и GOS, которая включает в себя SPC, составляющие динамический объект, на основе идентификационной информации, сохраненной в кодированных данных или сохраненной отдельно от кодированных данных.
[0058] Альтернативно, SPC может использоваться в качестве единицы идентификации. В таком случае, проводится различение между SPC, которое включает в себя VLM, составляющие статический объект, и SPC, которое включает в себя VLM, составляющие динамический объект, на основе такой описанной идентификационной информации.
[0059] Альтернативно, VLM или VXL могут использоваться в качестве единицы идентификации. В таком случае, проводится различение между VLM или VXL, который включает в себя статический объект, и VLM или VXL, который включает в себя динамический объект, на основе такой описанной идентификационной информации.
[0060] Устройство кодирования также может кодировать динамический объект в качестве, по меньшей мере, одного VLM или SPC и может кодировать VLM или SPC, включающее в себя статический объект, и SPC, включающее в себя динамический объект, в качестве взаимно различных GOS. Когда GOS-размер является переменным в зависимости от размера динамического объекта, устройство кодирования отдельно сохраняет GOS-размер в качестве метаинформации.
[0061] Устройство кодирования также может кодировать статический объект и динамический объект отдельно друг от друга и может накладывать динамический объект на мир, состоящий из статических объектов. В таком случае, динамический объект состоит, по меньшей мере, из одного SPC, и каждое SPC ассоциировано, по меньшей мере, с одним SPC, составляющим статический объект, на который должно накладываться каждое SPC. Следует отметить, что динамический объект может представляться не посредством SPC, а посредством, по меньшей мере, одного VLM или VXL.
[0062] Устройство кодирования также может кодировать статический объект и динамический объект в качестве взаимно различных потоков.
[0063] Устройство кодирования также может формировать GOS, которая включает в себя, по меньшей мере, одно SPC, составляющее динамический объект. Устройство кодирования дополнительно может задавать размер GOS, включающей в себя динамический объект (GOS_M), и размер GOS, включающей в себя статический объект, соответствующий пространственной области GOS_M, равными идентичному размеру (так что идентичная пространственная область является занятой). Это обеспечивает возможность выполнения наложения на основе GOS.
[0064] На SPC, включенное в другую кодированную GOS, можно ссылаться в P-SPC или B-SPC, составляющем динамический объект. В случае если позиция динамического объекта временно изменяется, и идентичный динамический объект кодируется как объект в GOS, соответствующей другому времени, ссылка на SPC по GOS является эффективной с точки зрения коэффициента сжатия.
[0065] Первый способ и второй способ могут выбираться в соответствии с надлежащим использованием кодированных данных. Когда кодированные трехмерные данные используются в качестве карты, например, динамический объект должен разделяться, и в силу этого устройство кодирования использует второй способ. Между тем, устройство кодирования использует первый способ, когда разделение динамического объекта не требуется, к примеру, в случае если кодируются трехмерные данные события, такие как концерт и спортивные соревнования.
[0066] Время декодирования и время отображения GOS или SPC могут храниться в кодированных данных или в качестве метаинформации. Все статические объекты могут иметь идентичную информацию времени. В таком случае, устройство декодирования может определять фактическое время декодирования и время отображения. Альтернативно, другое значение может назначаться каждой GOS или SPC в качестве времени декодирования, и идентичное значение может быть назначено в качестве времени отображения. Кроме того, как и в случае модели декодера при кодировании движущихся кинокадров, такого как гипотетический опорный декодер (HRD), совместимый с HEVC, может использоваться модель, которая обеспечивает то, что декодер может выполнять декодирование бесперебойно за счет наличия буфера предварительно определенного размера и посредством считывания потока битов с предварительно определенной скоростью передачи битов в соответствии с временами декодирования.
[0067] Далее описывается топология GOS в мире. Координаты трехмерного пространства в мире представляются посредством трех осей координат (оси X, оси Y и оси Z), которые являются ортогональными друг к другу. Предварительно определенный набор правил для порядка кодирования GOS обеспечивает возможность выполнения кодирования таким образом, что пространственно смежные GOS являются смежными в кодированных данных. В примере, показанном на фиг. 4, например, GOS в плоскостях X и Z последовательно кодируются. После завершения кодирования всех GOS в определенных плоскостях X и Z, значение оси Y обновляется. Другими словами, мир расширяется в направлении по оси Y по мере того, как кодирование продолжается. Числовые GOS-индексы задаются в соответствии с порядком кодирования.
[0068] Здесь, трехмерные пространства в соответствующих мирах заранее ассоциированы "один-к-одному" с абсолютными географическими координатами, такими как GPS-координаты или координаты по широте/долготе. Альтернативно, каждое трехмерное пространство может представляться как позиция относительно заранее заданной опорной позиции. Направления оси X, оси Y и оси Z в трехмерном пространстве представляются посредством направленных векторов, которые определяются на основе широт и долгот и т.д. Такие направленные векторы сохраняются вместе с кодированными данными в качестве метаинформации.
[0069] GOS имеют фиксированный размер, и устройство кодирования сохраняет такой размер в качестве метаинформации. GOS-размер может изменяться, например, в зависимости от того, это городской район или нет, либо того, это внутри или снаружи помещения. Другими словами, GOS-размер может изменяться в соответствии с количеством или атрибутами объектов с информационными значениями. Альтернативно, в идентичном мире, устройство кодирования может адаптивно изменять GOS-размер или интервал между I-SPC в GOS в соответствии с плотностью объектов и т.д. Например, устройство кодирования задает GOS-размер как меньший, а интервал между I-SPC в GOS как более короткий, по мере того, как плотность объектов становится более высокой.
[0070] В примере, показанном на фиг. 5, чтобы обеспечивать произвольный доступ с большей степенью детализации, GOS с высокой плотностью объектов сегментируется на области третьей-десятой GOS. Следует отметить, что седьмая-десятая GOS расположены после третьей-шестой GOS.
[0071] Далее описываются структура и последовательность операций устройства кодирования трехмерных данных согласно настоящему варианту осуществления. Фиг. 6 является блок-схемой устройства 100 кодирования трехмерных данных согласно настоящему варианту осуществления. Фиг. 7 является блок-схемой последовательности операций способа для примерной операции, выполняемой посредством устройства 100 кодирования трехмерных данных.
[0072] Устройство 100 кодирования трехмерных данных, показанное на фиг. 6, кодирует трехмерные данные 111, за счет этого формируя кодированные трехмерные данные 112. Такое устройство 100 кодирования трехмерных данных включает в себя модуль 101 получения, модуль 102 определения областей кодирования, модуль 103 разделения и кодер 104.
[0073] Как показано на фиг. 7, во-первых, модуль 101 получения получает трехмерные данные 111, которые представляют собой данные точечных групп (S101).
[0074] Затем, модуль 102 определения областей кодирования определяет текущую область для кодирования из числа пространственных областей, соответствующих полученным данным точечных групп (S102). Например, в соответствии с позицией пользователя или транспортного средства, модуль 102 определения областей кодирования определяет, в качестве текущей области, пространственную область около такой позиции.
[0075] Затем, модуль 103 разделения разделяет данные точечных групп, включенные в текущую область, на единицы обработки. Единицы обработки здесь означают такие единицы, как GOS и SPC, описанные выше. Текущая область здесь соответствует, например, миру, описанному выше. Более конкретно, модуль 103 разделения разделяет данные точечных групп на единицы обработки на основе предварительно определенного GOS-размера или присутствия/отсутствия/размера динамического объекта (S103). Модуль 103 разделения дополнительно определяет начальную позицию SPC, которое идет первым в порядке кодирования в каждой GOS.
[0076] Затем, кодер 104 последовательно кодирует множество SPC в каждой GOS, за счет этого формируя кодированные трехмерные данные 112 (S104).
[0077] Следует отметить, что, хотя здесь описывается пример, в котором текущая область разделяется на GOS и SPC, после чего каждая GOS кодируется, этапы обработки не ограничены этим порядком. Например, могут использоваться этапы, в которых определяется структура одного GO, после чего выполняется кодирование такой GOS, и затем определяется структура последующей GOS.
[0078] Таким образом, как описано выше, устройство 100 кодирования трехмерных данных кодирует трехмерные данные 111, за счет этого формируя кодированные трехмерные данные 112. Более конкретно, устройство 100 кодирования трехмерных данных разделяет трехмерные данные на первые единицы обработки (GOS), причем каждая из них представляет собой единицу произвольного доступа и ассоциирована с трехмерными координатами, разделяет каждую из первых единиц обработки (GOS) на вторые единицы обработки (SPC) и разделяет каждую из вторых единиц обработки (SPC) на третьи единицы обработки (VLM). Каждая из третьих единиц обработки (VLM) включает в себя, по меньшей мере, один воксел (VXL), который представляет собой минимальную единицу, в которой информация позиции ассоциирована.
[0079] Затем, устройство 100 кодирования трехмерных данных кодирует каждую из первых единиц обработки (GOS), за счет этого формируя кодированные трехмерные данные 112. Более конкретно, устройство 100 кодирования трехмерных данных кодирует каждую из вторых единиц обработки (SPC) в каждой из первых единиц обработки (GOS). Устройство 100 кодирования трехмерных данных дополнительно кодирует каждую из третьих единиц обработки (VLM) в каждой из вторых единиц обработки (SPC).
[0080] Когда текущая первая единица обработки (GOS) представляет собой закрытую GOS, например, устройство 100 кодирования трехмерных данных кодирует текущую вторую единицу обработки (SPC), включенную в такую текущую первую единицу обработки (GOS), посредством ссылки на другую вторую единицу обработки (SPC), включенную в текущую первую единицу обработки (GOS). Другими словами, устройство 100 кодирования трехмерных данных не ссылается на вторую единицу обработки (SPC), включенную в первую единицу обработки (GOS), которая отличается от текущей первой единицы обработки (GOS).
[0081] Между тем, когда текущая первая единица обработки (GOS) представляет собой открытую GOS, устройство 100 кодирования трехмерных данных кодирует текущую вторую единицу обработки (SPC), включенную в такую текущую первую единицу обработки (GOS), посредством ссылки на другую вторую единицу обработки (SPC), включенную в текущую первую единицу обработки (GOS), или на вторую единицу обработки (SPC), включенную в первую единицу обработки (GOS), которая отличается от текущей первой единицы обработки (GOS).
[0082] Кроме того, устройство 100 кодирования трехмерных данных выбирает, в качестве типа текущей второй единицы обработки (SPC), одно из следующего: первый тип (I-SPC), в котором не ссылаются на другую вторую единицу обработки (SPC); второй тип (P-SPC), в котором ссылаются на другую одну вторую единицу обработки (SPC); и третий тип, в котором ссылаются на другие две вторых единицы обработки (SPC). Устройство 100 кодирования трехмерных данных кодирует текущую вторую единицу обработки (SPC) в соответствии с выбранным типом.
[0083] Далее описываются структура и последовательность операций устройства декодирования трехмерных данных согласно настоящему варианту осуществления. Фиг. 8 является блок-схемой устройства 200 декодирования трехмерных данных согласно настоящему варианту осуществления. Фиг. 9 является блок-схемой последовательности операций способа для примерной операции, выполняемой посредством устройства 200 декодирования трехмерных данных.
[0084] Устройство 200 декодирования трехмерных данных, показанное на фиг. 8, декодирует кодированные трехмерные данные 211, за счет этого формируя декодированные трехмерные данные 212. Кодированные трехмерные данные 211 здесь, например, представляют собой кодированные трехмерные данные 112, сформированные посредством устройства 100 кодирования трехмерных данных. Такое устройство 200 декодирования трехмерных данных включает в себя модуль 201 получения, модуль 202 определения GOS для начала декодирования, модуль 203 определения SPC для декодирования и декодер 204.
[0085] Во-первых, модуль 201 получения получает кодированные трехмерные данные 211 (S201). Затем, модуль 202 определения GOS для начала декодирования определяет текущую GOS для декодирования (S202). Более конкретно, модуль 202 определения GOS для начала декодирования ссылается на метаинформацию, сохраненную в кодированных трехмерных данных 211 или сохраненную отдельно от кодированных трехмерных данных, чтобы определять, в качестве текущей GOS, GOS, которая включает в себя SPC, соответствующее пространственной позиции, объекту или времени, с которого должно начинаться декодирование.
[0086] Затем, модуль 203 определения SPC для декодирования определяет тип(ы) (I-, P- и/или B-) SPC, которые должны декодироваться в GOS (S203). Например, модуль 203 определения SPC для декодирования определяет то, следует (1) декодировать только I-SPC, (2) декодировать I-SPC и P-SPC или (3) декодировать SPC всех типов. Следует отметить, что настоящий этап может не выполняться, когда тип(ы) SPC, которые должны декодироваться, заранее определяются, к примеру, когда заранее определяются все SPC, которые должны декодироваться.
[0087] Далее декодер 204 получает местоположение адреса в кодированных трехмерных данных 211, с которого начинается SPC, которое идет первым в GOS в порядке декодирования (идентичном порядку кодирования). Декодер 204 получает кодированные данные первого SPC из местоположения адреса и последовательно декодирует SPC с такого первого SPC (S204). Следует отметить, что местоположение адреса сохраняется в метаинформации и т.д.
[0088] Устройство 200 декодирования трехмерных данных декодирует декодированные трехмерные данные 212 таким образом, как описано выше. Более конкретно, устройство 200 декодирования трехмерных данных декодирует каждые кодированные трехмерные данные 211 первых единиц обработки (GOS), причем каждая из них представляет собой единицу произвольного доступа и ассоциирована с трехмерными координатами, за счет этого формируя декодированные трехмерные данные 212 первых единиц обработки (GOS). Еще более конкретно, устройство 200 декодирования трехмерных данных декодирует каждую из вторых единиц обработки (SPC) в каждой из первых единиц обработки (GOS). Устройство 200 декодирования трехмерных данных дополнительно декодирует каждую из третьих единиц обработки (VLM) в каждой из вторых единиц обработки (SPC).
[0089] Далее описывается метаинформация для произвольного доступа. Такая метаинформация формируется посредством устройства 100 кодирования трехмерных данных и включается в кодированные трехмерные данные 112 (211).
[0090] В традиционном произвольном доступе для двумерного движущегося кинокадра, декодирование начинается с первого кадра в единице произвольного доступа, которая находится близко к указанному времени. Между тем, в дополнение ко временам, произвольный доступ к пространствам (координатам, объектам и т.д.) предположительно должен выполняться в мире.
[0091] Чтобы обеспечивать произвольный доступ, по меньшей мере, к трем элементам координат, объектов и времен, подготавливаются таблицы, которые ассоциируют соответствующие элементы с числовыми GOS-индексами. Кроме того, числовые GOS-индексы ассоциированы с адресами соответствующих первых I-SPC в GOS. Фиг. 10 является схемой, показывающей примерные таблицы, включенные в метаинформацию. Следует отметить, что не все таблицы, показанные на фиг. 10, обязательно должны использоваться, и в силу этого используется, по меньшей мере, одна из таблиц.
[0092] Далее описывается пример, в котором произвольный доступ выполняется из координат в качестве начальной точки. Чтобы осуществлять доступ к координатам (x2, y2 и z2), сначала ссылаются на таблицу координат и GOS, которая указывает то, что точка, соответствующая координатам (x2, y2 и z2), включается во вторую GOS. Затем ссылаются на таблицу GOS и адресов, которая указывает то, что адрес первого I-SPC во второй GOS представляет собой addr(2). В связи с этим, декодер 204 получает данные из этого адреса, чтобы начинать декодирование.
[0093] Следует отметить, что адреса могут или представлять собой логические адреса либо физические адреса HDD или запоминающего устройства. Альтернативно, информация, которая идентифицирует сегменты файлов, может использоваться вместо адресов. Сегменты файлов, например, представляют собой единицы, полученные посредством сегментации, по меньшей мере, одной GOS и т.д.
[0094] Когда объект охватывает множество GOS, таблица объектов и GOS может показывать множество GOS, которым принадлежит такой объект. Когда такое множество GOS представляют собой закрытые GOS, устройство кодирования и устройство декодирования могут выполнять кодирование или декодирование параллельно. Между тем, когда такое множество GOS представляют собой открытые GOS, более высокая эффективность сжатия достигается посредством множества GOS, ссылающихся друг на друга.
[0095] Примерные объекты включают в себя человека, животное, автомобиль, велосипед, светофор и здание, служащие в качестве ориентира. Например, устройство 100 кодирования трехмерных данных извлекает ключевые точки, конкретные для объекта, из облака трехмерных точек и т.д., при кодировании мира, и обнаруживает объект на основе таких ключевых точек, чтобы задавать обнаруженный объект в качестве точки произвольного доступа.
[0096] Таким образом, как описано выше, устройство 100 кодирования трехмерных данных формирует первую информацию, указывающую множество первых единиц обработки (GOS) и трехмерные координаты, ассоциированные с соответствующими первыми единицами обработки (GOS). Кодированные трехмерные данные 112 (211) включают в себя такую первую информацию. Первая информация дополнительно указывает, по меньшей мере, одно из объектов, времен и местоположений хранения данных, которые ассоциированы с соответствующими первыми единицами обработки (GOS).
[0097] Устройство 200 декодирования трехмерных данных получает первую информацию из кодированных трехмерных данных 211. С использованием такой первой информации, устройство 200 декодирования трехмерных данных идентифицирует кодированные трехмерные данные 211 первой единицы обработки, которая соответствует указанным трехмерным координатам, объекту или времени, и декодирует кодированные трехмерные данные 211.
[0098] Далее описывается пример другой метаинформации. В дополнение к метаинформации для произвольного доступа, устройство 100 кодирования трехмерных данных также может формировать и сохранять метаинформацию, как описано ниже, и устройство 200 декодирования трехмерных данных может использовать такую метаинформацию во время декодирования.
[0099] Когда трехмерные данные используются в качестве картографической информации, например, профиль задается в соответствии с надлежащим использованием, и информация, указывающая такой профиль, может быть включена в метаинформацию. Например, профиль задается для городского или пригородного района либо для летающего объекта, и максимальный или минимальный размер и т.д. мира, SPC или VLM и т.д. задается в каждом профиле. Например, более подробная информация требуется для городского района, чем для пригородного района, и в силу этого минимальный VLM-размер задается небольшим.
[0100] Метаинформация может включать в себя значения тега, указывающие типы объектов. Каждое из таких значений тега ассоциировано с VLM, SPC или GOS, которые составляют объект. Например, значение тега может задаваться для каждого типа объекта таким образом, например, что значение тега "0" указывает "человека", значение тега "1" указывает "автомобиль", и значение тега "2" указывает "светофор". Альтернативно, когда трудно проводить оценку типа объекта, либо такое проведение оценки не требуется, может использоваться значение тега, которое указывает размер или атрибут, указывающий, например, то, представляет объект собой динамический объект или статический объект.
[0101] Метаинформация также может включать в себя информацию, указывающую диапазон пространственной области, занимаемой посредством мира.
[0102] Метаинформация также может сохранять SPC- или VXL-размер в качестве информации заголовка, общей для целого потока кодированных данных или для множества SPC, таких как SPC в GOS.
[0103] Метаинформация также может включать в себя идентификационную информацию по датчику расстояния или камере, которая использована для того, чтобы формировать облако точек, или информацию, указывающую точность позиционирования точечной группы в облаке точек.
[0104] Метаинформация также может включать в себя информацию, указывающую то, мир состоит только из статических объектов или включает в себя динамический объект.
[0105] Далее описываются варьирования настоящего варианта осуществления.
[0106] Устройство кодирования или устройство декодирования может кодировать или декодировать два или более взаимно различных SPC или GOS параллельно. GOS, которые должны кодироваться или декодироваться параллельно, могут определяться на основе метаинформации и т.д., указывающей пространственные позиции GOS.
[0107] Когда трехмерные данные используются в качестве пространственной карты для использования посредством автомобиля или летающего объекта и т.д. при движении или для создания такой пространственной карты, например, устройство кодирования или устройство декодирования может кодировать или декодировать GOS или SPC, включенные в пространство, которое идентифицируется на основе GPS-информации, информации маршрута, увеличения масштаба и т.д.
[0108] Устройство декодирования также может начинать декодирование последовательно из пространства, которое находится близко к собственному местоположению или маршруту движения. Устройство кодирования или устройство декодирования может отдавать более низкий приоритет пространству, удаленному от собственного местоположения или маршрута движения, чем приоритет близлежащего пространства, чтобы кодировать или декодировать такое удаленное пространство. "Отдавать более низкий приоритет" означает здесь, например, понижение приоритета в последовательности обработки, снижение разрешения (применение прореживания в обработке) или понижение качества изображений (увеличение эффективности кодирования, например, посредством задания шага квантования большим).
[0109] При декодировании кодированных данных, которые иерархически кодируются в пространстве, устройство декодирования может декодировать только нижний слой в иерархии.
[0110] Устройство декодирования также может начинать декодирование предпочтительно с нижнего слоя иерархии в соответствии с увеличением масштаба или надлежащим использованием карты.
[0111] Для оценки собственного местоположения или распознавания объектов и т.д., участвующих в беспилотном вождении автомобиля или робота, устройство кодирования или устройство декодирования может кодировать или декодировать области с более низком разрешением, за исключением области, которая находится ниже или на заданной высоте от земли (области, которая должна распознаваться).
[0112] Устройство кодирования также может кодировать облака точек, представляющие пространственные формы внутренней части помещения и наружной части помещения, отдельно. Например, разделение GOS, представляющей внутреннюю часть помещения (внутренней GOS), и GOS, представляющей наружную часть помещения (наружной GOS), обеспечивает возможность устройству декодирования выбирать GOS, которая должна декодироваться, в соответствии с местоположением точки обзора, при использовании кодированных данных.
[0113] Устройство кодирования также может кодировать внутреннюю GOS и наружную GOS, имеющие близкие координаты, так что такие GOS приближаются друг к другу в кодированном потоке. Например, устройство кодирования ассоциирует идентификаторы таких GOS друг с другом и сохраняет информацию, указывающую ассоциированные идентификаторы, в метаинформации, которая сохраняется в кодированном потоке или сохраняется отдельно. Это обеспечивает возможность устройству декодирования ссылаться на информацию в метаинформации, чтобы идентифицировать внутреннюю GOS и наружную GOS, имеющие близкие координаты.
[0114] Устройство кодирования также может изменять GOS-размер или SPC-размер в зависимости от того, представляет GOS собой внутреннюю GOS или наружную GOS. Например, устройство кодирования задает размер внутренней GOS меньшим размера наружной GOS. Устройство кодирования также может изменять точность извлечения ключевых точек из облака точек или точность обнаружения объектов, например, в зависимости от того, представляет GOS собой внутреннюю GOS или наружную GOS.
[0115] Устройство кодирования также может добавлять, в кодированные данные, информацию, посредством которой устройство декодирования отображает объекты с различением между динамическим объектом и статическим объектом. Это обеспечивает возможность устройству декодирования отображать динамический объект, например, вместе с красным полем или буквами для пояснения. Следует отметить, что устройство декодирования может отображать только красное поле или буквы для пояснения вместо динамического объекта. Устройство декодирования также может отображать более конкретные типы объектов. Например, красное поле может использоваться для автомобиля, а желтое поле может использоваться для человека.
[0116] Устройство кодирования или устройство декодирования также может определять то, следует либо нет кодировать или декодировать динамический объект и статический объект в качестве другого SPC или GOS, в соответствии, например, с частотой возникновения динамических объектов или соотношением между статическими объектами и динамическими объектами. Например, когда частота возникновения или соотношение динамических объектов превышают пороговое значение, SPC или GOS, включающая в себя смесь динамического объекта и статического объекта, принимается, тогда как когда частота возникновения или соотношение динамических объектов составляет ниже порогового значения, SPC или GOS, включающая в себя смесь динамического объекта и статического объекта, не принимается.
[0117] При обнаружении динамического объекта не из облака точек, а из информации двумерных изображений камеры, устройство кодирования может отдельно получать информацию для идентификации результата обнаружения (поле или буквы) и позицию объекта и кодировать эти элементы информации в качестве части кодированных трехмерных данных. В таком случае, устройство декодирования накладывает вспомогательную информацию (поле или буквы), указывающую динамический объект, на результант декодирования статического объекта, чтобы отображать его.
[0118] Устройство кодирования также может изменять разреженность и сплошность VXL или VLM в SPC в соответствии со степенью сложности формы статического объекта. Например, устройство кодирования задает VXL или VLM с более высокой плотностью по мере того, как форма статического объекта становится более сложной. Устройство кодирования дополнительно может определять шаг квантования и т.д. для квантования пространственных позиций или цветовой информации в соответствии с разреженностью и сплошностью VXL или VLM. Например, устройство кодирования задает шаг квантования как меньший по мере того, как плотность VXL или VLM становится более высокой.
[0119] Как описано выше, устройство кодирования или устройство декодирования согласно настоящему варианту осуществления кодирует или декодирует пространство на основе SPC, которое включает в себя координатную информацию.
[0120] Кроме того, устройство кодирования и устройство декодирования выполняют кодирование или декодирование на основе объема в SPC. Каждый объем включает в себя воксел, который представляет собой минимальную единицу, в которой информация позиции ассоциирована.
[0121] Кроме того, с использованием таблицы, которая ассоциирует соответствующие элементы пространственной информации, включающей в себя координаты, объекты и времена, с GOS, либо с использованием таблицы, которая ассоциирует эти элементы друг с другом, устройство кодирования и устройство декодирования ассоциируют любые элементы друг с другом, чтобы выполнять кодирование или декодирование. Устройство декодирования использует значения выбранных элементов, чтобы определять координаты, и идентифицирует объем, воксел или SPC из таких координат, чтобы декодировать SPC, включающее в себя такой объем или воксел, или идентифицированное SPC.
[0122] Кроме того, устройство кодирования определяет объем, воксел или SPC, которое может выбираться в соответствии с элементами, через извлечение ключевых точек и распознавание объектов и кодирует определенный объем, воксел или SPC, в качестве объема, воксела или SPC, для которого является возможным произвольный доступ.
[0123] SPC классифицируются на три типа: I-SPC, которое является отдельно кодируемым или декодируемым; P-SPC, которое кодируется или декодируется посредством ссылки на любое из обработанных SPC; и B-SPC, которое кодируется или декодируется посредством ссылки на любые два из обработанных SPC.
[0124] По меньшей мере, один объем соответствует статическому объекту или динамическому объекту. SPC, включающее в себя статический объект, и SPC, включающее в себя динамический объект, кодируются или декодируются в качестве взаимно различных GOS. Другими словами, SPC, включающее в себя статический объект, и SPC, включающее в себя динамический объект, назначаются различным GOS.
[0125] Динамические объекты кодируются или декодируются на основе объекта и ассоциированы, по меньшей мере, с одним SPC, включающим в себя статический объект. Другими словами, множество динамических объектов отдельно кодируются, и полученные кодированные данные динамических объектов ассоциированы с SPC, включающим в себя статический объект.
[0126] Устройство кодирования и устройство декодирования отдают увеличенный приоритет I-SPC в GOS, чтобы выполнять кодирование или декодирование. Например, устройство кодирования выполняет кодирование таким способом, который предотвращает ухудшение характеристик I-SPC (таким способом, который обеспечивает воспроизведение исходных трехмерных данных с более высокой точностью воспроизведения после декодирования). Устройство декодирования декодирует, например, только I-SPC.
[0127] Устройство кодирования может изменять частоту использования I-SPC в зависимости от разреженности и сплошности или числа (количества) объектов в мире, чтобы выполнять кодирование. Другими словами, устройство кодирования изменяет частоту выбора I-SPC в зависимости от числа или разреженности и сплошности объектов, включенных в трехмерные данные. Например, устройство кодирования использует I-SPC на более высокой частоте по мере того, как плотность объектов в мире становится более высокой.
[0128] Устройство кодирования также задает точки произвольного доступа на основе GOS и сохраняет информацию, указывающую пространственные области, соответствующие GOS, в информации заголовка.
[0129] Устройство кодирования использует, например, значение по умолчанию в качестве пространственного размера GOS. Следует отметить, что устройство кодирования может изменять GOS-размер в зависимости от числа (количества) или разреженности и сплошности объектов или динамических объектов. Например, устройство кодирования задает пространственный размер GOS как меньший по мере того, как плотность объектов или динамических объектов становится более высокой, или число объектов или динамических объектов становится больше.
[0130] Кроме того, каждое SPC или объем включает в себя группу ключевых точек, которая извлекается посредством использования информации, полученной посредством датчика, такого как датчик глубины, гироскопический датчик или датчик с камерой. Координаты ключевых точек задаются в центральных позициях соответствующих вокселов. Кроме того, более точные вокселы предоставляют высокоточную информацию позиции.
[0131] Группа ключевых точек извлекается посредством использования множества кинокадров. Множество кинокадров включают в себя, по меньшей мере, два типа информации времени: фактическую информацию времени и идентичную информацию времени, общую для множества кинокадров, которые ассоциированы с SPC (например, время кодирования, используемое для управления скоростью, и т.д.).
[0132] Кроме того, кодирование или декодирование выполняется на основе GOS, которая включает в себя, по меньшей мере, одно SPC.
[0133] Устройство кодирования и устройство декодирования прогнозируют P-SPC или B-SPC в текущей GOS посредством ссылки на SPC в обработанной GOS.
[0134] Альтернативно, устройство кодирования и устройство декодирования прогнозируют P-SPC или B-SPC в текущей GOS, с использованием обработанных SPC в текущей GOS, без ссылки на другую GOS.
[0135] Кроме того, устройство кодирования и устройство декодирования передают или принимают кодированный поток на основе мира, который включает в себя, по меньшей мере, одну GOS.
[0136] Кроме того, GOS имеет многослойную структуру в одном направлении, по меньшей мере, в мире, и устройство кодирования и устройство декодирования начинают кодирование или декодирование с нижнего слоя. Например, случайная доступная GOS принадлежит крайнему нижнему слою. На GOS, которая принадлежит идентичному слою или нижнему слою, ссылаются в GOS, которая принадлежит верхнему слою. Другими словами, GOS пространственно разделяется в предварительно определенном направлении заранее, чтобы иметь множество слоев, включающих в себя, по меньшей мере, одно SPC. Устройство кодирования и устройство декодирования кодируют или декодируют каждое SPC посредством ссылки на SPC, включенное в слой, идентичный слою каждого SPC, или на SPC, включенное в слой ниже слоя каждого SPC.
[0137] Кроме того, устройство кодирования и устройство декодирования последовательно кодируют или декодируют GOS на основе мира, который включает в себя такие GOS. Таким образом, устройство кодирования и устройство декодирования записывают или считывают информацию, указывающую порядок (направление) кодирования или декодирования, в качестве метаданных. Другими словами, кодированные данные включают в себя информацию, указывающую порядок кодирования множества GOS.
[0138] Устройство кодирования и устройство декодирования также кодируют или декодируют взаимно различные два или более SPC или GOS параллельно.
[0139] Кроме того, устройство кодирования и устройство декодирования кодируют или декодируют пространственную информацию (координаты, размер и т.д.) относительно SPC или GOS.
[0140] Устройство кодирования и устройство декодирования кодируют или декодируют SPC или GOS, включенные в идентифицированное пространство, которое идентифицируется на основе внешней информации относительно собственного местоположения или/и размера области, такой как GPS-информация, информация маршрута или увеличение.
[0141] Устройство кодирования или устройство декодирования отдает более низкий приоритет пространству, удаленному от собственного местоположения, чем приоритет близлежащего пространства, чтобы выполнять кодирование или декодирование.
[0142] Устройство кодирования задает направление в одном из направлений в мире, в соответствии с увеличением или надлежащим использованием, чтобы кодировать GOS, имеющую многослойную структуру в таком направлении. Кроме того, устройство декодирования декодирует GOS, имеющую многослойную структуру в одном из направлений в мире, которое задано в соответствии с увеличением или надлежащим использованием, предпочтительно с нижнего слоя.
[0143] Устройство кодирования изменяет точность извлечения ключевых точек, точность распознавания объектов или размер пространственных областей и т.д., включенных в SPC, в зависимости от того, представляет объект собой внутренний объект или наружный объект. Следует отметить, что устройство кодирования и устройство декодирования кодируют или декодируют внутреннюю GOS и наружную GOS, имеющие близкие координаты, таким способом, что эти GOS приближаются друг к другу в мире, и ассоциируют их идентификаторы между собой для кодирования и декодирования.
[0144] Вариант 2 осуществления
При использовании кодированных данных облака точек в фактическом устройстве или услуге, желательно, если необходимая информация передается/принимается в соответствии с надлежащим использованием, чтобы уменьшать полосу пропускания сети. Тем не менее, отсутствует и такая функциональность в структуре кодирования трехмерных данных, и способ кодирования для нее.
[0145] Настоящий вариант осуществления описывает способ кодирования трехмерных данных и устройство кодирования трехмерных данных для предоставления функциональности передачи/приема только необходимой информации в кодированных данных облака трехмерных точек в соответствии с надлежащим использованием, а также способ декодирования трехмерных данных и устройство декодирования трехмерных данных для декодирования таких кодированных данных.
[0146] Воксел (VXL) с признаком, большим или равным данного количества, задается как воксел признаков (FVXL), и мир (WLD), состоящий из FVXL, задается как разреженный мир (SWLD). Фиг. 11 является схемой, показывающей примерные структуры разреженного мира и мира. SWLD включает в себя: FGOS, причем каждая из них представляет собой GOS, состоящую из FVXL; FSPC, причем каждое из них представляет собой SPC, состоящее из FVXL; и FVLM, причем каждый из них представляет собой VLM, состоящий из FVXL. Структура данных и структура прогнозирования FGOS, FSPC и FVLM могут быть идентичными структуре данных и структуре прогнозирования GOS, SPC и VLM.
[0147] Признак представляет информацию трехмерной позиции относительно VXL или информацию диапазона видимого света относительно позиции VXL. Большое число признаков обнаруживается, в частности, под углом, на краю и т.д. трехмерного объекта. Более конкретно, такой признак представляет собой трехмерный признак или признак диапазона видимого света, как описано ниже, но может представлять собой любой признак, который представляет информацию позиции, информацию яркости или цветовую информацию и т.д. относительно VXL.
[0148] В качестве трехмерных признаков используются признаки подписи гистограмм ориентаций (SHOT), признаки гистограмм точечных признаков (PFH) или признаки точечных пар (PPF).
[0149] SHOT-признаки получаются посредством разделения периферии VXL и вычисления внутреннего произведения опорной точки и нормального вектора каждой разделенной области, чтобы представлять результат вычисления в качестве гистограммы. SHOT-признаки характеризуются посредством большого числа размерностей и высокоуровневого представления признаков.
[0150] PFH-признаки получаются посредством выбора большого числа двух точечных пар около VXL и вычисления нормального вектора и т.д. из каждых двух точечных пар, чтобы представлять результат вычисления в качестве гистограммы. PFH-признаки представляют собой признаки гистограмм и в силу этого характеризуются посредством устойчивости к в известной степени искажения, а также посредством высокоуровневого представления признаков.
[0151] PPF-признаки получаются посредством использования нормального вектора и т.д. для каждых двух точек VXL. PPF-признаки, для которых используются все VXL, имеют устойчивость к окклюзии.
[0152] В качестве признаков диапазона видимого света, используются масштабно-инвариантное преобразование признаков (SIFT), ускоренные надежные признаки (SURF) или гистограмма ориентированных градиентов (HOG) и т.д., которые используют информацию относительно изображения, такую как информация градиента яркости.
[0153] SWLD формируется посредством вычисления вышеописанных признаков соответствующих VXL в WLD для того, чтобы извлекать FVXL. Здесь, SWLD может обновляться каждый раз, когда обновляется WLD, или может регулярно обновляться после истечения определенного периода времени, независимо от времени, когда обновляется WLD.
[0154] SWLD может формироваться для каждого типа признаков. Например, различные SWLD могут формироваться для соответствующих типов признаков, такие как SWLD1 на основе SHOT-признаков и SWLD2 на основе признаков SIFT, так что SWLD избирательно используются в соответствии с надлежащим использованием. Кроме того, вычисленный признак каждого FVXL может храниться в каждом FVXL в качестве информации признаков.
[0155] Далее описывается использование разреженного мира (SWLD). SWLD включает в себя только вокселы признаков (FVXL), и в силу этого его размер данных меньше, в общем, размера WLD, который включает в себя все VXL.
[0156] В варианте применения, который использует признаки для определенной цели, использование информации относительно SWLD вместо WLD уменьшает время, требуемое для того, чтобы считывать данные с жесткого диска, а также полосу пропускания и время, требуемое для передачи данных по сети. Например, WLD и SWLD хранятся на сервере в качестве картографической информации таким образом, что картографическая информация, которая должна отправляться, выбирается между WLD и SWLD в соответствии с запросом от клиента. Это уменьшает полосу пропускания сети и время, требуемое для передачи данных. Ниже поясняются более конкретные примеры.
[0157] Фиг. 12 и фиг. 13 являются схемами, показывающими примеры использования SWLD и WLD. Как показывает фиг. 12, когда клиент 1, который представляет собой установленное в транспортном средстве устройство, требует картографическую информацию, чтобы использовать ее для определения собственного местоположения, клиент 1 отправляет на сервер запрос на получение картографических данных для оценки собственного местоположения (S301). Сервер отправляет в клиент 1 SWLD в ответ на запрос на получение (S302). Клиент 1 использует принимаемый SWLD для того, чтобы определять собственное местоположение (S303). Таким образом, клиент 1 получает VXL-информацию относительно периферии клиента 1 через различные средства, включающие в себя датчик расстояния, такой как, дальномер, а также стереокамеру и комбинацию множества монокулярных камер. Клиент 1 затем оценивает информацию собственного местоположения из полученной VXL-информации и SWLD. Здесь, информация собственного местоположения включает в себя информацию трехмерной позиции, ориентацию и т.д. клиента 1.
[0158] Как показывает фиг. 13, когда клиент 2, который представляет собой установленное в транспортном средстве устройство, требует картографическую информацию, чтобы использовать ее для рендеринга карты, такой как трехмерная карта, клиент 2 отправляет на сервер запрос на получение картографических данных для рендеринга карт (S311). Сервер отправляет в клиент 2 WLD в ответ на запрос на получение (S312). Клиент 2 использует принимаемый WLD, чтобы подготавливать посредством рендеринга карту (S313). Таким образом, клиент 2 использует, например, изображение, которое клиент 2 захватывает посредством камеры для съемки в диапазоне видимого света и т.д., и WLD, полученный из сервера, чтобы создавать изображение для рендеринга, и подготавливает посредством рендеринга такое созданное изображение на экране автомобильной навигационной системы и т.д.
[0159] Как описано выше, сервер отправляет в клиент SWLD, когда признаки соответствующих VXL главным образом требуются, к примеру, в случае оценки собственного местоположения, и отправляет в клиент WLD, когда подробная VXL-информация требуется, к примеру, в случае рендеринга карт. Это предоставляет возможность эффективной отправки/приема картографических данных.
[0160] Следует отметить, что клиент может проводить самооценку в отношении того, что из SWLD и WLD необходимо, и запрашивать сервер на предмет того, чтобы отправлять SWLD или WLD. Кроме того, сервер может проводить оценку того, что из SWLD и WLD следует отправлять, в соответствии с состоянием клиента или сети.
[0161] Далее описывается способ переключения отправки/приема между разреженным миром (SWLD) и миром (WLD).
[0162] То, следует принимать WLD или SWLD, может переключаться в соответствии с полосой пропускания сети. Фиг. 14 является схемой, показывающей примерную работу в таком случае. Например, когда используется низкоскоростная сеть, что ограничивает применимую полосу пропускания сети, к примеру, в окружении согласно стандарту долгосрочного развития (LTE), клиент осуществляет доступ к серверу по низкоскоростной сети (S321) и получает SWLD из сервера в качестве картографической информации (S322). Между тем, когда используется высокоскоростная сеть, которая имеет адекватно широкую полосу пропускания сети, к примеру, в Wi-Fi-окружении, клиент осуществляет доступ к серверу по высокоскоростной сети (S323) и получает WLD из сервера (S324). Это позволяет клиенту получать соответствующую картографическую информацию в соответствии с полосой пропускания сети, которую использует такой клиент.
[0163] Более конкретно, клиент принимает SWLD по LTE-сети на улице и получает WLD по Wi-Fi-сети в закрытом помещении, к примеру, в инфраструктурном объекте. Это позволяет клиенту получать более подробную картографическую информацию относительно окружения в помещениях.
[0164] Как описано выше, клиент может запрашивать WLD или SWLD в соответствии с полосой пропускания сети, которую использует такой клиент. Альтернативно, клиент может отправлять на сервер информацию, указывающую полосу пропускания сети, которую использует такой клиент, и сервер может отправлять в клиент данные (WLD или SWLD), подходящие для такого клиента, в соответствии с информацией. Альтернативно, сервер может идентифицировать полосу пропускания сети, которую использует клиент, и отправлять в клиент данные (WLD или SWLD), подходящие для такого клиента.
[0165] Кроме того, то, следует принимать WLD или SWLD, может переключаться в соответствии со скоростью движения. Фиг. 15 является схемой, показывающей примерную работу в таком случае. Например, при движении на высокой скорости (S331), клиент принимает SWLD из сервера (S332). Между тем, при движении на низкой скорости (S333), клиент принимает WLD из сервера (S334). Это позволяет клиенту получать картографическую информацию, подходящую для скорости, при уменьшении полосы пропускания сети. Более конкретно, при движении по скоростной автомагистрали, клиент принимает SWLD с небольшим объемом данных, что обеспечивает обновление приблизительной картографической информации с соответствующей скоростью. Между тем, при движении по общей дороге, клиент принимает WLD, который обеспечивает получение более подробной картографической информации.
[0166] Как описано выше, клиент может запрашивать сервер на предмет WLD или SWLD в соответствии со скоростью движения такого клиента. Альтернативно, клиент может отправлять на сервер информацию, указывающую скорость движения такого клиента, и сервер может отправлять в клиент данные (WLD или SWLD), подходящие для такого клиента, в соответствии с информацией. Альтернативно, сервер может идентифицировать скорость движения клиента, чтобы отправлять данные (WLD или SWLD), подходящие для такого клиента.
[0167] Кроме того, клиент может получать, из сервера, SWLD сначала, из которого клиент может получать WLD важной области. Например, при получении картографической информации, клиент сначала получает SWLD для приблизительной картографической информации, из которой клиент сужается до области, в которой такие признаки, как здания, светофоры или люди, появляются на высокой частоте, так что клиент может позднее получать WLD такой суженной области. Это позволяет клиенту получать подробную информацию относительно необходимой области, при уменьшении объема данных, принимаемых из сервера.
[0168] Сервер также может создавать из WLD различные SWLD для соответствующих объектов, и клиент может принимать SWLD в соответствии с надлежащим использованием. Это уменьшает полосу пропускания сети. Например, сервер распознает людей или автомобили в WLD заранее и создает SWLD людей и SWLD автомобилей. Клиент, при желании получать информацию относительно людей около клиента, принимает SWLD людей и, при желании получать информацию относительно автомобилей, принимает SWLD автомобилей. Такие типы SWLD могут отличаться посредством информации (флага или типа и т.д.), добавляемой в заголовок, и т.д.
[0169] Далее описываются структура и последовательность операций устройства кодирования трехмерных данных (например, сервера) согласно настоящему варианту осуществления. Фиг. 16 является блок-схемой устройства 400 кодирования трехмерных данных согласно настоящему варианту осуществления. Фиг. 17 является блок-схемой последовательности операций способа для процессов кодирования трехмерных данных, выполняемых посредством устройства 400 кодирования трехмерных данных.
[0170] Устройство 400 кодирования трехмерных данных, показанное на фиг. 16, кодирует входные трехмерные данные 411, за счет этого формируя кодированные трехмерные данные 413 и кодированные трехмерные данные 414, каждые из которых представляют собой кодированный поток. Здесь, кодированные трехмерные данные 413 представляют собой кодированные трехмерные данные, соответствующие WLD, и кодированные трехмерные данные 414 представляют собой кодированные трехмерные данные, соответствующие SWLD. Такое устройство 400 кодирования трехмерных данных включает в себя модуль 401 получения, модуль 402 определения областей кодирования, SWLD-модуль 403 извлечения, WLD-кодер 404 и SWLD-кодер 405.
[0171] Во-первых, как показывает фиг. 17, модуль 401 получения получает входные трехмерные данные 411, которые представляют собой данные точечных групп в трехмерном пространстве (S401).
[0172] Затем, модуль 402 определения областей кодирования определяет текущую пространственную область для кодирования на основе пространственной области, в которой данные облаков точек присутствуют (S402).
[0173] Затем, SWLD-модуль 403 извлечения задает текущую пространственную область в качестве WLD и вычисляет признак из каждого VXL, включенного в WLD. Затем SWLD-модуль 403 извлечения извлекает VXL, имеющие количество признаков, большее или равное предварительно определенному пороговому значению, задает извлеченные VXL в качестве FVXL и добавляет такие FVXL в SWLD, за счет этого формируя извлеченные трехмерные данные 412 (S403). Другими словами, извлеченные трехмерные данные 412, имеющие количество признаков, большее или равное пороговому значению, извлекаются из входных трехмерных данных 411.
[0174] Затем, WLD-кодер 404 кодирует входные трехмерные данные 411, соответствующие WLD, за счет этого формируя кодированные трехмерные данные 413, соответствующие WLD (S404). Таким образом, WLD-кодер 404 добавляет в заголовок кодированных трехмерных данных 413 информацию, которая отличает то, что такие кодированные трехмерные данные 413 представляют собой поток, включающий в себя WLD.
[0175] SWLD-кодер 405 кодирует извлеченные трехмерные данные 412, соответствующие SWLD, за счет этого формируя кодированные трехмерные данные 414, соответствующие SWLD (S405). Таким образом, SWLD-кодер 405 добавляет в заголовок кодированных трехмерных данных 414 информацию, которая отличает то, что такие кодированные трехмерные данные 414 представляют собой поток, включающий в себя SWLD.
[0176] Следует отметить, что процесс формирования кодированных трехмерных данных 413 и процесс формирования кодированных трехмерных данных 414 могут выполняться в обратном порядке. Также следует отметить, что часть или все эти процессы могут выполняться параллельно.
[0177] Параметр "world_type" задается, например, в качестве информации, добавляемой в каждый заголовок кодированных трехмерных данных 413 и кодированных трехмерных данных 414; world_type=0 указывает то, что поток включает в себя WLD, и world_type=1 указывает то, что поток включает в себя SWLD. Увеличенное число значений может дополнительно назначаться, чтобы задавать большее число типов, например, world_type=2. Кроме того, одни из кодированных трехмерных данных 413 и кодированных трехмерных данных 414 могут включать в себя указанный флаг. Например, кодированным трехмерным данным 414 может назначаться флаг, указывающий то, что такой поток включает в себя SWLD. В таком случае, устройство декодирования может отличать то, представляет такой поток собой поток, включающий в себя WLD, или поток, включающий в себя SWLD, в соответствии с присутствием/отсутствием флага.
[0178] Кроме того, способ кодирования, используемый посредством WLD-кодера 404 для того, чтобы кодировать WLD, может отличаться от способа кодирования, используемого посредством SWLD-кодера 405 для того, чтобы кодировать SWLD.
[0179] Например, данные SWLD прореживаются и в силу этого могут иметь более низкую корреляцию с данными окружения, чем корреляция WLD. По этой причине, из внутреннего прогнозирования и взаимного прогнозирования, взаимное прогнозирование может более предпочтительно выполняться в способе кодирования, используемом для SWLD, чем в способе кодирования, используемом для WLD.
[0180] Кроме того, способ кодирования, используемый для SWLD, и способ кодирования, используемый для WLD, могут представлять трехмерные позиции по-разному. Например, трехмерные координаты могут использоваться для того, чтобы представлять трехмерные позиции FVXL в SWLD, и дерево октантов, описанное ниже, может использоваться для того, чтобы представлять трехмерные позиции в WLD, и наоборот.
[0181] Кроме того, SWLD-кодер 405 выполняет кодирование таким способом, что кодированные трехмерные данные 414 SWLD имеют меньший размер данных, чем размер данных для кодированных трехмерных данных 413 WLD. SWLD может иметь более низкую корреляцию между данными, например, чем корреляция для WLD, как описано выше. Это может приводить к сниженной эффективности кодирования и в силу этого к кодированным трехмерным данным 414, имеющим больший размер данных, чем размер данных для кодированных трехмерных данных 413 WLD. Когда размер данных для результирующих кодированных трехмерных данных 414 превышает размер данных для кодированных трехмерных данных 413 WLD, SWLD-кодер 405 выполняет кодирование снова, чтобы повторно формировать кодированные трехмерные данные 414, имеющие уменьшенный размер данных.
[0182] Например, SWLD-модуль 403 извлечения повторно формирует извлеченные трехмерные данные 412, имеющие сокращенное число ключевых точек, которые должны извлекаться, и SWLD-кодер 405 кодирует такие извлеченные трехмерные данные 412. Альтернативно, SWLD-кодер 405 может выполнять более приблизительное квантование. Более приблизительное квантование достигается, например, посредством округления данных на самом нижнем уровне в структуре в виде дерева октантов, описанной ниже.
[0183] При провале попытки снижать размер данных для кодированных трехмерных данных 414 SWLD до меньше размера данных для кодированных трехмерных данных 413 WLD, SWLD-кодер 405 может не формировать кодированные трехмерные данные 414 SWLD. Альтернативно, кодированные трехмерные данные 413 WLD могут копироваться в качестве кодированных трехмерных данных 414 SWLD. Другими словами, кодированные трехмерные данные 413 WLD могут использоваться, как есть в качестве кодированных трехмерных данных 414 SWLD.
[0184] Далее описываются структура и последовательность операций устройства декодирования трехмерных данных (например, клиента) согласно настоящему варианту осуществления. Фиг. 18 является блок-схемой устройства 500 декодирования трехмерных данных согласно настоящему варианту осуществления. Фиг. 19 является блок-схемой последовательности операций способа для процессов декодирования трехмерных данных, выполняемых посредством устройства 500 декодирования трехмерных данных.
[0185] Устройство 500 декодирования трехмерных данных, показанное на фиг. 18, декодирует кодированные трехмерные данные 511, за счет этого формируя декодированные трехмерные данные 512 или декодированные трехмерные данные 513. Кодированные трехмерные данные 511 здесь, например, представляют собой кодированные трехмерные данные 413 или кодированные трехмерные данные 414, сформированные посредством устройства 400 кодирования трехмерных данных.
[0186] Такое устройство 500 декодирования трехмерных данных включает в себя модуль 501 получения, анализатор 502 заголовков, WLD-декодер 503 и SWLD-декодер 504.
[0187] Во-первых, как показывает фиг. 19, модуль 501 получения получает кодированные трехмерные данные 511 (S501). Затем, анализатор 502 заголовков анализирует заголовок кодированных трехмерных данных 511, чтобы идентифицировать то, представляют кодированные трехмерные данные 511 собой поток, включающий в себя WLD, или поток, включающий в себя SWLD (S502). Например, на вышеописанный параметр world_type ссылаются при выполнении такой идентификации.
[0188] Когда кодированные трехмерные данные 511 представляют собой поток, включающий в себя WLD ("Да" на S503), WLD-декодер 503 декодирует кодированные трехмерные данные 511, за счет этого формируя декодированные трехмерные данные 512 WLD (S504). Между тем, когда кодированные трехмерные данные 511 представляют собой поток, включающий в себя SWLD ("Нет" на S503), SWLD-декодер 504 декодирует кодированные трехмерные данные 511, за счет этого формируя декодированные трехмерные данные 513 SWLD (S505).
[0189] Кроме того, как и в случае устройства кодирования, способ декодирования, используемый посредством WLD-декодера 503 для того, чтобы декодировать WLD, может отличаться от способа декодирования, используемого посредством SWLD-декодера 504 для того, чтобы декодировать SWLD. Например, из внутреннего прогнозирования и взаимного прогнозирования, взаимное прогнозирование может более предпочтительно выполняться в способе декодирования, используемом для SWLD, чем в способе декодирования, используемом для WLD.
[0190] Кроме того, способ декодирования, используемый для SWLD, и способ декодирования, используемый для WLD, могут представлять трехмерные позиции по-разному. Например, трехмерные координаты могут использоваться для того, чтобы представлять трехмерные позиции FVXL в SWLD, и дерево октантов, описанное ниже, может использоваться для того, чтобы представлять трехмерные позиции в WLD, и наоборот.
[0191] Далее описывается представление в виде дерева октантов, которое представляет собой способ представления трехмерных позиций. VXL-данные, включенные в трехмерные данные, преобразуются в структуру в виде дерева октантов перед кодированием. Фиг. 20 является схемой, показывающей примерные VXL в WLD. Фиг. 21 является схемой, показывающей структуру в виде дерева октантов WLD, показанного на фиг. 20. Пример, показанный на фиг. 20, иллюстрирует три VXL 1-3, которые включают в себя точечные группы (далее называются "эффективными VXL"). Как показывает фиг. 21, структура в виде дерева октантов задается из узлов и листьев. Каждый узел имеет максимум восемь узлов или листьев. Каждый лист имеет VXL-информацию. Здесь, из листьев, показанных на фиг. 21, лист 1, лист 2 и лист 3 представляют VXL1, VXL2 и VXL3, показанные на фиг. 20, соответственно.
[0192] Более конкретно, каждый узел и каждый лист соответствуют трехмерной позиции. Узел 1 соответствует всему блоку, показанному на фиг. 20. Блок, который соответствует узлу 1, разделяется на восемь блоков. Из этих восьми блоков, блоки, включающие в себя эффективные VXL, задаются в качестве узлов, в то время как другие блоки задаются в качестве листьев. Каждый блок, который соответствует узлу, дополнительно разделяется на восемь узлов или листьев. Эти процессы повторяются число раз, которое равно числу уровней в структуре в виде дерева октантов. Все блоки на самом нижнем уровне задаются в качестве листьев.
[0193] Фиг. 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.
[0194] Далее описываются варьирования настоящего варианта осуществления.
[0195] Для оценки собственного местоположения, например, клиент, представляющий собой установленное в транспортном средстве устройство и т.д., может принимать SWLD из сервера, чтобы использовать такой SWLD для того, чтобы оценивать собственное местоположение. Между тем, для обнаружения помех, клиент может обнаруживать помехи посредством использования трехмерной информации относительно периферии, полученной посредством такого клиента через различные средства, включающие в себя датчик расстояния, такой как дальномер, а также стереокамеру и комбинацию множества монокулярных камер.
[0196] В общем, SWLD с меньшей вероятностью должен включать VXL-данные относительно плоской области. В связи с этим, сервер может хранить мир подвыборок (subWLD), полученный посредством субдискретизации WLD для обнаружения статических помех, и отправлять в клиент SWLD и subWLD. Это позволяет клиенту выполнять оценку собственного местоположения и обнаружение помех на стороне клиента, при уменьшении полосы пропускания сети.
[0197] Когда клиент выполняет рендеринг трехмерных картографических данных на высокой скорости, картографическая информация, имеющая ячеистую структуру, является более полезной в некоторых случаях. В связи с этим, сервер может формировать ячеистую сеть из WLD, с тем чтобы хранить его заранее в качестве ячеистого мира (MWLD). Например, при желании выполнять приблизительный трехмерный рендеринг, клиент принимает MWLD, а при желании выполнять детализированный трехмерный рендеринг, клиент принимает WLD. Это уменьшает полосу пропускания сети.
[0198] В вышеприведенном описании, сервер задает, в качестве FVXL, VXL, имеющие количество признаков, большее или равное пороговому значению, но сервер может вычислять FVXL посредством другого способа. Например, сервер может проводить оценку того, что VXL, VLM, SPC или GOS, которая составляет светофор или перекресток и т.д., необходимы для оценки собственного местоположения, помощи при вождении или беспилотного вождения и т.д. и включает такую VXL, VLM, SPC или GOS в SWLD в качестве FVXL, FVLM, FSPC или FGOS. Такое проведение оценки может быть осуществляться вручную. Кроме того, FVXL и т.д., которые заданы на основе количества признаков, могут добавляться в FVXL и т.д., полученные посредством вышеописанного способа. Другими словами, SWLD-модуль 403 извлечения дополнительно может извлекать, из входных трехмерных данных 411, данные, соответствующие объекту, имеющему предварительно определенный атрибут, в качестве извлеченных трехмерных данных 412.
[0199] Кроме того, то, что VXL, VLM, SPC или GOS необходимы для такого намеченного использования, может помечаться отдельно от признаков. Сервер может отдельно хранить, в качестве верхнего слоя SWLD (например, мира полос движения), FVXL светофора или перекрестка и т.д., необходимого для оценки собственного местоположения, помощи при вождении или беспилотного вождения и т.д.
[0200] Сервер также может добавлять атрибут в VXL в WLD на основе произвольного доступа или на основе предварительно определенной единицы. Атрибут, например, включает в себя информацию, указывающую то, необходимы или нет VXL для оценки собственного местоположения, либо информацию, указывающую то, являются или нет VXL важными в качестве информации трафика, такой как светофор или перекресток и т.д. Атрибут также может включать соответствие между VXL и признаками (перекресток или дорога и т.д.) в информацию полос движения (в файлы географических данных (GDF) и т.д.).
[0201] Способ, как описано ниже, может использоваться для того, чтобы обновлять WLD или SWLD.
[0202] Информация обновления, указывающая изменения и т.д. касательно человека, дорожных работ или древовидной линии (для грузовиков), выгружается на сервер в качестве точечных групп или метаданных. Сервер обновляет WLD на основе такой загруженной информации и затем обновляет SWLD посредством использования обновленного WLD.
[0203] Клиент, при обнаружении рассогласования между трехмерной информацией, которую такой клиент формирует во время оценки собственного местоположения, и трехмерной информацией, принимаемой из сервера, может отправлять на сервер трехмерную информацию, которую такой клиент формирует, вместе с уведомлением касательно обновления. В таком случае, сервер обновляет SWLD посредством использования WLD. Когда SWLD не должен обновляться, сервер проводит такую оценку, что непосредственно WLD является устаревшим.
[0204] В вышеприведенном описании, информация, которая отличает то, представляет кодированный поток собой кодированный поток WLD или SWLD, добавляется в качестве информации заголовка кодированного потока. Тем не менее, когда предусмотрено множество типов миров, таких как ячеистый мир и мир полос движения, информация, которая отличает эти типы миров, может добавляться в информацию заголовка. Кроме того, когда имеются множество SWLD с различными количествами признаков, информация, которая отличает соответствующие SWLD, может добавляться в информацию заголовка.
[0205] В вышеприведенном описании, SWLD состоит из FVXL, но SWLD может включать в себя VXL, для которых не проведена оценка в качестве FVXL. Например, SWLD может включать в себя смежный VXL, используемый для того, чтобы вычислять признак FVXL. Это позволяет клиенту вычислять признак FVXL при приеме SWLD, даже в случае, если информация признаков не добавляется в каждый FVXL SWLD. В таком случае, SWLD может включать в себя информацию, которая отличает то, представляет каждый VXL собой FVXL или VXL.
[0206] Как описано выше, устройство 400 кодирования трехмерных данных извлекает, из входных трехмерных данных 411 (первых трехмерных данных), извлеченные трехмерные данные 412 (вторые трехмерные данные), имеющие количество признаков, большее или равное пороговому значению, и кодирует извлеченные трехмерные данные 412, чтобы формировать кодированные трехмерные данные 414 (первые кодированные трехмерные данные).
[0207] Это устройство 400 кодирования трехмерных данных формирует кодированные трехмерные данные 414, которые получаются посредством кодирования данных, имеющих количество признаков, большее или равное пороговому значению. Это уменьшает объем данных по сравнению со случаем, в котором входные трехмерные данные 411 кодируются как есть. Устройство 400 кодирования трехмерных данных за счет этого допускает уменьшение объема данных, которые должны передаваться.
[0208] Устройство 400 кодирования трехмерных данных дополнительно кодирует входные трехмерные данные 411, чтобы формировать кодированные трехмерные данные 413 (вторые кодированные трехмерные данные).
[0209] Это устройство 400 кодирования трехмерных данных обеспечивает избирательную передачу кодированных трехмерных данных 413 и кодированных трехмерных данных 414, в соответствии, например, с надлежащим использованием и т.д.
[0210] Кроме того, извлеченные трехмерные данные 412 кодируются посредством первого способа кодирования, и входные трехмерные данные 411 кодируются посредством второго способа кодирования, отличающегося от первого способа кодирования.
[0211] Это устройство 400 кодирования трехмерных данных обеспечивает использование способа кодирования, подходящего для каждых из входных трехмерных данных 411 и извлеченных трехмерных данных 412.
[0212] Кроме того, из внутреннего прогнозирования и взаимного прогнозирования, взаимное прогнозирование более предпочтительно выполняется в первом способе кодирования, чем во втором способе кодирования.
[0213] Это устройство 400 кодирования трехмерных данных обеспечивает возможность более предпочтительного выполнения взаимного прогнозирования для извлеченных трехмерных данных 412, в которых смежные элементы данных с большой вероятностью имеют низкую корреляцию.
[0214] Кроме того, первый способ кодирования и второй способ кодирования представляют трехмерные позиции по-разному. Например, второй способ кодирования представляет трехмерные позиции посредством дерева октантов, и первый способ кодирования представляет трехмерные позиции посредством трехмерных координат.
[0215] Это устройство 400 кодирования трехмерных данных обеспечивает возможность использования более подходящего способа для того, чтобы представлять трехмерные позиции трехмерных данных с учетом разности числа включенных элементов данных (числа VXL или FVXL).
[0216] Кроме того, по меньшей мере, одни из кодированных трехмерных данных 413 и кодированных трехмерных данных 414 включают в себя идентификатор, указывающий то, представляют кодированные трехмерные данные собой кодированные трехмерные данные, полученные посредством кодирования входных трехмерных данных 411, или кодированные трехмерные данные, полученные посредством кодирования части входных трехмерных данных 411. Другими словами, такой идентификатор указывает то, представляют кодированные трехмерные данные собой кодированные трехмерные данные 413 WLD или кодированные трехмерные данные 414 SWLD.
[0217] Это обеспечивает возможность устройству декодирования легко проводить оценку в отношении того, представляют полученные кодированные трехмерные данные собой кодированные трехмерные данные 413 или кодированные трехмерные данные 414.
[0218] Кроме того, устройство 400 кодирования трехмерных данных кодирует извлеченные трехмерные данные 412 таким способом, что кодированные трехмерные данные 414 имеют меньший объем данных, чем объем данных для кодированных трехмерных данных 413.
[0219] Это устройство 400 кодирования трехмерных данных обеспечивает возможность кодированным трехмерным данным 414 иметь меньший объем данных, чем объем данных для кодированных трехмерных данных 413.
[0220] Кроме того, устройство 400 кодирования трехмерных данных дополнительно извлекает данные, соответствующие объекту, имеющему предварительно определенный атрибут, из входных трехмерных данных 411 в качестве извлеченных трехмерных данных 412. Объект, имеющий предварительно определенный атрибут, например, представляет собой объект, необходимый для оценки собственного местоположения, помощи при вождении или беспилотного вождения и т.д., либо более конкретно, светофор, перекресток и т.д.
[0221] Это устройство 400 кодирования трехмерных данных допускает формирование кодированных трехмерных данных 414, которые включают в себя данные, требуемые посредством устройства декодирования.
[0222] Кроме того, устройство 400 кодирования трехмерных данных (сервер) дополнительно отправляет, в клиент, одни из кодированных трехмерных данных 413 и кодированных трехмерных данных 414 в соответствии с состоянием клиента.
[0223] Это устройство 400 кодирования трехмерных данных допускает отправку соответствующих данных в соответствии с состоянием клиента.
[0224] Кроме того, состояние клиента включает в себя одно из состояния связи (например, полосы пропускания сети) клиента и скорости движения клиента.
[0225] Кроме того, устройство 400 кодирования трехмерных данных дополнительно отправляет, в клиент, одни из кодированных трехмерных данных 413 и кодированных трехмерных данных 414 в соответствии с запросом от клиента.
[0226] Это устройство 400 кодирования трехмерных данных допускает отправку соответствующих данных в соответствии с запросом от клиента.
[0227] Кроме того, устройство 500 декодирования трехмерных данных согласно настоящему варианту осуществления декодирует кодированные трехмерные данные 413 или кодированные трехмерные данные 414, сформированные посредством устройства 400 кодирования трехмерных данных, описанного выше.
[0228] Другими словами, устройство 500 декодирования трехмерных данных декодирует, посредством первого способа декодирования, кодированные трехмерные данные 414, полученные посредством кодирования извлеченных трехмерных данных 412, имеющих количество признаков, большее или равное пороговому значению, причем извлеченные трехмерные данные 412 извлекаются из входных трехмерных данных 411. Устройство 500 декодирования трехмерных данных также декодирует, посредством второго способа декодирования, кодированные трехмерные данные 413, полученные посредством кодирования входных трехмерных данных 411, причем второй способ декодирования отличается от первого способа декодирования.
[0229] Это устройство 500 декодирования трехмерных данных обеспечивает избирательный прием кодированных трехмерных данных 414, полученных посредством кодирования данных, имеющих количество признаков, большее или равное пороговому значению, и кодированных трехмерных данных 413, в соответствии, например, с надлежащим использованием и т.д. Устройство 500 декодирования трехмерных данных за счет этого допускает уменьшение объема данных, которые должны передаваться. Такое устройство 500 декодирования трехмерных данных дополнительно обеспечивает использование способа декодирования, подходящего для каждых из входных трехмерных данных 411 и извлеченных трехмерных данных 412.
[0230] Кроме того, из внутреннего прогнозирования и взаимного прогнозирования, взаимное прогнозирование более предпочтительно выполняется в первом способе декодирования, чем во втором способе декодирования.
[0231] Это устройство 500 декодирования трехмерных данных обеспечивает возможность более предпочтительного выполнения взаимного прогнозирования для извлеченных трехмерных данных, в которых смежные элементы данных с большой вероятностью имеют низкую корреляцию.
[0232] Кроме того, первый способ декодирования и второй способ декодирования представляют трехмерные позиции по-разному. Например, второй способ декодирования представляет трехмерные позиции посредством дерева октантов, и первый способ декодирования представляет трехмерные позиции посредством трехмерных координат.
[0233] Это устройство 500 декодирования трехмерных данных обеспечивает возможность использования более подходящего способа для того, чтобы представлять трехмерные позиции трехмерных данных с учетом разности числа включенных элементов данных (числа VXL или FVXL).
[0234] Кроме того, по меньшей мере, одни из кодированных трехмерных данных 413 и кодированных трехмерных данных 414 включают в себя идентификатор, указывающий то, представляют кодированные трехмерные данные собой кодированные трехмерные данные, полученные посредством кодирования входных трехмерных данных 411, или кодированные трехмерные данные, полученные посредством кодирования части входных трехмерных данных 411. Устройство 500 декодирования трехмерных данных ссылается на такой идентификатор при идентификации между кодированными трехмерными данными 413 и кодированными трехмерными данными 414.
[0235] Это устройство 500 декодирования трехмерных данных допускает простое проведение оценки в отношении того, представляют полученные кодированные трехмерные данные собой кодированные трехмерные данные 413 или кодированные трехмерные данные 414.
[0236] Устройство 500 декодирования трехмерных данных дополнительно уведомляет сервер в отношении состояния клиента (устройства 500 декодирования трехмерных данных). Устройство 500 декодирования трехмерных данных принимает одни из кодированных трехмерных данных 413 и кодированных трехмерных данных 414 из сервера, в соответствии с состоянием клиента.
[0237] Это устройство 500 декодирования трехмерных данных допускает прием соответствующих данных в соответствии с состоянием клиента.
[0238] Кроме того, состояние клиента включает в себя одно из состояния связи (например, полосы пропускания сети) клиента и скорости движения клиента.
[0239] Устройство 500 декодирования трехмерных данных дополнительно выполняет запрос сервера на предмет одних из кодированных трехмерных данных 413 и кодированных трехмерных данных 414 и принимает одни из кодированных трехмерных данных 413 и кодированных трехмерных данных 414 из сервера, в соответствии с запросом.
[0240] Это устройство 500 декодирования трехмерных данных допускает прием соответствующих данных в соответствии с надлежащим использованием.
[0241] Вариант 3 осуществления
Настоящий вариант осуществления описывает способ передачи/приема трехмерных данных между транспортными средствами. Например, трехмерные данные передаются/принимаются между рассматриваемым транспортным средством и близлежащим транспортным средством.
[0242] Фиг. 24 является блок-схемой устройства 620 создания трехмерных данных согласно настоящему варианту осуществления. Такое устройство 620 создания трехмерных данных, которое включается, например, в рассматриваемое транспортное средство, объединяет первые трехмерные данные 632, созданные посредством устройства 620 создания трехмерных данных, с принимаемыми вторыми трехмерными данными 635, за счет этого создавая третьи трехмерные данные 636, имеющие более высокую плотность.
[0243] Такое устройство 620 создания трехмерных данных включает в себя модуль 621 создания трехмерных данных, модуль 622 определения диапазонов запросов, модуль 623 поиска, приемное устройство 624, декодер 625 и модуль 626 объединения.
[0244] Во-первых, модуль 621 создания трехмерных данных создает первые трехмерные данные 632 посредством использования информации 631 датчиков, обнаруженной посредством датчика, включенного в рассматриваемое транспортное средство. Затем, модуль 622 определения диапазонов запросов определяет диапазон запросов, который представляет собой диапазон трехмерного пространства, данных по которому недостаточно в созданных первых трехмерных данных 632.
[0245] Затем, модуль 623 поиска выполняет поиск близлежащего транспортного средства, имеющего трехмерные данные диапазона запросов, и отправляет информацию 633 диапазона запросов, указывающую диапазон запросов, в найденное близлежащее транспортное средство 601 (S623). Затем, приемное устройство 624 принимает кодированные трехмерные данные 634, которые представляют собой кодированный поток диапазона запросов, из близлежащего транспортного средства 601 (S624). Следует отметить, что модуль 623 поиска может без различия отправлять запросы во все транспортные средства, включенные в указанный диапазон, чтобы принимать кодированные трехмерные данные 634 из транспортного средства, которое отвечает на запрос. Модуль 623 поиска может отправлять запрос не только в транспортные средства, но также и в объект, такой как светофор и дорожный знак, и принимать кодированные трехмерные данные 634 из объекта.
[0246] Затем, декодер 625 декодирует принимаемые кодированные трехмерные данные 634, за счет этого получая вторые трехмерные данные 635. Затем, модуль 626 объединения объединяет первые трехмерные данные 632 со вторыми трехмерными данными 635, за счет этого создавая трехмерные данные 636, имеющие более высокую плотность.
[0247] Далее описываются структура и операции устройства 640 передачи трехмерных данных согласно настоящему варианту осуществления. Фиг. 25 является блок-схемой устройства 640 передачи трехмерных данных.
[0248] Устройство 640 передачи трехмерных данных включается, например, в вышеописанное близлежащее транспортное средство. Устройство 640 передачи трехмерных данных обрабатывает пятые трехмерные данные 652, созданные посредством близлежащего транспортного средства, в шестые трехмерные данные 654, запрашиваемые посредством рассматриваемого транспортного средства, кодирует шестые трехмерные данные 654, чтобы формировать кодированные трехмерные данные 634, и отправляет кодированные трехмерные данные 634 в рассматриваемое транспортное средство.
[0249] Устройство 640 передачи трехмерных данных включает в себя модуль 641 создания трехмерных данных, приемное устройство 642, модуль 643 извлечения, кодер 644 и передающее устройство 645.
[0250] Во-первых, модуль 641 создания трехмерных данных создает пятые трехмерные данные 652 посредством использования информации 651 датчиков, обнаруженной посредством датчика, включенного в близлежащее транспортное средство. Затем, приемное устройство 642 принимает информацию 633 диапазона запросов из рассматриваемого транспортного средства.
[0251] Затем, модуль 643 извлечения извлекает из пятых трехмерных данных 652 трехмерные данные диапазона запросов, указываемого посредством информации 633 диапазона запросов, за счет этого обрабатывая пятые трехмерные данные 652 в шестые трехмерные данные 654. Затем, кодер 644 кодирует шестые трехмерные данные 654, чтобы формировать кодированные трехмерные данные 643, которые представляют собой кодированный поток. После этого передающее устройство 645 отправляет кодированные трехмерные данные 634 в рассматриваемое транспортное средство.
[0252] Следует отметить, что хотя здесь описывается примерный случай, в котором рассматриваемое транспортное средство включает в себя устройство 620 создания трехмерных данных, и близлежащее транспортное средство включает в себя устройство 640 передачи трехмерных данных, каждое из транспортных средств может включать в себя функциональность как устройства 620 создания трехмерных данных, так и устройства 640 передачи трехмерных данных.
[0253] Вариант 4 осуществления
Настоящий вариант осуществления описывает операции, выполняемые в анормальных случаях, когда оценка собственного местоположения выполняется на основе трехмерной карты.
[0254] Трехмерная карта предположительно должна находить свое широкое применение в беспилотном вождении транспортного средства и автономном перемещении и т.д. мобильного объекта, такого как робот и летающий объект (например, беспилотный аппарат). Примерное средство для обеспечения возможности такого автономного перемещения включает в себя способ, в котором мобильный объект движется в соответствии с трехмерной картой при оценке собственного местоположения на карте (оценке собственного местоположения).
[0255] Оценка собственного местоположения обеспечивается посредством сопоставления трехмерной карты с трехмерной информацией относительно окрестности рассматриваемого транспортного средства (в дальнейшем называемой "самообнаруженными трехмерными данными"), полученной посредством датчика, оснащенного в рассматриваемом транспортном средстве, такого как дальномер (например, лидар) и стереокамера, чтобы оценивать местоположение рассматриваемого транспортного средства на трехмерной карте.
[0256] Как и в случае HD-карты, предлагаемой компанией HERE Technologies, например, трехмерная карта может включать в себя не только облако трехмерных точек, но также и двумерные картографические данные, такие как информация относительно форм дорог и перекрестков, или информацию, которая изменяется в реальном времени, такую как информация относительно затора трафика и аварий. Трехмерная карта включает в себя множество слоев, к примеру, слои трехмерных данных, двумерных данных и метаданных, которые изменяются в реальном времени, из числа которых устройство может получать или ссылаться только на необходимые данные.
[0257] Данные облаков точек могут представлять собой SWLD, как описано выше, или могут включать в себя данные точечных групп, которые отличаются от ключевых точек. Передача/прием данных облаков точек, по существу, выполняется в одной или более единиц произвольного доступа.
[0258] Способ, описанный ниже, используется в качестве способа сопоставления трехмерной карты с самообнаруженными трехмерными данными. Например, устройство сравнивает формы точечных групп в облаках точек друг друга и определяет то, что части, имеющие высокую степень подобия между ключевыми точками, соответствуют идентичной позиции. Когда трехмерная карта формируется посредством SWLD, устройство также выполняет сопоставление посредством сравнения ключевых точек, которые формируют SWLD, с трехмерными ключевыми точками, извлеченными из самообнаруженных трехмерных данных.
[0259] Здесь, чтобы обеспечивать высокоточную оценку собственного местоположения, должны удовлетворяться следующие потребности: (A) трехмерная карта и самообнаруженные трехмерные данные уже получены; и (B) их точности удовлетворяют предварительно определенному требованию. Тем не менее, один из (A) и (B) не может удовлетворяться в анормальных случаях, таких как случаи, описанные ниже.
[0260] 1. Трехмерная карта является недоступной для получения по связи.
[0261] 2. Трехмерная карта не присутствует, или полученная трехмерная карта повреждена.
[0262] 3. Датчик рассматриваемого транспортного средства является проблемным, или точность сформированных самообнаруженных трехмерных данных является недостаточной вследствие плохой погоды.
[0263] Далее описываются операции для того, чтобы преодолевать такие анормальные случаи. Нижеприведенное описание иллюстрирует примерный случай транспортного средства, но способ, описанный ниже, является применимым к мобильным объектам в целом, которые допускают автономное перемещение, таким как робот и беспилотный аппарат.
[0264] Далее описывается структура устройства обработки трехмерной информации и его работа согласно настоящему варианту осуществления, допускающего преодоление анормальных случаев относительно трехмерной карты или самообнаруженных трехмерных данных. Фиг. 26 является блок-схемой примерной структуры устройства 700 обработки трехмерной информации согласно настоящему варианту осуществления.
[0265] Устройство 700 обработки трехмерной информации оснащается, например, в мобильном объекте, таком как автомобиль. Как показано на фиг. 26, устройство 700 обработки трехмерной информации включает в себя модуль 701 получения трехмерных карт, модуль 702 получения самообнаруженных данных, модуль 703 проведения оценки анормальных случаев, модуль 704 определения операций преодоления и функциональный контроллер 705.
[0266] Следует отметить, что устройство 700 обработки трехмерной информации может включать в себя непроиллюстрированный двумерный или одномерный датчик, который обнаруживает структурный объект или мобильный объект около рассматриваемого транспортного средства, такой как камера, допускающая получение двумерных изображений, и датчик для одномерных данных с использованием ультразвука или лазера. Устройство 700 обработки трехмерной информации также может включать в себя непроиллюстрированный модуль связи, который получает трехмерную карту по сети мобильной связи, к примеру, по 4G и 5G, либо через связь между транспортными средствами или связь между транспортным средством и дорожной инфраструктурой.
[0267] Модуль 701 получения трехмерных карт получает трехмерную карту 711 окрестности маршрута движения. Например, модуль 701 получения трехмерных карт получает трехмерную карту 711 по сети мобильной связи либо через связь между транспортными средствами или связь между транспортным средством и дорожной инфраструктурой.
[0268] Затем, модуль 702 получения самообнаруженных данных получает самообнаруженные трехмерные данные 712 на основе информации датчиков. Например, модуль 702 получения самообнаруженных данных формирует самообнаруженные трехмерные данные 712 на основе информации датчиков, полученной посредством датчика, оснащенного в рассматриваемом транспортном средстве.
[0269] Затем, модуль 703 проведения оценки анормальных случаев осуществляет предварительно определенную проверку, по меньшей мере, одного из полученной трехмерной карты 711 и самообнаруженных трехмерных данных 712, чтобы обнаруживать анормальный случай. Другими словами, модуль 703 проведения оценки анормальных случаев проводит оценку в отношении того, является или нет, по меньшей мере, одно из полученной трехмерной карты 711 и самообнаруженных трехмерных данных 712 анормальным.
[0270] Когда анормальный случай обнаруживается, модуль 704 определения операций преодоления определяет операцию преодоления, чтобы преодолевать такой анормальный случай. Затем, функциональный контроллер 705 управляет работой каждого из модулей обработки, необходимых для того, чтобы выполнять операцию преодоления.
[0271] Между тем, когда анормальный случай не обнаруживается, устройство 700 обработки трехмерной информации завершает процесс.
[0272] Кроме того, устройство 700 обработки трехмерной информации оценивает местоположение транспортного средства, оснащенного устройством 700 обработки трехмерной информации, с использованием трехмерной карты 711 и самообнаруженных трехмерных данных 712. Затем, устройство 700 обработки трехмерной информации выполняет автоматическую работу транспортного средства посредством использования оцененного местоположения транспортного средства.
[0273] Как описано выше, устройство 700 обработки трехмерной информации получает, через канал связи, картографические данные (трехмерную карту 711), которые включают в себя первую информацию трехмерной позиции. Первая информация трехмерной позиции включает в себя, например, множество единиц произвольных доступа, каждая из которых представляет собой сборку, по меньшей мере, одного подпространства и является отдельно декодируемой, причем, по меньшей мере, одно подпространство имеет информацию трехмерных координат и служит в качестве единицы, в которой каждая из множества единиц произвольного доступа кодируется. Первая информация трехмерной позиции, например, представляет собой данные (SWLD), полученные посредством кодирования ключевых точек, каждая из которых имеет количество трехмерных признаков, большее или равное предварительно определенному пороговому значению.
[0274] Устройство 700 обработки трехмерной информации также формирует вторую информацию трехмерной позиции (самообнаруженные трехмерные данные 712) из информации, обнаруженной посредством датчика. Устройство 700 обработки трехмерной информации затем проводит оценку в отношении того, является или нет одна из первой информации трехмерной позиции и второй информации трехмерной позиции анормальной, посредством выполнения, для одной из первой информации трехмерной позиции и второй информации трехмерной позиции, процесса проведения оценки того, присутствует или нет анормальность.
[0275] Устройство 700 обработки трехмерной информации определяет операцию преодоления, чтобы преодолевать анормальность, когда проводится оценка одной из первой информации трехмерной позиции и второй информации трехмерной позиции как анормальной. Устройство 700 обработки трехмерной информации затем выполняет управление, которое требуется для того, чтобы выполнять операцию преодоления.
[0276] Эта структура обеспечивает возможность устройству 700 обработки трехмерной информации обнаруживать анормальность относительно одной из первой информации трехмерной позиции и второй информации трехмерной позиции и выполнять операцию преодоления для этого.
[0277] Вариант 5 осуществления
Настоящий вариант осуществления описывает способ и т.д. передачи трехмерных данных в едущее сзади транспортное средство.
[0278] Фиг. 27 является блок-схемой примерной структуры устройства 810 создания трехмерных данных согласно настоящему варианту осуществления. Такое устройство 810 создания трехмерных данных оснащается, например, в транспортном средстве. Устройство 810 создания трехмерных данных передает и принимает трехмерные данные в/из внешней облачной системы мониторинга трафика, едущего впереди транспортного средства или едущего сзади транспортного средства и создает и сохраняет трехмерные данные.
[0279] Устройство 810 создания трехмерных данных включает в себя приемное устройство 811 данных, модуль 812 связи, контроллер 813 приема, преобразователь 814 форматов, множество датчиков 815, модуль 816 создания трехмерных данных, синтезатор 817 трехмерных данных, устройство 818 хранения трехмерных данных, модуль 819 связи, контроллер 820 передачи, преобразователь 821 форматов и передающее устройство 822 данных.
[0280] Приемное устройство 811 данных принимает трехмерные данные 831 из облачной системы мониторинга трафика или едущего впереди транспортного средства. Трехмерные данные 831 включают в себя, например, информацию относительно области, необнаруживаемой посредством датчиков 815 рассматриваемого транспортного средства, такую как облако точек, видео в диапазоне видимого света, информация глубины, информация позиций датчиков и информация скорости.
[0281] Модуль 812 связи обменивается данными с облачной системой мониторинга трафика или едущим впереди транспортным средством, чтобы передавать запрос на передачу данных и т.д. в облачную систему мониторинга трафика или едущее впереди транспортное средство.
[0282] Контроллер 813 приема обменивается информацией, такой как информация относительно поддерживаемых форматов, с партнером по связи через модуль 812 связи, чтобы устанавливать связь с партнером по связи.
[0283] Преобразователь 814 форматов применяет преобразование формата и т.д. к трехмерным данным 831, принимаемым посредством приемного устройства 811 данных, чтобы формировать трехмерные данные 832. Преобразователь 814 форматов также распаковывает или декодирует трехмерные данные 831, когда трехмерные данные 831 сжимаются или кодируются.
[0284] Множество датчиков 815 представляет собой группу датчиков, таких как камеры для съемки в диапазоне видимого света и камеры для съемки в инфракрасном диапазоне, которые получают информацию за пределами транспортного средства и формируют информацию 833 датчиков. Информация 833 датчиков, например, представляет собой трехмерные данные, такие как облако точек (данные точечных групп), когда датчики 815 представляют собой лазерные датчики, такие как лидары. Следует отметить, что один датчик может служить в качестве множества датчиков 815.
[0285] Модуль 816 создания трехмерных данных формирует трехмерные данные 834 из информации 833 датчиков. Трехмерные данные 834 включают в себя, например, информацию, такую как облако точек, видео в диапазоне видимого света, информация глубины, информация позиций датчиков и информация скорости.
[0286] Синтезатор 817 трехмерных данных синтезирует трехмерные данные 834, созданные на основе информации 833 датчиков рассматриваемого транспортного средства, с трехмерными данными 832, созданными посредством облачной системы мониторинга трафика или едущего впереди транспортного средства и т.д., за счет этого формируя трехмерные данные 835 пространства, которое включает в себя пространство перед едущим впереди транспортным средством, необнаруживаемое посредством датчиков 815 рассматриваемого транспортного средства.
[0287] Устройство 818 хранения трехмерных данных сохраняет сформированные трехмерные данные 835 и т.д.
[0288] Модуль 819 связи обменивается данными с облачной системой мониторинга трафика или едущим сзади транспортным средством, чтобы передавать запрос на передачу данных и т.д. в облачную систему мониторинга трафика или едущее сзади транспортное средство.
[0289] Контроллер 820 передачи обменивается информацией, такой как информация относительно поддерживаемых форматов, с партнером по связи через модуль 819 связи, чтобы устанавливать связь с партнером по связи. Контроллер 820 передачи также определяет область передачи, которая представляет собой пространство трехмерных данных, которые должны передаваться, на основе информации формирования трехмерных данных относительно трехмерных данных 832, сформированных посредством синтезатора 817 трехмерных данных, и запроса на передачу данных из партнера по связи.
[0290] Более конкретно, контроллер 820 передачи определяет область передачи, которая включает в себя пространство перед рассматриваемым транспортным средством, необнаруживаемое посредством датчика едущего сзади транспортного средства, в ответ на запрос на передачу данных из облачной системы мониторинга трафика или едущего сзади транспортного средства. Контроллер 820 передачи, например, проводит оценку в отношении того, является или нет пространство допускающим передачу, или того, включает или нет уже передаваемое пространство в себя обновление, на основе информации формирования трехмерных данных, чтобы определять область передачи. Например, контроллер 820 передачи определяет, в качестве области передачи, область, которая представляет собой: область, указываемую посредством запроса на передачу данных; и область, соответствующие трехмерные данные 835 которой присутствуют. Контроллер 820 передачи затем уведомляет преобразователь 821 форматов в отношении формата, поддерживаемого посредством партнера по связи, и области передачи.
[0291] Из трехмерных данных 835, сохраненных в устройстве 818 хранения трехмерных данных, преобразователь 821 форматов преобразует трехмерные данные 836 области передачи в формат, поддерживаемый посредством приемного конца, чтобы формировать трехмерные данные 837. Следует отметить, что преобразователь 821 форматов может сжимать или кодировать трехмерные данные 837, чтобы уменьшать объем данных.
[0292] Передающее устройство 822 данных передает трехмерные данные 837 в облачную систему мониторинга трафика или едущее сзади транспортное средство. Такие трехмерные данные 837 включают в себя, например, информацию относительно мертвой зоны, которая представляет собой область, скрытую из вида едущего сзади транспортного средства, такую как облако точек перед рассматриваемым транспортным средством, видео в диапазоне видимого света, информация глубины и информация позиций датчиков.
[0293] Следует отметить, что описан пример, в котором преобразователь 814 форматов и преобразователь 821 форматов выполняют преобразование формата и т.д., но преобразование формата может не выполняться.
[0294] При вышеприведенной структуре, устройство 810 создания трехмерных данных получает, из внешнего устройства, трехмерные данные 831 области, необнаруживаемой посредством датчиков 815 рассматриваемого транспортного средства, и синтезирует трехмерные данные 831 с трехмерными данными 834, которые основаны на информации 833 датчиков, обнаруженной посредством датчиков 815 рассматриваемого транспортного средства, за счет этого формируя трехмерные данные 835. Устройство 810 создания трехмерных данных за счет этого допускает формирование трехмерных данных диапазона, необнаруживаемого посредством датчиков 815 рассматриваемого транспортного средства.
[0295] Устройство 810 создания трехмерных данных также допускает передачу, в облачную систему мониторинга трафика или едущее сзади транспортное средство и т.д., трехмерных данных пространства, которое включает в себя пространство перед рассматриваемым транспортным средством, необнаруживаемое посредством датчика едущего сзади транспортного средства, в ответ на запрос на передачу данных из облачной системы мониторинга трафика или едущего сзади транспортного средства.
[0296] Вариант 6 осуществления
В варианте 5 осуществления, описывается пример, в котором клиентское устройство транспортного средства и т.п. передает трехмерные данные в другое транспортное средство или на сервер, к примеру, в облачную систему мониторинга трафика. В настоящем варианте осуществления, клиентское устройство передает информацию датчиков, полученную через датчик, на сервер или в клиентское устройство.
[0297] Сначала описывается структура системы согласно настоящему варианту осуществления. Фиг. 28 является схемой, показывающей структуру системы передачи/приема трехмерной карты и информации датчиков согласно настоящему варианту осуществления. Эта система включает в себя сервер 901 и клиентские устройства 902A и 902B. Следует отметить, что клиентские устройства 902A и 902B также называются "клиентским устройством 902", когда не проводится конкретное различение между ними.
[0298] Клиентское устройство 902, например, представляет собой установленное в транспортном средстве устройство, оснащенное в мобильном объекте, таком как транспортное средство. Сервер 901, например, представляет собой облачную систему мониторинга трафика и допускает обмен данными с множеством клиентских устройств 902.
[0299] Сервер 901 передает трехмерную карту, сформированную посредством облака точек, в клиентское устройство 902. Следует отметить, что структура трехмерной карты не ограничена облаком точек и также может представлять собой другую структуру, выражающую трехмерные данные, такую как ячеистая структура.
[0300] Клиентское устройство 902 передает информацию датчиков, полученную посредством клиентского устройства 902, на сервер 901. Информация датчиков включает в себя, например, по меньшей мере, одно из информации, полученной посредством лидара, изображения в диапазоне видимого света, инфракрасного изображения, изображения глубины, информации позиций датчиков или информации скорости датчиков.
[0301] Данные, которые должны передаваться и приниматься между сервером 901 и клиентским устройством 902, могут сжиматься, чтобы уменьшать объем данных, а также могут передаваться распакованными, чтобы поддерживать точность данных. При сжатии данных, можно использовать способ трехмерного сжатия в облаке точек, например, на основе структуры в виде дерева октантов. Можно использовать способ сжатия двумерных изображений в изображении в диапазоне видимого света, инфракрасном изображении и изображении глубины. Способ сжатия двумерных изображений, например, представляет собой MPEG-4 AVC или HEVC, стандартизированный посредством MPEG.
[0302] Сервер 901 передает трехмерную карту, управляемую посредством сервера 901, в клиентское устройство 902 в ответ на запрос на передачу на предмет трехмерной карты из клиентского устройства 902. Следует отметить, что сервер 901 также может передавать трехмерную карту без ожидания запроса на передачу на предмет трехмерной карты из клиентского устройства 902. Например, сервер 901 может широковещательно передавать трехмерную карту, по меньшей мере, в одно клиентское устройство 902, расположенное в предварительно определенном пространстве. Сервер 901 также может передавать трехмерную карту, подходящую для позиции клиентского устройства 902, с фиксированными временными интервалами в клиентское устройство 902, которое принимает запрос на передачу однократно. Сервер 901 также может передавать трехмерную карту, управляемую посредством сервера 901, в клиентское устройство 902 каждый раз, когда трехмерная карта обновляется.
[0303] Клиентское устройство 902 отправляет запрос на передачу на предмет трехмерной карты на сервер 901. Например, когда клиентское устройство 902 хочет выполнять оценку собственного местоположения во время движения, клиентское устройство 902 передает запрос на передачу на предмет трехмерной карты на сервер 901.
[0304] Следует отметить, что в следующих случаях клиентское устройство 902 может отправлять запрос на передачу на предмет трехмерной карты на сервер 901. Клиентское устройство 902 может отправлять запрос на передачу на предмет трехмерной карты на сервер 901, когда трехмерная карта, сохраненная посредством клиентского устройства 902, является устаревшей. Например, клиентское устройство 902 может отправлять запрос на передачу на предмет трехмерной карты на сервер 901, когда фиксированный период проходит с момента, когда трехмерная карта получается посредством клиентского устройства 902.
[0305] Клиентское устройство 902 также может отправлять запрос на передачу на предмет трехмерной карты на сервер 901 до фиксированного времени, когда клиентское устройство 902 выходит из пространства, показанного на трехмерной карте, сохраненной посредством клиентского устройства 902. Например, клиентское устройство 902 может отправлять запрос на передачу на предмет трехмерной карты на сервер 901, когда клиентское устройство 902 расположено в пределах предварительно определенного расстояния от границы пространства, показанного на трехмерной карте, сохраненной посредством клиентского устройства 902. Когда тракт перемещения и скорость перемещения клиентского устройства 902 понимаются, время, когда клиентское устройство 902 выходит из пространства, показанного на трехмерной карте, сохраненной посредством клиентского устройства 902, может прогнозироваться на основе тракта перемещения и скорости перемещения клиентского устройства 902.
[0306] Клиентское устройство 902 также может отправлять запрос на передачу на предмет трехмерной карты на сервер 901, когда ошибка во время совмещения трехмерных данных и трехмерной карты, созданной из информации датчиков посредством клиентского устройства 902, находится, по меньшей мере, на фиксированном уровне.
[0307] Клиентское устройство 902 передает информацию датчиков на сервер 901 в ответ на запрос на передачу на предмет информации датчиков из сервера 901. Следует отметить, что клиентское устройство 902 может передавать информацию датчиков на сервер 901 без ожидания запроса на передачу на предмет информации датчиков из сервера 901. Например, клиентское устройство 902 может периодически передавать информацию датчиков в течение фиксированного периода, когда клиентское устройство 902 однократно принимает запрос на передачу на предмет информации датчиков из сервера 901. Клиентское устройство 902 может определять то, что имеется вероятность возникновения изменения трехмерной карты окружающей зоны клиентского устройства 902, и передавать эту информацию и информацию датчиков на сервер 901, когда ошибка во время совмещения трехмерных данных, созданных посредством клиентского устройства 902 на основе информации датчиков, и трехмерной карты, полученной из сервера 901, находится, по меньшей мере, на фиксированном уровне.
[0308] Сервер 901 отправляет запрос на передачу на предмет информации датчиков в клиентское устройство 902. Например, сервер 901 принимает информацию позиции, такую как GPS-информация, относительно клиентского устройства 902 из клиентского устройства 902. Сервер 901 отправляет запрос на передачу на предмет информации датчиков в клиентское устройство 902, чтобы формировать новую трехмерную карту, когда определяется то, что клиентское устройство 902 приближается к пространству, в котором трехмерная карта, управляемая посредством сервера 901, содержит мало информации, на основе информации позиции относительно клиентского устройства 902. Сервер 901 также может отправлять запрос на передачу на предмет информации датчиков, при желании (i) обновлять трехмерную карту, (ii) проверять дорожные условия во время снегопада, аварии и т.п., или (iii) проверять условия затора в движении, условия аварии/происшествия и т.п.
[0309] Клиентское устройство 902 может задавать объем данных информации датчиков, которая должна передаваться на сервер 901, в соответствии с условиями связи или полосой пропускания в ходе приема запроса на передачу на предмет информации датчиков, которая должна приниматься из сервера 901. Задание объема данных информации датчиков, которая должна передаваться на сервер 901, например, представляет собой увеличение/уменьшение непосредственно данных или надлежащий выбор способа сжатия.
[0310] Фиг. 29 является блок-схемой, показывающей примерную структуру клиентского устройства 902. Клиентское устройство 902 принимает трехмерную карту, сформированную посредством облака точек и т.п. из сервера 901, и оценивает собственное местоположение клиентского устройства 902 с использованием трехмерной карты, созданной на основе информации датчиков клиентского устройства 902. Клиентское устройство 902 передает полученную информацию датчиков на сервер 901.
[0311] Клиентское устройство 902 включает в себя приемное устройство 1011 данных, модуль 1012 связи, контроллер 1013 приема, преобразователь 1014 форматов, датчики 1015, модуль 1016 создания трехмерных данных, процессор 1017 трехмерных изображений, устройство 1018 хранения трехмерных данных, преобразователь 1019 форматов, модуль 1020 связи, контроллер 1021 передачи и передающее устройство 1022 данных.
[0312] Приемное устройство 1011 данных принимает трехмерную карту 1031 из сервера 901. Трехмерная карта 1031 представляет собой данные, которые включают в себя облако точек, такие как WLD или SWLD. Трехмерная карта 1031 может включать в себя сжатые данные или несжатые данные.
[0313] Модуль 1012 связи обменивается данными с сервером 901 и передает запрос на передачу данных (например, запрос на передачу на предмет трехмерной карты) на сервер 901.
[0314] Контроллер 1013 приема обменивается информацией, такой как информация относительно поддерживаемых форматов, с партнером по связи через модуль 1012 связи, чтобы устанавливать связь с партнером по связи.
[0315] Преобразователь 1014 форматов выполняет преобразование формата и т.п. для трехмерной карты 1031, принимаемой посредством приемного устройства 1011 данных, чтобы формировать трехмерную карту 1032. Преобразователь 1014 форматов также выполняет процесс распаковки или декодирования, когда трехмерная карта 1031 сжимается или кодируется. Следует отметить, что преобразователь 1014 форматов не выполняет процесс распаковки или декодирования, когда трехмерная карта 1031 представляет собой несжатые данные.
[0316] Датчики 815 представляют собой группу датчиков, таких как лидары, камеры для съемки в диапазоне видимого света, камеры для съемки в инфракрасном диапазоне или датчики глубины, которые получают информацию относительно местоположения за пределами транспортного средства, оснащенного клиентским устройством 902, и формируют информацию 1033 датчиков. Информация 1033 датчиков, например, представляет собой трехмерные данные, такие как облако точек (данные точечных групп), когда датчики 1015 представляют собой лазерные датчики, такие как лидары. Следует отметить, что один датчик может служить в качестве датчиков 1015.
[0317] Модуль 1016 создания трехмерных данных формирует трехмерные данные 1034 окружающей зоны рассматриваемого транспортного средства на основе информации 1033 датчиков. Например, модуль 1016 создания трехмерных данных формирует данные облаков точек с цветовой информацией относительно окружающей зоны рассматриваемого транспортного средства с использованием информации, полученной посредством лидара, и видео в диапазоне видимого света, полученного посредством камеры для съемки в диапазоне видимого света.
[0318] Процессор 1017 трехмерных изображений выполняет процесс оценки собственного местоположения и т.п. рассматриваемого транспортного средства, с использованием (i) принимаемой трехмерной карты 1032, такой как облако точек, и (ii) трехмерных данных 1034 окружающей зоны рассматриваемого транспортного средства, сформированных с использованием информации 1033 датчиков. Следует отметить, что процессор 1017 трехмерных изображений может формировать трехмерные данные 1035 относительно окрестности рассматриваемого транспортного средства посредством объединения трехмерной карты 1032 и трехмерных данных 1034 и может выполнять процесс оценки собственного местоположения с использованием созданных трехмерных данных 1035.
[0319] Устройство 1018 хранения трехмерных данных сохраняет трехмерную карту 1032, трехмерные данные 1034, трехмерные данные 1035 и т.п.
[0320] Преобразователь 1019 форматов формирует информацию 1037 датчиков посредством преобразования информации 1033 датчиков в формат, поддерживаемый посредством приемного конца. Следует отметить, что преобразователь 1019 форматов может сокращать объем данных посредством сжатия или кодирования информации 1037 датчиков. Преобразователь 1019 форматов может опускать этот процесс, когда преобразование формата не требуется. Преобразователь 1019 форматов также может управлять объемом данных, которые должны передаваться в соответствии с указанным диапазоном передачи.
[0321] Модуль 1020 связи обменивается данными с сервером 901 и принимает запрос на передачу данных (запрос на передачу на предмет информации датчиков) и т.п. из сервера 901.
[0322] Контроллер 1021 передачи обменивается информацией, такой как информация относительно поддерживаемых форматов, с партнером по связи через модуль 1020 связи, чтобы устанавливать связь с партнером по связи.
[0323] Передающее устройство 1022 данных передает информацию 1037 датчиков на сервер 901. Информация 1037 датчиков включает в себя, например, информацию, полученную через датчики 1015, такую как информация, полученная посредством лидара, изображение яркости, полученное посредством камеры для съемки в диапазоне видимого света, инфракрасное изображение, полученное посредством камеры для съемки в инфракрасном диапазоне, изображение глубины, полученное посредством датчика глубины, информация позиций датчиков и информация скорости датчиков.
[0324] Далее описывается структура сервера 901. Фиг. 30 является блок-схемой, показывающей примерную структуру сервера 901. Сервер 901 передает информацию датчиков из клиентского устройства 902 и создает трехмерные данные на основе принимаемой информации датчиков. Сервер 901 обновляет трехмерную карту, управляемую посредством сервера 901, с использованием созданных трехмерных данных. Сервер 901 передает обновленную трехмерную карту в клиентское устройство 902 в ответ на запрос на передачу на предмет трехмерной карты из клиентского устройства 902.
[0325] Сервер 901 включает в себя приемное устройство 1111 данных, модуль 1112 связи, контроллер 1113 приема, преобразователь 1114 форматов, модуль 1116 создания трехмерных данных, модуль 1117 объединения трехмерных данных, устройство 1118 хранения трехмерных данных, преобразователь 1119 форматов, модуль 1120 связи, контроллер 1121 передачи и передающее устройство 1122 данных.
[0326] Приемное устройство 1111 данных принимает информацию 1037 датчиков из клиентского устройства 902. Информация 1037 датчиков включает в себя, например, информацию, полученную посредством лидара, изображение яркости, полученное посредством камеры для съемки в диапазоне видимого света, инфракрасное изображение, полученное посредством камеры для съемки в инфракрасном диапазоне, изображение глубины, полученное посредством датчика глубины, информацию позиций датчиков, информацию скорости датчиков и т.п.
[0327] Модуль 1112 связи обменивается данными с клиентским устройством 902 и передает запрос на передачу данных (например, запрос на передачу на предмет информации датчиков) и т.п. в клиентское устройство 902.
[0328] Контроллер 1113 приема обменивается информацией, такой как информация относительно поддерживаемых форматов, с партнером по связи через модуль 1112 связи, чтобы устанавливать связь с партнером по связи.
[0329] Преобразователь 1114 форматов формирует информацию 1132 датчиков посредством выполнения процесса распаковки или декодирования, когда принимаемая информация 1037 датчиков сжимается или кодируется. Следует отметить, что преобразователь 1114 форматов не выполняет процесс распаковки или декодирования, когда информация 1037 датчиков представляет собой несжатые данные.
[0330] Модуль 1116 создания трехмерных данных формирует трехмерные данные 1134 окружающей зоны клиентского устройства 902 на основе информации 1132 датчиков. Например, модуль 1116 создания трехмерных данных формирует данные облаков точек с цветовой информацией относительно окружающей зоны клиентского устройства 902 с использованием информации, полученной посредством лидара, и видео в диапазоне видимого света, полученного посредством камеры для съемки в диапазоне видимого света.
[0331] Модуль 1117 объединения трехмерных данных обновляет трехмерную карту 1135 посредством объединения трехмерных данных 1134, созданных на основе информации 1132 датчиков, с трехмерной картой 1135, управляемой посредством сервера 901.
[0332] Устройство 1118 хранения трехмерных данных сохраняет трехмерную карту 1135 и т.п.
[0333] Преобразователь 1119 форматов формирует трехмерную карту 1031 посредством преобразования трехмерной карты 1135 в формат, поддерживаемый посредством приемного конца. Следует отметить, что преобразователь 1119 форматов может сокращать объем данных посредством сжатия или кодирования трехмерной карты 1135. Преобразователь 1119 форматов может опускать этот процесс, когда преобразование формата не требуется. Преобразователь 1119 форматов также может управлять объемом данных, которые должны передаваться в соответствии с указанным диапазоном передачи.
[0334] Модуль 1120 связи обменивается данными с клиентским устройством 902 и принимает запрос на передачу данных (запрос на передачу на предмет трехмерной карты) и т.п. из клиентского устройства 902.
[0335] Контроллер 1121 передачи обменивается информацией, такой как информация относительно поддерживаемых форматов, с партнером по связи через модуль 1120 связи, чтобы устанавливать связь с партнером по связи.
[0336] Передающее устройство 1122 данных передает трехмерную карту 1031 в клиентское устройство 902. Трехмерная карта 1031 представляет собой данные, которые включают в себя облако точек, такие как WLD или SWLD. Трехмерная карта 1031 может включать одно из сжатых данных и несжатых данных.
[0337] Далее описывается последовательность операций клиентского устройства 902. Фиг. 31 является блок-схемой последовательности операций способа для операции, когда клиентское устройство 902 получает трехмерную карту.
[0338] Клиентское устройство 902 сначала запрашивает сервер 901 на предмет того, чтобы передавать трехмерную карту (облако точек и т.д.) (S1001). В этот момент, посредством передачи также информации позиции относительно клиентского устройства 902, полученной через GPS и т.п., клиентское устройство 902 также может запрашивать сервер 901 на предмет того, чтобы передавать трехмерную карту, связанную с этой информацией позиции.
[0339] Клиентское устройство 902 затем принимает трехмерную карту из сервера 901 (S1002). Когда принимаемая трехмерная карта представляет собой сжатые данные, клиентское устройство 902 декодирует принимаемую трехмерную карту и формирует несжатую трехмерную карту (S1003).
[0340] Клиентское устройство 902 затем создает трехмерные данные 1034 окружающей зоны клиентского устройства 902 с использованием информации 1033 датчиков, полученной посредством датчиков 1015 (S1004). Клиентское устройство 902 затем оценивает собственное местоположение клиентского устройства 902 с использованием трехмерной карты 1032, принимаемой из сервера 901, и трехмерных данных 1034, созданных с использованием информации 1033 датчиков (S1005).
[0341] Фиг. 32 является блок-схемой последовательности операций способа для операции, когда клиентское устройство 902 передает информацию датчиков. Клиентское устройство 902 сначала принимает запрос на передачу на предмет информации датчиков из сервера 901 (S1011). Клиентское устройство 902, которое принимает запрос на передачу, передает информацию 1037 датчиков на сервер 901 (S1012). Следует отметить, что клиентское устройство 902 может формировать информацию 1037 датчиков посредством сжатия каждого фрагмента информации с использованием способа сжатия, подходящего для каждого фрагмента информации, когда информация 1033 датчиков включает в себя множество фрагментов информации, полученных посредством датчиков 1015.
[0342] Далее описывается последовательность операций сервера 901. Фиг. 33 является блок-схемой последовательности операций способа для операции, когда сервер 901 получает информацию датчиков. Сервер 901 сначала запрашивает клиентское устройство 902 на предмет того, чтобы передавать информацию датчиков (S1021). Сервер 901 затем принимает информацию 1037 датчиков, передаваемую из клиентского устройства 902 в соответствии с запросом (S1022). Сервер 901 затем создает трехмерные данные 1134 с использованием принимаемой информации 1037 датчиков (S1023). Сервер 901 затем отражает созданные трехмерные данные 1134 на трехмерной карте 1135 (S1024).
[0343] Фиг. 34 является блок-схемой последовательности операций способа для операции, когда сервер 901 передает трехмерную карту. Сервер 901 сначала принимает запрос на передачу на предмет трехмерной карты из клиентского устройства 902 (S1031). Сервер 901, который принимает запрос на передачу на предмет трехмерной карты, передает трехмерную карту в клиентское устройство 902 (S1032). В этот момент, сервер 901 может извлекать трехмерную карту окрестности клиентского устройства 902 наряду с информацией позиции относительно клиентского устройства 902 и передавать извлеченную трехмерную карту. Сервер 901 может сжимать трехмерную карту, сформированную посредством облака точек, с использованием, например, способа сжатия структуры в виде дерева октантов, и передавать сжатую трехмерную карту.
[0344] В дальнейшем в этом документе описываются варьирования настоящего варианта осуществления.
[0345] Сервер 901 создает трехмерные данные 1134 окрестности позиции клиентского устройства 902 с использованием информации 1037 датчиков, принимаемой из клиентского устройства 902. Сервер 901 затем вычисляет разность между трехмерными данными 1134 и трехмерной картой 1135 посредством сопоставления созданных трехмерных данных 1134 с трехмерной картой 1135 идентичной зоны, управляемой посредством сервера 901. Сервер 901 определяет то, что определенный тип аномалии возникает в окружающей зоне клиентского устройства 902, когда разность превышает или равна предварительно определенному пороговому значению. Например, есть возможность того, что большая разность возникает между трехмерной картой 1135, управляемой посредством сервера 901, и трехмерными данными 1134, созданными на основе информации 1037 датчиков, когда проседание грунта и т.п. возникает вследствие стихийного бедствия, такого как землетрясение.
[0346] Информация 1037 датчиков может включать в себя информацию, указывающую, по меньшей мере, одно из типа датчика, производительности датчика и номера модели датчика. К информации 1037 датчиков также может присоединяться идентификатор класса и т.п. в соответствии с производительностью датчика. Например, когда информация 1037 датчиков получается посредством лидара, есть возможность назначать идентификаторы для производительности датчика. Датчик, допускающий получение информации с точностью в единицах в несколько миллиметров, имеет класс 1, датчик, допускающий получение информации с точностью в единицах в несколько сантиметров, имеет класс 2, и датчик, допускающий получение информации с точностью в единицах в несколько метров, имеет класс 3. Сервер 901 может оценивать информацию производительности датчика и т.п. из номера модели клиентского устройства 902. Например, когда клиентское устройство 902 оснащается в транспортном средстве, сервер 901 может определять информацию спецификации датчика из типа транспортного средства. В этом случае, сервер 901 может получать информацию относительно типа транспортного средства заранее, и информация также может быть включена в информацию датчиков. Сервер 901 может изменять степень коррекции относительно трехмерных данных 1134, созданных с использованием информации 1037 датчиков, с использованием полученной информации 1037 датчиков. Например, когда производительность датчика является высокой по точности (класс 1), сервер 901 не корректирует трехмерные данные 1134. Когда производительность датчика является низкой по точности (класс 3), сервер 901 корректирует трехмерные данные 1134 в соответствии с точностью датчика. Например, сервер 901 увеличивает степень (интенсивность) коррекции со снижением точности датчика.
[0347] Сервер 901 может одновременно отправлять запрос на передачу на предмет информации датчиков во множество клиентских устройств 902 в определенном пространстве. Сервер 901 не должен обязательно использовать всю информацию датчиков для создания трехмерных данных 1134 и, например, может выбирать информацию датчиков, которая должна использоваться в соответствии с производительностью датчика, при приеме множества фрагментов информации датчиков из множества клиентских устройств 902. Например, при обновлении трехмерной карты 1135, сервер 901 может выбирать высокоточную информацию датчиков (класс 1) из числа принимаемого множества фрагментов информации датчиков и создавать трехмерные данные 1134 с использованием выбранной информации датчиков.
[0348] Сервер 901 не ограничен только тем, что он представляет собой сервер, к примеру, облачную систему мониторинга трафика, и также может представлять собой другое (установленное в транспортном средстве) клиентское устройство. Фиг. 35 является схемой структуры системы в этом случае.
[0349] Например, клиентское устройство 902C отправляет запрос на передачу на предмет информации датчиков в клиентское устройство 902A, расположенное поблизости, и получает информацию датчиков из клиентского устройства 902A. Клиентское устройство 902C затем создает трехмерные данные с использованием полученной информации датчиков клиентского устройства 902A и обновляет трехмерную карту клиентского устройства 902C. Это обеспечивает возможность клиентскому устройству 902C формировать трехмерную карту пространства, которое может получаться из клиентского устройства 902A, и полностью использовать производительность клиентского устройства 902C. Например, такой случай возможен, когда клиентское устройство 902C имеет высокую производительность.
[0350] В этом случае, клиентскому устройству 902A, которое предоставляет информацию датчиков, дается право получать высокоточную трехмерную карту, сформированную посредством клиентского устройства 902C. Клиентское устройство 902A принимает высокоточную трехмерную карту из клиентского устройства 902C в соответствии с этими правами.
[0351] Сервер 901 может отправлять запрос на передачу на предмет информации датчиков во множество клиентских устройств 902 (в клиентское устройство 902A и клиентское устройство 902B), расположенных поблизости от клиентского устройства 902C. Когда датчик клиентского устройства 902A или клиентского устройства 902B имеет высокую производительность, клиентское устройство 902C допускает создание трехмерных данных с использованием информации датчиков, полученной посредством этого высокопроизводительного датчика.
[0352] Фиг. 36 является блок-схемой, показывающей структуру функциональности сервера 901 и клиентского устройства 902. Сервер 901 включает в себя, например, процессор 1201 сжатия/декодирования трехмерных карт, который сжимает и декодирует трехмерную карту, и процессор 1202 сжатия/декодирования информации датчиков, который сжимает и декодирует информацию датчиков.
[0353] Клиентское устройство 902 включает в себя процессор 1211 декодирования трехмерных карт и процессор 1212 сжатия информации датчиков. Процессор 1211 декодирования трехмерных карт принимает кодированные данные сжатой трехмерной карты, декодирует кодированные данные и получает трехмерную карту. Процессор 1212 сжатия информации датчиков сжимает саму информацию датчиков вместо трехмерных данных, созданных с использованием полученной информации датчиков, и передает кодированные данные сжатой информации датчиков на сервер 901. При такой структуре, клиентское устройство 902 не должно обязательно внутренне сохранять процессор, который выполняет процесс для сжатия трехмерных данных трехмерной карты (облака точек и т.д.), при условии, что клиентское устройство 902 внутренне сохраняет процессор, который выполняет процесс для декодирования трехмерной карты (облака точек и т.д.). Это позволяет ограничивать затраты, потребление мощности и т.п. клиентского устройства 902.
[0354] Как указано выше, клиентское устройство 902 согласно настоящему варианту осуществления оснащается в мобильном объекте и создает трехмерные данные 1034 окружающей зоны мобильного объекта с использованием информации 1033 датчиков, которая получается через датчик 1015, оснащенный в мобильном объекте, и указывает окружающее условие мобильного объекта. Клиентское устройство 902 оценивает собственное местоположение мобильного объекта с использованием созданных трехмерных данных 1034. Клиентское устройство 902 передает полученную информацию 1033 датчиков на сервер 901 или другой мобильный объект.
[0355] Это обеспечивает возможность клиентскому устройству 902 передавать информацию 1033 датчиков на сервер 901 и т.п. Это позволяет дополнительно уменьшать объем передаваемых данных по сравнению с моментом передачи трехмерных данных. Поскольку для клиентского устройства 902 нет необходимости выполнять такие процессы, как сжатие или кодирование трехмерных данных, можно уменьшать объем обработки клиентского устройства 902. В связи с этим, клиентское устройство 902 допускает уменьшение объема данных, которые должны передаваться, или упрощение структуры устройства.
[0356] Клиентское устройство 902 дополнительно передает запрос на передачу на предмет трехмерной карты на сервер 901 и принимает трехмерную карту 1031 из сервера 901. При оценке собственного местоположения, клиентское устройство 902 оценивает собственное местоположение с использованием трехмерных данных 1034 и трехмерной карты 1032.
[0357] Информация 1034 датчиков включает в себя, по меньшей мере, одно из информации, полученной посредством лазерного датчика, изображения яркости, инфракрасного изображения, изображения глубины, информации позиций датчиков или информации скорости датчиков.
[0358] Информация 1033 датчиков включает в себя информацию, которая указывает производительность датчика.
[0359] Клиентское устройство 902 кодирует или сжимает информацию 1033 датчиков и, при передаче информации датчиков, передает информацию 1037 датчиков, которая кодирована или сжата, на сервер 901 или в другой мобильный объект 902. Это обеспечивает возможность клиентскому устройству 902 уменьшать объем данных, которые должны передаваться.
[0360] Например, клиентское устройство 902 включает в себя процессор и запоминающее устройство. Процессор выполняет вышеуказанные процессы с использованием запоминающего устройства.
[0361] Сервер 901 согласно настоящему варианту осуществления допускает обмен данными с клиентским устройством 902, оснащенным в мобильном объекте, и принимает информацию 1037 датчиков, которая получается через датчик 1015, оснащенный в мобильном объекте, и указывает окружающее условие мобильного объекта. Сервер 901 создает трехмерные данные 1134 окружающей зоны мобильного объекта с использованием принимаемой информации 1037 датчиков.
[0362] Вследствие этого, сервер 901 создает трехмерные данные 1134 с использованием информации 1037 датчиков, передаваемой из клиентского устройства 902. Это позволяет дополнительно уменьшать объем передаваемых данных по сравнению с моментом, когда клиентское устройство 902 передает трехмерные данные. Поскольку для клиентского устройства 902 нет необходимости выполнять такие процессы, как сжатие или кодирование трехмерных данных, можно уменьшать объем обработки клиентского устройства 902. В связи с этим, сервер 901 допускает уменьшение объема данных, которые должны передаваться, или упрощение структуры устройства.
[0363] Сервер 901 дополнительно передает запрос на передачу на предмет информации датчиков в клиентское устройство 902.
[0364] Сервер 901 дополнительно обновляет трехмерную карту 1135 с использованием созданных трехмерных данных 1134 и передает трехмерную карту 1135 в клиентское устройство 902 в ответ на запрос на передачу на предмет трехмерной карты 1135 из клиентского устройства 902.
[0365] Информация 1037 датчиков включает в себя, по меньшей мере, одно из информации, полученной посредством лазерного датчика, изображения яркости, инфракрасного изображения, изображения глубины, информации позиций датчиков или информации скорости датчиков.
[0366] Информация 1037 датчиков включает в себя информацию, которая указывает производительность датчика.
[0367] Сервер 901 дополнительно корректирует трехмерные данные в соответствии с производительностью датчика. Это обеспечивает возможность способу создания трехмерных данных повышать качество трехмерных данных.
[0368] При приеме информации датчиков, сервер 901 принимает множество фрагментов информации 1037 датчиков, принимаемой из множества клиентских устройств 902, и выбирает информацию 1037 датчиков, которая должна использоваться при создании трехмерных данных 1134, на основе множества фрагментов информации, каждый из которых указывает производительность датчика, включенного во множество фрагментов информации 1037 датчиков. Это обеспечивает возможность серверу 901 повышать качество трехмерных данных 1134.
[0369] Сервер 901 декодирует или распаковывает принимаемую информацию 1037 датчиков и создает трехмерные данные 1134 с использованием информации 1132 датчиков, которая декодирована или распакована. Это обеспечивает возможность серверу 901 уменьшать объем данных, которые должны передаваться.
[0370] Например, сервер 901 включает в себя процессор и запоминающее устройство. Процессор выполняет вышеуказанные процессы с использованием запоминающего устройства.
[0371] Вариант 7 осуществления
В настоящем варианте осуществления, в дальнейшем описываются способы кодирования и декодирования трехмерных данных с использованием процесса взаимного прогнозирования.
[0372] Фиг. 37 является блок-схемой устройства 1300 кодирования трехмерных данных согласно настоящему варианту осуществления. Это устройство 1300 кодирования трехмерных данных формирует кодированный поток битов (в дальнейшем в этом документе, также называемый просто "потоком битов"), который представляет собой кодированный сигнал, посредством кодирования трехмерных данных. Как проиллюстрировано на фиг. 37, устройство 1300 кодирования трехмерных данных включает в себя модуль 1301 разделения, вычитатель 1302, преобразователь 1303, квантователь 1304, обратный квантователь 1305, обратный преобразователь 1306, сумматор 1307, запоминающее устройство 1308 опорных объемов, модуль 1309 внутреннего прогнозирования, запоминающее устройство 1310 опорных пространств, модуль 1311 взаимного прогнозирования, контроллер 1312 прогнозирования и энтропийный кодер 1313.
[0373] Модуль 1301 разделения разделяет множество объемов (VLM), которые представляют собой единицы кодирования каждого пространства (SPC), включенного в трехмерные данные. Модуль 1301 разделения задает представление в виде дерева октантов (задание как дерева октантов) вокселов в каждом объеме. Следует отметить, что модуль 1301 разделения может задавать пространства как представление в виде дерева октантов с пространствами, имеющими размер, идентичный размеру объемов. Модуль 1301 разделения также может присоединять информацию (информацию глубины и т.д.), необходимую для того, чтобы задавать представление в виде дерева октантов, к заголовку и т.п. потока битов.
[0374] Вычитатель 1302 вычисляет разность между объемом (целевым объемом кодирования), выведенным посредством модуля 1301 разделения, и прогнозированным объемом, сформированным через внутреннее прогнозирование или взаимное прогнозирование, которое описывается ниже, и выводит вычисленную разность в преобразователь 1303 в качестве остатка прогнозирования. Фиг. 38 является схемой, показывающей примерное вычисление остатка прогнозирования. Следует отметить, что битовые последовательности целевого объема кодирования и прогнозированного объема, показанных здесь, например, представляют собой информацию позиции, указывающую позиции трехмерных точек, включенных в объемы.
[0375] В дальнейшем в этом документе описывается порядок сканирования представления в виде дерева октантов и вокселов. Объем кодируется после преобразования в структуру в виде дерева октантов (задания как дерева октантов). Структура в виде дерева октантов включает в себя узлы и листья. Каждый узел имеет восемь узлов или листья, и каждый лист имеет вокселную (VXL) информацию. Фиг. 39 является схемой, показывающей примерную структуру объема, включающего в себя вокселы. Фиг. 40 является схемой, показывающей пример объема, показанного на фиг. 39, преобразованного в структуру в виде дерева октантов. Из числа листьев, показанных на фиг. 40, листья 1, 2 и 3, соответственно, представляют VXL 1, VXL 2 и VXL 3 и представляют VXL, включающие в себя точечную группу (в дальнейшем в этом документе, активные VXL).
[0376] Дерево октантов представляется, например, посредством двоичных последовательностей единиц и нулей. Например, при предоставлении для узлов или активных VXL значения в 1, а для всех остальных значения в 0, каждому узлу и листу назначается двоичная последовательность, показанная на фиг. 40. Таким образом, эта двоичная последовательность сканируется в соответствии с порядком сканирования в ширину или в глубину. Например, при сканировании в ширину, получается двоичная последовательность, показанная в A по фиг. 41. При сканировании в глубину, получается двоичная последовательность, показанная в B по фиг. 41. Двоичные последовательности, полученные посредством этого сканирования, кодируются посредством энтропийного кодирования, которое уменьшает объем информации.
[0377] Далее описывается информация глубины в представлении в виде дерева октантов. Глубина в представлении в виде дерева октантов используется для того, чтобы управлять тем, с насколько большой степенью детализации сохраняется информация облаков точек, включенная в объем. После задания большой глубины, можно воспроизводить информацию облаков точек до более точного уровня, но объем данных для представления узлов и листьев увеличивается. Тем не менее, после задания небольшой глубины, объем данных снижается, но некоторая информация, такая как информация облаков точек, первоначально хранимая, теряется, поскольку фрагменты информации облаков точек, включающие в себя различные позиции и различные цвета, теперь рассматриваются в качестве фрагментов информации облаков точек, включающих в себя идентичную позицию и идентичный цвет.
[0378] Например, фиг. 42 является схемой, показывающей пример, в котором дерево октантов с глубиной в 2, показанное на фиг. 40, представляется с глубиной в 1. Дерево октантов, показанное на фиг. 42, имеет более низкий объем данных, чем дерево октантов, показанное на фиг. 40. Другими словами, преобразованное в двоичную форму дерево октантов, показанное на фиг. 42, имеет меньшее число битов, чем дерево октантов, показанное на фиг. 40. Лист 1 и лист 2, показанные на фиг. 40, представляются посредством листа 1, показанного на фиг. 41. Другими словами, информация относительно листа 1 и листа 2, находящегося в различных позициях, теряется.
[0379] Фиг. 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 кодирования трехмерных данных может управлять уменьшением объема данных посредством изменения глубины дерева октантов.
[0380] Устройство 1300 кодирования трехмерных данных может задавать информацию глубины дерева октантов в единицах миров, единицах пространств или единицах объемов. В этом случае, устройство 1300 кодирования трехмерных данных может присоединять информацию глубины к информации заголовка мира, информации заголовка пространства или информации заголовка объема. Во всех мирах, пространствах и объемах, ассоциированных с различными временами, идентичное значение может использоваться в качестве информации глубины. В этом случае, устройство 1300 кодирования трехмерных данных может присоединять информацию глубины к информации заголовка, управляющей мирами, ассоциированными со всеми временами.
[0381] Когда цветовая информация включается в вокселы, преобразователь 1303 применяет преобразование частоты, например, ортогональное преобразование, к остатку прогнозирования цветовой информации вокселов в объеме. Например, преобразователь 1303 создает одномерный массив посредством сканирования остатка прогнозирования в определенном порядке сканирования. Затем, преобразователь 1303 преобразует одномерный массив в частотную область посредством применения одномерного ортогонального преобразования к созданному одномерному массиву. Вследствие этого, когда значение остатка прогнозирования в объеме является аналогичным, значение низкочастотного компонента увеличивается, и значение высокочастотного компонента снижается. В связи с этим, можно более эффективно уменьшать объем кода в квантователе 1304.
[0382] Преобразователь 1303 не должен обязательно использовать ортогональное преобразование в одной размерности, но также может использовать ортогональное преобразование в двух или более размерностей. Например, преобразователь 1303 преобразует остаток прогнозирования в двумерный массив в определенном порядке сканирования и применяет двумерное ортогональное преобразование к полученному двумерному массиву. Преобразователь 1303 может выбирать способ ортогонального преобразования, который должен использоваться, из множества способов ортогонального преобразования. В этом случае, устройство 1300 кодирования трехмерных данных присоединяет, к потоку битов, информацию, указывающую то, какой способ ортогонального преобразования используется. Преобразователь 1303 может выбирать способ ортогонального преобразования, который должен использоваться, из множества способов ортогонального преобразования в различных размерностях. В этом случае, устройство 1300 кодирования трехмерных данных присоединяет, к потоку битов, то, в скольких размерностях используется способ ортогонального преобразования.
[0383] Например, преобразователь 1303 сопоставляет порядок сканирования остатка прогнозирования с порядком сканирования (в ширину, в глубину и т.п.) в дереве октантов в объеме. Это позволяет уменьшать объем служебной информации, поскольку информация, указывающая порядок сканирования остатка прогнозирования, не должна обязательно присоединяться к потоку битов. Преобразователь 1303 может применять порядок сканирования, отличающийся от порядка сканирования дерева октантов. В этом случае, устройство 1300 кодирования трехмерных данных присоединяет, к потоку битов, информацию, указывающую порядок сканирования остатка прогнозирования. Это обеспечивает возможность устройству 1300 кодирования трехмерных данных эффективно кодировать остаток прогнозирования. Устройство 1300 кодирования трехмерных данных может присоединять, к потоку битов, информацию (флаг и т.д.), указывающую то, следует или нет применять порядок сканирования дерева октантов, а также может присоединять, к потоку битов, информацию, указывающую порядок сканирования остатка прогнозирования, когда порядок сканирования дерева октантов не применяется.
[0384] Преобразователь 1303 не только преобразует остаток прогнозирования цветовой информации, а также может преобразовывать другую информацию атрибутов, включенную в вокселы. Например, преобразователь 1303 может преобразовывать и кодировать информацию, такую как информация коэффициента отражения, полученная при получении облака точек через лидар, и т.п.
[0385] Преобразователь 1303 может пропускать эти процессы, когда пространства не включают в себя информацию атрибутов, такую как цветовая информация. Устройство 1300 кодирования трехмерных данных может присоединять, к потоку битов, информацию (флаг), указывающую то, следует или нет пропускать процессы преобразователя 1303.
[0386] Квантователь 1304 формирует квантованный коэффициент посредством выполнения квантования с использованием управляющего параметра квантования для частотного компонента остатка прогнозирования, сформированного посредством преобразователя 1303. Вследствие этого, объем информации дополнительно уменьшается. Сформированный квантованный коэффициент выводится в энтропийный кодер 1313. Квантователь 1304 может управлять управляющим параметром квантования в единицах миров, единицах пространств или единицах объемов. В этом случае, устройство 1300 кодирования трехмерных данных присоединяет управляющий параметр квантования к каждой информации заголовка и т.п. Квантователь 1304 может выполнять управление квантованием посредством изменения весового коэффициента в расчете на частотный компонент остатка прогнозирования. Например, квантователь 1304 может точно квантовать низкочастотный компонент и примерно квантовать высокочастотный компонент. В этом случае, устройство 1300 кодирования трехмерных данных может присоединять, к заголовку, параметр, выражающий весовой коэффициент каждого частотного компонента.
[0387] Квантователь 1304 может пропускать эти процессы, когда пространства не включают в себя информацию атрибутов, такую как цветовая информация. Устройство 1300 кодирования трехмерных данных может присоединять, к потоку битов, информацию (флаг), указывающую то, следует или нет пропускать процессы квантователя 1304.
[0388] Обратный квантователь 1305 формирует обратно квантованный коэффициент остатка прогнозирования посредством выполнения обратного квантования для квантованного коэффициента, сформированного посредством квантователя 1304 с использованием управляющего параметра квантования, и выводит сформированный обратно квантованный коэффициент в обратный преобразователь 1306.
[0389] Обратный преобразователь 1306 формирует остаток прогнозирования после применения обратного преобразования посредством применения обратного преобразования для обратно квантованного коэффициента, сформированного посредством обратного квантователя 1305. Этот остаток прогнозирования после применения обратного преобразования не должен обязательно полностью совпадать с остатком прогнозирования, выведенным посредством преобразователя 1303, поскольку остаток прогнозирования после применения обратного преобразования представляет собой остаток прогнозирования, который формируется после квантования.
[0390] Сумматор 1307 суммирует, чтобы формировать восстановленный объем (i), остаток прогнозирования после применения обратного преобразования, сформированный посредством обратного преобразователя 1306, с (ii) прогнозированным объемом, который формируется через внутреннее прогнозирование или внутреннее прогнозирование, которое описывается ниже и используется для того, чтобы формировать предварительный квантованный остаток прогнозирования. Этот восстановленный объем сохраняется в запоминающем устройстве 1308 опорных объемов или запоминающем устройстве 1310 опорных пространств.
[0391] Модуль 1309 внутреннего прогнозирования формирует прогнозированный объем для целевого объема кодирования с использованием информации атрибутов соседнего объема, сохраненной в запоминающем устройстве 1308 опорных объемов. Информация атрибутов включает в себя цветовую информацию или коэффициент отражения вокселов. Модуль 1309 внутреннего прогнозирования формирует прогнозированное значение цветовой информации или коэффициент отражения целевого объема кодирования.
[0392] Фиг. 44 является схемой для описания операции модуля 1309 внутреннего прогнозирования. Например, модуль 1309 внутреннего прогнозирования формирует прогнозированный объем для целевого объема кодирования (idx объема=3), показанный на фиг. 44, с использованием соседнего объема (idx объема=0). Idx объема здесь представляет собой информацию идентификатора, которая присоединяется к объему в пространстве, и различное значение назначается каждому объему. Порядок назначения idx объема может быть идентичным порядку кодирования, а также может отличаться от порядка кодирования. Например, модуль 1309 внутреннего прогнозирования использует среднее значение цветовой информации вокселов, включенных в idx объема=0, который представляет собой соседний объем, в качестве прогнозированного значения цветовой информации целевого объема кодирования, показанного на фиг. 44. В этом случае, остаток прогнозирования формируется посредством вычитания прогнозированного значения цветовой информации из цветовой информации каждого воксела, включенного в целевой объем кодирования. Следующие процессы выполняются посредством преобразователя 1303 и последующих процессоров относительно этого остатка прогнозирования. В этом случае, устройство 1300 кодирования трехмерных данных присоединяет, к потоку битов, информацию соседних объемов и информацию режима прогнозирования. Информация соседних объемов здесь представляет собой информацию, указывающую соседний объем, используемый при прогнозировании, и указывает, например, idx объема для соседнего объема, используемого при прогнозировании. Информация режима прогнозирования здесь указывает режим, используемый для того, чтобы формировать прогнозированный объем. Режим, например, представляет собой режим средних значений, в котором прогнозированное значение формируется с использованием среднего значения вокселов в соседнем объеме, или режим срединных значений, в котором прогнозированное значение формируется с использованием срединного значения вокселов в соседнем объеме.
[0393] Модуль 1309 внутреннего прогнозирования может формировать прогнозированный объем с использованием множества соседних объемов. Например, в структуре, показанной на фиг. 44, модуль 1309 внутреннего прогнозирования формирует прогнозированный объем 0 с использованием объема с idx объема=0 и формирует прогнозированный объем 1 с использованием объема с idx объема=1. Модуль 1309 внутреннего прогнозирования затем формирует среднее прогнозированного объема 0 и прогнозированного объема 1 в качестве конечного прогнозированного объема. В этом случае, устройство 1300 кодирования трехмерных данных может присоединять, к потоку битов, множество idx объемов для множества объемов, используемых для того, чтобы формировать прогнозированный объем.
[0394] Фиг. 45 является схемой, принципиально показывающей процесс взаимного прогнозирования согласно настоящему варианту осуществления. Модуль 1311 взаимного прогнозирования кодирует (взаимно прогнозирует) пространство (SPC), ассоциированное с определенным временем T_Cur, с использованием кодированного пространства, ассоциированного с другим временем T_LX. В этом случае, модуль 1311 взаимного прогнозирования выполняет процесс кодирования посредством применения процесса вращения и перемещения в пространстве к кодированному пространству, ассоциированному с другим временем T_LX.
[0395] Устройство 1300 кодирования трехмерных данных присоединяет, к потоку битов, RT-информацию, связанную с процессом вращения и перемещения в пространстве, подходящим для пространства, ассоциированного с другим временем T_LX. Другое время T_LX, например, представляет собой время T_L0 перед определенным временем T_Cur. В этот момент, устройство 1300 кодирования трехмерных данных может присоединять, к потоку битов, RT-информацию RT_L0, связанную с процессом вращения и перемещения в пространстве, подходящим для пространства, ассоциированного со временем T_L0.
[0396] Альтернативно, другое время T_LX, например, представляет собой время T_L1 после определенного времени T_Cur. В этот момент, устройство 1300 кодирования трехмерных данных может присоединять, к потоку битов, RT-информацию RT_L1, связанную с процессом вращения и перемещения в пространстве, подходящим для пространства, ассоциированного со временем T_L1.
[0397] Альтернативно, модуль 1311 взаимного прогнозирования кодирует (двунаправленное прогнозирование) со ссылкой на пространства, ассоциированные со временем T_L0 и временем T_L1, которые отличаются друг от друга. В этом случае, устройство 1300 кодирования трехмерных данных может присоединять, к потоку битов, как RT-информацию RT_L0, так и RT-информацию RT_L1, связанную с процессом вращения и перемещения в пространстве, подходящим для своих пространств.
[0398] Следует отметить, что T_L0 описывается как находящееся до T_Cur, а T_L1 как находящееся до после T_Cur, но не обязательно ограничивается этим. Например, оба из T_L0 и T_L1 могут находиться до T_Cur. Также оба из T_L0 и T_L1 могут находиться после T_Cur.
[0399] Устройство 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-информации к заголовку и т.п. потока битов.
[0400] Устройство 1300 кодирования трехмерных данных определяет то, следует или нет применять вращение и перемещение в пространстве в расчете на опорное пространство, при кодировании со ссылкой на опорные пространства, ассоциированные с различными временами. В этом случае, устройство 1300 кодирования трехмерных данных может присоединять, к информации заголовка и т.п. потока битов, информацию (RT-флаг и т.д.), указывающую то, применяется или нет вращение и перемещение в пространстве в расчете на опорное пространство. Например, устройство 1300 кодирования трехмерных данных вычисляет RT-информацию и значение ошибки итеративного алгоритма ближайших точек (ICP), с использованием ICP-алгоритма в расчете на опорное пространство, на которое следует ссылаться из целевого пространства кодирования. Устройство 1300 кодирования трехмерных данных определяет то, что вращение и перемещение в пространстве не должно обязательно выполняться, и деактивирует RT-флаг, когда значение ICP-ошибки ниже или равно предварительно определенному фиксированному значению. Напротив, устройство 1300 кодирования трехмерных данных активирует RT-флаг и присоединяет RT-информацию к потоку битов, когда значение ICP-ошибки превышает вышеуказанное фиксированное значение.
[0401] Фиг. 46 является схемой, показывающей примерный синтаксис, который должен присоединяться к заголовку RT-информации и RT-флагу. Следует отметить, что число битов, назначенное каждому синтаксису, может определяться на основе диапазона этого синтаксиса. Например, когда восемь опорных пространств включаются в опорный список L0, 3 бита могут назначаться MaxRefSpc_l0. Число битов, которое должно назначаться, может быть переменным в соответствии со значением, которое может принимать каждый синтаксис, а также может быть фиксированным независимо от значения, которое может принимать каждый синтаксис. Когда число битов, которое должно назначаться, является фиксированным, устройство 1300 кодирования трехмерных данных может присоединять это фиксированное число битов к другой информации заголовка.
[0402] MaxRefSpc_l0, показанный на фиг. 46, указывает число опорных пространств, включенных в опорный список L0. RT_flag_l0[i] представляет собой RT-флаг опорного пространства i в опорном списке L0. Когда RT_flag_l0[i] равен 1, вращение и перемещение в пространстве применяются к опорному пространству i. Когда RT_flag_l0[i] равен 0, вращение и перемещение в пространстве не применяются к опорному пространству i.
[0403] R_l0[i] и T_l0[i] представляют собой RT-информацию опорного пространства i в опорном списке L0. R_l0[i] представляет собой информацию вращения опорного пространства i в опорном списке L0. Информация вращения указывает контент применяемого процесса вращения и, например, представляет собой матрицу вращения или кватернион. T_l0[i] представляет собой информацию перемещения в пространстве опорного пространства i в опорном списке L0. Информация перемещения в пространстве указывает контент применяемого процесса перемещения в пространстве и, например, представляет собой вектор перемещения в пространстве.
[0404] MaxRefSpc_l1 указывает число опорных пространств, включенных в опорный список L1. RT_flag_l1[i] представляет собой RT-флаг опорного пространства i в опорном списке L1. Когда RT_flag_l1[i] равен 1, вращение и перемещение в пространстве применяются к опорному пространству i. Когда RT_flag_l1[i] равен 0, вращение и перемещение в пространстве не применяются к опорному пространству i.
[0405] R_l1[i] и T_l1[i] представляют собой RT-информацию опорного пространства i в опорном списке L1. R_l1[i] представляет собой информацию вращения опорного пространства i в опорном списке L1. Информация вращения указывает контент применяемого процесса вращения и, например, представляет собой матрицу вращения или кватернион. T_l1[i] представляет собой информацию перемещения в пространстве опорного пространства i в опорном списке L1. Информация перемещения в пространстве указывает контент применяемого процесса перемещения в пространстве и, например, представляет собой вектор перемещения в пространстве.
[0406] Модуль 1311 взаимного прогнозирования формирует прогнозированный объем для целевого объема кодирования с использованием информации относительно кодированного опорного пространства, сохраненной в запоминающем устройстве 1310 опорных пространств. Как указано выше, до формирования прогнозированного объема для целевого объема кодирования, модуль 1311 взаимного прогнозирования вычисляет RT-информацию в целевом пространстве кодирования и опорном пространстве с использованием ICP-алгоритма, чтобы приближаться к полной позиционной взаимосвязи между целевым пространством кодирования и опорным пространством. Модуль 1311 взаимного прогнозирования затем получает опорное пространство B посредством применения процесса вращения и перемещения в пространстве к опорному пространству с использованием вычисленной RT-информации. Затем, модуль 1311 взаимного прогнозирования формирует прогнозированный объем для целевого объема кодирования в целевом пространстве кодирования с использованием информации в опорном пространстве B. Устройство 1300 кодирования трехмерных данных присоединяет, к информации заголовка и т.п. целевого пространства кодирования, RT-информацию, используемую для того, чтобы получать опорное пространство B.
[0407] Таким образом, модуль 1311 взаимного прогнозирования допускает повышение точности прогнозированного объема посредством формирования прогнозированного объема с использованием информации опорного пространства, после приближения к полной позиционной взаимосвязи между целевым пространством кодирования и опорным пространством, посредством применения процесса вращения и перемещения в пространстве к опорному пространству. Можно уменьшать объем кода, поскольку можно ограничивать остаток прогнозирования. Следует отметить, что описан пример, в котором ICP выполняется с использованием целевого пространства кодирования и опорного пространства, но не обязательно ограничивается этим. Например, модуль 1311 взаимного прогнозирования может вычислять RT-информацию посредством выполнения ICP с использованием, по меньшей мере, одного из (i) целевого пространства кодирования, в котором число вокселов или облаков точек отсекается, или (ii) опорного пространства, в котором число вокселов или облаков точек отсекается, чтобы уменьшать объем обработки.
[0408] Когда значение ICP-ошибки, полученное в качестве результата ICP, меньше предварительно определенного первого порогового значения, т.е. когда, например, позиционная взаимосвязь между целевым пространством кодирования и опорным пространством является аналогичной, модуль 1311 взаимного прогнозирования определяет то, что процесс вращения и перемещения в пространстве не требуется, и процесс вращения и перемещения в пространстве не должен обязательно выполняться. В этом случае, устройство 1300 кодирования трехмерных данных может управлять объемом служебной информации без присоединения RT-информации к потоку битов.
[0409] Когда значение ICP-ошибки превышает предварительно определенное второе пороговое значение, модуль 1311 взаимного прогнозирования определяет то, что изменение формы между пространствами является большим, и внутреннее прогнозирование может применяться ко всем объемам целевого пространства кодирования. В дальнейшем в этом документе, пространства, к которым применяется внутреннее прогнозирование, называются "внутренними пространствами". Второе пороговое значение превышает вышеуказанное первое пороговое значение. Настоящий вариант осуществления не ограничен ICP, и любой тип способа может использоваться при условии, что способ вычисляет RT-информацию с использованием двух вокселных наборов или двух наборов облаков точек.
[0410] Когда информация атрибутов, например, информация формы или цветовая информация, включается в трехмерные данные, модуль 1311 взаимного прогнозирования выполняет поиск, например, объема, информация атрибутов которого, например, информация формы или цветовая информация, является наиболее аналогичной целевому объему кодирования в опорном пространстве, в качестве прогнозированного объема для целевого объема кодирования в целевом пространстве кодирования. Это опорное пространство, например, представляет собой опорное пространство, для которого выполнен вышеуказанный процесс вращения и перемещения в пространстве. Модуль 1311 взаимного прогнозирования формирует прогнозированный объем с использованием объема (опорного объема), полученного через поиск. Фиг. 47 является схемой для описания операции формирования прогнозированного объема. При кодировании целевого объема кодирования (idx объема=0), показанного на фиг. 47 с использованием взаимного прогнозирования, модуль 1311 взаимного прогнозирования выполняет поиск объема с наименьшим остатком прогнозирования, который представляет собой разность между целевым объемом кодирования и опорным объемом, при последовательном сканировании опорного объема в опорном пространстве. Модуль 1311 взаимного прогнозирования выбирает объем с наименьшим остатком прогнозирования в качестве прогнозированного объема. Остатки прогнозирования целевого объема кодирования и прогнозированного объема кодируются посредством процессов, выполняемых посредством преобразователя 1303 и последующих процессоров. Остаток прогнозирования здесь представляет собой разность между информацией атрибутов целевого объема кодирования и информацией атрибутов прогнозированного объема. Устройство 1300 кодирования трехмерных данных присоединяет, к заголовку и т.п. потока битов, idx объема для опорного объема в опорном пространстве, в качестве прогнозированного объема.
[0411] В примере, показанном на фиг. 47, опорный объем с idx объема=4 из опорного пространства L0R0 выбирается в качестве прогнозированного объема для целевого объема кодирования. Остатки прогнозирования целевого объема кодирования и опорного объема и idx опорного объема=4 затем кодируются и присоединяются к потоку битов.
[0412] Следует отметить, что описан пример, в котором прогнозированный объем информации атрибутов формируется, но идентичный процесс может применяться к прогнозированному объему информации позиции.
[0413] Контроллер 1312 прогнозирования управляет тем, следует кодировать целевой объем кодирования с использованием внутреннего прогнозирования или взаимного прогнозирования. Режим, включающий в себя внутреннее прогнозирование и взаимное прогнозирование, называется здесь "режимом прогнозирования". Например, контроллер 1312 прогнозирования вычисляет остаток прогнозирования, когда целевой объем кодирования прогнозируется с использованием внутреннего прогнозирования, и остаток прогнозирования, когда целевой объем кодирования прогнозируется с использованием взаимного прогнозирования, в качестве значений оценки и выбирает режим прогнозирования, значение оценки которого меньше. Следует отметить, что контроллер 1312 прогнозирования может вычислять фактический объем кода посредством применения ортогонального преобразования, квантования и энтропийного кодирования к остатку прогнозирования внутреннего прогнозирования и к остатку прогнозирования взаимного прогнозирования и выбирать режим прогнозирования с использованием вычисленного объема кода в качестве значения оценки. Служебная информация (информация idx опорных объемов и т.д.), отличная от остатка прогнозирования, может добавляться в значение оценки. Контроллер 1312 прогнозирования может непрерывно выбирать внутреннее прогнозирование, когда заранее определена необходимость кодировать целевое пространство кодирования с использованием внутреннего пространства.
[0414] Энтропийный кодер 1313 формирует кодированный сигнал (кодированный поток битов) посредством кодирования переменной длины квантованного коэффициента, который представляет собой ввод из квантователя 1304. Конкретно, энтропийный кодер 1313, например, преобразует в двоичную форму квантованный коэффициент и арифметически кодирует получаемый двоичный сигнал.
[0415] Далее описывается устройство декодирования трехмерных данных, которое декодирует кодированный сигнал, сформированный посредством устройства 1300 кодирования трехмерных данных. Фиг. 48 является блок-схемой устройства 1400 декодирования трехмерных данных согласно настоящему варианту осуществления. Это устройство 1400 декодирования трехмерных данных включает в себя энтропийный декодер 1401, обратный квантователь 1402, обратный преобразователь 1403, сумматор 1404, запоминающее устройство 1405 опорных объемов, модуль 1406 внутреннего прогнозирования, запоминающее устройство 1407 опорных пространств, модуль 1408 взаимного прогнозирования и контроллер 1409 прогнозирования.
[0416] Энтропийный декодер 1401 декодирует на основе кода переменной длины кодированный сигнал (кодированный поток битов). Например, энтропийный декодер 1401 формирует двоичный сигнал посредством арифметического декодирования кодированного сигнала и формирует квантованный коэффициент с использованием сформированного двоичного сигнала.
[0417] Обратный квантователь 1402 формирует обратно квантованный коэффициент посредством обратного квантования квантованного коэффициента, введенного из энтропийного декодера 1401, с использованием параметра квантования, присоединенного к потоку битов, и т.п.
[0418] Обратный преобразователь 1403 формирует остаток прогнозирования посредством обратного преобразования обратно квантованного коэффициента, введенного из обратного квантователя 1402. Например, обратный преобразователь 1403 формирует остаток прогнозирования посредством обратного ортогонального преобразования обратно квантованного коэффициента, на основе информации, присоединенной к потоку битов.
[0419] Сумматор 1404 суммирует, чтобы формировать восстановленный объем, (i) остаток прогнозирования, сформированный посредством обратного преобразователя 1403, с (ii) прогнозированным объемом, сформированным через внутреннее прогнозирование или внутреннее прогнозирование. Этот восстановленный объем выводится в качестве декодированных трехмерных данных и сохраняется в запоминающем устройстве 1405 опорных объемов или запоминающем устройстве 1407 опорных пространств.
[0420] Модуль 1406 внутреннего прогнозирования формирует прогнозированный объем через внутреннее прогнозирование с использованием опорного объема в запоминающем устройстве 1405 опорных объемов и информации, присоединенной к потоку битов. Конкретно, модуль 1406 внутреннего прогнозирования получает информацию соседних объемов (например, idx объема), присоединенную к потоку битов, и информацию режима прогнозирования и формирует прогнозированный объем через режим, указываемый посредством информации режима прогнозирования, с использованием соседнего объема, указываемого в информации соседних объемов. Следует отметить, что конкретика этих процессов является идентичной вышеуказанным процессам, выполняемым посредством модуля 1309 внутреннего прогнозирования, за исключением того, для чего используется информация, присоединенная к потоку битов.
[0421] Модуль 1408 взаимного прогнозирования формирует прогнозированный объем через взаимное прогнозирование с использованием опорного пространства в запоминающем устройстве 1407 опорных пространств и информации, присоединенной к потоку битов. Конкретно, модуль 1408 взаимного прогнозирования применяет процесс вращения и перемещения в пространстве к опорному пространству с использованием RT-информации в расчете на опорное пространство, присоединенной к потоку битов, и формирует прогнозированный объем с использованием опорного пространства после вращения и перемещения в пространстве. Следует отметить, что, когда RT-флаг присутствует в потоке битов в расчете на опорное пространство, модуль 1408 взаимного прогнозирования применяет процесс вращения и перемещения в пространстве к опорному пространству в соответствии с RT-флагом. Следует отметить, что конкретика этих процессов является идентичной вышеуказанным процессам, выполняемым посредством модуля 1311 взаимного прогнозирования, за исключением того, для чего используется информация, присоединенная к потоку битов.
[0422] Контроллер 1409 прогнозирования управляет тем, следует декодировать целевой объем декодирования с использованием внутреннего прогнозирования или взаимного прогнозирования. Например, контроллер 1409 прогнозирования выбирает внутреннее прогнозирование или взаимное прогнозирование в соответствии с информацией, которая присоединяется к потоку битов, и указывает режим прогнозирования, который должен использоваться. Следует отметить, что контроллер 1409 прогнозирования может непрерывно выбирать внутреннее прогнозирование, когда заранее определена необходимость декодировать целевое пространство декодирования с использованием внутреннего пространства.
[0423] В дальнейшем в этом документе описываются варьирования настоящего варианта осуществления. В настоящем варианте осуществления, описан пример, в котором вращение и перемещение в пространстве применяется в единицах пространств, но вращение и перемещение в пространстве также может применяться в меньших единицах. Например, устройство 1300 кодирования трехмерных данных может разделять пространство на подпространства и применять вращение и перемещение в пространстве в единицах подпространств. В этом случае, устройство 1300 кодирования трехмерных данных формирует RT-информацию в расчете на подпространство и присоединяет сформированную RT-информацию к заголовку и т.п. потока битов. Устройство 1300 кодирования трехмерных данных может применять вращение и перемещение в пространстве в единицах объемов, которые представляют собой единицу кодирования. В этом случае, устройство 1300 кодирования трехмерных данных формирует RT-информацию в единицах кодированных объемов и присоединяет сформированную RT-информацию к заголовку и т.п. потока битов. Вышеуказанное также может комбинироваться. Другими словами, устройство 1300 кодирования трехмерных данных может применять вращение и перемещение в пространстве в больших единицах и затем применять вращение и перемещение в пространстве в небольших единицах. Например, устройство 1300 кодирования трехмерных данных может применять вращение и перемещение в пространстве в единицах пространств, а также может применять различные вращения и перемещения в пространстве к каждому из множества объемов, включенных в полученные пространства.
[0424] В настоящем варианте осуществления, описан пример, в котором вращение и перемещение в пространстве применяется к опорному пространству, но не обязательно ограничивается этим. Например, устройство 1300 кодирования трехмерных данных может применять процесс масштабирования и изменять размер трехмерных данных. Устройство 1300 кодирования трехмерных данных также может применять одно или два из вращения, перемещения в пространстве и масштабирования. При применении процессов на нескольких стадиях и различных единицах, как указано выше, тип процессов, применяемых в каждой единице, может отличаться. Например, вращение и перемещение в пространстве может применяться в единицах пространств, и перемещение в пространстве может применяться в единицах объемов.
[0425] Следует отметить, что эти варьирования также являются применимыми к устройству 1400 декодирования трехмерных данных.
[0426] Как указано выше, устройство 1300 кодирования трехмерных данных согласно настоящему варианту осуществления выполняет следующие процессы. Фиг. 48 является блок-схемой последовательности операций способа для процесса взаимного прогнозирования, выполняемого посредством устройства 1300 кодирования трехмерных данных.
[0427] Устройство 1300 кодирования трехмерных данных формирует прогнозированную информацию позиции (например, прогнозированный объем) с использованием информации позиции относительно трехмерных точек, включенных в трехмерные опорные данные (например, опорное пространство), ассоциированные со временем, отличающимся со времени, ассоциированного с текущими трехмерными данными (например, целевым пространством кодирования) (S1301). Конкретно, устройство 1300 кодирования трехмерных данных формирует прогнозированную информацию позиции посредством применения процесса вращения и перемещения в пространстве к информации позиции относительно трехмерных точек, включенных в трехмерные опорные данные.
[0428] Следует отметить, что устройство 1300 кодирования трехмерных данных может выполнять процесс вращения и перемещения в пространстве с использованием первой единицы (например, пространств) и может выполнять формирование прогнозированной информации позиции с использованием второй единицы (например, объемов), которая меньше первой единицы. Например, устройство 1300 кодирования трехмерных данных выполняет поиск объема из множества объемов, включенных в опорное пространство после вращения и перемещения в пространстве, информация позиции которого отличается меньше всего от информации позиции целевого объема кодирования, включенного в целевое пространство кодирования. Следует отметить, что устройство 1300 кодирования трехмерных данных может выполнять процесс вращения и перемещения в пространстве и формирование прогнозированной информации позиции в идентичной единице.
[0429] Устройство 1300 кодирования трехмерных данных может формировать прогнозированную информацию позиции посредством применения (i) первого процесса вращения и перемещения в пространстве к информации позиции относительно трехмерных точек, включенных в трехмерные опорные данные, и (ii) второго процесса вращения и перемещения в пространстве к информации позиции относительно трехмерных точек, полученной через первый процесс вращения и перемещения в пространстве, причем первый процесс вращения и перемещения в пространстве использует первую единицу (например, пространства), и причем второй процесс вращения и перемещения в пространстве использует вторую единицу (например, объемы), которая меньше первой единицы.
[0430] Например, как проиллюстрировано на фиг. 41, информация позиции относительно трехмерных точек и прогнозированная информация позиции представляется с использованием структуры в виде дерева октантов. Например, информация позиции относительно трехмерных точек и прогнозированная информация позиции выражается в порядке сканирования, который приоритезирует широту выше глубины в структуре в виде дерева октантов. Например, информация позиции относительно трехмерных точек и прогнозированная информация позиции выражается в порядке сканирования, который приоритезирует глубину выше широты в структуре в виде дерева октантов.
[0431] Как проиллюстрировано на фиг. 46, устройство 1300 кодирования трехмерных данных кодирует RT-флаг, который указывает то, следует или нет применять процесс вращения и перемещения в пространстве к информации позиции относительно трехмерных точек, включенных в трехмерные опорные данные. Другими словами, устройство 1300 кодирования трехмерных данных формирует кодированный сигнал (кодированный поток битов), включающий в себя RT-флаг. Устройство 1300 кодирования трехмерных данных кодирует RT-информацию, которая указывает контент процесса вращения и перемещения в пространстве. Другими словами, устройство 1300 кодирования трехмерных данных формирует кодированный сигнал (кодированный поток битов), включающий в себя RT-информацию. Следует отметить, что устройство 1300 кодирования трехмерных данных может кодировать RT-информацию, когда RT-флаг указывает необходимость применять процесс вращения и перемещения в пространстве, и не должен обязательно кодировать RT-информацию, когда RT-флаг указывает необходимость не применять процесс вращения и перемещения в пространстве.
[0432] Трехмерные данные включают в себя, например, информацию позиции относительно трехмерных точек и информацию атрибутов (цветовую информацию и т.д.) каждой трехмерной точки. Устройство 1300 кодирования трехмерных данных формирует прогнозированную информацию атрибутов с использованием информации атрибутов трехмерных точек, включенных в трехмерные опорные данные (S1302).
[0433] Устройство 1300 кодирования трехмерных данных затем кодирует информацию позиции относительно трехмерных точек, включенных в текущие трехмерные данные, с использованием прогнозированной информации позиции. Например, как проиллюстрировано на фиг. 38, устройство 1300 кодирования трехмерных данных вычисляет дифференциальную информацию позиции, причем дифференциальная информация позиции представляет собой разность между прогнозированной информацией позиции и информацией позиции относительно трехмерных точек, включенных в текущие трехмерные данные (S1303).
[0434] Устройство 1300 кодирования трехмерных данных кодирует информацию атрибутов трехмерных точек, включенных в текущие трехмерные данные, с использованием прогнозированной информации атрибутов. Например, устройство 1300 кодирования трехмерных данных вычисляет дифференциальную информацию атрибутов, причем дифференциальная информация атрибутов представляет собой разность между прогнозированной информацией атрибутов и информацией атрибутов относительно трехмерных точек, включенных в текущие трехмерные данные (S1304). Устройство 1300 кодирования трехмерных данных затем выполняет преобразование и квантование для вычисленной дифференциальной информации атрибутов (S1305).
[0435] В завершение, устройство 1300 кодирования трехмерных данных кодирует (например, энтропийно кодирует) дифференциальную информацию позиции и квантованную дифференциальную информацию атрибутов (S1036). Другими словами, устройство 1300 кодирования трехмерных данных формирует кодированный сигнал (кодированный поток битов), включающий в себя дифференциальную информацию позиции и дифференциальную информацию атрибутов.
[0436] Следует отметить, что, когда информация атрибутов не включается в трехмерные данные, устройство 1300 кодирования трехмерных данных не должно обязательно выполнять этапы S1302, S1304 и S1305. Устройство 1300 кодирования трехмерных данных также может выполнять только одно из кодирования информации позиции относительно трехмерных точек и кодирования информации атрибутов трехмерных точек.
[0437] Порядок процессов, показанных на фиг. 49, представляет собой просто пример и не ограничен этим. Например, поскольку процессы относительно информации позиции (S1301 и S1303) и процессы относительно информации атрибутов (S1302, S1304 и S1305) являются отдельными друг от друга, они могут выполняться в предпочтительном порядке, и их часть также может выполняться параллельно.
[0438] В силу вышеуказанного, устройство 1300 кодирования трехмерных данных согласно настоящему варианту осуществления формирует прогнозированную информацию позиции с использованием информации позиции относительно трехмерных точек, включенных в трехмерные опорные данные, ассоциированные со временем, отличающимся от времени, ассоциированного с текущими трехмерными данными; и кодирует дифференциальную информацию позиции, которая представляет собой разность между прогнозированной информацией позиции и информацией позиции относительно трехмерных точек, включенных в текущие трехмерные данные. Это позволяет повышать эффективность кодирования, поскольку можно уменьшать объем данных кодированного сигнала.
[0439] Устройство 1300 кодирования трехмерных данных согласно настоящему варианту осуществления формирует прогнозированную информацию атрибутов с использованием информации атрибутов относительно трехмерных точек, включенных в трехмерные опорные данные; и кодирует дифференциальную информацию атрибутов, которая представляет собой разность между прогнозированной информацией атрибутов и информацией атрибутов относительно трехмерных точек, включенных в текущие трехмерные данные. Это позволяет повышать эффективность кодирования, поскольку можно уменьшать объем данных кодированного сигнала.
[0440] Например, устройство 1300 кодирования трехмерных данных включает в себя процессор и запоминающее устройство. Процессор использует запоминающее устройство для того, чтобы выполнять вышеуказанные процессы.
[0441] Фиг. 48 является блок-схемой последовательности операций способа для процесса взаимного прогнозирования, выполняемого посредством устройства 1400 декодирования трехмерных данных.
[0442] Устройство 1400 декодирования трехмерных данных декодирует (например, энтропийно декодирует) дифференциальную информацию позиции и дифференциальную информацию атрибутов из кодированного сигнала (кодированного потока битов) (S1401).
[0443] Устройство 1400 декодирования трехмерных данных декодирует, из кодированного сигнала, RT-флаг, который указывает то, следует или нет применять процесс вращения и перемещения в пространстве к информации позиции относительно трехмерных точек, включенных в трехмерные опорные данные. Устройство 1400 декодирования трехмерных данных кодирует RT-информацию, которая указывает контент процесса вращения и перемещения в пространстве. Следует отметить, что устройство 1400 декодирования трехмерных данных может декодировать RT-информацию, когда RT-флаг указывает необходимость применять процесс вращения и перемещения в пространстве, и не должен обязательно декодировать RT-информацию, когда RT-флаг указывает необходимость не применять процесс вращения и перемещения в пространстве.
[0444] Устройство 1400 декодирования трехмерных данных затем выполняет обратное преобразование и обратное квантование для декодированной дифференциальной информации атрибутов (S1402).
[0445] Устройство 1400 декодирования трехмерных данных затем формирует прогнозированную информацию позиции (например, прогнозированный объем) с использованием информации позиции относительно трехмерных точек, включенных в трехмерные опорные данные (например, опорное пространство), ассоциированные со временем, отличающимся от времени, ассоциированного с текущими трехмерными данными (например, целевым пространством декодирования) (S1403). Конкретно, устройство 1400 декодирования трехмерных данных формирует прогнозированную информацию позиции посредством применения процесса вращения и перемещения в пространстве к информации позиции относительно трехмерных точек, включенных в трехмерные опорные данные.
[0446] Более конкретно, когда RT-флаг указывает необходимость применять процесс вращения и перемещения в пространстве, устройство 1400 декодирования трехмерных данных применяет процесс вращения и перемещения в пространстве к информации позиции относительно трехмерных точек, включенных в трехмерные опорные данные, указываемые в RT-информации. Напротив, когда RT-флаг указывает необходимость не применять процесс вращения и перемещения в пространстве, устройство 1400 декодирования трехмерных данных не применяет процесс вращения и перемещения в пространстве к информации позиции относительно трехмерных точек, включенных в трехмерные опорные данные.
[0447] Следует отметить, что устройство 1400 декодирования трехмерных данных может выполнять процесс вращения и перемещения в пространстве с использованием первой единицы (например, пространств) и может выполнять формирование прогнозированной информации позиции с использованием второй единицы (например, объемов), которая меньше первой единицы. Следует отметить, что устройство 1400 декодирования трехмерных данных может выполнять процесс вращения и перемещения в пространстве и формирование прогнозированной информации позиции в идентичной единице.
[0448] Устройство 1400 декодирования трехмерных данных может формировать прогнозированную информацию позиции посредством применения (i) первого процесса вращения и перемещения в пространстве к информации позиции относительно трехмерных точек, включенных в трехмерные опорные данные, и (ii) второго процесса вращения и перемещения в пространстве к информации позиции относительно трехмерных точек, полученной через первый процесс вращения и перемещения в пространстве, причем первый процесс вращения и перемещения в пространстве использует первую единицу (например, пространства), и причем второй процесс вращения и перемещения в пространстве использует вторую единицу (например, объемы), которая меньше первой единицы.
[0449] Например, как проиллюстрировано на фиг. 41, информация позиции относительно трехмерных точек и прогнозированная информация позиции представляется с использованием структуры в виде дерева октантов. Например, информация позиции относительно трехмерных точек и прогнозированная информация позиции выражается в порядке сканирования, который приоритезирует широту выше глубины в структуре в виде дерева октантов. Например, информация позиции относительно трехмерных точек и прогнозированная информация позиции выражается в порядке сканирования, который приоритезирует глубину выше широты в структуре в виде дерева октантов.
[0450] Устройство 1400 декодирования трехмерных данных формирует прогнозированную информацию атрибутов с использованием информации атрибутов трехмерных точек, включенных в трехмерные опорные данные (S1404).
[0451] Устройство 1400 декодирования трехмерных данных затем восстанавливает информацию позиции относительно трехмерных точек, включенных в текущие трехмерные данные, посредством декодирования кодированной информации позиции, включенной в кодированный сигнал, с использованием прогнозированной информации позиции. Кодированная информация позиции здесь представляет собой дифференциальную информацию позиции. Устройство 1400 декодирования трехмерных данных восстанавливает информацию позиции относительно трехмерных точек, включенных в текущие трехмерные данные, посредством добавления дифференциальной информации позиции в прогнозированную информацию позиции (S1405).
[0452] Устройство 1400 декодирования трехмерных данных восстанавливает информацию атрибутов трехмерных точек, включенных в текущие трехмерные данные, посредством декодирования кодированной информации атрибутов, включенной в кодированный сигнал, с использованием прогнозированной информации атрибутов. Кодированная информация атрибутов здесь представляет собой дифференциальную информацию позиции. Устройство 1400 декодирования трехмерных данных восстанавливает информацию атрибутов относительно трехмерных точек, включенных в текущие трехмерные данные, посредством добавления дифференциальной информации атрибутов в прогнозированную информацию атрибутов (S1406).
[0453] Следует отметить, что, когда информация атрибутов не включается в трехмерные данные, устройство 1400 декодирования трехмерных данных не должно обязательно выполнять этапы S1402, S1404 и S1406. Устройство 1400 декодирования трехмерных данных также может выполнять только одно из декодирования информации позиции относительно трехмерных точек и декодирования информации атрибутов трехмерных точек.
[0454] Порядок процессов, показанных на фиг. 50, представляет собой просто пример и не ограничен этим. Например, поскольку процессы относительно информации позиции (S1403 и S1405) и процессы относительно информации атрибутов (S1402, S1404 и S1406) являются отдельными друг от друга, они могут выполняться в предпочтительном порядке, и их часть также может выполняться параллельно.
[0455] Вариант 8 осуществления
Информация облака трехмерных точек включает в себя геометрическую информацию (геометрию) и информацию атрибутов (атрибут). Геометрическая информация включает в себя координаты (координату X, координату Y, координату Z) относительно определенной точки. Когда геометрическая информация кодируется, способ представления позиции каждой из трехмерных точек в представлении в виде дерева октантов и кодирования информации дерева октантов, чтобы уменьшать объем кода, используется вместо прямого кодирования координат трехмерной точки.
[0456] С другой стороны, информация атрибутов включает в себя информацию, указывающую, например, цветовую информацию (RGB, YUV и т.д.) каждой трехмерной точки, отражательную способность и нормальный вектор. Например, устройство кодирования трехмерных данных допускает кодирование информации атрибутов с использованием способа кодирования, отличающегося от способа, используемого для того, чтобы кодировать геометрическую информацию.
[0457] В настоящем варианте осуществления, способ кодирования информации атрибутов поясняется. Следует отметить, что в настоящем варианте осуществления, способ поясняется на основе примерного случая с использованием целочисленных значений в качестве значений информации атрибутов. Например, когда каждый из цветовых RGB- или YUV-компонентов имеет 8-битовую точность, цветовой компонент составляет целочисленное значение в диапазоне от 0 до 255. Когда значение отражательной способности имеет 10-битовую точность, значение отражательной способности составляет целое число в диапазоне от 0 до 1023. Следует отметить, что когда битовая точность информации атрибутов представляет собой десятичную точность, устройство кодирования трехмерных данных может умножать значение на значение масштаба, чтобы округлять его до целочисленного значения таким образом, что значение информации атрибутов становится целочисленным значением. Следует отметить, что устройство кодирования трехмерных данных может добавлять значение масштаба, например, в заголовок потока битов.
[0458] В качестве способа кодирования информации атрибутов трехмерной точки, есть возможность вычислять прогнозированное значение информации атрибутов трехмерной точки и кодировать разность (остаток прогнозирования) между исходным значением информации атрибутов и прогнозированным значением. Например, при условии, что значение информации атрибутов относительно трехмерной точки p составляет Ap, и прогнозированное значение составляет Pp, устройство кодирования трехмерных данных кодирует абсолютное разностное значение Diffp=|Ap-Pp|. В этом случае, когда высокоточное прогнозированное значение Pp может формироваться, абсолютное дифференциальное значение Diffp является небольшим. Таким образом, например, можно сокращать объем кода посредством энтропийного кодирования абсолютного дифференциального значения Diffp с использованием таблицы кодирования, что уменьшает число битов возникновения больше, когда абсолютное дифференциальное значение Diffp меньше.
[0459] В качестве способа формирования прогнозного значения информации атрибутов, есть возможность использовать информацию атрибутов опорной трехмерной точки, которая представляет собой другую трехмерную точку, которая граничит с текущей трехмерной точкой, которая должна кодироваться. Здесь, опорная трехмерная точка представляет собой трехмерную точку в диапазоне предварительно определенного расстояния от текущей трехмерной точки. Например, когда имеются текущая трехмерная точка p=(x1, y1, z1) и трехмерная точка q=(x2, y2, z2), устройство кодирования трехмерных данных вычисляет евклидово расстояние d(p, q) между трехмерной точкой p и трехмерной точкой q, представленное посредством уравнения A1.
[0460] Математическое выражение 1
(уравнение A1)
[0461] Устройство кодирования трехмерных данных определяет то, что позиция трехмерной точки q находится ближе к позиции текущей трехмерной точки p, когда евклидово расстояние d(p, q) меньше предварительно определенного порогового значения THd, и определяет использовать значение информации атрибутов трехмерной точки q для того, чтобы формировать прогнозированное значение информации атрибутов текущей трехмерной точки p. Следует отметить, что способ вычисления расстояния может представлять собой другой способ, и может использоваться расстояние Махаланобиса и т.п. Помимо этого, устройство кодирования трехмерных данных может определять не использовать, в обработке прогнозирования, любую трехмерную точку за пределами предварительно определенного диапазона расстояния от текущей трехмерной точки. Например, когда трехмерная точка r присутствует, и расстояние d(p, r) между текущей трехмерной точкой p и трехмерной точкой r превышает или равно пороговому значению THd, устройство кодирования трехмерных данных может определять не использовать трехмерную точку r для прогнозирования. Следует отметить, что устройство кодирования трехмерных данных может добавлять информацию, указывающую пороговое значение THd, например, в заголовок потока битов.
[0462] Фиг. 51 является схемой, иллюстрирующей пример трехмерных точек. В этом примере, расстояние d(p q) между текущей трехмерной точкой p и трехмерной точкой q меньше порогового значения THd. Таким образом, устройство кодирования трехмерных данных определяет то, что трехмерная точка q представляет собой опорную трехмерную точку относительно текущей трехмерной точки p, и определяет использовать значение информации Aq атрибутов трехмерной точки q для того, чтобы формировать прогнозированное значение Pp информации Ap атрибутов текущей трехмерной точки p.
[0463] Напротив, расстояние d(p, r) между текущей трехмерной точкой p и трехмерной точкой r превышает или равно пороговому значению THd. Таким образом, устройство кодирования трехмерных данных определяет то, что трехмерная точка r не представляет собой опорную трехмерную точку относительно текущей трехмерной точки p, и определяет не использовать значение информации Ar атрибутов трехмерной точки r, чтобы формировать прогнозированное значение Pp информации Ap атрибутов текущей трехмерной точки p.
[0464] Помимо этого, при кодировании информации атрибутов относительно целевой трехмерной точки с использованием прогнозированного значения, устройство кодирования трехмерных данных использует трехмерную точку, информация атрибутов которой уже кодирована и декодирована, в качестве опорной трехмерной точки. Аналогично, при декодировании информации атрибутов текущей трехмерной точки, которая должна декодироваться, устройство декодирования трехмерных данных использует трехмерную точку, информация атрибутов которой уже декодирована, в качестве опорной трехмерной точки. Таким образом, можно формировать идентичное прогнозированное значение во время кодирования и декодирования. Таким образом, поток битов трехмерной точки, сформированной посредством кодирования, может декодироваться корректно на стороне декодирования.
[0465] Кроме того, при кодировании информации атрибутов каждой из трехмерных точек, есть возможность классифицировать трехмерную точку как один из множества слоев с использованием геометрической информации трехмерной точки и затем кодировать информацию атрибутов. Здесь, каждый из классифицированных слоев называется "уровнем детализации (LoD)". В дальнейшем поясняется способ формирования LoD со ссылкой на фиг. 52.
[0466] Во-первых, устройство кодирования трехмерных данных выбирает начальную точку a0 и назначает начальную точку a0 LoD0. Затем, устройство кодирования трехмерных данных извлекает точку a1, удаленную от точки a0 более чем на пороговое значение Thres_LoD[0] LoD0, и назначает точку a1 LoD0. Затем, устройство кодирования трехмерных данных извлекает точку a2, удаленную от точки a1 более чем на пороговое значение Thres_LoD[0] LoD0, и назначает точку a2 LoD0. Таким образом, устройство кодирования трехмерных данных конфигурирует LoD0 таким образом, что расстояния между точками в LoD0 превышают пороговое значение Thres_LoD[0].
[0467] Затем, устройство кодирования трехмерных данных выбирает точку 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].
[0468] Затем, устройство кодирования трехмерных данных выбирает точку 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]. Например, как проиллюстрировано на фиг. 53, пороговые значения Thres_LoD[0], Thres_LoD[1] и Thres_LoD[2] соответствующих LoD задаются.
[0469] Помимо этого, устройство кодирования трехмерных данных может добавлять информацию, указывающую пороговое значение каждого LoD, например, в заголовок потока битов. Например, в случае примера, проиллюстрированного на фиг. 53, устройство кодирования трехмерных данных может добавлять пороговые значения Thres_LoD[0], Thres_LoD[1] и Thres_LoD[2] соответствующих LoD в заголовок.
[0470] Альтернативно, устройство кодирования трехмерных данных может назначать все трехмерные точки, которые еще не назначены ни одному LoD, в LoD крайнего нижнего слоя. В этом случае, устройство кодирования трехмерных данных допускает уменьшение объема кода заголовка за счет неназначения порогового значения LoD крайнего нижнего слоя заголовку. Например, в случае примера, проиллюстрированного на фиг. 53, устройство кодирования трехмерных данных назначает пороговые значения Thres_LoD[0] и Thres_LoD[1] заголовку и не назначает Thres_LoD[2] заголовку. В этом случае, устройство кодирования трехмерных данных может оценивать значение 0 Thres_LoD[2]. Помимо этого, устройство кодирования трехмерных данных может добавлять число LoD в заголовок. Таким образом, устройство кодирования трехмерных данных допускает определение LoD крайнего нижнего слоя с использованием числа LoD.
[0471] Помимо этого, задание пороговых значений для LoD соответствующих слоев таким образом, что большее пороговое значение задается для верхнего слоя, приводит к тому, что верхний слой (слой ближе к LoD0) имеет разреженное облако точек (разреженное), в котором трехмерные точки находятся дальше, и приводит к тому, что нижний слой имеет иметь плотное облако точек (плотное), в котором трехмерные точки находятся ближе. Следует отметить, что, в примере, проиллюстрированном на фиг. 53, LoD0 представляет собой крайний верхний слой.
[0472] Помимо этого, способ выбора начальной трехмерной точки во время задания каждого LoD может зависеть от порядка кодирования во время кодирования геометрической информации. Например, устройство кодирования трехмерных данных конфигурирует LoD0 посредством выбора трехмерной точки, кодированной сначала во время кодирования геометрической информации, в качестве начальной точки a0 LoD0 и выбора точки a1 и точки a2 из начальной точки a0 в качестве начала координат. Устройство кодирования трехмерных данных затем может выбирать трехмерную точку, геометрическая информация которой кодирована в самое раннее время из трехмерных точек, которые не принадлежат LoD0, в качестве начальной точки b0 LoD1. Другими словами, устройство кодирования трехмерных данных может выбирать трехмерную точку, геометрическая информация которой кодирована в самое раннее время из трехмерных точек, которые не принадлежат слоям (LoD0 - LoDn-1) выше LoDn, в качестве начальной точки n0 LoDn. Таким образом, устройство кодирования трехмерных данных допускает конфигурирование LoD, идентичного LoD при кодировании, посредством использования, при декодировании, способа выбора начальной точки, аналогичного способу, используемому при кодировании, что предоставляет соответствующее декодирование потока битов. Более конкретно, устройство кодирования трехмерных данных выбирает трехмерную точку, геометрическая информация которой декодирована в самое раннее время из трехмерных точек, которые не принадлежат слоям выше LoDn, в качестве начальной точки n0 LoDn.
[0473] В дальнейшем в этом документе, приводится описание способа формирования прогнозированного значения информации атрибутов каждой трехмерной точки с использованием информации LoD. Например, при кодировании трехмерных точек, начиная с трехмерных точек, включенных в LoD0, устройство кодирования трехмерных данных формирует текущие трехмерные точки, которые включаются в LoD1 с использованием кодированной и декодированной (далее также называется просто "кодированной") информации атрибутов, включенной в LoD0 и LoD1. Таким образом, устройство кодирования трехмерных данных формирует прогнозированное значение информации атрибутов относительно трехмерной точки, включенной в LoDn, с использованием кодированной информации атрибутов, включенной в LoDn' (n'<=n). Другими словами, устройство кодирования трехмерных данных не использует информацию атрибутов каждой из трехмерных точек, включенных в любой слой ниже LoDn, чтобы вычислять прогнозированное значение информации атрибутов каждой из трехмерных точек, включенных в LoDn.
[0474] Например, устройство кодирования трехмерных данных вычисляет среднее информации атрибутов N или меньше трехмерных точек из кодированных трехмерных точек, окружающих текущую трехмерную точку, которая должна кодироваться, чтобы формировать прогнозированное значение информации атрибутов текущей трехмерной точки. Помимо этого, устройство кодирования трехмерных данных может суммировать значение N, например, с заголовком потока битов. Следует отметить, что устройство кодирования трехмерных данных может изменять значение N для каждой трехмерной точки и может суммировать значение N для каждой трехмерной точки. Это обеспечивает выбор соответствующего N для каждой трехмерной точки, что позволяет увеличивать точность прогнозированного значения. Соответственно, можно уменьшать остаток прогнозирования. Альтернативно, устройство кодирования трехмерных данных может суммировать значение N с заголовком потока битов и может фиксировать значение, указывающее N в потоке битов. Это исключает необходимость кодировать или декодировать значение N для каждой трехмерной точки, что позволяет уменьшать объем обработки. Помимо этого, устройство кодирования трехмерных данных может кодировать значения N отдельно для каждого LoD. Таким образом, можно увеличивать эффективность кодирования посредством выбора соответствующего N для каждого LoD.
[0475] Альтернативно, устройство кодирования трехмерных данных может вычислять прогнозированное значение информации атрибутов трехмерной точки на основе средневзвешенных значений информации атрибутов кодированных N соседних трехмерных точек. Например, устройство кодирования трехмерных данных вычисляет весовые коэффициенты с использованием информации расстояния между текущей трехмерной точкой и каждой из N соседних трехмерных точек.
[0476] При кодировании значения N для каждого LoD, например, устройство кодирования трехмерных данных задает большее значение N равным LoD верхнего слоя и задает меньшее значение N равным LoD нижнего слоя. Расстояние между трехмерными точками, принадлежащими LoD верхнего слоя, является большим, имеется вероятность того, что можно увеличивать точность прогнозирования посредством задания большого значения N, выбора множества соседних трехмерных точек и усреднения значений. Кроме того, расстояние между трехмерными точками, принадлежащими LoD нижнего слоя, является небольшим, можно выполнять эффективное прогнозирование при сокращении объема обработки усреднения посредством задания меньшего значения N.
[0477] Фиг. 54 является схемой, иллюстрирующей пример информации атрибутов, которая должна использоваться для прогнозированных значений. Как описано выше, прогнозированное значение точки P, включенной в LoDN, формируется с использованием кодированной периферийной точки P', включенной в LoDN' (N'<=N). Здесь, соседняя точка P' выбирается на основе расстояния от точки P. Например, прогнозированное значение информации атрибутов точки b2, проиллюстрированной на фиг. 54, формируется с использованием информации атрибутов каждой из точек a0, a1, b0 и b1.
[0478] Соседние точки, которые должны выбираться, варьируются в зависимости от значений N, описанных выше. Например, в случае N=5, a0, a1, a2, b0 и b1 выбираются в качестве соседних точек. В случае N=4, a0, a1, a2 и b1 выбираются на основе информации расстояния.
[0479] Прогнозированное значение вычисляется посредством зависимого от расстояния усреднения со взвешиванием. Например, в примере, проиллюстрированном на фиг. 54, прогнозированное значение a2p точки a2 вычисляется посредством усреднения со взвешиванием информации атрибутов каждой из точки a0 и a1, как представлено посредством уравнения A2 и уравнения A3. Следует отметить, что Ai представляет собой значение информации атрибутов ai.
[0480] Математическое выражение 2
(уравнение A2)
(уравнение A3)
[0481] Помимо этого, прогнозированное значение b2p точки b2 вычисляется посредством усреднения со взвешиванием информации атрибутов каждой из точки a0, a1, a2, b0 и b1, как представлено посредством уравнения A4 и уравнения A6. Следует отметить, что Bi представляет собой значение информации атрибутов bi.
[0482] Математическое выражение 3
(уравнение A4)
(уравнение A5)
(уравнение A6)
[0483] Помимо этого, устройство кодирования трехмерных данных может вычислять разностное значение (остаток прогнозирования), сформированное из значения информации атрибутов трехмерной точки и соседних точек, и может квантовать вычисленный остаток прогнозирования. Например, устройство кодирования трехмерных данных выполняет квантование посредством деления остатка прогнозирования на масштаб квантования (также называемый "шагом квантования"). В этом случае, ошибка (ошибка квантования), которая может формироваться посредством квантования, уменьшается по мере того, как масштаб квантования меньше. В другом случае, в котором масштаб квантования больше, результирующая ошибка квантования больше.
[0484] Следует отметить, что устройство кодирования трехмерных данных может изменять масштаб квантования, который должен использоваться для каждого LoD. Например, устройство кодирования трехмерных данных уменьшает масштаб квантования больше для верхнего слоя и увеличивает масштаб квантования больше для нижнего слоя. Значение информации атрибутов трехмерной точки, принадлежащей верхнему слою, может использоваться в качестве прогнозированного значения информации атрибутов трехмерной точки, принадлежащей нижнему слою. Таким образом, можно увеличивать эффективность кодирования посредством уменьшения масштаба квантования для верхнего слоя, чтобы уменьшать ошибку квантования, которая может формироваться в верхнем слое, и увеличивать точность прогнозирования прогнозированного значения. Следует отметить, что устройство кодирования трехмерных данных может добавлять масштаб квантования, который должен использоваться для каждого LoD, например, в заголовок. Таким образом, устройство кодирования трехмерных данных может декодировать масштаб квантования корректно, за счет этого надлежаще декодируя поток битов.
[0485] Устройство кодирования трехмерных данных может преобразовывать целочисленное значение со знаком (квантованное значение со знаком), которое представляет собой квантованный остаток прогнозирования, в целочисленное значение без знака (квантованное значение без знака). Это исключает необходимость рассматривать возникновение отрицательного целого числа при энтропийном кодировании остатка прогнозирования. Следует отметить, что устройство кодирования трехмерных данных должно не всегда преобразовывать целочисленное значение со знаком в целочисленное значение без знака, и, например, что устройство кодирования трехмерных данных может энтропийно кодировать знаковый бит отдельно.
[0486] Остаток прогнозирования вычисляется посредством вычитания прогнозированного значения из исходного значения. Например, как представлено посредством уравнения A7, остаток прогнозирования a2r точки a2 вычисляется посредством вычитания прогнозированного значения a2p точки a2 из значения A2 информации атрибутов точки a2. Как представлено посредством уравнения A8, остаток прогнозирования b2r точки b2 вычисляется посредством вычитания прогнозированного значения b2p точки b2 из значения B2 информации атрибутов точки b2.
[0487] a2r=A2-a2p (уравнение A7)
[0488] b2r=B2-b2p (уравнение A8)
[0489] Помимо этого, остаток прогнозирования квантуется посредством деления на шаг квантования (QS). Например, квантованное значение a2q точки a2 вычисляется согласно уравнению A9. Квантованное значение b2q точки b2 вычисляется согласно уравнению A10. Здесь, QS_LoD0 представляет собой QS для LoD0, и QS_LoD1 представляет собой QS для LoD1. Другими словами, QS может изменяться согласно LoD.
[0490] a2q=a2r/QS_LoD0 (уравнение A9)
[0491] b2q=b2r/QS_LoD1 (уравнение A10)
[0492] Помимо этого, устройство кодирования трехмерных данных преобразует целочисленные значения со знаком, которые представляют собой квантованные значения, как указано ниже, в целочисленные значения без знака, как указано ниже. Когда целочисленное значение a2q со знаком меньше 0, устройство кодирования трехмерных данных задает целочисленное значение a2u без знака равным -1-(2xa2q). Когда целочисленное значение a2q со знаком равно 0 или больше, устройство кодирования трехмерных данных задает целочисленное значение a2u без знака равным 2xa2q.
[0493] Аналогично, когда целочисленное значение b2q со знаком меньше 0, устройство кодирования трехмерных данных задает целочисленное значение b2u без знака равным -1-(2xb2q). Когда целочисленное значение b2q со знаком равно 0 или больше, устройство кодирования трехмерных данных задает целочисленное значение b2u без знака равным 2xb2q.
[0494] Помимо этого, устройство кодирования трехмерных данных может кодировать квантованный остаток прогнозирования (целочисленное значение без знака) посредством энтропийного кодирования. Например, устройство кодирования трехмерных данных может преобразовывать в двоичную форму целочисленное значение без знака и затем применять двоичное арифметическое кодирование к двоичному значению.
[0495] Следует отметить, что в этом случае, устройство кодирования трехмерных данных может переключать способы преобразования в двоичную форму согласно значению остатка прогнозирования. Например, когда остаток pu прогнозирования меньше порогового значения R_TH, устройство кодирования трехмерных данных преобразует в двоичную форму остаток pu прогнозирования с использованием фиксированного числа битов, требуемого для представления порогового значения R_TH. Помимо этого, когда остаток pu прогнозирования превышает или равен пороговому значению R_TH, устройство кодирования трехмерных данных преобразует в двоичную форму двоичные данные порогового значения R_TH и значение (pu-R_TH), с использованием кодирования экспоненциальным кодом Голомба и т.п.
[0496] Например, когда пороговое значение R_TH равно 63, и остаток pu прогнозирования меньше 63, устройство кодирования трехмерных данных преобразует в двоичную форму остаток pu прогнозирования с использованием 6 битов. Когда остаток pu прогнозирования выше или равен 63, устройство кодирования трехмерных данных выполняет арифметическое кодирование посредством преобразования в двоичную форму двоичных данных (111111) порогового значения R_TH и (pu-63) с использованием кодирования экспоненциальным кодом Голомба.
[0497] В более конкретном примере, когда остаток pu прогнозирования равен 32, устройство кодирования трехмерных данных формирует 6-битовые двоичные данные (100000) и арифметически кодирует битовую последовательность. Помимо этого, когда остаток pu прогнозирования равен 66, устройство кодирования трехмерных данных формирует двоичные данные (111111) порогового значения R_TH и битовую последовательность (00100), представляющую значение 3 (66-63), с использованием кодирования экспоненциальным кодом Голомба и арифметически кодирует битовую последовательность (111111+00100).
[0498] Таким образом, устройство кодирования трехмерных данных может выполнять кодирование, при предотвращении резкого увеличения двоичного числа битов в случае, если остаток прогнозирования становится большим, посредством переключения способов преобразования в двоичную форму согласно абсолютной величине остатка прогнозирования. Следует отметить, что устройство кодирования трехмерных данных может добавлять пороговое значение R_TH, например, в заголовок потока битов.
[0499] Например, в случае если кодирование выполняется на высокой скорости передачи битов, т.е. когда масштаб квантования является небольшим, небольшая ошибка квантования и высокая точность прогнозирования получаются. Как результат, остаток прогнозирования может не быть большим. Таким образом, в этом случае, устройство кодирования трехмерных данных задает большое пороговое значение R_TH. Это снижает вероятность того, что двоичные данные порогового значения R_TH кодируются, что увеличивает эффективность кодирования. В противоположном случае, в котором кодирование выполняется на низкой скорости передачи битов, т.е. когда масштаб квантования является большим, большая ошибка квантования и низкая точность прогнозирования получаются. Как результат, остаток прогнозирования может быть большим. Таким образом, в этом случае, устройство кодирования трехмерных данных задает небольшое пороговое значение R_TH. Таким образом, можно предотвращать резкое увеличение длины в битах двоичных данных.
[0500] Помимо этого, устройство кодирования трехмерных данных может переключать пороговое значение R_TH для каждого LoD и может добавлять пороговое значение R_TH для каждого LoD, например, в заголовок. Другими словами, устройство кодирования трехмерных данных может переключать способы преобразования в двоичную форму для каждого LoD. Например, поскольку расстояния между трехмерными точками являются большими в верхнем слое, точность прогнозирования является низкой, что может увеличивать остаток прогнозирования. Таким образом, устройство кодирования трехмерных данных предотвращает резкое увеличение длины в битах двоичных данных посредством задания небольшого порогового значения R_TH для верхнего слоя. Помимо этого, поскольку расстояния между трехмерными точками являются небольшими в нижнем слое, точность прогнозирования является высокой, что может уменьшать остаток прогнозирования. Таким образом, устройство кодирования трехмерных данных увеличивает эффективность кодирования посредством задания большого порогового значения R_TH для нижнего слоя.
[0501] Фиг. 55 является схемой, указывающей примеры экспоненциальных кодов Голомба. Схема указывает взаимосвязи между значениями перед преобразованием в двоичную форму (недвоичными значениями) и битами после преобразования в двоичную форму (кодами). Следует отметить, что нуль и единица, указываемые на фиг. 55, могут инвертироваться.
[0502] Устройство кодирования трехмерных данных применяет арифметическое кодирование к двоичным данным остатков прогнозирования. Таким образом, эффективность кодирования может увеличиваться. Следует отметить, что при применении арифметического кодирования, имеется вероятность того, что тенденции вероятности возникновения нуля и единицы в каждом бите варьируются, в двоичных данных, между n-битовым кодом, который представляет собой часть, преобразованную в двоичную форму посредством n битов, и оставшимся кодом, который представляет собой часть, преобразованную в двоичную форму с использованием кодирования экспоненциальным кодом Голомба. Таким образом, устройство кодирования трехмерных данных может переключать способы применения арифметического кодирования между n-битовым кодом и оставшимся кодом.
[0503] Например, устройство кодирования трехмерных данных выполняет арифметическое кодирование для n-битового кода с использованием одной или более таблиц кодирования (таблиц вероятностей), отличающихся для каждого бита. В это время, устройство кодирования трехмерных данных может изменять число таблиц кодирования, которые должны использоваться для каждого бита. Например, устройство кодирования трехмерных данных выполняет арифметическое кодирование с использованием одной таблицы кодирования для первого бита b0 в n-битовом коде. Устройство кодирования трехмерных данных использует две таблицы кодирования для следующего бита b1. Устройство кодирования трехмерных данных переключает таблицы кодирования, которые должны использоваться для арифметического кодирования бита b1, согласно значению (0 или 1) b0. Аналогично, устройство кодирования трехмерных данных использует четыре таблицы кодирования для следующего бита b2. Устройство кодирования трехмерных данных переключает таблицы кодирования, которые должны использоваться для арифметического кодирования бита b2, согласно значениям (в диапазоне от 0 до 3) b0 и b1.
[0504] Таким образом, устройство кодирования трехмерных данных использует 2n-1 таблиц кодирования при арифметическом кодировании каждого бита bn-1 в n-битовом коде. Устройство кодирования трехмерных данных переключает таблицы кодирования, которые должны использоваться, согласно значениям (шаблонам возникновения) битов перед bn-1. Таким образом, устройство кодирования трехмерных данных может использовать таблицы кодирования, подходящие для каждого бита, и в силу этого может увеличивать эффективность кодирования.
[0505] Следует отметить, что устройство кодирования трехмерных данных может сокращать число таблиц кодирования, которые должны использоваться для каждого бита. Например, устройство кодирования трехмерных данных может переключать 2m таблиц кодирования согласно значениям (шаблонам возникновения) m битов (m<n-1) перед bn-1 при арифметическом кодировании каждого бита bn-1. Таким образом, можно увеличивать эффективность кодирования при уменьшении числа таблиц кодирования, которые должны использоваться для каждого бита. Следует отметить, что устройство кодирования трехмерных данных может обновлять вероятности возникновения нуля и единицы в каждой таблице кодирования согласно значениям двоичных данных, возникающих фактически. Помимо этого, устройство кодирования трехмерных данных может фиксировать вероятности возникновения нуля и единицы в таблицах кодирования для некоторого бита(ов). Таким образом, можно сокращать число обновлений вероятностей возникновения и в силу этого уменьшать объем обработки.
[0506] Например, когда 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.
[0507] Следует отметить, что устройство кодирования трехмерных данных может применять, к n-битовому коду, арифметическое кодирование (m=2n) посредством m-арного, который задает значение в диапазоне от 0 до 2n-1 без преобразования в двоичную форму. Когда устройство кодирования трехмерных данных арифметически кодирует n-битовый код посредством m-арного, устройство декодирования трехмерных данных может восстанавливать n-битовый код посредством арифметического декодирования m-арного.
[0508] Фиг. 56 является схемой для иллюстрации обработки в случае, если оставшиеся коды представляют собой экспоненциальные коды Голомба. Как указано на фиг. 56, каждый оставшийся код, который представляет собой часть, преобразованную в двоичную форму с использованием кодирования экспоненциальным кодом Голомба, включает в себя префикс и суффикс. Например, устройство кодирования трехмерных данных переключает таблицы кодирования между префиксом и суффиксом. Другими словами, устройство кодирования трехмерных данных арифметически кодирует каждый из битов, включенных в префикс, с использованием таблиц кодирования для префикса, и арифметически кодирует каждый из битов, включенных в суффикс, с использованием таблиц кодирования для суффикса.
[0509] Следует отметить, что устройство кодирования трехмерных данных может обновлять вероятности возникновения нуля и единицы в каждой таблице кодирования согласно значениям двоичных данных, возникающих фактически. Помимо этого, устройство кодирования трехмерных данных может фиксировать вероятности возникновения нуля и единицы в одной из таблиц кодирования. Таким образом, можно сокращать число обновлений вероятностей возникновения и в силу этого уменьшать объем обработки. Например, устройство кодирования трехмерных данных может обновлять вероятности возникновения для префикса и может фиксировать вероятности возникновения для суффикса.
[0510] Помимо этого, устройство кодирования трехмерных данных декодирует квантованный остаток прогнозирования посредством обратного квантования и восстановления и использует декодированное значение, которое представляет собой декодированный остаток прогнозирования, для прогнозирования текущей трехмерной точки, которая должна кодироваться, и следующей трехмерной точки(ек). Более конкретно, устройство кодирования трехмерных данных вычисляет обратно квантованное значение посредством умножения квантованного остатка прогнозирования (квантованного значения) на масштаб квантования и суммирует обратно квантованное значение и прогнозное значение, чтобы получать декодированное значение (восстановленное значение).
[0511] Например, квантованное значение a2iq точки a2 вычисляется с использованием квантованного значения a2q точки a2 согласно уравнению A11. Обратно квантованное значение b2iq точки b2 вычисляется с использованием квантованного значения b2q точки b2 согласно формуле H12. Здесь, QS_LoD0 представляет собой QS для LoD0, и QS_LoD1 представляет собой QS для LoD1. Другими словами, QS может изменяться согласно LoD.
[0512] a2iq=a2q x QS_LoD0 (уравнение A11)
[0513] b2iq=b2q x QS_LoD1 (уравнение A12)
[0514] Например, как представлено посредством уравнения A13, декодированное значение a2rec точки a2 вычисляется посредством суммирования значения a2iq обратного квантования точки a2 с прогнозированным значением a2p точки a2. Как представлено посредством уравнения A14, декодированное значение b2rec точки b2 вычисляется посредством суммирования обратно квантованного значения b2iq точки b2 с прогнозированным значением b2p точки b2.
[0515] a2rec=a2iq+a2p (уравнение A13)
[0516] b2rec=b2iq+b2p (уравнение A14)
[0517] В дальнейшем в этом документе описывается пример синтаксиса потока битов согласно настоящему варианту осуществления. Фиг. 57 является схемой, указывающей пример синтаксиса заголовка (attribute_header) атрибутов согласно настоящему варианту осуществления. Заголовок атрибута представляет собой информацию заголовка информации атрибутов. Как указано на фиг. 57, заголовок атрибутов включает в себя информацию (NumLoD) числа слоев, информацию (NumOfPoint[i]) числа трехмерных точек, пороговое значение (Thres_Lod[i]) слоя, информацию (NumNeighborPoint[i]) числа соседних точек, пороговое прогнозное значение (THd[i]), масштаб (QS[i]) квантования и пороговое значение (R_TH[i]) преобразования в двоичную форму.
[0518] Информация (NumLoD) числа слоев указывает число LoD, которые должны использоваться.
[0519] Информация (NumOfPoint[i]) числа трехмерных точек указывает число трехмерных точек, принадлежащих слою i. Следует отметить, что устройство кодирования трехмерных данных может добавлять, в другой заголовок, информацию числа трехмерных точек, указывающую общее число трехмерных точек. В этом случае, устройство кодирования трехмерных данных не должно добавлять, в заголовок, NumOfPoint[numLoD-1], указывающий число трехмерных точек, принадлежащих крайнему нижнему слою. В этом случае, устройство декодирования трехмерных данных допускает вычисление NumOfPoint[numLoD-1] согласно уравнению A15. В этом случае, можно уменьшать объем кода заголовка.
[0520] Математическое выражение 4
(уравнение A15)
[0521] Пороговое значение (Thres_Lod[i]) слоя представляет собой пороговое значение, которое должно использоваться для того, чтобы задавать слой i. Устройство кодирования трехмерных данных и устройство декодирования трехмерных данных конфигурируют LoDi таким образом, что расстояние между точками в LoDi становится больше порогового значения Thres_Lod[i]. Устройство кодирования трехмерных данных не должно добавлять значение Thres_LoD[numLoD-1] (крайний нижний слой) в заголовок. В этом случае, устройство декодирования трехмерных данных может оценивать 0 в качестве значения Thres_LoD[numLoD-1]. В этом случае, можно уменьшать объем кода заголовка.
[0522] Информация (NumNeighborPoint[i]) числа соседних точек указывает верхнее предельное значение числа соседних точек, которые должны использоваться для того, чтобы формировать прогнозированное значение трехмерной точки, принадлежащей слою i. Устройство кодирования трехмерных данных может вычислять прогнозированное значение с использованием числа M соседних точек, когда число M соседних точек меньше NumNeighborPoint[i] (M<NumNeighborPoint[i]). Кроме того, когда нет необходимости различать значения NumNeighborPoint[i] для соответствующих LoD, устройство кодирования трехмерных данных может добавлять фрагмент информации (NumNeighborPoint) числа соседних точек, которые должны использоваться во всех LoD, в заголовок.
[0523] Пороговое прогнозное значение (THd[i]) указывает верхнее предельное значение расстояния между текущей трехмерной точкой, которая должна кодироваться или декодироваться в слое i, и каждой из соседних трехмерных точек, которые должны использоваться для того, чтобы прогнозировать текущую трехмерную точку. Устройство кодирования трехмерных данных и устройство декодирования трехмерных данных не используют, для прогнозирования, трехмерные точки, удаленные от текущей трехмерной точки THd[i]. Следует отметить, что когда нет необходимости различать значения THd[i] для соответствующих LoD, устройство кодирования трехмерных данных может добавлять одно пороговое прогнозное значение (THd), которое должно использоваться во всех LoD, в заголовок.
[0524] Масштаб (QS[i]) квантования указывает масштаб квантования, который должен использоваться для квантования и обратного квантования в слое i.
[0525] Пороговое значение (R_TH[i]) преобразования в двоичную форму представляет собой пороговое значение для переключения способов преобразования в двоичную форму остатков прогнозирования трехмерных точек, принадлежащих слою i. Например, устройство кодирования трехмерных данных преобразует в двоичную форму остаток pu прогнозирования с использованием фиксированного числа битов, когда остаток прогнозирования меньше порогового значения R_TH, и преобразует в двоичную форму двоичные данные порогового значения R_TH и значения (pu-R_TH) с использованием кодирования экспоненциальным кодом Голомба, когда остаток прогнозирования превышает или равен пороговому значению R_TH. Следует отметить, что когда нет необходимости переключать значения R_TH[i] между LoD, устройство кодирования трехмерных данных может добавлять одно пороговое значение (R_TH) преобразования в двоичную форму, которое должно использоваться во всех LoD, в заголовок.
[0526] Следует отметить, что 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.
[0527] Альтернативно, устройство кодирования трехмерных данных может энтропийно кодировать, по меньшей мере, одно из NumLoD, Thres_ LoD [i], NumNeighborPoint[i], THd[i], QS[i] и R_TH[i] и добавлять энтропийное кодированное одно из означенного в заголовок. Например, устройство кодирования трехмерных данных может преобразовывать в двоичную форму каждое значение и выполнять арифметическое кодирование для двоичного значения. Помимо этого, устройство кодирования трехмерных данных может кодировать каждое значение с использованием фиксированной длины, чтобы уменьшать объем обработки.
[0528] Кроме того, устройство кодирования трехмерных данных может не добавлять, по меньшей мере, одно из NumLoD, Thres_Lod[i], NumNeighborPoint[i], THd[i], QS[i] и R_TH[i] в заголовок. Например, по меньшей мере, одно из этих значений может задаваться посредством профиля или уровня в стандарте и т.п. Таким образом, можно уменьшать объем в битах заголовка.
[0529] Фиг. 58 является схемой, указывающей пример синтаксиса данных (attribute_data) атрибутов согласно настоящему варианту осуществления. Данные атрибутов включают в себя кодированные данные информации атрибутов множества трехмерных точек. Как указано на фиг. 58, данные атрибутов включают в себя n-битовый код и оставшийся код.
[0530] N-битовый код представляет собой кодированные данные остатка прогнозирования значения информации атрибутов либо части кодированных. Длина в битах n-битового кода зависит от значения R_TH[i]. Например, длина в битах n-битового кода составляет 6 битов, когда значение, указываемое посредством R_TH[i], равно 63, длина в битах n-битового кода составляет 8 битов, когда значение, указываемое посредством R_TH[i], равно 255.
[0531] Оставшийся код представляет собой кодированные данные, кодированные с использованием кодирования экспоненциальным кодом Голомба, из кодированных данных остатка прогнозирования значения информации атрибутов. Оставшийся код кодируется или декодируется, когда значение n-битового кода равно R_TH[i]. Устройство декодирования трехмерных данных декодирует остаток прогнозирования посредством суммирования значения n-битового кода и значения оставшегося кода. Следует отметить, что оставшийся код не всегда должен кодироваться или декодироваться, когда значение n-битового кода не равно R_TH[i].
[0532] В дальнейшем в этом документе, приводится описание последовательности операций обработки в устройстве кодирования трехмерных данных. Фиг. 59 является блок-схемой последовательности операций способа для процесса кодирования трехмерных данных, выполняемого посредством устройства кодирования трехмерных данных.
[0533] Во-первых, устройство кодирования трехмерных данных кодирует геометрическую информацию (геометрию) (S3001). Например, кодирование трехмерных данных выполняется с использованием представления в виде дерева октантов.
[0534] Когда позиции трехмерных точек изменены посредством квантования и т.д., после кодирования геометрической информации, устройство кодирования трехмерных данных переназначает информацию атрибутов исходных трехмерных точек трехмерным точкам после изменения (S3002). Например, устройство кодирования трехмерных данных интерполирует значения информации атрибутов согласно величинам изменения позиции, чтобы переназначать информацию атрибутов. Например, устройство кодирования трехмерных данных обнаруживает N трехмерных точек перед изменением ближе к трехмерным позициям после изменения и выполняет усреднение со взвешиванием значений информации атрибутов N трехмерных точек. Например, устройство кодирования трехмерных данных определяет весовые коэффициенты на основе расстояний от трехмерных позиций после изменения до соответствующих N трехмерных позиций при усреднении со взвешиванием. Устройство кодирования трехмерных данных затем определяет значения, полученные через усреднение со взвешиванием, в качестве значений информации атрибутов трехмерных точек после изменения. Когда две или более из трехмерных точек изменяются на идентичную трехмерную позицию посредством квантования и т.д., устройство кодирования трехмерных данных может назначать среднее значение информации атрибутов двух или более трехмерных точек перед изменением в качестве значений информации атрибутов трехмерных точек после изменения.
[0535] Затем, устройство кодирования трехмерных данных кодирует переназначенную информацию атрибутов (атрибут) (S3003). Например, при кодировании множества видов информации атрибутов, устройство кодирования трехмерных данных может кодировать множество видов информации атрибутов по порядку. Например, при кодировании цветов и отражательных способностей в качестве информации атрибутов, устройство кодирования трехмерных данных может формировать поток битов, дополненный результатами цветового кодирования и результатами кодирования отражательных способностей после результатов цветового кодирования. Следует отметить, что порядок множества результатов кодирования информации атрибутов, которая должна добавляться в поток битов, не ограничен порядком и может представлять собой любой порядок.
[0536] Альтернативно, устройство кодирования трехмерных данных может добавлять, в заголовок, например, информацию, указывающую начальное местоположение кодированных данных каждой информации атрибутов в потоке битов. Таким образом, устройство декодирования трехмерных данных допускает избирательное декодирование информации атрибутов, которая должна декодироваться, и в силу этого допускает пропуск процесса декодирования информации атрибутов, которая не должна декодироваться. Соответственно, можно сокращать объем обработки посредством устройства декодирования трехмерных данных. Альтернативно, устройство кодирования трехмерных данных может кодировать множество видов информации атрибутов параллельно и может интегрировать результаты кодирования в один поток битов. Таким образом, устройство кодирования трехмерных данных допускает кодирование множества видов информации атрибутов на высокой скорости.
[0537] Фиг. 60 является блок-схемой последовательности операций способа для процесса кодирования информации атрибутов (S3003). Во-первых, устройство кодирования трехмерных данных задает LoD (S3011). Другими словами, устройство кодирования трехмерных данных назначает каждую из трехмерных точек любому из множества LoD.
[0538] Затем, устройство кодирования трехмерных данных начинает цикл для каждого LoD (S3012). Другими словами, устройство кодирования трехмерных данных итеративно выполняет процессы этапов от S3013 до S3021 для каждого LoD.
[0539] Затем, устройство кодирования трехмерных данных начинает цикл для каждой трехмерной точки (S3013). Другими словами, устройство кодирования трехмерных данных итеративно выполняет процессы этапов от S3014 до S3020 для каждой трехмерной точки.
[0540] Во-первых, устройство кодирования трехмерных данных выполняет поиск множества соседних точек, которые представляют собой трехмерные точки, присутствующие в окружении текущей трехмерной точки, которая должна обрабатываться, и должны использоваться для того, чтобы вычислять прогнозированное значение текущей трехмерной точки (S3014). Затем, устройство кодирования трехмерных данных вычисляет среднее взвешенное значений информации атрибутов множества соседних точек и задает результирующее значение равным прогнозированному значению P (S3015). Затем, устройство кодирования трехмерных данных вычисляет остаток прогнозирования, который представляет собой разность между информацией атрибутов текущей трехмерной точки и прогнозированным значением (S3016). Затем, устройство кодирования трехмерных данных квантует остаток прогнозирования, чтобы вычислять квантованное значение (S3017). Затем, устройство кодирования трехмерных данных арифметически кодирует квантованное значение (S3018).
[0541] Затем, устройство кодирования трехмерных данных обратно квантует квантованное значение, чтобы вычислять обратно квантованное значение (S3019). Затем, устройство кодирования трехмерных данных суммирует прогнозное значение с обратно квантованным значением, чтобы формировать декодированное значение (S3020). Затем, устройство кодирования трехмерных данных завершает цикл для каждой трехмерной точки (S3021). Затем, устройство кодирования трехмерных данных завершает цикл для каждого LoD (S3022).
[0542] В дальнейшем в этом документе, приводится описание процесса декодирования трехмерных данных в устройстве декодирования трехмерных данных, которое декодирует поток битов, сформированный посредством устройства кодирования трехмерных данных.
[0543] Устройство декодирования трехмерных данных формирует декодированные двоичные данные посредством арифметического декодирования двоичных данных информации атрибутов в потоке битов, сформированном посредством устройства кодирования трехмерных данных, согласно способу, аналогичному способу, выполняемому посредством устройства кодирования трехмерных данных. Следует отметить, что когда способы применения арифметического кодирования переключаются между частью (n-битовым кодом), преобразованной в двоичную форму с использованием n битов, и частью (оставшимся кодом), преобразованной в двоичную форму с использованием кодирования экспоненциальным кодом Голомба в устройстве кодирования трехмерных данных, устройство декодирования трехмерных данных выполняет декодирование в соответствии с арифметическим кодированием при применении арифметического декодирования.
[0544] Например, устройство декодирования трехмерных данных выполняет арифметическое декодирование с использованием таблиц кодирования (таблиц декодирования), отличающихся для каждого бита при арифметическом декодировании n-битового кода. В это время, устройство декодирования трехмерных данных может изменять число таблиц кодирования, которые должны использоваться для каждого бита. Например, устройство декодирования трехмерных данных выполняет арифметическое декодирование с использованием одной таблицы кодирования для первого бита b0 в n-битовом коде. Устройство декодирования трехмерных данных использует две таблицы кодирования для следующего бита b1. Устройство декодирования трехмерных данных переключает таблицы кодирования, которые должны использоваться для арифметического декодирования бита b1, согласно значению (0 или 1) b0. Аналогично, устройство декодирования трехмерных данных использует четыре таблицы кодирования для следующего бита b2. Устройство декодирования трехмерных данных переключает таблицы кодирования, которые должны использоваться для арифметического декодирования бита b2, согласно значениям (в диапазоне от 0 до 3) b0 и b1.
[0545] Таким образом, устройство декодирования трехмерных данных использует 2n-1 таблиц кодирования при арифметическом декодировании каждого бита bn-1 в n-битовом коде. Устройство декодирования трехмерных данных переключает таблицы кодирования, которые должны использоваться, согласно значениям (шаблонам возникновения) битов перед bn-1. Таким образом, устройство декодирования трехмерных данных допускает надлежащее декодирование потока битов, кодированного при повышенной эффективности кодирования, с использованием таблиц кодирования, подходящих для каждого бита.
[0546] Следует отметить, что устройство декодирования трехмерных данных может сокращать число таблиц кодирования, которые должны использоваться для каждого бита. Например, устройство декодирования трехмерных данных может переключать 2m таблиц кодирования согласно значениям (шаблонам возникновения) m битов (m<n-1) перед bn-1 при арифметическом декодировании каждого бита bn-1. Таким образом, устройство декодирования трехмерных данных допускает надлежащее декодирование потока битов, кодированного при повышенной эффективности кодирования, при уменьшении числа таблиц кодирования, которые должны использоваться для каждого бита. Следует отметить, что устройство декодирования трехмерных данных может обновлять вероятности возникновения нуля и единицы в каждой таблице кодирования согласно значениям двоичных данных, возникающих фактически. Помимо этого, устройство декодирования трехмерных данных может фиксировать вероятности возникновения нуля и единицы в таблицах кодирования для некоторого бита(ов). Таким образом, можно сокращать число обновлений вероятностей возникновения и в силу этого уменьшать объем обработки.
[0547] Например, когда 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, ..., Tbn (2n-1-1)). Таблицы кодирования, которые должны использоваться, переключаются согласно значениям (в диапазоне от 0 до 2n-1-1) b0, b1, ..., bn-2.
[0548] Фиг. 61 является схемой для иллюстрации обработки в случае, если оставшиеся коды представляют собой экспоненциальные коды Голомба. Как указано на фиг. 61, часть (оставшаяся часть), преобразованная в двоичную форму и кодированная посредством устройства кодирования трехмерных данных с использованием кодирования экспоненциальным кодом Голомба, включает в себя префикс и суффикс. Например, устройство декодирования трехмерных данных переключает таблицы кодирования между префиксом и суффиксом. Другими словами, устройство декодирования трехмерных данных арифметически декодирует каждый из битов, включенных в префикс, с использованием таблиц кодирования для префикса и арифметически декодирует каждый из битов, включенных в суффикс, с использованием таблиц кодирования для суффикса.
[0549] Следует отметить, что устройство декодирования трехмерных данных может обновлять вероятности возникновения нуля и единицы в каждой таблице кодирования согласно значениям двоичных данных, возникающих во время декодирования. Помимо этого, устройство декодирования трехмерных данных может фиксировать вероятности возникновения нуля и единицы в одной из таблиц кодирования. Таким образом, можно сокращать число обновлений вероятностей возникновения и в силу этого уменьшать объем обработки. Например, устройство декодирования трехмерных данных может обновлять вероятности возникновения для префикса и может фиксировать вероятности возникновения для суффикса.
[0550] Кроме того, устройство декодирования трехмерных данных декодирует квантованный остаток прогнозирования (целочисленное значение без знака) посредством отмены преобразования в двоичную форму двоичных данных остатка прогнозирования, арифметически декодированного согласно способу в соответствии со способом кодирования, используемым посредством устройства кодирования трехмерных данных. Устройство декодирования трехмерных данных сначала арифметически декодирует двоичные данные n-битового кода, чтобы вычислять значение n-битового кода. Затем, устройство декодирования трехмерных данных сравнивает значение n-битового кода с пороговым значением R_TH.
[0551] В случае если значение n-битового кода и пороговое значение R_TH совпадают, устройство декодирования трехмерных данных определяет то, что бит, кодированный с использованием кодирования экспоненциальным кодом Голомба, присутствует далее, и арифметически декодирует оставшийся код, который представляет собой двоичные данные, кодированные с использованием кодирования экспоненциальным кодом Голомба. Устройство декодирования трехмерных данных затем вычисляет, из декодированного оставшегося кода, значение оставшегося кода с использованием обратной таблицы поиска, указывающей взаимосвязь между оставшимся кодом и значением. Фиг. 62 является схемой, указывающей пример обратной таблицы поиска, указывающей взаимосвязи между оставшимися кодами и их значениями. Затем, устройство декодирования трехмерных данных суммирует полученное значение оставшегося кода с R_TH, за счет этого получая квантованный остаток прогнозирования после отмены преобразования в двоичную форму.
[0552] В противоположном случае, в котором значение n-битового кода и пороговое значение R_TH не совпадают (значение n-битового кода меньше значения R_TH), устройство декодирования трехмерных данных определяет значение n-битового кода в качестве квантованного остатка прогнозирования после отмены преобразования в двоичную форму как есть. Таким образом, устройство декодирования трехмерных данных допускает надлежащее декодирование потока битов, сформированного при переключении способов преобразования в двоичную форму согласно значениям остатков прогнозирования посредством устройства кодирования трехмерных данных.
[0553] Следует отметить, что когда пороговое значение R_TH добавляется, например, в заголовок потока битов, устройство декодирования трехмерных данных может декодировать пороговое значение R_TH из заголовка и может переключать способы декодирования с использованием декодированного порогового значения R_TH. Когда пороговое значение R_TH добавляется, например, в заголовок для каждого LoD, устройство декодирования трехмерных данных переключает способы декодирования с использованием порогового значения R_TH, декодированного для каждого LoD.
[0554] Например, когда пороговое значение R_TH равно 63, и значение декодированного n-битового кода равно 63, устройство декодирования трехмерных данных декодирует оставшийся код с использованием кодирования экспоненциальным кодом Голомба, за счет этого получая значение оставшегося кода. Например, в примере, указываемом на фиг. 62, оставшийся код равен 00100, и 3 получается в качестве значения оставшегося кода. Затем, устройство декодирования трехмерных данных суммирует 63, которое представляет собой пороговое значение R_TH, и 3, которое представляет собой значение оставшегося кода, за счет этого получая 66, которое представляет собой значение остатка прогнозирования.
[0555] Помимо этого, когда значение декодированного n-битового кода равно 32, устройство декодирования трехмерных данных задает 32, которое представляет собой значение n-битового кода, в качестве значения остатка прогнозирования.
[0556] Помимо этого, устройство декодирования трехмерных данных преобразует декодированный квантованный остаток прогнозирования, например, из целочисленного значения без знака в целочисленное значение со знаком, через инверсию обработки относительно обработки в устройстве кодирования трехмерных данных. Таким образом, при энтропийном декодировании остатка прогнозирования, устройство декодирования трехмерных данных допускает надлежащее декодирование потока битов, сформированного без учета возникновения отрицательного целого числа. Следует отметить, что устройство декодирования трехмерных данных не всегда должно преобразовывать целочисленное значение без знака в целочисленное значение со знаком, и что, например, устройство декодирования трехмерных данных может декодировать знаковый бит при декодировании потока битов, сформированного посредством отдельного энтропийного кодирования знакового бита.
[0557] Устройство декодирования трехмерных данных выполняет декодирование посредством обратного квантования и восстановления квантованного остатка прогнозирования после преобразования в целочисленное значение со знаком, чтобы получать декодированное значение. Устройство декодирования трехмерных данных использует сформированное декодированное значение для прогнозирования текущей трехмерной точки, которая должна декодироваться, и следующей трехмерной точки(ек). Более конкретно, устройство декодирования трехмерных данных умножает квантованный остаток прогнозирования на декодированный масштаб квантования, чтобы вычислять обратно квантованное значение, и суммирует обратно квантованное значение и прогнозированное значение, чтобы получать декодированное значение.
[0558] Декодированное целочисленное значение без знака (квантованное значение без знака) преобразуется в целочисленное значение со знаком через обработку, указанную ниже. Когда младший бит (LSB) декодированного целочисленного значения a2u без знака равен 1, устройство декодирования трехмерных данных задает целочисленное значение a2q со знаком равным -((a2u+1)>>1). Когда LSB целочисленного значения a2u без знака не равен 1, устройство декодирования трехмерных данных задает целочисленное значение a2q со знаком равным (a2u>>1).
[0559] Аналогично, когда LSB декодированного целочисленного значения b2u без знака равен 1, устройство декодирования трехмерных данных задает целочисленное значение b2q со знаком равным -((b2u+1)>>1). Когда LSB декодированного целочисленного значения n2u без знака не равен 1, устройство декодирования трехмерных данных задает целочисленное значение b2q со знаком равным (b2u>>1).
[0560] Подробности обработки обратного квантования и восстановления посредством устройства декодирования трехмерных данных являются аналогичными обработке обратного квантования и восстановления в устройстве кодирования трехмерных данных.
[0561] В дальнейшем в этом документе, приводится описание последовательности операций обработки в устройстве декодирования трехмерных данных. Фиг. 63 является блок-схемой последовательности операций способа для процесса декодирования трехмерных данных, выполняемого посредством устройства декодирования трехмерных данных. Во-первых, устройство декодирования трехмерных данных декодирует геометрическую информацию (геометрию) из потока битов (S3031). Например, устройство декодирования трехмерных данных выполняет декодирование с использованием представления в виде дерева октантов.
[0562] Затем, устройство декодирования трехмерных данных декодирует информацию атрибутов (атрибут) из потока битов (S3032). Например, при декодировании множества видов информации атрибутов, устройство декодирования трехмерных данных может декодировать множество видов информации атрибутов по порядку. Например, при декодировании цветов и отражательных способностей в качестве информации атрибутов, устройство декодирования трехмерных данных декодирует результаты цветового кодирования и результаты кодирования отражательных способностей в порядке назначения в потоке битов. Например, когда результаты кодирования отражательных способностей добавляются после результатов цветового кодирования в поток битов, устройство декодирования трехмерных данных декодирует результаты цветового кодирования и затем декодирует результаты кодирования отражательных способностей. Следует отметить, что устройство декодирования трехмерных данных может декодировать, в любом порядке, результаты кодирования информации атрибутов, добавляемой в поток битов.
[0563] Альтернативно, устройство кодирования трехмерных данных может добавлять, в заголовок, например, информацию, указывающую начальное местоположение кодированных данных каждой информации атрибутов в потоке битов. Таким образом, устройство декодирования трехмерных данных допускает избирательное декодирование информации атрибутов, которая должна декодироваться, и в силу этого допускает пропуск процесса декодирования информации атрибутов, которая не должна декодироваться. Соответственно, можно сокращать объем обработки посредством устройства декодирования трехмерных данных. Помимо этого, устройство декодирования трехмерных данных может декодировать множество видов информации атрибутов параллельно и может интегрировать результаты декодирования в одно облако трехмерных точек. Таким образом, устройство декодирования трехмерных данных допускает декодирование множества видов информации атрибутов на высокой скорости.
[0564] Фиг. 64 является блок-схемой последовательности операций способа для процесса декодирования информации атрибутов (S3032). Во-первых, устройство декодирования трехмерных данных задает LoD (S3041). Другими словами, устройство декодирования трехмерных данных назначает каждую из трехмерных точек, имеющих декодированную геометрическую информацию, любому из множества LoD. Например, этот способ назначения является идентичным способу назначения, используемому в устройстве кодирования трехмерных данных.
[0565] Затем, устройство декодирования трехмерных данных начинает цикл для каждого LoD (S3042). Другими словами, устройство декодирования трехмерных данных итеративно выполняет процессы этапов от S3043 до S3049 для каждого LoD.
[0566] Затем, устройство декодирования трехмерных данных начинает цикл для каждой трехмерной точки (S3043). Другими словами, устройство декодирования трехмерных данных итеративно выполняет процессы этапов от S3044 до S3048 для каждой трехмерной точки.
[0567] Во-первых, устройство декодирования трехмерных данных выполняет поиск множества соседних точек, которые представляют собой трехмерные точки, присутствующие в окружении текущей трехмерной точки, которая должна обрабатываться, и должны использоваться для того, чтобы вычислять прогнозированное значение текущей трехмерной точки, которая должна обрабатываться (S3044). Затем, устройство декодирования трехмерных данных вычисляет среднее взвешенное значений информации атрибутов множества соседних точек и задает результирующее значение равным прогнозированному значению P (S3045). Следует отметить, что эти процессы являются аналогичными процессам в устройстве кодирования трехмерных данных.
[0568] Затем, устройство декодирования трехмерных данных арифметически декодирует квантованное значение из потока битов (S3046). Устройство декодирования трехмерных данных обратно квантует декодированное квантованное значение, чтобы вычислять обратно квантованное значение (S3047). Затем, устройство декодирования трехмерных данных суммирует прогнозированное значение с обратно квантованным значением, чтобы формировать декодированное значение (S3048). Затем, устройство декодирования трехмерных данных завершает цикл для каждой трехмерной точки (S3049). Затем, устройство кодирования трехмерных данных завершает цикл для каждого LoD (S3050).
[0569] Далее описываются конфигурации устройства кодирования трехмерных данных и устройства декодирования трехмерных данных согласно настоящему варианту осуществления. Фиг. 65 является блок-схемой, иллюстрирующей конфигурацию устройства 3000 кодирования трехмерных данных согласно настоящему варианту осуществления. Устройство 3000 кодирования трехмерных данных включает в себя кодер 3001 геометрической информации, модуль 3002 переназначения информации атрибутов и кодер 3003 информации атрибутов.
[0570] Кодер 3003 информации атрибутов кодирует геометрическую информацию (геометрию) множества трехмерных точек, включенных во входное облако точек. Модуль 3002 переназначения информации атрибутов переназначает значения информации атрибутов множества трехмерных точек, включенных во входное облако точек, с использованием результатов кодирования и декодирования геометрической информации. Кодер 3003 информации атрибутов кодирует переназначенную информацию атрибутов (атрибут). Более того, устройство 3000 кодирования трехмерных данных формирует поток битов, включающий в себя кодированную геометрическую информацию и кодированную информацию атрибутов.
[0571] Фиг. 66 является блок-схемой, иллюстрирующей конфигурацию устройства 3010 декодирования трехмерных данных согласно настоящему варианту осуществления. Устройство 3010 декодирования трехмерных данных включает в себя декодер 3011 геометрической информации и декодер 3012 информации атрибутов.
[0572] Декодер 3011 геометрической информации декодирует геометрическую информацию (геометрию) множества трехмерных точек из потока битов. Декодер 3012 информации атрибутов декодирует информацию атрибутов (атрибут) множества трехмерных точек из потока битов. Кроме того, устройство 3010 декодирования трехмерных данных интегрирует декодированную геометрическую информацию и декодированную информацию атрибутов, чтобы формировать выходное облако точек.
[0573] Как описано выше, устройство кодирования трехмерных данных согласно настоящему варианту осуществления выполняет процесс, проиллюстрированный на фиг. 67. Устройство кодирования трехмерных данных кодирует трехмерную точку, имеющую информацию атрибутов. Во-первых, устройство кодирования трехмерных данных вычисляет прогнозированное значение информации атрибутов трехмерной точки (S3061). Затем, устройство кодирования трехмерных данных вычисляет остаток прогнозирования, который представляет собой разность между информацией атрибутов трехмерной точки и прогнозированным значением (S3062). Затем, устройство кодирования трехмерных данных преобразует в двоичную форму остаток прогнозирования, чтобы формировать двоичные данные (S3063). Затем, устройство кодирования трехмерных данных арифметически кодирует двоичные данные (S3064).
[0574] Таким образом, устройство кодирования трехмерных данных допускает уменьшение объема кода подлежащих кодированию данных информации атрибутов посредством вычисления остатка прогнозирования информации атрибутов и преобразования в двоичную форму и арифметического кодирования остатка прогнозирования.
[0575] Например, при арифметическом кодировании (S3064), устройство кодирования трехмерных данных использует таблицы кодирования, отличающиеся для каждого из битов двоичных данных. За счет этого, устройство кодирования трехмерных данных может увеличивать эффективность кодирования.
[0576] Например, при арифметическом кодировании (S3064), число таблиц кодирования, которые должны использоваться, больше для бита низшего порядка двоичных данных.
[0577] Например, при арифметическом кодировании (S3064), устройство кодирования трехмерных данных выбирает таблицы кодирования, которые должны использоваться для того, чтобы арифметически кодировать текущий бит, включенный в двоичные данные, согласно значению бита высшего порядка относительно текущего бита. За счет этого, поскольку устройство кодирования трехмерных данных может выбирать таблицы кодирования, которые должны использоваться, согласно значению бита высшего порядка, устройство кодирования трехмерных данных может увеличивать эффективность кодирования.
[0578] Например, при преобразовании в двоичную форму (S3063), устройство кодирования трехмерных данных: преобразует в двоичную форму остаток прогнозирования с использованием фиксированного числа битов, чтобы формировать двоичные данные, когда остаток прогнозирования меньше порогового значения (R_TH); и формирует двоичные данные, включающие в себя первый код (n-битовый код) и второй код (оставшийся код), когда остаток прогнозирования превышает или равен пороговому значению (R_TH). Первый код имеет фиксированное число битов, указывающее пороговое значение (R_TH), и второй код (оставшийся код) получается посредством преобразования в двоичную форму, с использованием кодирования экспоненциальным кодом Голомба, значения, полученного посредством вычитания порогового значения (R_TH) из остатка прогнозирования. При арифметическом кодировании (S3064), устройство кодирования трехмерных данных использует способы арифметического кодирования, отличающиеся между первым кодом и вторым кодом.
[0579] Вследствие этого, например, поскольку можно арифметически кодировать первый код и второй код с использованием способов арифметического кодирования, соответственно, подходящих для первого кода и второго кода, можно увеличивать эффективность кодирования.
[0580] Например, устройство кодирования трехмерных данных квантует остаток прогнозирования и, при преобразовании в двоичную форму (S3063), преобразует в двоичную форму квантованный остаток прогнозирования. Пороговое значение (R_TH) изменяется согласно масштабу квантования при квантовании. Вследствие этого, поскольку устройство кодирования трехмерных данных может использовать пороговое значение надлежащим образом согласно масштабу квантования, можно увеличивать эффективность кодирования.
[0581] Например, второй код включает в себя префикс и суффикс. При арифметическом кодировании (S3064), устройство кодирования трехмерных данных использует различные таблицы кодирования между префиксом и суффиксом. Таким образом, устройство кодирования трехмерных данных может увеличивать эффективность кодирования.
[0582] Например, устройство кодирования трехмерных данных включает в себя процессор и запоминающее устройство, и процессор выполняет вышеуказанный процесс с использованием запоминающего устройства.
[0583] Устройство декодирования трехмерных данных согласно настоящему варианту осуществления выполняет процесс, проиллюстрированный на фиг. 68. Устройство декодирования трехмерных данных декодирует трехмерную точку, имеющую информацию атрибутов. Во-первых, устройство декодирования трехмерных данных вычисляет прогнозированное значение информации атрибутов трехмерной точки (S3071). Затем, устройство декодирования трехмерных данных арифметически декодирует кодированные данные, включенные в поток битов, чтобы формировать двоичные данные (S3072). Затем, устройство декодирования трехмерных данных отменяет преобразование в двоичную форму двоичных данных, чтобы формировать остаток прогнозирования (S3073). Затем, устройство декодирования трехмерных данных вычисляет декодированное значение информации атрибутов трехмерной точки посредством суммирования прогнозированного значения и остатка прогнозирования (S3074).
[0584] Таким образом, устройство декодирования трехмерных данных допускает надлежащее декодирование потока битов информации атрибутов, сформированной посредством вычисления остатка прогнозирования информации атрибутов и преобразования в двоичную форму и арифметического декодирования остатка прогнозирования.
[0585] Например, при арифметическом декодировании (S3072), устройство декодирования трехмерных данных использует таблицы кодирования, отличающиеся для каждого из битов двоичных данных. Вследствие этого, устройство декодирования трехмерных данных допускает надлежащее декодирование потока битов, кодированного при повышенной эффективности кодирования.
[0586] Например, при арифметическом декодировании (S3072), число таблиц кодирования, которые должны использоваться, больше для младшего бита двоичных данных.
[0587] Например, при арифметическом декодировании (S3072), устройство декодирования трехмерных данных выбирает таблицы кодирования, которые должны использоваться для того, чтобы арифметически декодировать текущий бит, включенный в двоичные данные, согласно значению бита высшего порядка относительно текущего бита. Вследствие этого, устройство декодирования трехмерных данных допускает надлежащее декодирование потока битов, кодированного при повышенной эффективности кодирования.
[0588] Например, при отмене преобразования в двоичную форму (S3073), устройство декодирования трехмерных данных отменяет преобразование в двоичную форму первого кода (n-битового кода) фиксированного числа битов, включенного в двоичные данные, чтобы формировать первое значение. Устройство декодирования трехмерных данных: определяет первое значение в качестве остатка прогнозирования, когда первое значение меньше порогового значения (R_TH); и когда первое значение превышает или равно пороговому значению (R_YH), формирует второе значение посредством отмены преобразования в двоичную форму второго кода (оставшегося кода), который представляет собой экспоненциальный код Голомба, включенный в двоичные данные, и суммирует первое значение и второе значение, за счет этого формируя остаток прогнозирования. При арифметическом декодировании (S3072), устройство декодирования трехмерных данных использует способы арифметического декодирования, отличающиеся между первым кодом и вторым кодом.
[0589] Вследствие этого, устройство декодирования трехмерных данных допускает надлежащее декодирование потока битов, кодированного при повышенной эффективности кодирования.
[0590] Например, устройство декодирования трехмерных данных обратно квантует остаток прогнозирования и, помимо этого (S3074), суммирует прогнозированное значение и обратно квантованный остаток прогнозирования. Пороговое значение (R_TH) изменяется согласно масштабу квантования при обратном квантовании. Вследствие этого, устройство декодирования трехмерных данных допускает надлежащее декодирование потока битов, кодированного при повышенной эффективности кодирования.
[0591] Например, второй код включает в себя префикс и суффикс. При арифметическом декодировании (S3072) устройство декодирования трехмерных данных использует различные таблицы кодирования между префиксом и суффиксом. Вследствие этого, устройство декодирования трехмерных данных допускает надлежащее декодирование потока битов, кодированного при повышенной эффективности кодирования.
[0592] Например, устройство декодирования трехмерных данных включает в себя процессор и запоминающее устройство, и процессор выполняет вышеописанный процесс с использованием запоминающего устройства.
[0593] Вариант 9 осуществления
Прогнозированные значения могут формироваться посредством способа, отличающегося от способа в варианте 8 осуществления. В дальнейшем в этом документе, трехмерная точка, которая должна кодироваться, называется "первой трехмерной точкой", и одна или более трехмерных точек около первой трехмерной точки называются "одной или более вторых трехмерных точек" в некоторых случаях.
[0594] Например, при формировании прогнозированного значения элемента информации атрибутов (информации атрибутов) трехмерной точки, значение атрибута как есть ближайшей трехмерной точки из кодированных и декодированных трехмерных точек около трехмерной точки, которая должна кодироваться, может формироваться в качестве прогнозированного значения. При формировании прогнозированного значения, информация (PredMode) режима прогнозирования может присоединяться для каждой трехмерной точки, и одно прогнозированное значение может выбираться из множества прогнозированных значений, чтобы обеспечивать возможность формирования прогнозированного значения. В частности, например, есть возможность того, что для общего числа M режимов прогнозирования, среднее значение назначается режиму 0 прогнозирования, значение атрибута трехмерной точки A назначается режиму 1 прогнозирования, ..., и значение атрибута Z трехмерной точки назначается режиму M-1 прогнозирования, и режим прогнозирования, используемый для прогнозирования, присоединяется к потоку битов для каждой трехмерной точки. В связи с этим, значение первого режима прогнозирования, указывающее первый режим прогнозирования для вычисления, в качестве прогнозированного значения, среднего элементов информации атрибутов окружающих трехмерных точек может быть меньше значения второго режима прогнозирования, указывающего второй режим прогнозирования для вычисления, в качестве прогнозированного значения, элемента информации атрибутов как есть окружающей трехмерной точки. Здесь, "среднее значение" в качестве прогнозированного значения, вычисленного в режиме 0 прогнозирования, составляет среднее значение для значений атрибутов трехмерных точек около трехмерной точки, которая должна кодироваться.
[0595] Фиг. 69 является схемой, показывающей первый пример таблицы, представляющей прогнозированные значения, вычисленные в режимах прогнозирования согласно настоящему варианту осуществления. Фиг. 70 является схемой, показывающей примеры элементов информации атрибутов, используемых в качестве прогнозированных значений согласно настоящему варианту осуществления. Фиг. 71 является схемой, показывающей второй пример таблицы, представляющей прогнозированные значения, вычисленные в режимах прогнозирования согласно настоящему варианту осуществления.
[0596] Число M режимов прогнозирования может присоединяться к потоку битов. Число M режимов прогнозирования может задаваться посредством профиля или уровня стандартов, а не присоединяться в поток битов. Число M режимов прогнозирования также может вычисляться из числа N трехмерных точек, используемых для прогнозирования. Например, число M режимов прогнозирования может вычисляться посредством M=N+1.
[0597] Таблица на фиг. 69 представляет собой пример случая с числом N трехмерных точек, используемых для прогнозирования, равным 4, и число M режимов прогнозирования, равным 5. Прогнозированное значение элемента информации атрибутов точки b2 может формироваться посредством использования элементов информации атрибутов точек a0, a1, a2, b1. При выборе одного режима прогнозирования из множества режимов прогнозирования, режим прогнозирования для формирования, в качестве прогнозированного значения, значения атрибута каждой из точек a0, a1, a2, b1 может выбираться в соответствии с информацией расстояния от точки b2 до каждой из точек a0, a1, a2, b1. Режим прогнозирования присоединяется для каждой трехмерной точки, которая должна кодироваться. Прогнозированное значение вычисляется в соответствии со значением, соответствующим присоединенному режиму прогнозирования.
[0598] Таблица на фиг. 71, как показано на фиг. 69, представляет собой пример случая с числом N трехмерных точек, используемых для прогнозирования, равным 4, и числом M режимов прогнозирования, равным 5. Прогнозированное значение элемента информации атрибутов точки a2 может формироваться посредством использования элементов информации атрибутов точек a0, a1. При выборе одного режима прогнозирования из множества режимов прогнозирования, режим прогнозирования для формирования, в качестве прогнозированного значения, значения атрибута каждой из точек a0 и a1 может выбираться в соответствии с информацией расстояния от точки a2 до каждой из точек a0, a1. Режим прогнозирования присоединяется для каждой трехмерной точки, которая должна кодироваться. Прогнозированное значение вычисляется в соответствии со значением, соответствующим присоединенному режиму прогнозирования.
[0599] Когда число соседних точек, т.е. число N окружающих трехмерных точек меньше четырех, к примеру, в вышеуказанной точке a2, режим прогнозирования, которому не назначается прогнозированное значение, может записываться как "не доступно" в таблице.
[0600] Назначение значений режимов прогнозирования может определяться в соответствии с расстоянием от трехмерной точки, которая должна кодироваться. Например, значения режима прогнозирования, указывающие множество режимов прогнозирования, снижаются со снижением расстоянием от трехмерной точки, которая должна кодироваться, до окружающих трехмерных точек, имеющих элементы информации атрибутов, используемые в качестве прогнозированных значений. Пример на фиг. 69 показывает то, что точки b1, a2, a1, a0 последовательно находятся ближе к точке b2 в качестве трехмерной точки, которая должна кодироваться. Например, при вычислении прогнозированного значения, элемент информации атрибутов точки b1 вычисляется как прогнозированное значение в режиме прогнозирования, указываемом посредством значения режима прогнозирования "1", из двух или более режимов прогнозирования, и элемент информации атрибутов точки a2 вычисляется как прогнозированное значение в режиме прогнозирования, указываемом посредством значения режима прогнозирования "2". В связи с этим, значение режима прогнозирования, указывающее режим прогнозирования для вычисления, в качестве прогнозированного значения, элемент информации атрибутов точки b1 меньше значения режима прогнозирования, указывающего режим прогнозирования для вычисления, в качестве прогнозированного значения, элемента информации атрибутов точки a2 дальше от точки b2, чем точка b1.
[0601] Таким образом, небольшое значение режима прогнозирования может назначаться точке, которая с большей вероятностью должна прогнозироваться и выбираться вследствие небольшого расстояния, за счет этого уменьшая число битов для кодирования значения режима прогнозирования. Кроме того, небольшое значение режима прогнозирования предпочтительно может назначаться трехмерной точке, принадлежащей LoD, идентичному LoD трехмерной точки, которая должна кодироваться.
[0602] Фиг. 72 является схемой, показывающей третий пример таблицы, представляющей прогнозированные значения, вычисленные в режимах прогнозирования согласно настоящему варианту осуществления. В частности, третий пример представляет собой пример случая, в котором элемент информации атрибутов, используемый в качестве прогнозированного значения, представляет собой значение цветовой информации (YUV) окружающей трехмерной точки. В связи с этим, элемент информации атрибутов, используемый в качестве прогнозированного значения, может представлять собой цветовую информацию, указывающую цвет трехмерной точки.
[0603] Как показано на фиг. 72, прогнозированное значение, вычисленное в режиме прогнозирования, указываемом посредством значения режима прогнозирования "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-компонента.
[0604] На фиг. 72, цветовая информация указывается посредством значения, заданного посредством цветового YUV-пространства, но не ограничивается цветовым YUV-пространством. Цветовая информация может указываться посредством значения, заданного посредством цветового RGB-пространства, или значения, заданного посредством любого другого цветового пространства.
[0605] В связи с этим, при вычислении прогнозированного значения, два или более средних или два или более элемента информации атрибутов могут вычисляться как прогнозированные значения режимов прогнозирования. Два или более средних или два или более элемента информации атрибутов могут указывать два или более значений компонентов, задающие цветовое пространство.
[0606] Например, когда режим прогнозирования, указываемый посредством значения режима прогнозирования "2" в таблице на фиг. 72, выбирается, Y-компонент, U-компонент и V-компонент в качестве значений атрибутов трехмерной точки, которая должна кодироваться, могут кодироваться как прогнозированные значения Ya2, Ua2, Va2. В этом случае, значение режима прогнозирования "2" присоединяется к потоку битов.
[0607] Фиг. 73 является схемой, показывающей четвертый пример таблицы, представляющей прогнозированные значения, вычисленные в режимах прогнозирования согласно настоящему варианту осуществления. В частности, четвертый пример представляет собой пример случая, в котором элемент информации атрибутов, используемый в качестве прогнозированного значения, представляет собой значение информации отражательной способности окружающей трехмерной точки. Информация отражательной способности, например, представляет собой информацию, указывающую отражательную способность R.
[0608] Как показано на фиг. 73, прогнозированное значение, вычисленное в режиме прогнозирования, указываемом посредством значения режима прогнозирования "0", представляет собой средневзвешенное значение Rave отражательных способностей Rb1, Ra2, Ra1, Ra0, соответствующий точкам b1, a2, a1, a0, соответственно. Прогнозированные значения, вычисленные в режимах прогнозирования, указываемых посредством значений режима прогнозирования в "1"-"4", представляют собой отражательные способности Rb1, Ra2, Ra1, Ra0 окружающих трехмерных точек b1, a2, a1, a0, соответственно.
[0609] Например, когда режим прогнозирования, указываемый посредством значения режима прогнозирования "3" в таблице на фиг. 73, выбирается, отражательная способность в качестве значения атрибута трехмерной точки, которая должна кодироваться, может кодироваться как прогнозированное значение Ra1. В этом случае, значение режима прогнозирования "3" присоединяется к потоку битов.
[0610] Как показано на фиг. 72 и 73, элемент информации атрибутов может включать в себя первый элемент информации атрибутов и второй элемент информации атрибутов, отличающийся от первого элемента информации атрибутов. Первый элемент информации атрибутов, например, представляет собой цветовую информацию. Второй элемент информации атрибутов, например, представляет собой информацию отражательной способности. При вычислении прогнозированного значения, первое прогнозированное значение может вычисляться посредством использования первого элемента информации атрибутов, и второе прогнозированное значение может вычисляться посредством использования второго элемента информации атрибутов.
[0611] Вариант 10 осуществления
В дальнейшем в этом документе, способ с использованием адаптивного к области иерархического преобразования (RAHT) описывается как другой способ кодирования информации атрибутов трехмерной точки. Фиг. 74 является схемой для описания кодирования информации атрибутов посредством использования RAHT.
[0612] Во-первых, устройство кодирования трехмерных данных формирует коды Мортона на основе геометрической информации трехмерных точек и сортирует информацию атрибутов трехмерных точек в порядке кодов Мортона. Например, устройство кодирования трехмерных данных может выполнять сортировку в порядке по возрастанию кодов Мортона. Следует отметить, что порядок сортировки не ограничен порядком кодов Мортона, и другие порядки могут использоваться.
[0613] Затем, устройство кодирования трехмерных данных формирует высокочастотный компонент и низкочастотный компонент слоя L посредством применения преобразования Хаара к информации атрибутов двух смежных трехмерных точек в порядке кодов Мортона. Например, устройство кодирования трехмерных данных может использовать преобразование Хаара матриц 2×2. Формированный высокочастотный компонент включается в коэффициент кодирования в качестве высокочастотного компонента слоя L, и сформированный низкочастотный компонент используется в качестве входного значения для верхнего слоя L+1 слоя L.
[0614] После формирования высокочастотного компонента слоя L посредством использования информации атрибутов слоя L, устройство кодирования трехмерных данных затем выполняет обработку слоя L+1. В обработке слоя L+1 устройство кодирования трехмерных данных формирует высокочастотный компонент и низкочастотный компонент слоя L+1 посредством применения преобразования Хаара к двум низкочастотным компонентам, полученным посредством преобразования Хаара информации атрибутов слоя L. Сформированный высокочастотный компонент включается в коэффициент кодирования в качестве высокочастотного компонента слоя L+1, и сформированный низкочастотный компонент используется в качестве входного значения для верхнего слоя L+2 относительно слоя L+1.
[0615] Устройство кодирования трехмерных данных повторяет такую обработку слоев и определяет то, что самый верхний слой Lmax достигнут, в то время, когда низкочастотный компонент, который вводится в слой, становится одним. Устройство кодирования трехмерных данных включает низкочастотный компонент слоя Lmax-1, который вводится в слой Lmax, в коэффициент кодирования. Затем значение низкочастотного компонента или высокочастотного компонента, включенного в коэффициент кодирования, квантуется и кодируется посредством использования энтропийного кодирования и т.п.
[0616] Следует отметить, что, когда только одна трехмерная точка существует в качестве двух смежных трехмерных точек во время применения преобразования Хаара, устройство кодирования трехмерных данных может использовать значение информации атрибутов существующей одной трехмерной точки в качестве входного значения для верхнего слоя.
[0617] Таким образом, устройство кодирования трехмерных данных иерархически применяет преобразование Хаара к входной информации атрибутов, формирует высокочастотный компонент и низкочастотный компонент информации атрибутов и выполняет кодирование посредством применения квантования, описанного ниже, и т.п. Соответственно, эффективность кодирования может повышаться.
[0618] Когда информация атрибутов является N-мерной, устройство кодирования трехмерных данных может независимо применять преобразование Хаара для каждой размерности и может вычислять каждый коэффициент кодирования. Например, когда информация атрибутов представляет собой цветовую информацию (RGB, YUV и т.п.), устройство кодирования трехмерных данных применяет преобразование Хаара для каждого компонента и вычисляет каждый коэффициент кодирования.
[0619] Устройство кодирования трехмерных данных может применять преобразование Хаара в порядке слоев L, L+1, ..., Lmax. Чем ближе к слою Lmax, тем включающий в себя больше низкочастотных компонентов входной информации атрибутов коэффициент кодирования формируется.
[0620] w0 и w1, показанные на фиг. 74, представляют собой весовые коэффициенты, назначенные каждой трехмерной точке. Например, устройство кодирования трехмерных данных может вычислять весовой коэффициент на основе информации расстояния между двумя смежными трехмерными точками, к которым применяется преобразование Хаара, и т.п. Например, устройство кодирования трехмерных данных может повышать эффективность кодирования таким образом, что чем ближе расстояние, тем больше весовой коэффициент. Следует отметить, что устройство кодирования трехмерных данных может вычислять этот весовой коэффициент с помощью другой технологии или не должно обязательно использовать весовой коэффициент.
[0621] В примере, показанном на фиг. 74, фрагменты входной информации атрибутов представляют собой a0, a1, a2, a3, a4 и a5. Дополнительно, Ta1, Ta5, Tb1, Tb3, Tc1 и d0 кодируются для коэффициентов кодирования после преобразования Хаара. Другие коэффициенты кодирования (b0, b2, c0 и т.п.) представляют собой срединные значения и не кодируются.
[0622] В частности, в примере, показанном на фиг. 74, высокочастотный компонент Ta1 и низкочастотный компонент b0 формируются посредством выполнения преобразования Хаара для a0 и a1. Здесь, когда весовые коэффициенты w0 и w1 равны, низкочастотный компонент b0 представляет собой среднее значение a0 и a1, и высокочастотный компонент Ta1 представляет собой разность между a0 и a1.
[0623] Поскольку отсутствует информация атрибутов, которая должна спариваться с a2, a2 используется в качестве b1 как есть. Аналогично, поскольку отсутствует информация атрибутов, которая должна спариваться с a3, a3 используется в качестве b2 как есть. Дополнительно, высокочастотный компонент Ta5 и низкочастотный компонент b3 формируются посредством выполнения преобразования Хаара для a4 и a5.
[0624] В слое L+1, высокочастотный компонент Tb1 и низкочастотный компонент c0 формируются посредством выполнения преобразования Хаара для b0 и b1. Аналогично, высокочастотный компонент Tb3 и низкочастотный компонент c1 формируются посредством выполнения преобразования Хаара для b2 и b3.
[0625] В слое Lmax-1, высокочастотный компонент Tc1 и низкочастотный компонент d0 формируются посредством выполнения преобразования Хаара для c0 и c1.
[0626] Устройство кодирования трехмерных данных может кодировать коэффициенты кодирования, к которым применяется преобразование Хаара, после квантования коэффициентов кодирования. Например, устройство кодирования трехмерных данных выполняет квантование посредством деления коэффициента кодирования на масштаб квантования (также называемый "шагом квантования" (QS)). В этом случае, чем меньше масштаб квантования, тем меньше ошибка (ошибка квантования), которая может возникать вследствие квантования. С другой стороны, чем больше масштаб квантования, тем больше ошибка квантования.
[0627] Следует отметить, что устройство кодирования трехмерных данных может изменять значение масштаба квантования для каждого слоя. Фиг. 75 является схемой, показывающей пример задания масштаба квантования для каждого слоя. Например, устройство кодирования трехмерных данных задает меньшими масштабы квантования для верхних слоев и большие масштабы квантования для нижних слоев. Поскольку коэффициенты кодирования трехмерных точек, принадлежащих верхним слоям, включают в себя больше низкочастотных компонентов, чем нижние слои, имеется высокая вероятность того, что коэффициенты кодирования представляют собой важные компоненты в человеческих визуальных характеристиках и т.п. Следовательно, посредством подавления ошибки квантования, которая может возникать в верхних слоях, посредством задания масштабов квантования для верхних слоев небольшими, визуальное ухудшение качества может подавляться, и эффективность кодирования может повышаться.
[0628] Следует отметить, что устройство кодирования трехмерных данных может добавлять масштаб квантования для каждого слоя в заголовок и т.п. Соответственно, устройство трехмерного декодирования может корректно декодировать масштаб квантования и может надлежащим образом декодировать поток битов.
[0629] Дополнительно, устройство кодирования трехмерных данных может адаптивно переключать значение масштаба квантования согласно важности текущей трехмерной точки, которая должна кодироваться. Например, устройство кодирования трехмерных данных использует небольшой масштаб квантования для трехмерной точки с высокой важностью и использует большой масштаб квантования для трехмерной точки с низкой важностью. Например, устройство кодирования трехмерных данных может вычислять важность из весового коэффициента во время преобразования Хаара и т.п. Например, устройство кодирования трехмерных данных может вычислять масштаб квантования посредством использования суммы w0 и w1. Таким образом, посредством задания масштаба квантования трехмерной точки с высокой важностью небольшим, ошибка квантования становится небольшой, и эффективность кодирования может повышаться.
[0630] Дополнительно, значение QS может задаваться меньшим для верхних слоев. Соответственно, чем выше слой, тем больше значение QW, и эффективность прогнозирования может повышаться посредством подавления ошибки квантования трехмерной точки.
[0631] Здесь, коэффициент Ta1q кодирования после квантования коэффициента Ta1 кодирования информации a1 атрибутов представляется посредством Ta1/QS_L. Следует отметить, что QS может составлять идентичное значение во всех слоях или в части слоев.
[0632] QW (весовой коэффициент квантования) представляет собой значение, которое представляет важность текущей трехмерной точки, которая должна кодироваться. Например, вышеописанная сумма w0 и w1 может использоваться в качестве QW. Соответственно, чем выше слой, тем больше значение QW, и эффективность прогнозирования может повышаться посредством подавления ошибки квантования трехмерной точки.
[0633] Например, устройство кодирования трехмерных данных может сначала инициализировать значения QW всех трехмерных точек с 1 и может обновлять QW каждой трехмерной точки посредством использования значений w0 и w1 во время преобразования Хаара. Альтернативно, устройство кодирования трехмерных данных может изменять начальное значение согласно слоям, без инициализации значений QW всех трехмерных точек со значением 1. Например, масштабы квантования для верхних слоев становится небольшим посредством задания большими начальных QW-значений для верхних слоев. Соответственно, поскольку ошибка прогнозирования в верхних слоях может подавляться, точность прогнозирования нижних слоев может увеличиваться, и эффективность кодирования может повышаться. Следует отметить, что устройство кодирования трехмерных данных не должно обязательно использовать QW.
[0634] При использовании QW, квантованное значение Ta1q Ta1 вычисляется посредством (уравнения K1) и (уравнения K2).
[0635] Математическое выражение 5
[0636] Дополнительно, устройство кодирования трехмерных данных сканирует и кодирует коэффициенты кодирования (целочисленные значения без знака) после квантования в определенном порядке. Например, устройство кодирования трехмерных данных кодирует множество трехмерных точек от трехмерных точек, включенных в верхние слои, к нижним слоям в порядке.
[0637] Например, в примере, показанном на фиг. 74, устройство кодирования трехмерных данных кодирует множество трехмерных точек в порядке Tc1q Tb1q, Tb3q, Ta1q и Ta5q из d0q, включенного в верхний слой Lmax. Здесь, возникает такая тенденция, что чем ниже слой L, тем более вероятно то, что коэффициент кодирования после квантования становится равным 0. Это может быть обусловлено следующим и т.п.
[0638] Поскольку коэффициент кодирования нижнего слоя L показывает компонент верхних частот по сравнению с верхними слоями, существует такая тенденция, что коэффициент кодирования становится равным 0 в зависимости от текущей трехмерной точки. Дополнительно, посредством переключения масштаба квантования согласно вышеописанной важности и т.п., чем ниже слой, тем больше масштабы квантования, и тем более вероятно происходит то, что коэффициент кодирования после квантования становится равным 0.
[0639] Таким образом, чем ниже слой, тем более вероятно происходит то, что коэффициент кодирования после квантования становится равным 0, и значение 0 последовательно возникает в первой кодовой последовательности. Фиг. 76 является схемой, показывающей пример первой кодовой последовательности и второй кодовой последовательности.
[0640] Устройство кодирования трехмерных данных подсчитывает число раз, когда значение 0 возникает в первой кодовой последовательности, и кодирует число раз, когда значение 0 последовательно возникает вместо последовательных значений 0. Таким образом, устройство кодирования трехмерных данных формирует вторую кодовую последовательность посредством замены коэффициента кодирования последовательных значений 0 в первой кодовой последовательности числом (ZeroCnt) последовательных 0. Соответственно, когда имеются последовательные значения в 0 коэффициентов кодирования после квантования, эффективность кодирования может повышаться посредством кодирования числа последовательных 0, вместо кодирования множества нулей.
[0641] Дополнительно, устройство кодирования трехмерных данных может энтропийно кодировать значение ZeroCnt. Например, устройство кодирования трехмерных данных преобразует в двоичную форму значение ZeroCnt с усеченным унарным кодом общего числа T кодированных трехмерных точек и арифметически кодирует каждый бит после преобразования в двоичную форму. Фиг. 77 является схемой, показывающей пример усеченного унарного кода в случае, если общее число кодированных трехмерных точек составляет T. В это время, устройство кодирования трехмерных данных может повышать эффективность кодирования посредством использования разной таблицы кодирования для каждого бита. Например, устройство кодирования трехмерных данных использует таблицу 1 кодирования для первого бита, использует таблицу 2 кодирования для второго бита и таблицу 3 кодирования для последующих битов. Таким образом, устройство кодирования трехмерных данных может повышать эффективность кодирования посредством переключения таблицы кодирования для каждого бита.
[0642] Дополнительно, устройство кодирования трехмерных данных может арифметически кодировать ZeroCnt после преобразования в двоичную форму ZeroCnt с экспоненциальным кодом Голомба. Соответственно, когда значение ZeroCnt легко становится большим, эффективность может повышаться в большей степени, чем при арифметическом кодировании с преобразованием в двоичную форму с помощью усеченного унарного кода. Следует отметить, что устройство кодирования трехмерных данных может добавлять флаг для переключения между использованием усеченного унарного кода и использованием экспоненциального кода Голомба в заголовок. Соответственно, устройство кодирования трехмерных данных может повышать эффективность кодирования посредством выбора оптимального способа преобразования в двоичную форму. Дополнительно, устройство декодирования трехмерных данных может корректно декодировать поток битов посредством ссылки на флаг, включенный в заголовок, чтобы переключать способ преобразования в двоичную форму.
[0643] Устройство трехмерного декодирования может преобразовывать декодированный коэффициент кодирования после квантования из целочисленного значения без знака в целочисленное значение со знаком способом, обратным по отношению к способу, осуществляемому посредством устройства кодирования трехмерных данных. Соответственно, когда коэффициент кодирования энтропийно кодируется, устройство трехмерного декодирования может надлежащим образом декодировать поток битов, сформированный без учета возникновения отрицательного целого числа. Следует отметить, что устройство трехмерного декодирования не должно обязательно преобразовывать коэффициент кодирования из целочисленного значения без знака в целочисленное значение со знаком. Например, при декодировании потока битов, включающего в себя кодированный бит, который отдельно энтропийно кодирован, устройство трехмерного декодирования может декодировать знаковый бит.
[0644] Устройство трехмерного декодирования декодирует коэффициент кодирования после квантования, преобразованного в целочисленное значение со знаком, посредством обратного квантования и обратного преобразования Хаара. Дополнительно, устройство трехмерного декодирования использует коэффициент кодирования после декодирования для прогнозирования после текущей трехмерной точки, которая должна декодироваться. В частности, устройство трехмерного декодирования вычисляет обратно квантованное значение посредством умножения коэффициента кодирования после квантования на декодированный масштаб квантования. Затем, устройство трехмерного декодирования получает декодированное значение посредством применения обратного преобразования Хаара, описанного ниже, к обратно квантованному значению.
[0645] Например, устройство трехмерного декодирования преобразует декодированное целочисленное значение без знака в целочисленное значение со знаком с помощью следующего способа. Когда LSB (младший бит) декодированного целочисленного значения a2u без знака равен 1, целочисленное значение Ta1q со знаком задается равным -((a2u+1)>>1). Когда LSB декодированного целочисленного значения a2u без знака не равен 1 (когда он равен 0), целочисленное значение Ta1q со знаком задается равным (a2u>>1).
[0646] Дополнительно, обратно квантованное значение Ta1 представляется посредством Ta1q x QS_L. Здесь, Ta1q является квантованным значением Ta1. Помимо этого, QS_L является шагом квантования для слоя L.
[0647] Дополнительно, QS может составлять идентичное значение для всех слоев или части слоев. Помимо этого, устройство кодирования трехмерных данных может добавлять информацию, указывающую QS, в заголовок и т.п. Соответственно, устройство трехмерного декодирования может корректно выполнять обратное квантование посредством использования QS, идентичного QS, используемого посредством устройства кодирования трехмерных данных.
[0648] Далее описывается обратное преобразование Хаара. Фиг. 78 является схемой для описания обратного преобразования Хаара. Устройство трехмерного декодирования декодирует значение атрибута трехмерной точки посредством применения обратного преобразования Хаара к коэффициенту кодирования после обратного квантования.
[0649] Во-первых, устройство трехмерного декодирования формирует коды Мортона на основе геометрической информации трехмерных точек и сортирует трехмерные точки в порядке кодов Мортона. Например, устройство трехмерного декодирования может выполнять сортировку в порядке возрастания кодов Мортона. Следует отметить, что порядок сортировки не ограничен порядком кодов Мортона, и другой порядок может использоваться.
[0650] Затем, устройство трехмерного декодирования восстанавливает информацию атрибутов трехмерных точек, которые являются смежными друг с другом в порядке кодов Мортона в слое L, посредством применения обратного преобразования Хаара к коэффициенту кодирования, включающему в себя низкочастотный компонент слоя L+1, и к коэффициенту кодирования, включающему в себя высокочастотный компонент слоя L. Например, устройство трехмерного декодирования может использовать обратное преобразование Хаара матрицы 2×2. Информация атрибутов восстановленного слоя L используется в качестве входного значения для нижнего слоя L-1.
[0651] Устройство трехмерного декодирования повторяет такую обработку слоев и завершает обработку, когда вся информация атрибутов нижнего слоя декодируется. Следует отметить, что когда только одна трехмерная точка существует в качестве двух трехмерных точек, которые являются смежными друг с другом в слое L-1 во время применения обратного преобразования Хаара, устройство трехмерного декодирования может назначать значение компонента кодирования слоя L значению атрибута одной существующей трехмерной точки. Соответственно, устройство трехмерного декодирования может корректно декодировать поток битов с повышенной эффективностью кодирования посредством применения преобразования Хаара ко всем значениям входной информации атрибутов.
[0652] Когда информация атрибутов является N-мерной, устройство трехмерного декодирования может независимо применять обратное преобразование Хаара для каждой размерности и может декодировать каждый коэффициент кодирования. Например, когда информация атрибутов представляет собой цветовую информацию (RGB, YUV и т.п.), устройство декодирования трехмерных данных применяет обратное преобразование Хаара к коэффициенту кодирования для каждого компонента и декодирует каждое значение атрибута.
[0653] Устройство трехмерного декодирования может применять обратное преобразование Хаара в порядке слоев Lmax, L+1..., L. Дополнительно, w0 и w1, показанные на фиг. 78, представляют собой весовые коэффициенты, назначенные каждой трехмерной точке. Например, устройство декодирования трехмерных данных может вычислять весовой коэффициент на основе информации расстояния между двумя смежными трехмерными точками, к которым применяется обратное преобразование Хаара, и т.п. Например, устройство кодирования трехмерных данных может декодировать поток битов с повышенной эффективностью кодирования таким образом, что чем ближе расстояние, тем больше весовой коэффициент.
[0654] В примере, показанном на фиг. 78, коэффициенты кодирования после обратного квантования, представляют собой Ta1, Ta5, Tb1, Tb3, Tc1 и d0, и a0, a1, a2, a3, a4 и a5 получаются в качестве декодированных значений.
[0655] Фиг. 79 является схемой, показывающей пример синтаксиса информации (attribute_data) атрибутов. Информация (attribute_data) атрибутов включает в себя число последовательных нулей (ZeroCnt), число (attribute_dimension) размерностей атрибутов и коэффициент кодирования (значение [j][i]).
[0656] Число последовательных нулей (ZeroCnt) указывает число раз, когда значение 0 продолжается в коэффициенте кодирования после квантования. Следует отметить, что устройство кодирования трехмерных данных может арифметически кодировать ZeroCnt после преобразования в двоичную форму ZeroCnt.
[0657] Дополнительно, как показано на фиг. 79, устройство кодирования трехмерных данных может определять то, равен или больше либо нет слой L (слой), которому принадлежит коэффициент кодирования, предварительно заданного порогового значения TH_layer, и может переключать информацию, добавляемую в поток битов, согласно результату определения. Например, когда результат определения представляет собой "истина", устройство кодирования трехмерных данных добавляет все коэффициенты кодирования информации атрибутов в поток битов. Помимо этого, когда результат определения представляет собой "ложь", устройство кодирования трехмерных данных может добавлять часть коэффициентов кодирования в поток битов.
[0658] В частности, когда результат определения представляет собой "истина", устройство кодирования трехмерных данных добавляет кодированный результат трехмерной информации цветовой информации RGB или YUV в поток битов. Когда результат определения представляет собой "ложь", устройство кодирования трехмерных данных может добавлять часть информации, к примеру, G или Y цветовой информации, в поток битов и не должно обязательно добавлять другие компоненты в поток битов. Таким образом, устройство кодирования трехмерных данных может повышать эффективность кодирования за счет недобавления части коэффициентов кодирования слоя (слоя, меньшего TH_layer), включающего в себя коэффициенты кодирования, указывающие высокочастотный компонент с менее визуально заметным ухудшением характеристик, в поток битов.
[0659] Число (attribute_dimension) размерностей атрибутов указывает число размерностей информации атрибутов. Например, когда информация атрибутов представляет собой цветовую информацию (RGB, YUV и т.п.) трехмерной точки, поскольку цветовая информация является трехмерной, число размерностей атрибутов задается равным значению 3. Когда информация атрибутов представляет собой отражательную способность, поскольку отражательная способность является одномерной, число размерностей атрибутов задается равным значению 1. Следует отметить, что число размерностей атрибутов может добавляться в заголовок информации атрибутов потока битов и т.п.
[0660] Коэффициент кодирования (значение [j][i]) указывает коэффициент кодирования после квантования информации атрибутов j-ой размерности i-ой трехмерной точки. Например, когда информация атрибутов представляет собой цветовую информацию, значение [99][1] указывает коэффициент кодирования второй размерности (например, значение G) 100-й трехмерной точки. Дополнительно, когда информация атрибутов представляет собой информацию отражательной способности, значение [119][0] указывает коэффициент кодирования первой размерности (например, отражательную способность) 120-й трехмерной точки.
[0661] Следует отметить, что когда следующие условия удовлетворяются, устройство кодирования трехмерных данных может вычитать значение 1 из значения [j][i] и может энтропийно кодировать полученное значение. В этом случае, устройство декодирования трехмерных данных восстанавливает коэффициент кодирования посредством суммирования значения 1 со значением [j][i] после энтропийного декодирования.
[0662] Вышеописанные условия представляют собой (1), когда attribute_dimension=1, или (2) когда attribute_dimension равен 1 или более, и когда значения всех размерностей равны. Например, когда информация атрибутов представляет собой отражательную способность, поскольку attribute_dimension=1, устройство кодирования трехмерных данных вычитает значение 1 из коэффициента кодирования, чтобы вычислять значение, и кодирует вычисленное значение. Устройство трехмерного декодирования вычисляет коэффициент кодирования посредством суммирования значения 1 со значением после декодирования.
[0663] Более конкретно, например, когда коэффициент кодирования отражательной способности равен 10, устройство кодирования трехмерных данных кодирует значение 9, полученное посредством вычитания значения 1 из значения 10 коэффициента кодирования. Устройство декодирования трехмерных данных суммирует значение 1 с декодированным значением 9, чтобы вычислять значение 10 коэффициента кодирования.
[0664] Дополнительно, поскольку 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) как есть качестве коэффициентов кодирования.
[0665] Таким образом, посредством предоставления ZeroCnt, поскольку шаблон, в котором все размерности равны 0 в качестве значения, не формируется, значение, полученное посредством вычитания 1 из значения, указываемого посредством значения, может кодироваться. Следовательно, эффективность кодирования может повышаться.
[0666] Дополнительно, значение [0][i], показанное на фиг. 79, указывает коэффициент кодирования после квантования информации атрибутов первой размерности i-ой трехмерной точки. Как показано на фиг. 79, когда слой L (слой), которому принадлежит коэффициент кодирования, меньше порогового значения TH_layer, объем кода может уменьшаться посредством добавления информации атрибутов первой размерности в поток битов (недобавления информации атрибутов второй и следующих размерностей в поток битов).
[0667] Устройство кодирования трехмерных данных может переключать способ вычислений значения ZeroCnt в зависимости от значения attribute_dimension. Например, когда attribute_dimension=3, устройство кодирования трехмерных данных может подсчитывать число раз, когда значения коэффициентов кодирования всех компонентов (размерности) становятся равными 0. Фиг. 80 является схемой, показывающей пример коэффициента кодирования и ZeroCnt в этом случае. Например, в случае цветовой информации, показанной на фиг. 80, устройство кодирования трехмерных данных подсчитывает число последовательных коэффициентов кодирования, имеющих 0 для всех R-, G- и B-компонентов, и добавляет подсчитанное число в поток битов в качестве ZeroCnt. Соответственно, становится необязательным кодировать ZeroCnt для каждого компонента, и объем служебной информации может уменьшаться. Следовательно, эффективность кодирования может повышаться. Следует отметить, что устройство кодирования трехмерных данных может вычислять ZeroCnt для каждой размерности, даже когда attribute_dimension равен двум или более, и может добавлять вычисленный ZeroCnt в поток битов.
[0668] Фиг. 81 является блок-схемой последовательности операций способа для обработки кодирования трехмерных данных согласно настоящему варианту осуществления. Во-первых, устройство кодирования трехмерных данных кодирует геометрическую информацию (геометрию) (S6601). Например, устройство кодирования трехмерных данных выполняет кодирование с использованием представления в виде дерева октантов.
[0669] Затем, устройство кодирования трехмерных данных преобразует информацию атрибутов (S6602). Например, после кодирования геометрической информации, когда позиция трехмерной точки изменяется вследствие квантования и т.п., устройство кодирования трехмерных данных переназначает информацию атрибутов исходной трехмерной точки трехмерной точке после изменения. Следует отметить, что устройство кодирования трехмерных данных может интерполировать значение информации атрибутов согласно величине изменения позиции, чтобы выполнять переназначение. Например, устройство кодирования трехмерных данных обнаруживает N трехмерных точек перед изменением около трехмерной позиции после изменения, выполняет усреднение со взвешиванием значения информации атрибутов N трехмерных точек на основе расстояния от трехмерной позиции после изменения каждой из трехмерных точек N и задает полученное значение в качестве значения информации атрибутов трехмерной точки после изменения. Дополнительно, когда две или более трехмерных точки изменяются на идентичную трехмерную позицию вследствие квантования и т.п., устройство кодирования трехмерных данных может назначать среднее значение информации атрибутов в двух или более трехмерных точках перед изменением в качестве значения информации атрибутов после изменения.
[0670] Затем, устройство кодирования трехмерных данных кодирует информацию атрибутов (S6603). Например, при кодировании множества фрагментов информации атрибутов, устройство кодирования трехмерных данных может кодировать множество фрагментов информации атрибутов по порядку. Например, при кодировании цвета и отражательной способности в качестве информации атрибутов, устройство кодирования трехмерных данных формирует поток битов, в который результат кодирования отражательной способности добавляется, после результата кодирования цвета. Следует отметить, что множество результатов кодирования информации атрибутов, добавляемой в поток битов, могут располагаться в любом порядке.
[0671] Устройство кодирования трехмерных данных может добавлять информацию, указывающую начальную точку кодированных данных каждой информации атрибутов в потоке битов, в заголовок и т.п. Соответственно, поскольку устройство декодирования трехмерных данных может избирательно декодировать информацию атрибутов, которая должна декодироваться, обработка декодирования информации атрибутов, которая не должна декодироваться, может опускаться. Следовательно, объем обработки для устройства декодирования трехмерных данных может уменьшаться. Дополнительно, устройство кодирования трехмерных данных может кодировать множество фрагментов информации атрибутов параллельно и может интегрировать результаты кодирования в один поток битов. Соответственно, устройство кодирования трехмерных данных может кодировать множество фрагментов информации атрибутов на высокой скорости.
[0672] Фиг. 82 является блок-схемой последовательности операций способа для обработки кодирования информации атрибутов (S6603). Во-первых, устройство кодирования трехмерных данных формирует коэффициент кодирования из информации атрибутов посредством преобразования Хаара (S6611). Затем, устройство кодирования трехмерных данных применяет квантование к коэффициенту кодирования (S6612). Затем, устройство кодирования трехмерных данных формирует кодированную информацию атрибутов (поток битов) посредством кодирования коэффициента кодирования после квантования (S6613).
[0673] Дополнительно, устройство кодирования трехмерных данных применяет обратное квантование к коэффициенту кодирования после квантования (S6614). Затем, устройство трехмерного декодирования декодирует информацию атрибутов посредством применения обратного преобразования Хаара к коэффициенту кодирования после обратного квантования (S6615). Например, на декодированную информацию атрибутов ссылаются при следующем кодировании.
[0674] Фиг. 83 является блок-схемой последовательности операций способа для обработки кодирования коэффициентов кодирования (S6613). Во-первых, устройство кодирования трехмерных данных преобразует коэффициент кодирования из целочисленного значения со знаком в целочисленное значение без знака (S6621). Например, устройство кодирования трехмерных данных преобразует целочисленное значение со знаком в целочисленное значение без знака следующим образом. Когда целочисленное значение Ta1q со знаком меньше 0, целочисленное значение без знака задается равным -1-(2 x Ta1q). Когда целочисленное значение Ta1q со знаком равно или больше 0, целочисленное значение без знака задается равным 2 x Ta1q. Следует отметить, что, когда коэффициент кодирования не становится отрицательным значением, устройство кодирования трехмерных данных может кодировать коэффициент кодирования в качестве целочисленного значения без знака как есть.
[0675] Когда не все коэффициенты прогнозирования обрабатываются ("Нет" на S6662), устройство кодирования трехмерных данных определяет то, равно или нет значение коэффициента кодирования, который должен обрабатываться, нулю (S6623). Когда значение коэффициента кодирования, который должен обрабатываться, равно нулю ("Да" на S6623), устройство кодирования трехмерных данных постепенно увеличивает ZeroCnt на 1 (S624) и возвращается к этапу S6622.
[0676] Когда значение коэффициента кодирования, который должен обрабатываться, не равно нулю ("Нет" на S6623), устройство кодирования трехмерных данных кодирует ZeroCnt и сбрасывает ZeroCnt на нуль (S6625). Дополнительно, устройство кодирования трехмерных данных арифметически кодирует коэффициент кодирования, который должен обрабатываться (S6626), и возвращается к этапу S6622. Например, устройство кодирования трехмерных данных выполняет двоичное арифметическое кодирование. Помимо этого, устройство кодирования трехмерных данных может вычитать значение 1 из коэффициента кодирования и может кодировать полученное значение.
[0677] Дополнительно, обработка этапов S6623-S6626 многократно выполняется для каждого коэффициента кодирования. Помимо этого, когда все коэффициенты прогнозирования обрабатываются ("Да" на S6662), устройство кодирования трехмерных данных завершает обработку.
[0678] Фиг. 84 является блок-схемой последовательности операций способа для обработки декодирования трехмерных данных согласно настоящему варианту осуществления. Во-первых, устройство трехмерного декодирования декодирует геометрическую информацию (геометрию) из потока битов (S6631). Например, устройство декодирования трехмерных данных выполняет декодирование с использованием представления в виде дерева октантов.
[0679] Затем, устройство трехмерного декодирования декодирует информацию атрибутов из потока битов (S6632). Например, при декодировании множества фрагментов информации атрибутов, устройство трехмерного декодирования может декодировать множество фрагментов информации атрибутов по порядку. Например, при декодировании цвета и отражательной способности в качестве информации атрибутов, устройство декодирования трехмерных данных декодирует результат кодирования цвета и результат кодирования отражательной способности согласно порядку, в котором они добавляются в поток битов. Например, когда результат кодирования отражательной способности добавляется после результата кодирования цвета в потоке битов, устройство декодирования трехмерных данных декодирует результат кодирования цвета и после этого декодирует результат кодирования отражательной способности. Следует отметить, что устройство декодирования трехмерных данных может декодировать результаты кодирования информации атрибутов, добавляемой в поток битов, в любом порядке.
[0680] Устройство трехмерного декодирования может получать информацию, указывающую начальную точку кодированных данных каждой информации атрибутов в потоке битов, посредством декодирования заголовка и т.п. Соответственно, поскольку устройство декодирования трехмерных данных может избирательно декодировать информацию атрибутов, которая должна декодироваться, обработка декодирования информации атрибутов, которая не должна декодироваться, может опускаться. Следовательно, объем обработки устройства трехмерного декодирования может уменьшаться. Дополнительно, устройство декодирования трехмерных данных может декодировать множество фрагментов информации атрибутов параллельно и может интегрировать результаты декодирования в одно облако трехмерных точек. Соответственно, устройство декодирования трехмерных данных может декодировать множество фрагментов информации атрибутов на высокой скорости.
[0681] Фиг. 85 является блок-схемой последовательности операций способа для обработки декодирования информации атрибутов (S6632). Во-первых, устройство трехмерного декодирования декодирует коэффициент кодирования из потока битов (S6641). Затем, устройство трехмерного декодирования применяет обратное квантование к коэффициенту кодирования (S6642). Затем, устройство трехмерного декодирования декодирует информацию атрибутов посредством применения обратного преобразования Хаара к коэффициенту кодирования после обратного квантования (S6643).
[0682] Фиг. 86 является блок-схемой последовательности операций способа для обработки декодирования коэффициентов кодирования (S6641). Во-первых, устройство трехмерного декодирования декодирует ZeroCnt из потока битов (S6651). Когда не все коэффициенты прогнозирования обрабатываются ("Нет" на S6652), устройство трехмерного декодирования определяет то, превышает или нет ZeroCnt 0 (S6653).
[0683] Когда ZeroCnt превышает нуль ("Да" на S6653), устройство трехмерного декодирования задает коэффициент кодирования, который должен обрабатываться, равным 0 (S6654). Затем, устройство трехмерного декодирования вычитает 1 из ZeroCnt (S6655) и возвращается к этапу S6652.
[0684] Когда ZeroCnt равен нулю ("Нет" на S6653), устройство трехмерного декодирования декодирует коэффициент кодирования, который должен обрабатываться (S6656). Например, устройство трехмерного декодирования использует двоичное арифметическое декодирование. Дополнительно, устройство трехмерного декодирования может суммировать значение 1 с декодированным коэффициентом кодирования.
[0685] Затем, устройство трехмерного декодирования декодирует ZeroCnt, задает полученное значение равным ZeroCnt (S6657) и возвращается к этапу S6652.
[0686] Дополнительно, обработка этапов S6653-S6657 многократно выполняется для каждого коэффициента кодирования. Помимо этого, когда все коэффициенты прогнозирования обрабатываются ("Да" на S6652), устройство кодирования трехмерных данных преобразует множество декодированных коэффициентов кодирования из целочисленных значений без знака в целочисленные значения со знаком (S6648). Например, устройство декодирования трехмерных данных может преобразовывать декодированные коэффициенты кодирования из целочисленных значений без знака в целочисленные значения со знаком следующим образом. Когда LSB (младший бит) декодированного целочисленного значения Ta1u без знака равен 1, целочисленное значение Ta1q со знаком задается равным -((Ta1u+1)>>1). Когда LSB декодированного целочисленного значения Ta1u без знака не равен 1 (когда он равен 0), целочисленное значение Ta1q со знаком задается равным (Ta1u>>1). Следует отметить, что, когда коэффициент кодирования не становится отрицательным значением, устройство декодирования трехмерных данных может использовать декодированный коэффициент кодирования как есть в качестве целочисленного значения со знаком.
[0687] Фиг. 87 является блок-схемой кодера 6600 информации атрибутов, включенного в устройство кодирования трехмерных данных. Кодер 6600 информации атрибутов включает в себя сортировщик 6601, преобразователь 6602 Хаара, квантователь 6603, обратный квантователь 6604, обратный преобразователь 6605 Хаара, запоминающее устройство 6606 и арифметический кодер 6607.
[0688] Сортировщик 6601 формирует коды Мортона посредством использования геометрической информации трехмерных точек и сортирует множество трехмерных точек в порядке кодов Мортона. Преобразователь 6602 Хаара формирует коэффициент кодирования посредством применения преобразования Хаара к информации атрибутов. Квантователь 6603 квантует коэффициент кодирования информации атрибутов.
[0689] Обратный квантователь 6604 обратно квантует коэффициент кодирования после квантования. Обратный преобразователь 6605 Хаара применяет обратное преобразование Хаара к коэффициенту кодирования. Запоминающее устройство 6606 сохраняет значения фрагментов информации атрибутов множества декодированных трехмерных точек. Например, информация атрибутов декодированных трехмерных точек, сохраненных в запоминающем устройстве 6606, может использоваться для прогнозирования и т.п. некодированной трехмерной точки.
[0690] Арифметический кодер 6607 вычисляет ZeroCnt из коэффициента кодирования после квантования и арифметически кодирует ZeroCnt. Дополнительно, арифметический кодер 6607 арифметически кодирует ненулевой коэффициент кодирования после квантования. Арифметический кодер 6607 может преобразовывать в двоичную форму коэффициент кодирования перед арифметическим кодированием. Помимо этого, арифметический кодер 6607 может формировать и кодировать различные виды информации заголовка.
[0691] Фиг. 88 является блок-схемой декодера 6610 информации атрибутов, включенного в устройство трехмерного декодирования. Декодер 6610 информации атрибутов включает в себя арифметический декодер 6611, обратный квантователь 6612, обратный преобразователь 6613 Хаара и запоминающее устройство 6614.
[0692] Арифметический декодер 6611 арифметически декодирует ZeroCnt и коэффициент кодирования, включенные в поток битов. Следует отметить, что арифметический декодер 6611 может декодировать различные виды информации заголовка.
[0693] Обратный квантователь 6612 обратно квантует арифметически декодированный коэффициент кодирования. Обратный преобразователь 6613 Хаара применяет обратное преобразование Хаара к коэффициенту кодирования после обратного квантования. Запоминающее устройство 6614 сохраняет значения фрагментов информации атрибутов множества декодированных трехмерных точек. Например, информация атрибутов декодированных трехмерных точек, сохраненных в запоминающем устройстве 6614, может использоваться для прогнозирования недекодированной трехмерной точки.
[0694] Следует отметить, что в вышеописанном варианте осуществления, хотя показан пример, в котором трехмерные точки кодируются в порядке от нижних слоев к верхним слоям в качестве порядка кодирования, он не обязательно ограничивается этим. Например, может использоваться способ, который сканирует коэффициенты кодирования после преобразования Хаара в порядке от верхних слоев к нижним слоям. Следует отметить, что также в этом случае, устройство кодирования трехмерных данных может кодировать число последовательных значений 0 в качестве ZeroCnt.
[0695] Дополнительно, устройство кодирования трехмерных данных может переключать то, следует или нет использовать способ кодирования с использованием ZeroCnt, описанного в настоящем варианте осуществления, согласно WLD, SPC или объему. В этом случае, устройство кодирования трехмерных данных может добавлять информацию, указывающую то, применяется или нет способ кодирования с использованием ZeroCnt, к информации заголовка. Соответственно, устройство трехмерного декодирования может надлежащим образом выполнять декодирование. В качестве примера способа изменения, например, устройство кодирования трехмерных данных подсчитывает число возникновений коэффициента кодирования, имеющего значение 0 относительно одного объема. Когда значение счетчика превышает предварительно заданное пороговое значение, устройство кодирования трехмерных данных применяет способ с использованием ZeroCnt к следующему объему, и когда значение счетчика равно или меньше порогового значения, устройство кодирования трехмерных данных не применяет способ с использованием ZeroCnt к следующему объему. Соответственно, поскольку устройство кодирования трехмерных данных может надлежащим образом переключать то, применять или нет способ кодирования с использованием ZeroCnt согласно характеристике текущей трехмерной точки, которая должна кодироваться, эффективность кодирования может повышаться.
[0696] Вариант 11 осуществления
Далее описывается параметр квантования.
[0697] Чтобы разделять данные облаков точек на основе характеристик и позиций относительно данных облаков точек, используются срез и плитка. Здесь, разное качество может требоваться, например, для каждого из фрагментов разделительных данных облаков точек вследствие аппаратных ограничений или требований для обработки в реальном времени. Например, при кодировании данных облаков точек посредством разделения данных облаков точек на срезы на основе объектов, данные срезов, включающие в себя оборудование, являются менее важными, так что разрешение (качество) данных срезов может снижаться посредством квантования. С другой стороны, разрешение (качество) важных данных срезов может увеличиваться посредством задания значения квантования равным меньшему значению. Параметр квантования используется для того, чтобы обеспечивать такое управление значением квантования.
[0698] Здесь, данные, которые должны квантоваться, масштаб, используемый для квантования, и квантованные данные, которые представляют собой результат вычисления посредством квантования, выражаются посредством нижеприведенных уравнений G1 и G2.
[0699] квантованные данные=данные/масштаб (уравнение G1)
[0700] данные=квантованные данные * масштаб (уравнение G2)
[0701] Фиг. 89 является схемой для описания процесса, выполняемого посредством квантователя 5323, который квантует данные, и обратного квантователя 5333, который обратно квантует квантованные данные.
[0702] Квантователь 5323 квантует данные с использованием масштаба. Таким образом, квантователь 5323 вычисляет квантованные данные, которые представляют собой квантованные данные, посредством выполнения процесса согласно уравнению G1.
[0703] Обратный квантователь 5333 обратно квантует квантованные данные с использованием масштаба. Таким образом, обратный квантователь вычисляет обратно квантованные квантованные данные посредством выполнения процесса согласно уравнению G2.
[0704] Масштаб и значение квантования (значение параметра квантования (QP)) выражаются посредством нижеприведенного уравнения G3.
[0705] значение квантования (QP-значение) = логарифм (масштаб) (уравнение G3)
[0706] значение квантования (QP-значение) = значение по умолчанию (опорное значение) + дельта квантования (информация разности) (уравнение G4)
[0707] Эти параметры обобщенно называются "параметром квантования".
[0708] Например, как проиллюстрировано на фиг. 90, значение квантования представляет собой значение относительно значения по умолчанию и вычисляется посредством суммирования дельты квантования со значением по умолчанию. Если значение квантования меньше значения по умолчанию, дельта квантования представляет собой отрицательное значение. Если значение квантования превышает значение по умолчанию, дельта квантования представляет собой положительное значение. Если значение квантования равно значению по умолчанию, дельта квантования равна 0. Когда дельта квантования равна 0, дельта квантования может опускаться.
[0709] В дальнейшем описывается процесс кодирования. Фиг. 91 является блок-схемой, иллюстрирующей конфигурацию первого кодера 5300, включенного в устройство кодирования трехмерных данных согласно настоящему варианту осуществления. Фиг. 92 является блок-схемой, иллюстрирующей конфигурацию модуля 5301 разделения согласно настоящему варианту осуществления. Фиг. 93 является блок-схемой, иллюстрирующей конфигурацию кодера 5302 геометрической информации и кодера 5303 информации атрибутов согласно настоящему варианту осуществления.
[0710] Первый кодер 5300 формирует кодированные данные (кодированный поток) посредством кодирования данных облаков точек в первом способе кодирования (PCC на основе геометрии (GPCC)). Первый кодер 5300 включает в себя модуль 5301 разделения, множество кодеров 5302 геометрической информации, множество кодеров 5303 информации атрибутов, кодер 5304 дополнительной информации и мультиплексор 5305.
[0711] Модуль 5301 разделения формирует множество фрагментов разделительных данных посредством разделения данных облаков точек. В частности, модуль 5301 разделения формирует множество фрагментов разделительных данных посредством разделения пространства данных облаков точек на множество подпространств. Здесь, подпространство представляет собой комбинацию плиток или срезов либо комбинацию плиток и срезов. Более конкретно, данные облаков точек включают в себя геометрическую информацию, информацию атрибутов и дополнительную информацию. Модуль 5301 разделения разделяет геометрическую информацию на множество фрагментов разделительной геометрической информации и разделяет информацию атрибутов на множество фрагментов разделительной информации атрибутов. Модуль 5301 разделения также формирует дополнительную информацию относительно разделения.
[0712] Как проиллюстрировано на фиг. 92, модуль 5301 разделения включает в себя модуль 5311 разделения на плитки и модуль 5312 разделения на срезы. Например, модуль 5311 разделения на плитки разделяет облако точек на плитки. Модуль 5311 разделения на плитки может определять значение квантования, используемое для каждой разделительной плитки, в качестве дополнительной информации плиток.
[0713] Модуль 5312 разделения на срезы дополнительно разделяет плитку, полученную посредством модуля 5311 разделения на плитки, на срезы. Модуль 5312 разделения на срезы может определять значение квантования, используемое для каждого разделительного среза, в качестве дополнительной информации срезов.
[0714] Множество кодеров 5302 геометрической информации формируют множество фрагментов кодированной геометрической информации посредством кодирования множества фрагментов разделительной геометрической информации. Например, множество кодеров 5302 геометрической информации обрабатывают множество фрагментов разделительной геометрической информации параллельно.
[0715] Как проиллюстрировано на фиг. 93, кодер 5302 геометрической информации включает в себя модуль 5321 вычисления значений квантования и энтропийный кодер 5322. Модуль 5321 вычисления значений квантования формирует значение квантования (параметр квантования) разделительной геометрической информации, которая должна кодироваться. Энтропийный кодер 5322 вычисляет квантованную геометрическую информацию посредством квантования разделительной геометрической информации с использованием значения квантования (параметра квантования), сформированного посредством модуля 5321 вычисления значений квантования.
[0716] Множество кодеров 5303 информации атрибутов формируют множество фрагментов кодированной информации атрибутов посредством кодирования множества фрагментов разделительной информации атрибутов. Например, множество кодеров 5303 информации атрибутов обрабатывают множество фрагментов разделительной информации атрибутов параллельно.
[0717] Как проиллюстрировано на фиг. 93, кодер 5303 информации атрибутов включает в себя модуль 5331 вычисления значений квантования и энтропийный кодер 5332. Модуль 5321 вычисления значений квантования формирует значение квантования (параметр квантования) разделительной информации атрибутов, которая должна кодироваться. Энтропийный кодер 5332 вычисляет квантованную информацию атрибутов посредством квантования разделительной информации атрибутов с использованием значения квантования (параметра квантования), сформированного посредством модуля 5331 вычисления значений квантования.
[0718] Кодер 5304 дополнительной информации формирует кодированную дополнительную информацию посредством кодирования дополнительной информации, включенной в данные облаков точек, и дополнительной информации относительно разделения данных, сформированной при разделении посредством модуля 5301 разделения.
[0719] Мультиплексор 5305 формирует кодированные данные (кодированный поток) посредством мультиплексирования множества фрагментов кодированной геометрической информации, множества фрагментов кодированной информации атрибутов и кодированной дополнительной информации и передает сформированные кодированные данные. Кодированная дополнительная информация используется для декодирования.
[0720] Следует отметить, что хотя фиг. 91 показывает пример, в котором предусмотрено два кодера 5302 геометрической информации и два кодера 5303 информации атрибутов, число кодеров 5302 геометрической информации и число кодеров 5303 информации атрибутов может составлять один либо три или более. Множество фрагментов разделительных данных могут обрабатываться параллельно в идентичной микросхеме, к примеру, посредством множества ядер CPU, обрабатываться параллельно посредством ядер множества микросхем или обрабатываться параллельно посредством множества ядер множества микросхем.
[0721] Далее описывается процесс декодирования. Фиг. 94 является блок-схемой, иллюстрирующей конфигурацию первого декодера 5340. Фиг. 95 является блок-схемой, иллюстрирующей конфигурацию декодера 5342 геометрической информации и декодера 5343 информации атрибутов.
[0722] Первый декодер 5340 воспроизводит данные облаков точек посредством декодирования кодированных данных (кодированного потока), сформированных посредством кодирования данных облаков точек в первом способе кодирования (GPCC). Первый декодер 5340 включает в себя демультиплексор 5341, множество декодеров 5342 геометрической информации, множество декодеров 5343 информации атрибутов, декодер 5344 дополнительной информации и модуль 5345 комбинирования.
[0723] Демультиплексор 5341 формирует множество фрагментов кодированной геометрической информации, множество фрагментов кодированной информации атрибутов и кодированную дополнительную информацию посредством демультиплексирования кодированных данных (кодированного потока).
[0724] Множество декодеров 5342 геометрической информации формируют множество фрагментов квантованной геометрической информации посредством декодирования множества фрагментов кодированной геометрической информации. Например, множество декодеров 5342 геометрической информации обрабатывают множество фрагментов кодированной геометрической информации параллельно.
[0725] Как проиллюстрировано на фиг. 95, декодер 5342 геометрической информации включает в себя модуль 5351 вычисления значений квантования и энтропийный декодер 5352. Модуль 5351 вычисления значений квантования формирует значение квантования квантованной геометрической информации. Энтропийный декодер 5352 вычисляет геометрическую информацию посредством обратного квантования квантованной геометрической информации с использованием значения квантования, сформированного посредством модуля 5351 вычисления значений квантования.
[0726] Множество декодеров 5343 информации атрибутов формируют множество фрагментов разделительной информации атрибутов посредством декодирования множества фрагментов кодированной информации атрибутов. Например, множество декодеров 5343 информации атрибутов обрабатывают множество фрагментов кодированной информации атрибутов параллельно.
[0727] Как проиллюстрировано на фиг. 95, декодер 5343 информации атрибутов включает в себя модуль 5361 вычисления значений квантования и энтропийный декодер 5362. Модуль 5361 вычисления значений квантования формирует значение квантования квантованной информации атрибутов. Энтропийный декодер 5362 вычисляет информацию атрибутов посредством обратного квантования квантованной информации атрибутов с использованием значения квантования, сформированного посредством модуля 5361 вычисления значений квантования.
[0728] Множество декодеров 5344 дополнительной информации формируют дополнительную информацию посредством декодирования кодированной дополнительной информации.
[0729] Модуль 5345 комбинирования формирует геометрическую информацию посредством комбинирования множества фрагментов разделительной геометрической информации с использованием дополнительной информации. Модуль 5345 комбинирования формирует информацию атрибутов посредством комбинирования множества фрагментов разделительной информации атрибутов с использованием дополнительной информации. Например, модуль 5345 комбинирования сначала формирует данные облаков точек, ассоциированные с плиткой, посредством комбинирования декодированных данных облаков точек, ассоциированных со срезами, с использованием дополнительной информации срезов. Модуль 5345 комбинирования затем воспроизводит исходные данные облаков точек посредством комбинирования данных облаков точек, ассоциированных с плитками, с использованием дополнительной информации плиток.
[0730] Следует отметить, что хотя фиг. 94 показывает пример, в котором предусмотрено два декодера 5342 геометрической информации и два декодера 5343 информации атрибутов, число декодеров 5342 геометрической информации и число декодеров 5343 информации атрибутов может составлять один либо три или более. Множество фрагментов разделительных данных могут обрабатываться параллельно в идентичной микросхеме, к примеру, посредством множества ядер CPU, обрабатываться параллельно посредством ядер множества микросхем или обрабатываться параллельно посредством множества ядер множества микросхем.
[0731] Способ определения параметра квантования
Фиг. 96 является блок-схемой последовательности операций способа, иллюстрирующей пример процесса относительно определения значения квантования (значения параметра квантования: QP-значения) при кодировании геометрической информации (геометрии) или при кодировании информации атрибутов (атрибута).
[0732] QP-значение определяется, например, с учетом эффективности кодирования на основе единиц данных геометрической информации или информации атрибутов, формирующей PCC-кадр. Когда единица данных представляет собой плитку или срез, получающийся в результате разделения, QP-значение определяется на основе единиц разделительных данных с учетом эффективности кодирования единиц разделительных данных. QP-значение может определяться на основе единиц данных перед разделением.
[0733] Как проиллюстрировано на фиг. 96, устройство кодирования трехмерных данных определяет QP-значение, используемое для кодирования геометрической информации (S5301). Устройство кодирования трехмерных данных может определять QP-значение для каждого из множества разделительных срезов предварительно определенным способом. В частности, устройство кодирования трехмерных данных определяет QP-значение на основе характеристик или качества данных геометрической информации. Например, устройство кодирования трехмерных данных может определять плотность данных облаков точек для каждой единицы данных, т.е. число точек в расчете на единицу площади, принадлежащих каждому срезу, и определять значение, соответствующее плотности данных облаков точек, в качестве QP-значения. Альтернативно, устройство кодирования трехмерных данных может определять, в качестве QP-значения, любое из следующих значений, соответствующих геометрической информации: число точек в данных облаков точек, распределение точек в данных облаков точек, дисбаланс точек в данных облаков точек, количество признаков, полученное из информации относительно точек, число точек-признаков или распознанный объект. Устройство кодирования трехмерных данных также может определять объект, ассоциированный с геометрической информацией карты, и определять QP-значение на основе объекта на основе геометрической информации либо может определять QP-значение на основе информации или количества признаков, полученного посредством проецирования облака трехмерных точек на двумерную плоскость. Соответствующее QP-значение может сохраняться в запоминающем устройстве заранее в форме таблицы, которая ассоциирует QP-значение с плотностью, числом точек, распределением точек или дисбалансом точек в данных облаков точек. Соответствующее QP-значение также может сохраняться в запоминающем устройстве заранее в форме таблицы, которая ассоциирует QP-значение с количеством признаков или числом точек-признаков, полученным из информации относительно точек, либо с объектом, распознанным на основе информации относительно точек. Соответствующее QP-значение может определяться на основе результата моделирования эффективности кодирования и т.п. с использованием разных QP-значений при кодировании геометрической информации относительно данных облаков точек.
[0734] Устройство кодирования трехмерных данных затем определяет опорное значение (значение по умолчанию) и информацию разности (дельту квантования) относительно QP-значения для геометрической информации (S5302). В частности, устройство кодирования трехмерных данных определяет опорное значение и информацию разности, которые должны передаваться с использованием определенного QP-значения предварительно определенным способом, и задает (суммирует) определенное опорное значение и информацию разности, по меньшей мере, в одном из дополнительной информации или заголовка данных.
[0735] Устройство кодирования трехмерных данных затем определяет QP-значение, используемое для кодирования информации атрибутов (S5303). Устройство кодирования трехмерных данных может определять QP-значение для каждого из множества разделительных срезов предварительно определенным способом. В частности, устройство кодирования трехмерных данных определяет QP-значение на основе характеристик или качества данных информации атрибутов. Например, устройство кодирования трехмерных данных может определять QP-значение на основе единиц данных на основе характеристик информации атрибутов. Цветовые характеристики включают в себя, например, яркость, цветность и сигнал цветности, их гистограмму и цветовую непрерывность. Когда информация атрибутов представляет собой отражательную способность, QP-значение может определяться на основе информации на основе отражательной способности. Например, когда лицо обнаруживается в качестве объекта из данных облаков точек, устройство кодирования трехмерных данных может определять высококачественное QP-значение для данных облаков точек, формирующих объект, обнаруженный в качестве лица. Таким образом, устройство кодирования трехмерных данных может определять QP-значение для данных облаков точек, формирующих объект, в зависимости от типа объекта.
[0736] Когда трехмерная точка имеет множество фрагментов информации атрибутов, устройство кодирования трехмерных данных может определять разное QP-значение для каждого фрагмента информации атрибутов на основе фрагмента информации атрибутов. Альтернативно, устройство кодирования трехмерных данных может определять QP-значение для множества фрагментов информации атрибутов на основе любого из фрагментов информации атрибутов или определять QP-значение для множества фрагментов информации атрибутов на основе множества фрагментов информации атрибутов.
[0737] Устройство кодирования трехмерных данных затем определяет опорное значение (значение по умолчанию) и информацию разности (дельту квантования) относительно QP-значения для информации атрибутов (S5304). В частности, устройство кодирования трехмерных данных определяет опорное значение и информацию разности, которые должны передаваться с использованием определенного QP-значения предварительно определенным способом, и задает (суммирует) определенное опорное значение и информацию разности, по меньшей мере, в одном из дополнительной информации или заголовка данных.
[0738] Устройство кодирования трехмерных данных затем квантует и кодирует геометрическую информацию и информацию атрибутов на основе определенных QP-значений для геометрической информации и информации атрибутов, соответственно (S5305).
[0739] Следует отметить, что хотя описан пример, в котором QP-значение для геометрической информации определяется на основе геометрической информации, и QP-значение для информации атрибутов определяется на основе информации атрибутов, настоящее раскрытие не ограничено этим. Например, QP-значения для геометрической информации и информации атрибутов могут определяться на основе геометрической информации, на основе информации атрибутов либо на основе геометрической информации и информации атрибутов.
[0740] Следует отметить, что QP-значения для геометрической информации и информации атрибутов могут регулироваться с учетом баланса между качеством геометрической информации и качеством информации атрибутов в данных облаков точек. Например, QP-значения для геометрической информации и информации атрибутов могут задаваться таким образом, что качество геометрической информации является высоким, и качество информации атрибутов ниже качества геометрической информации. Например, QP-значение для информации атрибутов может определяться в соответствии с таким ограничением, что QP-значение для информации атрибутов равно или выше QP-значения для геометрической информации.
[0741] QP-значение может регулироваться таким образом, что кодированные данные формируются в пределах предварительно определенного диапазона скорости. Например, когда объем кода для кодирования предыдущей единицы данных предположительно должен превышать предварительно определенную скорость, т.е. когда разность относительно предварительно определенной скорости меньше первой разности, QP-значение может регулироваться для того, чтобы снижать качество кодирования таким образом, что разность между предварительно определенной скоростью и объемом кода единицы данных меньше первой разности. С другой стороны, когда разность относительно предварительно определенной скорости превышает вторую разность, которая превышает первую разность, и имеется значительная разность, QP-значение может регулироваться для того, чтобы повышать качество кодирования единицы данных. Регулирование между единицами данных может осуществляться между PCC-кадрами либо между плитками или срезами. Регулирование QP-значения для информации атрибутов может осуществляться на основе скорости кодирования геометрической информации.
[0742] Следует отметить, что на блок-схеме последовательности операций способа по фиг. 96, обработка относительно геометрической информации и обработка относительно информации атрибутов могут выполняться в обратном порядке или параллельно.
[0743] Следует отметить, что хотя блок-схема последовательности операций способа по фиг. 96 показывает процесс на основе срезов в качестве примера, процесс на основе плиток или процесс на основе других единиц данных может выполняться идентично процессу на основе срезов. Таким образом, срез на блок-схеме последовательности операций способа по фиг. 96 может заменяться плиткой или другими единицами данных.
[0744] Фиг. 97 является блок-схемой последовательности операций способа, иллюстрирующей пример процесса декодирования геометрической информации и информации атрибутов.
[0745] Как проиллюстрировано на фиг. 97, устройство декодирования трехмерных данных получает опорное значение и информацию разности, которые указывают QP-значение для геометрической информации, и опорное значение и информацию разности, которые указывают QP-значение для информации атрибутов (S5311). В частности, устройство декодирования трехмерных данных анализирует одно или оба из передаваемых метаданных или заголовка передаваемых кодированных данных и получает опорные значения и информацию разности для извлечения QP-значений.
[0746] Устройство декодирования трехмерных данных затем извлекает QP-значения с использованием полученных опорных значений и информации разности предварительно определенным способом.
[0747] Устройство декодирования трехмерных данных затем получает квантованную геометрическую информацию и получает геометрическую информацию посредством обратного квантования квантованной геометрической информации с использованием извлеченного QP-значения (S5313).
[0748] Устройство декодирования трехмерных данных затем получает квантованную информацию атрибутов и получает информацию атрибутов посредством обратного квантования квантованной информации атрибутов с использованием извлеченного QP-значения (S5314).
[0749] Далее описывается способ передачи параметра квантования.
[0750] Фиг. 98 является схемой для описания первого примера способа передачи параметра квантования. Часть (a) по фиг. 98 показывает пример взаимосвязи между QP-значениями.
[0751] На фиг. 98, QG и QA обозначают абсолютное значение для QP-значения, используемого для кодирования геометрической информации, и абсолютное значение для QP-значения, используемого для кодирования информации атрибутов, соответственно. QG представляет собой пример первого параметра квантования, используемого для квантования геометрической информации относительно каждой из множества трехмерных точек; Δ(QA, QG) обозначает информацию разности, которая указывает разность между QA и QG, используемую для извлечения QA. Таким образом, QA извлекается с использованием QG и Δ(QA, QG). Таким образом, QP-значение разделяется на опорное значение (абсолютное значение) и информацию разности (относительное значение) для передачи. При декодировании, требуемое QP-значение извлекается из передаваемого опорного значения и информации разности.
[0752] Например, в части (a) по фиг. 98, абсолютное значение QG и информация Δ(QA, QG) разности передаются, и при декодировании, QA извлекается посредством суммирования Δ(QA, QG) с QG, как показано посредством нижеприведенного уравнения G5.
[0753] QA=QG+Δ(QA, QG) (уравнение G5)
[0754] Со ссылкой на части (b) и (c) по фиг. 98, в дальнейшем описывается способ передачи QP-значений в случае, если данные облаков точек, включающие в себя геометрическую информацию и информацию атрибутов, разделяются на срезы. Часть (b) по фиг. 98 показывает первый пример взаимосвязи между опорным значением и информацией разности для каждого QP-значения. Часть (c) по фиг. 98 показывает первый пример порядка передачи QP-значений, геометрической информации и информации атрибутов.
[0755] Для каждого фрагмента геометрической информации и каждого фрагмента информации атрибутов, QP-значения классифицируются на QP-значения (QP кадров) в единицах PCC-кадров и QP-значения (QP данных) в единицах данных. QP-значение, используемое для кодирования, определенное на этапе S5301 на фиг. 96, представляет собой QP-значение в единицах данных.
[0756] Здесь, QG, которое представляет собой QP-значение, используемое для кодирования геометрической информации в единицах PCC-кадров, используется в качестве опорного значения, и QP-значение в единицах данных формируется и передается в качестве информации разности, которая указывает разность относительно QG.
[0757] QG: QP-значение для кодирования геометрической информации для PCC-кадра, которое передается как опорное значение "1" с использованием GPS.
QA: QP-значение для кодирования информации атрибутов для PCC-кадра, которое передается как информация разности "2" с использованием APS.
QGs1, QGs2: QP-значения для кодирования геометрической информации данных срезов, которые передаются как информация разности "3" и "5", указывающая разность относительно QG, соответственно, с использованием заголовка кодированных данных геометрической информации.
QAs1, QAs2: QP-значения для кодирования информации атрибутов данных срезов, которые передаются как информация разности "4" и "6", указывающая разность относительно QA, соответственно, с использованием заголовка кодированных данных информации атрибутов.
[0758] Следует отметить, что информация, используемая для извлечения QP кадров, описывается в метаданных (GPS, APS), ассоциированных с кадром, и информация, используемая для извлечения QP данных, описывается в метаданных (заголовке кодированных данных), ассоциированных с данными.
[0759] Таким образом, QP данных формируется и передается в качестве информации разности, указывающей разность относительно QP кадров. Следовательно, объем данных для QP данных может уменьшаться.
[0760] В каждом фрагменте кодированных данных, первый декодер 5340 ссылается на метаданные, указываемые посредством стрелки в части (c) по фиг. 98, и получает опорное значение и информацию разности, ассоциированные с кодированными данными. Первый декодер 5340 затем извлекает QP-значение, соответствующее кодированным данным, которые должны декодироваться, на основе полученного опорного значения и информации разности.
[0761] Например, первый декодер 5340 получает ссылочную информацию "1" и информацию разности "2" и "6", указываемую посредством стрелок в части (c) по фиг. 98, из метаданных или заголовка и извлекает QP-значение As2 посредством суммирования информации разности "2" и "6" со ссылочной информацией "1", как показано посредством нижеприведенного уравнения G6.
[0762] QAs2=QG+Δ(QA, QG)+Δ(QAs2, QA) (уравнение G6)
[0763] Данные облаков точек включают в себя геометрическую информацию и нуль или более фрагментов информации атрибутов. Таким образом, данные облаков точек могут не включать в себя информацию атрибутов или множество фрагментов информации атрибутов.
[0764] Например, одна трехмерная точка может иметь, в качестве информации атрибутов, цветовую информацию, цветовую информацию и информацию отражательной способности либо один или более фрагментов цветовой информации, связанных с одним или более фрагментов информации точки обзора.
[0765] Здесь, в дальнейшем описывается пример случая, в котором одна трехмерная точка имеет два фрагмента цветовой информации и информации отражательной способности, со ссылкой на фиг. 99. Фиг. 99 является схемой для описания второго примера способа передачи параметра квантования. Часть (a) по фиг. 99 является схемой, иллюстрирующей второй пример взаимосвязи между опорным значением и информацией разности для каждого QP-значения. Часть (b) по фиг. 99 является схемой, иллюстрирующей второй пример порядка передачи QP-значений, геометрической информации и информации атрибутов.
[0766] QG представляет собой пример первого параметра квантования, как показано на фиг. 98.
[0767] Два фрагмента цветовой информации указываются посредством яркости Y (сигнала яркости) и цветностей Cb, Cr (сигналов цветности), соответственно. QY1, которое представляет собой QP-значение, используемое для кодирования яркости Y1 первого цвета, извлекается из QG, которое представляет собой опорное значение, и Δ(QY1, QG), которое указывает разность между QY1 и QG. Яркость Y1 представляет собой пример первой яркости, и QY1 представляет собой пример второго параметра квантования, используемого для квантования яркости Y1 в качестве первой яркости; Δ(QY1, QG) представляет собой информацию разности "2".
[0768] QCb1 и QCr1, которые представляют собой QP-значения, используемые для кодирования цветностей Cb1 и Cr1 первого цвета, извлекаются из QY1 и Δ(QCb1, QY1) и Δ(QCr1, QY1), которые указывают разность между QCb1 и QY1 и разность между QCr1 и QY1, соответственно. Цветности Cb1 и Cr1 представляют собой примеры первой цветности, и QCb1 и QCr1 представляют собой примеры третьего параметра квантования, используемого для квантования цветностей Cb1 и Cr1 в качестве первой цветности; Δ(QCb1, QY1) представляет собой информацию разности "3", и Δ(QCr1, QY1) представляет собой информацию разности "4"; Δ(QCb1, QY1) и Δ(QCr1, QY1) представляют собой примеры первой разности.
[0769] Следует отметить, что QCb1 и QCr1 могут быть идентичными значениями или общим значением. Когда общее значение используется, одно из QCb1 и QCr1 может использоваться, а другое может опускаться.
[0770] QY1D, которое представляет собой QP-значение, используемое для кодирования яркости Y1D первого цвета в данных срезов, извлекается из QY1 и Δ(QY1D, QY1), указывающего разность между QY1D и QY1. Яркость Y1D первого цвета в данных срезов представляет собой пример первой яркости одной или более трехмерных точек, включенных в подпространство, и QY1D представляет собой пример пятого параметра квантования, используемого для квантования яркости Y1D; Δ(QY1D, QY1) представляет собой информацию разности "10" и пример второй разности.
[0771] Аналогично, QCb1D и QCr1D, которые представляют собой QP-значения, используемые для кодирования цветностей Cb1D и Cr1D первого цвета в данных срезов, извлекаются из QCb1 и Δ(QCb1D, QCb1), указывающего разность между QCb1D и QCb1, и QCr1 и Δ(QCr1D, QCr1) , указывающего разность между QCr1D и QCr1, соответственно. Цветности Cb1D и Cr1D первого цвета в данных срезов представляют собой примеры первой цветности одной или более трехмерных точек, включенных в подпространство, и QCb1D и QCr1D представляют собой примеры шестого параметра квантования, используемого для квантования цветностей Cb1D и Cr1D; Δ(QCb1D, QCb1) представляет собой информацию разности "11", и Δ(QCr1D, QCr1) представляет собой информацию разности "12"; Δ(QCb1D, QCb1) и Δ(QCr1D, QCr1) представляют собой примеры третьей разности.
[0772] Взаимосвязь между QP-значениями для первого цвета является применимой для второго цвета, так что избыточные описания опускаются.
[0773] QR, которое представляет собой QP-значение, используемое для кодирования отражательной способности R, извлекается из QG, которое представляет собой опорное значение, и Δ(QR, QG), которое указывает разность между QR и QG. QR представляет собой пример четвертого параметра квантования, используемого для квантования отражательной способности R; Δ(QR, QG) представляет собой информацию разности "8".
[0774] QRD, которое представляет собой QP-значение, используемое для кодирования отражательной способности RD в данных срезов, извлекается из QR и Δ(QRD, QR), которое указывает разность между QRD и QR; Δ(QRD, QR) представляет собой информацию разности "16".
[0775] Как описано выше, информация разности "9"-"16" указывает разность между QP данных и QP кадров.
[0776] Следует отметить, что когда значения QP данных и QP кадров являются идентичными, например, информация разности может задаваться равной 0 или может не передаваться, и отсутствие передачи может рассматриваться в качестве информации разности в 0.
[0777] При получении цветности Cr2 второго цвета посредством декодирования, например, первый декодер 5340 получает ссылочную информацию "1" и информацию разности "5", "7" и "15", указываемую посредством стрелок в части (b) по фиг. 99, из метаданных или заголовка и извлекает QP-значение цветности Cr2 посредством суммирования информации разности "5", "7" и "15" со ссылочной информацией "1", как показано посредством нижеприведенного уравнения G7.
[0778] QCr2D=QG+Δ(QY2, QG)+Δ(QCr2, QY2)+Δ(QCr2D, QCr2) (уравнение G7)
[0779] Далее описывается пример случая, в котором геометрическая информация и информация атрибутов разделяются на две плитки и затем разделяются на два среза, со ссылкой на фиг. 100. Фиг. 100 является схемой для описания третьего примера способа передачи параметра квантования. Часть (a) по фиг. 100 показывает третий пример взаимосвязи между опорным значением и информацией разности для каждого QP-значения. Часть (b) по фиг. 100 показывает третий пример порядка передачи QP-значений, геометрической информации и информации атрибутов. Часть (c) по фиг. 100 описывает промежуточное сформированное значение для информации разности в третьем примере.
[0780] Когда геометрическая информация и информация атрибутов разделяется на множество плиток и затем дополнительно разделяется на множество срезов, как проиллюстрировано в части (c) по фиг. 100, после того, как информация атрибутов разделяется на плитки, QP-значение (QAt1) и информация разности Δ(QAt1, QA) для каждой плитки формируются в качестве промежуточных сформированных значений. После того, как плитка разделяется на срезы, QP-значения (QAt1s1, QAt1s2) и информация разности (Δ(QAt1s1, QAt1), Δ(QAt1s2, QAt1)) формируются для каждого среза.
[0781] В этом случае, информация разности "4" в части (a) по фиг. 100 извлекается согласно нижеприведенному уравнению G8.
[0782] Δ(QAt1s1, QA)=Δ(QAt1, QA)+Δ(QAt1s1, QAt1) (уравнение G8)
[0783] При получении информации At2s1 атрибутов для среза 1 в плитке 2 посредством декодирования, например, первый декодер 5340 получает ссылочную информацию "1" и информацию разности "2" и "8", указываемую посредством стрелок в части (b) по фиг. 100, из метаданных или заголовка и извлекает QP-значение информации At2s1 атрибутов посредством суммирования информации разности "2" и "8" со ссылочной информацией "1", как показано посредством нижеприведенного уравнения G9.
[0784] QAt2s1=QG+Δ(QAt2s1, QA)+Δ(QA, QG) (уравнение G9)
[0785] Далее описываются последовательность операций процесса кодирования данных облаков точек и последовательность операций процесса декодирования данных облаков точек согласно настоящему варианту осуществления. Фиг. 101 является блок-схемой последовательности операций способа для процесса кодирования данных облаков точек согласно настоящему варианту осуществления.
[0786] Во-первых, устройство кодирования трехмерных данных определяет способ разделения, который должен использоваться (S5321). Способ разделения включает в себя определение того, следует выполнять разделение на плитки или нет, и определение того, следует выполнять разделение на срезы или нет. Способ разделения может включать в себя, например, число плиток или срезов в случае, если выполняется разделение на плитки или разделение на срезы, и тип разделения. Тип разделения представляет собой, например, схему на основе формы объекта, схему на основе картографической информации или геометрической информации либо схему на основе объема данных или объема обработки. Следует отметить, что способ разделения может определяться заранее.
[0787] Когда разделение на плитки должно выполняться (если "Да" на S5322), устройство кодирования трехмерных данных формирует множество фрагментов геометрической информации плиток и множество фрагментов информации атрибутов плиток посредством разделения геометрической информации и информации атрибутов на основе плиток (S5323). Устройство кодирования трехмерных данных также формирует дополнительную информацию плиток относительно разделения на плитки.
[0788] Когда разделение на срезы должно выполняться (если "Да" на S5324), устройство кодирования трехмерных данных формирует множество фрагментов разделительной геометрической информации и множество фрагментов разделительной информации атрибутов посредством разделения множества фрагментов геометрической информации плиток и множества фрагментов информации атрибутов плиток (либо геометрической информации и информации атрибутов) (S5325). Устройство кодирования трехмерных данных также формирует дополнительную информацию геометрических срезов и дополнительную информацию срезов атрибутов относительно разделения на срезы.
[0789] Устройство кодирования трехмерных данных затем формирует множество фрагментов кодированной геометрической информации и множество фрагментов кодированной информации атрибутов посредством кодирования каждого из множества фрагментов разделительной геометрической информации и множества фрагментов разделительной информации атрибутов (S5326). Устройство кодирования трехмерных данных также формирует информацию зависимостей.
[0790] Устройство кодирования трехмерных данных затем формирует кодированные данные (кодированный поток) посредством интегрирования (мультиплексирования) множества фрагментов кодированной геометрической информации, множества фрагментов кодированной информации атрибутов и дополнительной информации в NAL-единицу (S5327). Устройство кодирования трехмерных данных также передает сформированные кодированные данные.
[0791] Фиг. 102 является блок-схемой последовательности операций способа, иллюстрирующей пример процесса определения QP-значения и обновления дополнительной информации при разделении на плитки (S5323) и при разделении на срезы (S5325).
[0792] На этапах S5323 и S5325, геометрическая информация плиток и информация атрибутов плиток и/или геометрическая информация срезов и информация атрибутов срезов могут независимо разделяться соответствующими способами или могут совместно разделяться общим способом. Таким образом, формируется дополнительная информация, разделенная на основе плиток и/или на основе срезов.
[0793] На этих этапах, устройство кодирования трехмерных данных определяет опорное значение и информацию разности для QP-значения на основе разделительных плиток и/или на основе разделительных срезов (S5331). В частности, устройство кодирования трехмерных данных определяет опорное значение и информацию разности, к примеру, опорное значение и информацию разности, проиллюстрированные на фиг. 98-100.
[0794] Устройство кодирования трехмерных данных затем обновляет дополнительную информацию таким образом, что она включает в себя определенное опорное значение и информацию разности (S5332).
[0795] Фиг. 103 является блок-схемой последовательности операций способа, иллюстрирующей пример процесса при кодировании (S5326).
[0796] Устройство кодирования трехмерных данных кодирует каждый из множества фрагментов разделительной геометрической информации и множества фрагментов разделительной информации атрибутов (S5341). В частности, устройство кодирования трехмерных данных кодирует каждый из множества фрагментов разделительной геометрической информации и множества фрагментов разделительной информации атрибутов с использованием определенного QP-значения.
[0797] Устройство кодирования трехмерных данных затем продолжает процесс кодирования до тех пор, пока условие для прекращения процесса кодирования не удовлетворяется, к примеру, до тех пор, пока не закончатся данные, которые должны кодироваться (S5342).
[0798] Фиг. 104 является блок-схемой последовательности операций способа, иллюстрирующей процесс декодирования данных облаков точек согласно настоящему варианту осуществления. Во-первых, устройство декодирования трехмерных данных определяет способ разделения посредством анализа дополнительной информации (дополнительной информации плиток, дополнительной информации геометрических срезов и дополнительной информации срезов атрибутов) относительно способа разделения, включенной в кодированные данные (кодированный поток) (S5351). Способ разделения включает в себя определение того, следует выполнять разделение на плитки или нет, и определение того, следует выполнять разделение на срезы или нет. Способ разделения может включать в себя, например, число плиток или срезов в случае, если выполняется разделение на плитки или разделение на срезы, и тип разделения.
[0799] Устройство декодирования трехмерных данных затем формирует разделительную геометрическую информацию и разделительную информацию атрибутов посредством декодирования множества фрагментов кодированной геометрической информации и множества фрагментов кодированной информации атрибутов, включенных в кодированные данные, с использованием информации зависимостей, включенной в кодированные данные (S5352).
[0800] Если дополнительная информация указывает то, что разделение на срезы выполнено (если "Да" на S5353), устройство декодирования трехмерных данных формирует множество фрагментов геометрической информации плиток и множество фрагментов информации атрибутов плиток посредством комбинирования множества фрагментов разделительной геометрической информации и множества фрагментов разделительной информации атрибутов на основе дополнительной информации геометрических срезов и дополнительной информации срезов атрибутов (S5354).
[0801] Если дополнительная информация указывает то, что разделение на плитки выполнено (если "Да" на S5355), устройство декодирования трехмерных данных формирует геометрическую информацию и информацию атрибутов посредством комбинирования множества фрагментов геометрической информации плиток и множества фрагментов информации атрибутов плиток (множества фрагментов разделительной геометрической информации и множества фрагментов разделительной информации атрибутов) на основе дополнительной информации плиток (S5356).
[0802] Фиг. 105 является блок-схемой последовательности операций способа, иллюстрирующей пример процесса получения QP-значений и декодирования QP-значения для среза или плитки при комбинировании информации, разделенной на срезы (S5354), и при комбинировании информации, разделенной на плитки (S5356).
[0803] Фрагменты геометрической информации срезов и фрагменты информации атрибутов срезов либо фрагменты геометрической информации плиток или фрагменты информации атрибутов плиток могут комбинироваться соответствующими способами или идентичным способом.
[0804] Устройство декодирования трехмерных данных получает опорное значение и информацию разности посредством декодирования дополнительной информации в кодированном потоке (S5361).
[0805] Устройство декодирования трехмерных данных затем вычисляет значение квантования с использованием декодированного опорного значения и информации разности и обновляет QP-значение, используемое для обратного квантования, на вычисленное QP-значение (S5362). Таким образом, QP-значение для обратного квантования квантованной информации атрибутов для каждой плитки или среза может извлекаться.
[0806] Устройство декодирования трехмерных данных затем продолжает процесс декодирования до тех пор, пока условие для прекращения процесса декодирования не удовлетворяется, к примеру, до тех пор, пока не закончатся данные, которые должны декодироваться (S5363).
[0807] Фиг. 106 является схемой, иллюстрирующей пример синтаксиса GPS. Фиг. 107 является схемой, иллюстрирующей пример синтаксиса APS. Фиг. 108 является схемой, иллюстрирующей пример синтаксиса заголовка геометрической информации. Фиг. 109 является схемой, иллюстрирующей пример синтаксиса заголовка информации атрибутов.
[0808] Как проиллюстрировано на фиг. 106, например, GPS, который представляет собой дополнительную информацию геометрической информации, включает в себя QP_value, которое указывает абсолютное значение, используемое в качестве опорного для извлечения QP-значения. QP_value соответствует QG, проиллюстрированному на фиг. 98-100.
[0809] Как проиллюстрировано на фиг. 107, например, когда трехмерная точка имеет множество фрагментов цветовой информации, ассоциированной с множеством точек обзора, APS, который представляет собой дополнительную информацию информации атрибутов, может задавать точку обзора по умолчанию, и 0-ой фрагмент информации атрибутов может всегда описывать информацию относительно точки обзора по умолчанию. Например, при декодировании или отображении одного фрагмента цветовой информации, устройство кодирования трехмерных данных может декодировать или отображать 0-ой фрагмент информации атрибутов.
[0810] APS включает в себя QP_delta_Attribute_to_Geometry. QP_delta_Attribute_to_Geometry представляет собой информацию разности, указывающую разность относительно опорного значения (QP_value), описанного в GPS. Информация разности указывает, например, разность в яркости, когда информация атрибутов представляет собой цветовую информацию.
[0811] GPS может включать в себя флаг, который указывает то, включает или нет Geometry_header (заголовок геометрической информации) в себя информацию разности, используемую для вычисления QP-значения. APS может включать в себя флаг, который указывает то, включает или нет Attribute_header (заголовок информации атрибутов) в себя информацию разности, используемую для вычисления QP-значения. Флаг может указывать то, включает или нет информация атрибутов в себя информацию разности, указывающую разность QP данных относительно QP кадров, которая используется для вычисления QP данных.
[0812] Когда первый цвет информации атрибутов указывается посредством первой яркости и первой цветности, при квантовании первой яркости с использованием второго параметра квантования и при квантовании первой цветности с использованием третьего параметра квантования, если квантования выполняются с использованием пятого параметра квантования и шестого параметра квантования, кодированный поток может включать в себя идентификационную информацию (флаг), которая указывает то, что квантования выполняются с использованием пятого параметра квантования и шестого параметра квантования.
[0813] Как проиллюстрировано на фиг. 108, заголовок геометрической информации может включать в себя QP_delta_data_to_frame, которое представляет собой информацию разности, указывающую разность относительно опорного значения (QP_value), описанного в GPS. Заголовок геометрической информации может разделяться на фрагменты информации, ассоциированные с плитками и/или срезами, и может указываться QP-значение, соответствующее каждой плитке и/или срезу.
[0814] Как проиллюстрировано на фиг. 109, заголовок информации атрибутов может включать в себя QP_delta_data_to_frame, которое представляет собой информацию разности, указывающую разность относительно QP-значения, описанного в APS.
[0815] Хотя опорное значение для QP-значения описывается как представляющее собой QP-значение геометрической информации для PCC-кадра со ссылкой на фиг. 98-100, настоящее раскрытие не ограничено этим, и другие значения могут использоваться в качестве опорного значения.
[0816] Фиг. 110 является схемой для описания другого примера способа передачи параметра квантования.
[0817] Части (a) и (b) по фиг. 110 иллюстрируют четвертый пример, в котором общее опорное значение Q задается на основе QP-значений геометрической информации и информации атрибутов для PCC-кадра. В четвертом примере, опорное значение Q сохраняется в GPS, информация разности, указывающая разность QP-значения (QG) геометрической информации относительно опорного значения Q, сохраняется в GPS, и информация разности, указывающая разность QP-значений (QY и QR) информации атрибутов относительно опорного значения Q, сохраняется в APS. Следует отметить, что опорное значение Q может сохраняться в SPS.
[0818] Части (c) и (d) по фиг. 110 иллюстрируют пятый пример, в котором разное опорное значение задается для каждой из геометрической информации и информации атрибутов. В пятом примере, опорные QP-значения (абсолютные значения) геометрической информации и информации атрибутов сохраняются в GPS и APS, соответственно. Таким образом, опорное значение QG задается в геометрической информации, опорное значение QY задается в цветовой информации из информации атрибутов, и опорное значение QR задается в качестве отражательной способности из информации атрибутов. Таким образом, опорное значение для QP-значения может задаваться для каждой из геометрической информации и множества видов информации атрибутов. Следует отметить, что пятый пример может комбинироваться с другим примером. Таким образом, QA в первом примере либо QY1, QY2 и QR во втором примере могут представлять собой опорное значение для QP-значения.
[0819] Части (e) и (f) по фиг. 110 иллюстрируют шестой пример, в котором, когда предусмотрено множество PCC-кадров, общее опорное значение Q задается для множества PCC-кадров. В шестом примере, опорное значение Q сохраняется в SPS или GPS, и информация разности, указывающая разность между QP-значением геометрической информации и опорным значением для каждого PCC-кадра, сохраняется в GPS. Следует отметить, что в пределах диапазона единицы произвольного доступа, такой как GOF, например, опережающий кадр единицы произвольного доступа может обозначаться как опорное значение, и информация Δ(QG(1), QG(0)) разности, указывающая разность между PCC-кадрами, может передаваться.
[0820] Следует отметить, что, даже когда плитка или срез дополнительно разделяется, информация разности, указывающая разность относительно QP-значения единицы разделения, сохраняется в заголовке данных и передается идентичным способом.
[0821] Фиг. 111 является схемой для описания другого примера способа передачи параметра квантования.
[0822] Части (a) и (b) по фиг. 111 иллюстрируют седьмой пример, в котором общее опорное значение QG задается для геометрической информации и информации атрибутов PCC-кадра. В седьмом примере, опорное значение QG сохраняется в GPS, и информация разности, указывающая разности относительно геометрической информации или информации атрибутов, сохраняется в соответствующих заголовках данных. Опорное значение QG может сохраняться в SPS.
[0823] Части (c) и (d) по фиг. 111 показывает восьмой пример, в котором QP-значение информации атрибутов указывается посредством информации разности, указывающей разность относительно QP-значения геометрической информации, принадлежащей идентичному срезу и плитке. В восьмом примере, опорное значение QG может сохраняться в SPS.
[0824] Фиг. 112 является схемой для описания девятого примера способа передачи параметра квантования.
[0825] Части (a) и (b) иллюстрируют девятый пример, в котором множество фрагментов информации атрибутов имеют общее QP-значение, и каждый фрагмент информации атрибутов указывает информацию разности, указывающую разность между общим QP-значением и QP-значением геометрической информации, и информацию разности, указывающую разность относительно значения информации атрибутов и общего QP-значения.
[0826] Фиг. 113 является схемой для описания примера управления QP-значением.
[0827] По мере того, как значение параметра квантования снижается, качество повышается, в то время как эффективность кодирования снижается, поскольку требуется большее число битов.
[0828] Например, при кодировании данных облаков трехмерных точек посредством разделения данных облаков трехмерных точек на плитки, если данные облаков точек, включенные в плитку, представляют собой главную дорогу, данные облаков точек кодируются с использованием ранее заданного QP-значения информации атрибутов. С другой стороны, периферийные плитки не включают в себя важную информацию, и в силу этого эффективность кодирования, возможно, может повышаться посредством задания информации разности QP-значения равной положительному значению, с тем чтобы снижать качество данных.
[0829] Кроме того, при кодировании данных облаков трехмерных точек, разделенных на плитки посредством разделения плиток на срезы, тротуар, дерево и здание являются важными для позиционной оценки (локализации и картографии) при автоматическом вождении, так что QP-значение задается равным отрицательному значению. С другой стороны, движущееся тело и другие объекты являются менее важными, так что QP-значение задается равным положительному значению.
[0830] Часть (b) по фиг. 113 показывает пример, в котором информация разности извлекается в случае, если дельта-значение квантования задается заранее на основе объекта, включенного в плитку или срез. Например, когда разделительные данные представляют собой данные срезов относительно "здания", включенные в плитку "главной дороги", информация разности равна -5, что извлекается посредством суммирования дельта-значения квантования в 0 плитки "главной дороги" и дельта-значения квантования в -5 данных срезов относительно "здания".
[0831] Фиг. 114 является блок-схемой последовательности операций, иллюстрирующей пример способа определения QP-значения на основе качества объекта.
[0832] Устройство кодирования трехмерных данных разделяет данные облаков точек на одну или более плиток на основе картографической информации и определяет объект, включенный в одну или более плиток (S5371). В частности, устройство кодирования трехмерных данных выполняет, например, процесс распознавания объектов для распознавания того, какой объект использует обучающую модель, полученную посредством машинного обучения.
[0833] Устройство кодирования трехмерных данных затем определяет то, следует или нет кодировать плитку, которая должна обрабатываться, с высоким качеством (S5372). Кодирование с высоким качеством, например, означает кодирование на скорости передачи битов, превышающей предварительно определенную скорость.
[0834] Когда плитка, которая должна обрабатываться, должна кодироваться с высоким качеством (если "Да" на S5372), устройство кодирования трехмерных данных затем задает QP-значение плитки таким образом, что эффективность кодирования является высокой (S5373).
[0835] С другой стороны, когда плитка, которая должна обрабатываться, не должна кодироваться с высоким качеством (если "Нет" на S5372), устройство кодирования трехмерных данных задает QP-значение плитки таким образом, что эффективность кодирования является низкой (S5374).
[0836] После этапа S5373 или S5374, устройство кодирования трехмерных данных определяет объект в плитке и разделяет плитку на один или более срезов (S5375).
[0837] Устройство кодирования трехмерных данных затем определяет то, следует или нет кодировать срез, который должен обрабатываться, с высоким качеством (S5376).
[0838] Когда срез, который должен обрабатываться, должен кодироваться с высоким качеством (если "Да" на S5376), устройство кодирования трехмерных данных затем задает QP-значение среза таким образом, что эффективность кодирования является высокой (S5377).
[0839] С другой стороны, когда срез, который должен обрабатываться, не должен кодироваться с высоким качеством (если "Нет" на S5376), устройство кодирования трехмерных данных задает QP-значение среза таким образом, что эффективность кодирования является низкой (S5378).
[0840] Устройство кодирования трехмерных данных затем определяет опорное значение и информацию разности, которые должны передаваться на основе заданного QP-значения предварительно определенным способом, и сохраняет определенное опорное значение и информацию разности, по меньшей мере, в одном из дополнительной информации и заголовка данных (S5379).
[0841] Устройство кодирования трехмерных данных затем квантует и кодирует геометрическую информацию и информацию атрибутов на основе определенного QP-значения (S5380).
[0842] Фиг. 115 является блок-схемой последовательности операций, иллюстрирующей пример способа определения QP-значения на основе управления скоростью.
[0843] Устройство кодирования трехмерных данных последовательно кодирует данные облаков точек (S5381).
[0844] Устройство кодирования трехмерных данных затем определяет состояние управления скоростью относительно процесса кодирования из объема кода кодированных данных и заполнения буфера кодирования и определяет качество последующего кодирования (S5382).
[0845] Устройство кодирования трехмерных данных затем определяет то, следует или нет повышать качество кодирования (S5383).
[0846] Когда качество кодирования должно повышаться (если "Да" на S5383), устройство кодирования трехмерных данных задает QP-значение плитки таким образом, что качество кодирования является более высоким (S5384).
[0847] С другой стороны, когда качество кодирования не должно повышаться (если "Нет" на S5383), устройство кодирования трехмерных данных задает QP-значение плитки таким образом, что качество кодирования является более низким (S5385).
[0848] Устройство кодирования трехмерных данных затем определяет опорное значение и информацию разности, которые должны передаваться на основе заданного QP-значения предварительно определенным способом, и сохраняет определенное опорное значение и информацию разности, по меньшей мере, в одном из дополнительной информации и заголовка данных (S5386).
[0849] Устройство кодирования трехмерных данных затем квантует и кодирует геометрическую информацию и информацию атрибутов на основе определенного QP-значения (S5387).
[0850] Как описано выше, устройство кодирования трехмерных данных согласно настоящему варианту осуществления выполняет процесс, проиллюстрированный на фиг. 116. Во-первых, устройство кодирования трехмерных данных квантует геометрическую информацию относительно каждой из множества трехмерных точек с использованием первого параметра квантования (S5391). Устройство кодирования трехмерных данных квантует первую яркость с использованием второго параметра квантования и квантует первую цветность с использованием третьего параметра квантования, причем первая яркость и первая цветность указывают первый цвет из числа информации атрибутов относительно каждой из множества трехмерных точек (S5392). Устройство кодирования трехмерных данных формирует поток битов, включающий в себя квантованную геометрическую информацию, квантованную первую яркость, квантованную первую цветность, первый параметр квантования, второй параметр квантования и первую разность между вторым параметром квантования и третьим параметром квантования (S5393).
[0851] При такой конфигурации, поскольку третий параметр квантования указывается посредством первой разности относительно второго параметра квантования в потоке битов, эффективность кодирования может повышаться.
[0852] Например, устройство кодирования трехмерных данных дополнительно квантует отражательную способность из числа информации атрибутов относительно каждой из множества трехмерных точек с использованием четвертого параметра квантования. Кроме того, при формировании, описанном выше, сформированный поток битов дополнительно включает в себя квантованную отражательную способность и четвертый параметр квантования.
[0853] Например, при квантовании с использованием второго параметра квантования, для каждого из множества подпространств, полученных посредством разделения текущего пространства, включающего в себя множество трехмерных точек, первая яркость одной или более трехмерных точек, включенных в подпространство, квантуется дополнительно с использованием пятого параметра квантования. При квантовании с использованием третьего параметра квантования, первая цветность одной или более трехмерных точек квантуется дополнительно с использованием шестого параметра квантования. При формировании, описанном выше, сформированный поток битов дополнительно включает в себя вторую разность между вторым параметром квантования и пятым параметром квантования и третью разность между третьим параметром квантования и шестым параметром квантования.
[0854] При такой конфигурации, поскольку пятый параметр квантования указывается посредством второй разности относительно второго параметра квантования, и шестой параметр квантования указывается посредством третьей разности относительно третьего параметра квантования в потоке битов, эффективность кодирования может повышаться.
[0855] Например, при формировании, описанном выше, сформированный поток битов дополнительно включает в себя идентификационную информацию, указывающую то, что пятый параметр квантования и шестой параметр квантования использованы при квантовании с использованием второго параметра квантования и при квантовании с использованием третьего параметра квантования, соответственно.
[0856] При такой конфигурации, устройство декодирования трехмерных данных, получающее поток битов, может определять из идентификационной информации то, что квантование с использованием пятого параметра квантования и квантование с использованием шестого параметра квантования выполнены, так что нагрузка по обработке процесса декодирования может уменьшаться.
[0857] Например, устройство кодирования трехмерных данных дополнительно квантует вторую яркость с использованием седьмого параметра квантования и квантует вторую цветность с использованием восьмого параметра квантования, причем вторая яркость и вторая цветность указывают второй цвет из числа информации атрибутов каждой из множества трехмерных точек. При формировании, описанном выше, сформированный поток битов дополнительно включает в себя квантованную вторую яркость, квантованную вторую цветность, седьмой параметр квантования и четвертую разность между седьмым параметром квантования и восьмым параметром квантования.
[0858] При такой конфигурации, поскольку восьмой параметр квантования указывается посредством четвертой разности относительно седьмого параметра квантования в потоке битов, эффективность кодирования может повышаться. Помимо этого, два типа цветовой информации могут включаться в информацию атрибутов относительно трехмерной точки.
[0859] Например, устройство кодирования трехмерных данных включает в себя процессор и запоминающее устройство, и процессор выполняет процесс, описанный выше, с использованием запоминающего устройства.
[0860] Устройство декодирования трехмерных данных согласно настоящему варианту осуществления выполняет процесс, проиллюстрированный на фиг. 117. Во-первых, устройство декодирования трехмерных данных получает квантованную геометрическую информацию, квантованную первую яркость, квантованную первую цветность, первый параметр квантования, второй параметр квантования и первую разность между вторым параметром квантования и третьим параметром квантования, посредством получения потока битов (S5394). Устройство декодирования трехмерных данных вычисляет геометрическую информацию относительно множества трехмерных точек посредством обратного квантования квантованной геометрической информации с использованием первой информации квантования (S5395). Из первой яркости и первой цветности, указывающей первый цвет множества трехмерных точек, устройство декодирования трехмерных данных вычисляет первую яркость посредством обратного квантования квантованной первой яркости с использованием второго параметра квантования (S5396). Устройство декодирования трехмерных данных вычисляет первую цветность посредством обратного квантования квантованной первой цветности с использованием третьего параметра квантования, полученного из второго параметра квантования и первой разности (S5397).
[0861] Таким образом, устройство декодирования трехмерных данных может корректно декодировать геометрическую информацию и информацию атрибутов относительно трехмерной точки.
[0862] Например, при получении, квантованная отражательная способность и четвертый параметр квантования дополнительно получаются посредством получения потока битов. Устройство декодирования трехмерных данных дополнительно вычисляет отражательную способность множества трехмерных точек посредством обратного квантования квантованной отражательной способности с использованием четвертого параметра квантования.
[0863] Следовательно, устройство декодирования трехмерных данных может корректно декодировать отражательную способность трехмерной точки.
[0864] Например, при получении, вторая разность между вторым параметром квантования и пятым параметром квантования и третья разность между третьим параметром квантования и шестым параметром квантования дополнительно получаются посредством получения потока битов. При вычислении первой яркости, первая яркость одной или более трехмерных точек вычисляется посредством обратного квантования квантованной первой яркости с использованием второго параметра квантования и пятого параметра квантования, полученных из второй разности, причем одна или более трехмерных точек включаются в каждое подпространство, полученное посредством разделения текущего пространства, включающего в себя множество трехмерных точек, причем квантованная первая яркость представляет собой яркость, полученную посредством квантования первой яркости одной или более трехмерных точек с использованием второго параметра квантования и пятого параметра квантования. При вычислении первой цветности, первая цветность одной или более трехмерных точек вычисляется посредством обратного квантования квантованной первой цветности с использованием третьего параметра квантования и шестого параметра квантования, полученных из третьей разности, причем квантованная первая цветность представляет собой цветность, полученную посредством квантования первой цветности, по меньшей мере, одной трехмерной точки с использованием третьего параметра квантования и шестого параметра квантования.
[0865] Например, при получении, идентификационная информация, указывающая то, что квантование с использованием пятого параметра квантования и квантование с использованием шестого параметра квантования выполнены, дополнительно получается посредством получения потока битов. При вычислении первой яркости, когда идентификационная информация указывает то, что квантование с использованием пятого параметра квантования и квантование с использованием шестого параметра квантования выполнены, квантованная первая яркость определяется в качестве яркости, полученной посредством квантования первой яркости одной или более трехмерных точек. При вычислении первой цветности, когда идентификационная информация указывает то, что квантование с использованием пятого параметра квантования и квантование с использованием шестого параметра квантования выполнены, квантованная первая цветность определяется в качестве цветности, полученной посредством квантования первой цветности одной или более трехмерных точек.
[0866] При такой конфигурации, устройство декодирования трехмерных данных может определять из идентификационной информации то, что квантование с использованием пятого параметра квантования и квантование с использованием шестого параметра квантования выполнены, так что нагрузка по обработке процесса декодирования может уменьшаться.
[0867] Например, при получении, квантованная вторая яркость, квантованная вторая цветность, седьмой параметр квантования и четвертая разность между седьмым параметром квантования и восьмым параметром квантования дополнительно получаются посредством получения потока битов. Из второй яркости и второй цветности, которые указывают второй цвет множества трехмерных точек, устройство декодирования трехмерных данных дополнительно вычисляет вторую яркость посредством обратного квантования квантованной второй яркости с использованием седьмого параметра квантования. Устройство декодирования трехмерных данных дополнительно вычисляет вторую цветность посредством обратного квантования квантованной второй цветности с использованием восьмого параметра квантования, полученного из седьмого параметра квантования и четвертой разности.
[0868] Таким образом, устройство декодирования трехмерных данных может корректно декодировать второй цвет трехмерной точки.
[0869] Например, устройство декодирования трехмерных данных включает в себя процессор и запоминающее устройство, и процессор выполняет процесс, описанный выше, с использованием запоминающего устройства.
[0870] Вариант 12 осуществления
За счет способа кодирования трехмерных данных, способа декодирования трехмерных данных, устройства кодирования трехмерных данных и устройства декодирования трехмерных данных, описанных относительно варианта 8 осуществления, также являются возможными процессы согласно этому варианту осуществления, описанному ниже.
[0871] Фиг. 118 является схемой для иллюстрации примера способа передачи параметров квантования согласно настоящему варианту осуществления. Часть (a) по фиг. 118 показывает пример, в котором опорное значение для QP-значения задается для каждой из геометрической информации и информации атрибутов. Фиг. 118 главным образом отличается от фиг. 105, показывающего вариант 8 осуществления, тем, что опорное значение для QP-значения задается не только для геометрической информации, но также и для информации атрибутов. Таким образом, QP-значение, по меньшей мере, для одного из множества фрагментов информации атрибутов, включающих в себя первый цвет, второй цвет и отражательную способность, обозначается как опорное значение, и QP-значения для другой информации атрибутов указываются в качестве информации разности относительно общего опорного значения.
[0872] На фиг. 118, QY1, которое представляет собой QP-значение, используемое для кодирования яркости Y1 первого цвета, задается в качестве общего опорного значения для множества фрагментов информации атрибутов, включающих в себя первый цвет, второй цвет и отражательную способность. QY2, которое представляет собой опорное значение для второго цвета, извлекается с использованием общего опорного значения QY1 и Δ(QY2, QY1), которое представляет собой информацию разности "5", относительно QY1. QR, которое представляет собой опорное значение для отражательной способности, извлекается с использованием общего опорного значения QY1 и Δ(QR, QY1), которое представляет собой информацию разности "8", относительно QY1. В этом случае, общее опорное значение QY1 включается в APS1, который представляет собой APS для первого цвета.
[0873] Для четвертого атрибута, может задаваться опорное значение, отличное от общего опорного значения QY1. Пятый атрибут может не иметь QP-значения. Таким образом, информация атрибутов может включать в себя как информацию атрибутов, которая квантуется с использованием общего опорного значения для извлечения множества QP-значений, используемых для квантования множества фрагментов информации атрибутов, так и информацию атрибутов, которая квантуется с использованием опорного значения, отличного от общего опорного значения. Информация атрибутов дополнительно может включать в себя информацию атрибутов, которая кодируется без использования QP-значения.
[0874] Следует отметить, что хотя пример, в котором QP-значение, используемое для квантования информации атрибутов первого цвета, представляет собой общее опорное значение для извлечения QP-значений, используемых для квантования множества фрагментов информации атрибутов, описывается со ссылкой на фиг. 118, общее опорное значение может определяться согласно правилам, описанным ниже. Например, когда вся информация атрибутов описывается в управляющей информации, такой как SPS, QP-значение, включенное в первую информацию атрибутов, указываемую в SPS, из всей информации атрибутов, может обозначаться как общее опорное значение. Альтернативно, управляющая информация, такая как SPS, может указывать информацию атрибутов, которая должна квантоваться с использованием QP-значения, обозначенного в качестве общего опорного значения. Альтернативно, в управляющей информации, такой как SPS, информация атрибутов, которая должна квантоваться с использованием QP-значения, обозначенного в качестве общего опорного значения, может указываться сначала из множества фрагментов информации атрибутов. В любом случае, посредством представления QP-значения, используемого для квантования каждого из множества фрагментов информации атрибутов, в качестве комбинации опорного значения и информации разности, может уменьшаться объем кодированных данных.
[0875] Следует отметить, что разные опорные значения QY1, QY2 и QR для разных фрагментов информации атрибутов могут указываться в APS, QY1 может использоваться в качестве опорного значения для QP-значения для первого цвета, QY2 может использоваться в качестве опорного значения для QP-значения для второго цвета, и QR может использоваться в качестве опорного значения для QP-значения для отражательной способности. В этом случае, QY2 и QR представляются посредством абсолютного значения, аналогично QY1.
[0876] Первый пример представляет собой способ указания QP-значения для множества фрагментов информации атрибутов, когда метаданные для множества фрагментов информации атрибутов совместно описываются в одном APS.
[0877] Фиг. 119 является схемой, показывающей первый пример синтаксиса APS и синтаксиса заголовка информации атрибутов.
[0878] Во-первых, в дальнейшем описывается пример синтаксиса APS.
[0879] aps_idx обозначает числовой индекс APS. aps_idx указывает соответствие между APS и заголовком информации атрибутов.
[0880] sps_idx обозначает числовой индекс SPS, которому соответствует APS.
[0881] num_of_attribute обозначает число фрагментов информации атрибутов. Следует отметить, что когда APS задается для каждого фрагмента информации атрибутов, поле или контур num_of_attribute не должно обязательно включаться в APS.
[0882] attribute_type обозначает тип информации атрибутов или, другими словами, вид информации атрибутов. Следует отметить, что когда тип информации атрибутов описывается в соответствующем SPS, информация, которая обеспечивает возможность ссылаться на тип информации атрибутов, описанной в SPS, может включаться в APS вместо attribute_type.
[0883] На фиг. 119, оператор if, обведенный посредством пунктирной линии 6701, указывает QP-значение в зависимости от attribute_type. Например, когда тип информации атрибутов представляет собой цвет, QP-значение для яркости (сигнала яркости), представленной посредством абсолютного значения, указывается в качестве опорного значения, и QP-значение для цветности (сигнала цветности: Cb, Cr) указывается в качестве информации разности относительно QP-значения для яркости.
[0884] С другой стороны, когда тип информации атрибутов представляет собой отражательную способность, QP-значение для отражательной способности, представленной посредством абсолютного значения, указывается. В качестве другого примера, когда тип информации атрибутов не имеет QP-значения, QP-значение не указывается.
[0885] Когда имеется два или более фрагментов информации атрибутов, опорное значение (QP_value_Luma или QP_value в этом примере) для фрагмента информации атрибутов может указываться посредством разности относительно опорного значения для другого фрагмента информации атрибутов. Например, в контуре num_of_attribute, опорное значение для получения общей информации атрибутов может указываться, когда i=0, и разностное значение относительно общей информации атрибутов может указываться, когда i=>1.
[0886] data_QP_delata_present_flag представляет собой флаг, который указывает то, присутствует или нет QP-значение для каждого фрагмента данных (среза) в заголовке информации атрибутов. Когда флаг равен 1, QP-значение для каждого фрагмента данных (среза) указывается в заголовке информации атрибутов.
[0887] Далее описывается пример синтаксиса заголовка информации атрибутов.
[0888] Заголовок информации атрибутов также включает в себя aps_idx. Следовательно, соответствие между APS и заголовком информации атрибутов указывается посредством APS и aps_idx, включенных в заголовок информации атрибутов. Таким образом, тот факт, что APS и заголовок информации атрибутов совместно используют aps_idx, указывает то, что возникает соответствие между APS и заголовком информации атрибутов.
[0889] attribute_type указывает тип информации атрибутов (вид информации атрибутов). Следует отметить, что когда тип информации атрибутов описывается в соответствующем APS или SPS, информация, которая обеспечивает возможность ссылаться на тип информации атрибутов, описанной в APS или SPS, может включаться в заголовок информации атрибутов вместо attribute_type.
[0890] QP-значения для полей в операторе if, обведенном посредством пунктирной линии 6702, а именно, QP_delata_data_to_frame, QP_delta1_to_frame и QP_delta2_to_frame, представляют собой QP-значения для данных, соответствующих attribute_type. Каждое QP-значение указывает информацию разности относительно значения, описанного в APS.
[0891] Второй пример представляет собой способ указания QP-значения для информации атрибутов, когда метаданные для одного фрагмента информации атрибутов независимо описываются в одном APS. Во втором примере, разные типы (виды) информации атрибутов имеют общую структуру заголовка, и в силу этого изменение синтаксической структуры с информацией атрибутов может преимущественно исключаться.
[0892] Фиг. 120 является схемой, показывающей второй пример синтаксиса APS. Фиг. 121 является схемой, показывающей второй пример синтаксиса заголовка информации атрибутов.
[0893] APS включает в себя опорное значение и разностное значение для QP-значения кадра. Когда data_QP_delta_present_flag APS равен 1, заголовок информации атрибутов включает в себя информацию разности относительно опорного значения для APS.
[0894] Здесь, поля, связанные с QP-значениями, всегда присутствуют, например, независимо от того, представляет тип информации атрибутов собой цвет, отражательную способность или номер кадра. APS имеет первое число полей для сохранения N QP-значений (N равно 2 или больше), независимо от типа информации атрибутов. Здесь, N, например, равно 3.
[0895] Когда тип информации атрибутов представляет собой цвет, например, QP_value в APS сохраняет информацию, которая указывает QP-значение для сигнала яркости, и QP_delta1 и QP_delta2 сохраняют информацию, которая указывает QP-значения для сигнала цветности. Например, QP_value представляет собой опорное значение, и QP_delta1 и QP_delta2 представляют собой информацию разности относительно QP_value. Таким образом, QP-значение для сигнала яркости указывается посредством QP_value, и QP-значения для сигнала цветности указываются посредством значения, полученного посредством суммирования QP_delta1 с QP_value, и значения, полученного посредством суммирования QP_delta2 с QP_value. Таким образом, APS включает в себя опорное значение для параметра квантования для квантования соответствующей информации атрибутов.
[0896] Аналогично, QP_delta_data_to_frame в заголовке информации атрибутов сохраняет информацию разности относительно QP-значения для сигнала яркости относительно QP_value в соответствующем APS. QP_delta1_to_frame и QP_delta2_to_frame могут сохранять информацию разности относительно QP-значений для сигнала цветности относительно QP_delta1 и QP_delta2 в соответствующем APS, соответственно.
[0897] Когда тип информации атрибутов представляет собой отражательную способность, например, QP_value в APS может сохранять информацию, которая указывает QP-значение для отражательной способности, и QP_delta1 и QP_delta2 могут сохранять информацию, которая всегда указывает 0 или недопустимость. Аналогично, QP_delta_data_to_frame в заголовке информации атрибутов может сохранять информацию, которая указывает QP-значение для отражательной способности и QP_delta1_to_frame, и QP_delta2_to_frame может сохранять информацию, которая всегда указывает 0 или недопустимость. В этом случае, устройство декодирования трехмерных данных не должно обязательно использовать для декодирования и может игнорировать информацию, сохраненную в QP_delta1 и QP_delta2, сохраняющих информацию, которая указывает 0 или недопустимость, и в QP_delta1_to_frame и QP_delta2_to_frame, независимо от информации.
[0898] В качестве другого примера, когда тип информации атрибутов не имеет QP-значения, все поля в APS могут сохранять информацию, которая указывает 0 или недопустимость. В этом случае, data_AP_delta_present_flag также задается равным 0. В этом случае, устройство декодирования трехмерных данных не должно обязательно использовать для декодирования и может игнорировать информацию, сохраненную в QP_delta1 и QP_delta2, сохраняющих информацию, которая указывает 0 или недопустимость, и в QP_delta1_to_frame и QP_delta2_to_frame, независимо от информации. Таким образом, устройство декодирования трехмерных данных может игнорировать параметр, сохраненный в конкретном поле из множества полей в заголовке конкретной информации атрибутов, которая соответствует конкретному виду атрибута в заголовках множества фрагментов информации атрибутов.
[0899] При такой конфигурации, QP-значения для разных типов информации атрибутов могут указываться посредством комбинаций опорного значения и информации разности в общей синтаксической структуре, так что эффективность кодирования может повышаться.
[0900] Следует отметить, что когда информация атрибутов, соответствующая одному фрагменту геометрической информации, включает в себя два или более фрагментов цветовой информации, способ указания информации атрибутов может изменяться в зависимости от типа информации атрибутов. Например, цветовая информация может указываться посредством общего опорного QP-значения, и информация разности и опорное QP-значение для отражательной способности могут отдельно указываться в APS.
[0901] Настоящее изобретение не ограничено способами, описанными относительно варианта 8 осуществления и настоящего варианта осуществления, и опорное значение может передаваться в служебных сигналах отдельно от информации разности, либо информация разности может независимо передаваться в служебных сигналах в качестве опорного значения. Например, комбинация опорного значения и информации разности может адаптивно изменяться в зависимости от свойств данных. Например, по меньшей мере, одно опорное значение может передаваться для единицы, которая должна независимо декодироваться, и информация разности может передаваться для единицы, которая не должна независимо декодироваться. Таким образом, функциональность может улучшаться, и одновременно объем кода может уменьшаться.
[0902] Альтернативно, объем информации может вычисляться для комбинаций опорного значения и информации разности, и комбинация опорного значения и информации разности, которая имеет минимальный объем информации, может формироваться и доставляться на основе результата вычисления. При адаптивном изменении комбинации опорного значения и информации разности, смысл (семантика) поля, которое указывает опорное значение, и поля, которое указывает информацию разности, может адаптивно изменяться. Например, смысл каждого поля может изменяться, к примеру, посредством определения того, следует задавать или нет каждое поле недопустимым, согласно правилам, описанным выше, либо может добавляться флаг, который указывает необходимость изменения смысла каждого поля. Альтернативно, опорное назначение для опорного значения может адаптивно изменяться. В этом случае, может указываться флаг, который указывает то, что опорное назначение изменено, либо идентификатор и т.п., который обеспечивает возможность идентификации опорного назначения.
[0903] Далее, со ссылкой на фиг. 122, описывается способ указания взаимосвязи между информацией атрибутов, описанной в SPS, APS и Attribute_header (заголовком информации атрибутов), посредством использования attribute_component_id. Фиг. 122 является схемой, показывающей взаимосвязь между SPS, APS и заголовком информации атрибутов. Следует отметить, что назначение стрелок на фиг. 122 указывает опорное назначение.
[0904] SPS включает в себя информацию относительно типов множества фрагментов информации атрибутов. Таким образом, SPS может соответствовать множеству фрагментов информации атрибутов и включать в себя множество фрагментов информации attribute_type, каждый из которых указывает разный вид информации атрибутов. SPS также включает в себя, для каждого типа информации атрибутов, attribute_component_id, который указывает число, которое обеспечивает возможность идентификации типа информации атрибутов. Следует отметить, что SPS представляет собой пример управляющей информации; attribute_type представляет собой пример информации типа; attribute_component_id, включенный в SPS, представляет собой пример первой идентификационной информации, которая указывает то, что первая управляющая информация атрибутов ассоциирована с одним из множества фрагментов информации типа.
[0905] APS или Attribute_header включает в себя attribute_component_id, который соответствует attribute_component_id, включенному в SPS. Следует отметить, что APS представляет собой пример второй управляющей информации атрибутов. Attribute_header представляет собой пример первой управляющей информации атрибутов; attribute_component_id, включенный в APS, представляет собой пример второй идентификационной информации, которая указывает то, что первая управляющая информация атрибутов ассоциирована с одним из множества фрагментов информации типа.
[0906] Устройство декодирования трехмерных данных ссылается на SPS, указываемый посредством sps_idx, включенного в APS или Attribute_header. Устройство декодирования трехмерных данных затем получает тип информации атрибутов, соответствующий attribute_component_id, включенному в APS или Attribute_header, из SPS для ссылки в качестве типа информации атрибутов, которой соответствует информация, включенная в APS или Attribute_header. Следует отметить, что один APS соответствует одному типу информации атрибутов. Заголовок одного фрагмента информации атрибутов соответствует одному типу информации атрибутов. Каждый из множества APS соответствует заголовку(кам) одного или более фрагментов информации атрибутов. Таким образом, один APS соответствует заголовку(кам) одного или более фрагментов информации атрибутов, отличному от заголовка(ков) одного или более фрагментов информации атрибутов, которые соответствуют другому APS.
[0907] Когда attribute_component_id=0, например, устройство декодирования трехмерных данных может получать информацию атрибутов (к примеру, attribute_type), которая соответствует attribute_component_id, имеющему идентичное значение, т.е. значение 0, из SPS.
[0908] Следует отметить, что вместо attribute_component_id, последовательность фрагментов информации атрибутов, описанной в SPS, может описываться в SPS. Таким образом, информация типа, которая указывает множество видов информации атрибутов, может сохраняться (описываться) в SPS в предварительно определенной последовательности. В этом случае, attribute_component_id, включенный в APS или Attribute_header, указывает то, что APS или Attribute_header, включающий в себя attribute_component_id, ассоциирован с информацией типа в позиции в предварительно определенной последовательности.
[0909] Альтернативно, последовательность передаваемых APS или информации атрибутов может задаваться таким образом, что она согласуется с последовательностью информации атрибутов, описанной в SPS, в силу этого позволяя устройству декодирования трехмерных данных извлекать последовательность поступления APS или информации атрибутов и ссылаться на информацию атрибутов, соответствующую последовательности поступления. Когда данные облаков точек включают в себя как информацию атрибутов, APS или Attribute_header которой может присутствовать или не присутствовать в зависимости от кадра, так и информации атрибутов, APS или Attribute_header которой всегда присутствует независимо от кадра, информация атрибутов, сначала может передаваться APS или Attribute_header которой всегда присутствует независимо от кадра, и затем может передаваться информация атрибутов, APS или Attribute_header которой может присутствовать или не присутствовать в зависимости от кадра.
[0910] Следует отметить, что хотя множество APS, каждый из которых соответствует множеству фрагментов информации атрибутов, показывается в одном кадре на фиг. 118 и 122, один APS может использоваться вместо множества APS. В этом случае, один APS включает в себя связанную с информацией атрибутов информацию, которая соответствует множеству фрагментов информации атрибутов.
[0911] aps_idx может включать в себя порядковый номер, который соответствует номеру кадра. Соответствие между APS и Attribute_header может указываться таким образом. Следует отметить, что aps_idx может иметь функцию attribute_component_id. Это обеспечивает возможность информации относительно всей последовательности касательно одного или более видов APS или информации атрибутов сохраняться в SPS и задаваться для ссылок из каждого APS или Attribute_header.
[0912] Следует отметить, что для того, чтобы обеспечивать возможность определения вида (attribute_type) информации атрибутов APS или Attribute_header, attribute_type может непосредственно включаться в APS или Attribute_header либо может включаться в заголовок NAL-единицы в качестве вида NAL-единицы.
[0913] В любом случае, информация атрибутов APS или Attribute_header может получаться, и вид атрибута информации атрибутов может определяться.
[0914] Как указано выше, устройство кодирования трехмерных данных согласно настоящему варианту осуществления выполняет процесс, показанный посредством фиг. 123. Во-первых, устройство кодирования трехмерных данных кодирует фрагменты информации атрибутов соответствующих трехмерных точек, с использованием параметров (S6701). Устройство кодирования трехмерных данных формирует поток битов, включающий в себя кодированные фрагменты информации атрибутов, управляющую информацию и фрагменты первой управляющей информации атрибутов (S6702). Управляющая информация соответствует фрагментам информации атрибутов и включает в себя фрагменты информации типа, каждый из которых указывает тип разной информации атрибутов. Кроме того, фрагменты первой управляющей информации атрибутов соответствуют "один-к-одному" фрагментам информации атрибутов. Каждый из фрагментов первой управляющей информации атрибутов включает в себя первую идентификационную информацию, указывающую то, что первая управляющая информация атрибутов ассоциирована с одним из фрагментов информации типа.
[0915] При такой конфигурации, поскольку формируется поток битов, включающий в себя первую идентификационную информацию для идентификации типа информации атрибутов, которой соответствует первая управляющая информация атрибутов, устройство декодирования трехмерных данных, принимающее поток битов, может корректно и эффективно декодировать информацию атрибутов относительно трехмерной точки.
[0916] Например, фрагменты информации типа сохраняются в управляющей информации в предварительно определенной последовательности. Первая идентификационная информация указывает то, что первая управляющая информация атрибутов, включающая в себя первую идентификационную информацию, ассоциирована с одним из фрагментов информации типа, которая имеет порядок в предварительно определенной последовательности.
[0917] При такой конфигурации, поскольку информация типа указывается в предварительно определенной последовательности без информации, указывающей информацию типа, объем данных потока битов может уменьшаться, и объем передаваемого потока битов может уменьшаться.
[0918] Например, поток битов дополнительно включает в себя фрагменты второй управляющей информации атрибутов, соответствующие фрагментам информации атрибутов. Каждый из фрагментов второй управляющей информации атрибутов включает в себя опорное значение параметра, используемого для кодирования соответствующего одного из фрагментов информации атрибутов.
[0919] При такой конфигурации, поскольку каждый из множества фрагментов второй управляющей информации атрибутов включает в себя опорное значение параметра, информация атрибутов, которой соответствует вторая управляющая информация атрибутов, может кодироваться с использованием опорного значения. При такой конфигурации, поскольку устройство декодирования трехмерных данных, принимающее поток битов, может идентифицировать тип второй информации атрибутов с использованием второй идентификационной информации, устройство декодирования трехмерных данных может корректно и эффективно декодировать информацию атрибутов относительно трехмерной точки.
[0920] Например, каждый из фрагментов первой управляющей информации атрибутов включает в себя информацию разности, которая представляет собой разность относительно опорного значения параметра. При такой конфигурации, эффективность кодирования может повышаться.
[0921] Например, поток битов дополнительно включает в себя фрагменты второй управляющей информации атрибутов, соответствующие фрагментам информации атрибутов. Каждый из фрагментов второй управляющей информации атрибутов включает в себя вторую идентификационную информацию, указывающую то, что вторая управляющая информация атрибутов ассоциирована с одним из фрагментов информации типа.
[0922] При такой конфигурации, поскольку формируется поток битов, включающий в себя вторую идентификационную информацию для идентификации типа информации атрибутов, которой соответствует вторая управляющая информация атрибутов, можно формировать поток битов, который может корректно и эффективно декодировать информацию атрибутов относительно трехмерной точки.
[0923] Например, каждый из фрагментов первой управляющей информации атрибутов включает в себя N полей, в которых сохраняются N параметров, при этом N больше или равно 2. В конкретной первой управляющей информации атрибутов из фрагментов первой управляющей информации атрибутов, одно из N полей включает в себя значение, указывающее недопустимость, причем конкретная первая управляющая информация атрибутов соответствует конкретному типу атрибута.
[0924] При такой конфигурации, поскольку устройство декодирования трехмерных данных, принимающее поток битов, может идентифицировать тип первой информации атрибутов с использованием первой идентификационной информации и опускать процесс декодирования в случае конкретной первой управляющей информации атрибутов, устройство декодирования трехмерных данных может корректно и эффективно декодировать информацию атрибутов относительно трехмерной точки.
[0925] Например, при кодировании, фрагменты информации атрибутов квантуются с использованием параметров квантования в качестве параметров.
[0926] При такой конфигурации, поскольку параметр выражается с использованием разности относительно опорного значения, можно повышать эффективность кодирования для квантования.
[0927] Например, устройство кодирования трехмерных данных включает в себя процессор и запоминающее устройство, и процессор выполняет вышеуказанный процесс с использованием запоминающего устройства.
[0928] Устройство декодирования трехмерных данных согласно настоящему варианту осуществления выполняет процесс, показанный посредством фиг. 124. Во-первых, устройство декодирования трехмерных данных получает кодированные фрагменты информации атрибутов и параметры из потока битов (S6711). Устройство декодирования трехмерных данных декодирует кодированные фрагменты информации атрибутов с использованием параметров для того, чтобы формировать фрагменты информации атрибутов соответствующих трехмерных точек (S6712). Поток битов включает в себя управляющую информацию и фрагменты первой управляющей информации атрибутов. Управляющая информация соответствует фрагментам информации атрибутов и включает в себя фрагменты информации типа, каждый из которых указывает тип различной информации атрибутов. Фрагменты первой управляющей информации атрибутов соответствуют "один-к-одному" фрагментам информации атрибутов. Каждый из фрагментов первой управляющей информации атрибутов включает в себя первую идентификационную информацию, указывающую то, что первая управляющая информация атрибутов ассоциирована с одним из фрагментов информации типа.
[0929] При такой конфигурации, поскольку устройство декодирования трехмерных данных может идентифицировать тип информации атрибутов, соответствующей первой управляющей информации атрибутов, с использованием первой идентификационной информации, устройство декодирования трехмерных данных может корректно и эффективно декодировать информацию атрибутов относительно трехмерной точки.
[0930] Например, фрагменты информации типа сохраняются в управляющей информации в предварительно определенной последовательности. Первая идентификационная информация указывает то, что первая управляющая информация атрибутов, включающая в себя первую идентификационную информацию, ассоциирована с одним из фрагментов информации типа, которая имеет порядок в предварительно определенной последовательности.
[0931] При такой конфигурации, поскольку информация типа указывается в предварительно определенной последовательности без информации, указывающей информацию типа, объем данных потока битов может уменьшаться, и объем передаваемого потока битов может уменьшаться.
[0932] Например, поток битов дополнительно включает в себя фрагменты второй управляющей информации атрибутов, соответствующие фрагментам информации атрибутов. Каждый из фрагментов второй управляющей информации атрибутов включает в себя опорное значение параметра, используемого для кодирования соответствующего одного из фрагментов информации атрибутов.
[0933] При такой конфигурации, поскольку устройство декодирования трехмерных данных может декодировать информацию атрибутов, соответствующую второй управляющей информации атрибутов, с использованием опорного значения, устройство декодирования трехмерных данных может корректно и эффективно декодировать информацию атрибутов относительно трехмерной точки.
[0934] Например, каждый из фрагментов первой управляющей информации атрибутов включает в себя информацию разности, которая представляет собой разность относительно опорного значения параметра. При такой конфигурации, поскольку можно декодировать информацию атрибутов с использованием опорного значения и информации разности, можно корректно и эффективно декодировать информацию атрибутов относительно трехмерной точки.
[0935] Например, поток битов дополнительно включает в себя фрагменты второй управляющей информации атрибутов, соответствующие фрагментам информации атрибутов. Каждый из фрагментов второй управляющей информации атрибутов включает в себя вторую идентификационную информацию, указывающую то, что вторая управляющая информация атрибутов ассоциирована с одним из фрагментов информации типа. При такой конфигурации, поскольку можно идентифицировать тип информации атрибутов, соответствующей второй управляющей информации атрибутов, с использованием второй идентификационной информации, можно корректно и эффективно декодировать информацию атрибутов относительно трехмерной точки.
[0936] Каждый из фрагментов первой управляющей информации атрибутов включает в себя поля, в которых сохраняются параметры. При декодировании, параметр, сохраненный в конкретном поле из полей конкретной первой управляющей информации атрибутов из фрагментов первой управляющей информации атрибутов, игнорируется, причем конкретная первая управляющая информация атрибутов соответствует конкретному типу атрибута.
[0937] При такой конфигурации, поскольку устройство декодирования трехмерных данных может идентифицировать тип первой информации атрибутов с использованием первой идентификационной информации, устройство декодирования трехмерных данных может корректно и эффективно декодировать информацию атрибутов относительно трехмерной точки.
[0938] Например, при декодировании, кодированные фрагменты информации атрибутов обратно квантуются с использованием параметров квантования в качестве параметров.
[0939] При такой конфигурации, можно корректно декодировать информацию атрибутов относительно трехмерной точки.
[0940] Например, устройство декодирования трехмерных данных включает в себя процессор и запоминающее устройство, и процессор выполняет вышеуказанный процесс с использованием запоминающего устройства.
[0941] Вариант 13 осуществления
Чтобы достигать высокого сжатия, информация атрибутов, включенная в данные сжатия облаков точек (PCC), преобразуется во множестве способов, таких как подъем, адаптивное к области иерархическое преобразование (RAHT) и другие способы преобразования. Здесь, подъем представляет собой один из способов преобразования с использованием уровня детализации (LoD).
[0942] Важная сигнальная информация имеет тенденцию включаться в низкочастотный компонент, и в силу этого объем кода уменьшается посредством квантования высокочастотного компонента. Таким образом, процесс преобразования имеет характеристики сильного энергетического сжатия. Помимо этого, точность уменьшается посредством квантования согласно абсолютной величине параметра квантования.
[0943] Фиг. 125 является блок-схемой, показывающей конфигурацию устройства кодирования трехмерных данных согласно этому варианту осуществления. Устройство кодирования трехмерных данных включает в себя вычитатель 7001, преобразователь 7002, модуль 7003 запоминания матриц преобразования, квантователь 7004, контроллер 7005 квантования и энтропийный кодер 7006.
[0944] Вычитатель 7001 вычисляет значение коэффициента, которое представляет собой разность между входными данными и опорными данными. Например, входные данные представляют собой информацию атрибутов, включенную в данные облаков точек, и опорные данные представляют собой прогнозированное значение информации атрибутов.
[0945] Преобразователь 7002 выполняет процесс преобразования для значения коэффициента. Например, процесс преобразования представляет собой процесс классификации множества фрагментов информации атрибутов на LoD. Следует отметить, что процесс преобразования может представлять собой преобразование Хаара и т.п. Модуль 7003 запоминания матриц преобразования запоминает матрицу преобразования, используемую для процесса преобразования посредством преобразователя 7002. Например, матрица преобразования представляет собой матрицу преобразования Хаара. Следует отметить, что хотя здесь показывается пример, в котором устройство кодирования трехмерных данных имеет как функцию выполнения процесса преобразования с использованием LoD, так и функцию выполнения такого процесса преобразования, как преобразование Хаара, устройство кодирования трехмерных данных может иметь только любую одну из функций. Альтернативно, устройство кодирования трехмерных данных может избирательно использовать любой из этих двух видов процессов преобразования. Альтернативно, устройство кодирования трехмерных данных может изменять процесс преобразования, который должен использоваться для каждой предварительно определенной единицы обработки.
[0946] Квантователь 7004 квантует значение коэффициента, чтобы формировать квантованное значение. Контроллер 7005 квантования управляет параметром квантования, используемым для квантования посредством квантователя 7004. Например, контроллер 7005 квантования может изменять параметр квантования (или шаг квантования) согласно иерархической структуре для кодирования. Таким образом, соответствующий параметр квантования может выбираться для каждого слоя иерархической структуры таким образом, что объем кодов, возникающий в каждом слое, может управляться. Контроллер 7005 квантования, например, также задает параметры квантования для определенного слоя и слоев ниже определенного слоя, которые включают в себя частотный компонент, который имеет небольшой эффект на субъективное качество изображений, равными максимальному значению, и задает коэффициенты квантования для определенного слоя и слоев ниже определенного слоя равными 0. Таким образом, возникающий объем кода может уменьшаться при уменьшении ухудшения субъективного качества изображений. Контроллер 7005 квантования также может точно управлять субъективным качеством изображений и возникающим объемом кода. "Слой" в данном документе означает слой (на глубине в древовидной структуре) в LoD или RAHT (преобразование Хаара).
[0947] Энтропийный кодер 7006 энтропийно кодирует (арифметически кодирует, например), коэффициент квантования, чтобы формировать поток битов. Энтропийный кодер 7006 также кодирует параметр квантования для каждого слоя, заданного посредством контроллера 7005 квантования.
[0948] Фиг. 126 является блок-схемой, показывающей конфигурацию устройства декодирования трехмерных данных согласно этому варианту осуществления. Устройство декодирования трехмерных данных включает в себя энтропийный декодер 7011, обратный квантователь 7012, контроллер 7013 квантования, обратный преобразователь 7014, модуль 7015 запоминания матриц преобразования и сумматор 7016.
[0949] Энтропийный декодер 7011 декодирует коэффициент квантования и параметр квантования для каждого слоя из потока битов. Обратный квантователь 7012 обратно квантует коэффициент квантования, чтобы формировать значение коэффициента. Контроллер 7013 квантования управляет параметром квантования, используемым для обратного квантования посредством обратного квантователя 7012 на основе параметра квантования для каждого слоя, полученного в энтропийном декодере 7011.
[0950] Обратный преобразователь 7014 обратно преобразует значение коэффициента. Например, обратный преобразователь 7014 выполняет обратное преобразование Хаара для значения коэффициента. Модуль 7015 запоминания матриц преобразования запоминает матрицу преобразования, используемую для процесса обратного преобразования посредством обратного преобразователя 7014. Например, матрица преобразования представляет собой матрицу обратного преобразования Хаара.
[0951] Сумматор 7016 суммирует опорные данные со значением коэффициента, чтобы формировать выходные данные. Например, выходные данные представляют собой информацию атрибутов, включенную в данные облаков точек, и опорные данные представляют собой прогнозированное значение информации атрибутов.
[0952] Далее описывается задание параметра квантования для каждого слоя. При кодировании информации атрибутов, такой как прогнозирование/подъем, разный параметр квантования используется для каждого LoD-слоя. Например, параметры квантования для нижних слоев задаются меньшими, чтобы увеличивать точность для нижних слоев. Таким образом, точность прогнозирования для верхних слоев может повышаться. Параметры квантования для верхних слоев могут задаваться большими, за счет этого уменьшая объем данных. Таким образом, значение (Qt) дерева квантования может отдельно задаваться для каждого LoD, согласно плану использования пользователя. Здесь, значение дерева квантования, например, представляет собой параметр квантования.
[0953] Фиг. 127 является схемой, показывающей пример задания LoD. Как показано на фиг. 127, например, независимые Qt0-Qt2 задаются для LoD0-LoD2.
[0954] При кодировании информации атрибутов с использованием RAHT, разные параметры квантования используются согласно глубине в древовидной структуре. Например, параметры квантования для нижних слоев задаются меньшими, чтобы увеличивать точность для нижних слоев. Таким образом, точность прогнозирования для верхних слоев может повышаться. Параметры квантования для верхних слоев могут задаваться большими, за счет этого уменьшая объем данных. Таким образом, значение (Qt) дерева квантования может отдельно задаваться для каждой глубины в древовидной структуре, согласно плану использования пользователя.
[0955] Фиг. 128 является схемой, показывающей пример иерархической структуры (древовидной структуры) RAHT. Как показано на фиг. 128, например, независимые Qt0-Qt2 задаются для глубин в древовидной структуре.
[0956] Ниже по тексту, описывается конфигурация устройства кодирования трехмерных данных согласно этому варианту осуществления. Фиг. 129 является блок-схемой, показывающей конфигурацию устройства 7020 кодирования трехмерных данных согласно этому варианту осуществления. Устройство 7020 кодирования трехмерных данных кодирует данные облаков точек (облако точек), чтобы формировать кодированные данные (кодированный поток). Устройство 7020 кодирования трехмерных данных включает в себя модуль 7021 разделения, множество кодеров 7022 геометрической информации, множество кодеров 7023 информации атрибутов, кодер 7024 дополнительной информации и мультиплексор 7025.
[0957] Модуль 7021 разделения формирует множество фрагментов разделительных данных посредством разделения данных облаков точек. В частности, модуль 7021 разделения формирует множество фрагментов разделительных данных посредством разделения пространства данных облаков точек на множество подпространств. Здесь, подпространство представляет собой комбинацию плиток или срезов либо комбинацию плиток и срезов. Более конкретно, данные облаков точек включают в себя геометрическую информацию, информацию атрибутов (цвет, отражательную способность и т.п.) и дополнительную информацию. Модуль 7021 разделения разделяет геометрическую информацию на множество фрагментов разделительной геометрической информации и разделяет информацию атрибутов на множество фрагментов разделительной информации атрибутов. Модуль 7021 разделения также формирует дополнительную информацию относительно разделения.
[0958] Модуль 7021 разделения, например, сначала разделяет облако точек на плитки. Модуль 7021 разделения затем дополнительно разделяет результирующие плитки на срезы.
[0959] Множество кодеров 7022 геометрической информации формируют множество фрагментов кодированной геометрической информации посредством кодирования множества фрагментов разделительной геометрической информации. Например, кодеры 7022 геометрической информации кодируют разделительную геометрическую информацию с использованием N-арной древовидной структуры, такой как дерево октантов. В частности, в случае дерева октантов, текущее пространство разделяется на восемь узлов (подпространств), и формируется 8-битовая информация (код заполнения), которая указывает то, включает каждый узел в себя облако точек или нет. Узел, включающий в себя облако точек, дополнительно разделяется на восемь узлов, и формируется 8-битовая информация, которая указывает то, включает каждый из восьми узлов в себя облако точек или нет. Этот процесс повторяется до тех пор, пока предварительно определенный слой не достигается, либо число облаков точек, включенных в каждый узел, не становится равным или меньше порогового значения. Например, множество кодеров 7022 геометрической информации обрабатывают множество фрагментов разделительной геометрической информации параллельно.
[0960] Кодер 7023 информации атрибутов формирует кодированную информацию атрибутов, которая представляет собой кодированные данные, посредством кодирования информации атрибутов с использованием конфигурационной информации, сформированной посредством кодера 7022 геометрической информации. Например, кодер 7023 информации атрибутов определяет опорную точку (опорный узел), к которой следует обращаться при кодировании текущей точки (текущего елевого узла), которая должна обрабатываться на основе структуры в виде дерева октантов, сформированной посредством кодера 7022 геометрической информации. Например, кодер 7023 информации атрибутов ссылается на узел, родительский узел которого в дереве октантов является идентичным родительскому узлу для текущего узла, из периферийных узлов или соседних узлов. Следует отметить, что способ определения опорной взаимосвязи не ограничен этим способом.
[0961] Процесс кодирования геометрической информации или информации атрибутов может включать в себя, по меньшей мере, одно из процесса квантования, процесса прогнозирования и процесса арифметического кодирования. В этом случае, "ссылаться" означает использование опорного узла для вычисления прогнозированного значения информации атрибутов либо использование состояния опорного узла (например, информации заполнения, которая указывает то, включает опорный узел в себя облако точек или нет) для определения параметра кодирования. Например, параметр кодирования представляет собой параметр квантования в процессе квантования либо контекст и т.п. при арифметическом кодировании.
[0962] Кодер 7024 дополнительной информации формирует кодированную дополнительную информацию посредством кодирования дополнительной информации, включенной в данные облаков точек, и дополнительной информации относительно разделения данных, сформированной при разделении посредством модуля 7021 разделения.
[0963] Мультиплексор 7025 формирует кодированный поток (кодированный поток) посредством мультиплексирования множества фрагментов кодированной геометрической информации, множества фрагментов кодированной информации атрибутов и кодированной дополнительной информации и передает сформированные кодированные данные. Кодированная дополнительная информация используется при декодировании.
[0964] Фиг. 130 является блок-схемой модуля 7021 разделения. Модуль 7021 разделения включает в себя модуль 7031 разделения на плитки и модуль 7032 разделения на срезы.
[0965] Модуль 7031 разделения на плитки формирует множество фрагментов геометрической информации плиток посредством разделения геометрической информации (позиции (геометрии)) на плитки. Модуль 7031 разделения на плитки формирует множество фрагментов информации атрибутов плиток посредством разделения информации атрибутов (атрибута) на плитки. Модуль 7031 разделения на плитки также выводит дополнительную информацию плиток (метаданные плиток), включающую в себя информацию относительно разделения на плитки и информацию, сформированную при разделении на плитки.
[0966] Модуль 7032 разделения на срезы формирует множество фрагментов разделительной геометрической информации (множество фрагментов геометрической информации срезов) посредством разделения множества фрагментов геометрической информации плиток на срезы. Модуль 7032 разделения на срезы формирует множество фрагментов разделительной информации атрибутов (множество фрагментов информации атрибутов срезов) посредством разделения множества фрагментов информации атрибутов плиток на срезы. Модуль 7032 разделения на срезы также выводит дополнительную информацию срезов (метаданные срезов), включающую в себя информацию относительно разделения на срезы и информацию, сформированную при разделении на срезы.
[0967] Модуль 7031 разделения на плитки и модуль 7032 разделения на срезы также определяют значение дерева квантования (параметр квантования) на основе сформированной дополнительной информации.
[0968] Фиг. 131 является блок-схемой кодера 7023 информации атрибутов. Кодер 7023 информации атрибутов включает в себя преобразователь 7035, квантователь 7036 и энтропийный кодер 7037.
[0969] Преобразователь 7035 классифицирует разделительную информацию атрибутов на слои, к примеру, LoD и формирует значение коэффициента (разностное значение) посредством вычисления разности между разделительной информацией атрибутов и прогнозированным значением. Следует отметить, что преобразователь 7035 может формировать значение коэффициента посредством выполнения преобразования Хаара для разделительной информации атрибутов.
[0970] Квантователь 7036 формирует квантованное значение посредством квантования значения коэффициента. В частности, квантователь 7036 разделяет коэффициент на шаг квантования на основе параметра квантования. Энтропийный кодер 7037 формирует кодированную информацию атрибутов посредством энтропийного кодирования квантованного значения.
[0971] Ниже по тексту, описывается конфигурация устройства декодирования трехмерных данных согласно этому варианту осуществления. Фиг. 132 является блок-схемой, показывающей конфигурацию устройства 7040 декодирования трехмерных данных. Устройство 7040 декодирования трехмерных данных воспроизводит данные облаков точек посредством декодирования кодированных данных (кодированного потока), сформированных посредством кодирования данных облаков точек. Устройство 7040 декодирования трехмерных данных включает в себя демультиплексор 7041, множество декодеров 7042 геометрической информации, множество декодеров 7043 информации атрибутов, декодер 7044 дополнительной информации и модуль 7045 комбинирования.
[0972] Демультиплексор 7041 формирует множество фрагментов кодированной геометрической информации, множество фрагментов кодированной информации атрибутов и кодированную дополнительную информацию посредством демультиплексирования кодированных данных (кодированного потока).
[0973] Множество декодеров 7042 геометрической информации формируют множество фрагментов разделительной геометрической информации посредством декодирования множества фрагментов кодированной геометрической информации. Например, множество декодеров 7042 геометрической информации обрабатывают множество фрагментов кодированной геометрической информации параллельно.
[0974] Множество декодеров 7043 информации атрибутов формируют множество фрагментов разделительной информации атрибутов посредством декодирования множества фрагментов кодированной информации атрибутов. Например, множество декодеров 7043 информации атрибутов обрабатывают множество фрагментов кодированной информации атрибутов параллельно.
[0975] Множество декодеров 7044 дополнительной информации формируют дополнительную информацию посредством декодирования кодированной дополнительной информации.
[0976] Модуль 7045 комбинирования формирует геометрическую информацию посредством комбинирования множества фрагментов разделительной геометрической информации с использованием дополнительной информации. Модуль 7045 комбинирования формирует информацию атрибутов посредством комбинирования множества фрагментов разделительной информации атрибутов с использованием дополнительной информации.
[0977] Фиг. 133 является блок-схемой декодера 7043 информации атрибутов. Декодер 7043 информации атрибутов включает в себя энтропийный декодер 7051, обратный квантователь 7052 и обратный преобразователь 7053. Энтропийный декодер 7051 формирует квантованное значение посредством энтропийного декодирования кодированной информации атрибутов. Обратный квантователь 7052 формирует значение коэффициента посредством обратного квантования квантованного значения. В частности, обратный квантователь 7052 умножает значение коэффициента на шаг квантования на основе значения дерева квантования (параметра квантования), полученного из потока битов. Обратный преобразователь 7053 формирует разделительную информацию атрибутов посредством обратного преобразования значения коэффициента. Здесь, обратное преобразование, например, представляет собой процесс суммирования прогнозированного значения со значением коэффициента. Альтернативно, обратное преобразование представляет собой преобразование Хаара.
[0978] Ниже по тексту, описывается пример способа определения параметра квантования. Фиг. 134 является схемой, показывающей пример задания параметра квантования при разделении на плитки и разделении на срезы.
[0979] Когда значение параметра квантования является небольшим, исходная информация с большой вероятностью должна сохраняться. Например, значение по умолчанию параметра квантования равно 1. Например, в процессе кодирования с использованием плиток PCC-данных, параметр квантования для плитки главной дороги задается равным небольшому значению, чтобы поддерживать качество данных. С другой стороны, параметр квантования для плитки периферийной зоны задается равным большому значению. Таким образом, эффективность кодирования может повышаться, в то время как качество данных периферийных зоны снижается.
[0980] Аналогично, в процессе кодирования с использованием срезов PCC-данных, тротуар, дерево и здание являются важными в оценке самопозиции и картографии, и параметр квантования для среза тротуара, дерева или здания задается равным небольшому значению. С другой стороны, движущееся тело или другие объекты являются менее важными, так что параметр квантования для среза движущегося тела или других объектов задается равным большому значению.
[0981] Когда ΔQP (DeltaQP), описанный ниже, используется, при кодировании трехмерной точки, принадлежащей важной зоне, такой как главная дорога, устройство кодирования трехмерных данных может выполнять кодирование посредством задания значения ΔQP равным отрицательному значению, чтобы уменьшать ошибку квантования, с тем чтобы снижать параметр квантования. Таким образом, декодированное значение атрибута трехмерной точки, принадлежащей важной зоне, может приближаться к значению перед кодированием. При кодировании трехмерной точки, принадлежащей зоне, которая не является важной, такой как периферийная зона, устройство кодирования трехмерных данных может задавать значение ΔQP равным положительному значению, чтобы уменьшать объем информации, с тем чтобы увеличивать параметр квантования. Таким образом, полный объем кода может уменьшаться при поддержании объема информации для важной зоны.
[0982] Ниже по тексту, описывается пример информации, которая указывает параметр квантования для каждого слоя. При кодировании информации атрибутов для трехмерной точки посредством квантования, схема для управления параметрами квантования на основе более точной единицы вводится в дополнение к параметру QPbase квантования для кадра, среза, плитки и т.п. Например, при кодировании информации атрибутов с использованием LoD, устройство кодирования трехмерных данных выполняет кодирование посредством изменения значения параметра квантования для каждого LoD посредством предоставления Delta_Layer для каждого LoD и суммирования Delta_Layer со значением QPbase для каждого LoD. Устройство кодирования трехмерных данных также добавляет Delta_Layer, используемый для кодирования, в заголовок и т.п. потока битов. Таким образом, устройство кодирования трехмерных данных может кодировать информацию атрибутов относительно трехмерной точки посредством изменения параметра квантования для каждого LoD согласно требуемому объему кода и фактическому объему кода, например, и в силу этого может в итоге формировать поток битов, имеющий объем кода, близкий к требуемому объему кода. Устройство декодирования трехмерных данных может надлежащим образом декодировать поток битов посредством декодирования QPbase и Delta_Layer, включенных в заголовок, чтобы формировать параметры квантования, используемые посредством устройства кодирования трехмерных данных.
[0983] Фиг. 135 является схемой, показывающей пример, в котором информация атрибутов относительно всех трехмерных точек кодируется с использованием параметра QPbase квантования. Фиг. 136 является схемой, показывающей пример, в котором кодирование выполняется посредством изменения параметра квантования для каждого LoD-слоя. В примере, показанном на фиг. 136, параметр квантования для опережающего LoD вычисляется посредством суммирования Delta_Layer опережающего LoD с QPbase. Для второго и следующих LoD, параметр квантования для обрабатываемого LoD вычисляется посредством суммирования Delta_Layer обрабатываемого LoD с параметром квантования для непосредственно предшествующего LoD. Например, параметр QP3 квантования в самом начале LoD3 вычисляется согласно QP3=QP2+Delta_Layer[3].
[0984] Следует отметить, что Delta_Layer[i] для каждого LoD может указывать разностное значение относительно QPbase. Таким образом, параметр QPi квантования i-ого LoDi указывается посредством QPi=QPbase+Delta_Layer[i]. Например, QP1=QPbase+Delta_Layer[1] и QP2=QPbase+Delta_Layer[2].
[0985] Фиг. 137 является схемой, показывающей пример синтаксиса заголовка информации атрибутов (информации заголовка атрибутов). Здесь, заголовок информации атрибутов представляет собой заголовок на основе кадра, среза или плитки, например, и представляет собой заголовок информации атрибутов. Как показано на фиг. 137, заголовок информации атрибутов включает в себя QPbase (опорный параметр квантования), NumLayer (число слоев) и Delta_Layer[i] (дифференциальный параметр квантования).
[0986] QPbase указывает значение опорного параметра квантования для кадра, среза, плитки и т.п. NumLayer указывает число слоев LoD или RAHT. Другими словами, NumLayer указывает число всех Delta_Layer[i], включенных в заголовок информации атрибутов.
[0987] Delta_Layer[i] указывает значение ΔQP для слоя i. Здесь, ΔQP представляет собой значение, полученное посредством вычитания параметра квантования для слоя i из параметра квантования для слоя i-1. Следует отметить, что ΔQP может представлять собой значение, полученное посредством вычитания параметра квантования для слоя i из QPbase. ΔQP может допускать положительное или отрицательное значение. Следует отметить, что Delta_Layer[0] не должен обязательно добавляться в заголовок. В этом случае, параметр квантования для слоя 0 равен QPbase. Таким образом, объем кода заголовка может уменьшаться.
[0988] Фиг. 138 является схемой, показывающей другой пример синтаксиса заголовка информации атрибутов (информации заголовка атрибутов). Заголовок информации атрибутов, показанный на фиг. 138, отличается от заголовка информации атрибутов, показанного на фиг. 137, тем, что заголовок информации атрибутов дополнительно включает в себя delta_Layer_present_flag.
[0989] delta_Layer_present_flag представляет собой флаг, который указывает то, включается Delta_Layer в поток битов или нет. Например, значение 1 указывает то, что Delta_Layer включается в поток битов, и значение 0 указывает то, что Delta_Layer не включается в поток битов. Когда delta_Layer_present_flag равен 0, устройство декодирования трехмерных данных, например, выполняет следующий процесс декодирования посредством задания Delta_Layer равным 0.
[0990] Следует отметить, что хотя здесь описываются примеры, в которых параметр квантования указывается посредством QPbase и Delta_Layer, шаг квантования может указываться посредством QPbase и Delta_Layer. Шаг квантования вычисляется из параметра квантования с использованием формулы, таблицы и т.п., определенной заранее. В процессе квантования, устройство кодирования трехмерных данных делит значение коэффициента на шаг квантования. В процессе обратного квантования, устройство декодирования трехмерных данных воспроизводит значение коэффициента посредством умножения квантованного значения на шаг квантования.
[0991] Далее описывается пример, в котором параметры квантования управляются на основе более точной единицы. Фиг. 139 является схемой, показывающей пример, в котором параметры квантования управляются на основе единицы, более точной, чем LoD.
[0992] Например, при кодировании информации атрибутов с использованием LoD, устройство кодирования трехмерных данных задает ADelta_QP и NumPointADelta, которые представляют геометрическую информацию относительно трехмерной точки, в которую ADelta_QP должен добавляться, в дополнение к Delta_Layer для каждого LoD-слоя. Устройство кодирования трехмерных данных выполняет кодирование посредством изменения значения параметра квантования на основе Delta_Layer, ADelta_QP и NumPointADelta.
[0993] Устройство кодирования трехмерных данных может добавлять ADelta и NumPointADelta, используемые для кодирования, в заголовок и т.п. потока битов. Это обеспечивает возможность устройству кодирования трехмерных данных кодировать информацию атрибутов относительно множества трехмерных точек, например, посредством изменения параметра квантования для каждой трехмерной точки согласно требуемому объему кода и фактическому объему кода. Таким образом, устройство кодирования трехмерных данных может в итоге формировать поток битов, имеющий объем кода, близкий к требуемому объему кода. Устройство декодирования трехмерных данных может надлежащим образом декодировать поток битов посредством декодирования QPbase, Delta_Layer и ADelta, включенных в заголовок, чтобы формировать параметры квантования, используемые посредством устройства кодирования трехмерных данных.
[0994] Например, как показано на фиг. 139, квантованное значение QP4 N0-ой информации атрибутов вычисляется согласно QP4=QP3+ADelta_QP[0].
[0995] Также может использоваться порядок кодирования/декодирования, обратный по отношению к порядку кодирования/декодирования, показанному на фиг. 139. Например, кодирование/декодирование также может выполняться в порядке LoD3, LoD2, LoD1 и затем LoD0.
[0996] Фиг. 140 является схемой, показывающей пример синтаксиса заголовка информации атрибутов (информации заголовка атрибутов) в случае, если пример, показанный на фиг. 139, используется. Заголовок информации атрибутов, показанный на фиг. 140, отличается от заголовка информации атрибутов, показанного на фиг. 137, тем, что заголовок информации атрибутов дополнительно включает в себя NumADelta, NumPointADelta[i] и ADelta_QP[i].
[0997] NumADelta указывает число всех ADelta_QP, включенных в поток битов. NumPointADelta[i] указывает идентификационный номер трехмерной точки A, к которой применяется ADelta_QP[i]. Например, NumPointADelta[i] указывает число трехмерных точек от опережающей трехмерной точки до трехмерной точки A в порядке кодирования/декодирования. NumPointADelta[i] также может указывать число трехмерных точек от первой трехмерной точки до трехмерной точки A в LoD, которому принадлежит трехмерная точка A.
[0998] Альтернативно, NumPointADelta[i] может указывать разностное значение между идентификационным номером трехмерной точки, указываемой посредством NumPointADelta[i-1], и идентификационным номером трехмерной точки A. Таким образом, значение NumPointADelta[i] может уменьшаться, так что объем кода может уменьшаться.
[0999] ADelta_QP[i] указывает значение ΔQP трехмерной точки, указываемой посредством NumPointADelta[i]. Таким образом, ADelta_QP[i] указывает разность между параметром квантования трехмерной точки, указываемой посредством NumPointADelta[i], и параметром квантования трехмерной точки, непосредственно предшествующей этой трехмерной точке.
[1000] Фиг. 141 является схемой, показывающей другой пример синтаксиса заголовка информации атрибутов (информации заголовка атрибутов) в случае, если пример, показанный на фиг. 139, используется. Заголовок информации атрибутов, показанный на фиг. 141, отличается от заголовка информации атрибутов, показанного на фиг. 140, тем, что заголовок информации атрибутов дополнительно включает в себя delta_Layer_present_flag и additional_delta_QP_present_flag и включает в себя NumADelta_minus1 вместо NumADelta.
[1001] delta_Layer_present_flag является идентичным delta_Layer_present_flag, уже описанному со ссылкой на фиг. 138.
[1002] additional_delta_QP_present_flag представляет собой флаг, который указывает то, включается ADelta_QP в поток битов или нет. Например, значение 1 указывает то, что ADelta_QP включается в поток битов, и значение 0 указывает то, что ADelta_QP не включается в поток битов. Когда additional_delta_QP_present_flag равен 0, устройство декодирования трехмерных данных, например, выполняет следующий процесс декодирования посредством задания ADelta_QP равным 0.
[1003] NumADelta_minus1 указывает число всех ADelta_QP, включенных в поток битов минус 1. Таким образом, посредством добавления значения, полученного посредством вычитания 1 из числа ADelta_QP, в заголовок, объем кода заголовка может уменьшаться. Например, устройство декодирования трехмерных данных вычисляет NumADelta=NumADelta_minus1+1. ADelta_QP[i] указывает значение i-ого ADelta_QP. Следует отметить, что ADelta_QP[i] может задаваться равным не только положительному значению, но также и отрицательному значению.
[1004] Фиг. 142 является блок-схемой последовательности операций способа для процесса кодирования трехмерных данных согласно этому варианту осуществления. Во-первых, устройство кодирования трехмерных данных кодирует геометрическую информацию (геометрию) (S3001). Например, устройство кодирования трехмерных данных выполняет кодирование с использованием представления в виде дерева октантов.
[1005] Устройство кодирования трехмерных данных затем преобразует информацию атрибутов (S7002). Например, после кодирования геометрической информации, если позиция трехмерной точки изменяется вследствие квантования и т.п., устройство кодирования трехмерных данных переназначает информацию атрибутов относительно исходной трехмерной точки трехмерной точке, измененной по позиции. Следует отметить, что устройство кодирования трехмерных данных может выполнять переназначение посредством интерполяции значений информации атрибутов согласно величине изменения позиции. Например, устройство кодирования трехмерных данных обнаруживает N трехмерных точек, подлежащих изменению по позиции, близкой к трехмерной позиции трехмерной точки, измененной по позиции, принимает среднее взвешенное значений информации атрибутов относительно N трехмерных точек на основе расстояния между трехмерными позициями трехмерной точки, измененной по позиции, и каждой из N трехмерных точек, и определяет результирующее значение в качестве значения информации атрибутов относительно трехмерной точки, измененной по позиции. Если трехмерные позиции двух или более трехмерных точек изменяются на идентичную трехмерную позицию вследствие квантования и т.п., устройство кодирования трехмерных данных может назначать среднее значение информации атрибутов относительно двух или более трехмерных точек, подлежащих изменению по позиции, в качестве значения информации атрибутов относительно трехмерных точек, измененных по позиции.
[1006] Устройство кодирования трехмерных данных затем кодирует информацию атрибутов (S7003). Когда устройство кодирования трехмерных данных кодирует множество фрагментов информации атрибутов, например, устройство кодирования трехмерных данных может последовательно кодировать множество фрагментов информации атрибутов. Например, когда устройство кодирования трехмерных данных кодирует цвет и отражательную способность в качестве информации атрибутов, устройство кодирования трехмерных данных формирует поток битов, включающий в себя результат кодирования цвета, а далее результат кодирования отражательной способности. Следует отметить, что множество результатов кодирования информации атрибутов могут включаться в поток битов в любом порядке.
[1007] Устройство кодирования трехмерных данных может добавлять информацию, указывающую начальную точку кодированных данных каждой информации атрибутов в потоке битов, в заголовок и т.п. Таким образом, устройство декодирования трехмерных данных может избирательно декодировать информацию атрибутов, которая должна декодироваться, и в силу этого может опускать процесс декодирования для информации атрибутов, которая не должна декодироваться. Следовательно, объем обработки устройства декодирования трехмерных данных может уменьшаться. Устройство кодирования трехмерных данных может кодировать множество фрагментов информации атрибутов параллельно и интегрировать результаты кодирования в один поток битов. Таким образом, устройство кодирования трехмерных данных может кодировать множество фрагментов информации атрибутов на высокой скорости.
[1008] Фиг. 143 является блок-схемой последовательности операций способа для процесса кодирования информации атрибутов (S7003). Во-первых, устройство кодирования трехмерных данных задает LoD (S7011). Таким образом, устройство кодирования трехмерных данных назначает каждую трехмерную точку любому из множества LoD.
[1009] Устройство кодирования трехмерных данных затем начинает контур на основе LoD (S7012). Таким образом, устройство кодирования трехмерных данных многократно выполняет процесс от этапа S7013 до этапа S7021 для каждого LoD.
[1010] Устройство кодирования трехмерных данных затем начинает контур на основе трехмерной точки (S7013). Таким образом, устройство кодирования трехмерных данных многократно выполняет процесс от этапа S7014 до этапа S7020 для каждой трехмерной точки.
[1011] Сначала, устройство кодирования трехмерных данных выполняет поиск множества периферийных точек, которые представляют собой трехмерные точки, присутствующие в периферии текущей трехмерной точки, которые должны использоваться для вычисления прогнозированного значения текущей трехмерной точки, которая должна обрабатываться (S7014). Устройство кодирования трехмерных данных затем вычисляет среднее взвешенное значений информации атрибутов относительно множества периферийных точек и задает полученное значение в качестве прогнозированного значения P (S7015). Устройство кодирования трехмерных данных затем вычисляет остаток прогнозирования, который представляет собой разность между информацией атрибутов и прогнозированным значением текущей трехмерной точки (S7016). Устройство кодирования трехмерных данных затем вычисляет квантованное значение посредством квантования остатка прогнозирования (S7017). Устройство кодирования трехмерных данных затем арифметически кодирует квантованное значение (S7018). Устройство кодирования трехмерных данных затем определяет ΔQP (S7019). ΔQP, определенный здесь, используется для определения параметра квантования, используемого для квантования последующего остатка прогнозирования.
[1012] Устройство кодирования трехмерных данных затем вычисляет обратно квантованное значение посредством обратного квантования квантованного значения (S7020). Устройство кодирования трехмерных данных затем формирует декодированное значение посредством суммирования прогнозированного значения с обратно квантованным значением (S7021). Устройство кодирования трехмерных данных затем завершает контур на основе трехмерной точки (S7022). Устройство кодирования трехмерных данных также завершает контур на основе LoD (S7023).
[1013] Фиг. 144 является блок-схемой последовательности операций способа для процесса ΔQP-определения (S7019). Во-первых, устройство кодирования трехмерных данных вычисляет слой i, которому принадлежит текущая трехмерная точка A, которая должна кодироваться далее, и порядок N кодирования (S7031). Слой i, например, указывает LoD-слой или RAHT-слой.
[1014] Устройство кодирования трехмерных данных затем суммирует фактический объем кода с кумулятивным объемом кода (S7032). Здесь, кумулятивный объем кода означает кумулятивный объем кода для одного кадра, одного среза или одной плитки текущей трехмерной точки. Следует отметить, что кумулятивный объем кода может означать кумулятивный объем кода для множества кадров, множества срезов или множества плиток. Альтернативно, кумулятивный объем кода информации атрибутов может использоваться, или кумулятивный объем кода геометрической информации и информации атрибутов может использоваться.
[1015] Устройство кодирования трехмерных данных затем определяет то, превышает кумулятивный объем кода требуемый объем кода x TH1 или нет (S7033). Здесь, требуемый объем кода означает требуемый объем кода для одного кадра, одного среза или одной плитки текущей трехмерной точки. Следует отметить, что требуемый объем кода может означать требуемый объем кода для множества кадров, множества срезов или множества плиток. Альтернативно, требуемый объем кода информации атрибутов может использоваться, или требуемый объем кода геометрической информации и информации атрибутов может использоваться.
[1016] Когда кумулятивный объем кода равен или меньше требуемого объема кода x TH1 (если "Нет" на S7033), устройство кодирования трехмерных данных определяет то, превышает кумулятивный объем кода требуемый объем кода x TH2 или нет (S7036).
[1017] Здесь, в качестве пороговых значений TH1 и TH2 например, задаются значения от 0,0 до 1,0. Помимо этого, TH1>TH2. Например, когда кумулятивный объем кода превышает значение требуемого объема кода x TH1 (если "Да" на S7033), устройство кодирования трехмерных данных определяет то, что объем кода должен уменьшаться как можно раньше, и задает ADelta_QP равным значению α, чтобы увеличивать параметр квантования для следующей трехмерной точки N. Устройство кодирования трехмерных данных также задает NumPointADelta равным значению N и постепенно увеличивает j на 1 (S7034). Устройство кодирования трехмерных данных затем добавляет ADelta_QP=α и NumPointADelta=N в заголовок (S7035). Следует отметить, что значение α может составлять фиксированное значение или переменное значение. Например, устройство кодирования трехмерных данных может определять значение α на основе абсолютной величины разности между кумулятивным объемом кода и требуемым объемом кода x TH1. Например, устройство кодирования трехмерных данных задает значение α большим по мере того, как разность между кумулятивным объемом кода и требуемым объемом кода x TH1 увеличивается. Таким образом, устройство кодирования трехмерных данных может управлять параметром квантования таким образом, что кумулятивный объем кода не превышает требуемый объем кода.
[1018] Когда кумулятивный объем кода превышает требуемый объем кода x TH2 (если "Да" на S7036), устройство кодирования трехмерных данных задает Delta_Layer равным значению β, чтобы увеличивать параметр квантования для слоя i, которому принадлежит текущая трехмерная точка A, или последующего слоя i+1 (S7037). Например, устройство кодирования трехмерных данных задает Delta_Layer[i] слоя i равным значению β, когда текущая трехмерная точка A находится в начале слоя i, и задает Delta_Layer[i+1] слоя i+1 равным значению β, когда текущая трехмерная точка A не находится в начале слоя i.
[1019] Устройство кодирования трехмерных данных добавляет Delta_Layer=β слоя i или слоя i+1 в заголовок (S7038). Следует отметить, что значение β может составлять фиксированное значение или переменное значение. Например, устройство кодирования трехмерных данных может определять значение β на основе абсолютной величины разности между кумулятивным объемом кода и требуемым объемом кода x TH2. Например, устройство кодирования трехмерных данных задает значение β большим по мере того, как разность между кумулятивным объемом кода и требуемым объемом кода x TH2 увеличивается. Таким образом, устройство кодирования трехмерных данных может управлять параметром квантования таким образом, что кумулятивный объем кода не превышает требуемый объем кода.
[1020] Если кумулятивный объем кода превышает или должен превышать требуемый объем кода, устройство кодирования трехмерных данных может задавать значение ADelta_QP или Delta_Layer таким образом, что параметр квантования допускает максимальное значение, поддерживаемое посредством стандарта, и т.п. Таким образом, устройство кодирования трехмерных данных может задавать коэффициент квантования для точек после трехмерной точки A или для слоев после слоя i равным 0, за счет этого снижая увеличение фактического объема кода и предотвращая превышение кумулятивным объемом кода требуемого объема кода.
[1021] Если кумулятивный объем кода меньше требуемого объема кода x TH3, устройство кодирования трехмерных данных может снижать параметр квантования таким образом, что фактический объем кода увеличивается. Например, устройство кодирования трехмерных данных может снижать параметр квантования посредством задания значения Delta_Layer или ADelta_QP равным отрицательному значению в зависимости от разности между кумулятивным объемом кода и требуемым объемом кода. Таким образом, устройство кодирования трехмерных данных может формировать поток битов, имеющий объем кода, близкий к требуемому объему кода.
[1022] Фиг. 145 является блок-схемой последовательности операций способа для процесса декодирования трехмерных данных согласно этому варианту осуществления. Во-первых, устройство декодирования трехмерных данных декодирует геометрическую информацию (геометрию) из потока битов (S7005). Например, устройство декодирования трехмерных данных выполняет декодирование с использованием представления в виде дерева октантов.
[1023] Устройство декодирования трехмерных данных затем декодирует информацию атрибутов из потока битов (S7006). Например, когда устройство декодирования трехмерных данных декодирует множество фрагментов информации атрибутов, устройство декодирования трехмерных данных может последовательно декодировать множество фрагментов информации атрибутов. Например, когда устройство декодирования трехмерных данных декодирует цвет и отражательную способность в качестве информации атрибутов, устройство декодирования трехмерных данных может декодировать результат кодирования цвета и результат кодирования отражательной способности в этом порядке в потоке битов. Например, если после результата кодирования цвета приводится результат кодирования отражательной способности в потоке битов, устройство декодирования трехмерных данных сначала декодирует результат кодирования цвета и затем декодирует результат кодирования отражательной способности. Следует отметить, что устройство декодирования трехмерных данных может декодировать результат кодирования информации атрибутов в потоке битов в любом порядке.
[1024] Устройство декодирования трехмерных данных может получать информацию, указывающую начальную точку кодированных данных каждого фрагмента информации атрибутов в потоке битов, посредством декодирования заголовка и т.п. Таким образом, устройство декодирования трехмерных данных может избирательно декодировать информацию атрибутов, которая должна декодироваться, и в силу этого может опускать процесс декодирования для информации атрибутов, которая не должна декодироваться. Следовательно, объем обработки устройства декодирования трехмерных данных может уменьшаться. Устройство декодирования трехмерных данных может декодировать множество фрагментов информации атрибутов параллельно и интегрировать результаты декодирования в одно облако трехмерных точек. Таким образом, устройство декодирования трехмерных данных может декодировать множество фрагментов информации атрибутов на высокой скорости.
[1025] Фиг. 146 является блок-схемой последовательности операций способа для процесса декодирования информации атрибутов (S7006). Во-первых, устройство декодирования трехмерных данных задает LoD (S7041). Таким образом, устройство декодирования трехмерных данных назначает каждую из множества трехмерных точек, имеющих декодированную геометрическую информацию, любому из множества LoD. Например, способ назначения является идентичным способу назначения, используемому в устройстве кодирования трехмерных данных.
[1026] Устройство декодирования трехмерных данных затем декодирует ΔQP из потока битов (S7042). В частности, устройство декодирования трехмерных данных декодирует Delta_Layer, ADelta_QP и NumPointADelta из заголовка потока битов.
[1027] Устройство декодирования трехмерных данных затем начинает контур на основе LoD (S7043). Таким образом, устройство декодирования трехмерных данных многократно выполняет процесс от этапа S7044 до этапа S7050 для каждого LoD.
[1028] Устройство декодирования трехмерных данных затем начинает контур на основе трехмерной точки (S7044). Таким образом, устройство декодирования трехмерных данных многократно выполняет процесс от этапа S7045 до этапа S7049 для каждой трехмерной точки.
[1029] Сначала, устройство декодирования трехмерных данных выполняет поиск множества периферийных точек, которые представляют собой трехмерные точки, присутствующие в периферии целевой трехмерной точки, которые должны использоваться для вычисления прогнозированного значения целевой трехмерной точки, которая должна обрабатываться (S7045). Устройство декодирования трехмерных данных затем вычисляет среднее взвешенное значений информации атрибутов относительно множества периферийных точек и задает полученное значение в качестве прогнозированного значения P (S7046). Следует отметить, что эти обработки являются идентичными обработкам в устройстве кодирования трехмерных данных.
[1030] Устройство декодирования трехмерных данных затем арифметически декодирует квантованное значение из потока битов (S7047). Устройство декодирования трехмерных данных затем вычисляет обратно квантованное значение посредством обратного квантования декодированного квантованного значения (S7048). При этом обратном квантовании, используется параметр квантования, вычисленный с использованием ΔQP, полученного на этапе S7042.
[1031] Устройство декодирования трехмерных данных затем формирует декодированное значение посредством суммирования прогнозированного значения с обратно квантованным значением (S7049). Устройство декодирования трехмерных данных затем завершает контур на основе трехмерной точки (S7050). Устройство декодирования трехмерных данных также завершает контур на основе LoD (S7051).
[1032] Фиг. 147 является блок-схемой кодера 7023 информации атрибутов. Кодер 7023 информации атрибутов включает в себя модуль 7061 задания LoD, модуль 7062 поиска, модуль 7063 прогнозирования, вычитатель 7064, квантователь 7065, обратный квантователь 7066, модуль 7067 восстановления, запоминающее устройство 7068 и модуль 7070 ΔQP-вычисления.
[1033] Модуль задания LoD 7061 формирует LoD с использованием геометрической информации относительно трехмерной точки. Модуль 7062 поиска выполняет поиск соседних трехмерных точек относительно каждой трехмерной точки посредством использования результата формирования LoD и информации расстояния между трехмерными точками. Модуль 7063 прогнозирования формирует прогнозированное значение информации атрибутов текущей трехмерной точки. Модуль 7063 прогнозирования также назначает прогнозированное значение множеству режимов 0-M-1 прогнозирования и выбирает режим прогнозирования, который должен использоваться, из множества режимов прогнозирования.
[1034] Вычитатель 7064 формирует остаток прогнозирования посредством вычитания прогнозированного значения из информации атрибутов. Квантователь 7065 квантует остаток прогнозирования информации атрибутов. Обратный квантователь 7066 обратно квантует квантованный остаток прогнозирования. Модуль 7067 восстановления формирует декодированное значение посредством суммирования прогнозированного значения и обратно квантованного остатка прогнозирования. Запоминающее устройство 7068 сохраняет значение (декодированное значение) информации атрибутов относительно каждой декодированной трехмерной точки. Декодированная информация атрибутов относительно трехмерных точек, сохраненная в запоминающем устройстве 7068, используется для прогнозирования трехмерной точки, которая по-прежнему должна кодироваться посредством модуля 7063 прогнозирования.
[1035] Арифметический кодер 7069 вычисляет ZeroCnt из квантованного остатка прогнозирования и арифметически кодирует ZeroCnt. Арифметический кодер 7069 также арифметически кодирует любой квантованный остаток прогнозирования, который не равен нулю. Арифметический кодер 7069 может преобразовывать в двоичную форму остаток прогнозирования перед арифметическим кодированием. Арифметический кодер 7069 может формировать и кодировать различные виды информации заголовка. Арифметический кодер 7069 может арифметически кодировать информацию (PredMode) режима прогнозирования, которая указывает режим прогнозирования, используемый для кодирования посредством модуля 7063 прогнозирования, и добавлять информацию в поток битов.
[1036] Модуль 7070 ΔQP-вычисления определяет значения Delta_Layer, ADelta_QP и NumPointADelta из фактического объема кода, полученного посредством арифметического кодера 7069, и предварительно определенного требуемого объема кода. Квантование посредством квантователя 7065 выполняется с использованием параметра квантования на основе определенных Delta_Layer, ADelta_QP и NumPointADelta. Арифметический кодер 7069 арифметически кодирует Delta_Layer, ADelta_QP и NumPointADelta и добавляет эти значения в поток битов.
[1037] Фиг. 148 является блок-схемой декодера 7043 информации атрибутов. Декодер 7043 информации атрибутов включает в себя арифметический декодер 7071, модуль 7072 задания LoD, модуль 7073 поиска, модуль 7074 прогнозирования, обратный квантователь 7075, модуль 7076 восстановления и запоминающее устройство 7077.
[1038] Арифметический декодер 7071 арифметически декодирует ZeroCnt и остаток прогнозирования, включенные в поток битов. Арифметический декодер 7071 также декодирует различные виды информации заголовка. Арифметический декодер 7071 также арифметически декодирует информацию (PredMode) режима прогнозирования из потока битов и выводит полученную информацию режима прогнозирования в модуль 7074 прогнозирования. Арифметический декодер 7071 также декодирует Delta_Layer, ADelta_QP и NumPointADelta из заголовка потока битов.
[1039] Модуль 7072 задания LoD формирует LoD с использованием декодированной геометрической информации относительно трехмерной точки. Модуль 7073 поиска выполняет поиск соседних трехмерных точек относительно каждой трехмерной точки посредством использования результата формирования LoD и информации расстояния между трехмерными точками.
[1040] Модуль 7074 прогнозирования формирует прогнозированное значение информации атрибутов текущей трехмерной точки, которая должна декодироваться. Обратный квантователь 7075 обратно квантует арифметически декодированный остаток прогнозирования. В частности, обратный квантователь 7075 выполняет обратное квантование с использованием параметра квантования на основе декодированных Delta_Layer, ADelta_QP и NumPointADelta.
[1041] Модуль 7076 восстановления формирует декодированное значение посредством суммирования прогнозированного значения и обратно квантованного остатка прогнозирования. Запоминающее устройство 7077 сохраняет значение (декодированное значение) информации атрибутов относительно каждой декодированной трехмерной точки. Декодированная информация атрибутов относительно трехмерных точек, сохраненная в запоминающем устройстве 7077, используется для прогнозирования трехмерной точки, которая по-прежнему должна декодироваться посредством модуля 7074 прогнозирования.
[1042] Ниже по тексту, описывается пример, в котором RAHT-слои используются вместо LoD-слоев. Фиг. 149 является схемой, показывающей пример, в котором параметры квантования управляются на основе более точной единицы, когда информация атрибутов кодируется с использованием RAHT. Например, при кодировании информации атрибутов с использованием RAHT, устройство кодирования трехмерных данных задает ADelta_QP и NumPointADelta, которые представляют геометрическую информацию относительно трехмерной точки, в которую ADelta_QP должен добавляться, в дополнение к Delta_Layer для каждого RAHT-слоя. Устройство кодирования трехмерных данных выполняет кодирование посредством изменения значения параметра квантования на основе Delta_Layer, ADelta_QP и NumPointADelta.
[1043] Устройство кодирования трехмерных данных может добавлять ADelta и NumPointADelta, используемые для кодирования, в заголовок и т.п. потока битов. Это обеспечивает возможность устройству кодирования трехмерных данных кодировать информацию атрибутов относительно трехмерных точек, например, посредством изменения параметра квантования для каждой трехмерной точки согласно требуемому объему кода и фактическому объему кода. Таким образом, устройство кодирования трехмерных данных может в итоге формировать поток битов, имеющий объем кода, близкий к требуемому объему кода. Устройство декодирования трехмерных данных может надлежащим образом декодировать поток битов посредством декодирования QPbase, Delta_Layer и ADelta, включенных в заголовок, чтобы формировать параметры квантования, используемые посредством устройства кодирования трехмерных данных.
[1044] Например, квантованное значение QP4 N0-ой информации атрибутов вычисляется согласно QP4=QP3+ADelta_QP[0]. Каждый ADelta_QP[i] может представлять собой разностное значение относительно QPbase, такое как QP4=QPbase+ADelta_QP[0].
[1045] Фиг. 150 является схемой, показывающей пример синтаксиса заголовка информации атрибутов (информации заголовка атрибутов) в случае, если пример, показанный на фиг. 149, используется. Заголовок информации атрибутов, показанный на фиг. 150, по существу, является идентичным заголовку информации атрибутов, показанному на фиг. 140, но отличается тем, что RAHT-слои используются вместо LoD-слоев.
[1046] NumADelta указывает число всех ADelta_QP, включенных в поток битов. NumPointADelta[i] указывает идентификационный номер трехмерной точки A, к которой применяется ADelta_QP[i]. Например, NumPointADelta[i] указывает число трехмерных точек от опережающей трехмерной точки до трехмерной точки A в порядке кодирования/декодирования. NumPointADelta[i] также может указывать число трехмерных точек от первой трехмерной точки до трехмерной точки A в слое, которому принадлежит трехмерная точка A.
[1047] Альтернативно, NumPointADelta[i] может указывать разностное значение между идентификационным номером трехмерной точки, указываемой посредством NumPointADelta[i-1], и идентификационным номером трехмерной точки A. Таким образом, значение NumPointADelta[i] может уменьшаться, так что объем кода может уменьшаться.
[1048] Фиг. 151 является схемой, показывающей другой пример синтаксиса заголовка информации атрибутов (информации заголовка атрибутов) в случае, если пример, показанный на фиг. 149, используется. Следует отметить, что заголовок информации атрибутов, показанный на фиг. 151, по существу, является идентичным заголовку информации атрибутов, показанному на фиг. 141, но отличается тем, что RAHT-слои используются вместо LoD-слоев.
[1049] additional_delta_QP_present_flag представляет собой флаг, который указывает то, включается ADelta_QP в поток битов или нет. Например, значение 1 указывает то, что ADelta_QP включается в поток битов, и значение 0 указывает то, что ADelta_QP не включается в поток битов. Когда additional_delta_QP_present_flag равен 0, устройство декодирования трехмерных данных, например, выполняет следующий процесс декодирования посредством задания ADelta_QP равным 0.
[1050] NumADelta_minus1 указывает число всех ADelta_QP, включенных в поток битов минус 1. Таким образом, посредством добавления значения, полученного посредством вычитания 1 из числа ADelta_QP, в заголовок, объем кода заголовка может уменьшаться. Например, устройство декодирования трехмерных данных вычисляет NumADelta=NumADelta_minus1+1. ADelta_QP[i] указывает значение i-ого ADelta_QP. Следует отметить, что ADelta_QP[i] может задаваться равным не только положительному значению, но также и отрицательному значению.
[1051] Фиг. 152 является блок-схемой последовательности операций способа для процесса кодирования трехмерных данных в случае, если RAHT используется. Во-первых, устройство кодирования трехмерных данных кодирует геометрическую информацию (геометрию) (S7061). Например, устройство кодирования трехмерных данных выполняет кодирование с использованием представления в виде дерева октантов.
[1052] Устройство кодирования трехмерных данных затем преобразует информацию атрибутов (S7062). Например, после кодирования геометрической информации, если позиция трехмерной точки изменяется вследствие квантования и т.п., устройство кодирования трехмерных данных переназначает информацию атрибутов относительно исходной трехмерной точки трехмерной точке, измененной по позиции. Следует отметить, что устройство кодирования трехмерных данных может выполнять переназначение посредством интерполяции значений информации атрибутов согласно величине изменения позиции. Например, устройство кодирования трехмерных данных обнаруживает N трехмерных точек, подлежащих изменению по позиции, близкой к трехмерной позиции трехмерной точки, измененной по позиции, принимает среднее взвешенное значений информации атрибутов относительно N трехмерных точек на основе расстояния между трехмерными позициями трехмерной точки, измененной по позиции, и каждой из N трехмерных точек, и определяет результирующее значение в качестве значения информации атрибутов относительно трехмерной точки, измененной по позиции. Если трехмерные позиции двух или более трехмерных точек изменяются на идентичную трехмерную позицию вследствие квантования и т.п., устройство кодирования трехмерных данных может назначать среднее значение информации атрибутов относительно двух или более трехмерных точек, подлежащих изменению по позиции, в качестве значения информации атрибутов относительно трехмерных точек, измененных по позиции.
[1053] Устройство кодирования трехмерных данных затем кодирует информацию атрибутов (S7063). Когда устройство кодирования трехмерных данных кодирует множество фрагментов информации атрибутов, например, устройство кодирования трехмерных данных может последовательно кодировать множество фрагментов информации атрибутов. Например, когда устройство кодирования трехмерных данных кодирует цвет и отражательную способность в качестве информации атрибутов, устройство кодирования трехмерных данных формирует поток битов, включающий в себя результат кодирования цвета, а далее результат кодирования отражательной способности. Следует отметить, что множество результатов кодирования информации атрибутов могут включаться в поток битов в любом порядке.
[1054] Устройство кодирования трехмерных данных может добавлять информацию, указывающую начальную точку кодированных данных каждой информации атрибутов в потоке битов, в заголовок и т.п. Таким образом, устройство декодирования трехмерных данных может избирательно декодировать информацию атрибутов, которая должна декодироваться, и в силу этого может опускать процесс декодирования для информации атрибутов, которая не должна декодироваться. Следовательно, объем обработки устройства декодирования трехмерных данных может уменьшаться. Устройство кодирования трехмерных данных может кодировать множество фрагментов информации атрибутов параллельно и интегрировать результаты кодирования в один поток битов. Таким образом, устройство кодирования трехмерных данных может кодировать множество фрагментов информации атрибутов на высокой скорости.
[1055] Фиг. 153 является блок-схемой последовательности операций способа для процесса кодирования информации атрибутов (S7063). Во-первых, устройство кодирования трехмерных данных формирует коэффициент кодирования из информации атрибутов посредством преобразования Хаара (S7071).
[1056] Устройство кодирования трехмерных данных затем применяет квантование к коэффициенту кодирования (S7072). Устройство кодирования трехмерных данных затем формирует кодированную информацию атрибутов (поток битов) посредством кодирования квантованного коэффициента кодирования (S7073).
[1057] Устройство кодирования трехмерных данных затем определяет ΔQP (S7074). Следует отметить, что способ определения ΔQP является идентичным этапу S7019 в случае, если LoD-слои используются. Определенный ΔQP используется для определения параметра квантования, используемого для квантования последующего коэффициента кодирования.
[1058] Устройство кодирования трехмерных данных применяет обратное квантование к квантованному коэффициенту кодирования (S7075). Устройство кодирования трехмерных данных затем декодирует информацию атрибутов посредством применения обратного преобразования Хаара к обратно квантованному коэффициенту кодирования (S7076). Например, на декодированную информацию атрибутов ссылаются при последующем кодировании.
[1059] Фиг. 154 является блок-схемой последовательности операций способа для процесса декодирования трехмерных данных в случае, если RAHT используется. Во-первых, устройство декодирования трехмерных данных декодирует геометрическую информацию (геометрию) из потока битов (S7065). Например, устройство декодирования трехмерных данных выполняет декодирование с использованием представления в виде дерева октантов.
[1060] Устройство декодирования трехмерных данных затем декодирует информацию атрибутов из потока битов (S7066). Например, когда устройство декодирования трехмерных данных декодирует множество фрагментов информации атрибутов, устройство декодирования трехмерных данных может последовательно декодировать множество фрагментов информации атрибутов. Например, когда устройство декодирования трехмерных данных декодирует цвет и отражательную способность в качестве информации атрибутов, устройство декодирования трехмерных данных декодирует результат кодирования цвета и результат кодирования отражательной способности в этом порядке в потоке битов. Например, если после результата кодирования цвета приводится результат кодирования отражательной способности в потоке битов, устройство декодирования трехмерных данных сначала декодирует результат кодирования цвета и затем декодирует результат кодирования отражательной способности. Следует отметить, что устройство декодирования трехмерных данных может декодировать результат кодирования информации атрибутов в потоке битов в любом порядке.
[1061] Устройство декодирования трехмерных данных может получать информацию, указывающую начальную точку кодированных данных каждого фрагмента информации атрибутов в потоке битов, посредством декодирования заголовка и т.п. Таким образом, устройство декодирования трехмерных данных может избирательно декодировать информацию атрибутов, которая должна декодироваться, и в силу этого может опускать процесс декодирования для информации атрибутов, которая не должна декодироваться. Следовательно, объем обработки устройства декодирования трехмерных данных может уменьшаться. Устройство декодирования трехмерных данных может декодировать множество фрагментов информации атрибутов параллельно и интегрировать результаты декодирования в одно облако трехмерных точек. Таким образом, устройство декодирования трехмерных данных может декодировать множество фрагментов информации атрибутов на высокой скорости.
[1062] Фиг. 155 является блок-схемой последовательности операций способа для процесса декодирования информации атрибутов (S7066). Во-первых, устройство декодирования трехмерных данных декодирует коэффициент кодирования из потока битов (S7081). Устройство декодирования трехмерных данных затем декодирует ΔQP из потока битов (S7082). В частности, устройство декодирования трехмерных данных декодирует Delta_Layer, ADelta_QP и NumPointADelta из заголовка потока битов.
[1063] Устройство декодирования трехмерных данных затем применяет обратное квантование к коэффициенту кодирования (S7083). При этом обратном квантовании, используется параметр квантования, вычисленный с использованием ΔQP, полученного на этапе S7082. Устройство декодирования трехмерных данных затем декодирует информацию атрибутов посредством применения обратного преобразования Хаара к обратно квантованному коэффициенту кодирования (S7084).
[1064] Фиг. 156 является блок-схемой кодера 7023 информации атрибутов в случае, если RAHT используется. Кодер 7023 информации атрибутов включает в себя сортировщик 7081, преобразователь 7082 Хаара, квантователь 7083, обратный квантователь 7084, обратный преобразователь 7085 Хаара, запоминающее устройство 7086, арифметический кодер 7087 и модуль 7088 ΔQP-вычисления.
[1065] Сортировщик 7081 формирует код Мортона с использованием геометрической информации относительно трехмерной точки и сортирует множество трехмерных точек в порядке кодов Мортона. Преобразователь 7082 Хаара формирует коэффициент кодирования посредством применения преобразования Хаара к информации атрибутов. Квантователь 7083 квантует коэффициент кодирования информации атрибутов.
[1066] Обратный квантователь 7084 обратно квантует квантованный коэффициент кодирования. Обратный преобразователь 7085 Хаара применяет обратное преобразование Хаара к коэффициенту кодирования. Запоминающее устройство 7086 сохраняет значения декодированной информации атрибутов относительно множества трехмерных точек. Например, декодированная информация атрибутов относительно трехмерных точек, сохраненная в запоминающем устройстве 7086, может использоваться для прогнозирования и т.п. трехмерной точки, которая по-прежнему должна кодироваться.
[1067] Арифметический кодер 7087 вычисляет ZeroCnt из квантованного коэффициента кодирования и арифметически кодирует ZeroCnt. Арифметический кодер 7087 также арифметически кодирует любой квантованный коэффициент кодирования, который не равен нулю. Арифметический кодер 7087 может преобразовывать в двоичную форму коэффициент кодирования перед арифметическим кодированием. Арифметический кодер 7087 может формировать и кодировать различные виды информации заголовка.
[1068] Модуль 7088 ΔQP-вычисления определяет значения Delta_Layer, ADelta_QP и NumPointADelta из фактического объема кода, полученного посредством арифметического кодера 7087, и предварительно определенного требуемого объема кода. Квантование посредством квантователя 7083 выполняется с использованием параметра квантования на основе определенных Delta_Layer, ADelta_QP и NumPointADelta. Арифметический кодер 7087 арифметически кодирует Delta_Layer, ADelta_QP и NumPointADelta и добавляет эти значения в поток битов.
[1069] Фиг. 157 является блок-схемой декодера 7043 информации атрибутов в случае, если RAHT используется. Декодер 7043 информации атрибутов включает в себя арифметический декодер 7091, обратный квантователь 7092, обратный преобразователь 7093 Хаара и запоминающее устройство 7094.
[1070] Арифметический декодер 7091 арифметически декодирует ZeroCnt и коэффициент кодирования, включенные в поток битов. Арифметический декодер 7091 может декодировать различные виды информации заголовка. Арифметический декодер 7091 также декодирует Delta_Layer, ADelta_QP и NumPointADelta из заголовка потока битов.
[1071] Обратный квантователь 7092 обратно квантует арифметически декодированный коэффициент кодирования. В частности, обратный квантователь 7092 выполняет обратное квантование с использованием параметра квантования на основе декодированных Delta_Layer, ADelta_QP и NumPointADelta.
[1072] Обратный преобразователь 7093 Хаара применяет обратное преобразование Хаара к обратно квантованному коэффициенту кодирования. Запоминающее устройство 7094 сохраняет значения декодированной информации атрибутов относительно множества трехмерных точек. Например, декодированная информация атрибутов относительно трехмерных точек, сохраненная в запоминающем устройстве 7094, может использоваться для прогнозирования трехмерной точки, которая по-прежнему должна декодироваться.
[1073] Ниже по тексту описывается варьирование этого варианта осуществления. Устройство кодирования трехмерных данных может кодировать параметр квантования информации атрибутов относительно каждой трехмерной точки в качестве новой информации атрибутов.
[1074] Ниже по тексту, описывается пример процесса, выполняемого посредством устройства кодирования трехмерных данных в этом случае. Устройство кодирования трехмерных данных кодирует информацию A атрибутов (такую как цвет) посредством вычисления параметра квантования согласно последовательности операций, показанной на фиг. 143. В этом процессе, в качестве нового значения атрибута каждой трехмерной точки, устройство кодирования трехмерных данных кодирует используемый параметр квантования. В этом случае, устройство кодирования трехмерных данных может выполнять кодирование посредством изменения значения параметра квантования для каждой трехмерной точки. Например, если кумулятивный объем кода превышает значение требуемого объема кода x TH1, устройство кодирования трехмерных данных может задавать значение параметра квантования большим, с тем чтобы уменьшать фактический объем кода. Если кумулятивный объем кода меньше значения требуемого объема кода x TH3, устройство кодирования трехмерных данных может задавать значение параметра квантования меньшим, с тем чтобы увеличивать фактический объем кода.
[1075] После кодирования информации A атрибутов, устройство кодирования трехмерных данных кодирует параметр квантования, назначенный каждой трехмерной точке, в качестве новой информации A' атрибутов. В этом процессе, устройство кодирования трехмерных данных может применять кодирование без потерь, чтобы предотвращать потерю объема информации для параметров квантования. Устройство кодирования трехмерных данных может добавлять в заголовок и т.п. информацию, которая указывает то, что кодированная информация атрибутов представляет собой параметр квантования. Таким образом, устройство декодирования трехмерных данных может надлежащим образом декодировать параметр квантования, используемый посредством устройства кодирования трехмерных данных.
[1076] При выполнении прогнозирующего кодирования информации атрибутов с использованием N трехмерных точек в периферии текущей трехмерной точки, устройство кодирования трехмерных данных может кодировать параметр квантования при таком допущении, что N=1. Таким образом, объем вычислений может уменьшаться.
[1077] Далее описывается пример процесса, выполняемого посредством устройства декодирования трехмерных данных. Во-первых, устройство декодирования трехмерных данных декодирует информацию A' атрибутов из информации атрибутов в потоке битов, чтобы получать параметр квантования, используемый для декодирования информации A атрибутов. Устройство декодирования трехмерных данных затем декодирует информацию A атрибутов с использованием декодированного параметра квантования.
[1078] Следует отметить, что устройство кодирования трехмерных данных может кодировать, в качестве новой информации A' атрибутов, ΔQP, который представляет собой величину изменения параметра квантования между трехмерными точками вместо параметра квантования, описанного выше. Когда ΔQP допускает положительное или отрицательное значение, устройство кодирования трехмерных данных может преобразовывать ΔQP со знаком в положительное значение перед кодированием ΔQP, как описано ниже. Когда ΔQP со знаком (deltaQP_s) меньше 0, ΔQP без знака (deltaQP_u) задается равным -1-(2 x deltaQP_s). Когда ΔQP со знаком (deltaQP_s) равен или выше 0, ΔQP без знака (deltaQP_u) задается равным 2 x deltaQP_s.
[1079] Устройство кодирования трехмерных данных может кодировать, в качестве информации атрибутов, параметр квантования, используемый для кодирования каждой информации атрибутов. Например, устройство кодирования трехмерных данных может кодировать параметр квантования информации A атрибутов относительно цвета в качестве информации A' атрибутов и кодировать параметр квантования информации B атрибутов относительно отражательной способности в качестве информации B' атрибутов. Таким образом, параметр квантования может изменяться для каждой информации атрибутов. Например, если параметр квантования информации атрибутов, имеющей более высокий приоритет, задается меньшим, и параметр квантования информации атрибутов, имеющей более низкий приоритет, задается большим, полный объем кода может уменьшаться при сохранении информации атрибутов, имеющей более высокий приоритет.
[1080] При квантовании и кодировании остатка прогнозирования для информации атрибутов относительно трехмерной точки, если delta_Layer_present_flag, additional_delta_QP_present_flag и т.п. указывают то, что Delta_Layer и ADelta_QP задаются в заголовке, устройство кодирования трехмерных данных не должно обязательно использовать значение весового коэффициента квантования (QW), который указывает важность трехмерной точки. Например, когда QW используется, параметр квантования задается меньшим, когда QW больше (важность является более высокой). Таким образом, может выбираться то, следует выполнять квантование на основе важности, определенной посредством внутреннего процесса, такого как прогнозирование, или на основе значения, заданного в заголовке пользователем, так что два способа могут избирательно использоваться в зависимости от цели пользователя.
[1081] Устройство кодирования трехмерных данных может добавлять в заголовок, флаг, который указывает то, следует использовать значение весового коэффициента квантования (QW) или нет. Таким образом, может выбираться то, следует выполнять квантование посредством комбинирования значений Delta_Layer и ADelta_QP и QW или нет, два способа могут избирательно использоваться в зависимости от цели пользователя.
[1082] При квантовании и кодировании коэффициента преобразования для информации атрибутов относительно трехмерной точки с использованием RAHT и т.п., если delta_Layer_present_flag, additional_delta_QP_present_flag и т.п. указывают то, что Delta_Layer и ADelta_QP задаются в заголовке, устройство кодирования трехмерных данных не должно обязательно использовать значение весового коэффициента квантования (QW). Таким образом, может выбираться то, следует выполнять квантование на основе важности, определенной посредством внутреннего процесса, такого как прогнозирование, или на основе значения, заданного в заголовке пользователем, так что два способа могут избирательно использоваться в зависимости от цели пользователя. Кроме того, устройство кодирования трехмерных данных может добавлять, в заголовок, флаг, который указывает то, следует использовать значение весового коэффициента квантования (QW) или нет. Таким образом, может выбираться то, следует выполнять квантование посредством комбинирования значений Delta_Layer и ADelta_QP и QW или нет, два способа могут избирательно использоваться в зависимости от цели пользователя.
[1083] Фиг. 158 является схемой, показывающей пример синтаксиса заголовка информации атрибутов (информации заголовка атрибутов) в этом случае. Заголовок информации атрибутов, показанный на фиг. 158, отличается от заголовка информации атрибутов, показанного на фиг. 141, тем, что заголовок информации атрибутов дополнительно включает в себя default_delta_Layer_present_flag, default_delta_Layer_index, default_additional_delta_QP_present_flag и default_additional_delta_QP_index.
[1084] default_delta_Layer_present_flag представляет собой флаг, который указывает то, следует использовать первоначально заданное значение Delta_Layer, заданного посредством стандарта и т.п., или нет. Например, значение 1 указывает то, что первоначально заданный Delta_Layer должен использоваться. Значение 0 указывает то, что первоначально заданный Delta_Layer не должен использоваться. В случае значения 0, устройство декодирования трехмерных данных, например, выполняет следующий процесс декодирования посредством задания Delta_Layer равным 0.
[1085] default_delta_Layer_index представляет собой информацию, которая обеспечивает возможность использования идентификации Delta_Layer из одного или более первоначально заданных значений Delta_Layer, заданных посредством стандарта, и т.п. Например, default_delta_Layer_index задается так, как описано ниже.
[1086] Когда default_delta_Layer_index=0, Delta_Layer для всех слоев задается равным 1. Таким образом, значение параметра квантования увеличивается на 1 каждый раз, когда слой постепенно увеличивается. Когда default_delta_Layer_index=1, Delta_Layer для всех слоев задается равным 2. Таким образом, значение параметра квантования увеличивается на 2 каждый раз, когда слой постепенно увеличивается.
[1087] Если первоначально заданный Delta_Layer задается согласно стандарту и т.п. таким образом, параметр квантования может изменяться без суммирования значения Delta_Layer с заголовком, так что объем кода заголовка может уменьшаться.
[1088] default_additional_delta_QP_present_flag представляет собой флаг, который указывает то, следует использовать первоначально заданное значение ADelta_QP, заданного посредством стандарта и т.п., или нет. Например, значение 1 указывает то, что первоначально заданный ADelta_QP должен использоваться. Значение 0 указывает то, что первоначально заданный ADelta_QP не должен использоваться. В случае значения 0, устройство декодирования трехмерных данных, например, выполняет следующий процесс декодирования посредством задания ADelta_QP равным 0.
[1089] default_additional_delta_QP_index представляет собой информацию, которая обеспечивает возможность использования идентификации ADelta_QP из одного или более значений первоначально заданного ADelta_QP, заданных посредством стандарта, и т.п. Например, default_additional_delta_QP_index задается так, как описано ниже.
[1090] Когда default_additional_delta_QP_index=0, ADelta_QP задается равным 1 каждые N трехмерных точек. Таким образом, значение параметра квантования увеличивается на 1 каждый раз, когда N трехмерных точек кодируются или декодируются. Следует отметить, что устройство кодирования трехмерных данных дополнительно может добавлять информацию, указывающую N, в заголовок.
[1091] Когда default_additional_delta_QP_index=1, ADelta_QP задается равным 2 каждые N трехмерных точек. Таким образом, значение параметра квантования увеличивается на 2 каждый раз, когда N трехмерных точек кодируются или декодируются. Следует отметить, что устройство кодирования трехмерных данных дополнительно может добавлять информацию, указывающую N, в заголовок.
[1092] Если первоначально заданный ADelta_QP задается согласно стандарту и т.п. таким образом, параметр квантования может изменяться без суммирования значения ADelta_QP с заголовком, так что объем кода заголовка может уменьшаться.
[1093] Как описано выше, устройство кодирования трехмерных данных согласно этому варианту осуществления выполняет процесс, показанный на фиг. 159. Устройство кодирования трехмерных данных вычисляет множество значений коэффициентов (к примеру, остатков прогнозирования или коэффициентов кодирования) из множества фрагментов информации атрибутов относительно множества трехмерных точек, включенных в данные облаков точек, (S7091). Устройство кодирования трехмерных данных затем формирует множество квантованных значений посредством квантования каждого из множества значений коэффициентов (S7092). Устройство кодирования трехмерных данных затем формирует поток битов, включающий в себя множество квантованных значений (S7093). Множество значений коэффициентов принадлежат любому из множества слоев (таких как LoD-слои или RAHT-слои). При квантовании (S7092), устройство кодирования трехмерных данных квантует каждое из множества значений коэффициентов с использованием параметра квантования для слоя, которому принадлежит значение коэффициента. Поток битов включает в себя первую информацию (такую как QPbase), которая указывает опорный параметр квантования, и множество фрагментов второй информации (таких как Delta_Layer[i]) для вычисления множества параметров квантования для множества слоев из опорного параметра квантования.
[1094] При такой конфигурации, устройство кодирования трехмерных данных может изменять параметр квантования для каждого слоя и в силу этого может надлежащим образом выполнять кодирование. Помимо этого, поскольку устройство кодирования трехмерных данных кодирует первую информацию, которая указывает опорный параметр квантования, и вторую информацию для вычисления множества параметров квантования из опорного параметра квантования, эффективность кодирования может повышаться.
[1095] Например, каждый из множества фрагментов второй информации указывает разность между опорным параметром квантования и параметром квантования для слоя.
[1096] Например, поток битов дополнительно включает в себя первый флаг (delta_Layer_present_flag), который указывает то, включаются множество фрагментов второй информации в поток битов или нет.
[1097] Например, поток битов дополнительно включает в себя третью информацию (такую как NumLayer), которая указывает число множества фрагментов второй информации, включенных в поток битов.
[1098] Например, множество трехмерных точек классифицируются на любой из множества слоев (таких как LoD) на основе геометрической информации относительно множества трехмерных точек.
[1099] Например, множество значений коэффициентов формируются посредством сортировки каждого из множества фрагментов информации атрибутов на компонент верхних частот и компонент нижних частот, которые должны классифицироваться на любой из слоев (таких как RAHT-слои).
[1100] Например, устройство кодирования трехмерных данных включает в себя процессор и запоминающее устройство, и процессор выполняет процесс, описанный выше, с использованием запоминающего устройства.
[1101] Устройство декодирования трехмерных данных согласно этому варианту осуществления выполняет процесс, показанный на фиг. 160. Устройство декодирования трехмерных данных вычисляет параметры квантования для множества слоев на основе (i) первой информации (такой как QPbase), которая указывает опорный параметр квантования, и (ii) множества фрагментов второй информации (таких как Delta_Layer[i]) для вычисления множества параметров квантования для множества слоев из опорного параметра квантования, которые включаются в поток битов (S7095).
[1102] Устройство декодирования трехмерных данных затем формирует множество значений коэффициентов (к примеру, остатков прогнозирования или коэффициентов кодирования) посредством обратного квантования каждого из множества квантованных значений, включенных в поток битов, с использованием параметра квантования для слоя, которому принадлежит квантованное значение, из вычисленных параметров квантования для множества слоев (S7096). Устройство декодирования трехмерных данных затем вычисляет множество фрагментов информации атрибутов относительно множества трехмерных точек, включенных в данные облаков точек, из множества значений коэффициентов (S7097).
[1103] При такой конфигурации, устройство декодирования трехмерных данных может изменять параметр квантования для каждого слоя и в силу этого может надлежащим образом выполнять декодирование. Помимо этого, устройство декодирования трехмерных данных может надлежащим образом декодировать поток битов, кодированный с эффективностью кодирования, повышенной посредством использования первой информации, которая указывает опорный параметр квантования, и множества фрагментов второй информации для вычисления множества параметров квантования из опорного параметра квантования.
[1104] Например, каждый из множества фрагментов второй информации указывает разность между опорным параметром квантования и параметром квантования для слоя.
[1105] Например, поток битов дополнительно включает в себя первый флаг (delta_Layer_present_flag), который указывает то, включаются множество фрагментов второй информации в поток битов или нет.
[1106] Например, поток битов дополнительно включает в себя третью информацию (такую как NumLayer), которая указывает число множества фрагментов второй информации, включенных в поток битов.
[1107] Например, множество трехмерных точек классифицируются на любой из множества слоев (таких как LoD) на основе геометрической информации относительно множества трехмерных точек.
[1108] Например, множество значений коэффициентов формируются посредством сортировки каждого из множества фрагментов информации атрибутов на компонент верхних частот и компонент нижних частот, которые должны классифицироваться на любой из слоев (таких как RAHT-слои).
[1109] Например, устройство декодирования трехмерных данных включает в себя процессор и запоминающее устройство, и процессор выполняет процесс, описанный выше, с использованием запоминающего устройства.
[1110] Вариант 14 осуществления
В этом варианте осуществления, в дальнейшем описывается способ формирования LoD-слоев. Фиг. 161 является схемой, показывающей пример формирования LoD-слоев. Фиг. 161 показывает способ формирования LoD с использованием структуры в виде двоичного дерева в случае, если число N трехмерных точек равно 16.
[1111] Во-первых, устройство кодирования трехмерных данных разделяет множество трехмерных точек в узле [0] с использованием значения (геометрической координаты) на оси α. Здесь, ось α, например, представляет собой ось X, ось Y или ось Z. В частности, устройство кодирования трехмерных данных может вычислять срединное значение (срединное значение [0]) для значений на оси α трехмерных точек и разделять трехмерные точки с использованием срединного значения [0]. Например, устройство кодирования трехмерных данных разделяет множество трехмерных точек в узле [0] на группу A и группу B, причем группа A включает в себя трехмерные точки, значения которых на оси α равны или меньше срединного значения [0], причем группа B включает в себя трехмерные точки, значения которых на оси α превышают срединное значение [0], и назначает группу A узлу [1] и группу B узлу [2]. Таким образом, множество трехмерных точек в узле [0] могут практически равномерно разделяться.
[1112] Устройство кодирования трехмерных данных может вычислять среднее значение (среднее значение [0]) для значений на оси α трехмерных точек в узле [0] и назначать трехмерную точку i, имеющую значение на оси α, ближайшее к значению среднего значения [0], LoD0. Таким образом, трехмерные точки, которые находятся относительно близко ко множеству трехмерных точек в узле [0], могут назначаться LoD0, так что точность прогнозирования значения атрибута каждой трехмерной точки может повышаться.
[1113] Аналогично узлу [0], множество трехмерных точек, включенных в каждый из узла [1] и узла [2], разделяются с использованием значения на оси β. Здесь, ось α и ось β могут быть идентичными или отличающимися. Устройство кодирования трехмерных данных вычисляет срединное значение (срединное значение [1]) для значений на оси β трехмерных точек в узле [1] и срединное значение (срединное значение [2]) на оси β трехмерных точек в узле [2]. Устройство кодирования трехмерных данных разделяет узел [1] на узел [3] и узел [4] с использованием срединного значения [1]. Устройство кодирования трехмерных данных разделяет узел [2] на узел [5] и узел [6] с использованием срединного значения [2].
[1114] Устройство кодирования трехмерных данных вычисляет средние значения (среднее значение [1] и среднее значение [2]) для значений на оси β трехмерных точек в узле [1] и узле [2], соответственно, и назначает трехмерные точки e и m, имеющие значения на оси β, ближайшие к соответствующим средним значениям, LoD1.
[1115] Устройство кодирования трехмерных данных вычисляет средние значения для узлов [3]-[6] таким же образом, как для узла [0], узла [1] и узла [2], и назначает трехмерные точки c, f, j и n, имеющие значения, ближайшие к соответствующим средним значениям, LoD2. Устройство кодирования трехмерных данных назначает трехмерные точки, которые не назначены ни одному из LoD0-LoD2, LoD3. Таким образом, устройство кодирования трехмерных данных может назначать все трехмерные точки LoD.
[1116] Когда каждая трехмерная точка в узле имеет геометрическую информацию (x, y, z), устройство кодирования трехмерных данных определяет то, какая из осей x, y и z должен использоваться для разделения трехмерных точек в узле. Например, устройство кодирования трехмерных данных вычисляет дисперсию на каждой оси трехмерных точек в узле и разделяет трехмерные точки с использованием оси, дисперсия на которой является наибольшей. Таким образом, устройство кодирования трехмерных данных может надлежащим образом разделять трехмерные точки в узле в соответствии с их характеристиками. Следует отметить, что устройство кодирования трехмерных данных может изменять ось, используемую для разделения для каждого узла. Таким образом, устройство кодирования трехмерных данных может надлежащим образом выполнять разделение в соответствии с характеристиками трехмерных точек в каждом узле.
[1117] Согласно способу, описанному выше, трехмерные точки, которые находятся близко друг к другу, в среднем могут назначаться более высоким LoD, так что точность прогнозирования информации атрибутов с использованием LoD может увеличиваться, и эффективность кодирования может повышаться.
[1118] Здесь, при кодировании значения атрибута трехмерной точки с использованием двоичного дерева, устройство кодирования трехмерных данных может вычислять значение btDepth, которое указывает то, вплоть до какого слоя разделение должно выполняться из узла [0], который представляет собой корневой узел, согласно следующей формуле (уравнение L1) или (уравнение L2).
[1119] Математическое выражение 6
[1120] Здесь, N представляет число трехмерных точек, и up представляет управляющий параметр. Например, возможно то, что up=1. Посредством изменения значения up, может управляться то, вплоть до какого слоя в двоичном дереве должны разделяться трехмерные точки. Следует отметить, что устройство кодирования трехмерных данных может добавлять значение up в поток битов. Таким образом, устройство декодирования трехмерных данных может выполнять разделение вплоть до слоя, идентичного слою при кодировании, и в силу этого может надлежащим образом декодировать поток битов.
[1121] Следует отметить, что round(x) в (уравнении L1) представляет собой функцию, которая возвращает значение, полученное посредством округления значения x. max(x, y) представляет собой функцию, которая возвращает большее значение из значений x и y. Таким образом, btDepth равен 0 (отсекается до значения в0), когда значение log2(round(N/2))-up является отрицательным.
[1122] Фиг. 162-166 являются схемами, показывающими примеры разделения слоев. Как показано на фиг. 162, когда N=8 и up=1, разделение выполняется вплоть до btDepth=1. Как показано на фиг. 163, когда N=8 и up=0, разделение выполняется вплоть до btDepth=2.
[1123] Посредством отсечения минимального значения btDepth до 0, устройство кодирования трехмерных данных может надлежащим образом формировать LoD, даже когда N равен или меньше 2. Как показано на фиг. 164, когда N=2 и up=1, разделение выполняется вплоть до btDepth=0. В примере, показанном на фиг. 164, узел [0] включает в себя две точки. Устройство кодирования трехмерных данных может назначать одну из этих двух точек, которая находится ближе к среднему значению, LoD0, и назначать другую точку LoD1.
[1124] Как показано на фиг. 165, когда N=1 и up=0, разделение выполняется вплоть до btDepth=0. В примере, показанном на фиг. 165, узел [0] включает в себя одну точку. Устройство кодирования трехмерных данных назначает одну точку LoD0.
[1125] Следует отметить, что хотя в этом варианте осуществления показан пример, в котором, посредством отсечения минимального значения btDepth до 0, трехмерные точки надлежащим образом назначаются LoD, даже когда N равен или меньше 2, настоящее раскрытие не обязательно ограничивается им. Например, когда N равен или меньше 2, устройство кодирования трехмерных данных не должно обязательно применять формирование LoD с использованием двоичного дерева. Альтернативно, когда N равен или меньше 2, устройство кодирования трехмерных данных может назначать две точки LoD0. Альтернативно, когда N равен или меньше 2, устройство кодирования трехмерных данных может формировать LoD посредством назначения одной из трехмерных точек LoD0 и назначения другой трехмерной точки LoD1. Альтернативно, когда N равен или меньше 2, устройство кодирования трехмерных данных может задавать значение btDepth равным 0 посредством задания up=0.
[1126] Хотя в этом варианте осуществления показан пример, в котором трехмерные точки назначаются LoD для каждого btDepth-слоя, настоящее раскрытие не обязательно ограничивается им. Например, устройство кодирования трехмерных данных может назначать трехмерные точки LoD для конкретного btDepth. Например, устройство кодирования трехмерных данных может назначать трехмерные точки LoD, когда значение btDepth является четным, и пропускать назначение LoD, когда значение является нечетным. Альтернативно, устройство кодирования трехмерных данных может назначать трехмерные точки LoD, когда значение btDepth является нечетным, и пропускать назначение LoD, когда значение является четным. Таким образом, устройство кодирования трехмерных данных не должно определять среднее значение и выполнять поиск трехмерной точки, имеющей значение, близкое к среднему значению для каждого слоя, объем обработки может уменьшаться.
[1127] Например, как показано на фиг. 166, когда N=16 и up=1, разделение выполняется вплоть до btDepth=2. Для btDepth=0, btDepth является четным, и устройство кодирования трехмерных данных назначает трехмерную точку, имеющую значение, близкое к среднему значению для узла [0], LoD0. Для btDepth=1, btDepth является нечетным, и устройство кодирования трехмерных данных пропускает назначение. Для btDepth=2, btDepth является четным, и устройство кодирования трехмерных данных назначает трехмерную точку, имеющую значение, близкое к среднему значению для каждого узла, LoD1. Устройство кодирования трехмерных данных назначает любую трехмерную точку, которая не назначена ни одному из LoD0 и LoD1, LoD2.
[1128] Фиг. 167 является блок-схемой последовательности операций способа для процесса кодирования трехмерных данных согласно этому варианту осуществления. Во-первых, устройство кодирования трехмерных данных кодирует геометрическую информацию (геометрию) (S7101). Например, устройство кодирования трехмерных данных выполняет кодирование с использованием представления в виде дерева октантов.
[1129] Устройство кодирования трехмерных данных затем преобразует информацию атрибутов (S7102). Например, после кодирования геометрической информации, если позиция трехмерной точки изменяется вследствие квантования и т.п., устройство кодирования трехмерных данных переназначает информацию атрибутов относительно исходной трехмерной точки трехмерной точке, измененной по позиции. Следует отметить, что устройство кодирования трехмерных данных может выполнять переназначение посредством интерполяции значений информации атрибутов согласно величине изменения позиции. Например, устройство кодирования трехмерных данных обнаруживает N трехмерных точек, подлежащих изменению по позиции, близкой к трехмерной позиции трехмерной точки, измененной по позиции, принимает среднее взвешенное значений информации атрибутов относительно N трехмерных точек на основе расстояния между трехмерными позициями трехмерной точки, измененной по позиции, и каждой из N трехмерных точек, и определяет результирующее значение в качестве значения информации атрибутов относительно трехмерной точки, измененной по позиции. Если трехмерные позиции двух или более трехмерных точек изменяются на идентичную трехмерную позицию вследствие квантования и т.п., устройство кодирования трехмерных данных может назначать среднее значение информации атрибутов относительно двух или более трехмерных точек, подлежащих изменению по позиции, в качестве значения информации атрибутов относительно трехмерных точек, измененных по позиции.
[1130] Устройство кодирования трехмерных данных затем кодирует информацию атрибутов (S7103). Когда устройство кодирования трехмерных данных кодирует множество фрагментов информации атрибутов, например, устройство кодирования трехмерных данных может последовательно кодировать множество фрагментов информации атрибутов. Например, когда устройство кодирования трехмерных данных кодирует цвет и отражательную способность в качестве информации атрибутов, устройство кодирования трехмерных данных формирует поток битов, включающий в себя результат кодирования цвета, а далее результат кодирования отражательной способности. Следует отметить, что множество результатов кодирования информации атрибутов могут включаться в поток битов в любом порядке.
[1131] Устройство кодирования трехмерных данных может добавлять информацию, указывающую начальную точку кодированных данных каждой информации атрибутов в потоке битов, в заголовок и т.п. Таким образом, устройство декодирования трехмерных данных может избирательно декодировать информацию атрибутов, которая должна декодироваться, и в силу этого может опускать процесс декодирования для информации атрибутов, которая не должна декодироваться. Следовательно, объем обработки устройства декодирования трехмерных данных может уменьшаться. Устройство кодирования трехмерных данных может кодировать множество фрагментов информации атрибутов параллельно и интегрировать результаты кодирования в один поток битов. Таким образом, устройство кодирования трехмерных данных может кодировать множество фрагментов информации атрибутов на высокой скорости.
[1132] Фиг. 168 является блок-схемой последовательности операций способа для процесса кодирования информации атрибутов (S7103). Во-первых, устройство кодирования трехмерных данных задает LoD (S7111). Таким образом, устройство кодирования трехмерных данных назначает каждую трехмерную точку любому из множества LoD.
[1133] Устройство кодирования трехмерных данных затем начинает контур на основе LoD (S7112). Таким образом, устройство кодирования трехмерных данных многократно выполняет процесс от этапа S7113 до этапа S7121 для каждого LoD.
[1134] Устройство кодирования трехмерных данных затем начинает контур на основе трехмерной точки (S7113). Таким образом, устройство кодирования трехмерных данных многократно выполняет процесс от этапа S7114 до этапа S7120 для каждой трехмерной точки.
[1135] Сначала, устройство кодирования трехмерных данных выполняет поиск множества периферийных точек, которые представляют собой трехмерные точки, присутствующие в периферии целевой трехмерной точки, которые должны использоваться для вычисления прогнозированного значения целевой трехмерной точки, которая должна обрабатываться (S7114). Устройство декодирования трехмерных данных затем вычисляет среднее взвешенное значений информации атрибутов относительно множества периферийных точек и задает полученное значение в качестве прогнозированного значения P (S7115). Устройство кодирования трехмерных данных затем вычисляет остаток прогнозирования, который представляет собой разность между информацией атрибутов и прогнозированным значением целевой трехмерной точки (S7116). Устройство кодирования трехмерных данных затем вычисляет квантованное значение посредством квантования остатка прогнозирования (S7117). Устройство кодирования трехмерных данных затем арифметически кодирует квантованное значение (S7118).
[1136] Устройство кодирования трехмерных данных затем вычисляет обратно квантованное значение посредством обратного квантования квантованного значения (S7119). Устройство кодирования трехмерных данных затем формирует декодированное значение посредством суммирования прогнозированного значения с обратно квантованным значением (S7120). Устройство кодирования трехмерных данных затем завершает контур на основе трехмерной точки (S7121). Устройство кодирования трехмерных данных также завершает контур на основе LoD (S7122).
[1137] Фиг. 169 является блок-схемой последовательности операций способа для процесса задания LoD (S7111). Во-первых, устройство кодирования трехмерных данных вычисляет btDepth из числа N трехмерных точек (S7131). Например, устройство кодирования трехмерных данных вычисляет btDepth согласно (уравнению L1) или (уравнению L2), описанному выше. Следует отметить, что, когда число N трехмерных точек равно или меньше определенного значения, устройство кодирования трехмерных данных не должно выполнять формирование LoD с использованием двоичного дерева. Например, когда N равен или меньше 2, устройство кодирования трехмерных данных может назначать N трехмерных точек LoD0. Таким образом, скорость процесса формирования LoD может увеличиваться в случае, если N равен или меньше определенного значения.
[1138] Устройство кодирования трехмерных данных затем задает depth=0 (S7132). Устройство кодирования трехмерных данных затем задает num_node=1<<depth (S7133). Устройство кодирования трехмерных данных затем задает n=0 (S7134). Устройство кодирования трехмерных данных затем определяет n-ый узел A в depth-ом слое в качестве узла, который должен обрабатываться (S7135).
[1139] Устройство кодирования трехмерных данных затем определяет ось α разделения для трехмерных точек, включенных в узел A (S7136). Например, когда трехмерные точки имеют координаты на трех осях (x, y, z), устройство кодирования трехмерных данных вычисляет дисперсию трехмерных точек на каждой оси и определяет ось, дисперсия на которой является наибольшей, в качестве оси α разделения. Таким образом, трехмерные точки могут эффективно разделяться.
[1140] Устройство кодирования трехмерных данных затем вычисляет среднее значение для значений на оси α трехмерных точек, включенных в узел A (S7137). Устройство кодирования трехмерных данных затем извлекает трехмерную точку, имеющую значение на оси α, ближайшей к среднему значению для узла A, из трехмерных точек в узле A, и добавляет извлеченную трехмерную точку в LoD, соответствующий depth-ому слою (S7138).
[1141] Устройство кодирования трехмерных данных затем вычисляет срединное значение для значений на оси α трехмерных точек, включенных в узел A, разделяет трехмерные точки в узле A с использованием срединного значения и назначает разделенные трехмерные точки двум узлам в depth+1-ом слое (S7139). Устройство кодирования трехмерных данных затем задает n=n+1 (S7140).
[1142] Когда отношение n<num_node является применимым (если "Да" на S7141), устройство кодирования трехмерных данных выполняет этап S7135 и следующий процесс снова.
[1143] Когда отношение n<num_node не является применимым (если "Нет" на S7141), устройство кодирования трехмерных данных задает depth=depth+1 (S7142). Когда отношение depth==btDepth не является применимым (если "Нет" на S7143), устройство кодирования трехмерных данных выполняет этап S7133 и следующий процесс снова.
[1144] Когда отношение depth==btDepth является применимым (если "Да" на S7143), устройство кодирования трехмерных данных назначает любую трехмерную точку, которая не назначена LoD каждой глубины, LoD в самом нижнем слое (S7144).
[1145] Фиг. 170 является блок-схемой последовательности операций способа для процесса декодирования трехмерных данных согласно этому варианту осуществления. Во-первых, устройство декодирования трехмерных данных декодирует геометрическую информацию (геометрию) из потока битов (S7151). Например, устройство декодирования трехмерных данных выполняет декодирование с использованием представления в виде дерева октантов.
[1146] Устройство декодирования трехмерных данных затем декодирует информацию атрибутов из потока битов (S7152). Например, когда устройство декодирования трехмерных данных декодирует множество фрагментов информации атрибутов, устройство декодирования трехмерных данных может последовательно декодировать множество фрагментов информации атрибутов. Например, когда устройство декодирования трехмерных данных декодирует цвет и отражательную способность в качестве информации атрибутов, устройство декодирования трехмерных данных декодирует результат кодирования цвета и результат кодирования отражательной способности в этом порядке в потоке битов. Например, если после результата кодирования цвета приводится результат кодирования отражательной способности в потоке битов, устройство декодирования трехмерных данных сначала декодирует результат кодирования цвета и затем декодирует результат кодирования отражательной способности. Следует отметить, что устройство декодирования трехмерных данных может декодировать результат кодирования информации атрибутов в потоке битов в любом порядке.
[1147] Устройство декодирования трехмерных данных может получать информацию, указывающую начальную точку кодированных данных каждого фрагмента информации атрибутов в потоке битов, посредством декодирования заголовка и т.п. Таким образом, устройство декодирования трехмерных данных может избирательно декодировать информацию атрибутов, которая должна декодироваться, и в силу этого может опускать процесс декодирования для информации атрибутов, которая не должна декодироваться. Следовательно, объем обработки устройства декодирования трехмерных данных может уменьшаться. Устройство декодирования трехмерных данных может декодировать множество фрагментов информации атрибутов параллельно и интегрировать результаты декодирования в одно облако трехмерных точек. Таким образом, устройство декодирования трехмерных данных может декодировать множество фрагментов информации атрибутов на высокой скорости.
[1148] Фиг. 171 является блок-схемой последовательности операций способа для процесса декодирования информации атрибутов (S7152). Во-первых, устройство декодирования трехмерных данных задает LoD (S7161). Таким образом, устройство декодирования трехмерных данных назначает каждую из множества трехмерных точек, имеющих декодированную геометрическую информацию, любому из множества LoD. Например, способ назначения является идентичным способу назначения, используемому в устройстве кодирования трехмерных данных, показанному на фиг. 169.
[1149] Устройство декодирования трехмерных данных затем начинает контур на основе LoD (S7162). Таким образом, устройство кодирования трехмерных данных многократно выполняет процесс от этапа S7163 до этапа S7169 для каждого LoD.
[1150] Устройство декодирования трехмерных данных затем начинает контур на основе трехмерной точки (S7163). Таким образом, устройство декодирования трехмерных данных многократно выполняет процесс от этапа S7164 до этапа S7168 для каждой трехмерной точки.
[1151] Сначала, устройство кодирования трехмерных данных выполняет поиск множества периферийных точек, которые представляют собой трехмерные точки, присутствующие в периферии целевой трехмерной точки, которые должны использоваться для вычисления прогнозированного значения целевой трехмерной точки, которая должна обрабатываться (S7164). Устройство декодирования трехмерных данных затем вычисляет среднее взвешенное значений информации атрибутов относительно множества периферийных точек и задает полученное значение в качестве прогнозированного значения P (S7165). Следует отметить, что эти обработки являются идентичными обработкам в устройстве кодирования трехмерных данных.
[1152] Устройство декодирования трехмерных данных затем арифметически декодирует квантованное значение из потока битов (S7166). Устройство декодирования трехмерных данных затем вычисляет обратно квантованное значение посредством обратного квантования декодированного квантованного значения (S7167). Устройство декодирования трехмерных данных затем формирует декодированное значение посредством суммирования прогнозированного значения с обратно квантованным значением (S7168). Устройство декодирования трехмерных данных затем завершает контур на основе трехмерной точки (S7169). Устройство декодирования трехмерных данных также завершает контур на основе LoD (S7170).
[1153] Фиг. 172 является блок-схемой кодера 7100 информации атрибутов, включенного в устройство кодирования трехмерных данных. Кодер 7100 информации атрибутов включает в себя модуль 7101 задания LoD, модуль 7102 поиска, модуль 7103 прогнозирования, вычитатель 7104, квантователь 7105, обратный квантователь 7106, модуль 7107 восстановления и запоминающее устройство 7108.
[1154] Модуль 7101 задания LoD формирует LoD с использованием геометрической информации относительно трехмерной точки. Например, с использованием флага (флаг переключения) и т.п., модуль 7101 задания LoD может переключаться между способом формирования LoD с использованием информации расстояния относительно трехмерных точек и способом формирования LoD с использованием двоичного дерева, описанного в этом варианте осуществления. Здесь, способ формирования LoD с использованием информации расстояния относительно трехмерных точек представляет собой способ задания порогового значения расстояния для каждого слоя и формирования иерархической структуры таким образом, что расстояния между множеством трехмерных точек, включенных в каждый слой, равны или выше порогового значения для слоя. В частности, чем ниже слой, тем меньше пороговое значение. Следовательно, чем ниже слой, тем выше плотность размещаемых трехмерных точек.
[1155] Следует отметить, что устройство кодирования трехмерных данных может добавлять флаг переключения в заголовок. Таким образом, устройство декодирования трехмерных данных может переключать способ формирования LoD посредством декодирования флага переключения, добавляемого в заголовок, и в силу этого может надлежащим образом декодировать поток битов. Следует отметить, что устройство кодирования трехмерных данных не должно обязательно добавлять флаг переключения в заголовок, и то, какой способ должен использоваться, может предписываться посредством профиля, уровня и т.п. стандарта. Таким образом, объем кода заголовка может уменьшаться.
[1156] Модуль 7102 поиска выполняет поиск соседних трехмерных точек относительно каждой трехмерной точки посредством использования результата формирования LoD и информации расстояния между трехмерными точками. Модуль 7103 прогнозирования формирует прогнозированное значение информации атрибутов текущей трехмерной точки. Модуль 7103 прогнозирования также назначает прогнозированное значение множеству режимов 0-M-1 прогнозирования и выбирает режим прогнозирования, который должен использоваться, из множества режимов прогнозирования.
[1157] Вычитатель 7104 формирует остаток прогнозирования посредством вычитания прогнозированного значения из информации атрибутов. Квантователь 7105 квантует остаток прогнозирования информации атрибутов. Обратный квантователь 7106 обратно квантует квантованный остаток прогнозирования. Модуль 7107 восстановления формирует декодированное значение посредством суммирования прогнозированного значения и обратно квантованного остатка прогнозирования. Запоминающее устройство 7108 сохраняет значение (декодированное значение) информации атрибутов относительно каждой декодированной трехмерной точки. Декодированная информация атрибутов относительно трехмерных точек, сохраненная в запоминающем устройстве 7108, используется для прогнозирования трехмерной точки, которая по-прежнему должна кодироваться посредством модуля 7103 прогнозирования.
[1158] Арифметический кодер 7109 вычисляет ZeroCnt из квантованного остатка прогнозирования и арифметически кодирует ZeroCnt. Арифметический кодер 7109 также арифметически кодирует любой квантованный остаток прогнозирования, который не равен нулю. Арифметический кодер 7109 может преобразовывать в двоичную форму остаток прогнозирования перед арифметическим кодированием. Арифметический кодер 7069 может формировать и кодировать различные виды информации заголовка. Арифметический кодер 7109 может арифметически кодировать информацию (PredMode) режима прогнозирования, которая указывает режим прогнозирования, используемый для кодирования посредством модуля 7103 прогнозирования, и добавлять информацию в поток битов.
[1159] Фиг. 173 является блок-схемой декодера 7110 информации атрибутов, включенного в устройство декодирования трехмерных данных. Декодер 7110 информации атрибутов включает в себя арифметический декодер 7111, модуль 7112 задания LoD, модуль 7113 поиска, модуль 7114 прогнозирования, обратный квантователь 7115, модуль 7116 восстановления и запоминающее устройство 7117.
[1160] Арифметический декодер 7111 арифметически декодирует ZeroCnt и остаток прогнозирования, включенные в поток битов. Арифметический декодер 7111 также декодирует различные виды информации заголовка. Арифметический декодер 7111 также арифметически декодирует информацию (PredMode) режима прогнозирования из потока битов и выводит полученную информацию режима прогнозирования в модуль 7114 прогнозирования.
[1161] Модуль 7112 задания LoD формирует LoD с использованием декодированной геометрической информации относительно трехмерной точки. Например, модуль 7112 задания LoD может декодировать флаг (флаг переключения) и т.п., который указывает то, какой из способа формирования LoD с использованием информации расстояния относительно трехмерных точек и способа формирования LoD с использованием двоичного дерева, описанного в этом варианте осуществления, использован, чтобы формировать LoD в способе, указываемом посредством флага переключения. Следует отметить, что устройство декодирования трехмерных данных может использовать способ формирования LoD, предписанный посредством профиля, уровня и т.п. стандарта.
[1162] Модуль 7113 поиска выполняет поиск соседних трехмерных точек относительно каждой трехмерной точки посредством использования результата формирования LoD и информации расстояния между трехмерными точками. Модуль 7114 прогнозирования формирует прогнозированное значение информации атрибутов текущей трехмерной точки, которая должна декодироваться. Обратный квантователь 7115 обратно квантует арифметически декодированный остаток прогнозирования. Модуль 7116 восстановления формирует декодированное значение посредством суммирования прогнозированного значения и обратно квантованного остатка прогнозирования. Запоминающее устройство 7117 сохраняет значение (декодированное значение) информации атрибутов относительно каждой декодированной трехмерной точки. Декодированная информация атрибутов относительно трехмерных точек, сохраненная в запоминающем устройстве 7117, используется для прогнозирования трехмерной точки, которая по-прежнему должна декодироваться посредством модуля 7114 прогнозирования.
[1163] Выше описываются устройство кодирования трехмерных данных, устройство декодирования трехмерных данных и т.п. согласно вариантам осуществления настоящего раскрытия , но настоящее раскрытие не ограничено этими вариантами осуществления.
[1164] Следует отметить, что каждый из процессоров, включенных в устройство кодирования трехмерных данных, устройство декодирования трехмерных данных и т.п. согласно вышеуказанным вариантам осуществления, типично реализуется в качестве большой интегральной (LSI) схемы, которая представляет собой интегральную схему (IC). Они могут принимать форму отдельных микросхем или могут частично или полностью пакетироваться в одну микросхему.
[1165] Такая IC не ограничена LSI и в силу этого может реализовываться как специализированная схема или процессор общего назначения. Альтернативно, может использоваться программируемая пользователем вентильная матрица (FPGA), которая предоставляет возможность программирования после изготовления LSI, или переконфигурируемый процессор, который предоставляет возможность переконфигурирования соединения и настройки схемных элементов внутри LSI.
[1166] Кроме того, в вышеописанных вариантах осуществления, структурные компоненты могут реализовываться как специализированные аппаратные средства или могут быть реализованы посредством выполнения программно-реализованной программы, подходящей для таких структурных компонентов. Альтернативно, структурные компоненты могут реализовываться посредством модуля выполнения программ, такого как CPU или процессор, считывающий и выполняющий программно-реализованную программу, записанную на носителе записи, таком как жесткий диск или полупроводниковое запоминающее устройство.
[1167] Настоящее раскрытие также может реализовываться как способ кодирования трехмерных данных, способ декодирования трехмерных данных и т.п., осуществляемые посредством устройства кодирования трехмерных данных, устройства декодирования трехмерных данных и т.п.
[1168] Кроме того, разделения функциональных блоков, показанных на блок-схемах, представляют собой просто примеры, и в силу этого множество функциональных блоков могут реализовываться как один функциональный блок, или один функциональный блок может разделяться на множество функциональных блоков, или одна или более функций могут перемещаться в другой функциональный блок. Кроме того, функции множества функциональных блоков, имеющих аналогичные функции, могут обрабатываться только посредством аппаратных средств или программного обеспечения параллелизованным или разделенным во времени способом.
[1169] Кроме того, порядок обработки при выполнении этапов, показанный на блок-схемах последовательности операций способа, представляет собой просто иллюстрацию для конкретного описания настоящего раскрытия и в силу этого может представляет собой порядок, отличный от показанного порядка. Кроме того, один или более этапов могут выполняться одновременно (параллельно) с другим этапом.
[1170] Выше описываются устройство кодирования трехмерных данных, устройство декодирования трехмерных данных и т.п. согласно одному или более аспектов на основе вариантов осуществления, но настоящее раскрытие не ограничено этими вариантами осуществления. Один или более аспектов в силу этого могут включать в себя формы, достигаемые посредством внесения различных модификаций в вышеуказанные варианты осуществления, которые могут быть задуманы специалистами в данной области техники, а также формы, достигаемые посредством комбинирования структурных компонентов в различных вариантах осуществления, без существенного отступления от настоящего раскрытия .
Промышленная применимость
[1171] Настоящее раскрытие является применимым к устройству кодирования трехмерных данных и к устройству декодирования трехмерных данных.
Ссылки с номерами на чертежах
[1172] 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 - энтропийный декодер
3000 - устройство кодирования трехмерных данных
3001 - кодер геометрической информации
3002 - модуль переназначения информации атрибутов
3003 - кодер информации атрибутов
3010 - устройство декодирования трехмерных данных
3011 - декодер геометрической информации
3012 - декодер информации атрибутов
5300 - первый кодер
5301 - модуль разделения
5302 - кодер геометрической информации
5303 - кодер информации атрибутов
5304 - кодер дополнительной информации
5305 - мультиплексор
5311 - модуль разделения на плитки
5312 - модуль разделения на срезы
5321, 5331, 5351, 5361 - модуль вычисления значений квантования
5322, 5332 - энтропийный кодер
5323 - квантователь
5333 - обратный квантователь
5340 - первый декодер
5341 - демультиплексор
5342 - декодер геометрической информации
5343 - декодер информации атрибутов
5344 - декодер дополнительной информации
5345 - модуль комбинирования
5352, 5362 - энтропийный декодер
6600 - кодер информации атрибутов
6601 - сортировщик
6602 - преобразователь Хаара
6603 - квантователь
6604, 6612 - обратный квантователь
6605, 6613 - обратный преобразователь Хаара
6606, 6614 - запоминающее устройство
6607 - арифметический кодер
6610 - декодер информации атрибутов
6611 - арифметический декодер
7001 - вычитатель
7002 - преобразователь
7003 - модуль запоминания матриц преобразования
7004 - квантователь
7005 - контроллер квантования
7006 - энтропийный кодер
7011 - энтропийный декодер
7012 - обратный квантователь
7013 - контроллер квантования
7014 - обратный преобразователь
7015 - модуль запоминания матриц преобразования
7016 - сумматор
7020 - устройство кодирования трехмерных данных
7021 - модуль разделения
7022 - кодер геометрической информации
7023 - кодер информации атрибутов
7024 - кодер дополнительной информации
7025 - мультиплексор
7031 - модуль разделения на плитки
7032 - модуль разделения на срезы
7035 - преобразователь
7036 - квантователь
7037 - энтропийный кодер
7040 - устройство декодирования трехмерных данных
7041 - демультиплексор
7042 - декодер геометрической информации
7043 - декодер информации атрибутов
7044 - декодер дополнительной информации
7045 - модуль комбинирования
7051 - энтропийный декодер
7052 - обратный квантователь
7053 - обратный преобразователь
7061, 7072- модуль задания LoD
7062, 7073 - модуль поиска
7063, 7074 - модуль прогнозирования
7064 - вычитатель
7065, 7083 - квантователь
7066, 7075, 7084, 7092 - обратный квантователь
7067, 7076 - модуль восстановления
7068, 7077, 7086, 7094 - запоминающее устройство
7069, 7087 - арифметический кодер
7070, 7088 - модуль ΔQP-вычисления
7071, 7091 - арифметический декодер
7081 - сортировщик
7082 - преобразователь Хаара
7085, 7093 - обратный преобразователь Хаара
7100 - кодер информации атрибутов
7101, 7112 - модуль задания LoD
7102, 7113 - модуль поиска
7103, 7114 - модуль прогнозирования
7104 - вычитатель
7105 - квантователь
7106, 7115 - обратный квантователь
7107, 7116 - модуль восстановления
7108, 7117 - запоминающее устройство
7109 - арифметический кодер
7110 - декодер информации атрибутов
7111 - арифметический декодер.
Изобретение относится к способу кодирования трехмерных данных, к способу декодирования трехмерных данных, к устройству кодирования трехмерных данных и к устройству декодирования трехмерных данных. Техническим результатом является повышение эффективности кодирования трехмерных данных. Способ кодирования трехмерных данных включает в себя: вычисление значений коэффициентов из фрагментов информации атрибутов трехмерных точек, включенных в данные облаков точек; квантование значений коэффициентов отдельно, чтобы формировать квантованные значения; формирование потока битов, включающего в себя квантованные значения. Каждое из значений коэффициентов принадлежит одному из множества слоев. При квантовании каждое из значений коэффициентов квантуется с использованием параметра квантования для слоя, которому принадлежит значение коэффициента, из множества слоев, и поток битов включает в себя первую информацию и фрагменты второй информации, причем первая информация указывает опорный параметр квантования, фрагменты второй информации предназначены для вычисления параметра квантования для каждого слоя из опорного параметра квантования. 4 н. и 10 з.п. ф-лы, 173 ил.
1. Способ кодирования трехмерных данных, содержащий этапы, на которых:
- вычисляют значения коэффициентов из фрагментов информации атрибутов трехмерных точек, включенных в данные облаков точек;
- квантуют значения коэффициентов отдельно, чтобы формировать квантованные значения; и
- формируют поток битов, включающий в себя квантованные значения, при этом:
- каждое из значений коэффициентов принадлежит одному из множества слоев,
- при квантовании, каждое из значений коэффициентов квантуется с использованием соответствующего параметра квантования для слоя, которому принадлежит значение коэффициента, из множества слоев, и
- поток битов включает в себя первую информацию и фрагменты второй информации, причем первая информация указывает опорный параметр квантования, причем фрагменты второй информации предназначены для вычисления соответствующего параметра квантования для каждого слоя из множества слоев из опорного параметра квантования.
2. Способ кодирования трехмерных данных по п. 1, в котором:
- каждый из фрагментов второй информации указывает разность между опорным параметром квантования и параметром квантования для соответствующего одного из слоев из параметров квантования.
3. Способ кодирования трехмерных данных по п. 1 или 2, в котором:
- поток битов дополнительно включает в себя первый флаг, указывающий то, включаются или нет фрагменты второй информации в поток битов.
4. Способ кодирования трехмерных данных по п. 1 или 2, в котором:
- поток битов дополнительно включает в себя третью информацию, указывающую общее число фрагментов второй информации, включенных в поток битов.
5. Способ кодирования трехмерных данных по п. 1 или 2, в котором:
- каждая из трехмерных точек классифицируется на любой из слоев в соответствии с геометрической информацией трехмерной точки.
6. Способ кодирования трехмерных данных по п. 1 или 2, в котором:
- значения коэффициентов формируются посредством сортировки каждого из фрагментов информации атрибутов на один из компонента верхних частот и компонента нижних частот, которые должны классифицироваться на слои.
7. Способ декодирования трехмерных данных, содержащий этапы, на которых:
- вычисляют параметры квантования для множества слоев, с использованием (i) первой информации, указывающей опорный параметр квантования, и (ii) фрагментов второй информации для вычисления соответствующего параметра квантования для каждого слоя из множества слоев из опорного параметра квантования, причем первая информация и фрагменты второй информации включаются в поток битов;
- обратно квантуют каждое из квантованных значений, включенных в поток битов, с использованием соответствующего параметра квантования для слоя, которому принадлежит квантованное значение, из параметров квантования, вычисленных при вычислении, чтобы формировать значения коэффициентов; и
- вычисляют, из значений коэффициентов, сформированных при обратном квантовании, фрагменты информации атрибутов трехмерных точек, включенных в данные облаков точек.
8. Способ декодирования трехмерных данных по п. 7, в котором:
- каждый из фрагментов второй информации указывает разность между опорным параметром квантования и параметром квантования для соответствующего одного из слоев из параметров квантования.
9. Способ декодирования трехмерных данных по п. 7 или 8, в котором:
- поток битов дополнительно включает в себя первый флаг, указывающий то, включаются или нет фрагменты второй информации в поток битов.
10. Способ декодирования трехмерных данных по п. 7 или 8, в котором:
- поток битов дополнительно включает в себя третью информацию, указывающую общее число фрагментов второй информации, включенных в поток битов.
11. Способ декодирования трехмерных данных по п. 7 или 8, в котором:
- каждая из трехмерных точек классифицируется на любой из слоев в соответствии с геометрической информацией трехмерной точки.
12. Способ декодирования трехмерных данных по п. 7 или 8, в котором:
- значения коэффициентов формируются посредством сортировки каждого из фрагментов информации атрибутов на один из компонента верхних частот и компонента нижних частот, которые должны классифицироваться на слои.
13. Устройство кодирования трехмерных данных, содержащее:
- процессор; и
- запоминающее устройство;
- при этом, с использованием запоминающего устройства, процессор:
- вычисляет значения коэффициентов из фрагментов информации атрибутов трехмерных точек, включенных в данные облаков точек;
- квантует значения коэффициентов отдельно, чтобы формировать квантованные значения; и
- формирует поток битов, включающий в себя квантованные значения, при этом:
- каждое из значений коэффициентов принадлежит одному из множества слоев,
- при квантовании, каждое из значений коэффициентов квантуется с использованием соответствующего параметра квантования для слоя, которому принадлежит значение коэффициента, из множества слоев, и
- поток битов включает в себя первую информацию и фрагменты второй информации, причем первая информация указывает опорный параметр квантования, причем фрагменты второй информации предназначены для вычисления соответствующего параметра квантования для каждого слоя из множества слоев из опорного параметра квантования, причем каждый из параметров квантования представляет собой параметр квантования.
14. Устройство декодирования трехмерных данных, содержащее:
- процессор; и
- запоминающее устройство;
- при этом, с использованием запоминающего устройства, процессор:
- вычисляет параметры квантования для множества слоев, с использованием (i) первой информации, указывающей опорный параметр квантования, и (ii) фрагментов второй информации для вычисления соответствующего параметра квантования для каждого слоя из множества слоев из опорного параметра квантования, причем первая информация и фрагменты второй информации включаются в поток битов;
- обратно квантует каждое из квантованных значений, включенных в поток битов, с использованием соответствующего параметра квантования для слоя, которому принадлежит квантованное значение, из параметров квантования, вычисленных при вычислении, чтобы формировать значения коэффициентов; и
- вычисляет, из значений коэффициентов, сформированных при обратном квантовании, фрагменты информации атрибутов трехмерных точек, включенных в данные облаков точек.
Автомобиль-сани, движущиеся на полозьях посредством устанавливающихся по высоте колес с шинами | 1924 |
|
SU2017A1 |
Устройство для закрепления лыж на раме мотоциклов и велосипедов взамен переднего колеса | 1924 |
|
SU2015A1 |
Способ получения цианистых соединений | 1924 |
|
SU2018A1 |
УСТРОЙСТВО КОДИРОВАНИЯ ИЗОБРАЖЕНИЙ, УСТРОЙСТВО ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЙ, СПОСОБ КОДИРОВАНИЯ ИЗОБРАЖЕНИЙ И СПОСОБ ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЙ | 2018 |
|
RU2673107C1 |
Способ и устройство кодирования изображений | 2014 |
|
RU2662922C2 |
Авторы
Даты
2023-11-07—Публикация
2020-02-05—Подача