CA2748373C

Multiple bit rate video encoding using variable bit rate and dynamic resolution for adaptive video streaming

Abstract

A video encoding system encodes video streams for multiple bit rate video streaming using an approach that permits the encoded bit rate to vary subject to a peak bit rate and average bit rate constraints for higher quality streams, while a bottom bit rate stream is encoded to achieve a constant chunk rate. The video encoding system also dynamically decides an encoding resolution for segments of the multiple bit rate video streams that varies with video complexity so as to achieve a better visual experience for multiple bit rate streaming.

CA2748373C, drawing sheet 1
Sheet 1 of 11

Term

3.3 yearsleft in the term

Expires 12 January 2030.

  1. Priority
  2. Filed
  3. Granted
  4. Today
  5. Expires

33 claims: 9 independent, 24 dependent

  1. 1
    CA 02748373 2014-12-03 51017-29 CLAIMS:1. A method of processing input video for variable bit rate encoding of segmented compressed video streams for multi bit rate video streaming, the method comprising: receiving input of raw video content to be encoded for multi bit rate video streaming;encoding the raw video content in segments comprising groups of pictures as a plurality of compressed video streams ranging in video quality from a top video stream to a bottom video stream, wherein said encoding comprises: for the top video stream, encoding the raw video content at a variable bit rate subject to peak bit rate and average bit rate constraints;for the bottom video stream, encoding the raw video content at a constant chunk rate, wherein the constant chunk rate is a constant number of pictures per unit time;and producing an encoded set of the video streams segmented into the groups of pictures;said encoding the raw video content further comprises, for one or more intermediate video streams, encoding the raw video content at a variable bit rate, wherein the peak bit rate and average bit rate constraints of the top video stream and intermediate video streams decrease progressively.
  2. 8
    A method of processing input video for dynamic resolution encoding of segmented compressed video streams for multi bit rate video streaming, the method comprising:receiving input of raw video content to be encoded for multi bit rate video streaming;encoding the raw video content in segments comprising groups of pictures as a plurality of compressed video streams ranging in video quality from a top video stream to a bottom video stream, wherein said encoding comprises: for a group of pictures of a video stream to be encoded, obtaining at least three encoding samples for varying resolution and quantization step size;CA 02748373 2014-12-03 51017-29 establishing a model relating resolution, quantization step size and resulting encoded size for the group of pictures;performing a texture measurement on the group of pictures;determining a quantization threshold for resizing resolution based on the texture measurement;dynamically deciding a video resolution and quantization step size for encoding the group of pictures based on the model and quantization threshold for resizing;and encoding the group of pictures with the dynamically decided video resolution and quantization step size.
  3. 16
    A video processing system for encoding compressed video streams for multiple bit rate video streaming, the system comprising:a memory for storing raw video content to be encoded;a computer processing means for encoding the raw video content using a variable bit rate and dynamic resolution approach in segments comprising groups of pictures as a plurality of compressed video streams, wherein said encoding by the computer processing means comprises: analyzing the raw video content to determine scene change boundaries in the video content, divide the video content between said scene change boundaries in the segments comprising groups of pictures, and determine a measurement of video complexity of the segments;dynamically deciding encoding parameters for variable bit rate encoding of the raw video content of each segment into one or more higher video streams each having a target average bit rate and a peak bit rate constraint that yield a progression of decreasing coded bit rates of the video streams, and for encoding the raw video content of each segment into a bottom video stream at a constant chunk rate, wherein the encoding parameters comprise at least video resolution;and encoding the higher and bottom video streams using the dynamically decided encoding parameters. CA 02748373 2014-12-03 51017-29
  4. 20
    A computer readable storage medium having stored thereon computer executable instructions, that when executed by one or more processors perform the method of any one of claims 1 to 14.
  5. 21
    A method of processing input video for variable bit rate encoding of segmented compressed video streams for multi bit rate video streaming, the method comprising:receiving input of raw video content to be encoded for multi bit rate video streaming;encoding the raw video content in segments comprising groups of pictures as a plurality of compressed video streams ranging in video quality from a top or best quality video stream, generally having the highest overall bit rate of the plurality of video streams, to CA 02748373 2014-12-03 51017-29 a bottom or lowest quality video stream, generally having the lowest bit rate of the plurality of video streams, wherein said encoding comprises: for the top video stream, encoding the raw video content at a variable bit rate subject to peak bit rate and average bit rate constraints;and producing an encoded set of the video streams segmented into the groups of pictures, the method further using dynamic resolution encoding, wherein said dynamic resolution encoding comprises: for a group of pictures of a video stream to be encoded, obtaining at least three encoding samples for varying resolution and quantization step size;establishing a model relating resolution, quantization step size and resulting encoded size for the group of pictures;performing a texture measurement on the group of pictures;determining a quantization threshold for resizing resolution based on the texture measurement;dynamically deciding a video resolution and quantization step size for encoding the group of pictures based on the model and quantization threshold for resizing;and encoding the group of pictures with the dynamically decided video resolution and quantization step size.
  6. 25
    The method of any one of claims 21 to 24, wherein said dynamic resolution encoding further comprises:detecting scene changes in the raw video content;and wherein said dynamically deciding video resolution comprises applying dynamic video resolution changes at scene change boundaries between groups of pictures.
  7. 26
    The method of any one of claims 21 to 25, wherein said establishing the model comprises:establishing a linear model for a relation of quantization step size to encoded size for a given video resolution based on at least two out of the at least three encoding samples of the group of pictures where the encoded size is sampled at the given video resolution and varying quantization step size.
  8. 31
    A computer-readable medium comprising computer-executable instructions for causing a computing device to perform the method of any one of claims 21 to 30.
  9. 32
    A video processing system for encoding compressed video streams for multiple bit rate video streaming, the system comprising:a memory for storing raw video content to be encoded;a computer processing means for encoding the raw video content using a variable bit rate and dynamic resolution approach in segments comprising groups of pictures as a plurality of compressed video streams, wherein said encoding by the computer processing means comprises: analyzing the raw video content to determine scene change boundaries in the video content, divide the video content between said scene change boundaries in the segments comprising groups of pictures, and determine a measurement of video complexity of the segments;dynamically deciding encoding parameters for variable bit rate encoding of the raw video content of each segment into one or more higher bit rate video streams each having a target average bit rate and a peak bit rate constraint that yield a progression of decreasing coded bit rates of the video streams, and for encoding the raw video content of each segment into a bottom bit rate video stream, generally having the lowest bit rate of the plurality of video streams, wherein the encoding parameters comprise at least video resolution;and encoding the higher and bottom bit rate video streams using the dynamically decided encoding parameters, CA 02748373 2014-12-03 51017-29 wherein said dynamically deciding the video resolution for a video stream segment by the computer processing means comprises: obtaining at least three samples of encoding a segment for varying resolution and quantization step size;5 establishing a model of a relation between quantization step size, video resolution and encoded size;and dynamically deciding the video resolution for the segment based on the established model and measurement of video complexity of the segment.