IP Library Granted Patent US 12,272,014
Granted Patent B2
US 12,272,014 · App. 18/410,868 · Granted Apr 8, 2025

Post-capture editing of augmented reality content

Inventors: Faisal Alqadi (Santa Monica, CA); Omer Cansizoglu (Mercer Island, WA); Nicolai Darmancev (Odesa, UA); Ivan Golub (Playa Vista, CA); Hwan Moon Lee (Los Angeles, CA); Xiaorong Li (Los Angeles, CA); David Meisenholder (Manhattan Beach, CA); Quinton Roberts (Marina Del Rey, CA); Yihuan Zhou (Los Angeles, CA)
Assignee: Snap Inc.
G06T19/006G02B27/0172G06T15/005G02B2027/0178
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,272,014
App. No.
18/410,868
Granted
Apr 8, 2025
Kind
B2
Abstract

The subject technology receives, by a client device from a storage device, first image data captured by the client device at a previous time. The subject technology receives first metadata corresponding to at least a first image processing operation and a second image processing operation. The subject technology generates, in a first render pass, second image data based on the first metadata and the image processing operation performed on the first image data. The subject technology generates, in a second render pass, third image data based on the first metadata and the second image processing operation performed on the second image data. The subject technology generates second metadata comprising information corresponding to the third image data. The subject technology generates a composite AR content item comprising the second metadata, the third image data, and the first image data.

Claims (72)

1. A method, comprising:

receiving, by a client device from a storage device, first image data captured by the client device at a previous time;

receiving first metadata corresponding to at least a first image processing operation and a second image processing operation;

generating, in a first render pass, second image data based on the first metadata and the first image processing operation performed on the first image data;

generating, in a second render pass, third image data based on the first metadata and the second image processing operation performed on the second image data;

generating second metadata comprising information corresponding to the third image data;

generating a composite AR content item comprising the second metadata, the third image data, and the first image data;

providing a multi-layer image processing pipeline, the multi-layer image processing pipeline comprising a feature layer, a render pipeline layer, and a render pass layer;

receiving, by the render pipeline layer, the first image data, the first image data comprising a first pixel buffer, a second pixel buffer, and a bitmap; and

generating, using the feature layer, cascaded render passes, the cascaded render passes comprising a sequence of respective render passes in which an order of the respective render passes is fixed based at least in part on metadata corresponding to a set of augmented reality content generators to apply for each of the respective render passes, each of the set of augmented reality content generators corresponding to a respective image processing effect or operation related to an augmented reality object or augmented reality content.

2. The method of claim 1 , wherein the first pixel buffer includes a first set of pixels in a first color space, the first color space comprising a BT.709 color space,

the second pixel buffer includes a second set of pixels in a second color space, the second color space comprising a BT.601 color space, and

the bitmap comprises a third set of pixels in a third color space, the third color space comprising an RGB color space.

3. The method of claim 2 , further comprising:

performing, by the render pipeline layer, a color conversion process based on the first pixel buffer and the second pixel buffer, the color conversion process converting the first set of pixels in the first color space to a first color converted set of pixels in the RGB color space and the second set of pixels in the second color space to a second color converted set of pixels in the RGB color space; and

generating a set of textures, based on the first color converted set of pixels and the second color converted set of pixels, for the cascaded render passes; and

generating rendering information corresponding the cascaded render passes, each of the cascaded render passes comprising a respective set of image processing operations to render at least one texture from the set of textures, the cascaded render passes comprising multiple render passes that are ordered starting from a first render pass up to a last render pass.

4. The method of claim 3 , further comprising:

determining a render destination for the set of textures, the render destination comprising a framebuffer of a rendering pipeline, the framebuffer comprising a portion of memory provided by an eyewear device that stores a final image data for display by a display of the eyewear device.

5. The method of claim 3 , further comprising:

performing, by a render engine of the render pass layer, each render pass from the cascaded render passes for display by a display of an eyewear device, the performing comprising:

rendering, using a first render pipeline, the last render pass from the cascaded render passes, the last render pass corresponding to a particular set of augmented reality content generators to apply based on the respective set of image processing operations to render at least one texture from the set of textures;

rendering, using a second render pipeline, a second render pass from the cascaded render passes, the second render pass corresponding to a second particular set of augmented reality content generators to apply based on the respective set of image processing operations to render at least one different texture from the set of textures; and

rendering, using a third render pipeline, the first render pass from the cascaded render passes, the first render pass corresponding to a third particular set of augmented reality content generators to apply based on the respective set of image processing operations to render at least one second different texture from the set of textures.

6. The method of claim 5 , wherein performing, by the render engine of the render pass layer, each render pass from the cascaded render passes is based on a ping-pong render pass process, the ping-pong render pass process comprises sending output image data of the first render pipeline as input image data to the second render pipeline, and sending output image data of the second render pipeline as input image data to the first render pipeline.

7. The method of claim 6 , further comprising:

sending output image data from the third render pipeline to a render destination comprising memory provided by an eyewear device.

8. The method of claim 5 , further comprising:

providing a final output image from the render engine of the render pass layer after performing each of the cascaded render passes.

9. The method of claim 1 , further comprising:

providing the composite AR content item for display by a display of an eyewear device.

10. A system comprising:

a processor; and

a memory including instructions that, when executed by the processor, cause the processor to perform operations comprising:

receiving, by a client device from a storage device, first image data captured by the client device at a previous time;

receiving first metadata corresponding to at least a first image processing operation and a second image processing operation;

generating, in a first render pass, second image data based on the first metadata and the first image processing operation performed on the first image data;

generating, in a second render pass, third image data based on the first metadata and the second image processing operation performed on the second image data;

generating second metadata comprising information corresponding to the third image data;

generating a composite AR content item comprising the second metadata, the third image data, and the first image data;

providing a multi-layer image processing pipeline, the multi-layer image processing pipeline comprising a feature layer, a render pipeline layer, and a render pass layer;

receiving, by the render pipeline layer, the first image data, the first image data comprising a first pixel buffer, a second pixel buffer, and a bitmap; and

generating, using the feature layer, cascaded render passes, the cascaded render passes comprising a sequence of respective render passes in which an order of the respective render passes is fixed based at least in part on metadata corresponding to a set of augmented reality content generators to apply for each of the respective render passes, each of the set of augmented reality content generators corresponding to a respective image processing effect or operation related to an augmented reality object or augmented reality content.

11. The system of claim 10 , wherein the first pixel buffer includes a first set of pixels in a first color space, the first color space comprising a BT.709 color space,

the second pixel buffer includes a second set of pixels in a second color space, the second color space comprising a BT.601 color space, and

the bitmap comprises a third set of pixels in a third color space, the third color space comprising an RGB color space.

12. The system of claim 11 , wherein the operations further comprise:

performing, by the render pipeline layer, a color conversion process based on the first pixel buffer and the second pixel buffer, the color conversion process converting the first set of pixels in the first color space to a first color converted set of pixels in the RGB color space and the second set of pixels in the second color space to a second color converted set of pixels in the RGB color space; and

generating a set of textures, based on the first color converted set of pixels and the second color converted set of pixels, for the cascaded render passes; and

generating rendering information corresponding the cascaded render passes, each of the cascaded render passes comprising a respective set of image processing operations to render at least one texture from the set of textures, the cascaded render passes comprising multiple render passes that are ordered starting from a first render pass up to a last render pass.

13. The system of claim 12 , wherein the operations further comprise:

determining a render destination for the set of textures, the render destination comprising a framebuffer of a rendering pipeline, the framebuffer comprising a portion of memory provided by an eyewear device that stores a final image data for display by a display of the eyewear device.

14. The system of claim 12 , wherein the operations further comprise:

performing, by a render engine of the render pass layer, each render pass from the cascaded render passes for display by a display of an eyewear device, the performing comprising:

rendering, using a first render pipeline, the last render pass from the cascaded render passes, the last render pass corresponding to a particular set of augmented reality content generators to apply based on the respective set of image processing operations to render at least one texture from the set of textures;

rendering, using a second render pipeline, a second render pass from the cascaded render passes, the second render pass corresponding to a second particular set of augmented reality content generators to apply based on the respective set of image processing operations to render at least one different texture from the set of textures; and

rendering, using a third render pipeline, the first render pass from the cascaded render passes, the first render pass corresponding to a third particular set of augmented reality content generators to apply based on the respective set of image processing operations to render at least one second different texture from the set of textures.

15. The system of claim 14 , wherein performing, by the render engine of the render pass layer, each render pass from the cascaded render passes is based on a ping-pong render pass process, the ping-pong render pass process comprises sending output image data of the first render pipeline as input image data to the second render pipeline, and sending output image data of the second render pipeline as input image data to the first render pipeline.

16. The system of claim 15 , wherein the operations further comprise:

sending output image data from the third render pipeline to a render destination comprising memory provided by an eyewear device.

17. The system of claim 14 , wherein the operations further comprise:

providing a final output image from the render engine of the render pass layer after performing each of the cascaded render passes.

18. A non-transitory computer-readable medium comprising instructions, which when executed by a computing device, cause the computing device to perform operations comprising:

receiving, by a client device from a storage device, first image data captured by the client device at a previous time;

receiving first metadata corresponding to at least a first image processing operation and a second image processing operation;

generating, in a first render pass, second image data based on the first metadata and the first image processing operation performed on the first image data;

generating, in a second render pass, third image data based on the first metadata and the second image processing operation performed on the second image data;

generating second metadata comprising information corresponding to the third image data;

generating a composite AR content item comprising the second metadata, the third image data, and the first image data;

providing a multi-layer image processing pipeline, the multi-layer image processing pipeline comprising a feature layer, a render pipeline layer, and a render pass layer;

receiving, by the render pipeline layer, the first image data, the first image data comprising a first pixel buffer, a second pixel buffer, and a bitmap; and

generating, using the feature layer, cascaded render passes, the cascaded render passes comprising a sequence of respective render passes in which an order of the respective render passes is fixed based at least in part on metadata corresponding to a set of augmented reality content generators to apply for each of the respective render passes, each of the set of augmented reality content generators corresponding to a respective image processing effect or operation related to an augmented reality object or augmented reality content.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2024
From: ALQADI, FAISAL; CANSIZOGLU, OMER; DARMANCEV, NICOLAI; GOLUB, IVAN; LEE, HWAN MOON; LI, XIAORONG; MEISENHOLDER, DAVID; ROBERTS, QUINTON; ZHOU, YIHUAN
To: SNAP INC.
Reel/Frame 066111/0169 →
Continuity (3)
Continuation 17646445 · Dec 29, 2021
Provisional Application 63132970 · Dec 31, 2020
Related Publication 20240144616A1 · May 2, 2024
References Cited (66)
US 11880949B2 · Alqadi et al. · 2024 [cited by applicant]
US 20170221272A1 · Li et al. · 2017 [cited by applicant]
US 20170301140A1 · Smith et al. · 2017 [cited by applicant]
US 20190122443A1 · Stöcker · 2019 [cited by applicant]
US 20190155465A1 · Maxwell · 2019 [cited by applicant]
US 20200051334A1 · Leung et al. · 2020 [cited by applicant]
US 20210319625A1 · Goodrich et al. · 2021 [cited by applicant]
US 20210345016A1 · Nakano et al. · 2021 [cited by applicant]
US 20210389850A1 · Charlton et al. · 2021 [cited by applicant]
US 20210389996A1 · Charlton et al. · 2021 [cited by applicant]
US 20220100812A1 · Anvaripour et al. · 2022 [cited by applicant]
US 20220101355A1 · Luo et al. · 2022 [cited by applicant]
US 20220101419A1 · Luo et al. · 2022 [cited by applicant]
US 20220101565A1 · Anvaripour et al. · 2022 [cited by applicant]
US 20220101606A1 · Canberk et al. · 2022 [cited by applicant]
US 20220101610A1 · Anvaripour et al. · 2022 [cited by applicant]
US 20220101614A1 · Luo et al. · 2022 [cited by applicant]
US 20220206572A1 · Goodrich · 2022 [cited by applicant]
US 20220207804A1 · Collins et al. · 2022 [cited by applicant]
US 20220207840A1 · Cansizoglu et al. · 2022 [cited by applicant]
US 20220207841A1 · Alqadi et al. · 2022 [cited by applicant]
US 20220207869A1 · Goodrich · 2022 [cited by applicant]
US 20220319060A1 · Marinenko et al. · 2022 [cited by applicant]
US 20220319127A1 · Tkachenko et al. · 2022 [cited by applicant]
US 20220319229A1 · Babanin et al. · 2022 [cited by applicant]
US 20220319230A1 · Golobokov et al. · 2022 [cited by applicant]
US 20220319231A1 · Pankov et al. · 2022 [cited by applicant]
US 20220321804A1 · Demidov et al. · 2022 [cited by applicant]
US 20220335661A1 · Spear et al. · 2022 [cited by applicant]
US 20230214912A1 · Boscolo et al. · 2023 [cited by applicant]
US 20230214913A1 · Boscolo et al. · 2023 [cited by applicant]
US 20230215118A1 · Causse et al. · 2023 [cited by applicant]
CN 117043863A · 2023 [cited by applicant]
CN 117441193 · 2024 [cited by applicant]
KR 20150131358 · 2015 [cited by applicant]
KR 20160113172 · 2016 [cited by applicant]
KR 20190106849 · 2019 [cited by applicant]
KR 20190123300 · 2019 [cited by applicant]
KR 102728595 · 2024 [cited by applicant]
KR 102728647 · 2024 [cited by applicant]
WO WO2022147457A1 · 2022 [cited by applicant]
WO WO2022147458A1 · 2022 [cited by applicant]
WO 2022263892 · 2022 [cited by applicant]
“U.S. Appl. No. 17/646,431, Non Final Office Action mailed Aug. 14, 2023”, 13 pgs. [cited by applicant]
“U.S. Appl. No. 17/646,431, Response filed Nov. 14, 2023 to Non Final Office Action mailed Aug. 14, 2023”, 14 pgs. [cited by applicant]
“U.S. Appl. No. 17/646,445, Non Final Office Action mailed May 24, 2023”, 15 pgs. [cited by applicant]
“U.S. Appl. No. 17/646,445, Notice of Allowance mailed Sep. 7, 2023”, 5 pgs. [cited by applicant]
“U.S. Appl. No. 17/646,445, Response filed Aug. 24, 2023 to Non Final Office Action mailed May 24, 2023”, 11 pgs. [cited by applicant]
“Chinese Application Serial No. 202180088435.4, Notification to Make Rectification mailed Aug. 7, 2023”, w/o English Translation, 2 pgs. [cited by applicant]
“Chinese Application Serial No. 202180088444.3, Office Action mailed Aug. 14, 2023”, w/o English translation, 2 pgs. [cited by applicant]
“Chinese Application Serial No. 202180088444.3, Response filed Dec. 13, 2023 to Office Action mailed Aug. 14, 2023”, w/o English Translation, 3 pgs. [cited by applicant]
“International Application Serial No. PCT/US2021/073167, International Preliminary Report on Patentability mailed Jul. 13, 2023”, 9 pgs. [cited by applicant]
“International Application Serial No. PCT/US2021/073167, International Search Report mailed Apr. 26, 2022”, 4 pgs. [cited by applicant]
“International Application Serial No. PCT/US2021/073167, Written Opinion mailed Apr. 26, 2022”, 7 pgs. [cited by applicant]
“International Application Serial No. PCT/US2021/073168, International Preliminary Report on Patentability mailed Jul. 13, 2023”, 9 pgs. [cited by applicant]
“International Application Serial No. PCT/US2021/073168, International Search Report mailed Jun. 1, 2022”, 4 pgs. [cited by applicant]
“International Application Serial No. PCT/US2021/073168, Written Opinion mailed Jun. 1, 2022”, 7 pgs. [cited by applicant]
Tholsgard, Gabriel, “3D rendering and interaction in an augmented reality mobile system”, Uppsala University, [Online] Retrieved from the Internet: <URL: http://uu.diva-portal.org/smash/get/diva2:692329/FULLTEXT02.pdf>,… [cited by applicant]
U.S. Appl. No. 17/646,431, filed Dec. 29, 2021, Recording Augmented Reality Content on an Eyewear Device. [cited by applicant]
U.S. Appl. No. 17/646,445 U.S. Pat. No. 11,880,949, filed Dec. 29, 2021, Post-Capture Editing of Augmented Reality Content. [cited by applicant]
“U.S. Appl. No. 17/646,431, Final Office Action mailed Feb. 22, 2024”, 16 pgs. [cited by applicant]
“U.S. Appl. No. 17/646,431, Response filed May 22, 2024 to Final Office Action mailed Feb. 22, 2024”, 14 pgs. [cited by applicant]
“Korean Application Serial No. 10-2023-7025990, Notice of Preliminary Rejection mailed Jun. 10, 2024”, w/ English translation, 11 pgs. [cited by applicant]
“Korean Application Serial No. 10-2023-7026015, Notice of Preliminary Rejection mailed Jun. 17, 2024”, w/ English translation, 13 pgs. [cited by applicant]
“Korean Application Serial No. 10-2023-7026015, Response filed Aug. 13, 2024 to Notice of Preliminary Rejection mailed Jun. 17, 2024”, w current English claims, 26 pgs. [cited by applicant]
“U.S. Appl. No. 17/646,431, Non Final Office Action mailed Sep. 19, 2024”, 19 pgs. [cited by applicant]
Cited By (2)
US 12,450,336 US 12,450,402