IP Library Granted Patent US 9,179,155
Granted Patent B1
US 9,179,155 · App. 13/523,255 · Granted Nov 3, 2015

Skipped macroblock video encoding enhancements

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,179,155
App. No.
13/523,255
Granted
Nov 3, 2015
Kind
B1
Abstract

Systems and methods for encoding a video stream based upon identified regions of interest (ROI's) are disclosed herein. Standard video encoding schemes require a significant amount of unnecessary data in order to designate macroblocks to be skipped for a particular video frame of a video stream. Rather than encoding such skip or no skip information for each macroblock (or sequence of macroblocks) for each frame, embodiments disclosed herein can encode the video stream based upon an identified ROI that represents an area of macroblocks that change and/or do not remain static from one frame to the next. Designating active areas in terms of the ROI can yield more efficient encoding.

Claims (32)

1. A method, comprising:

identifying a current frame from a plurality of input frames;

identifying a region of interest in the current frame, wherein the region of interest includes a plurality of blocks;

generating an encoded current frame by encoding the current frame;

including, by a processor in response to instructions stored on a non-transitory computer readable medium, the encoded current frame in an output bitstream such that the output bitstream omits information corresponding to blocks from the frame other than the plurality of blocks from the region of interest and such that the output bitstream omits information indicating that a block from the frame is a skipped block, wherein including the encoded current frame in the output bitstream includes including an indication of the region of interest in the output bitstream, wherein the indication of the region of interest includes an offset and a size for the region of interest; and

transmitting or storing the output bitstream.

2. The method of claim 1 , wherein including the encoded current frame in the output bitstream includes including a header for the current frame in the output bitstream, the header including the indication of the region of interest.

3. The method of claim 1 , wherein including the encoded current frame in the output bitstream such that the output bitstream omits information corresponding to blocks from the frame other than the plurality of blocks from the region of interest includes:

including the encoded current frame in the output bitstream such that the output bitstream omits information indicating that a particular plurality of blocks from the frame are skipped blocks.

4. A method comprising:

identifying a frame from an input video stream, wherein the frame includes a plurality of blocks;

identifying a plurality of contiguous motion blocks from the plurality of blocks, such that blocks from the plurality of blocks that are omitted from the plurality of contiguous motion blocks are static blocks;

generating an encoded frame by encoding the plurality of contiguous motion blocks;

including, by a processor in response to instructions stored on a non-transitory computer readable medium, the encoded frame in an output bitstream, such that the output bitstream omits information corresponding to the static blocks, and such that the output bitstream omits information indicating that a block from the frame is a skipped block, wherein including the encoded current frame in the output bitstream includes including an indication of plurality of contiguous motion blocks in the output bitstream, wherein the indication of the plurality of contiguous motion blocks includes an offset and a size for the plurality of contiguous motion blocks; and

storing or transmitting the output bitstream.

5. The method of claim 4 , wherein including the encoded frame in the output bitstream includes including a header for the frame in the output bitstream, the header including:

a horizontal offset indicating a horizontal position of a top-left block from the plurality of contiguous motion blocks in the frame;

a vertical offset indicating a vertical position of the top-left block from the plurality of contiguous motion blocks in the frame;

a horizontal size indicating a horizontal position of a bottom-right block from the plurality of contiguous motion blocks in the frame; and

a vertical size indicating a vertical position of the bottom-right block from the plurality of contiguous motion blocks in the frame.

6. The method of claim 4 , wherein including the encoded frame in the output bitstream includes:

including the encoded frame in the output bitstream such that the output bitstream omits information indicating that a contiguous plurality of static blocks from the frame are skipped blocks.

7. A method comprising:

receiving an encoded video stream, the encoded video stream including an encoded current frame;

generating, by a processor in response to instructions stored on a non-transitory computer readable medium, a decoded frame by decoding the encoded current frame, wherein decoding the encoded current frame includes decoding a plurality of contiguous motion blocks from the encoded current frame, such that the decoded frame includes a plurality of static blocks and wherein the encoded current frame omits information corresponding to the plurality of static blocks, wherein the encoded video stream omits information indicating that a block from the encoded current frame is a skipped block, and wherein the encoded video stream includes an indication of plurality of contiguous motion blocks, wherein the indication of the plurality of contiguous motion blocks includes an offset and a size for the plurality of contiguous motion blocks; and

outputting the decoded frame for presentation.

8. The method of claim 7 , wherein decoding the encoded current frame includes decoding a header, the header including:

a horizontal offset indicating a horizontal position of a top-left block from the plurality of contiguous motion blocks in the decoded frame;

a vertical offset indicating a vertical position of the top-left block from the plurality of contiguous motion blocks in the decoded frame;

a horizontal size indicating a horizontal position of a bottom-right block from the plurality of contiguous motion blocks in the decoded frame; and

a vertical size indicating a vertical position of the bottom-right block from the plurality of contiguous motion blocks in the decoded frame.

9. The method of claim 7 , wherein decoding the encoded current frame includes decoding the encoded current frame on a condition that the encoded video stream omits information indicating that a contiguous plurality of blocks are skipped blocks.

Assignments (2)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044334/0466 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 14, 2012
From: RINTALUOMA, TERO MIKKO; PIETILA, SAMI ALEKSI
To: GOOGLE INC.
Reel/Frame 028376/0754 →