Adaptive resolution and projection format in multi-direction video
Techniques are described for implementing format configurations for multi-directional video and for switching between them. Source images may be assigned to formats that may change during a coding session. When a change occurs between formats, video coders and decoder may transform decoded reference frames from the first format to the second format. Thereafter, new frames in the second configuration may be coded or decoded predictively using transformed reference frame(s) as source(s) of prediction. In this manner, video coders and decoders may use intra-coding techniques and achieve high efficiency in coding.
Latest Apple Patents:
- Modular systems configured to provide localized haptic feedback using inertial actuators
- Managing redistribution of digital media assets
- Media capture lock affordance for graphical user interface
- Devices, methods, and graphical user interfaces for interacting with a control object while dragging another object
- Adaptive quantizer design for video coding
The present disclosure relates to coding/decoding systems for multi-directional imaging system and, in particular, to use of coding techniques that originally were developed for flat images, for multi-directional image data.
In multi-directional imaging, a two-dimensional image represents image content taken from multiple fields of view. Omnidirectional imaging is one type of multi-directional imaging where a single image represents content viewable from a single vantage point in all directions—360° horizontally about the vantage point and 360° vertically about the vantage point. Other multi-directional images may capture data in fields of view that are not fully 360°.
Modern coding protocols tend to be inefficient when coding multi-directional images. Multi-directional images tend to allocate real estate within the images to the different fields of view essentially in a fixed manner. For example, in many multi-directional imaging formats, different fields of view may be allocated space in the multi-directional image equally. Some other multi-directional imaging formats allocate space unequally but in a fixed manner. And, many applications that consume multi-directional imaging tend to use only a portion of the multi-directional image during rendering, which causes resources spent to code un-used portions of the multi-directional image to be wasted.
Accordingly, the inventors recognized a need to improve coding systems to increase efficiency of multi-directional image data.
Embodiments of the present disclosure provide techniques for implementing organizational configurations for multi-directional video and for switching between them. Source images may be assigned to formats that may change during a coding session. When a change occurs between formats, video coders and decoder may transform decoded reference frames from the first configuration to the second configuration. Thereafter, new frames in the second configuration may be coded or decoded predictively using transformed reference frame(s) as source(s) of prediction. In this manner, video coders and decoders may use inter-coding techniques and achieve high efficiency in coding.
In
The video decoder 240 may invert coding operations performed by the video encoder 230 to obtain a reconstructed picture from the coded video data. Typically, the coding processes applied by the video coder 230 are lossy processes, which cause the reconstructed picture to possess various errors when compared to the original picture. The video decoder 240 may reconstruct picture data of select coded pictures, which are designated as “reference pictures,” and store the decoded reference pictures in the reference picture store 250. In the absence of transmission errors, the decoded reference pictures will replicate decoded reference pictures obtained by a decoder at the receiving terminal 120 (
The predictor 260 may select prediction references for new input pictures as they are coded. For each portion of the input picture being coded (called a “pixel block” for convenience), the predictor 260 may select a coding mode and identify a portion of a reference picture that may serve as a prediction reference search for the pixel block being coded. The coding mode may be an intra-coding mode, in which case the prediction reference may be drawn from a previously-coded (and decoded) portion of the picture being coded. Alternatively, the coding mode may be an inter-coding mode, in which case the prediction reference may be drawn from another previously-coded and decoded picture.
When an appropriate prediction reference is identified, the predictor 260 may furnish the prediction data to the video coder 230. The video coder 230 may code input video data differentially with respect to prediction data furnished by the predictor 260. Typically, prediction operations and the differential coding operate on a pixel block-by-pixel block basis. Prediction residuals, which represent pixel-wise differences between the input pixel blocks and the prediction pixel blocks, may be subject to further coding operations to reduce bandwidth further.
The video coder 230, the video decoder 240, the reference picture store 250 and the predictor 260 each operate on video frames in a formatted representation that is determined by the image processor 220. In an embodiment, the format may change from time to time during a coding session and, in response, the format of previously-coded reference frames may change correspondingly.
As indicated, the coded video data output by the video coder 230 should consume less bandwidth than the input data when transmitted and/or stored. The coding system 200 may output the coded video data to a transmitter 270 that may transmit the coded video data across a communication network 130 (
Recovered frame data of reference frames may be stored in the reference picture store 350 for use in decoding later-received frames. The predictor 360 may respond to prediction information contained in coded video data to retrieve prediction data and supply it to the video decoder 320 for use in decoding new frames. As indicated, video coding operations often code pixel blocks from within a source image differentially with respect to prediction data. In a video decoder 320, the differential coding processes may be inverted—coded pixel block data may be decoded and then added to prediction data that the predictor 360 retrieves from the reference picture store 350.
In ideal operating conditions, where channel errors do not cause loss of information between a coding system 200 (
As discussed, the image processing system 220 (
Coding formats may vary based on the organization of views contained therein, based on the resolution of the views and based on projections used to represent the views. The coding formats may vary adaptively based on operating conditions at the coding system 200 and/or decoding system 300. Changes among the coding formats may occur at a frame level within a coding session. Alternatively, the coding formats may change at a slice-level, tile-level, group of frames-level or track-level within a coding session. Several exemplary image formats are described below.
As discussed, an image processing system 220 (
As applied to the source image 420 illustrated in
In the example of
Frame formats used for coding also may alter other aspects of captured video data. For example, frame formats may project image from their source projection to an alternate projection.
When projecting image data from the native representation to the spherical projection, an image processor 220 (
θ=α·x+θ0, and (Eq. 1.)
φ=β·y+φ0, where (Eq. 2.)
θ and φ respectively represents the longitude and latitude of a location in the spherical projection 720, α, β are scalars, θ0, φ0 represent an origin of the spherical projection 720, and x and y represent the horizontal and vertical coordinates of source data in top and bottom views 712, 714 of the source image 710.
The image processor 220 (
x=r*sin(φ)*cos(θ), (Eq. 3.)
y=r*sin(φ)*sin(θ) (Eq. 4.)
z=r*cos(φ), where (Eq. 5.)
r represents a radial distance of the point φ from a center of the respective polar region 722, 724.
It is expected that, over time, as new input frames are coded and designated as reference frames, that decoded reference frames will replace the transformed reference frames in the decoded picture buffer. Thus, any coding inefficiencies that might be obtained from use of the transformed reference frames will be overcome by the ordinary eviction policies under which the decoded picture buffer operates.
It is expected that, over time, as new coded frames are decoded and reference frames are obtained therefrom, that decoded reference frames will replace the transformed reference frames in the decoded picture buffer. Thus, any coding inefficiencies that might be obtained from use of the transformed reference frames will be overcome by the ordinary eviction policies under which the decoded picture buffer operates.
Switching may be triggered in a variety of ways. In a first embodiment, activity at a decoding terminal 120 (
In another embodiment, an image processor 220 may assign priority to region(s) of a multi-directional image based on characteristics of the image data itself. For example, image analysis may identify regions within an input frame that indicates the presence of relatively close objects (identified by depth analyses of the frame) or motion activity occurs (identified by motion analysis of the frame). Such regions may be selected as high priority regions of the image and a format that prioritizes these regions(s) may be defined for coding.
In a further embodiment, an image processor 220 may select frame formats based on estimates of distortion among candidate frame formats and selecting one of the frame formats that minimizes distortion under a governing coding rate. For example, a governing coding rate may be imposed by a bit rate afforded by a channel between a coding system 200 and a decoding system 300. Distortion estimates may be calculated for eligible frame formats based on candidate viewing conditions, for example, estimates of how often a segment of video is likely to be viewed. Dynamic switching may be performed when an eligible frame format is identified that is estimated to have lower distortion than another frame format that is then being used for coding.
The encoding terminal 110 may determine whether its format should be switched (box 1050). If the encoding terminal 110 determines that the format should be switched, the encoding terminal 110 may send a new message 1055 to the decoding terminal 120 identifying the new configuration. In response to the format configuration message 1055 both terminals 110, 120 may repack reference frames stored in their decoded picture buffers according to the new configuration (boxes 1060, 1065). The operations 1025-1065 may repeat for as long as necessary under the coding session.
The coding session may begin at a time t1, when a first frame is coded. At this point, the reference picture store 1120 likely will be empty (because the input frame IF1 is the first frame to be processed). The input frame IF1 may be coded by intra-coding and output from the video coder. The coded input frame IF1 likely will be designated as a reference frame and, therefore, it may be decoded and stored to the reference picture store as reference frame RF1.
Input frames IF2-IFN may be coded according to the first format, also. The video coder 1110 may code the input frames predictively, using reference frames from the reference picture store 1120 as bases for prediction. The coded input frames IF2-IFN may output from the video coder 1110. Select coded input frames IF2-IFN may be designated as reference frames and stored to the reference picture store 1120. Thus, at time t2, after the input frame IFN is coded, the reference picture store 1120 may store reference frames RF1-RFM.
The input frames' format may change to the second format when input frame IFN+1 is coded by the video coder. In response, the reference frames RF1-RFM may be transformed from a representation corresponding to the first format to a representation corresponding to the second format. The input frame IFN+1 may be coded predictively using select transformed frame(s) TF1-TFM as prediction references and output from the video coder. If the coded input frame IFN+1 is designated as a reference frame, it may be decoded and stored to the reference picture store as reference frame RFN+1 (not shown).
At the video decoder 1130, decoding may begin at a time t4, when a first coded frame is decoded. At this point, the reference picture store 1140 will be empty because the input frame IF1 is the first frame to be processed. The input frame IF1 may be decoded and output from the video decoder 1130. The decoded frame IF1 likely will have been designated as a reference frame and, therefore, it may be stored to the reference picture store 1140 as reference frame RF1.
Coded input frames IF2-IFN may be decoded according to the first format, also. The video decoder 1130 may decode the input frames according to the coding modes applied by the video coder 1110, using reference frames from the reference picture store 1140 as bases for prediction when so designated. The decoded input frames IF2-IFN may be output from the video decoder 1130. Decoded input frames IF2-IFN that are designated as reference frames also may be stored to the reference picture store 1140. Thus, at time t5, after the coded input frame IFN is decoded, the reference picture store 1140 may store reference frames RF1-RFM.
In this example, the frames' format changes to the second format when the coded input frame IFN+1 is decoded by the video decoder 1130. In response, the reference frames RF1-RFM may be transformed from a representation corresponding to the first format to a representation corresponding to the second format. The coded input frame IFN+1 may be coded predictively using designated transformed frame(s) TF1-TFM as prediction references and output from the video decoder 1130. If the decoded input frame IFN+1 is designated as a reference frame, it may be stored to the reference picture store 1140 as reference frame RFN+1 (not shown).
Note that, in the foregoing example, there are no constraints on the timing between the coding events at times t1-t3 and the decoding events at times t4-t6. The principles of the present disclosure apply equally as well to real time coding scenarios, which may be appropriate for “live” video feeds, and also to store-and-forward coding scenarios, where video may be coded for storage and then delivered to decoding devices on demand.
Transforms of reference pictures may be performed in a variety of different ways. In a simple example, a region of image data that is being “demoted” in priority may be spatially downscaled according to the size differences between the region that the demoted content occupies in the reference frame and the region that the demoted content occupies in the transform frame. For example, the front region F in reference frame RF1 is demoted when generating transform frame TF1; it may be downscaled according to the size differences that occur due to this demotion.
Similarly, a region of image data that is “promoted” in priority may be spatially upsampled according to the size differences between the region that the promoted content occupies in the reference frame and the region that the promoted content occupies in the transform frame. For example, in
Although not illustrated in
As in the prior example, a coding session may begin at a time t1, when a first frame is coded. At this point, the reference picture store 1220 likely will be empty (because the input frame IF1 is the first frame to be processed). The input frame IF1 may be coded by intra-coding and output from the video coder. The coded input frame IF1 likely will be designated as a reference frame and, therefore, it may be decoded and stored to the reference picture store as reference frame RF1.
Input frames IF2-IFN may be coded according to the first format, also. The video coder 1210 may code the input frames predictively, using reference frames from the reference picture store 1220 as bases for prediction. The coded input frames IF2-IFN may output from the video coder 1210. Select coded input frames IF2-IFN may be designated as reference frames and stored to the reference picture store 1220. Thus, at time t2, after the input frame IFN is coded, the reference picture store 1220 may store reference frames RF1-RFM.
The input frames' format may change to the second format when input frame IFN+1 is coded by the video coder. In response, the reference frames RF1-RFM may be transformed from a representation corresponding to the first format to a representation corresponding to the second format. The input frame IFN+1 may be coded predictively using select transformed frame(s) TF1-TFM as prediction references and output from the video coder. If the coded input frame IFN+1 is designated as a reference frame, it may be decoded and stored to the reference picture store as reference frame RFN+1 (not shown).
At the video decoder 1230, decoding may begin at a time t4, when a first coded frame is decoded. At this point, the reference picture store 1240 will be empty because the input frame IF1 is the first frame to be processed. The input frame IF1 may be decoded and output from the video decoder 1230. The decoded frame IF1 likely will have been designated as a reference frame and, therefore, it may be stored to the reference picture store 1240 as reference frame RF1.
Coded input frames IF2-IFN may be decoded according to the first format, also. The video decoder 1230 may decode the input frames according to the coding modes applied by the video coder 1210, using reference frames from the reference picture store 1240 as bases for prediction when so designated. The decoded input frames IF2-IFN may be output from the video decoder 1230. Decoded input frames IF2-IFN that are designated as reference frames also may be stored to the reference picture store 1240. Thus, at time t5, after the coded input frame IFN is decoded, the reference picture store 1240 may store reference frames RF1-RFM.
In this example, the frames' format changes to the second format when the coded input frame IFN+1 is decoded by the video decoder 1230. In response, the reference frames RF1-RFM may be transformed from a representation corresponding to the first format to a representation corresponding to the second format. The coded input frame IFN+1 may be coded predictively using designated transformed frame(s) TF1-TFM as prediction references and output from the video decoder 1230. If the decoded input frame IFN+1 is designated as a reference frame, it may be stored to the reference picture store 1240 as reference frame RFN+1 (not shown).
As in the prior example, there are no constraints on the timing between the coding events at times t1-t3 and the decoding events at times t4-t6. The principles of the present disclosure apply equally as well to real time coding scenarios, which may be appropriate for “live” video feeds, and also to store-and-forward coding scenarios, where video may be coded for storage and then delivered to decoding devices on demand.
The pixel block coder 1310 may include a subtractor 1312, a transform unit 1314, a quantizer 1316, and an entropy coder 1318. The pixel block coder 1310 may accept pixel blocks of input data at the subtractor 1312. The subtractor 1312 may receive predicted pixel blocks from the predictor 1350 and generate an array of pixel residuals therefrom representing a difference between the input pixel block and the predicted pixel block. The transform unit 1314 may apply a transform to the sample data output from the subtractor 1312, to convert data from the pixel domain to a domain of transform coefficients. The quantizer 1316 may perform quantization of transform coefficients output by the transform unit 1314. The quantizer 1316 may be a uniform or a non-uniform quantizer. The entropy coder 1318 may reduce bandwidth of the output of the coefficient quantizer by coding the output, for example, by variable length code words.
The transform unit 1314 may operate in a variety of transform modes as determined by the controller 1360. For example, the transform unit 1314 may apply a discrete cosine transform (DCT), a discrete sine transform (DST), a Walsh-Hadamard transform, a Haar transform, a Daubechies wavelet transform, or the like. In an embodiment, the controller 1360 may select a coding mode M to be applied by the transform unit 1315, may configure the transform unit 1315 accordingly and may signal the coding mode M in the coded video data, either expressly or impliedly.
The quantizer 1316 may operate according to a quantization parameter QP that is supplied by the controller 1360. In an embodiment, the quantization parameter QP may be applied to the transform coefficients as a multi-value quantization parameter, which may vary, for example, across different coefficient locations within a transform-domain pixel block. Thus, the quantization parameter QP may be provided as a quantization parameters array.
The pixel block decoder 1320 may invert coding operations of the pixel block coder 1310. For example, the pixel block decoder 1320 may include a dequantizer 1322, an inverse transform unit 1324, and an adder 1326. The pixel block decoder 1320 may take its input data from an output of the quantizer 1316. Although permissible, the pixel block decoder 1320 need not perform entropy decoding of entropy-coded data since entropy coding is a lossless event. The dequantizer 1322 may invert operations of the quantizer 1316 of the pixel block coder 1310. The dequantizer 1322 may perform uniform or non-uniform de-quantization as specified by the decoded signal QP. Similarly, the inverse transform unit 1324 may invert operations of the transform unit 1314. The dequantizer 1322 and the inverse transform unit 1324 may use the same quantization parameters QP and transform mode M as their counterparts in the pixel block coder 1310. Quantization operations likely will truncate data in various respects and, therefore, data recovered by the dequantizer 1322 likely will possess coding errors when compared to the data presented to the quantizer 1316 in the pixel block coder 1310.
The adder 1326 may invert operations performed by the subtractor 1312. It may receive the same prediction pixel block from the predictor 1350 that the subtractor 1312 used in generating residual signals. The adder 1326 may add the prediction pixel block to reconstructed residual values output by the inverse transform unit 1324 and may output reconstructed pixel block data.
The in-loop filter 1330 may perform various filtering operations on recovered pixel block data. For example, the in-loop filter 1330 may include a deblocking filter 1332 and a sample adaptive offset (“SAO”) filter 1333. The deblocking filter 1332 may filter data at seams between reconstructed pixel blocks to reduce discontinuities between the pixel blocks that arise due to coding. SAO filters may add offsets to pixel values according to an SAO “type,” for example, based on edge direction/shape and/or pixel/color component level. The in-loop filter 1330 may operate according to parameters that are selected by the controller 1360.
The reference picture store 1340 may store filtered pixel data for use in later prediction of other pixel blocks. Different types of prediction data are made available to the predictor 1350 for different prediction modes. For example, for an input pixel block, intra prediction takes a prediction reference from decoded data of the same picture in which the input pixel block is located. Thus, the reference picture store 1340 may store decoded pixel block data of each picture as it is coded. For the same input pixel block, inter prediction may take a prediction reference from previously coded and decoded picture(s) that are designated as reference pictures. Thus, the reference picture store 1340 may store these decoded reference pictures.
As discussed, the predictor 1350 may supply prediction data to the pixel block coder 1310 for use in generating residuals. The predictor 1350 may include an inter predictor 1352, an intra predictor 1353 and a mode decision unit 1352. The inter predictor 1352 may receive pixel block data representing a new pixel block to be coded and may search reference picture data from store 1340 for pixel block data from reference picture(s) for use in coding the input pixel block. The inter predictor 1352 may support a plurality of prediction modes, such as P mode coding and B mode coding. The inter predictor 1352 may select an inter prediction mode and an identification of candidate prediction reference data that provides a closest match to the input pixel block being coded. The inter predictor 1352 may generate prediction reference metadata, such as motion vectors, to identify which portion(s) of which reference pictures were selected as source(s) of prediction for the input pixel block.
The intra predictor 1353 may support Intra (I) mode coding. The intra predictor 1353 may search from among pixel block data from the same picture as the pixel block being coded that provides a closest match to the input pixel block. The intra predictor 1353 also may generate prediction reference indicators to identify which portion of the picture was selected as a source of prediction for the input pixel block.
The mode decision unit 1352 may select a final coding mode to be applied to the input pixel block. Typically, as described above, the mode decision unit 1352 selects the prediction mode that will achieve the lowest distortion when video is decoded given a target bitrate. Exceptions may arise when coding modes are selected to satisfy other policies to which the coding system 1300 adheres, such as satisfying a particular channel behavior, or supporting random access or data refresh policies. When the mode decision selects the final coding mode, the mode decision unit 1352 may output a selected reference block from the store 1340 to the pixel block coder and decoder 1310, 1320 and may supply to the controller 1360 an identification of the selected prediction mode along with the prediction reference indicators corresponding to the selected mode.
The controller 1360 may control overall operation of the coding system 1300. The controller 1360 may select operational parameters for the pixel block coder 1310 and the predictor 1350 based on analyses of input pixel blocks and also external constraints, such as coding bitrate targets and other operational parameters. As is relevant to the present discussion, when it selects quantization parameters QP, the use of uniform or non-uniform quantizers, and/or the transform mode M, it may provide those parameters to the syntax unit 1370, which may include data representing those parameters in the data stream of coded video data output by the system 1300. The controller 1360 also may select between different modes of operation by which the system may generate reference images and may include metadata identifying the modes selected for each portion of coded data.
During operation, the controller 1360 may revise operational parameters of the quantizer 1316 and the transform unit 1315 at different granularities of image data, either on a per pixel block basis or on a larger granularity (for example, per picture, per slice, per largest coding unit (“LCU”) or another region). In an embodiment, the quantization parameters may be revised on a per-pixel basis within a coded picture.
Additionally, as discussed, the controller 1360 may control operation of the in-loop filter 1330 and the prediction unit 1350. Such control may include, for the prediction unit 1350, mode selection (lambda, modes to be tested, search windows, distortion strategies, etc.), and, for the in-loop filter 1330, selection of filter parameters, reordering parameters, weighted prediction, etc.
And, further, the controller 1360 may perform transforms of reference pictures stored in the reference picture store when new formats are defined for input video.
The principles of the present discussion may be used cooperatively with other coding operations that have been proposed for multi-directional video. For example, the predictor 1350 may perform prediction searches using input pixel block data and reference pixel block data in a spherical projection. Operation of such prediction techniques are described in U.S. patent application Ser. No. 15/390,202, filed Dec. 23, 2016 and assigned to the assignee of the present application. In such an embodiment, the coder 1300 may include a spherical transform unit 1390 that transforms input pixel block data to a spherical domain prior to being input to the predictor 1350.
The pixel block decoder 1420 may include an entropy decoder 1422, a dequantizer 1424, an inverse transform unit 1426, and an adder 1428. The entropy decoder 1422 may perform entropy decoding to invert processes performed by the entropy coder 1318 (
The adder 1428 may invert operations performed by the subtractor 1312 (
The in-loop filter 1430 may perform various filtering operations on reconstructed pixel block data. As illustrated, the in-loop filter 1430 may include a deblocking filter 1432 and an SAO filter 1434. The deblocking filter 1432 may filter data at seams between reconstructed pixel blocks to reduce discontinuities between the pixel blocks that arise due to coding. SAO filters 1434 may add offset to pixel values according to an SAO type, for example, based on edge direction/shape and/or pixel level. Other types of in-loop filters may also be used in a similar manner. Operation of the deblocking filter 1432 and the SAO filter 1434 ideally would mimic operation of their counterparts in the coding system 1300 (
The reference picture store 1440 may store filtered pixel data for use in later prediction of other pixel blocks. The reference picture store 1440 may store decoded pixel block data of each picture as it is coded for use in intra prediction. The reference picture store 1440 also may store decoded reference pictures.
As discussed, the predictor 1450 may supply the transformed reference block data to the pixel block decoder 1420. The predictor 1450 may supply predicted pixel block data as determined by the prediction reference indicators supplied in the coded video data stream.
The controller 1460 may control overall operation of the coding system 1400. The controller 1460 may set operational parameters for the pixel block decoder 1420 and the predictor 1450 based on parameters received in the coded video data stream. As is relevant to the present discussion, these operational parameters may include quantization parameters QP for the dequantizer 1424 and transform modes M for the inverse transform unit 1411. As discussed, the received parameters may be set at various granularities of image data, for example, on a per pixel block basis, a per picture basis, a per slice basis, a per LCU basis, or based on other types of regions defined for the input image.
And, further, the controller 1460 may perform transforms of reference pictures stored in the reference picture store 1440 when new formats are detected in coded video data.
The foregoing discussion has described operation of the embodiments of the present disclosure in the context of video coders and decoders. Commonly, these components are provided as electronic devices. Video decoders and/or controllers can be embodied in integrated circuits, such as application specific integrated circuits, field programmable gate arrays and/or digital signal processors. Alternatively, they can be embodied in computer programs that execute on camera devices, personal computers, notebook computers, tablet computers, smartphones or computer servers. Such computer programs typically are stored in physical storage media such as electronic-, magnetic- and/or optically-based storage devices, where they are read to a processor and executed. Decoders commonly are packaged in consumer electronics devices, such as smartphones, tablet computers, gaming systems, DVD players, portable media players and the like; and they also can be packaged in consumer software applications such as video games, media players, media editors, and the like. And, of course, these components may be provided as hybrid systems that distribute functionality across dedicated hardware components and programmed general-purpose processors, as desired.
For example, the techniques described herein may be performed by a central processor of a computer system.
The central processor 1510 may read and execute various program instructions stored in the memory 1530 that define an operating system 1512 of the system 1500 and various applications 1514.1-1514.N. The program instructions may perform coding mode control according to the techniques described herein. As it executes those program instructions, the central processor 1510 may read, from the memory 1530, image data created either by the camera 1520 or the applications 1514.1-1514.N, which may be coded for transmission. The central processor 1510 may execute a program that operates according to the principles of
As indicated, the memory 1530 may store program instructions that, when executed, cause the processor to perform the techniques described hereinabove. The memory 1530 may store the program instructions on electrical-, magnetic- and/or optically-based storage media.
The transceiver 1540 may represent a communication system to transmit transmission units and receive acknowledgement messages from a network (not shown). In an embodiment where the central processor 1510 operates a software-based video coder, the transceiver 1540 may place data representing state of acknowledgment message in memory 1530 to retrieval by the processor 1510. In an embodiment where the system 1500 has a dedicated coder, the transceiver 1540 may exchange state information with the coder 1550.
The foregoing discussion has described the principles of the present disclosure in terms of encoding systems and decoding systems. As described, an encoding system typically codes video data for delivery to a decoding system where the video data is decoded and consumed. As such, the encoding system and decoding system support coding, delivery and decoding of video data in a single direction. In applications where bidirectional exchange is desired, a pair of terminals 110, 120 (
Several embodiments of the present invention are specifically illustrated and described herein. However, it will be appreciated that modifications and variations of the present invention are covered by the above teachings and within the purview of the appended claims without departing from the spirit and intended scope of the invention.
Claims
1. A method, comprising:
- processing input video having an input organizational format to generate processed video in a selected organizational format for multi-directional video wherein the selected organizational format includes at least one larger sub-image corresponding to a higher prioritized direction of view and a plurality of smaller sub-images corresponding to lower prioritized directions of view,
- selecting a first selected organizational format based on a first prioritization amongst directions of view;
- coding the processed video in the first selected organizational format,
- decoding select coded frames as reference frames,
- storing the decoded reference frames in the first selected organizational format;
- selecting a second selected organizational format based on a second prioritization amongst the directions of view;
- responsive to an indication of a change in view direction prioritization from the first prioritization to the second prioritization, transforming the decoded reference frames from the first selected organizational format to the second selected organizational format,
- predictively coding video frames in the second selected organizational format using the transformed reference frame(s) as source(s) of prediction, and
- outputting the coded video frames to a channel.
2. The method claim 1, wherein the first format contains a prioritization of a first region of the input video over a second region of the input video, and the second format contains a prioritization of the second region of the input video over the first region of the input video.
3. The method claim 1, wherein the first format contains a prioritization of a first portion of the input video over another portion of the input video, and the second format contains a prioritization of a second portion of the input video over the other portion of the input video.
4. The method claim 1, wherein the first and second formats are derived from a common source format of the input video.
5. The method claim 4, wherein the source format is a cube map format.
6. The method claim 4, wherein the source format is an equirectangular format.
7. A method, comprising:
- decoding a first portion of a sequence of predictively-coded multi-directional video data, the coded video data having a coded organizational format that changes over the sequence wherein the coded organizational format includes at least one larger sub-image corresponding to a higher prioritized direction of view and a plurality of smaller sub-images corresponding to lower prioritized directions of view,
- storing select frames obtained from the decoding as reference frames for use in later predictions, wherein the reference frames are stored in a first organizational format of multi-directional images selected based on a first prioritization of directions of view;
- responsive to an indication of a change in a view direction prioritization from the first prioritization to a second prioritization of directions of view, transforming the decoded reference frames from the first organizational format to a second organizational format selected based on the second prioritization of the directions of view,
- predictively decoding a second portion of the sequence having coded video frames in the second organizational format using the transformed reference frame(s) as source(s) of prediction, and
- outputting the coded video frames to a sink device.
8. The method claim 7, wherein the first format contains a prioritization of a first region of the coded video over a second region of the coded video, and the second format contains a prioritization of the second region of the coded video over the first region of the coded video.
9. The method claim 7, wherein the first format contains a prioritization of a first portion of the coded video over another portion of the coded video, and the second format contains a prioritization of a second region of the coded video over the other portion of the coded video.
10. The method claim 7, wherein the first and second formats are derived from a common source format of the coded video.
11. The method claim 10, wherein the source format is a cube map format.
12. The method claim 10, wherein the source format is an equirectangular format.
13. A coding system, comprising:
- an image processor having an input for video in a multi-directional source format and an output for video in a selected organizational format for multi-directional video wherein the selected organizational format includes at least one larger sub-image corresponding to a higher prioritized direction of view and a plurality of smaller sub-images corresponding to lower prioritized directions of view,
- a video coder having an input for video from the image processor in a first coding format, an input for prediction data, and an output for predictively-coded video data,
- a video decoder having in input for the predictively-coded video data from the video coder and an output for decoded video data,
- a reference picture store having an input for the decoded video data from the video decoder,
- a predictor, having an input for the video from the image processor in the first coding format, an input for stored reference picture data from the reference picture store and an output for the prediction data, and
- a controller, responsive to an indication of a change in view direction prioritization from a first prioritization of directions of view to a second prioritization of the directions of view, that transforms reference picture data in the reference picture store from a first organizational format for multi-directional video selected based on the first prioritization to a second organizational format selected based on the second prioritization.
14. The system of claim 13, wherein the first organizational format contains a prioritization of a first region of the source format over a second region of the source format, and the second coding format contains a prioritization of the second region of the source format over the first region of the source format.
15. The system of claim 13, wherein the first organizational contains a prioritization of a first portion of the source format over another portion of the source format, and the second coding format contains a prioritization of a second region of the source format over the other portion of the source format.
16. A decoding system, comprising:
- a video decoder having an input for predictively-coded multi-directional video data and an output for decoded video data,
- a reference picture store having an input for the decoded video data from the video decoder,
- a predictor, having an input for coding mode data associated with the predictively-coded video data, an input for stored reference picture data from the reference picture store and an output for the prediction data, and
- a controller, responsive to an indication of a change in a view direction prioritization from a first prioritization amongst directions of view to a second prioritization amongst the directions of view, that transforms reference picture data in the reference picture store from a first organizational format for multi-directional video based on the first prioritization to a second organizational format for multi-directional video based on the a second prioritization, wherein an organizational format for multi-directional video includes at least one larger sub-image corresponding to a higher prioritized direction of view and a plurality of smaller sub-images corresponding to lower prioritized directions of view.
17. The system of claim 16, wherein the first organizational format contains a prioritization of a first region of the coded video over a second region of the coded video, and the second format contains a prioritization of the second region of the coded video over the first region of the coded video.
18. The system of claim 16, wherein the first organizational format contains a prioritization of a first portion of the coded video over another portion of the coded video, and the second format contains a prioritization of a second region of the coded video over the other portion of the coded video.
19. The system of claim 16, wherein the first and second organizational formats are derived from a common source format of the coded video.
20. Non-transitory computer readable medium storing program instructions that, when executed by a processing device, cause the device to:
- process multi-directional input video having an input organizational format to generate processed video in a selected organizational format for multi-directional video wherein the selected organizational format includes at least one larger sub-image corresponding to a higher prioritized direction of view and a plurality of smaller sub-images corresponding to lower prioritized directions of view,
- select a first selected organizational format based on a first prioritization amongst directions of view;
- code the processed video in a first organizational format,
- decode select coded frames as reference frames,
- store the decoded reference frames;
- select a second selected organizational format based on a second prioritization amongst the directions of view;
- responsive to an indication of a change in view direction prioritization from the first prioritization to the second prioritization, transform the decoded reference frames from the first selected organizational format to the second selected organizational format,
- predictively code video frames in the second selected organizational format using the transformed reference frame(s) as source(s) of prediction, and
- output the coded video frames to a channel.
21. Non-transitory computer readable medium storing program instructions that, when executed by a processing device, cause the device to:
- decode a sequence of predictively-coded multi-directional video data, the coded video data having an organizational format that changes over the sequence, wherein a coded organizational format includes at least one larger sub-image corresponding to a higher prioritized direction of view and a plurality of smaller sub-images corresponding to lower prioritized directions of view,
- store select frames obtained from the decoding as reference frames for use in later predictions, wherein the reference frames are stored in a first organizational format selected based on a first prioritization of directions of view;
- responsive to an indication of a change in a view direction prioritization from the first prioritization to a second prioritization of directions of view, transform the decoded reference frames from the first organizational format to a second organizational format selected based on the second prioritization of the directions of view,
- predictively decode coded video frames in the second organizational format using transformed reference frame(s) as source(s) of prediction.
22. A method, comprising:
- processing multi-directional input video frames having an input arrangement of regions of view directions within a composite multi-directional frame to generate processed video in a selected arrangement of the regions wherein the selected arrangement includes at least one larger region corresponding to a higher prioritized view direction and a plurality of smaller regions corresponding to lower prioritized view directions,
- selecting a first arrangement of the regions based on a first prioritization amongst view directions,
- coding the processed video in the first selected arrangement,
- decoding select coded frames as reference frames,
- storing the decoded reference frames in the first selected arrangement;
- selecting a second arrangement of the regions based on a second prioritization amongst the view directions,
- responsive to an indication of a change in view direction prioritization from the first prioritization to the second prioritization, transforming the decoded reference frames from the first selected arrangement to the second selected arrangement,
- predictively coding video frames in the second selected arrangement using the transformed reference frame(s) as source(s) of prediction, and
- outputting the coded video frames to a channel.
4890257 | December 26, 1989 | Anthias et al. |
5185667 | February 9, 1993 | Zimmerman |
5262777 | November 16, 1993 | Low et al. |
5313306 | May 17, 1994 | Kuban et al. |
5359363 | October 25, 1994 | Kuban et al. |
5448687 | September 5, 1995 | Hoogerhyde et al. |
5537155 | July 16, 1996 | O'Connell et al. |
5600346 | February 4, 1997 | Kamata et al. |
5684937 | November 4, 1997 | Oxaal |
5689800 | November 18, 1997 | Downs |
5715016 | February 3, 1998 | Kobayashi et al. |
5787207 | July 28, 1998 | Golin |
5872604 | February 16, 1999 | Ogura |
5903270 | May 11, 1999 | Gentry et al. |
5936630 | August 10, 1999 | Oxaal |
6011897 | January 4, 2000 | Koyama |
6031540 | February 29, 2000 | Golin et al. |
6043837 | March 28, 2000 | Driscoll et al. |
6058212 | May 2, 2000 | Yokoyama |
6122317 | September 19, 2000 | Hanami et al. |
6144890 | November 7, 2000 | Rothkop |
6204854 | March 20, 2001 | Signes et al. |
6219089 | April 17, 2001 | Driscoll, Jr. et al. |
6222883 | April 24, 2001 | Murdock et al. |
6317159 | November 13, 2001 | Aoyama |
6331869 | December 18, 2001 | Furlan et al. |
6426774 | July 30, 2002 | Driscoll, Jr. et al. |
6535643 | March 18, 2003 | Hong |
6539060 | March 25, 2003 | Lee et al. |
6559853 | May 6, 2003 | Hashimoto et al. |
6577335 | June 10, 2003 | Kobayashi et al. |
6751347 | June 15, 2004 | Pettigrew et al. |
6762789 | July 13, 2004 | Sogabe et al. |
6769131 | July 27, 2004 | Tanaka et al. |
6795113 | September 21, 2004 | Jackson et al. |
6907310 | June 14, 2005 | Gardner et al. |
6973130 | December 6, 2005 | Wee et al. |
6993201 | January 31, 2006 | Haskell et al. |
7006707 | February 28, 2006 | Peterson |
7015954 | March 21, 2006 | Foote et al. |
7039113 | May 2, 2006 | Soundararajan |
7050085 | May 23, 2006 | Park et al. |
7095905 | August 22, 2006 | Peterson |
7123777 | October 17, 2006 | Rondinelli et al. |
7139440 | November 21, 2006 | Rondinelli et al. |
7149549 | December 12, 2006 | Ortiz et al. |
7259760 | August 21, 2007 | Hashimoto et al. |
7327787 | February 5, 2008 | Chen et al. |
7382399 | June 3, 2008 | McCall et al. |
7385995 | June 10, 2008 | Stiscia et al. |
7415356 | August 19, 2008 | Gowda et al. |
7433535 | October 7, 2008 | Mukherjee et al. |
7450749 | November 11, 2008 | Rouet et al. |
7593041 | September 22, 2009 | Novak et al. |
7660245 | February 9, 2010 | Luby |
7742073 | June 22, 2010 | Cohen-Solal et al. |
7755667 | July 13, 2010 | Rabbani et al. |
7782357 | August 24, 2010 | Cutler |
8027473 | September 27, 2011 | Stiscia et al. |
8045615 | October 25, 2011 | Liang et al. |
8217956 | July 10, 2012 | Jin |
8255552 | August 28, 2012 | Witt et al. |
8270496 | September 18, 2012 | Yin et al. |
8295360 | October 23, 2012 | Lewis et al. |
8339394 | December 25, 2012 | Lininger |
8442109 | May 14, 2013 | Wang et al. |
8442311 | May 14, 2013 | Hobbs et al. |
8462109 | June 11, 2013 | Nasiri et al. |
8462853 | June 11, 2013 | Jeon et al. |
8482595 | July 9, 2013 | Kweon |
8682091 | March 25, 2014 | Amit et al. |
8693537 | April 8, 2014 | Wang et al. |
8711941 | April 29, 2014 | Letunovskiy et al. |
9013536 | April 21, 2015 | Zhu et al. |
9071484 | June 30, 2015 | Traux |
9094681 | July 28, 2015 | Wilkins et al. |
9098870 | August 4, 2015 | Meadow et al. |
9219919 | December 22, 2015 | Deshpande |
9224247 | December 29, 2015 | Wada et al. |
9258520 | February 9, 2016 | Lee |
9277122 | March 1, 2016 | Imura et al. |
9404764 | August 2, 2016 | Lynch |
9430873 | August 30, 2016 | Nakamura et al. |
9510007 | November 29, 2016 | Chan et al. |
9516225 | December 6, 2016 | Banta et al. |
9596899 | March 21, 2017 | Stahl et al. |
9639935 | May 2, 2017 | Douady-Pleven et al. |
9723223 | August 1, 2017 | Banta et al. |
9743060 | August 22, 2017 | Matias et al. |
9754413 | September 5, 2017 | Gray |
9781356 | October 3, 2017 | Banta et al. |
9838687 | December 5, 2017 | Banta et al. |
9866815 | January 9, 2018 | Vrcelj et al. |
9936204 | April 3, 2018 | Sim et al. |
9967563 | May 8, 2018 | Hsu et al. |
9967577 | May 8, 2018 | Wu et al. |
9992502 | June 5, 2018 | Abbas et al. |
9996945 | June 12, 2018 | Holzer et al. |
10102611 | October 16, 2018 | Murtha et al. |
10204658 | February 12, 2019 | Krishnan |
10212456 | February 19, 2019 | Guo et al. |
10282814 | May 7, 2019 | Lin et al. |
10306186 | May 28, 2019 | Chuang et al. |
10321109 | June 11, 2019 | Tanumihardja et al. |
10339627 | July 2, 2019 | Abbas et al. |
10339688 | July 2, 2019 | Su et al. |
10349068 | July 9, 2019 | Banta et al. |
10375371 | August 6, 2019 | Xu et al. |
10455238 | October 22, 2019 | Mody et al. |
10523913 | December 31, 2019 | Kim et al. |
10559121 | February 11, 2020 | Moudgil et al. |
10573060 | February 25, 2020 | Ascolese et al. |
10574997 | February 25, 2020 | Chung et al. |
20010006376 | July 5, 2001 | Numa et al. |
20010028735 | October 11, 2001 | Pettigrew et al. |
20010036303 | November 1, 2001 | Maurincomme et al. |
20020080878 | June 27, 2002 | Li |
20020093670 | July 18, 2002 | Luo et al. |
20020126129 | September 12, 2002 | Snyder et al. |
20020140702 | October 3, 2002 | Koller et al. |
20020141498 | October 3, 2002 | Martins |
20020190980 | December 19, 2002 | Gerritsen et al. |
20020196330 | December 26, 2002 | Park et al. |
20030098868 | May 29, 2003 | Fujiwara et al. |
20030099294 | May 29, 2003 | Wang et al. |
20030152146 | August 14, 2003 | Lin et al. |
20040022322 | February 5, 2004 | Dye |
20040028133 | February 12, 2004 | Subramaniyan et al. |
20040028134 | February 12, 2004 | Subramaniyan et al. |
20040032906 | February 19, 2004 | Lillig et al. |
20040056900 | March 25, 2004 | Blume |
20040189675 | September 30, 2004 | Pretlove et al. |
20040201608 | October 14, 2004 | Ma et al. |
20040218099 | November 4, 2004 | Washington |
20040227766 | November 18, 2004 | Chou et al. |
20040247173 | December 9, 2004 | Nielsen et al. |
20050013498 | January 20, 2005 | Srinivasan et al. |
20050041023 | February 24, 2005 | Green |
20050069682 | March 31, 2005 | Tseng |
20050129124 | June 16, 2005 | Ha |
20050204113 | September 15, 2005 | Harper et al. |
20050243915 | November 3, 2005 | Kwon et al. |
20050244063 | November 3, 2005 | Kwon et al. |
20060034527 | February 16, 2006 | Gritsevich |
20060055699 | March 16, 2006 | Perlman et al. |
20060055706 | March 16, 2006 | Perlman et al. |
20060119599 | June 8, 2006 | Woodbury |
20060126719 | June 15, 2006 | Wilensky |
20060132482 | June 22, 2006 | Oh |
20060165164 | July 27, 2006 | Kwan et al. |
20060165181 | July 27, 2006 | Kwan et al. |
20060204043 | September 14, 2006 | Takei |
20060238445 | October 26, 2006 | Wang et al. |
20060282855 | December 14, 2006 | Margulis |
20070024705 | February 1, 2007 | Richter et al. |
20070057943 | March 15, 2007 | Beda et al. |
20070064120 | March 22, 2007 | Didow et al. |
20070071100 | March 29, 2007 | Shi et al. |
20070097268 | May 3, 2007 | Relan et al. |
20070115841 | May 24, 2007 | Taubman et al. |
20070223582 | September 27, 2007 | Borer |
20070263722 | November 15, 2007 | Fukuzawa |
20070291143 | December 20, 2007 | Barbieri et al. |
20080036875 | February 14, 2008 | Jones et al. |
20080044104 | February 21, 2008 | Gering |
20080049991 | February 28, 2008 | Gering |
20080077953 | March 27, 2008 | Fernandez et al. |
20080118180 | May 22, 2008 | Kamiya et al. |
20080184128 | July 31, 2008 | Swenson et al. |
20080252717 | October 16, 2008 | Moon et al. |
20080310513 | December 18, 2008 | Ma et al. |
20090040224 | February 12, 2009 | Igarashi et al. |
20090123088 | May 14, 2009 | Kallay et al. |
20090153577 | June 18, 2009 | Ghyme et al. |
20090190858 | July 30, 2009 | Moody et al. |
20090219280 | September 3, 2009 | Maillot |
20090219281 | September 3, 2009 | Maillot |
20090251530 | October 8, 2009 | Cilia |
20090262838 | October 22, 2009 | Gholmieh et al. |
20100029339 | February 4, 2010 | Kim et al. |
20100079605 | April 1, 2010 | Wang et al. |
20100080287 | April 1, 2010 | Ali |
20100110481 | May 6, 2010 | Do et al. |
20100124274 | May 20, 2010 | Cheok et al. |
20100215226 | August 26, 2010 | Kaufman et al. |
20100305909 | December 2, 2010 | Wolper et al. |
20100316129 | December 16, 2010 | Zhao et al. |
20100329361 | December 30, 2010 | Choi et al. |
20100329362 | December 30, 2010 | Choi et al. |
20110058055 | March 10, 2011 | Lindahl et al. |
20110128350 | June 2, 2011 | Oliver et al. |
20110142306 | June 16, 2011 | Nair |
20110200100 | August 18, 2011 | Kim et al. |
20110235706 | September 29, 2011 | Demircin et al. |
20110305274 | December 15, 2011 | Fu et al. |
20110310089 | December 22, 2011 | Petersen |
20120082232 | April 5, 2012 | Rojals et al. |
20120098926 | April 26, 2012 | Kweon |
20120192115 | July 26, 2012 | Falchuk et al. |
20120219055 | August 30, 2012 | He et al. |
20120260217 | October 11, 2012 | Celebisoy |
20120263231 | October 18, 2012 | Zhou |
20120307746 | December 6, 2012 | Hammerschmidt et al. |
20120320984 | December 20, 2012 | Zhou |
20120327172 | December 27, 2012 | El-Saban et al. |
20130003858 | January 3, 2013 | Sze |
20130016783 | January 17, 2013 | Kim et al. |
20130044108 | February 21, 2013 | Tanaka et al. |
20130051452 | February 28, 2013 | Li et al. |
20130088491 | April 11, 2013 | Hobbs et al. |
20130094568 | April 18, 2013 | Hsu et al. |
20130101025 | April 25, 2013 | Van der Auwera et al. |
20130101042 | April 25, 2013 | Sugio et al. |
20130111399 | May 2, 2013 | Rose |
20130124156 | May 16, 2013 | Wolper et al. |
20130127844 | May 23, 2013 | Koeppel et al. |
20130128986 | May 23, 2013 | Tsai et al. |
20130136174 | May 30, 2013 | Xu et al. |
20130170726 | July 4, 2013 | Kaufman et al. |
20130182775 | July 18, 2013 | Wang et al. |
20130195183 | August 1, 2013 | Zhai et al. |
20130208787 | August 15, 2013 | Zheng et al. |
20130219012 | August 22, 2013 | Suresh et al. |
20130251028 | September 26, 2013 | Au et al. |
20130301706 | November 14, 2013 | Qiu et al. |
20140002439 | January 2, 2014 | Lynch |
20140003450 | January 2, 2014 | Bentley et al. |
20140010293 | January 9, 2014 | Srinivasan et al. |
20140078263 | March 20, 2014 | Kim |
20140082054 | March 20, 2014 | Denoual et al. |
20140089326 | March 27, 2014 | Lin et al. |
20140140401 | May 22, 2014 | Lee et al. |
20140153636 | June 5, 2014 | Esenlik et al. |
20140169469 | June 19, 2014 | Bernal et al. |
20140176542 | June 26, 2014 | Shohara et al. |
20140218356 | August 7, 2014 | Distler et al. |
20140254949 | September 11, 2014 | Chou |
20140267235 | September 18, 2014 | DeJohn et al. |
20140269899 | September 18, 2014 | Park et al. |
20140286410 | September 25, 2014 | Zenkich |
20140355667 | December 4, 2014 | Lei et al. |
20140368669 | December 18, 2014 | Talvala et al. |
20140376634 | December 25, 2014 | Guo et al. |
20150003525 | January 1, 2015 | Sasai et al. |
20150003725 | January 1, 2015 | Wan |
20150016522 | January 15, 2015 | Sato |
20150029294 | January 29, 2015 | Lin et al. |
20150062292 | March 5, 2015 | Kweon |
20150089348 | March 26, 2015 | Jose |
20150103884 | April 16, 2015 | Ramasubramonian et al. |
20150145966 | May 28, 2015 | Krieger et al. |
20150195491 | July 9, 2015 | Shaburov et al. |
20150195559 | July 9, 2015 | Chen et al. |
20150237370 | August 20, 2015 | Zhou et al. |
20150256839 | September 10, 2015 | Ueki et al. |
20150264259 | September 17, 2015 | Raghoebardajal et al. |
20150264386 | September 17, 2015 | Pang et al. |
20150264404 | September 17, 2015 | Hannuksela |
20150271517 | September 24, 2015 | Pang et al. |
20150279087 | October 1, 2015 | Myers et al. |
20150279121 | October 1, 2015 | Myers et al. |
20150304665 | October 22, 2015 | Hannuksela et al. |
20150321103 | November 12, 2015 | Barnett et al. |
20150326865 | November 12, 2015 | Yin et al. |
20150339853 | November 26, 2015 | Wolper et al. |
20150341552 | November 26, 2015 | Chen et al. |
20150346812 | December 3, 2015 | Cole et al. |
20150350673 | December 3, 2015 | Hu et al. |
20150351477 | December 10, 2015 | Stahl et al. |
20150358612 | December 10, 2015 | Sandrew et al. |
20150358613 | December 10, 2015 | Sandrew et al. |
20150358633 | December 10, 2015 | Choi et al. |
20150373334 | December 24, 2015 | Rapaka et al. |
20150373372 | December 24, 2015 | He et al. |
20160012855 | January 14, 2016 | Krishnan |
20160014422 | January 14, 2016 | Su et al. |
20160027187 | January 28, 2016 | Wang et al. |
20160050369 | February 18, 2016 | Takenaka et al. |
20160080753 | March 17, 2016 | Oh |
20160112489 | April 21, 2016 | Adams et al. |
20160112704 | April 21, 2016 | Grange et al. |
20160142697 | May 19, 2016 | Budagavi |
20160150231 | May 26, 2016 | Schulze |
20160165257 | June 9, 2016 | Chen et al. |
20160227214 | August 4, 2016 | Rapaka et al. |
20160234438 | August 11, 2016 | Satoh |
20160241836 | August 18, 2016 | Cole et al. |
20160269632 | September 15, 2016 | Morioka |
20160277746 | September 22, 2016 | Fu et al. |
20160286119 | September 29, 2016 | Rondinelli |
20160350585 | December 1, 2016 | Lin et al. |
20160350592 | December 1, 2016 | Ma et al. |
20160352791 | December 1, 2016 | Adams et al. |
20160352971 | December 1, 2016 | Adams et al. |
20160353089 | December 1, 2016 | Gallup et al. |
20160353146 | December 1, 2016 | Weaver et al. |
20160360104 | December 8, 2016 | Zhang et al. |
20160360180 | December 8, 2016 | Cole et al. |
20170013279 | January 12, 2017 | Puri et al. |
20170026659 | January 26, 2017 | Lin |
20170038942 | February 9, 2017 | Rosenfeld et al. |
20170054907 | February 23, 2017 | Nishihara et al. |
20170064199 | March 2, 2017 | Lee et al. |
20170078447 | March 16, 2017 | Hancock et al. |
20170085892 | March 23, 2017 | Liu et al. |
20170094184 | March 30, 2017 | Gao et al. |
20170104927 | April 13, 2017 | Mugavero et al. |
20170109930 | April 20, 2017 | Holzer et al. |
20170127008 | May 4, 2017 | Kankaanpaa et al. |
20170142371 | May 18, 2017 | Barzuza et al. |
20170155912 | June 1, 2017 | Thomas et al. |
20170180635 | June 22, 2017 | Hayashi et al. |
20170200255 | July 13, 2017 | Lin et al. |
20170200315 | July 13, 2017 | Lockhart |
20170214937 | July 27, 2017 | Lin et al. |
20170223268 | August 3, 2017 | Shimmoto |
20170223368 | August 3, 2017 | Abbas et al. |
20170228867 | August 10, 2017 | Baruch |
20170230668 | August 10, 2017 | Lin et al. |
20170236323 | August 17, 2017 | Lim et al. |
20170244775 | August 24, 2017 | Ha |
20170251208 | August 31, 2017 | Adsumilli et al. |
20170257644 | September 7, 2017 | Andersson et al. |
20170272698 | September 21, 2017 | Liu et al. |
20170278262 | September 28, 2017 | Kawamoto et al. |
20170280126 | September 28, 2017 | Van der Auwera |
20170287200 | October 5, 2017 | Forutanpour et al. |
20170287220 | October 5, 2017 | Khalid et al. |
20170295356 | October 12, 2017 | Abbas et al. |
20170301065 | October 19, 2017 | Adsumilli et al. |
20170301132 | October 19, 2017 | Dalton et al. |
20170302714 | October 19, 2017 | Ramsay et al. |
20170302951 | October 19, 2017 | Joshi et al. |
20170309143 | October 26, 2017 | Trani et al. |
20170322635 | November 9, 2017 | Yoon et al. |
20170323422 | November 9, 2017 | Kim et al. |
20170323423 | November 9, 2017 | Lin et al. |
20170332107 | November 16, 2017 | Abbas et al. |
20170336705 | November 23, 2017 | Zhou |
20170339324 | November 23, 2017 | Tocher et al. |
20170339341 | November 23, 2017 | Zhou et al. |
20170339391 | November 23, 2017 | Zhou et al. |
20170339392 | November 23, 2017 | Forutanpour |
20170339415 | November 23, 2017 | Wang |
20170344843 | November 30, 2017 | Wang |
20170353737 | December 7, 2017 | Lin et al. |
20170359590 | December 14, 2017 | Zhang et al. |
20170366808 | December 21, 2017 | Lin et al. |
20170374332 | December 28, 2017 | Yamaguchi et al. |
20170374375 | December 28, 2017 | Makar et al. |
20180005447 | January 4, 2018 | Wallner et al. |
20180005449 | January 4, 2018 | Wallner et al. |
20180007387 | January 4, 2018 | Izumi |
20180007389 | January 4, 2018 | Izumi |
20180018807 | January 18, 2018 | Lu et al. |
20180020202 | January 18, 2018 | Xu et al. |
20180020238 | January 18, 2018 | Liu et al. |
20180027178 | January 25, 2018 | MacMillan et al. |
20180027226 | January 25, 2018 | Abbas et al. |
20180027257 | January 25, 2018 | Izumi |
20180047208 | February 15, 2018 | Marin et al. |
20180048890 | February 15, 2018 | Kim et al. |
20180053280 | February 22, 2018 | Kim et al. |
20180054613 | February 22, 2018 | Lin et al. |
20180061002 | March 1, 2018 | Lee et al. |
20180063505 | March 1, 2018 | Lee et al. |
20180063544 | March 1, 2018 | Tourapis et al. |
20180075576 | March 15, 2018 | Liu et al. |
20180075604 | March 15, 2018 | Kim et al. |
20180075635 | March 15, 2018 | Choi et al. |
20180077451 | March 15, 2018 | Yip et al. |
20180084257 | March 22, 2018 | Abbas |
20180091812 | March 29, 2018 | Guo et al. |
20180098090 | April 5, 2018 | Lin et al. |
20180101931 | April 12, 2018 | Abbas et al. |
20180109810 | April 19, 2018 | Xu et al. |
20180130243 | May 10, 2018 | Kim et al. |
20180130264 | May 10, 2018 | Ebacher |
20180146136 | May 24, 2018 | Yamamoto |
20180146138 | May 24, 2018 | Jeon et al. |
20180152636 | May 31, 2018 | Yim et al. |
20180152663 | May 31, 2018 | Wozniak et al. |
20180160138 | June 7, 2018 | Park |
20180160156 | June 7, 2018 | Hannuksela et al. |
20180164593 | June 14, 2018 | Van Der Auwera et al. |
20180167613 | June 14, 2018 | Hannuksela et al. |
20180167634 | June 14, 2018 | Salmimaa et al. |
20180174619 | June 21, 2018 | Roy et al. |
20180176468 | June 21, 2018 | Wang et al. |
20180176536 | June 21, 2018 | Jo et al. |
20180184101 | June 28, 2018 | Ho |
20180184121 | June 28, 2018 | Kim et al. |
20180191787 | July 5, 2018 | Morita et al. |
20180192074 | July 5, 2018 | Shih et al. |
20180199029 | July 12, 2018 | Van Der Auwera et al. |
20180199034 | July 12, 2018 | Nam et al. |
20180199070 | July 12, 2018 | Wang |
20180218512 | August 2, 2018 | Chan |
20180227484 | August 9, 2018 | Hung et al. |
20180234700 | August 16, 2018 | Kim et al. |
20180240223 | August 23, 2018 | Yi et al. |
20180240276 | August 23, 2018 | He et al. |
20180242016 | August 23, 2018 | Lee et al. |
20180242017 | August 23, 2018 | Van Leuven et al. |
20180249076 | August 30, 2018 | Sheng et al. |
20180249163 | August 30, 2018 | Curcio et al. |
20180249164 | August 30, 2018 | Kim et al. |
20180253879 | September 6, 2018 | Li et al. |
20180268517 | September 20, 2018 | Coban et al. |
20180270417 | September 20, 2018 | Suitoh et al. |
20180276789 | September 27, 2018 | Van Der Auwera et al. |
20180276826 | September 27, 2018 | Van Der Auwera et al. |
20180276890 | September 27, 2018 | Wang |
20180288435 | October 4, 2018 | Boyce |
20180295282 | October 11, 2018 | Boyce |
20180302621 | October 18, 2018 | Fu et al. |
20180307398 | October 25, 2018 | Kim et al. |
20180315245 | November 1, 2018 | Patel |
20180322611 | November 8, 2018 | Bang et al. |
20180329482 | November 15, 2018 | Woo et al. |
20180332265 | November 15, 2018 | Hwang et al. |
20180332279 | November 15, 2018 | Kang |
20180343388 | November 29, 2018 | Matsushita |
20180349705 | December 6, 2018 | Kim et al. |
20180350407 | December 6, 2018 | Decoodt et al. |
20180352225 | December 6, 2018 | Guo et al. |
20180352259 | December 6, 2018 | Guo et al. |
20180352264 | December 6, 2018 | Guo et al. |
20180359487 | December 13, 2018 | Bang et al. |
20180374192 | December 27, 2018 | Kunkel et al. |
20180376126 | December 27, 2018 | Hannuksela |
20180376152 | December 27, 2018 | Wang et al. |
20190004414 | January 3, 2019 | Kim et al. |
20190007669 | January 3, 2019 | Kim et al. |
20190007679 | January 3, 2019 | Coban et al. |
20190007684 | January 3, 2019 | Van Der Auwera et al. |
20190012766 | January 10, 2019 | Yoshimi |
20190014304 | January 10, 2019 | Curcio et al. |
20190026956 | January 24, 2019 | Gausebeck et al. |
20190028642 | January 24, 2019 | Fujita et al. |
20190045212 | February 7, 2019 | Rose et al. |
20190057487 | February 21, 2019 | Cheng |
20190057496 | February 21, 2019 | Ogawa et al. |
20190082184 | March 14, 2019 | Hannuksela |
20190104315 | April 4, 2019 | Guo et al. |
20190108611 | April 11, 2019 | Izumi |
20190132521 | May 2, 2019 | Fujita et al. |
20190132594 | May 2, 2019 | Chung et al. |
20190200016 | June 27, 2019 | Jang et al. |
20190215512 | July 11, 2019 | Lee et al. |
20190215532 | July 11, 2019 | He et al. |
20190230377 | July 25, 2019 | Ma et al. |
20190236990 | August 1, 2019 | Song et al. |
20190246141 | August 8, 2019 | Kim et al. |
20190253622 | August 15, 2019 | Van der Auwera et al. |
20190268594 | August 29, 2019 | Lim et al. |
20190273929 | September 5, 2019 | Ma et al. |
20190273949 | September 5, 2019 | Kim et al. |
20190281290 | September 12, 2019 | Lee et al. |
20190289324 | September 19, 2019 | Budagavi |
20190289331 | September 19, 2019 | Byun |
20190306515 | October 3, 2019 | Shima |
20200029077 | January 23, 2020 | Lee et al. |
20200036976 | January 30, 2020 | Kanoh et al. |
20200074687 | March 5, 2020 | Lin et al. |
20200077092 | March 5, 2020 | Lin et al. |
2077525 | July 2009 | EP |
WO 2012/044709 | April 2012 | WO |
WO 2015/138979 | September 2015 | WO |
WO 2016/076680 | May 2016 | WO |
WO 2016/140060 | September 2016 | WO |
WO 2017/125030 | July 2017 | WO |
WO 2017/127816 | July 2017 | WO |
- Choi et al.; “Text of ISO/IEC 23000-20 CD Omnidirectional Media Application Format”; Coding of Moving Pictures and Audio; ISO/IEC JTC1/SC29/WG11 N16636; Jan. 2017; 51 pages.
- He et al.; “AHG8: InterDigital's projection format conversion tool”; Joint Video Exploration Team (JVET) of ITU-T SG 16 WP3 and ISO/IEC JTC 1/SC 29/WG 11 4thmeeting; Oct. 2016; 18 pages.
- Kammachi et al.; “AHG8: Test results for viewport-dependent pyramid, cube map, and equirectangular panorama schemes”; JVET-D00078; Oct. 2016; 7 pages.
- Yip et al.; “Technologies under Considerations for ISO/IEC 23000-20 Omnidirectional Media Application Format”; ISO/IEC JTC1/SC29/WG11 MPEG2017/W16637; Jan. 2017; 50 pages.
- International Patent Application No. PCT/US2018/018246; Int'l Search Report and the Written Opinion; dated Apr. 20, 2018; 15 pages.
- Tosic et al.; “Multiresolution Motion Estimation for Omnidirectional Images”; IEEE 13thEuropean Signal Processing Conference; Sep. 2005; 4 pages.
- He et al.; “AHG8: Geometry padding for 360 video coding”; Joint Video Exploration Team (JVET); Document: JVET-D0075; Oct. 2016; 10 pages.
- Vishwanath et al.; “Rotational Motion Model for Temporal Prediction in 360 Video Coding”; IEEE 19thInt'l Workshop on Multimedia Signal Processing; Oct. 2017; 6 pages.
- Sauer et al.; “Improved Motion Compensation for 360 Video Projected to Polytopes” Proceedings of the IEEE Int'l Conf. On Multimedia and Expo; Jul. 2017; pp. 61-66.
- International Patent Application No. PCT/US2018/017124; Int'l Search Report and the Written Opinion; dated Apr. 30, 2018; 19 pages.
- Boyce et al.; “Common Test Conditions and Evaluation Procedures for 360 degree Video Coding”; Joint Video Exploration Team; ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11; Doc. JVET-D1030; Oct. 2016; 6 pages.
- 390 Li et al.; “Projection Based Advanced Motion Model for Cubic Mapping for 360-Degree Video”; Cornell University Library; 2017; 5 pages.
- Zheng et al.; “Adaptive Selection of Motion Models for Panoramic Video Coding”; IEEE Int'l Conf. Multimedia and Expo; Jul. 2007; pp. 1319-1322.
- He et al.; “AHG8: Algorithm description of InterDigital's projection format conversion tool (PCT360)”; Joint Video Exploration Team; ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11; Doc. JVET-D0090; Oct. 2016; 6 pages.
- International Patent Application No. PCT/US2017/051542; Int'l Search Report and the Written Opinion; dated Dec. 7, 2017; 17 pages.
- International Patent Application No. PCT/US2017/051542; Int'l Preliminary Report on Patentability; dated Jul. 4, 2019; 10 pages.
- International Patent Application No. PCT/US2018/018246; Int'l Preliminary Report on Patentability; dated Sep. 6, 2019; 8 pages.
- International Patent Application No. PCT/US2018/017124; Int'l Preliminary Report on Patentability; dated Aug. 29, 2019; 12 pages.
Type: Grant
Filed: Jun 30, 2017
Date of Patent: Aug 25, 2020
Patent Publication Number: 20190004414
Assignee: Apple Inc. (Cupertino, CA)
Inventors: Jae Hoon Kim (San Jose, CA), Ming Chen (Cupertino, CA), Xiaosong Zhou (Campbell, CA), Hsi-Jung Wu (San Jose, CA), Dazhong Zhang (Milpitas, CA), Hang Yuan (San Jose, CA), Jiefu Zhai (San Jose, CA), Chris Y. Chung (Sunnyvale, CA)
Primary Examiner: Jefferey F Harold
Assistant Examiner: Sean N. Haiem
Application Number: 15/638,848
International Classification: G03B 37/04 (20060101); G06T 3/40 (20060101); H04N 5/232 (20060101); H04N 19/172 (20140101); H04N 19/159 (20140101); G06T 3/00 (20060101); H04N 19/597 (20140101); H04N 19/105 (20140101); H04N 13/161 (20180101);