Video encoding/decoding method and apparatus, and recording medium in which bit stream is stored
US-2024357109-A1 · Oct 24, 2024 · US
US9398301B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9398301-B2 |
| Application number | US-201414484967-A |
| Country | US |
| Kind code | B2 |
| Filing date | Sep 12, 2014 |
| Priority date | Dec 10, 2010 |
| Publication date | Jul 19, 2016 |
| Grant date | Jul 19, 2016 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Embodiments of the invention provide techniques for encoding chunks of a video file in parallel. Embodiments may divide a source video file into a plurality of chunks, and may encode each chunk at a rate based upon complexity data associated with the chunk. The encoded chunks may then be reassembled to produce an encoded video file.
Opening claim text (preview).
What is claimed is: 1. A computer-implemented method for encoding, in parallel, chunks of a source video file, the method comprising: generating complexity data for the source video file, wherein the complexity data reflects the complexity across the source video file and includes a complexity for each sampling point in a plurality of sampling points; dividing the source video file into a plurality of chunks, wherein each chunk represents a portion of the source video file; determining a complexity value associated with each chunk in the plurality of chunks based on a predetermined range of complexity values; for at least a first chunk in the plurality of chunks: allocating a respective portion of a total encoding bandwidth to the chunk based on the complexity value associated with the chunk indicating an overall complexity of the chunk relative to every other chunk in the plurality of chunks including at least one chunk that is subsequent to the first chunk in the plurality of chunks; determining a respective encoding rate for the chunk based on the portion of the total encoding bandwidth allocated to the chunk; and encoding the chunk at the determined encoding rate; and assembling a plurality of encoded chunks to produce at least a portion of an encoded video. 2. The method of claim 1 , wherein the complexity data comprises residual energy data indicating the residual energy at each sampling point in the plurality of sampling points. 3. The method of claim 1 , wherein the complexity data comprises an accumulated logarithm of residual energy of each macroblock of a video frame at each sampling point in the plurality of sampling points. 4. The method of claim 1 , wherein the complexity data comprises a combination of a logarithm of residual energy of each macroblock of a video frame and a number of bits needed to encode additional macroblock information at each sampling point in the plurality of sampling points, wherein the additional macroblock information includes at least one of motion vectors and macroblock modes. 5. The method of claim 1 , wherein the complexity data comprises interpolated data obtained by: calculating the residual energy of each macroblock of a video frame; performing a block transform; quantifying one or more transform coefficients with a plurality of quantization parameters; and counting the number of bits necessary to encode the resulting quantized coefficients. 6. The method of claim 5 , wherein the block transform is one of a Discrete Cosine Transform, a 4×4 integer transform, and an 8×8 integer transform. 7. The method of claim 5 , wherein the quantization parameters are used to produce a rate-distortion curve, and wherein the rate-distortion curve is used to predict a number of bits needed to encode a given macroblock at two or more distinct bitrates. 8. The method of claim 1 , wherein the step of encoding the first chunk is further based on at least one of a previous chunk and the subsequent chunk. 9. The method of claim 1 , wherein more-complex chunks are encoded at a higher encoding rate, and less-complex chunks are encoded at a lower encoding rate. 10. The method of claim 1 , wherein the step of assembling the plurality of encoded chunks to produce the at least a portion of the encoded video includes modifying metadata in a header portion of at least one of the encoded chunks. 11. A non-transitory computer-readable medium containing a program that, when executed, performs an operation for encoding, in parallel, chunks of a source video file, the operation comprising: generating complexity data for the source video file, wherein the complexity data reflects the complexity across the source video file and includes a complexity for each sampling point in a plurality of sampling points; dividing the source video file into a plurality of chunks, wherein each chunk represents a portion of the source video file; determining a complexity value associated with each chunk in the plurality of chunks based on a predetermined range of complexity values; for at least a first chunk in the plurality of chunks: allocating a respective portion of a total encoding bandwidth to the chunk based on the complexity value associated with the chunk indicating an overall complexity of the chunk relative to every other chunk in the plurality of chunks including at least one chunk that is subsequent to the first chunk in the plurality of chunks; determining a respective encoding rate for the chunk based on the portion of the total encoding bandwidth allocated to the chunk; and encoding the chunk at the determined encoding rate; and assembling a plurality of encoded chunks to produce at least a portion of an encoded video. 12. The non-transitory computer-readable medium of claim 11 , wherein the complexity data comprises residual energy data indicating the residual energy at each sampling point in the plurality of sampling points. 13. The non-transitory computer-readable medium of claim 11 , wherein the complexity data comprises an accumulated logarithm of residual energy of each macroblock of a video frame at each sampling point in the plurality of sampling points. 14. The non-transitory computer-readable medium of claim 11 , wherein the complexity data comprises a combination of a logarithm of residual energy of each macroblock of a video frame and a number of bits needed to encode additional macroblock information at each sampling point in the plurality of sampling points, wherein the additional macroblock information includes at least one of motion vectors and macroblock modes. 15. The non-transitory computer-readable medium of claim 11 , wherein the complexity data comprises interpolated data obtained by: calculating the residual energy of each macroblock of a video frame; performing a block transform; quantifying one or more transform coefficients with a plurality of quantization parameters; and counting the number of bits necessary to encode the resulting quantized coefficients. 16. The non-transitory computer-readable medium of claim 15 , wherein the block transform is one of a Discrete Cosine Transform, a 4×4 integer transform, and an 8×8 integer transform. 17. The non-transitory computer-readable medium of claim 15 , wherein the quantization parameters are used to produce a rate-distortion curve, and wherein the rate-distortion curve is used to predict a number of bits needed to encode a given macroblock at two or more distinct bitrates. 18. The non-transitory computer-readable medium of claim 11 , wherein the step of encoding the first chunk is further based on at least one of a previous chunk and the subsequent chunk. 19. The non-transitory computer-readable medium of claim 11 , wherein more-complex chunks are encoded at a higher encoding rate, and less-complex chunks are encoded at a lower encoding rate. 20. The non-transitory computer-readable medium of claim 11 , wherein the step of assembling the plurality of encoded chunks to produce the at least a portion of the encoded video includes modifying metadata in a header portion of at least one of the encoded chunks. 21. A system, comprising: a processor; and a memory containing a program that, when executed on the processor, performs an operation for encoding, in parallel, chunks of a source video file, the operation comprising: generating complexity data for the source video file, wherein the complexity data reflects the complexity across the source video file and includes a complexity for each sampl
Coding unit complexity, e.g. amount of activity or edge presence estimation (H04N19/146 takes precedence) · CPC title
Selection of the code volume for a coding unit prior to coding · CPC title
Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking · CPC title
using parallelised computational arrangements · CPC title
using discrete cosine transform [DCT] · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.