RU2769460C1 - Способ и устройство для кодирования коэффициентов трансформации с алфавитным разделением для сжатия облака точек - Google Patents
Способ и устройство для кодирования коэффициентов трансформации с алфавитным разделением для сжатия облака точек Download PDFInfo
- Publication number
- RU2769460C1 RU2769460C1 RU2021131110A RU2021131110A RU2769460C1 RU 2769460 C1 RU2769460 C1 RU 2769460C1 RU 2021131110 A RU2021131110 A RU 2021131110A RU 2021131110 A RU2021131110 A RU 2021131110A RU 2769460 C1 RU2769460 C1 RU 2769460C1
- Authority
- RU
- Russia
- Prior art keywords
- index values
- transform coefficients
- point cloud
- encoded
- values
- Prior art date
Links
- 230000006835 compression Effects 0.000 title claims abstract description 13
- 238000007906 compression Methods 0.000 title claims abstract description 13
- 238000000034 method Methods 0.000 title claims description 44
- 238000000926 separation method Methods 0.000 title claims description 10
- 230000009466 transformation Effects 0.000 title description 9
- 238000013139 quantization Methods 0.000 claims description 11
- 230000015654 memory Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 6
- 238000000354 decomposition reaction Methods 0.000 claims description 5
- 238000005192 partition Methods 0.000 claims description 5
- 238000000638 solvent extraction Methods 0.000 claims description 3
- 238000009877 rendering Methods 0.000 abstract description 2
- 239000000126 substance Substances 0.000 abstract 1
- 238000004422 calculation algorithm Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 9
- 230000006854 communication Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 7
- 230000003044 adaptive effect Effects 0.000 description 6
- 230000002093 peripheral effect Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000001174 ascending effect Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000004873 anchoring Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000002310 reflectometry Methods 0.000 description 1
- 239000000779 smoke Substances 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/001—Model-based coding, e.g. wire frame
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/2163—Partitioning the feature space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4084—Scaling of whole images or parts thereof, e.g. expanding or contracting in the transform domain, e.g. fast Fourier transform [FFT] domain scaling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/005—Statistical coding, e.g. Huffman, run length coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/007—Transform coding, e.g. discrete cosine transform
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/40—Tree coding, e.g. quadtree, octree
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/02—Conversion to or from weighted codes, i.e. the weight given to a digit depending on the position of the digit within the block or code word
- H03M7/10—Conversion to or from weighted codes, i.e. the weight given to a digit depending on the position of the digit within the block or code word the radix thereof being negative
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/18—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/184—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/56—Particle system, point based geometry or rendering
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Data Mining & Analysis (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Discrete Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Image Processing (AREA)
Abstract
Изобретение относится к области кодирования данных. Технический результат заключается в обеспечении возможности сжатия облаков точек без потерь в контексте динамического отображения. Коэффициенты преобразования, связанные с данными облака точек, разлагают на значения индексов наборов и значения индексов символов, где значение индекса символа определяет местоположение коэффициента преобразования в наборе. Разложенные коэффициенты преобразования разделяют на один или более наборов на основе значений индексов наборов и значений индексов символов. Значения индексов наборов разделенных коэффициентов преобразования кодируют энтропийным кодированием, а значения индексов символов разделенных коэффициентов преобразования кодируют обходным кодированием. Данные облака точек сжимают на основе энтропийно-кодированных значений индексов наборов и кодированных обходным кодированием значений индексов символов. 3 н. и 17 з.п. ф-лы, 9 ил., 2 табл.
Description
ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННУЮ ЗАЯВКУ
[0001] Для настоящей заявки испрашивается приоритет в соответствии с предварительными заявками на патент США №№62/958 839 и 62/958 846, поданными 9 января 2020 г., и заявкой на патент США №17/110 691, поданной 3 декабря 2020 г. в Бюро патентов и товарных знаков США, которые полностью включены в настоящий документ посредством ссылки.
УРОВЕНЬ ТЕХНИКИ
1. Область техники
[0002] Способы и устройства, согласующиеся с вариантами осуществления, относятся к сжатию облака точек на основе графа (graph-based point cloud compression, G-PCC) и, в частности, к способу и устройству для кодирования коэффициентов облака точек.
2. Описание предшествующего уровня техники
[0003] Усовершенствованные трехмерные (3D) представления мира обеспечивают более иммерсивные формы взаимодействия и коммуникации, а также позволяют машинам понимать, интерпретировать и ориентироваться в нашем мире. Трехмерные облака точек появились как возможность представления такой информации. Определен ряд вариантов использования, связанных с данными облака точек, и разработаны соответствующие требования для представления и сжатия облака точек. Например, облака точек можно использовать при автономном вождении для обнаружения и локализации объектов. Облака точек также могут использоваться в географических информационных системах (geographic information systems, GIS, ГИС) для картографии и в культурном наследии для визуализации и архивирования объектов и коллекций культурного наследия.
[0004] Облако точек - это набор точек в трехмерном пространстве, каждая из которых имеет связанные с ней атрибуты, например цвет, свойства материала и т.д. Облака точек могут использоваться для восстановления объекта или сцены как композиции таких точек. Они могут быть захвачены с помощью более камер, датчиков глубины или датчиков-лидаров в различных окружениях и могут состоять из тысяч и миллиардов точек для реалистичного представления реконструированных сцен.
[0005] Технологии сжатия необходимы для уменьшения объема данных для представления облака точек. Таким образом, необходимы технологии для сжатия облаков точек с потерями для использования в коммуникациях в реальном времени и в виртуальной реальности с шестью степенями свободы (6DoF, 6 degrees of freedom). Кроме того, требуется технология сжатия облаков точек без потерь в контексте динамического отображения для автономного вождения и приложений культурного наследия и т.д. Группа экспертов по движущимся изображениям (Moving Picture Experts Group, MPEG) начала работу над стандартом для сжатия геометрии и атрибутов, таких как цвета и коэффициент отражения, масштабируемое/прогрессивное кодирование, кодирование последовательностей облаков точек, захваченных в течение времени, и произвольный доступ к подмножествам облака точек.
[0006] Фиг. 1А - схема, иллюстрирующая способ генерации уровней детализации (levels of detail, LoD) в G-PCC.
[0007] Обращаясь к фиг. 1А, в текущем кодировании атрибутов G-PCC, LoD (т.е. группа) каждой трехмерной точки (например, Р0-Р9) генерируется на основе расстояния до каждой трехмерной точки, а затем значения атрибутов трехмерных точек в каждом LoD кодируют путем применения предсказания в порядке 110 на основе LoD вместо исходного порядка 105 трехмерных точек. Например, значение атрибутов трехмерной точки Р2 предсказывается путем вычисления среднего значения, взвешенного на основе расстояния, для трехмерных точек Р0, Р5 и Р4, которые были кодированы или декодированы до трехмерной точки Р2.
[0008] Текущий способ привязки в G-PCC работает следующим образом.
[0009] Сначала вычисляется изменчивость окрестности трехмерной точки, чтобы проверить, насколько разными являются значения соседей, и если изменчивость ниже порогового значения, вычисление предсказания взвешенного на основе расстояния среднего выполняется путем предсказания значений атрибутов (a i)i∈0…k-1, с использованием процесса линейной интерполяции на основе расстояний до ближайших соседей текущей точки i. Пусть будет набором k-ближайших соседей текущей точки i, пусть будет их декодированными/реконструированными значениями атрибутов и пусть будет их расстоянием до текущей точки i. Предсказываемое значение атрибута затем определяется следующим образом:
[0011] Обратим внимание, что геометрические положения всех облаков точек уже доступны при кодировании атрибутов. Кроме того, соседние точки вместе с их реконструированными значениями атрибутов доступны как в кодере, так и в декодере в виде k-мерной древовидной структуры, которая используется для облегчения поиска ближайшего соседа для каждой точки идентичным образом.
[0012] Во-вторых, если изменчивость выше порогового значения, выполняется выбор предиктора (предсказателя), оптимизированного по критерию скорость-искажение (rate-distortion optimized, RDO). Множественные кандидаты-предикторы или предсказываемые значения кандидатов создаются на основе результата поиска соседней точки при генерировании LoD. Например, когда значение атрибутов трехмерной точки Р2 кодируется с использованием предсказания, средневзвешенное значение расстояний от трехмерной точки Р2 до трехмерных точек Р0, Р5 и Р4, соответственно, устанавливается равным индексу предиктора, равному 0. Затем расстояние от трехмерной точки Р2 до ближайшей соседней точки Р4 устанавливается равным индексу предиктора, равному 1. Кроме того, расстояния от трехмерной точки Р2 до следующих ближайших соседних точек Р5 и Р0, соответственно, устанавливаются на индексы предиктора, равные 2 и 3, как показано в Таблице 1 ниже.
[0013] После создания кандидатов-предикторов лучший предиктор выбирается путем применения процедуры оптимизации "скорость-искажение", а затем выбранный индекс предиктора отображается в усеченный унарный (truncated unary, TU) код, бины которого будут арифметически кодированы. Обратим внимание, что более короткий код TU будет назначен меньшему индексу предиктора в таблице 1.
[0014] Максимальное количество кандидатов-предикторов MaxNumCand определено и кодировано в заголовке атрибутов. В текущей реализации максимальное количество кандидатов-предикторов MaxNumCand установлено равным numberOfNearestNeighborsInPrediction + 1 и используется при кодировании и декодировании индексов предиктора с усеченной унарной бинаризацией.
[0015] Преобразование лифтинга для кодирования атрибутов в G-PCC строится на основе преобразования предсказания, описанного выше. Основное различие между схемой предсказания и схемой лифтинга заключается во введении оператора обновления.
[0016] Фиг. 1В - схема архитектуры для P/U (предсказания/обновления)-лифтинга в G-PCC. Чтобы облегчить этапы предсказания и обновления при лифтинге, нужно разделить сигнал на два набора с высокой корреляцией на каждом этапе разделения. В схеме лифтинга в G-PCC разделение выполняется путем использования структуры LoD, в которой ожидается такая высокая корреляция между уровнями, и каждый уровень создается путем поиска ближайшего соседа для организации неоднородных облаков точек в структурированные данные. Этап разложения P/U на уровне N приводит к сигналу детализации D (N-1) и сигналу аппроксимации A (N-1), который далее разлагается на D (N-2) и A (N-2). Этот шаг повторяется до тех пор, пока не будет получен сигнал аппроксимации базового уровня А (1).
[0017] Следовательно, вместо кодирования самого входного сигнала атрибута, который состоит из LOD (N), …, LOD (1), в конечном итоге в схеме лифтинга кодируется D (N-1), D (N-2), …, D (1), А (1). Отметим, что применение эффективных шагов P/U часто приводит к разреженным «коэффициентам» поддиапазонов в D (N-1), D (1), тем самым обеспечивая преимущество выигрыша кодирования с преобразованием.
[0018] В настоящее время предсказание взвешенного на основе расстояния среднего, описанное выше для преобразования предсказания, используется для этапа предсказания в лифтинге в качестве способа привязки в G-PCC.
[0019] При предсказании и лифтинге для кодирования атрибутов в G-PCC доступность соседних отсчетов атрибутов важна для эффективности сжатия, поскольку большее количество соседних отсчетов атрибутов может обеспечить лучшее предсказание. В случае, когда недостаточно соседей для предсказания, эффективность сжатия может быть снижена.
[0020] Другим типом преобразования для кодирования атрибутов в G-PCC может быть региональное адаптивное иерархическое преобразование (Region Adaptive Hierarchical Transform, RAHT). RAHT и обратное ему преобразование могут быть выполнены в отношении иерархии, определенной кодами Мортона местоположений вокселей. Код Мортона d-битовых неотрицательных целочисленных координат х, у и z может быть трехмерным неотрицательным целым числом, которое может быть получено перемежением битов х, у и z. Код Мортона М=morton (х, у, z) неотрицательных d-битовых целочисленных координат
где могут быть битами х, у и z от =1 (старший порядок) до =d (младший порядок), является неотрицательным 3d-битовым целым числом.
[0021] может обозначать -битовый префикс М. m может быть таким префиксом. Блок на уровне может быть определен с префиксом m как набор всех точек (х, у, z), для которых Два блока на уровне могут быть блоками потомков, если у них одинаковый -битовый префикс. Объединение двух блоков потомков на уровне может быть блоком на уровне называемым их родительским блоком.
[0022] Региональное адаптивное преобразование Хаара для последовательности An, n=1, …, N, и обратное преобразование Хаара может включать в себя базовый случай и рекурсивную функцию. В базовом случае An может быть атрибутом точки, а Tn может быть ее преобразованием, где Tn=А. Для рекурсивной функции может быть два блока потомков и их родительский блок. и могут быть атрибутами точек (xn, yn, zn) в блоках потомков, перечисленных в возрастающем порядке Мортона, и и могут быть их соответствующими преобразованиями. Аналогично, могут быть атрибутами всех точек (xn, yn, zn) в их родительском блоке, перечисленных в возрастающем порядке Мортона, а может быть его преобразованием.
Далее
и
где
[0023] Преобразование родительского блока может быть конкатенацией двух блоков потомков, за исключением того, что первые компоненты преобразований (DC) двух блоков потомков могут быть заменены их взвешенной суммой и разностью, и наоборот, преобразования из двух блоков потомков могут быть скопированы из первой и последней частей преобразования родительского блока, за исключением того, что компоненты DC преобразований двух блоков потомков могут быть заменены их взвешенной разностью и суммой
и
[0024] Чтобы эффективно кодировать преобразованные коэффициенты атрибутов, может использоваться адаптивная поисковая таблица (adaptive look up table, A-LUT), которая может отслеживать N (например, 32) наиболее часто встречающихся символов коэффициентов, и кэш, который может отслеживать последние разные наблюдаемые М (например, 16) символов коэффициентов. A-LUT может быть инициализирован с помощью N символов, предоставленных пользователем, или вычислен в автономном режиме на основе статистики аналогичного класса облаков точек. Кэш может быть инициализирован с помощью М символов, предоставленных пользователем, или вычислен в автономном режиме на основе статистики аналогичного класса облаков точек. Когда кодируется символ S, может быть кодирована двоичная информация, указывающая, может ли S быть кодирован в A-LUT. Если S находится в A-LUT, индекс S в A-LUT может быть кодирован с использованием двоичного арифметического кодера. Количество появлений символа S в A-LUT может быть увеличено на единицу. Если S не в A-LUT, может быть кодирована двоичная информация, указывающая, находится ли S в кэше или нет. Если S находится в кэше, то двоичное представление его индекса может быть кодировано с использованием двоичного арифметического кодера. Если S отсутствует в кэше, то двоичное представление S может быть кодировано с использованием двоичного арифметического кодера. Символ S может быть добавлен в кэш, а самый старый символ в кэше удаляется.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0025] Согласно вариантам осуществления, способ кодирования коэффициентов облака точек выполняется по меньшей мере одним процессором и включает в себя разложение коэффициентов преобразования, связанных с данными облака точек, на значения индексов наборов и значения индексов символов, причем значение индекса символа указывает местоположение коэффициента преобразования в наборе. Разложенные коэффициенты преобразования могут быть разделены на один или более наборов на основе значений индексов наборов и значений индексов символов. Значения индексов наборов разделенных коэффициентов преобразования могут быть кодированы энтропийным кодированием, а значения индексов символов разделенных коэффициентов преобразования могут быть кодированы обходным (bypass) кодированием. Данные облака точек могут быть сжаты на основе энтропийно-кодированных значений индексов наборов и кодированных обходным кодированием значений индексов символов.
[0026] Согласно вариантам осуществления, устройство для кодирования коэффициентов облака точек включает в себя по меньшей мере одну память, выполненную с возможностью хранить код компьютерной программы, и по меньшей мере один процессор, выполненный с возможностью осуществлять доступ по меньшей мере к одной памяти и работать в соответствии с кодом компьютерной программы. Код компьютерной программы включает в себя код, сконфигурированный для того, чтобы заставлять по меньшей мере один процессор выполнять способ, который может включать в себя разложение коэффициентов преобразования, связанных с данными облака точек, на значения индексов наборов и значения индексов символов, причем значение индекса символа указывает местоположение коэффициента преобразования в наборе. Разложенные коэффициенты преобразования могут быть разделены на один или более наборов на основе значений индексов наборов и значений индексов символов. Значения индексов наборов разделенных коэффициентов преобразования могут быть кодированы энтропийным кодированием, а значения индексов символов разделенных коэффициентов преобразования могут быть кодированы обходным кодированием. Данные облака точек могут быть сжаты на основе энтропийно-кодированных значений индексов наборов и кодированных обходным кодированием значений индексов символов.
[0027] Согласно вариантам осуществления, машиночитаемый носитель данных хранит команды, которые заставляют по меньшей мере один процессор разлагать коэффициенты преобразования, связанные с данными облака точек, на значения индексов наборов и значения индексов символов, при этом значение индекса символа определяет расположение коэффициента преобразования в наборе. Разложенные коэффициенты преобразования могут быть разделены на один или более наборов на основе значений индексов наборов и значений индексов символов. Значения индексов наборов разделенных коэффициентов преобразования могут быть кодированы энтропийным кодированием, а значения индексов символов разделенных коэффициентов преобразования могут быть кодированы обходным кодированием. Данные облака точек могут быть сжаты на основе энтропийно-кодированных значений индексов наборов и кодированных обходным кодированием значений индексов символов.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0028] Фиг. 1А - схема, иллюстрирующая способ создания LoD в G-PCC.
[0029] Фиг. 1В - схема архитектуры для P/U-лифтинга в G-PCC.
[0030] Фиг. 2 структурная схема системы связи согласно вариантам осуществления.
[0031] Фиг. 3 - схема размещения компрессора G-PCC и декомпрессора G-PCC в окружающей среде согласно вариантам осуществления.
[0032] Фиг. 4 - функциональная схема компрессора G-PCC согласно вариантам осуществления.
[0033] Фиг. 5 - функциональная схема декомпрессора G-PCC согласно вариантам осуществления.
[0034] Фиг. 6 - блок-схема, иллюстрирующая способ кодирования коэффициентов облака точек согласно вариантам осуществления.
[0035] Фиг. 7 блок-схема устройства для кодирования коэффициентов облака точек согласно вариантам осуществления.
[0036] Фиг. 8 - схема компьютерной системы, подходящей для реализации вариантов осуществления.
ПОДРОБНОЕ ОПИСАНИЕ
[0037] Описанные здесь варианты осуществления предлагают способ и устройство для кодирования коэффициентов облака точек. Более подробно, кодирование коэффициентов преобразования из лифтинга, предсказания-преобразования и RAHT может выполняться с помощью кодирования индекса таблицы поиска с сортировкой по частоте, кодирования индекса кэша и прямого кодирования значения символа. На практике может потребоваться несколько таблиц поиска и кэшей с множеством (обычно от 32 до, возможно, 256) записей для охвата однобайтовых кодовых слов. Эти справочные таблицы и кэши могут дополнительно нуждаться в регулярных обновлениях, частота которых может предполагать различные компромиссы с точки зрения вычислительных требований и эффективности кодирования. Следовательно, может быть выгодно улучшить кодирование коэффициентов преобразования для атрибутов в G-PCC с точки зрения компромиссов сложности/памяти и эффективности сжатия посредством алфавитного разделения и кодирования информации алфавитного разделения.
[0038] Фиг. 2 является структурной схемой системы 200 связи согласно вариантам осуществления. Система 200 связи может включать в себя по меньшей мере два терминала 210 и 220, соединенных между собой через сеть 250. Для однонаправленной передачи данных первый терминал 210 может кодировать данные облака точек в локальном местоположении для передачи на второй терминал 220 через сеть 250. Второй терминал 220 может принимать кодированные данные облака точек первого терминала 210 из сети 250, декодировать данные кодированного облака точек и отображать декодированные данные облака точек. Однонаправленная передача данных может быть обычным явлением в приложениях обслуживания мультимедиа и т.п.
[0039] Фиг. 2 дополнительно иллюстрирует вторую пару терминалов 230 и 240, предусмотренных для поддержки двунаправленной передачи данных кодированного облака точек, которая может происходить, например, во время видеоконференцсвязи. Для двунаправленной передачи данных каждый терминал 230 или 240 может кодировать данные облака точек, захваченные в локальном местоположении, для передачи на другой терминал через сеть 250. Каждый терминал 230 или 240 также может принимать кодированные данные облака точек, переданные другим терминалом, может декодировать данные кодированного облака точек и может отображать декодированные данные облака точек на локальном устройстве отображения.
[0040] На фиг. 2 терминалы 210-240 могут быть проиллюстрированы как серверы, персональные компьютеры и смартфоны, но принципы вариантов осуществления этим не ограничиваются. Варианты осуществления находят применение в портативных компьютерах, планшетных компьютерах, медиаплеерах и/или специализированном оборудовании для видеоконференцсвязи. Сеть 250 представляет любое количество сетей, которые передают кодированные данные облака точек между терминалами 210-240, включая, например, сети проводной и/или беспроводной связи. Сеть 250 связи может обмениваться данными по каналам с коммутацией каналов и/или с коммутацией пакетов. Репрезентативные сети включают в себя телекоммуникационные сети, локальные сети, глобальные сети и/или Интернет. Для целей настоящего обсуждения архитектура и топология сети 250 могут быть несущественными для работы вариантов осуществления, если это не объясняется в данном документе ниже.
[0041] Фиг. 3 является схемой размещения компрессора 303 G-PCC и декомпрессора 310 G-PCC в окружающей среде согласно вариантам осуществления. Раскрытый предмет изобретения может быть в равной степени применим к другим приложениям с поддержкой облака точек, включая, например, видеоконференцсвязь, цифровое телевидение, хранение сжатых данных облака точек на цифровых носителях, в том числе CD, DVD, карту памяти и т.п., и так далее.
[0042] Система 300 потоковой передачи может включать в себя подсистему 313 захвата, которая может включать в себя источник 301 облака точек, например цифровую камеру, создающую, например, несжатые данные 302 облака точек. Данные 302 облака точек, имеющие больший объем данных, могут обрабатываться компрессором 303 G-РСС, связанным с источником 301 облака точек. Компрессор 303 G-PCC может включать в себя аппаратное обеспечение, программное обеспечение или их комбинацию, чтобы активировать или реализовать аспекты раскрытого предмета, как более подробно описано ниже. Кодированные данные 304 облака точек, имеющие меньший объем данных, могут быть сохранены на сервере 305 потоковой передачи для будущего использования. Один или более клиентов 306 и 308 потоковой передачи могут получить доступ к серверу 305 потоковой передачи для извлечения копий 307 и 309 кодированных данных 304 облака точек. Клиент 306 может включать в себя декомпрессор 310 G-PCC, который декодирует входящую копию 307 кодированных данных облака точек и создает исходящие данные 311 облака точек, которые могут отображаться на дисплее 312 или других устройствах визуализации (не показаны). В некоторых потоковых системах кодированные данные 304, 307 и 309 облака точек могут быть кодированы в соответствии со стандартами кодирования/сжатия видео. Примеры этих стандартов включают стандарты, разработанные MPEG для G-PCC.
[0043] Фиг. 4 представляет собой функциональную схему компрессора 303 G-РСС согласно вариантам осуществления.
[0044] Как показано на фиг. 4, компрессор 303 G-PCC включает в себя квантователь 405, модуль 410 удаления точек, кодер 415 октодерева, модуль 420 передачи атрибутов, генератор 425 LoD (уровней детализации), модуль 430 предсказания, квантователь 435 и арифметический кодер 440.
[0045] Квантователь 405 принимает позиции точек во входном облаке точек. Позиции могут быть (х, у, z) - координатами. Квантователь 405 дополнительно квантует принятые позиции, используя, например, алгоритм масштабирования и/или алгоритм сдвига.
[0046] Модуль 410 удаления точек принимает квантованные позиции от квантователя 405 и удаляет или фильтрует повторяющиеся позиции из принятых квантованных позиций.
[0047] Кодер 415 октодерева принимает отфильтрованные позиции от модуля 410 удаления точек и кодирует принятые отфильтрованные позиции в символы занятости октодерева, представляющего входное облако точек, с использованием алгоритма кодирования октодерева. Ограничивающий бокс входного облака точек, соответствующего октодереву, может быть любой трехмерной формой, например кубом.
[0048] Кодер 415 октодерева дополнительно переупорядочивает принятые отфильтрованные позиции на основе кодирования отфильтрованных позиций.
[0049] Модуль 420 передачи атрибутов принимает атрибуты точек во входном облаке точек. Атрибуты могут включать в себя, например, цвет или значение RGB и/или отражательную способность каждой точки. Модуль 420 передачи атрибутов дополнительно принимает переупорядоченные позиции от кодера 415 октодерева.
[0050] Модуль 420 передачи атрибутов дополнительно обновляет принятые атрибуты на основе принятых переупорядоченных позиций. Например, модуль 420 передачи атрибутов может выполнять один или более из алгоритмов предварительной обработки принятых атрибутов, причем алгоритмы предварительной обработки включают в себя, например, взвешивание и усреднение полученных атрибутов и интерполяцию дополнительных атрибутов из принятых атрибутов. Модуль 420 передачи атрибутов далее передает обновленные атрибуты в модуль 430 предсказания.
[0051] Генератор 425 LoD принимает переупорядоченные позиции от кодера 415 октодерева и получает LoD каждой из точек, соответствующих принятым переупорядоченным позициям. Каждый LoD может рассматриваться как группа точек и может быть получен на основе расстояния до каждой из точек. Например, как показано на фиг. 1А, точки Р0, Р5, Р4 и Р2 могут находиться в LoD как LOD0, точки Р0, Р5, Р4, Р2, P1, Р6 и Р3 могут находиться в LoD как LOD1, а точки Р0, Р5, Р4, Р2, P1, Р6, Р3, Р9, Р8 и Р7 могут быть в LoD как LOD2.
[0052] Модуль 430 предсказания принимает переданные атрибуты от модуля 420 передачи атрибутов и принимает полученный LoD каждой из точек от генератора 425 LoD. Модуль 430 предсказания получает остатки (значения) предсказания соответственно принятых атрибутов посредством применения алгоритма предсказания к полученным атрибутам в порядке, основанном на полученном LoD каждой из точек. Алгоритм предсказания может включать в себя любой из различных алгоритмов предсказания, таких как, например, интерполяция, вычисление средневзвешенного значения, алгоритм ближайшего соседа и RDO.
[0053] Например, как показано на фиг. 1А, остатки предсказания соответственно принятых атрибутов точек Р0, Р5, Р4 и Р2, включенных в LoD как LOD0, могут быть получены раньше, чем остатки полученных атрибутов точек P1, Р6, Р3, Р9, Р8 и Р7, включенных соответственно в LoD как LOD1 и LOD2. Остатки предсказания принятых атрибутов точки Р2 могут быть получены путем вычисления расстояния на основе средневзвешенного значения точек Р0, Р5 и Р4.
[0054] Квантователь 435 принимает полученные остатки предсказания от модуля 430 предсказания и квантует полученные остатки предсказания, используя, например, алгоритм масштабирования и/или алгоритм сдвига.
[0055] Арифметический кодер 440 принимает символы занятости от кодера 415 октодерева и принимает квантованные остатки предсказания от квантователя 435. Арифметический кодер 440 выполняет арифметическое кодирование принятых символов занятости и квантованных остатков предсказаний для получения сжатого потока битов. Арифметическое кодирование может включать в себя любой из различных алгоритмов энтропийного кодирования, таких как, например, контекстно-адаптивное двоичное арифметическое кодирование.
[0056] Фиг. 5 является функциональной схемой декомпрессора 310 G-PCC согласно вариантам осуществления.
[0057] Как показано на фиг. 5, декомпрессор 310 G-PCC включает в себя арифметический декодер 505, декодер 510 октодерева, обратный квантователь 515, генератор 520 LoD, обратный квантователь 525 и модуль 530 обратного предсказания.
[0058] Арифметический декодер 505 принимает сжатый поток битов от компрессора 303 G-PCC и выполняет арифметическое декодирование принятого сжатого потока битов, чтобы получить символы занятости и квантованные остатки предсказания. Арифметическое декодирование может включать в себя любой из различных алгоритмов энтропийного декодирования, таких как, например, контекстно-адаптивное двоичное арифметическое декодирование.
[0059] Декодер 510 октодерева принимает полученные символы занятости от арифметического декодера 505 и декодирует принятые символы занятости в квантованные позиции, используя алгоритм декодирования октодерева.
[0060] Обратный квантователь 515 принимает квантованные позиции от декодера 510 октодерева и выполняет обратное квантование принятых квантованных позиций, используя, например, алгоритм масштабирования и/или алгоритм сдвига, чтобы получить реконструированные позиции точек во входном облаке точек.
[0061] Генератор 520 LoD принимает квантованные позиции от декодера 510 октодерева и получает LoD каждой из точек, соответствующих принятым квантованным позициям.
[0062] Обратный квантователь 525 принимает полученные квантованные остатки предсказания и выполняет обратное квантование принятых квантованных остатков предсказания, используя, например, алгоритм масштабирования и/или алгоритм сдвига, чтобы получить реконструированные остатки предсказания.
[0063] Модуль 530 обратного предсказания принимает полученные реконструированные остатки предсказания от обратного квантователя 525 и принимает полученный LoD каждой из точек от генератора 520 LoD. Модуль 530 обратного предсказания получает реконструированные атрибуты соответственно принятых реконструированных остатков предсказания путем применения алгоритма предсказания к принятым реконструированным остаткам предсказания в порядке, основанном на принятом LoD каждой из точек. Алгоритм предсказания может включать в себя любой из различных алгоритмов предсказания, таких как, например, интерполяция, вычисление средневзвешенного значения, алгоритм ближайшего соседа и RDO. Реконструированные атрибуты - это точки во входном облаке точек.
[0064] Теперь будут подробно описаны способ и устройство для кодирования коэффициентов облака точек. Такой способ и устройство могут быть реализованы в компрессоре 303 G-PCC, описанном выше, а именно в модуле 430 предсказания. Способ и устройство также могут быть реализованы в декомпрессоре 310 G-PCC, а именно в модуле 530 обратного предсказания.
[0065] Алфавитное разделение для коэффициентов преобразования
[0066] Преобразованные коэффициенты или их 8-битовые части могут быть кодированы либо с использованием справочных таблиц (например, A-LUT, описанных выше), либо путем обходного кодирования (bypass-coding) с 256 символами. 8-битовое значение коэффициента может быть разложено на индекс набора и индекс символа внутри набора, который может указывать точное местоположение значения коэффициента в наборе. Например, значения индексов могут соответствовать местоположениям в таблицах поиска или в кэше. 256 возможных значений коэффициентов могут быть сгруппированы в N наборов, как показано в Таблице 2 ниже.
[0067] В одном или более вариантах осуществления может проводиться автономное обучение для разработки разделения значений коэффициентов при данном количестве разделений (N). Граничные значения алфавитного разделения можно сигнализировать явно. В качестве альтернативы, можно сигнализировать индекс для указания конкретного алфавитного разделения с соответствующими граничными значениями, заданными несколькими типами алфавитного разделения, совместно используемыми кодером и декодером. Понятно, что разделение может быть разработано так, чтобы более частые символы принадлежали наборам с более низкими индексами и меньшими размерами, и наоборот, для повышения эффективности кодирования.
[0068] В одном или более вариантах осуществления, LUT на основе кэша или частотной сортировки может использоваться для отслеживания частот значений коэффициентов в порядке убывания. При формировании алфавитного разделения более низкие индексы набора могут быть назначены более частым значениям коэффициентов посредством использования индексов в упомянутом кэше или LUT вместо самих значений коэффициентов, и наоборот. Этот процесс может выполняться "на лету" как в кодере, так и в декодере.
[0069] Кодирование информации алфавитного разделения
[0070] Полученные индексы набора могут быть энтропийно кодированы различными способами, в то время как сопутствующие индексы символов могут быть просто кодированы обходным кодированием, когда можно ожидать, что распределение символов внутри набора будет достаточно равномерным.
[0071] В одном или более вариантах осуществления, производные индексы набора кодируют посредством многосимвольного арифметического кодирования или других типов основанного на контексте двоичного арифметического кодирования. Различное алфавитное разделение может использоваться для лучшего использования различных характеристик коэффициентов.
[0072] В одном или более вариантах осуществления может использоваться различное алфавитное разделение для разных уровней детализации (LOD) коэффициентов лифтинга/предсказания, поскольку более высокие уровни LOD могут иметь меньшие коэффициенты в результате разложения лифтинга/предсказания.
[0073] В одном или более вариантах осуществления может использоваться различное алфавитное разделение для разных параметров квантования (QP), поскольку более высокие QP имеют тенденцию приводить к меньшим квантованным коэффициентам, и наоборот.
[0074] В одном или более вариантах осуществления может использоваться различное алфавитное разделение для разных уровней гранулярной масштабируемости для кодирования с масштабированием SNR (сигнал/шум), поскольку уровни улучшения (т.е. уровни, добавленные для уточнения реконструированного сигнала до меньшего уровня QP) могут быть более шумного или случайного характера с точки зрения корреляции между коэффициентами.
[0075] В одном или более вариантах осуществления может использоваться различное алфавитное разделение в зависимости от значений или функции значений реконструированных отсчетов из соответствующих местоположений на нижних уровнях уровня квантования в случае кодирования с масштабированием SNR. Например, вполне вероятно, что области с нулевыми или очень маленькими реконструированными значениями на нижних уровнях могут иметь характеристики коэффициентов, отличные от областей с противоположной тенденцией.
[0076] В одном или более вариантах осуществления может использоваться различное алфавитное разделение в зависимости от значений или функции значений реконструированных отсчетов из соответствующих местоположений в нижних LOD на том же уровне квантования. Эти отсчеты из соответствующих местоположений могут быть доступны в результате поиска ближайшего окружения при построении LOD в GPCC. Понятно, что эти отсчеты могут быть доступны в декодере, а также в результате реконструкции LOD-за-LOD (LOD-by-LOD) в схемах преобразования в G-PCC.
[0077] Фиг. 6 является блок-схемой, иллюстрирующей способ 600 кодирования коэффициентов облака точек согласно вариантам осуществления. В некоторых реализациях один или более блоков процесса на фиг. 6 может выполняться декомпрессором 310 G-PCC. В некоторых реализациях один или более блоков процесса фиг. 6 может выполняться другим устройством или группой устройств, отдельными от декомпрессора 310 G-PCC или включающими в себя декомпрессор 310 G-PCC, например, компрессором 303 G-PCC.
[0078] Ссылаясь на фиг. 6, в первом блоке 610 способ 600 включает в себя разложение коэффициентов преобразования, связанных с данными облака точек, на значения индексов наборов и значения индексов символов, причем значение индекса символа определяет местоположения коэффициентов преобразования в наборе.
[0079] Во втором блоке 620 способ 600 включает в себя разделение разложенных коэффициентов преобразования на один или более наборов на основе значений индексов наборов и значений индексов символов.
[0080] В третьем блоке 630 способ 600 включает в себя энтропийное кодирование значений индексов наборов разделенных коэффициентов преобразования.
[0081] В четвертом блоке 640 способ 600 включает в себя обходное кодирование значений индексов символов разделенных коэффициентов преобразования.
[0082] В пятом блоке 650 способ 600 включает в себя сжатие данных облака точек на основе энтропийно-кодированных значений индексов наборов и кодированных обходным кодированием значений индексов символов.
[0083] Хотя фиг. 6 показывает иллюстративные блоки способа 600, в некоторых реализациях способ 600 может включать в себя дополнительные блоки, меньшее количество блоков, разные блоки или блоки, расположенные иначе, чем те, которые изображены на фиг. 6. Дополнительно или альтернативно, два или более блока способа 600 могут выполняться параллельно.
[0084] Кроме того, предложенные способы могут быть реализованы схемами обработки (например, одним или несколькими процессорами или одной или несколькими интегральными схемами). В одном примере один или более процессоров выполняют программу, которая хранится на машиночитаемом носителе, для выполнения одного или более из предложенных способов.
[0085] Фиг. 7 является блок-схемой устройства 700 для кодирования коэффициентов облака точек согласно вариантам осуществления.
[0086] Ссылаясь на фиг. 7, устройство 700 включает в себя код 710 декомпозиции, код 720 разделения, код 730 энтропийного кодирования и код 740 обходного кодирования.
[0087] Код 710 декомпозиции сконфигурирован так, чтобы заставлять по меньшей мере один процессор разлагать коэффициенты преобразования, связанные с данными облака точек, на значения индексов наборов и значения индексов символов, причем значение индекса символа определяет местоположения коэффициентов преобразования в наборе.
[0088] Код 720 разделения сконфигурирован для побуждения по меньшей мере одного процессора разделять разложенные коэффициенты преобразования на один или более наборов на основе значений индексов наборов и значений индексов символов.
[0089] Код 730 энтропийного кодирования сконфигурирован для побуждения по меньшей мере одного процессора выполнять энтропийное кодирование значений индексов наборов разделенных коэффициентов преобразования.
[0090] Код 740 обходного кодирования сконфигурирован для побуждения по меньшей мере одного процессора выполнять обходное кодирование значений индексов символов разделенных коэффициентов преобразования.
[0091] Код 750 сжатия сконфигурирован для побуждения по меньшей мере одного процессора сжимать данные облака точек на основе энтропийно-кодированных значений индексов наборов и кодированных обходным кодированием значений индексов символов.
[0092] Фиг. 8 - схема компьютерной системы 800, подходящей для реализации вариантов осуществления.
[0093] Компьютерное программное обеспечение может быть кодировано с использованием любого подходящего машинного кода или компьютерного языка, который может быть предметом сборки, компиляции, связывания или подобных механизмов для создания кода, включающего в себя инструкции, которые могут выполняться напрямую или посредством интерпретации, выполнения микрокода и т.п. центральными процессорами (ЦП, CPU) компьютера, графическими процессорами (ГП, GPU) и т.п.
[0094] Инструкции могут выполняться на компьютерах различных типов или их компонентах, включая, например, персональные компьютеры, планшетные компьютеры, серверы, смартфоны, игровые устройства, устройства Интернета вещей и т.п.
[0095] Компоненты, показанные на фиг. 8 для компьютерной системы 800 являются примерами по своей природе и не предназначены для каких-либо ограничений в отношении объема использования или функциональных возможностей компьютерного программного обеспечения, реализующего варианты осуществления. Конфигурация компонентов также не должна интерпретироваться как имеющая какую-либо зависимость или требование относительно любого одного или комбинации компонентов, проиллюстрированных в вариантах осуществления компьютерной системы 800.
[0096] Компьютерная система 800 может включать в себя определенные человеко-машинные интерфейсы ввода. Такой человеко-машинный интерфейс ввода может реагировать на ввод одним или несколькими пользователями-людьми посредством, например, тактильного ввода (например, нажатия клавиш, смахивания, движения управляющей перчатки), звукового ввода (например, голоса, хлопков в ладоши), визуального ввода (например, жесты), обонятельного ввода (не показан). Человеко-машинные интерфейсы также могут использоваться для захвата определенных медиа, не обязательно напрямую связанных с сознательным вводом человеком, таких как аудио (например, речь, музыка, окружающий звук), изображения (например, сканированные изображения, фотографические изображения, полученные из камеры для неподвижных изображений), видео (например, двухмерное видео, трехмерное видео, включая стереоскопическое видео).
[0097] Человеко-машинные интерфейсы ввода могут включать в себя одно или более из (показано только по одному из каждого): клавиатура 801, мышь 802, трекпад 803, сенсорный экран 810, джойстик 805, микрофон 806, сканер 807 и камера 808.
[0098] Компьютерная система 800 может также включать в себя определенные человека-машинные интерфейсы вывода. Такие человеко-машинные интерфейсы вывода могут стимулировать чувства одного или более пользователей-людей посредством, например, тактильного вывода, звука, света и запаха/вкуса. Такие человеко-машинные интерфейсы вывода могут включать в себя тактильные устройства вывода (например, тактильную обратную связь от сенсорного экрана 810 или джойстика 805, но также могут быть устройства тактильной обратной связи, которые не служат в качестве устройств ввода), устройства вывода звука (например, динамики 809, наушники (не изображены)), устройства визуального вывода (такие как экраны 810, включая экраны с электроннолучевой трубкой (ЭЛТ), экраны жидкокристаллических дисплеев (ЖКД), плазменные экраны, экраны на органических светодиодах (OLED), каждое с возможностью или без возможности ввода с сенсорного экрана, каждый с возможностью тактильной обратной связи или без нее - некоторые из них могут осуществлять двухмерный визуальный вывод или более чем трехмерный вывод с помощью таких средств, как стереографический вывод; очки виртуальной реальности (не показаны), голографические дисплеи и дымовые баки (не показаны), и принтеры (не показаны). Графический адаптер 850 генерирует и выводит изображения на сенсорный экран 810.
[0099] Компьютерная система 800 также может включать в себя доступные человеку запоминающие устройства и связанные с ними носители, такие как оптические носители, включая привод 820 CD / DVD ROM / RW с CD/DVD или тому подобное, носитель 821, флэш-накопитель 822, съемный жесткий диск или твердотельный накопитель 823, традиционные магнитные носители, такие как лента и гибкий диск (не показаны), специализированные устройства на основе ROM (ПЗУ) / ASIC / PLD, такие как защитные аппаратные ключи (не показаны) и т.п.
[0100] Специалисты в данной области должны также понимать, что термин «машиночитаемый носитель», используемый в связи с раскрытым в настоящее время предметом изобретения, не охватывает среды передачи, несущие волны или другие кратковременные сигналы.
[0101] Компьютерная система 800 также может включать в себя интерфейс (-ы) к одной или нескольким коммуникационным сетям 855. Коммуникационные сети 855 могут, например, быть беспроводными, проводными, оптическими. Сети 855 дополнительно могут быть локальными, глобальными, городскими, автомобильными и промышленными, работающими в реальном времени, устойчивыми к задержкам и так далее. Примеры сетей 855 включают в себя локальные сети, такие как Ethernet, беспроводные локальные сети, сотовые сети, включая глобальные системы мобильной связи (GSM), третьего поколения (3G), четвертого поколения (4G), пятого поколения (5G), стандарт «Долгосрочное развитие» (LTE) и т.п., проводные телевизионные или беспроводные глобальные цифровые сети, включая кабельное телевидение, спутниковое телевидение и наземное широковещательное телевидение, автомобильные и промышленные, включая CANBus и так далее. Сети 855 обычно требуют адаптеров внешнего сетевого интерфейса, которые подключены к определенным портам данных общего назначения или периферийным шинам 849 (например, к портам универсальной последовательной шины (USB) компьютерной системы 800; другие обычно интегрируются в ядро компьютерной системы 800 путем присоединения к системной шине, как описано ниже, например, сетевой интерфейс 854, включающий в себя интерфейс Ethernet, в компьютерную систему ПК и/или интерфейс сотовой сети в компьютерную систему смартфона. Используя любую из этих сетей 855, компьютерная система 800 может связываться с другими объектами. Такая связь может быть однонаправленной, только для приема (например, широковещательное телевидение), однонаправленной только для отправки (например, CANbus на определенные устройства CANbus) или двунаправленной, например, с другими компьютерными системами, использующими локальные или глобальные цифровые сети. Некоторые протоколы и стеки протоколов могут использоваться в каждой из этих сетей 855 и сетевых интерфейсов 854, как описано выше.
[0102] Вышеупомянутые человеко-машинные интерфейсы, доступные человеку запоминающие устройства и сетевые интерфейсы 854 могут быть присоединены к ядру 840 компьютерной системы 800.
[0103] Ядро 840 может включать в себя один или более центральных процессоров (ЦП, CPU) 841, графических процессоров (ГП, GPU) 842, специализированных программируемых процессоров в виде программируемых логических интегральных схем (ПЛИС, FPGA) 843, аппаратных ускорителей 844 для определенных задач и так далее. Эти устройства, наряду с постоянным запоминающим устройством (ПЗУ, ROM) 845, оперативным запоминающим устройством (ОЗУ, RAM) 846, внутренним запоминающим устройством 847 большой емкости, таким как внутренние жесткие диски, не доступные пользователю, твердотельные накопители (SSD) и т.п., могут быть подключенными через системную шину 848. В некоторых компьютерных системах системная шина 848 может быть доступна в виде одного или более физических разъемов для обеспечения возможности расширения с помощью дополнительных процессоров, графических процессоров и т.п. Периферийные устройства могут быть подключены либо непосредственно к системной шине 848 ядра, либо через периферийные шины 849. Архитектура периферийной шины включает в себя соединение периферийных компонентов (PCI), USB и т.п.
[0104] CPUs 841, GPU 842, FPGA 843 и аппаратные ускорители 844 могут выполнять определенные инструкции, которые в комбинации могут составлять вышеупомянутый компьютерный код. Этот компьютерный код может храниться в ROM 845 или RAM 846. Переходные данные также могут храниться в RAM 846, тогда как постоянные данные могут храниться, например, во внутреннем запоминающем устройстве 847. Быстрое сохранение и извлечение в любое из устройств памяти может быть активировано посредством использования кэш-памяти, которая может быть тесно связана с CPU 841, GPU 842, внутренним запоминающим устройством 847, ROM 845, RAM 846 и т.п.
[0105] Машиночитаемый носитель может содержать компьютерный код для выполнения различных операций, реализуемых компьютером. Носители и компьютерный код могут быть специально спроектированными и сконструированными для целей вариантов осуществления, или они могут быть хорошо известными и доступными для специалистов в области компьютерного программного обеспечения.
[0106] В качестве примера, а не в качестве ограничения, компьютерная система 800, имеющая архитектуру, и, в частности, ядро 840, может обеспечивать функциональность в результате выполнения процессором (-ами) (включая CPU, GPU, FPGA, ускорители и т.п.) программного обеспечения, воплощенного на одном или более материальных, машиночитаемых носителях. Такие машиночитаемые носители могут быть носителями, ассоциированными с доступным для пользователя запоминающим устройством большой емкости, как описано выше, а также определенными запоминающими устройствами ядра 840, которые имеют долговременную природу, такими как внутреннее запоминающее устройство 847 большой емкости или ROM 845. Программное обеспечение, реализующее различные варианты осуществления, может храниться в таких устройствах и выполняться ядром 840. Машиночитаемый носитель может включать в себя одно или более запоминающих устройств или микросхем в соответствии с конкретными потребностями. Программное обеспечение может заставлять ядро 840 и, в частности, процессоры в нем (включая CPU, GPU, FPGA и т.п.) выполнять определенные процессы или определенные части конкретных процессов, описанных в данном документе, в том числе определение структур данных, хранящихся в RAM 846, и изменение таких структур данных в соответствии с процессами, определенными программным обеспечением. В дополнение или в качестве альтернативы, компьютерная система может обеспечивать функциональные возможности в результате логики, встроенной аппаратным образом или иным образом воплощенной в схеме (например, аппаратный ускоритель 844), которая может работать вместо или вместе с программным обеспечением для выполнения определенных процессов или отдельных частей конкретных процессов, описанных в данном документе. Ссылка на программное обеспечение может включать в себя логику и наоборот, где это уместно. Ссылка на машиночитаемый носитель может охватывать схему (например, интегральную схему (ИС)), хранящую программное обеспечение для выполнения, схему, воплощающую логику для выполнения, или и то, и другое, где это необходимо. Варианты осуществления охватывают любую подходящую комбинацию аппаратного и программного обеспечения.
[0107] Хотя это раскрытие описывает несколько вариантов осуществления, существуют изменения, перестановки и различные заменяющие эквиваленты, которые попадают в объем раскрытия. Таким образом, должно быть понятно, что специалисты в данной области техники смогут разработать многочисленные системы и способы, которые, хотя явно не показаны или не описаны здесь, воплощают принципы изобретения и, таким образом, находятся в пределах его сущности и объема.
Claims (37)
1. Способ кодирования коэффициентов облака точек, выполняемый по меньшей мере одним процессором, включающий в себя:
разложение коэффициентов преобразования, связанных с данными облака точек, на значения индексов наборов и значения индексов символов, при этом значение индекса символа определяет местоположение коэффициентов преобразования в наборе;
разделение разложенных коэффициентов преобразования на один или более наборов на основе значений индексов наборов и значений индексов символов;
энтропийное кодирование значений индексов наборов разделенных коэффициентов преобразования;
обходное кодирование значений индексов символов разделенных коэффициентов преобразования; и
сжатие данных облака точек на основе энтропийно-кодированных значений индексов наборов и кодированных обходным кодированием значений индексов символов.
2. Способ по п. 1, в котором значения частоты, связанные с коэффициентами преобразования, сохраняют в кэш-памяти или поисковой таблице на основе частотной сортировки в порядке убывания, при этом наименьшее значение индекса набора присваивают коэффициенту преобразования, имеющему наибольшее значение частоты.
3. Способ по п. 1, в котором значения индексов символов и значения индексов наборов сигнализируют для указания алфавитного разделения, имеющего связанные граничные значения, на основе одного или более типов алфавитного разделения, совместно используемых кодером и декодером.
4. Способ по п. 3, в котором один или более типов алфавитного разделения используют для одного или более уровней детализации, соответствующих коэффициентам преобразования.
5. Способ по п. 3, в котором один или более типов алфавитного разделения используют для одного или более параметров квантования на основе квантования коэффициентов преобразования.
6. Способ по п. 3, в котором один или более типов алфавитного разделения используют для одного или более уровней масштабируемости для кодирования с масштабированием отношения сигнал/шум на основе корреляций между коэффициентами преобразования.
7. Способ по п. 1, в котором значения индексов наборов кодируют посредством многосимвольного арифметического кодирования.
8. Устройство для кодирования коэффициентов облака точек, содержащее:
по меньшей мере одну память, выполненную с возможностью хранить компьютерный программный код; и
по меньшей мере один процессор, выполненный с возможностью осуществлять доступ по меньшей мере к одной памяти и работать в соответствии с кодом компьютерной программы, причем код компьютерной программы содержит:
код декомпозиции, сконфигурированный так, чтобы заставлять по меньшей мере один процессор разлагать коэффициенты преобразования, связанные с данными облака точек, на значения индексов наборов и значения индексов символов, причем значение индекса символа определяет местоположение коэффициента преобразования в наборе;
код разделения, сконфигурированный так, чтобы заставлять по меньшей мере один процессор разделять разложенные коэффициенты преобразования на один или более наборов на основе значений индексов наборов и значений индексов символов;
код энтропийного кодирования, сконфигурированный так, чтобы заставлять по меньшей мере один процессор выполнять энтропийное кодирование значений индексов наборов разделенных коэффициентов преобразования;
код обходного кодирования, сконфигурированный так, чтобы заставлять по меньшей мере один процессор выполнять обходное кодирование значений индексов символов разделенных коэффициентов преобразования; и
код сжатия, сконфигурированный так, чтобы заставлять по меньшей мере один процессор сжимать данные облака точек на основе энтропийно-кодированных значений индексов наборов и кодированных обходным кодированием значений индексов символов.
9. Устройство по п. 8, в котором значения частоты, связанные с коэффициентами преобразования, сохраняются в кэш-памяти или поисковой таблице на основе частотной сортировки в порядке убывания, при этом наименьшее значение индекса набора присваивается коэффициенту преобразования, имеющему наибольшее значение частоты.
10. Устройство по п. 8, в котором значения индексов символов и значения индексов наборов сигнализируют для указания алфавитного разделения, имеющего связанные граничные значения, на основе одного или более типов алфавитного разделения, совместно используемых кодером и декодером.
11. Устройство по п. 10, в котором один или более типов алфавитного разделения используются для одного или более уровней детализации, соответствующих коэффициентам преобразования.
12. Устройство по п. 10, в котором один или более типов алфавитного разделения используются для одного или более параметров квантования на основе квантования коэффициентов преобразования.
13. Устройство по п. 10, в котором один или более типов алфавитного разделения используются для одного или более уровней масштабируемости для кодирования с масштабированием отношения сигнал/шум на основе корреляций между коэффициентами преобразования.
14. Устройство по п. 8, в котором значения индексов наборов кодируются посредством многосимвольного арифметического кодирования.
15. Машиночитаемый носитель данных, на котором хранятся инструкции, сконфигурированные так, чтобы заставлять по меньшей мере один процессор:
разлагать коэффициенты преобразования, связанные с данными облака точек, на значения индексов наборов и значения индексов символов, причем значение индекса символа определяет местоположение коэффициента преобразования в наборе;
разделять разложенные коэффициенты преобразования на один или более наборов на основе значений индексов наборов и значений индексов символов;
кодировать с помощью энтропийного кодирования значения индексов наборов разделенных коэффициентов преобразования;
кодировать с помощью обходного кодирования значения индексов символов разделенных коэффициентов преобразования; и
сжимать данные облака точек на основе энтропийно-кодированных значений индексов наборов и кодированных обходным кодированием значений индексов символов.
16. Машиночитаемый носитель по п. 15, в котором значения частоты, связанные с коэффициентами преобразования, хранятся в кэш-памяти или поисковой таблице на основе частотной сортировки в порядке убывания, при этом наименьшее значение индекса набора присваивается коэффициенту преобразования, имеющему наибольшее значение частоты.
17. Машиночитаемый носитель по п. 15, в котором значения индексов символов и значения индексов наборов сигнализируют для указания алфавитного разделения, имеющего связанные граничные значения, на основе одного или более типов алфавитного разделения, совместно используемых кодером и декодером.
18. Машиночитаемый носитель по п. 17, в котором один или более типов алфавитного разделения используются для одного или более уровней детализации, соответствующих коэффициентам преобразования.
19. Машиночитаемый носитель по п. 17, в котором один или более типов алфавитного разделения используются для одного или более параметров квантования на основе квантования коэффициентов преобразования.
20. Машиночитаемый носитель по п. 17, в котором один или более типов алфавитного разделения используются для одного или более уровней масштабируемости для кодирования с масштабированием отношения сигнал/шум на основе корреляций между коэффициентами преобразования.
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202062958839P | 2020-01-09 | 2020-01-09 | |
US202062958846P | 2020-01-09 | 2020-01-09 | |
US62/958,839 | 2020-01-09 | ||
US62/958,846 | 2020-01-09 | ||
US17/110,691 | 2020-12-03 | ||
US17/110,691 US11373276B2 (en) | 2020-01-09 | 2020-12-03 | Techniques and apparatus for alphabet-partition coding of transform coefficients for point cloud compression |
PCT/US2021/012527 WO2021142141A1 (en) | 2020-01-09 | 2021-01-07 | Techniques and apparatus for alphabet-partition coding of transform coefficients for point cloud compression |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2769460C1 true RU2769460C1 (ru) | 2022-03-31 |
Family
ID=76760591
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2021131110A RU2769460C1 (ru) | 2020-01-09 | 2021-01-07 | Способ и устройство для кодирования коэффициентов трансформации с алфавитным разделением для сжатия облака точек |
Country Status (10)
Country | Link |
---|---|
US (4) | US11373276B2 (ru) |
EP (1) | EP3921943A4 (ru) |
JP (1) | JP7246515B2 (ru) |
KR (1) | KR102584519B1 (ru) |
CN (1) | CN114026789A (ru) |
AU (1) | AU2021206683B2 (ru) |
CA (1) | CA3138065C (ru) |
RU (1) | RU2769460C1 (ru) |
SG (1) | SG11202111724XA (ru) |
WO (1) | WO2021142141A1 (ru) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114009046A (zh) * | 2019-06-21 | 2022-02-01 | Lg电子株式会社 | 用于处理点云数据的装置和方法 |
CN112188199B (zh) * | 2019-07-03 | 2024-05-10 | 腾讯美国有限责任公司 | 自适应点云属性编码的方法、装置、电子设备和存储介质 |
JPWO2021070952A1 (ru) * | 2019-10-09 | 2021-04-15 | ||
US11551334B2 (en) * | 2020-01-09 | 2023-01-10 | Tencent America LLC | Techniques and apparatus for coarse granularity scalable lifting for point-cloud attribute coding |
US11924428B2 (en) * | 2020-06-24 | 2024-03-05 | Qualcomm Incorporated | Scale factor for quantization parameter values in geometry-based point cloud compression |
KR20240117568A (ko) * | 2022-01-12 | 2024-08-01 | 엘지전자 주식회사 | 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 수신 방법 및 포인트 클라우드 데이터 수신 장치 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160086353A1 (en) * | 2014-09-24 | 2016-03-24 | University of Maribor | Method and apparatus for near-lossless compression and decompression of 3d meshes and point clouds |
US20170347122A1 (en) * | 2016-05-28 | 2017-11-30 | Microsoft Technology Licensing, Llc | Scalable point cloud compression with transform, and corresponding decompression |
US20190080483A1 (en) * | 2017-09-14 | 2019-03-14 | Apple Inc. | Point Cloud Compression |
RU2682009C2 (ru) * | 2014-02-20 | 2019-03-14 | Гурулоджик Микросистемс Ой | Способ и устройство для кодирования и декодирования исходных данных с использованием сжатия символов |
US20190081638A1 (en) * | 2017-09-14 | 2019-03-14 | Apple Inc. | Hierarchical point cloud compression |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7565018B2 (en) | 2005-08-12 | 2009-07-21 | Microsoft Corporation | Adaptive coding and decoding of wide-range coefficients |
CN107211136B (zh) * | 2015-01-30 | 2019-10-29 | 联发科技股份有限公司 | 具有大字母表的源样本的熵编码与熵解码的方法 |
US20180053324A1 (en) | 2016-08-19 | 2018-02-22 | Mitsubishi Electric Research Laboratories, Inc. | Method for Predictive Coding of Point Cloud Geometries |
US10681388B2 (en) * | 2018-01-30 | 2020-06-09 | Google Llc | Compression of occupancy or indicator grids |
US11010928B2 (en) * | 2018-04-10 | 2021-05-18 | Apple Inc. | Adaptive distance based point cloud compression |
US10964102B2 (en) | 2018-07-09 | 2021-03-30 | Sony Corporation | Adaptive sub-band based coding of hierarchical transform coefficients of three-dimensional point cloud |
US10708627B2 (en) * | 2019-03-04 | 2020-07-07 | Intel Corporation | Volumetric video compression with motion history |
US10924751B2 (en) * | 2019-03-18 | 2021-02-16 | Tencent America LLC | Data unit and parameter set design for point cloud coding |
US10587286B1 (en) * | 2019-03-18 | 2020-03-10 | Blackberry Limited | Methods and devices for handling equiprobable symbols in entropy coding |
US11461932B2 (en) * | 2019-06-11 | 2022-10-04 | Tencent America LLC | Method and apparatus for point cloud compression |
US11514610B2 (en) * | 2019-08-14 | 2022-11-29 | Tencent America LLC | Method and apparatus for point cloud coding |
US11398833B2 (en) * | 2019-10-02 | 2022-07-26 | Apple Inc. | Low-latency encoding using a bypass sub-stream and an entropy encoded sub-stream |
US11409998B2 (en) * | 2019-10-02 | 2022-08-09 | Apple Inc. | Trimming search space for nearest neighbor determinations in point cloud compression |
-
2020
- 2020-12-03 US US17/110,691 patent/US11373276B2/en active Active
-
2021
- 2021-01-07 SG SG11202111724XA patent/SG11202111724XA/en unknown
- 2021-01-07 RU RU2021131110A patent/RU2769460C1/ru active
- 2021-01-07 AU AU2021206683A patent/AU2021206683B2/en active Active
- 2021-01-07 WO PCT/US2021/012527 patent/WO2021142141A1/en unknown
- 2021-01-07 CN CN202180002845.2A patent/CN114026789A/zh active Pending
- 2021-01-07 JP JP2021557680A patent/JP7246515B2/ja active Active
- 2021-01-07 KR KR1020217034386A patent/KR102584519B1/ko active IP Right Grant
- 2021-01-07 CA CA3138065A patent/CA3138065C/en active Active
- 2021-01-07 EP EP21738085.6A patent/EP3921943A4/en active Pending
-
2022
- 2022-01-27 US US17/585,826 patent/US11544819B2/en active Active
- 2022-05-31 US US17/828,735 patent/US11651521B2/en active Active
- 2022-11-29 US US18/071,315 patent/US11657542B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2682009C2 (ru) * | 2014-02-20 | 2019-03-14 | Гурулоджик Микросистемс Ой | Способ и устройство для кодирования и декодирования исходных данных с использованием сжатия символов |
US20160086353A1 (en) * | 2014-09-24 | 2016-03-24 | University of Maribor | Method and apparatus for near-lossless compression and decompression of 3d meshes and point clouds |
US20170347122A1 (en) * | 2016-05-28 | 2017-11-30 | Microsoft Technology Licensing, Llc | Scalable point cloud compression with transform, and corresponding decompression |
US20190080483A1 (en) * | 2017-09-14 | 2019-03-14 | Apple Inc. | Point Cloud Compression |
US20190081638A1 (en) * | 2017-09-14 | 2019-03-14 | Apple Inc. | Hierarchical point cloud compression |
Also Published As
Publication number | Publication date |
---|---|
SG11202111724XA (en) | 2021-11-29 |
US11373276B2 (en) | 2022-06-28 |
US20230090878A1 (en) | 2023-03-23 |
AU2021206683B2 (en) | 2023-01-12 |
JP7246515B2 (ja) | 2023-03-27 |
US11651521B2 (en) | 2023-05-16 |
CA3138065A1 (en) | 2021-07-15 |
EP3921943A1 (en) | 2021-12-15 |
US11657542B2 (en) | 2023-05-23 |
KR20210142713A (ko) | 2021-11-25 |
US20220148132A1 (en) | 2022-05-12 |
CN114026789A (zh) | 2022-02-08 |
JP2022528526A (ja) | 2022-06-14 |
KR102584519B1 (ko) | 2023-10-05 |
EP3921943A4 (en) | 2022-04-13 |
US20220292639A1 (en) | 2022-09-15 |
US20210217136A1 (en) | 2021-07-15 |
CA3138065C (en) | 2024-02-20 |
US11544819B2 (en) | 2023-01-03 |
WO2021142141A1 (en) | 2021-07-15 |
AU2021206683A1 (en) | 2021-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7384520B2 (ja) | フレーム間点群属性コーディングのための方法、装置及びコンピュータ・プログラム | |
JP7263521B2 (ja) | インターフレーム点群属性符号化のための方法並びにその、装置およびコンピュータプログラム | |
RU2769460C1 (ru) | Способ и устройство для кодирования коэффициентов трансформации с алфавитным разделением для сжатия облака точек | |
JP7261300B2 (ja) | 適応ポイントクラウド属性コーディングのための方法、装置、及びコンピュータプログラム | |
EP3861755A1 (en) | Techniques and apparatus for weighted-median prediction for point-cloud attribute coding | |
JP7213368B2 (ja) | 点群属性コーディングのためのチャネル間予測および変換の技術並びに装置 | |
US11551334B2 (en) | Techniques and apparatus for coarse granularity scalable lifting for point-cloud attribute coding | |
CN115336243A (zh) | 基于哈尔的点云编码方法和装置 | |
CN112188197A (zh) | 通道间点云属性解码方法、装置以及可读存储介质 | |
CN113115019B (zh) | 视频编解码方法、装置、计算机设备及存储介质 | |
CN112188216B (zh) | 视频数据的编码方法、装置、计算机设备及存储介质 | |
CN112616058B (zh) | 视频编码或解码方法、装置、计算机设备和存储介质 |