Systems and methods for multiple-resolution storage of media streams
First Claim
1. A method comprising, by a computer system:
- continuously receiving, from a plurality of cameras, raw video frames at an initial resolution, wherein the plurality of cameras are arranged to provide a 360-degree view relative to a point of reference;
for each camera of the plurality of cameras, for each raw video frame, as the raw video frame is received;
downscaling the raw video frame to a first resolution to yield a first scaled video frame;
downscaling the raw video frame to a second resolution distinct from the first resolution to yield a second scaled video frame;
identifying a location of a target in at least one of the raw video frame, the first scaled video frame, and the second scaled video frame;
cropping at least one video frame selected from among the raw video frame, the first scaled video frame, and the second scaled video frame based, at least in part, on the location of the target;
downscaling the cropped at least one video frame to a third resolution to yield a third scaled video frame; and
storing the first scaled video frame, the second scaled video frame, and information related to the cropped at least one video frame as part of a first video stream, a second video stream, and a third video stream, respectively; and
blending together a video stream of each of the plurality of cameras into a 360-degree video stream, wherein the video stream of each of the plurality of cameras comprises at least one of the first video stream, the second video stream, and the third video stream.
5 Assignments
0 Petitions
Accused Products
Abstract
In an embodiment, a method includes continuously receiving, from a camera, raw video frames at an initial resolution. The method also includes, for each raw video frame, as the raw video frame is received: downscaling the raw video frame to a first resolution to yield a first scaled video frame; downscaling the raw video frame to a second resolution distinct from the first resolution to yield a second scaled video frame; identifying a location of a target; cropping at least video frame based, at least in part, on the location of the target; and storing the first scaled video frame, the second scaled video frame, and information related to the cropped at least one video frame as part of a first video stream, a second video stream, and a third video stream, respectively.
343 Citations
20 Claims
-
1. A method comprising, by a computer system:
-
continuously receiving, from a plurality of cameras, raw video frames at an initial resolution, wherein the plurality of cameras are arranged to provide a 360-degree view relative to a point of reference; for each camera of the plurality of cameras, for each raw video frame, as the raw video frame is received; downscaling the raw video frame to a first resolution to yield a first scaled video frame; downscaling the raw video frame to a second resolution distinct from the first resolution to yield a second scaled video frame; identifying a location of a target in at least one of the raw video frame, the first scaled video frame, and the second scaled video frame; cropping at least one video frame selected from among the raw video frame, the first scaled video frame, and the second scaled video frame based, at least in part, on the location of the target; downscaling the cropped at least one video frame to a third resolution to yield a third scaled video frame; and storing the first scaled video frame, the second scaled video frame, and information related to the cropped at least one video frame as part of a first video stream, a second video stream, and a third video stream, respectively; and blending together a video stream of each of the plurality of cameras into a 360-degree video stream, wherein the video stream of each of the plurality of cameras comprises at least one of the first video stream, the second video stream, and the third video stream. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A system comprising a processor and memory, wherein the processor and memory in combination are operable to implement a method comprising:
-
continuously receiving, from a plurality of cameras, raw video frames at an initial resolution, wherein the plurality of cameras are arranged to provide a 360-degree view relative to a point of reference; for each camera of the plurality of cameras, for each raw video frame, as the raw video frame is received; downscaling the raw video frame to a first resolution to yield a first scaled video frame; downscaling the raw video frame to a second resolution distinct from the first resolution to yield a second scaled video frame; identifying a location of a target in at least one of the raw video frame, the first scaled video frame, and the second scaled video frame; cropping at least one video frame selected from among the raw video frame, the first scaled video frame, and the second scaled video frame based, at least in part, on the location of the target; downscaling the cropped at least one video frame to a third resolution to yield a third scaled video frame; and storing the first scaled video frame, the second scaled video frame, and information related to the cropped at least one video frame as part of a first video stream, a second video stream, and a third video stream, respectively; and blending together a video stream of each of the plurality of cameras into a 360-degree video stream, wherein the video stream of each of the plurality of cameras comprises at least one of the first video stream, the second video stream, and the third video stream. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19)
-
-
20. A computer-program product comprising a non-transitory computer-usable medium having computer-readable program code embodied therein, the computer-readable program code adapted to be executed to implement a method comprising:
-
continuously receiving, from a plurality of cameras, raw video frames at an initial resolution, wherein the plurality of cameras are arranged to provide a 360-degree view relative to a point of reference; for each camera of the plurality of cameras, for each raw video frame, as the raw video frame is received; downscaling the raw video frame to a first resolution to yield a first scaled video frame; downscaling the raw video frame to a second resolution distinct from the first resolution to yield a second scaled video frame; identifying a location of a target in at least one of the raw video frame, the first scaled video frame, and the second scaled video frame; cropping at least one video frame selected from among the raw video frame, the first scaled video frame, and the second scaled video frame based, at least in part, on the location of the target; downscaling the cropped at least one video frame to a third resolution to yield a third scaled video frame; and storing the first scaled video frame, the second scaled video frame, and information related to the cropped at least one video frame as part of a first video stream, a second video stream, and a third video stream, respectively; and blending together a video stream of each of the plurality of cameras into a 360-degree video stream, wherein the video stream of each of the plurality of cameras comprises at least one of the first video stream, the second video stream, and the third video stream.
-
Specification