RU2769460C1 - Способ и устройство для кодирования коэффициентов трансформации с алфавитным разделением для сжатия облака точек - Google Patents

Способ и устройство для кодирования коэффициентов трансформации с алфавитным разделением для сжатия облака точек Download PDF

Info

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
Application number
RU2021131110A
Other languages
English (en)
Inventor
Сехун ЙЕА
Стефан ВЕНГЕР
Шань ЛЮ
Original Assignee
Тенсент Америка Ллс
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Тенсент Америка Ллс filed Critical Тенсент Америка Ллс
Application granted granted Critical
Publication of RU2769460C1 publication Critical patent/RU2769460C1/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/2163Partitioning the feature space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4084Scaling of whole images or parts thereof, e.g. expanding or contracting in the transform domain, e.g. fast Fourier transform [FFT] domain scaling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/007Transform coding, e.g. discrete cosine transform
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/40Tree coding, e.g. quadtree, octree
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/02Conversion 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/10Conversion 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/18Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/184Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods 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/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/56Particle 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. Пусть
Figure 00000001
будет набором k-ближайших соседей текущей точки i, пусть
Figure 00000002
будет их декодированными/реконструированными значениями атрибутов и пусть
Figure 00000003
будет их расстоянием до текущей точки i. Предсказываемое значение атрибута
Figure 00000004
затем определяется следующим образом:
[0010]
Figure 00000005
[0011] Обратим внимание, что геометрические положения всех облаков точек уже доступны при кодировании атрибутов. Кроме того, соседние точки вместе с их реконструированными значениями атрибутов доступны как в кодере, так и в декодере в виде k-мерной древовидной структуры, которая используется для облегчения поиска ближайшего соседа для каждой точки идентичным образом.
[0012] Во-вторых, если изменчивость выше порогового значения, выполняется выбор предиктора (предсказателя), оптимизированного по критерию скорость-искажение (rate-distortion optimized, RDO). Множественные кандидаты-предикторы или предсказываемые значения кандидатов создаются на основе результата поиска соседней точки при генерировании LoD. Например, когда значение атрибутов трехмерной точки Р2 кодируется с использованием предсказания, средневзвешенное значение расстояний от трехмерной точки Р2 до трехмерных точек Р0, Р5 и Р4, соответственно, устанавливается равным индексу предиктора, равному 0. Затем расстояние от трехмерной точки Р2 до ближайшей соседней точки Р4 устанавливается равным индексу предиктора, равному 1. Кроме того, расстояния от трехмерной точки Р2 до следующих ближайших соседних точек Р5 и Р0, соответственно, устанавливаются на индексы предиктора, равные 2 и 3, как показано в Таблице 1 ниже.
Figure 00000006
[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-битовых целочисленных координат
Figure 00000007
где
Figure 00000008
могут быть битами х, у и z от
Figure 00000009
=1 (старший порядок) до
Figure 00000010
=d (младший порядок), является неотрицательным 3d-битовым целым числом.
Figure 00000011
где
Figure 00000012
может быть битами М от
Figure 00000013
=1 (высокий порядок) до
Figure 00000014
=3d (низкий порядок).
[0021]
Figure 00000015
может обозначать
Figure 00000016
-битовый префикс М. m может быть таким префиксом. Блок на уровне
Figure 00000017
может быть определен с префиксом m как набор всех точек (х, у, z), для которых
Figure 00000018
Два блока на уровне
Figure 00000019
могут быть блоками потомков, если у них одинаковый
Figure 00000020
-битовый префикс. Объединение двух блоков потомков на уровне
Figure 00000021
может быть блоком на уровне
Figure 00000022
называемым их родительским блоком.
[0022] Региональное адаптивное преобразование Хаара для последовательности An, n=1, …, N, и обратное преобразование Хаара может включать в себя базовый случай и рекурсивную функцию. В базовом случае An может быть атрибутом точки, а Tn может быть ее преобразованием, где Tn=А. Для рекурсивной функции может быть два блока потомков и их родительский блок.
Figure 00000023
и
Figure 00000024
могут быть атрибутами точек (xn, yn, zn) в блоках потомков, перечисленных в возрастающем порядке Мортона, и
Figure 00000025
и
Figure 00000026
могут быть их соответствующими преобразованиями. Аналогично,
Figure 00000027
могут быть атрибутами всех точек (xn, yn, zn) в их родительском блоке, перечисленных в возрастающем порядке Мортона, а
Figure 00000027
может быть его преобразованием.
Далее
Figure 00000028
Figure 00000029
Figure 00000030
и
Figure 00000031
где
Figure 00000032
[0023] Преобразование родительского блока может быть конкатенацией двух блоков потомков, за исключением того, что первые компоненты преобразований (DC) двух блоков потомков могут быть заменены их взвешенной суммой и разностью, и наоборот, преобразования из двух блоков потомков могут быть скопированы из первой и последней частей преобразования родительского блока, за исключением того, что компоненты DC преобразований двух блоков потомков могут быть заменены их взвешенной разностью и суммой
Figure 00000033
и
Figure 00000034
[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 ниже.
Figure 00000035
[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, в котором один или более типов алфавитного разделения используются для одного или более уровней масштабируемости для кодирования с масштабированием отношения сигнал/шум на основе корреляций между коэффициентами преобразования.
RU2021131110A 2020-01-09 2021-01-07 Способ и устройство для кодирования коэффициентов трансформации с алфавитным разделением для сжатия облака точек RU2769460C1 (ru)

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 US11373276B2 (en) 2020-01-09 2020-12-03 Techniques and apparatus for alphabet-partition coding of transform coefficients for point cloud compression
US17/110,691 2020-12-03
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 (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112188199B (zh) * 2019-07-03 2024-05-10 腾讯美国有限责任公司 自适应点云属性编码的方法、装置、电子设备和存储介质
CN114467119A (zh) * 2019-10-09 2022-05-10 松下电器(美国)知识产权公司 三维数据编码方法、三维数据解码方法、三维数据编码装置及三维数据解码装置
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
WO2023136618A1 (ko) * 2022-01-12 2023-07-20 엘지전자 주식회사 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 수신 방법 및 포인트 클라우드 데이터 수신 장치

Citations (5)

* Cited by examiner, † Cited by third party
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
US20190081638A1 (en) * 2017-09-14 2019-03-14 Apple Inc. Hierarchical point cloud compression
RU2682009C2 (ru) * 2014-02-20 2019-03-14 Гурулоджик Микросистемс Ой Способ и устройство для кодирования и декодирования исходных данных с использованием сжатия символов

Family Cites Families (13)

* Cited by examiner, † Cited by third party
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
US10057580B2 (en) * 2015-01-30 2018-08-21 Mediatek Inc. Method and apparatus for entropy coding of source samples with large alphabet
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
US10587286B1 (en) * 2019-03-18 2020-03-10 Blackberry Limited Methods and devices for handling equiprobable symbols in entropy coding
US10924751B2 (en) * 2019-03-18 2021-02-16 Tencent America LLC Data unit and parameter set design for point cloud 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
US11409998B2 (en) * 2019-10-02 2022-08-09 Apple Inc. Trimming search space for nearest neighbor determinations in point cloud compression
US11398833B2 (en) * 2019-10-02 2022-07-26 Apple Inc. Low-latency encoding using a bypass sub-stream and an entropy encoded sub-stream

Patent Citations (5)

* Cited by examiner, † Cited by third party
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
US11544819B2 (en) 2023-01-03
CA3138065C (en) 2024-02-20
EP3921943A1 (en) 2021-12-15
US11657542B2 (en) 2023-05-23
KR20210142713A (ko) 2021-11-25
AU2021206683B2 (en) 2023-01-12
KR102584519B1 (ko) 2023-10-05
US11651521B2 (en) 2023-05-16
US20230090878A1 (en) 2023-03-23
CN114026789A (zh) 2022-02-08
WO2021142141A1 (en) 2021-07-15
AU2021206683A1 (en) 2021-11-18
JP2022528526A (ja) 2022-06-14
SG11202111724XA (en) 2021-11-29
US20220148132A1 (en) 2022-05-12
US20210217136A1 (en) 2021-07-15
EP3921943A4 (en) 2022-04-13
CA3138065A1 (en) 2021-07-15
US11373276B2 (en) 2022-06-28
JP7246515B2 (ja) 2023-03-27
US20220292639A1 (en) 2022-09-15

Similar Documents

Publication Publication Date Title
JP7384520B2 (ja) フレーム間点群属性コーディングのための方法、装置及びコンピュータ・プログラム
JP7261300B2 (ja) 適応ポイントクラウド属性コーディングのための方法、装置、及びコンピュータプログラム
JP7263521B2 (ja) インターフレーム点群属性符号化のための方法並びにその、装置およびコンピュータプログラム
RU2769460C1 (ru) Способ и устройство для кодирования коэффициентов трансформации с алфавитным разделением для сжатия облака точек
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
CN112188197A (zh) 通道间点云属性解码方法、装置以及可读存储介质
US20210217205A1 (en) Techniques and apparatus for explicit quad-tree and binary-tree partitioning for geometry coding
CN112218077A (zh) 通道间点云属性编码方法、装置以及可读存储介质
CN115336243A (zh) 基于哈尔的点云编码方法和装置
CN113115019B (zh) 视频编解码方法、装置、计算机设备及存储介质
CN112188216A (zh) 视频数据的编码方法、装置、计算机设备及存储介质
CN112616058A (zh) 视频编码或解码方法、装置、计算机设备和存储介质