IP Library Granted Patent US 10,542,303
Granted Patent B2
US 10,542,303 · App. 15/693,016 · Granted Jan 21, 2020

Systems and methods for protecting elementary bitstreams incorporating independently encoded tiles

Inventors: Jason Braness (San Diego, CA); William David Amidei (San Diego, CA); Mayur Srinivasan (San Diego, CA)
Assignee: DIVX, LLC
H04N21/23476H04L63/0428H04N21/2353H04N21/435H04N21/44055H04L9/065
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,542,303
App. No.
15/693,016
Granted
Jan 21, 2020
Kind
B2
Abstract

Systems and methods for partial frame encryption in accordance with embodiments of the invention are disclosed. In one embodiment, the method receives a video bitstream that includes several frames, each frame including several independently encoded compression units within the frame, encrypts a portion of each of several compression units in several frames, and generates an output bitstream that includes the several independently encoded compression units including the encrypted portions of the compression units.

Claims (38)

1. A non-transitory machine readable medium containing processor instructions, where execution of the instructions by a processor causes the processor to perform a process comprising:

receiving a video bitstream comprising a plurality of frames, each frame comprising a plurality of tiles that divide the frame into rectangular areas, wherein each tile is an independently encoded compression unit that is encoded without dependence from information in another tile;

determining locations of a plurality of tiles within the video bitstream based on information provided by at least one metadata header associated with a frame of video;

encrypting a portion of each of a plurality of tiles within the frame of video based on the determined locations; and

generating an output bitstream comprising the plurality of tiles including the encrypted portions of the tiles.

2. The non-transitory machine readable medium of claim 1 , wherein each tile is an independently decodable portion of a particular frame of video such that it does not depend upon another compression unit within the particular frame in order to be decoded.

3. The non-transitory machine readable medium of claim 1 , wherein encrypting the portion of each of the plurality of tiles comprises determining that tiles are enabled based on information within a header associated with the video bitstream.

4. The non-transitory machine readable medium of claim 1 , further comprising encrypting a portion of every tile in a frame of video.

5. The non-transitory machine readable medium of claim 4 , wherein the portion is selected from the group consisting of i) a first N bytes of the tile, ii) a last N bytes of the tile, iii) a middle portion of N bytes within the tile and iv) a pattern of N bytes within the tile compression unit.

6. The non-transitory machine readable medium of claim 1 , wherein the tiles are tiles within a High-Efficiency Video Coding (HEVC) standard and the video bitstream is encoded based on the HEVC standard.

7. The non-transitory machine readable medium of claim 6 , further comprising:

parsing a Picture Parameter Set (PPS) of the HEVC video bitstream to identify the structure of the tiles within the video bitstream; and

encrypt portions of the tiles based on the structure.

8. The non-transitory machine readable medium of claim 1 , wherein encrypting the portion of each of the plurality of tiles comprises using a common encryption format (CENC) to encrypt the portions.

9. A content encoder comprising:

a memory; and

a processor configured to communicate with the memory, where the memory contains an encoder application;

wherein the encoder application directs the processor to:

receive a video bitstream comprising a plurality of frames, each frame comprising a plurality of independently encoded compression units within the frame, wherein the compression units are tiles within a High-Efficiency Video Coding (HEVC) standard and the video bitstream is encoded based on the HEVC standard;

parse a Picture Parameter Set (PPS) of the HEVC video bitstream to identify the structure of the tiles within the video bitstream;

encrypt a portion of each of a plurality of tiles in a plurality of frames based on the structure; and

generate an output bitstream comprising the plurality of independently encoded compression units including the encrypted portions of the compression units.

10. The content encoder of claim 9 , wherein each tile is an independently decodable portion of a particular frame of video such that it does not depend upon another compression unit within the particular frame in order to be decoded.

11. The content encoder of claim 9 , wherein the encoder application further directs the processor to:

parse a metadata header to identify locations of compression units within a frame of video; and

encrypt a portion of the video bitstream based on the locations of the compression units.

12. The content encoder claim 9 , wherein encrypting the portion of each of the plurality of tiles comprises determining that tiles are enabled based on information within a header associated with the video bitstream.

13. The content encoder claim 9 , wherein the encoder application further directs the processor to encrypt a portion of every tile in a frame of video.

14. The content encoder of claim 13 , wherein the portion is selected from the group consisting of i) a first N bytes of the tile, ii) a last N bytes of the tile, iii) a middle portion of N bytes within the compression unit and iv) a pattern of N bytes within the tile.

15. The content encoder of claim 9 , wherein encrypting the portion of each of the plurality of tiles comprises using a common encryption format (CENC) to encrypt the portions.

16. A content decoder comprising:

a memory; and

a processor configured to communicate with the memory, where the memory contains a decoder application;

wherein the decoder application directs the processor to:

receive a video bitstream comprising plurality of frames, each frame comprising a plurality of tiles that divide the frame into rectangular areas, wherein each tile is an independently encoded compression unit that is encoded without dependence from information in another tile;

determine locations of encrypted portions of a plurality of tiles within the video bitstream based on information provided by at least one metadata header associated with a frame of video;

decrypt a portion of each of a plurality of tiles within the frame of video based on the determined locations; and

generate an output decoded video for playback.

Assignments (4)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2017
From: BRANESS, JASON; AMIDEI, WILLIAM DAVID; SRINIVASAN, MAYUR
To: SONIC IP, INC.
Reel/Frame 044086/0716 →
Continuity (3)
Continuation 14821454 · Aug 7, 2015
Provisional Application 62034714 · Aug 7, 2014
Related Publication 20170366829A1 · Dec 21, 2017
Cited By (2)
US 12,375,739 US 12,585,816