IP Library › Granted Patent US 12,238,311
Granted Patent B2
US 12,238,311 · App. 18/052,807 · Granted Feb 25, 2025

Priority-based video encoding and transmission

Inventors: Sorin C. Cismas (Saratoga, CA); Jim C. Chou (San Jose, CA); Ling Su (Los Altos, CA); Keangpo R. Ho (San Jose, CA)
Assignee: Apple Inc.
H04N19/37H04N19/119H04N19/164H04N19/167H04N19/174H04N19/176H04N19/1883H04N19/46H04N19/63
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,238,311
App. No.
18/052,807
Granted
Feb 25, 2025
Kind
B2
Abstract

A video encoding system in which pixel data is decomposed into frequency bands prior to encoding. The frequency bands are organized into blocks that are provided to a block-based encoder that encodes the blocks and passes the encoded blocks to a wireless interface that packetizes the blocks for transmittal over a wireless connection. The encoder may categorize the encoded frequency bands into multiple priority levels, and may tag each frequency block with metadata indicating the frequency band represented in the block, the priority of the frequency band, and timing information. The wireless interface may then transmit or drop packets according to the priority levels of the encoded frequency blocks in the packets and/or according to the timing information of the frequency blocks in the packets.

Claims (56)

1. A device, comprising:

a display subsystem; and

one or more processors configured to:

receive packets each including one or more blocks, each block including compressed frequency data and a respective instance of timing information;

drop one or more of the blocks from one or more of the packets based on the respective instances of timing information;

decompress the compressed frequency data from the blocks that were not dropped;

reconstruct pixel data for a video frame from the decompressed frequency data; and

provide the reconstructed pixel data to the display subsystem for display.

2. The device as recited in claim 1 , wherein each block further includes a priority level corresponding to a frequency band of the respective compressed frequency data, and wherein, to decompress the compressed frequency data from the blocks that were not dropped, the one or more processors are further configured to decompress the compressed frequency data from the blocks according to the respective priority levels of the blocks.

3. The device as recited in claim 2 , wherein the one or more processors are further configured to prioritize blocks with higher priority levels in said decompress the compressed frequency data, wherein lower frequency bands are assigned higher priority levels, and higher frequency bands are assigned lower priority levels.

4. The device as recited in claim 1 , wherein the timing information includes a deadline for receiving the respective compressed frequency data at the device, and wherein the one or more processors are configured to drop the one or more blocks from the one or more packets upon determining that the deadline for receiving the compressed frequency data in the one or more blocks has expired.

5. The device as recited in claim 1 , wherein the packets are received from a video encoding system and wherein the packets have been generated by the video encoding system by:

decomposing pixel blocks from the video frame into a plurality of frequency bands;

organizing the frequency bands from the pixel blocks into a plurality of blocks each including frequency data for one of the frequency bands;

applying an encoding technique to the blocks to compress the frequency data for each frequency band;

assigning respective instances of timing information to respective ones of the plurality of blocks; and

transmitting packets each including one or more of the blocks to the device.

6. The device as recited in claim 5 , wherein the packets have been further generated by the video encoding system by:

assigning respective priority levels to the frequency bands; and

prioritizing transmission of the blocks of the device according to the assigned priority levels.

7. The device as recited in claim 5 , wherein the video encoding system is a component of a base station.

8. The device as recited in claim 1 , wherein the packets are received via a wireless connection.

9. The device as recited in claim 1 , wherein the device is a head-mounted display (HMD) device.

10. A method, comprising:

one or more processors configured to implement:

receiving packets each including one or more blocks, each block including compressed frequency data and a respective instance of timing information;

dropping one or more of the blocks from one or more of the packets based on the respective instances of timing information;

decompressing the compressed frequency data from the blocks that were not dropped;

reconstructing pixel data for a video frame the decompressed frequency data; and

providing the reconstructed pixel data to a display subsystem for display.

11. The method as recited in claim 10 , further comprising:

assigning priority levels to respective frequency bands of a plurality of frequency bands, wherein lower frequency bands are assigned higher priority levels and higher frequency bands are assigned lower priority levels; and

wherein decompressing the compressed frequency data from the blocks that were not dropped comprises decompressing the compressed frequency data from the blocks according to the assigned priority levels.

12. The method as recited in claim 10 , wherein the respective instances of timing information include corresponding deadlines for receiving the respective compressed frequency data, and wherein dropping one or more of the blocks from one or more of the packets based on the respective timing information comprises dropping the one or more blocks upon determining that the corresponding deadlines for receiving the compressed frequency data in the one or more blocks have expired.

13. The method as recited in claim 10 , wherein the packets are received via a wireless connection.

14. The method as recited in claim 10 , wherein the one or more processors and the display subsystem are components of a head-mounted display (HMD) device.

15. A system, comprising:

a video decoding subsystem comprising one or more processors;

a display subsystem; and

a video encoding subsystem comprising one or more additional processors configured to:

decompose pixel blocks from a video frame into a plurality of frequency bands;

organize the plurality of frequency bands into a plurality of blocks each including frequency data for one of the frequency bands;

apply an encoding technique to the blocks to compress the frequency data for each frequency band;

assign respective instances of timing information to respective ones of the plurality of blocks; and

transmit packets each including one or more of the blocks to the video decoding subsystem;

wherein the one or more processors of the video decoding subsystem are configured to

receive the packets each including one or more blocks, each block including compressed frequency data and a respective instance of timing information;

drop one or more of the blocks from one or more of the packets based on the respective timing information;

decompress the compressed frequency data from the blocks that were not dropped;

reconstruct pixel data for the video frame from the decompressed frequency data; and

provide the reconstructed pixel data to the display subsystem for display.

16. The system as recited in claim 15 , wherein each block further includes a priority level corresponding to a frequency band of the respective compressed frequency data, and wherein, to decompress the compressed frequency data from the blocks that were not dropped, the one or more processors of the video decoding subsystem are further configured to decompress the compressed frequency data from the blocks according to priority levels assigned to the plurality of frequency bands.

17. The system as recited in claim 15 , wherein the video encoding subsystem is further configured to prioritize transmission of the blocks the video decoding subsystem according to priority levels assigned to the plurality of frequency bands.

18. The system as recited in claim 15 , wherein the respective instances of timing information include corresponding deadlines for receiving the respective compressed frequency data at the video decoding subsystem, and wherein the one or more processors of the video decoding subsystem are configured to drop the one or more blocks from the one or more packets upon determining that the corresponding deadlines for receiving the compressed frequency data in the one or more blocks have expired.

19. The system as recited in claim 15 , wherein the packets are transmitted via a wireless connection.

20. The system as recited in claim 15 , wherein the system is a virtual or mixed reality (VR/MR) system.

Continuity (3)
Continuation 17252697
Provisional Application 62691417 · Jun 28, 2018
Related Publication 20230092305A1 · Mar 23, 2023
References Cited (84)
US 5214741A · Akamine · 1993 [cited by examiner]
US 5392071A · Richards · 1995 [cited by applicant]
US 6640012B1 · Shnaider et al. · 2003 [cited by applicant]
US 6744738B1 · Park · 2004 [cited by applicant]
US 6909811B1 · Kajiwara · 2005 [cited by applicant]
US 6937988B1 · Hemkumar · 2005 [cited by examiner]
US 6985158B2 · Miller et al. · 2006 [cited by applicant]
US 7333664B2 · Sakuyama et al. · 2008 [cited by applicant]
US 7454075B2 · Fukuhara et al. · 2008 [cited by applicant]
US 7739714B2 · Guedalia · 2010 [cited by applicant]
US 8249367B2 · Park et al. · 2012 [cited by applicant]
US 8503536B2 · Zuo et al. · 2013 [cited by applicant]
US 9955176B2 · Puri · 2018 [cited by applicant]
US 11451788B2 · Pan et al. · 2022 [cited by applicant]
US 11496758B2 · Cismas · 2022 [cited by examiner]
US 11653026B2 · Chou et al. · 2023 [cited by applicant]
US 20030118242A1 · Nakayama · 2003 [cited by applicant]
US 20040076332A1 · Lin et al. · 2004 [cited by applicant]
US 20040091158A1 · Miled · 2004 [cited by applicant]
US 20040207635A1 · Miller · 2004 [cited by applicant]
US 20040213473A1 · Ohira · 2004 [cited by applicant]
US 20050071876A1 · van Beek · 2005 [cited by applicant]
US 20050105807A1 · Suino et al. · 2005 [cited by applicant]
US 20060008006A1 · Cha · 2006 [cited by applicant]
US 20060215766A1 · Wang et al. · 2006 [cited by applicant]
US 20080019398A1 · Genossar · 2008 [cited by examiner]
US 20080062322A1 · Dey · 2008 [cited by applicant]
US 20080181522A1 · Hosaka et al. · 2008 [cited by applicant]
US 20080219570A1 · Marcellin et al. · 2008 [cited by applicant]
US 20080304574A1 · Fukuhara · 2008 [cited by applicant]
US 20090003440A1 · Karczewicz · 2009 [cited by applicant]
US 20090109652A1 · Sakane · 2009 [cited by applicant]
US 20090189981A1 · Siann et al. · 2009 [cited by applicant]
US 20090190652A1 · Kim · 2009 [cited by examiner]
US 20100034478A1 · Kajiwara · 2010 [cited by applicant]
US 20100098162A1 · Lu · 2010 [cited by applicant]
US 20110250948A1 · Gagner · 2011 [cited by examiner]
US 20140192862A1 · Flynn et al. · 2014 [cited by applicant]
US 20150092854A1 · Orr et al. · 2015 [cited by applicant]
US 20150156517A1 · Lu · 2015 [cited by applicant]
US 20150215621A1 · Liu et al. · 2015 [cited by applicant]
US 20160227435A1 · Freeman et al. · 2016 [cited by applicant]
US 20160350056A1 · Makar · 2016 [cited by examiner]
US 20160353146A1 · Weaver et al. · 2016 [cited by applicant]
US 20170041652A1 · Ko · 2017 [cited by applicant]
US 20170155905A1 · Puri et al. · 2017 [cited by applicant]
US 20170227765A1 · Mammou et al. · 2017 [cited by applicant]
US 20170287112A1 · Stafford et al. · 2017 [cited by applicant]
US 20170301065A1 · Adsumilli · 2017 [cited by applicant]
US 20170339416A1 · Hendry et al. · 2017 [cited by applicant]
US 20180040164A1 · Newman · 2018 [cited by applicant]
US 20180063548A1 · Namjoshi · 2018 [cited by examiner]
US 20180097731A1 · Mutoh et al. · 2018 [cited by applicant]
US 20190068968A1 · Jun · 2019 [cited by applicant]
US 20230009707A1 · Pan et al. · 2023 [cited by applicant]
US 20230254510A1 · Chou et al. · 2023 [cited by applicant]
CN 101299819 · 2008 [cited by applicant]
CN 102056011 · 2011 [cited by applicant]
CN 103141097 · 2013 [cited by applicant]
CN 106031172 · 2016 [cited by applicant]
CN 106612432 · 2017 [cited by applicant]
CN 107005698 · 2017 [cited by applicant]
EP 1073275 · 2001 [cited by applicant]
EP 1301021 · 2003 [cited by applicant]
EP 1311125 · 2003 [cited by applicant]
EP 2270717 · 2011 [cited by applicant]
JP H09212623 · 1997 [cited by applicant]
JP 2003202850 · 2003 [cited by applicant]
JP 2005094578 · 2005 [cited by applicant]
JP 2006222555 · 2006 [cited by applicant]
JP 2007319711 · 2007 [cited by applicant]
JP 2008187574 · 2008 [cited by applicant]
JP 2009044483 · 2009 [cited by applicant]
JP 2010239288 · 2010 [cited by applicant]
JP 2016220040 · 2016 [cited by applicant]
JP 2016537845 · 2016 [cited by applicant]
JP 2018061141 · 2018 [cited by applicant]
JP 7249364 · 2023 [cited by applicant]
KR 20060106930A · 2006 [cited by applicant]
WO 2005032137 · 2005 [cited by applicant]
WO 2020006287 · 2020 [cited by applicant]
International Search Report and Written Opinion from PCT/US2019/039591, Dated Oct. 23, 2019, pp. 1-14. [cited by applicant]
Office Action and Search Report from Chinese Application 2019800401366, Dated Feb. 28, 2022, pp. 1-17. [cited by applicant]
Anjul Patney et al., “Towards Foveated Rendering for Gaze-tracked Virtual Reality”, ACM Transactions on Graphics, ACM, vol. 35, No. 6, Nov. 11, 2016, pp. 1-12. [cited by applicant]