IP Library Granted Patent US 8,155,202
Granted Patent B2
US 8,155,202 · App. 12/008,716 · Granted Apr 10, 2012

System and method for encoding scrolling raster images

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,155,202
App. No.
12/008,716
Granted
Apr 10, 2012
Kind
B2
Abstract

A scrolling encoder encodes scrolling elements that are to be scrolled around all or a subset of the frames of a video stream or file with their movement in time and space controlled by a path to produce a video stream or file, without searching previous or subsequent frames of the video stream or file for reference blocks. The scrolling element can be an image, video, text or any combination thereof. The scrolling element is encoded using information about the contents of the scrolling element and information about a path the scrolling element is to take across a screen. The information about the contents of the scrolling element is obtained when the scrolling element is first introduced into a frame. The information about the path of the scrolling element is provided by an external component or is otherwise deduced. Optionally, the path information includes information about how the scrolling element is to change appearance. This information may be used to automatically generate error terms.

Claims (174)

1. A method for encoding a scrolling element so the scrolling element can be scrolled through a scrolling region in accordance with path information, without searching for a reference frame or a reference macroblock, the method comprising:

standard encoding the scrolling element for at least one frame; and

for at least one subsequent frame:

calculating a location for the scrolling element based on the path information;

determining, based on the path information, at least one motion vector that references a previously-encoded frame; and

encoding the scrolling element using the least one calculated motion vector,

wherein calculating the location for the scrolling element comprises calculating an X coordinate, within the subsequent frame, of the scrolling element according to the formula:

X=X (previous)+(speed×delta frame number),

where:

X(previous) represents an X coordinate at which the scrolling element was displayed in the previously-encoded frame;

speed represents a speed of the scrolling element; and

delta frame number represents a difference between the subsequent frame and the previously-encoded frame.

2. A method for encoding a scrolling element so the scrolling element can be scrolled through a scrolling region in accordance with path information, without searching for a reference frame or a reference macroblock, the method comprising:

standard encoding the scrolling element for at least one frame; and

for at least one subsequent frame:

calculating a location for the scrolling element based on the path information;

determining, based on the path information, at least one motion vector that references a previously-encoded frame; and

encoding the scrolling element using the least one calculated motion vector,

wherein calculating the at least one motion vector comprises calculating an X coordinate, within a previously-encoded frame, of a macroblock according to the formula:

X=X (encode)−(speed×delta time),

where:

X(encode) represents an X coordinate of a macroblock in the subsequent frame;

speed represents a speed of the scrolling element; and

delta time represents a difference between a time associated with the subsequent frame and a time associated with the previously-encoded frame.

3. A method for encoding a scrolling element so the scrolling element can be scrolled through a scrolling region in accordance with path information, without searching for a reference frame or a reference macroblock, the method comprising:

standard encoding the scrolling element for at least one frame; and

for at least one subsequent frame:

calculating a location for the scrolling element based on the path information;

determining, based on the path information, at least one motion vector that references a previously-encoded frame; and

encoding the scrolling element using the least one calculated motion vector,

wherein calculating the location for the scrolling element comprises calculating an Y coordinate, within the subsequent frame, of the scrolling element according to the formula:

Y=Y (previous)+(speed×delta frame number),

where:

Y(previous) represents an Y coordinate at which the scrolling element was displayed in the previously-encoded frame;

speed represents a speed of the scrolling element; and

delta frame number represents a difference between the subsequent frame and the previously-encoded frame.

4. A method for encoding a scrolling element so the scrolling element can be scrolled through a scrolling region in accordance with path information, without searching for a reference frame or a reference macroblock, the method comprising:

standard encoding the scrolling element for at least one frame; and

for at least one subsequent frame:

calculating a location for the scrolling element based on the path information;

determining, based on the path information, at least one motion vector that references a previously-encoded frame; and

encoding the scrolling element using the least one calculated motion vector,

wherein calculating the at least one motion vector comprises calculating an Y coordinate, within a previously-encoded frame, of a macroblock according to the formula:

Y=Y (encode)−(speed×delta time),

where:

Y(encode) represents an Y coordinate of a macroblock in the subsequent frame;

speed represents a speed of the scrolling element; and

delta time represents a difference between a time associated with the subsequent frame and a time associated with the previously-encoded frame.

5. A method for encoding a scrolling element so the scrolling element can be scrolled through a scrolling region in accordance with path information, without searching for a reference frame or a reference macroblock, the method comprising:

standard encoding the scrolling element for at least one frame; and

for at least one subsequent frame:

calculating a location for the scrolling element based on the path information;

determining, based on the path information, at least one motion vector that references a previously-encoded frame; and

encoding the scrolling element using the least one calculated motion vector,

wherein calculating the location for the scrolling element comprises calculating an X coordinate and an Y coordinate, within the subsequent frame, of the scrolling element according to the formula:

X=X (previous)+(speed X ×delta frame number),

Y=Y (previous)+(speed Y ×delta frame number),

where:

X(previous) represents an X coordinate at which the scrolling element was displayed in the previously-encoded frame;

Y(previous) represents an Y coordinate at which the scrolling element was displayed in the previously-encoded frame;

speed X represents a speed of the scrolling element in the X direction;

speed Y represents a speed of the scrolling element in the Y direction;

and

delta frame number represents a difference between the subsequent frame and the previously-encoded frame.

6. A method for encoding a scrolling element so the scrolling element can be scrolled through a scrolling region in accordance with path information, without searching for a reference frame or a reference macroblock, the method comprising:

standard encoding the scrolling element for at least one frame; and

for at least one subsequent frame:

calculating a location for the scrolling element based on the path information;

determining, based on the path information, at least one motion vector that references a previously-encoded frame; and

encoding the scrolling element using the least one calculated motion vector,

wherein calculating the at least one motion vector comprises calculating an X coordinate and a Y coordinate, within a previously-encoded frame, of a macroblock according to the formula:

X=X (encode)−(speed X ×delta time),

Y=Y (encode)−(speed Y ×delta time),

where:

X(encode) represents an X coordinate of a macroblock in the subsequent frame;

Y(encode) represents an Y coordinate of a macroblock in the subsequent frame;

speed X represents a speed of the scrolling element in the X direction;

speed Y represents a speed of the scrolling element in the Y direction; and

delta time represents a difference between a time associated with the subsequent frame and a time associated with the previously-encoded frame.

7. A method according to claim 1 , wherein the scrolling element is at least a portion of an image.

8. A method according to claim 1 , wherein the scrolling element is textual.

9. A method according to claim 1 , wherein the scrolling element is a combination of text and an image.

10. A method according to claim 1 , wherein standard encoding the scrolling element comprises encoding the scrolling element in at least one macroblock.

11. A method according to claim 1 , further comprising:

encoding video contents; and

combining the encoded video contents and the encoded scrolling element, such that the scrolling element and at least part of the encoded video contents occupy a common set of frames.

12. A method for encoding a scrolling element so the scrolling element can be scrolled through a scrolling region in accordance with path information, without searching for a reference frame or a reference macroblock, the method comprising:

standard encoding the scrolling element for at least one frame; and

for at least one subsequent frame:

calculating a location for the scrolling element based on the path information;

determining, based on the path information, at least one motion vector that references a previously-encoded frame; and

encoding the scrolling element using the least one calculated motion vector,

further comprising:

standard encoding a second scrolling element for at least one frame, the second scrolling element to be scrolled through a second scrolling region according to second path information;

for the at least one subsequent frame:

calculating a second location for the second scrolling element based on the second path;

calculating, based on the second path information, at least one second motion vector that references a previously-encoded frame; and

encoding the second scrolling element using the at least one second motion vector; and

combining the encoded scrolling element and the second encoded scrolling element, such that the two scrolling elements occupy a common set of frames.

13. A method for encoding a scrolling element so the scrolling element can be scrolled through a scrolling region in accordance with path information, without searching for a reference frame or a reference macroblock, the method comprising:

standard encoding the scrolling element for at least one frame; and

for at least one subsequent frame:

calculating a location for the scrolling element based on the path information;

determining, based on the path information, at least one motion vector that references a previously-encoded frame; and

encoding the scrolling element using the least one calculated motion vector,

further comprising:

standard encoding N additional scrolling elements, the N scrolling elements each to be scrolled according to path information; and

for the at least one subsequent frame:

calculating a second location for each of the N scrolling elements to be displayed in the subsequent frame according to respective path information;

calculating, based on the path information for each of the N scrolling elements to be displayed in the subsequent frame, at least one motion vector that references a previously-encoded frame; and

encoding the N scrolling elements using the motion vector calculated for each respective scrolling element.

14. A method according to claim 13 further comprising:

combining the encoded scrolling element and the N additional encoded scrolling elements, such that at least a plurality of scrolling elements occupy a common set of frames.

15. A method according to claim 12 , further comprising:

encoding video contents; and

combining the encoded video contents and the two encoded scrolling elements, such that the two scrolling elements and at least part of the encoded video contents occupy a common set of frames.

16. A computer program product for encoding a scrolling element so the scrolling element can be scrolled through a scrolling region in accordance with path information, without searching for a reference frame or a reference macroblock, the computer program product comprising:

standard encoding the scrolling element for at least one frame; and

for at least one subsequent frame:

a non-transitory computer-readable medium on which are stored computer instructions for:

calculating a location for the scrolling element based on the path information;

determining, based on the path information, at least one motion vector that references a previously-encoded frame; and

encoding the scrolling element using the least one calculated motion vector,

wherein calculating the location for the scrolling element comprises calculating an X coordinate, within the subsequent frame, of the scrolling element according to the formula:

X=X (previous)+(speed×delta frame number),

where:

X(previous) represents an X coordinate at which the scrolling element was displayed in the previously-encoded frame;

speed represents a speed of the scrolling element; and

delta frame number represents a difference between the subsequent frame and the previously-encoded frame.

17. A computer program product for encoding a scrolling element so the scrolling element can be scrolled through a scrolling region in accordance with path information, without searching for a reference frame or a reference macroblock, the computer program product comprising:

standard encoding the scrolling element for at least one frame; and

for at least one subsequent frame:

a non-transitory computer-readable medium on which are stored computer instructions for:

standard encoding the scrolling element for at least one frame; and

for at least one subsequent frame:

calculating a location for the scrolling element based on the path information;

determining, based on the path information, at least one motion vector that references a previously-encoded frame; and

encoding the scrolling element using the least one calculated motion vector,

wherein calculating the at least one motion vector comprises calculating an X coordinate, within a previously-encoded frame, of a macroblock according to the formula:

X=X (encode)−(speed×delta time),

where:

X(encode) represents an X coordinate of a macroblock in the subsequent frame;

speed represents a speed of the scrolling element; and

delta time represents a difference between a time associated with the subsequent frame and a time associated with the previously-encoded frame.

18. A computer program product for encoding a scrolling element so the scrolling element can be scrolled through a scrolling region in accordance with path information, without searching for a reference frame or a reference macroblock, the computer program product comprising:

standard encoding the scrolling element for at least one frame; and

for at least one subsequent frame:

a non-transitory computer-readable medium on which are stored computer instructions for:

standard encoding the scrolling element for at least one frame; and

for at least one subsequent frame:

calculating a location for the scrolling element based on the path information;

determining, based on the path information, at least one motion vector that references a previously-encoded frame; and

encoding the scrolling element using the least one calculated motion vector,

wherein calculating the location for the scrolling element comprises calculating an Y coordinate, within the subsequent frame, of the scrolling element according to the formula:

Y=Y (previous)+(speed×delta frame number),

where:

Y(previous) represents an Y coordinate at which the scrolling element was displayed in the previously-encoded frame;

speed represents a speed of the scrolling element; and

delta frame number represents a difference between the subsequent frame and the previously-encoded frame.

19. A computer program product for encoding a scrolling element so the scrolling element can be scrolled through a scrolling region in accordance with path information, without searching for a reference frame or a reference macroblock, the computer program product comprising:

standard encoding the scrolling element for at least one frame; and

for at least one subsequent frame:

a non-transitory computer-readable medium on which are stored computer instructions for:

standard encoding the scrolling element for at least one frame; and

for at least one subsequent frame:

calculating a location for the scrolling element based on the path information;

determining, based on the path information, at least one motion vector that references a previously-encoded frame; and

encoding the scrolling element using the least one calculated motion vector,

wherein calculating the at least one motion vector comprises calculating an Y coordinate, within a previously-encoded frame, of a macroblock according to the formula:

Y=Y (encode)−(speed×delta time),

where:

Y(encode) represents an Y coordinate of a macroblock in the subsequent frame;

speed represents a speed of the scrolling element; and

delta time represents a difference between a time associated with the subsequent frame and a time associated with the previously-encoded frame.

Assignments (3)
CONVERSION OF ENTITY Recorded Feb 23, 2024
From: ACTIVEVIDEO NETWORKS, INC.
To: ACTIVEVIDEO NETWORKS, LLC
Reel/Frame 066665/0689 →
CHANGE OF NAME Recorded Jul 3, 2008
From: ICTV, INC.
To: ACTIVEVIDEO NETWORKS, INC.
Reel/Frame 021185/0870 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 19, 2008
From: LANDAU, AIRAN
To: ICTV, INC.
Reel/Frame 020675/0461 →