IP Library Granted Patent US 12,323,620
Granted Patent B2
US 12,323,620 · App. 17/824,045 · Granted Jun 3, 2025

Volumetric video in web browser

Inventors: Ofer Rubinstein (Herzliya, IL); Yigal Eilam (Kiryat Ono, IL); Michael Birnboim (Holon, IL); Vsevolod Kagarlitsky (Ramat Gan, IL); Gilad Talmon (Tel Aviv, IL); Michael Tamir (Tel Aviv, IL)
Assignee: TETAVI LTD.
H04N19/597G06T9/00H04N19/186
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,323,620
App. No.
17/824,045
Granted
Jun 3, 2025
Kind
B2
Abstract

The present invention generally pertains to systems, methods, and non-transitory processor-readable mediums for ensuring a match between geometry and texture when playing volumetric videos in a web browser.

Claims (80)

1. A processor-implemented method for providing an image in a volumetric video, comprising steps of:

generating a set of initial faces;

acquiring a data set comprising both color data and geometric data, said geometric data comprising a set comprising at least one relevant face;

determining, from said geometric data, geometric information for said at least one relevant face, said geometric information comprising locations of vertices of said at least one relevant face;

generating from said set of initial faces a set comprising at least one geometry face, each of said at least one geometry face generated by assigning to one of said set of initial faces said geometric information for said at least one relevant face; and

rendering an image from a point of view using said set comprising at least one geometry face and said color data;

wherein at least one of the following is true:

a. for each of said at least one geometry face, said step of assigning said geometric information is effectuated by, for each vertex of said at least one geometry face, assigning to said each vertex of said at least one geometry face a geometric location of a corresponding vertex of said at least one relevant face;

b. said at least one relevant face is generated in a manner selected from the group consisting of for each relevant frame, after a predetermined time, whenever there is a coherency change in the geometry, and any combination thereof, said predetermined time being in a range from 0.01 s to 10 s;

c. selecting a number of faces in said set of initial faces to be in a range from 1 to 10 6 ;

d. selecting a number of faces in said set of initial faces to be 50,000; and

e. providing a number of faces in said set of initial faces in metadata in said texture data set.

2. The processor-implemented method of claim 1 , wherein, for each of said set comprising at least one geometry face, said step of assigning said geometric information is effectuated by, for each vertex of said geometry face, assigning to said each vertex of said geometry face a geometric location of a corresponding vertex of said one of said at least one relevant face.

3. The processor-implemented method of claim 1 , additionally comprising at least one of the following steps:

a. storing a number of said at least one relevant face and a location of said at least one relevant face in at least one additional line of said data set;

b. storing said color data and said geometric data as either YUV or logarithmic Y′U′V′ values;

c. providing said color data comprising a plurality of encoding parameters, each of said plurality of encoding parameters being used in a different portion of said color data;

d. said geometric data being stored only in the most significant bits of geometric data bytes;

e. selecting a number of faces in said set of initial faces to be in a range from 10 to 10 6 ;

f. selecting a number of faces in said set of initial faces to be 50,000;

g. providing in metadata in said data set a number of faces in said set of initial faces;

h. selecting a location of said faces in said set of initial faces from the group consisting of noise, a random number, a fixed location, and any combination thereof, and selecting said fixed location from the group consisting of an origin of a coordinate system or a location outside of said point of view; and

i. assigning a single location to unneeded faces, unneeded faces being faces in said set of initial faces and not in said set comprising at least one geometry face; and selecting said single location from the group consisting of an origin of a coordinated system or a location outside of said point of view.

4. A processor-implemented method for providing an image, in a volumetric video comprising steps of:

generating a set of initial faces;

acquiring a texture data set comprising color data and, for each frame, a texture frame number, said texture frame number being stored in said texture data set;

acquiring a geometry data set comprising geometric data, said geometric data comprising a set comprising at least one relevant face, a geometry frame number of said geometry data being stored in said data set comprising geometric data;

for each frame:

determining the geometry frame number;

determining, from said geometric data in said geometry data set having said geometry frame number, geometric information for said at least one relevant face, said geometric information comprising locations of vertices of said at least one relevant face;

generating from said set of initial faces a set comprising at least one geometry face, each of said at least one geometry face generated by assigning to one of said set of initial faces said geometric information for said at least one relevant face; and

using said set comprising at least one geometry face and said color data, rendering an image from a predetermined point of view;

wherein at least one of the following is true:

a. for each of said at least one geometry face, said step of assigning said geometric information is effectuated by, for each vertex of said at least one geometry face, assigning to said each vertex of said at least one geometry face a geometric location of a corresponding vertex of said at least one relevant face;

b. said at least one relevant face is generated in a manner selected from the group consisting of for each relevant frame, after a predetermined time, whenever there is a coherency change in the geometry, and any combination thereof, said predetermined time being in a range from 0.01 s to 10 s;

c. selecting a number of faces in said set of initial faces to be in a range from 1 to 10 6 ;

d. selecting a number of faces in said set of initial faces to be 50,000; and

e. providing a number of faces in said set of initial faces in metadata in said texture data set.

5. The processor-implemented method of claim 4 , additionally comprising a step after said step of generating said set comprising at least one geometry face, said step comprising storing said at least one relevant face in a set of stored relevant faces.

6. The processor-implemented method of claim 5 , additionally comprising the following steps, after said step of determining said geometry frame number:

for a first each frame in a plurality of frames,

determining each-frame geometric information of said at least one relevant face from said geometry data; and

storing a number of said first each frame as an each-frame geometry frame number and said each-frame geometric information;

for a second each frame in a plurality of frames,

comparing said texture frame number to said each-frame geometry frame number;

for said texture frame number being the same as one of said each-frame geometry frame number, selecting for rendering geometric information for said one of said each-frame geometry frame number; and

for said texture frame number not being the same as any of said each-frame geometry frame number, selecting for rendering said set of stored relevant faces.

7. The processor-implemented method of claim 6 , additionally comprising one of the following steps:

a. selecting a number of said plurality of frames to be in a range from 2 frames to 1001 frames;

b. selecting a number of said plurality of frames to be in a range from 2 frames to 100 frames,

c. selecting a number of said plurality of frames to be in a range from 2 frames to 10 frames,

d. selecting a number of said plurality of frames to be in a range from 2 frames to 5 frames;

e. selecting a number of said plurality of frames to be in a range from 2 frames to 3 frames;

f. selecting a number of said plurality of frames to be 3 frames; and

g. selecting said plurality of frames to comprise a first predetermined number of frames before said frame number and a second predetermined number of frames after said frame number, said first predetermined number of frames being in a range from zero to a first decoder inaccuracy, said second predetermined number of frames being in a range from zero to a second decoder inaccuracy, said first decoder inaccuracy in a range selected from the group consisting of: 0-1 frame 0-2 frames, and 0-500 frames, said second decoder inaccuracy in a range selected from the group consisting of: 0-1 frame 0-2 frames, and 0-500 frames.

8. The processor-implemented method of claim 4 , additionally comprising a step of selecting a location of said faces in said set of initial faces from the group consisting of noise, a random number, a fixed location, and any combination thereof, said fixed location selected from the group consisting of an origin of a coordinate system or a location outside of said point of view.

9. The processor-implemented method of claim 4 , additionally comprising a step of assigning a single location to unneeded faces, unneeded faces being faces in said set of initial faces and not in said set comprising at least one geometry face; said single location selected from the group consisting of an origin of a coordinate system or a location outside of said point of view.

10. A non-transitory processor-readable medium storing code representing instructions to be executed by a processor, the code comprising code to cause the processor to provide an image in a volumetric video, said program comprising steps configured to:

generate a set of initial faces;

acquire a data set comprising color data and geometric data, said geometric data comprising a set comprising at least one relevant face;

determine from said geometric data geometric information for said at least one relevant face, said geometric information comprising locations of vertices of said at least one relevant face;

generate from said set of initial faces a set comprising at least one geometry face, each of said at least one geometry face generated by assigning to one of said set of initial faces said geometric information for said at least one relevant face; and

render an image from a point of view using said set of geometry faces and said color data;

wherein at least one of the following is true:

a. for each of said at least one geometry face, said step of assigning said geometric information is effectuated by, for each vertex of said at least one geometry face, assigning to said each vertex of said at least one geometry face a geometric location of a corresponding vertex of said at least one relevant face;

b. said at least one relevant face is generated in a manner selected from the group consisting of for each relevant frame, after a predetermined time, whenever there is a coherency change in the geometry, and any combination thereof, said predetermined time being in a range from 0.01 s to 10 s;

c. selecting a number of faces in said set of initial faces to be in a range from 1 to 10 6 ;

d. selecting a number of faces in said set of initial faces to be 50,000; and

e. providing a number of faces in said set of initial faces in metadata in said texture data set.

11. The non-transitory processor-readable medium storing code representing instructions of claim 10 , wherein said instructions are configured to ensure that, for each of said set comprising at least one geometry face, said assignment of said geometric information is effectuated by, for each vertex of said geometry face, assigning to said each vertex of said geometry face a geometric location of a corresponding vertex of said at least one relevant face.

12. The non-transitory processor-readable medium storing code representing instructions of claim 10 , wherein said instructions are additionally configured, when executed, to perform at least one of the following:

a. store a number of said at least one relevant face and a location of said at least one relevant face in at least one additional line of said data set;

b. store said color data and said geometric data as either YUV or logarithmic Y′U′V′ values;

c. provide said color data comprising a plurality of encoding parameters, each of said plurality of encoding parameters being used in a different portion of said color data;

d. store said geometric data only in the most significant bits of geometric data bytes;

e. select a number of faces in said set of initial faces to be in a range from 10 to 10 6 ;

f. select a number of faces in said set of initial faces to be 50,000;

g. provide in metadata in said data set a number of faces in said set of initial faces;

h. select a location of said faces in said set of initial faces from the group consisting of noise, a random number, a fixed location, and any combination thereof, and select said fixed location from the group consisting of an origin of a coordinate system or a location outside of said point of view; and

i. assign a single location to unneeded faces, unneeded faces being faces in said set of initial faces and not in said set comprising at least one geometry face; and select said single location from the group consisting of an origin of a coordinate system or a location outside of said point of view.

Assignments (3)
CHANGE OF NAME Recorded Nov 14, 2025
From: TETAVI LTD
To: YOOM.COM LTD
Reel/Frame 073587/0757 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 27, 2025
From: YOOM.COM LTD.
To: TAKE-TWO INTERACTIVE SOFTWARE, INC.
Reel/Frame 072683/0955 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 23, 2022
From: RUBINSTEIN, OFER; EILAM, YIGAL; BIRNBOIM, MICHAEL; KAGARLITSKY, VSEVOLOD; TALMON, GILAD; TAMIR, MICHAEL
To: TETAVI, LTD.
Reel/Frame 060874/0622 →
Continuity (2)
Provisional Application 63192643 · May 25, 2021
Related Publication 20220385941A1 · Dec 1, 2022
References Cited (18)
US 8284204B2 · Kalaiah et al. · 2012 [cited by applicant]
US 10897614B2 · Hannuksela · 2021 [cited by examiner]
US 20080007559A1 · Kalaiah · 2008 [cited by examiner]
US 20130307848A1 · Tena · 2013 [cited by examiner]
US 20170078703A1 · Ridge · 2017 [cited by examiner]
US 20170154461A1 · Rhee · 2017 [cited by examiner]
US 20190080483A1 · Mammou · 2019 [cited by examiner]
US 20200410752A1 · Jiang · 2020 [cited by examiner]
US 20210241526A1 · Padovani · 2021 [cited by examiner]
US 20210390789A1 · Liu · 2021 [cited by examiner]
EP 2810253 · 2014 [cited by applicant]
EP 3316589 · 2018 [cited by applicant]
EP 3334164 · 2018 [cited by applicant]
Hugues Hoppe. 1997. View-dependent refinement of progressive meshes. In Proceedings of the 24th annual conference on Computer graphics and interactive techniques (SIGGRAPH '97). ACM Press/Addison-Wesley Publishing Co., … [cited by examiner]
Hugues Hoppe. 1997. View-dependent refinement of progressive meshes. In Proceedings of the 24th annual conference on Computer graphics and interactive techniques (SIGGRAPH '97). ACM Press/Addison-Wesley Publishing Co., … [cited by examiner]
International search report for PCT/IL2022/050556 dated Sep. 13, 2022. [cited by applicant]
Search Strategy for PCT/IL2022/050556 dated Sep. 6, 2022. [cited by applicant]
Written Opinion for PCT/IL2022/050556 dated Sep. 13, 2022. [cited by applicant]