Patent ID: 8818171

Claim:
A source encoder configured to encode a source video stream as a plurality of alternative streams of video for playback on a playback device, comprising: an encoding profile, where the encoding profile specifies a plurality of maximum bitrates including a maximum bitrate corresponding to a predetermined network connection maximum data rate; a processor configured by an encoding application to: receive multimedia content, where the multimedia content comprises source video data having a primary resolution, a primary sample aspect ratio, and a primary frame rate; and encode the source video data as a set of alternative streams of video, where: the resolution and sample aspect ratio of at least one of the alternative streams of video are selected to have an aspect ratio that is the same as a predetermined display aspect ratio; and at least one of the alternative streams is encoded at a maximum bitrate corresponding to the predetermined network connection maximum data rate; wherein the encoding application further configures the processor to: select a resolution, sample aspect ratio and frame rate for each alternative stream; determine a maximum bitrate threshold beyond which higher video quality can be achieved using a higher resolution than the selected resolution at the selected frame rate of each alternative stream by configuring the processor to determine the maximum bitrate threshold using an adjusted number of macroblocks per second determined based upon the selected resolution, and frame rate; select a maximum bitrate from the profile for each alternative stream, where the selected maximum bitrate is the highest maximum bitrate specified in the profile that is less than the maximum bitrate threshold determined for the alternative stream; and generate each alternative stream by encoding the source video stream at the selected maximum bitrate, selected resolution, sample aspect ratio and frame rate; wherein the encoding application configures the processor to determine the adjusted number of macroblocks per second (AMBPS) as follows: AMBPS=((width*height*FPS)/256)*AdjustmentFactor(FPS), where width and height are the width and height of the encoding resolution, FPS is the frame rate per second for the video data, and AdjustmentFactor(FPS) is a predetermined value based on the FPS of the video data; wherein the adjustment factor is selected from the group comprising: an AdjustmentFactor(FPS)=1, where FPS=29.97; an AdjustmentFactor(FPS)=1.1333, where FPS=25; and an AdjustmentFactor(FPS)=1.1606, where FPS=23.976.