WO2013109126A1 - 비디오 정보 전송 방법, 비디오 복호화 방법, 비디오 부호화기 및 비디오 복호화기 - Google Patents
비디오 정보 전송 방법, 비디오 복호화 방법, 비디오 부호화기 및 비디오 복호화기 Download PDFInfo
- Publication number
- WO2013109126A1 WO2013109126A1 PCT/KR2013/000492 KR2013000492W WO2013109126A1 WO 2013109126 A1 WO2013109126 A1 WO 2013109126A1 KR 2013000492 W KR2013000492 W KR 2013000492W WO 2013109126 A1 WO2013109126 A1 WO 2013109126A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- information
- scalability
- nal unit
- video
- individual
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
Definitions
- the present invention relates to a video encoding and decoding method, and more particularly, to a technique for enabling adaptive video transmission and consumption using hierarchical information in a video bitstream.
- the supporting performance is also diversified by device, and the network where information is transmitted is not only an external structure such as wired and wireless networks, but also features such as the type of information to be transmitted, the amount and speed of information. It is also becoming very diverse.
- the user selects a terminal and a network to be used according to a desired function, and the spectrum of terminals and networks provided by the enterprise to the user is also increasing.
- Scalable Video Coding As a standard for scalability, Scalable Video Coding (SVC), an extension standard of Advanced Video Coding (AVC), allows to generate / use a bitstream having a wide range of bitrates while maintaining maximum compression efficiency.
- AVC Advanced Video Coding
- the bitstream to which the SVC is applied can be extracted easily and in various ways.
- the SVC may provide spatial scalability, temporal scalability, signal to noise ratio (SNR) scalability, and the like.
- SNR signal to noise ratio
- One SVC bitstream consists of Network Abstraction Layer (NAL) units that facilitate (adaptive) transmission of video over a packet-switching network.
- NAL Network Abstraction Layer
- Multi-view Video Coding (MVC)
- MVC Multi-view Video Coding
- AVC AVC
- the relationship between views may be similar to the relationship between spatial layers of the SVC bitstream.
- the scalability information of the bitstream is very important to the bitstream effectively and efficiently at all nodes in the content delivery path. Therefore, nodes in the network should be able to process packet by packet without storing the state information of the relevant bitstream.
- An object of the present invention is to provide a method for describing scalability information in a hierarchical bitstream and an apparatus using the same.
- an object of the present invention is to provide a flexible method for representing scalability information of various types of bitstreams and an apparatus using the same.
- An embodiment of the present invention is a method of transmitting video information, comprising encoding video and transmitting encoded video information in a bitstream, wherein the transmitted video information is transmitted in a network abstract layer (NAL) unit header.
- NAL network abstract layer
- Another embodiment of the present invention provides a decoding method using video information transmitted by the above method, comprising: receiving encoded video information in a bitstream and decoding the video based on the video information.
- the video information may include scalability information transmitted in a network abstract layer (NAL) unit header.
- NAL network abstract layer
- Another embodiment of the present invention is a video encoding apparatus, comprising: an encoding unit encoding an input video and a transmission unit transmitting encoded video information, wherein the transmitted video information is transmitted in a network abstract layer (NAL) unit header Includes scalability information.
- NAL network abstract layer
- a video decoding apparatus comprising: a receiver for receiving encoded video information in a bitstream and a decoder for decoding a video based on the video information, wherein the received video information is NAL (Network Abstract). Layer) may include scalability information transmitted in a header.
- NAL Network Abstract
- the scalability information may indicate whether individual scalability information exists in a NAL unit corresponding to the NAL unit header.
- the scalability information may indicate whether there is information of individual scalability existing in the NAL unit corresponding to the NAL unit header, and whether there is information about the number of bits used for the information of the individual scalability. have.
- the scalability information may be a flag indicating whether a NAL unit corresponding to the NAL unit header includes information of individual scalability.
- the scalability information may specify a scalability profile of a NAL unit corresponding to the NAL unit header.
- the scalability information indicates whether individual scalability information exists in a NAL unit corresponding to the NAL unit header.
- the scalability information includes the scalability information. It is also possible to specify whether the presence of the individual scalability-specific information is indicated by a flag or the combination of the individual scalability is indicated by the identifier.
- various scalability information of a bitstream coded using hierarchical video coding can be efficiently used.
- coding efficiency can be increased by allowing only the scalability information that the corresponding bitstream can represent among various scalability information.
- an efficient adaptive conversion at the packet level is possible by diversifying a representation method of scalability information.
- FIG. 1 is a block diagram illustrating a basic configuration of an encoding apparatus according to an embodiment.
- FIG. 2 is a block diagram illustrating a basic configuration of a decoding apparatus according to an embodiment.
- FIG. 3 is a conceptual diagram schematically illustrating an example of a multi-layered structure to which SVC is applied.
- FIG. 4 is a flowchart schematically illustrating an operation of an encoder according to the present invention.
- FIG. 5 is a flowchart schematically illustrating an operation of a decoder according to the present invention.
- FIG. 6 is a block diagram schematically illustrating the structure of an encoder (encoding device).
- FIG. 7 is a block diagram schematically illustrating a configuration of a decoder (decoding device).
- first and second may be used to describe various configurations, but the configurations are not limited by the terms. The terms are used to distinguish one configuration from another.
- first configuration may be referred to as the second configuration, and similarly, the second configuration may also be referred to as the first configuration.
- each component shown in the embodiments of the present invention are independently shown to represent different characteristic functions, and do not mean that each component is made of separate hardware or one software component unit.
- each component is listed as a component for convenience of description, and at least two of the components may form one component, or one component may be divided into a plurality of components to perform a function.
- the integrated and separated embodiments of each component are also included in the scope of the present invention without departing from the spirit of the present invention.
- FIG. 1 is a block diagram illustrating a basic configuration of an encoding apparatus according to an embodiment.
- the encoding apparatus 100 may include an inter prediction unit 110, an intra prediction unit 120, a switch 125, a subtractor 130, a transform unit 135, a quantization unit 140, and entropy encoding.
- the unit 150 includes an inverse quantization unit 160, an inverse transform unit 170, an adder 175, a filter unit 180, and a picture buffer 190.
- the encoding apparatus 100 may encode the input image in an intra mode or an inter mode and output a bitstream. In the intra mode, the switch 125 is switched to intra, and in the inter mode, the switch 125 is switched to inter. The encoding apparatus 100 may generate a prediction block for the input block of the input image and then encode the difference between the input block and the prediction block.
- the intra predictor 120 may generate a predictive block by performing spatial prediction using pixel values of blocks that are already encoded around the current block.
- the inter prediction unit 110 may obtain a motion vector by searching for a region corresponding to an input block in a reference image stored in the picture buffer 190 during a motion prediction process.
- the inter prediction unit 110 may generate a prediction block by performing motion compensation using the motion vector and the reference image stored in the picture buffer 190.
- the subtractor 130 may generate a residual block by the difference between the input block and the generated prediction block.
- the transformer 135 may perform a transform on the residual block and output a transform coefficient.
- the quantization unit 140 may output the quantized coefficient by quantizing the input transform coefficient according to the quantization parameter.
- the entropy encoder 150 may output a bitstream by entropy encoding the quantized coefficients according to a probability distribution based on the values calculated by the quantizer 140 or the encoding parameter values calculated in the encoding process. Can be.
- the quantized coefficients may be inversely quantized by the inverse quantizer 160 and inversely transformed by the inverse transformer 170.
- the inverse quantized and inverse transformed coefficients are added to the prediction block through the adder 175 and a reconstruction block can be generated.
- the reconstruction block passes through the filter unit 180, and the filter unit 180 applies at least one or more of a deblocking filter, a sample adaptive offset (SAO), and an adaptive loop filter (ALF) to the reconstruction block or the reconstruction picture. can do.
- the reconstructed block that has passed through the filter unit 180 may be stored in the picture buffer 190.
- FIG. 2 is a block diagram illustrating a basic configuration of a decoding apparatus according to an embodiment.
- the decoding apparatus 200 may include an entropy decoder 210, an inverse quantizer 220, an inverse transformer 230, an intra predictor 240, an inter predictor 250, and a filter 260. ) And picture buffer 270.
- the decoding apparatus 200 may receive a bitstream output from the encoding apparatus, perform decoding in an intra mode or an inter mode, and output a reconstructed image, that is, a reconstructed image.
- the switch In the intra mode, the switch may be switched to intra, and in the inter mode, the switch may be switched to inter.
- the decoding apparatus 200 may obtain a residual block reconstructed from the received bitstream, generate a prediction block, and then add the reconstructed residual block and the prediction block to generate a reconstructed block, that is, a reconstruction block. .
- the entropy decoder 210 entropy decodes the input bitstream according to a probability distribution. By entropy decoding, quantized (transform) coefficients can be generated.
- the quantized coefficient is inversely quantized by the inverse quantizer 220 and inversely transformed by the inverse transformer 230, and as a result of the inverse quantization / inverse transformation of the quantized coefficient, a reconstructed residual block may be generated.
- the intra predictor 240 may generate a predictive block by performing spatial prediction using pixel values of blocks that are already encoded around the current block.
- the inter predictor 250 may generate a predictive block by performing motion compensation using a motion vector and a reference image stored in the picture buffer 270.
- the reconstructed residual block and the prediction block are added through the adder 255, and the added block passes through the filter unit 260.
- the filter unit 260 may apply at least one of the deblocking filter, SAO, and ALF to the reconstructed block or the reconstructed picture.
- the filter unit 260 outputs the reconstructed image, that is, the reconstructed image.
- the reconstructed image may be stored in the picture buffer 270 to be used for inter prediction.
- the encoding apparatus and the decoding apparatus perform prediction on the current block for video encoding / decoding.
- Prediction may be performed in the encoder / decoder, specifically, the prediction unit of the encoder / decoder.
- the prediction unit of the encoding apparatus may include, for example, the inter prediction unit 110 and the intra prediction unit 120 of FIG. 1.
- the prediction unit of the decoding apparatus may include, for example, the intra predictor 240 and the inter predictor 250 of FIG. 2.
- the prediction unit performs prediction for the current block based on pixels (reference samples) in the previously encoded current picture according to the intra prediction mode of the current block. can do.
- the prediction unit may perform intra prediction to generate a prediction block for the current block from the reference sample.
- Scalable Video Coding (SVC, hereinafter referred to as 'SVC') is a coding method that improves encoding / decoding performance by eliminating redundancy between layers by using texture information, motion information, and residual signals between layers. Way.
- the SVC method may provide various scalability in terms of spatial, temporal, and image quality according to ambient conditions such as a transmission bit rate, a transmission error rate, and a system resource.
- the video stream of the SVC is an enhancement of processing video information using a base layer encoding information and a general video encoding method together with a base layer processing image information using a general video encoding method. It may include an enhanced layer.
- the hierarchical structure may include a plurality of spatial layers, a plurality of temporal layers, a plurality of image quality layers, and the like. Images included in different spatial layers may have different spatial resolutions, and images included in different temporal layers may have different temporal resolutions (frame rates). Also, images included in different image quality layers may have different image quality, for example, different signal-to-noise ratio (SNR).
- SNR signal-to-noise ratio
- the layer may be an image and / or bitstream that is divided based on space (eg, image size), time (eg, encoding order, image output order), image quality, complexity, and the like. Means set.
- FIG. 3 is a conceptual diagram schematically illustrating an example of a multi-layered structure to which SVC is applied.
- a GOP Group of Picture
- FIG. 3 a GOP (Group of Picture) represents a group of pictures.
- SVC may be applied to pictures of a plurality of layers.
- 3 shows an example in which pictures of each layer are arranged according to a picture order count (POC).
- POC picture order count
- Each layer, base layer and enhancement layer may have different characteristics such as bit rate, resolution, and size.
- the bitstream for the base layer may include basic image information
- the bitstream for the enhancement layer may include information about an image having improved base layer quality (eg, accuracy, size, and / or frame rate). It may include.
- each layer may be encoded / decoded in consideration of different characteristics.
- the encoding apparatus of FIG. 1 and the decoding apparatus of FIG. 2 may encode and decode a picture of a corresponding layer for each layer as described with reference to FIGS. 1 and 2.
- pictures of each layer may be encoded / decoded using information of another layer.
- a picture of each layer may be encoded and decoded through inter layer prediction using information of another layer. Therefore, in SVC, the prediction units of the encoding apparatus and the decoding apparatus described with reference to FIGS. 1 and 2 may perform prediction using information of another layer, that is, a reference layer.
- the prediction units of the encoding apparatus and the decoding apparatus may perform inter-layer texture prediction, inter-layer motion information prediction, inter-layer residual signal, etc. using information of another layer.
- inter-layer texture prediction a texture of the current layer (encoding or decoding target layer) is predicted based on texture information of another layer.
- motion information of the current layer is predicted based on motion information (motion vector, reference picture, etc.) of another layer.
- the inter-layer residual signal prediction predicts the residual signal of the current layer based on the residual signal of another layer.
- upsampling when performing inter-layer prediction, upsampling may be performed on reconstructed samples of a reference layer and then used as a prediction signal for an enhancement layer.
- the encoder may signal scalability information and the decoder may perform effective decoding based on the received scalability information.
- scalability information may be included in each NAL unit header. This makes it possible to quickly process each NAL unit from any network node.
- the presence of information about each scalability is provided in the NAL unit header, and the corresponding scalability information is provided in each NAL unit.
- the decoder can quickly process the NAL unit based on the information.
- a method of using a flag As a method of providing information about scalability in the NAL unit header, a method of using a flag, a method of using an identifier, a method of using a flag and an identifier together, and the like can be considered.
- information on scalability is transmitted using a flag in a NAL unit transmitted from an encoder.
- the encoder may include and transmit flags indicating the presence or absence of information on scalabilities in the NAL unit. For example, information (flag) indicating whether at least one of scalability information (scalability information) is present in the NAL unit is transmitted, and if there is scalability information, information about each scalability is provided. A flag indicating presence can be sent.
- Table 1 schematically shows examples of flags transmitted via the NAL unit.
- scalability_info_flag specifies whether scalability information is present in the NAL unit. For example, if the value of scalability_info_flag is 1, it indicates that scalability information exists in the NAL unit, and if the value of scalability_info_flag is 0, it indicates that there is no scalability information in the NAL unit.
- priority_id_flag specifies whether a priority_id value exists in the NAL unit. For example, if the value of priority_id_flag is 1, it indicates that the priority_id value exists in the NAL unit. If the value of priority_id_flag is 0, it indicates that there is no priority_id value in the NAL unit.
- dependency_id_flag specifies whether dependency_id exists in the NAL unit. For example, if the value of dependency_id_flag is 1, it indicates that the dependency_id value exists in the NAL unit. If the value of dependency_id_flag is 0, it indicates that there is no dependency_id value in the NAL unit.
- temporal_id_flag specifies whether temporal_id exists in the NAL unit. For example, if the value of temporal_id_flag is 1, it indicates that the temporal_id value exists in the NAL unit. If the value of temporal_id_flag is 0, it indicates that no temporal_id value exists in the NAL unit.
- quality_id_flag specifies whether quality_id exists in the NAL unit. For example, if the value of quality_id_flagd is 1, it indicates that the quality_id value exists in the NAL unit. If the value of quality_id_flag is 0, it indicates that there is no quality_id value in the NAL unit.
- view_id_flag specifies whether view_id exists in the NAL unit. For example, if the value of view_id_flag is 1, it indicates that the view_id value exists in the NAL unit. If the view_id_flag ⁇ value is 0, it indicates that there is no view_id value in the NAL unit.
- priority_id specifies a priority identifier.
- the priority identifier is assigned for each NAL unit by the encoder and indicates the priority of extraction of the NAL unit or the importance of the NAL unit. Details of priority_id are as described in Annex G Scalable video coding of ITU-T Recommendation H.264.
- dependency_id specifies a dependency identifier for the NAL unit.
- the dependency identifier specifies the layers that support spatial scalability. For example, in spatial scalability, the value of the dependency identifier for the base layer may be set to 0, and the value of the dependency identifier may be increased by 1 for the next enhancement layers. have.
- the details of dependency_id are as described in Annex G Scalable video coding of ITU-T Recommendation H.264.
- quality_id specifies a quality identifier for the NAL unit.
- the quality identifier specifies a quality refinement layer. Details of the quality_id are as described in Annex G Scalable video coding of ITU-T Recommendation H.264.
- temporal_id specifies a temporal identifier for the NAL unit.
- the temporal identifier may specify layers that support temporal scalability. For example, the value of the time identifier for the base layer may be set to 0 for temporal scalability, and the value of the time identifier may be increased by 1 for the enhancement layers. Details of tempor_id are as described in Annex G Scalable video coding of ITU-T Recommendation H.264.
- an identifier of each scalability for the NAL unit may be signaled. For example, if quality scalability and spatial scalability are applied together, if the reference layer for the subordinate layer (e.g., spatial enhancement layer) contains different quality representations, it is signaled which quality representation will be used. Can be.
- long_view_id_flag specifies whether view_id_part2 exists in the NAL unit. For example, if the value of long_view_id_flag is 1, it indicates that view_id_part2 exists in the NAL unit. If the value of long_view_id_flag is 0, it indicates that view_id_part2 does not exist in the NAL unit.
- view_id_part1 is a view identifier of the bitstream.
- view_id_part1 may have a predetermined length.
- view_id_part1 may have a length of 2 bits.
- view_id_part2 is a view identifier in the bitstream. If the value of long_view_id_flag is 1, the view_id_part2 may specify viewpoints in the bitstream together with view_id_part1. View_id_part2 may have a predetermined length. For example, view_id_part2 may have a length of 8 bits, and if the value of long_view_id_flag is 1, the view_id_part2 may have a length of 10 bits in addition to the view_id_part1 having a length of 2 bits to specify views in the bitstream.
- viewpoints may be specified only by view_id_part1 for a bitstream having a small number of views, and viewpoints may be specified by using view_id_part1 and view_id_part2 together for a bitstream having a small number of views.
- a field of a predetermined size may be reserved for information / fields that may be defined or used later.
- 2 bits of reserved_one_2bits are included.
- One or more of these reserved bits may be used to extend the NAL unit header. For example, when a predetermined flag value for specifying whether to expand the NAL unit header is 1, a new byte may be added to the existing NAL unit header.
- N N ⁇ 8
- N N may be defined such that the length of the NAL unit header from forbidden_zero_bit to the corresponding element is an integer multiple of bytes.
- the flag when the flag is used, since the representation is simple, the information for scalability can be easily confirmed by analyzing the NAL unit header. In addition, by not describing an identifier for scalability not supported in the corresponding bitstream, an effect of reducing the bit rate can be obtained.
- each identifier specifies the scalability profile to represent.
- a scalability profile can be a specific combination of scalabilities. For example, given the value of the identifier, information regarding the presence of fields of the corresponding scalability combination and / or length information of the field may be present in the NAL unit header.
- a scalability combination that is a combination of at least one scalability may be referred to as a scalability profile.
- the fields of the scalability combination may be specific fields for describing the scalability dimension of the NAL unit.
- this identifier i.e., the specific value of the NAL unit header element, may be used to indicate whether information about the presence of the fields and / or the length of the field is provided in a particular message or a particular packet of the bitstream.
- Table 2 schematically shows an example of transmitting scalability information using an identifier in a NAL unit header.
- scalability_info_flag specifies whether scalability information is present in the NAL unit. If the value of scalability_info_flag is 1, it indicates that scalability information is present in the NAL unit header, and if the value of scalability_info_flag is 0, it indicates that scalability information is not present in the NAL unit header.
- scalability_identifier is an identifier that specifies a scalability profile.
- Each scalability_identifier value specifies a combination of a corresponding scalability dimension, that is, a scalability profile.
- each scalability_identifier value may correspond to specific fields and / or lengths of fields for indicating scalability information for a specific scalability profile. For example, if there is a specific value of scalability_identifier, this value may indicate a field present in a specific message or a specific packet of a bitstream or a field present in a specific packet or its length information among fields indicating scalability information.
- the ids for scalability that is, the value following scalability_identifier in the example in Table 2, which field / id and its length information, such as priority_id, dependency_id, quality_id, temporal_id, view_id, etc., exist in the NAL unit scalability_identifier It can be determined by the combination specified by.
- priority_id specifies a priority identifier.
- the priority identifier is assigned for each NAL unit by the encoder and indicates the priority of extraction of the NAL unit or the importance of the NAL unit. Details of priority_id are as described in Annex G Scalable video coding of ITU-T Recommendation H.264.
- dependency_id specifies a dependency identifier for the NAL unit.
- the dependency identifier specifies the layers that support spatial scalability. For example, in spatial scalability, the value of the dependency identifier for the base layer may be set to 0, and the value of the dependency identifier may be increased by 1 for the next enhancement layers. have.
- the details of dependency_id are as described in Annex G Scalable video coding of ITU-T Recommendation H.264.
- quality_id specifies a quality identifier for the NAL unit.
- the quality identifier specifies a quality refinement layer. Details of the quality_id are as described in Annex G Scalable video coding of ITU-T Recommendation H.264.
- temporal_id specifies a temporal identifier for the NAL unit.
- the temporal identifier may specify layers that support temporal scalability. For example, the value of the time identifier for the base layer may be set to 0 for temporal scalability, and the value of the time identifier may be increased by 1 for the enhancement layers. Details of tempor_id are as described in Annex G Scalable video coding of ITU-T Recommendation H.264.
- view_id may specify viewpoints in the bitstream as a view identifier in the bitstream.
- other_ids is a place holder for fields or ids that can be added later to the scalability profile.
- a field of a predetermined size may be reserved for information / fields that may be defined or used later.
- 2 bits of reserved_one_2bits are included. One or more of these reserved bits may be used to extend the NAL unit header. For example, when a predetermined flag value for specifying whether to expand the NAL unit header is 1, a new byte may be added to the existing NAL unit header.
- the reserved bit element (element) of the reserved_bits other_ids then is to include other reserved bits.
- N may be defined such that the length of the NAL unit header from forbidden_zero_bit to the corresponding element is an integer multiple of bytes.
- the semantics of most elements are the same as or similar to the example of Table 1.
- the number of bits used for each element is defined by the combination / profile indicated by scalability_identifier.
- Embodiment 2 using scalability_identifier is more flexible than Embodiment 1 using flags, but it may be necessary to maintain information about different combinations of scalability (profiles / profiles) at the nodes of the network to be processed. Can be.
- Profile 1 A value of scalability_identifier indicates a scalability profile including only the following four elements.
- priority_id specifies a priority identifier.
- the priority identifier is assigned for each NAL unit by the encoder and indicates the priority of extraction of the NAL unit or the importance of the NAL unit. Details of priority_id are as described in Annex G Scalable video coding of ITU-T Recommendation H.264.
- dependency_id specifies a dependency identifier for the NAL unit.
- the dependency identifier specifies the layers that support spatial scalability.
- the details of dependency_id are as described in Annex G Scalable video coding of ITU-T Recommendation H.264.
- temporal_id specifies a temporal identifier for the NAL unit.
- the temporal identifier may specify layers that support temporal scalability. Details of the tempor_id are as described in Annex G Scalable video coding of ITU-T Recommendation H.264.
- quality_id specifies a quality identifier for the NAL unit.
- the quality identifier specifies a quality refinement layer. Details of the quality_id are as described in Annex G Scalable video coding of ITU-T Recommendation H.264.
- a value of scalability_identifier indicates a scalability profile including only the following elements.
- view_id may specify views in the bitstream as a view identifier in the bitstream. Details of the view_id are as described in Annex G Scalable video coding of ITU-T Recommendation H.264.
- priority_id specifies a priority identifier.
- the priority identifier is assigned for each NAL unit by the encoder and indicates the priority of extraction of the NAL unit or the importance of the NAL unit. Details of priority_id are as described in Annex G Scalable video coding of ITU-T Recommendation H.264.
- scalability_identifier when the value of scalability_identifier is 31, a specific message of the bitstream may be used to indicate information about the existence and length of fields.
- scal_info a specific message indicating information on the presence and length of fields related to scalability.
- Table 3 schematically shows an example of scal_info.
- XXX_length indicates the number of bits used for the corresponding element / field in the NAL unit header.
- XXX_length may indicate whether the corresponding element / field exists in the NAL unit header. If the value of XXX_length is 0, that is, the length of the element / field is 0 or the number of bits used in the element / field is 0, this indicates that the element or field is not present in the NAL unit header. For example, if the value of priority_id_length is 0, priority_id does not exist in the NAL unit header.
- Scal_info of Table 3 may also be transmitted in the NAL unit header along with other scalability information.
- flags and identifiers may alternatively be used to give the content provider more flexibility.
- scalability_info specifies whether scalability information exists in the NAL unit header, if scalability information exists, whether to indicate existence of individual scalability information using a flag, or whether to indicate presence of individual scalability information using an identifier. can do.
- scalability_info For example, if the value of scalability_info is 0, it indicates that there is no scalability information in the NAL unit. If the value of scalability_info is 1, it indicates that there is an existence of individual scalability information by using a flag, and the value of scalability_info is 2 This indicates that the identifier is used to indicate the existence of individual scalability information.
- Table 4 briefly illustrates an example of a method of transmitting information regarding the presence or absence of scalability information by combining a method of using a flag and a method of using an identifier.
- scalability_info when the value of scalability_info is 1, scalability information exists in the NAL unit, and indicates the existence of individual scalability information using a flag.
- priority_id_flag specifies whether a priority_id value exists in the NAL unit. For example, if the value of priority_id_flag is 1, it indicates that the priority_id value exists in the NAL unit. If the value of priority_id_flag is 0, it indicates that there is no priority_id value in the NAL unit.
- dependency_id_flag specifies whether dependency_id exists in the NAL unit. For example, if the value of dependency_id_flag is 1, it indicates that the dependency_id value exists in the NAL unit. If the value of dependency_id_flag is 0, it indicates that there is no dependency_id value in the NAL unit.
- temporal_id_flag specifies whether temporal_id exists in the NAL unit. For example, if the value of temporal_id_flag is 1, it indicates that the temporal_id value exists in the NAL unit. If the value of temporal_id_flag is 0, it indicates that no temporal_id value exists in the NAL unit.
- quality_id_flag specifies whether quality_id exists in the NAL unit. For example, if the value of quality_id_flagd is 1, it indicates that the quality_id value exists in the NAL unit. If the value of quality_id_flag is 0, it indicates that there is no quality_id value in the NAL unit.
- view_id_flag specifies whether view_id exists in the NAL unit. For example, if the value of view_id_flag is 1, it indicates that the view_id value exists in the NAL unit. If the view_id_flag ⁇ value is 0, it indicates that there is no view_id value in the NAL unit.
- priority_id specifies a priority identifier.
- dependency_id specifies a dependency identifier for the NAL unit.
- quality_id specifies a quality identifier for the NAL unit.
- temporal_id specifies a temporal identifier for the NAL unit. Details of priority_id, dependency_id, quality_id and tempor_id are as described in Annex G Scalable video coding of ITU-T Recommendation H.264.
- long_view_id_flag specifies whether view_id_part2 exists in the NAL unit. For example, if the value of long_view_id_flag is 1, it indicates that view_id_part2 exists in the NAL unit. If the value of long_view_id_flag is 0, it indicates that view_id_part2 does not exist in the NAL unit.
- view_id_part1 is a view identifier of the bitstream.
- view_id_part1 may have a predetermined length.
- view_id_part1 may have a length of 2 bits.
- view_id_part2 is a view identifier in the bitstream. If the value of long_view_id_flag is 1, the view_id_part2 may specify viewpoints in the bitstream together with view_id_part1. View_id_part2 may have a predetermined length. For example, view_id_part2 may have a length of 8 bits, and if the value of long_view_id_flag is 1, the view_id_part2 may have a length of 10 bits in addition to the view_id_part1 having a length of 2 bits to specify views in the bitstream.
- Two bits of reserved_one_2bits are derived for information / fields that can be defined or used later, one or more of which may be used to extend the NAL unit header.
- reserved_bits is for containing other reserved bits.
- scalability_info when the value of scalability_info is 2, scalability information exists in the NAL unit, and indicates the existence of individual scalability information by using an identifier.
- scalability_identifier is an identifier that specifies a scalability profile.
- Each scalability_identifier value specifies a combination of a corresponding scalability dimension, that is, a scalability profile.
- each scalability_identifier value may correspond to individual fields and / or lengths of fields constituting scalability information for a specific scalability profile.
- a specific value of scalability_identifier may indicate fields provided in a specific message or a specific packet of a bitstream or fields present in a NAL unit and length information among fields indicating scalability information.
- the ids for scalability that is, the value following scalability_identifier in the example in Table 2, which field / id and its length information, such as priority_id, dependency_id, quality_id, temporal_id, view_id, etc., exist in the NAL unit scalability_identifier It can be determined by the combination specified by.
- priority_id specifies a priority identifier.
- dependency_id specifies a dependency identifier for the NAL unit.
- quality_id specifies a quality identifier for the NAL unit.
- temporal_id specifies a temporal identifier for the NAL unit.
- view_id may specify viewpoints in the bitstream as a view identifier in the bitstream. Details of priority_id, dependency_id, quality_id, tempor_id and view_id are as described in Annex G Scalable video coding of ITU-T Recommendation H.264.
- FIG. 4 is a flowchart schematically illustrating an operation of an encoder according to the present invention.
- the encoder encodes the input video (S410).
- the encoder performs the encoding method as described above with reference to FIG. 1.
- the encoder may encode the video by applying the SVC as described with reference to FIGS. 1 and 3.
- the encoder transmits the encoded video information (S410). As described above with reference to FIGS. 1 and 3, the encoder may transmit encoded information in a bitstream. For example, the transmission of the encoded video information may be the transmission of the entropy encoded information described with reference to FIG. 1.
- the bitstream for transmitting the encoded video information may have a plurality of hierarchical structures reflecting the scalability applied to the encoding, and the transmitted video information may include the scalability information transmitted in the NAL unit header.
- the scalability information may be information indicating whether information of individual scalability exists in the NAL unit corresponding to the NAL unit header.
- the scalability information may be information indicating whether there is information of individual scalability existing in the NAL unit corresponding to the NAL unit header and information on the number of bits used for the information of the individual scalability. have.
- the scalability information may be a flag indicating whether a NAL unit corresponding to the NAL unit header includes information of individual scalability.
- the information of the individual scalability may include information indicating whether a first view ID and a second view ID and a second view ID are used to specify views in the bitstream.
- the scalability information may be information (eg, an identifier) specifying a scalability profile of the NAL unit corresponding to the NAL unit header.
- the scalability profile may be information indicating a combination of individual scalabilities included in the NAL unit.
- the scalability information indicates (1) whether the information of the individual scalability exists in the NAL unit corresponding to the NAL unit header, and (2) if the information of the individual scalability exists in the NAL unit It may be information specifying whether the presence of scalability-specific information is indicated by a flag or the combination of individual scalability is indicated by an identifier.
- FIG. 5 is a flowchart schematically illustrating an operation of a decoder according to the present invention.
- the decoder receives the encoded video information as a bitstream (S510).
- video information may be encoded by applying SVC, and video information to which SVC is applied may be transmitted from an encoder through a bitstream having a multi-layer structure reflecting scalability applied to encoding. .
- the received video information may include scalability information transmitted in the NAL unit header.
- the scalability information may be information indicating whether information of individual scalability exists in the NAL unit corresponding to the NAL unit header.
- the scalability information may be information indicating whether there is information of individual scalability existing in the NAL unit corresponding to the NAL unit header and information on the number of bits used for the information of the individual scalability. have.
- the scalability information may be a flag indicating whether a NAL unit corresponding to the NAL unit header includes information of individual scalability.
- the information of the individual scalability may include information indicating whether a first view ID and a second view ID and a second view ID are used to specify views in the bitstream.
- the scalability information may be information (eg, an identifier) specifying a scalability profile of the NAL unit corresponding to the NAL unit header.
- the scalability profile may be information indicating a combination of individual scalabilities included in the NAL unit.
- the scalability information indicates (1) whether the information of the individual scalability exists in the NAL unit corresponding to the NAL unit header, and (2) if the information of the individual scalability exists in the NAL unit, It may be information specifying whether the presence of scalability-specific information is indicated by a flag or the combination of individual scalability is indicated by an identifier.
- the decoder may reconstruct the video by decoding the received video information (S520).
- the decoder may decode the video based on the scalability applied by the encoder. Details of a decoding method performed by the decoder are as described with reference to FIGS. 2 and 3.
- the encoder 600 includes an encoder 610 and a transmitter 620.
- the encoder 610 encodes the input video, and the transmitter 620 transmits the encoded video information.
- the bitstream for transmitting the encoded video information may have a plurality of hierarchical structures reflecting the scalability applied to the encoding, and the transmitted video information may include the scalability information transmitted in the NAL unit header.
- the scalability information is as described in Embodiments 1 to 3 and FIG.
- the encoder 610 may correspond to the encoding apparatus 100 described with reference to FIG. 1 and may include respective functional blocks described with reference to FIG. 1.
- the transmitter 620 transmits the entropy encoded information in FIG. 1 as a bitstream.
- the decoder 700 includes a receiver 710 and a decoder 720.
- the receiver 710 receives video information from the encoder.
- the received video information may be encoded by applying SVC, and the video information to which SVC is applied may be transmitted from an encoder through a bitstream having a plurality of hierarchical structures reflecting scalability applied to encoding.
- the received video information may include scalability information transmitted in the NAL unit header.
- the scalability information is as described in Embodiments 1 to 3 and FIG. 4.
- the decoder 720 reconstructs the video by decoding the received video information.
- the specific method of decoding is as described with reference to FIGS. 2 and 3.
- the decoder 720 may correspond to the decoding apparatus 200 described with reference to FIG. 2 and may include respective functional blocks described with reference to FIG. 2.
- the receiver 710 may transmit the received video information to the entropy decoder in the decoder 720.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
본 발명은 비디오 정보의 전송 방법과 이를 이용한 복호화 방법 및 장치에 관한 것으로서, 본 발명에 따른 비디오 정보의 전송 방법은 비디오를 부호화하는 단계 및 부호화된 비디오 정보를 비트스트림으로 전송하는 단계를 포함하며, 상기 전송되는 비디오 정보는 NAL (Network Abstract Layer) 유닛 헤더에서 전송되는 스케일러빌리티(scalability) 정보를 포함할 수 있다.
Description
본 발명은 영상 부호화 및 복호화 방법에 관한 것으로서, 더 구체적으로는 비디오 비트스트림 내의 계층적 정보(scalability information)를 이용하여 적응적인 비디오 전송 및 소비를 가능하게 하는 기술에 관한 것이다.
최근 멀티미디어(multimedia) 환경이 구축되면서, 다양한 단말과 네트워크가 이용되고 있으며, 이에 따른 사용자 요구도 다변화하고 있다.
성능과 컴퓨팅 능력(computing ability)가 다양해짐에 따라서 지원하는 성능도 기기별로 다양해지고 있으며, 정보가 전송되는 네트워크 역시 유무선 네트워크와 같은 외형적인 구조뿐만 아니라, 전송하는 정보의 형태, 정보량과 속도 등 기능별로도 다양해지고 있다. 사용자는 원하는 기능에 따라서 사용할 단말과 네트워크를 선택하며, 사용자에게 기업이 제공하는 단말과 네트워크의 스펙트럼도 다양해지고 있다.
예컨대, 다양한 통신망과 단말 장치가 사용됨에 따라서 스케일러빌리티(Scalability)는 비디오 포맷의 중요한 기능으로 부각되고 있다.
스케일러빌리티에 대한 표준으로서, AVC(Advanced Video Coding)의 확장 표준인 SVC(Scalable Video Coding)는 압축 효율을 최대한 유지하면서, 다양한 범위의 비트율(bitrate)을 가지는 비트스트림을 생성/이용하도록 하고 있다.
설명한 바와 같이, 다양한 통신망과 단말 장치가 사용되고 있는 환경을 고려하여, SVC가 적용되는 비트스트림은 쉽고 다양한 방식으로 추출될 수 있다.
구체적으로, SVC는 공간적(spatial) 스케일러빌리티, 시간적(temporal) 스케일러빌리티, SNR(Signal to Noise Ratio) 스케일러빌리티 등을 제공할 수 있다.
하나의 SVC 비트스트림은 패킷-스위칭 네트워크(packet-switching network)를 통한 비디오의 (적응적) 전송을 용이하게 하는 NAL(Network Abstraction Layer) 유닛들로 구성된다.
또한, AVC의 또 다른 확장 표준인 MVC(Multi-view Video Coding)는 뷰(view) 스케일러빌리티를 제공한다. 이때, 뷰 간의 관계는 SVC 비트스트림의 공간 계층(spatial layer) 간의 관계와 유사하다고 할 수 있다.
콘텐츠 전달 경로(contents delivery path)에서의 모든 노드에서 비트스트림을 효과적이며 효율적으로 비트스트림의 스케일러빌리티 정보가 매우 중요하다. 따라서, 네트워크 내의 노드들은 관련 비트스트림의 상태 정보를 저장하지 않고 패킷 단위로 처리할 수 있어야 한다.
본 발명은 계층적 비트스트림 내의 스케일러빌리티 정보를 기술하는 방법과 이를 이용하는 장치를 제공하는 것을 목적으로 한다.
이를 위하여, 본 발명은 다양한 종류의 비트스트림의 스케일러빌리티 정보를 표현하기 위한 유연한 방법과 이를 이용하는 장치를 제공하는 것을 목적으로 한다.
또한, 본 발명은 계층적 비트스트림에 스케일러빌리티를 적용하기 위해 패킷 레벨에서 효율적인 적응 변환을 가능하게 하는 방법 및 장치를 제공하는 것을 목적으로 한다.
본 발명의 일 실시형태는 비디오 정보 전송 방법으로서, 비디오를 부호화하는 단계 및 부호화된 비디오 정보를 비트스트림으로 전송하는 단계를 포함하며, 상기 전송되는 비디오 정보는 NAL (Network Abstract Layer) 유닛 헤더에서 전송되는 스케일러빌리티(scalability) 정보를 포함할 수 있다.
본 발명의 다른 실시형태는 상기 방법으로 전송되는 비디오 정보를 이용하는 복호화 방법으로서, 부호화된 비디오 정보를 비트스트림으로 수신하는 단계 및 상기 비디오 정보를 기반으로 비디오를 복호화 하는 단계를 포함하며, 상기 수신한 비디오 정보는 NAL (Network Abstract Layer) 유닛 헤더에서 전송되는 스케일러빌리티(scalability) 정보를 포함할 수 있다.
본 발명의 또 다른 실시형태는 비디오 부호화 장치로서, 입력된 비디오를 부호화하는 부호화부 및 부호화된 비디오 정보를 전송하는 전송부를 포함하며, 상기 전송되는 비디오 정보는 NAL (Network Abstract Layer) 유닛 헤더에서 전송되는 스케일러빌리티(scalability) 정보를 포함할 수 있다.
본 발명의 또 다른 실시형태는 비디오 복호화 장치로서, 부호화된 비디오 정보를 비트스트림으로 수신하는 수신부 및 상기 비디오 정보를 기반으로 비디오를 복호화 하는 복호화부를 포함하며, 상기 수신한 비디오 정보는 NAL (Network Abstract Layer) 유닛 헤더에서 전송되는 스케일러빌리티(scalability) 정보를 포함할 수 있다.
이때, 상기 스케일러빌리티 정보는, 상기 NAL 유닛 헤더에 대응하는 NAL 유닛에 개별 스케일러빌리티의 정보가 존재하는지를 지시할 수 있다. 또한, 상기 스케일러빌리티 정보는, 상기 NAL 유닛 헤더에 대응하는 NAL 유닛에 존재하는 개별 스케일러빌리티의 정보가 존재하는지와 함께 상기 개별 스케일러빌리티의 정보에 사용된 비트 수에 관한 정보가 존재하는지를 지시할 수도 있다.
상기 스케일러빌리티 정보는, 상기 NAL 유닛 헤더에 대응하는 NAL 유닛이 개별 스케일러빌리티의 정보를 포함하는지를 지시하는 플래그일 수 있다.
또한, 상기 스케일러빌리티 정보는 상기 NAL 유닛 헤더에 대응하는 NAL 유닛의 스케일러빌리티 프로파일(profile)을 특정할 수도 있다.
또한, 상기 스케일러빌리티 정보는, 상기 NAL 유닛 헤더에 대응하는 NAL 유닛에 개별 스케일러빌리티의 정보가 존재하는지를 지시하며, 상기 NAL 유닛에 개별 스케일러빌리티의 정보가 존재하는 경우에, 상기 스케일러빌리티 정보는 상기 개별 스케일러빌리티별 정보의 존재 여부가 플래그로 지시되는지 상기 개별 스케일러빌리티의 조합이 식별자에 의해 지시되는지를 특정할 수도 있다.
본 발명에 의하면, 계층적 비디오 부호화를 이용하여 부호화된 비트스트림의 다양한 스케일러빌리티 정보들을 효율적으로 이용할 수 있다.
본 발명에 의하면, 다양한 스케일러빌리티 정보들 중에서 해당 비트스트림이 표현 가능한 스케일러빌리티 정보만을 표현할 수 있도록 하여 부호화 효율을 증대시킬 수 있다.
본 발명에 의하면, 스케일러빌리티 정보의 표현 방식을 다양화함으로써 패킷 레벨에서의 효율적인 적응 변환이 가능하다.
도 1은 부호화 장치의 일 실시예에 따른 기본 구성을 나타내는 블록도이다.
도 2는 복호화 장치의 일 실시예에 따른 기본 구성을 나타내는 블록도이다.
도 3은 SVC가 적용되는 복수 계층 구조의 일 예를 개략적으로 나타낸 개념도이다.
도 4는 본 발명에 따른 부호화기의 동작을 개략적으로 설명하는 순서도이다.
도 5는 본 발명에 따른 복호화기의 동작을 개략적으로 설명하는 순서도이다.
도 6은 부호화기(부호화 장치)의 구조를 개략적으로 설명하는 블록도이다.
도 7은 복호화기(복호화 장치)의 구성을 개략적으로 설명하는 블록도이다.
이하, 도면을 참조하여 본 발명의 실시예에 대하여 구체적으로 설명한다. 본 명세서의 실시예를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 명세서의 요지를 흐릴 수 있다고 판단되는 경우에는 해당 설명을 생략할 수도 있다.
본 명세서에서 어떤 구성 요소가 다른 구성 요소에 “연결되어” 있다거나 “접속되어” 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있는 것을 의미할 수도 있고, 중간에 다른 구성 요소가 존재하는 것을 의미할 수도 있다. 아울러, 본 명세서에서 특정 구성을 “포함”한다고 기술하는 내용은 해당 구성 이외의 구성을 배제하는 것이 아니며, 추가적인 구성이 본 발명의 실시 또는 본 발명의 기술적 사상의 범위에 포함될 수 있음을 의미한다.
제1, 제2 등의 용어는 다양한 구성들을 설명하는데 사용될 수 있지만, 상기 구성들은 상기 용어에 의해 한정되지 않는다. 상기 용어들은 하나의 구성을 다른 구성으로부터 구별하는 목적으로 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성은 제2 구성으로 명명될 수 있고, 유사하게 제2 구성도 제1 구성으로 명명될 수 있다.
또한 본 발명의 실시예에 나타나는 구성부들은 서로 다른 특징적인 기능을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성 단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 포함한 것으로 각 구성부 중 적어도 두 개의 구성부가 하나의 구성부를 이루거나, 하나의 구성부가 복수 개의 구성부로 나뉘어져 기능을 수행할 수 있다. 각 구성부의 통합된 실시예 및 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리 범위에 포함된다.
도 1은 부호화 장치의 일 실시예에 따른 기본 구성을 나타내는 블록도이다.
도 1을 참조하면, 부호화 장치(100)는 인터 예측부(110), 인트라 예측부(120), 스위치(125), 감산기(130), 변환부(135), 양자화부(140), 엔트로피 부호화부(150), 역양자화부(160), 역변환부(170), 가산기(175), 필터부(180) 및 픽처 버퍼(190)를 포함한다.
부호화 장치(100)는 입력 영상에 대해 인트라(intra) 모드 또는 인터(inter) 모드로 부호화를 수행하고 비트스트림(bitstream)을 출력할 수 있다. 인트라 모드인 경우 스위치(125)가 인트라로 전환되고, 인터 모드인 경우 스위치(125)가 인터로 전환된다. 부호화 장치(100)는 입력 영상의 입력 블록에 대한 예측 블록을 생성한 후, 입력 블록과 예측 블록의 차분을 부호화할 수 있다.
인트라 모드인 경우, 인트라 예측부(120)는 현재 블록 주변의 이미 부호화된 블록의 화소값을 이용하여 공간적 예측을 수행하여 예측 블록을 생성할 수 있다.
인터 모드인 경우, 인터 예측부(110)는, 움직임 예측 과정에서 픽처 버퍼(190)에 저장되어 있는 참조 영상에서 입력 블록에 대응하는 영역을 찾아 움직임 벡터를 구할 수 있다. 인터 예측부(110)는 움직임 벡터와 픽처 버퍼(190)에 저장되어 있는 참조 영상을 이용하여 움직임 보상을 수행함으로써 예측 블록을 생성할 수 있다.
감산기(130)는 입력 블록과 생성된 예측 블록의 차분에 의해 레지듀얼 블록(residual block)을 생성할 수 있다. 변환부(135)는 레지듀얼 블록에 대해 변환(transform)을 수행하여 변환 계수(transform coefficient)를 출력할 수 있다. 그리고 양자화부(140)는 입력된 변환 계수를 양자화 파라미터에 따라 양자화하여 양자화된 계수(quantized coefficient)를 출력할 수 있다.
엔트로피 부호화부(150)는, 양자화부(140)에서 산출된 값들 또는 부호화 과정에서 산출된 부호화 파라미터 값 등을 기초로, 양자화된 계수를 확률 분포에 따라 엔트로피 부호화하여 비트스트림(bitstream)을 출력할 수 있다.
양자화된 계수는 역양자화부(160)에서 역양자화되고 역변환부(170)에서 역변환될 수 있다. 역양자화, 역변환된 계수는 가산기(175)를 통해 예측 블록과 더해지고 복원 블록이 생성될 수 있다.
복원 블록은 필터부(180)를 거치고, 필터부(180)는 디블록킹 필터(deblocking filter), SAO(Sample Adaptive Offset), ALF(Adaptive Loop Filter) 중 적어도 하나 이상을 복원 블록 또는 복원 픽쳐에 적용할 수 있다. 필터부(180)를 거친 복원 블록은 픽처 버퍼(190)에 저장될 수 있다.
도 2는 복호화 장치의 일 실시예에 따른 기본 구성을 나타내는 블록도이다.
도 2를 참조하면, 복호화 장치(200)는 엔트로피 복호화부(210), 역양자화부(220), 역변환부(230), 인트라 예측부(240), 인터 예측부(250), 필터부(260) 및 픽처 버퍼(270)를 포함한다.
복호화 장치(200)는 부호화 장치에서 출력된 비트스트림을 입력 받아 인트라 모드 또는 인터 모드로 복호화를 수행하고 재구성된 영상, 즉 복원 영상을 출력할 수 있다. 인트라 모드인 경우 스위치가 인트라로 전환되고, 인터 모드인 경우 스위치가 인터로 전환될 수 있다.
복호화 장치(200)는 입력 받은 비트스트림으로부터 복원된 레지듀얼 블록(residual block)을 얻고 예측 블록을 생성한 후 복원된 레지듀얼 블록과 예측 블록을 더하여 재구성된 블록, 즉 복원 블록을 생성할 수 있다.
엔트로피 복호화부(210)는, 입력된 비트스트림을 확률 분포에 따라 엔트로피 복호화한다. 엔트로피 복호화에 의해, 양자화된 (변환) 계수가 생성될 수 있다.
양자화된 계수는 역양자화부(220)에서 역양자화되고 역변환부(230)에서 역변환되며, 양자화된 계수가 역양자화/역변환된 결과, 복원된 레지듀얼 블록(residual block)이 생성될 수 있다.
인트라 모드인 경우, 인트라 예측부(240)는 현재 블록 주변의 이미 부호화된 블록의 화소값을 이용하여 공간적 예측을 수행하여 예측 블록을 생성할 수 있다. 인터 모드인 경우, 인터 예측부(250)는 움직임 벡터 및 픽처 버퍼(270)에 저장되어 있는 참조 영상을 이용하여 움직임 보상을 수행함으로써 예측 블록을 생성할 수 있다.
복원된 레지듀얼 블록과 예측 블록은 가산기(255)를 통해 더해지고, 더해진 블록은 필터부(260)를 거친다. 필터부(260)는 디블록킹 필터, SAO, ALF 중 적어도 하나를 복원 블록 또는 복원 픽쳐에 적용할 수 있다. 필터부(260)는 재구성된 영상, 즉 복원 영상을 출력한다. 복원 영상은 픽처 버퍼(270)에 저장되어 화면 간 예측에 사용될 수 있다.
상술한 바와 같이, 부호화 장치 및 복호화 장치는 영상(video) 부호화/복호화를 위해 현재 블록에 대한 예측을 수행한다.
예측은 부호화 장치/복호화 장치, 구체적으로 부호화 장치/복호화 장치의 예측부에서 수행될 수 있다. 부호화 장치의 예측부는, 예컨대 도 1의 인터 예측부(110), 인트라 예측부(120) 등을 포함할 수 있다. 복호화 장치의 예측부는, 예컨대 도 2의 인트라 예측부(240), 인터 예측부(250) 등을 포함할 수 있다.
현재 블록에 대한 예측 모드가 인트라 예측(intra prediction)인 경우에, 예측부는 현재 블록의 인트라 예측 모드에 따라서, 이전에 부호화된 현재 픽처 내의 픽셀(참조 샘플)을 기반으로 현재 블록에 대한 예측을 수행할 수 있다. 예측부는 참조 샘플로부터 현재 블록에 대한 예측 블록을 생성하는 인트라 예측을 수행할 수 있다.
스케일러블 영상 코딩 방법(Scalable Video Coding: SVC, 이하 ‘SVC’라 함)은 계층(layer) 간의 텍스쳐 정보, 움직임 정보, 잔여 신호 등을 활용하여 계층 간 중복성을 제거하여 부호화/복호화 성능을 높이는 코딩 방법이다. SVC 방법은, 전송 비트율, 전송 에러율, 시스템 자원 등의 주변 조건에 따라, 공간적, 시간적, 화질적 관점에서 다양한 스케일러빌리티를 제공할 수 있다.
SVC는, 다양한 네트워크 상황에 적용 가능한 비트스트림을 제공할 수 있도록, 복수 계층(multiple layers) 구조에 적용될 수 있다. 예를 들어 SVC의 비디오 스트림은, 일반적인 영상 부호화 방법을 이용하여 영상 정보를 처리하는 기본 계층(base layer)과 함께, 기본 계층의 부호화 정보 및 일반적인 영상 부호화 방법을 함께 사용하여 영상 정보를 처리하는 향상 계층(enhanced layer)을 포함할 수 있다.
계층 구조는 복수의 공간 계층, 복수의 시간 계층, 복수의 화질 계층 등을 포함할 수 있다. 서로 다른 공간 계층에 포함된 영상들은 서로 다른 공간적 해상도를 가질 수 있으며, 서로 다른 시간 계층에 포함된 영상들은 서로 다른 시간적 해상도(프레임율)를 가질 수 있다. 또한 서로 다른 화질 계층에 포함된 영상들은 서로 다른 화질, 예를 들어 서로 다른 SNR(Signal-to-Noise Ratio)을 가질 수 있다.
여기서, 계층(layer)은 공간(예를 들어, 영상 크기), 시간(예를 들어, 부호화 순서, 영상 출력 순서), 화질, 복잡도 등을 기준으로 구분되는 영상 및/또는 비트스트림(bitstream)의 집합을 의미한다.
도 3은 SVC가 적용되는 복수 계층 구조의 일 예를 개략적으로 나타낸 개념도이다. 도 3에서 GOP(Group of Picture)는 픽쳐의 그룹을 나타낸다.
도 3을 참조하면, 상술한 바와 같이, SVC는 복수 계층의 픽처들에 대하여 적용될 수 있다. 도 3에서는 각 계층의 픽처들이 POC(Picture Order Count)에 따라 배열되어 있는 예를 보여준다. 각 계층, 기본 계층과 향상 계층들은 서로 다른 비트율, 해상도, 크기 등의 특성을 가질 수 있다. 기본 계층에 대한 비트스트림은 기본적인 영상 정보를 포함할 수 있고, 향상 계층에 대한 비트스트림은 기본 계층의 품질(정확도, 크기 및/또는 프레임 레이트(frame rate) 등)이 더 향상된 영상에 대한 정보를 포함할 수 있다.
따라서, 각 계층은 서로 다른 특성을 고려하여 부호화/복호화될 수 있다. 예컨대, 도 1의 부호화 장치 및 도 2의 복호화 장치가 각 계층별로 해당 계층의 픽처를 도 1 및 도 2에 관해 설명한 바와 같이 부호화하고 복호화할 있다.
또한, 각 계층의 픽처는 다른 계층의 정보를 이용하여 부호화/복호화될 수도 있다. 예컨대, 각 계층의 픽처는 다른 계층의 정보를 이용한 계층 간 예측(inter layer prediction)을 통해 부호화되고 복호화될 수 있다. 따라서, SVC에 있어서, 도 1과 도 2에서 설명한 부호화 장치 및 복호화 장치의 예측부는 다른 계층, 즉 참조 계층(reference layer)의 정보를 이용한 예측을 수행할 수 있다. 부호화 장치 및 복호화 장치의 예측부는 다른 계층의 정보를 이용하여 계층 간 텍스처(texture) 예측, 계층 간 움직임 정보 예측, 계층 간 잔여 신호(residual) 등을 수행할 수 있다.
계층 간 텍스처 예측에서는 다른 계층의 텍스처 정보에 기반하여 현재 계층(부호화 또는 복호화 대상 계층)의 텍스처를 예측한다. 계층 간 움직임 정보 예측에서는 다른 계층의 움직임 정보(움직임 벡터, 참조 픽처 등)에 기반하여 현재 계층의 움직임 정보를 예측한다. 계층 간 잔여 신호 예측에서는 다른 계층의 잔여 신호에 기반하여 현재 계층의 잔여 신호를 예측한다.
SVC에서는 계층 간 예측을 수행하는 경우에, 참조 계층의 복원된 샘플들에 대해서 업샘플링을 수행한 후 향상 계층에 대한 예측 신호로 사용할 수도 있다.
다른 계층의 정보를 이용하여 현재 계층이 부호화되고 복호화되므로, 계층 간의 중복된 정보를 처리하는 복잡도를 줄일 수 있으며, 중복된 정보를 전송하는 오버헤드를 줄일 수도 있다.
한편, 계층적 비트스트림 구조에서 다양한 종류의 스케일러빌리티 정보를 표현하고, 패킷 레벨에서 효율적인 적응 변환을 하기 위해, 스케일러빌리티 정보를 효과적으로 시그널링하고 수신하는 방법 및 장치가 필요하다. 예컨대, 부호화기에서는 스케일러빌리티 정보를 시그널링하고 복호화기에서는 수신한 스케일러빌리티 정보를 기반으로 효과적인 복호화를 수행할 수 있다.
본 발명에서는 각각의 NAL 유닛(unit) 헤더(header)에 스케일러빌리티 정보가 포함되도록 할 수 있다. 이를 통해서 임의의 네트워크 노드에서 각 NAL 유닛을 빠르게 처리할 수 있게 된다.
NAL 유닛 헤더에서 각각의 스케일러빌리티에 대한 정보의 존부를 제공하며, 각각의 NAL 유닛에서는 이에 대응한 스케일러빌리티 정보가 제공된다.
예컨대, 부호화기가 스케일러빌리티 정보를 포함하는 NAL 유닛 헤더를 전송하면, 복호화기는 해당 정보를 기반으로 NAL 유닛을 빠르게 처리할 수 있다.
NAL 유닛 헤더에서 스케일러빌리티에 관한 정보를 제공하는 방법으로 플래그(flag)를 이용하는 방법, 식별자(identifier)를 이용하는 방법, 플래그와 식별자를 함께 이용하는 방법 등을 고려할 수 있다.
플래그를 이용하는 방법
본 실시예에서는 부호화기로부터 전송되는 NAL 유닛에서 플래그를 이용하여 스케일러빌리티에 관한 정보가 전송된다.
부호화기는 NAL 유닛에 스케일러빌리티들에 대한 정보의 유무를 지시하는 플래그들을 포함시켜 전송할 수 있다. 예를 들어, NAL 유닛에 스케일러빌리티에 관한 정보(스케일러빌리티 정보)가 적어도 하나 이상 존재하는지를 지시하는 정보(플래그)가 전송되며, 스케일러빌리티에 관한 정보가 존재하는 경우에 각 스케일러빌리티에 대한 정보별로 존부를 지시하는 플래그가 전송되도록 할 수 있다.
표 1은 NAL 유닛을 통해 전송되는 플래그들의 예를 개략적으로 나타낸 것이다.
<표 1>
표 1의 예에서, scalability_info_flag는 NAL 유닛에 스케일러빌리티 정보가 존재하는지를 특정한다. 예컨대, scalability_info_flag의 값이 1이면, NAL 유닛에 스케일러빌리티 정보가 존재한다는 것을 지시하고, scalability_info_flag의 값이 0이면 NAL 유닛에 스케일러빌리티 정보가 존재하지 않는다는 것을 지시한다.
priority_id_flag는 NAL 유닛에 priority_id 값이 존재하는지를 특정한다. 예컨대, priority_id_flag의 값이 1이면, NAL 유닛에 priority_id 값이 존재하는 것을 지시하고, priority_id_flag의 값이 0이면, NAL 유닛에 priority_id 값이 존재하지 않는다는 것을 지시한다.
dependency_id_flag는 NAL 유닛에 dependency_id가 존재하는지를 특정한다. 예컨대, dependency_id_flag의 값이 1이면, NAL 유닛에 dependency_id 값이 존재한다는 것을 지시하고, dependency_id_flag의 값이 0이면, NAL 유닛에 dependency_id 값이 존재하지 않는다는 것을 지시한다.
temporal_id_flag는 NAL 유닛에 temporal_id가 존재하는지를 특정한다. 예컨대, temporal_id_flag의 값이 1이면, NAL 유닛에 temporal_id 값이 존재하는 것을 지시하고, temporal_id_flag의 값이 0이면, NAL 유닛에 temporal_id 값이 존재하지 않는다는 것을 지시한다.
quality_id_flag는 NAL 유닛에 quality_id가 존재하는지를 특정한다. 예컨대, quality_id_flagd의 값이 1이면, NAL 유닛에 quality_id 값이 존재하는 것을 지시하고, quality_id _flag의 값이 0이면 NAL 유닛에 quality_id 값이 존재하지 않는 것을 지시한다.
view_id_flag는 NAL 유닛에 view_id가 존재하는지를 특정한다. 예컨대, view_id_flag 의 값이 1이면, NAL 유닛에 view_id 값이 존재하는 것을 지시하고, view_id_flag 읙 값이 0이면, NAL 유닛에 view_id 값이 존재하지 않는 것을 지시한다.
priority_id는 우선 식별자(priority identifier)를 특정한다. 우선 식별자는 부호화기에 의해 NAL 유닛마다 할당되며, NAL 유닛의 추출 우선 순위 혹은 NAL 유닛의 중요도를 지시한다. priority_id의 구체적인 내용은 ITU-T Recommendation H.264의 Annex G Scalable video coding에 기술된 바와 같다.
dependency_id는 NAL 유닛에 대한 종속 식별자(dependency identifier)를 특정한다. 종속 식별자는 공간적 스케일러빌리티를 지원하는 계층들을 특정한다. 예컨대, 공간적 스케일러빌리티에 있어서, 기본 계층(base layer)에 대한 종속 식별자의 값은 0으로 설정될 수 있으며, 다음 향상 계층(enhancement layer)들에 대해서는 종속 식별자의 값을 1씩 증가시켜 할당할 수 있다. dependency_id의 구체적인 내용은 ITU-T Recommendation H.264의 Annex G Scalable video coding에 기술된 바와 같다.
quality_id는 NAL 유닛에 대한 품질 식별자(quality identifier)를 특정한다. 품질 식별자는 품질 개선 계층(quality refinement layer)를 특정한다. quality_id의 구체적인 내용은 ITU-T Recommendation H.264의 Annex G Scalable video coding에 기술된 바와 같다.
temporal_id는 NAL 유닛에 대한 시간 식별자(temporal identifier)를 특정한다. 시간 식별자는 시간적 스케일러빌리티를 지원하는 계층들을 특정할 수 있다. 예컨대, 시간적 스케일러빌리티에 대하여 기본 계층에 대한 시간 식별자의 값을 0으로 설정하고, 향상 계층들에 대하여 1씩 시간 식별자의 값을 증가시켜 할당할 수 있다. tempor_id의 구체적인 내용은 ITU-T Recommendation H.264의 Annex G Scalable video coding에 기술된 바와 같다.
둘 이상의 스케일러빌리티가 함께 적용되는 경우에는, NAL 유닛에 대한 각 스케일러빌리티의 식별자가 시그널링될 수 있다. 예컨대, 품질 스케일러빌리티와 공간 스케일리빌티가 함께 적용되는 경우에 종속 계층(예컨대, 공간적 향상 계층)에 대한 참조 계층이 상이한 품질 표현(quality representation)들을 포함한다면, 어떤 품질 표현이 이용될 것인지가 시그널링 될 수 있다.
long_view_id_flag는 NAL 유닛에 view_id_part2가 존재하는지를 특정한다. 예컨대, long_view_id_flag의 값이 1이면, NAL 유닛에 view_id_part2가 존재하는 것을 지시하며, long_view_id_flag의 값이 0이면, NAL 유닛에 view_id_part2가 존재하지 않는 것을 지시한다.
view_id_part1는 비트스트림의 뷰(view) 식별자이다. view_id_part1는 소정의 길이를 가질 수 있다. 예컨대, view_id_part1는 2 비트(bits)의 길이를 가질 수 있다.
view_id_part2는 비트스트림 내 뷰 식별자로서 long_view_id_flag의 값이 1의 값이 1이면 view_id_part1과 함께 비트스트림 내 시점들을 특정할 수 있다. view_id_part2는 소정의 길이를 가질 수 있다. 예컨대, view_id_part2는 8 비트의 길이를 가질 수 있으며, long_view_id_flag의 값이 1이라면, 2 비트 길이의 view_id_part1과 합해서 10 비트의 길이를 가지고 비트스트림 내의 시점들을 특정할 수 있다.
스테레오 3D 비디오와 같이, 시점의 수가 작은 비트스트림에 대하여 길이가 긴 파라미터를 이용하여 시점들을 특정하는 것은 비효율적일 수 있다. 따라서, 시점의 수가 작은 비트스트림에 대해서는 view_id_part1만으로 시점들을 특정하고, 시점의 수가 적지 않은 비트스트림에 대해서는 view_id_part1과 view_id_part2를 함께 이용하여 시점들을 특정하도록 할 수 있다.
한편, 이후에 정의되거나 사용될 수 있는 정보/필드들을 위하여 소정 크기의 필드가 유보될(reserved) 수도 있다. 표 1의 예에서는 2 비트의 reserved_one_2bits가 포함되어 있다. 이런 유보된 비트(reserved bit)들 가운데 하나 이상의 비트는 NAL 유닛 헤더를 확장하기 위해 사용될 수도 있다. 예를 들어, NAL 유닛 헤더의 확장 여부를 특정하는 소정의 플래그 값이 1인 경우에는 기존의 NAL 유닛 헤더에 새로운 바이트(byte)가 추가되도록 할 수 있다.
표 1의 예에서, view_id_part1과 view_id_part2 다음의 유보된 비트 요소(element)reserved_bits는 다른 유보된 비트들을 포함하기 위한 것이다. 이 비트 요소의 길이를 N(N < 8)이라고 할 때, N은 forbidden_zero_bit부터 해당 요소(element)까지의 NAL 유닛 헤더 길이가 바이트(byte)의 정수 배가 되도록 정의될 수 있다.
실시예 1과 같이, 플래그를 이용하는 경우에는 표현 방식이 단순하기 때문에 NAL 유닛 헤더를 분석함으로써 스케일러빌리티를 위한 정보를 손쉽게 확인할 수 있다. 또한, 해당 비트스트림에서 지원하지 않는 스케일러빌리티에 대해서는 식별자를 기술하지 않음으로써 비트율을 감소시키는 효과를 얻을 수 있다.
스케일러빌리티
식별자를
이용하는 방법
본 실시예에서는 플래그들을 이용하는 대신에 NAL 유닛 헤더에서 식별자를 사용하여 스케일러빌리티 정보를 전송하는 방법을 제시한다.
각 식별자의 값은 나타내고자 하는 스케일러빌리티 프로타일을 특정한다. 스케일러빌리티 프로파일(scalability profile)은 스케일러빌리티들의 특정 조합일 수 있다. 예컨대, 식별자의 값이 주어지면 대응하는 스케일러빌리티 조합(combination)의 필드들의 존부에 관한 정보 및/또는 필드의 길이 정보들이 NAL 유닛 헤더에 존재할 수 있다. 이때, 적어도 하나 이상의 스케일러빌리티들의 조합인 스케일러빌리티 조합을 스케일러빌리티 프로파일이라고 칭할 수 있다. 스케일러빌리티 조합의 필드들은 NAL 유닛의 스케일러빌리티 디멘젼(dimension)을 기술하기 위한 특정 필드들일 수 있다.
따라서, 이 식별자, 즉 NAL 유닛 헤더 요소(element)의 특정값은 필드들의 존재 여부 및/또는 필드의 길이에 대한 정보가 비트스트림의 특정 메시지 혹은 특정 패킷에 제공되는지를 나타내기 위해 사용될 수 있다.
표 2는 NAL 유닛 헤더에서 식별자를 이용하여 스케일러빌리티 정보를 전송하는 예를 개략적으로 나타낸 것이다.
<표 2>
표 2의 예에서, scalability_info_flag는 스케일러빌리티 정보가 NAL 유닛에 존재하는지를 특정한다. scalability_info_flag의 값이 1이면, 스케일러빌리티 정보가 NAL 유닛 헤더에 존재한다는 것을 지시하고, scalability_info_flag의 값이 0이면 스케일러빌리티 정보가 NAL 유닛 헤더에 존재하지 않는다는 것을 지시한다.
scalability_identifier는 스케일러빌리티 프로파일(scalability profile)을 특정하는 식별자(identifier)이다. 각 scalability_identifier 값은 해당 스케일러빌리티 디멘젼(dimension)의 조합(combination) 즉, 스케일러빌리티 프로파일을 특정한다. 다시 말하면, 각 scalability_identifier 값은 특정 스케일리빌리티 프로파일에 대한 스케일러빌리티 정보들을 나타내기 위한 특정 필드들 및/또는 필드의 길이들에 대응한다고 할 수 있다. 예를 들어, scalability_identifier의 특정한 값이 있다면, 이 값은 스케일러빌리티 정보를 나타내는 필드들 중에서 비트스트림의 특정 메시지 혹은 특정 패킷에서 제공되는 필드 또는 NAL 유닛에 존재하는 필드 및 그 길이 정보를 나타낼 수 있다.
스케일러빌리티에 대한 id들, 즉 표 2의 예에서 scalability_identifier 다음에 오는 값으로 priority_id, dependency_id, quality_id, temporal_id, view_id 등과 같은 필드 또는 id 중에서 어떤 필드/id와 그 길이 정보가 NAL 유닛에 존재하는지는 scalability_identifier에 의해 특정되는 조합에 의해 결정될 수 있다.
priority_id는 우선 식별자(priority identifier)를 특정한다. 우선 식별자는 부호화기에 의해 NAL 유닛마다 할당되며, NAL 유닛의 추출 우선 순위 혹은 NAL 유닛의 중요도를 지시한다. priority_id의 구체적인 내용은 ITU-T Recommendation H.264의 Annex G Scalable video coding에 기술된 바와 같다.
dependency_id는 NAL 유닛에 대한 종속 식별자(dependency identifier)를 특정한다. 종속 식별자는 공간적 스케일러빌리티를 지원하는 계층들을 특정한다. 예컨대, 공간적 스케일러빌리티에 있어서, 기본 계층(base layer)에 대한 종속 식별자의 값은 0으로 설정될 수 있으며, 다음 향상 계층(enhancement layer)들에 대해서는 종속 식별자의 값을 1씩 증가시켜 할당할 수 있다. dependency_id의 구체적인 내용은 ITU-T Recommendation H.264의 Annex G Scalable video coding에 기술된 바와 같다.
quality_id는 NAL 유닛에 대한 품질 식별자(quality identifier)를 특정한다. 품질 식별자는 품질 개선 계층(quality refinement layer)를 특정한다. quality_id의 구체적인 내용은 ITU-T Recommendation H.264의 Annex G Scalable video coding에 기술된 바와 같다.
temporal_id는 NAL 유닛에 대한 시간 식별자(temporal identifier)를 특정한다. 시간 식별자는 시간적 스케일러빌리티를 지원하는 계층들을 특정할 수 있다. 예컨대, 시간적 스케일러빌리티에 대하여 기본 계층에 대한 시간 식별자의 값을 0으로 설정하고, 향상 계층들에 대하여 1씩 시간 식별자의 값을 증가시켜 할당할 수 있다. tempor_id의 구체적인 내용은 ITU-T Recommendation H.264의 Annex G Scalable video coding에 기술된 바와 같다.
view_id는 비트스트림 내 뷰 식별자로서 비트스트림 내 시점들을 특정할 수 있다.
other_ids는 나중에 스케일러빌리티 프로파일에 추가될 수 있는 필드나 id들을 위한 플래이스 홀더(place holder)이다.
한편, 이후에 정의되거나 사용될 수 있는 정보/필드들을 위하여 소정 크기의 필드가 유보될(reserved) 수도 있다. 표 2의 예에서는 2 비트의 reserved_one_2bits가 포함되어 있다. 이런 유보된 비트(reserved bit)들 가운데 하나 이상의 비트는 NAL 유닛 헤더를 확장하기 위해 사용될 수도 있다. 예를 들어, NAL 유닛 헤더의 확장 여부를 특정하는 소정의 플래그 값이 1인 경우에는 기존의 NAL 유닛 헤더에 새로운 바이트(byte)가 추가되도록 할 수 있다.
표 2의 예에서, other_ids 다음의 유보된 비트 요소(element) reserved_bits는 다른 유보된 비트들을 포함하기 위한 것이다. 이 비트 요소의 길이를 N(N < 8)이라고 할 때, N은 forbidden_zero_bit부터 해당 요소(element)까지의 NAL 유닛 헤더 길이가 바이트(byte)의 정수 배가 되도록 정의될 수 있다.
표 2의 예에서 대부분의 element의 semantics는 표 1의 예와 동일하거나 유사하다. 그러나, 표 2의 예에서 각 요소(element)를 위해 사용된 비트 수는 scalability_identifier에 의해 지시되는 조합(combination/profile)에 의해 정의된다.
scalability_identifier를 사용하는 실시예 2는 플래그들을 사용하는 실시예 1보다 유연한(flexible) 방식이나, 처리하고자 하는 네트워크의 노드에서 스케일러빌리티의 상이한 조합(combinations/profiles)에 대한 정보를 유지해야 할 필요가 있을 수 있다.
scalability_identifier를 이용하는 경우로서, scalability_identifier의 1부터 3의 세 값 중 어느 한 값을 지시함으로써 세 가지 스케일러빌리티 프로파일 중에서 스케일러빌리티 프로파일을 특정하는 경우를 일 예로서 고려해 보자.
(1) 프로파일 1. scalability_identifier의 값 1은 다음의 4 요소(element)들만을 포함하는 스케일러비리티 프로파일을 지시한다.
① reserved_one_2bits 이후의 6 bit은 priority_id 를 위해 사용된다. priority_id는 우선 식별자(priority identifier)를 특정한다. 우선 식별자는 부호화기에 의해 NAL 유닛마다 할당되며, NAL 유닛의 추출 우선 순위 혹은 NAL 유닛의 중요도를 지시한다. priority_id의 구체적인 내용은 ITU-T Recommendation H.264의 Annex G Scalable video coding에 기술된 바와 같다.
② 그 다음의 3 bit은 dependency_id를 위해 사용된다. dependency_id는 NAL 유닛에 대한 종속 식별자(dependency identifier)를 특정한다. 종속 식별자는 공간적 스케일러빌리티를 지원하는 계층들을 특정한다. dependency_id의 구체적인 내용은 ITU-T Recommendation H.264의 Annex G Scalable video coding에 기술된 바와 같다.
③ 그 다음의 3 bit은 temporal_id를 위해 사용된다. temporal_id는 NAL 유닛에 대한 시간 식별자(temporal identifier)를 특정한다. 시간 식별자는 시간적 스케일러빌리티를 지원하는 계층들을 특정할 수 있다. tempor_id의 구체적인 내용은 ITU-T Recommendation H.264의 Annex G Scalable video coding에 기술된 바와 같다.
④ 그 다음의 4 bit은 quality_id를 위해 사용된다. quality_id는 NAL 유닛에 대한 품질 식별자(quality identifier)를 특정한다. 품질 식별자는 품질 개선 계층(quality refinement layer)를 특정한다. quality_id의 구체적인 내용은 ITU-T Recommendation H.264의 Annex G Scalable video coding에 기술된 바와 같다.
⑤ reserved_bit에는 비트를 할당하지 않는다.
(2) 프로파일 2. scalability_identifier의 값 2는 다음의 요소(element)들만을 포함하는 스케일러비리티 프로파일을 지시한다.
① reserved_one_2bits 이후의 10 비트는 view_id를 위해 사용된다. view_id는 비트스트림 내 뷰 식별자로서 비트스트림 내 시점들을 특정할 수 있다. view_id의 구체적인 내용은 ITU-T Recommendation H.264의 Annex G Scalable video coding에 기술된 바와 같다.
② 그 다음의 6 비트는 reserved_bits으로 사용된다.
(3) 프로파일 3. scalability_identifier 값 3은 다음의 요소(element)들만을 포함하는 스케일러빌리티 프로파일을 지시한다.
① reserved_one_2bits 이후의 6 비트는 priority_id 를 위해 사용된다. priority_id는 우선 식별자(priority identifier)를 특정한다. 우선 식별자는 부호화기에 의해 NAL 유닛마다 할당되며, NAL 유닛의 추출 우선 순위 혹은 NAL 유닛의 중요도를 지시한다. priority_id의 구체적인 내용은 ITU-T Recommendation H.264의 Annex G Scalable video coding에 기술된 바와 같다.
② 그 다음의 2 비트는 reserved_bits로 사용된다.
예를 들어, scalability_identifier의 값이 31인 경우, 비트스트림의 특정 메시지가 필드들의 존재 여부 및 길이(length)에 대한 정보를 나타내기 위해서 사용될 수 있다.
본 명세서에서는 스케일러빌리티에 관한 필드들의 존재 여부 및 길이에 대한 정보를 지시하는 특정 메시지를 설명의 편의를 위해 scal_info 라고 한다.
표 3은 scal_info의 일 예를 개략적으로 나타낸 것이다.
<표 3>
표 3의 예에서, XXX_length(즉, priority_id_length, dependency_id_length, temporqal_id_length, quality_id_length, view_id_length, other_id_length)는 NAL 유닛 헤더에서 해당 요소(element)/필드(field)를 위해 사용된 비트 수를 지시한다.
또한, XXX_length는 해당 요소/필드가 NAL 유닛 헤더에 존재하는지를 지시할 수도 있다. XXX_length의 값이 0이면, 즉 요소/필드의 길이가 0이거나 요소/필드에 사용된 비트 수가 0이면 해당 요소 또는 필드는 NAL 유닛 헤더에 존재하지 않는다는 것을 지시한다. 예컨대, priority_id_length의 값이 0이면 NAL 유닛 헤더에 priority_id가 존재하지 않는다.
표 3의 scal_info 역시 다른 스케일러빌리티 정보들과 함께 NAL 유닛 헤더에서 전송될 수 있다.
플래그를 사용하는 방법과 식별자를 사용하는 방법의 조합
비트스트림을 생성하는데 있어서, 콘텐츠 제공자가 더 많은 융통성을 가질 수 있도록 플래그와 식별자를 상호 대안적으로 사용할 수도 있다.
본 실시예에서는 앞선 실시예들에서 설명한 플래그를 사용하는 방법과 식별자를 사용하는 방법을 조합하여 사용하는 방법을 설명한다.
스케일러빌리티 정보의 존부와 함께 플래그와 식별자 중 어느 것을 사용할 것인지를 지시하기 위해서, 본 실시예에서는 앞 선 두 실시예에서 스케일러빌리티 정보의 존부를 지시하던 플래그 정보(scalability_info_flag) 대신에, 새로운 요소(element) scalability_info를 도입한다.
scalability_info는 NAL 유닛 헤더에 스케일러빌리티 정보가 존재하는지, 스케일러빌리티 정보가 존재한다면 플래그를 이용하여 개별 스케일러빌리티 정보의 존부를 지시할 것인지 식별자를 이용하여 개별 스케일러빌리터 정보의 존부를 지시할 것인지를 특정할 수 있다.
예컨대, scalability_info의 값이 0이면 NAL 유닛에 스케일러빌리티 정보가 존재하지 않는 것을 지시하며, scalability_info의 값이 1이면 플래그를 이용하여 개별 스케일러빌리티 정보의 존부를 나타낸다는 것을 지시하고, scalability_info의 값이 2이면 식별자를 이용하여 개별 스케일러빌리티 정보의 존부를 나타낸다는 것을 지시한다.
표 4는 플래그를 사용하는 방법과 식별자를 사용하는 방법을 조합하여 스케일러빌리티 정보의 존부 등에 관한 정보를 전송하는 방법의 일 예를 간단히 나타낸 것이다.
<표 4>
표 4를 참조하면, scalability_info의 값이 0인 경우에는 스케일러빌리티 정보가 NAL 유닛에 존재하지 않는다는 것을 지시한다.
표 4의 예에서, scalability_info의 값이 1인 경우에는 스케일러빌리티 정보가 NAL 유닛에 존재하며, 플래그를 이용하여 개별 스케일러빌리티 정보의 존부를 지시한다.
priority_id_flag는 NAL 유닛에 priority_id 값이 존재하는지를 특정한다. 예컨대, priority_id_flag의 값이 1이면, NAL 유닛에 priority_id 값이 존재하는 것을 지시하고, priority_id_flag의 값이 0이면, NAL 유닛에 priority_id 값이 존재하지 않는다는 것을 지시한다.
dependency_id_flag는 NAL 유닛에 dependency_id가 존재하는지를 특정한다. 예컨대, dependency_id_flag의 값이 1이면, NAL 유닛에 dependency_id 값이 존재한다는 것을 지시하고, dependency_id_flag의 값이 0이면, NAL 유닛에 dependency_id 값이 존재하지 않는다는 것을 지시한다.
temporal_id_flag는 NAL 유닛에 temporal_id가 존재하는지를 특정한다. 예컨대, temporal_id_flag의 값이 1이면, NAL 유닛에 temporal_id 값이 존재하는 것을 지시하고, temporal_id_flag의 값이 0이면, NAL 유닛에 temporal_id 값이 존재하지 않는다는 것을 지시한다.
quality_id_flag는 NAL 유닛에 quality_id가 존재하는지를 특정한다. 예컨대, quality_id_flagd의 값이 1이면, NAL 유닛에 quality_id 값이 존재하는 것을 지시하고, quality_id _flag의 값이 0이면 NAL 유닛에 quality_id 값이 존재하지 않는 것을 지시한다.
view_id_flag는 NAL 유닛에 view_id가 존재하는지를 특정한다. 예컨대, view_id_flag 의 값이 1이면, NAL 유닛에 view_id 값이 존재하는 것을 지시하고, view_id_flag 읙 값이 0이면, NAL 유닛에 view_id 값이 존재하지 않는 것을 지시한다.
priority_id는 우선 식별자(priority identifier)를 특정한다. dependency_id는 NAL 유닛에 대한 종속 식별자(dependency identifier)를 특정한다. quality_id는 NAL 유닛에 대한 품질 식별자(quality identifier)를 특정한다. temporal_id는 NAL 유닛에 대한 시간 식별자(temporal identifier)를 특정한다. priority_id, dependency_id, quality_id 및 tempor_id의 구체적인 내용은 ITU-T Recommendation H.264의 Annex G Scalable video coding에 기술된 바와 같다.
long_view_id_flag는 NAL 유닛에 view_id_part2가 존재하는지를 특정한다. 예컨대, long_view_id_flag의 값이 1이면, NAL 유닛에 view_id_part2가 존재하는 것을 지시하며, long_view_id_flag의 값이 0이면, NAL 유닛에 view_id_part2가 존재하지 않는 것을 지시한다.
view_id_part1는 비트스트림의 뷰(view) 식별자이다. view_id_part1는 소정의 길이를 가질 수 있다. 예컨대, view_id_part1는 2 비트(bits)의 길이를 가질 수 있다.
view_id_part2는 비트스트림 내 뷰 식별자로서 long_view_id_flag의 값이 1의 값이 1이면 view_id_part1과 함께 비트스트림 내 시점들을 특정할 수 있다. view_id_part2는 소정의 길이를 가질 수 있다. 예컨대, view_id_part2는 8 비트의 길이를 가질 수 있으며, long_view_id_flag의 값이 1이라면, 2 비트 길이의 view_id_part1과 합해서 10 비트의 길이를 가지고 비트스트림 내의 시점들을 특정할 수 있다.
2 비트의 reserved_one_2bits는 이후에 정의되거나 사용될 수 있는 정보/필드들을 위하여 유도된 것으로서, 이중 하나 이상의 비트는 NAL 유닛 헤더를 확장하기 위해 사용될 수도 있다.
reserved_bits는 다른 유보된 비트들을 포함하기 위한 것이다.
표 4의 예에서, scalability_info의 값이 2인 경우에는 스케일러빌리티 정보가 NAL 유닛에 존재하며, 식별자를 이용하여 개별 스케일러빌리티 정보의 존부를 지시한다.
scalability_identifier는 스케일러빌리티 프로파일(scalability profile)을 특정하는 식별자(identifier)이다. 각 scalability_identifier 값은 해당 스케일러빌리티 디멘젼(dimension)의 조합(combination) 즉, 스케일러빌리티 프로파일을 특정한다. 다시 말하면, 각 scalability_identifier 값은 특정 스케일리빌리티 프로파일에 대한 스케일러빌리티 정보를 구성하는 개별 필드들 및/또는 필드의 길이들에 대응한다고 할 수 있다. 예를 들어, scalability_identifier의 특정 값은 스케일러빌리티 정보를 나타내는 필드들 중에서 비트스트림의 특정 메시지 혹은 특정 패킷에서 제공되는 필드들 또는 NAL 유닛에 존재하는 필드들 및 그 길이 정보를 나타낼 수 있다.
스케일러빌리티에 대한 id들, 즉 표 2의 예에서 scalability_identifier 다음에 오는 값으로 priority_id, dependency_id, quality_id, temporal_id, view_id 등과 같은 필드 또는 id 중에서 어떤 필드/id와 그 길이 정보가 NAL 유닛에 존재하는지는 scalability_identifier에 의해 특정되는 조합에 의해 결정될 수 있다.
priority_id는 우선 식별자(priority identifier)를 특정한다. dependency_id는 NAL 유닛에 대한 종속 식별자(dependency identifier)를 특정한다. quality_id는 NAL 유닛에 대한 품질 식별자(quality identifier)를 특정한다. temporal_id는 NAL 유닛에 대한 시간 식별자(temporal identifier)를 특정한다. view_id는 비트스트림 내 뷰 식별자로서 비트스트림 내 시점들을 특정할 수 있다. priority_id, dependency_id, quality_id, tempor_id 및 view_id의 구체적인 내용은 ITU-T Recommendation H.264의 Annex G Scalable video coding에 기술된 바와 같다.
도 4는 본 발명에 따른 부호화기의 동작을 개략적으로 설명하는 순서도이다.
도 4를 참조하면, 부호화기는 입력된 비디오를 부호화한다(S410). 부호화기는 수행하는 부호화 방법에 대해서는 도 1에서 설명한 바와 같다. 이때, 부호화기는 도 1 및 도 3에서 설명한 바와 같이, SVC를 적용하여 비디오를 부호화할 수 있다.
부호화기는 부호화된 비디오 정보를 전송한다(S410). 부호화기는 도 1 및 도 3에서 설명한 바와 같이, 부호화된 정보를 비트스트림으로 전송할 수 있다. 예컨대, 부호화된 비디오 정보의 전송은 도 1에서 설명한 엔트로피 부호화된 정보의 전송일 수 있다.
부호화된 비디오 정보를 전송하는 비트스트림은 부호화에 적용된 스케일러빌리티를 반영한 복수 계층 구조를 가질 수 있으며, 전송되는 비디오 정보는 NAL 유닛 헤더에서 전송되는 스케일러빌리티 정보를 포함할 수 있다.
이때, 스케일러빌리티 정보는 상기 NAL 유닛 헤더에 대응하는 NAL 유닛에 개별 스케일러빌리티의 정보가 존재하는지를 지시하는 정보일 수 있다. 또한, 스케일러빌리티 정보는 상기 NAL 유닛 헤더에 대응하는 NAL 유닛에 존재하는 개별 스케일러빌리티의 정보가 존재하는지와 함께 상기 개별 스케일러빌리티의 정보에 사용된 비트 수에 관한 정보가 존재하는지를 지시하는 정보일 수도 있다.
이때, 스케일러빌리티 정보는 상기 NAL 유닛 헤더에 대응하는 NAL 유닛이 개별 스케일러빌리티의 정보를 포함하는지를 지시하는 플래그일 수 있다. 이 경우, 개별 스케일러빌리티의 정보는 비트스트림 내의 뷰들을 특정하는 제1 뷰 아이디 및 제2 뷰 아이디와 제2 뷰 아이디의 사용 여부를 지시하는 정보를 포함할 수 있다.
또한, 스케일러빌리티 정보는 상기 NAL 유닛 헤더에 대응하는 NAL 유닛의 스케일러빌리티 프로파일(profile)을 특정하는 정보(예컨대, 식별자)일 수도 있다. 이때, 스케일러빌리티 프로파일은 상기 NAL 유닛에 포함된 개별 스케일러빌리티들의 조합을 나타내는 정보일 수 있다.
더 나아가, 스케일러빌리티 정보는 (1) 상기 NAL 유닛 헤더에 대응하는 NAL 유닛에 개별 스케일러빌리티의 정보가 존재하는지를 지시하며, (2) 상기 NAL 유닛에 개별 스케일러빌리티의 정보가 존재하는 경우에는 상기 개별 스케일러빌리티별 정보의 존재 여부가 플래그로 지시되는지 상기 개별 스케일러빌리티의 조합이 식별자에 의해 지시되는지를 특정하는 정보일 수도 있다.
도 4에서는 설명의 이해를 높기 위해 간단하게 설명되었으나, 부호화기로부터 전송되는 스케일러빌러티 관련 정보 및 전송 방법의 구체적인 내용은 실시예 1 내지 실시예 3에서 설명한 바와 같다.
도 5는 본 발명에 따른 복호화기의 동작을 개략적으로 설명하는 순서도이다.
도 5를 참조하면, 복호화기는 부호화된 비디오 정보를 비트스트림으로 수신한다(S510). 도 2 및 도 3에서 설명한 바와 같이, 비디오 정보는 SVC가 적용되어 부호화되었을 수 있으며, SVC가 적용된 비디오 정보는 부호화에 적용된 스케일러빌리티를 반영한 복수 계층 구조를 가지는 비트스트림을 통해 부호화기로부터 전송될 수 있다.
수신된 비디오 정보는 NAL 유닛 헤더에서 전송되는 스케일러빌리티 정보를 포함할 수 있다.
이때, 스케일러빌리티 정보는 상기 NAL 유닛 헤더에 대응하는 NAL 유닛에 개별 스케일러빌리티의 정보가 존재하는지를 지시하는 정보일 수 있다. 또한, 스케일러빌리티 정보는 상기 NAL 유닛 헤더에 대응하는 NAL 유닛에 존재하는 개별 스케일러빌리티의 정보가 존재하는지와 함께 상기 개별 스케일러빌리티의 정보에 사용된 비트 수에 관한 정보가 존재하는지를 지시하는 정보일 수도 있다.
이때, 스케일러빌리티 정보는 상기 NAL 유닛 헤더에 대응하는 NAL 유닛이 개별 스케일러빌리티의 정보를 포함하는지를 지시하는 플래그일 수 있다. 이 경우, 개별 스케일러빌리티의 정보는 비트스트림 내의 뷰들을 특정하는 제1 뷰 아이디 및 제2 뷰 아이디와 제2 뷰 아이디의 사용 여부를 지시하는 정보를 포함할 수 있다.
또한, 스케일러빌리티 정보는 상기 NAL 유닛 헤더에 대응하는 NAL 유닛의 스케일러빌리티 프로파일(profile)을 특정하는 정보(예컨대, 식별자)일 수도 있다. 이때, 스케일러빌리티 프로파일은 상기 NAL 유닛에 포함된 개별 스케일러빌리티들의 조합을 나타내는 정보일 수 있다.
더 나아가, 스케일러빌리티 정보는 (1) 상기 NAL 유닛 헤더에 대응하는 NAL 유닛에 개별 스케일러빌리티의 정보가 존재하는지를 지시하며, (2) 상기 NAL 유닛에 개별 스케일러빌리티의 정보가 존재하는 경우에는 상기 개별 스케일러빌리티별 정보의 존재 여부가 플래그로 지시되는지 상기 개별 스케일러빌리티의 조합이 식별자에 의해 지시되는지를 특정하는 정보일 수도 있다.
복호화기는 수신한 비디오 정보를 복호화하여 비디오를 복원할 수 있다(S520). 부호화기에서 SVC를 적용하여 비디오를 부호화한 경우에, 복호화기는 부호화기에서 적용된 스케일러빌리티에 기반하여 비디오를 복호화할 수 있다. 복호화기가 수행하는 복호화 방법의 구체적인 내용은 도 2 및 도 3에서 설명한 바와 같다.
도 5에서는 설명의 이해를 높기 위해 간단하게 설명되었으나, 부호화기로부터 전송되는 스케일러빌러티 관련 정보 및 전송 방법의 구체적인 내용은 실시예 1 내지 실시예 3에서 설명한 바와 같다.
도 6은 부호화기(부호화 장치)의 구조를 개략적으로 설명하는 블록도이다. 도 6을 참조하면, 부호화기(600)는 부호화부(610) 및 전송부(620)를 포함한다.
부호화부(610)는 입력된 비디오를 부호화하고, 전송부(620)는 부호화된 비디오 정보를 전송한다. 부호화된 비디오 정보를 전송하는 비트스트림은 부호화에 적용된 스케일러빌리티를 반영한 복수 계층 구조를 가질 수 있으며, 전송되는 비디오 정보는 NAL 유닛 헤더에서 전송되는 스케일러빌리티 정보를 포함할 수 있다. 스케일러빌리티 정보는 실시예 1 내지 3과 도 4에서 설명한 바와 같다.
부호화의 구체적인 방법 또한 도 1 및 도 3에서 설명한 바와 같다. 예컨대, 부호화부(610)는 도 1에서 설명한 부호화 장치(100)에 대응하며, 도 1에서 설명한 각 기능 블록들을 포함할 수 있다. 전송부(620)는 도 1에서 엔트로피 부호화된 정보를 비트스트림으로 전송한다.
도 7은 복호화기(복호화 장치)의 구성을 개략적으로 설명하는 블록도이다. 도 7을 참조하면, 복호화기(700)는 수신부(710) 및 복호화부(720)를 포함한다.
수신부(710)는 부호화기로부터 비디오 정보를 수신한다. 수신한 비디오 정보는 SVC가 적용되어 부호화되었을 수 있으며, SVC가 적용된 비디오 정보는 부호화에 적용된 스케일러빌리티를 반영한 복수 계층 구조를 가지는 비트스트림을 통해 부호화기로부터 전송될 수 있다. 또한, 수신된 비디오 정보는 NAL 유닛 헤더에서 전송되는 스케일러빌리티 정보를 포함할 수 있다.
스케일러빌러티 정보는 실시예 1 내지 3과 도 4에서 설명한 바와 같다.
복호화부(720)는 수신한 비디오 정보를 복호화하여 비디오를 복원한다. 복호화의 구체적인 방법은 도 2 및 도 3에서 설명한 바와 같다. 예컨대, 복호화부(720)는 도 2에서 설명한 복호화 장치(200)에 대응하며, 도 2에서 설명한 각 기능 블록들을 포함할 수 있다. 수신부(710)는 수신한 비디오 정보를 복호화부(720) 내 엔트로피 복호화부에 전달한다고 할 수 있다.
상술한 예시적인 시스템에서, 방법들은 일련의 단계 또는 블록으로써 순서도를 기초로 설명되고 있지만, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 상술한 실시예들은 다양한 양태의 예시들을 포함한다. 예컨대, 각 실시예의 조합 역시 본 발명의 일 실시예로서 이해되어야 할 것이다.
Claims (18)
- 비디오를 부호화하는 단계; 및
부호화된 비디오 정보를 비트스트림으로 전송하는 단계를 포함하며,
상기 전송되는 비디오 정보는 NAL (Network Abstract Layer) 유닛 헤더에서 전송되는 스케일러빌리티(scalability) 정보를 포함하는 것을 특징으로 하는 비디오 정보 전송 방법. - 제1항에 있어서, 상기 스케일러빌리티 정보는,
상기 NAL 유닛 헤더에 대응하는 NAL 유닛에 개별 스케일러빌리티의 정보가 존재하는지를 지시하는 것을 특징으로 하는 비디오 정보 전송 방법. - 제1항에 있어서, 상기 스케일러빌리티 정보는,
상기 NAL 유닛 헤더에 대응하는 NAL 유닛에 존재하는 개별 스케일러빌리티의 정보가 존재하는지와 함께 상기 개별 스케일러빌리티의 정보에 사용된 비트 수에 관한 정보가 존재하는지를 지시하는 것을 특징으로 하는 비디오 정보 전송 방법. - 제1항에 있어서, 상기 스케일러빌리티 정보는,
상기 NAL 유닛 헤더에 대응하는 NAL 유닛이 개별 스케일러빌리티의 정보를 포함하는지를 지시하는 플래그인 것을 특징으로 하는 비디오 정보 전송 방법. - 제4항에 있어서, 상기 개별 스케일러빌리티의 정보는,
상기 비트스트림 내의 뷰들을 특정하는 제1 뷰 아이디 및 제2 뷰 아이디; 및
상기 제2 뷰 아이디의 사용 여부를 지시하는 정보를 포함하는 것을 특징으로 하는 비디오 정보 전송 방법. - 제1항에 있어서, 상기 스케일러빌리티 정보는,
상기 NAL 유닛 헤더에 대응하는 NAL 유닛의 스케일러빌리티 프로파일(profile)을 특정하는 것을 특징으로 하는 비디오 정보 전송 방법. - 제6항에 있어서, 상기 스케일러빌리티 프로파일은,
상기 NAL 유닛에 포함된 개별 스케일러빌리티들의 조합을 지시하는 것을 특징으로 하는 비디오 정보 전송 방법. - 제1항에 있어서, 상기 스케일러빌리티 정보는,
상기 NAL 유닛 헤더에 대응하는 NAL 유닛에 개별 스케일러빌리티의 정보가 존재하는지를 지시하며,
상기 NAL 유닛에 개별 스케일러빌리티의 정보가 존재하는 경우에,
상기 스케일러빌리티 정보는 상기 개별 스케일러빌리티별 정보의 존재 여부가 플래그로 지시되는지 상기 개별 스케일러빌리티의 조합이 식별자에 의해 지시되는지를 특정하는 것을 특징으로 하는 비디오 정보 전송 방법. - 부호화된 비디오 정보를 비트스트림으로 수신하는 단계; 및
상기 비디오 정보를 기반으로 비디오를 복호화 하는 단계를 포함하며,
상기 수신한 비디오 정보는 NAL (Network Abstract Layer) 유닛 헤더에서 전송되는 스케일러빌리티(scalability) 정보를 포함하는 것을 특징으로 하는 비디오 복호화 방법. - 제9항에 있어서, 상기 스케일러빌리티 정보는,
상기 NAL 유닛 헤더에 대응하는 NAL 유닛에 개별 스케일러빌리티의 정보가 존재하는지를 지시하는 것을 특징으로 하는 비디오 복호화 방법. - 제9항에 있어서, 상기 스케일러빌리티 정보는,
상기 NAL 유닛 헤더에 대응하는 NAL 유닛에 존재하는 개별 스케일러빌리티의 정보가 존재하는지와 함께 상기 개별 스케일러빌리티의 정보에 사용된 비트 수에 관한 정보가 존재하는지를 지시하는 것을 특징으로 하는 비디오 복호화 방법. - 제9항에 있어서, 상기 스케일러빌리티 정보는,
상기 NAL 유닛 헤더에 대응하는 NAL 유닛이 개별 스케일러빌리티의 정보를 포함하는지를 지시하는 플래그인 것을 특징으로 하는 비디오 복호화 방법. - 제12항에 있어서, 상기 개별 스케일러빌리티의 정보는,
상기 비트스트림 내의 뷰들을 특정하는 제1 뷰 아이디 및 제2 뷰 아이디; 및
상기 제2 뷰 아이디의 사용 여부를 지시하는 정보를 포함하는 것을 특징으로 하는 비디오 복호화 방법. - 제9항에 있어서, 상기 스케일러빌리티 정보는,
상기 NAL 유닛 헤더에 대응하는 NAL 유닛의 스케일러빌리티 프로파일(profile)을 특정하는 것을 특징으로 하는 비디오 복호화 방법. - 제14항에 있어서, 상기 스케일러빌리티 프로파일은,
상기 NAL 유닛에 포함된 개별 스케일러빌리티들의 조합을 지시하는 것을 특징으로 하는 비디오 복호화 방법. - 제9항에 있어서, 상기 스케일러빌리티 정보는,
상기 NAL 유닛 헤더에 대응하는 NAL 유닛에 개별 스케일러빌리티의 정보가 존재하는지를 지시하며,
상기 NAL 유닛에 개별 스케일러빌리티의 정보가 존재하는 경우에,
상기 스케일러빌리티 정보는 상기 개별 스케일러빌리티별 정보의 존재 여부가 플래그로 지시되는지 상기 개별 스케일러빌리티의 조합이 식별자에 의해 지시되는지를 특정하는 것을 특징으로 하는 비디오 복호화 방법. - 입력된 비디오를 부호화하는 부호화부; 및
부호화된 비디오 정보를 전송하는 전송부를 포함하며,
상기 전송되는 비디오 정보는 NAL (Network Abstract Layer) 유닛 헤더에서 전송되는 스케일러빌리티(scalability) 정보를 포함하는 것을 특징으로 하는 비디오 부호화 장치. - 부호화된 비디오 정보를 비트스트림으로 수신하는 수신부; 및
상기 비디오 정보를 기반으로 비디오를 복호화 하는 복호화부를 포함하며,
상기 수신한 비디오 정보는 NAL (Network Abstract Layer) 유닛 헤더에서 전송되는 스케일러빌리티(scalability) 정보를 포함하는 것을 특징으로 하는 비디오 복호화 장치.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20120006740 | 2012-01-20 | ||
KR10-2012-0006740 | 2012-01-20 | ||
KR10-2013-0006715 | 2013-01-21 | ||
KR1020130006715A KR20130086011A (ko) | 2012-01-20 | 2013-01-21 | 비디오 정보 전송 방법, 비디오 복호화 방법, 비디오 부호화기 및 비디오 복호화기 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2013109126A1 true WO2013109126A1 (ko) | 2013-07-25 |
Family
ID=48799488
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2013/000492 WO2013109126A1 (ko) | 2012-01-20 | 2013-01-21 | 비디오 정보 전송 방법, 비디오 복호화 방법, 비디오 부호화기 및 비디오 복호화기 |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2013109126A1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015037922A1 (ko) * | 2013-09-10 | 2015-03-19 | 주식회사 케이티 | 스케일러블 비디오 신호 인코딩/디코딩 방법 및 장치 |
CN107291850A (zh) * | 2017-06-06 | 2017-10-24 | 贵阳朗玛信息技术股份有限公司 | 视频数据结构化方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6728316B2 (en) * | 2000-09-12 | 2004-04-27 | Koninklijke Philips Electronics N.V. | Video coding method |
US20100150229A1 (en) * | 2005-08-12 | 2010-06-17 | Edouard Francois | Method of Encoding and Decoding Video Images With Spatial Scalability |
WO2011015965A1 (en) * | 2009-08-03 | 2011-02-10 | Nokia Corporation | Methods, apparatuses and computer program products for signaling of scalable video coding in digital broadcast streams |
US20110194024A1 (en) * | 2010-02-08 | 2011-08-11 | Nikolce Stefanoski | Content adaptive and art directable scalable video coding |
US20110268176A1 (en) * | 2010-04-28 | 2011-11-03 | Samsung Electronics Co., Ltd. | Apparatus and method for allocating a data rate in a multi-antenna transmitter |
-
2013
- 2013-01-21 WO PCT/KR2013/000492 patent/WO2013109126A1/ko active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6728316B2 (en) * | 2000-09-12 | 2004-04-27 | Koninklijke Philips Electronics N.V. | Video coding method |
US20100150229A1 (en) * | 2005-08-12 | 2010-06-17 | Edouard Francois | Method of Encoding and Decoding Video Images With Spatial Scalability |
WO2011015965A1 (en) * | 2009-08-03 | 2011-02-10 | Nokia Corporation | Methods, apparatuses and computer program products for signaling of scalable video coding in digital broadcast streams |
US20110194024A1 (en) * | 2010-02-08 | 2011-08-11 | Nikolce Stefanoski | Content adaptive and art directable scalable video coding |
US20110268176A1 (en) * | 2010-04-28 | 2011-11-03 | Samsung Electronics Co., Ltd. | Apparatus and method for allocating a data rate in a multi-antenna transmitter |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015037922A1 (ko) * | 2013-09-10 | 2015-03-19 | 주식회사 케이티 | 스케일러블 비디오 신호 인코딩/디코딩 방법 및 장치 |
US9992501B2 (en) | 2013-09-10 | 2018-06-05 | Kt Corporation | Method and apparatus for encoding/decoding scalable video signal |
US9998743B2 (en) | 2013-09-10 | 2018-06-12 | Kt Corporation | Method and apparatus for encoding/decoding scalable video signal |
US10063869B2 (en) | 2013-09-10 | 2018-08-28 | Kt Corporation | Method and apparatus for encoding/decoding multi-view video signal |
US10602167B2 (en) | 2013-09-10 | 2020-03-24 | Kt Corporation | Method and apparatus for encoding/decoding scalable video signal |
US10602166B2 (en) | 2013-09-10 | 2020-03-24 | Kt Corporation | Method and apparatus for encoding/decoding scalable video signal |
CN107291850A (zh) * | 2017-06-06 | 2017-10-24 | 贵阳朗玛信息技术股份有限公司 | 视频数据结构化方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10972743B2 (en) | Method for decoding image and apparatus using same | |
KR101759855B1 (ko) | 영상 디코딩 방법 및 이를 이용하는 장치 | |
US10375400B2 (en) | Method for decoding image and apparatus using same | |
JP7521093B2 (ja) | ピクチャ復号化方法およびピクチャ符号化方法 | |
KR102431741B1 (ko) | 영상 부호화/복호화 방법 및 장치 | |
US20150245075A1 (en) | Method and apparatus for image encoding/decoding | |
KR102281518B1 (ko) | 영상 부호화/복호화 방법 및 장치 | |
WO2013109126A1 (ko) | 비디오 정보 전송 방법, 비디오 복호화 방법, 비디오 부호화기 및 비디오 복호화기 | |
KR20130086011A (ko) | 비디오 정보 전송 방법, 비디오 복호화 방법, 비디오 부호화기 및 비디오 복호화기 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 13738944 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 13738944 Country of ref document: EP Kind code of ref document: A1 |