Nothing Special   »   [go: up one dir, main page]

US20180152719A1 - Tiling in video encoding and decoding - Google Patents

Tiling in video encoding and decoding Download PDF

Info

Publication number
US20180152719A1
US20180152719A1 US15/879,280 US201815879280A US2018152719A1 US 20180152719 A1 US20180152719 A1 US 20180152719A1 US 201815879280 A US201815879280 A US 201815879280A US 2018152719 A1 US2018152719 A1 US 2018152719A1
Authority
US
United States
Prior art keywords
view
picture
function block
video
sub
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US15/879,280
Other versions
US9986254B1 (en
Inventor
Purvin Bibhas Pandit
Peng Yin
Dong Tian
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dolby Laboratories Licensing Corp
Original Assignee
Dolby Laboratories Licensing Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=39810226&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=US20180152719(A1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Priority to US15/879,280 priority Critical patent/US9986254B1/en
Application filed by Dolby Laboratories Licensing Corp filed Critical Dolby Laboratories Licensing Corp
Assigned to THOMSON LICENSING reassignment THOMSON LICENSING ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: YIN, PENG, PANDIT, PURVIN BIBHAS, TIAN, DONG
Assigned to DOLBY LABORATORIES LICENSING CORPORATION reassignment DOLBY LABORATORIES LICENSING CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: THOMSON LICENSING, THOMSON LICENSING S.A., THOMSON LICENSING SA, THOMSON LICENSING SAS, THOMSON LICENSING, S.A.S., THOMSON LICENSING, SAS
Priority to US15/935,869 priority patent/US10129557B2/en
Publication of US9986254B1 publication Critical patent/US9986254B1/en
Application granted granted Critical
Publication of US20180152719A1 publication Critical patent/US20180152719A1/en
Priority to US16/144,971 priority patent/US10298948B2/en
Priority to US16/393,371 priority patent/US10432958B2/en
Priority to US16/551,156 priority patent/US10764596B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/0048
    • H04N13/0059
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/111Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/194Transmission of image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2213/00Details of stereoscopic systems
    • H04N2213/003Aspects relating to the "2D+depth" image format

Definitions

  • the present principles relate generally to video encoding and/or decoding.
  • Video display manufacturers may use a framework of arranging or tiling different views on a single frame. The views may then be extracted from their respective locations and rendered.
  • a video picture is accessed that includes multiple pictures combined into a single picture.
  • Information is accessed indicating how the multiple pictures in the accessed video picture are combined.
  • the video picture is decoded to provide a decoded representation of the combined multiple pictures.
  • the accessed information and the decoded video picture are provided as output.
  • information is generated indicating how multiple pictures included in a video picture are combined into a single picture.
  • the video picture is encoded to provide an encoded representation of the combined multiple pictures.
  • the generated information and encoded video picture are provided as output.
  • a signal or signal structure includes information indicating how multiple pictures included in a single video picture are combined into the single video picture.
  • the signal or signal structure also includes an encoded representation of the combined multiple pictures.
  • a video picture is accessed that includes multiple pictures combined into a single picture.
  • Information is accessed that indicates how the multiple pictures in the accessed video picture are combined.
  • the video picture is decoded to provide a decoded representation of at least one of the multiple pictures.
  • the accessed information and the decoded representation are provided as output.
  • a video picture is accessed that includes multiple pictures combined into a single picture.
  • Information is accessed that indicates how the multiple pictures in the accessed video picture are combined.
  • the video picture is decoded to provide a decoded representation of the combined multiple pictures.
  • User input is received that selects at least one of the multiple pictures for display.
  • a decoded output of the at least one selected picture is provided, the decoded output being provided based on the accessed information, the decoded representation, and the user input.
  • implementations may be configured or embodied in various manners. For example, an implementation may be performed as a method, or embodied as an apparatus configured to perform a set of operations, or embodied as an apparatus storing instructions for performing a set of operations, or embodied in a signal. Other aspects and features will become apparent from the following detailed description considered in conjunction with the accompanying drawings and the claims.
  • FIG. 1 is a diagram showing an example of four views tiled on a single frame
  • FIG. 2 is a diagram showing an example of four views flipped and tiled on a single frame
  • FIG. 3 shows a block diagram for a video encoder to which the present principles may be applied, in accordance with an embodiment of the present principles
  • FIG. 4 shows a block diagram for a video decoder to which the present principles may be applied, in accordance with an embodiment of the present principles
  • FIGS. 5A and 5B are a flow diagram for a method for encoding pictures for a plurality of views using the MPEG-4 AVC Standard, in accordance with an embodiment of the present principles
  • FIGS. 6A and 6B are a flow diagram for a method for decoding pictures for a plurality of views using the MPEG-4 AVC Standard, in accordance with an embodiment of the present principles
  • FIGS. 7A and 7B are a flow diagram for a method for encoding pictures for a plurality of views and depths using the MPEG-4 AVC Standard, in accordance with an embodiment of the present principles
  • FIGS. 8A and 8B are a flow diagram for a method for decoding pictures for a plurality of views and depths using the MPEG-4 AVC Standard, in accordance with an embodiment of the present principles
  • FIG. 9 is a diagram showing an example of a depth signal, in accordance with an embodiment of the present principles.
  • FIG. 10 is a diagram showing an example of a depth signal added as a tile, in accordance with an embodiment of the present principles
  • FIG. 11 is a diagram showing an example of 5 views tiled on a single frame, in accordance with an embodiment of the present principles.
  • FIG. 12 is a block diagram for an exemplary Multi-view Video Coding (MVC) encoder to which the present principles may be applied, in accordance with an embodiment of the present principles;
  • MVC Multi-view Video Coding
  • FIG. 13 is a block diagram for an exemplary Multi-view Video Coding (MVC) decoder to which the present principles may be applied, in accordance with an embodiment of the present principles;
  • MVC Multi-view Video Coding
  • FIG. 14 is a flow diagram for a method for processing pictures for a plurality of views in preparation for encoding the pictures using the multi-view video coding (MVC) extension of the MPEG-4 AVC Standard, in accordance with an embodiment of the present principles;
  • MVC multi-view video coding
  • FIGS. 15A and 15B are a flow diagram for a method for encoding pictures for a plurality of views using the multi-view video coding (MVC) extension of the MPEG-4 AVC Standard, in accordance with an embodiment of the present principles;
  • MVC multi-view video coding
  • FIG. 16 is a flow diagram for a method for processing pictures for a plurality of views in preparation for decoding the pictures using the multi-view video coding (MVC) extension of the MPEG-4 AVC Standard, in accordance with an embodiment of the present principles;
  • MVC multi-view video coding
  • FIGS. 17A and 17B are a flow diagram for a method for decoding pictures for a plurality of views using the multi-view video coding (MVC) extension of the MPEG-4 AVC Standard, in accordance with an embodiment of the present principles;
  • MVC multi-view video coding
  • FIG. 18 is a flow diagram for a method for processing pictures for a plurality of views and depths in preparation for encoding the pictures using the multi-view video coding (MVC) extension of the MPEG-4 AVC Standard, in accordance with an embodiment of the present principles;
  • MVC multi-view video coding
  • FIGS. 19A and 19B are a flow diagram for a method for encoding pictures for a plurality of views and depths using the multi-view video coding (MVC) extension of the MPEG-4 AVC Standard, in accordance with an embodiment of the present principles;
  • MVC multi-view video coding
  • FIG. 20 is a flow diagram for a method for processing pictures for a plurality of views and depths in preparation for decoding the pictures using the multi-view video coding (MVC) extension of the MPEG-4 AVC Standard, in accordance with an embodiment of the present principles;
  • MVC multi-view video coding
  • FIGS. 21A and 21 B are a flow diagram for a method for decoding pictures for a plurality of views and depths using the multi-view video coding (MVC) extension of the MPEG-4 AVC Standard, in accordance with an embodiment of the present principles;
  • MVC multi-view video coding
  • FIG. 22 is a diagram showing tiling examples at the pixel level, in accordance with an embodiment of the present principles.
  • FIG. 23 shows a block diagram for a video processing device to which the present principles may be applied, in accordance with an embodiment of the present principles.
  • processor or “controller” should not be construed to refer exclusively to hardware capable of executing software, and may implicitly include, without limitation, digital signal processor (“DSP”) hardware, read-only memory (“ROM”) for storing software, random access memory (“RAM”), and non-volatile storage.
  • DSP digital signal processor
  • ROM read-only memory
  • RAM random access memory
  • any switches shown in the figures are conceptual only. Their function may be carried out through the operation of program logic, through dedicated logic, through the interaction of program control and dedicated logic, or even manually, the particular technique being selectable by the implementer as more specifically understood from the context.
  • any element expressed as a means for performing a specified function is intended to encompass any way of performing that function including, for example, a) a combination of circuit elements that performs that function or b) software in any form, including, therefore, firmware, microcode or the like, combined with appropriate circuitry for executing that software to perform the function.
  • the present principles as defined by such claims reside in the fact that the functionalities provided by the various recited means are combined and brought together in the manner which the claims call for. It is thus regarded that any means that can provide those functionalities are equivalent to those shown herein.
  • such phrasing is intended to encompass the selection of the first listed option (A) only, or the selection of the second listed option (B) only, or the selection of the third listed option (C) only, or the selection of the first and the second listed options (A and B) only, or the selection of the first and third listed options (A and C) only, or the selection of the second and third listed options (B and C) only, or the selection of all three options (A and B and C).
  • This may be extended, as readily apparent by one of ordinary skill in this and related arts, for as many items listed.
  • Multi-view video coding is the compression framework for the encoding of multi-view sequences.
  • a Multi-view Video Coding (MVC) sequence is a set of two or more video sequences that capture the same scene from a different view point.
  • high level syntax refers to syntax present in the bitstream that resides hierarchically above the macroblock layer.
  • high level syntax may refer to, but is not limited to, syntax at the slice header level, Supplemental Enhancement Information (SEI) level, Picture Parameter Set (PPS) level, Sequence Parameter Set (SPS) level, View Parameter Set (VPS), and Network Abstraction Layer (NAL) unit header level.
  • SEI Supplemental Enhancement Information
  • PPS Picture Parameter Set
  • SPS Sequence Parameter Set
  • VPS View Parameter Set
  • NAL Network Abstraction Layer
  • MVC multi-video coding
  • MPEG-4 Moving Picture Experts Group-4
  • AVC Advanced Video Coding
  • ITU-T International Telecommunication Union, Telecommunication Sector
  • MPEG-4 AVC Standard the reference software achieves multi-view prediction by encoding each view with a single encoder and taking into consideration the cross-view references.
  • Each view is coded as a separate bitstream by the encoder in its original resolution and later all the bitstreams are combined to form a single bitstream which is then decoded.
  • Each view produces a separate YUV decoded output.
  • FIG. 1 an example of four views tiled on a single frame is indicated generally by the reference numeral 100 . All four views are in their normal orientation.
  • FIG. 2 an example of four views flipped and tiled on a single frame is indicated generally by the reference numeral 200 .
  • the top-left view is in its normal orientation.
  • the top-right view is flipped horizontally.
  • the bottom-left view is flipped vertically.
  • the bottom-right view is flipped both horizontally and vertically.
  • each pseudo view includes N different tiled views.
  • FIG. 1 shows one pseudo-view
  • FIG. 2 shows another pseudo-view.
  • These pseudo views can then be encoded using existing video coding standards such as the ISO/IEC MPEG-2 Standard and the MPEG-4 AVC Standard.
  • Yet another approach for multi-view prediction simply involves encoding the different views independently using a new standard and, after decoding, tiling the views as required by the player.
  • the views can also be tiled in a pixel wise way.
  • pixel (x, y) may be from view 0
  • pixel (x+ 1 , y) may be from view 1
  • pixel (x, y+ 1 ) may be from view 2
  • pixel (x+ 1 , y+ 1 ) may be from view 3 .
  • bitstream has such a property.
  • high level syntax in order to facilitate the renderer or player to extract such information in order to assist in display or other post-processing. It is also possible the sub-pictures have different resolutions and some upsampling may be needed to eventually render the view. The user may want to have the method of upsample indicated in the high level syntax as well. Additionally, parameters to change the depth focus can also be transmitted.
  • SEI Supplemental Enhancement Information
  • the embodiment may lead to a simplified implementation of the multi-view coding, and may benefit the coding efficiency.
  • Certain views can be put together and form a pseudo view or super view and then the tiled super view is treated as a normal view by a common multi-view video encoder and/or decoder, for example, as per the current MPEG-4 AVC Standard based implementation of multi-view video coding.
  • a new flag is proposed in the Sequence Parameter Set (SPS) extension of multi-view video coding to signal the use of the technique of pseudo views.
  • SPS Sequence Parameter Set
  • MVC multi-video coding
  • MPEG-4 Moving Picture Experts Group-4
  • AVC Advanced Video Coding
  • ITU-T International Telecommunication Union, Telecommunication Sector
  • MPEG-4 AVC Standard the reference software achieves multi-view prediction by encoding each view with a single encoder and taking into consideration the cross-view references.
  • Each view is coded as a separate bitstream by the encoder in its original resolution and later all the bitstreams are combined to form a single bitstream which is then decoded.
  • Each view produces a separate YUV decoded output.
  • FIG. 1 an example of four views tiled on a single frame is indicated generally by the reference numeral 100 .
  • FIG. 2 an example of four views flipped and tiled on a single frame is indicated generally by the reference numeral 200 .
  • a picture from each view is arranged in a super-frame like a tile. This results in a single un-coded input sequence with a large resolution.
  • This signal can then be encoded using existing video coding standards such as the ISO/IEC MPEG-2 Standard and the MPEG-4 AVC Standard.
  • Yet another approach for multi-view prediction simply involves encoding the different views independently using a new standard and, after decoding, tiling the views as required by the player.
  • a video encoder capable of performing video encoding in accordance with the MPEG-4 AVC standard is indicated generally by the reference numeral 300 .
  • the video encoder 300 includes a frame ordering buffer 310 having an output in signal communication with a non-inverting input of a combiner 385 .
  • An output of the combiner 385 is connected in signal communication with a first input of a transformer and quantizer 325 .
  • An output of the transformer and quantizer 325 is connected in signal communication with a first input of an entropy coder 345 and a first input of an inverse transformer and inverse quantizer 350 .
  • An output of the entropy coder 345 is connected in signal communication with a first non-inverting input of a combiner 390 .
  • An output of the combiner 390 is connected in signal communication with a first input of an output buffer 335 .
  • a first output of an encoder controller 305 is connected in signal communication with a second input of the frame ordering buffer 310 , a second input of the inverse transformer and inverse quantizer 350 , an input of a picture-type decision module 315 , an input of a macroblock-type (MB-type) decision module 320 , a second input of an intra prediction module 360 , a second input of a deblocking filter 365 , a first input of a motion compensator 370 , a first input of a motion estimator 375 , and a second input of a reference picture buffer 380 .
  • MB-type macroblock-type
  • a second output of the encoder controller 305 is connected in signal communication with a first input of a Supplemental Enhancement Information (SEI) inserter 330 , a second input of the transformer and quantizer 325 , a second input of the entropy coder 345 , a second input of the output buffer 335 , and an input of the Sequence Parameter Set (SPS) and Picture Parameter Set (PPS) inserter 340 .
  • SEI Supplemental Enhancement Information
  • a first output of the picture-type decision module 315 is connected in signal communication with a third input of a frame ordering buffer 310 .
  • a second output of the picture-type decision module 315 is connected in signal communication with a second input of a macroblock-type decision module 320 .
  • An output of the Sequence Parameter Set (SPS) and Picture Parameter Set (PPS) inserter 340 is connected in signal communication with a third non-inverting input of the combiner 390 .
  • An output of the SEI Inserter 330 is connected in signal communication with a second non-inverting input of the combiner 390 .
  • An output of the inverse quantizer and inverse transformer 350 is connected in signal communication with a first non-inverting input of a combiner 319 .
  • An output of the combiner 319 is connected in signal communication with a first input of the intra prediction module 360 and a first input of the deblocking filter 365 .
  • An output of the deblocking filter 365 is connected in signal communication with a first input of a reference picture buffer 380 .
  • An output of the reference picture buffer 380 is connected in signal communication with a second input of the motion estimator 375 and with a first input of a motion compensator 370 .
  • a first output of the motion estimator 375 is connected in signal communication with a second input of the motion compensator 370 .
  • a second output of the motion estimator 375 is connected in signal communication with a third input of the entropy coder 345 .
  • An output of the motion compensator 370 is connected in signal communication with a first input of a switch 397 .
  • An output of the intra prediction module 360 is connected in signal communication with a second input of the switch 397 .
  • An output of the macroblock-type decision module 320 is connected in signal communication with a third input of the switch 397 in order to provide a control input to the switch 397 .
  • the third input of the switch 397 determines whether or not the “data” input of the switch (as compared to the control input, i.e., the third input) is to be provided by the motion compensator 370 or the intra prediction module 360 .
  • the output of the switch 397 is connected in signal communication with a second non-inverting input of the combiner 319 and with an inverting input of the combiner 385 .
  • Inputs of the frame ordering buffer 310 and the encoder controller 105 are available as input of the encoder 300 , for receiving an input picture 301 .
  • an input of the Supplemental Enhancement Information (SEI) inserter 330 is available as an input of the encoder 300 , for receiving metadata.
  • An output of the output buffer 335 is available as an output of the encoder 300 , for outputting a bitstream.
  • SEI Supplemental Enhancement Information
  • a video decoder capable of performing video decoding in accordance with the MPEG-4 AVC standard is indicated generally by the reference numeral 400 .
  • the video decoder 400 includes an input buffer 410 having an output connected in signal communication with a first input of the entropy decoder 445 .
  • a first output of the entropy decoder 445 is connected in signal communication with a first input of an inverse transformer and inverse quantizer 450 .
  • An output of the inverse transformer and inverse quantizer 450 is connected in signal communication with a second non-inverting input of a combiner 425 .
  • An output of the combiner 425 is connected in signal communication with a second input of a deblocking filter 465 and a first input of an intra prediction module 460 .
  • a second output of the deblocking filter 465 is connected in signal communication with a first input of a reference picture buffer 480 .
  • An output of the reference picture buffer 480 is connected in signal communication with a second input of a motion compensator 470 .
  • a second output of the entropy decoder 445 is connected in signal communication with a third input of the motion compensator 470 and a first input of the deblocking filter 465 .
  • a third output of the entropy decoder 445 is connected in signal communication with an input of a decoder controller 405 .
  • a first output of the decoder controller 405 is connected in signal communication with a second input of the entropy decoder 445 .
  • a second output of the decoder controller 405 is connected in signal communication with a second input of the inverse transformer and inverse quantizer 450 .
  • a third output of the decoder controller 405 is connected in signal communication with a third input of the deblocking filter 465 .
  • a fourth output of the decoder controller 405 is connected in signal communication with a second input of the intra prediction module 460 , with a first input of the motion compensator 470 , and with a second input of the reference picture buffer 480 .
  • An output of the motion compensator 470 is connected in signal communication with a first input of a switch 497 .
  • An output of the intra prediction module 460 is connected in signal communication with a second input of the switch 497 .
  • An output of the switch 497 is connected in signal communication with a first non-inverting input of the combiner 425 .
  • An input of the input buffer 410 is available as an input of the decoder 400 , for receiving an input bitstream.
  • a first output of the deblocking filter 465 is available as an output of the decoder 400 , for outputting an output picture.
  • FIG. 5 including FIGS. 5A and 5B , an exemplary method for encoding pictures for a plurality of views using the MPEG-4 AVC Standard is indicated generally by the reference numeral 500 .
  • the method 500 includes a start block 502 that passes control to a function block 504 .
  • the function block 504 arranges each view at a particular time instance as a sub-picture in tile format, and passes control to a function block 506 .
  • the function block 506 sets a syntax element num_coded_views_minus 1 , and passes control to a function block 508 .
  • the function block 508 sets syntax elements org_pic_width_in_mbs_minus 1 and org_pic_height_in_mbs_minus 1 , and passes control to a function block 510 .
  • the function block 510 sets a variable i equal to zero, and passes control to a decision block 512 .
  • the decision block 512 determines whether or not the variable i is less than the number of views. If so, then control is passed to a function block 514 . Otherwise, control is passed to a function block 524 .
  • the function block 514 sets a syntax element view_id[i], and passes control to a function block 516 .
  • the function block 516 sets a syntax element num_parts[view_id[i]], and passes control to a function block 518 .
  • the function block 518 sets a variable j equal to zero, and passes control to a decision block 520 .
  • the decision block 520 determines whether or not the current value of the variable j is less than the current value of the syntax element num_parts[view_id[i]]. If so, then control is passed to a function block 522 . Otherwise, control is passed to a function block 528 .
  • the function block 522 sets the following syntax elements, increments the variable j, and then returns control to the decision block 520 : depth_flag[view_id[i]][j]; flip_dir[view_id[i]][j]; loc_left_offset[view_id[i]][j]; log_top_offset[view_id[i]][j]; frame_crop_left_offset[view_id[i]][j]; frame_crop_right_offset[view_id[i]][j]; frame_crop_top_offset[view_id[i]][j]; and frame_crop_bottom_offset[view_id[i]][j].
  • the function block 528 sets a syntax element unsample_view_flag[view_id[i]], and passes control to a decision block 530 .
  • the decision block 530 determines whether or not the current value of the syntax element upsample_view_flag[view_id[i]] is equal to one. If so, then control is passed to a function block 532 . Otherwise, control is passed to a decision block 534 .
  • the function block 532 sets a syntax element unsample_filter[view_id[i]], and passes control to the decision block 534 .
  • the decision block 534 determines whether or not the current value of the syntax element upsample_filter[view_id[i]] is equal to three. If so, then control is passed to a function block 536 . Otherwise, control is passed to a function block 540 .
  • the function block 536 sets the following syntax elements and passes control to a function block 538 : vert_dim[view_id[i]]; hor_dim[view_id[i]]; and quantizer[view_id[i]].
  • the function block 538 sets the filter coefficients for each YUV component, and passes control to the function block 540 .
  • the function block 540 increments the variable i, and returns control to the decision block 512 .
  • the function block 524 writes these syntax elements to at least one of the Sequence Parameter Set (SPS), Picture Parameter Set (PPS), Supplemental Enhancement Information (SEI) message, Network Abstraction Layer (NAL) unit header, and slice header, and passes control to a function block 526 .
  • SPS Sequence Parameter Set
  • PPS Picture Parameter Set
  • SEI Supplemental Enhancement Information
  • NAL Network Abstraction Layer
  • slice header a function block 526 .
  • the function block 526 encodes each picture using the MPEG-4 AVC Standard or other single view codec, and passes control to an end block 599 .
  • the method 600 includes a start block 602 that passes control to a function block 604 .
  • the function block 604 parses the following syntax elements from at least one of the Sequence Parameter Set (SPS), Picture Parameter Set (PPS), Supplemental Enhancement Information (SEI) message, Network Abstraction Layer (NAL) unit header, and slice header, and passes control to a function block 606 .
  • the function block 606 parses a syntax element num_coded_views_minus 1 , and passes control to a function block 608 .
  • the function block 608 parses syntax elements org_pic_width_in_mbs_minus 1 and org_pic_height_in_mbs_minus 1 , and passes control to a function block 610 .
  • the function block 610 sets a variable i equal to zero, and passes control to a decision block 612 .
  • the decision block 612 determines whether or not the variable i is less than the number of views. If so, then control is passed to a function block 614 . Otherwise, control is passed to a function block 624 .
  • the function block 614 parses a syntax element view_id[i], and passes control to a function block 616 .
  • the function block 616 parses a syntax element num_parts_minus 1 [view_id[i]], and passes control to a function block 618 .
  • the function block 618 sets a variable j equal to zero, and passes control to a decision block 620 .
  • the decision block 620 determines whether or not the current value of the variable j is less than the current value of the syntax element num_parts[view_id[i]]. If so, then control is passed to a function block 622 . Otherwise, control is passed to a function block 628 .
  • the function block 622 parses the following syntax elements, increments the variable j, and then returns control to the decision block 620 : depth_flag[view_id[i]][j]; flip_dir[view_id[i]][j]; loc_left_offset[view_id[i]][j]; log_top_offset[view_id[i]][j]; frame_crop_left_offset[view_id[i]][j]; frame_crop_right_offset[view_id[i]][j]; frame_crop_top_offset[view_id[i]][j]; and frame_crop_bottom_offset[view_id[i]][j].
  • the function block 628 parses a syntax element unsample_view_flag[view_id[i]], and passes control to a decision block 630 .
  • the decision block 630 determines whether or not the current value of the syntax element upsample_view_flag[view_id[i]] is equal to one. If so, then control is passed to a function block 632 . Otherwise, control is passed to a decision block 634 .
  • the function block 632 parses a syntax element unsample_filter[view_id[i]], and passes control to the decision block 634 .
  • the decision block 634 determines whether or not the current value of the syntax element upsample_filter[view_id[i]] is equal to three. If so, then control is passed to a function block 636 . Otherwise, control is passed to a function block 640 .
  • the function block 636 parses the following syntax elements and passes control to a function block 638 : vert_dim[view_id[i]]; hor_dim[view_id[i]]; and quantizer[view_id[i]].
  • the function block 638 parses the filter coefficients for each YUV component, and passes control to the function block 640 .
  • the function block 640 increments the variable i, and returns control to the decision block 612 .
  • the function block 624 decodes each picture using the MPEG-4 AVC Standard or other single view codec, and passes control to a function block 626 .
  • the function block 626 separates each view from the picture using the high level syntax, and passes control to an end block 699 .
  • FIG. 7 including FIGS. 7A and 7B , an exemplary method for encoding pictures for a plurality of views and depths using the MPEG-4 AVC Standard is indicated generally by the reference numeral 700 .
  • the method 700 includes a start block 702 that passes control to a function block 704 .
  • the function block 704 arranges each view and corresponding depth at a particular time instance as a sub-picture in tile format, and passes control to a function block 706 .
  • the function block 706 sets a syntax element num_coded_views_minus 1 , and passes control to a function block 708 .
  • the function block 708 sets syntax elements org_pic_width_in_mbs_minus 1 and org_pic_height_in_mbs_minus 1 , and passes control to a function block 710 .
  • the function block 710 sets a variable i equal to zero, and passes control to a decision block 712 .
  • the decision block 712 determines whether or not the variable i is less than the number of views. If so, then control is passed to a function block 714 . Otherwise, control is passed to a function block 724 .
  • the function block 714 sets a syntax element view_id[i], and passes control to a function block 716 .
  • the function block 716 sets a syntax element num_parts[view_id[i]], and passes control to a function block 718 .
  • the function block 718 sets a variable j equal to zero, and passes control to a decision block 720 .
  • the decision block 720 determines whether or not the current value of the variable j is less than the current value of the syntax element num_parts[view_id[i]]. If so, then control is passed to a function block 722 . Otherwise, control is passed to a function block 728 .
  • the function block 722 sets the following syntax elements, increments the variable j, and then returns control to the decision block 720 : depth_flag[view_id[i]][j]; flip_dir[view_id[i]][j]; loc_left_offset[view_id[i]][j]; log_top_offset[view_id[i]][j]; frame_crop_left_offset[view_id[i]][j]; frame_crop_right_offset[view_id[i]][j]; frame_crop_top_offset[view_id[i]][j]; and frame_crop_bottom_offset[view_id[i]][j].
  • the function block 728 sets a syntax element unsample_view_flag[view_id[i]], and passes control to a decision block 730 .
  • the decision block 730 determines whether or not the current value of the syntax element upsample_view_flag[view_id[i]] is equal to one. If so, then control is passed to a function block 732 . Otherwise, control is passed to a decision block 734 .
  • the function block 732 sets a syntax element unsample_filter[view_id[i]], and passes control to the decision block 734 .
  • the decision block 734 determines whether or not the current value of the syntax element upsample_filter[view_id[i]] is equal to three. If so, then control is passed to a function block 736 . Otherwise, control is passed to a function block 740 .
  • the function block 736 sets the following syntax elements and passes control to a function block 738 : vert_dim[view_id[i]]; hor_dim[view_id[i]]; and quantizer[view_id[i]].
  • the function block 738 sets the filter coefficients for each YUV component, and passes control to the function block 740 .
  • the function block 740 increments the variable i, and returns control to the decision block 712 .
  • the function block 724 writes these syntax elements to at least one of the Sequence Parameter Set (SPS), Picture Parameter Set (PPS), Supplemental Enhancement Information (SEI) message, Network Abstraction Layer (NAL) unit header, and slice header, and passes control to a function block 726 .
  • SPS Sequence Parameter Set
  • PPS Picture Parameter Set
  • SEI Supplemental Enhancement Information
  • NAL Network Abstraction Layer
  • slice header a function block 726 .
  • the function block 726 encodes each picture using the MPEG-4 AVC Standard or other single view codec, and passes control to an end block 799 .
  • FIG. 8 including FIGS. 8A and 8B , an exemplary method for decoding pictures for a plurality of views and depths using the MPEG-4 AVC Standard is indicated generally by the reference numeral 800 .
  • the method 800 includes a start block 802 that passes control to a function block 804 .
  • the function block 804 parses the following syntax elements from at least one of the Sequence Parameter Set (SPS), Picture Parameter Set (PPS), Supplemental Enhancement Information (SEI) message, Network Abstraction Layer (NAL) unit header, and slice header, and passes control to a function block 806 .
  • the function block 806 parses a syntax element num_coded_views_minus 1 , and passes control to a function block 808 .
  • the function block 808 parses syntax elements org_pic_width_in_mbs_minus 1 and org_pic_height_in_mbs_minus 1 , and passes control to a function block 810 .
  • the function block 810 sets a variable i equal to zero, and passes control to a decision block 812 .
  • the decision block 812 determines whether or not the variable i is less than the number of views. If so, then control is passed to a function block 814 . Otherwise, control is passed to a function block 824 .
  • the function block 814 parses a syntax element view_id[i], and passes control to a function block 816 .
  • the function block 816 parses a syntax element num_parts_minus 1 [view_id[i]], and passes control to a function block 818 .
  • the function block 818 sets a variable j equal to zero, and passes control to a decision block 820 .
  • the decision block 820 determines whether or not the current value of the variable j is less than the current value of the syntax element num_parts[view_id[i]]. If so, then control is passed to a function block 822 . Otherwise, control is passed to a function block 828 .
  • the function block 822 parses the following syntax elements, increments the variable j, and then returns control to the decision block 820 : depth_flag[view_id[i]][j]; flip_dir[view_id[i]][j]; loc_left_offset[view_id[i]][j]; log_top_offset[view_id[i]][j]; frame_crop_left_offset[view_id[i]][j]; frame_crop_right_offset[view_id[i]][j]; frame_crop_top_offset[view_id[i]][j]; and frame_crop_bottom_offset[view_id[i]][j].
  • the function block 828 parses a syntax element unsample_view_flag[view_id[i]], and passes control to a decision block 830 .
  • the decision block 830 determines whether or not the current value of the syntax element upsample_view_flag[view_id[i]] is equal to one. If so, then control is passed to a function block 832 . Otherwise, control is passed to a decision block 834 .
  • the function block 832 parses a syntax element unsample_filter[view_id[i]], and passes control to the decision block 834 .
  • the decision block 834 determines whether or not the current value of the syntax element upsample_filter[view_id[i]] is equal to three. If so, then control is passed to a function block 836 . Otherwise, control is passed to a function block 840 .
  • the function block 836 parses the following syntax elements and passes control to a function block 838 : vert_dim[view_id[i]]; hor_dim[view_id[i]]; and quantizer[view_id[i]].
  • the function block 838 parses the filter coefficients for each YUV component, and passes control to the function block 840 .
  • the function block 840 increments the variable i, and returns control to the decision block 812 .
  • the function block 824 decodes each picture using the MPEG-4 AVC Standard or other single view codec, and passes control to a function block 826 .
  • the function block 826 separates each view and corresponding depth from the picture using the high level syntax, and passes control to a function block 827 .
  • the function block 827 potentially performs view synthesis using the extracted view and depth signals, and passes control to an end block 899 .
  • FIG. 9 shows an example of a depth signal 900 , where depth is provided as a pixel value for each corresponding location of an image (not shown).
  • FIG. 10 shows an example of two depth signals included in a tile 1000 .
  • the top-right portion of tile 1000 is a depth signal having depth values corresponding to the image on the top-left of tile 1000 .
  • the bottom-right portion of tile 1000 is a depth signal having depth values corresponding to the image on the bottom-left of tile 1000 .
  • FIG. 11 an example of 5 views tiled on a single frame is indicated generally by the reference numeral 1100 .
  • the top four views are in a normal orientation.
  • the fifth view is also in a normal orientation, but is split into two portions along the bottom of tile 1100 .
  • a left-portion of the fifth view shows the “top” of the fifth view, and a right-portion of the fifth view shows the “bottom” of the fifth view.
  • an exemplary Multi-view Video Coding (MVC) encoder is indicated generally by the reference numeral 1200 .
  • the encoder 1200 includes a combiner 1205 having an output connected in signal communication with an input of a transformer 1210 .
  • An output of the transformer 1210 is connected in signal communication with an input of quantizer 1215 .
  • An output of the quantizer 1215 is connected in signal communication with an input of an entropy coder 1220 and an input of an inverse quantizer 1225 .
  • An output of the inverse quantizer 1225 is connected in signal communication with an input of an inverse transformer 1230 .
  • An output of the inverse transformer 1230 is connected in signal communication with a first non-inverting input of a combiner 1235 .
  • An output of the combiner 1235 is connected in signal communication with an input of an intra predictor 1245 and an input of a deblocking filter 1250 .
  • An output of the deblocking filter 1250 is connected in signal communication with an input of a reference picture store 1255 (for view i).
  • An output of the reference picture store 1255 is connected in signal communication with a first input of a motion compensator 1275 and a first input of a motion estimator 1280 .
  • An output of the motion estimator 1280 is connected in signal communication with a second input of the motion compensator 1275
  • An output of a reference picture store 1260 (for other views) is connected in signal communication with a first input of a disparity estimator 1270 and a first input of a disparity compensator 1265 .
  • An output of the disparity estimator 1270 is connected in signal communication with a second input of the disparity compensator 1265 .
  • An output of the entropy decoder 1220 is available as an output of the encoder 1200 .
  • a non-inverting input of the combiner 1205 is available as an input of the encoder 1200 , and is connected in signal communication with a second input of the disparity estimator 1270 , and a second input of the motion estimator 1280 .
  • An output of a switch 1285 is connected in signal communication with a second non-inverting input of the combiner 1235 and with an inverting input of the combiner 1205 .
  • the switch 1285 includes a first input connected in signal communication with an output of the motion compensator 1275 , a second input connected in signal communication with an output of the disparity compensator 1265 , and a third input connected in signal communication with an output of the intra predictor 1245 .
  • a mode decision module 1240 has an output connected to the switch 1285 for controlling which input is selected by the switch 1285 .
  • an exemplary Multi-view Video Coding (MVC) decoder is indicated generally by the reference numeral 1300 .
  • the decoder 1300 includes an entropy decoder 1305 having an output connected in signal communication with an input of an inverse quantizer 1310 .
  • An output of the inverse quantizer is connected in signal communication with an input of an inverse transformer 1315 .
  • An output of the inverse transformer 1315 is connected in signal communication with a first non-inverting input of a combiner 1320 .
  • An output of the combiner 1320 is connected in signal communication with an input of a deblocking filter 1325 and an input of an intra predictor 1330 .
  • An output of the deblocking filter 1325 is connected in signal communication with an input of a reference picture store 1340 (for view i).
  • An output of the reference picture store 1340 is connected in signal communication with a first input of a motion compensator 1335 .
  • An output of a reference picture store 1345 (for other views) is connected in signal communication with a first input of a disparity compensator 1350 .
  • An input of the entropy coder 1305 is available as an input to the decoder 1300 , for receiving a residue bitstream.
  • an input of a mode module 1360 is also available as an input to the decoder 1300 , for receiving control syntax to control which input is selected by the switch 1355 .
  • a second input of the motion compensator 1335 is available as an input of the decoder 1300 , for receiving motion vectors.
  • a second input of the disparity compensator 1350 is available as an input to the decoder 1300 , for receiving disparity vectors.
  • An output of a switch 1355 is connected in signal communication with a second non-inverting input of the combiner 1320 .
  • a first input of the switch 1355 is connected in signal communication with an output of the disparity compensator 1350 .
  • a second input of the switch 1355 is connected in signal communication with an output of the motion compensator 1335 .
  • a third input of the switch 1355 is connected in signal communication with an output of the intra predictor 1330 .
  • An output of the mode module 1360 is connected in signal communication with the switch 1355 for controlling which input is selected by the switch 1355 .
  • An output of the deblocking filter 1325 is available as an output of the decoder 1300 .
  • an exemplary method for processing pictures for a plurality of views in preparation for encoding the pictures using the multi-view video coding (MVC) extension of the MPEG-4 AVC Standard is indicated generally by the reference numeral 1400 .
  • MVC multi-view video coding
  • the method 1400 includes a start block 1405 that passes control to a function block 1410 .
  • the function block 1410 arranges every N views, among a total of M views, at a particular time instance as a super-picture in tile format, and passes control to a function block 1415 .
  • the function block 1415 sets a syntax element num_coded_views_minus 1 , and passes control to a function block 1420 .
  • the function block 1420 sets a syntax element view_id[i] for all (num_coded_views_minus 1 +1) views, and passes control to a function block 1425 .
  • the function block 1425 sets the inter-view reference dependency information for anchor pictures, and passes control to a function block 1430 .
  • the function block 1430 sets the inter-view reference dependency information for non-anchor pictures, and passes control to a function block 1435 .
  • the function block 1435 sets a syntax element psuedo_view_present_flag, and passes control to a decision block 1440 .
  • the decision block 1440 determines whether or not the current value of the syntax element psuedo_view_present_flag is equal to true. If so, then control is passed to a function block 1445 . Otherwise, control is passed to an end block 1499 .
  • the function block 1445 sets the following syntax elements, and passes control to a function block 1450 : tiling_mode; org_pic_width_in_mbs_minus 1 ; and org_pic_height_in_mbs_minus 1 .
  • the function block 1450 calls a syntax element pseudo_view_info(view_id) for each coded view, and passes control to the end block 1499 .
  • FIG. 15 including FIGS. 15A and 15B , an exemplary method for encoding pictures for a plurality of views using the multi-view video coding (MVC) extension of the MPEG-4 AVC Standard is indicated generally by the reference numeral 1500 .
  • MVC multi-view video coding
  • the method 1500 includes a start block 1502 that has an input parameter psuedo_view_idand passes control to a function block 1504 .
  • the function block 1504 sets a syntax element num_sub_views_minus 1 , and passes control to a function block 1506 .
  • the function block 1506 sets a variable i equal to zero, and passes control to a decision block 1508 .
  • the decision block 1508 determines whether or not the variable i is less than the number of sub_views. If so, then control is passed to a function block 1510 . Otherwise, control is passed to a function block 1520 .
  • the function block 1510 sets a syntax element sub__id[i], and passes control to a function block 1512 .
  • the function block 1512 sets a syntax element num_parts_minus 1 [sub__id[i]], and passes control to a function block 1514 .
  • the function block 1514 sets a variable j equal to zero, and passes control to a decision block 1516 .
  • the decision block 1516 determines whether or not the variable j is less than the syntax element num_parts_minus 1 [sub__id[i]]. If so, then control is passed to a function block 1518 . Otherwise, control is passed to a decision block 1522 .
  • the function block 1518 sets the following syntax elements, increments the variable j, and returns control to the decision block 1516 :
  • the function block 1520 encodes the current picture for the current view using multi-view video coding (MVC), and passes control to an end block 1599 .
  • MVC multi-view video coding
  • the decision block 1522 determines whether or not a syntax element tiling_mode is equal to zero. If so, then control is passed to a function block 1524 . Otherwise, control is passed to a function block 1538 .
  • the function block 1524 sets a syntax element flip_dir[sub__id[i]] and a syntax element unsample_view_flag[sub__id[i]], and passes control to a decision block 1526 .
  • the decision block 1526 determines whether or not the current value of the syntax element unsample_view_flag[sub__id[i]] is equal to one. If so, then control is passed to a function block 1528 . Otherwise, control is passed to a decision block 1530 .
  • the function block 1528 sets a syntax element unsample_filter[sub__id[i]], and passes control to the decision block 1530 .
  • the decision block 1530 determines whether or not a value of the syntax element unsample_filter[sub__id[i]] is equal to three. If so, the control is passed to a function block 1532 . Otherwise, control is passed to a function block 1536 .
  • the function block 1532 sets the following syntax elements, and passes control to a function block 1534 : vert_dim[sub__id[i]]; hor_dim[sub__id[i]]; and quantizer[sub__id[i]].
  • the function block 1534 sets the filter coefficients for each YUV component, and passes control to the function block 1536 .
  • the function block 1536 increments the variable i, and returns control to the decision block 1508 .
  • the function block 1538 sets a syntax element pixel_dist_x[sub__id[i]] and the syntax element flip_dist_y[sub__id[i]], and passes control to a function block 1540 .
  • the function block 1540 sets the variable j equal to zero, and passes control to a decision block 1542 .
  • the decision block 1542 determines whether or not the current value of the variable j is less than the current value of the syntax element num_parts[sub__id[i]]. If so, then control is passed to a function block 1544 . Otherwise, control is passed to the function block 1536 .
  • the function block 1544 sets a syntax element num_pixel_tiling_filter_coeffs_minus 1 [sub__id[i]], and passes control to a function block 1546 .
  • the function block 1546 sets the coefficients for all the pixel tiling filters, and passes control to the function block 1536 .
  • FIG. 16 an exemplary method for processing pictures for a plurality of views in preparation for decoding the pictures using the multi-view video coding (MVC) extension of the MPEG-4 AVC Standard is indicated generally by the reference numeral 1600 .
  • MVC multi-view video coding
  • the method 1600 includes a start block 1605 that passes control to a function block 1615 .
  • the function block 1615 parses a syntax element num_coded_views_minus 1 , and passes control to a function block 1620 .
  • the function block 1620 parses a syntax element view_id[i] for all (num_coded_views_minus 1 +1) views, and passes control to a function block 1625 .
  • the function block 1625 parses the inter-view reference dependency information for anchor pictures, and passes control to a function block 1630 .
  • the function block 1630 parses the inter-view reference dependency information for non-anchor pictures, and passes control to a function block 1635 .
  • the function block 1635 parses a syntax element psuedo_view_present_flag, and passes control to a decision block 1640 .
  • the decision block 1640 determines whether or not the current value of the syntax element psuedo_view_present_flag is equal to true. If so, then control is passed to a function block 1645 . Otherwise, control is passed to an end block 1699 .
  • the function block 1645 parses the following syntax elements, and passes control to a function block 1650 : tiling_mode; org_pic_width_in_mbs_minus 1 ; and org_pic_height_in_mbs_minus 1 .
  • the function block 1650 calls a syntax element pseudo_view_info(view_id) for each coded view, and passes control to the end block 1699 .
  • FIG. 17 including FIGS. 17A and 17B , an exemplary method for decoding pictures for a plurality of views using the multi-view video coding (MVC) extension of the MPEG-4 AVC Standard is indicated generally by the reference numeral 1700 .
  • MVC multi-view video coding
  • the method 1700 includes a start block 1702 that starts with input parameter psuedo_view_idand passes control to a function block 1704 .
  • the function block 1704 parses a syntax element num_sub_views_minus 1 , and passes control to a function block 1706 .
  • the function block 1706 sets a variable i equal to zero, and passes control to a decision block 1708 .
  • the decision block 1708 determines whether or not the variable i is less than the number of sub_views. If so, then control is passed to a function block 1710 . Otherwise, control is passed to a function block 1720 .
  • the function block 1710 parses a syntax element sub__id[i], and passes control to a function block 1712 .
  • the function block 1712 parses a syntax element num_parts_minus 1 [sub__id[i]], and passes control to a function block 1714 .
  • the function block 1714 sets a variable j equal to zero, and passes control to a decision block 1716 .
  • the decision block 1716 determines whether or not the variable j is less than the syntax element num_parts_minus 1 [sub__id[i]]. If so, then control is passed to a function block 1718 . Otherwise, control is passed to a decision block 1722 .
  • the function block 1718 sets the following syntax elements, increments the variable j, and returns control to the decision block 1716 :
  • the function block 1720 decodes the current picture for the current view using multi-view video coding (MVC), and passes control to a function block 1721 .
  • the function block 1721 separates each view from the picture using the high level syntax, and passes control to an end block 1799 .
  • the separation of each view from the decoded picture is done using the high level syntax indicated in the bitstream.
  • This high level syntax may indicate the exact location and possible orientation of the views (and possible corresponding depth) present in the picture.
  • the decision block 1722 determines whether or not a syntax element tiling_mode is equal to zero. If so, then control is passed to a function block 1724 . Otherwise, control is passed to a function block 1738 .
  • the function block 1724 parses a syntax element flip_dir[sub__id[i]] and a syntax element unsample_view_flag[sub__id[i]], and passes control to a decision block 1726 .
  • the decision block 1726 determines whether or not the current value of the syntax element unsample_view_flag[sub__id[i]] is equal to one. If so, then control is passed to a function block 1728 . Otherwise, control is passed to a decision block 1730 .
  • the function block 1728 parses a syntax element unsample_filter[sub__id[i]], and passes control to the decision block 1730 .
  • the decision block 1730 determines whether or not a value of the syntax element unsample_filter[sub__id[i]] is equal to three. If so, the control is passed to a function block 1732 . Otherwise, control is passed to a function block 1736 .
  • the function block 1732 parses the following syntax elements, and passes control to a function block 1734 : vert_dim[sub__id[i]]; hor_dim[sub__id[i]]; and quantizer[sub__id[i]].
  • the function block 1734 parses the filter coefficients for each YUV component, and passes control to the function block 1736 .
  • the function block 1736 increments the variable i, and returns control to the decision block 1708 .
  • the function block 1738 parses a syntax element pixel_dist_x[sub__id[i]] and the syntax element flip_dist_y[sub__id[i]], and passes control to a function block 1740 .
  • the function block 1740 sets the variable j equal to zero, and passes control to a decision block 1742 .
  • the decision block 1742 determines whether or not the current value of the variable j is less than the current value of the syntax element num_parts[sub__id[i]]. If so, then control is passed to a function block 1744 . Otherwise, control is passed to the function block 1736 .
  • the function block 1744 parses a syntax element num_pixel_tiling_filter_coeffs_minus 1 [sub__id[i]], and passes control to a function block 1746 .
  • the function block 1776 parses the coefficients for all the pixel tiling filters, and passes control to the function block 1736 .
  • FIG. 18 an exemplary method for processing pictures for a plurality of views and depths in preparation for encoding the pictures using the multi-view video coding (MVC) extension of the MPEG-4 AVC Standard is indicated generally by the reference numeral 1800 .
  • MVC multi-view video coding
  • the method 1800 includes a start block 1805 that passes control to a function block 1810 .
  • the function block 1810 arranges every N views and depth maps, among a total of M views and depth maps, at a particular time instance as a super-picture in tile format, and passes control to a function block 1815 .
  • the function block 1815 sets a syntax element num_coded_views_minus 1 , and passes control to a function block 1820 .
  • the function block 1820 sets a syntax element view_id[i] for all (num_coded_views_minus 1 +1) depths corresponding to view_id[i], and passes control to a function block 1825 .
  • the function block 1825 sets the inter-view reference dependency information for anchor depth pictures, and passes control to a function block 1830 .
  • the function block 1830 sets the inter-view reference dependency information for non-anchor depth pictures, and passes control to a function block 1835 .
  • the function block 1835 sets a syntax element psuedo_view_present_flag, and passes control to a decision block 1840 .
  • the decision block 1840 determines whether or not the current value of the syntax element psuedo_view_present_flag is equal to true. If so, then control is passed to a function block 1845 . Otherwise, control is passed to an end block 1899 .
  • the function block 1845 sets the following syntax elements, and passes control to a function block 1850 : tiling_mode; org_pic_width_in_mbs_minus 1 ; and org_pic_height_in_mbs_minus 1 .
  • the function block 1850 calls a syntax element pseudo_view_info(view_id) for each coded view, and passes control to the end block 1899 .
  • FIG. 19 including FIGS. 19A and 19B , an exemplary method for encoding pictures for a plurality of views and depths using the multi-view video coding (MVC) extension of the MPEG-4 AVC Standard is indicated generally by the reference numeral 1900 .
  • MVC multi-view video coding
  • the method 1900 includes a start block 1902 that passes control to a function block 1904 .
  • the function block 1904 sets a syntax element num_sub_views_minus 1 , and passes control to a function block 1906 .
  • the function block 1906 sets a variable i equal to zero, and passes control to a decision block 1908 .
  • the decision block 1908 determines whether or not the variable i is less than the number of sub_views. If so, then control is passed to a function block 1910 . Otherwise, control is passed to a function block 1920 .
  • the function block 1910 sets a syntax element sub__id[i], and passes control to a function block 1912 .
  • the function block 1912 sets a syntax element num_parts_minus 1 [sub__id[i]], and passes control to a function block 1914 .
  • the function block 1914 sets a variable j equal to zero, and passes control to a decision block 1916 .
  • the decision block 1916 determines whether or not the variable j is less than the syntax element num_parts_minus 1 [sub__id[i]]. If so, then control is passed to a function block 1918 . Otherwise, control is passed to a decision block 1922 .
  • the function block 1918 sets the following syntax elements, increments the variable j, and returns control to the decision block 1916 :
  • the function block 1920 encodes the current depth for the current view using multi-view video coding (MVC), and passes control to an end block 1999 .
  • the depth signal may be encoded similar to the way its corresponding video signal is encoded.
  • the depth signal for a view may be included on a tile that includes only other depth signals, or only video signals, or both depth and video signals.
  • the tile (pseudo-view) is then treated as a single view for MVC, and there are also presumably other tiles that are treated as other views for MVC.
  • the decision block 1922 determines whether or not a syntax element tiling_mode is equal to zero. If so, then control is passed to a function block 1924 . Otherwise, control is passed to a function block 1938 .
  • the function block 1924 sets a syntax element flip_dir[sub__id[i]] and a syntax element unsample_view_flag[sub__id[i]], and passes control to a decision block 1926 .
  • the decision block 1926 determines whether or not the current value of the syntax element unsample_view_flag[sub__id[i]] is equal to one. If so, then control is passed to a function block 1928 . Otherwise, control is passed to a decision block 1930 .
  • the function block 1928 sets a syntax element unsample_filter[sub__id[i]], and passes control to the decision block 1930 .
  • the decision block 1930 determines whether or not a value of the syntax element unsample_filter[sub__id[i]] is equal to three. If so, the control is passed to a function block 1932 . Otherwise, control is passed to a function block 1936 .
  • the function block 1932 sets the following syntax elements, and passes control to a function block 1934 : vert_dim[sub__id[i]]; hor_dim[sub__id[i]]; and quantizer[sub__id[i]].
  • the function block 1934 sets the filter coefficients for each YUV component, and passes control to the function block 1936 .
  • the function block 1936 increments the variable i, and returns control to the decision block 1908 .
  • the function block 1938 sets a syntax element pixel_dist_x[sub__id[i]] and the syntax element flip_dist_y[sub__id[i]], and passes control to a function block 1940 .
  • the function block 1940 sets the variable j equal to zero, and passes control to a decision block 1942 .
  • the decision block 1942 determines whether or not the current value of the variable j is less than the current value of the syntax element num_parts[sub__id[i]]. If so, then control is passed to a function block 1944 . Otherwise, control is passed to the function block 1936 .
  • the function block 1944 sets a syntax element num_pixel_tiling_filter_coeffs_minus 1 [sub__id[i]], and passes control to a function block 1946 .
  • the function block 1946 sets the coefficients for all the pixel tiling filters, and passes control to the function block 1936 .
  • FIG. 20 an exemplary method for processing pictures for a plurality of views and depths in preparation for decoding the pictures using the multi-view video coding (MVC) extension of the MPEG-4 AVC Standard is indicated generally by the reference numeral 2000 .
  • MVC multi-view video coding
  • the method 2000 includes a start block 2005 that passes control to a function block 2015 .
  • the function block 2015 parses a syntax element num_coded_views_minus 1 , and passes control to a function block 2020 .
  • the function block 2020 parses a syntax element view_id[i] for all (num_coded_views_minus 1 + 1 ) depths corresponding to view_id[i], and passes control to a function block 2025 .
  • the function block 2025 parses the inter-view reference dependency information for anchor depth pictures, and passes control to a function block 2030 .
  • the function block 2030 parses the inter-view reference dependency information for non-anchor depth pictures, and passes control to a function block 2035 .
  • the function block 2035 parses a syntax element psuedo_view_present_flag, and passes control to a decision block 2040 .
  • the decision block 2040 determines whether or not the current value of the syntax element psuedo_view_present_flag is equal to true. If so, then control is passed to a function block 2045 . Otherwise, control is passed to an end block 2099 .
  • the function block 2045 parses the following syntax elements, and passes control to a function block 2050 : tiling_mode; org_pic_width_in_mbs_minus 1 ; and org_pic_height_in_mbs_minus 1 .
  • the function block 2050 calls a syntax element pseudo_view_info(view_id) for each coded view, and passes control to the end block 2099 .
  • FIG. 21 including FIGS. 21A and 21 B, an exemplary method for decoding pictures for a plurality of views and depths using the multi-view video coding (MVC) extension of the MPEG-4 AVC Standard is indicated generally by the reference numeral 2100 .
  • MVC multi-view video coding
  • the method 2100 includes a start block 2102 that starts with input parameter pseudo view_id, and passes control to a function block 2104 .
  • the function block 2104 parses a syntax element num_sub_views_minus 1 , and passes control to a function block 2106 .
  • the function block 2106 sets a variable i equal to zero, and passes control to a decision block 2108 .
  • the decision block 2108 determines whether or not the variable i is less than the number of sub_views. If so, then control is passed to a function block 2110 . Otherwise, control is passed to a function block 2120 .
  • the function block 2110 parses a syntax element sub__id[i], and passes control to a function block 2112 .
  • the function block 2112 parses a syntax element num_parts_minus 1 [sub__id[i]], and passes control to a function block 2114 .
  • the function block 2114 sets a variable j equal to zero, and passes control to a decision block 2116 .
  • the decision block 2116 determines whether or not the variable j is less than the syntax element num_parts_minus 1 [sub__id[i]]. If so, then control is passed to a function block 2118 . Otherwise, control is passed to a decision block 2122 .
  • the function block 2118 sets the following syntax elements, increments the variable j, and returns control to the decision block 2116 :
  • the function block 2120 decodes the current picture using multi-view video coding (MVC), and passes control to a function block 2121 .
  • the function block 2121 separates each view from the picture using the high level syntax, and passes control to an end block 2199 .
  • the separation of each view using high level syntax is as previously described.
  • the decision block 2122 determines whether or not a syntax element tiling_mode is equal to zero. If so, then control is passed to a function block 2124 . Otherwise, control is passed to a function block 2138 .
  • the function block 2124 parses a syntax element flip_dir[sub__id[i]] and a syntax element unsample_view_flag[sub__id[i]], and passes control to a decision block 2126 .
  • the decision block 2126 determines whether or not the current value of the syntax element unsample_view_flag[sub__id[i]] is equal to one. If so, then control is passed to a function block 2128 . Otherwise, control is passed to a decision block 2130 .
  • the function block 2128 parses a syntax element unsample_filter[sub__id[i]], and passes control to the decision block 2130 .
  • the decision block 2130 determines whether or not a value of the syntax element unsample_filter[sub__id[i]] is equal to three. If so, the control is passed to a function block 2132 . Otherwise, control is passed to a function block 2136 .
  • the function block 2132 parses the following syntax elements, and passes control to a function block 2134 : vert_dim[sub__id[i]]; hor_dim[sub__id[i]]; and quantizer[sub__id[i]].
  • the function block 2134 parses the filter coefficients for each YUV component, and passes control to the function block 2136 .
  • the function block 2136 increments the variable i, and returns control to the decision block 2108 .
  • the function block 2138 parses a syntax element pixel_dist_x[sub__id[i]] and the syntax element flip_dist_y[sub__id[i]], and passes control to a function block 2140 .
  • the function block 2140 sets the variable j equal to zero, and passes control to a decision block 2142 .
  • the decision block 2142 determines whether or not the current value of the variable j is less than the current value of the syntax element num_parts[sub__id[i]]. If so, then control is passed to a function block 2144 . Otherwise, control is passed to the function block 2136 .
  • the function block 2144 parses a syntax element num_pixel_tiling_filter_coeffs_minus 1 [sub__id[i]], and passes control to a function block 2146 .
  • the function block 2146 parses the coefficients for all the pixel tiling filters, and passes control to the function block 2136 .
  • FIG. 22 tiling examples at the pixel level are indicated generally by the reference numeral 2200 .
  • FIG. 22 is described further below.
  • a application of multi-view video coding is free view point TV (or FTV). This application requires that the user can freely move between two or more views. In order to accomplish this, the “virtual” views in between two views need to be interpolated or synthesized. There are several methods to perform view interpolation. One of the methods uses depth for view interpolation/synthesis.
  • Each view can have an associated depth signal.
  • the depth can be considered to be another form of video signal.
  • FIG. 9 shows an example of a depth signal 900 .
  • the depth signal is transmitted along with the video signal.
  • the depth signal can also be added as one of the tiles.
  • FIG. 10 shows an example of depth signals added as tiles. The depth signals/tiles are shown on the right side of FIG. 10 .
  • the high level syntax should indicate which tile is the depth signal so that the renderer can use the depth signal appropriately.
  • the proposed high level syntax may be present in, for example, the Sequence Parameter Set (SPS), the Picture Parameter Set (PPS), a slice header, and/or a Supplemental Enhancement Information (SEI) message.
  • SPS Sequence Parameter Set
  • PPS Picture Parameter Set
  • SEI Supplemental Enhancement Information
  • TABLE 1 An embodiment of the proposed method is shown in TABLE 1 where the syntax is present in a Supplemental Enhancement Information (SEI) message.
  • the proposed high level syntax may be present in the SPS, the PPS, slice header, an SEI message, or a specified profile.
  • An embodiment of the proposed method is shown in TABLE 1.
  • TABLE 1 shows syntax elements present in the Sequence Parameter Set (SPS) structure, including syntax elements proposed in accordance with an embodiment of the present principles.
  • SPS Sequence Parameter Set
  • TABLE 2 shows syntax elements for the pseudo_view_info syntax element of TABLE 1, in accordance with an embodiment of the present principles.
  • psuedo_view_present_flag true indicates that some view is a super view of multiple sub-views.
  • tiling_mode 0 indicates that the sub-views are tiled at the picture level.
  • a value of 1 indicates that the tiling is done at the pixel level.
  • the new SEI message could use a value for the SEI payload type that has not been used in the MPEG-4 AVC Standard or an extension of the MPEG-4 AVC Standard.
  • the new SEI message includes several syntax elements with the following semantics.
  • num_coded_views_minusl plus 1 indicates the number of coded views supported by the bitstream.
  • the value of num_coded_views_minusl is in the scope of 0 to 1023, inclusive.
  • org_pic_width_in_mbs_minusl plus 1 specifies the width of a picture in each view in units of macroblocks.
  • variable for the picture width in units of macroblocks is derived as follows:
  • PicWidthlnMbs org_pic_width_in_mbs_minusl+1
  • variable for picture width for the luma component is derived as follows:
  • PicWidthlnSamplesL PicWidthlnMbs * 16
  • variable for picture width for the chroma components is derived as follows:
  • PicWidthlnSamplesC PicWidthlnMbs * MbWidthC
  • org_pic_height_in_mbs_minus 1 plus 1 specifies the height of a picture in each view in units of macroblocks.
  • variable for the picture height in units of macroblocks is derived as follows:
  • PicHeightInMbs org_pic_height_in_mbs_minus 1 + 1
  • the variable for picture height for the chroma components is derived as follows:
  • PicHeightInSamplesC PicHeightInMbs * MbHeightC num_sub_views_minus 1 plus 1 indicates the number of coded sub-views included in the current view.
  • the value of num_coded_views_minus 1 is in the scope of 0 to 1023 , inclusive.
  • sub__id[i] specifies the sub_id of the sub-view with decoding order indicated by i.
  • num_parts[sub__id[i]] specifies the number of parts that the picture of sub__id[i] is split up into.
  • loc_left_offset[sub__id[i]][j] and log_top_offset[sub__id[i]][j] specify the locations in left and top pixels offsets, respectively, where the current part j is located in the final reconstructed picture of the view with sub_id equal to sub__id[i].
  • view_id[i] specifies the view_id of the view with coding order indicate by i.
  • frame_crop_left_offset[view_id[i]][j] , frame_crop_right_offset[view_id[i]][j], frame_crop_top_offset[view_id[i]][j], and frame_crop_bottom_offset[view_id[i]][j] specify the samples of the pictures in the coded video sequence that are part of num_part j and view_id i, in terms of a rectangular region specified in frame coordinates for output.
  • CropUnitX and CropUnitY are derived as follows:
  • CropUnitY 2 frame mbs only flag
  • CropUnitX SubWidthC
  • the frame cropping rectangle includes luma samples with horizontal frame coordinates from the following:
  • frame_crop_left_offset shall be in the range of 0 to (PicWidthlnSamplesL/CropUnitX) ⁇ (frame_crop_right_offset+1), inclusive; and the value of frame_crop_top_offset shall be in the range of 0 to (16 * FrameHeightInMbs/CropUnitY) (frame_crop_bottom_offset+1), inclusive.
  • the corresponding specified samples of the two chroma arrays are the samples having frame coordinates (x/SubWidthC, y/SubHeightC), where (x, y) are the frame coordinates of the specified luma samples.
  • the specified samples of the decoded field are the samples that fall within the rectangle specified in frame coordinates.
  • num_parts[view_id[i]] specifies the number of parts that the picture of view_id[i] is split up into.
  • depth_flag[view_id[i]] specifies whether or not the current part is a depth signal. If depth_flag is equal to 0, then the current part is not a depth signal. If depth_flag is equal to 1, then the current part is a depth signal associated with the view_identified by view_id[i].
  • flip_dir[sub__id[i]][j] specifies the flipping direction for the current part.
  • flip_dir 0 indicates no flipping
  • flip_dir equal to 1 indicates flipping in a horizontal direction
  • flip_dir equal to 2 indicates flipping in a vertical direction
  • flip_dir equal to 3 indicates flipping in horizontal and vertical directions.
  • flip_dir[view_id[i]][j] specifies the flipping direction for the current part.
  • flip_dir 0 indicates no flipping
  • flip_dir 1 indicates flipping in a horizontal direction
  • flip_dir 2 indicates flipping in vertical direction
  • flip_dir 3 indicates flipping in horizontal and vertical directions.
  • loc_left_offset[view_id[i]][j] log_top_offset[view_id[i]][j] specifies the location in pixels offsets, where the current part j is located in the final reconstructed picture of the view with view_id equals to view_id[i]
  • upsample_view_flag[view_id[i]] indicates whether the picture belonging to the view specified by view_id[i] needs to be upsampled.
  • upsample_view_flag[view_id[i]] 0 specifies that the picture with view_id equal to view_id[i] will not be upsampled.
  • upsample_view_flag[view_id[i]] equal to 1 specifies that the picture with view_id equal to view_id[i] will be upsampled.
  • upsample_filter[view_id[i]] indicates the type of filter that is to be used for upsampling.
  • upsample_filter[view_id[i]] equals to 0 indicates that the 6-tap AVC filter should be used
  • upsample_filter[view_id[i]] equals to 1 indicates that the 4-tap SVC filter should be used
  • upsample_filter[view_id[i]] 2 indicates that the bilinear filter should be used
  • upsample_filter[view_id[i]] equals to 3 indicates that custom filter coefficients are transmitted.
  • upsample fiter[view_id[i]] is not present it is set to 0.
  • vert_dim[view_id[i]] specifies the vertical dimension of the custom 2D filter.
  • hor_dim[view_id[i]] specifies the horizontal dimension of the custom 2D filter.
  • quantizer[view_id[i]] specifies the quantization factor for each filter coefficient.
  • filter_coeffs[view_id[i]] [yuv][y][x] specifies the quantized filter coefficients.
  • yuv signals the component for which the filter coefficients apply. yuv equal to 0 specifies the Y component, yuv equal to 1 specifies the U component, and yuv equal to 2 specifies the V component.
  • pixel_dist_x[sub__id[i]] and pixel dist y[sub__id[i]] respectively specify the distance in the horizontal direction and the vertical direction in the final reconstructed pseudo view between neighboring pixels in the view with sub_id equal to sub__id[i].
  • num_pixel_tiling_filter_coeffs_minus 1 [sub__id[i][j] plus one indicates the number of the filter coefficients when the tiling_mode is set equal to 1.
  • pixel tiling filter_coeffs[sub__id[i][j] signals the filter coefficients that are required to represent a filter that may be used to filter the tiled picture.
  • FIG. 22 two examples showing the composing of a pseudo view by tiling pixels from four views are respectively indicated by the reference numerals 2210 and 2220 , respectively.
  • the four views are collectively indicated by the reference numeral 2250 .
  • the syntax values for the first example in FIG. 22 are provided in TABLE 3 below.
  • the syntax values for the second example in FIG. 22 are all the same except the following two syntax elements: loc_left_offset[ 3 ][ 0 ] equal to 5 and log_top_offset[ 3 ][ 0 ] equal to 3.
  • the offset indicates that the pixels corresponding to a view should begin at a certain offset location. This is shown in FIG. 22 ( 2220 ). This may be done, for example, when two views produce images in which common objects appear shifted from one view to the other. For example, if first and second cameras (representing first and second views) take pictures of an object, the object may appear to be shifted five pixels to the right in the second view as compared to the first view. This means that pixel(i- 5 , j) in the first view corresponds to pixel(i, j) in the second view. If the pixels of the two views are simply tiled pixel-by-pixel, then there may not be much correlation between neighboring pixels in the tile, and spatial coding gains may be small.
  • spatial correlation may be increased and spatial coding gain may also be increased. This follows because, for example, the corresponding pixels for the object in the first and second views are being tiled next to each other.
  • the offset information may be obtained by external means.
  • the position information of the cameras or the global disparity vectors between the views may be used to determine such offset information.
  • some pixels in the pseudo view are not assigned pixel values from any view.
  • at least one implementation uses an interpolation procedure similar to the sub-pixel interpolation procedure in motion compensation in AVC. That is, the empty tile pixels may be interpolated from neighboring pixels. Such interpolation may result in greater spatial correlation in the tile and greater coding gain for the tile.
  • FIG. 11 an example of 5 views tiled on a single frame is indicated generally by the reference numeral 1100 .
  • the ballroom sequence is shown with 5 views tiled on a single frame.
  • the fifth view is split into two parts so that it can be arranged on a rectangular frame.
  • each view is of QVGA size so the total frame dimension is 640 ⁇ 600. Since 600 is not a multiple of 16 it should be extended to 608 .
  • the possible SEI message could be as shown in TABLE 4.
  • TABLE 5 shows the general syntax structure for transmitting multi-view information for the example shown in TABLE 4.
  • the video processing device 2300 may be, for example, a set top box or other device that receives encoded video and provides, for example, decoded video for display to a user or for storage. Thus, the device 2300 may provide its output to a television, computer monitor, or a computer or other processing device.
  • the device 2300 includes a decoder 2310 that receive a data signal 2320 .
  • the data signal 2320 may include, for example, an AVC or an MVC compatible stream.
  • the decoder 2310 decodes all or part of the received signal 2320 and provides as output a decoded video signal 2330 and tiling information 2340 .
  • the decoded video 2330 and the tiling information 2340 are provided to a selector 2350 .
  • the device 2300 also includes a user interface 2360 that receives a user input 2370 .
  • the user interface 2360 provides a picture selection signal 2380 , based on the user input 2370 , to the selector 2350 .
  • the picture selection signal 2380 and the user input 2370 indicate which of multiple pictures a user desires to have displayed.
  • the selector 2350 provides the selected picture(s) as an output 2390 .
  • the selector 2350 uses the picture selection information 2380 to select which of the pictures in the decoded video 2330 to provide as the output 2390 .
  • the selector 2350 uses the tiling information 2340 to locate the selected picture(s) in the decoded video 2330 .
  • the selector 2350 includes the user interface 2360 , and in other implementations no user interface 2360 is needed because the selector 2350 receives the user input 2370 directly without a separate interface function being performed.
  • the selector 2350 may be implemented in software or as an integrated circuit, for example.
  • the selector 2350 may also incorporate the decoder 2310 .
  • the decoders of various implementations described in this application may provide a decoded output that includes an entire tile. Additionally or alternatively, the decoders may provide a decoded output that includes only one or more selected pictures (images or depth signals, for example) from the tile.
  • high level syntax may be used to perform signaling in accordance with one or more embodiments of the present principles.
  • the high level syntax may be used, for example, but is not limited to, signaling any of the following: the number of coded views present in the larger frame; the original width and height of all the views; for each coded view, the view identifier corresponding to the view; for each coded view ,the number of parts the frame of a view is split into; for each part of the view, the flipping direction (which can be, for example, no flipping, horizontal flipping only, vertical flipping only or horizontal and vertical flipping); for each part of the view, the left position in pixels or number of macroblocks where the current part belongs in the final frame for the view; for each part of the view, the top position of the part in pixels or number of macroblocks where the current part belongs in the final frame for the view; for each part of the view, the left position, in the current large decoded/encoded frame, of the cropping window in pixels or number of macroblocks; for each
  • a decoder may receive a modulated carrier that carries an encoded bitstream, and demodulate the encoded bitstream, as well as decode the bitstream.
  • Various implementations provide tiling and appropriate signaling to allow multiple views (pictures, more generally) to be tiled into a single picture, encoded as a single picture, and sent as a single picture.
  • the signaling information may allow a post-processor to pull the views/pictures apart.
  • the multiple pictures that are tiled could be views, but at least one of the pictures could be depth information.
  • tile multiple views in the context of AVC and/or MVC also provide additional advantages.
  • AVC is ostensibly only used for a single view, so no additional view is expected.
  • such AVC-based implementations can provide multiple views in an AVC environment because the tiled views can be arranged so that, for example, a decoder knows that that the tiled pictures belong to different views (for example, top left picture in the pseudo-view is view 1 , top right picture is view 2 , etc).
  • MVC already includes multiple views, so multiple views are not expected to be included in a single pseudo-view.
  • MVC has a limit on the number of views that can be supported, and such MVC-based implementations effectively increase the number of views that can be supported by allowing (as in the AVC-based implementations) additional views to be tiled.
  • each pseudo-view may correspond to one of the supported views of MVC, and the decoder may know that each “supported view” actually includes four views in a pre-arranged tiled order.
  • the number of possible views is four times the number of “supported views”.
  • the implementations described herein may be implemented in, for example, a method or process, an apparatus, or a software program. Even if only discussed in the context of a single form of implementation (for example, discussed only as a method), the implementation of features discussed may also be implemented in other forms (for example, an apparatus or program).
  • An apparatus may be implemented in, for example, appropriate hardware, software, and firmware.
  • the methods may be implemented in, for example, an apparatus such as, for example, a processor, which refers to processing devices in general, including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. Processing devices also include communication devices, such as, for example, computers, cell phones, portable/personal digital assistants (“PDAs”), and other devices that facilitate communication of information between end-users.
  • PDAs portable/personal digital assistants
  • Implementations of the various processes and features described herein may be embodied in a variety of different equipment or applications, particularly, for example, equipment or applications associated with data encoding and decoding.
  • equipment include video coders, video decoders, video codecs, web servers, set-top boxes, laptops, personal computers, cell phones, PDAs, and other communication devices.
  • the equipment may be mobile and even installed in a mobile vehicle.
  • the methods may be implemented by instructions being performed by a processor, and such instructions may be stored on a processor-readable medium such as, for example, an integrated circuit, a software carrier or other storage device such as, for example, a hard disk, a compact diskette, a random access memory (“RAM”), or a read-only memory (“ROM”).
  • the instructions may form an application program tangibly embodied on a processor-readable medium.
  • a processor may include a processor-readable medium having, for example, instructions for carrying out a process.
  • Such application programs may be uploaded to, and executed by, a machine comprising any suitable architecture.
  • the machine is implemented on a computer platform having hardware such as one or more central processing units (“CPU”), a random access memory (“RAM”), and input/output (“I/O”) interfaces.
  • the computer platform may also include an operating system and microinstruction code.
  • the various processes and functions described herein may be either part of the microinstruction code or part of the application program, or any combination thereof, which may be executed by a CPU.
  • various other peripheral units may be connected to the computer platform such as an additional data storage unit and a printing unit.
  • implementations may also produce a signal formatted to carry information that may be, for example, stored or transmitted.
  • the information may include, for example, instructions for performing a method, or data produced by one of the described implementations.
  • a signal may be formatted, for example, as an electromagnetic wave (for example, using a radio frequency portion of spectrum) or as a baseband signal.
  • the formatting may include, for example, encoding a data stream, producing syntax, and modulating a carrier with the encoded data stream and the syntax.
  • the information that the signal carries may be, for example, analog or digital information.
  • the signal may be transmitted over a variety of different wired or wireless links, as is known.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Control Of El Displays (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

Implementations are provided that relate, for example, to view tiling in video encoding and decoding. A particular method includes accessing a video picture that includes multiple pictures combined into a single picture (826), accessing information indicating how the multiple pictures in the accessed video picture are combined (806, 808, 822), decoding the video picture to provide a decoded representation of at least one of the multiple pictures (824, 826), and providing the accessed information and the decoded video picture as output (824, 826). Some other implementations format or process the information that indicates how multiple pictures included in a single video picture are combined into the single video picture, and format or process an encoded representation of the combined multiple pictures.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • This application is a continuation of U.S. patent application Ser. No. 15/791,238, filed on Oct. 23, 2017, which is a continuation of U.S. patent application Ser. No. 15/600,338, filed on May 19, 2017, (now U.S. Pat. No. 9,838,705), which is a continuation of U.S. patent application Ser. No. 15/244,192, filed on Aug. 23, 2016, (now U.S. Pat. No. 9,706,217) , which is a continuation of U.S. patent application Ser. No. 14/946,252, filed on Nov. 19, 2015, (now U.S. Pat. No. 9,445,116), which is a continuation of U.S. patent application No. 14/817,597, filed Aug. 4, 2015, (now U.S. Pat. No. 9,232,235), which is a continuation of U.S. patent application Ser. No. 14/735,371, filed Jun. 10, 2015, (now U.S. Pat. No. 9,219,923), which is a continuation of U.S. patent application Ser. No. 14/300,597, filed Jun. 10, 2014, (now U.S. Pat. No. 9,185,384), which is a continuation of U.S. patent application Ser. No. 12/450,829, filed Oct. 13, 2009, now U.S. Pat. No. 8,780,998 issued Jul. 15, 2014, which is a 371 of International Application No. PCT/US2008/004747 filed Apr. 11, 2008, which claims benefit of Provisional patent Application No. 60/925,400 filed Apr. 20, 2007 and U.S. Provisional patent Application No. 60/923,014 filed Apr. 12, 2007, herein incorporated by reference.
  • TECHNICAL FIELD
  • The present principles relate generally to video encoding and/or decoding.
  • BACKGROUND
  • Video display manufacturers may use a framework of arranging or tiling different views on a single frame. The views may then be extracted from their respective locations and rendered.
  • SUMMARY
  • According to a general aspect, a video picture is accessed that includes multiple pictures combined into a single picture. Information is accessed indicating how the multiple pictures in the accessed video picture are combined. The video picture is decoded to provide a decoded representation of the combined multiple pictures. The accessed information and the decoded video picture are provided as output.
  • According to another general aspect, information is generated indicating how multiple pictures included in a video picture are combined into a single picture. The video picture is encoded to provide an encoded representation of the combined multiple pictures. The generated information and encoded video picture are provided as output.
  • According to another general aspect, a signal or signal structure includes information indicating how multiple pictures included in a single video picture are combined into the single video picture. The signal or signal structure also includes an encoded representation of the combined multiple pictures.
  • According to another general aspect, a video picture is accessed that includes multiple pictures combined into a single picture. Information is accessed that indicates how the multiple pictures in the accessed video picture are combined. The video picture is decoded to provide a decoded representation of at least one of the multiple pictures. The accessed information and the decoded representation are provided as output.
  • According to another general aspect, a video picture is accessed that includes multiple pictures combined into a single picture. Information is accessed that indicates how the multiple pictures in the accessed video picture are combined. The video picture is decoded to provide a decoded representation of the combined multiple pictures. User input is received that selects at least one of the multiple pictures for display. A decoded output of the at least one selected picture is provided, the decoded output being provided based on the accessed information, the decoded representation, and the user input.
  • The details of one or more implementations are set forth in the accompanying drawings and the description below. Even if described in one particular manner, it should be clear that implementations may be configured or embodied in various manners. For example, an implementation may be performed as a method, or embodied as an apparatus configured to perform a set of operations, or embodied as an apparatus storing instructions for performing a set of operations, or embodied in a signal. Other aspects and features will become apparent from the following detailed description considered in conjunction with the accompanying drawings and the claims.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a diagram showing an example of four views tiled on a single frame;
  • FIG. 2 is a diagram showing an example of four views flipped and tiled on a single frame;
  • FIG. 3 shows a block diagram for a video encoder to which the present principles may be applied, in accordance with an embodiment of the present principles;
  • FIG. 4 shows a block diagram for a video decoder to which the present principles may be applied, in accordance with an embodiment of the present principles;
  • FIGS. 5A and 5B are a flow diagram for a method for encoding pictures for a plurality of views using the MPEG-4 AVC Standard, in accordance with an embodiment of the present principles;
  • FIGS. 6A and 6B are a flow diagram for a method for decoding pictures for a plurality of views using the MPEG-4 AVC Standard, in accordance with an embodiment of the present principles;
  • FIGS. 7A and 7B are a flow diagram for a method for encoding pictures for a plurality of views and depths using the MPEG-4 AVC Standard, in accordance with an embodiment of the present principles;
  • FIGS. 8A and 8B are a flow diagram for a method for decoding pictures for a plurality of views and depths using the MPEG-4 AVC Standard, in accordance with an embodiment of the present principles;
  • FIG. 9 is a diagram showing an example of a depth signal, in accordance with an embodiment of the present principles;
  • FIG. 10 is a diagram showing an example of a depth signal added as a tile, in accordance with an embodiment of the present principles;
  • FIG. 11 is a diagram showing an example of 5 views tiled on a single frame, in accordance with an embodiment of the present principles.
  • FIG. 12 is a block diagram for an exemplary Multi-view Video Coding (MVC) encoder to which the present principles may be applied, in accordance with an embodiment of the present principles;
  • FIG. 13 is a block diagram for an exemplary Multi-view Video Coding (MVC) decoder to which the present principles may be applied, in accordance with an embodiment of the present principles;
  • FIG. 14 is a flow diagram for a method for processing pictures for a plurality of views in preparation for encoding the pictures using the multi-view video coding (MVC) extension of the MPEG-4 AVC Standard, in accordance with an embodiment of the present principles;
  • FIGS. 15A and 15B are a flow diagram for a method for encoding pictures for a plurality of views using the multi-view video coding (MVC) extension of the MPEG-4 AVC Standard, in accordance with an embodiment of the present principles;
  • FIG. 16 is a flow diagram for a method for processing pictures for a plurality of views in preparation for decoding the pictures using the multi-view video coding (MVC) extension of the MPEG-4 AVC Standard, in accordance with an embodiment of the present principles;
  • FIGS. 17A and 17B are a flow diagram for a method for decoding pictures for a plurality of views using the multi-view video coding (MVC) extension of the MPEG-4 AVC Standard, in accordance with an embodiment of the present principles;
  • FIG. 18 is a flow diagram for a method for processing pictures for a plurality of views and depths in preparation for encoding the pictures using the multi-view video coding (MVC) extension of the MPEG-4 AVC Standard, in accordance with an embodiment of the present principles;
  • FIGS. 19A and 19B are a flow diagram for a method for encoding pictures for a plurality of views and depths using the multi-view video coding (MVC) extension of the MPEG-4 AVC Standard, in accordance with an embodiment of the present principles;
  • FIG. 20 is a flow diagram for a method for processing pictures for a plurality of views and depths in preparation for decoding the pictures using the multi-view video coding (MVC) extension of the MPEG-4 AVC Standard, in accordance with an embodiment of the present principles;
  • FIGS. 21A and 21 B are a flow diagram for a method for decoding pictures for a plurality of views and depths using the multi-view video coding (MVC) extension of the MPEG-4 AVC Standard, in accordance with an embodiment of the present principles;
  • FIG. 22 is a diagram showing tiling examples at the pixel level, in accordance with an embodiment of the present principles; and
  • FIG. 23 shows a block diagram for a video processing device to which the present principles may be applied, in accordance with an embodiment of the present principles.
  • DETAILED DESCRIPTION
  • Various implementations are directed to methods and apparatus for view tiling in video encoding and decoding. It will thus be appreciated that those skilled in the art will be able to devise various arrangements that, although not explicitly described or shown herein, embody the present principles and are included within its spirit and scope.
  • All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the present principles and the concepts contributed by the inventor(s) to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions.
  • Moreover, all statements herein reciting principles, aspects, and embodiments of the present principles, as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof. Additionally, it is intended that such equivalents include both currently known equivalents as well as equivalents developed in the future, i.e., any elements developed that perform the same function, regardless of structure.
  • Thus, for example, it will be appreciated by those skilled in the art that the block diagrams presented herein represent conceptual views of illustrative circuitry embodying the present principles. Similarly, it will be appreciated that any flow charts, flow diagrams, state transition diagrams, pseudocode, and the like represent various processes which may be substantially represented in computer readable media and so executed by a computer or processor, whether or not such computer or processor is explicitly shown.
  • The functions of the various elements shown in the figures may be provided through the use of dedicated hardware as well as hardware capable of executing software in association with appropriate software. When provided by a processor, the functions may be provided by a single dedicated processor, by a single shared processor, or by a plurality of individual processors, some of which may be shared. Moreover, explicit use of the term “processor” or “controller” should not be construed to refer exclusively to hardware capable of executing software, and may implicitly include, without limitation, digital signal processor (“DSP”) hardware, read-only memory (“ROM”) for storing software, random access memory (“RAM”), and non-volatile storage.
  • Other hardware, conventional and/or custom, may also be included. Similarly, any switches shown in the figures are conceptual only. Their function may be carried out through the operation of program logic, through dedicated logic, through the interaction of program control and dedicated logic, or even manually, the particular technique being selectable by the implementer as more specifically understood from the context.
  • In the claims hereof, any element expressed as a means for performing a specified function is intended to encompass any way of performing that function including, for example, a) a combination of circuit elements that performs that function or b) software in any form, including, therefore, firmware, microcode or the like, combined with appropriate circuitry for executing that software to perform the function. The present principles as defined by such claims reside in the fact that the functionalities provided by the various recited means are combined and brought together in the manner which the claims call for. It is thus regarded that any means that can provide those functionalities are equivalent to those shown herein.
  • Reference in the specification to “one embodiment” (or “one implementation”) or “an embodiment” (or “an implementation”) of the present principles means that a particular feature, structure, characteristic, and so forth described in connection with the embodiment is included in at least one embodiment of the present principles. Thus, the appearances of the phrase “in one embodiment” or “in an embodiment” appearing in various places throughout the specification are not necessarily all referring to the same embodiment.
  • It is to be appreciated that the use of the terms “and/or” and “at least one of”, for example, in the cases of “A and/or B” and “at least one of A and B”, is intended to encompass the selection of the first listed option (A) only, or the selection of the second listed option (B) only, or the selection of both options (A and B). As a further example, in the cases of “A, B, and/or C” and “at least one of A, B, and C”, such phrasing is intended to encompass the selection of the first listed option (A) only, or the selection of the second listed option (B) only, or the selection of the third listed option (C) only, or the selection of the first and the second listed options (A and B) only, or the selection of the first and third listed options (A and C) only, or the selection of the second and third listed options (B and C) only, or the selection of all three options (A and B and C). This may be extended, as readily apparent by one of ordinary skill in this and related arts, for as many items listed.
  • Moreover, it is to be appreciated that while one or more embodiments of the present principles are described herein with respect to the MPEG-4 AVC standard, the present principles are not limited to solely this standard and, thus, may be utilized with respect to other standards, recommendations, and extensions thereof, particularly video coding standards, recommendations, and extensions thereof, including extensions of the MPEG-4 AVC standard, while maintaining the spirit of the present principles.
  • Further, it is to be appreciated that while one or more other embodiments of the present principles are described herein with respect to the multi-view video coding extension of the MPEG-4 AVC standard, the present principles are not limited to solely this extension and/or this standard and, thus, may be utilized with respect to other video coding standards, recommendations, and extensions thereof relating to multi-view video coding, while maintaining the spirit of the present principles. Multi-view video coding (MVC) is the compression framework for the encoding of multi-view sequences. A Multi-view Video Coding (MVC) sequence is a set of two or more video sequences that capture the same scene from a different view point.
  • Also, it is to be appreciated that while one or more other embodiments of the present principles are described herein that use depth information with respect to video content, the present principles are not limited to such embodiments and, thus, other embodiments may be implemented that do not use depth information, while maintaining the spirit of the present principles.
  • Additionally, as used herein, “high level syntax” refers to syntax present in the bitstream that resides hierarchically above the macroblock layer. For example, high level syntax, as used herein, may refer to, but is not limited to, syntax at the slice header level, Supplemental Enhancement Information (SEI) level, Picture Parameter Set (PPS) level, Sequence Parameter Set (SPS) level, View Parameter Set (VPS), and Network Abstraction Layer (NAL) unit header level.
  • In the current implementation of multi-video coding (MVC) based on the International Organization for Standardization/International Electrotechnical Commission (ISO/IEC) Moving Picture Experts Group-4 (MPEG-4 ) Part 10 Advanced Video Coding (AVC) standard/International Telecommunication Union, Telecommunication Sector (ITU-T) H.264 Recommendation (hereinafter the “MPEG-4 AVC Standard”), the reference software achieves multi-view prediction by encoding each view with a single encoder and taking into consideration the cross-view references. Each view is coded as a separate bitstream by the encoder in its original resolution and later all the bitstreams are combined to form a single bitstream which is then decoded. Each view produces a separate YUV decoded output.
  • Another approach for multi-view prediction involves grouping a set of views into pseudo views. In one example of this approach, we can tile the pictures from every N views out of the total M views (sampled at the same time) on a larger frame or a super frame with possible downsampling or other operations. Turning to FIG. 1, an example of four views tiled on a single frame is indicated generally by the reference numeral 100. All four views are in their normal orientation.
  • Turning to FIG. 2, an example of four views flipped and tiled on a single frame is indicated generally by the reference numeral 200. The top-left view is in its normal orientation. The top-right view is flipped horizontally. The bottom-left view is flipped vertically. The bottom-right view is flipped both horizontally and vertically. Thus, if there are four views, then a picture from each view is arranged in a super-frame like a tile. This results in a single un-coded input sequence with a large resolution.
  • Alternatively, we can downsample the image to produce a smaller resolution. Thus, we create multiple sequences which each include different views that are tiled together. Each such sequence then forms a pseudo view, where each pseudo view includes N different tiled views. FIG. 1 shows one pseudo-view, and FIG. 2 shows another pseudo-view. These pseudo views can then be encoded using existing video coding standards such as the ISO/IEC MPEG-2 Standard and the MPEG-4 AVC Standard.
  • Yet another approach for multi-view prediction simply involves encoding the different views independently using a new standard and, after decoding, tiling the views as required by the player.
  • Further, in another approach, the views can also be tiled in a pixel wise way. For example, in a super view that is composed of four views, pixel (x, y) may be from view 0, while pixel (x+1, y) may be from view 1, pixel (x, y+1) may be from view 2, and pixel (x+1, y+1) may be from view 3.
  • Many displays manufacturers use such a frame work of arranging or tiling different views on a single frame and then extracting the views from their respective locations and rendering them. In such cases, there is no standard way to determine if the bitstream has such a property. Thus, if a system uses the method of tiling pictures of different views in a large frame, then the method of extracting the different views is proprietary.
  • However, there is no standard way to determine if the bitstream has such a property. We propose high level syntax in order to facilitate the renderer or player to extract such information in order to assist in display or other post-processing. It is also possible the sub-pictures have different resolutions and some upsampling may be needed to eventually render the view. The user may want to have the method of upsample indicated in the high level syntax as well. Additionally, parameters to change the depth focus can also be transmitted.
  • In an embodiment, we propose a new Supplemental Enhancement Information (SEI) message for signaling multi-view information in a MPEG-4 AVC Standard compatible bitstream where each picture includes sub-pictures which belong to a different view. The embodiment is intended, for example, for the easy and convenient display of multi-view video streams on three-dimensional (3D) monitors which may use such a framework. The concept can be extended to other video coding standards and recommendations signaling such information using high level syntax.
  • Moreover, in an embodiment, we propose a signaling method of how to arrange views before they are sent to the multi-view video encoder and/or decoder. Advantageously, the embodiment may lead to a simplified implementation of the multi-view coding, and may benefit the coding efficiency. Certain views can be put together and form a pseudo view or super view and then the tiled super view is treated as a normal view by a common multi-view video encoder and/or decoder, for example, as per the current MPEG-4 AVC Standard based implementation of multi-view video coding. A new flag is proposed in the Sequence Parameter Set (SPS) extension of multi-view video coding to signal the use of the technique of pseudo views. The embodiment is intended for the easy and convenient display of multi-view video streams on 3D monitors which may use such a framework.
  • Encoding/Decoding Using a Single-View Video Encoding/Decoding Standard/Recommendation
  • In the current implementation of multi-video coding (MVC) based on the International Organization for Standardization/International Electrotechnical Commission (ISO/IEC) Moving Picture Experts Group-4 (MPEG-4 ) Part 10 Advanced Video Coding (AVC) standard/International Telecommunication Union, Telecommunication Sector (ITU-T) H.264 Recommendation (hereinafter the “MPEG-4 AVC Standard”), the reference software achieves multi-view prediction by encoding each view with a single encoder and taking into consideration the cross-view references. Each view is coded as a separate bitstream by the encoder in its original resolution and later all the bitstreams are combined to form a single bitstream which is then decoded. Each view produces a separate YUV decoded output.
  • Another approach for multi-view prediction involves tiling the pictures from each view (sampled at the same time) on a larger frame or a super frame with a possible downsampling operation. Turning to FIG. 1, an example of four views tiled on a single frame is indicated generally by the reference numeral 100. Turning to FIG. 2, an example of four views flipped and tiled on a single frame is indicated generally by the reference numeral 200. Thus, if there are four views, then a picture from each view is arranged in a super-frame like a tile. This results in a single un-coded input sequence with a large resolution. This signal can then be encoded using existing video coding standards such as the ISO/IEC MPEG-2 Standard and the MPEG-4 AVC Standard.
  • Yet another approach for multi-view prediction simply involves encoding the different views independently using a new standard and, after decoding, tiling the views as required by the player.
  • Many displays manufacturers use such a frame work of arranging or tiling different views on a single frame and then extracting the views from their respective locations and rendering them. In such cases, there is no standard way to determine if the bitstream has such a property. Thus, if a system uses the method of tiling pictures of different views in a large frame, then the method of extracting the different views is proprietary.
  • Turning to FIG. 3, a video encoder capable of performing video encoding in accordance with the MPEG-4 AVC standard is indicated generally by the reference numeral 300.
  • The video encoder 300 includes a frame ordering buffer 310 having an output in signal communication with a non-inverting input of a combiner 385. An output of the combiner 385 is connected in signal communication with a first input of a transformer and quantizer 325. An output of the transformer and quantizer 325 is connected in signal communication with a first input of an entropy coder 345 and a first input of an inverse transformer and inverse quantizer 350. An output of the entropy coder 345 is connected in signal communication with a first non-inverting input of a combiner 390. An output of the combiner 390 is connected in signal communication with a first input of an output buffer 335.
  • A first output of an encoder controller 305 is connected in signal communication with a second input of the frame ordering buffer 310, a second input of the inverse transformer and inverse quantizer 350, an input of a picture-type decision module 315, an input of a macroblock-type (MB-type) decision module 320, a second input of an intra prediction module 360, a second input of a deblocking filter 365, a first input of a motion compensator 370, a first input of a motion estimator 375, and a second input of a reference picture buffer 380.
  • A second output of the encoder controller 305 is connected in signal communication with a first input of a Supplemental Enhancement Information (SEI) inserter 330, a second input of the transformer and quantizer 325, a second input of the entropy coder 345, a second input of the output buffer 335, and an input of the Sequence Parameter Set (SPS) and Picture Parameter Set (PPS) inserter 340.
  • A first output of the picture-type decision module 315 is connected in signal communication with a third input of a frame ordering buffer 310. A second output of the picture-type decision module 315 is connected in signal communication with a second input of a macroblock-type decision module 320.
  • An output of the Sequence Parameter Set (SPS) and Picture Parameter Set (PPS) inserter 340 is connected in signal communication with a third non-inverting input of the combiner 390. An output of the SEI Inserter 330 is connected in signal communication with a second non-inverting input of the combiner 390.
  • An output of the inverse quantizer and inverse transformer 350 is connected in signal communication with a first non-inverting input of a combiner 319. An output of the combiner 319 is connected in signal communication with a first input of the intra prediction module 360 and a first input of the deblocking filter 365. An output of the deblocking filter 365 is connected in signal communication with a first input of a reference picture buffer 380. An output of the reference picture buffer 380 is connected in signal communication with a second input of the motion estimator 375 and with a first input of a motion compensator 370. A first output of the motion estimator 375 is connected in signal communication with a second input of the motion compensator 370. A second output of the motion estimator 375 is connected in signal communication with a third input of the entropy coder 345.
  • An output of the motion compensator 370 is connected in signal communication with a first input of a switch 397. An output of the intra prediction module 360 is connected in signal communication with a second input of the switch 397. An output of the macroblock-type decision module 320 is connected in signal communication with a third input of the switch 397 in order to provide a control input to the switch 397. The third input of the switch 397 determines whether or not the “data” input of the switch (as compared to the control input, i.e., the third input) is to be provided by the motion compensator 370 or the intra prediction module 360. The output of the switch 397 is connected in signal communication with a second non-inverting input of the combiner 319 and with an inverting input of the combiner 385.
  • Inputs of the frame ordering buffer 310 and the encoder controller 105 are available as input of the encoder 300, for receiving an input picture 301. Moreover, an input of the Supplemental Enhancement Information (SEI) inserter 330 is available as an input of the encoder 300, for receiving metadata. An output of the output buffer 335 is available as an output of the encoder 300, for outputting a bitstream.
  • Turning to FIG. 4, a video decoder capable of performing video decoding in accordance with the MPEG-4 AVC standard is indicated generally by the reference numeral 400.
  • The video decoder 400 includes an input buffer 410 having an output connected in signal communication with a first input of the entropy decoder 445. A first output of the entropy decoder 445 is connected in signal communication with a first input of an inverse transformer and inverse quantizer 450. An output of the inverse transformer and inverse quantizer 450 is connected in signal communication with a second non-inverting input of a combiner 425. An output of the combiner 425 is connected in signal communication with a second input of a deblocking filter 465 and a first input of an intra prediction module 460. A second output of the deblocking filter 465 is connected in signal communication with a first input of a reference picture buffer 480. An output of the reference picture buffer 480 is connected in signal communication with a second input of a motion compensator 470.
  • A second output of the entropy decoder 445 is connected in signal communication with a third input of the motion compensator 470 and a first input of the deblocking filter 465. A third output of the entropy decoder 445 is connected in signal communication with an input of a decoder controller 405. A first output of the decoder controller 405 is connected in signal communication with a second input of the entropy decoder 445. A second output of the decoder controller 405 is connected in signal communication with a second input of the inverse transformer and inverse quantizer 450. A third output of the decoder controller 405 is connected in signal communication with a third input of the deblocking filter 465. A fourth output of the decoder controller 405 is connected in signal communication with a second input of the intra prediction module 460, with a first input of the motion compensator 470, and with a second input of the reference picture buffer 480.
  • An output of the motion compensator 470 is connected in signal communication with a first input of a switch 497. An output of the intra prediction module 460 is connected in signal communication with a second input of the switch 497. An output of the switch 497 is connected in signal communication with a first non-inverting input of the combiner 425.
  • An input of the input buffer 410 is available as an input of the decoder 400, for receiving an input bitstream. A first output of the deblocking filter 465 is available as an output of the decoder 400, for outputting an output picture.
  • Turning to FIG. 5, including FIGS. 5A and 5B, an exemplary method for encoding pictures for a plurality of views using the MPEG-4 AVC Standard is indicated generally by the reference numeral 500.
  • The method 500 includes a start block 502 that passes control to a function block 504. The function block 504 arranges each view at a particular time instance as a sub-picture in tile format, and passes control to a function block 506. The function block 506 sets a syntax element num_coded_views_minus1, and passes control to a function block 508. The function block 508 sets syntax elements org_pic_width_in_mbs_minus1 and org_pic_height_in_mbs_minus1, and passes control to a function block 510. The function block 510 sets a variable i equal to zero, and passes control to a decision block 512. The decision block 512 determines whether or not the variable i is less than the number of views. If so, then control is passed to a function block 514. Otherwise, control is passed to a function block 524.
  • The function block 514 sets a syntax element view_id[i], and passes control to a function block 516. The function block 516 sets a syntax element num_parts[view_id[i]], and passes control to a function block 518. The function block 518 sets a variable j equal to zero, and passes control to a decision block 520. The decision block 520 determines whether or not the current value of the variable j is less than the current value of the syntax element num_parts[view_id[i]]. If so, then control is passed to a function block 522. Otherwise, control is passed to a function block 528.
  • The function block 522 sets the following syntax elements, increments the variable j, and then returns control to the decision block 520: depth_flag[view_id[i]][j]; flip_dir[view_id[i]][j]; loc_left_offset[view_id[i]][j]; log_top_offset[view_id[i]][j]; frame_crop_left_offset[view_id[i]][j]; frame_crop_right_offset[view_id[i]][j]; frame_crop_top_offset[view_id[i]][j]; and frame_crop_bottom_offset[view_id[i]][j].
  • The function block 528 sets a syntax element unsample_view_flag[view_id[i]], and passes control to a decision block 530. The decision block 530 determines whether or not the current value of the syntax element upsample_view_flag[view_id[i]] is equal to one. If so, then control is passed to a function block 532. Otherwise, control is passed to a decision block 534.
  • The function block 532 sets a syntax element unsample_filter[view_id[i]], and passes control to the decision block 534.
  • The decision block 534 determines whether or not the current value of the syntax element upsample_filter[view_id[i]] is equal to three. If so, then control is passed to a function block 536. Otherwise, control is passed to a function block 540.
  • The function block 536 sets the following syntax elements and passes control to a function block 538: vert_dim[view_id[i]]; hor_dim[view_id[i]]; and quantizer[view_id[i]].
  • The function block 538 sets the filter coefficients for each YUV component, and passes control to the function block 540.
  • The function block 540 increments the variable i, and returns control to the decision block 512.
  • The function block 524 writes these syntax elements to at least one of the Sequence Parameter Set (SPS), Picture Parameter Set (PPS), Supplemental Enhancement Information (SEI) message, Network Abstraction Layer (NAL) unit header, and slice header, and passes control to a function block 526. The function block 526 encodes each picture using the MPEG-4 AVC Standard or other single view codec, and passes control to an end block 599.
  • Turning to FIG. 6, including FIGS. 6A and 6B, an exemplary method for decoding pictures for a plurality of views using the MPEG-4 AVC Standard is indicated generally by the reference numeral 600. The method 600 includes a start block 602 that passes control to a function block 604. The function block 604 parses the following syntax elements from at least one of the Sequence Parameter Set (SPS), Picture Parameter Set (PPS), Supplemental Enhancement Information (SEI) message, Network Abstraction Layer (NAL) unit header, and slice header, and passes control to a function block 606. The function block 606 parses a syntax element num_coded_views_minus1, and passes control to a function block 608. The function block 608 parses syntax elements org_pic_width_in_mbs_minus1 and org_pic_height_in_mbs_minus1, and passes control to a function block 610. The function block 610 sets a variable i equal to zero, and passes control to a decision block 612. The decision block 612 determines whether or not the variable i is less than the number of views. If so, then control is passed to a function block 614. Otherwise, control is passed to a function block 624.
  • The function block 614 parses a syntax element view_id[i], and passes control to a function block 616. The function block 616 parses a syntax element num_parts_minus1[view_id[i]], and passes control to a function block 618. The function block 618 sets a variable j equal to zero, and passes control to a decision block 620. The decision block 620 determines whether or not the current value of the variable j is less than the current value of the syntax element num_parts[view_id[i]]. If so, then control is passed to a function block 622. Otherwise, control is passed to a function block 628.
  • The function block 622 parses the following syntax elements, increments the variable j, and then returns control to the decision block 620: depth_flag[view_id[i]][j]; flip_dir[view_id[i]][j]; loc_left_offset[view_id[i]][j]; log_top_offset[view_id[i]][j]; frame_crop_left_offset[view_id[i]][j]; frame_crop_right_offset[view_id[i]][j]; frame_crop_top_offset[view_id[i]][j]; and frame_crop_bottom_offset[view_id[i]][j].
  • The function block 628 parses a syntax element unsample_view_flag[view_id[i]], and passes control to a decision block 630. The decision block 630 determines whether or not the current value of the syntax element upsample_view_flag[view_id[i]] is equal to one. If so, then control is passed to a function block 632. Otherwise, control is passed to a decision block 634.
  • The function block 632 parses a syntax element unsample_filter[view_id[i]], and passes control to the decision block 634.
  • The decision block 634 determines whether or not the current value of the syntax element upsample_filter[view_id[i]] is equal to three. If so, then control is passed to a function block 636. Otherwise, control is passed to a function block 640.
  • The function block 636 parses the following syntax elements and passes control to a function block 638: vert_dim[view_id[i]]; hor_dim[view_id[i]]; and quantizer[view_id[i]].
  • The function block 638 parses the filter coefficients for each YUV component, and passes control to the function block 640.
  • The function block 640 increments the variable i, and returns control to the decision block 612.
  • The function block 624 decodes each picture using the MPEG-4 AVC Standard or other single view codec, and passes control to a function block 626. The function block 626 separates each view from the picture using the high level syntax, and passes control to an end block 699.
  • Turning to FIG. 7, including FIGS. 7A and 7B, an exemplary method for encoding pictures for a plurality of views and depths using the MPEG-4 AVC Standard is indicated generally by the reference numeral 700.
  • The method 700 includes a start block 702 that passes control to a function block 704. The function block 704 arranges each view and corresponding depth at a particular time instance as a sub-picture in tile format, and passes control to a function block 706. The function block 706 sets a syntax element num_coded_views_minus1, and passes control to a function block 708. The function block 708 sets syntax elements org_pic_width_in_mbs_minus1 and org_pic_height_in_mbs_minus1, and passes control to a function block 710. The function block 710 sets a variable i equal to zero, and passes control to a decision block 712. The decision block 712 determines whether or not the variable i is less than the number of views. If so, then control is passed to a function block 714. Otherwise, control is passed to a function block 724.
  • The function block 714 sets a syntax element view_id[i], and passes control to a function block 716. The function block 716 sets a syntax element num_parts[view_id[i]], and passes control to a function block 718. The function block 718 sets a variable j equal to zero, and passes control to a decision block 720. The decision block 720 determines whether or not the current value of the variable j is less than the current value of the syntax element num_parts[view_id[i]]. If so, then control is passed to a function block 722. Otherwise, control is passed to a function block 728.
  • The function block 722 sets the following syntax elements, increments the variable j, and then returns control to the decision block 720: depth_flag[view_id[i]][j]; flip_dir[view_id[i]][j]; loc_left_offset[view_id[i]][j]; log_top_offset[view_id[i]][j]; frame_crop_left_offset[view_id[i]][j]; frame_crop_right_offset[view_id[i]][j]; frame_crop_top_offset[view_id[i]][j]; and frame_crop_bottom_offset[view_id[i]][j].
  • The function block 728 sets a syntax element unsample_view_flag[view_id[i]], and passes control to a decision block 730. The decision block 730 determines whether or not the current value of the syntax element upsample_view_flag[view_id[i]] is equal to one. If so, then control is passed to a function block 732. Otherwise, control is passed to a decision block 734.
  • The function block 732 sets a syntax element unsample_filter[view_id[i]], and passes control to the decision block 734.
  • The decision block 734 determines whether or not the current value of the syntax element upsample_filter[view_id[i]] is equal to three. If so, then control is passed to a function block 736. Otherwise, control is passed to a function block 740.
  • The function block 736 sets the following syntax elements and passes control to a function block 738: vert_dim[view_id[i]]; hor_dim[view_id[i]]; and quantizer[view_id[i]].
  • The function block 738 sets the filter coefficients for each YUV component, and passes control to the function block 740.
  • The function block 740 increments the variable i, and returns control to the decision block 712.
  • The function block 724 writes these syntax elements to at least one of the Sequence Parameter Set (SPS), Picture Parameter Set (PPS), Supplemental Enhancement Information (SEI) message, Network Abstraction Layer (NAL) unit header, and slice header, and passes control to a function block 726. The function block 726 encodes each picture using the MPEG-4 AVC Standard or other single view codec, and passes control to an end block 799.
  • Turning to FIG. 8, including FIGS. 8A and 8B, an exemplary method for decoding pictures for a plurality of views and depths using the MPEG-4 AVC Standard is indicated generally by the reference numeral 800.
  • The method 800 includes a start block 802 that passes control to a function block 804. The function block 804 parses the following syntax elements from at least one of the Sequence Parameter Set (SPS), Picture Parameter Set (PPS), Supplemental Enhancement Information (SEI) message, Network Abstraction Layer (NAL) unit header, and slice header, and passes control to a function block 806. The function block 806 parses a syntax element num_coded_views_minus1, and passes control to a function block 808. The function block 808 parses syntax elements org_pic_width_in_mbs_minus1 and org_pic_height_in_mbs_minus1, and passes control to a function block 810. The function block 810 sets a variable i equal to zero, and passes control to a decision block 812. The decision block 812 determines whether or not the variable i is less than the number of views. If so, then control is passed to a function block 814. Otherwise, control is passed to a function block 824.
  • The function block 814 parses a syntax element view_id[i], and passes control to a function block 816. The function block 816 parses a syntax element num_parts_minus1[view_id[i]], and passes control to a function block 818. The function block 818 sets a variable j equal to zero, and passes control to a decision block 820. The decision block 820 determines whether or not the current value of the variable j is less than the current value of the syntax element num_parts[view_id[i]]. If so, then control is passed to a function block 822. Otherwise, control is passed to a function block 828.
  • The function block 822 parses the following syntax elements, increments the variable j, and then returns control to the decision block 820: depth_flag[view_id[i]][j]; flip_dir[view_id[i]][j]; loc_left_offset[view_id[i]][j]; log_top_offset[view_id[i]][j]; frame_crop_left_offset[view_id[i]][j]; frame_crop_right_offset[view_id[i]][j]; frame_crop_top_offset[view_id[i]][j]; and frame_crop_bottom_offset[view_id[i]][j].
  • The function block 828 parses a syntax element unsample_view_flag[view_id[i]], and passes control to a decision block 830. The decision block 830 determines whether or not the current value of the syntax element upsample_view_flag[view_id[i]] is equal to one. If so, then control is passed to a function block 832. Otherwise, control is passed to a decision block 834.
  • The function block 832 parses a syntax element unsample_filter[view_id[i]], and passes control to the decision block 834.
  • The decision block 834 determines whether or not the current value of the syntax element upsample_filter[view_id[i]] is equal to three. If so, then control is passed to a function block 836. Otherwise, control is passed to a function block 840.
  • The function block 836 parses the following syntax elements and passes control to a function block 838: vert_dim[view_id[i]]; hor_dim[view_id[i]]; and quantizer[view_id[i]].
  • The function block 838 parses the filter coefficients for each YUV component, and passes control to the function block 840.
  • The function block 840 increments the variable i, and returns control to the decision block 812.
  • The function block 824 decodes each picture using the MPEG-4 AVC Standard or other single view codec, and passes control to a function block 826. The function block 826 separates each view and corresponding depth from the picture using the high level syntax, and passes control to a function block 827. The function block 827 potentially performs view synthesis using the extracted view and depth signals, and passes control to an end block 899.
  • With respect to the depth used in FIGS. 7 and 8, FIG. 9 shows an example of a depth signal 900, where depth is provided as a pixel value for each corresponding location of an image (not shown). Further, FIG. 10 shows an example of two depth signals included in a tile 1000. The top-right portion of tile 1000 is a depth signal having depth values corresponding to the image on the top-left of tile 1000. The bottom-right portion of tile 1000 is a depth signal having depth values corresponding to the image on the bottom-left of tile 1000.
  • Turning to FIG. 11, an example of 5 views tiled on a single frame is indicated generally by the reference numeral 1100. The top four views are in a normal orientation. The fifth view is also in a normal orientation, but is split into two portions along the bottom of tile 1100. A left-portion of the fifth view shows the “top” of the fifth view, and a right-portion of the fifth view shows the “bottom” of the fifth view.
  • Encoding/Decoding Using a Multi-View Video Encoding/Decoding Standard/Recommendation
  • Turning to FIG. 12, an exemplary Multi-view Video Coding (MVC) encoder is indicated generally by the reference numeral 1200. The encoder 1200 includes a combiner 1205 having an output connected in signal communication with an input of a transformer 1210. An output of the transformer 1210 is connected in signal communication with an input of quantizer 1215. An output of the quantizer 1215 is connected in signal communication with an input of an entropy coder 1220 and an input of an inverse quantizer 1225. An output of the inverse quantizer 1225 is connected in signal communication with an input of an inverse transformer 1230. An output of the inverse transformer 1230 is connected in signal communication with a first non-inverting input of a combiner 1235. An output of the combiner 1235 is connected in signal communication with an input of an intra predictor 1245 and an input of a deblocking filter 1250. An output of the deblocking filter 1250 is connected in signal communication with an input of a reference picture store 1255 (for view i). An output of the reference picture store 1255 is connected in signal communication with a first input of a motion compensator 1275 and a first input of a motion estimator 1280. An output of the motion estimator 1280 is connected in signal communication with a second input of the motion compensator 1275
  • An output of a reference picture store 1260 (for other views) is connected in signal communication with a first input of a disparity estimator 1270 and a first input of a disparity compensator 1265. An output of the disparity estimator 1270 is connected in signal communication with a second input of the disparity compensator 1265.
  • An output of the entropy decoder 1220 is available as an output of the encoder 1200. A non-inverting input of the combiner 1205 is available as an input of the encoder 1200, and is connected in signal communication with a second input of the disparity estimator 1270, and a second input of the motion estimator 1280. An output of a switch 1285 is connected in signal communication with a second non-inverting input of the combiner 1235 and with an inverting input of the combiner 1205. The switch 1285 includes a first input connected in signal communication with an output of the motion compensator 1275, a second input connected in signal communication with an output of the disparity compensator 1265, and a third input connected in signal communication with an output of the intra predictor 1245.
  • A mode decision module 1240 has an output connected to the switch 1285 for controlling which input is selected by the switch 1285.
  • Turning to FIG. 13, an exemplary Multi-view Video Coding (MVC) decoder is indicated generally by the reference numeral 1300. The decoder 1300 includes an entropy decoder 1305 having an output connected in signal communication with an input of an inverse quantizer 1310. An output of the inverse quantizer is connected in signal communication with an input of an inverse transformer 1315. An output of the inverse transformer 1315 is connected in signal communication with a first non-inverting input of a combiner 1320. An output of the combiner 1320 is connected in signal communication with an input of a deblocking filter 1325 and an input of an intra predictor 1330. An output of the deblocking filter 1325 is connected in signal communication with an input of a reference picture store 1340 (for view i). An output of the reference picture store 1340 is connected in signal communication with a first input of a motion compensator 1335.
  • An output of a reference picture store 1345 (for other views) is connected in signal communication with a first input of a disparity compensator 1350.
  • An input of the entropy coder 1305 is available as an input to the decoder 1300, for receiving a residue bitstream. Moreover, an input of a mode module 1360 is also available as an input to the decoder 1300, for receiving control syntax to control which input is selected by the switch 1355. Further, a second input of the motion compensator 1335 is available as an input of the decoder 1300, for receiving motion vectors. Also, a second input of the disparity compensator 1350 is available as an input to the decoder 1300, for receiving disparity vectors.
  • An output of a switch 1355 is connected in signal communication with a second non-inverting input of the combiner 1320. A first input of the switch 1355 is connected in signal communication with an output of the disparity compensator 1350. A second input of the switch 1355 is connected in signal communication with an output of the motion compensator 1335. A third input of the switch 1355 is connected in signal communication with an output of the intra predictor 1330. An output of the mode module 1360 is connected in signal communication with the switch 1355 for controlling which input is selected by the switch 1355. An output of the deblocking filter 1325 is available as an output of the decoder 1300.
  • Turning to FIG. 14, an exemplary method for processing pictures for a plurality of views in preparation for encoding the pictures using the multi-view video coding (MVC) extension of the MPEG-4 AVC Standard is indicated generally by the reference numeral 1400.
  • The method 1400 includes a start block 1405 that passes control to a function block 1410. The function block 1410 arranges every N views, among a total of M views, at a particular time instance as a super-picture in tile format, and passes control to a function block 1415. The function block 1415 sets a syntax element num_coded_views_minus1, and passes control to a function block 1420. The function block 1420 sets a syntax element view_id[i] for all (num_coded_views_minus1+1) views, and passes control to a function block 1425. The function block 1425 sets the inter-view reference dependency information for anchor pictures, and passes control to a function block 1430. The function block 1430 sets the inter-view reference dependency information for non-anchor pictures, and passes control to a function block 1435. The function block 1435 sets a syntax element psuedo_view_present_flag, and passes control to a decision block 1440. The decision block 1440 determines whether or not the current value of the syntax element psuedo_view_present_flag is equal to true. If so, then control is passed to a function block 1445. Otherwise, control is passed to an end block 1499.
  • The function block 1445 sets the following syntax elements, and passes control to a function block 1450: tiling_mode; org_pic_width_in_mbs_minus1; and org_pic_height_in_mbs_minus1. The function block 1450 calls a syntax element pseudo_view_info(view_id) for each coded view, and passes control to the end block 1499.
  • Turning to FIG. 15, including FIGS. 15A and 15B, an exemplary method for encoding pictures for a plurality of views using the multi-view video coding (MVC) extension of the MPEG-4 AVC Standard is indicated generally by the reference numeral 1500.
  • The method 1500 includes a start block 1502 that has an input parameter psuedo_view_idand passes control to a function block 1504. The function block 1504 sets a syntax element num_sub_views_minus1, and passes control to a function block 1506. The function block 1506 sets a variable i equal to zero, and passes control to a decision block 1508. The decision block 1508 determines whether or not the variable i is less than the number of sub_views. If so, then control is passed to a function block 1510. Otherwise, control is passed to a function block 1520.
  • The function block 1510 sets a syntax element sub__id[i], and passes control to a function block 1512. The function block 1512 sets a syntax element num_parts_minus1[sub__id[i]], and passes control to a function block 1514. The function block 1514 sets a variable j equal to zero, and passes control to a decision block 1516. The decision block 1516 determines whether or not the variable j is less than the syntax element num_parts_minus1[sub__id[i]]. If so, then control is passed to a function block 1518. Otherwise, control is passed to a decision block 1522.
  • The function block 1518 sets the following syntax elements, increments the variable j, and returns control to the decision block 1516:
    • loc_left_offset[sub__id[i]][j]; log_top_offset[sub__id[i]][j];
    • frame_crop_left_offset[sub__id[i]][j]; frame_crop_right_offset[sub__id[i]][j];
    • frame_crop_top_offset[sub__id[i]][j]; and
    • frame_crop_bottom_offset[sub__id[i][j].
  • The function block 1520 encodes the current picture for the current view using multi-view video coding (MVC), and passes control to an end block 1599.
  • The decision block 1522 determines whether or not a syntax element tiling_mode is equal to zero. If so, then control is passed to a function block 1524. Otherwise, control is passed to a function block 1538.
  • The function block 1524 sets a syntax element flip_dir[sub__id[i]] and a syntax element unsample_view_flag[sub__id[i]], and passes control to a decision block 1526. The decision block 1526 determines whether or not the current value of the syntax element unsample_view_flag[sub__id[i]] is equal to one. If so, then control is passed to a function block 1528. Otherwise, control is passed to a decision block 1530.
  • The function block 1528 sets a syntax element unsample_filter[sub__id[i]], and passes control to the decision block 1530. The decision block 1530 determines whether or not a value of the syntax element unsample_filter[sub__id[i]] is equal to three. If so, the control is passed to a function block 1532. Otherwise, control is passed to a function block 1536.
  • The function block 1532 sets the following syntax elements, and passes control to a function block 1534: vert_dim[sub__id[i]]; hor_dim[sub__id[i]]; and quantizer[sub__id[i]]. The function block 1534 sets the filter coefficients for each YUV component, and passes control to the function block 1536.
  • The function block 1536 increments the variable i, and returns control to the decision block 1508.
  • The function block 1538 sets a syntax element pixel_dist_x[sub__id[i]] and the syntax element flip_dist_y[sub__id[i]], and passes control to a function block 1540. The function block 1540 sets the variable j equal to zero, and passes control to a decision block 1542. The decision block 1542 determines whether or not the current value of the variable j is less than the current value of the syntax element num_parts[sub__id[i]]. If so, then control is passed to a function block 1544. Otherwise, control is passed to the function block 1536.
  • The function block 1544 sets a syntax element num_pixel_tiling_filter_coeffs_minus1[sub__id[i]], and passes control to a function block 1546. The function block 1546 sets the coefficients for all the pixel tiling filters, and passes control to the function block 1536.
  • Turning to FIG. 16, an exemplary method for processing pictures for a plurality of views in preparation for decoding the pictures using the multi-view video coding (MVC) extension of the MPEG-4 AVC Standard is indicated generally by the reference numeral 1600.
  • The method 1600 includes a start block 1605 that passes control to a function block 1615. The function block 1615 parses a syntax element num_coded_views_minus1, and passes control to a function block 1620. The function block 1620 parses a syntax element view_id[i] for all (num_coded_views_minus1+1) views, and passes control to a function block 1625. The function block 1625 parses the inter-view reference dependency information for anchor pictures, and passes control to a function block 1630. The function block 1630 parses the inter-view reference dependency information for non-anchor pictures, and passes control to a function block 1635. The function block 1635 parses a syntax element psuedo_view_present_flag, and passes control to a decision block 1640. The decision block 1640 determines whether or not the current value of the syntax element psuedo_view_present_flag is equal to true. If so, then control is passed to a function block 1645. Otherwise, control is passed to an end block 1699.
  • The function block 1645 parses the following syntax elements, and passes control to a function block 1650: tiling_mode; org_pic_width_in_mbs_minus1; and org_pic_height_in_mbs_minus1. The function block 1650 calls a syntax element pseudo_view_info(view_id) for each coded view, and passes control to the end block 1699.
  • Turning to FIG. 17, including FIGS. 17A and 17B, an exemplary method for decoding pictures for a plurality of views using the multi-view video coding (MVC) extension of the MPEG-4 AVC Standard is indicated generally by the reference numeral 1700.
  • The method 1700 includes a start block 1702 that starts with input parameter psuedo_view_idand passes control to a function block 1704. The function block 1704 parses a syntax element num_sub_views_minus1, and passes control to a function block 1706. The function block 1706 sets a variable i equal to zero, and passes control to a decision block 1708. The decision block 1708 determines whether or not the variable i is less than the number of sub_views. If so, then control is passed to a function block 1710. Otherwise, control is passed to a function block 1720.
  • The function block 1710 parses a syntax element sub__id[i], and passes control to a function block 1712. The function block 1712 parses a syntax element num_parts_minus1[sub__id[i]], and passes control to a function block 1714. The function block 1714 sets a variable j equal to zero, and passes control to a decision block 1716. The decision block 1716 determines whether or not the variable j is less than the syntax element num_parts_minus1[sub__id[i]]. If so, then control is passed to a function block 1718. Otherwise, control is passed to a decision block 1722.
  • The function block 1718 sets the following syntax elements, increments the variable j, and returns control to the decision block 1716:
    • loc_left_offset[sub__id[i]][j]; log_top_offset[sub__id[i]][j];
    • frame_crop_left_offset[sub__id[i]][j]; frame_crop_right_offset[sub__id[i]][j];
    • frame_crop_top_offset[sub__id[i]][j]; and
    • frame_crop_bottom_offset[sub__id[i][j].
  • The function block 1720 decodes the current picture for the current view using multi-view video coding (MVC), and passes control to a function block 1721. The function block 1721 separates each view from the picture using the high level syntax, and passes control to an end block 1799.
  • The separation of each view from the decoded picture is done using the high level syntax indicated in the bitstream. This high level syntax may indicate the exact location and possible orientation of the views (and possible corresponding depth) present in the picture.
  • The decision block 1722 determines whether or not a syntax element tiling_mode is equal to zero. If so, then control is passed to a function block 1724. Otherwise, control is passed to a function block 1738.
  • The function block 1724 parses a syntax element flip_dir[sub__id[i]] and a syntax element unsample_view_flag[sub__id[i]], and passes control to a decision block 1726. The decision block 1726 determines whether or not the current value of the syntax element unsample_view_flag[sub__id[i]] is equal to one. If so, then control is passed to a function block 1728. Otherwise, control is passed to a decision block 1730.
  • The function block 1728 parses a syntax element unsample_filter[sub__id[i]], and passes control to the decision block 1730. The decision block 1730 determines whether or not a value of the syntax element unsample_filter[sub__id[i]] is equal to three. If so, the control is passed to a function block 1732. Otherwise, control is passed to a function block 1736.
  • The function block 1732 parses the following syntax elements, and passes control to a function block 1734: vert_dim[sub__id[i]]; hor_dim[sub__id[i]]; and quantizer[sub__id[i]]. The function block 1734 parses the filter coefficients for each YUV component, and passes control to the function block 1736.
  • The function block 1736 increments the variable i, and returns control to the decision block 1708.
  • The function block 1738 parses a syntax element pixel_dist_x[sub__id[i]] and the syntax element flip_dist_y[sub__id[i]], and passes control to a function block 1740. The function block 1740 sets the variable j equal to zero, and passes control to a decision block 1742. The decision block 1742 determines whether or not the current value of the variable j is less than the current value of the syntax element num_parts[sub__id[i]]. If so, then control is passed to a function block 1744. Otherwise, control is passed to the function block 1736.
  • The function block 1744 parses a syntax element num_pixel_tiling_filter_coeffs_minus1[sub__id[i]], and passes control to a function block 1746. The function block 1776 parses the coefficients for all the pixel tiling filters, and passes control to the function block 1736.
  • Turning to FIG. 18, an exemplary method for processing pictures for a plurality of views and depths in preparation for encoding the pictures using the multi-view video coding (MVC) extension of the MPEG-4 AVC Standard is indicated generally by the reference numeral 1800.
  • The method 1800 includes a start block 1805 that passes control to a function block 1810. The function block 1810 arranges every N views and depth maps, among a total of M views and depth maps, at a particular time instance as a super-picture in tile format, and passes control to a function block 1815. The function block 1815 sets a syntax element num_coded_views_minus1, and passes control to a function block 1820. The function block 1820 sets a syntax element view_id[i] for all (num_coded_views_minus1+1) depths corresponding to view_id[i], and passes control to a function block 1825. The function block 1825 sets the inter-view reference dependency information for anchor depth pictures, and passes control to a function block 1830. The function block 1830 sets the inter-view reference dependency information for non-anchor depth pictures, and passes control to a function block 1835. The function block 1835 sets a syntax element psuedo_view_present_flag, and passes control to a decision block 1840. The decision block 1840 determines whether or not the current value of the syntax element psuedo_view_present_flag is equal to true. If so, then control is passed to a function block 1845. Otherwise, control is passed to an end block 1899.
  • The function block 1845 sets the following syntax elements, and passes control to a function block 1850: tiling_mode; org_pic_width_in_mbs_minus1; and org_pic_height_in_mbs_minus1. The function block 1850 calls a syntax element pseudo_view_info(view_id) for each coded view, and passes control to the end block 1899.
  • Turning to FIG. 19, including FIGS. 19A and 19B, an exemplary method for encoding pictures for a plurality of views and depths using the multi-view video coding (MVC) extension of the MPEG-4 AVC Standard is indicated generally by the reference numeral 1900.
  • The method 1900 includes a start block 1902 that passes control to a function block 1904. The function block 1904 sets a syntax element num_sub_views_minus1, and passes control to a function block 1906. The function block 1906 sets a variable i equal to zero, and passes control to a decision block 1908. The decision block 1908 determines whether or not the variable i is less than the number of sub_views. If so, then control is passed to a function block 1910. Otherwise, control is passed to a function block 1920.
  • The function block 1910 sets a syntax element sub__id[i], and passes control to a function block 1912. The function block 1912 sets a syntax element num_parts_minus1[sub__id[i]], and passes control to a function block 1914. The function block 1914 sets a variable j equal to zero, and passes control to a decision block 1916. The decision block 1916 determines whether or not the variable j is less than the syntax element num_parts_minus1[sub__id[i]]. If so, then control is passed to a function block 1918. Otherwise, control is passed to a decision block 1922.
  • The function block 1918 sets the following syntax elements, increments the variable j, and returns control to the decision block 1916:
    • loc_left_offset[sub__id[i]][j]; log_top_offset[sub__id[i]][j];
    • frame_crop_left_offset[sub__id[i]][j]; frame_crop_right_offset[sub__id[i]][j];
    • frame_crop_top_offset[sub__id[i]][j]; and
    • frame_crop_bottom_offset[sub__id[i][j].
  • The function block 1920 encodes the current depth for the current view using multi-view video coding (MVC), and passes control to an end block 1999. The depth signal may be encoded similar to the way its corresponding video signal is encoded. For example, the depth signal for a view may be included on a tile that includes only other depth signals, or only video signals, or both depth and video signals. The tile (pseudo-view) is then treated as a single view for MVC, and there are also presumably other tiles that are treated as other views for MVC.
  • The decision block 1922 determines whether or not a syntax element tiling_mode is equal to zero. If so, then control is passed to a function block 1924. Otherwise, control is passed to a function block 1938.
  • The function block 1924 sets a syntax element flip_dir[sub__id[i]] and a syntax element unsample_view_flag[sub__id[i]], and passes control to a decision block 1926. The decision block 1926 determines whether or not the current value of the syntax element unsample_view_flag[sub__id[i]] is equal to one. If so, then control is passed to a function block 1928. Otherwise, control is passed to a decision block 1930.
  • The function block 1928 sets a syntax element unsample_filter[sub__id[i]], and passes control to the decision block 1930. The decision block 1930 determines whether or not a value of the syntax element unsample_filter[sub__id[i]] is equal to three. If so, the control is passed to a function block 1932. Otherwise, control is passed to a function block 1936.
  • The function block 1932 sets the following syntax elements, and passes control to a function block 1934: vert_dim[sub__id[i]]; hor_dim[sub__id[i]]; and quantizer[sub__id[i]]. The function block 1934 sets the filter coefficients for each YUV component, and passes control to the function block 1936.
  • The function block 1936 increments the variable i, and returns control to the decision block 1908.
  • The function block 1938 sets a syntax element pixel_dist_x[sub__id[i]] and the syntax element flip_dist_y[sub__id[i]], and passes control to a function block 1940. The function block 1940 sets the variable j equal to zero, and passes control to a decision block 1942. The decision block 1942 determines whether or not the current value of the variable j is less than the current value of the syntax element num_parts[sub__id[i]]. If so, then control is passed to a function block 1944. Otherwise, control is passed to the function block 1936.
  • The function block 1944 sets a syntax element num_pixel_tiling_filter_coeffs_minus1[sub__id[i]], and passes control to a function block 1946. The function block 1946 sets the coefficients for all the pixel tiling filters, and passes control to the function block 1936.
  • Turning to FIG. 20, an exemplary method for processing pictures for a plurality of views and depths in preparation for decoding the pictures using the multi-view video coding (MVC) extension of the MPEG-4 AVC Standard is indicated generally by the reference numeral 2000.
  • The method 2000 includes a start block 2005 that passes control to a function block 2015. The function block 2015 parses a syntax element num_coded_views_minus1, and passes control to a function block 2020. The function block 2020 parses a syntax element view_id[i] for all (num_coded_views_minus1+1) depths corresponding to view_id[i], and passes control to a function block 2025. The function block 2025 parses the inter-view reference dependency information for anchor depth pictures, and passes control to a function block 2030. The function block 2030 parses the inter-view reference dependency information for non-anchor depth pictures, and passes control to a function block 2035. The function block 2035 parses a syntax element psuedo_view_present_flag, and passes control to a decision block 2040. The decision block 2040 determines whether or not the current value of the syntax element psuedo_view_present_flag is equal to true. If so, then control is passed to a function block 2045. Otherwise, control is passed to an end block 2099.
  • The function block 2045 parses the following syntax elements, and passes control to a function block 2050: tiling_mode; org_pic_width_in_mbs_minus1; and org_pic_height_in_mbs_minus1. The function block 2050 calls a syntax element pseudo_view_info(view_id) for each coded view, and passes control to the end block 2099.
  • Turning to FIG. 21, including FIGS. 21A and 21 B, an exemplary method for decoding pictures for a plurality of views and depths using the multi-view video coding (MVC) extension of the MPEG-4 AVC Standard is indicated generally by the reference numeral 2100.
  • The method 2100 includes a start block 2102 that starts with input parameter pseudo view_id, and passes control to a function block 2104. The function block 2104 parses a syntax element num_sub_views_minus1, and passes control to a function block 2106. The function block 2106 sets a variable i equal to zero, and passes control to a decision block 2108. The decision block 2108 determines whether or not the variable i is less than the number of sub_views. If so, then control is passed to a function block 2110. Otherwise, control is passed to a function block 2120.
  • The function block 2110 parses a syntax element sub__id[i], and passes control to a function block 2112. The function block 2112 parses a syntax element num_parts_minus1[sub__id[i]], and passes control to a function block 2114. The function block 2114 sets a variable j equal to zero, and passes control to a decision block 2116. The decision block 2116 determines whether or not the variable j is less than the syntax element num_parts_minus1[sub__id[i]]. If so, then control is passed to a function block 2118. Otherwise, control is passed to a decision block 2122.
  • The function block 2118 sets the following syntax elements, increments the variable j, and returns control to the decision block 2116:
    • loc_left_offset[sub__id[i]][j]; log_top_offset[sub__id[i]][j];
    • frame_crop_left_offset[sub__id[i]][j]; frame_crop_right_offset[sub__id[i]][j];
    • frame_crop_top_offset[sub__id[i]][j]; and
    • frame_crop_bottom_offset[sub__id[i][j].
  • The function block 2120 decodes the current picture using multi-view video coding (MVC), and passes control to a function block 2121. The function block 2121 separates each view from the picture using the high level syntax, and passes control to an end block 2199. The separation of each view using high level syntax is as previously described.
  • The decision block 2122 determines whether or not a syntax element tiling_mode is equal to zero. If so, then control is passed to a function block 2124. Otherwise, control is passed to a function block 2138.
  • The function block 2124 parses a syntax element flip_dir[sub__id[i]] and a syntax element unsample_view_flag[sub__id[i]], and passes control to a decision block 2126. The decision block 2126 determines whether or not the current value of the syntax element unsample_view_flag[sub__id[i]] is equal to one. If so, then control is passed to a function block 2128. Otherwise, control is passed to a decision block 2130.
  • The function block 2128 parses a syntax element unsample_filter[sub__id[i]], and passes control to the decision block 2130. The decision block 2130 determines whether or not a value of the syntax element unsample_filter[sub__id[i]] is equal to three. If so, the control is passed to a function block 2132. Otherwise, control is passed to a function block 2136.
  • The function block 2132 parses the following syntax elements, and passes control to a function block 2134: vert_dim[sub__id[i]]; hor_dim[sub__id[i]]; and quantizer[sub__id[i]]. The function block 2134 parses the filter coefficients for each YUV component, and passes control to the function block 2136.
  • The function block 2136 increments the variable i, and returns control to the decision block 2108.
  • The function block 2138 parses a syntax element pixel_dist_x[sub__id[i]] and the syntax element flip_dist_y[sub__id[i]], and passes control to a function block 2140. The function block 2140 sets the variable j equal to zero, and passes control to a decision block 2142. The decision block 2142 determines whether or not the current value of the variable j is less than the current value of the syntax element num_parts[sub__id[i]]. If so, then control is passed to a function block 2144. Otherwise, control is passed to the function block 2136.
  • The function block 2144 parses a syntax element num_pixel_tiling_filter_coeffs_minus1[sub__id[i]], and passes control to a function block 2146. The function block 2146 parses the coefficients for all the pixel tiling filters, and passes control to the function block 2136.
  • Turning to FIG. 22, tiling examples at the pixel level are indicated generally by the reference numeral 2200. FIG. 22 is described further below.
  • View Tiling Using MPEG-4 AVC or MVC
  • An application of multi-view video coding is free view point TV (or FTV). This application requires that the user can freely move between two or more views. In order to accomplish this, the “virtual” views in between two views need to be interpolated or synthesized. There are several methods to perform view interpolation. One of the methods uses depth for view interpolation/synthesis.
  • Each view can have an associated depth signal. Thus, the depth can be considered to be another form of video signal. FIG. 9 shows an example of a depth signal 900. In order to enable applications such as FTV, the depth signal is transmitted along with the video signal. In the proposed framework of tiling, the depth signal can also be added as one of the tiles. FIG. 10 shows an example of depth signals added as tiles. The depth signals/tiles are shown on the right side of FIG. 10.
  • Once the depth is encoded as a tile of the whole frame, the high level syntax should indicate which tile is the depth signal so that the renderer can use the depth signal appropriately.
  • In the case when the input sequence (such as that shown in FIG. 1) is encoded using a MPEG-4 AVC Standard encoder (or an encoder corresponding to a different video coding standard and/or recommendation), the proposed high level syntax may be present in, for example, the Sequence Parameter Set (SPS), the Picture Parameter Set (PPS), a slice header, and/or a Supplemental Enhancement Information (SEI) message. An embodiment of the proposed method is shown in TABLE 1 where the syntax is present in a Supplemental Enhancement Information (SEI) message.
  • In the case when the input sequences of the pseudo views (such as that shown in FIG. 1) is encoded using the multi-view video coding (MVC) extension of the MPEG-4 AVC Standard encoder (or an encoder corresponding to multi-view video coding standard with respect to a different video coding standard and/or recommendation), the proposed high level syntax may be present in the SPS, the PPS, slice header, an SEI message, or a specified profile. An embodiment of the proposed method is shown in TABLE 1. TABLE 1 shows syntax elements present in the Sequence Parameter Set (SPS) structure, including syntax elements proposed in accordance with an embodiment of the present principles.
  • TABLE 1
    C Descriptor
    seq_parameter_set_mvc_extension( ) {
     num_views_minus_1 ue(v)
     for(i = 0; i <= num_views_minus_1; i++)
    view_id[i] ue(v)
     for(i = 0; i <= num_views_minus_1; i++) {
    num_anchor_refs_l0[i] ue(v)
    for( j = 0; j < num_anchor_refs_l0[i]; j++ )
     anchor_ref_l0[i][j] ue(v)
    num_anchor_refs_l1[i] ue(v)
    for( j = 0; j < num_anchor_refs_l1[i]; j++ )
     anchor_ref_l1[i][j] ue(v)
     }
     for(i = 0; i <= num_views_minus_1; i++) {
    num_non_anchor_refs_l0[i] ue(v)
    for( j = 0; j < num_non_anchor_refs_l0[i]; j++ )
     non_anchor_ref_l0[i][j] ue(v)
    num_non_anchor_refs_l1[i] ue(v)
    for( j = 0; j < num_non_anchor_refs_l1[i]; j++ )
     non_anchor_ref_l1[i][j] ue(v)
     }
     pseudo_view_present_flag u(1)
     if (pseudo_view_present_flag) {
    tiling_mode
    org_pic_width_in_mbs_minus1
    org_pic_height_in_mbs_minus1
    for( i = 0; i < num_views_minus_1; i++)
     pseudo_view_info(i);
     }
    }
  • TABLE 2 shows syntax elements for the pseudo_view_info syntax element of TABLE 1, in accordance with an embodiment of the present principles.
  • TABLE 2
    C Descriptor
    pseudo_view_info (pseudo_view_id) {
     num_sub_views_minus_1[pseudo_view_id] 5 ue(v)
     if (num_sub_views_minus_1 != 0) {
    for ( i = 0; i < num_sub_views_minus_1[pseudo_view_id]; i++) {
     sub_view_id[i] 5 ue(v)
     num_parts_minus1[sub_view_id[ i ]] 5 ue(v)
     for( j = 0; j <= num_parts_minus1[sub_view_id[ i ]]; j++ ) {
    loc_left_offset[sub_view_id[ i ]] [ j ] 5 ue(v)
    loc_top_offset[sub_view_id[ i ]] [ j ] 5 ue(v)
    frame_crop_left_offset[sub_view_id[ i ]] [ j ] 5 ue(v)
    frame_crop_right_offset[sub_view_id[ i ]] [ j ] 5 ue(v)
    frame_crop_top_offset[sub_view_id[ i ]] [ j ] 5 ue(v)
    frame_crop_bottom_offset[sub_view_id[ i ]] [ j ] 5 ue(v)
     }
     if (tiling_mode == 0) {
    flip_dir[sub_view_id[ i ][ j ] 5 u(2)
    upsample_view_flag[sub_view_id[ i ]] 5 u(1)
    if(upsample_view_flag[sub_view_id[ i ]])
     upsample_filter[sub_view_id[ i ]] 5 u(2)
    if(upsample_fiter[sub_view_id[i]] == 3) {
     vert_dim[sub_view_id[i]] 5 ue(v)
     hor_dim[sub_view_id[i]] 5 ue(v)
     quantizer[sub_view_id[i]] 5 ue(v)
     for (yuv= 0; yuv< 3; yuv++) {
    for (y = 0; y < vert_dim[sub_view_id[i]] − 1; y ++) {
     for (x = 0; x < hor_dim[sub_view_id[i]] − 1; x ++)
    filter_coeffs[sub_view_id[i]] [yuv][y][x] 5 se(v)
    }
     }
    }
     } // if(tiling_mode == 0)
     else if (tiling_mode == 1) {
    pixel_dist_x[sub_view_id[ i ] ]
    pixel_dist_y[sub_view_id[ i ] ]
    for( j = 0; j <= num_parts[sub_view_id[ i ]]; j++ ) {
     num_pixel_tiling_filter_coeffs_minus1[sub_view_id[ i ] ][j]
     for (coeff_idx = 0; coeff_idx <=
    num_pixel_tiling_filter_coeffs_minus1[sub_view_id[ i ] ][j]; j++)
    pixel_tiling_filter_coeffs[sub_view_id[i]][j]
    } // for ( j = 0; j <= num_parts[sub_view_id[ i ]]; j++ )
     } // else if (tiling_mode == 1)
    } // for ( i = 0; i < num_sub_views_minus_1; i++)
     } // if (num_sub_views_minus_1 != 0)
    }

    Semantics of the syntax elements presented in TABLE 1 and TABLE 2
  • psuedo_view_present_flag equal to true indicates that some view is a super view of multiple sub-views.
  • tiling_mode equal to 0 indicates that the sub-views are tiled at the picture level. A value of 1 indicates that the tiling is done at the pixel level.
  • The new SEI message could use a value for the SEI payload type that has not been used in the MPEG-4 AVC Standard or an extension of the MPEG-4 AVC Standard. The new SEI message includes several syntax elements with the following semantics.
  • num_coded_views_minusl plus 1 indicates the number of coded views supported by the bitstream. The value of num_coded_views_minusl is in the scope of 0 to 1023, inclusive.
  • org_pic_width_in_mbs_minusl plus 1 specifies the width of a picture in each view in units of macroblocks.
  • The variable for the picture width in units of macroblocks is derived as follows:
  • PicWidthlnMbs=org_pic_width_in_mbs_minusl+1
  • The variable for picture width for the luma component is derived as follows:
  • PicWidthlnSamplesL=PicWidthlnMbs * 16
  • The variable for picture width for the chroma components is derived as follows:
  • PicWidthlnSamplesC=PicWidthlnMbs * MbWidthC
  • org_pic_height_in_mbs_minus1 plus 1 specifies the height of a picture in each view in units of macroblocks.
  • The variable for the picture height in units of macroblocks is derived as follows:
  • PicHeightInMbs =org_pic_height_in_mbs_minus1+1
  • The variable for picture height for the luma component is derived as follows: PicHeightInSamplesL =PicHeightInMbs * 16 The variable for picture height for the chroma components is derived as follows:
  • PicHeightInSamplesC =PicHeightInMbs * MbHeightC num_sub_views_minus1 plus 1 indicates the number of coded sub-views included in the current view. The value of num_coded_views_minus1 is in the scope of 0 to 1023, inclusive.
  • sub__id[i] specifies the sub_id of the sub-view with decoding order indicated by i.
  • num_parts[sub__id[i]] specifies the number of parts that the picture of sub__id[i] is split up into.
  • loc_left_offset[sub__id[i]][j] and log_top_offset[sub__id[i]][j] specify the locations in left and top pixels offsets, respectively, where the current part j is located in the final reconstructed picture of the view with sub_id equal to sub__id[i].
  • view_id[i] specifies the view_id of the view with coding order indicate by i.
  • frame_crop_left_offset[view_id[i]][j] , frame_crop_right_offset[view_id[i]][j], frame_crop_top_offset[view_id[i]][j], and frame_crop_bottom_offset[view_id[i]][j] specify the samples of the pictures in the coded video sequence that are part of num_part j and view_id i, in terms of a rectangular region specified in frame coordinates for output.
  • The variables CropUnitX and CropUnitY are derived as follows:
      • If chroma_format_idc is equal to 0, CropUnitX and CropUnitY are derived as follows:
  • CropUnitX=1
  • CropUnitY=2 frame mbs only flag
      • Otherwise (chroma_format_idc is equal to 1, 2, or 3), CropUnitX and CropUnitY are derived as follows:
  • CropUnitX=SubWidthC
  • CropUnitY 32 SubHeightC * (2—frame mbs only flag)
  • The frame cropping rectangle includes luma samples with horizontal frame coordinates from the following:
  • CropUnitX * frame_crop_left_offset to PicWidthlnSamplesL (CropUnitX * frame_crop_right_offset+1) and vertical frame coordinates from CropUnitY * frame_crop_top_offset to (16 * FrameHeightInMbs)−(CropUnitY * frame_crop_bottom_offset+1), inclusive. The value of frame_crop_left_offset shall be in the range of 0 to (PicWidthlnSamplesL/CropUnitX)−(frame_crop_right_offset+1), inclusive; and the value of frame_crop_top_offset shall be in the range of 0 to (16 * FrameHeightInMbs/CropUnitY) (frame_crop_bottom_offset+1), inclusive.
  • When chroma_format_idc is not equal to 0, the corresponding specified samples of the two chroma arrays are the samples having frame coordinates (x/SubWidthC, y/SubHeightC), where (x, y) are the frame coordinates of the specified luma samples.
  • For decoded fields, the specified samples of the decoded field are the samples that fall within the rectangle specified in frame coordinates.
  • num_parts[view_id[i]] specifies the number of parts that the picture of view_id[i] is split up into.
  • depth_flag[view_id[i]] specifies whether or not the current part is a depth signal. If depth_flag is equal to 0, then the current part is not a depth signal. If depth_flag is equal to 1, then the current part is a depth signal associated with the view_identified by view_id[i].
  • flip_dir[sub__id[i]][j] specifies the flipping direction for the current part. flip_dir equal to0 indicates no flipping, flip_dir equal to 1 indicates flipping in a horizontal direction, flip_dir equal to 2 indicates flipping in a vertical direction, and flip_dir equal to 3 indicates flipping in horizontal and vertical directions.
  • flip_dir[view_id[i]][j] specifies the flipping direction for the current part. flip_dir equal to 0 indicates no flipping, flip_dir equal to 1 indicates flipping in a horizontal direction, flip_dir equal to 2 indicates flipping in vertical direction, and flip_dir equal to 3 indicates flipping in horizontal and vertical directions.
  • loc_left_offset[view_id[i]][j], log_top_offset[view_id[i]][j] specifies the location in pixels offsets, where the current part j is located in the final reconstructed picture of the view with view_id equals to view_id[i]
  • upsample_view_flag[view_id[i]] indicates whether the picture belonging to the view specified by view_id[i] needs to be upsampled. upsample_view_flag[view_id[i]] equal to 0 specifies that the picture with view_id equal to view_id[i] will not be upsampled. upsample_view_flag[view_id[i]] equal to 1 specifies that the picture with view_id equal to view_id[i] will be upsampled.
  • upsample_filter[view_id[i]] indicates the type of filter that is to be used for upsampling. upsample_filter[view_id[i]] equals to 0 indicates that the 6-tap AVC filter should be used, upsample_filter[view_id[i]] equals to 1 indicates that the 4-tap SVC filter should be used, upsample_filter[view_id[i]] 2 indicates that the bilinear filter should be used, upsample_filter[view_id[i]] equals to 3 indicates that custom filter coefficients are transmitted. When upsample fiter[view_id[i]] is not present it is set to 0. In this embodiment, we use 2D customized filter. It can be easily extended to 1D filter, and some other nonlinear filter.
  • vert_dim[view_id[i]] specifies the vertical dimension of the custom 2D filter.
  • hor_dim[view_id[i]] specifies the horizontal dimension of the custom 2D filter.
  • quantizer[view_id[i]] specifies the quantization factor for each filter coefficient.
  • filter_coeffs[view_id[i]] [yuv][y][x] specifies the quantized filter coefficients. yuv signals the component for which the filter coefficients apply. yuv equal to 0 specifies the Y component, yuv equal to 1 specifies the U component, and yuv equal to 2 specifies the V component.
  • pixel_dist_x[sub__id[i]] and pixel dist y[sub__id[i]] respectively specify the distance in the horizontal direction and the vertical direction in the final reconstructed pseudo view between neighboring pixels in the view with sub_id equal to sub__id[i].
  • num_pixel_tiling_filter_coeffs_minus1 [sub__id[i][j] plus one indicates the number of the filter coefficients when the tiling_mode is set equal to 1.
  • pixel tiling filter_coeffs[sub__id[i][j] signals the filter coefficients that are required to represent a filter that may be used to filter the tiled picture.
  • Tiling Examples at Pixel Level
  • Turning to FIG. 22, two examples showing the composing of a pseudo view by tiling pixels from four views are respectively indicated by the reference numerals 2210 and 2220, respectively. The four views are collectively indicated by the reference numeral 2250. The syntax values for the first example in FIG. 22 are provided in TABLE 3 below.
  • TABLE 3
    Value
    pseudo_view_info (pseudo_view_id) {
    num_sub_views_minus_1[pseudo_view_id] 3
    sub_view_id[0] 0
    num_parts_minus1[0] 0
    loc_left_offset[0][0] 0
    loc_top_offset[0][0] 0
    pixel_dist_x[0][0] 0
    pixel_dist_y[0][0] 0
    sub_view_id[1] 0
    num_parts_minus1[1] 0
    loc_left_offset[1][0] 1
    loc_top_offset[1][0] 0
    pixel_dist_x[1][0] 0
    pixel_dist_y[1][0] 0
    sub_view_id[2] 0
    num_parts_minus1[2] 0
    loc_left_offset[2][0] 0
    loc_top_offset[2][0] 1
    pixel_dist_x[2][0] 0
    pixel_dist_y[2][0] 0
    sub_view_id[3] 0
    num_parts_minus1[3] 0
    loc_left_offset[3][0] 1
    loc_top_offset[3][0] 1
    pixel_dist_x[3][0] 0
    pixel_dist_y[3][0] 0
  • The syntax values for the second example in FIG. 22 are all the same except the following two syntax elements: loc_left_offset[3][0] equal to 5 and log_top_offset[3][0] equal to 3.
  • The offset indicates that the pixels corresponding to a view should begin at a certain offset location. This is shown in FIG. 22 (2220). This may be done, for example, when two views produce images in which common objects appear shifted from one view to the other. For example, if first and second cameras (representing first and second views) take pictures of an object, the object may appear to be shifted five pixels to the right in the second view as compared to the first view. This means that pixel(i-5, j) in the first view corresponds to pixel(i, j) in the second view. If the pixels of the two views are simply tiled pixel-by-pixel, then there may not be much correlation between neighboring pixels in the tile, and spatial coding gains may be small. Conversely, by shifting the tiling so that pixel(i-5, j) from view one is placed next to pixel(i, j) from view two, spatial correlation may be increased and spatial coding gain may also be increased. This follows because, for example, the corresponding pixels for the object in the first and second views are being tiled next to each other.
  • Thus, the presence of loc_left_offset and loc_top_offset may benefit the coding efficiency. The offset information may be obtained by external means. For example, the position information of the cameras or the global disparity vectors between the views may be used to determine such offset information.
  • As a result of offsetting, some pixels in the pseudo view are not assigned pixel values from any view. Continuing the example above, when tiling pixel(i-5, j) from view one alongside pixel(i, j) from view two, for values of i=0 . . . 4 there is no pixel(i-5, j) from view one to tile, so those pixels are empty in the tile. For those pixels in the pseudo-view (tile) that are not assigned pixel values from any view, at least one implementation uses an interpolation procedure similar to the sub-pixel interpolation procedure in motion compensation in AVC. That is, the empty tile pixels may be interpolated from neighboring pixels. Such interpolation may result in greater spatial correlation in the tile and greater coding gain for the tile.
  • In video coding, we can choose a different coding type for each picture, such as I, P, and B pictures. For multi-view video coding, in addition, we define anchor and non-anchor pictures. In an embodiment, we propose that the decision of grouping can be made based on picture type. This information of grouping is signaled in high level syntax.
  • Turning to FIG. 11, an example of 5 views tiled on a single frame is indicated generally by the reference numeral 1100. In particular, the ballroom sequence is shown with 5 views tiled on a single frame. Additionally, it can be seen that the fifth view is split into two parts so that it can be arranged on a rectangular frame. Here, each view is of QVGA size so the total frame dimension is 640×600. Since 600 is not a multiple of 16 it should be extended to 608.
  • For this example, the possible SEI message could be as shown in TABLE 4.
  • TABLE 4
    Value
    multiview_display_info( payloadSize ) {
     num_coded_views_minus1 5
     org_pic_width_in_mbs_minus1 40
     org_pic_height_in_mbs_minus1 30
    view_id[ 0 ] 0
    num_parts[view_id[ 0 ]] 1
     depth_flag[view_id[ 0 ]][ 0 ] 0
     flip_dir[view_id[ 0 ]][ 0 ] 0
     loc_left_offset[view_id[ 0 ]] [ 0 ] 0
     loc_top_offset[view_id[ 0 ]] [ 0 ] 0
     frame_crop_left_offset[view_id[ 0 ]] [ 0 ] 0
     frame_crop_right_offset[view_id[ 0 ]] [ 0 ] 320
     frame_crop_top_offset[view_id[ 0 ]] [ 0 ] 0
     frame_crop_bottom_offset[view_id[ 0 ]] [ 0 ] 240
    upsample_view_flag[view_id[ 0 ]] 1
    if(upsample_view_flag[view_id[ 0 ]]) {
     vert_dim[view_id[0]] 6
     hor_dim[view_id[0]] 6
     quantizer[view_id[0]] 32
     for (yuv= 0; yuv< 3; yuv++) {
    for (y = 0; y < vert_dim[view_id[i]] − 1; y ++) {
     for (x = 0; x < hor_dim[view_id[i]] − 1; x ++)
    filter_coeffs[view_id[i]] [yuv][y][x] XX
    view_id[ 1 ] 1
    num_parts[view_id[ 1 ]] 1
     depth_flag[view_id[ 0 ]][ 0 ] 0
     flip_dir[view_id[ 1 ]][ 0 ] 0
     loc_left_offset[view_id[ 1 ]] [ 0 ] 0
     loc_top_offset[view_id[ 1 ]] [ 0 ] 0
     frame_crop_left_offset[view_id[ 1 ]] [ 0 ] 320
     frame_crop_right_offset[view_id[ 1 ]] [ 0 ] 640
     frame_crop_top_offset[view_id[ 1 ]] [ 0 ] 0
     frame_crop_bottom_offset[view_id[ 1 ]] [ 0 ] 320
    upsample_view_flag[view_id[ 1 ]] 1
    if(upsample_view_flag[view_id[ 1 ]]) {
     vert_dim[view_id[1]] 6
     hor_dim[view_id[1]] 6
     quantizer[view_id[1]] 32
     for (yuv= 0; yuv< 3; yuv++) {
    for (y = 0; y < vert_dim[view_id[i]] − 1; y ++) {
     for (x = 0; x < hor_dim[view_id[i]] − 1; x ++)
    filter_coeffs[view_id[i]] [yuv][y][x] XX
    ......(similarly for view 2,3)
    view_id[ 4 ] 4
    num_parts[view_id[ 4 ]] 2
     depth_flag[view_id[ 0 ]][ 0 ] 0
     flip_dir[view_id[ 4 ]][ 0 ] 0
     loc_left_offset[view_id[ 4 ]] [ 0 ] 0
     loc_top_offset[view_id[ 4 ]] [ 0 ] 0
     frame_crop_left_offset[view_id[ 4 ]] [ 0 ] 0
     frame_crop_right_offset[view_id[ 4 ]] [ 0 ] 320
     frame_crop_top_offset[view_id[ 4 ]] [ 0 ] 480
     frame_crop_bottom_offset[view_id[ 4 ]] [ 0 ] 600
     flip_dir[view_id[ 4 ]][ 1 ] 0
     loc_left_offset[view_id[ 4 ]] [ 1 ] 0
     loc_top_offset[view_id[ 4 ]] [ 1 ] 120
     frame_crop_left_offset[view_id[ 4 ]] [ 1 ] 320
     frame_crop_right_offset[view_id[ 4 ]] [ 1 ] 640
     frame_crop_top_offset[view_id[ 4 ]] [ 1 ] 480
     frame_crop_bottom_offset[view_id[ 4 ]] [ 1 ] 600
    upsample_view_flag[view_id[ 4 ]] 1
    if(upsample_view_flag[view_id[ 4 ]]) {
     vert_dim[view_id[4]] 6
     hor_dim[view_id[4]] 6
     quantizer[view_id[4]] 32
     for (yuv= 0; yuv< 3; yuv++) {
    for (y = 0; y < vert_dim[view_id[i]] − 1; y ++) {
     for (x = 0; x < hor_dim[view_id[i]] − 1; x ++)
    filter_coeffs[view_id[i]] [yuv][y][x] XX
  • TABLE 5 shows the general syntax structure for transmitting multi-view information for the example shown in TABLE 4.
  • TABLE 5
    C Descriptor
    multiview_display_info( payloadSize ) {
     num_coded_views_minus1 5 ue(v)
     org_pic_width_in_mbs_minus1 5 ue(v)
     org_pic_height_in_mbs_minus1 5 ue(v)
     for( i = 0; i <= num_coded_views_minus1; i++ ) {
    view_id[ i ] 5 ue(v)
    num_parts[view_id[ i ]] 5 ue(v)
    for( j = 0; j <= num_parts[i]; j++ ) {
     depth_flag[view_id[ i ]][ j ]
     flip_dir[view_id[ i ]][ j ] 5 u(2)
     loc_left_offset[view_id[ i ]] [ j ] 5 ue(v)
     loc_top_offset[view_id[ i ]] [ j ] 5 ue(v)
     frame_crop_left_offset[view_id[ i ]] [ j ] 5 ue(v)
     frame_crop_right_offset[view_id[ i ]] [ j ] 5 ue(v)
     frame_crop_top_offset[view_id[ i ]] [ j ] 5 ue(v)
     frame_crop_bottom_offset[view_id[ i ]] [ j ] 5 ue(v)
    }
    upsample_view_flag[view_id[ i ]] 5 u(1)
    if(upsample_view_flag[view_id[ i ]])
     upsample_filter[view_id[ i ]] 5 u(2)
    if(upsample_fiter[view_id[i]] == 3) {
     vert_dim[view_id[i]] 5 ue(v)
     hor_dim[view_id[i]] 5 ue(v)
     quantizer[view_id[i]] 5 ue(v)
     for (yuv= 0; yuv< 3; yuv++) {
    for (y = 0; y < vert_dim[view_id[i]] − 1;
    y ++) {
     for (x = 0; x < hor_dim[view_id[i]] − 1;
     x ++)
    filter_coeffs[view_id[i]] [yuv][y][x] 5 se(v)
    }
     }
    }
     }
    }
  • Referring to FIG. 23, a video processing device 2300 is shown. The video processing device 2300 may be, for example, a set top box or other device that receives encoded video and provides, for example, decoded video for display to a user or for storage. Thus, the device 2300 may provide its output to a television, computer monitor, or a computer or other processing device.
  • The device 2300 includes a decoder 2310 that receive a data signal 2320. The data signal 2320 may include, for example, an AVC or an MVC compatible stream. The decoder 2310 decodes all or part of the received signal 2320 and provides as output a decoded video signal 2330 and tiling information 2340. The decoded video 2330 and the tiling information 2340 are provided to a selector 2350. The device 2300 also includes a user interface 2360 that receives a user input 2370. The user interface 2360 provides a picture selection signal 2380, based on the user input 2370, to the selector 2350. The picture selection signal 2380 and the user input 2370 indicate which of multiple pictures a user desires to have displayed. The selector 2350 provides the selected picture(s) as an output 2390. The selector 2350 uses the picture selection information 2380 to select which of the pictures in the decoded video 2330 to provide as the output 2390. The selector 2350 uses the tiling information 2340 to locate the selected picture(s) in the decoded video 2330.
  • In various implementations, the selector 2350 includes the user interface 2360, and in other implementations no user interface 2360 is needed because the selector 2350 receives the user input 2370 directly without a separate interface function being performed. The selector 2350 may be implemented in software or as an integrated circuit, for example. The selector 2350 may also incorporate the decoder 2310.
  • More generally, the decoders of various implementations described in this application may provide a decoded output that includes an entire tile. Additionally or alternatively, the decoders may provide a decoded output that includes only one or more selected pictures (images or depth signals, for example) from the tile.
  • As noted above, high level syntax may be used to perform signaling in accordance with one or more embodiments of the present principles. The high level syntax may be used, for example, but is not limited to, signaling any of the following: the number of coded views present in the larger frame; the original width and height of all the views; for each coded view, the view identifier corresponding to the view; for each coded view ,the number of parts the frame of a view is split into; for each part of the view, the flipping direction (which can be, for example, no flipping, horizontal flipping only, vertical flipping only or horizontal and vertical flipping); for each part of the view, the left position in pixels or number of macroblocks where the current part belongs in the final frame for the view; for each part of the view, the top position of the part in pixels or number of macroblocks where the current part belongs in the final frame for the view; for each part of the view, the left position, in the current large decoded/encoded frame, of the cropping window in pixels or number of macroblocks; for each part of the view, the right position, in the current large decoded/encoded frame, of the cropping window in pixels or number of macroblocks; for each part of the view, the top position, in the current large decoded/encoded frame, of the cropping window in pixels or number of macroblocks; and, for each part of the view, the bottom position, in the current large decoded/encoded frame, of the cropping window in pixels or number of macroblocks; for each coded view whether the view needs to be upsampled before output (where if the upsampling needs to be performed, a high level syntax may be used to indicate the method for upsampling (including, but not limited to, AVC 6-tap filter, SVC 4-tap filter, bilinear filter or a custom 1D, 2D linear or non-linear filter).
  • It is to be noted that the terms “encoder” and “decoder” connote general structures and are not limited to any particular functions or features. For example, a decoder may receive a modulated carrier that carries an encoded bitstream, and demodulate the encoded bitstream, as well as decode the bitstream.
  • Various methods have been described. Many of these methods are detailed to provide ample disclosure. It is noted, however, that variations are contemplated that may vary one or many of the specific features described for these methods. Further, many of the features that are recited are known in the art and are, accordingly, not described in great detail.
  • Further, reference has been made to the use of high level syntax for sending certain information in several implementations. It is to be understood, however, that other implementations use lower level syntax, or indeed other mechanisms altogether (such as, for example, sending information as part of encoded data) to provide the same information (or variations of that information).
  • Various implementations provide tiling and appropriate signaling to allow multiple views (pictures, more generally) to be tiled into a single picture, encoded as a single picture, and sent as a single picture. The signaling information may allow a post-processor to pull the views/pictures apart. Also, the multiple pictures that are tiled could be views, but at least one of the pictures could be depth information. These implementations may provide one or more advantages. For example, users may want to display multiple views in a tiled manner, and these various implementations provide an efficient way to encode and transmit or store such views by tiling them prior to encoding and transmitting/storing them in a tiled manner.
  • Implementations that tile multiple views in the context of AVC and/or MVC also provide additional advantages. AVC is ostensibly only used for a single view, so no additional view is expected. However, such AVC-based implementations can provide multiple views in an AVC environment because the tiled views can be arranged so that, for example, a decoder knows that that the tiled pictures belong to different views (for example, top left picture in the pseudo-view is view 1, top right picture is view 2, etc).
  • Additionally, MVC already includes multiple views, so multiple views are not expected to be included in a single pseudo-view. Further, MVC has a limit on the number of views that can be supported, and such MVC-based implementations effectively increase the number of views that can be supported by allowing (as in the AVC-based implementations) additional views to be tiled. For example, each pseudo-view may correspond to one of the supported views of MVC, and the decoder may know that each “supported view” actually includes four views in a pre-arranged tiled order. Thus, in such an implementation, the number of possible views is four times the number of “supported views”.
  • The implementations described herein may be implemented in, for example, a method or process, an apparatus, or a software program. Even if only discussed in the context of a single form of implementation (for example, discussed only as a method), the implementation of features discussed may also be implemented in other forms (for example, an apparatus or program). An apparatus may be implemented in, for example, appropriate hardware, software, and firmware. The methods may be implemented in, for example, an apparatus such as, for example, a processor, which refers to processing devices in general, including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. Processing devices also include communication devices, such as, for example, computers, cell phones, portable/personal digital assistants (“PDAs”), and other devices that facilitate communication of information between end-users.
  • Implementations of the various processes and features described herein may be embodied in a variety of different equipment or applications, particularly, for example, equipment or applications associated with data encoding and decoding. Examples of equipment include video coders, video decoders, video codecs, web servers, set-top boxes, laptops, personal computers, cell phones, PDAs, and other communication devices. As should be clear, the equipment may be mobile and even installed in a mobile vehicle.
  • Additionally, the methods may be implemented by instructions being performed by a processor, and such instructions may be stored on a processor-readable medium such as, for example, an integrated circuit, a software carrier or other storage device such as, for example, a hard disk, a compact diskette, a random access memory (“RAM”), or a read-only memory (“ROM”). The instructions may form an application program tangibly embodied on a processor-readable medium. As should be clear, a processor may include a processor-readable medium having, for example, instructions for carrying out a process. Such application programs may be uploaded to, and executed by, a machine comprising any suitable architecture. Preferably, the machine is implemented on a computer platform having hardware such as one or more central processing units (“CPU”), a random access memory (“RAM”), and input/output (“I/O”) interfaces. The computer platform may also include an operating system and microinstruction code. The various processes and functions described herein may be either part of the microinstruction code or part of the application program, or any combination thereof, which may be executed by a CPU. In addition, various other peripheral units may be connected to the computer platform such as an additional data storage unit and a printing unit.
  • As should be evident to one of skill in the art, implementations may also produce a signal formatted to carry information that may be, for example, stored or transmitted. The information may include, for example, instructions for performing a method, or data produced by one of the described implementations. Such a signal may be formatted, for example, as an electromagnetic wave (for example, using a radio frequency portion of spectrum) or as a baseband signal. The formatting may include, for example, encoding a data stream, producing syntax, and modulating a carrier with the encoded data stream and the syntax. The information that the signal carries may be, for example, analog or digital information. The signal may be transmitted over a variety of different wired or wireless links, as is known.
  • It is to be further understood that, because some of the constituent system components and methods depicted in the accompanying drawings are preferably implemented in software, the actual connections between the system components or the process function blocks may differ depending upon the manner in which the present principles are programmed. Given the teachings herein, one of ordinary skill in the pertinent art will be able to contemplate these and similar implementations or configurations of the present principles.
  • A number of implementations have been described. Nevertheless, it will be understood that various modifications may be made. For example, elements of different implementations may be combined, supplemented, modified, or removed to produce other implementations. Additionally, one of ordinary skill will understand that other structures and processes may be substituted for those disclosed and the resulting implementations will perform at least substantially the same function(s), in at least substantially the same way(s), to achieve at least substantially the same result(s) as the implementations disclosed. In particular, although illustrative embodiments have been described herein with reference to the accompanying drawings, it is to be understood that the present principles is not limited to those precise embodiments, and that various changes and modifications may be effected therein by one of ordinary skill in the pertinent art without departing from the scope or spirit of the present principles. Accordingly, these and other implementations are contemplated by this application and are within the scope of the following claims.

Claims (7)

1. An apparatus for decoding coded video pictures, the apparatus comprising:
an input for receiving a coded video bitstream comprising coded video pictures; and
a processor, wherein the processor:
determines from the received bitstream a single picture, wherein the single picture includes a first picture of a first view of a multi-view video and a second picture of a second-view of the multi-view video;
accesses information to determine how the first picture and the second picture are tiled together, wherein the accessed information indicates that the first picture is arranged above the second picture, and at least one of the first picture and the second picture is individually flipped in the vertical direction; and
decodes the single picture into the first picture and the second picture;
2. The apparatus of claim 1, wherein both the first picture and the second picture are individually flipped in the vertical direction.
3. The apparatus of claim 1, wherein only the first picture is flipped.
4. A non-transitory processor readable medium having stored thereon encoded video bitstream data for decoding by a decoder, the video bitstream data comprising:
an encoded picture section including an encoding of a single video picture, the single video picture including a first picture of a first view of a multi-view video and a second picture of a second view of the multi-view video arranged into the single video picture; and
a signaling section including an encoding of an indication that indicates whether the first picture is arranged above the second picture and whether at least one of the first picture and the second picture is individually flipped in the vertical direction, the indication allowing decoding by the decoder of the encoded single video picture into decoded versions of the first picture and the second picture.
5. The processor readable medium of claim 4, wherein the signaling section indication indicates that both the first picture and the second picture are flipped in the vertical direction.
6. An apparatus for encoding video pictures into a coded bitstream, the apparatus comprising:
an input for receiving video pictures of a multi-view video;
a processor, wherein the processor
combines multiple pictures into a single video picture, the multiple pictures including a first picture of a first view of the multi-view video and a second picture of a second view of the multi-view video;
generates a signaling section indicating how the multiple pictures are combined, wherein the generated information indicates that the first picture is arranged above the second picture and that at least one of the first picture and the second picture is individually flipped;
encodes the single video picture to provide an encoded representation of the combined multiple pictures; and
combines the signaling section and the encoded representation as output.
7. The apparatus of claim 6, wherein the signaling section indicates that both of the first picture and the second picture are flipped in the vertical direction.
US15/879,280 2007-04-12 2018-01-24 Tiling in video encoding and decoding Active US9986254B1 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
US15/879,280 US9986254B1 (en) 2007-04-12 2018-01-24 Tiling in video encoding and decoding
US15/935,869 US10129557B2 (en) 2007-04-12 2018-03-26 Tiling in video encoding and decoding
US16/144,971 US10298948B2 (en) 2007-04-12 2018-09-27 Tiling in video encoding and decoding
US16/393,371 US10432958B2 (en) 2007-04-12 2019-04-24 Tiling in video encoding and decoding
US16/551,156 US10764596B2 (en) 2007-04-12 2019-08-26 Tiling in video encoding and decoding

Applications Claiming Priority (12)

Application Number Priority Date Filing Date Title
US92301407P 2007-04-12 2007-04-12
US92540007P 2007-04-20 2007-04-20
US12/450,829 US8780998B2 (en) 2007-04-12 2008-04-11 Tiling in video decoding and encoding
PCT/US2008/004747 WO2008127676A2 (en) 2007-04-12 2008-04-11 Tiling in video encoding and decoding
US14/300,597 US9185384B2 (en) 2007-04-12 2014-06-10 Tiling in video encoding and decoding
US14/735,371 US9219923B2 (en) 2007-04-12 2015-06-10 Tiling in video encoding and decoding
US14/817,597 US9232235B2 (en) 2007-04-12 2015-08-04 Tiling in video encoding and decoding
US14/946,252 US9445116B2 (en) 2007-04-12 2015-11-19 Tiling in video encoding and decoding
US15/244,192 US9706217B2 (en) 2007-04-12 2016-08-23 Tiling in video encoding and decoding
US15/600,338 US9838705B2 (en) 2007-04-12 2017-05-19 Tiling in video encoding and decoding
US15/791,238 US9973771B2 (en) 2007-04-12 2017-10-23 Tiling in video encoding and decoding
US15/879,280 US9986254B1 (en) 2007-04-12 2018-01-24 Tiling in video encoding and decoding

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US15/791,238 Continuation US9973771B2 (en) 2007-04-12 2017-10-23 Tiling in video encoding and decoding

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/935,869 Continuation US10129557B2 (en) 2007-04-12 2018-03-26 Tiling in video encoding and decoding

Publications (2)

Publication Number Publication Date
US9986254B1 US9986254B1 (en) 2018-05-29
US20180152719A1 true US20180152719A1 (en) 2018-05-31

Family

ID=39810226

Family Applications (13)

Application Number Title Priority Date Filing Date
US12/450,829 Active 2029-12-23 US8780998B2 (en) 2007-04-12 2008-04-11 Tiling in video decoding and encoding
US14/300,597 Active US9185384B2 (en) 2007-04-12 2014-06-10 Tiling in video encoding and decoding
US14/735,371 Active US9219923B2 (en) 2007-04-12 2015-06-10 Tiling in video encoding and decoding
US14/817,597 Active US9232235B2 (en) 2007-04-12 2015-08-04 Tiling in video encoding and decoding
US14/946,252 Active US9445116B2 (en) 2007-04-12 2015-11-19 Tiling in video encoding and decoding
US15/244,192 Active US9706217B2 (en) 2007-04-12 2016-08-23 Tiling in video encoding and decoding
US15/600,338 Active US9838705B2 (en) 2007-04-12 2017-05-19 Tiling in video encoding and decoding
US15/791,238 Active US9973771B2 (en) 2007-04-12 2017-10-23 Tiling in video encoding and decoding
US15/879,280 Active US9986254B1 (en) 2007-04-12 2018-01-24 Tiling in video encoding and decoding
US15/935,869 Active US10129557B2 (en) 2007-04-12 2018-03-26 Tiling in video encoding and decoding
US16/144,971 Active US10298948B2 (en) 2007-04-12 2018-09-27 Tiling in video encoding and decoding
US16/393,371 Active US10432958B2 (en) 2007-04-12 2019-04-24 Tiling in video encoding and decoding
US16/551,156 Active US10764596B2 (en) 2007-04-12 2019-08-26 Tiling in video encoding and decoding

Family Applications Before (8)

Application Number Title Priority Date Filing Date
US12/450,829 Active 2029-12-23 US8780998B2 (en) 2007-04-12 2008-04-11 Tiling in video decoding and encoding
US14/300,597 Active US9185384B2 (en) 2007-04-12 2014-06-10 Tiling in video encoding and decoding
US14/735,371 Active US9219923B2 (en) 2007-04-12 2015-06-10 Tiling in video encoding and decoding
US14/817,597 Active US9232235B2 (en) 2007-04-12 2015-08-04 Tiling in video encoding and decoding
US14/946,252 Active US9445116B2 (en) 2007-04-12 2015-11-19 Tiling in video encoding and decoding
US15/244,192 Active US9706217B2 (en) 2007-04-12 2016-08-23 Tiling in video encoding and decoding
US15/600,338 Active US9838705B2 (en) 2007-04-12 2017-05-19 Tiling in video encoding and decoding
US15/791,238 Active US9973771B2 (en) 2007-04-12 2017-10-23 Tiling in video encoding and decoding

Family Applications After (4)

Application Number Title Priority Date Filing Date
US15/935,869 Active US10129557B2 (en) 2007-04-12 2018-03-26 Tiling in video encoding and decoding
US16/144,971 Active US10298948B2 (en) 2007-04-12 2018-09-27 Tiling in video encoding and decoding
US16/393,371 Active US10432958B2 (en) 2007-04-12 2019-04-24 Tiling in video encoding and decoding
US16/551,156 Active US10764596B2 (en) 2007-04-12 2019-08-26 Tiling in video encoding and decoding

Country Status (21)

Country Link
US (13) US8780998B2 (en)
EP (12) EP3399756B1 (en)
JP (10) JP5324563B2 (en)
KR (12) KR101766479B1 (en)
CN (1) CN101658037B (en)
AU (1) AU2008239653C1 (en)
BR (5) BRPI0823512A2 (en)
DK (7) DK3758381T3 (en)
ES (7) ES2825104T3 (en)
FI (1) FI3920538T3 (en)
HK (1) HK1255617A1 (en)
HU (7) HUE053544T2 (en)
LT (1) LT2887671T (en)
MX (1) MX2009010973A (en)
PL (7) PL3758380T3 (en)
PT (7) PT2887671T (en)
RU (8) RU2521618C2 (en)
SI (6) SI3758381T1 (en)
TR (1) TR201809177T4 (en)
WO (1) WO2008127676A2 (en)
ZA (2) ZA201006649B (en)

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8692695B2 (en) 2000-10-03 2014-04-08 Realtime Data, Llc Methods for encoding and decoding data
WO2008127676A2 (en) 2007-04-12 2008-10-23 Thomson Licensing Tiling in video encoding and decoding
EP2153661A2 (en) 2007-05-16 2010-02-17 Thomson Licensing Methods and apparatus for the use of slice groups in encoding multi-view video coding (mvc) information
JP5235035B2 (en) 2008-09-23 2013-07-10 ドルビー ラボラトリーズ ライセンシング コーポレイション Encoding structure and decoding structure of checkerboard multiplexed image data
WO2010043773A1 (en) * 2008-10-17 2010-04-22 Nokia Corporation Sharing of motion vector in 3d video coding
CN104702960B (en) * 2009-01-26 2018-01-02 汤姆森特许公司 Device for video decoding
EP3226559A1 (en) 2009-01-29 2017-10-04 Dolby Laboratories Licensing Corporation Methods and devices for sub-sampling and interleaving multiple images, e.g. stereoscopic
CN102388620B (en) * 2009-02-01 2014-10-29 Lg电子株式会社 Broadcast receiver and 3d video data processing method
US20110292044A1 (en) * 2009-02-13 2011-12-01 Kim Woo-Shik Depth map coding using video information
KR101940023B1 (en) * 2009-02-19 2019-01-21 톰슨 라이센싱 3d video formats
WO2010123909A1 (en) 2009-04-20 2010-10-28 Dolby Laboratories Licensing Corporation Directed interpolation and data post-processing
KR20120013966A (en) * 2009-05-01 2012-02-15 톰슨 라이센싱 Reference picture lists for 3dv
US9124874B2 (en) 2009-06-05 2015-09-01 Qualcomm Incorporated Encoding of three-dimensional conversion information with two-dimensional video sequence
US9774882B2 (en) 2009-07-04 2017-09-26 Dolby Laboratories Licensing Corporation Encoding and decoding architectures for format compatible 3D video delivery
JP2011109397A (en) * 2009-11-17 2011-06-02 Sony Corp Image transmission method, image reception method, image transmission device, image reception device, and image transmission system
JP5722349B2 (en) 2010-01-29 2015-05-20 トムソン ライセンシングThomson Licensing Block-based interleaving
US8555324B2 (en) 2010-02-02 2013-10-08 Microsoft Corporation Video download mechanism for transferring large data
IT1399417B1 (en) 2010-04-12 2013-04-16 Sisvel Technology Srl METHOD FOR THE GENERATION AND RECONSTRUCTION OF A COMPATIBLE STEREOSCOPIC VIDEO FLOW AND RELATED CODING AND DECODING DEVICES.
US9225961B2 (en) * 2010-05-13 2015-12-29 Qualcomm Incorporated Frame packing for asymmetric stereo video
IT1401731B1 (en) * 2010-06-28 2013-08-02 Sisvel Technology Srl METHOD FOR 2D-COMPATIBLE DECODING OF STEREOSCOPIC VIDEO FLOWS
CN105812828B (en) 2010-07-21 2018-09-18 杜比实验室特许公司 Coding/decoding method for the transmission of multilayer frame compatible video
US9596447B2 (en) 2010-07-21 2017-03-14 Qualcomm Incorporated Providing frame packing type information for video coding
CN103098462A (en) * 2010-08-06 2013-05-08 松下电器产业株式会社 Encoding method, display device, and decoding method
US9344702B2 (en) * 2010-08-09 2016-05-17 Koninklijke Philips N.V. Encoder, decoder, bit-stream, method of encoding, method of decoding an image pair corresponding with two views of a multi-view signal
WO2012036903A1 (en) 2010-09-14 2012-03-22 Thomson Licensing Compression methods and apparatus for occlusion data
WO2012057564A2 (en) * 2010-10-28 2012-05-03 엘지전자 주식회사 Receiver apparatus and method for receiving a three-dimensional broadcast signal in a mobile environment
JP2012114575A (en) * 2010-11-22 2012-06-14 Sony Corp Image data transmission device, image data transmission method, image data reception device, and image data reception method
US9215473B2 (en) 2011-01-26 2015-12-15 Qualcomm Incorporated Sub-slices in video coding
CN102972024A (en) * 2011-05-11 2013-03-13 松下电器产业株式会社 Video transmission device and video transmission method
US9521418B2 (en) * 2011-07-22 2016-12-13 Qualcomm Incorporated Slice header three-dimensional video extension for slice header prediction
US11496760B2 (en) 2011-07-22 2022-11-08 Qualcomm Incorporated Slice header prediction for depth maps in three-dimensional video codecs
US9077998B2 (en) * 2011-11-04 2015-07-07 Qualcomm Incorporated Padding of segments in coded slice NAL units
US9124895B2 (en) 2011-11-04 2015-09-01 Qualcomm Incorporated Video coding with network abstraction layer units that include multiple encoded picture partitions
US9485503B2 (en) 2011-11-18 2016-11-01 Qualcomm Incorporated Inside view motion prediction among texture and depth view components
US9749661B2 (en) 2012-01-18 2017-08-29 Qualcomm Incorporated Sub-streams for wavefront parallel processing in video coding
JP6048495B2 (en) * 2012-04-06 2016-12-21 ソニー株式会社 Decoding device, decoding method, program, and recording medium
TWI630815B (en) 2012-06-14 2018-07-21 杜比實驗室特許公司 Depth map delivery formats for stereoscopic and auto-stereoscopic displays
US9584803B2 (en) * 2012-07-08 2017-02-28 Cisco Technology, Inc. Picture output management in video applications with fixed picture rate
US9554146B2 (en) * 2012-09-21 2017-01-24 Qualcomm Incorporated Indication and activation of parameter sets for video coding
US9979960B2 (en) 2012-10-01 2018-05-22 Microsoft Technology Licensing, Llc Frame packing and unpacking between frames of chroma sampling formats with different chroma resolutions
US9661340B2 (en) 2012-10-22 2017-05-23 Microsoft Technology Licensing, Llc Band separation filtering / inverse filtering for frame packing / unpacking higher resolution chroma sampling formats
KR101748779B1 (en) * 2013-01-18 2017-06-19 캐논 가부시끼가이샤 Method, device, and computer program for encapsulating partitioned timed media data
TWI558166B (en) 2013-04-04 2016-11-11 杜比國際公司 Depth map delivery formats for multi-view auto-stereoscopic displays
EP3014869B1 (en) * 2013-06-28 2019-08-21 InterDigital CE Patent Holdings Highlighting an object displayed by a pico projector
KR102269311B1 (en) * 2013-07-05 2021-06-28 소니그룹주식회사 Transmission device, transmission method, reception device, and reception method
US9749646B2 (en) 2015-01-16 2017-08-29 Microsoft Technology Licensing, Llc Encoding/decoding of high chroma resolution details
US9854201B2 (en) 2015-01-16 2017-12-26 Microsoft Technology Licensing, Llc Dynamically updating quality to higher chroma sampling rate
CN104869457B (en) * 2015-05-21 2019-04-26 京东方科技集团股份有限公司 Display, display device, player, playing device and broadcasting display system
WO2016204481A1 (en) * 2015-06-16 2016-12-22 엘지전자 주식회사 Media data transmission device, media data reception device, media data transmission method, and media data rececption method
US10170154B2 (en) 2015-11-16 2019-01-01 Virtual Dreamware, LLC Symmetrically mirrored video segment
CN113347444B (en) 2016-02-09 2022-10-04 弗劳恩霍夫应用研究促进协会 Method and encoder for encoding pictures into a data stream
CN115037939B (en) * 2016-05-27 2024-02-13 松下电器(美国)知识产权公司 Encoding device and decoding device
JP6185635B2 (en) * 2016-09-02 2017-08-23 株式会社ユニバーサルエンターテインメント Game machine
US10334277B2 (en) * 2016-09-02 2019-06-25 Qualcomm Incorporated Signaling target display parameters of color remapping information supplemental enhancement information messages
US10368080B2 (en) 2016-10-21 2019-07-30 Microsoft Technology Licensing, Llc Selective upsampling or refresh of chroma sample values
US10021976B1 (en) * 2016-11-01 2018-07-17 Scott Allen Furniture system
EP3468187A1 (en) 2017-10-03 2019-04-10 Axis AB Method and system for encoding video streams
CN117640949A (en) 2018-05-23 2024-03-01 松下电器(美国)知识产权公司 Decoding device and encoding device
KR102165334B1 (en) 2019-06-03 2020-10-13 방지철 Apparatus of airbag gas injector for DRON
US11284113B2 (en) 2019-09-25 2022-03-22 Tencent America LLC Method for signaling subpicture identifier
CN111510729A (en) * 2020-03-25 2020-08-07 西安电子科技大学 RGBD data compression transmission method based on video coding and decoding technology
US11221907B1 (en) * 2021-01-26 2022-01-11 Morgan Stanley Services Group Inc. Centralized software issue triage system
CA3210870A1 (en) * 2021-02-28 2022-09-01 Leia Inc. System and method of streaming compressed multiview video
WO2022210661A1 (en) 2021-03-30 2022-10-06 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ Image encoding method, image decoding method, image processing method, image encoding device, and image decoding device
CN117203963A (en) 2021-04-23 2023-12-08 松下电器(美国)知识产权公司 Image encoding method, image decoding method, image processing method, image encoding device, and image decoding device
EP4311238A4 (en) 2021-04-23 2024-08-28 Panasonic Ip Corp America Image decoding method, image coding method, image decoder, and image encoder
US20230097425A1 (en) * 2021-09-29 2023-03-30 Tencent America LLC Techniques for signaling multiview view positions in sei message

Family Cites Families (97)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5193000A (en) * 1991-08-28 1993-03-09 Stereographics Corporation Multiplexing technique for stereoscopic video system
US5689641A (en) * 1993-10-01 1997-11-18 Vicor, Inc. Multimedia collaboration system arrangement for routing compressed AV signal through a participant site without decompressing the AV signal
JPH0870475A (en) * 1994-06-23 1996-03-12 Sanyo Electric Co Ltd Method and device for encoding and decoding stereoscopic animation
US5748786A (en) 1994-09-21 1998-05-05 Ricoh Company, Ltd. Apparatus for compression using reversible embedded wavelets
US6055012A (en) 1995-12-29 2000-04-25 Lucent Technologies Inc. Digital multi-view video compression with complexity and compatibility constraints
DE59700033D1 (en) 1996-05-10 1998-12-03 Melcher Ag DEVICE FOR ASSEMBLING ELECTRICAL COMPONENTS ON PCB
DE19619598A1 (en) 1996-05-15 1997-11-20 Deutsche Telekom Ag Methods for storing or transmitting stereoscopic video signals
CN1223772A (en) * 1996-07-03 1999-07-21 松下电器产业株式会社 Method of encoding image important, its encoder, its decoding/synthesizing method, its decoder/synthesizer and recording medium on which those methods as recorded
US6075905A (en) 1996-07-17 2000-06-13 Sarnoff Corporation Method and apparatus for mosaic image construction
US6721952B1 (en) * 1996-08-06 2004-04-13 Roxio, Inc. Method and system for encoding movies, panoramas and large images for on-line interactive viewing and gazing
JP3263807B2 (en) * 1996-09-09 2002-03-11 ソニー株式会社 Image encoding apparatus and image encoding method
US6173087B1 (en) 1996-11-13 2001-01-09 Sarnoff Corporation Multi-view image registration with application to mosaicing and lens distortion correction
BR9713629A (en) * 1996-12-27 2001-07-24 Chequemate International Inc System and method for synthesizing three-dimensional video from a two-dimensional video source
US6157396A (en) 1999-02-16 2000-12-05 Pixonics Llc System and method for using bitstream information to process images for use in digital display systems
US6390980B1 (en) 1998-12-07 2002-05-21 Atl Ultrasound, Inc. Spatial compounding with ultrasonic doppler signal information
US6223183B1 (en) 1999-01-29 2001-04-24 International Business Machines Corporation System and method for describing views in space, time, frequency, and resolution
JP2000308089A (en) 1999-04-16 2000-11-02 Nippon Hoso Kyokai <Nhk> Stereoscopic image encoder and decoder
US7254265B2 (en) 2000-04-01 2007-08-07 Newsight Corporation Methods and systems for 2D/3D image conversion and optimization
DE10016074B4 (en) 2000-04-01 2004-09-30 Tdv Technologies Corp. Method and device for generating 3D images
GB0013273D0 (en) 2000-06-01 2000-07-26 Philips Electronics Nv Video signal encoding and buffer management
KR100535147B1 (en) * 2000-09-18 2005-12-07 인터내셔널 비지네스 머신즈 코포레이션 Method, system and computer program for managing views at a computer display
US20030004835A1 (en) * 2001-05-31 2003-01-02 International Business Machines Corporation Method, system, and product service for locating items satisfying a general requirement and ranking items according to utility
US20030117395A1 (en) * 2001-08-17 2003-06-26 Byoungyi Yoon Method and system for calculating a photographing ratio of a camera
US7277121B2 (en) * 2001-08-29 2007-10-02 Sanyo Electric Co., Ltd. Stereoscopic image processing and display system
JP5020458B2 (en) 2001-11-24 2012-09-05 フェニックス スリーディー インコーポレイテッド Generation of stereoscopic image sequence from 2D image sequence
US7263240B2 (en) 2002-01-14 2007-08-28 Eastman Kodak Company Method, system, and software for improving signal quality using pyramidal decomposition
CA2380105A1 (en) * 2002-04-09 2003-10-09 Nicholas Routhier Process and system for encoding and playback of stereoscopic video sequences
US20030198290A1 (en) 2002-04-19 2003-10-23 Dynamic Digital Depth Pty.Ltd. Image encoding system
JP4134027B2 (en) * 2002-04-25 2008-08-13 シャープ株式会社 Image encoding device, image decoding device, and image recording device
JP4154569B2 (en) 2002-07-10 2008-09-24 日本電気株式会社 Image compression / decompression device
US20040012684A1 (en) * 2002-07-16 2004-01-22 Fairchild Imaging Image reconstruction techniques for charge coupled devices
JP2004120169A (en) * 2002-09-25 2004-04-15 Sharp Corp Electronic apparatus
JP4251864B2 (en) * 2002-12-13 2009-04-08 シャープ株式会社 Image data creating apparatus and image data reproducing apparatus for reproducing the data
US20050041736A1 (en) 2003-05-07 2005-02-24 Bernie Butler-Smith Stereoscopic television signal processing method, transmission system and viewer enhancements
US7489342B2 (en) * 2004-12-17 2009-02-10 Mitsubishi Electric Research Laboratories, Inc. Method and system for managing reference pictures in multiview videos
US20040260827A1 (en) * 2003-06-19 2004-12-23 Nokia Corporation Stream switching based on gradual decoder refresh
US7496234B2 (en) 2003-06-20 2009-02-24 Microsoft Corporation System and method for seamless multiplexing of embedded bitstreams
CN1571508B (en) * 2003-07-19 2010-05-12 华为技术有限公司 A method for implementing multi-frame
JP2005049665A (en) 2003-07-30 2005-02-24 Nec Plasma Display Corp Video signal processing circuit, display device, and image signal processing method therefor
JP4355914B2 (en) * 2003-10-01 2009-11-04 日本電気株式会社 Multi-view image transmission system and method, multi-view image compression device and method, multi-view image decompression device and method, and program
US7650036B2 (en) 2003-10-16 2010-01-19 Sharp Laboratories Of America, Inc. System and method for three-dimensional video coding
KR100519776B1 (en) 2003-11-24 2005-10-07 삼성전자주식회사 Method and apparatus for converting resolution of video signal
KR100587952B1 (en) 2003-12-05 2006-06-08 한국전자통신연구원 Video encoding/decoding apparatus and method using compensation for the asymmetric decimated left/right-view images
GB2412519B (en) * 2004-03-23 2010-11-03 British Broadcasting Corp Monitoring system
JP4542447B2 (en) * 2005-02-18 2010-09-15 株式会社日立製作所 Image encoding / decoding device, encoding / decoding program, and encoding / decoding method
JP4421940B2 (en) * 2004-05-13 2010-02-24 株式会社エヌ・ティ・ティ・ドコモ Moving picture coding apparatus and method, and moving picture decoding apparatus and method
US20050259729A1 (en) * 2004-05-21 2005-11-24 Shijun Sun Video coding with quality scalability
KR100679740B1 (en) * 2004-06-25 2007-02-07 학교법인연세대학교 Method for Coding/Decoding for Multiview Sequence where View Selection is Possible
US20060007200A1 (en) * 2004-07-08 2006-01-12 David Young Method and system for displaying a sequence of image frames
MX2007000369A (en) 2004-07-29 2007-03-12 Microsoft Corp Image processing using linear light values and other image processing improvements.
KR100714068B1 (en) 2004-10-16 2007-05-02 한국전자통신연구원 Method and system for encoding/decoding multi-view video based on layered-depth image
EP1667448A1 (en) 2004-12-02 2006-06-07 Deutsche Thomson-Brandt Gmbh Method and apparatus for encoding and for decoding a main video signal and one or more auxiliary video signals
US7728878B2 (en) * 2004-12-17 2010-06-01 Mitsubishi Electric Research Labortories, Inc. Method and system for processing multiview videos for view synthesis using side information
CN101099193A (en) * 2005-01-06 2008-01-02 三菱电机株式会社 Video display apparatus
JP2006191357A (en) * 2005-01-06 2006-07-20 Victor Co Of Japan Ltd Reproduction device and reproduction program
US20060176318A1 (en) 2005-02-09 2006-08-10 Martin Virginia L Method for manipulating artwork to form decorative pieces
JP4849297B2 (en) 2005-04-26 2012-01-11 ソニー株式会社 Encoding apparatus and method, decoding apparatus and method, and program
US8228994B2 (en) 2005-05-20 2012-07-24 Microsoft Corporation Multi-view video coding based on temporal and view decomposition
KR100716999B1 (en) 2005-06-03 2007-05-10 삼성전자주식회사 Method for intra prediction using the symmetry of video, method and apparatus for encoding and decoding video using the same
CN101204097B (en) * 2005-06-23 2012-01-11 皇家飞利浦电子股份有限公司 3-D image transmission using 2-D image and related depth data
JP4637672B2 (en) * 2005-07-22 2011-02-23 株式会社リコー Encoding processing apparatus and method
US7668366B2 (en) 2005-08-09 2010-02-23 Seiko Epson Corporation Mosaic image data processing
US20100158133A1 (en) 2005-10-12 2010-06-24 Peng Yin Method and Apparatus for Using High-Level Syntax in Scalable Video Encoding and Decoding
EP1946563A2 (en) 2005-10-19 2008-07-23 Thomson Licensing Multi-view video coding using scalable video coding
US7903737B2 (en) 2005-11-30 2011-03-08 Mitsubishi Electric Research Laboratories, Inc. Method and system for randomly accessing multiview videos with known prediction dependency
US8457219B2 (en) 2005-12-30 2013-06-04 Ikanos Communications, Inc. Self-protection against non-stationary disturbances
ZA200805337B (en) 2006-01-09 2009-11-25 Thomson Licensing Method and apparatus for providing reduced resolution update mode for multiview video coding
KR100934677B1 (en) 2006-01-12 2009-12-31 엘지전자 주식회사 Processing multiview video
US20070205367A1 (en) 2006-03-01 2007-09-06 General Electric Company Apparatus and method for hybrid computed tomography imaging
KR101245251B1 (en) 2006-03-09 2013-03-19 삼성전자주식회사 Method and apparatus for encoding and decoding multi-view video to provide uniform video quality
JP2008034892A (en) 2006-03-28 2008-02-14 Victor Co Of Japan Ltd Multi-viewpoint image encoder
RU2488973C2 (en) 2006-03-29 2013-07-27 Томсон Лайсенсинг Methods and device for use in multi-view video coding system
US7609906B2 (en) 2006-04-04 2009-10-27 Mitsubishi Electric Research Laboratories, Inc. Method and system for acquiring and displaying 3D light fields
US8139142B2 (en) * 2006-06-01 2012-03-20 Microsoft Corporation Video manipulation of red, green, blue, distance (RGB-Z) data including segmentation, up-sampling, and background substitution techniques
WO2008024345A1 (en) 2006-08-24 2008-02-28 Thomson Licensing Adaptive region-based flipping video coding
CN101535868A (en) 2006-11-07 2009-09-16 皇家飞利浦电子股份有限公司 Multi image storage on sensor
EP2418851A3 (en) 2006-12-21 2012-05-23 Thomson Licensing Methods and apparatus for improved signaling using high level syntax for multi-view video coding and decoding
US8515194B2 (en) 2007-02-21 2013-08-20 Microsoft Corporation Signaling and uses of windowing information for images
EP2157803B1 (en) * 2007-03-16 2015-02-25 Thomson Licensing System and method for combining text with three-dimensional content
WO2008127676A2 (en) * 2007-04-12 2008-10-23 Thomson Licensing Tiling in video encoding and decoding
WO2008140190A1 (en) 2007-05-14 2008-11-20 Samsung Electronics Co, . Ltd. Method and apparatus for encoding and decoding multi-view image
JP4418827B2 (en) 2007-05-16 2010-02-24 三菱電機株式会社 Image display apparatus and method, and image generation apparatus and method
US8373744B2 (en) 2007-06-07 2013-02-12 Reald Inc. Stereoplexing for video and film applications
KR100962696B1 (en) 2007-06-07 2010-06-11 주식회사 이시티 Format for encoded stereoscopic image data file
US20100161686A1 (en) 2007-06-19 2010-06-24 Electronic And Telecommunications Research Institute Metadata structure for storing and playing stereoscopic data, and method for storing stereoscopic content file using this metadata
US8471893B2 (en) 2007-06-26 2013-06-25 Samsung Electronics Co., Ltd. Method and apparatus for generating stereoscopic image bitstream using block interleaved method
MY162861A (en) 2007-09-24 2017-07-31 Koninl Philips Electronics Nv Method and system for encoding a video data signal, encoded video data signal, method and system for decoding a video data signal
US8218855B2 (en) 2007-10-04 2012-07-10 Samsung Electronics Co., Ltd. Method and apparatus for receiving multiview camera parameters for stereoscopic image, and method and apparatus for transmitting multiview camera parameters for stereoscopic image
KR100918862B1 (en) 2007-10-19 2009-09-28 광주과학기술원 Method and device for generating depth image using reference image, and method for encoding or decoding the said depth image, and encoder or decoder for the same, and the recording media storing the image generating the said method
JP5553310B2 (en) 2007-12-20 2014-07-16 コーニンクレッカ フィリップス エヌ ヴェ Image encoding method for stereoscopic rendering
KR101506217B1 (en) 2008-01-31 2015-03-26 삼성전자주식회사 Method and appratus for generating stereoscopic image data stream for temporally partial three dimensional data, and method and apparatus for displaying temporally partial three dimensional data of stereoscopic image
US20090219985A1 (en) 2008-02-28 2009-09-03 Vasanth Swaminathan Systems and Methods for Processing Multiple Projections of Video Data in a Single Video File
US8878836B2 (en) 2008-02-29 2014-11-04 Samsung Electronics Co., Ltd. Method and apparatus for encoding datastream including additional information on multiview image and method and apparatus for decoding datastream by using the same
KR101506219B1 (en) 2008-03-25 2015-03-27 삼성전자주식회사 Method and apparatus for providing and reproducing 3 dimensional video content, and computer readable medium thereof
RU2518435C2 (en) 2008-07-20 2014-06-10 Долби Лэборетериз Лайсенсинг Корпорейшн Encoder optimisation in stereoscopic video delivery systems
US8106924B2 (en) 2008-07-31 2012-01-31 Stmicroelectronics S.R.L. Method and system for video rendering, computer program product therefor
EP2197217A1 (en) 2008-12-15 2010-06-16 Koninklijke Philips Electronics N.V. Image based 3D video format

Also Published As

Publication number Publication date
EP3920538B1 (en) 2023-02-22
US9706217B2 (en) 2017-07-11
CN101658037A (en) 2010-02-24
JP6825155B2 (en) 2021-02-03
KR102204262B1 (en) 2021-01-18
BRPI0809510B1 (en) 2019-10-08
ES2586406T3 (en) 2016-10-14
KR101885790B1 (en) 2018-08-06
KR20170106987A (en) 2017-09-22
HUE053544T2 (en) 2021-07-28
KR20210006026A (en) 2021-01-15
BR122018004903B1 (en) 2019-10-29
DK2512136T3 (en) 2016-08-22
RU2014116612A (en) 2015-10-27
ES2941888T3 (en) 2023-05-26
US9185384B2 (en) 2015-11-10
PL2887671T3 (en) 2018-09-28
BRPI0809510A2 (en) 2012-12-25
KR102044130B1 (en) 2019-11-12
SI3758381T1 (en) 2021-07-30
HUE053806T2 (en) 2021-07-28
ZA201201942B (en) 2012-11-28
JP2019201436A (en) 2019-11-21
PL2512136T3 (en) 2016-11-30
EP2887671B1 (en) 2018-05-16
ES2825104T3 (en) 2021-05-14
US20180213246A1 (en) 2018-07-26
US20190253727A1 (en) 2019-08-15
US20140301479A1 (en) 2014-10-09
US20180048904A1 (en) 2018-02-15
HUE052116T2 (en) 2021-04-28
RU2721941C1 (en) 2020-05-25
WO2008127676A2 (en) 2008-10-23
HUE061663T2 (en) 2023-08-28
RU2752572C1 (en) 2021-07-29
EP3758381B1 (en) 2021-03-10
EP2512135A1 (en) 2012-10-17
RU2684184C1 (en) 2019-04-04
KR20190038680A (en) 2019-04-08
PT3920538T (en) 2023-04-10
WO2008127676A9 (en) 2009-02-12
DK3399756T3 (en) 2020-10-12
US9232235B2 (en) 2016-01-05
US9973771B2 (en) 2018-05-15
JP7357125B2 (en) 2023-10-05
EP4383719A3 (en) 2024-08-07
SI3836550T1 (en) 2021-09-30
HUE055864T2 (en) 2021-12-28
BR122018004904B1 (en) 2019-11-05
US9445116B2 (en) 2016-09-13
EP3836550B1 (en) 2021-07-21
WO2008127676A3 (en) 2008-12-18
DK2887671T3 (en) 2018-07-23
JP7116812B2 (en) 2022-08-10
HUE029776T2 (en) 2017-04-28
US9219923B2 (en) 2015-12-22
AU2008239653A1 (en) 2008-10-23
KR20160121604A (en) 2016-10-19
KR101766479B1 (en) 2017-10-23
JP2019201435A (en) 2019-11-21
US20170257638A1 (en) 2017-09-07
ZA201006649B (en) 2012-09-26
HK1255617A1 (en) 2019-08-23
US20190037230A1 (en) 2019-01-31
RU2009141712A (en) 2011-05-20
JP5674873B2 (en) 2015-02-25
EP2512136A1 (en) 2012-10-17
RU2651227C2 (en) 2018-04-18
US20190379897A1 (en) 2019-12-12
EP3920538A1 (en) 2021-12-08
RU2521618C2 (en) 2014-07-10
SI3399756T1 (en) 2020-11-30
US20150341665A1 (en) 2015-11-26
PL3836550T3 (en) 2021-12-13
KR20150046385A (en) 2015-04-29
JP2021052440A (en) 2021-04-01
US10432958B2 (en) 2019-10-01
SI2887671T1 (en) 2018-10-30
LT2887671T (en) 2018-07-25
PT3399756T (en) 2020-10-13
ES2675164T3 (en) 2018-07-09
HUE038192T2 (en) 2018-10-29
RU2733273C1 (en) 2020-10-01
KR101646089B1 (en) 2016-08-05
KR20190127999A (en) 2019-11-13
EP3836550A1 (en) 2021-06-16
EP4383719A2 (en) 2024-06-12
US20150281736A1 (en) 2015-10-01
PL3399756T3 (en) 2020-12-14
US9838705B2 (en) 2017-12-05
DK3758380T3 (en) 2021-03-08
KR101965781B1 (en) 2019-04-05
EP3758380A1 (en) 2020-12-30
US9986254B1 (en) 2018-05-29
JP2017135756A (en) 2017-08-03
BR122018004906B1 (en) 2019-11-12
US10764596B2 (en) 2020-09-01
KR20230038610A (en) 2023-03-20
PL3920538T3 (en) 2023-05-08
ES2887248T3 (en) 2021-12-22
AU2008239653C1 (en) 2015-05-07
JP2013258716A (en) 2013-12-26
EP3758381A1 (en) 2020-12-30
US20160360218A1 (en) 2016-12-08
KR102715349B1 (en) 2024-10-11
US10298948B2 (en) 2019-05-21
EP3399756B1 (en) 2020-09-09
EP2137975A2 (en) 2009-12-30
PT2512136T (en) 2016-08-16
JP2010524398A (en) 2010-07-15
US20100046635A1 (en) 2010-02-25
US8780998B2 (en) 2014-07-15
PT3836550T (en) 2021-08-31
US20160080757A1 (en) 2016-03-17
EP3855743A1 (en) 2021-07-28
SI3920538T1 (en) 2023-08-31
ES2858578T3 (en) 2021-09-30
EP3758380B1 (en) 2021-02-03
AU2008239653B2 (en) 2012-10-04
KR20100016212A (en) 2010-02-12
PL3758381T3 (en) 2021-07-05
PT3758381T (en) 2021-04-13
KR20140098825A (en) 2014-08-08
JP5324563B2 (en) 2013-10-23
JP2023165827A (en) 2023-11-17
RU2709671C1 (en) 2019-12-19
FI3920538T3 (en) 2023-04-05
KR102510010B1 (en) 2023-03-15
JP2020188517A (en) 2020-11-19
PL3758380T3 (en) 2021-05-17
EP4210330A1 (en) 2023-07-12
BRPI0823512A2 (en) 2013-11-26
EP2512135B1 (en) 2015-03-18
MX2009010973A (en) 2009-10-30
PT3758380T (en) 2021-03-09
EP2512136B1 (en) 2016-06-01
RU2763966C1 (en) 2022-01-12
CN101658037B (en) 2013-07-10
KR101467601B1 (en) 2014-12-02
KR102123772B1 (en) 2020-06-16
KR20240148967A (en) 2024-10-11
TR201809177T4 (en) 2018-07-23
EP2887671A1 (en) 2015-06-24
US10129557B2 (en) 2018-11-13
DK3920538T3 (en) 2023-03-27
KR20180089560A (en) 2018-08-08
SI3758380T1 (en) 2021-04-30
JP2022140599A (en) 2022-09-26
KR20200069389A (en) 2020-06-16
ES2864544T3 (en) 2021-10-14
EP3399756A1 (en) 2018-11-07
JP2015092715A (en) 2015-05-14
DK3758381T3 (en) 2021-04-12
PT2887671T (en) 2018-07-09
DK3836550T3 (en) 2021-08-23

Similar Documents

Publication Publication Date Title
US10764596B2 (en) Tiling in video encoding and decoding

Legal Events

Date Code Title Description
FEPP Fee payment procedure

Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.)

AS Assignment

Owner name: DOLBY LABORATORIES LICENSING CORPORATION, CALIFORN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:THOMSON LICENSING, SAS;THOMSON LICENSING SAS;THOMSON LICENSING;AND OTHERS;REEL/FRAME:045307/0325

Effective date: 20170207

Owner name: THOMSON LICENSING, FRANCE

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:PANDIT, PURVIN BIBHAS;YIN, PENG;TIAN, DONG;SIGNING DATES FROM 20140611 TO 20140624;REEL/FRAME:045307/0279

STCF Information on status: patent grant

Free format text: PATENTED CASE

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4