IP Library Granted Patent US 9,330,101
Granted Patent B2
US 9,330,101 · App. 14/133,234 · Granted May 3, 2016

Using constraints on media file formats to improve performance

Inventors: Sandeep Kanumuri (Redmond, WA); Shyam Sadhwani (Bellevue, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F17/30076H04N21/44008H04N21/454H04N21/4516H04N21/85406G10L19/167H04L65/607
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 9,330,101
App. No.
14/133,234
Granted
May 3, 2016
Kind
B2
Abstract

A processor that processes encoded media is configured so as to apply constraints to the encoded bitstream. Such constraints are not those required by a specification of a standard with which the encoded media is compliant; instead such constraints reflect portions of the standard that are insufficiently constrained and are applied by the processor to ensure that the processor does not experience performance degradation or errors. The constraints can be applied, for example, as a preprocessing step before reading, writing or decoding the bitstream, or while the bitstream is being decoded, or while the bitstream is being received from a transmission.

Claims (41)

1. A computer-implemented process comprising:

receiving into memory a bitstream of encoded data into memory, the encoded data being compliant with a defined standard and including packets of data and comprising sample data and auxiliary information corresponding to the sample data;

analyzing the bitstream, using a processor connected to the memory, for compliance with additional constraints, by at least:

identifying a first structure in a packet comprising offset information, the offset information indicating a location of auxiliary information in the bitstream, the auxiliary information corresponding to sample data;

identifying a second structure in the packet comprising size information of the auxiliary information, said first and second structures contained in a third structure; and

using the offset information and size information, determining whether all of the auxiliary information is present either inside the third structure or outside and after the third structure and before the corresponding sample data; and

continue processing the bitstream with the processor only if the bitstream complies with the additional constraints.

2. The computer-implemented process of claim 1 , wherein processing the bitstream comprises decoding the bitstream.

3. The computer-implemented process of claim 1 , wherein processing the bitstream comprises storing the bitstream.

4. The computer-implemented process of claim 1 , wherein the additional constraints comprise constraints in addition to the defined standard.

5. The computer-implemented process of claim 4 , wherein the additional constraints comprise constraints on offsets from data to related data.

6. The computer-implemented process of claim 4 , wherein the additional constraints comprise constraints to resolve conflicts between implied values derived using different rules.

7. The computer-implemented process of claim 4 , wherein the additional constraints comprise constraints to ensure that auxiliary data related to sample data is present in the bitstream.

8. The computer-implemented process of claim 4 , wherein the additional constraints comprise constraints to limit scope of nested data structures.

9. The computer-implemented process of claim 4 , wherein the additional constraints comprise constraints to limit versioning.

10. The computer-implemented process of claim 4 , wherein the additional constraints comprise using application-level knowledge to directly access data in a bitstream instead of processing indirect references to that data.

11. An article of manufacture comprising:

a computer storage medium comprising at least one of a memory or persistent storage;

computer program instructions stored on the computer storage medium which, when processed by a processing device, instruct the processing device to perform a process comprising:

receiving into memory a bitstream of encoded data into memory, the encoded data being compliant with a defined standard and including packets of data and comprising sample data and auxiliary information corresponding to the sample data;

analyzing the bitstream, using a processor connected to the memory, for compliance with additional constraints, by:

identifying a first structure in a packet comprising offset information, the offset information indicating a location of auxiliary information in the bitstream, the auxiliary information corresponding to sample data;

identifying a second structure in the packet comprising size information of the auxiliary information, said first and second structures contained in a third structure; and

using the offset information and size information, determining whether all of the auxiliary information is present either inside the third structure or outside and after the third structure and before the corresponding sample data; and

continue processing the bitstream with the processor only if the bitstream complies with the additional constraints.

12. The article of manufacture of claim 11 , wherein the additional constraints comprise constraints in addition to the defined standard.

13. The article of manufacture of claim 12 , wherein the additional constraints comprise constraints on offsets from data to related data.

14. The article of manufacture of claim 12 , wherein the additional constraints comprise constraints to resolve conflicts between implied values derived using different rules.

15. The article of manufacture of claim 12 , wherein the additional constraints comprise using application-level knowledge to directly access data in a bitstream instead of processing indirect references to that data.

16. A computer comprising:

a media processor executing on hardware with an operating system, the media processor being configured to:

access memory that stores a bitstream of encoded data, the encoded data being compliant with a defined standard and including packets of data and comprising sample data and auxiliary information corresponding to the sample data,

analyze the bitstream for compliance with additional constraints, by:

identifying a first structure in a packet comprising offset information, the offset information indicating a location of auxiliary information in the bitstream, the auxiliary information corresponding to sample data;

identifying a second structure in the packet comprising size information of the auxiliary information, said first and second structures contained in a third structure; and

using the offset information and size information, determining whether all of the auxiliary information is present either inside the third structure or outside and after the third structure and before the corresponding sample data, and

continue processing the bitstream only if the bitstream complies with the additional constraints.

17. The computer of claim 16 , wherein the additional constraints comprise constraints in addition to the defined standard.

18. The computer of claim 17 , wherein the additional constraints comprise constraints on offsets from data to related data.

19. The computer of claim 17 , wherein the additional constraints comprise constraints to resolve conflicts between implied values derived using different rules.

20. The computer of claim 17 , wherein the additional constraints comprise using application-level knowledge to directly access data in a bitstream instead of processing indirect references to that data.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 9, 2015
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 039025/0454 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 25, 2014
From: KANUMURI, SANDEEP; SADHWANI, SHYAM
To: MICROSOFT CORPORATION
Reel/Frame 032754/0438 →
Continuity (1)
Related Publication 20150169594A1 · Jun 18, 2015