This application is based on and claims priority under 35 U.S.C. § 119 to United Kingdom Patent Application No. 1716710.7 filed on Oct. 12, 2017, the disclosure of which is incorporated by reference herein in its entirety.
The present disclosure relates to methods, apparatus and computer programs for compression 360 degree content comprising at least one 360 degree image.
Recent years have seen the emergence of a new generation of media applications that provides a more immersive user experience through the use of 360 degree content, for example in so-called virtual reality (VR) applications. 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). For example, the 16K format 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 consequence of the ever-increasing image quality from one generation to the next is a commensurate increase in the data rates of uncompressed data. For example, the uncompressed bitrate of Full HD video is 746 megabits per second (Mbps), whereas the uncompressed bitrate of 16K video is 2,038,432 Mbps. There is therefore a need for more effective compression solutions for 360 degree content.
The disclosure on is made in this context.
According to a first aspect of the present disclosure, there is provided a method of compressing 360 degree content, the method 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.
In some embodiments according to the first aspect, 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.
In some embodiments according to the first aspect, the 360 degree content is 360 degree video and the 360 degree image is one of a plurality of frames, and 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.
In some embodiments according to the first aspect, different rotations can be selected for different frames in the 360 degree video.
In some embodiments according to the first aspect, the plurality of candidate rotations are randomly selected from among a plurality of possible rotations.
In some embodiments according to the first aspect, the plurality of candidate rotations are selected based on image analysis of the 360 degree image.
In some embodiments according to the first aspect, 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.
In some embodiments according to the first aspect, 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.
In some embodiments according to the first aspect, 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.
In some embodiments according to the first aspect, 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.
In some embodiments according to the first aspect, 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.
In some embodiments according to the first aspect, the 360 degree content is 360 degree video and the 360 degree image is one of a plurality of frames, and 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.
In some embodiments according to the first aspect, 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.
In some embodiments according to the first aspect, outputting the compressed 360 degree content and the rotation parameter comprises storing at least the compressed 360 degree content in computer-readable memory.
In some embodiments according to the first aspect, 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.
In some embodiments according to the first aspect, 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.
In some embodiments according to the first aspect, the 360 degree content is 360 degree video and the 360 degree image is one of a plurality of frames, wherein 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, and wherein 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.
In some embodiments according to the first aspect, 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.
In some embodiments according to the first aspect, the 360 degree content consists of the 360 degree image.
According to a second aspect of the present disclosure, there is provided a method of processing 360 degree content, the method 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.
According to a third aspect of the present disclosure, there is provided 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.
According to a fourth aspect of the present disclosure, there is provided apparatus for compressing 360 degree video, the apparatus 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.
In some embodiments according to the fourth aspect, 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.
In some embodiments according to the fourth aspect, the 360 degree content is 360 degree video and the 360 degree image is one of a plurality of frames, and 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.
In some embodiments according to the fourth aspect, the processing unit can select different rotations for different frames in the 360 degree video.
In some embodiments according to the fourth aspect, the processing unit is configured to randomly select the plurality of candidate rotations from among a plurality of possible rotations.
In some embodiments according to the fourth aspect, the processing unit is configured to select the plurality of candidate rotations based on image analysis of the 360 degree image.
In some embodiments according to the fourth aspect, 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.
In some embodiments according to the fourth aspect, 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.
In some embodiments according to the fourth aspect, 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.
In some embodiments according to the fourth aspect, 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.
In some embodiments according to the fourth aspect, the 360 degree content is 360 degree video and the 360 degree image is one of a plurality of frames, and 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.
In some embodiments according to the fourth aspect, 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.
In some embodiments according to the fourth aspect, the apparatus is configured to store at least the compressed 360 degree content in computer-readable memory.
In some embodiments according to the fourth aspect, 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.
In some embodiments according to the fourth aspect, 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.
In some embodiments according to the fourth aspect, the 360 degree content is 360 degree video and the 360 degree image is one of a plurality of frames, wherein 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, and wherein 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.
In some embodiments according to the fourth aspect, 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.
In some embodiments according to the fourth aspect, the 360 degree content consists of the 360 degree image.
According to a fifth aspect of the present disclosure, there is provided apparatus for processing 360 degree content, the apparatus 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.
Before undertaking the DETAILED DESCRIPTION below, it may be advantageous to set forth definitions of certain words and phrases used throughout this patent document: the terms “include” and “comprise,” as well as derivatives thereof, mean inclusion without limitation; the term “or,” is inclusive, meaning and/or; the phrases “associated with” and “associated therewith,” as well as derivatives thereof, may mean to include, be included within, interconnect with, contain, be contained within, connect to or with, couple to or with, be communicable with, cooperate with, interleave, juxtapose, be proximate to, be bound to or with, have, have a property of, or the like; and the term “controller” means any device, system or part thereof that controls at least one operation, such a device may be implemented in hardware, firmware or software, or some combination of at least two of the same. It should be noted that the functionality associated with any particular controller may be centralized or distributed, whether locally or remotely.
Moreover, 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. The terms “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. The phrase “computer readable program code” includes any type of computer code, including source code, object code, and executable code. The phrase “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. 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.
Definitions for certain words and phrases are provided throughout this patent document, those of ordinary skill in the art should understand that in many, if not most instances, such definitions apply to prior, as well as future uses of such defined words and phrases.
Embodiments of the present disclosure will now be described, by way of example only, with reference to the accompanying drawings, in which:
In the following detailed description, only certain exemplary embodiments of the present disclosure have been shown and described, simply by way of illustration. As those skilled in the art would realize, the described embodiments may be modified in various different ways, all without departing from the scope of the present disclosure. Accordingly, the drawings and description are to be regarded as illustrative in nature and not restrictive. Like reference numerals designate like elements throughout the specification.
Image data for 360 degree content such as 360 degree video or still images, can be stored in a variety of different formats. Examples of equivalent representations of image data for a 360 degree image are illustrated in
First, in step S201, 360 degree content comprising at least one 360 degree image is received. In the present embodiment the 360 degree content is 360 degree video comprising a plurality of frames. In another embodiment 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. For example, in some embodiments the 360 degree content may be received via a broadcast stream or Internet Protocol (IP) stream in step S201. In another embodiment the 360 degree content may be pre-recorded content retrieved from memory in step S201, for example local storage in a set-top box (STB) embodiment or network storage in the form of a home media server. In yet another embodiment the 360 degree content may be obtained directly from a suitable image capturing device in step S201, such as a 360 degree camera.
Next, a rotation to be applied to the 360 degree content is selected from among a plurality of candidate rotations in step S202. 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.
In some embodiments the step of selecting a rotation in step S202 can be omitted. For example, in a video processing embodiment, 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. In other embodiments, different rotations can be selected for different frames in a 360 degree video. In some embodiments, 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.
Next, in step S203 the selected rotation is applied to the 360 degree image in the spherical projection format. The rotation that is selected in step S202 and applied in step S203 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
The effect of applying a rotation to a 360 degree image on the compression ratio is illustrated in
The data in
Accordingly, in embodiments of the present disclosure, applying a suitable rotation to the 360 degree image in step S203 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.
Then, in step S204 the 360 degree content including the rotated 360 degree image is compressed by applying a suitable compression algorithm. In some embodiments the compression algorithm may also be configured to encode the 360 degree content into a different format, depending on the desired output format. In embodiments in which 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. In an embodiment in which only certain frames of a 360 degree video are rotated, the 360 degree content that is compressed in step S204 may include some rotated video frames and some as-received (i.e. un-rotated) video frames.
After compressing the 360 degree content, in step S205 the compressed 360 degree content is outputted together with an associated rotation parameter. The rotation parameter defines the rotation that was applied in step S203. 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. In the present embodiment the rotation parameter is outputted in the form of metadata embedded in the 360 degree video file. In other embodiments, in step S205 the rotation parameter and the 360 degree content may be stored in separate files. In some embodiments, the compressed 360 degree content and the rotation parameter may be stored in computer-readable memory in step S205, either in the same storage unit or in separate storage. For example, in a 360 degree video embodiment, 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.
Continuing with reference to
In step S206, the display apparatus determines the inverse rotation to be applied to the compressed 360 degree image based on the rotation parameter from step S205, by reading the rotation parameter from the metadata associated with the 360 degree video. Here, the inverse rotation is an opposite rotation to the rotation that was applied before compression. In some embodiments the rotation parameter may indicate the inverse rotation. In other embodiments the rotation parameter may indicate the original rotation that was applied in step S203, and the display apparatus may calculate a corresponding inverse rotation in step S206.
Next, in step S207 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 S203. Then, in step S208 the 360 degree content is reproduced by rendering the second rotated 360 degree image. By applying the inverse rotation before the 360 degree content is reproduced, it can be ensured that the content will be displayed in the original orientation. Typically, when reproducing 360 degree content only a certain field of view of the current image will be displayed to a user. The field of view that is to be displayed in step S208 depends upon the current camera orientation.
In the present embodiment, the display apparatus that is used to reproduce the 360 degree content in step S208 is also capable of receiving camera control input in step S209, 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. When camera control input is received in step S209, the camera rotation can be applied in addition to the inverse rotation in step S207.
In a virtual reality embodiment, for example, 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. Alternatively, in other embodiments, such as when viewing the 360 degree content on a television, tablet computer, desktop computer or so on, a suitable controller such as a mouse or TV remote control unit may be used to provide the camera control input.
Furthermore, in some embodiments the 360 degree content may be 360 degree video comprising a plurality of frames, and 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. In embodiments in which a stabilizing rotation is provided, the stabilizing rotation may also be applied in step S207 in addition to the inverse rotation, and in addition to a camera rotation if applicable.
In the embodiment described above with reference to
Continuing with reference to
Once the candidate rotations have been selected in step S702, then in step S703 the candidate rotations are evaluated in order to determine a compression ratio that could be achieved for each rotation. In the present embodiment 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.
In other embodiments 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.
Once the candidate rotations have been evaluated in step S703, then in step S704 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 S705, compress the image in step S706, and output the compressed image and rotation parameter in step S707, in a similar manner to that described above with reference to
In the embodiment illustrated in
Various methods of selecting the candidate rotations are possible.
For example, in step S801 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 S801 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 S801 a rotation for each image can be determined using any of the other methods described herein.
Once the neural network has been trained, then in step S803 the neural network can be applied to a new input image. Here, a ‘new’ input image refers to a 360 degree image that is different to the images which were used to train the network. By inputting the new 360 degree image into the neural network, a plurality of candidate rotations can be determined. For example, the neural network can be configured to output a plurality of candidate rotations. Alternatively, 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 S703 in order to further refine the estimate of the optimum rotation that was obtained by the neural network.
As a further alternative, in some embodiments the neural network may be configured to output a single estimated optimum rotation, and the estimated optimum rotation may be directly applied in step S203 without evaluating a plurality of candidate rotations.
Although in the embodiment of
Alternatively, in some embodiments the plurality of candidate rotations can be selected based on image analysis of the 360 degree image. For example, in one embodiment 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. For instance, in the 360 degree image shown in
In another embodiment, 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. For example, 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.
In another embodiment, 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. For compression algorithms which utilize directionality within the image in order to achieve a higher compression, 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.
In embodiments in which the 360 degree content is 360 degree video, 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.
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. For example, when the compression apparatus 900 is embodied in a 360 degree camera, the 360 degree content receiver 901 may be an internal interface configured to receive the 360 degree content from the camera sensor. When the compression apparatus 900 is embodied separately to the apparatus which captures the 360 degree content, 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.
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. In the present embodiment the reproduction apparatus 910 comprises a display 912 for displaying the rendered 360 degree content. However, in other embodiments the reproduction unit 911 can be configured to output the rendered 360 degree content to an external display.
In addition, 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. As described above in relation to steps S207 and S209 of
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. In some embodiments, the uncompressed 360 degree content may be outputted together with the rotation parameter, without having applied the compression algorithm. For example, 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.
Whilst certain embodiments of the disclosure have been described herein with reference to the drawings, it will be understood that many variations and modifications will be possible without departing from the scope of the disclosure as defined in the accompanying claims.
Although the present disclosure has been described with various embodiments, various changes and modifications may be suggested to one skilled in the art. It is intended that the present disclosure encompass such changes and modifications as fall within the scope of the appended claims.
Number | Date | Country | Kind |
---|---|---|---|
1716710.7 | Oct 2017 | GB | national |
Number | Name | Date | Kind |
---|---|---|---|
6204854 | Signes et al. | Mar 2001 | B1 |
20170277955 | Liu | Sep 2017 | A1 |
20180262774 | Lin | Sep 2018 | A1 |
Number | Date | Country | |
---|---|---|---|
20190114807 A1 | Apr 2019 | US |