Co-optimization of hardware-based encoding and software-based encoding
AssigneeGoogle Inc.
InventorsIn Suk Chong, Jeremy Christopher Dorfman, Aki Kuusela
Life of this patent
Estimating the term…
Abstract
A media item to be provided to users of a platform is identified. The media item includes multiple frames. Metrics for the frames of the media item are obtained. A frame type associated with each of the frames is determined based on the metrics. The media item is determined, based on the frame type associated with each frames, to be encoded using two or more of a hardware encoder, a software encoder, or a hybrid encoder. The frames of the media item are encoded using the two or more of the hardware encoder, the software encoder, or the hybrid encoder in accordance with the determination.
Claims17
A method comprising:
- identifying a media item to be provided to one or more users of a platform, wherein the media item comprises a plurality of frames;
- performing a first encoding pass with respect to the plurality of frames using a first encoder comprising one of a hardware encoder, a software encoder, or a hybrid encoder, wherein an output of the first encoding pass comprises metrics for the plurality of frames corresponding to at least one of a temporal structure or a spatial structure associated with the plurality of frames;
- determining a frame type associated with each of the plurality of frames of the media item based on the metrics obtained for the plurality of frames;
- determining, based on the frame type associated with each of the plurality of frames, whether to perform a second encoding pass with respect to the plurality of frames using the first encoder or a second encoder comprising one of the hardware encoder, the software encoder, or the hybrid encoder, wherein the second encoder is distinct from the first encoder;
- and
- performing the second encoding pass with respect to the plurality of frames using the first encoder or the second encoder.
A system comprising:
- a memory device;
- and
- a processor coupled to the memory device to perform operations comprising:
- identifying a media item to be provided to one or more users of a platform, wherein the media item comprises a plurality of frames;
- performing a first encoding pass with respect to the plurality of frames using a first encoder comprising one of a hardware encoder, a software encoder, or a hybrid encoder, wherein an output of the first encoding pass comprises metrics for the plurality of frames corresponding to at least one of a temporal structure or a spatial structure associated with the plurality of frames;
- determining a frame type associated with each of the plurality of frames of the media item based on the metrics obtained for the plurality of frames;
- determining, based on the frame type associated with each of the plurality of frames, whether to perform a second encoding pass with respect to the plurality of frames using the first encoder or a second encoder comprising one of the hardware encoder, the software encoder, or the hybrid encoder, wherein the second encoder is distinct from the first encoder to encode the media item using two or more of a hardware encoder, a software encoder, or a hybrid encoder;
- and
- performing the second encoding pass with respect to the plurality of frames using the first encoder or the second encoder encoding the plurality of frames of the media item using the two or more of the hardware encoder, the software encoder, or the hybrid encoder in accordance with the determination.
A non-transitory computer readable storage medium comprising instructions for a server that, when executed by a processor, cause the processor to perform operations comprising:
- identifying a media item to be provided to one or more users of a platform, wherein the media item comprises a plurality of frames;
- performing a first encoding pass with respect to the plurality of frames using a first encoder comprising one of a hardware encoder, a software encoder, or a hybrid encoder, wherein an output of the first encoding pass comprises metrics for the plurality of frames corresponding to at least one of a temporal structure or a spatial structure associated with the plurality of frames;
- determining a frame type associated with each of the plurality of frames of the media item based on the metrics obtained for the plurality of frames;
- determining, based on the frame type associated with each of the plurality of frames, whether to perform a second encoding pass with respect to the plurality of frames using the first encoder or a second encoder comprising one of the hardware encoder, the software encoder, or the hybrid encoder, wherein the second encoder is distinct from the first encoder;
- and
- performing the second encoding pass with respect to the plurality of frames using the first encoder or the second encoder.
Dependencies are inferred from the claim text.