×

Video compression across continuous frame edges

  • US 10,609,379 B1
  • Filed: 09/01/2015
  • Issued: 03/31/2020
  • Est. Priority Date: 09/01/2015
  • Status: Active Grant
First Claim
Patent Images

1. A method for compressing video, the method comprising:

  • receiving, by an image processor, a panoramic video file, wherein receiving the panoramic video file comprises receiving frame data describing a plurality of frames;

    selecting a subject frame from the panoramic video file, wherein the subject frame comprises a first plurality of pixel values corresponding to positions on a two-dimensional grid, wherein the first plurality of pixel values depict a cylindrical projection of a 360°

    field-of-view;

    dividing, by the image processor, the subject frame into a first plurality of macroblocks, wherein each macroblock of the first plurality of macroblocks comprises a set of pixel values that are selected from the first plurality of pixel values and that correspond to contiguous positions in the two-dimensional grid, and wherein the first plurality of macroblocks comprises a subject frame left column of macroblocks positioned adjacent to a left edge of the subject frame and a subject frame right column of macroblocks positioned adjacent a right edge of the subject frame;

    identifying, by the image processor, cross-edge spatial continuity between a first macroblock in the subject frame left column of macroblocks and a second macroblock in the subject frame right column of macroblocks, wherein identifying the cross-edge spatial continuity comprises identifying a similarity between first pixel values of the first macroblock and second pixel values of the second macroblock;

    receiving a subsequent frame of the panoramic video file, wherein the subsequent frame comprises a second plurality of pixel values corresponding to positions on the two-dimensional grid, and wherein the subsequent frame is positioned immediately after the subject frame according to a temporal sequence of frames of the panoramic video file;

    dividing, by the image processor, the subsequent frame into a second plurality of macroblocks, wherein the second plurality of macroblocks comprises a subsequent frame left column of macroblocks positioned on a left side of the subsequent frame and a subsequent frame right column of macroblocks positioned on a right side of the subsequent frame;

    identifying, by the image processor, a first motion vector between a first initial position including a portion of a subject frame right column macroblock to a first next position including a portion of a subsequent frame left column macroblock; and

    generating a compressed copy of the panoramic video file, wherein generating the compressed copy of the panoramic video file comprises;

    writing the second macroblock in the subject frame right column of macroblocks to the compressed copy of the panoramic video file; and

    for the first macroblock in the subject frame left column of macroblocks, writing a cross-edge reference to the second macroblock in the subject frame right column of macroblocks, wherein the cross-edge reference comprises a first pointer to the second macroblock and difference data describing a difference between the first macroblock and the second macroblock; and

    replacing, by the image processor, the subject frame right column macroblock with a second reference to the subsequent frame left column macroblock, wherein the second reference comprises a second pointer to the subsequent frame left column macroblock and second difference data describing a second difference between the subject frame right column macroblock and the subsequent frame left column macroblock.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×