다시점 비디오 신호 데이터를 압축 부호화 또는 복호화하는 기술은 공간적 중복성, 시간적 중복성 및 시점간 존재하는 중복성을 고려하고 있다. 또한, 다시점 영상의 경우, 3차원 영상을 구현하기 위해 2개 이상의 시점에서 촬영된 다시점 텍스쳐 영상을 코딩할 수 있다. 또한, 필요에 따라 다시점 텍스쳐 영상에 대응하는 뎁스 데이터를 더 코딩할 수도 있다. 뎁스 데이터를 코딩함에 있어서, 공간적 중복성, 시간적 중복성 또는 시점간 중복성을 고려하여 압축 코딩할 수 있음은 물론이다. 뎁스 데이터는 카메라와 해당 화소 간의 거리 정보를 표현한 것이며, 본 명세서 내에서 뎁스 데이터는 뎁스 값, 뎁스 정보, 뎁스 영상, 뎁스 픽쳐, 뎁스 시퀀스, 뎁스 비트스트림 등과 같이 뎁스에 관련된 정보로 유연하게 해석될 수 있다. 또한, 본 명세서에서 코딩이라 함은 인코딩과 디코딩의 개념을 모두 포함할 수 있고, 본 발명의 기술적 사상 및 기술적 범위에 따라 유연하게 해석할 수 있을 것이다.Techniques for compression encoding or decoding multi-view video signal data take into account spatial redundancy, temporal redundancy, and redundancy existing between views. In addition, in the case of a multiview image, a multiview texture image photographed from two or more viewpoints may be coded to implement a 3D image. In addition, depth data corresponding to a multiview texture image may be further coded as necessary. In coding depth data, compression coding may be performed in consideration of spatial redundancy, temporal redundancy, or inter-view redundancy. Depth data represents distance information between a camera and a corresponding pixel, and within the present specification, depth data may be flexibly interpreted as information related to depth, such as a depth value, a depth information, a depth image, a depth picture, a depth sequence, and a depth bitstream. Can be. In addition, the term coding in this specification may include both the concepts of encoding and decoding, and may be flexibly interpreted according to the technical spirit and technical scope of the present invention.
도 1은 본 발명이 적용되는 일실시예로서, 비디오 디코더의 개략적인 블록도를 도시한 것이다.1 is a schematic block diagram of a video decoder according to an embodiment to which the present invention is applied.
도 1을 참조하면, 비디오 디코더는 NAL 파싱부(100), 엔트로피 디코딩부(200), 역양자화/역변환부(300), 인트라 예측부(400), 인-루프 필터부(500), 복호 픽쳐 버퍼부(600), 인터 예측부(700)를 포함할 수 있다. Referring to FIG. 1, a video decoder includes a NAL parser 100, an entropy decoder 200, an inverse quantization / inverse transform unit 300, an intra predictor 400, an in-loop filter unit 500, and a decoded picture. The buffer unit 600 and the inter prediction unit 700 may be included.
NAL 파싱부 (100)는 다시점 텍스쳐 데이터를 포함한 비트스트림을 수신할 수 있다. 또한, 뎁스 데이터가 텍스쳐 데이터의 코딩에 필요한 경우, 인코딩된 뎁스 데이터를 포함한 비트스트림을 더 수신할 수도 있다. 이 때 입력되는 텍스쳐 데이터와 뎁스 데이터는 하나의 비트스트림으로 전송될 수 있고, 또는 별개의 비트스트림으로 전송될 수도 있다. NAL 파싱부(100)는 입력된 비트스트림을 복호화하기 위해 NAL 단위로 파싱을 수행할 수 있다. 입력된 비트스트림이 다시점 관련 데이터(예를 들어, 3-Dimensional Video)인 경우, 입력된 비트스트림은 카메라 파라미터를 더 포함할 수 있다. 카메라 파라미터에는 고유의 카메라 파라미터 (intrinsic camera parameter) 및 비고유의 카메라 파라미터 (extrinsic camera parameter)가 있을 수 있고, 고유의 카메라 파라미터는 초점 거리(focal length), 가로세로비(aspect ratio), 주점(principal point) 등을 포함할 수 있고, 비고유의 카메라 파라미터는 세계 좌표계에서의 카메라의 위치정보 등을 포함할 수 있다.The NAL parser 100 may receive a bitstream including multi-view texture data. In addition, when the depth data is necessary for coding the texture data, the bitstream including the encoded depth data may be further received. In this case, the input texture data and the depth data may be transmitted in one bitstream or may be transmitted in separate bitstreams. The NAL parser 100 may parse the NAL unit to decode the input bitstream. When the input bitstream is multi-view related data (eg, 3-Dimensional Video), the input bitstream may further include a camera parameter. Camera parameters can have intrinsic camera parameters and extrinsic camera parameters, and inherent camera parameters include focal length, aspect ratio, and principal. point) and the like, and the non-unique camera parameter may include location information of the camera in the world coordinate system.
엔트로피 디코딩부(200)는 엔트로피 디코딩을 통하여 양자화된 변환 계수, 텍스쳐 픽쳐의 예측을 위한 코딩 정보 등을 추출할 수 있다.The entropy decoding unit 200 may extract quantized transform coefficients, coding information for prediction of a texture picture, and the like through entropy decoding.
역양자화/역변환부(300)에서는 양자화된 변환 계수에 양자화 파라미터를 적용하여 변환 계수를 획득하고, 변환 계수를 역변환하여 텍스쳐 데이터 또는 뎁스 데이터를 복호화할 수 있다. 여기서, 복호화된 텍스쳐 데이터 또는 뎁스 데이터는 예측 처리에 따른 레지듀얼 데이터를 의미할 수 있다. 또한, 뎁스 블록에 대한 양자화 파라미터는 텍스쳐 데이터의 복잡도를 고려하여 설정될 수 있다. 예를 들어, 뎁스 블록에 대응하는 텍스쳐 블록이 복잡도가 높은 영역인 경우에는 낮은 양자화 파라미터를 설정하고, 복잡도가 낮은 영역인 경우에는 높은 양자화 파라미터를 설정할 수 있다. 텍스쳐 블록의 복잡도는 수학식 1과 같이 복원된 텍스쳐 픽쳐 내에서 서로 인접한 픽셀들 간의 차분값에 기초하여 결정될 수 있다.The inverse quantization / inverse transform unit 300 may apply a quantization parameter to the quantized transform coefficients to obtain transform coefficients, and inversely transform the transform coefficients to decode texture data or depth data. Here, the decoded texture data or depth data may mean residual data according to a prediction process. In addition, the quantization parameter for the depth block may be set in consideration of the complexity of the texture data. For example, when the texture block corresponding to the depth block is a region of high complexity, a low quantization parameter may be set, and in the case of a region of low complexity, a high quantization parameter may be set. The complexity of the texture block may be determined based on a difference value between pixels adjacent to each other in the reconstructed texture picture as shown in Equation 1 below.
수학식 1에서 E는 텍스쳐 데이터의 복잡도를 나타내고, C는 복원된 텍스쳐 데이터를 의미하며, N은 복잡도를 산출하고자 하는 텍스쳐 데이터 영역 내의 픽셀 개수를 의미할 수 있다. 수학식 1을 참조하면, 텍스쳐 데이터의 복잡도는 (x,y) 위치에 대응하는 텍스쳐 데이터와 (x-1,y) 위치에 대응하는 텍스쳐 데이터 간의 차분값 및 (x,y) 위치에 대응하는 텍스쳐 데이터와 (x+1,y) 위치에 대응하는 텍스쳐 데이터 간의 차분값을 이용하여 산출될 수 있다. 또한, 복잡도는 텍스쳐 픽쳐와 텍스쳐 블록에 대해서 각각 산출될 수 있고, 이를 이용하여 아래 수학식 2와 같이 양자화 파라미터를 유도할 수 있다.In Equation 1, E denotes the complexity of the texture data, C denotes the restored texture data, and N denotes the number of pixels in the texture data area to which the complexity is to be calculated. Referring to Equation 1, the complexity of the texture data corresponds to the difference value between the texture data corresponding to the (x, y) position and the texture data corresponding to the (x-1, y) position and the (x, y) position. It may be calculated using a difference value between the texture data and the texture data corresponding to the position (x + 1, y). In addition, the complexity may be calculated for the texture picture and the texture block, respectively, and the quantization parameter may be derived using Equation 2 below.
수학식 2를 참조하면, 뎁스 블록에 대한 양자화 파라미터는 텍스쳐 픽쳐의 복잡도와 텍스쳐 블록의 복잡도의 비율에 기초하여 결정될 수 있다. α 및 β는 디코더에서 유도되는 가변적인 정수일 수 있고, 또는 디코더 내에서 기 결정된 정수일 수 있다.Referring to Equation 2, the quantization parameter for the depth block may be determined based on a ratio of the complexity of the texture picture and the complexity of the texture block. α and β may be variable integers derived at the decoder, or may be predetermined integers in the decoder.
인트라 예측부(400)는 현재 텍스쳐 픽쳐 내의 복원된 텍스쳐 데이터를 이용하여 화면 내 예측을 수행할 수 있다. 뎁스 픽쳐에 대해서도 텍스쳐 픽쳐와 동일한 방식으로 화면 내 예측이 수행될 수 있다. 예를 들어, 텍스쳐 픽쳐의 화면 내 예측을 위해 이용되는 코딩 정보를 텝스 픽쳐에서도 동일하게 이용할 수 있다. 여기서, 화면 내 예측을 위해 이용되는 코딩 정보는 인트라 예측 모드, 인트라 예측의 파티션 정보를 포함할 수 있다. The intra predictor 400 may perform intra prediction using the reconstructed texture data in the current texture picture. Intra-prediction may be performed on the depth picture in the same manner as the texture picture. For example, coding information used for intra prediction of a texture picture may be similarly used in a step picture. Here, the coding information used for intra prediction may include intra prediction mode and partition information of intra prediction.
인-루프 필터부(500)는 블록 왜곡 현상을 감소시키기 위해 각각의 코딩된 블록에 인-루프 필터를 적용할 수 있다. 필터는 블록의 가장자리를 부드럽게 하여 디코딩된 픽쳐의 화질을 향상시킬 수 있다. 필터링을 거친 텍스쳐 픽쳐 또는 뎁스 픽쳐들은 출력되거나 참조 픽쳐로 이용하기 위해 복호 픽쳐 버퍼부(600)에 저장될 수 있다. 한편, 텍스쳐 데이터의 특성과 뎁스 데이터의 특성이 서로 상이하기 때문에 동일한 인-루프 필터를 사용하여 텍스쳐 데이터와 뎁스 데이터의 코딩을 수행할 경우, 코딩 효율이 떨어질 수 있다. 따라서, 뎁스 데이터를 위한 별도의 인-루프 필터를 정의할 수도 있다. 이하, 뎁스 데이터를 효율적으로 코딩할 수 있는 인-루프 필터링 방법으로서, 영역 기반의 적응적 루프 필터 (region-based adaptive loop filter)와 트라일래터럴 루프 필터 (trilateral loop filter)를 살펴 보기로 한다.The in-loop filter unit 500 may apply an in-loop filter to each coded block to reduce block distortion. The filter can smooth the edges of the block to improve the quality of the decoded picture. Filtered texture pictures or depth pictures may be output or stored in the decoded picture buffer unit 600 for use as a reference picture. On the other hand, since the characteristics of the texture data and the depth data are different from each other, when coding the texture data and the depth data using the same in-loop filter, the coding efficiency may be reduced. Thus, a separate in-loop filter for depth data may be defined. Hereinafter, as an in-loop filtering method for efficiently coding depth data, a region-based adaptive loop filter and a trilateral loop filter will be described.
영역 기반의 적응적 루프 필터의 경우, 뎁스 블록의 변화량 (variance)에 기초하여 영역 기반의 적응적 루프 필터를 적용할 지 여부를 결정할 수 있다. 여기서, 뎁스 블록의 변화량은 뎁스 블록 내에서 최대 픽셀값과 최소 픽셀값 간의 차분으로 정의될 수 있다. 뎁스 블록의 변화량과 기결정된 문턱값 간의 비교를 통해서 필터 적용 여부를 결정할 수 있다. 예를 들어, 뎁스 블록의 변화량이 기결정된 문턱값보다 크거나 같은 경우, 뎁스 블록 내의 최대 픽셀값과 최소 픽셀값 간의 차이가 큰 것을 의미하므로 영역 기반의 적응적 루프 필터를 적용하는 것으로 결정할 수 있다. 반대로, 뎁스 변화량이 기결정된 문턱값보다 작은 경우에는 영역 기반의 적응적 루프 필터를 적용하지 아니하는 것으로 결정할 수 있다. 상기 비교 결과에 따라 필터를 적용하는 경우, 필터링된 뎁스 블록의 픽셀값은 소정의 가중치를 이웃 픽셀값에 적용하여 유도될 수 있다. 여기서, 소정의 가중치는 현재 필터링되는 픽셀과 이웃 픽셀 간의 위치 차이 및/또는 현재 필터링되는 픽셀값과 이웃 픽셀값 간의 차분값에 기초하여 결정될 수 있다. 또한, 이웃 픽셀값은 뎁스 블록 내에 포함된 픽셀값 중에서 현재 필터링되는 픽셀값을 제외한 어느 하나를 의미할 수 있다.In the case of the region-based adaptive loop filter, it may be determined whether to apply the region-based adaptive loop filter based on the variation of the depth block. Here, the variation amount of the depth block may be defined as the difference between the maximum pixel value and the minimum pixel value in the depth block. Whether to apply the filter may be determined by comparing the change amount of the depth block with a predetermined threshold. For example, when the amount of change in the depth block is greater than or equal to the predetermined threshold value, since the difference between the maximum pixel value and the minimum pixel value in the depth block is large, it may be determined to apply an area-based adaptive loop filter. . In contrast, when the depth change amount is smaller than the predetermined threshold, it may be determined that the region-based adaptive loop filter is not applied. When the filter is applied according to the comparison result, the pixel value of the filtered depth block may be derived by applying a predetermined weight to the neighboring pixel value. Here, the predetermined weight may be determined based on a position difference between the pixel currently being filtered and the neighboring pixel and / or a difference value between the pixel value currently being filtered and the neighboring pixel value. In addition, the neighbor pixel value may mean any one of the pixel values included in the depth block except for the pixel value currently being filtered.
본 발명에 따른 트라일래터럴 루프 필터는 영역 기반의 적응적 루프 필터와 유사하나, 텍스쳐 데이터를 추가적으로 고려한다는 점에서 차이가 있다. 구체적으로, 트라일래터럴 루프 필터는 다음의 세가지 조건을 비교하여, 이를 만족하는 이웃 픽셀의 뎁스 데이터를 추출할 수 있다.The trilateral loop filter according to the present invention is similar to the region-based adaptive loop filter except that it additionally considers texture data. In detail, the trilateral loop filter compares the following three conditions and extracts depth data of neighboring pixels satisfying the following three conditions.
조건 1은 뎁스 블록 내의 현재 픽셀(p)와 이웃 픽셀(q) 간의 위치 차이를 기결정된 매개변수 σ1과 비교하는 것이고, 조건 2는 현재 픽셀(p)의 뎁스 데이터와 이웃 픽셀(q)의 뎁스 데이터 간의 차분을 기결정된 매개변수 σ2와 비교하는 것이며, 조건 3은 현재 픽셀(p)의 텍스쳐 데이터와 이웃 픽셀(q)의 텍스쳐 데이터 간의 차분을 기결정된 매개변수 σ3과 비교하는 것이다.Condition 1 is to compare the positional difference between the current pixel p and the neighboring pixel q in the depth block with a predetermined parameter sigma 1, and condition 2 is the depth data of the current pixel p and the depth of the neighboring pixel q. The difference between the data is compared with the predetermined parameter? 2, and condition 3 is comparing the difference between the texture data of the current pixel p and the texture data of the neighboring pixel q with the predetermined parameter? 3.
상기 세가지 조건을 만족하는 이웃 픽셀들을 추출하고, 이들 뎁스 데이터의 중간값 또는 평균값으로 현재 픽셀(p)을 필터링할 수 있다.The neighboring pixels satisfying the three conditions may be extracted, and the current pixel p may be filtered by the median or average value of the depth data.
복호 픽쳐 버퍼부(Decoded Picture Buffer unit)(600)에서는 화면 간 예측을 수행하기 위해서 이전에 코딩된 텍스쳐 픽쳐 또는 뎁스 픽쳐를 저장하거나 개방하는 역할 등을 수행한다. 이 때 복호 픽쳐 버퍼부(600)에 저장하거나 개방하기 위해서 각 픽쳐의 frame_num 과 POC(Picture Order Count)를 이용할 수 있다. 나아가, 뎁스 코딩에 있어서 상기 이전에 코딩된 픽쳐들 중에는 현재 뎁스 픽쳐와 다른 시점에 있는 뎁스 픽쳐들도 있으므로, 이러한 픽쳐들을 참조 픽쳐로서 활용하기 위해서는 뎁스 픽쳐의 시점을 식별하는 시점 식별 정보를 이용할 수도 있다. 복호 픽쳐 버퍼부(600)는 보다 유연하게 화면 간 예측을 실현하기 위하여 적응 메모리 관리 방법(Memory Management Control Operation Method)과 이동 윈도우 방법(Sliding Window Method) 등을 이용하여 참조 픽쳐를 관리할 수 있다. 이는 참조 픽쳐와 비참조 픽쳐의 메모리를 하나의 메모리로 통일하여 관리하고 적은 메모리로 효율적으로 관리하기 위함이다. 뎁스 코딩에 있어서, 뎁스 픽쳐들은 복호 픽쳐 버퍼부 내에서 텍스쳐 픽쳐들과 구별하기 위하여 별도의 표시로 마킹될 수 있고, 상기 마킹 과정에서 각 뎁스 픽쳐를 식별해주기 위한 정보가 이용될 수 있다.The decoded picture buffer unit 600 stores or opens a previously coded texture picture or a depth picture in order to perform inter prediction. In this case, in order to store or open the decoded picture buffer unit 600, the frame_num and the POC (Picture Order Count) of each picture may be used. Furthermore, in depth coding, some of the previously coded pictures may have depth pictures that are different from the current depth picture, and thus, view identification information identifying a view point of the depth picture may be used to use these pictures as reference pictures. have. The decoded picture buffer unit 600 may manage the reference picture using an adaptive memory management control method and a sliding window method in order to more flexibly implement inter prediction. This is to manage the memory of the reference picture and the non-reference picture into one memory and manage them efficiently with less memory. In depth coding, the depth pictures may be marked with a separate mark to distinguish them from texture pictures in the decoded picture buffer unit, and information for identifying each depth picture may be used in the marking process.
인터 예측부(700)는 복호 픽쳐 버퍼부(600)에 저장된 참조 픽쳐와 모션 정보를 이용하여 현재 블록의 모션 보상을 수행할 수 있다. 본 명세서에서 모션 정보라 함은 모션 벡터, 레퍼런스 인덱스 정보를 포함하는 광의의 개념으로 이해될 수 있다. 또한, 인터 예측부(700)는 모션 보상을 수행하기 위해 시간적 인터 예측을 수행할 수 있다. 시간적 인터 예측이라 함은 현재 텍스쳐 블록과 동일 시점 및 다른 시간대에 위치한 참조 픽쳐 및 현재 텍스쳐 블록의 모션 정보를 이용한 인터 예측을 의미할 수 있다. 또한, 복수 개의 카메라에 의해 촬영된 다시점 영상의 경우, 시간적 인터 예측뿐만 아니라 시점 간 예측을 수행할 수도 있다. 상기 시점 간 예측에 이용되는 모션 정보는 변이 벡터(disparity vector) 또는 인터뷰 모션 벡터(inter-view motion vector)를 포함할 수 있다. 상기 변이 벡터를 이용하여 시점 간 예측을 수행하는 방법에 대해서는 이하 도 2를 참조하여 살펴 보기로 한다.The inter prediction unit 700 may perform motion compensation of the current block by using the reference picture and the motion information stored in the decoded picture buffer unit 600. In the present specification, the motion information may be understood as a broad concept including a motion vector and reference index information. In addition, the inter prediction unit 700 may perform temporal inter prediction to perform motion compensation. Temporal inter prediction may refer to inter prediction using motion information of a reference picture and a current texture block located at the same time point and different time zone as the current texture block. In addition, in the case of a multiview image photographed by a plurality of cameras, not only temporal inter prediction but also inter-view prediction may be performed. The motion information used for the inter-view prediction may include a disparity vector or an inter-view motion vector. A method of performing inter-view prediction using the disparity vector will be described below with reference to FIG. 2.
도 2는 본 발명이 적용되는 일실시예로서, 변이 벡터에 기초하여 시점 간 예측을 수행하는 방법을 도시한 것이다.2 illustrates a method of performing inter-view prediction based on a disparity vector according to an embodiment to which the present invention is applied.
도 2를 참조하면, 현재 텍스쳐 블록의 변이 벡터(disparity vector)를 유도할 수 있다(S200).Referring to FIG. 2, a disparity vector of a current texture block may be derived (S200).
예를 들어, 현재 텍스쳐 블록에 대응하는 뎁스 영상으로부터 변이 벡터를 유도할 수 있으며, 이는 도 3을 참조하여 자세히 살펴 보도록 한다.For example, a disparity vector may be derived from a depth image corresponding to a current texture block, which will be described in detail with reference to FIG. 3.
또한, 현재 텍스쳐 블록에 공간적으로 인접한 이웃 블록으로부터 유도될 수도 있고, 현재 텍스쳐 블록과 다른 시간대에 위치한 시간적 이웃 블록으로부터 유도될 수도 있다. 현재 텍스쳐 블록의 공간적/시간적 이웃 블록으로부터 변이 벡터를 유도하는 방법에 대해서는 도 4를 참조하여 살펴 보도록 한다.It may also be derived from a neighboring block spatially adjacent to the current texture block, or may be derived from a temporal neighboring block located at a different time zone than the current texture block. A method of deriving a disparity vector from a spatial / temporal neighboring block of the current texture block will be described with reference to FIG. 4.
도 2를 참조하면, S200 단계에서 유도된 변이 벡터를 이용하여 현재 텍스쳐 블록의 시점 간 예측(inter-view prediction)을 수행할 수 있다(S210).Referring to FIG. 2, inter-view prediction of the current texture block may be performed using the disparity vector derived in step S200 (S210).
예를 들어, 변이 벡터에 의해서 특정된 참조 블록의 텍스쳐 데이터를 이용하여 현재 텍스쳐 블록의 텍스쳐 데이터를 예측하거나 복원할 수 있다. 여기서, 참조 블록은 현재 텍스쳐 블록의 시점 간 예측에 이용되는 시점 즉, 참조 시점에 속할 수 있다. 상기 참조 블록은 현재 텍스쳐 블록과 동일 시간대에 위치한 참조 픽쳐에 속할 수 있다.For example, texture data of the current texture block may be predicted or reconstructed using the texture data of the reference block specified by the disparity vector. Here, the reference block may belong to a view used for inter-view prediction of the current texture block, that is, a reference view. The reference block may belong to a reference picture located at the same time zone as the current texture block.
또한, 상기 변이 벡터를 이용하여 참조 시점에 속한 참조 블록을 특정하고, 상기 특정된 참조 블록의 시간적 모션 벡터를 이용하여 현재 텍스쳐 블록의 시간적 모션 벡터를 유도할 수도 있다. 여기서, 시간적 모션 벡터는 시간적 인터 예측에 이용되는 모션 벡터를 의미하는 것으로, 시점 간 예측에 이용되는 변이 벡터와 구별될 수 있다.In addition, a reference block belonging to a reference view may be specified using the disparity vector, and a temporal motion vector of a current texture block may be derived using the temporal motion vector of the specified reference block. Here, the temporal motion vector refers to a motion vector used for temporal inter prediction, and may be distinguished from a disparity vector used for inter-view prediction.
도 3은 본 발명이 적용되는 일실시예로서, 뎁스 영상의 뎁스 데이터를 이용하여 현재 텍스쳐 블록의 변이 벡터를 유도하는 방법을 도시한 것이다.3 illustrates a method of deriving a disparity vector of a current texture block using depth data of a depth image as an embodiment to which the present invention is applied.
도 3을 참조하면, 현재 텍스쳐 블록의 위치 정보에 기초하여 현재 텍스쳐 블록에 대응하는 뎁스 픽쳐 내의 뎁스 블록 (이하, 현재 뎁스 블록이라 한다.)의 위치 정보를 획득할 수 있다(S300).Referring to FIG. 3, location information of a depth block (hereinafter, referred to as a current depth block) in a depth picture corresponding to the current texture block may be obtained based on the location information of the current texture block (S300).
현재 뎁스 블록의 위치는 뎁스 픽쳐와 현재 픽쳐 간의 공간 해상도를 고려하여 결정될 수 있다. The position of the current depth block may be determined in consideration of the spatial resolution between the depth picture and the current picture.
예를 들어, 뎁스 픽쳐와 현재 픽쳐가 동일한 공간 해상도로 코딩된 경우, 현재 뎁스 블록의 위치는 현재 픽쳐의 현재 텍스쳐 블록과 동일 위치의 블록으로 결정될 수 있다. 한편, 현재 픽쳐와 뎁스 픽쳐가 상이한 공간 해상도로 코딩될 수도 있다. 카메라와 객체 간의 거리 정보를 나타내는 뎁스 정보의 특성상, 공간 해상도를 낮춰서 코딩하더라도 코딩 효율이 크게 떨어지지 아니할 수 있기 때문이다. 따라서, 뎁스 픽쳐의 공간 해상도가 현재 픽쳐보다 낮게 코딩된 경우, 디코더는 현재 뎁스 블록의 위치 정보를 획득하기 전에 뎁스 픽쳐에 대한 업샘플링 과정을 수반할 수 있다. 또한, 업샘플링된 뎁스 픽쳐와 현재 픽쳐 간의 화면비율 (aspect ratio)이 정확히 일치하지 아니하는 경우, 업샘플링된 뎁스 픽쳐 내에서 현재 뎁스 블록의 위치 정보를 획득함에 있어서 오프셋 정보를 추가적으로 고려할 수 있다. 여기서, 오프셋 정보는 상단 오프셋 정보, 좌측 오프셋 정보, 우측 오프셋 정보, 하단 오프셋 정보 중 적어도 하나를 포함할 수 있다. 상단 오프셋 정보는 업샘플링된 뎁스 픽쳐의 상단에 위치한 적어도 하나의 픽셀과 현재 픽쳐의 상단에 위치한 적어도 하나의 픽셀 간의 위치 차이를 나타낼 수 있다. 좌측, 우측, 하단 오프셋 정보 역시 동일한 방식으로 각각 정의될 수 있다.For example, when the depth picture and the current picture are coded with the same spatial resolution, the position of the current depth block may be determined as a block having the same position as the current texture block of the current picture. Meanwhile, the current picture and the depth picture may be coded at different spatial resolutions. This is because the coding efficiency may not be significantly reduced even if the spatial resolution is coded at a lower level due to the characteristics of the depth information representing the distance information between the camera and the object. Therefore, when the spatial resolution of the depth picture is coded lower than the current picture, the decoder may involve an upsampling process for the depth picture before acquiring position information of the current depth block. In addition, when the aspect ratio between the upsampled depth picture and the current picture does not exactly match, offset information may be additionally considered when acquiring position information of the current depth block in the upsampled depth picture. Here, the offset information may include at least one of top offset information, left offset information, right offset information, and bottom offset information. The top offset information may indicate a position difference between at least one pixel located at the top of the upsampled depth picture and at least one pixel located at the top of the current picture. Left, right, and bottom offset information may also be defined in the same manner.
도 3을 참조하면, 현재 뎁스 블록의 위치 정보에 해당하는 뎁스 데이터를 획득할 수 있다(S310).Referring to FIG. 3, depth data corresponding to position information of a current depth block may be obtained (S310).
현재 뎁스 블록 내에 복수 개의 픽셀이 존재하는 경우, 현재 뎁스 블록의 코너 픽셀(corner pixel)에 대응하는 뎁스 데이터가 이용될 수 있다. 또는, 현재 뎁스 블록의 중앙 픽셀(center pixel)에 대응하는 뎁스 데이터가 이용될 수도 있다. 또는, 복수 개의 픽셀에 대응하는 복수 개의 뎁스 데이터 중에서 최대값, 최소값, 최빈값 중 어느 하나가 선택적으로 이용될 수도 있고, 복수 개의 뎁스 데이터의 평균값이 이용될 수도 있다. When a plurality of pixels exist in the current depth block, depth data corresponding to corner pixels of the current depth block may be used. Alternatively, depth data corresponding to the center pixel of the current depth block may be used. Alternatively, any one of a maximum value, a minimum value, and a mode value may be selectively used among the plurality of depth data corresponding to the plurality of pixels, or an average value of the plurality of depth data may be used.
도 3을 참조하면, S310 단계에서 획득된 뎁스 데이터를 이용하여 현재 텍스쳐 블록의 변이 벡터를 유도할 수 있다(S320).Referring to FIG. 3, the disparity vector of the current texture block may be derived using the depth data obtained in operation S310 (S320).
예를 들어, 현재 텍스쳐 블록의 변이 벡터는 다음 수학식 3과 같이 유도될 수 있다.For example, the disparity vector of the current texture block may be derived as in Equation 3 below.
수학식 3을 참조하면, v는 뎁스 데이터를, a는 스케일링 팩터를, f는 변이 벡터를 유도하기 위해 이용되는 오프셋을 나타낸다. 상기 스케일링 팩터 a와 오프셋 f는 비디오 파라미터 세트 또는 슬라이스 헤더에서 시그날링될 수도 있고, 디코더에 기-설정된 값일 수도 있다. n은 비트 쉬프트의 값을 나타내는 변수이며, 이는 변이 벡터의 정확도에 따라 가변적으로 결정될 수 있다.Referring to Equation 3, v denotes depth data, a denotes a scaling factor, and f denotes an offset used to derive a disparity vector. The scaling factor a and offset f may be signaled in a video parameter set or slice header, or may be a value pre-set in the decoder. n is a variable representing the value of the bit shift, which may be variably determined according to the accuracy of the disparity vector.
도 4는 본 발명이 적용되는 일실시예로서, 현재 텍스쳐 블록의 공간적/시간적 이웃 블록의 후보를 도시한 것이다.4 illustrates a candidate of a spatial / temporal neighboring block of a current texture block as an embodiment to which the present invention is applied.
도 4(a)를 참조하면, 공간적 이웃 블록은 현재 텍스쳐 블록의 좌측 이웃 블록(A1), 상단 이웃 블록(B1), 좌측하단 이웃 블록(A0), 상단우측 이웃 블록(B0) 또는 상단좌측 이웃 블록(B2) 중 적어도 하나를 포함할 수 있다.Referring to FIG. 4A, the spatial neighboring block includes a left neighboring block A1, an upper neighboring block B1, a lower left neighboring block A0, an upper right neighboring block B0, or an upper left neighboring block of the current texture block. It may include at least one of the blocks (B2).
도 4(b)를 참조하면, 시간적 이웃 블록은 현재 텍스쳐 블록과 동일 위치의 블록을 의미할 수 있다. 구체적으로, 시간적 이웃 블록은 현재 텍스쳐 블록과 다른 시간대에 위치한 픽쳐에 속하는 블록으로서, 현재 텍스쳐 블록의 하단우측 픽셀에 대응하는 블록(BR), 현재 텍스쳐 블록의 중앙 픽셀에 대응하는 블록(CT) 또는 현재 텍스쳐 블록의 상단좌측 픽셀에 대응하는 블록(TL) 중 적어도 하나를 포함할 수 있다. Referring to FIG. 4B, the temporal neighboring block may mean a block at the same position as the current texture block. Specifically, the temporal neighboring block is a block belonging to a picture located at a different time zone from the current texture block, and includes a block BR corresponding to the lower right pixel of the current texture block, a block CT corresponding to the center pixel of the current texture block, or the like. It may include at least one of the blocks (TL) corresponding to the upper left pixel of the current texture block.
현재 텍스쳐 블록의 변이 벡터는 상기 공간적/시간적 이웃 블록 중 변이 보상된 예측 블록(disparity-compensated prediction block, 이하 DCP 블록이라 함)으로부터 유도될 수 있다. 여기서, DCP 블록은 변이 벡터를 이용한 시점 간 텍스쳐 예측(inter-view texture prediction)을 통해 부호화된 블록을 의미할 수 있다. 다시 말해, DCP 블록은 변이 벡터에 의해 특정된 참조 블록의 텍스쳐 데이터를 이용하여 시점 간 예측을 수행할 수 있다. 이 경우, 현재 텍스쳐 블록의 변이 벡터는 DCP 블록이 시점 간 텍스쳐 예측을 위해 이용한 변이 벡터를 이용하여 예측되거나 복원될 수 있다. The disparity vector of the current texture block may be derived from a disparity-compensated prediction block (hereinafter, referred to as a DCP block) among the spatial / temporal neighboring blocks. Here, the DCP block may mean a block encoded through inter-view texture prediction using a disparity vector. In other words, the DCP block may perform inter-view prediction using texture data of the reference block specified by the disparity vector. In this case, the disparity vector of the current texture block may be predicted or reconstructed using the disparity vector used by the DCP block for inter-view texture prediction.
또는, 현재 텍스쳐 블록의 변이 벡터는 상기 공간적 이웃 블록 중 변이 벡터 기반의 모션 보상된 예측 블록(disparity vector based-motion compensation prediction block, 이하 DV-MCP 블록이라 함)으로부터 유도될 수도 있다. 여기서, DV-MCP 블록은 변이 벡터를 이용한 시점 간 모션 예측(inter-view motion prediction)을 통해 부호화된 블록을 의미할 수 있다. 다시 말해, DV-MCP 블록은 변이 벡터에 의해 특정된 참조 블록의 시간적 모션 벡터를 이용하여 시간적 인터 예측을 수행할 수 있다. 이 경우, 현재 텍스쳐 블록의 변이 벡터는 DV-MCP 블록이 참조 블록의 시간적 모션 벡터를 획득하기 위해 이용한 변이 벡터를 이용하여 예측되거나 복원될 수도 있다.Alternatively, the disparity vector of the current texture block may be derived from a disparity vector based-motion compensation prediction block (hereinafter referred to as DV-MCP block) among the spatial neighboring blocks. Here, the DV-MCP block may mean a block encoded through inter-view motion prediction using a disparity vector. In other words, the DV-MCP block may perform temporal inter prediction using the temporal motion vector of the reference block specified by the disparity vector. In this case, the disparity vector of the current texture block may be predicted or reconstructed using the disparity vector used by the DV-MCP block to obtain the temporal motion vector of the reference block.
상기 현재 텍스쳐 블록은 기-정의된 우선 순위에 따라 공간적/시간적 이웃 블록이 DCP 블록에 해당하는지를 탐색하고, 최초로 탐색된 DCP 블록으로부터 변이 벡터를 유도할 수 있다. 기-정의된 우선 순위의 예로, 공간적 이웃 블록->시간적 이웃 블록의 우선 순위로 탐색을 수행할 수 있고, 공간적 이웃 블록 중에서는 A1->B1->B0->A0->B2의 우선 순위로 DCP 블록에 해당하는지를 탐색할 수 있다. 다만, 이는 우선 순위의 일실시예에 불과하며, 당업자에게 자명한 범위 내에서 상이하게 결정될 수 있음은 물론이다. The current texture block may search whether a spatial / temporal neighboring block corresponds to a DCP block according to a pre-defined priority, and derive a disparity vector from the first found DCP block. As an example of the predefined priorities, the search may be performed with the priority of the spatial neighboring block-> temporal neighboring block, and among the spatial neighboring blocks with the priority of A1-> B1-> B0-> A0-> B2. It may be found whether it corresponds to the DCP block. However, this is only an embodiment of the priority, and may be determined differently within the scope apparent to those skilled in the art.
만일 공간적/시간적 이웃 블록 중 어느 하나도 DCP 블록에 해당하지 아니하는 경우, 해당 공간적 이웃 블록이 DV-MCP 블록에 해당하는지를 추가적으로 탐색하고, 마찬가지로 최초로 탐색된 DV-MCP 블록으로부터 변이 벡터를 유도할 수 있다.If none of the spatial / temporal neighboring blocks corresponds to the DCP block, it can additionally search whether the spatial neighboring block corresponds to the DV-MCP block, and likewise derive the disparity vector from the first searched DV-MCP block. .
도 5는 본 발명이 적용되는 일실시예로서, 현재 텍스쳐 블록의 인터 예측을 수행하는 방법을 도시한 것이다.FIG. 5 illustrates a method of performing inter prediction of a current texture block according to an embodiment to which the present invention is applied.
도 5를 참조하면, 현재 텍스쳐 블록의 예측 모드를 결정할 수 있다(S500).Referring to FIG. 5, the prediction mode of the current texture block may be determined (S500).
즉, 현재 텍스쳐 블록이 인트라 모드로 부호화된 블록인지 또는 인터 모드로 부호화된 블록인지 여부를 결정할 수 있다. 현재 텍스쳐 블록의 예측 모드는 부호화 장치에서 부호화되어 전송되는 예측 모드 플래그를 이용하여 결정할 수 있다. 예를 들어, 상기 예측 모드 플래그의 값이 0이면, 현재 텍스쳐 블록은 인터 모드로 부호화된 블록임을 나타내고, 그 값이 1이면, 현재 텍스쳐 블록은 인트라 모드로 부호화된 블록임을 나타낼 수 있다.That is, it may be determined whether the current texture block is a block coded in an intra mode or a block coded in an inter mode. The prediction mode of the current texture block may be determined using a prediction mode flag encoded and transmitted by the encoding apparatus. For example, if the value of the prediction mode flag is 0, the current texture block may indicate that the block is encoded in the inter mode, and if the value is 1, the current texture block may indicate that the block is encoded in the intra mode.
도 5를 참조하면, 상기 현재 텍스쳐 블록이 인터 모드로 부호화된 블록인 경우, 상기 현재 텍스쳐 블록의 파티션 모드를 결정할 수 있다(S510).Referring to FIG. 5, when the current texture block is a block encoded in an inter mode, a partition mode of the current texture block may be determined (S510).
본 발명의 파티션 모드는 현재 텍스쳐 블록이 정사각형 파티션으로 부호화되는지 또는 직사각형 파티션으로 부호화되는지를 특정할 수 있고, 현재 텍스쳐 블록이 대칭 파티션으로 부호화되는지 또는 비대칭 파티션으로 부호화되는지를 특정할 수 있다. 예를 들어, 파티션 모드에는 2Nx2N, Nx2N, 2NxN, NxN, 2NxnU, 2NxnD, nLx2N, nRx2N 등이 있다. 상기 파티션 모드에 따라 현재 텍스쳐 블록는 적어도 하나의 파티션으로 분할될 수 있다. 상기 파티션 모드에 따라 현재 텍스쳐 블록에 대해서 인터 예측을 수행하는 기본 단위(즉, 예측 단위)가 결정될 수 있다. 현재 텍스쳐 블록의 파티션 모드는 부호화 장치에서 부호화되어 전송되는 파티션 모드 정보(part_mode)를 이용하여 결정될 수 있다.The partition mode of the present invention may specify whether the current texture block is encoded into a square partition or a rectangular partition, and may specify whether the current texture block is encoded into a symmetric partition or an asymmetric partition. For example, partition modes include 2Nx2N, Nx2N, 2NxN, NxN, 2NxnU, 2NxnD, nLx2N, nRx2N, and the like. According to the partition mode, the current texture block may be divided into at least one partition. A basic unit (ie, prediction unit) for performing inter prediction on the current texture block may be determined according to the partition mode. The partition mode of the current texture block may be determined using partition mode information (part_mode) encoded and transmitted by the encoding apparatus.
도 5를 참조하면, S510 단계에서 결정된 파티션 모드에 따른 각 파티션 별로 모션 벡터를 획득할 수 있다(S520).Referring to FIG. 5, a motion vector may be obtained for each partition according to the partition mode determined in operation S510 (S520).
구체적으로, 현재 텍스쳐 블록의 각 파티션은 공간적 이웃 블록 또는 시간적 이웃 블록 중 어느 하나의 모션 벡터를 이용하여 모션 벡터 예측값을 획득하고, 모션 벡터 예측값과 부호화된 모션 벡터 차분값을 이용하여 모션 벡터를 복원할 수 있다. 여기서, 공간적 이웃 블록은 상기 파티션의 상단 또는 좌측에 인접한 이웃 블록을 의미하고, 시간적 이웃 블록은 현재 텍스쳐 블록과 다른 시간에 위치한 픽쳐 내에서 현재 텍스쳐 블록과 동일 위치의 블록을 의미할 수 있다.Specifically, each partition of the current texture block obtains a motion vector prediction value using a motion vector of either a spatial neighboring block or a temporal neighboring block, and reconstructs the motion vector using the motion vector prediction value and the encoded motion vector difference value. can do. Here, the spatial neighboring block may mean a neighboring block adjacent to the top or left side of the partition, and the temporal neighboring block may mean a block having the same position as the current texture block in a picture located at a different time from the current texture block.
도 5를 참조하면, 뎁스 기반 블록 파티션닝을 통해 상기 모션 벡터를 이용하여 현재 텍스쳐 블록에 대해서 인터 예측을 수행할 수 있다(S530).Referring to FIG. 5, inter prediction may be performed on a current texture block using the motion vector through depth-based block partitioning (S530).
본 발명의 뎁스 기반 블록 파티션닝이라 함은 현재 텍스쳐 블록의 파티션 모드에 따른 복수의 파티션의 서로 다른 모션 벡터를 이용하여 복수의 예측 블록을 생성하고, 복수의 예측 블록을 뎁스 블록의 파티션 패턴에 따라 조합하여 최종 예측 블록을 생성하는 방법으로서, 이는 도 6을 참조하여 자세히 살펴 보도록 한다.Depth-based block partitioning according to the present invention generates a plurality of prediction blocks using different motion vectors of a plurality of partitions according to the partition mode of the current texture block, and generates a plurality of prediction blocks according to the partition pattern of the depth block. As a method of generating a final prediction block by combining, this will be described in detail with reference to FIG. 6.
또한, 뎁스 기반 블록 파티션닝을 이용한 인터 예측은 뎁스 블록 파티션닝 플래그에 기초하여 선택적으로 수행될 수 있다. 예를 들어, 뎁스 블록 파티션닝 플래그의 값이 1이면, 현재 텍스쳐 블록은 뎁스 기반 블록 파티션닝을 이용하여 인터 예측을 수행하고, 그 값이 0이면, 현재 텍스쳐 블록은 뎁스 기반 블록 파티션닝을 이용하지 아니함을 나타낼 수 있다. 상기 뎁스 블록 파티션닝 플래그를 시그날링하는 방법에 대해서는 도 7 내지 도 9를 참조하여 살펴 보기로 한다.In addition, inter prediction using depth-based block partitioning may be selectively performed based on the depth block partitioning flag. For example, if the depth block partitioning flag has a value of 1, the current texture block performs inter prediction using depth based block partitioning, and if the value is 0, the current texture block uses depth based block partitioning. May indicate no. A method of signaling the depth block partitioning flag will be described with reference to FIGS. 7 to 9.
현재 텍스쳐 블록 또는 현재 텍스쳐 블록을 구성하는 각 파티션이 양방향 예측을 수행하는 경우, 상기 뎁스 기반 블록 파티션닝을 이용한 인터 예측은 수행되지 아니하도록 제한될 수 있다.When each partition constituting the current texture block or the current texture block performs bidirectional prediction, inter prediction using the depth-based block partitioning may be limited not to be performed.
도 6은 본 발명이 적용되는 일실시예로서, 뎁스 기반 블록 파티션닝을 이용하여 인터 예측을 수행하는 방법을 도시한 것이다.6 illustrates a method of performing inter prediction using depth based block partitioning according to an embodiment to which the present invention is applied.
도 6을 참조하면, 제1 파티션의 모션 벡터를 이용하여 현재 텍스쳐 블록의 제1 예측 블록(PT0(x,y))을 생성할 수 있다.Referring to FIG. 6, a first prediction block P T0 (x, y) of the current texture block may be generated using the motion vector of the first partition.
구체적으로, 현재 텍스쳐 블록이 Nx2N의 파티션 모드로 부호화된 경우, 상기 제1 파티션은 현재 텍스쳐 블록의 좌측 파티션(예를 들어, 파티션 인덱스가 0인 파티션) 또는 우측 파티션(예를 들어, 파티션 인덱스가 1인 파티션) 중 어느 하나를 의미할 수 있다. 또는, 현재 텍스쳐 블록이 2NxN의 파티션으로 부호화된 경우, 상기 제1 파티션은 상단 파티션 또는 하단 파티션 중 어느 하나를 의미할 수 있다.In detail, when the current texture block is encoded in a partition mode of N × 2N, the first partition may be a left partition (eg, a partition having a partition index of 0) or a right partition (eg, a partition index) of the current texture block. One partition). Alternatively, when the current texture block is encoded into a partition of 2N × N, the first partition may mean either the upper partition or the lower partition.
상기 제1 파티션에 관한 모션 벡터를 상기 현재 텍스쳐 블록에 적용하여 인터 예측을 수행할 수 있다. 제1 예측 블록(PT0(x,y))은 현재 텍스쳐 블록과 동일한 크기 즉, 2Nx2N의 크기를 가질 수 있다.Inter prediction may be performed by applying a motion vector relating to the first partition to the current texture block. The first prediction block P T0 (x, y) may have the same size as that of the current texture block, that is, 2N × 2N.
도 6을 참조하면, 제2 파티션의 모션 벡터를 이용하여 현재 텍스쳐 블록의 제2 예측 블록(PT1(x,y))을 생성할 수 있다.Referring to FIG. 6, a second prediction block P T1 (x, y) of the current texture block may be generated using the motion vector of the second partition.
여기서, 제2 파티션은 현재 텍스쳐 블록에 속한 파티션으로서, 제1 파티션이 아닌 다른 파티션을 의미할 수 있다. 상기 제2 파티션에 관한 모션 벡터를 상기 현재 텍스쳐 블록에 적용하여 인터 예측을 수행하고, 이 경우 제2 예측 블록(PT1(x,y))은 현재 텍스쳐 블록과 동일한 크기 즉, 2Nx2N의 크기를 가질 수 있다.Here, the second partition is a partition belonging to the current texture block and may mean a partition other than the first partition. Inter prediction is performed by applying the motion vector of the second partition to the current texture block. In this case, the second prediction block P T1 (x, y) has the same size as that of the current texture block, that is, 2N × 2N. Can have
현재 텍스쳐 블록에 대응하는 뎁스 블록의 파티션 패턴에 따라 제1 예측 블록(PT0(x,y))과 제2 예측 블록(PT1(x,y))을 조합하여 최종 예측 블록((PT(x,y))을 생성할 수 있다.The first prediction block P T0 (x, y) and the second prediction block P T1 (x, y) are combined in accordance with the partition pattern of the depth block corresponding to the current texture block to determine the final prediction block ((P T). (x, y))
구체적으로, 뎁스 블록의 파티션 패턴은 뎁스 블록의 복원된 뎁스 값과 소정의 문턱값(threshold value) 간의 비교에 기초하여 결정될 수 있다. 소정의 문턱값은 뎁스 블록의 코너에 위치한 샘플들 중 어느 하나의 값으로 결정될 수도 있고, 코너에 위치한 샘플들의 평균값, 최빈값, 최소값 또는 최대값 등으로 결정될 수도 있다. 뎁스 블록의 코너에 위치한 샘플들에는 좌-상단 코너 샘플, 우-상단 코너 샘플, 좌-하단 코너 샘플, 우-하단 코너 샘플 중 적어도 2개가 포함될 수 있다.In detail, the partition pattern of the depth block may be determined based on a comparison between the restored depth value of the depth block and a predetermined threshold value. The predetermined threshold may be determined by the value of any one of the samples located at the corners of the depth block, or may be determined by the average, mode, minimum, or maximum values of the samples located at the corners. Samples located at the corners of the depth block may include at least two of a left-top corner sample, a right-top corner sample, a left-bottom corner sample, and a right-bottom corner sample.
뎁스 블록의 복원된 뎁스 값과 소정의 문턱값 간의 비교를 통해, 뎁스 블록은 제1 영역과 제2 영역으로 구분될 수 있다. 제1 영역은 소정의 문턱값보다 큰 뎁스 값을 가진 샘플들의 집합을 의미하고, 제2 영역은 소정의 문턱값보다 작은 뎁스 값을 가진 샘플들의 집합을 의미할 수 있다. 제1 영역과 제2 영역을 구분하기 위해서, 제1 영역의 샘플에는 1을 할당하고, 제2 영역의 샘플에는 0을 할당할 수 있다. 역으로, 제1 영역의 샘플에는 0을 할당하고, 제2 영역의 샘플에는 1을 할당할 수 있음은 물론이다. 뎁스 블록이 제1 영역과 제2 영역으로 구분됨에 따라 파티션 패턴이 결정될 수 있다.The depth block may be divided into a first region and a second region by comparing the restored depth value of the depth block with a predetermined threshold. The first region may mean a set of samples having a depth value larger than a predetermined threshold, and the second region may mean a set of samples having a depth value smaller than a predetermined threshold. In order to distinguish the first region from the second region, 1 may be allocated to a sample of the first region and 0 may be allocated to a sample of the second region. Conversely, 0 can be assigned to the sample of the first region and 1 can be assigned to the sample of the second region. As the depth block is divided into a first region and a second region, a partition pattern may be determined.
제1 예측 블록(PT0(x,y))으로부터 상기 파티션 패턴에 따른 제1 영역에 해당하는 예측 신호(이하, 제1 예측 신호(mD0(x,y))라 함)를 추출하고, 제2 예측 블록(PT1(x,y))으로부터 상기 파티션 패턴에 따른 제2 영역에 해당하는 예측 신호(이하, 제2 예측 신호(mD1(x,y))라 함)를 추출할 수 있다.Extracting a prediction signal corresponding to a first region according to the partition pattern (hereinafter, referred to as a first prediction signal m D0 (x, y)) from a first prediction block P T0 (x, y), A prediction signal corresponding to a second region according to the partition pattern (hereinafter, referred to as a second prediction signal m D1 (x, y)) may be extracted from a second prediction block P T1 (x, y). have.
추출된 제1 예측 신호(mD0(x,y))와 제2 예측 신호(mD1(x,y))를 조합하여 현재 텍스쳐 블록의 최종 예측 블록을 생성할 수 있다.The final prediction block of the current texture block may be generated by combining the extracted first prediction signal m D0 (x, y) and the second prediction signal m D1 (x, y).
도 7 내지 도 9는 본 발명이 적용되는 일실시예로서, 뎁스 블록 파티션닝 플래그를 시그날링하는 방법을 도시한 것이다.7 to 9 illustrate a method of signaling a depth block partitioning flag according to an embodiment to which the present invention is applied.
도 7을 참조하면, 뎁스 블록 파티션닝 가용 플래그(depth_based_blk_part_flag[layerId]와 현재 텍스쳐 블록의 예측 모드에 기초하여 뎁스 블록 파티션닝 플래그를 획득할 수 있다(S700).Referring to FIG. 7, a depth block partitioning flag may be obtained based on a depth_based_blk_part_flag [layerId] and a prediction mode of a current texture block (S700).
상기 뎁스 블록 파티션닝 가용 플래그는 레이어 아이디 layerId에 속하는 적어도 하나의 슬라이스 또는 코딩 블록에서 뎁스 기반 블록 파티션닝이 이용되는지 여부를 나타낼 수 있다. 예를 들어, 뎁스 블록 파티션닝 가용 플래그의 값이 1이면, 해당 레이어에 속하는 적어도 하나의 슬라이스 또는 코딩 블록에서 뎁스 기반 블록 파티션닝이 이용되고, 그 값이 0이면, 해당 레이어에 속하는 모든 슬라이스 또는 코딩 블록에서 뎁스 기반 블록 파티션닝이 이용되지 아니함을 나타낼 수 있다. 따라서, 뎁스 블록 파티션닝 가용 플래그의 값이 1인 경우에 한하여 뎁스 블록 파티션닝 플래그를 획득할 수 있다.The depth block partitioning enable flag may indicate whether depth-based block partitioning is used in at least one slice or coding block belonging to a layer ID layerId. For example, if the value of the depth block partitioning available flag is 1, depth-based block partitioning is used in at least one slice or coding block belonging to the layer, and if the value is 0, all slices or belonging to the layer are defined. It may indicate that depth based block partitioning is not used in the coding block. Therefore, the depth block partitioning flag may be obtained only when the value of the depth block partitioning enable flag is 1.
한편, 뎁스 기반 블록 파티션닝은 하나의 코딩 블록을 서로 다른 모션 벡터를 이용하여 각각의 예측 신호를 생성하고, 뎁스 블록의 파티션 패턴에 따라 생성된 예측 신호를 합성하는 방법이기 때문에, 코딩 블록의 예측 모드가 인트라 모드이거나, 코딩 블록 단위로 수행되는 스킵 모드(skip mode)인 경우에는 뎁스 기반 블록 파티션닝을 이용할 수가 없다. 따라서, 현재 텍스쳐 블록의 예측 모드가 인터 모드인 경우에 한하여 뎁스 블록 파티션닝 플래그를 획득하도록 함으로써, 부호화 효율을 높일 수 있다.On the other hand, since depth-based block partitioning is a method of generating each prediction signal from one coding block using different motion vectors and synthesizing the prediction signal generated according to the partition pattern of the depth block, the coding block prediction When the mode is an intra mode or a skip mode performed in units of coding blocks, depth-based block partitioning cannot be used. Therefore, the encoding efficiency can be improved by obtaining the depth block partitioning flag only when the prediction mode of the current texture block is the inter mode.
도 8을 참조하면, 뎁스 블록 파티션닝 가용 플래그(depth_based_blk_part_flag[layerId], 현재 텍스쳐 블록의 예측 모드와 현재 텍스쳐 블록의 파티션 모드에 기초하여 뎁스 블록 파티션닝 플래그를 획득할 수 있다(S800).Referring to FIG. 8, a depth block partitioning flag may be obtained based on a depth block partitioning enable flag (depth_based_blk_part_flag [layerId]), a prediction mode of a current texture block, and a partition mode of a current texture block (S800).
상술한 바와 같이, 상기 뎁스 블록 파티션닝 가용 플래그는 레이어 아이디 layerId에 속하는 적어도 하나의 슬라이스 또는 코딩 블록에서 뎁스 기반 블록 파티션닝이 이용되는지 여부를 나타낼 수 있다. 예를 들어, 뎁스 블록 파티션닝 가용 플래그의 값이 1이면, 해당 레이어에 속하는 적어도 하나의 슬라이스 또는 코딩 블록에서 뎁스 기반 블록 파티션닝이 이용되고, 그 값이 0이면, 해당 레이어에 속하는 모든 슬라이스 또는 코딩 블록에서 뎁스 기반 블록 파티션닝이 이용되지 아니함을 나타낼 수 있다. 따라서, 뎁스 블록 파티션닝 가용 플래그의 값이 1인 경우에 한하여 뎁스 블록 파티션닝 플래그를 획득할 수 있다.As described above, the depth block partitioning enable flag may indicate whether depth-based block partitioning is used in at least one slice or coding block belonging to a layer ID layerId. For example, if the value of the depth block partitioning available flag is 1, depth-based block partitioning is used in at least one slice or coding block belonging to the layer, and if the value is 0, all slices or belonging to the layer are defined. It may indicate that depth based block partitioning is not used in the coding block. Therefore, the depth block partitioning flag may be obtained only when the value of the depth block partitioning enable flag is 1.
한편, 도 7에서 살펴본 바와 마찬가지로 현재 텍스쳐 블록의 예측 모드가 인터 모드인 경우에 한하여 뎁스 블록 파티션닝 플래그를 획득하도록 함으로써, 부호화 효율을 높일 수 있다.Meanwhile, as described with reference to FIG. 7, the encoding efficiency may be increased by acquiring the depth block partitioning flag only when the prediction mode of the current texture block is the inter mode.
나아가, 뎁스 기반 블록 파티션닝은 하나의 코딩 블록을 구성하는 복수의 파티션의 서로 다른 모션 벡터를 이용하여 예측 신호를 각각 생성할 것을 요구하므로, 현재 텍스쳐 블록의 파티션 모드가 2Nx2N이 아닌 경우에 한하여 뎁스 블록 파티션닝 플래그를 획득하도록 제한할 수도 있다.Furthermore, since depth-based block partitioning requires generating a prediction signal using different motion vectors of a plurality of partitions constituting one coding block, the depth is limited only when the partition mode of the current texture block is not 2Nx2N. It may be restricted to obtain the block partitioning flag.
도 9를 참조하면, 뎁스 블록 파티션닝 가용 플래그(depth_based_blk_part_flag[layerId], 현재 텍스쳐 블록의 예측 모드와 현재 텍스쳐 블록의 파티션 모드에 기초하여 뎁스 블록 파티션닝 플래그를 획득할 수 있다(S900).Referring to FIG. 9, a depth block partitioning flag may be obtained based on a depth block partitioning enable flag (depth_based_blk_part_flag [layerId]), a prediction mode of a current texture block, and a partition mode of a current texture block (S900).
상술한 바와 같이, 상기 뎁스 블록 파티션닝 가용 플래그는 레이어 아이디 layerId에 속하는 적어도 하나의 슬라이스 또는 코딩 블록에서 뎁스 기반 블록 파티션닝이 이용되는지 여부를 나타낼 수 있다. 예를 들어, 뎁스 블록 파티션닝 가용 플래그의 값이 1이면, 해당 레이어에 속하는 적어도 하나의 슬라이스 또는 코딩 블록에서 뎁스 기반 블록 파티션닝이 이용되고, 그 값이 0이면, 해당 레이어에 속하는 모든 슬라이스 또는 코딩 블록에서 뎁스 기반 블록 파티션닝이 이용되지 아니함을 나타낼 수 있다. 따라서, 뎁스 블록 파티션닝 가용 플래그의 값이 1인 경우에 한하여 뎁스 블록 파티션닝 플래그를 획득할 수 있다.As described above, the depth block partitioning enable flag may indicate whether depth-based block partitioning is used in at least one slice or coding block belonging to a layer ID layerId. For example, if the value of the depth block partitioning available flag is 1, depth-based block partitioning is used in at least one slice or coding block belonging to the layer, and if the value is 0, all slices or belonging to the layer are defined. It may indicate that depth based block partitioning is not used in the coding block. Therefore, the depth block partitioning flag may be obtained only when the value of the depth block partitioning enable flag is 1.
한편, 도 7에서 살펴본 바와 마찬가지로 현재 텍스쳐 블록의 예측 모드가 인터 모드인 경우에 한하여 뎁스 블록 파티션닝 플래그를 획득하도록 함으로써, 부호화 효율을 높일 수 있다.Meanwhile, as described with reference to FIG. 7, the encoding efficiency may be increased by acquiring the depth block partitioning flag only when the prediction mode of the current texture block is the inter mode.
나아가, 현재 텍스쳐 블록이 정사각형 파티션으로 부호화되지 아니한 경우 (예를 들어, 현재 텍스쳐 블록의 파티션 모드가 2Nx2N이 아닌 경우 또는 NxN이 아닌 경우)에 한하여 뎁스 블록 파티션닝 플래그를 획득하도록 제한할 수도 있다.Furthermore, the depth block partitioning flag may be limited to be acquired only when the current texture block is not encoded as a square partition (for example, when the partition mode of the current texture block is not 2Nx2N or not NxN).