Systems and methods for encoding a video stream
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.
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.