KR20070076391A - A method and apparatus for decoding/encoding a video signal - Google Patents
A method and apparatus for decoding/encoding a video signal Download PDFInfo
- Publication number
- KR20070076391A KR20070076391A KR1020060110337A KR20060110337A KR20070076391A KR 20070076391 A KR20070076391 A KR 20070076391A KR 1020060110337 A KR1020060110337 A KR 1020060110337A KR 20060110337 A KR20060110337 A KR 20060110337A KR 20070076391 A KR20070076391 A KR 20070076391A
- Authority
- KR
- South Korea
- Prior art keywords
- current block
- block
- flag information
- offset value
- value
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
- H04N19/139—Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
-
- 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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
도 1은 본 발명을 적용한 다시점 영상(multi-view sequence) 인코딩 및 디코딩 시스템을 도시한 것이다.1 illustrates a multi-view sequence encoding and decoding system to which the present invention is applied.
도 2는 본 발명을 적용한 다시점 비디오 코딩에 있어서, 픽쳐들 간의 예측 구조의 한 예를 나타낸다. 2 shows an example of a prediction structure between pictures in multi-view video coding to which the present invention is applied.
도 3은 본 발명이 적용되는 일실시예로서, 현재 블록의 오프셋 값을 획득하는 과정을 설명하기 위한 도면을 나타낸다.3 is a diagram for describing a process of obtaining an offset value of a current block according to an embodiment to which the present invention is applied.
도 4는 본 발명이 적용된 실시예로서, 현재 블록의 조명 보상 수행여부를 나타내는 플래그 정보와 현재 블록의 오프셋 값을 이용하여 조명 보상을 수행하는 과정을 설명하기 위한 흐름도를 나타낸다.4 is an embodiment to which the present invention is applied and shows a flowchart for explaining a process of performing lighting compensation using flag information indicating whether lighting compensation is performed on a current block and an offset value of the current block.
도 5a ~ 도 5b는 본 발명이 적용된 일실시예로서, 각각 P 슬라이스 및 B 슬라이스에 속한 블록에 대해 플래그 정보와 오프셋 값을 이용하여 조명 보상을 수행하는 방법을 설명하기 위해 나타낸 것이다.5A to 5B illustrate an embodiment to which the present invention is applied to illustrate a method of performing illumination compensation using flag information and offset values for blocks belonging to a P slice and a B slice, respectively.
도 6은 본 발명이 적용되는 일실시예로서, 현재 블록이 2이상의 참조 블록을 이용하여 예측 코딩된 경우에 있어서 조명 보상을 수행하는 방법을 설명하기 위한 흐름도이다.FIG. 6 is a flowchart illustrating a method of performing lighting compensation when a current block is predictively coded using two or more reference blocks according to an embodiment to which the present invention is applied.
도 7은 본 발명이 적용되는 일실시예로서, 현재 블록의 조명 보상 수행여부를 나타내는 플래그 정보를 이용하여 조명 보상을 수행하는 과정을 설명하기 위한 흐름도를 나타낸다.FIG. 7 is a flowchart illustrating a process of performing lighting compensation using flag information indicating whether lighting compensation is performed on a current block according to an embodiment to which the present invention is applied.
도 8a ~ 도 8c는 본 발명이 적용된 일실시예로서, 현재 블록의 조명 보상 수행여부를 나타내는 플래그 정보의 사용 범위를 설명하기 위해 나타낸 것이다.8A to 8C are diagrams illustrating the use range of flag information indicating whether lighting compensation is performed on a current block as an embodiment to which the present invention is applied.
도 9는 본 발명이 적용되는 일실시예로서, 현재 블록의 오프셋 값을 고려하여 움직임 벡터를 획득하는 과정을 설명하기 위한 흐름도를 나타낸다.9 is a flowchart illustrating a process of obtaining a motion vector in consideration of an offset value of a current block according to an embodiment to which the present invention is applied.
본 발명은 비디오 신호의 디코딩/인코딩 방법 및 장치에 관한 기술이다.The present invention relates to a method and apparatus for decoding / encoding a video signal.
현재 주류를 이루고 있는 비디오 방송 영상물은 한 대의 카메라로 획득한 단일시점 영상이다. 반면, 다시점 비디오(Multi-view video)란 한 대 이상의 카메라를 통해 촬영된 영상들을 기하학적으로 교정하고 공간적인 합성 등을 통하여 여러 방향의 다양한 시점을 사용자에게 제공하는 3차원(3D) 영상처리의 한 분야이다. 다시점 비디오는 사용자에게 3차원 입체 영상, 또는 많은 시점의 영상을 제공할 수 있으며, 한대의 카메라를 이용하여 획득할 수 있는 영상 영역에 비해 큰 영역을 포함하는 특징을 지닌다. The mainstream video broadcasting image is a single view image acquired with one camera. Multi-view video, on the other hand, is a three-dimensional (3D) image processing method that geometrically corrects images taken by more than one camera and provides users with various viewpoints in various directions through spatial synthesis. It is a field. A multi-view video may provide a 3D stereoscopic image or an image of many viewpoints to a user, and has a feature that includes a larger area than an image area that can be acquired using a single camera.
상기에서 설명한 다시점 비디오(Multi-view video)의 각 시점 영상(view sequence)들은 각기 다른 카메라에서 취득된 영상들이기 때문에 카메라의 내외적 요인으로 인하여 조명 (illumination) 차이가 발생하게 된다. 예를 들어, 카메라의 이질성(camera heterogeneity), 카메라 측정(camera calibration)의 차이, 또는 카메라의 정렬 (camera alignment)의 차이 등이 원인이 된다. 이러한 조명 차이는 다른 시점(view)들 간의 상관도를 현저히 떨어뜨려 효과적인 부호화를 저해하므로, 이를 방지하기 위해서 조명 보상 부호화(illumination compensated coding) 기술이 필요하다. Since the view sequences of the multi-view video described above are images obtained from different cameras, illumination differences may occur due to internal and external factors of the camera. For example, a camera heterogeneity, a difference in camera calibration, or a camera alignment is caused. Since the illumination difference significantly lowers the correlation between different views, thereby inhibiting effective coding, an illumination compensated coding technique is required to prevent this.
본 발명의 목적은 일정 계층에 대한 조명 보상 적용 여부를 나타내는 식별자를 사용함으로써 효율적인 조명 보상을 수행하고자 함에 있다.An object of the present invention is to perform efficient lighting compensation by using an identifier indicating whether to apply lighting compensation to a certain layer.
본 발명의 다른 목적은 현재 블록의 조명 보상 수행 여부를 나타내는 식별자와 블록들 사이의 평균 화소값 차이를 나타내는 오프셋 값을 이용하여 조명 보상을 수행함으로써 비디오 신호의 코딩 효율을 높이고자 함에 있다.Another object of the present invention is to improve coding efficiency of a video signal by performing lighting compensation using an identifier indicating whether lighting compensation is performed on a current block and an offset value indicating an average pixel value difference between blocks.
본 발명의 또 다른 목적은 블록 간 또는 시점 간의 상관관계를 효과적으로 이용하여 비디오 신호의 코딩 효율을 높이고자 함에 있다.Another object of the present invention is to improve coding efficiency of a video signal by effectively using correlations between blocks or views.
본 발명의 또 다른 목적은 움직임 추정을 수행할 때 블록들 사이의 평균 화소값 차이를 나타내는 오프셋 값을 고려함으로써 비디오 신호의 코딩 효율을 높이고자 함에 있다.Another object of the present invention is to improve coding efficiency of a video signal by considering an offset value representing an average pixel value difference between blocks when performing motion estimation.
상기 목적을 달성하기 위하여 본 발명은 현재 블록의 조명보상 수행여부를 나타내는 플래그 정보를 획득하는 단계와 상기 플래그 정보에 따라 조명보상이 수 행되는 경우, 상기 현재 블록의 평균 화소값과 참조 블록의 평균 화소값의 차이를 나타내는 현재 블록의 오프셋 값을 복원하는 단계를 포함하는 것을 특징으로 하는 비디오 신호 디코딩 방법을 제공한다.In order to achieve the above object, the present invention obtains flag information indicating whether or not to perform lighting compensation of a current block, and when lighting compensation is performed according to the flag information, an average pixel value of the current block and an average of a reference block. And restoring an offset value of a current block representing a difference in pixel values.
또한, 본 발명은 비디오 신호의 일정 계층에 대해 조명 보상(illumination compensation)을 수행하도록 유도하는 플래그 정보를 획득하는 단계와 상기 플래그 정보에 따라 조명 보상이 수행된 상기 비디오 신호의 일정 계층을 디코딩하는 단계를 포함하되, 상기 비디오 신호의 일정 계층은, 시퀀스(sequence) 계층, 시점(view) 계층, 픽쳐그룹(Group Of Picture) 계층, 픽쳐(picture) 계층, 슬라이스(slice) 계층, 매크로블록(macroblock) 계층 또는 블록(block) 계층 중 어느 하나인 것을 특징으로 하는 비디오 신호 디코딩 방법을 제공한다.The present invention also provides a method of obtaining flag information for inducing illumination compensation for a certain layer of a video signal, and decoding a layer of the video signal for which illumination compensation is performed according to the flag information. The predetermined layer of the video signal may include a sequence layer, a view layer, a picture group layer, a picture layer, a slice layer, and a macroblock. Provided is a video signal decoding method characterized in that either of a layer or a block layer.
또한, 본 발명은 현재 블록의 평균 화소값과 참조 블록의 평균 화소값 차이를 나타내는 현재 블록의 오프셋 값을 획득하는 단계와 상기 오프셋 값을 이용하여 현재 블록과 최적으로 매칭되는 참조 블록을 서치하는 단계 및 상기 서치된 참조 블록으로부터 움직임 벡터를 획득하여 부호화하는 단계를 포함하는 것을 특징으로 하는 비디오 신호 인코딩 방법을 제공한다.The present invention also provides a method of obtaining an offset value of a current block representing a difference between an average pixel value of a current block and an average pixel value of a reference block, and searching for a reference block that is optimally matched to the current block using the offset value. And obtaining and encoding a motion vector from the searched reference block.
상술한 목적 및 구성의 특징은 첨부된 도면과 관련하여 다음의 상세한 설명을 통하여 보다 명확해질 것이다. 이하 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예들를 상세히 설명한다.The above objects and features of the construction will become more apparent from the following detailed description taken in conjunction with the accompanying drawings. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.
아울러, 본 발명에서 사용되는 용어는 가능한 한 현재 널리 사용되는 일반적인 용어를 선택하였으나, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우는 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재하였으므로, 단순한 용어의 명칭이 아닌 용어가 가지는 의미로서 본 발명을 파악하여야 함을 밝혀두고자 한다.In addition, the terms used in the present invention was selected as a general term widely used as possible now, but in some cases, the term is arbitrarily selected by the applicant, in which case the meaning is described in detail in the description of the invention, It is to be understood that the present invention is to be understood as the meaning of terms rather than the names of terms.
도 1은 본 발명을 적용한 다시점 영상(multi-view sequence) 인코딩 및 디코딩 시스템을 도시한 것이다. 도 1에 도시된 바와 같이, 본 발명을 적용한 다시점 영상 인코딩 시스템은, 다시점 영상 발생부(10), 전처리부(20, preprocessing part) 및 인코딩부(30, encoding part)를 포함하여 구성된다. 또한, 디코딩 시스템은 익스트랙터(40, extractor), 디코딩부(50, decoding part), 후처리부(60, post processing part) 및 디스플레이부(70, display part)를 포함하여 구성된다.1 illustrates a multi-view sequence encoding and decoding system to which the present invention is applied. As shown in FIG. 1, the multiview image encoding system to which the present invention is applied includes a
상기 다시점 영상 발생부(10)는 다시점 개수 만큼의 영상 획득장치(예를 들어, 카메라 #1 ~ #N)를 구비하여, 각 시점별로 독립적인 영상을 획득하게 된다. 전처리부(20)는 다시점 영상 데이터가 입력되면, 노이즈 제거, 임발란싱(imbalancing) 문제를 해결하면서 전처리 과정을 통해 다시점 영상 데이터들 간의 상관도를 높여주는 기능을 수행한다. 인코딩부(30)는 움직임(motion) 추정부, 움직임 보상부 및 시점 간의 변이(disparity) 추정부, 변이 보상부, 조명(illumination) 보상부, 비트율 제어 및 차분(residual) 영상 인코딩부 등을 포함한다. 상기 인코딩부(30)는 일반적으로 알려진 방식을 적용할 수 있다.The
본 발명이 적용되는 상기 인코딩부(30)의 조명 보상부는 MVC를 위한 조명 변화에 적응적인 움직임 보상을 수행한다. 현재 블록의 조명 보상 수행여부를 나타내는 플래그 정보를 이용함으로써 코딩 효율을 높일 수 있다. 또한, 현재 블록의 평 균 화소값과 그에 대응하는 참조 블록의 평균 화소값을 구하여, 상기 두 평균 화소값의 차이를 획득하여 전송함으로써 효율적인 부호화를 수행할 수 있다. 이때 상기 현재 블록의 평균 화소값과 그에 대응하는 참조 블록의 평균 화소값과의 차이를 오프셋 값이라 한다. 상기 현재 블록의 오프셋 값을 전송함에 있어서, 코딩할 비트수를 더 감소시킬 필요가 있다. 예를 들어, 상기 현재 블록의 이웃 블록들을 이용하여 상기 현재 블록의 오프셋 값의 프리딕터를 획득하고, 상기 오프셋 값과 상기 프리딕터와의 차이값을 획득하여 그 차이값만 전송할 수 있다. 위와 같은 과정을 수행할 때, 다른 시점의 픽쳐를 참조 픽쳐로 이용할 수 있는데, 이 때 픽쳐의 시점을 나타내는 시점 식별자가 이용될 수 있다.The lighting compensator of the
익스트랙터(40)는 전송된 MVC 비트스트림으로부터 원하는 시점(view)에 해당하는 비트스트림만 추출할 수 있는 기능을 한다. 상기 익스트랙터(40)는 헤더를 보고 선택적으로 원하는 시점만 디코딩할 수 있다. 또한, 픽쳐의 시점을 구별하는 시점 식별자(view identifier)를 이용하여 원하는 시점에 해당하는 비트스트림만을 추출함으로써 시점 확장성(view scalability)을 구현할 수 있다. MVC는 H.264/AVC와 완벽하게 호환이 가능해야 하기 때문에 H.264/AVC와 호환 가능한 특정 시점만 디코딩해야 할 필요가 있다. 이러한 경우, 호환 가능한 시점만 디코딩하기 위해 픽쳐의 시점을 구별하는 시점 식별자가 이용될 수 있다. 익스트랙터(40)를 통해 추출된 비트스트림은 디코딩부(50)로 전송된다. 디코딩부(50)는 움직임 보상부, 조명 보상부, 가중치 예측부, 디블록킹 필터부 등을 포함한다. 디코딩부(50)는 전술한 방식에 의해 인코딩된 비트스트림을 수신한 후, 이를 역으로 디코딩한다.The
본 발명이 적용되는 상기 디코딩부(50)의 조명 보상부는 MVC를 위한 조명 변화에 적응적인 움직임 보상을 수행한다. 따라서, 현재 블록을 복원하기 위해서는 현재 블록의 평균 화소값과 그에 대응하는 참조 블록의 평균 화소값 사이의 차이값인 현재 블록의 오프셋 값이 인코딩부(30)로부터 전송되어져야 한다. 또한, 현재 블록의 조명 보상 수행여부를 나타내는 플래그 정보도 함께 전송되어질 수 있다. 상기 오프셋 값을 전송함에 있어서, 코딩할 비트수를 더 감소시키기 위한 방법의 일례로, 상기 현재 블록의 이웃 블록들을 이용하여 상기 현재 블록의 오프셋 값의 프리딕터를 획득하고, 상기 오프셋 값과 상기 프리딕터와의 차이값(residual)을 획득하여 그 차이값만 전송하였다. 따라서, 디코딩부(50)에서는 비디오 신호로부터 상기 현재 블록의 이웃 블록들의 플래그 정보 및 오프셋 값, 상기 현재 블록과 그 이웃 블록들의 해당 참조 블록들의 인덱스 정보 등을 추출하고, 이를 이용하여 상기 프리딕터를 획득할 수 있다. 그리고, 상기 오프셋 값과 상기 프리딕터와의 차이값(residual)을 획득하고, 상기 차이값과 상기 프리딕터를 이용하여 상기 현재 블록의 오프셋 값을 복원할 수 있다. 위와 같이 상기 프리딕터를 획득하는 과정을 수행할 때, 다른 시점의 픽쳐를 참조 픽쳐로 이용하는 경우, 픽쳐의 시점을 나타내는 시점 식별자가 이용될 수 있다.The lighting compensator of the
또한, 후처리부(60)는 디코딩된 데이터의 신뢰도 및 해상도를 높여주는 기능을 수행하게 된다. 마지막으로 디스플레이부(70)는 디스플레이의 기능, 특히 다시점 영상을 처리하는 능력에 따라 다양한 방식으로 사용자에게 디코딩된 데이터를 제공하게 된다. 예를 들어, 평면 2차원 영상만을 제공하는 2D 디스플레이(71)이거 나, 2개의 시점을 입체 영상으로 제공하는 스테레오(stereo) 타입의 디스플레이(73)이거나 또는 M개의 시점(2<M)을 입체 영상으로 제공하는 디스플레이(75)일 수 있다.In addition, the
도 2는 본 발명을 적용한 다시점 비디오 코딩에 있어서, 픽쳐들 간의 예측 구조의 한 예를 나타낸다. 2 shows an example of a prediction structure between pictures in multi-view video coding to which the present invention is applied.
도 2에 나타난 바와 같이 가로축의 T0 ~ T100 은 각각 시간에 따른 프레임을 나타낸 것이고, 세로축의 S0 ~ S7은 각각 시점에 따른 프레임을 나타낸 것이다. 예를 들어, T0에 있는 픽쳐들은 같은 시간대(T0)에 서로 다른 카메라에서 찍은 영상들을 의미하며, S0 에 있는 픽쳐들은 한 대의 카메라에서 찍은 다른 시간대의 영상들을 의미한다. 또한, 도면 상의 화살표들은 각 픽쳐들의 예측 방향과 순서를 나타낸 것으로서, 예를 들어, T0 시간대의 S2 시점에 있는 P0 픽쳐는 I0로부터 예측된 픽쳐이며, 상기 P0 픽쳐는 TO 시간대의 S4 시점에 있는 또 다른 P0 픽쳐의 참조 픽쳐가 된다. 또한, S2 시점의 T4, T2 시간대에 있는 B1, B2 픽쳐의 참조 픽쳐가 된다.As shown in FIG. 2, T0 to T100 on the horizontal axis represent frames according to time, and S0 to S7 on the vertical axis represent frames according to viewpoints, respectively. For example, pictures in T0 refer to images taken by different cameras in the same time zone (T0), and pictures in S0 refer to images in different time zones taken by one camera. In addition, the arrows in the drawing indicate the prediction direction and the order of each picture. For example, a P0 picture at S2 time point in the T0 time zone is a picture predicted from I0, and the P0 picture is also at S4 time point in the TO time zone. It becomes a reference picture of another P0 picture. It is also a reference picture of the B1 and B2 pictures in the T4 and T2 time zones at the time S2.
본 발명이 적용되는 조명 보상은 예를 들어, 움직임 추정(motion estimation), 또는 움직임 보상(motion compensation)을 수행하는 과정에서 적용될 수 있는데, 현재 블록이 다른 시점에 있는 참조 블록을 이용하여 조명 보상이 수행될 때 상기 예측 구조가 적용될 수 있다. 이러한 경우에도, 상기 블록들 사이의 시점을 구별해주는 식별자가 필요할 수 있다. The lighting compensation to which the present invention is applied may be applied, for example, in the process of performing motion estimation or motion compensation, and the lighting compensation may be applied using a reference block at which the current block is different. The prediction structure may be applied when performed. Even in this case, an identifier for distinguishing the viewpoints between the blocks may be needed.
도 3은 본 발명이 적용되는 일실시예로서, 현재 블록의 오프셋 값을 획득하 는 과정을 설명하기 위한 도면을 나타낸다.3 is a diagram for describing a process of obtaining an offset value of a current block according to an embodiment to which the present invention is applied.
조명 보상은 움직임 추정 과정에서 수행될 수 있다. 현재 블록과 후보 참조 블록(candidate reference block)의 유사성을 비교할 때 양 블록 사이의 조명 차이를 고려하여야 한다. 상기 조명 차이를 보상하기 위하여 새로운 움직임 추정/움직임 보상이 수행된다. 새로운 SAD(Sum of Absolute Differences)는 아래 수학식 2를 이용하여 구할 수 있다.Illumination compensation may be performed in the motion estimation process. When comparing the similarity between the current block and the candidate reference block, the lighting difference between the two blocks should be considered. New motion estimation / motion compensation is performed to compensate for the illumination difference. New sum of absorptive differences (SAD) can be obtained using
여기서, Mc 는 현재 블록의 평균 화소값을 나타내고, Mr 은 참조 블록의 평균 화소값을 나타낸다. Ic(x,y) 는 현재 블록의 (x,y)좌표에서의 화소값을 나타내고, Ir(x+△x, y+△y) 는 참조 블록의 움직임 벡터(△x,△y)일 때의 화소값를 나타낸다. 상기 수학식 1의 새로운 SAD에 기초하여 움직임 추정을 수행함으로써 상기 현재 블록과 상기 참조 블록 사이의 평균 화소값 차이가 획득될 수 있다. 상기 획득된 평균 화소값 차이를 오프셋 값(IC_offset)이라 한다.Here, M c represents an average pixel value of the current block and M r represents an average pixel value of the reference block. I c (x, y) represents the pixel value at the (x, y) coordinate of the current block, and I r (x + Δx, y + Δy) is the motion vector (Δx, Δy) of the reference block. Indicates a pixel value. By performing motion estimation based on the new SAD of
조명 보상이 적용된 움직임 추정이 수행되는 경우, 오프셋 값과 움직임 벡터가 구해지고 조명 보상은 상기 오프셋 값과 상기 움직임 벡터를 이용하여 수학식 3과 같이 수행된다.When motion estimation with illumination compensation is performed, an offset value and a motion vector are obtained, and illumination compensation is performed using
여기서, R(x,y)는 조명 보상이 수행된 오차값(residual)을 나타낸다.Here, R (x, y) represents an error value in which illumination compensation is performed.
오프셋 값(IC_offset = Mc- Mr)은 디코딩부(50)로 전송되어야 한다. 디코딩부(50)에서의 조명 보상은 다음과 같이 수행된다.The offset value IC_offset = M c -M r must be transmitted to the
R,(x,y)는 복원된, 조명 보상이 수행된 오차값(residual)을 나타내고, I'c(x,y)는 복원된 현재 블록의 화소값을 나타낸다. R, (x, y) denotes a two restored, the illumination compensation values to perform the error (residual), I 'c ( x, y) represents the pixel value of the restored current block.
현재 블록을 복원하기 위해서는 오프셋 값이 디코딩부(50)에 전송되어야 하고, 상기 오프셋 값은 이웃 블록들의 정보로부터 예측될 수 있다. 상기 오프셋 값을 코딩할 비트수를 더 감소시키기 위하여, 현재 블록의 오프셋 값(IC_offset)과 이웃 블록의 오프셋 값(IC_offset_pred)과의 차이값(RIC_offset)만 보낼 수 있다. 이는 아래 수학식 5와 같다.In order to recover the current block, an offset value must be transmitted to the
도 4는 본 발명이 적용된 실시예로서, 현재 블록의 조명 보상 수행여부를 나타내는 플래그 정보와 현재 블록의 오프셋 값을 이용하여 조명 보상을 수행하는 과정을 설명하기 위한 흐름도를 나타낸다.4 is an embodiment to which the present invention is applied and shows a flowchart for explaining a process of performing lighting compensation using flag information indicating whether lighting compensation is performed on a current block and an offset value of the current block.
디코딩부(50)에서는 조명 보상을 수행하기 위하여 비디오 신호로부터 상기 현재 블록의 이웃 블록들의 플래그 정보 및 오프셋 값, 상기 현재 블록과 그 이웃 블록들의 해당 참조 블록들의 인덱스 정보 등을 추출하고, 이러한 정보들을 이용하여 현재 블록의 프리딕터를 획득할 수 있다. 그리고, 현재 블록의 오프셋 값과 상기 프리딕터 사이의 차이값(residual)을 획득하고, 상기 획득된 차이값과 상기 프리딕터를 이용하여 상기 현재 블록의 오프셋 값을 복원할 수 있다. 이때, 현재 블록의 오프셋 값을 복원할 때, 상기 현재 블록의 조명 보상 수행 여부를 나타내는 플래그 정보(IC_flag)를 이용할 수 있다. 먼저 비디오 신호로부터 현재 블록의 조명보상 수행여부를 나타내는 플래그 정보를 획득한다(S410). 상기 플래그 정보에 따라 조명보상이 수행되는 경우, 상기 현재 블록의 평균 화소값과 참조 블록의 평균 화소값의 차이를 나타내는 현재 블록의 오프셋 값을 복원할 수 있다(S420). 이처럼, 조명 보상 기술은 서로 다른 픽쳐에 속한 블록들의 평균 화소값의 차이값을 코딩한다. 각 블록에 대해서 조명 보상 기술의 적용 여부를 나타내는 플래그가 사용될 때, 해당 블록이 P 슬라이스에 속한 블록인 경우에는 하나의 플래그 정보와 하나의 오프셋 값을 부호화/복호화하면 된다. 그러나, 해당 블록이 B 슬라이스에 속한 블록인 경우에는 여러 가지 방법이 가능할 수 있다. 이하 도 5a ~ 도 5b에서 상세하게 설명하도록 한다.The
도 5a ~ 도 5b는 본 발명이 적용된 일실시예로서, 각각 P 슬라이스 및 B 슬라이스에 속한 블록에 대해 플래그 정보와 오프셋 값을 이용하여 조명 보상을 수행하는 방법을 설명하기 위해 나타낸 것이다.5A to 5B illustrate an embodiment to which the present invention is applied to illustrate a method of performing illumination compensation using flag information and offset values for blocks belonging to a P slice and a B slice, respectively.
상기 도 5a에서, "C"는 현재 블록(C)을 나타내고, "N"는 현재 블록(C)에 이웃하는 블록을, "R"은 현재 블록(C)이 참조하는 블록을, "S"는 현재 블록(C)에 이웃하는 블록(N)이 참조하는 블록을 나타낸다. "mc"는 현재 블록의 평균 화소값을 나타내고, "mr"은 현재 블록이 참조하는 블록의 평균 화소값을 나타낸다. 현재 블록(C)의 오프셋 값을 "IC_offset" 이라 하면, IC_offset = mc - mr 이 된다. 마찬가지로 이웃 블록(N)의 오프셋 값을 "IC_offset_pred"라 하면, 인코딩부(30)에서는 현재 블록(C)의 오프셋 값인 "IC_offset"을 복원하기 위해 그 값을 그대로 전송하지 않고, 현재 블록의 오프셋 값(IC_offset)과 이웃 블록의 오프셋 값(IC_offset_pred)과의 차이값(RIC_offset)만을 보낼 수 있다. 여기서, RIC _ offset는 상기 수학식 5와 같다. 여기서 이웃 블록의 플래그 정보 또는 오프셋 값으로부터 현재 블록의 프리딕터를 생성할 때는 다양한 방법이 적용될 수 있다. 예를 들어, 이웃 블록 하나만의 정보를 이용할 수도 있고, 2이상의 이웃 블록의 정보를 이용할 수도 있다. 2이상의 이웃 블록의 정보를 이용하는 경우에는 평균값을 이용할 수도 있고, 중간값(median)을 이용할 수도 있다. 이처럼, 현재 블록이 하나의 참조 블록을 이용하여 예측 코딩된 경우에는 하나의 오프셋 값과 하나의 플래그 정보를 이용하여 조명 보상을 수행할 수 있다. In FIG. 5A, "C" represents a current block C, "N" represents a block neighboring the current block C, "R" represents a block referred to by the current block C, and "S". Denotes a block referenced by a block N neighboring the current block C. "m c " represents an average pixel value of the current block, and "m r " represents an average pixel value of the block referenced by the current block. If the offset value of the current block (C) is called "IC_offset", then IC_offset = m c- m r becomes Similarly, if the offset value of the neighboring block N is "IC_offset_pred", the
그러나, 해당 블록이 B 슬라이스에 속한 블록인 경우, 즉 현재 블록이 2이상의 참조 블록을 이용하여 예측 코딩된 경우에는 여러 가지 방법이 가능할 수 있다. 예를 들어, 도 5b에서 "C"는 현재 블록(C)을 나타내고, "N"은 현재 블록(C)에 이웃하는 블록을, "R0"는 현재 블록이 참조하는 List 0의 참조 픽쳐 1에 있는 참조 블록을, "S0"는 이웃 블록이 참조하는 List 0의 참조 픽쳐 1에 있는 참조 블록을 나타낸다고 가정한다. 그리고, "R1"은 현재 블록이 참조하는 List 1의 참조 픽쳐 3에 있는 참조 블록을, "S0"는 이웃 블록이 참조하는 List 1의 참조 픽쳐 3에 있는 참조 블록을 나타낸다고 가정한다. 이 때, 현재 블록의 플래그 정보와 오프셋 값은 각 참조 블록에 대해 존재하므로 각각 두 개의 값이 존재한다. 따라서, 상기 플래그 정보와 오프셋 값을 이용함에 있어서, 각각 적어도 하나 이상을 이용할 수 있다.However, if the corresponding block belongs to a B slice, that is, the current block is predictively coded using two or more reference blocks, various methods may be possible. For example, in FIG. 5B, "C" represents the current block C, "N" represents a block neighboring the current block C, and "R0" corresponds to reference
예를 들어, 움직임 보상을 통하여 두 개의 참조 블록에 대한 정보의 조합으로 현재 블록의 프리딕터가 구해질 수 있다. 여기서, 현재 블록에 조명 보상를 적용할지 여부를 하나의 플래그 정보로 나타내고, 상기 플래그 정보가 참인 경우, 상기 현재 블록과 상기 프리딕터로부터 하나의 오프셋 값을 획득하여 부호화/복호화를 수행할 수 있다. 다른 예로, 움직임 보상을 수행하는 과정에서 두 개의 참조 블록에 대해서 각각 조명 보상을 적용할지 여부가 결정된다. 각각의 참조 블록에 대 해서 플래그 정보가 부여되고, 상기 플래그 정보를 이용하여 획득된 하나의 오프셋 값이 부호화/복호화될 수 있다. 이 경우, 플래그 정보는 참조 블록을 기준으로 2개, 오프셋 값은 현재 블록을 기준으로 1개 사용될 수 있다. 또 다른 예로, 현재 블록을 기준으로, 이 블록에 대해서 조명 보상을 적용할 것인지 여부를 하나의 플래그 정보에 나타낼 수 있다. 그리고, 두 개의 참조 블록에 대해서 각각의 오프셋 값이 부호화/복호화될 수 있다. 부호화 과정에 있어서, 어느 한쪽의 참조 블록에 대해서 조명 보상을 적용하지 않는 경우에는 그에 해당하는 오프셋 값을 0으로 한다. 이 경우, 플래그 정보는 현재 블록을 기준으로 1개, 오프셋 값은 참조 블록을 기준으로 2개 사용될 수 있다. 또 다른 예로, 각 참조 블록에 대해서 각각의 플래그 정보와 오프셋 값이 부호화/복호화될 수 있다. 이 경우, 플래그 정보와 오프셋 값은 모두 참조 블록을 기준으로 각각 2개씩 사용될 수 있다.For example, the predictor of the current block may be obtained by combining information about two reference blocks through motion compensation. Here, whether to apply lighting compensation to the current block is indicated by one flag information, and when the flag information is true, one offset value may be obtained from the current block and the predictor to perform encoding / decoding. As another example, in the process of performing motion compensation, it is determined whether lighting compensation is applied to each of two reference blocks. Flag information is provided for each reference block, and one offset value obtained using the flag information can be encoded / decoded. In this case, two flag information may be used based on the reference block and one offset value may be used based on the current block. As another example, whether or not to apply lighting compensation to the block based on the current block may be indicated in one flag information. Each offset value may be encoded / decoded with respect to two reference blocks. In the encoding process, when the illumination compensation is not applied to any one of the reference blocks, the offset value corresponding thereto is zero. In this case, one flag information may be used based on the current block and two offset values may be used based on the reference block. As another example, each flag information and an offset value may be encoded / decoded for each reference block. In this case, both the flag information and the offset value may be used in each of two reference blocks.
각 경우에 대해서, 오프셋 값은 그대로 부호화되지 않고, 이웃 블록의 오프셋 값으로부터 예측한 후, 그 오차값만을 부호화할 수 있다. In each case, the offset value is not encoded as it is, and after predicting from the offset value of the neighboring block, only the error value can be encoded.
도 6은 본 발명이 적용되는 일실시예로서, 현재 블록이 2개의 참조 블록을 이용하여 예측 코딩된 경우에 있어서 조명 보상을 수행하는 방법을 설명하기 위한 흐름도이다.FIG. 6 is a flowchart illustrating a method of performing lighting compensation when a current block is predictively coded using two reference blocks according to an embodiment to which the present invention is applied.
현재 블록이 B 슬라이스에 속한 블록인 경우, 조명 보상을 수행하기 위하여 비디오 신호로부터 상기 현재 블록의 이웃 블록들의 플래그 정보 및 오프셋 값, 상기 현재 블록과 그 이웃 블록들의 해당 참조 블록들의 인덱스 정보 등을 추출하고, 이러한 정보들을 이용하여 현재 블록의 프리딕터를 획득할 수 있다. 그리고, 현재 블록의 오프셋 값과 상기 프리딕터 사이의 차이값(residual)을 획득하고, 상기 획득된 차이값과 상기 프리딕터를 이용하여 상기 현재 블록의 오프셋 값을 복원할 수 있다. 이때, 현재 블록의 오프셋 값을 복원할 때, 상기 현재 블록의 조명 보상 수행 여부를 나타내는 플래그 정보(IC_flag)를 이용할 수 있다. 먼저 비디오 신호로부터 현재 블록의 조명보상 수행여부를 나타내는 플래그 정보를 획득한다(S610). 상기 플래그 정보에 따라 조명보상이 수행되는 경우, 상기 현재 블록의 평균 화소값과 참조 블록의 평균 화소값의 차이를 나타내는 현재 블록의 오프셋 값을 복원할 수 있다(S620). 그런데, 이와 같이 현재 블록이 2개의 참조 블록을 이용하여 예측 코딩된 경우에는 디코더에서 각 참조 블록에 대응되는 오프셋 값을 직접적으로 알 수 없게 된다. 왜냐하면, 현재 블록의 오프셋 값을 획득할 때, 상기 2개의 참조 블록을 평균한 화소값을 이용하였기 때문이다. 따라서, 본 발명의 일실시예에서는 각 참조 블록마다 대응되는 오프셋 값을 획득하여 보다 정확한 예측을 가능하게 할 수 있다. 따라서, 현재 블록이 2개의 참조 블록을 이용하여 예측 코딩된 경우, 상기 오프셋 값을 이용하여 각 참조 블록에 대응하는 오프셋 값을 획득할 수 있다(S630). 이는 아래 수학식 6과 같다.If the current block is a block belonging to a B slice, in order to perform lighting compensation, flag information and offset values of neighboring blocks of the current block, index information of corresponding reference blocks of the current block and its neighboring blocks, etc. are extracted from the video signal. In addition, the information of the current block may be obtained using the information. The offset value of the current block and the predictor may be obtained, and the offset value of the current block may be restored using the obtained difference value and the predictor. In this case, when restoring the offset value of the current block, flag information IC_flag indicating whether illumination compensation of the current block is performed may be used. First, flag information indicating whether illumination compensation of the current block is performed is obtained from the video signal (S610). When illumination compensation is performed according to the flag information, the offset value of the current block indicating the difference between the average pixel value of the current block and the average pixel value of the reference block may be restored (S620). However, when the current block is predictively coded using two reference blocks as described above, the decoder cannot directly know an offset value corresponding to each reference block. This is because, when the offset value of the current block is obtained, the pixel value obtained by averaging the two reference blocks is used. Therefore, in an embodiment of the present invention, an offset value corresponding to each reference block may be obtained to enable more accurate prediction. Therefore, when the current block is predictively coded using two reference blocks, an offset value corresponding to each reference block may be obtained using the offset value (S630). This is shown in
IC_offsetL0 = - = IC_offset + (-1)* + * IC_offsetL0 = - = IC_offset + ( -One)* + *
IC_offsetL1 = - = IC_offset + * + (-1)*.IC_offsetL1 = - = IC_offset + * + ( -One)* .
여기서, mc 는 현재 블록의 평균 화소값을 나타내고, mr ,1 , mr ,2는 각각 참조 블록의 평균 화소값을 나타낸다. w1 , w2 는 쌍방향 예측 코딩(bi-predictive coding)시의 가중치 계수를 나타낸다.Here, m c represents the average pixel value of the current block, and m r , 1 , m r , 2 represent the average pixel value of the reference block, respectively. w 1 and w 2 represent weight coefficients in bi-predictive coding.
이러한 방법으로 조명 보상을 수행하게 되는 경우, 각 참조 블록에 대응하는 정확한 오프셋 값을 별도로 획득하여 이용할 수 있게 되므로 보다 정확한 예측 코딩을 할 수 있게 된다. 상기 현재 블록의 오프셋 값을 복원할 때, 복원된 오프셋 차이값(residual)과 프리딕터 값을 더하여 오프셋 값을 획득할 수 있다. 이 때, List0, List1 각각에 대한 프리딕터를 구하고, 이들을 조합하여 현재 블록의 오프셋 값을 복원할 때 필요한 프리딕터 값을 구할 수 있다.When the illumination compensation is performed in this manner, the accurate offset value corresponding to each reference block can be obtained and used separately, thereby enabling more accurate predictive coding. When restoring the offset value of the current block, the offset value may be obtained by adding the restored offset difference value and the predictor value. At this time, a predictor for each of List0 and List1 may be obtained, and the combination may be combined to obtain a predicator required when restoring the offset value of the current block.
도 7은 본 발명이 적용되는 일실시예로서, 비디오 신호의 일정 계층에 대한 조명 보상 수행여부를 나타내는 플래그 정보를 이용하여 조명 보상을 수행하는 과정을 설명하기 위한 흐름도를 나타낸다.FIG. 7 is a flowchart illustrating a process of performing lighting compensation using flag information indicating whether lighting compensation is performed on a predetermined layer of a video signal according to an embodiment to which the present invention is applied.
조명 보상 기술은 카메라 사이의 조명 또는 색상(color) 차이를 보상하기 위한 것이다. 이 기술은 좀더 확장하여, 같은 카메라에서 획득된 시퀀스 영상들 사이에서도 적용할 수 있다. 이 기술을 통해서 조명이나 색상 차이가 움직임 추정에 크게 영향을 미치지 않도록 할 수 있다. 그러나, 실제 부호화 과정에서는 조명 보상의 적용 여부를 나타내는 플래그 정보를 사용하게 된다. 조명 보상의 적용 범위는 시퀀스(sequence), 시점(view), GOP(Group Of Picture), 픽쳐(picture), 슬라이스(slice), 매크로블록(macroblock), 서브블록(sub-block) 등이 될 수 있다. 작은 영역 범위에 조명 보상 기술이 쓰이면, 좀더 로컬(local)한 영역에 대해서 조절이 가능하지만, 그대신 플래그 정보를 위한 비트가 그만큼 많이 소요된다. 또한, 많은 경우에 조명 보상 기술이 필요없을 수도 있다. 따라서, 각 영역 범위 별로 조명 보상 기술의 사용 여부를 나타내는 플래그 비트를 할당함으로써, 효과적으로 조명 보상 기술을 사용할 수 있게 된다. 먼저 비디오 신호의 일정 계층에 대해 조명 보상을 수행하도록 유도하는 플래그 정보를 획득한다(S710). 예를 들어, 각 영역 범위 별로 다음과 같이 플래그 정보를 설정할 수 있다. 시퀀스 계층에 대해서는 "seq_IC_flag", 시점 계층에 대해서는 "view_IC_flag", GOP 계층에 대해서는 "GOP_IC_flag", 픽쳐 계층에 대해서는 "pic_IC_flag", 슬라이스 계층에 대해서는 "slice_IC_flag", 매크로블록 계층에 대해서는 "mb_IC_flag", 블록 계층에 대해서는 "blk_IC_flag" 로 플래그 비트를 할당할 수 있다. 이에 대해서는 도 8a ~ 도 8c에서 상세히 설명하도록 한다. 그리고, 상기 플래그 정보에 따라 조명 보상이 수행된 상기 비디오 신호의 일정 계층을 디코딩할 수 있게 된다(S720). Lighting compensation techniques are intended to compensate for lighting or color differences between cameras. This technique is further extended and can be applied between sequence images obtained from the same camera. This technique ensures that lighting or color differences do not significantly affect motion estimation. However, in actual encoding, flag information indicating whether lighting compensation is applied is used. The scope of illumination compensation may be a sequence, a view, a group of pictures (GOP), a picture, a slice, a macroblock, a sub-block, and the like. have. If the lighting compensation technique is used in a small area range, it is possible to adjust the more local area, but instead, it takes a lot of bits for the flag information. Also, in many cases, lighting compensation techniques may not be needed. Therefore, by assigning a flag bit indicating whether the illumination compensation technique is used for each region range, it is possible to effectively use the illumination compensation technique. First, flag information for inducing lighting compensation for a predetermined layer of a video signal is obtained (S710). For example, flag information may be set for each region range as follows. "Seq_IC_flag" for sequence layer, "view_IC_flag" for view layer, "GOP_IC_flag" for GOP layer, "pic_IC_flag" for picture layer, "slice_IC_flag" for slice layer, "mb_IC_flag" for macroblock layer, block For the layer, flag bits may be allocated with "blk_IC_flag". This will be described in detail with reference to FIGS. 8A to 8C. In operation S720, a predetermined layer of the video signal on which illumination compensation is performed may be decoded according to the flag information.
도 8a ~ 도 8c는 본 발명이 적용된 일실시예로서, 현재 블록의 조명 보상 수행하도록 유도하는 플래그 정보의 사용 범위를 설명하기 위해 나타낸 것이다.8A to 8C are diagrams for explaining a range of use of flag information for inducing lighting compensation of a current block as an embodiment to which the present invention is applied.
조명 보상을 수행하도록 유도하는 플래그 정보의 적용 범위를 계층별로 구분할 수 있다. 예를 들어, 상기 도 8a ~ 도 8b에서처럼, 시퀀스 계층에 대해서는 "seq_IC_flag"(810), 시점 계층에 대해서는 "view_IC_flag"(820), GOP 계층에 대해서는 "GOP_IC_flag"(830), 픽쳐 계층에 대해서는 "pic_IC_flag"(840), 슬라이스 계층에 대해서는 "slice_IC_flag"(850), 매크로블록 계층에 대해서는 "mb_IC_flag"(860), 블록 계층에 대해서는 "blk_IC_flag"(870) 로 나타낼 수 있다. 여기서, 각 플래그는 1비트 정보이며, 상기 플래그들은 적어도 하나 이상 존재할 수 있다. 또한, 시퀀스/시점/픽쳐/슬라이스 범위 등의 플래그들은 해당 파라미터 세트 또는 헤더에 위치할 수 있으며, 또는 다른 파라미터 세트에도 위치할 수 있다. 예를 들어, "seq_IC_flag"(810)는 시퀀스 파라미터 세트(sequence parameter set)에 위치할 수 있고, "view_IC_flag"(820)는 시점 파라미터 세트(view parameter set)에 위치할 수 있으며, "pic_IC_flag"(840)는 픽쳐 파라미터 세트(picture parameter set)에 위치할 수 있다. 또한, "slice_IC_flag"(850)는 슬라이스 헤더에 위치할 수 있다.An application range of flag information for inducing lighting compensation may be divided by layers. For example, as shown in FIGS. 8A to 8B, "seq_IC_flag" 810 for the sequence layer, "view_IC_flag" 820 for the view layer, "GOP_IC_flag" 830 for the GOP layer, and "" for the picture layer. pic_IC_flag "840," slice_IC_flag "850 for the slice layer," mb_IC_flag "860 for the macroblock layer, and" blk_IC_flag "870 for the block layer. Here, each flag is 1 bit information, and at least one flag may exist. In addition, flags such as sequence / view / picture / slice range may be located in the corresponding parameter set or header, or in other parameter sets. For example, "seq_IC_flag" 810 may be located in a sequence parameter set, "view_IC_flag" 820 may be located in a view parameter set, and "pic_IC_flag" ( 840 may be located in a picture parameter set. In addition, the "slice_IC_flag" 850 may be located in the slice header.
상기 플래그 정보가 2이상 존재하는 경우, 2이상의 일정 계층 중 하위 계층의 조명 보상 수행 여부는 상위 계층의 조명 보상 수행 여부에 의해 제어될 수 있다. 즉, 각 플래그 비트값이 1로 설정이 되면, 그 하위 범위에서 조명 보상 기술이 적용되는 경우가 있을 수 있음을 나타낸다. 예를 들어, pic_IC_flag = 1인 경우, 해당 픽쳐 범위 내의 각 슬라이스에 대해서 slice_IC_flag값을 1 또는 0으로 셋팅할 수 있고, 또는 각 매크로블록에 대해서 mb_IC_flag값을 1 또는 0으로 셋팅할 수 있으며, 또는 각 블록에 대해서 blk_IC_flag값을 1 또는 0으로 셋팅할 수 있다. 시점 파라미터 세트가 있는 경우, seq_IC_flag = 1 이라면, 각 시점에 대해서 view_IC_flag값을 1 또는 0으로 셋팅할 수 있게 된다. 다만, view_IC_flag=1인 경우에는, 도 8a에서처럼 해당 시점에 속하는 각 GOP, 픽쳐, 슬라이스, 매크로블록, 또는 블록에 대한 플래그 비트값을 1 또는 0으로 셋팅할 수도 있고, 그렇지 않은 경우도 있을 수 있다. 여기서, 그렇지 않은 경우는 도 8b에서처럼 각 GOP, 픽쳐, 슬라이스, 매크로블록, 또는 블록에 대한 플래그들이 시점에 대한 플래그 정보에 의해 제어되지 않는 경우를 말한다.When two or more flag information exist, whether to perform lighting compensation of a lower layer among two or more predetermined layers may be controlled by performing lighting compensation of a higher layer. That is, when each flag bit value is set to 1, it indicates that the lighting compensation technique may be applied in the lower range. For example, if pic_IC_flag = 1, the slice_IC_flag value can be set to 1 or 0 for each slice within the corresponding picture range, or the mb_IC_flag value can be set to 1 or 0 for each macroblock, or each A blk_IC_flag value may be set to 1 or 0 for a block. If there is a viewpoint parameter set, if seq_IC_flag = 1, the view_IC_flag value can be set to 1 or 0 for each viewpoint. However, when view_IC_flag = 1, the flag bit value for each GOP, picture, slice, macroblock, or block belonging to the corresponding viewpoint may be set to 1 or 0, as shown in FIG. 8A, or may not be the case. . In this case, otherwise, the flag for each GOP, picture, slice, macroblock, or block is not controlled by the flag information on the viewpoint as in FIG. 8B.
상위 범위의 플래그 비트값이 0인 경우, 하위 범위의 플래그 비트값들은 자동적으로 0이 된다. 예를 들어, seq_IC_flag = 0인 경우, 해당 시퀀스에 대해서 조명 보상 기술이 적용되지 않는다는 것을 의미하며, 따라서 view_IC_flag, GOP_IC_flag, pic_IC_flag, slice_IC_flag, mb_IC_flag, blk_IC_flag는 모두 0으로 셋팅된다. 그리고, mb_IC_flag와 blk_IC_flag는 조명 보상 기술의 구체적인 구현 방법에 따라 하나만 사용될 수도 있다. 또한, 시점에 대한 플래그 정보(view_IC_flag)는 다시점 비디오 코딩에서 시점 파라미터 세트가 새로이 적용될 경우에 적용될 수 있다. 제일 하위 단위인 매크로블록 또는 서브블록에서의 플래그 비트값에 따라 현재 블록의 오프셋 값이 추가적으로 부호화/복호화 될 수 있다.When the flag bit value of the upper range is 0, the flag bit values of the lower range are automatically zero. For example, when seq_IC_flag = 0, this means that the lighting compensation technique is not applied to the sequence, and thus, view_IC_flag, GOP_IC_flag, pic_IC_flag, slice_IC_flag, mb_IC_flag, and blk_IC_flag are all set to zero. In addition, only one mb_IC_flag and blk_IC_flag may be used according to a specific implementation method of the lighting compensation technique. In addition, the flag information view_IC_flag about the viewpoint may be applied when a viewpoint parameter set is newly applied in multiview video coding. The offset value of the current block may be additionally encoded / decoded according to the flag bit value in the macroblock or subblock which is the lowest unit.
또한, 도 8c와 같이 IC 기술 적용에 대한 플래그가 슬라이스와 매크로블록 계층에만 적용되는 실시예도 생각할 수 있다. 예를 들어, slice_IC_flag 가 0 인 경우는 해당 슬라이스에서 IC가 적용되지 않음을 의미할 수 있다. slice_IC_flag가 1 인 경우는 해당 슬라이스에서 IC가 적용됨을 의미할 수 있으며, 이 경우 mb_IC_flag가 1이면 해당 매크로블록에서 IC_offset 이 복원된다. mb_IC_flag 가 0 이면 해당 매크로블록에서 IC가 적용되지 않음을 의미할 수 있다.Also, as shown in FIG. 8C, an embodiment in which a flag for applying an IC technology is applied only to a slice and a macroblock layer may be considered. For example, when slice_IC_flag is 0, it may mean that the IC is not applied to the slice. If slice_IC_flag is 1, it may mean that the IC is applied to the corresponding slice. In this case, if mb_IC_flag is 1, IC_offset is restored in the corresponding macroblock. If mb_IC_flag is 0, this may mean that the IC is not applied to the corresponding macroblock.
또한, 본 발명의 다른 일실시예로서, 매크로블록 계층보다 상위 계층의 플래그 정보가 참인 경우, 현재 블록의 평균 화소값과 참조 블록의 평균 화소값 차이를 나타내는 현재 블록의 오프셋 값을 획득할 수 있는데, 이 때 상기 매크로블록 계층 또는 상기 블록 계층에 대한 플래그 정보는 이용하지 않을 수 있다. 조명 보상 기술을 적용할 때, 각 블록에 대해서 조명 보상 기술을 적용할 것인지 여부를 플래그 정보를 통해서 나타낼 수 있다. 그러나, 움직임 벡터처럼 그 값만을 나타내는 것으로도 충분할 수도 있다. 이는 조명 보상 기술의 적용범위와 함께 운용이 가능할 수 있으며, 상위 범위(sequence, view, GOP, picture)에 대해서는 플래그 정보를 통해서 그 하위 범위에서 조명 보상이 적용되는지를 나타낼 수 있다. 제일 하위 범위인 매크로블록 계층 또는 블록 계층에서는 플래그 비트를 사용함이 없이 오프셋 값만으로 충분할 수 있다. 이는 기본적으로 움직임 벡터와 유사한 방식으로 예측 및 부호화를 수행할 수 있다. 예를 들어, 현재 블록에 대해서 예측 코딩을 수행하는 경우, 이웃 블록의 오프셋 값을 현재 블록의 오프셋 값에 할당하게 된다. 그리고, 쌍방향 예측 코딩인 경우, List 0, List 1에서 찾아진 참조 블록과의 계산을 통해서 각 참조 블록에 대한 오프셋 값이 획득된다. 따라서, 현재 블록의 오프셋 값들을 부호화할 때, 이웃 블록들의 오프셋 값들을 이용해서 상기 각 참조 블록에 대한 ㅇ오프셋 값을 직접 부호화 하지 않고, 예측 오차만을 부호화/복호화 한다. 오프셋 값의 예측방법은 위의 오프셋 예측 방법이나 움직임 벡터 예측시 사용되는 중간값(median)을 획득하는 방법을 사용할 수도 있다. 쌍방향 예측의 직접 모드(direct mode)일 때도, 움직임 벡터와 같은 방법으로 부가 정보의 부호화/복호화 없이 이미 주어진 정보를 통해서 오프셋 값들을 구할 수 있다.According to another embodiment of the present invention, when flag information of a layer higher than a macroblock layer is true, an offset value of a current block indicating a difference between an average pixel value of a current block and an average pixel value of a reference block may be obtained. In this case, flag information on the macroblock layer or the block layer may not be used. When applying the lighting compensation technology, whether or not to apply the lighting compensation technology to each block may be indicated through the flag information. However, it may be sufficient to indicate only its value, such as a motion vector. This may be operated together with the application range of the lighting compensation technology, and may indicate whether lighting compensation is applied in the lower range through flag information on the upper range (sequence, view, GOP, picture). In the lowest block, the macroblock layer or block layer, the offset value may be sufficient without using the flag bit. It can basically perform prediction and encoding in a manner similar to a motion vector. For example, when performing predictive coding on the current block, the offset value of the neighboring block is assigned to the offset value of the current block. In the case of bidirectional predictive coding, an offset value for each reference block is obtained through calculation with reference blocks found in List 0 and
또한, 본 발명의 다른 일실시예로서, MVC 디코더가 아닌 디코더(예를 들어 ,H.264)를 이용하게 되는 경우, 기존의 디코더와 호환성을 가지는 시점 영상은 ㄱ기존의 디코더로 디코딩될 수 있어야 하므로 "view_IC_flag = false or 0" 으로 설정해야 된다. 여기서 기준 시점(base views)에 대한 개념을 설명할 필요가 있다. 우리는 H.264/AVC 디코더와 호환성을 가지기 위한 적어도 하나의 시점 영상(view sequence)이 필요할 수 있다. 따라서, 독립적으로 복호화가 가능한 시점들을 정의할 필요가 있는데, 이를 기준 시점이라 한다. 이러한 기준시점은 다시점 중 부호화의 기준이 되며, 이는 참조 시점(reference view)에 해당된다. MVC에서 기준 시점에 해당되는 영상은 종래 일반적인 영상 부호화 방식(MPEG-2, MPEG-4, H.263, H.264 등)에 의해 부호화되어 독립적인 비트스트림으로 형성하게 된다. 기준 시점에 해당되는 영상은 H.264/AVC와 호환될 수도 있고, 되지 않을 수도 있다. 하지만, H.264/AVC와 호환될 수 있는 시점의 영상은 항상 기준 시점이 된다. In addition, as another embodiment of the present invention, when using a decoder other than the MVC decoder (for example, H.264), the view image compatible with the existing decoder should be able to be decoded by the existing decoder Therefore, "view_IC_flag = false or 0" should be set. Here we need to explain the concept of base views. We may need at least one view sequence to be compatible with the H.264 / AVC decoder. Therefore, it is necessary to define time points that can be independently decoded, which is called a reference time point. This reference time point becomes a reference of encoding among multiviews, which corresponds to a reference view. In MVC, an image corresponding to a reference time point is encoded by a conventional general video encoding method (MPEG-2, MPEG-4, H.263, H.264, etc.) to form an independent bitstream. The image corresponding to the reference time point may or may not be compatible with H.264 / AVC. However, an image of a viewpoint compatible with H.264 / AVC is always a reference viewpoint.
도 9는 본 발명이 적용되는 일실시예로서, 현재 블록의 오프셋 값을 고려하여 움직임 벡터를 획득하는 과정을 설명하기 위한 흐름도를 나타낸다.9 is a flowchart illustrating a process of obtaining a motion vector in consideration of an offset value of a current block according to an embodiment to which the present invention is applied.
비디오 신호로부터 현재 블록의 오프셋 값을 획득할 수 있다(S910). 상기 오프셋 값을 이용하여 현재 블록과 최적으로 매칭되는 참조 블록을 서치한다(S920). 상기 서치된 참조 블록으로부터 움직임 벡터를 획득하여 부호화할 수 있다(S930). 여기서, 조명 보상을 적용하는 경우 움직임 추정을 수행할 때 고려할 사항들이 있다. 예를 들어, 블록 사이의 평균 화소값을 상쇄해서 두 블록의 유사성을 비교하는 방법의 경우, 움직임 추정을 수행할 때 각 블록의 화소값들에서 블록의 평균 화소값을 뺀 값들을 가지고 유사성 정도를 계산한다. 이때, 두 블록 간의 오프셋 값이 따로 부호화가 되기 때문에 이러한 비용도 움직임 추정 과정에 반영되어야 한다. 기존의 비용(cost) 계산은 아래 수학식 7과 같다.The offset value of the current block may be obtained from the video signal (S910). The reference block that is optimally matched to the current block is searched using the offset value (S920). A motion vector may be obtained and encoded from the searched reference block (S930). Here, there are considerations when performing motion estimation when applying illumination compensation. For example, in the case of comparing the similarity of two blocks by canceling the average pixel value between blocks, when the motion estimation is performed, the similarity degree is determined by subtracting the average pixel value of each block from the pixel values of each block. Calculate In this case, since the offset value between the two blocks is encoded separately, such a cost should be reflected in the motion estimation process. The existing cost calculation is shown in Equation 7 below.
조명 보상을 적용하는 경우, SAD(Sum of Absolute Differences)는 아래와 같이 계산된다.In the case of applying illumination compensation, the sum of absolute differences (SAD) is calculated as follows.
여기서, 은 각각 현재 블록과 참조 블록의 화소값을 나타낸다. 은 각각 현재 블록과 참조 블록의 평균 화소값을 나타낸다. 오프셋 값의 비용은 SAD 계산에 포함하여 반영할 수 있다.here, Denote pixel values of the current block and the reference block, respectively. Denote average pixel values of the current block and the reference block, respectively. The cost of the offset value can be reflected in the SAD calculation.
여기서, 는 가중치가 되며, 1일 때, 오프셋 값의 절대치가 반영된다. 또한, 조명 보상 비용을 반영하는 다른 방법으로서, 오프셋 값을 부호화하는 데에 쓰이는 비트수를 추정해서 반영하는 방법이 있다. here, Is a weight, and when 1, the absolute value of the offset value is reflected. As another method of reflecting the illumination compensation cost, there is a method of estimating and reflecting the number of bits used to encode the offset value.
이는 아래 수학식 11에서처럼 오프셋 부호화 비트를 추정해서 반영한다. 여기서, 상기 부호화 비트는 오프셋 차이값의 크기에 비례하도록 추정할 수 있다.This estimates and reflects the offset encoding bits as in Equation 11 below. Here, the coded bits may be estimated to be proportional to the magnitude of the offset difference value.
이 경우, 새로운 비용은 아래 수학식 12을 이용하여 구할 수 있다.In this case, the new cost can be obtained using Equation 12 below.
본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다.Those skilled in the art to which the present invention pertains will understand that the present invention can be implemented in other specific forms without changing the technical spirit or essential features.
그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.Therefore, it is to be understood that the embodiments described above are exemplary in all respects and not restrictive. The scope of the present invention is shown by the following claims rather than the detailed description, and all changes or modifications derived from the meaning and scope of the claims and their equivalent concepts should be construed as being included in the scope of the present invention. do.
다시점 비디오의 각 시점 영상들은 카메라의 내외적 요인으로 인하여 조명 차이가 발생하게 된다. 이러한 조명 차이는 다른 시점들 간의 상관도를 현저히 떨어뜨려 효과적인 부호화를 저해하게 된다. 따라서, 본 발명에서는 현재 블록의 오 프셋 값을 이웃 블록의 정보를 이용하여 예측하고 그 차이값만을 전송함으로써, 조명 보상을 위해서 전송해야 하는 정보를 최소화할 수 있다. 현재 블록의 조명 보상 수행 여부를 나타내는 플래그 정보도 예측하여 그 차이값만을 전송함으로써 전송해야 하는 정보를 최소화할 수 있다. 또한, 2이상의 참조 블록을 이용하여 예측 코딩된 경우, 오프셋 값과 플래그 정보를 각각 적어도 하나 이상의 다양한 방법으로 적용함으로써 보다 효율적인 코딩이 가능해질 수 있다. 또한, 비디오 신호의 각 영역 범위 별로 조명 보상 기술의 사용 여부를 나타내는 플래그 비트를 할당함으로써, 효과적으로 조명 보상 기술을 사용할 수 있다. 또한, 움직임 추정을 수행하는 과정에서 조명 차이를 반영하여 비용 계산을 함으로써 보다 정확한 예측 코딩을 수행할 수 있게 된다.Each viewpoint image of the multi-view video is caused by a difference in illumination due to internal and external factors of the camera. This illumination difference significantly reduces the correlation between different viewpoints, which hinders effective encoding. Therefore, in the present invention, by predicting the offset value of the current block using the information of the neighboring block and transmitting only the difference value, it is possible to minimize the information to be transmitted for lighting compensation. It is also possible to minimize the information to be transmitted by predicting flag information indicating whether the current block performs lighting compensation and transmitting only the difference value. In addition, when the prediction coding is performed using two or more reference blocks, more efficient coding may be performed by applying the offset value and the flag information in at least one or more various methods. In addition, by assigning a flag bit indicating whether to use the illumination compensation technique for each region range of the video signal, it is possible to effectively use the illumination compensation technique. In addition, it is possible to perform more accurate predictive coding by calculating the cost by reflecting the illumination difference in the process of performing the motion estimation.
Claims (12)
Priority Applications (33)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/KR2007/000225 WO2007081176A1 (en) | 2006-01-12 | 2007-01-12 | Processing multiview video |
EP07700952A EP1982517A4 (en) | 2006-01-12 | 2007-01-12 | Processing multiview video |
US11/622,681 US8115804B2 (en) | 2006-01-12 | 2007-01-12 | Processing multiview video |
US11/622,611 US7817865B2 (en) | 2006-01-12 | 2007-01-12 | Processing multiview video |
US11/622,709 US8154585B2 (en) | 2006-01-12 | 2007-01-12 | Processing multiview video |
KR1020097017208A KR100934676B1 (en) | 2006-01-12 | 2007-01-12 | Processing multiview video |
CN 201010135987 CN101895744B (en) | 2006-01-12 | 2007-01-12 | Processing multiview video |
JP2008550241A JP5192393B2 (en) | 2006-01-12 | 2007-01-12 | Multi-view video processing |
DE200720019463 DE202007019463U1 (en) | 2006-01-12 | 2007-01-12 | Multiview video processing device |
EP07700955A EP1982518A4 (en) | 2006-01-12 | 2007-01-12 | Processing multiview video |
KR1020087019748A KR101276847B1 (en) | 2006-01-12 | 2007-01-12 | Processing multiview video |
KR1020097017207A KR100943913B1 (en) | 2006-01-12 | 2007-01-12 | Method and apparatus for processing multiview video |
JP2008550243A JP5199124B2 (en) | 2006-01-12 | 2007-01-12 | Multi-view video processing |
PCT/KR2007/000228 WO2007081178A1 (en) | 2006-01-12 | 2007-01-12 | Processing multiview video |
PCT/KR2007/000226 WO2007081177A1 (en) | 2006-01-12 | 2007-01-12 | Processing multiview video |
US11/622,675 US20070177671A1 (en) | 2006-01-12 | 2007-01-12 | Processing multiview video |
KR1020097017209A KR100943914B1 (en) | 2006-01-12 | 2007-01-12 | Method and apparatus for processing multiview video |
JP2008550242A JP5199123B2 (en) | 2006-01-12 | 2007-01-12 | Multi-view video processing |
CN 201010275254 CN101945277B (en) | 2006-01-12 | 2007-01-12 | Processing multiview video |
US11/622,591 US7831102B2 (en) | 2006-01-12 | 2007-01-12 | Processing multiview video |
KR20087019747A KR100953646B1 (en) | 2006-01-12 | 2007-01-12 | Method and apparatus for processing multiview video |
US11/622,592 US7856148B2 (en) | 2006-01-12 | 2007-01-12 | Processing multiview video |
KR1020087019746A KR100947234B1 (en) | 2006-01-12 | 2007-01-12 | Method and apparatus for processing multiview video |
KR1020097017206A KR100943912B1 (en) | 2006-01-12 | 2007-01-12 | Method and apparatus for processing multiview video |
CN2007800031205A CN101375594B (en) | 2006-01-12 | 2007-01-12 | Processing multiview video |
EP07700953A EP1977593A4 (en) | 2006-01-12 | 2007-01-12 | Processing multiview video |
KR1020097017210A KR100934677B1 (en) | 2006-01-12 | 2007-01-12 | Processing multiview video |
US11/622,618 US7817866B2 (en) | 2006-01-12 | 2007-01-12 | Processing multiview video |
KR1020097017211A KR100943915B1 (en) | 2006-01-12 | 2007-01-12 | Method and apparatus for processing multiview video |
US11/622,803 US20070177674A1 (en) | 2006-01-12 | 2007-01-12 | Processing multiview video |
US12/545,462 US7970221B2 (en) | 2006-01-12 | 2009-08-21 | Processing multiview video |
US13/356,354 US8553073B2 (en) | 2006-01-12 | 2012-01-23 | Processing multiview video |
US13/720,479 USRE44680E1 (en) | 2006-01-12 | 2012-12-19 | Processing multiview video |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US75962006P | 2006-01-18 | 2006-01-18 | |
US60/759,620 | 2006-01-18 | ||
US81827406P | 2006-07-05 | 2006-07-05 | |
US60/818,274 | 2006-07-05 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20070076391A true KR20070076391A (en) | 2007-07-24 |
Family
ID=38501328
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060110337A KR20070076391A (en) | 2006-01-12 | 2006-11-09 | A method and apparatus for decoding/encoding a video signal |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20070076391A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013022281A3 (en) * | 2011-08-09 | 2013-04-04 | 삼성전자 주식회사 | Method for multiview video prediction encoding and device for same, and method for multiview video prediction decoding and device for same |
WO2014007551A1 (en) * | 2012-07-03 | 2014-01-09 | Samsung Electronics Co., Ltd. | Method of multi-view video sequence coding/decoding based on adaptive local correction of illumination of reference frames without transmission of additional parameters (variants) |
WO2021054776A1 (en) * | 2019-09-18 | 2021-03-25 | 삼성전자 주식회사 | Motion information encoding apparatus and method, and motion information decoding apparatus and method |
-
2006
- 2006-11-09 KR KR1020060110337A patent/KR20070076391A/en unknown
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013022281A3 (en) * | 2011-08-09 | 2013-04-04 | 삼성전자 주식회사 | Method for multiview video prediction encoding and device for same, and method for multiview video prediction decoding and device for same |
US9973778B2 (en) | 2011-08-09 | 2018-05-15 | Samsung Electronics Co., Ltd. | Method for multiview video prediction encoding and device for same, and method for multiview video prediction decoding and device for same |
WO2014007551A1 (en) * | 2012-07-03 | 2014-01-09 | Samsung Electronics Co., Ltd. | Method of multi-view video sequence coding/decoding based on adaptive local correction of illumination of reference frames without transmission of additional parameters (variants) |
WO2021054776A1 (en) * | 2019-09-18 | 2021-03-25 | 삼성전자 주식회사 | Motion information encoding apparatus and method, and motion information decoding apparatus and method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7248741B2 (en) | Efficient Multiview Coding with Depth Map Estimation and Update | |
US11240478B2 (en) | Efficient multi-view coding using depth-map estimate for a dependent view | |
KR101276720B1 (en) | Method for predicting disparity vector using camera parameter, apparatus for encoding and decoding muti-view image using method thereof, and a recording medium having a program to implement thereof | |
JP5970609B2 (en) | Method and apparatus for unified disparity vector derivation in 3D video coding | |
US20160309186A1 (en) | Method of constrain disparity vector derivation in 3d video coding | |
JP5976197B2 (en) | Method for processing one or more videos of a 3D scene | |
EP3065405B1 (en) | Method for decoding video using buffer compression for motion vector competition | |
KR101550680B1 (en) | MULTIVIEW IMAGE ENCODNG METHOD, MULTIVIEW IMAGE DECODNG METHOD, MULTIVIEW IMAGE ENCODlNG DEVICE, MULTIVIEW lNlAGE DECODlNG DEVICE, AND PROGRAMS OF SAME | |
KR101893559B1 (en) | Apparatus and method for encoding and decoding multi-view video | |
US20150365649A1 (en) | Method and Apparatus of Disparity Vector Derivation in 3D Video Coding | |
KR20120084629A (en) | Apparatus and method for encoding and decoding motion information and disparity information | |
KR20070098429A (en) | A method for decoding a video signal | |
KR20070076391A (en) | A method and apparatus for decoding/encoding a video signal | |
KR20080007069A (en) | Method and apparatus for decoding a video signal | |
KR20070098428A (en) | Method and apparatus for decoding/encoding a video signal | |
Shimizu et al. | Decoder-side macroblock information derivation for efficient multiview video plus depth map coding | |
KR20070098437A (en) | A method and apparatus for decoding/encoding a video signal | |
KR20070111947A (en) | A method and apparatus for decoding/encoding a video signal | |
KR20070076392A (en) | A method and apparatus for decoding/encoding a video signal | |
KR20080029944A (en) | A method and apparatus for processing a video signal | |
KR20080007177A (en) | A method and apparatus for processing a video signal |