IP Library › Granted Patent US 11,962,795
Granted Patent B2
US 11,962,795 · App. 17/815,182 · Granted Apr 16, 2024

Video frame codec architectures

Inventors: Aki Oskari Kuusela (Palo Alto, CA); Ville-Mikko Rautio (Cupertino, CA)
Assignee: Google LLC
H04N19/44H04N19/172H04N19/20H04N19/42H04N19/40
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 11,962,795
App. No.
17/815,182
Granted
Apr 16, 2024
Kind
B2
Abstract

Techniques and apparatuses are described for video frame codec architectures. A frame decompressor decompresses compressed frames to produce decompressed frames. A frame decompressor controller arbitrates shared access to the frame decompressor. Multiple cores of an SoC request to receive a decompressed frame from the frame decompressor via the frame decompressor controller. The frame decompressor controller can implement a request queue and can order the servicing of requests based on priority of the requests or requesting cores. The frame decompressor controller can also establish a time-sharing protocol for access by the multiple cores. In some implementations, a video decoder is logically integrated with the frame decompressor and stores portions of a decompressed frame in a video buffer, and a display controller retrieves the portions for display using a synchronization mechanism. In analogous manners, a frame compressor controller can arbitrate shared access to a frame compressor for the multiple cores.

Claims (71)

1. An electronic device comprising:

a frame decompressor configured to individually decompress at a frame-level multiple compressed frames to produce multiple decompressed frames, the multiple compressed frames respectively derived from multiple decoded frames;

a frame decompressor controller coupled to the frame decompressor and configured to arbitrate access to the frame decompressor for multiple cores;

a first core of the multiple cores coupled to the frame decompressor controller, the first core configured to obtain via the frame decompressor controller a decompressed frame of the multiple decompressed frames produced at the frame-level by the frame decompressor; and

a second core of the multiple cores coupled to the frame decompressor controller, the second core configured to obtain via the frame decompressor controller another decompressed frame of the multiple decompressed frames produced at the frame-level by the frame decompressor,

the first core and the second core configured to perform video transcoding.

2. The electronic device of claim 1 , wherein:

the first core is configured to decode a video stream to produce the multiple decoded frames, at least one decoded frame of the multiple decoded frames produced using the decompressed frame; and

the second core is configured to encode one or more decoded frames of the multiple decoded frames using the other decompressed frame for the video transcoding.

3. The electronic device of claim 2 , wherein:

the first core comprises a video decoder that includes a stream decoder configured to decode the video stream to produce the multiple decoded frames;

the frame decompressor is logically integrated with the video decoder; and

the second core comprises an encoder configured to encode the multiple decoded frames to perform, at least partially, the video transcoding.

4. The electronic device of claim 1 , wherein the frame decompressor controller comprises:

a request queue configured to store multiple requests, each request corresponding to at least one decompressed frame; and

a request manager configured to receive the multiple requests from the multiple cores and to insert the multiple requests into the request queue.

5. The electronic device of claim 4 , wherein the frame decompressor controller comprises a priority manager configured to order servicing of the multiple requests in accordance with multiple priorities corresponding to the multiple requests.

6. The electronic device of claim 1 , wherein the frame decompressor controller comprises a time-sharing protocol handler configured to establish a time-sharing protocol to share the frame decompressor between the multiple cores.

7. The electronic device of claim 6 , wherein the time-sharing protocol handler is configured to at least one of:

establish the time-sharing protocol to include multiple timeslots that are assigned to at least one core of the multiple cores; or

establish the time-sharing protocol to permit reception of an interrupt signal from a core of the multiple cores, the interrupt signal indicative of a request for at least one decompressed frame.

8. The electronic device of claim 1 , further comprising:

a frame compressor configured to individually compress at the frame-level one or more uncompressed frames to produce one or more compressed frames; and

a frame compressor controller coupled to the frame compressor and configured to arbitrate access to the frame compressor for the multiple cores.

9. The electronic device of claim 8 , wherein the frame compressor is configured to individually compress at the frame-level the multiple decoded frames to produce the multiple compressed frames.

10. The electronic device of claim 1 , wherein the frame decompressor is configured to implement a lossless frame-level compression algorithm to produce the multiple decompressed frames respectively from the multiple compressed frames.

11. A method for sharing frame decompression circuitry between multiple cores, the method comprising:

compressing at a frame-level a first decoded frame to produce a first compressed frame;

compressing at the frame-level a second decoded frame to produce a second compressed frame;

accepting, from a first core, a first request for a first decompressed frame;

individually decompressing at the frame-level the first compressed frame to produce the first decompressed frame;

providing, to the first core, the first decompressed frame responsive to the first request;

accepting, from a second core, a second request for a second decompressed frame;

individually decompressing at the frame-level the second compressed frame to produce the second decompressed frame;

providing, to the second core, the second decompressed frame responsive to the second request; and

performing, by the first core and the second core, video transcoding.

12. The method of claim 11 , wherein the performing comprises:

decoding, by the first core, a video stream to produce multiple decoded frames including the first decoded frame and the second decoded frame; and

encoding, by the second core, the multiple decoded frames to produce another video stream.

13. The method of claim 12 , wherein:

the decoding comprises decoding, by the first core, the video stream to produce at least one decoded frame of the multiple decoded frames using the first decompressed frame; and

the encoding comprises encoding, by the second core, one or more decoded frames of the multiple decoded frames to produce the other video stream using the second decompressed frame.

14. The method of claim 11 , further comprising:

accepting, from a third core, a third request for a third decompressed frame;

individually decompressing at the frame-level a third compressed frame to produce the third decompressed frame; and

providing, to the third core, the third decompressed frame responsive to the third request, wherein

the first request is indicative of the first core;

the second request is indicative of the second core; and

the third request is indicative of the third core.

15. The method of claim 11 , further comprising:

establishing a time-sharing protocol for access to the frame decompression circuitry by at least the first core and the second core.

16. The method of claim 15 , wherein the establishing comprises:

receiving, during a timeslot that corresponds to the first core, an interrupt from the second core; and

responsive to receipt of the interrupt, switching from performing decompression for the first core to performing decompression for the second core.

17. The method of claim 11 , further comprising:

performing the providing of the first decompressed frame and the providing of the second decompressed frame in an order that is at least partially dependent on a relative priority between the first request and the second request.

18. The method of claim 11 , further comprising:

accepting, from multiple cores, multiple requests for respective ones of multiple compressed frames;

compressing multiple decompressed frames to respectively produce the multiple compressed frames; and

providing, to the multiple cores, the multiple compressed frames responsive to the multiple requests.

19. An electronic device comprising:

a frame decompressor configured to decompress multiple compressed frames to produce multiple decompressed frames;

a frame decompressor controller coupled to the frame decompressor and configured to arbitrate access to the frame decompressor for multiple cores, the frame decompressor controller comprising a time-sharing protocol handler configured to establish a time-sharing protocol to share the frame decompressor between the multiple cores, the time-sharing protocol handler configured to at least one of:

establish the time-sharing protocol to include multiple timeslots that are assigned to at least one core of the multiple cores; or

establish the time-sharing protocol to permit reception of an interrupt signal from a core of the multiple cores, the interrupt signal indicative of a request for at least one decompressed frame;

a first core of the multiple cores coupled to the frame decompressor controller, the first core configured to obtain via the frame decompressor controller a decompressed frame of the multiple decompressed frames produced by the frame decompressor; and

a second core of the multiple cores coupled to the frame decompressor controller, the second core configured to obtain via the frame decompressor controller another decompressed frame of the multiple decompressed frames produced by the frame decompressor,

the first core and the second core configured to perform video transcoding.

20. The electronic device of claim 19 , wherein:

the first core is configured to decode a video stream using the decompressed frame to produce at least one decoded frame of multiple decoded frames; and

the second core is configured to encode one or more decoded frames of the multiple decoded frames using the other decompressed frame for the video transcoding.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 26, 2022
From: KUUSELA, AKI OSKARI; RAUTIO, VILLE-MIKKO
To: GOOGLE LLC
Reel/Frame 060630/0474 →
Continuity (5)
Continuation 17651015 · Feb 14, 2022
Division 16870531 · May 8, 2020
Division 15844334 · Dec 15, 2017
Provisional Application 62579820 · Oct 31, 2017
Related Publication 20220360803A1 · Nov 10, 2022
Cited By (1)
US 12,382,076