IP Library › Granted Patent US 11,968,381
Granted Patent B2
US 11,968,381 · App. 17/651,015 · Granted Apr 23, 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,968,381
App. No.
17/651,015
Granted
Apr 23, 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 (76)

1. A method for sharing frame decompression circuitry, the method comprising:

accepting, from a video decoder, a first request for a first decompressed frame;

decompressing a first compressed frame to produce the first decompressed frame;

providing, to the video decoder, the first decompressed frame responsive to the first request;

accepting, from a display controller, a second request for a second decompressed frame;

decompressing a second compressed frame to produce the second decompressed frame; and

providing, to the display controller, the second decompressed frame via a video buffer responsive to the second request, the providing of the second decompressed frame including propagating one or more display lines from the video buffer to the display controller based on at least one value in a synchronization register.

2. The method of claim 1 , wherein:

the first decompressed frame comprises a decompressed reference frame; and

the second decompressed frame comprises a decompressed display frame.

3. The method of claim 2 , wherein:

the method is performed by the frame decompression circuitry; and

the frame decompression circuitry comprises a frame decompressor and a frame decompressor controller.

4. The method of claim 1 , wherein the providing, to the display controller, the second decompressed frame comprises:

providing the second decompressed frame to the display controller via a video bus that extends at least between the frame decompression circuitry and the display controller.

5. The method of claim 1 , further comprising:

using, by a stream decoder of the video decoder, the video buffer to decode a video stream.

6. The method of claim 1 , wherein the providing the second decompressed frame to the display controller via the video buffer further comprises:

updating, by the frame decompression circuitry, the at least one value in the synchronization register to indicate that at least one display line has been stored in the video buffer; and

polling, by the display controller, the at least one value in the synchronization register to determine that the at least one display line has been newly stored in the video buffer.

7. The method of claim 1 , wherein the providing the second decompressed frame to the display controller via the video buffer further comprises:

updating, by the display controller, the at least one value in the synchronization register to indicate that at least one display line has been retrieved from the video buffer; and

polling, by the frame decompression circuitry, the at least one value in the synchronization register to determine that the at least one display line can be overwritten with new data in the video buffer.

8. The method of claim 1 , further comprising:

decoding, by a stream decoder of the video decoder, a video stream to produce multiple decoded frames; and

compressing, by a frame compressor, the multiple decoded frames to produce multiple compressed frames, the multiple compressed frames including the first compressed frame and the second compressed frame.

9. The method of claim 8 , wherein:

the decompressing the first compressed frame to produce the first decompressed frame comprises decompressing, by a frame decompressor, the first compressed frame on a frame-level to produce the first decompressed frame; and

the decompressing the second compressed frame to produce the second decompressed frame comprises decompressing, by the frame decompressor, the second compressed frame on a frame-level to produce the second decompressed frame.

10. The method of claim 1 , further comprising:

sharing the frame decompression circuitry by ordering the decompressing of the first compressed frame and the decompressing of the second compressed frame based on a first priority that is associated with the first request and on a second priority that is associated with the second request.

11. The method of claim 1 , further comprising:

sharing the frame decompression circuitry between at least the video decoder and the display controller using timeslots.

12. The method of claim 11 , further comprising:

rotating access to the frame decompression circuitry between at least the video decoder and the display controller based on respective prescribed lengths of respective timeslots.

13. The method of claim 11 , further comprising:

switching access to the frame decompression circuitry between at least the video decoder and the display controller responsive to receipt of at least one interrupt.

14. An electronic device that shares frame decompression circuitry, the electronic device comprising:

means for accepting, from a video decoder, a first request for a first decompressed frame;

means for decompressing a first compressed frame to produce the first decompressed frame;

means for providing, to the video decoder, the first decompressed frame responsive to the first request;

means for accepting, from a display controller, a second request for a second decompressed frame;

means for decompressing a second compressed frame to produce the second decompressed frame; and

means for providing, to the display controller, the second decompressed frame responsive to the second request, the means for providing the second decompressed frame including:

means for buffering video to propagate the second decompressed frame to the display controller; and

means for synchronizing propagation of the second decompressed frame.

15. The electronic device of claim 14 , further comprising:

means for decoding a video stream to produce multiple decoded frames; and

means for compressing the multiple decoded frames to produce multiple compressed frames, the multiple compressed frames including the first compressed frame and the second compressed frame.

16. An electronic device for sharing frame decompression circuitry, the electronic device comprising:

at least one integrated circuit configured to:

decode, by a video decoder, a video stream to produce multiple decoded frames, the video decoder including a frame decompressor and a frame decompressor controller;

accept, from the video decoder at the frame decompressor controller, a first request for a first decompressed frame;

decompress, by the frame decompressor, a first compressed frame to produce the first decompressed frame, the first compressed frame produced from the multiple decoded frames;

provide, to the video decoder, the first decompressed frame responsive to the first request;

accept, from a display controller at the frame decompressor controller, a second request for a second decompressed frame;

decompress, by the frame decompressor, a second compressed frame to produce the second decompressed frame, the second compressed frame produced from the multiple decoded frames;

provide, to the display controller, the second decompressed frame responsive to the second request;

store, by the frame decompressor, at least a portion of the second decompressed frame in a video buffer; and

write, by the frame decompressor controller, into a synchronization register at least one value indicative of a stored status of the portion of the second decompressed frame.

17. The electronic device of claim 16 , wherein the at least one integrated circuit is configured to:

provide the second decompressed frame to the display controller from the video buffer using a video bus coupled to the display controller.

18. The electronic device of claim 16 , wherein the at least one integrated circuit is configured to:

retrieve, by the display controller, the portion of the second decompressed frame from the video buffer responsive to the at least one value indicative of the stored status of the portion of the second decompressed frame; and

write, by the display controller, into the synchronization register at least another value indicative of a retrieved status of the portion of the second decompressed frame.

19. The method of claim 3 , further comprising:

managing, by the frame decompressor controller, the first request and the second request using at least one request queue.

20. A method for sharing frame decompression circuitry, the method comprising:

accepting, from a video decoder, a first request for a first decompressed frame;

decompressing a first compressed frame to produce the first decompressed frame;

providing, to the video decoder, the first decompressed frame responsive to the first request;

accepting, from a display controller, a second request for a second decompressed frame;

decompressing a second compressed frame to produce the second decompressed frame;

providing, to the display controller, the second decompressed frame responsive to the second request;

sharing the frame decompression circuitry between at least the video decoder and the display controller using timeslots; and

switching access to the frame decompression circuitry between at least the video decoder and the display controller responsive to receipt of at least one interrupt.

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