IP Library Granted Patent US 12,069,269
Granted Patent B2
US 12,069,269 · App. 18/153,131 · Granted Aug 20, 2024

Systems and methods for encoding a video stream

Inventors: Byeongdoo Choi (Palo Alto, CA); Stephan Wenger (Hillsborough, CA); Shan Liu (San Jose, CA)
Assignee: TENCENT AMERICA LLC
H04N19/132H04N19/176H04N19/30H04N19/46
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,069,269
App. No.
18/153,131
Granted
Aug 20, 2024
Kind
B2
Abstract

A method, computer program, and computer system are provided for video coding. The video coding includes decoding one or more previously encoded frames of a video source that are designated as reference frames for the video source, searching the reference frames for one or more candidate pixel blocks for an input frame of the video source, and encoding the input frame based on the one or more candidate pixel blocks.

Claims (63)

1. A method of video coding, executable by a processor, comprising:

retrieving one or more previously encoded frames of a video source that are designated as reference frames for the video source;

searching the reference frames for one or more candidate pixel blocks for an input frame of the video source; and

encoding the input frame in video data based on the one or more candidate pixel blocks,

wherein the video data includes a base layer corresponding to a background region of the input frame and a coded sub-picture sequence (CSPS) layer corresponding to a foreground region of the input frame, and

wherein the CSPS layer has a higher resolution than the base layer.

2. The method of claim 1 , further comprising:

generating one or more reference frames by reconstructing the retrieved one or more previously encoded frames based on the decoded frames; and

storing the one or more generated reference frames in a memory.

3. The method of claim 2 , wherein searching the reference frames for the one or more candidate pixel blocks for the input frame of the video source comprises:

searching reference frames stored in the memory for the one or more candidate pixel blocks.

4. The method of claim 1 , wherein encoding the input frame based on the one or more candidate pixel blocks for the input frame of the video source comprises:

coding a differences between pixel blocks of the input frame and the one or more candidate pixel blocks; and

generating symbols comprising information for the input frame.

5. The method of claim 1 , wherein encoding the input frame based on the one or more candidate pixel blocks for the input frame of the video source comprises:

encoding the input frame based on a coding type assigned to the input frame, the coding type comprising one of an intra picture coding type, a predictive picture coding type, and a bi-directionally predictive picture coding type.

6. The method of claim 1 , wherein encoding the input frame based on the one or more candidate pixel blocks for the input frame of the video source comprises:

subdividing the input frame into a plurality of sample blocks; and

encoding each of the plurality of sample blocks based on the one or more candidate pixel blocks for the input frame.

7. The method of claim 1 , further comprising:

generating a coded video sequence based on one or more symbols generated during the encoding of the input frame and an encoding of the one or more previously encoded frames, by compressing the one or more symbols; and

storing the coded video sequence in a storage device.

8. A computer system for video coding, the computer system comprising:

one or more computer-readable non-transitory storage media configured to store computer program code; and

one or more computer processors configured to access said computer program code and operate as instructed by said computer program code, said computer program code including:

first retrieving code configured to cause the one or more computer processors to retrieve one or more previously encoded frames of a video source that are designated as reference frames for the video source;

first retrieving code configured to cause the one or more computer processors to search the reference frames for one or more candidate pixel blocks for an input frame of the video source; and

first encoding code configured to cause the one or more computer processors to encode the input frame in video data based on the one or more candidate pixel blocks,

wherein the video data includes a base layer corresponding to a background region of the input frame and a coded sub-picture sequence (CSPS) layer corresponding to a foreground region of the input frame, and

wherein the CSPS layer has a higher resolution than the base layer.

9. The computer system of claim 8 , wherein the computer program code further includes:

generating code configured to cause the one or more computer processors to generate one or more reference frames by reconstructing the retrieved one or more previously encoded frames based on the decoded frames; and

storing code configured to cause the one or more computer processors to store the one or more generated reference frames in a memory.

10. The computer system of claim 9 , wherein the computer program code further includes:

second searching code configured to cause the one or more computer processors to search reference frames stored in the memory for the one or more candidate pixel blocks.

11. The computer system of claim 8 , wherein the computer program code further includes:

second encoding code configured to cause the one or more computer processors to encode differences between pixel blocks of the input frame and the one or more candidate pixel blocks; and

generating code configured to cause the one or more computer processors to generate symbols comprising information for the input frame.

12. The computer system of claim 8 , wherein the computer program code further includes:

encoding code configured to cause the one or more computer processors to encode the input frame based on a coding type assigned to the input frame, the coding type comprising one of an intra picture coding type, a predictive picture coding type, and a bi-directionally predictive picture coding type.

13. The computer system of claim 8 , wherein the computer program code further includes:

subdividing code configured to cause the one or more computer processors to subdivide the input frame into a plurality of sample blocks; and

encoding code configured to cause the one or more computer processors to encode each of the plurality of sample blocks based on the one or more candidate pixel blocks for the input frame.

14. The computer system of claim 8 , wherein the computer program code further includes:

generating code configured to cause the one or more computer processors to generate a coded video sequence based on one or more symbols generated during the encoding of the input frame and an encoding of the one or more previously encoded frames, by compressing the one or more symbols; and

storing code configured to cause the one or more computer processors to store the coded video sequence in a storage device.

15. A non-transitory computer readable medium having stored thereon a computer program for video coding, the computer program configured to cause one or more computer processors to:

retrieve one or more previously encoded frames of a video source that are designated as reference frames for the video source;

search the reference frames for one or more candidate pixel blocks for an input frame of the video source; and

encode the input frame in video data based on the one or more candidate pixel blocks,

wherein the video data includes a base layer corresponding to a background region of the input frame and a coded sub-picture sequence (CSPS) layer corresponding to a foreground region of the input frame, and

wherein the CSPS layer has a higher resolution than the base layer.

16. The computer readable medium of claim 15 , wherein the computer program is further configured to cause the one or more computer processors to:

generate one or more reference frames by reconstructing the retrieved one or more previously encoded frames based on the decoded frames; and

store the one or more generated reference frames in a memory.

17. The computer readable medium of claim 16 , wherein the computer program is further configured to cause the one or more computer processors to search reference frames stored in the memory for the one or more candidate pixel blocks.

18. The computer readable medium of claim 15 , wherein the computer program is further configured to cause the one or more computer processors to:

encode differences between pixel blocks of the input frame and the one or more candidate pixel blocks; and

generate symbols comprising information for input frame.

19. The computer readable medium of claim 15 , wherein the computer program is further configured to cause the one or more computer processors to encode the input frame based on a coding type assigned to the input frame, the coding type comprising one of an intra picture coding type, a predictive picture coding type, and a bi-directionally predictive picture coding type.

20. The computer readable medium of claim 15 , wherein the computer program is further configured to cause the one or more computer processors to:

generate a coded video sequence based on one or more symbols generated during the encoding of the input frame and an encoding of the one or more previously encoded frames, by compressing the one or more symbols; and

store the coded video sequence in a storage device.

Continuity (3)
Continuation 17335600 · Jun 1, 2021
Provisional Application 63037202 · Jun 10, 2020
Related Publication 20230171406A1 · Jun 1, 2023