Selective reencoding for GOP conformity
First Claim
1. A computer implemented method for generating a valid output video sequence, the method comprising performing the following by operation of one or more processors:
- generating video segments from portions of one or more video sources, at least one video source being encoded to have interframe dependencies;
generating a video sequence from the video segments;
scanning the generated video sequence to identify invalid interframe dependencies, the invalid interframe dependencies including at least one dependent frame dependent on a reference frame external to the video sequence, the reference frame included in the one or more video sources;
determining a window of adjoining frames on either side of a boundary of one of the video segments to selectively reencode certain frames within the window, the window determined based on a validity of buffer levels associated with decoding the video sequence, wherein determining a window of adjoining frames includes;
storing a cyclic redundancy check (CRC) representation of a reencoded frame of a first of the video segments that is adjacent to a second of the video segments that has a frame dependent on the reencoded frame;
verifying that dependency between the reencoded frame and the frame dependent on the reencoded frame remains valid by comparing the stored CRC with a current CRC of the reencoded frame; and
marking the frame dependent on the reencoded frame for reencoding if the stored CRC does not match the current CRC; and
selectively reencoding certain frames within the window to generate an output video sequence having valid interframe dependencies, wherein the certain frames include the at least one dependent frame of the video sequence.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for editing and selectively encoding video. In general, in one implementation, the method includes generating video segments from portions of one or more video sources, at least one video source being encoded to have interframe dependencies; generating a video sequence from the video segments; scanning the generated video sequence to identify invalid interframe dependencies; and selectively reencoding portions of the generated video sequence to generate an output video sequence having valid interframe dependencies. The method may further comprise generating the output video sequence without reencoding valid portions of the video sequence. Valid portions of the video sequence may comprise portions lacking invalid interframe dependencies or buffer violations.
-
Citations
32 Claims
-
1. A computer implemented method for generating a valid output video sequence, the method comprising performing the following by operation of one or more processors:
-
generating video segments from portions of one or more video sources, at least one video source being encoded to have interframe dependencies; generating a video sequence from the video segments; scanning the generated video sequence to identify invalid interframe dependencies, the invalid interframe dependencies including at least one dependent frame dependent on a reference frame external to the video sequence, the reference frame included in the one or more video sources; determining a window of adjoining frames on either side of a boundary of one of the video segments to selectively reencode certain frames within the window, the window determined based on a validity of buffer levels associated with decoding the video sequence, wherein determining a window of adjoining frames includes; storing a cyclic redundancy check (CRC) representation of a reencoded frame of a first of the video segments that is adjacent to a second of the video segments that has a frame dependent on the reencoded frame; verifying that dependency between the reencoded frame and the frame dependent on the reencoded frame remains valid by comparing the stored CRC with a current CRC of the reencoded frame; and marking the frame dependent on the reencoded frame for reencoding if the stored CRC does not match the current CRC; and selectively reencoding certain frames within the window to generate an output video sequence having valid interframe dependencies, wherein the certain frames include the at least one dependent frame of the video sequence. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A computer implemented method for generating a valid output video sequence, the method comprising performing the following by operation of one or more processors:
-
receiving one or more video sources, at least one video source being encoded to have interframe dependencies with respect to the at least one video source; generating a video sequence from video segments of one or more video sources, scanning the generated video sequence to identify invalid interframe dependencies and invalid buffer levels with respect to the generated video sequence, the invalid interframe dependencies including at least one dependent frame dependent on a reference frame external to the video sequence, the reference frame included in the one or more video sources; determining a window of adjoining frames on either side of a boundary of one of the video segments to selectively reencode certain frames within the window, the window determined based on a validity of buffer levels associated with decoding the video sequence; marking boundaries of the window in the generated video sequence, wherein marking boundaries of the window includes; storing a cyclic redundancy check (CRC) representation of a reencoded frame of a first of the video segments that is adjacent to a second of the video segments that has a frame dependent on the reencoded frame; verifying that dependency between the reencoded frame and the frame dependent on the reencoded frame remains valid by comparing the stored CRC with a current CRC of the reencoded frame; and marking the frame dependent on the reencoded frame for reencoding if the stored CRC does not match the current CRC; and selectively reencoding certain frames within the marked boundaries to generate an output video having valid interframe dependencies with respect to the generated video sequence and having valid buffer levels, wherein the certain frames include the at least one dependent frame of the video sequence.
-
-
17. A computer program product, tangibly stored on a non-transitory computer-readable medium, the product including instructions operable to cause a computer system to perform a method, comprising:
- generating video segments from portions of one or more video sources, at least one video source being encoded to have interframe dependencies;
generating a video sequence from the video segments;
scanning the generated video sequence to identify invalid interframe dependencies, the invalid interframe dependencies including at least one dependent frame dependent on a reference frame external to the video sequence, the reference frame included in the one or more video sources;
determining a window of adjoining frames on either side of a boundary of one of the video segments to selectively reencode certain frames within the window, the window determined based on a validity of buffer levels associated with decoding the video sequence, wherein determining a window of adjoining frames includes;
storing a cyclic redundancy check (CRC) representation of a reencoded frame of a first of the video segments that is adjacent to a second of the video segments that has a frame dependent on the reencoded frame;
verifying that dependency between the reencoded frame and the frame dependent on the reencoded frame remains valid by comparing the stored CRC with a current CRC of the reencoded frame; and
marking the frame dependent on the reencoded frame for reencoding if the stored CRC does not match the current CRC; and
selectively reencoding certain frames within the window to generate an output video sequence having valid interframe dependencies, wherein the certain frames include the at least one dependent frame of the video sequence.
- generating video segments from portions of one or more video sources, at least one video source being encoded to have interframe dependencies;
-
18. A system, comprising:
-
an editing timeline module to facilitate generation of video segments from portions of one or more video sources, at least one video source being encoded to have interframe dependencies, the editing timeline module generating a video sequence from the video segments; a selection block, in communication with the editing timeline, the selection block to identify invalid interframe dependencies, the invalid interframe dependencies including at least one dependent frame dependent on a reference frame external to the video sequence, the reference frame included in the one or more video sources; and an encoder, in communication with the selection block, the encoder to; determine a window of adjoining frames on either side of a boundary of one of the video segments to selectively reencode certain frames within the window, the window determined based on a validity of buffer levels associated with decoding the video sequence, wherein determining a window of adjoining frames includes; store a cyclic redundancy check (CRC) representation of a reencoded frame of a first of the video segments that is adjacent to a second of the video segments that has a frame dependent on the reencoded frame; verify that dependency between the reencoded frame and the frame dependent on the reencoded frame remains valid by comparing the stored CRC with a current CRC of the reencoded frame; and mark the frame dependent on the reencoded frame for reencoding if the stored CRC does not match the current CRC; and selectively reencode certain frames within the window to generate an output video sequence having valid interframe dependencies, wherein the certain frames include the at least one dependent frame of the video sequence. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
-
Specification