IP Library Granted Patent US 8,997,161
Granted Patent B2
US 8,997,161 · App. 12/260,404 · Granted Mar 31, 2015

Application enhancement tracks

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 8,997,161
App. No.
12/260,404
Granted
Mar 31, 2015
Kind
B2
Abstract

Systems and methods of providing enhanced digital media playback through application enhancement tracks are described. Application enhancement tracks are derived from the main content that they are associated with and are encoded to aid the performance of one or more functions related to the content, such as visual-search using a video application enhancement track, or trick-play track. In several embodiments, a method of decoding a media file for play back includes obtaining a media file containing compressed content and an accompanying application enhancement track which is a subset of the compressed content, playing back the compressed content, and decoding frames of the application enhancement track at a rate proportional to a visual-search speed and from a location determined by the portion of the compressed content most recently played back.

Claims (56)

1. A method of encoding and playing back a media file, comprising:

extracting a video track from an original media file, where content is encoded in the video track;

using the encoded content to encode a tricky-play track configured to enable the visual-search of the video track, where encoding the tricky-play track includes encoding at least one key frame that corresponds to a frame in the encoded content that is not a key frame and where the distance between key frames in the encoded content is not uniform;

requesting portions of the encoded content from a media server using HTTP using a playback device;

playing back a portion of the compressed video track using the playback device;

receiving a trick-play request using the playback device;

determining, in response to the received trick-play request, a position in the trick-play track corresponding to the position of the compressed video track being played using a first index using the playback device;

playing back a portion of the trick-play track starting from the determined position in the trick-play track using the playback device;

receiving a normal-play request using the playback device;

determining, in response to the received normal-play request, a position in the compressed video track corresponding to the position of the trick-play track being played using a second index using the playback device;

locating a key frame with the closest timestamp preceding the determined position in the compressed video track;

recursively decoding the located key frame and decoding the difference frames between the located key frame and the difference frame at the determined position in the compressed video track; and

playing back a portion of the compressed video track starting from the difference frame at the determined position in the compressed video track.

2. The method of claim 1 wherein information is discarded from the content by sub-sampling the content.

3. The method of claim 2 wherein sub-sampling the content further comprises reducing a spatial resolution scale of the content by a particular factor to generate the trick-play track.

4. The method of claim 2 wherein sub-sampling the content further comprises reducing a frame rate of the content by a particular factor to generate the trick-play track.

5. The method of claim 4 wherein creating the media file further comprises embedding portions of the accompanying trick-play track throughout the video track encoding the content.

6. The method of claim 4 wherein creating the media file further comprises incorporating the accompanying trick-play track as a block within the media file.

7. The method of claim 1 wherein the trick-play track contains only video.

8. The method of claim 1 wherein the trick-play track contains key frames spaced at specific time intervals between each key-frame.

9. The method of claim 1 wherein creating a media file including the content from the original media file encoded in a video track and the accompanying trick-play track further comprises:

re-encoding the content of the video track to create a compressed video track possessing the same resolution and frame rate as the video track, where the video track includes a plurality of key frames and the compressed video track includes fewer key frames than the video track; and

creating a media file including the compressed video track and the accompanying trick-play track;

wherein the media file including the compressed video track and the trick-play track is smaller than the original media file.

10. The method of claim 1 wherein the content is compressed content.

11. A method of decoding a media file for playing back, comprising:

requesting portions of a media file from a media server using HTTP using a playback device, where the media file contains compressed video content and is associated with an accompanying trick-play track which contains at least one key frame that corresponds to a frame in the compressed video content that is not a key frame and where the distance between key frames in the compressed video content is not uniform;

playing back a potion of the compressed video content;

receiving a trick-play request using the payback device

determining, in response to the received trick-play request, a position in the trick-play track corresponding to the position of the compressed video content being played back using a first index using the playback device;

decoding frames of the trick-play track at a rate proportional to a visual-search speed and from a the determined position in the trick-play track using the playback device;

receiving a normal-play request using the playback device;

determining, in response to the received normal-play request, a position in the compressed video content corresponding to the position of the trick-play track being played using a second index using the playback device;

locating a key frame with the closest timestamp preceding the determined position in the compressed video content;

recursively decoding the located key frame and decoding the difference frames between the located key frame and the difference frame at the determined position in the compressed video content; and

playing back a portion of the compressed video content starting from the difference frame at the determined position in the compressed video content.

12. The method of claim 11 wherein the trick-play track includes only key-frames.

13. The method of claim 11 further comprising at least one delta frame placed within a constant time difference to adjacent frames.

14. The method of claim 11 wherein only key-frames are decoded when a predetermined visual-search speed is exceeded.

15. The method of claim 11 wherein a select number of key-frames are skipped along with any associated delta frames when a predetermined visual-search speed is exceeded.

16. The method of claim 11 wherein the trick-play track is part of the media file and is the compressed content at a reduced frame rate and at a reduced resolution.

17. A system for playback of a media file, comprising:

a media server configured to

generate at least one trick-play track from an original media file, the at least one trick-play track containing at least one key frame that corresponds to a frame encoded content contained in the original media file that is not a key frame, and where the distance between key frames in the encoded content is not uniform; and

create a media file including encoding content from the original media file encoded in a compressed video track and an accompanying trick-play track and being substantially smaller in file size than the original media file; and

a client processor in network communication with the media server and configured to:

send requests for portions of the media file to the media server using HTTP, the media server configured to transmit the requested media file using HTTP;

play back a portion of the compressed video track;

receive a trick-play request;

determine, in response to the received trick-play request, a position in the trick-play track corresponding to the position of the compressed video track being played using a first index;

play back a portion of the trick-play track starting from the determined position in the trick-play track;

receive a normal-play request using the playback device;

determine, in response to the received normal-play request, a position in the compressed video track corresponding to the position of the trick-play track being played using a second index using the playback device;

locate a key frame with the closest timestamp preceding the determined position in the compressed video track;

recursively decode the located key frame and decoding the difference frames between the located key frame and the difference frame at the determined position in the compressed video track; and

play back a portion of the compressed video track starting from the difference frame at the determined position in the compressed video track.

Assignments (9)
CHANGE OF PRINCIPAL PLACE OF BUSINESS Recorded Mar 5, 2019
From: DIVX, LLC
To: DIVX, LLC
Reel/Frame 050407/0104 →
CHANGE OF NAME Recorded Mar 5, 2018
From: DIVX CF HOLDINGS LLC
To: DIVX, LLC
Reel/Frame 045498/0560 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 13, 2018
From: SONIC IP, INC.; DIVX, LLC
To: DIVX CF HOLDINGS LLC
Reel/Frame 045310/0020 →
PATENT RELEASE Recorded Jul 22, 2014
From: JPMORGAN CHASE BANK N.A., AS COLLATERAL AGENT
To: ALL MEDIA GUIDE, LLC; DIVX, LLC; SONIC SOLUTIONS LLC
Reel/Frame 033378/0685 →
RELEASE OF SECURITY INTEREST Recorded Apr 9, 2014
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: DIVX, LLC
Reel/Frame 032645/0559 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 22, 2013
From: DIVX, LLC
To: SONIC IP, INC.
Reel/Frame 031713/0032 →
RELEASE OF SECURITY INTEREST Recorded Jun 11, 2013
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: ALL MEDIA GUDE, LLC; DIVX, LLC; SONIC SOLUTIONS LLC
Reel/Frame 030591/0534 →
CHANGE OF NAME Recorded Sep 15, 2012
From: DIVX, INC.
To: DIVX, LLC
Reel/Frame 028965/0830 →
SECURITY AGREEMENT Recorded Mar 25, 2011
From: ALL MEDIA GUIDE, LLC; DIVX, LLC; SONIC SOLUTIONS LLC
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 026026/0111 →