US10783670B2 - Method for compression of 360 degree content and electronic device thereof - Google Patents
Method for compression of 360 degree content and electronic device thereof Download PDFInfo
- Publication number
- US10783670B2 US10783670B2 US16/158,623 US201816158623A US10783670B2 US 10783670 B2 US10783670 B2 US 10783670B2 US 201816158623 A US201816158623 A US 201816158623A US 10783670 B2 US10783670 B2 US 10783670B2
- Authority
- US
- United States
- Prior art keywords
- degree
- rotations
- rotation
- degree image
- content
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active, expires
Links
- 230000006835 compression Effects 0.000 title claims abstract description 119
- 238000007906 compression Methods 0.000 title claims abstract description 119
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000013528 artificial neural network Methods 0.000 claims description 19
- 230000000087 stabilizing effect Effects 0.000 claims description 13
- 239000013598 vector Substances 0.000 claims description 10
- 238000001514 detection method Methods 0.000 claims description 5
- 238000010191 image analysis Methods 0.000 claims description 4
- 230000006641 stabilisation Effects 0.000 claims description 4
- 238000011105 stabilization Methods 0.000 claims description 4
- 238000012549 training Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 description 25
- 238000004590 computer program Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/60—Rotation of whole images or parts thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/002—Image coding using neural networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/172—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
Definitions
- the present disclosure relates to methods, apparatus and computer programs for compression 360 degree content comprising at least one 360 degree image.
- New generation video formats such as UHD-4K, UHD-8K and 16K (True VR) offer higher resolution and framerates than the current Full High Definition (FHD) format, which provides a resolution of 1920 ⁇ 1080 at a framerate of 30 Hertz (Hz).
- FHD Full High Definition
- 16K specifies a resolution of 16380 ⁇ 16384 and a framerate of 240 Hz. It can be expected that future generations will adopt even higher resolutions on framerates.
- a method of compressing 360 degree content comprising: receiving 360 degree content comprising at least one 360 degree image; applying a rotation to the received 360 degree image such that a compression ratio achieved when the 360 degree content including the rotated 360 degree image is compressed using a compression algorithm is increased, relative to a compression ratio that would be achieved when applying the compression algorithm to the as-received 360 degree content; compressing the 360 degree content including the rotated 360 degree image using the compression algorithm; and outputting the compressed 360 degree content and a rotation parameter defining the applied rotation.
- the method further comprises selecting the rotation to be applied to the received 360 degree image by evaluating a plurality of candidate rotations, and selecting the rotation which gives the highest compression ratio among the plurality of candidate rotations.
- the 360 degree content is 360 degree video and the 360 degree image is one of a plurality of frames
- the method further comprises selecting the rotation to be applied to the received 360 degree image based on one or more rotations previously applied to one or more other frames of the 360 degree video.
- different rotations can be selected for different frames in the 360 degree video.
- the plurality of candidate rotations are randomly selected from among a plurality of possible rotations.
- the plurality of candidate rotations are selected based on image analysis of the 360 degree image.
- the plurality of candidate rotations are selected by analyzing the received 360 degree image to identify a region of low complexity within the 360 degree image, and selecting rotations which will place the identified region in a predefined area of the rotated 360 degree image as the candidate rotations.
- the plurality of candidate rotations are selected by analyzing the received 360 degree image to identify a region of high frequency within the 360 degree image, and selecting rotations which will place the identified region in a predefined area of the rotated 360 degree image as the candidate rotations.
- the plurality of candidate rotations are selected by performing line detection on the received 360 degree image to determine a representative line orientation of the 360 degree image, and selecting rotations which will bring the representative line orientation closer to one or more predefined directions, as the candidate rotations.
- the plurality of candidate rotations are selected by inputting the 360 degree image to a neural network configured to determine candidate rotations that are likely to increase the compression ratio for a given input image.
- the method further comprises using the method of any one of claims 1 to 9 to determine, for each one of a plurality of 360 degree images, a rotation for increasing the compression ratio of the respective 360 degree image, and training the neural network using said plurality of 360 degree images and the respective determined rotations.
- the 360 degree content is 360 degree video and the 360 degree image is one of a plurality of frames
- the plurality of candidate rotations are selected by obtaining motion vectors for one or more moving objects in the frames of the 360 degree video, and selecting rotations which will reduce an overall motion vector for the 360 degree image as the candidate rotations.
- the compression algorithm is selected from among a plurality of available compression algorithms, and the plurality of candidate rotations are selected in accordance with the selected compression algorithm.
- outputting the compressed 360 degree content and the rotation parameter comprises storing at least the compressed 360 degree content in computer-readable memory.
- the method further comprises reproducing the 360 degree content by determining an inverse rotation to be applied to the compressed 360 degree image based on the outputted rotation parameter, wherein the inverse rotation is an opposite rotation to the rotation that was applied before compression, applying the inverse rotation to the compressed 360 image to obtain a second rotated 360 degree image, and reproducing the 360 degree content by rendering the second rotated 360 degree image.
- the method further comprises receiving camera control input defining a camera rotation to be applied during reproduction of the 360 degree content, wherein the second rotated 360 degree image is obtained by applying the camera rotation in addition to the inverse rotation.
- the 360 degree content is 360 degree video and the 360 degree image is one of a plurality of frames
- the rotation parameter is defined in metadata associated with the compressed 360 degree content
- the metadata further comprising a camera stabilization parameter defining one or more stabilizing rotations to be applied to one or more of the plurality of frames for stabilizing the 360 degree video during reproduction
- the second rotated 360 degree image is obtained by applying the stabilizing rotation corresponding to the 360 degree image in addition to the inverse rotation.
- the compression algorithm is an encoding algorithm for converting the 360 degree content to a different format relative to a format of the received 360 degree content.
- the 360 degree content consists of the 360 degree image.
- a method of processing 360 degree content comprising receiving 360 degree content comprising at least one 360 degree image, determining a rotation to be applied to the received 360 degree image such that a compression ratio achieved when the 360 degree content including the rotated 360 degree image is compressed using a compression algorithm is increased, relative to a compression ratio that would be achieved when applying the compression algorithm to the as-received 360 degree content, and outputting the 360 degree content and a rotation parameter defining the applied rotation.
- a non-transitory computer-readable storage medium arranged to store computer program instructions which, when executed, perform a method according to the first aspect or the second aspect.
- apparatus for compressing 360 degree video comprising an input for receiving 360 degree content comprising at least one 360 degree image, a processing unit configured to apply a rotation to the received 360 degree image such that a compression ratio achieved when the 360 degree content including the rotated 360 degree image is compressed using a compression algorithm is increased, relative to a compression ratio that would be achieved when applying the compression algorithm to the as-received 360 degree content, and a compression unit configured to compress the 360 degree content including the rotated 360 degree image using the compression algorithm, and to output the compressed 360 degree content and a rotation parameter defining the applied rotation.
- the processing unit is configured to select the rotation to be applied to the received 360 degree image by evaluating a plurality of candidate rotations, and selecting the rotation which gives the highest compression ratio among the plurality of candidate rotations.
- the 360 degree content is 360 degree video and the 360 degree image is one of a plurality of frames
- the processing unit is configured to select the rotation to be applied to the received 360 degree image based on one or more rotations previously applied to one or more other frames of the 360 degree video.
- the processing unit can select different rotations for different frames in the 360 degree video.
- the processing unit is configured to randomly select the plurality of candidate rotations from among a plurality of possible rotations.
- the processing unit is configured to select the plurality of candidate rotations based on image analysis of the 360 degree image.
- the processing unit is configured to select the plurality of candidate rotations by analyzing the received 360 degree image to identify a region of low complexity within the 360 degree image, and selecting rotations which will place the identified region in a predefined area of the rotated 360 degree image as the candidate rotations.
- the processing unit is configured to select the plurality of candidate rotations by analyzing the received 360 degree image to identify a region of high frequency within the 360 degree image, and selecting rotations which will place the identified region in a predefined area of the rotated 360 degree image as the candidate rotations.
- the processing unit is configured to select the plurality of candidate rotations by performing line detection on the received 360 degree image to determine a representative line orientation of the 360 degree image, and selecting rotations which will bring the representative line orientation closer to one or more predefined directions, as the candidate rotations.
- the processing unit is configured to select the plurality of candidate rotations by inputting the 360 degree image to a neural network configured to determine candidate rotations that are likely to increase the compression ratio for a given input image.
- the 360 degree content is 360 degree video and the 360 degree image is one of a plurality of frames
- the processing unit is configured to select the plurality of candidate rotations by obtaining motion vectors for one or more moving objects in the frames of the 360 degree video, and selecting rotations which will reduce an overall motion vector for the 360 degree image as the candidate rotations.
- the processing unit is configured to select the compression algorithm from among a plurality of available compression algorithms, and to select the plurality of candidate rotations in accordance with the selected compression algorithm.
- the apparatus is configured to store at least the compressed 360 degree content in computer-readable memory.
- the apparatus further comprises a reproduction unit configured to reproduce the 360 degree content, wherein the reproduction unit is configured to determine an inverse rotation to be applied to the compressed 360 degree image based on the outputted rotation parameter, the inverse rotation being an opposite rotation to the rotation that was applied before compression, apply the inverse rotation to the compressed 360 degree image to obtain a second rotated 360 degree image, and render the second rotated 360 degree image.
- the reproduction unit is configured to determine an inverse rotation to be applied to the compressed 360 degree image based on the outputted rotation parameter, the inverse rotation being an opposite rotation to the rotation that was applied before compression, apply the inverse rotation to the compressed 360 degree image to obtain a second rotated 360 degree image, and render the second rotated 360 degree image.
- the reproduction unit is further configured to receive camera control input defining a camera rotation to be applied during reproduction of the 360 degree content, and to obtain the second rotated 360 degree image by applying the camera rotation in addition to the inverse rotation.
- the 360 degree content is 360 degree video and the 360 degree image is one of a plurality of frames
- the compression unit is configured to output the rotation parameter as metadata associated with the compressed 360 degree content
- the metadata further comprising a camera stabilization parameter defining one or more stabilizing rotations to be applied to one or more of the plurality of frames for stabilizing the 360 degree video during reproduction
- the reproduction unit is configured to obtain the second rotated 360 degree image by applying the stabilizing rotation corresponding to the 360 degree image in addition to the inverse rotation.
- the compression algorithm is an encoding algorithm for converting the 360 degree content to a different format relative to a format of the received 360 degree content.
- the 360 degree content consists of the 360 degree image.
- apparatus for processing 360 degree content comprising an input for receiving 360 degree content comprising at least one 360 degree image, and a processing unit configured to determine a rotation to be applied to the received 360 degree image such that a compression ratio achieved when the 360 degree content including the rotated 360 degree image is compressed using a compression algorithm is increased, relative to a compression ratio that would be achieved when applying the compression algorithm to the as-received 360 degree content, and to output the 360 degree content and a rotation parameter defining the applied rotation.
- various functions described below can be implemented or supported by one or more computer programs, each of which is formed from computer readable program code and embodied in a computer readable medium.
- application and “program” refer to one or more computer programs, software components, sets of instructions, procedures, functions, objects, classes, instances, related data, or a portion thereof adapted for implementation in a suitable computer readable program code.
- computer readable program code includes any type of computer code, including source code, object code, and executable code.
- computer readable medium includes any type of medium capable of being accessed by a computer, such as read only memory (ROM), random access memory (RAM), a hard disk drive, a compact disc (CD), a digital video disc (DVD), or any other type of memory.
- ROM read only memory
- RAM random access memory
- CD compact disc
- DVD digital video disc
- a “non-transitory” computer readable medium excludes wired, wireless, optical, or other communication links that transport transitory electrical or other signals.
- a non-transitory computer readable medium includes media where data can be permanently stored and media where data can be stored and later overwritten, such as a rewritable optical disc or an erasable memory device.
- FIG. 1 illustrates equivalent representations of a 360 degree image, according to an embodiment of the present disclosure
- FIG. 2 illustrates a flowchart for compressing 360 degree content, according to an embodiment of the present disclosure
- FIG. 3 illustrates a 360 degree image in an equirectangular projection format, according to an embodiment of the present disclosure
- FIGS. 4 and 5 illustrate the 360 degree image of FIG. 3 after applying three-dimensional rotations, according to an embodiment of the present disclosure
- FIG. 6 illustrates a graph showing the effect of a three-dimensional rotation on a compression ratio for a 360 degree image, according to an embodiment of the present disclosure
- FIG. 7 illustrates a flowchart for compressing 360 degree content by evaluating a plurality of candidate rotations, according to an embodiment of the present disclosure
- FIG. 8 is a flowchart for using a neural network to determine a rotation to increase the compression ratio for 360 degree content, according to an embodiment of the present disclosure
- FIG. 9 illustrates an apparatus for compressing 360 degree content and reproducing the compressed 360 degree content, according to an embodiment of the present disclosure.
- FIG. 10 illustrates a flowchart for processing 360 degree content, according to an embodiment of the present disclosure.
- FIGS. 1 through 10 discussed below, and the various embodiments used to describe the principles of the present disclosure in this patent document are by way of illustration only and should not be construed in any way to limit the scope of the disclosure. Those skilled in the art will understand that the principles of the present disclosure may be implemented in any suitably arranged system or device.
- Image data for 360 degree content such as 360 degree video or still images
- pixels of the 360 degree image are indexed in a three-dimensional coordinate system which defines the location of each pixel on the surface of a virtual sphere 110 .
- an equivalent two-dimensional representation may be used, such as a cube map projection 120 or equirectangular projection 130 .
- image data for each face of a virtual cube is stored as a two-dimensional image spanning a 90° ⁇ 90° field of view.
- the image data is stored as a single two-dimensional image spanning a 360° ⁇ 180° field of view.
- the labels ‘top’, ‘bottom’, ‘front’, ‘back’, ‘left’ and ‘right’ indicate corresponding regions of the video data in each of the equivalent projections.
- the formats illustrated in FIG. 1 are described merely by way of an example, and in other embodiments a 360 degree image may be stored in a different format to the ones shown in FIG. 1 .
- FIG. 2 illustrates a flowchart for compressing 360 degree content, according to an embodiment of the present disclosure.
- all steps in the method may be performed at the same device, or different steps may be performed in different devices. Any of the steps illustrated in FIG. 2 may be performed in software or in hardware, depending on the particular embodiment.
- apparatus for performing the method may include a processing unit comprising one or more processors, and computer-readable memory having stored therein computer program instructions which, when executed by the processing unit, perform the respective method steps.
- step S 201 360 degree content comprising at least one 360 degree image is received.
- the 360 degree content is 360 degree video comprising a plurality of frames.
- the 360 degree content may comprise a single 360 degree image, that is to say, the 360 degree content may consist of the 360 degree image.
- the 360 degree content can be received in different ways depending on the embodiment.
- the 360 degree content may be received via a broadcast stream or Internet Protocol (IP) stream in step S 201 .
- IP Internet Protocol
- the 360 degree content may be pre-recorded content retrieved from memory in step S 201 , for example local storage in a set-top box (STB) embodiment or network storage in the form of a home media server.
- the 360 degree content may be obtained directly from a suitable image capturing device in step S 201 , such as a 360 degree camera.
- a rotation to be applied to the 360 degree content is selected from among a plurality of candidate rotations in step S 202 .
- the rotation that is selected is one which allows a compression ratio achieved when the rotated 360 degree image is compressed to be increased, relative to a compression ratio that would be achieved if the as-received 360 degree image was compressed using the same compression algorithm.
- the compression ratio can be determined by dividing the uncompressed size of the 360 degree image by the compressed size of the 360 degree image. For example, a compression ratio of 10 ⁇ indicates that the compressed file size is ten times smaller than the uncompressed file size.
- Various methods of selecting a suitable rotation are described later.
- the step of selecting a rotation in step S 202 can be omitted.
- the same rotation that was applied to the previous frame can be re-used for the current frame, on the basis that consecutive frames are likely to be similar in content and therefore a rotation which increases the compression ratio of one frame is also likely to be suitable for increasing the compression ratio of the following frame.
- different rotations can be selected for different frames in a 360 degree video.
- a suitable rotation can be selected at certain intervals during the 360 degree video and applied to a certain number of consecutive frames. For example, a suitable rotation can be determined every 10 frames, and applied to all intervening frames until a new rotation is determined at the next interval.
- step S 203 the selected rotation is applied to the 360 degree image in the spherical projection format.
- the rotation that is selected in step S 202 and applied in step S 203 may be referred to as a three-dimensional rotation, since the rotation is equivalent to a rotation of the camera or the scene in three-dimensional space.
- the rotation can comprise a rotation component around each of the principal axes (x, y, z) in the spherical projection format shown in FIG. 1 , or may only comprise rotation about one or two axes.
- FIGS. 3 to 6 illustrate the effect of applying a rotation to a 360 degree image on the compression ratio.
- FIG. 3 illustrates a 360 degree image 300 in an equirectangular projection format
- FIGS. 4 and 5 illustrate the 360 degree image 400 , and 500 respectively, of FIG. 3 , after applying different three-dimensional rotations.
- FIG. 6 illustrates a graph 600 showing the effect of a three-dimensional rotation on a compression ratio for a 360 degree image, according to an embodiment of the present disclosure.
- the data in FIG. 6 was obtained by simulating a 360 degree video recording of a static scene, with only rotational movement of the camera during capture of the video (i.e. no translational movement). Consequently, each frame of the 360 degree video can be mapped onto any other frame by a suitable three-dimensional rotation, and any difference in compression ratio between different frames of the video in the data plotted in FIG. 6 can be attributed to the camera rotation between frames.
- the largest file size among the frames plotted in FIG. 6 is 194,538 bytes and the smallest file size is 165,132 bytes. Therefore in the example shown in FIG. 6 , the compressed file size of a single frame of 360 degree video can vary by up to about 15% depending on the current camera angle.
- applying a suitable rotation to the 360 degree image in step S 203 can increase the compression ratio that will be achieved when the rotated image is compressed.
- the increase in the compression ratio that can be obtained, relative to the compression ratio that would be achieved when compressing the original un-rotated image may depend upon various factors such as the characteristics of the compression algorithm that is applied, the current image content, and on the 2D projection format that is used.
- step S 204 the 360 degree content including the rotated 360 degree image is compressed by applying a suitable compression algorithm.
- the compression algorithm may also be configured to encode the 360 degree content into a different format, depending on the desired output format.
- the 360 degree content comprises a plurality of images, for example a sequence of 360 degree video frames
- a rotation may be applied to every frame or may only be applied to certain frames of the video.
- the 360 degree content that is compressed in step S 204 may include some rotated video frames and some as-received (i.e. un-rotated) video frames.
- step S 205 the compressed 360 degree content is outputted together with an associated rotation parameter.
- the rotation parameter defines the rotation that was applied in step S 203 .
- the rotation parameter can be used during reproduction of the 360 degree content, for example playback of a 360 degree video, to apply an inverse rotation to the rotated 360 degree image and therefore ensure that the content is displayed in the original orientation.
- the rotation parameter is outputted in the form of metadata embedded in the 360 degree video file.
- the rotation parameter and the 360 degree content may be stored in separate files.
- the compressed 360 degree content and the rotation parameter may be stored in computer-readable memory in step S 205 , either in the same storage unit or in separate storage.
- a suitable identifier may be used to allow a display apparatus to identify the specific frame of the 360 degree video to which the rotation parameter relates.
- the compressed 360 degree content may be reproduced at the same apparatus which carried out the preceding rotation and compression steps in FIG. 2 , or may be reproduced at a separate apparatus.
- step S 206 the display apparatus determines the inverse rotation to be applied to the compressed 360 degree image based on the rotation parameter from step S 205 , by reading the rotation parameter from the metadata associated with the 360 degree video.
- the inverse rotation is an opposite rotation to the rotation that was applied before compression.
- the rotation parameter may indicate the inverse rotation.
- the rotation parameter may indicate the original rotation that was applied in step S 203 , and the display apparatus may calculate a corresponding inverse rotation in step S 206 .
- step S 207 the determined inverse rotation is applied to the compressed 360 image to obtain a second rotated 360 degree image, as distinct from the first rotated 360 degree image obtained during step S 203 .
- step S 208 the 360 degree content is reproduced by rendering the second rotated 360 degree image.
- the display apparatus that is used to reproduce the 360 degree content in step S 208 is also capable of receiving camera control input in step S 209 , in order to allow a user to change the direction of the camera and thereby view different regions of the 360 degree content.
- the camera control input defines a camera rotation to be applied during reproduction of the 360 degree content.
- the camera rotation can be applied in addition to the inverse rotation in step S 207 .
- the camera control input may be received by using sensors such as gyroscopes or accelerometers to detect movement of a headset worn by a user, and change the direction of the camera according to the direction in which the user is currently facing.
- sensors such as gyroscopes or accelerometers to detect movement of a headset worn by a user, and change the direction of the camera according to the direction in which the user is currently facing.
- a suitable controller such as a mouse or TV remote control unit may be used to provide the camera control input.
- the 360 degree content may be 360 degree video comprising a plurality of frames
- metadata associated with the 360 degree video may include a camera stabilization parameter which defines a stabilizing rotation to be applied to one or more of the plurality of frames in order to stabilize the 360 degree video during reproduction.
- the stabilizing rotation may, for example, be a rotation which compensates for camera shake while the 360 degree video was being captured.
- the stabilizing rotation may also be applied in step S 207 in addition to the inverse rotation, and in addition to a camera rotation if applicable.
- FIG. 7 illustrates a flowchart for compressing 360 degree content by evaluating a plurality of candidate rotations, according to an embodiment of the present disclosure. Steps S 701 , S 705 , S 706 and S 707 of FIG. 7 are similar to steps S 201 , S 203 , S 204 and S 205 of FIG. 2 respectively, and for the sake of brevity a detailed explanation of similar aspects will not be repeated here.
- a plurality of candidate rotations for the current 360 degree image are selected in step S 702 .
- the candidate rotations are rotations that may be expected to increase the compression ratio for the compressed 360 degree image, relative to a compression ratio that would be achieved for the as-received 360 degree image.
- step S 703 the candidate rotations are evaluated in order to determine a compression ratio that could be achieved for each rotation.
- each candidate rotation is evaluated by applying the rotation to the as-received image, applying the compression algorithm to the rotated image, and determining the resulting compression ratio that is achieved.
- the candidate rotations may be evaluated by estimating the compression ratio that will be achieved.
- the compression ratio may be estimated based on properties of the rotated image and knowledge of the compression algorithm, for example, by detecting directionality of features within the rotated image and comparing these to orientations that are known to result in greater compression, such as horizontal or vertical orientations.
- step S 704 the candidate rotation which gave the highest compression ratio is selected as the rotation to be applied to the 360 degree image.
- the system then proceeds to apply the rotation in step S 705 , compress the image in step S 706 , and output the compressed image and rotation parameter in step S 707 , in a similar manner to that described above with reference to FIG. 2 .
- the plurality of candidate rotations that are selected in step S 702 comprises a subset of all possible rotations that could be applied to the 360 degree image.
- FIG. 8 illustrates a flowchart for using a neural network to determine a rotation to increase the compression ratio for 360 degree content, according to an embodiment of the present disclosure.
- step S 801 a plurality of 360 degree images are obtained, and an associated rotation which increases the compression ratio is determined for each of the 360 degree images.
- the plurality of 360 degree images and the associated rotations are used to train the neural network in step S 802 , so that the neural network learns to identify rotations that are likely to increase the compression ratio for different input images.
- step S 801 the rotation for each image can be determined by conducting an exhaustive search of all possible rotations in order to identify the rotation that gives the highest increase in the compression ratio relative to the un-rotated image, in order to determine the optimum rotation for that image. Whilst an exhaustive search may be computationally intensive, the processing during step S 801 only needs to be performed once when initially training the neural network, and can be performed offline. As an alternative to an exhaustive search, in other embodiments in step S 801 a rotation for each image can be determined using any of the other methods described herein.
- a ‘new’ input image refers to a 360 degree image that is different to the images which were used to train the network.
- a plurality of candidate rotations can be determined.
- the neural network can be configured to output a plurality of candidate rotations.
- the neural network can be configured to output a single rotation, which may be the estimated optimum rotation, and the plurality of candidate rotations can be chosen by selecting a certain number of rotations that are close to the rotation which was obtained by the neural network. In this way, the plurality of candidate rotations can be subsequently evaluated in step S 703 in order to further refine the estimate of the optimum rotation that was obtained by the neural network.
- the neural network may be configured to output a single estimated optimum rotation, and the estimated optimum rotation may be directly applied in step S 203 without evaluating a plurality of candidate rotations.
- the candidate rotations can be randomly selected from among a plurality of possible rotations.
- the plurality of candidate rotations can be selected based on image analysis of the 360 degree image.
- the plurality of candidate rotations can be selected by analyzing the received 360 degree image to identify a region of low complexity within the 360 degree image, and selecting rotations which will place the identified region in a predefined area of the rotated 360 degree image as the candidate rotations.
- the scene comprises a room in which the ceiling is relatively uniform, and hence has a low complexity relative to other parts of the scene.
- a rotation is applied which places the ceiling in the top of the equirectangular projection. This can reduce the compression ratio since the top and bottom regions in an equirectangular projection are more distorted than other regions of the projection, and placing a region of low complexity in this part of the projection reduces the impact of the distortion when the rotated image is subsequently compressed.
- the plurality of candidate rotations can be selected by analyzing the received 360 degree image to identify a region of high frequency within the 360 degree image, and selecting rotations which will place the identified region in a predefined area of the rotated 360 degree image as the candidate rotations.
- the rotation can be chosen so as to position a region of high frequency in part of the 2D projection which is relatively free from distortion, so that image data in the high-frequency region can be efficiently compressed by the compression algorithm.
- the plurality of candidate rotations can be selected by performing line detection on the received 360 degree image to determine a representative line orientation of the 360 degree image, and selecting rotations which will bring the representative line orientation closer to one or more predefined directions, as the candidate rotations.
- this approach can achieve a higher compression ratio by aligning linear features within the image along directions which are known to be more efficiently compressed by the chosen compression algorithm.
- the plurality of candidate rotations can be selected by obtaining motion vectors for one or more moving objects in the frames of the 360 degree video, and selecting rotations which will reduce an overall motion vector for the 360 degree image as the candidate rotations. This can increase the similarity between consecutive frames, resulting in an increase in the compression ratio that is achieved when the 360 degree video is compressed.
- FIG. 9 illustrates an apparatus for compressing 360 degree content and reproducing the compressed 360 degree content, according to an embodiment of the present disclosure.
- the apparatus illustrated in FIG. 9 can perform any of the methods described above.
- the apparatus comprises a compression apparatus 900 and reproduction apparatus 910 .
- the compression apparatus 900 can be referred as a ‘first electronic device’ and reproduction apparatus 910 can be referred as a ‘second electronic device’.
- the compression apparatus 900 may be a 360 degree content server or a broadcast provider
- the reproduction apparatus 910 may be a user device capable of displaying 360 degree content, such as a virtual reality headset, digital television, computer, or mobile phone handset.
- the compression apparatus 900 comprises a 360 degree content receiver 901 for receiving an input such as 360 degree content comprising at least one 360 degree image.
- the 360 degree content receiver 901 can be any hardware or software element capable of receiving 360 degree content.
- the 360 degree content receiver 901 may be an internal interface configured to receive the 360 degree content from the camera sensor.
- the 360 degree content receiver 901 can be a suitable wired or wireless interface for receiving the 360 degree content such as a network interface, or a device-to-device connector such as a Universal Serial Bus (USB) connector.
- USB Universal Serial Bus
- the compression apparatus 900 further comprises a processing unit 902 and a compression unit 903 .
- the processing unit 902 is configured to apply a rotation to the received 360 degree image such that a compression ratio achieved when the 360 degree content including the rotated 360 degree image is compressed using a compression algorithm is increased, relative to a compression ratio that would be achieved when applying the compression algorithm to the as-received 360 degree content.
- the compression unit 903 is configured to compress the 360 degree content including the rotated 360 degree image using the compression algorithm, and to output the compressed 360 degree content and a rotation parameter defining the applied rotation.
- the compression apparatus 900 may further comprise a memory 904 such as a computer-readable memory for storing the compressed 360 degree content and/or the rotation parameter.
- the reproduction apparatus 910 comprises a processing unit 911 , which may also be referred to as a reproduction unit 911 .
- the reproduction unit 911 is configured to reproduce the 360 degree content by determining an inverse rotation to be applied to the compressed 360 degree image based on the rotation parameter received from the compression apparatus 900 , applying the inverse rotation to the compressed 360 degree image, and rendering the rotated 360 degree image.
- the reproduction apparatus 910 comprises a display 912 for displaying the rendered 360 degree content.
- the reproduction unit 911 can be configured to output the rendered 360 degree content to an external display.
- the reproduction apparatus 910 further comprises a camera control 913 for receiving an input such as a camera control input defining a rotation and/or translation.
- the reproduction unit 911 can be configured to apply the rotation and/or translation defined by the camera control input in addition to the rotation defined by the rotation parameter.
- Embodiments of the disclosure have been described in which 360 degree content is compressed and outputted together with a rotation parameter which defines the rotation that was applied prior to compression.
- the uncompressed 360 degree content may be outputted together with the rotation parameter, without having applied the compression algorithm.
- a 360 degree camera may determine suitable rotations substantially in real-time as the 360 degree content is captured, and output the rotation parameters together with the uncompressed 360 degree content.
- Another device may subsequently receive the as-captured 360 degree content and the rotation parameters from the 360 degree camera and carry out the compression.
- FIG. 10 illustrates a flowchart for processing 360 degree video, according to an embodiment of the present disclosure.
- 360 degree content comprising a 360 degree image is obtained in step S 1001
- a suitable rotation for the current 360 degree image is determined in step S 1002 .
- the uncompressed 360 degree content and the rotation parameter are then outputted in step S 1003 .
- a method such as the one shown in FIG. 10 may be performed by apparatus such as the compression apparatus 900 shown in FIG. 9 , except that the compression unit 903 may be omitted and the processing unit 902 can output the as-received 360 degree content together with the determined rotation parameter.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
Claims (19)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1716710.7A GB2567623B (en) | 2017-10-12 | 2017-10-12 | Compression of 360 degree content |
GB1716710.7 | 2017-10-12 |
Publications (2)
Publication Number | Publication Date |
---|---|
US20190114807A1 US20190114807A1 (en) | 2019-04-18 |
US10783670B2 true US10783670B2 (en) | 2020-09-22 |
Family
ID=60419411
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/158,623 Active 2038-10-31 US10783670B2 (en) | 2017-10-12 | 2018-10-12 | Method for compression of 360 degree content and electronic device thereof |
Country Status (2)
Country | Link |
---|---|
US (1) | US10783670B2 (en) |
GB (1) | GB2567623B (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020058560A1 (en) * | 2018-09-17 | 2020-03-26 | Nokia Solutions And Networks Oy | Object tracking |
EP4138388A1 (en) * | 2021-08-20 | 2023-02-22 | Arlo Technologies, Inc. | Modification of camera functionality based on orientation |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6204854B1 (en) | 1998-12-04 | 2001-03-20 | France Telecom | Method and system for encoding rotations and normals in 3D generated scenes |
US20170277955A1 (en) * | 2016-03-23 | 2017-09-28 | Le Holdings (Beijing) Co., Ltd. | Video identification method and system |
US20180262774A1 (en) * | 2017-03-09 | 2018-09-13 | Mediatek Inc. | Video processing apparatus using one or both of reference frame re-rotation and content-oriented rotation selection and associated video processing method |
-
2017
- 2017-10-12 GB GB1716710.7A patent/GB2567623B/en active Active
-
2018
- 2018-10-12 US US16/158,623 patent/US10783670B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6204854B1 (en) | 1998-12-04 | 2001-03-20 | France Telecom | Method and system for encoding rotations and normals in 3D generated scenes |
US20170277955A1 (en) * | 2016-03-23 | 2017-09-28 | Le Holdings (Beijing) Co., Ltd. | Video identification method and system |
US20180262774A1 (en) * | 2017-03-09 | 2018-09-13 | Mediatek Inc. | Video processing apparatus using one or both of reference frame re-rotation and content-oriented rotation selection and associated video processing method |
Also Published As
Publication number | Publication date |
---|---|
GB201716710D0 (en) | 2017-11-29 |
US20190114807A1 (en) | 2019-04-18 |
GB2567623B (en) | 2021-10-27 |
GB2567623A (en) | 2019-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10956749B2 (en) | Methods, systems, and media for generating a summarized video with video thumbnails | |
US10958942B2 (en) | Processing spherical video data | |
US10440407B2 (en) | Adaptive control for immersive experience delivery | |
JP4926533B2 (en) | Moving image processing apparatus, moving image processing method, and program | |
US8891612B2 (en) | Encoding and decoding multi-view video while accommodating absent or unreliable camera parameters | |
US10003768B2 (en) | Apparatus and methods for frame interpolation based on spatial considerations | |
JP5475132B2 (en) | Convert video data according to 3D input format | |
US20170148488A1 (en) | Video data processing system and associated method for analyzing and summarizing recorded video data | |
US20150381925A1 (en) | Smart pause for neutral facial expression | |
US8681239B2 (en) | Image capturing device, image capturing method, program, and integrated circuit | |
JP7177034B2 (en) | Method, apparatus and stream for formatting immersive video for legacy and immersive rendering devices | |
US9706102B1 (en) | Enhanced images associated with display devices | |
US10783670B2 (en) | Method for compression of 360 degree content and electronic device thereof | |
CN114007059A (en) | Video compression method, decompression method, device, electronic equipment and storage medium | |
US8873642B2 (en) | Video content analysis methods and systems | |
JP2013168739A (en) | Image processing system and image processing method | |
US11252451B2 (en) | Methods and apparatuses relating to the handling of a plurality of content streams | |
KR101340308B1 (en) | Video processing apparatus and method | |
US20170256285A1 (en) | Video processing method and video processing system | |
JP5927515B2 (en) | Image editing method, image editing system, and image editing program | |
JP2015080035A (en) | Image processing device, image processing method and program | |
JP2001008231A (en) | Method and system for transmitting multiple viewpoint image of object in three-dimensional space | |
JP2015080034A (en) | Image processing device, image processing method and program | |
CN113301427A (en) | Data processing method and device, electronic equipment and storage medium | |
JP2012195880A (en) | Image processing apparatus, image processing method, and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: SAMSUNG ELECTRONICS CO., LTD., KOREA, REPUBLIC OF Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SAA-GARRIGA, ALBERT;VANDINI, ALESSANDRO;MAESTRI, TOMMASO;REEL/FRAME:047147/0595 Effective date: 20181001 |
|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |