IP Library Granted Patent US 10,264,293
Granted Patent B2
US 10,264,293 · App. 14/757,935 · Granted Apr 16, 2019

Systems and methods for interleaving video streams on a client device

Inventor: Maarten Hoeben (Amersfoort, NL)
Assignee: ActiveVideo Networks, Inc.
H04N21/234H04N21/23406H04N21/23614H04N21/23892H04N21/234309H04N21/4316H04N21/44H04N21/44004H04N21/4622H04N21/8455
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 10,264,293
App. No.
14/757,935
Granted
Apr 16, 2019
Kind
B2
Abstract

A method of displaying video embedded in a user interface is performed at an electronic device such as a server system or client device. The method includes obtaining user-interface frames having a first placeholder for a first video window and obtaining source video frames having a first video stream in the first video window. The source video frames and the user-interface frames are interleaved to form an output video stream, which is provided for decoding and display.

Claims (83)

1. A method of displaying video embedded in a user-interface, the method comprising, at an electronic device having one or more processors and memory storing instructions configured for execution by the one or more processors:

obtaining user-interface frames having a first placeholder for a first video window;

obtaining source video frames having a first video stream in alignment with the first video window;

interleaving the source video frames with the user-interface frames to form an output video stream, wherein:

the interleaving comprises:

determining a temporal order of the user-interface frames and the source video frames in the output video stream for sequential display;

updating frame numbers and display order fields of the source video frames and the user-interface frames in accordance with the determined temporal order; and

forming the output video stream in accordance with the determined temporal order, wherein, in the output video stream:

the source video frames are output in the output video stream at a first rate, and

the user-interface frames are output in the output video stream at a second rate that is distinct from the first rate; and

providing the output video stream in the determined temporal order for decoding and display.

2. The method of claim 1 , wherein:

macroblocks in the user-interface frames inside the first placeholder are inter-encoded with a null residual or marked as skipped; and

macroblocks in the source video frames outside of the first video window are inter-encoded with a null residual or marked as skipped.

3. The method of claim 1 , wherein the user-interface frames include user-interface controls outside of the first placeholder.

4. The method of claim 1 , wherein:

the electronic device is a server system; and

obtaining the user-interface frames comprises:

encoding graphical material into user-interface fragments; and

compositing the user-interface fragments.

5. The method of claim 1 , wherein:

the electronic device is a server system; and

obtaining the user-interface frames comprises performing brute-force encoding of complete user-interface frames.

6. The method of claim 1 , wherein:

the electronic device is a server system; and

obtaining the source video frames comprises:

transcoding the first video stream from a first encoding specification to a second encoding specification; and

scaling the first video stream from first dimensions to second dimensions, wherein the second dimensions correspond to dimensions of the first placeholder and the first video window.

7. The method of claim 1 , wherein:

the electronic device is a client device further comprising a first buffer; and

obtaining the source video frames comprises buffering the source video frames in the first buffer.

8. The method of claim 7 , wherein:

the client device further comprises a second buffer that is shallower than the first buffer; and

obtaining the user-interface frames comprises buffering the user-interface frames in the second buffer.

9. The method of claim 7 , wherein the client device obtains the user-interface frames and the source video frames from a server system.

10. The method of claim 7 , wherein the client device obtains the user-interface frames from a server system and obtains the source video frames from a content-delivery network distinct from the server system.

11. The method of claim 1 , wherein:

the user-interface frames each have a second placeholder for a second video window;

the method further comprises obtaining source video frames having a second video stream in alignment with the second video window; and

the interleaving comprises interleaving the user-interface frames, the source video frames having the first video stream in the first window, and the source video frames having the second video stream in the second video window, to produce the output video stream.

12. The method of claim 11 , wherein:

the electronic device is a client device that further comprises a first buffer and a second buffer;

the user-interface frames are obtained from a server system;

the source video frames having the first video stream are obtained from a first content-delivery network distinct from the server system;

the source video frames having the second video stream are obtained from a second content-delivery network distinct from the server system and the first content-delivery network;

obtaining the source video frames having the first video stream comprises buffering the source video frames having the first video stream in the first buffer; and

obtaining the source video frames having the second video stream comprises buffering the source video frames having the second video stream in the second buffer.

13. The method of claim 1 , wherein:

the user-interface frames each have a second placeholder for a second video window;

the source video frames have a second video stream in alignment with the second video window; and

obtaining the source video frames comprises combining frames having the first video stream in a first slice with frames having the second video stream in a second slice, wherein the frames having the first video stream in the first slice do not have video in the second slice and the frames having the second video stream in the second slice do not have video in the first slice.

14. The method of claim 1 , wherein:

the user-interface frames each have a second placeholder for a second video window;

the source video frames have a second video stream in alignment with the second video window; and

obtaining the source video frames comprises combining frames having the first video stream in a first portion with frames having the second video stream in a second portion, wherein the frames having the first video stream in the first portion do not have video in the second portion and the frames having the second video stream in the second portion do not have video in the first portion.

15. The method of claim 14 , wherein the first and second portions are horizontally separated.

16. An electronic device, comprising:

one or more processors; and

memory storing one or more programs for execution by the one or more processors, the one or more programs including instructions for:

obtaining user-interface frames having a first placeholder for a first video window;

obtaining source video frames having a first video stream in alignment with the first video window;

interleaving the source video frames with the user-interface frames to form an output video stream, wherein:

the interleaving comprises:

determining a temporal order of the user-interface frames and the source video frames in the output video stream for sequential display;

updating frame numbers and display order fields of the source video frames and the user-interface frames in accordance with the determined temporal order; and

forming the output video stream in accordance with the determined order, wherein, in the output video stream:

the source video frames are output in the output video stream at a first rate, and

the user-interface frames are output in the output video stream at a second rate that is distinct from the first rate; and

providing the output video stream in the determined temporal order for decoding and display.

17. A non-transitory computer-readable storage medium storing one or more programs for execution by one or more processors of an electronic device, the one or more programs including instructions for:

obtaining user-interface frames having a first placeholder for a first video window;

obtaining source video frames having a first video stream in alignment with the first video window;

interleaving the source video frames with the user-interface frames to form an output video stream, wherein:

the interleaving comprises:

determining a temporal order of the user-interface frames and the source video frames in the output video stream in an alternating manner for sequential display;

updating frame numbers and display order fields of the source video frames and the user-interface frames in accordance with the determined temporal order; and

forming the output video stream in accordance with the determined temporal order, wherein, in the output video stream:

the source video frames are output in the output video stream at a first rate, and

the user-interface frames are output in the output video stream at a second rate that is distinct from the first rate; and

providing the output video stream in the determined temporal order for decoding and display.

18. The method of claim 1 , wherein the first rate of outputting the source video frames is greater than the second rate of outputting the user-interface frames.

19. The method of claim 1 , wherein the second rate of outputting the user-interface frames is half of the first rate of outputting the source video frames.

20. The method of claim 7 , wherein the client device performs no buffering of the user-interface frames.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 11, 2026
From: ACTIVEVIDEO NETWORKS, LLC
To: CCH I HOLDINGS, LLC
Reel/Frame 074039/0804 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 11, 2026
From: CCH I HOLDINGS, LLC
To: CHARTER COMMUNICATIONS OPERATING LLC
Reel/Frame 074039/0913 →
Continuity (2)
Provisional Application 62096790 · Dec 24, 2014
Related Publication 20160191960A1 · Jun 30, 2016