IP Library › Granted Patent US 12,593,055
Granted Patent B2
US 12,593,055 · App. 18/377,269 · Granted Mar 31, 2026

Selective just-in-time transcoding

Inventors: Nicholas Tegan Heckman (Kirkland, WA); Nitin Suri (Redmond, WA); Ivan Romashka (Seattle, WA); Steven Craig Peterson (Bloomington, MN)
Assignee: Microsoft Technology Licensing, LLC
H04N19/40H04N19/14H04N19/154H04N19/177H04N19/184
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,593,055
App. No.
18/377,269
Granted
Mar 31, 2026
Kind
B2
Abstract

A media server uses selective just-in-time (“JIT”) transcoding of media such as video. For example, the media server determines a measure of complexity of a given segment of a given media sequence. The given segment has been encoded at a base bit rate. The media server evaluates a complexity condition for the given segment. As part of evaluating the complexity condition, the media server compares the measure of complexity to a complexity threshold. Based at least in part on whether the complexity condition is satisfied, the media server selects between use of preemptive transcoding and use of JIT transcoding for the given segment at a given target bit rate. In this way, the media server can selectively incur the cost of preemptive transcoding operations for the given segment if JIT transcoding would likely introduce unacceptable delay, and the media server can otherwise use JIT transcoding operations for the given segment.

Claims (66)

1 . One or more computer-readable media having stored thereon computer-executable instructions for causing a processor system, when programmed thereby, to perform operations comprising:

determining a measure of complexity of a given segment of a given media sequence, wherein the given segment has been encoded at a base bit rate associated with a base quality level;

evaluating a complexity condition for the given segment, including comparing the measure of complexity to a complexity threshold;

based at least in part on whether the complexity condition is satisfied, selecting between use of preemptive transcoding and use of just-in-time (“JIT”) transcoding for the given segment at a given target bit rate different than the base bit rate, the given target bit rate being associated with a given quality level different than the base quality level, wherein:

the preemptive transcoding, if selected, is to be performed before receipt of any request to provide encoded data for the given segment at the given target bit rate; and

the JIT transcoding, if selected, is to be performed in response to receipt of a request to provide the encoded data for the given segment at the given target bit rate; and

storing, in a transcoding map, an indication, for the given segment at the given target bit rate, of whether (a) encoded data is already available for the given segment at the given target bit rate or (b) JIT transcoding is to be used for the given segment at the given target bit rate.

2 . The one or more computer-readable media of claim 1 , wherein the determining the measure of complexity comprises:

measuring time to encode the given segment at a test target bit rate different than the base bit rate.

3 . The one or more computer-readable media of claim 1 , wherein the determining the measure of complexity comprises:

measuring time to transcode the given segment from the base bit rate to a test target bit rate different than the base bit rate.

4 . The one or more computer-readable media of claim 1 , wherein the operations further comprise:

determining a priority for the given segment that depends on playback location of the given segment within the given media sequence, wherein the selecting between use of preemptive transcoding and use of JIT transcoding is also based at least in part on the priority for the given segment.

5 . The one or more computer-readable media of claim 4 , wherein the priority depends on:

whether the given segment starts the given media sequence in playback order;

whether the given segment starts a chapter of the given media sequence in playback order; or

whether the given segment is associated with a link to a timestamp within the given media sequence.

6 . The one or more computer-readable media of claim 1 , wherein the operations further comprise:

determining a measure of popularity for the given media sequence, for the given segment, for the given media sequence at a set of target bit rates including the given target bit rate, or for the given segment at the given target bit rate; and

evaluating a popularity condition, including comparing the measure of popularity to a popularity threshold.

7 . The one or more computer-readable media of claim 6 , wherein the determining the measure of popularity comprises:

collecting metadata, the metadata including a storage location of the given media sequence or the given segment, previous access counts associated with the storage location of the given media sequence or the given segment, an author of the given media sequence, previous access counts associated with the author of the given media sequence, an uploader of the given media sequence, previous access counts associated with the uploader of the given media sequence, classification tags for the given media sequence or the given segment, and/or a set of viewers who can access the given media sequence or the given segment;

providing, as input to a machine learning model or heuristic model, the metadata; and

receiving, as output from the machine learning model or the heuristic model, a result, wherein the measure of popularity is based at least in part on the result.

8 . The one or more computer-readable media of claim 6 , wherein the operations further comprise, responsive to the popularity condition not being satisfied:

determining not to use preemptive transcoding for the given media sequence, for the given segment, for the given media sequence at a set of target bit rates including the given target bit rate, or for the given segment at the given target bit rate.

9 . The one or more computer-readable media of claim 1 , wherein the operations further comprise:

responsive to selection of use of preemptive transcoding for the given segment at the given target bit rate, transcoding the given segment from the base bit rate to the given target bit rate, thereby producing encoded data for the given segment at the given target bit rate, and storing the encoded data for the given segment at the given target bit rate.

10 . The one or more computer-readable media of claim 1 , wherein the operations further comprise:

responsive to selection of use of JIT transcoding for the given segment at the given target bit rate, skipping transcoding the given segment from the base bit rate to the given target bit rate.

11 . The one or more computer-readable media of claim 1 , wherein the operations further comprise, for each of one or more other target bit rates as the given target bit rate:

repeating the selecting between use of preemptive transcoding and use of JIT transcoding for the given segment at the given target bit rate.

12 . The one or more computer-readable media of claim 1 , wherein the operations further comprise, for each of one or more other segments of the given media sequence as the given segment:

repeating the determining the measure of complexity of the given segment, the evaluating the complexity condition for the given segment, and the selecting between use of preemptive transcoding and use of JIT transcoding for the given segment at the given target bit rate.

13 . The one or more computer-readable media of claim 1 , wherein the operations further comprise, for each of one or more other media sequences as the given media sequence:

repeating the determining the measure of complexity of the given segment, the evaluating the complexity condition for the given segment, and the selecting between use of preemptive transcoding and use of JIT transcoding for the given segment at the given target bit rate.

14 . The one or more computer-readable media of claim 1 , wherein the given media sequence is a video sequence, wherein the given segment is a group of pictures (“GOP”) or multiple GOPs, wherein the given target bit rate is one of multiple target bit rates different than the base bit rate, each of the multiple target bit rates being associated with a different quality level, wherein the base quality level has a base spatial resolution, a base temporal resolution, and a base encoding quality, and wherein the given quality level associated with the target bit rate has:

a different spatial resolution that is lower than the base spatial resolution;

a different temporal resolution that is lower than the base temporal resolution; and/or

a different encoding quality that is lower than the base encoding quality.

15 . The one or more computer-readable media of claim 14 , wherein:

the base spatial resolution is selected from the group consisting of 1080 p resolution, 4K resolution, and 8K resolution;

the base temporal resolution is selected from the group consisting of 30 Hz, 60 Hz, and 120 Hz; and

the base encoding quality is a perceptual signal to noise ratio (“PSNR”) in a range of 40-50 dB.

16 . In a computer system, a method comprising:

determining a measure of complexity of a given segment of a given media sequence, wherein the given segment has been encoded at a base bit rate associated with a base quality level;

evaluating a complexity condition for the given segment, including comparing the measure of complexity to a complexity threshold;

based at least in part on whether the complexity condition is satisfied, selecting between use of preemptive transcoding and use of just-in-time (“JIT”) transcoding for the given segment at a given target bit rate different than the base bit rate, the given target bit rate being associated with a given quality level different than the base quality level, wherein:

the preemptive transcoding, if selected, is to be performed before receipt of any request to provide encoded data for the given segment at the given target bit rate; and

the JIT transcoding, if selected, is to be performed in response to receipt of a request to provide the encoded data for the given segment at the given target bit rate; and

storing, in a transcoding map, an indication, for the given segment at the given target bit rate, of whether (a) encoded data is already available for the given segment at the given target bit rate or (b) JIT transcoding is to be used for the given segment at the given target bit rate.

17 . The method of claim 16 , wherein the determining the measure of complexity comprises:

measuring time to encode the given segment at a test target bit rate different than the base bit rate; or

measuring time to transcode the given segment from the base bit rate to the test target bit rate.

18 . A computer system comprising a processor set and memory, wherein the computer system is configured to perform operations comprising:

determining a measure of complexity of a given segment of a given media sequence, wherein the given segment has been encoded at a base bit rate associated with a base quality level;

evaluating a complexity condition for the given segment, including comparing the measure of complexity to a complexity threshold;

based at least in part on whether the complexity condition is satisfied, selecting between use of preemptive transcoding and use of just-in-time (“JIT”) transcoding for the given segment at a given target bit rate different than the base bit rate, the given target bit rate being associated with a given quality level different than the base quality level, wherein:

the preemptive transcoding, if selected, is to be performed before receipt of any request to provide encoded data for the given segment at the given target bit rate; and

the JIT transcoding, if selected, is to be performed in response to receipt of a request to provide the encoded data for the given segment at the given target bit rate; and

storing, in a transcoding map, an indication, for the given segment at the given target bit rate, of whether (a) encoded data is already available for the given segment at the given target bit rate or (b) JIT transcoding is to be used for the given segment at the given target bit rate.

19 . The computer system of claim 18 , wherein the determining the measure of complexity comprises:

measuring time to encode the given segment at a test target bit rate different than the base bit rate; or

measuring time to transcode the given segment from the base bit rate to the test target bit rate.

20 . The computer system of claim 18 , wherein the operations further comprise:

determining a priority for the given segment that depends on playback location of the given segment within the given media sequence, wherein the selecting between use of preemptive transcoding and use of JIT transcoding is also based at least in part on the priority for the given segment.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 3, 2024
From: HECKMAN, NICHOLAS TEGAN; SURI, NITIN; ROMASHKA, IVAN; PETERSON, STEVEN CRAIG
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 066008/0567 →
Continuity (1)
Related Publication 20250119562A1 · Apr 10, 2025
References Cited (12)
US 10277928B1 · Joliveau et al. · 2019 [cited by applicant]
US 20130135482A1 · Lamy-Bergot · 2013 [cited by examiner]
US 20220078446A1 · Izadi et al. · 2022 [cited by applicant]
US 20220210061A1 · Simu · 2022 [cited by examiner]
US 20220264168A1 · Dahl · 2022 [cited by examiner]
EP 3322189B1 · 2019 [cited by applicant]
WO 2021229520A1 · 2021 [cited by applicant]
Inneos. “Compression of HDMI Video”. https://www.inneos.com/wp-content/uploads/2019/01/Whitepaper-Compression_of_HDMI_Video.pdf (Year: 2019). [cited by examiner]
Henkel, Ingrid, “Encoding Video and Audio With Media Services”, Retrieved from: https://learn.microsoft.com/en-us/azure/media-services/latest/encode-concept, Mar. 2, 2023, 7 Pages. [cited by applicant]
International Search Report and Written Opinion dated Dec. 10, 2024, from International Patent Application No. PCT/US2024/047892, 16 pp. [cited by applicant]
Lee et al., “Video Quality Adaptation for Limiting Transcoding Energy Consumption in Video Servers,” [cited by applicant]
Simon et al., “Modelling the Value of JITEX: Just-In-Time Transcoding at the Edge,” SMPTE 2022 Media Technology Summit, 12 pp. (Oct. 2022). [cited by applicant]